From a4ff275d9b204c5c6fac917bfe1cb9455caa9e94 Mon Sep 17 00:00:00 2001 From: Alex Ames Date: Thu, 3 Nov 2022 08:57:46 -0700 Subject: [PATCH 001/571] Added option to not requires an EoF token when parsing JSON (#7620) Previously when parsing a JSON representation of a Flatbuffer, the parser required that the input string contain one and only one root table. This change adds a flag that removes that requirement, so that if a Flatbuffer table is embedded in some larger string the parser will simply stop parsing once it reaches the end of the root table, and does not validate that it has reached the end of the string. This change also adds a BytesConsumed function, which returns the number of bytes the parser consumed. This is useful if the table embedded in some larger string that is being parsed, and that outer parser needs to know how many bytes the table was so that it can step over it. --- include/flatbuffers/idl.h | 5 +++++ src/idl_parser.cpp | 12 ++++++++--- tests/test.cpp | 44 +++++++++++++++++++++++++++++++++++++++ 3 files changed, 58 insertions(+), 3 deletions(-) diff --git a/include/flatbuffers/idl.h b/include/flatbuffers/idl.h index 562bb420ac..fd2da8bfae 100644 --- a/include/flatbuffers/idl.h +++ b/include/flatbuffers/idl.h @@ -642,6 +642,7 @@ struct IDLOptions { bool json_nested_legacy_flatbuffers; bool ts_flat_file; bool no_leak_private_annotations; + bool require_json_eof; // Possible options for the more general generator below. enum Language { @@ -743,6 +744,7 @@ struct IDLOptions { json_nested_legacy_flatbuffers(false), ts_flat_file(false), no_leak_private_annotations(false), + require_json_eof(true), mini_reflect(IDLOptions::kNone), require_explicit_ids(false), rust_serialize(false), @@ -905,6 +907,9 @@ class Parser : public ParserState { bool ParseJson(const char *json, const char *json_filename = nullptr); + // Returns the number of characters were consumed when parsing a JSON string. + std::ptrdiff_t BytesConsumed() const; + // Set the root type. May override the one set in the schema. bool SetRootType(const char *name); diff --git a/src/idl_parser.cpp b/src/idl_parser.cpp index ef4a5bc969..caa26ba0e7 100644 --- a/src/idl_parser.cpp +++ b/src/idl_parser.cpp @@ -3264,6 +3264,10 @@ bool Parser::ParseJson(const char *json, const char *json_filename) { return done; } +std::ptrdiff_t Parser::BytesConsumed() const { + return std::distance(source_, cursor_); +} + CheckedError Parser::StartParseFile(const char *source, const char *source_filename) { file_being_parsed_ = source_filename ? source_filename : ""; @@ -3601,9 +3605,11 @@ CheckedError Parser::DoParseJson() { : nullptr); } } - // Check that JSON file doesn't contain more objects or IDL directives. - // Comments after JSON are allowed. - EXPECT(kTokenEof); + if (opts.require_json_eof) { + // Check that JSON file doesn't contain more objects or IDL directives. + // Comments after JSON are allowed. + EXPECT(kTokenEof); + } return NoError(); } diff --git a/tests/test.cpp b/tests/test.cpp index 8c5c027106..6e5dbc4e3e 100644 --- a/tests/test.cpp +++ b/tests/test.cpp @@ -1402,6 +1402,49 @@ void NativeInlineTableVectorTest() { TEST_ASSERT(unpacked.t == test.t); } +void DoNotRequireEofTest(const std::string& tests_data_path) { + std::string schemafile; + bool ok = flatbuffers::LoadFile( + (tests_data_path + "monster_test.fbs").c_str(), false, &schemafile); + TEST_EQ(ok, true); + auto include_test_path = + flatbuffers::ConCatPathFileName(tests_data_path, "include_test"); + const char *include_directories[] = { tests_data_path.c_str(), + include_test_path.c_str(), nullptr }; + flatbuffers::IDLOptions opt; + opt.require_json_eof = false; + flatbuffers::Parser parser(opt); + ok = parser.Parse(schemafile.c_str(), include_directories); + TEST_EQ(ok, true); + + const char *str = R"(This string contains two monsters, the first one is { + "name": "Blob", + "hp": 5 + } + and the second one is { + "name": "Imp", + "hp": 10 + } + )"; + const char *tableStart = std::strchr(str, '{'); + ok = parser.ParseJson(tableStart); + TEST_EQ(ok, true); + + const Monster *monster = GetMonster(parser.builder_.GetBufferPointer()); + TEST_EQ_STR(monster->name()->c_str(), "Blob"); + TEST_EQ(monster->hp(), 5); + + tableStart += parser.BytesConsumed(); + + tableStart = std::strchr(tableStart + 1, '{'); + ok = parser.ParseJson(tableStart); + TEST_EQ(ok, true); + + monster = GetMonster(parser.builder_.GetBufferPointer()); + TEST_EQ_STR(monster->name()->c_str(), "Imp"); + TEST_EQ(monster->hp(), 10); +} + int FlatBufferTests(const std::string &tests_data_path) { // Run our various test suites: @@ -1448,6 +1491,7 @@ int FlatBufferTests(const std::string &tests_data_path) { TestMonsterExtraFloats(tests_data_path); ParseIncorrectMonsterJsonTest(tests_data_path); FixedLengthArraySpanTest(tests_data_path); + DoNotRequireEofTest(tests_data_path); #endif UtilConvertCase(); From 214cc94681f0c0ceb11ac98ce3879928f92e539f Mon Sep 17 00:00:00 2001 From: Casper Date: Thu, 3 Nov 2022 12:24:00 -0400 Subject: [PATCH 002/571] Bump Rust version to 22.10.26 before publication (#7622) --- rust/flatbuffers/Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rust/flatbuffers/Cargo.toml b/rust/flatbuffers/Cargo.toml index 821c5aec74..2cba5b7279 100644 --- a/rust/flatbuffers/Cargo.toml +++ b/rust/flatbuffers/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "flatbuffers" -version = "22.9.29" +version = "22.10.26" edition = "2018" authors = ["Robert Winslow ", "FlatBuffers Maintainers"] license = "Apache-2.0" From a22434e2a12139e5b46994fbee1942c01c10872d Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Tue, 8 Nov 2022 18:36:35 +0100 Subject: [PATCH 003/571] Add missing #include for std::min/std::max uses, and #include for std::numeric_limits<> (#7624) --- include/flatbuffers/buffer.h | 4 +++- include/flatbuffers/flatbuffer_builder.h | 1 + include/flatbuffers/flatbuffers.h | 2 ++ include/flatbuffers/flexbuffers.h | 1 + include/flatbuffers/idl.h | 1 + include/flatbuffers/util.h | 1 + include/flatbuffers/vector_downward.h | 2 ++ src/annotated_binary_text_gen.cpp | 1 + src/binary_annotator.cpp | 3 ++- src/flatc.cpp | 2 ++ src/idl_gen_cpp.cpp | 1 + src/idl_gen_go.cpp | 1 + src/idl_gen_json_schema.cpp | 2 ++ src/idl_gen_text.cpp | 2 ++ tests/flexbuffers_test.cpp | 4 +++- tests/fuzz_test.cpp | 4 +++- tests/monster_test.cpp | 3 ++- tests/parser_test.cpp | 1 + tests/test.cpp | 1 + 19 files changed, 32 insertions(+), 5 deletions(-) diff --git a/include/flatbuffers/buffer.h b/include/flatbuffers/buffer.h index 96ae538f3a..e26a153c3f 100644 --- a/include/flatbuffers/buffer.h +++ b/include/flatbuffers/buffer.h @@ -17,6 +17,8 @@ #ifndef FLATBUFFERS_BUFFER_H_ #define FLATBUFFERS_BUFFER_H_ +#include + #include "flatbuffers/base.h" namespace flatbuffers { @@ -149,4 +151,4 @@ template const T *GetSizePrefixedRoot(const void *buf) { } // namespace flatbuffers -#endif // FLATBUFFERS_BUFFER_H_ \ No newline at end of file +#endif // FLATBUFFERS_BUFFER_H_ diff --git a/include/flatbuffers/flatbuffer_builder.h b/include/flatbuffers/flatbuffer_builder.h index 66c33ffccd..090a60e4f1 100644 --- a/include/flatbuffers/flatbuffer_builder.h +++ b/include/flatbuffers/flatbuffer_builder.h @@ -17,6 +17,7 @@ #ifndef FLATBUFFERS_FLATBUFFER_BUILDER_H_ #define FLATBUFFERS_FLATBUFFER_BUILDER_H_ +#include #include #include diff --git a/include/flatbuffers/flatbuffers.h b/include/flatbuffers/flatbuffers.h index 642178897b..d7ee6ab4dd 100644 --- a/include/flatbuffers/flatbuffers.h +++ b/include/flatbuffers/flatbuffers.h @@ -17,6 +17,8 @@ #ifndef FLATBUFFERS_H_ #define FLATBUFFERS_H_ +#include + // TODO: These includes are for mitigating the pains of users editing their // source because they relied on flatbuffers.h to include everything for them. #include "flatbuffers/array.h" diff --git a/include/flatbuffers/flexbuffers.h b/include/flatbuffers/flexbuffers.h index 7bf84302e5..79cdd9c5d6 100644 --- a/include/flatbuffers/flexbuffers.h +++ b/include/flatbuffers/flexbuffers.h @@ -17,6 +17,7 @@ #ifndef FLATBUFFERS_FLEXBUFFERS_H_ #define FLATBUFFERS_FLEXBUFFERS_H_ +#include #include // Used to select STL variant. #include "flatbuffers/base.h" diff --git a/include/flatbuffers/idl.h b/include/flatbuffers/idl.h index fd2da8bfae..2cd67cd965 100644 --- a/include/flatbuffers/idl.h +++ b/include/flatbuffers/idl.h @@ -17,6 +17,7 @@ #ifndef FLATBUFFERS_IDL_H_ #define FLATBUFFERS_IDL_H_ +#include #include #include #include diff --git a/include/flatbuffers/util.h b/include/flatbuffers/util.h index 73a3ab786b..f8d9f99a5a 100644 --- a/include/flatbuffers/util.h +++ b/include/flatbuffers/util.h @@ -31,6 +31,7 @@ # include #endif // FLATBUFFERS_PREFER_PRINTF +#include #include namespace flatbuffers { diff --git a/include/flatbuffers/vector_downward.h b/include/flatbuffers/vector_downward.h index d25e544970..2dbaa60055 100644 --- a/include/flatbuffers/vector_downward.h +++ b/include/flatbuffers/vector_downward.h @@ -17,6 +17,8 @@ #ifndef FLATBUFFERS_VECTOR_DOWNWARD_H_ #define FLATBUFFERS_VECTOR_DOWNWARD_H_ +#include + #include "flatbuffers/base.h" #include "flatbuffers/default_allocator.h" #include "flatbuffers/detached_buffer.h" diff --git a/src/annotated_binary_text_gen.cpp b/src/annotated_binary_text_gen.cpp index ec30b1dd69..1c7a4dd623 100644 --- a/src/annotated_binary_text_gen.cpp +++ b/src/annotated_binary_text_gen.cpp @@ -1,5 +1,6 @@ #include "annotated_binary_text_gen.h" +#include #include #include diff --git a/src/binary_annotator.cpp b/src/binary_annotator.cpp index dd0b4549e6..274c629bc3 100644 --- a/src/binary_annotator.cpp +++ b/src/binary_annotator.cpp @@ -1,5 +1,6 @@ #include "binary_annotator.h" +#include #include #include #include @@ -1416,4 +1417,4 @@ bool BinaryAnnotator::ContainsSection(const uint64_t offset) { it->second.regions.back().length; } -} // namespace flatbuffers \ No newline at end of file +} // namespace flatbuffers diff --git a/src/flatc.cpp b/src/flatc.cpp index 1d12a1769c..8f6ef0041d 100644 --- a/src/flatc.cpp +++ b/src/flatc.cpp @@ -16,6 +16,8 @@ #include "flatbuffers/flatc.h" +#include +#include #include #include diff --git a/src/idl_gen_cpp.cpp b/src/idl_gen_cpp.cpp index dfe55e022b..6072c0889d 100644 --- a/src/idl_gen_cpp.cpp +++ b/src/idl_gen_cpp.cpp @@ -16,6 +16,7 @@ // independent from idl_parser, since this code is not needed for most clients +#include #include #include diff --git a/src/idl_gen_go.cpp b/src/idl_gen_go.cpp index 51e018a009..76a6066e20 100644 --- a/src/idl_gen_go.cpp +++ b/src/idl_gen_go.cpp @@ -16,6 +16,7 @@ // independent from idl_parser, since this code is not needed for most clients +#include #include #include diff --git a/src/idl_gen_json_schema.cpp b/src/idl_gen_json_schema.cpp index 5cb6a9dcb2..796d1e20ca 100644 --- a/src/idl_gen_json_schema.cpp +++ b/src/idl_gen_json_schema.cpp @@ -14,7 +14,9 @@ * limitations under the License. */ +#include #include +#include #include "flatbuffers/code_generators.h" #include "flatbuffers/idl.h" diff --git a/src/idl_gen_text.cpp b/src/idl_gen_text.cpp index 3b69c9587e..52f854dd45 100644 --- a/src/idl_gen_text.cpp +++ b/src/idl_gen_text.cpp @@ -16,6 +16,8 @@ // independent from idl_parser, since this code is not needed for most clients +#include + #include "flatbuffers/flatbuffers.h" #include "flatbuffers/flexbuffers.h" #include "flatbuffers/idl.h" diff --git a/tests/flexbuffers_test.cpp b/tests/flexbuffers_test.cpp index 1b34f85820..b8da8ed70d 100644 --- a/tests/flexbuffers_test.cpp +++ b/tests/flexbuffers_test.cpp @@ -1,3 +1,5 @@ +#include + #include "flexbuffers_test.h" #include "flatbuffers/flexbuffers.h" @@ -289,4 +291,4 @@ void ParseFlexbuffersFromJsonWithNullTest() { } } // namespace tests -} // namespace flatbuffers \ No newline at end of file +} // namespace flatbuffers diff --git a/tests/fuzz_test.cpp b/tests/fuzz_test.cpp index 66883faaa1..060742466c 100644 --- a/tests/fuzz_test.cpp +++ b/tests/fuzz_test.cpp @@ -1,3 +1,5 @@ +#include + #include "fuzz_test.h" #include "flatbuffers/flatbuffers.h" @@ -302,4 +304,4 @@ void FuzzTest2() { } } // namespace tests -} // namespace flatbuffers \ No newline at end of file +} // namespace flatbuffers diff --git a/tests/monster_test.cpp b/tests/monster_test.cpp index 6e810dd5bf..f081dd92f5 100644 --- a/tests/monster_test.cpp +++ b/tests/monster_test.cpp @@ -1,5 +1,6 @@ #include "monster_test.h" +#include #include #include "flatbuffers/flatbuffer_builder.h" @@ -852,4 +853,4 @@ void UnPackTo(const uint8_t *flatbuf) { } } // namespace tests -} // namespace flatbuffers \ No newline at end of file +} // namespace flatbuffers diff --git a/tests/parser_test.cpp b/tests/parser_test.cpp index 1a43504457..4d9e0762bc 100644 --- a/tests/parser_test.cpp +++ b/tests/parser_test.cpp @@ -1,6 +1,7 @@ #include "parser_test.h" #include +#include #include #include "flatbuffers/idl.h" diff --git a/tests/test.cpp b/tests/test.cpp index 6e5dbc4e3e..440077acd8 100644 --- a/tests/test.cpp +++ b/tests/test.cpp @@ -16,6 +16,7 @@ #include #include +#include #include #include From 37b1acdaff456b5c56476a0b73ada35ab947ef0c Mon Sep 17 00:00:00 2001 From: Valeriy Van Date: Tue, 8 Nov 2022 19:49:27 +0200 Subject: [PATCH 004/571] Fix current official name of macOS (#7627) Co-authored-by: Derek Bailey --- readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/readme.md b/readme.md index 5056a64729..bc2db1919f 100644 --- a/readme.md +++ b/readme.md @@ -17,7 +17,7 @@ maximum memory efficiency. It allows you to directly access serialized data with ## Supported operating systems * Windows -* MacOS X +* macOS * Linux * Android * And any others with a recent C++ compiler (C++ 11 and newer) From 4de2814c7bace0fc44a0de571d5556d692f6ca9f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E5=B8=85?= <770722922@qq.com> Date: Wed, 9 Nov 2022 01:53:53 +0800 Subject: [PATCH 005/571] Fix: arduino platform build (#7625) --- include/flatbuffers/base.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/flatbuffers/base.h b/include/flatbuffers/base.h index 8bad2f11fb..1a5ae76772 100644 --- a/include/flatbuffers/base.h +++ b/include/flatbuffers/base.h @@ -32,7 +32,7 @@ #include #include -#if defined(ARDUINO) && !defined(ARDUINOSTL_M_H) +#if defined(ARDUINO) && !defined(ARDUINOSTL_M_H) && defined(__AVR__) #include #else #include From 2facfeec7e0476e21965a5dc1c9ca4daa08d6706 Mon Sep 17 00:00:00 2001 From: Ben Beasley Date: Tue, 8 Nov 2022 12:59:48 -0500 Subject: [PATCH 006/571] Fix missing spaces in flatc help text (#7612) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Fix error in --json-nested-bytes help text Correct “bytesin” to “bytes in” * Fix missing space in --no-leak-private-annotation help text --- src/flatc.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/flatc.cpp b/src/flatc.cpp index 8f6ef0041d..6db6945567 100644 --- a/src/flatc.cpp +++ b/src/flatc.cpp @@ -217,14 +217,14 @@ const static FlatCOption options[] = { "Allows (de)serialization of JSON text in the Object API. (requires " "--gen-object-api)." }, { "", "json-nested-bytes", "", - "Allow a nested_flatbuffer field to be parsed as a vector of bytes" + "Allow a nested_flatbuffer field to be parsed as a vector of bytes " "in JSON, which is unsafe unless checked by a verifier afterwards." }, { "", "ts-flat-files", "", "Only generated one typescript file per .fbs file." }, { "", "annotate", "SCHEMA", "Annotate the provided BINARY_FILE with the specified SCHEMA file." }, { "", "no-leak-private-annotation", "", - "Prevents multiple type of annotations within a Fbs SCHEMA file." + "Prevents multiple type of annotations within a Fbs SCHEMA file. " "Currently this is required to generate private types in Rust" }, }; From dbc58ab77cfeed10180f9981a25e5c39f16b9b2e Mon Sep 17 00:00:00 2001 From: Ben Beasley Date: Tue, 8 Nov 2022 13:16:17 -0500 Subject: [PATCH 007/571] Fix help output for --gen-includes (#7611) Fixes the --help output documenting the deprecated --gen-includes option, in which the option name contained a typo (--gen-inclues). --- src/flatc.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/flatc.cpp b/src/flatc.cpp index 6db6945567..40a538fcd6 100644 --- a/src/flatc.cpp +++ b/src/flatc.cpp @@ -90,7 +90,7 @@ const static FlatCOption options[] = { "--no-prefix." }, { "", "swift-implementation-only", "", "Adds a @_implementationOnly to swift imports" }, - { "", "gen-inclues", "", + { "", "gen-includes", "", "(deprecated), this is the default behavior. If the original behavior is " "required (no include statements) use --no-includes." }, { "", "no-includes", "", From 001adf782dba8e9fa869b15389725b3eab32e51b Mon Sep 17 00:00:00 2001 From: Michael Le Date: Tue, 8 Nov 2022 10:51:24 -0800 Subject: [PATCH 008/571] Add support for parsing proto map fields (#7613) * Add support for proto 3 map to fbs gen * Run clang-format * Update proto golden test * Rename variables * Remove iostream * Remove iostream * Run clang format Co-authored-by: Derek Bailey --- include/flatbuffers/idl.h | 5 +-- src/idl_gen_fbs.cpp | 1 + src/idl_parser.cpp | 39 +++++++++++++++++++++++ tests/proto_test.cpp | 2 +- tests/prototest/GenerateProtoGoldens.sh | 24 ++++++++++++++ tests/prototest/test.golden | 12 +++++++ tests/prototest/test.proto | 3 ++ tests/prototest/test_include.golden | 12 +++++++ tests/prototest/test_suffix.golden | 12 +++++++ tests/prototest/test_union.golden | 12 +++++++ tests/prototest/test_union_include.golden | 12 +++++++ tests/prototest/test_union_suffix.golden | 12 +++++++ 12 files changed, 143 insertions(+), 3 deletions(-) create mode 100755 tests/prototest/GenerateProtoGoldens.sh diff --git a/include/flatbuffers/idl.h b/include/flatbuffers/idl.h index 2cd67cd965..1701236bf7 100644 --- a/include/flatbuffers/idl.h +++ b/include/flatbuffers/idl.h @@ -489,11 +489,11 @@ inline bool IsVector(const Type &type) { return type.base_type == BASE_TYPE_VECTOR; } -inline bool IsVectorOfStruct(const Type& type) { +inline bool IsVectorOfStruct(const Type &type) { return IsVector(type) && IsStruct(type.VectorType()); } -inline bool IsVectorOfTable(const Type& type) { +inline bool IsVectorOfTable(const Type &type) { return IsVector(type) && IsTable(type.VectorType()); } @@ -1031,6 +1031,7 @@ class Parser : public ParserState { FLATBUFFERS_CHECKED_ERROR ParseService(const char *filename); FLATBUFFERS_CHECKED_ERROR ParseProtoFields(StructDef *struct_def, bool isextend, bool inside_oneof); + FLATBUFFERS_CHECKED_ERROR ParseProtoMapField(StructDef *struct_def); FLATBUFFERS_CHECKED_ERROR ParseProtoOption(); FLATBUFFERS_CHECKED_ERROR ParseProtoKey(); FLATBUFFERS_CHECKED_ERROR ParseProtoDecl(); diff --git a/src/idl_gen_fbs.cpp b/src/idl_gen_fbs.cpp index 782557f09a..9c58dc4a36 100644 --- a/src/idl_gen_fbs.cpp +++ b/src/idl_gen_fbs.cpp @@ -137,6 +137,7 @@ std::string GenerateFBS(const Parser &parser, const std::string &file_name) { schema += " " + field.name + ":" + GenType(field.value.type); if (field.value.constant != "0") schema += " = " + field.value.constant; if (field.IsRequired()) schema += " (required)"; + if (field.key) schema += " (key)"; schema += ";\n"; } } diff --git a/src/idl_parser.cpp b/src/idl_parser.cpp index caa26ba0e7..530c7b3c43 100644 --- a/src/idl_parser.cpp +++ b/src/idl_parser.cpp @@ -507,6 +507,8 @@ CheckedError Parser::Next() { case ')': case '[': case ']': + case '<': + case '>': case ',': case ':': case ';': @@ -2896,6 +2898,8 @@ CheckedError Parser::ParseProtoFields(StructDef *struct_def, bool isextend, NEXT(); while (!Is(';')) { NEXT(); } // A variety of formats, just skip. NEXT(); + } else if (IsIdent("map")) { + ECHECK(ParseProtoMapField(struct_def)); } else { std::vector field_comment = doc_comment_; // Parse the qualifier. @@ -3030,6 +3034,41 @@ CheckedError Parser::ParseProtoFields(StructDef *struct_def, bool isextend, return NoError(); } +CheckedError Parser::ParseProtoMapField(StructDef *struct_def) { + NEXT(); + EXPECT('<'); + Type key_type; + ECHECK(ParseType(key_type)); + EXPECT(','); + Type value_type; + ECHECK(ParseType(value_type)); + EXPECT('>'); + auto field_name = attribute_; + NEXT(); + EXPECT('='); + EXPECT(kTokenIntegerConstant); + EXPECT(';'); + + auto entry_table_name = ConvertCase(field_name, Case::kUpperCamel) + "Entry"; + StructDef *entry_table; + ECHECK(StartStruct(entry_table_name, &entry_table)); + entry_table->has_key = true; + FieldDef *key_field; + ECHECK(AddField(*entry_table, "key", key_type, &key_field)); + key_field->key = true; + FieldDef *value_field; + ECHECK(AddField(*entry_table, "value", value_type, &value_field)); + + Type field_type; + field_type.base_type = BASE_TYPE_VECTOR; + field_type.element = BASE_TYPE_STRUCT; + field_type.struct_def = entry_table; + FieldDef *field; + ECHECK(AddField(*struct_def, field_name, field_type, &field)); + + return NoError(); +} + CheckedError Parser::ParseProtoKey() { if (token_ == '(') { NEXT(); diff --git a/tests/proto_test.cpp b/tests/proto_test.cpp index 7281c2cc68..1d1c98ac53 100644 --- a/tests/proto_test.cpp +++ b/tests/proto_test.cpp @@ -201,4 +201,4 @@ void ParseProtoBufAsciiTest() { } } // namespace tests -} // namespace flatbuffers \ No newline at end of file +} // namespace flatbuffers diff --git a/tests/prototest/GenerateProtoGoldens.sh b/tests/prototest/GenerateProtoGoldens.sh new file mode 100755 index 0000000000..8cf24f9181 --- /dev/null +++ b/tests/prototest/GenerateProtoGoldens.sh @@ -0,0 +1,24 @@ +#!/bin/bash +# +# Copyright 2022 Google Inc. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +pushd "$(dirname $0)" >/dev/null + +./../../flatc --proto test.proto && mv test.fbs test_include.golden +./../../flatc --proto --gen-all test.proto && mv test.fbs test.golden +./../../flatc --proto --oneof-union test.proto && mv test.fbs test_union_include.golden +./../../flatc --proto --gen-all --oneof-union test.proto && mv test.fbs test_union.golden +./../../flatc --proto --gen-all --proto-namespace-suffix test_namespace_suffix test.proto && mv test.fbs test_suffix.golden +./../../flatc --proto --gen-all --proto-namespace-suffix test_namespace_suffix --oneof-union test.proto && mv test.fbs test_union_suffix.golden diff --git a/tests/prototest/test.golden b/tests/prototest/test.golden index 949a003d5c..4484b49821 100644 --- a/tests/prototest/test.golden +++ b/tests/prototest/test.golden @@ -54,6 +54,8 @@ table ProtoMessage { u:float = +inf; v:float = +inf; w:float = -inf; + grades:[proto.test.ProtoMessage_.GradesEntry]; + other_message_map:[proto.test.ProtoMessage_.OtherMessageMapEntry]; } namespace proto.test.ProtoMessage_; @@ -73,3 +75,13 @@ table Anonymous0 { t:proto.test.ProtoMessage_.OtherMessage; } +table GradesEntry { + key:string (key); + value:float; +} + +table OtherMessageMapEntry { + key:string (key); + value:proto.test.ProtoMessage_.OtherMessage; +} + diff --git a/tests/prototest/test.proto b/tests/prototest/test.proto index 71ec8d51d7..98c92f88ad 100644 --- a/tests/prototest/test.proto +++ b/tests/prototest/test.proto @@ -71,4 +71,7 @@ message ProtoMessage { optional float u = 34 [default = inf]; optional float v = 35 [default = +inf]; optional float w = 36 [default = -inf]; + + map grades = 37; + map other_message_map = 38; } diff --git a/tests/prototest/test_include.golden b/tests/prototest/test_include.golden index b98de44fb9..791f7f7b5c 100644 --- a/tests/prototest/test_include.golden +++ b/tests/prototest/test_include.golden @@ -52,6 +52,8 @@ table ProtoMessage { u:float = +inf; v:float = +inf; w:float = -inf; + grades:[proto.test.ProtoMessage_.GradesEntry]; + other_message_map:[proto.test.ProtoMessage_.OtherMessageMapEntry]; } namespace proto.test.ProtoMessage_; @@ -71,3 +73,13 @@ table Anonymous0 { t:proto.test.ProtoMessage_.OtherMessage; } +table GradesEntry { + key:string (key); + value:float; +} + +table OtherMessageMapEntry { + key:string (key); + value:proto.test.ProtoMessage_.OtherMessage; +} + diff --git a/tests/prototest/test_suffix.golden b/tests/prototest/test_suffix.golden index 4ab2146c57..b76acb7fbc 100644 --- a/tests/prototest/test_suffix.golden +++ b/tests/prototest/test_suffix.golden @@ -54,6 +54,8 @@ table ProtoMessage { u:float = +inf; v:float = +inf; w:float = -inf; + grades:[proto.test.test_namespace_suffix.ProtoMessage_.GradesEntry]; + other_message_map:[proto.test.test_namespace_suffix.ProtoMessage_.OtherMessageMapEntry]; } namespace proto.test.test_namespace_suffix.ProtoMessage_; @@ -73,3 +75,13 @@ table Anonymous0 { t:proto.test.test_namespace_suffix.ProtoMessage_.OtherMessage; } +table GradesEntry { + key:string (key); + value:float; +} + +table OtherMessageMapEntry { + key:string (key); + value:proto.test.test_namespace_suffix.ProtoMessage_.OtherMessage; +} + diff --git a/tests/prototest/test_union.golden b/tests/prototest/test_union.golden index 241f3491b3..15d365b54b 100644 --- a/tests/prototest/test_union.golden +++ b/tests/prototest/test_union.golden @@ -64,6 +64,8 @@ table ProtoMessage { u:float = +inf; v:float = +inf; w:float = -inf; + grades:[proto.test.ProtoMessage_.GradesEntry]; + other_message_map:[proto.test.ProtoMessage_.OtherMessageMapEntry]; } namespace proto.test.ProtoMessage_; @@ -75,3 +77,13 @@ table OtherMessage { foo_bar_baz:proto.test.ProtoMessage_.OtherMessage_.ProtoEnum; } +table GradesEntry { + key:string (key); + value:float; +} + +table OtherMessageMapEntry { + key:string (key); + value:proto.test.ProtoMessage_.OtherMessage; +} + diff --git a/tests/prototest/test_union_include.golden b/tests/prototest/test_union_include.golden index 1fdb2acbc3..ce36463567 100644 --- a/tests/prototest/test_union_include.golden +++ b/tests/prototest/test_union_include.golden @@ -62,6 +62,8 @@ table ProtoMessage { u:float = +inf; v:float = +inf; w:float = -inf; + grades:[proto.test.ProtoMessage_.GradesEntry]; + other_message_map:[proto.test.ProtoMessage_.OtherMessageMapEntry]; } namespace proto.test.ProtoMessage_; @@ -73,3 +75,13 @@ table OtherMessage { foo_bar_baz:proto.test.ProtoMessage_.OtherMessage_.ProtoEnum; } +table GradesEntry { + key:string (key); + value:float; +} + +table OtherMessageMapEntry { + key:string (key); + value:proto.test.ProtoMessage_.OtherMessage; +} + diff --git a/tests/prototest/test_union_suffix.golden b/tests/prototest/test_union_suffix.golden index 2278edd2c3..0c0c5e586c 100644 --- a/tests/prototest/test_union_suffix.golden +++ b/tests/prototest/test_union_suffix.golden @@ -64,6 +64,8 @@ table ProtoMessage { u:float = +inf; v:float = +inf; w:float = -inf; + grades:[proto.test.test_namespace_suffix.ProtoMessage_.GradesEntry]; + other_message_map:[proto.test.test_namespace_suffix.ProtoMessage_.OtherMessageMapEntry]; } namespace proto.test.test_namespace_suffix.ProtoMessage_; @@ -75,3 +77,13 @@ table OtherMessage { foo_bar_baz:proto.test.test_namespace_suffix.ProtoMessage_.OtherMessage_.ProtoEnum; } +table GradesEntry { + key:string (key); + value:float; +} + +table OtherMessageMapEntry { + key:string (key); + value:proto.test.test_namespace_suffix.ProtoMessage_.OtherMessage; +} + From 8aa8b9139eb330f27816a5b8b5bbef402fbe3632 Mon Sep 17 00:00:00 2001 From: James Kuszmaul Date: Tue, 8 Nov 2022 10:59:46 -0800 Subject: [PATCH 009/571] Fix handling of +/-inf defaults in TS/rust/go/dart codegen (#7588) +/-inf were not being handled, and so invalid typescript was being generated when a float/double had an infinite default value. NaN was being handled correctly. Co-authored-by: Derek Bailey Co-authored-by: Casper --- dart/test/flat_buffers_test.dart | 15 +- include/flatbuffers/util.h | 12 + src/bfbs_gen_nim.cpp | 7 + src/idl_gen_dart.cpp | 20 +- src/idl_gen_go.cpp | 27 + src/idl_gen_rust.cpp | 15 +- src/idl_gen_ts.cpp | 12 +- tests/MyGame/Example/Monster.cs | 88 +- tests/MyGame/Example/Monster.go | 148 +- tests/MyGame/Example/Monster.java | 50 +- tests/MyGame/Example/Monster.kt | 122 +- tests/MyGame/Example/Monster.lua | 98 +- tests/MyGame/Example/Monster.nim | 74 +- tests/MyGame/Example/Monster.php | 166 +- tests/MyGame/Example/Monster.py | 106 +- tests/MyGame/Example/MonsterT.java | 48 + .../generated_cpp17/monster_test_generated.h | 222 +- tests/cpp17/test_cpp17.cpp | 8 + tests/go_test.go | 8 + tests/monster_test.afb | 7062 +++++++++-------- tests/monster_test.bfbs | Bin 14784 -> 15736 bytes tests/monster_test.fbs | 9 + tests/monster_test.schema.json | 24 + .../my_game/example/monster_generated.rs | 184 + tests/monster_test_bfbs_generated.h | 1231 +-- tests/monster_test_generated.h | 212 +- tests/monster_test_generated.lobster | 42 +- tests/monster_test_generated.py | 90 +- ...onster_test_my_game.example_generated.dart | 120 +- .../my_game/example/monster_generated.rs | 194 +- .../ext_only/monster_test_generated.hpp | 212 +- .../filesuffix_only/monster_test_suffix.h | 212 +- .../monster_test_suffix.hpp | 212 +- tests/reflection_test.cpp | 17 +- .../rust_usage_test/tests/integration_test.rs | 24 +- .../monster_test_generated.swift | 124 +- tests/test.cpp | 15 + tests/ts/monsterdata_javascript_wire.mon | Bin 720 -> 744 bytes tests/ts/my-game/example/monster.js | 132 +- tests/ts/my-game/example/monster.ts | 198 +- .../ts-flat-files/monster_test_generated.ts | 74 +- 41 files changed, 7602 insertions(+), 4032 deletions(-) diff --git a/dart/test/flat_buffers_test.dart b/dart/test/flat_buffers_test.dart index 5298b17088..000ccff68c 100644 --- a/dart/test/flat_buffers_test.dart +++ b/dart/test/flat_buffers_test.dart @@ -87,7 +87,10 @@ class CheckOtherLangaugesData { 'testrequirednestedflatbuffer: null, scalarKeySortedTables: null, ' 'nativeInline: null, ' 'longEnumNonEnumDefault: LongEnum{value: 0}, ' - 'longEnumNormalDefault: LongEnum{value: 2}}, ' + 'longEnumNormalDefault: LongEnum{value: 2}, nanDefault: NaN, ' + 'infDefault: Infinity, positiveInfDefault: Infinity, infinityDefault: ' + 'Infinity, positiveInfinityDefault: Infinity, negativeInfDefault: ' + '-Infinity, negativeInfinityDefault: -Infinity, doubleInfDefault: Infinity}, ' 'test4: [Test{a: 10, b: 20}, Test{a: 30, b: 40}], ' 'testarrayofstring: [test1, test2], testarrayoftables: null, ' 'enemy: Monster{pos: null, mana: 150, hp: 100, name: Fred, ' @@ -110,7 +113,10 @@ class CheckOtherLangaugesData { 'testrequirednestedflatbuffer: null, scalarKeySortedTables: null, ' 'nativeInline: null, ' 'longEnumNonEnumDefault: LongEnum{value: 0}, ' - 'longEnumNormalDefault: LongEnum{value: 2}}, ' + 'longEnumNormalDefault: LongEnum{value: 2}, nanDefault: NaN, ' + 'infDefault: Infinity, positiveInfDefault: Infinity, infinityDefault: ' + 'Infinity, positiveInfinityDefault: Infinity, negativeInfDefault: ' + '-Infinity, negativeInfinityDefault: -Infinity, doubleInfDefault: Infinity}, ' 'testnestedflatbuffer: null, testempty: null, testbool: true, ' 'testhashs32Fnv1: -579221183, testhashu32Fnv1: 3715746113, ' 'testhashs64Fnv1: 7930699090847568257, ' @@ -137,7 +143,10 @@ class CheckOtherLangaugesData { 'miss, val: 0, count: 0}, Stat{id: hit, val: 10, count: 1}], ' 'nativeInline: Test{a: 1, b: 2}, ' 'longEnumNonEnumDefault: LongEnum{value: 0}, ' - 'longEnumNormalDefault: LongEnum{value: 2}}', + 'longEnumNormalDefault: LongEnum{value: 2}, nanDefault: NaN, ' + 'infDefault: Infinity, positiveInfDefault: Infinity, infinityDefault: ' + 'Infinity, positiveInfinityDefault: Infinity, negativeInfDefault: ' + '-Infinity, negativeInfinityDefault: -Infinity, doubleInfDefault: Infinity}' ); } } diff --git a/include/flatbuffers/util.h b/include/flatbuffers/util.h index f8d9f99a5a..74edbce467 100644 --- a/include/flatbuffers/util.h +++ b/include/flatbuffers/util.h @@ -393,6 +393,18 @@ inline uint64_t StringToUInt(const char *s, int base = 10) { return StringToIntegerImpl(&val, s, base) ? val : 0; } +inline bool StringIsFlatbufferNan(const std::string &s) { + return s == "nan" || s == "+nan" || s == "-nan"; +} + +inline bool StringIsFlatbufferPositiveInfinity(const std::string &s) { + return s == "inf" || s == "+inf" || s == "infinity" || s == "+infinity"; +} + +inline bool StringIsFlatbufferNegativeInfinity(const std::string &s) { + return s == "-inf" || s == "-infinity"; +} + typedef bool (*LoadFileFunction)(const char *filename, bool binary, std::string *dest); typedef bool (*FileExistsFunction)(const char *filename); diff --git a/src/bfbs_gen_nim.cpp b/src/bfbs_gen_nim.cpp index b74d148301..6b2c130f95 100644 --- a/src/bfbs_gen_nim.cpp +++ b/src/bfbs_gen_nim.cpp @@ -470,6 +470,13 @@ class NimBfbsGenerator : public BaseBfbsGenerator { std::string DefaultValue(const r::Field *field) const { const r::BaseType base_type = field->type()->base_type(); if (IsFloatingPoint(base_type)) { + if (field->default_real() != field->default_real()) { + return "NaN"; + } else if (field->default_real() == std::numeric_limits::infinity()) { + return "Inf"; + } else if (field->default_real() == -std::numeric_limits::infinity()) { + return "-Inf"; + } return NumToString(field->default_real()); } if (IsBool(base_type)) { diff --git a/src/idl_gen_dart.cpp b/src/idl_gen_dart.cpp index 0bf230ddde..ada5956081 100644 --- a/src/idl_gen_dart.cpp +++ b/src/idl_gen_dart.cpp @@ -16,6 +16,7 @@ // independent from idl_parser, since this code is not needed for most clients #include +#include #include "flatbuffers/code_generators.h" #include "flatbuffers/flatbuffers.h" @@ -721,16 +722,17 @@ class DartGenerator : public BaseGenerator { if (!value.constant.empty() && value.constant != "0") { if (IsBool(value.type.base_type)) { return "true"; - } else if (value.constant == "nan" || value.constant == "+nan" || - value.constant == "-nan") { - return "double.nan"; - } else if (value.constant == "inf" || value.constant == "+inf") { - return "double.infinity"; - } else if (value.constant == "-inf") { - return "double.negativeInfinity"; - } else { - return value.constant; } + if (IsScalar(value.type.base_type)) { + if (StringIsFlatbufferNan(value.constant)) { + return "double.nan"; + } else if (StringIsFlatbufferPositiveInfinity(value.constant)) { + return "double.infinity"; + } else if (StringIsFlatbufferNegativeInfinity(value.constant)) { + return "double.negativeInfinity"; + } + } + return value.constant; } else if (IsBool(value.type.base_type)) { return "false"; } else if (IsScalar(value.type.base_type) && !IsUnion(value.type)) { diff --git a/src/idl_gen_go.cpp b/src/idl_gen_go.cpp index 76a6066e20..33917ff776 100644 --- a/src/idl_gen_go.cpp +++ b/src/idl_gen_go.cpp @@ -17,6 +17,7 @@ // independent from idl_parser, since this code is not needed for most clients #include +#include #include #include @@ -102,6 +103,7 @@ class GoGenerator : public BaseGenerator { for (auto it = parser_.enums_.vec.begin(); it != parser_.enums_.vec.end(); ++it) { tracked_imported_namespaces_.clear(); + needs_math_import_ = false; needs_imports = false; std::string enumcode; GenEnum(**it, &enumcode); @@ -121,6 +123,7 @@ class GoGenerator : public BaseGenerator { for (auto it = parser_.structs_.vec.begin(); it != parser_.structs_.vec.end(); ++it) { tracked_imported_namespaces_.clear(); + needs_math_import_ = false; std::string declcode; GenStruct(**it, &declcode); if (parser_.opts.one_file) { @@ -154,6 +157,7 @@ class GoGenerator : public BaseGenerator { } }; std::set tracked_imported_namespaces_; + bool needs_math_import_ = false; // Most field accessors need to retrieve and test the field offset first, // this is the prefix code for that. @@ -1277,6 +1281,23 @@ class GoGenerator : public BaseGenerator { switch (field.value.type.base_type) { case BASE_TYPE_BOOL: return field.value.constant == "0" ? "false" : "true"; + case BASE_TYPE_FLOAT: + case BASE_TYPE_DOUBLE: { + const std::string float_type = + field.value.type.base_type == BASE_TYPE_FLOAT ? "float32" + : "float64"; + if (StringIsFlatbufferNan(field.value.constant)) { + needs_math_import_ = true; + return float_type + "(math.NaN())"; + } else if (StringIsFlatbufferPositiveInfinity(field.value.constant)) { + needs_math_import_ = true; + return float_type + "(math.Inf(1))"; + } else if (StringIsFlatbufferNegativeInfinity(field.value.constant)) { + needs_math_import_ = true; + return float_type + "(math.Inf(-1))"; + } + return field.value.constant; + } default: return field.value.constant; } } @@ -1330,6 +1351,8 @@ class GoGenerator : public BaseGenerator { if (needs_imports) { code += "import (\n"; if (is_enum) { code += "\t\"strconv\"\n\n"; } + // math is needed to support non-finite scalar default values. + if (needs_math_import_) { code += "\t\"math\"\n\n"; } if (!parser_.opts.go_import.empty()) { code += "\tflatbuffers \"" + parser_.opts.go_import + "\"\n"; } else { @@ -1346,6 +1369,10 @@ class GoGenerator : public BaseGenerator { code += ")\n\n"; } else { if (is_enum) { code += "import \"strconv\"\n\n"; } + if (needs_math_import_) { + // math is needed to support non-finite scalar default values. + code += "import \"math\"\n\n"; + } } } diff --git a/src/idl_gen_rust.cpp b/src/idl_gen_rust.cpp index a60046ef45..c01410a649 100644 --- a/src/idl_gen_rust.cpp +++ b/src/idl_gen_rust.cpp @@ -16,6 +16,8 @@ // independent from idl_parser, since this code is not needed for most clients +#include + #include "flatbuffers/code_generators.h" #include "flatbuffers/flatbuffers.h" #include "flatbuffers/idl.h" @@ -1046,8 +1048,19 @@ class RustGenerator : public BaseGenerator { if (field.IsOptional() && !IsUnion(field.value.type)) { return "None"; } } switch (GetFullType(field.value.type)) { - case ftInteger: + case ftInteger: { + return field.value.constant; + } case ftFloat: { + const std::string float_prefix = + (field.value.type.base_type == BASE_TYPE_FLOAT) ? "f32::" : "f64::"; + if (StringIsFlatbufferNan(field.value.constant)) { + return float_prefix + "NAN"; + } else if (StringIsFlatbufferPositiveInfinity(field.value.constant)) { + return float_prefix + "INFINITY"; + } else if (StringIsFlatbufferNegativeInfinity(field.value.constant)) { + return float_prefix + "NEG_INFINITY"; + } return field.value.constant; } case ftBool: { diff --git a/src/idl_gen_ts.cpp b/src/idl_gen_ts.cpp index dde2d55289..9fd1203f58 100644 --- a/src/idl_gen_ts.cpp +++ b/src/idl_gen_ts.cpp @@ -16,6 +16,7 @@ #include #include +#include #include #include @@ -454,9 +455,16 @@ class TsGenerator : public BaseGenerator { return "BigInt('" + value.constant + "')"; } - default: - if (value.constant == "nan") { return "NaN"; } + default: { + if (StringIsFlatbufferNan(value.constant)) { + return "NaN"; + } else if (StringIsFlatbufferPositiveInfinity(value.constant)) { + return "Infinity"; + } else if (StringIsFlatbufferNegativeInfinity(value.constant)) { + return "-Infinity"; + } return value.constant; + } } } diff --git a/tests/MyGame/Example/Monster.cs b/tests/MyGame/Example/Monster.cs index 357cf3713a..c0f310c0e8 100644 --- a/tests/MyGame/Example/Monster.cs +++ b/tests/MyGame/Example/Monster.cs @@ -215,6 +215,22 @@ public struct Monster : IFlatbufferObject public bool MutateLongEnumNonEnumDefault(MyGame.Example.LongEnum long_enum_non_enum_default) { int o = __p.__offset(108); if (o != 0) { __p.bb.PutUlong(o + __p.bb_pos, (ulong)long_enum_non_enum_default); return true; } else { return false; } } public MyGame.Example.LongEnum LongEnumNormalDefault { get { int o = __p.__offset(110); return o != 0 ? (MyGame.Example.LongEnum)__p.bb.GetUlong(o + __p.bb_pos) : MyGame.Example.LongEnum.LongOne; } } public bool MutateLongEnumNormalDefault(MyGame.Example.LongEnum long_enum_normal_default) { int o = __p.__offset(110); if (o != 0) { __p.bb.PutUlong(o + __p.bb_pos, (ulong)long_enum_normal_default); return true; } else { return false; } } + public float NanDefault { get { int o = __p.__offset(112); return o != 0 ? __p.bb.GetFloat(o + __p.bb_pos) : (float)Single.NaN; } } + public bool MutateNanDefault(float nan_default) { int o = __p.__offset(112); if (o != 0) { __p.bb.PutFloat(o + __p.bb_pos, nan_default); return true; } else { return false; } } + public float InfDefault { get { int o = __p.__offset(114); return o != 0 ? __p.bb.GetFloat(o + __p.bb_pos) : (float)Single.PositiveInfinity; } } + public bool MutateInfDefault(float inf_default) { int o = __p.__offset(114); if (o != 0) { __p.bb.PutFloat(o + __p.bb_pos, inf_default); return true; } else { return false; } } + public float PositiveInfDefault { get { int o = __p.__offset(116); return o != 0 ? __p.bb.GetFloat(o + __p.bb_pos) : (float)Single.PositiveInfinity; } } + public bool MutatePositiveInfDefault(float positive_inf_default) { int o = __p.__offset(116); if (o != 0) { __p.bb.PutFloat(o + __p.bb_pos, positive_inf_default); return true; } else { return false; } } + public float InfinityDefault { get { int o = __p.__offset(118); return o != 0 ? __p.bb.GetFloat(o + __p.bb_pos) : (float)Single.PositiveInfinity; } } + public bool MutateInfinityDefault(float infinity_default) { int o = __p.__offset(118); if (o != 0) { __p.bb.PutFloat(o + __p.bb_pos, infinity_default); return true; } else { return false; } } + public float PositiveInfinityDefault { get { int o = __p.__offset(120); return o != 0 ? __p.bb.GetFloat(o + __p.bb_pos) : (float)Single.PositiveInfinity; } } + public bool MutatePositiveInfinityDefault(float positive_infinity_default) { int o = __p.__offset(120); if (o != 0) { __p.bb.PutFloat(o + __p.bb_pos, positive_infinity_default); return true; } else { return false; } } + public float NegativeInfDefault { get { int o = __p.__offset(122); return o != 0 ? __p.bb.GetFloat(o + __p.bb_pos) : (float)Single.NegativeInfinity; } } + public bool MutateNegativeInfDefault(float negative_inf_default) { int o = __p.__offset(122); if (o != 0) { __p.bb.PutFloat(o + __p.bb_pos, negative_inf_default); return true; } else { return false; } } + public float NegativeInfinityDefault { get { int o = __p.__offset(124); return o != 0 ? __p.bb.GetFloat(o + __p.bb_pos) : (float)Single.NegativeInfinity; } } + public bool MutateNegativeInfinityDefault(float negative_infinity_default) { int o = __p.__offset(124); if (o != 0) { __p.bb.PutFloat(o + __p.bb_pos, negative_infinity_default); return true; } else { return false; } } + public double DoubleInfDefault { get { int o = __p.__offset(126); return o != 0 ? __p.bb.GetDouble(o + __p.bb_pos) : (double)Double.PositiveInfinity; } } + public bool MutateDoubleInfDefault(double double_inf_default) { int o = __p.__offset(126); if (o != 0) { __p.bb.PutDouble(o + __p.bb_pos, double_inf_default); return true; } else { return false; } } public static Offset CreateMonster(FlatBufferBuilder builder, MyGame.Example.Vec3T pos = null, @@ -269,8 +285,17 @@ public struct Monster : IFlatbufferObject VectorOffset scalar_key_sorted_tablesOffset = default(VectorOffset), MyGame.Example.TestT native_inline = null, MyGame.Example.LongEnum long_enum_non_enum_default = 0, - MyGame.Example.LongEnum long_enum_normal_default = MyGame.Example.LongEnum.LongOne) { - builder.StartTable(54); + MyGame.Example.LongEnum long_enum_normal_default = MyGame.Example.LongEnum.LongOne, + float nan_default = Single.NaN, + float inf_default = Single.PositiveInfinity, + float positive_inf_default = Single.PositiveInfinity, + float infinity_default = Single.PositiveInfinity, + float positive_infinity_default = Single.PositiveInfinity, + float negative_inf_default = Single.NegativeInfinity, + float negative_infinity_default = Single.NegativeInfinity, + double double_inf_default = Double.PositiveInfinity) { + builder.StartTable(62); + Monster.AddDoubleInfDefault(builder, double_inf_default); Monster.AddLongEnumNormalDefault(builder, long_enum_normal_default); Monster.AddLongEnumNonEnumDefault(builder, long_enum_non_enum_default); Monster.AddNonOwningReference(builder, non_owning_reference); @@ -280,6 +305,13 @@ public struct Monster : IFlatbufferObject Monster.AddTesthashs64Fnv1a(builder, testhashs64_fnv1a); Monster.AddTesthashu64Fnv1(builder, testhashu64_fnv1); Monster.AddTesthashs64Fnv1(builder, testhashs64_fnv1); + Monster.AddNegativeInfinityDefault(builder, negative_infinity_default); + Monster.AddNegativeInfDefault(builder, negative_inf_default); + Monster.AddPositiveInfinityDefault(builder, positive_infinity_default); + Monster.AddInfinityDefault(builder, infinity_default); + Monster.AddPositiveInfDefault(builder, positive_inf_default); + Monster.AddInfDefault(builder, inf_default); + Monster.AddNanDefault(builder, nan_default); Monster.AddNativeInline(builder, MyGame.Example.Test.Pack(builder, native_inline)); Monster.AddScalarKeySortedTables(builder, scalar_key_sorted_tablesOffset); Monster.AddTestrequirednestedflatbuffer(builder, testrequirednestedflatbufferOffset); @@ -327,7 +359,7 @@ public struct Monster : IFlatbufferObject return Monster.EndMonster(builder); } - public static void StartMonster(FlatBufferBuilder builder) { builder.StartTable(54); } + public static void StartMonster(FlatBufferBuilder builder) { builder.StartTable(62); } public static void AddPos(FlatBufferBuilder builder, Offset posOffset) { builder.AddStruct(0, posOffset.Value, 0); } public static void AddMana(FlatBufferBuilder builder, short mana) { builder.AddShort(1, mana, 150); } public static void AddHp(FlatBufferBuilder builder, short hp) { builder.AddShort(2, hp, 100); } @@ -469,6 +501,14 @@ public struct Monster : IFlatbufferObject public static void AddNativeInline(FlatBufferBuilder builder, Offset nativeInlineOffset) { builder.AddStruct(51, nativeInlineOffset.Value, 0); } public static void AddLongEnumNonEnumDefault(FlatBufferBuilder builder, MyGame.Example.LongEnum longEnumNonEnumDefault) { builder.AddUlong(52, (ulong)longEnumNonEnumDefault, 0); } public static void AddLongEnumNormalDefault(FlatBufferBuilder builder, MyGame.Example.LongEnum longEnumNormalDefault) { builder.AddUlong(53, (ulong)longEnumNormalDefault, 2); } + public static void AddNanDefault(FlatBufferBuilder builder, float nanDefault) { builder.AddFloat(54, nanDefault, Single.NaN); } + public static void AddInfDefault(FlatBufferBuilder builder, float infDefault) { builder.AddFloat(55, infDefault, Single.PositiveInfinity); } + public static void AddPositiveInfDefault(FlatBufferBuilder builder, float positiveInfDefault) { builder.AddFloat(56, positiveInfDefault, Single.PositiveInfinity); } + public static void AddInfinityDefault(FlatBufferBuilder builder, float infinityDefault) { builder.AddFloat(57, infinityDefault, Single.PositiveInfinity); } + public static void AddPositiveInfinityDefault(FlatBufferBuilder builder, float positiveInfinityDefault) { builder.AddFloat(58, positiveInfinityDefault, Single.PositiveInfinity); } + public static void AddNegativeInfDefault(FlatBufferBuilder builder, float negativeInfDefault) { builder.AddFloat(59, negativeInfDefault, Single.NegativeInfinity); } + public static void AddNegativeInfinityDefault(FlatBufferBuilder builder, float negativeInfinityDefault) { builder.AddFloat(60, negativeInfinityDefault, Single.NegativeInfinity); } + public static void AddDoubleInfDefault(FlatBufferBuilder builder, double doubleInfDefault) { builder.AddDouble(61, doubleInfDefault, Double.PositiveInfinity); } public static Offset EndMonster(FlatBufferBuilder builder) { int o = builder.EndTable(); builder.Required(o, 10); // name @@ -620,6 +660,14 @@ public void UnPackTo(MonsterT _o) { _o.NativeInline = this.NativeInline.HasValue ? this.NativeInline.Value.UnPack() : null; _o.LongEnumNonEnumDefault = this.LongEnumNonEnumDefault; _o.LongEnumNormalDefault = this.LongEnumNormalDefault; + _o.NanDefault = this.NanDefault; + _o.InfDefault = this.InfDefault; + _o.PositiveInfDefault = this.PositiveInfDefault; + _o.InfinityDefault = this.InfinityDefault; + _o.PositiveInfinityDefault = this.PositiveInfinityDefault; + _o.NegativeInfDefault = this.NegativeInfDefault; + _o.NegativeInfinityDefault = this.NegativeInfinityDefault; + _o.DoubleInfDefault = this.DoubleInfDefault; } public static Offset Pack(FlatBufferBuilder builder, MonsterT _o) { if (_o == null) return default(Offset); @@ -796,7 +844,15 @@ public void UnPackTo(MonsterT _o) { _scalar_key_sorted_tables, _o.NativeInline, _o.LongEnumNonEnumDefault, - _o.LongEnumNormalDefault); + _o.LongEnumNormalDefault, + _o.NanDefault, + _o.InfDefault, + _o.PositiveInfDefault, + _o.InfinityDefault, + _o.PositiveInfinityDefault, + _o.NegativeInfDefault, + _o.NegativeInfinityDefault, + _o.DoubleInfDefault); } } @@ -949,6 +1005,22 @@ private MyGame.Example.AnyAmbiguousAliases AnyAmbiguousType { public MyGame.Example.LongEnum LongEnumNonEnumDefault { get; set; } [Newtonsoft.Json.JsonProperty("long_enum_normal_default")] public MyGame.Example.LongEnum LongEnumNormalDefault { get; set; } + [Newtonsoft.Json.JsonProperty("nan_default")] + public float NanDefault { get; set; } + [Newtonsoft.Json.JsonProperty("inf_default")] + public float InfDefault { get; set; } + [Newtonsoft.Json.JsonProperty("positive_inf_default")] + public float PositiveInfDefault { get; set; } + [Newtonsoft.Json.JsonProperty("infinity_default")] + public float InfinityDefault { get; set; } + [Newtonsoft.Json.JsonProperty("positive_infinity_default")] + public float PositiveInfinityDefault { get; set; } + [Newtonsoft.Json.JsonProperty("negative_inf_default")] + public float NegativeInfDefault { get; set; } + [Newtonsoft.Json.JsonProperty("negative_infinity_default")] + public float NegativeInfinityDefault { get; set; } + [Newtonsoft.Json.JsonProperty("double_inf_default")] + public double DoubleInfDefault { get; set; } public MonsterT() { this.Pos = new MyGame.Example.Vec3T(); @@ -1001,6 +1073,14 @@ public MonsterT() { this.NativeInline = new MyGame.Example.TestT(); this.LongEnumNonEnumDefault = 0; this.LongEnumNormalDefault = MyGame.Example.LongEnum.LongOne; + this.NanDefault = Single.NaN; + this.InfDefault = Single.PositiveInfinity; + this.PositiveInfDefault = Single.PositiveInfinity; + this.InfinityDefault = Single.PositiveInfinity; + this.PositiveInfinityDefault = Single.PositiveInfinity; + this.NegativeInfDefault = Single.NegativeInfinity; + this.NegativeInfinityDefault = Single.NegativeInfinity; + this.DoubleInfDefault = Double.PositiveInfinity; } public static MonsterT DeserializeFromJson(string jsonText) { diff --git a/tests/MyGame/Example/Monster.go b/tests/MyGame/Example/Monster.go index 237896c9b8..b64ced7dab 100644 --- a/tests/MyGame/Example/Monster.go +++ b/tests/MyGame/Example/Monster.go @@ -3,6 +3,8 @@ package Example import ( + "math" + flatbuffers "github.com/google/flatbuffers/go" MyGame "MyGame" @@ -60,6 +62,14 @@ type MonsterT struct { NativeInline *TestT `json:"native_inline"` LongEnumNonEnumDefault LongEnum `json:"long_enum_non_enum_default"` LongEnumNormalDefault LongEnum `json:"long_enum_normal_default"` + NanDefault float32 `json:"nan_default"` + InfDefault float32 `json:"inf_default"` + PositiveInfDefault float32 `json:"positive_inf_default"` + InfinityDefault float32 `json:"infinity_default"` + PositiveInfinityDefault float32 `json:"positive_infinity_default"` + NegativeInfDefault float32 `json:"negative_inf_default"` + NegativeInfinityDefault float32 `json:"negative_infinity_default"` + DoubleInfDefault float64 `json:"double_inf_default"` } func (t *MonsterT) Pack(builder *flatbuffers.Builder) flatbuffers.UOffsetT { @@ -320,6 +330,14 @@ func (t *MonsterT) Pack(builder *flatbuffers.Builder) flatbuffers.UOffsetT { MonsterAddNativeInline(builder, nativeInlineOffset) MonsterAddLongEnumNonEnumDefault(builder, t.LongEnumNonEnumDefault) MonsterAddLongEnumNormalDefault(builder, t.LongEnumNormalDefault) + MonsterAddNanDefault(builder, t.NanDefault) + MonsterAddInfDefault(builder, t.InfDefault) + MonsterAddPositiveInfDefault(builder, t.PositiveInfDefault) + MonsterAddInfinityDefault(builder, t.InfinityDefault) + MonsterAddPositiveInfinityDefault(builder, t.PositiveInfinityDefault) + MonsterAddNegativeInfDefault(builder, t.NegativeInfDefault) + MonsterAddNegativeInfinityDefault(builder, t.NegativeInfinityDefault) + MonsterAddDoubleInfDefault(builder, t.DoubleInfDefault) return MonsterEnd(builder) } @@ -461,6 +479,14 @@ func (rcv *Monster) UnPackTo(t *MonsterT) { t.NativeInline = rcv.NativeInline(nil).UnPack() t.LongEnumNonEnumDefault = rcv.LongEnumNonEnumDefault() t.LongEnumNormalDefault = rcv.LongEnumNormalDefault() + t.NanDefault = rcv.NanDefault() + t.InfDefault = rcv.InfDefault() + t.PositiveInfDefault = rcv.PositiveInfDefault() + t.InfinityDefault = rcv.InfinityDefault() + t.PositiveInfinityDefault = rcv.PositiveInfinityDefault() + t.NegativeInfDefault = rcv.NegativeInfDefault() + t.NegativeInfinityDefault = rcv.NegativeInfinityDefault() + t.DoubleInfDefault = rcv.DoubleInfDefault() } func (rcv *Monster) UnPack() *MonsterT { @@ -1386,8 +1412,104 @@ func (rcv *Monster) MutateLongEnumNormalDefault(n LongEnum) bool { return rcv._tab.MutateUint64Slot(110, uint64(n)) } +func (rcv *Monster) NanDefault() float32 { + o := flatbuffers.UOffsetT(rcv._tab.Offset(112)) + if o != 0 { + return rcv._tab.GetFloat32(o + rcv._tab.Pos) + } + return float32(math.NaN()) +} + +func (rcv *Monster) MutateNanDefault(n float32) bool { + return rcv._tab.MutateFloat32Slot(112, n) +} + +func (rcv *Monster) InfDefault() float32 { + o := flatbuffers.UOffsetT(rcv._tab.Offset(114)) + if o != 0 { + return rcv._tab.GetFloat32(o + rcv._tab.Pos) + } + return float32(math.Inf(1)) +} + +func (rcv *Monster) MutateInfDefault(n float32) bool { + return rcv._tab.MutateFloat32Slot(114, n) +} + +func (rcv *Monster) PositiveInfDefault() float32 { + o := flatbuffers.UOffsetT(rcv._tab.Offset(116)) + if o != 0 { + return rcv._tab.GetFloat32(o + rcv._tab.Pos) + } + return float32(math.Inf(1)) +} + +func (rcv *Monster) MutatePositiveInfDefault(n float32) bool { + return rcv._tab.MutateFloat32Slot(116, n) +} + +func (rcv *Monster) InfinityDefault() float32 { + o := flatbuffers.UOffsetT(rcv._tab.Offset(118)) + if o != 0 { + return rcv._tab.GetFloat32(o + rcv._tab.Pos) + } + return float32(math.Inf(1)) +} + +func (rcv *Monster) MutateInfinityDefault(n float32) bool { + return rcv._tab.MutateFloat32Slot(118, n) +} + +func (rcv *Monster) PositiveInfinityDefault() float32 { + o := flatbuffers.UOffsetT(rcv._tab.Offset(120)) + if o != 0 { + return rcv._tab.GetFloat32(o + rcv._tab.Pos) + } + return float32(math.Inf(1)) +} + +func (rcv *Monster) MutatePositiveInfinityDefault(n float32) bool { + return rcv._tab.MutateFloat32Slot(120, n) +} + +func (rcv *Monster) NegativeInfDefault() float32 { + o := flatbuffers.UOffsetT(rcv._tab.Offset(122)) + if o != 0 { + return rcv._tab.GetFloat32(o + rcv._tab.Pos) + } + return float32(math.Inf(-1)) +} + +func (rcv *Monster) MutateNegativeInfDefault(n float32) bool { + return rcv._tab.MutateFloat32Slot(122, n) +} + +func (rcv *Monster) NegativeInfinityDefault() float32 { + o := flatbuffers.UOffsetT(rcv._tab.Offset(124)) + if o != 0 { + return rcv._tab.GetFloat32(o + rcv._tab.Pos) + } + return float32(math.Inf(-1)) +} + +func (rcv *Monster) MutateNegativeInfinityDefault(n float32) bool { + return rcv._tab.MutateFloat32Slot(124, n) +} + +func (rcv *Monster) DoubleInfDefault() float64 { + o := flatbuffers.UOffsetT(rcv._tab.Offset(126)) + if o != 0 { + return rcv._tab.GetFloat64(o + rcv._tab.Pos) + } + return float64(math.Inf(1)) +} + +func (rcv *Monster) MutateDoubleInfDefault(n float64) bool { + return rcv._tab.MutateFloat64Slot(126, n) +} + func MonsterStart(builder *flatbuffers.Builder) { - builder.StartObject(54) + builder.StartObject(62) } func MonsterAddPos(builder *flatbuffers.Builder, pos flatbuffers.UOffsetT) { builder.PrependStructSlot(0, flatbuffers.UOffsetT(pos), 0) @@ -1608,6 +1730,30 @@ func MonsterAddLongEnumNonEnumDefault(builder *flatbuffers.Builder, longEnumNonE func MonsterAddLongEnumNormalDefault(builder *flatbuffers.Builder, longEnumNormalDefault LongEnum) { builder.PrependUint64Slot(53, uint64(longEnumNormalDefault), 2) } +func MonsterAddNanDefault(builder *flatbuffers.Builder, nanDefault float32) { + builder.PrependFloat32Slot(54, nanDefault, float32(math.NaN())) +} +func MonsterAddInfDefault(builder *flatbuffers.Builder, infDefault float32) { + builder.PrependFloat32Slot(55, infDefault, float32(math.Inf(1))) +} +func MonsterAddPositiveInfDefault(builder *flatbuffers.Builder, positiveInfDefault float32) { + builder.PrependFloat32Slot(56, positiveInfDefault, float32(math.Inf(1))) +} +func MonsterAddInfinityDefault(builder *flatbuffers.Builder, infinityDefault float32) { + builder.PrependFloat32Slot(57, infinityDefault, float32(math.Inf(1))) +} +func MonsterAddPositiveInfinityDefault(builder *flatbuffers.Builder, positiveInfinityDefault float32) { + builder.PrependFloat32Slot(58, positiveInfinityDefault, float32(math.Inf(1))) +} +func MonsterAddNegativeInfDefault(builder *flatbuffers.Builder, negativeInfDefault float32) { + builder.PrependFloat32Slot(59, negativeInfDefault, float32(math.Inf(-1))) +} +func MonsterAddNegativeInfinityDefault(builder *flatbuffers.Builder, negativeInfinityDefault float32) { + builder.PrependFloat32Slot(60, negativeInfinityDefault, float32(math.Inf(-1))) +} +func MonsterAddDoubleInfDefault(builder *flatbuffers.Builder, doubleInfDefault float64) { + builder.PrependFloat64Slot(61, doubleInfDefault, float64(math.Inf(1))) +} func MonsterEnd(builder *flatbuffers.Builder) flatbuffers.UOffsetT { return builder.EndObject() } diff --git a/tests/MyGame/Example/Monster.java b/tests/MyGame/Example/Monster.java index b35157fa46..ad958aae31 100644 --- a/tests/MyGame/Example/Monster.java +++ b/tests/MyGame/Example/Monster.java @@ -216,8 +216,24 @@ public final class Monster extends Table { public boolean mutateLongEnumNonEnumDefault(long long_enum_non_enum_default) { int o = __offset(108); if (o != 0) { bb.putLong(o + bb_pos, long_enum_non_enum_default); return true; } else { return false; } } public long longEnumNormalDefault() { int o = __offset(110); return o != 0 ? bb.getLong(o + bb_pos) : 2L; } public boolean mutateLongEnumNormalDefault(long long_enum_normal_default) { int o = __offset(110); if (o != 0) { bb.putLong(o + bb_pos, long_enum_normal_default); return true; } else { return false; } } + public float nanDefault() { int o = __offset(112); return o != 0 ? bb.getFloat(o + bb_pos) : Float.NaN; } + public boolean mutateNanDefault(float nan_default) { int o = __offset(112); if (o != 0) { bb.putFloat(o + bb_pos, nan_default); return true; } else { return false; } } + public float infDefault() { int o = __offset(114); return o != 0 ? bb.getFloat(o + bb_pos) : Float.POSITIVE_INFINITY; } + public boolean mutateInfDefault(float inf_default) { int o = __offset(114); if (o != 0) { bb.putFloat(o + bb_pos, inf_default); return true; } else { return false; } } + public float positiveInfDefault() { int o = __offset(116); return o != 0 ? bb.getFloat(o + bb_pos) : Float.POSITIVE_INFINITY; } + public boolean mutatePositiveInfDefault(float positive_inf_default) { int o = __offset(116); if (o != 0) { bb.putFloat(o + bb_pos, positive_inf_default); return true; } else { return false; } } + public float infinityDefault() { int o = __offset(118); return o != 0 ? bb.getFloat(o + bb_pos) : Float.POSITIVE_INFINITY; } + public boolean mutateInfinityDefault(float infinity_default) { int o = __offset(118); if (o != 0) { bb.putFloat(o + bb_pos, infinity_default); return true; } else { return false; } } + public float positiveInfinityDefault() { int o = __offset(120); return o != 0 ? bb.getFloat(o + bb_pos) : Float.POSITIVE_INFINITY; } + public boolean mutatePositiveInfinityDefault(float positive_infinity_default) { int o = __offset(120); if (o != 0) { bb.putFloat(o + bb_pos, positive_infinity_default); return true; } else { return false; } } + public float negativeInfDefault() { int o = __offset(122); return o != 0 ? bb.getFloat(o + bb_pos) : Float.NEGATIVE_INFINITY; } + public boolean mutateNegativeInfDefault(float negative_inf_default) { int o = __offset(122); if (o != 0) { bb.putFloat(o + bb_pos, negative_inf_default); return true; } else { return false; } } + public float negativeInfinityDefault() { int o = __offset(124); return o != 0 ? bb.getFloat(o + bb_pos) : Float.NEGATIVE_INFINITY; } + public boolean mutateNegativeInfinityDefault(float negative_infinity_default) { int o = __offset(124); if (o != 0) { bb.putFloat(o + bb_pos, negative_infinity_default); return true; } else { return false; } } + public double doubleInfDefault() { int o = __offset(126); return o != 0 ? bb.getDouble(o + bb_pos) : Double.POSITIVE_INFINITY; } + public boolean mutateDoubleInfDefault(double double_inf_default) { int o = __offset(126); if (o != 0) { bb.putDouble(o + bb_pos, double_inf_default); return true; } else { return false; } } - public static void startMonster(FlatBufferBuilder builder) { builder.startTable(54); } + public static void startMonster(FlatBufferBuilder builder) { builder.startTable(62); } public static void addPos(FlatBufferBuilder builder, int posOffset) { builder.addStruct(0, posOffset, 0); } public static void addMana(FlatBufferBuilder builder, short mana) { builder.addShort(1, mana, 150); } public static void addHp(FlatBufferBuilder builder, short hp) { builder.addShort(2, hp, 100); } @@ -313,6 +329,14 @@ public final class Monster extends Table { public static void addNativeInline(FlatBufferBuilder builder, int nativeInlineOffset) { builder.addStruct(51, nativeInlineOffset, 0); } public static void addLongEnumNonEnumDefault(FlatBufferBuilder builder, long longEnumNonEnumDefault) { builder.addLong(52, longEnumNonEnumDefault, 0L); } public static void addLongEnumNormalDefault(FlatBufferBuilder builder, long longEnumNormalDefault) { builder.addLong(53, longEnumNormalDefault, 2L); } + public static void addNanDefault(FlatBufferBuilder builder, float nanDefault) { builder.addFloat(54, nanDefault, Float.NaN); } + public static void addInfDefault(FlatBufferBuilder builder, float infDefault) { builder.addFloat(55, infDefault, Float.POSITIVE_INFINITY); } + public static void addPositiveInfDefault(FlatBufferBuilder builder, float positiveInfDefault) { builder.addFloat(56, positiveInfDefault, Float.POSITIVE_INFINITY); } + public static void addInfinityDefault(FlatBufferBuilder builder, float infinityDefault) { builder.addFloat(57, infinityDefault, Float.POSITIVE_INFINITY); } + public static void addPositiveInfinityDefault(FlatBufferBuilder builder, float positiveInfinityDefault) { builder.addFloat(58, positiveInfinityDefault, Float.POSITIVE_INFINITY); } + public static void addNegativeInfDefault(FlatBufferBuilder builder, float negativeInfDefault) { builder.addFloat(59, negativeInfDefault, Float.NEGATIVE_INFINITY); } + public static void addNegativeInfinityDefault(FlatBufferBuilder builder, float negativeInfinityDefault) { builder.addFloat(60, negativeInfinityDefault, Float.NEGATIVE_INFINITY); } + public static void addDoubleInfDefault(FlatBufferBuilder builder, double doubleInfDefault) { builder.addDouble(61, doubleInfDefault, Double.POSITIVE_INFINITY); } public static int endMonster(FlatBufferBuilder builder) { int o = builder.endTable(); builder.required(o, 10); // name @@ -533,6 +557,22 @@ public void unpackTo(MonsterT _o) { _o.setLongEnumNonEnumDefault(_oLongEnumNonEnumDefault); long _oLongEnumNormalDefault = longEnumNormalDefault(); _o.setLongEnumNormalDefault(_oLongEnumNormalDefault); + float _oNanDefault = nanDefault(); + _o.setNanDefault(_oNanDefault); + float _oInfDefault = infDefault(); + _o.setInfDefault(_oInfDefault); + float _oPositiveInfDefault = positiveInfDefault(); + _o.setPositiveInfDefault(_oPositiveInfDefault); + float _oInfinityDefault = infinityDefault(); + _o.setInfinityDefault(_oInfinityDefault); + float _oPositiveInfinityDefault = positiveInfinityDefault(); + _o.setPositiveInfinityDefault(_oPositiveInfinityDefault); + float _oNegativeInfDefault = negativeInfDefault(); + _o.setNegativeInfDefault(_oNegativeInfDefault); + float _oNegativeInfinityDefault = negativeInfinityDefault(); + _o.setNegativeInfinityDefault(_oNegativeInfinityDefault); + double _oDoubleInfDefault = doubleInfDefault(); + _o.setDoubleInfDefault(_oDoubleInfDefault); } public static int pack(FlatBufferBuilder builder, MonsterT _o) { if (_o == null) return 0; @@ -725,6 +765,14 @@ public static int pack(FlatBufferBuilder builder, MonsterT _o) { addNativeInline(builder, MyGame.Example.Test.pack(builder, _o.getNativeInline())); addLongEnumNonEnumDefault(builder, _o.getLongEnumNonEnumDefault()); addLongEnumNormalDefault(builder, _o.getLongEnumNormalDefault()); + addNanDefault(builder, _o.getNanDefault()); + addInfDefault(builder, _o.getInfDefault()); + addPositiveInfDefault(builder, _o.getPositiveInfDefault()); + addInfinityDefault(builder, _o.getInfinityDefault()); + addPositiveInfinityDefault(builder, _o.getPositiveInfinityDefault()); + addNegativeInfDefault(builder, _o.getNegativeInfDefault()); + addNegativeInfinityDefault(builder, _o.getNegativeInfinityDefault()); + addDoubleInfDefault(builder, _o.getDoubleInfDefault()); return endMonster(builder); } } diff --git a/tests/MyGame/Example/Monster.kt b/tests/MyGame/Example/Monster.kt index db9e5eeb1f..12ee70ac4a 100644 --- a/tests/MyGame/Example/Monster.kt +++ b/tests/MyGame/Example/Monster.kt @@ -870,6 +870,118 @@ class Monster : Table() { false } } + val nanDefault : Float + get() { + val o = __offset(112) + return if(o != 0) bb.getFloat(o + bb_pos) else Float.NaN + } + fun mutateNanDefault(nanDefault: Float) : Boolean { + val o = __offset(112) + return if (o != 0) { + bb.putFloat(o + bb_pos, nanDefault) + true + } else { + false + } + } + val infDefault : Float + get() { + val o = __offset(114) + return if(o != 0) bb.getFloat(o + bb_pos) else Float.POSITIVE_INFINITY + } + fun mutateInfDefault(infDefault: Float) : Boolean { + val o = __offset(114) + return if (o != 0) { + bb.putFloat(o + bb_pos, infDefault) + true + } else { + false + } + } + val positiveInfDefault : Float + get() { + val o = __offset(116) + return if(o != 0) bb.getFloat(o + bb_pos) else Float.POSITIVE_INFINITY + } + fun mutatePositiveInfDefault(positiveInfDefault: Float) : Boolean { + val o = __offset(116) + return if (o != 0) { + bb.putFloat(o + bb_pos, positiveInfDefault) + true + } else { + false + } + } + val infinityDefault : Float + get() { + val o = __offset(118) + return if(o != 0) bb.getFloat(o + bb_pos) else Float.POSITIVE_INFINITY + } + fun mutateInfinityDefault(infinityDefault: Float) : Boolean { + val o = __offset(118) + return if (o != 0) { + bb.putFloat(o + bb_pos, infinityDefault) + true + } else { + false + } + } + val positiveInfinityDefault : Float + get() { + val o = __offset(120) + return if(o != 0) bb.getFloat(o + bb_pos) else Float.POSITIVE_INFINITY + } + fun mutatePositiveInfinityDefault(positiveInfinityDefault: Float) : Boolean { + val o = __offset(120) + return if (o != 0) { + bb.putFloat(o + bb_pos, positiveInfinityDefault) + true + } else { + false + } + } + val negativeInfDefault : Float + get() { + val o = __offset(122) + return if(o != 0) bb.getFloat(o + bb_pos) else Float.NEGATIVE_INFINITY + } + fun mutateNegativeInfDefault(negativeInfDefault: Float) : Boolean { + val o = __offset(122) + return if (o != 0) { + bb.putFloat(o + bb_pos, negativeInfDefault) + true + } else { + false + } + } + val negativeInfinityDefault : Float + get() { + val o = __offset(124) + return if(o != 0) bb.getFloat(o + bb_pos) else Float.NEGATIVE_INFINITY + } + fun mutateNegativeInfinityDefault(negativeInfinityDefault: Float) : Boolean { + val o = __offset(124) + return if (o != 0) { + bb.putFloat(o + bb_pos, negativeInfinityDefault) + true + } else { + false + } + } + val doubleInfDefault : Double + get() { + val o = __offset(126) + return if(o != 0) bb.getDouble(o + bb_pos) else Double.POSITIVE_INFINITY + } + fun mutateDoubleInfDefault(doubleInfDefault: Double) : Boolean { + val o = __offset(126) + return if (o != 0) { + bb.putDouble(o + bb_pos, doubleInfDefault) + true + } else { + false + } + } override fun keysCompare(o1: Int, o2: Int, _bb: ByteBuffer) : Int { return compareStrings(__offset(10, o1, _bb), __offset(10, o2, _bb), _bb) } @@ -881,7 +993,7 @@ class Monster : Table() { return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)) } fun MonsterBufferHasIdentifier(_bb: ByteBuffer) : Boolean = __has_identifier(_bb, "MONS") - fun startMonster(builder: FlatBufferBuilder) = builder.startTable(54) + fun startMonster(builder: FlatBufferBuilder) = builder.startTable(62) fun addPos(builder: FlatBufferBuilder, pos: Int) = builder.addStruct(0, pos, 0) fun addMana(builder: FlatBufferBuilder, mana: Short) = builder.addShort(1, mana, 150) fun addHp(builder: FlatBufferBuilder, hp: Short) = builder.addShort(2, hp, 100) @@ -1077,6 +1189,14 @@ class Monster : Table() { fun addNativeInline(builder: FlatBufferBuilder, nativeInline: Int) = builder.addStruct(51, nativeInline, 0) fun addLongEnumNonEnumDefault(builder: FlatBufferBuilder, longEnumNonEnumDefault: ULong) = builder.addLong(52, longEnumNonEnumDefault.toLong(), 0) fun addLongEnumNormalDefault(builder: FlatBufferBuilder, longEnumNormalDefault: ULong) = builder.addLong(53, longEnumNormalDefault.toLong(), 2) + fun addNanDefault(builder: FlatBufferBuilder, nanDefault: Float) = builder.addFloat(54, nanDefault, Double.NaN) + fun addInfDefault(builder: FlatBufferBuilder, infDefault: Float) = builder.addFloat(55, infDefault, Double.POSITIVE_INFINITY) + fun addPositiveInfDefault(builder: FlatBufferBuilder, positiveInfDefault: Float) = builder.addFloat(56, positiveInfDefault, Double.POSITIVE_INFINITY) + fun addInfinityDefault(builder: FlatBufferBuilder, infinityDefault: Float) = builder.addFloat(57, infinityDefault, Double.POSITIVE_INFINITY) + fun addPositiveInfinityDefault(builder: FlatBufferBuilder, positiveInfinityDefault: Float) = builder.addFloat(58, positiveInfinityDefault, Double.POSITIVE_INFINITY) + fun addNegativeInfDefault(builder: FlatBufferBuilder, negativeInfDefault: Float) = builder.addFloat(59, negativeInfDefault, Double.NEGATIVE_INFINITY) + fun addNegativeInfinityDefault(builder: FlatBufferBuilder, negativeInfinityDefault: Float) = builder.addFloat(60, negativeInfinityDefault, Double.NEGATIVE_INFINITY) + fun addDoubleInfDefault(builder: FlatBufferBuilder, doubleInfDefault: Double) = builder.addDouble(61, doubleInfDefault, Double.POSITIVE_INFINITY) fun endMonster(builder: FlatBufferBuilder) : Int { val o = builder.endTable() builder.required(o, 10) diff --git a/tests/MyGame/Example/Monster.lua b/tests/MyGame/Example/Monster.lua index 62e7fabc69..34073627c0 100644 --- a/tests/MyGame/Example/Monster.lua +++ b/tests/MyGame/Example/Monster.lua @@ -703,8 +703,72 @@ function mt:LongEnumNormalDefault() return 2 end +function mt:NanDefault() + local o = self.view:Offset(112) + if o ~= 0 then + return self.view:Get(flatbuffers.N.Float32, self.view.pos + o) + end + return nan +end + +function mt:InfDefault() + local o = self.view:Offset(114) + if o ~= 0 then + return self.view:Get(flatbuffers.N.Float32, self.view.pos + o) + end + return inf +end + +function mt:PositiveInfDefault() + local o = self.view:Offset(116) + if o ~= 0 then + return self.view:Get(flatbuffers.N.Float32, self.view.pos + o) + end + return inf +end + +function mt:InfinityDefault() + local o = self.view:Offset(118) + if o ~= 0 then + return self.view:Get(flatbuffers.N.Float32, self.view.pos + o) + end + return inf +end + +function mt:PositiveInfinityDefault() + local o = self.view:Offset(120) + if o ~= 0 then + return self.view:Get(flatbuffers.N.Float32, self.view.pos + o) + end + return inf +end + +function mt:NegativeInfDefault() + local o = self.view:Offset(122) + if o ~= 0 then + return self.view:Get(flatbuffers.N.Float32, self.view.pos + o) + end + return -inf +end + +function mt:NegativeInfinityDefault() + local o = self.view:Offset(124) + if o ~= 0 then + return self.view:Get(flatbuffers.N.Float32, self.view.pos + o) + end + return -inf +end + +function mt:DoubleInfDefault() + local o = self.view:Offset(126) + if o ~= 0 then + return self.view:Get(flatbuffers.N.Float64, self.view.pos + o) + end + return inf +end + function Monster.Start(builder) - builder:StartObject(54) + builder:StartObject(62) end function Monster.AddPos(builder, pos) @@ -999,6 +1063,38 @@ function Monster.AddLongEnumNormalDefault(builder, longEnumNormalDefault) builder:PrependUint64Slot(53, longEnumNormalDefault, 2) end +function Monster.AddNanDefault(builder, nanDefault) + builder:PrependFloat32Slot(54, nanDefault, nan) +end + +function Monster.AddInfDefault(builder, infDefault) + builder:PrependFloat32Slot(55, infDefault, inf) +end + +function Monster.AddPositiveInfDefault(builder, positiveInfDefault) + builder:PrependFloat32Slot(56, positiveInfDefault, inf) +end + +function Monster.AddInfinityDefault(builder, infinityDefault) + builder:PrependFloat32Slot(57, infinityDefault, inf) +end + +function Monster.AddPositiveInfinityDefault(builder, positiveInfinityDefault) + builder:PrependFloat32Slot(58, positiveInfinityDefault, inf) +end + +function Monster.AddNegativeInfDefault(builder, negativeInfDefault) + builder:PrependFloat32Slot(59, negativeInfDefault, -inf) +end + +function Monster.AddNegativeInfinityDefault(builder, negativeInfinityDefault) + builder:PrependFloat32Slot(60, negativeInfinityDefault, -inf) +end + +function Monster.AddDoubleInfDefault(builder, doubleInfDefault) + builder:PrependFloat64Slot(61, doubleInfDefault, inf) +end + function Monster.End(builder) return builder:EndObject() end diff --git a/tests/MyGame/Example/Monster.nim b/tests/MyGame/Example/Monster.nim index 7a5faa353a..283e01a656 100644 --- a/tests/MyGame/Example/Monster.nim +++ b/tests/MyGame/Example/Monster.nim @@ -510,8 +510,64 @@ func longEnumNormalDefault*(self: Monster): MyGame_Example_LongEnum.LongEnum = return type(result)(2) func `longEnumNormalDefault=`*(self: var Monster, n: MyGame_Example_LongEnum.LongEnum): bool = return self.tab.MutateSlot(110, n) +func nanDefault*(self: Monster): float32 = + let o = self.tab.Offset(112) + if o != 0: + return Get[float32](self.tab, self.tab.Pos + o) + return NaN +func `nanDefault=`*(self: var Monster, n: float32): bool = + return self.tab.MutateSlot(112, n) +func infDefault*(self: Monster): float32 = + let o = self.tab.Offset(114) + if o != 0: + return Get[float32](self.tab, self.tab.Pos + o) + return Inf +func `infDefault=`*(self: var Monster, n: float32): bool = + return self.tab.MutateSlot(114, n) +func positiveInfDefault*(self: Monster): float32 = + let o = self.tab.Offset(116) + if o != 0: + return Get[float32](self.tab, self.tab.Pos + o) + return Inf +func `positiveInfDefault=`*(self: var Monster, n: float32): bool = + return self.tab.MutateSlot(116, n) +func infinityDefault*(self: Monster): float32 = + let o = self.tab.Offset(118) + if o != 0: + return Get[float32](self.tab, self.tab.Pos + o) + return Inf +func `infinityDefault=`*(self: var Monster, n: float32): bool = + return self.tab.MutateSlot(118, n) +func positiveInfinityDefault*(self: Monster): float32 = + let o = self.tab.Offset(120) + if o != 0: + return Get[float32](self.tab, self.tab.Pos + o) + return Inf +func `positiveInfinityDefault=`*(self: var Monster, n: float32): bool = + return self.tab.MutateSlot(120, n) +func negativeInfDefault*(self: Monster): float32 = + let o = self.tab.Offset(122) + if o != 0: + return Get[float32](self.tab, self.tab.Pos + o) + return -Inf +func `negativeInfDefault=`*(self: var Monster, n: float32): bool = + return self.tab.MutateSlot(122, n) +func negativeInfinityDefault*(self: Monster): float32 = + let o = self.tab.Offset(124) + if o != 0: + return Get[float32](self.tab, self.tab.Pos + o) + return -Inf +func `negativeInfinityDefault=`*(self: var Monster, n: float32): bool = + return self.tab.MutateSlot(124, n) +func doubleInfDefault*(self: Monster): float64 = + let o = self.tab.Offset(126) + if o != 0: + return Get[float64](self.tab, self.tab.Pos + o) + return Inf +func `doubleInfDefault=`*(self: var Monster, n: float64): bool = + return self.tab.MutateSlot(126, n) proc MonsterStart*(builder: var Builder) = - builder.StartObject(54) + builder.StartObject(62) proc MonsterAddpos*(builder: var Builder, pos: uoffset) = builder.PrependStructSlot(0, pos, default(uoffset)) proc MonsterAddmana*(builder: var Builder, mana: int16) = @@ -658,5 +714,21 @@ proc MonsterAddlongEnumNonEnumDefault*(builder: var Builder, longEnumNonEnumDefa builder.PrependSlot(52, longEnumNonEnumDefault, default(uint64)) proc MonsterAddlongEnumNormalDefault*(builder: var Builder, longEnumNormalDefault: uint64) = builder.PrependSlot(53, longEnumNormalDefault, default(uint64)) +proc MonsterAddnanDefault*(builder: var Builder, nanDefault: float32) = + builder.PrependSlot(54, nanDefault, default(float32)) +proc MonsterAddinfDefault*(builder: var Builder, infDefault: float32) = + builder.PrependSlot(55, infDefault, default(float32)) +proc MonsterAddpositiveInfDefault*(builder: var Builder, positiveInfDefault: float32) = + builder.PrependSlot(56, positiveInfDefault, default(float32)) +proc MonsterAddinfinityDefault*(builder: var Builder, infinityDefault: float32) = + builder.PrependSlot(57, infinityDefault, default(float32)) +proc MonsterAddpositiveInfinityDefault*(builder: var Builder, positiveInfinityDefault: float32) = + builder.PrependSlot(58, positiveInfinityDefault, default(float32)) +proc MonsterAddnegativeInfDefault*(builder: var Builder, negativeInfDefault: float32) = + builder.PrependSlot(59, negativeInfDefault, default(float32)) +proc MonsterAddnegativeInfinityDefault*(builder: var Builder, negativeInfinityDefault: float32) = + builder.PrependSlot(60, negativeInfinityDefault, default(float32)) +proc MonsterAdddoubleInfDefault*(builder: var Builder, doubleInfDefault: float64) = + builder.PrependSlot(61, doubleInfDefault, default(float64)) proc MonsterEnd*(builder: var Builder): uoffset = return builder.EndObject() diff --git a/tests/MyGame/Example/Monster.php b/tests/MyGame/Example/Monster.php index 5f8ad5af55..29976e4aa1 100644 --- a/tests/MyGame/Example/Monster.php +++ b/tests/MyGame/Example/Monster.php @@ -754,22 +754,94 @@ public function getLongEnumNormalDefault() return $o != 0 ? $this->bb->getUlong($o + $this->bb_pos) : \MyGame\Example\LongEnum::LongOne; } + /** + * @return float + */ + public function getNanDefault() + { + $o = $this->__offset(112); + return $o != 0 ? $this->bb->getFloat($o + $this->bb_pos) : nan; + } + + /** + * @return float + */ + public function getInfDefault() + { + $o = $this->__offset(114); + return $o != 0 ? $this->bb->getFloat($o + $this->bb_pos) : inf; + } + + /** + * @return float + */ + public function getPositiveInfDefault() + { + $o = $this->__offset(116); + return $o != 0 ? $this->bb->getFloat($o + $this->bb_pos) : +inf; + } + + /** + * @return float + */ + public function getInfinityDefault() + { + $o = $this->__offset(118); + return $o != 0 ? $this->bb->getFloat($o + $this->bb_pos) : infinity; + } + + /** + * @return float + */ + public function getPositiveInfinityDefault() + { + $o = $this->__offset(120); + return $o != 0 ? $this->bb->getFloat($o + $this->bb_pos) : +infinity; + } + + /** + * @return float + */ + public function getNegativeInfDefault() + { + $o = $this->__offset(122); + return $o != 0 ? $this->bb->getFloat($o + $this->bb_pos) : -inf; + } + + /** + * @return float + */ + public function getNegativeInfinityDefault() + { + $o = $this->__offset(124); + return $o != 0 ? $this->bb->getFloat($o + $this->bb_pos) : -infinity; + } + + /** + * @return double + */ + public function getDoubleInfDefault() + { + $o = $this->__offset(126); + return $o != 0 ? $this->bb->getDouble($o + $this->bb_pos) : inf; + } + /** * @param FlatBufferBuilder $builder * @return void */ public static function startMonster(FlatBufferBuilder $builder) { - $builder->StartObject(54); + $builder->StartObject(62); } /** * @param FlatBufferBuilder $builder * @return Monster */ - public static function createMonster(FlatBufferBuilder $builder, $pos, $mana, $hp, $name, $inventory, $color, $test_type, $test, $test4, $testarrayofstring, $testarrayoftables, $enemy, $testnestedflatbuffer, $testempty, $testbool, $testhashs32_fnv1, $testhashu32_fnv1, $testhashs64_fnv1, $testhashu64_fnv1, $testhashs32_fnv1a, $testhashu32_fnv1a, $testhashs64_fnv1a, $testhashu64_fnv1a, $testarrayofbools, $testf, $testf2, $testf3, $testarrayofstring2, $testarrayofsortedstruct, $flex, $test5, $vector_of_longs, $vector_of_doubles, $parent_namespace_test, $vector_of_referrables, $single_weak_reference, $vector_of_weak_references, $vector_of_strong_referrables, $co_owning_reference, $vector_of_co_owning_references, $non_owning_reference, $vector_of_non_owning_references, $any_unique_type, $any_unique, $any_ambiguous_type, $any_ambiguous, $vector_of_enums, $signed_enum, $testrequirednestedflatbuffer, $scalar_key_sorted_tables, $native_inline, $long_enum_non_enum_default, $long_enum_normal_default) + public static function createMonster(FlatBufferBuilder $builder, $pos, $mana, $hp, $name, $inventory, $color, $test_type, $test, $test4, $testarrayofstring, $testarrayoftables, $enemy, $testnestedflatbuffer, $testempty, $testbool, $testhashs32_fnv1, $testhashu32_fnv1, $testhashs64_fnv1, $testhashu64_fnv1, $testhashs32_fnv1a, $testhashu32_fnv1a, $testhashs64_fnv1a, $testhashu64_fnv1a, $testarrayofbools, $testf, $testf2, $testf3, $testarrayofstring2, $testarrayofsortedstruct, $flex, $test5, $vector_of_longs, $vector_of_doubles, $parent_namespace_test, $vector_of_referrables, $single_weak_reference, $vector_of_weak_references, $vector_of_strong_referrables, $co_owning_reference, $vector_of_co_owning_references, $non_owning_reference, $vector_of_non_owning_references, $any_unique_type, $any_unique, $any_ambiguous_type, $any_ambiguous, $vector_of_enums, $signed_enum, $testrequirednestedflatbuffer, $scalar_key_sorted_tables, $native_inline, $long_enum_non_enum_default, $long_enum_normal_default, $nan_default, $inf_default, $positive_inf_default, $infinity_default, $positive_infinity_default, $negative_inf_default, $negative_infinity_default, $double_inf_default) { - $builder->startObject(54); + $builder->startObject(62); self::addPos($builder, $pos); self::addMana($builder, $mana); self::addHp($builder, $hp); @@ -823,6 +895,14 @@ public static function createMonster(FlatBufferBuilder $builder, $pos, $mana, $h self::addNativeInline($builder, $native_inline); self::addLongEnumNonEnumDefault($builder, $long_enum_non_enum_default); self::addLongEnumNormalDefault($builder, $long_enum_normal_default); + self::addNanDefault($builder, $nan_default); + self::addInfDefault($builder, $inf_default); + self::addPositiveInfDefault($builder, $positive_inf_default); + self::addInfinityDefault($builder, $infinity_default); + self::addPositiveInfinityDefault($builder, $positive_infinity_default); + self::addNegativeInfDefault($builder, $negative_inf_default); + self::addNegativeInfinityDefault($builder, $negative_infinity_default); + self::addDoubleInfDefault($builder, $double_inf_default); $o = $builder->endObject(); $builder->required($o, 10); // name return $o; @@ -1823,6 +1903,86 @@ public static function addLongEnumNormalDefault(FlatBufferBuilder $builder, $lon $builder->addUlongX(53, $longEnumNormalDefault, 2); } + /** + * @param FlatBufferBuilder $builder + * @param float + * @return void + */ + public static function addNanDefault(FlatBufferBuilder $builder, $nanDefault) + { + $builder->addFloatX(54, $nanDefault, nan); + } + + /** + * @param FlatBufferBuilder $builder + * @param float + * @return void + */ + public static function addInfDefault(FlatBufferBuilder $builder, $infDefault) + { + $builder->addFloatX(55, $infDefault, inf); + } + + /** + * @param FlatBufferBuilder $builder + * @param float + * @return void + */ + public static function addPositiveInfDefault(FlatBufferBuilder $builder, $positiveInfDefault) + { + $builder->addFloatX(56, $positiveInfDefault, +inf); + } + + /** + * @param FlatBufferBuilder $builder + * @param float + * @return void + */ + public static function addInfinityDefault(FlatBufferBuilder $builder, $infinityDefault) + { + $builder->addFloatX(57, $infinityDefault, infinity); + } + + /** + * @param FlatBufferBuilder $builder + * @param float + * @return void + */ + public static function addPositiveInfinityDefault(FlatBufferBuilder $builder, $positiveInfinityDefault) + { + $builder->addFloatX(58, $positiveInfinityDefault, +infinity); + } + + /** + * @param FlatBufferBuilder $builder + * @param float + * @return void + */ + public static function addNegativeInfDefault(FlatBufferBuilder $builder, $negativeInfDefault) + { + $builder->addFloatX(59, $negativeInfDefault, -inf); + } + + /** + * @param FlatBufferBuilder $builder + * @param float + * @return void + */ + public static function addNegativeInfinityDefault(FlatBufferBuilder $builder, $negativeInfinityDefault) + { + $builder->addFloatX(60, $negativeInfinityDefault, -infinity); + } + + /** + * @param FlatBufferBuilder $builder + * @param double + * @return void + */ + public static function addDoubleInfDefault(FlatBufferBuilder $builder, $doubleInfDefault) + { + $builder->addDoubleX(61, $doubleInfDefault, inf); + } + /** * @param FlatBufferBuilder $builder * @return int table offset diff --git a/tests/MyGame/Example/Monster.py b/tests/MyGame/Example/Monster.py index 2490c2849e..03dda3b66d 100644 --- a/tests/MyGame/Example/Monster.py +++ b/tests/MyGame/Example/Monster.py @@ -816,7 +816,63 @@ def LongEnumNormalDefault(self): return self._tab.Get(flatbuffers.number_types.Uint64Flags, o + self._tab.Pos) return 2 -def MonsterStart(builder): builder.StartObject(54) + # Monster + def NanDefault(self): + o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(112)) + if o != 0: + return self._tab.Get(flatbuffers.number_types.Float32Flags, o + self._tab.Pos) + return float('nan') + + # Monster + def InfDefault(self): + o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(114)) + if o != 0: + return self._tab.Get(flatbuffers.number_types.Float32Flags, o + self._tab.Pos) + return float('inf') + + # Monster + def PositiveInfDefault(self): + o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(116)) + if o != 0: + return self._tab.Get(flatbuffers.number_types.Float32Flags, o + self._tab.Pos) + return float('inf') + + # Monster + def InfinityDefault(self): + o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(118)) + if o != 0: + return self._tab.Get(flatbuffers.number_types.Float32Flags, o + self._tab.Pos) + return float('inf') + + # Monster + def PositiveInfinityDefault(self): + o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(120)) + if o != 0: + return self._tab.Get(flatbuffers.number_types.Float32Flags, o + self._tab.Pos) + return float('inf') + + # Monster + def NegativeInfDefault(self): + o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(122)) + if o != 0: + return self._tab.Get(flatbuffers.number_types.Float32Flags, o + self._tab.Pos) + return float('-inf') + + # Monster + def NegativeInfinityDefault(self): + o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(124)) + if o != 0: + return self._tab.Get(flatbuffers.number_types.Float32Flags, o + self._tab.Pos) + return float('-inf') + + # Monster + def DoubleInfDefault(self): + o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(126)) + if o != 0: + return self._tab.Get(flatbuffers.number_types.Float64Flags, o + self._tab.Pos) + return float('inf') + +def MonsterStart(builder): builder.StartObject(62) def Start(builder): return MonsterStart(builder) def MonsterAddPos(builder, pos): builder.PrependStructSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(pos), 0) @@ -1052,6 +1108,30 @@ def AddLongEnumNonEnumDefault(builder, longEnumNonEnumDefault): def MonsterAddLongEnumNormalDefault(builder, longEnumNormalDefault): builder.PrependUint64Slot(53, longEnumNormalDefault, 2) def AddLongEnumNormalDefault(builder, longEnumNormalDefault): return MonsterAddLongEnumNormalDefault(builder, longEnumNormalDefault) +def MonsterAddNanDefault(builder, nanDefault): builder.PrependFloat32Slot(54, nanDefault, float('nan')) +def AddNanDefault(builder, nanDefault): + return MonsterAddNanDefault(builder, nanDefault) +def MonsterAddInfDefault(builder, infDefault): builder.PrependFloat32Slot(55, infDefault, float('inf')) +def AddInfDefault(builder, infDefault): + return MonsterAddInfDefault(builder, infDefault) +def MonsterAddPositiveInfDefault(builder, positiveInfDefault): builder.PrependFloat32Slot(56, positiveInfDefault, float('inf')) +def AddPositiveInfDefault(builder, positiveInfDefault): + return MonsterAddPositiveInfDefault(builder, positiveInfDefault) +def MonsterAddInfinityDefault(builder, infinityDefault): builder.PrependFloat32Slot(57, infinityDefault, float('inf')) +def AddInfinityDefault(builder, infinityDefault): + return MonsterAddInfinityDefault(builder, infinityDefault) +def MonsterAddPositiveInfinityDefault(builder, positiveInfinityDefault): builder.PrependFloat32Slot(58, positiveInfinityDefault, float('inf')) +def AddPositiveInfinityDefault(builder, positiveInfinityDefault): + return MonsterAddPositiveInfinityDefault(builder, positiveInfinityDefault) +def MonsterAddNegativeInfDefault(builder, negativeInfDefault): builder.PrependFloat32Slot(59, negativeInfDefault, float('-inf')) +def AddNegativeInfDefault(builder, negativeInfDefault): + return MonsterAddNegativeInfDefault(builder, negativeInfDefault) +def MonsterAddNegativeInfinityDefault(builder, negativeInfinityDefault): builder.PrependFloat32Slot(60, negativeInfinityDefault, float('-inf')) +def AddNegativeInfinityDefault(builder, negativeInfinityDefault): + return MonsterAddNegativeInfinityDefault(builder, negativeInfinityDefault) +def MonsterAddDoubleInfDefault(builder, doubleInfDefault): builder.PrependFloat64Slot(61, doubleInfDefault, float('inf')) +def AddDoubleInfDefault(builder, doubleInfDefault): + return MonsterAddDoubleInfDefault(builder, doubleInfDefault) def MonsterEnd(builder): return builder.EndObject() def End(builder): return MonsterEnd(builder) @@ -1128,6 +1208,14 @@ def __init__(self): self.nativeInline = None # type: Optional[MyGame.Example.Test.TestT] self.longEnumNonEnumDefault = 0 # type: int self.longEnumNormalDefault = 2 # type: int + self.nanDefault = float('nan') # type: float + self.infDefault = float('inf') # type: float + self.positiveInfDefault = float('inf') # type: float + self.infinityDefault = float('inf') # type: float + self.positiveInfinityDefault = float('inf') # type: float + self.negativeInfDefault = float('-inf') # type: float + self.negativeInfinityDefault = float('-inf') # type: float + self.doubleInfDefault = float('inf') # type: float @classmethod def InitFromBuf(cls, buf, pos): @@ -1329,6 +1417,14 @@ def _UnPack(self, monster): self.nativeInline = MyGame.Example.Test.TestT.InitFromObj(monster.NativeInline()) self.longEnumNonEnumDefault = monster.LongEnumNonEnumDefault() self.longEnumNormalDefault = monster.LongEnumNormalDefault() + self.nanDefault = monster.NanDefault() + self.infDefault = monster.InfDefault() + self.positiveInfDefault = monster.PositiveInfDefault() + self.infinityDefault = monster.InfinityDefault() + self.positiveInfinityDefault = monster.PositiveInfinityDefault() + self.negativeInfDefault = monster.NegativeInfDefault() + self.negativeInfinityDefault = monster.NegativeInfinityDefault() + self.doubleInfDefault = monster.DoubleInfDefault() # MonsterT def Pack(self, builder): @@ -1582,5 +1678,13 @@ def Pack(self, builder): MonsterAddNativeInline(builder, nativeInline) MonsterAddLongEnumNonEnumDefault(builder, self.longEnumNonEnumDefault) MonsterAddLongEnumNormalDefault(builder, self.longEnumNormalDefault) + MonsterAddNanDefault(builder, self.nanDefault) + MonsterAddInfDefault(builder, self.infDefault) + MonsterAddPositiveInfDefault(builder, self.positiveInfDefault) + MonsterAddInfinityDefault(builder, self.infinityDefault) + MonsterAddPositiveInfinityDefault(builder, self.positiveInfinityDefault) + MonsterAddNegativeInfDefault(builder, self.negativeInfDefault) + MonsterAddNegativeInfinityDefault(builder, self.negativeInfinityDefault) + MonsterAddDoubleInfDefault(builder, self.doubleInfDefault) monster = MonsterEnd(builder) return monster diff --git a/tests/MyGame/Example/MonsterT.java b/tests/MyGame/Example/MonsterT.java index 06804c78a3..d4a65259a5 100644 --- a/tests/MyGame/Example/MonsterT.java +++ b/tests/MyGame/Example/MonsterT.java @@ -58,6 +58,14 @@ public class MonsterT { private MyGame.Example.TestT nativeInline; private long longEnumNonEnumDefault; private long longEnumNormalDefault; + private float nanDefault; + private float infDefault; + private float positiveInfDefault; + private float infinityDefault; + private float positiveInfinityDefault; + private float negativeInfDefault; + private float negativeInfinityDefault; + private double doubleInfDefault; public MyGame.Example.Vec3T getPos() { return pos; } @@ -259,6 +267,38 @@ public class MonsterT { public void setLongEnumNormalDefault(long longEnumNormalDefault) { this.longEnumNormalDefault = longEnumNormalDefault; } + public float getNanDefault() { return nanDefault; } + + public void setNanDefault(float nanDefault) { this.nanDefault = nanDefault; } + + public float getInfDefault() { return infDefault; } + + public void setInfDefault(float infDefault) { this.infDefault = infDefault; } + + public float getPositiveInfDefault() { return positiveInfDefault; } + + public void setPositiveInfDefault(float positiveInfDefault) { this.positiveInfDefault = positiveInfDefault; } + + public float getInfinityDefault() { return infinityDefault; } + + public void setInfinityDefault(float infinityDefault) { this.infinityDefault = infinityDefault; } + + public float getPositiveInfinityDefault() { return positiveInfinityDefault; } + + public void setPositiveInfinityDefault(float positiveInfinityDefault) { this.positiveInfinityDefault = positiveInfinityDefault; } + + public float getNegativeInfDefault() { return negativeInfDefault; } + + public void setNegativeInfDefault(float negativeInfDefault) { this.negativeInfDefault = negativeInfDefault; } + + public float getNegativeInfinityDefault() { return negativeInfinityDefault; } + + public void setNegativeInfinityDefault(float negativeInfinityDefault) { this.negativeInfinityDefault = negativeInfinityDefault; } + + public double getDoubleInfDefault() { return doubleInfDefault; } + + public void setDoubleInfDefault(double doubleInfDefault) { this.doubleInfDefault = doubleInfDefault; } + public MonsterT() { this.pos = new MyGame.Example.Vec3T(); @@ -311,6 +351,14 @@ public MonsterT() { this.nativeInline = new MyGame.Example.TestT(); this.longEnumNonEnumDefault = 0L; this.longEnumNormalDefault = 2L; + this.nanDefault = Float.NaN; + this.infDefault = Float.POSITIVE_INFINITY; + this.positiveInfDefault = Float.POSITIVE_INFINITY; + this.infinityDefault = Float.POSITIVE_INFINITY; + this.positiveInfinityDefault = Float.POSITIVE_INFINITY; + this.negativeInfDefault = Float.NEGATIVE_INFINITY; + this.negativeInfinityDefault = Float.NEGATIVE_INFINITY; + this.doubleInfDefault = Double.POSITIVE_INFINITY; } public static MonsterT deserializeFromBinary(byte[] fbBuffer) { return Monster.getRootAsMonster(ByteBuffer.wrap(fbBuffer)).unpack(); diff --git a/tests/cpp17/generated_cpp17/monster_test_generated.h b/tests/cpp17/generated_cpp17/monster_test_generated.h index be2c152f82..2fdeeac128 100644 --- a/tests/cpp17/generated_cpp17/monster_test_generated.h +++ b/tests/cpp17/generated_cpp17/monster_test_generated.h @@ -1321,6 +1321,14 @@ struct MonsterT : public flatbuffers::NativeTable { MyGame::Example::Test native_inline{}; MyGame::Example::LongEnum long_enum_non_enum_default = static_cast(0); MyGame::Example::LongEnum long_enum_normal_default = MyGame::Example::LongEnum::LongOne; + float nan_default = std::numeric_limits::quiet_NaN(); + float inf_default = std::numeric_limits::infinity(); + float positive_inf_default = std::numeric_limits::infinity(); + float infinity_default = std::numeric_limits::infinity(); + float positive_infinity_default = std::numeric_limits::infinity(); + float negative_inf_default = -std::numeric_limits::infinity(); + float negative_infinity_default = -std::numeric_limits::infinity(); + double double_inf_default = std::numeric_limits::infinity(); MonsterT() = default; MonsterT(const MonsterT &o); MonsterT(MonsterT&&) FLATBUFFERS_NOEXCEPT = default; @@ -1388,7 +1396,15 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { VT_SCALAR_KEY_SORTED_TABLES = 104, VT_NATIVE_INLINE = 106, VT_LONG_ENUM_NON_ENUM_DEFAULT = 108, - VT_LONG_ENUM_NORMAL_DEFAULT = 110 + VT_LONG_ENUM_NORMAL_DEFAULT = 110, + VT_NAN_DEFAULT = 112, + VT_INF_DEFAULT = 114, + VT_POSITIVE_INF_DEFAULT = 116, + VT_INFINITY_DEFAULT = 118, + VT_POSITIVE_INFINITY_DEFAULT = 120, + VT_NEGATIVE_INF_DEFAULT = 122, + VT_NEGATIVE_INFINITY_DEFAULT = 124, + VT_DOUBLE_INF_DEFAULT = 126 }; const MyGame::Example::Vec3 *pos() const { return GetStruct(VT_POS); @@ -1745,6 +1761,54 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { bool mutate_long_enum_normal_default(MyGame::Example::LongEnum _long_enum_normal_default = static_cast(2ULL)) { return SetField(VT_LONG_ENUM_NORMAL_DEFAULT, static_cast(_long_enum_normal_default), 2ULL); } + float nan_default() const { + return GetField(VT_NAN_DEFAULT, std::numeric_limits::quiet_NaN()); + } + bool mutate_nan_default(float _nan_default = std::numeric_limits::quiet_NaN()) { + return SetField(VT_NAN_DEFAULT, _nan_default, std::numeric_limits::quiet_NaN()); + } + float inf_default() const { + return GetField(VT_INF_DEFAULT, std::numeric_limits::infinity()); + } + bool mutate_inf_default(float _inf_default = std::numeric_limits::infinity()) { + return SetField(VT_INF_DEFAULT, _inf_default, std::numeric_limits::infinity()); + } + float positive_inf_default() const { + return GetField(VT_POSITIVE_INF_DEFAULT, std::numeric_limits::infinity()); + } + bool mutate_positive_inf_default(float _positive_inf_default = std::numeric_limits::infinity()) { + return SetField(VT_POSITIVE_INF_DEFAULT, _positive_inf_default, std::numeric_limits::infinity()); + } + float infinity_default() const { + return GetField(VT_INFINITY_DEFAULT, std::numeric_limits::infinity()); + } + bool mutate_infinity_default(float _infinity_default = std::numeric_limits::infinity()) { + return SetField(VT_INFINITY_DEFAULT, _infinity_default, std::numeric_limits::infinity()); + } + float positive_infinity_default() const { + return GetField(VT_POSITIVE_INFINITY_DEFAULT, std::numeric_limits::infinity()); + } + bool mutate_positive_infinity_default(float _positive_infinity_default = std::numeric_limits::infinity()) { + return SetField(VT_POSITIVE_INFINITY_DEFAULT, _positive_infinity_default, std::numeric_limits::infinity()); + } + float negative_inf_default() const { + return GetField(VT_NEGATIVE_INF_DEFAULT, -std::numeric_limits::infinity()); + } + bool mutate_negative_inf_default(float _negative_inf_default = -std::numeric_limits::infinity()) { + return SetField(VT_NEGATIVE_INF_DEFAULT, _negative_inf_default, -std::numeric_limits::infinity()); + } + float negative_infinity_default() const { + return GetField(VT_NEGATIVE_INFINITY_DEFAULT, -std::numeric_limits::infinity()); + } + bool mutate_negative_infinity_default(float _negative_infinity_default = -std::numeric_limits::infinity()) { + return SetField(VT_NEGATIVE_INFINITY_DEFAULT, _negative_infinity_default, -std::numeric_limits::infinity()); + } + double double_inf_default() const { + return GetField(VT_DOUBLE_INF_DEFAULT, std::numeric_limits::infinity()); + } + bool mutate_double_inf_default(double _double_inf_default = std::numeric_limits::infinity()) { + return SetField(VT_DOUBLE_INF_DEFAULT, _double_inf_default, std::numeric_limits::infinity()); + } template auto get_field() const { if constexpr (Index == 0) return pos(); @@ -1800,6 +1864,14 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { else if constexpr (Index == 50) return native_inline(); else if constexpr (Index == 51) return long_enum_non_enum_default(); else if constexpr (Index == 52) return long_enum_normal_default(); + else if constexpr (Index == 53) return nan_default(); + else if constexpr (Index == 54) return inf_default(); + else if constexpr (Index == 55) return positive_inf_default(); + else if constexpr (Index == 56) return infinity_default(); + else if constexpr (Index == 57) return positive_infinity_default(); + else if constexpr (Index == 58) return negative_inf_default(); + else if constexpr (Index == 59) return negative_infinity_default(); + else if constexpr (Index == 60) return double_inf_default(); else static_assert(Index != Index, "Invalid Field Index"); } bool Verify(flatbuffers::Verifier &verifier) const { @@ -1893,6 +1965,14 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { VerifyField(verifier, VT_NATIVE_INLINE, 2) && VerifyField(verifier, VT_LONG_ENUM_NON_ENUM_DEFAULT, 8) && VerifyField(verifier, VT_LONG_ENUM_NORMAL_DEFAULT, 8) && + VerifyField(verifier, VT_NAN_DEFAULT, 4) && + VerifyField(verifier, VT_INF_DEFAULT, 4) && + VerifyField(verifier, VT_POSITIVE_INF_DEFAULT, 4) && + VerifyField(verifier, VT_INFINITY_DEFAULT, 4) && + VerifyField(verifier, VT_POSITIVE_INFINITY_DEFAULT, 4) && + VerifyField(verifier, VT_NEGATIVE_INF_DEFAULT, 4) && + VerifyField(verifier, VT_NEGATIVE_INFINITY_DEFAULT, 4) && + VerifyField(verifier, VT_DOUBLE_INF_DEFAULT, 8) && verifier.EndTable(); } MonsterT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; @@ -2087,6 +2167,30 @@ struct MonsterBuilder { void add_long_enum_normal_default(MyGame::Example::LongEnum long_enum_normal_default) { fbb_.AddElement(Monster::VT_LONG_ENUM_NORMAL_DEFAULT, static_cast(long_enum_normal_default), 2ULL); } + void add_nan_default(float nan_default) { + fbb_.AddElement(Monster::VT_NAN_DEFAULT, nan_default, std::numeric_limits::quiet_NaN()); + } + void add_inf_default(float inf_default) { + fbb_.AddElement(Monster::VT_INF_DEFAULT, inf_default, std::numeric_limits::infinity()); + } + void add_positive_inf_default(float positive_inf_default) { + fbb_.AddElement(Monster::VT_POSITIVE_INF_DEFAULT, positive_inf_default, std::numeric_limits::infinity()); + } + void add_infinity_default(float infinity_default) { + fbb_.AddElement(Monster::VT_INFINITY_DEFAULT, infinity_default, std::numeric_limits::infinity()); + } + void add_positive_infinity_default(float positive_infinity_default) { + fbb_.AddElement(Monster::VT_POSITIVE_INFINITY_DEFAULT, positive_infinity_default, std::numeric_limits::infinity()); + } + void add_negative_inf_default(float negative_inf_default) { + fbb_.AddElement(Monster::VT_NEGATIVE_INF_DEFAULT, negative_inf_default, -std::numeric_limits::infinity()); + } + void add_negative_infinity_default(float negative_infinity_default) { + fbb_.AddElement(Monster::VT_NEGATIVE_INFINITY_DEFAULT, negative_infinity_default, -std::numeric_limits::infinity()); + } + void add_double_inf_default(double double_inf_default) { + fbb_.AddElement(Monster::VT_DOUBLE_INF_DEFAULT, double_inf_default, std::numeric_limits::infinity()); + } explicit MonsterBuilder(flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); @@ -2153,8 +2257,17 @@ inline flatbuffers::Offset CreateMonster( flatbuffers::Offset>> scalar_key_sorted_tables = 0, const MyGame::Example::Test *native_inline = nullptr, MyGame::Example::LongEnum long_enum_non_enum_default = static_cast(0), - MyGame::Example::LongEnum long_enum_normal_default = MyGame::Example::LongEnum::LongOne) { + MyGame::Example::LongEnum long_enum_normal_default = MyGame::Example::LongEnum::LongOne, + float nan_default = std::numeric_limits::quiet_NaN(), + float inf_default = std::numeric_limits::infinity(), + float positive_inf_default = std::numeric_limits::infinity(), + float infinity_default = std::numeric_limits::infinity(), + float positive_infinity_default = std::numeric_limits::infinity(), + float negative_inf_default = -std::numeric_limits::infinity(), + float negative_infinity_default = -std::numeric_limits::infinity(), + double double_inf_default = std::numeric_limits::infinity()) { MonsterBuilder builder_(_fbb); + builder_.add_double_inf_default(double_inf_default); builder_.add_long_enum_normal_default(long_enum_normal_default); builder_.add_long_enum_non_enum_default(long_enum_non_enum_default); builder_.add_non_owning_reference(non_owning_reference); @@ -2164,6 +2277,13 @@ inline flatbuffers::Offset CreateMonster( builder_.add_testhashs64_fnv1a(testhashs64_fnv1a); builder_.add_testhashu64_fnv1(testhashu64_fnv1); builder_.add_testhashs64_fnv1(testhashs64_fnv1); + builder_.add_negative_infinity_default(negative_infinity_default); + builder_.add_negative_inf_default(negative_inf_default); + builder_.add_positive_infinity_default(positive_infinity_default); + builder_.add_infinity_default(infinity_default); + builder_.add_positive_inf_default(positive_inf_default); + builder_.add_inf_default(inf_default); + builder_.add_nan_default(nan_default); builder_.add_native_inline(native_inline); builder_.add_scalar_key_sorted_tables(scalar_key_sorted_tables); builder_.add_testrequirednestedflatbuffer(testrequirednestedflatbuffer); @@ -2216,7 +2336,7 @@ struct Monster::Traits { static auto constexpr Create = CreateMonster; static constexpr auto name = "Monster"; static constexpr auto fully_qualified_name = "MyGame.Example.Monster"; - static constexpr size_t fields_number = 53; + static constexpr size_t fields_number = 61; static constexpr std::array field_names = { "pos", "mana", @@ -2270,7 +2390,15 @@ struct Monster::Traits { "scalar_key_sorted_tables", "native_inline", "long_enum_non_enum_default", - "long_enum_normal_default" + "long_enum_normal_default", + "nan_default", + "inf_default", + "positive_inf_default", + "infinity_default", + "positive_infinity_default", + "negative_inf_default", + "negative_infinity_default", + "double_inf_default" }; template using FieldType = decltype(std::declval().get_field()); @@ -2330,7 +2458,15 @@ inline flatbuffers::Offset CreateMonsterDirect( std::vector> *scalar_key_sorted_tables = nullptr, const MyGame::Example::Test *native_inline = nullptr, MyGame::Example::LongEnum long_enum_non_enum_default = static_cast(0), - MyGame::Example::LongEnum long_enum_normal_default = MyGame::Example::LongEnum::LongOne) { + MyGame::Example::LongEnum long_enum_normal_default = MyGame::Example::LongEnum::LongOne, + float nan_default = std::numeric_limits::quiet_NaN(), + float inf_default = std::numeric_limits::infinity(), + float positive_inf_default = std::numeric_limits::infinity(), + float infinity_default = std::numeric_limits::infinity(), + float positive_infinity_default = std::numeric_limits::infinity(), + float negative_inf_default = -std::numeric_limits::infinity(), + float negative_infinity_default = -std::numeric_limits::infinity(), + double double_inf_default = std::numeric_limits::infinity()) { auto name__ = name ? _fbb.CreateString(name) : 0; auto inventory__ = inventory ? _fbb.CreateVector(*inventory) : 0; auto test4__ = test4 ? _fbb.CreateVectorOfStructs(*test4) : 0; @@ -2406,7 +2542,15 @@ inline flatbuffers::Offset CreateMonsterDirect( scalar_key_sorted_tables__, native_inline, long_enum_non_enum_default, - long_enum_normal_default); + long_enum_normal_default, + nan_default, + inf_default, + positive_inf_default, + infinity_default, + positive_infinity_default, + negative_inf_default, + negative_infinity_default, + double_inf_default); } flatbuffers::Offset CreateMonster(flatbuffers::FlatBufferBuilder &_fbb, const MonsterT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); @@ -2881,7 +3025,15 @@ inline MonsterT::MonsterT(const MonsterT &o) testrequirednestedflatbuffer(o.testrequirednestedflatbuffer), native_inline(o.native_inline), long_enum_non_enum_default(o.long_enum_non_enum_default), - long_enum_normal_default(o.long_enum_normal_default) { + long_enum_normal_default(o.long_enum_normal_default), + nan_default(o.nan_default), + inf_default(o.inf_default), + positive_inf_default(o.positive_inf_default), + infinity_default(o.infinity_default), + positive_infinity_default(o.positive_infinity_default), + negative_inf_default(o.negative_inf_default), + negative_infinity_default(o.negative_infinity_default), + double_inf_default(o.double_inf_default) { testarrayoftables.reserve(o.testarrayoftables.size()); for (const auto &testarrayoftables_ : o.testarrayoftables) { testarrayoftables.emplace_back((testarrayoftables_) ? new MyGame::Example::MonsterT(*testarrayoftables_) : nullptr); } vector_of_referrables.reserve(o.vector_of_referrables.size()); @@ -2945,6 +3097,14 @@ inline MonsterT &MonsterT::operator=(MonsterT o) FLATBUFFERS_NOEXCEPT { std::swap(native_inline, o.native_inline); std::swap(long_enum_non_enum_default, o.long_enum_non_enum_default); std::swap(long_enum_normal_default, o.long_enum_normal_default); + std::swap(nan_default, o.nan_default); + std::swap(inf_default, o.inf_default); + std::swap(positive_inf_default, o.positive_inf_default); + std::swap(infinity_default, o.infinity_default); + std::swap(positive_infinity_default, o.positive_infinity_default); + std::swap(negative_inf_default, o.negative_inf_default); + std::swap(negative_infinity_default, o.negative_infinity_default); + std::swap(double_inf_default, o.double_inf_default); return *this; } @@ -3010,6 +3170,14 @@ inline void Monster::UnPackTo(MonsterT *_o, const flatbuffers::resolver_function { auto _e = native_inline(); if (_e) _o->native_inline = *_e; } { auto _e = long_enum_non_enum_default(); _o->long_enum_non_enum_default = _e; } { auto _e = long_enum_normal_default(); _o->long_enum_normal_default = _e; } + { auto _e = nan_default(); _o->nan_default = _e; } + { auto _e = inf_default(); _o->inf_default = _e; } + { auto _e = positive_inf_default(); _o->positive_inf_default = _e; } + { auto _e = infinity_default(); _o->infinity_default = _e; } + { auto _e = positive_infinity_default(); _o->positive_infinity_default = _e; } + { auto _e = negative_inf_default(); _o->negative_inf_default = _e; } + { auto _e = negative_infinity_default(); _o->negative_infinity_default = _e; } + { auto _e = double_inf_default(); _o->double_inf_default = _e; } } inline flatbuffers::Offset Monster::Pack(flatbuffers::FlatBufferBuilder &_fbb, const MonsterT* _o, const flatbuffers::rehasher_function_t *_rehasher) { @@ -3073,6 +3241,14 @@ inline flatbuffers::Offset CreateMonster(flatbuffers::FlatBufferBuilder auto _native_inline = &_o->native_inline; auto _long_enum_non_enum_default = _o->long_enum_non_enum_default; auto _long_enum_normal_default = _o->long_enum_normal_default; + auto _nan_default = _o->nan_default; + auto _inf_default = _o->inf_default; + auto _positive_inf_default = _o->positive_inf_default; + auto _infinity_default = _o->infinity_default; + auto _positive_infinity_default = _o->positive_infinity_default; + auto _negative_inf_default = _o->negative_inf_default; + auto _negative_infinity_default = _o->negative_infinity_default; + auto _double_inf_default = _o->double_inf_default; return MyGame::Example::CreateMonster( _fbb, _pos, @@ -3127,7 +3303,15 @@ inline flatbuffers::Offset CreateMonster(flatbuffers::FlatBufferBuilder _scalar_key_sorted_tables, _native_inline, _long_enum_non_enum_default, - _long_enum_normal_default); + _long_enum_normal_default, + _nan_default, + _inf_default, + _positive_inf_default, + _infinity_default, + _positive_infinity_default, + _negative_inf_default, + _negative_infinity_default, + _double_inf_default); } inline TypeAliasesT *TypeAliases::UnPack(const flatbuffers::resolver_function_t *_resolver) const { @@ -3885,7 +4069,15 @@ inline const flatbuffers::TypeTable *MonsterTypeTable() { { flatbuffers::ET_SEQUENCE, 1, 5 }, { flatbuffers::ET_SEQUENCE, 0, 3 }, { flatbuffers::ET_ULONG, 0, 12 }, - { flatbuffers::ET_ULONG, 0, 12 } + { flatbuffers::ET_ULONG, 0, 12 }, + { flatbuffers::ET_FLOAT, 0, -1 }, + { flatbuffers::ET_FLOAT, 0, -1 }, + { flatbuffers::ET_FLOAT, 0, -1 }, + { flatbuffers::ET_FLOAT, 0, -1 }, + { flatbuffers::ET_FLOAT, 0, -1 }, + { flatbuffers::ET_FLOAT, 0, -1 }, + { flatbuffers::ET_FLOAT, 0, -1 }, + { flatbuffers::ET_DOUBLE, 0, -1 } }; static const flatbuffers::TypeFunction type_refs[] = { MyGame::Example::Vec3TypeTable, @@ -3956,10 +4148,18 @@ inline const flatbuffers::TypeTable *MonsterTypeTable() { "scalar_key_sorted_tables", "native_inline", "long_enum_non_enum_default", - "long_enum_normal_default" + "long_enum_normal_default", + "nan_default", + "inf_default", + "positive_inf_default", + "infinity_default", + "positive_infinity_default", + "negative_inf_default", + "negative_infinity_default", + "double_inf_default" }; static const flatbuffers::TypeTable tt = { - flatbuffers::ST_TABLE, 54, type_codes, type_refs, nullptr, nullptr, names + flatbuffers::ST_TABLE, 62, type_codes, type_refs, nullptr, nullptr, names }; return &tt; } diff --git a/tests/cpp17/test_cpp17.cpp b/tests/cpp17/test_cpp17.cpp index cfba2b6b73..6c1929120e 100644 --- a/tests/cpp17/test_cpp17.cpp +++ b/tests/cpp17/test_cpp17.cpp @@ -148,6 +148,14 @@ void StringifyAnyFlatbuffersTypeTest() { signed_enum = -1 long_enum_non_enum_default = 0 long_enum_normal_default = 2 + nan_default = nan + inf_default = inf + positive_inf_default = inf + infinity_default = inf + positive_infinity_default = inf + negative_inf_default = -inf + negative_infinity_default = -inf + double_inf_default = inf })"; // Call a generic function that has no specific knowledge of the flatbuffer we diff --git a/tests/go_test.go b/tests/go_test.go index 8cb7b97f36..a04ef2c9b1 100644 --- a/tests/go_test.go +++ b/tests/go_test.go @@ -533,6 +533,14 @@ func CheckObjectAPI(buf []byte, offset flatbuffers.UOffsetT, sizePrefix bool, fa fail(FailString("mana", 150, got)) } + if monster.Test != nil && monster.Test.Type == example.AnyMonster { + monster.Test.Value.(*example.MonsterT).NanDefault = 0.0 + } + if monster.Enemy != nil { + monster.Enemy.NanDefault = 0.0 + } + monster.NanDefault = 0.0 + builder := flatbuffers.NewBuilder(0) builder.Finish(monster.Pack(builder)) monster2 := example.GetRootAsMonster(builder.FinishedBytes(), 0).UnPack() diff --git a/tests/monster_test.afb b/tests/monster_test.afb index 07cb352b41..b77de7b77c 100644 --- a/tests/monster_test.afb +++ b/tests/monster_test.afb @@ -58,21 +58,21 @@ vector (reflection.Schema.enums): vector (reflection.Schema.objects): +0x0078 | 0F 00 00 00 | uint32_t | 0x0000000F (15) | length of vector (# items) - +0x007C | 9C 31 00 00 | UOffset32 | 0x0000319C (12700) Loc: +0x3218 | offset to table[0] + +0x007C | 54 35 00 00 | UOffset32 | 0x00003554 (13652) Loc: +0x35D0 | offset to table[0] +0x0080 | 50 0E 00 00 | UOffset32 | 0x00000E50 (3664) Loc: +0x0ED0 | offset to table[1] - +0x0084 | E8 2D 00 00 | UOffset32 | 0x00002DE8 (11752) Loc: +0x2E6C | offset to table[2] - +0x0088 | C4 2E 00 00 | UOffset32 | 0x00002EC4 (11972) Loc: +0x2F4C | offset to table[3] - +0x008C | 64 30 00 00 | UOffset32 | 0x00003064 (12388) Loc: +0x30F0 | offset to table[4] - +0x0090 | D8 2F 00 00 | UOffset32 | 0x00002FD8 (12248) Loc: +0x3068 | offset to table[5] - +0x0094 | A0 35 00 00 | UOffset32 | 0x000035A0 (13728) Loc: +0x3634 | offset to table[6] - +0x0098 | 80 34 00 00 | UOffset32 | 0x00003480 (13440) Loc: +0x3518 | offset to table[7] + +0x0084 | A0 31 00 00 | UOffset32 | 0x000031A0 (12704) Loc: +0x3224 | offset to table[2] + +0x0088 | 7C 32 00 00 | UOffset32 | 0x0000327C (12924) Loc: +0x3304 | offset to table[3] + +0x008C | 1C 34 00 00 | UOffset32 | 0x0000341C (13340) Loc: +0x34A8 | offset to table[4] + +0x0090 | 90 33 00 00 | UOffset32 | 0x00003390 (13200) Loc: +0x3420 | offset to table[5] + +0x0094 | 58 39 00 00 | UOffset32 | 0x00003958 (14680) Loc: +0x39EC | offset to table[6] + +0x0098 | 38 38 00 00 | UOffset32 | 0x00003838 (14392) Loc: +0x38D0 | offset to table[7] +0x009C | 70 0B 00 00 | UOffset32 | 0x00000B70 (2928) Loc: +0x0C0C | offset to table[8] - +0x00A0 | 78 32 00 00 | UOffset32 | 0x00003278 (12920) Loc: +0x3318 | offset to table[9] - +0x00A4 | 68 36 00 00 | UOffset32 | 0x00003668 (13928) Loc: +0x370C | offset to table[10] - +0x00A8 | A0 36 00 00 | UOffset32 | 0x000036A0 (13984) Loc: +0x3748 | offset to table[11] - +0x00AC | 90 37 00 00 | UOffset32 | 0x00003790 (14224) Loc: +0x383C | offset to table[12] - +0x00B0 | 44 38 00 00 | UOffset32 | 0x00003844 (14404) Loc: +0x38F4 | offset to table[13] - +0x00B4 | EC 36 00 00 | UOffset32 | 0x000036EC (14060) Loc: +0x37A0 | offset to table[14] + +0x00A0 | 30 36 00 00 | UOffset32 | 0x00003630 (13872) Loc: +0x36D0 | offset to table[9] + +0x00A4 | 20 3A 00 00 | UOffset32 | 0x00003A20 (14880) Loc: +0x3AC4 | offset to table[10] + +0x00A8 | 58 3A 00 00 | UOffset32 | 0x00003A58 (14936) Loc: +0x3B00 | offset to table[11] + +0x00AC | 48 3B 00 00 | UOffset32 | 0x00003B48 (15176) Loc: +0x3BF4 | offset to table[12] + +0x00B0 | FC 3B 00 00 | UOffset32 | 0x00003BFC (15356) Loc: +0x3CAC | offset to table[13] + +0x00B4 | A4 3A 00 00 | UOffset32 | 0x00003AA4 (15012) Loc: +0x3B58 | offset to table[14] vector (reflection.Schema.fbs_files): +0x00B8 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) @@ -81,43 +81,43 @@ vector (reflection.Schema.fbs_files): +0x00C4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x00C8 | offset to table[2] table (reflection.SchemaFile): - +0x00C8 | 64 CB FF FF | SOffset32 | 0xFFFFCB64 (-13468) Loc: +0x3564 | offset to vtable - +0x00CC | 94 36 00 00 | UOffset32 | 0x00003694 (13972) Loc: +0x3760 | offset to field `key` (string) + +0x00C8 | AC C7 FF FF | SOffset32 | 0xFFFFC7AC (-14420) Loc: +0x391C | offset to vtable + +0x00CC | 4C 3A 00 00 | UOffset32 | 0x00003A4C (14924) Loc: +0x3B18 | offset to field `key` (string) +0x00D0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x00D4 | offset to field `value` (string) string (reflection.SchemaFile.value): +0x00D4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x00D8 | E0 | char[1] | | string literal - +0x00D9 | 36 | char | 0x36 (54) | string terminator + +0x00D8 | 98 | char[1] | | string literal + +0x00D9 | 3A | char | 0x3A (58) | string terminator padding: +0x00DA | 00 00 | uint8_t[2] | .. | padding table (reflection.SchemaFile): - +0x00DC | 78 CB FF FF | SOffset32 | 0xFFFFCB78 (-13448) Loc: +0x3564 | offset to vtable - +0x00E0 | 34 38 00 00 | UOffset32 | 0x00003834 (14388) Loc: +0x3914 | offset to field `key` (string) + +0x00DC | C0 C7 FF FF | SOffset32 | 0xFFFFC7C0 (-14400) Loc: +0x391C | offset to vtable + +0x00E0 | EC 3B 00 00 | UOffset32 | 0x00003BEC (15340) Loc: +0x3CCC | offset to field `key` (string) +0x00E4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x00E8 | offset to field `value` (string) string (reflection.SchemaFile.value): +0x00E8 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x00EC | CC 36 | char[2] | 6 | string literal + +0x00EC | 84 3A | char[2] | : | string literal +0x00EE | 00 | char | 0x00 (0) | string terminator unknown (no known references): - +0x00EF | 00 24 38 00 00 | ?uint8_t[5] | .$8.. | WARN: could be corrupted padding region. + +0x00EF | 00 DC 3B 00 00 | ?uint8_t[5] | ..;.. | WARN: could be corrupted padding region. table (reflection.SchemaFile): - +0x00F4 | 90 CB FF FF | SOffset32 | 0xFFFFCB90 (-13424) Loc: +0x3564 | offset to vtable - +0x00F8 | C0 36 00 00 | UOffset32 | 0x000036C0 (14016) Loc: +0x37B8 | offset to field `key` (string) + +0x00F4 | D8 C7 FF FF | SOffset32 | 0xFFFFC7D8 (-14376) Loc: +0x391C | offset to vtable + +0x00F8 | 78 3A 00 00 | UOffset32 | 0x00003A78 (14968) Loc: +0x3B70 | offset to field `key` (string) +0x00FC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x0100 | offset to field `value` (string) string (reflection.SchemaFile.value): +0x0100 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x0104 | B4 36 | char[2] | 6 | string literal + +0x0104 | 6C 3A | char[2] | l: | string literal +0x0106 | 00 | char | 0x00 (0) | string terminator unknown (no known references): - +0x0107 | 00 0C 38 00 00 00 00 | ?uint8_t[7] | ..8.... | WARN: could be corrupted padding region. + +0x0107 | 00 C4 3B 00 00 00 00 | ?uint8_t[7] | ..;.... | WARN: could be corrupted padding region. vtable (reflection.Service): +0x010E | 0E 00 | uint16_t | 0x000E (14) | size of this vtable @@ -133,7 +133,7 @@ table (reflection.Service): +0x0120 | 28 00 00 00 | UOffset32 | 0x00000028 (40) Loc: +0x0148 | offset to field `name` (string) +0x0124 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x0134 | offset to field `calls` (vector) +0x0128 | 08 00 00 00 | UOffset32 | 0x00000008 (8) Loc: +0x0130 | offset to field `documentation` (vector) - +0x012C | 34 36 00 00 | UOffset32 | 0x00003634 (13876) Loc: +0x3760 | offset to field `declaration_file` (string) + +0x012C | EC 39 00 00 | UOffset32 | 0x000039EC (14828) Loc: +0x3B18 | offset to field `declaration_file` (string) vector (reflection.Service.documentation): +0x0130 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) @@ -160,7 +160,7 @@ table (reflection.RPCCall): +0x016C | BA FE FF FF | SOffset32 | 0xFFFFFEBA (-326) Loc: +0x02B2 | offset to vtable +0x0170 | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: +0x01B8 | offset to field `name` (string) +0x0174 | 5C 0D 00 00 | UOffset32 | 0x00000D5C (3420) Loc: +0x0ED0 | offset to field `request` (table) - +0x0178 | D4 2D 00 00 | UOffset32 | 0x00002DD4 (11732) Loc: +0x2F4C | offset to field `response` (table) + +0x0178 | 8C 31 00 00 | UOffset32 | 0x0000318C (12684) Loc: +0x3304 | offset to field `response` (table) +0x017C | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x0188 | offset to field `attributes` (vector) +0x0180 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x0184 | offset to field `documentation` (vector) @@ -172,7 +172,7 @@ vector (reflection.RPCCall.attributes): +0x018C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x0190 | offset to table[0] table (reflection.KeyValue): - +0x0190 | 2C CC FF FF | SOffset32 | 0xFFFFCC2C (-13268) Loc: +0x3564 | offset to vtable + +0x0190 | 74 C8 FF FF | SOffset32 | 0xFFFFC874 (-14220) Loc: +0x391C | offset to vtable +0x0194 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x01A8 | offset to field `key` (string) +0x0198 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x019C | offset to field `value` (string) @@ -204,7 +204,7 @@ table (reflection.RPCCall): +0x01D0 | 1E FF FF FF | SOffset32 | 0xFFFFFF1E (-226) Loc: +0x02B2 | offset to vtable +0x01D4 | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: +0x021C | offset to field `name` (string) +0x01D8 | F8 0C 00 00 | UOffset32 | 0x00000CF8 (3320) Loc: +0x0ED0 | offset to field `request` (table) - +0x01DC | 70 2D 00 00 | UOffset32 | 0x00002D70 (11632) Loc: +0x2F4C | offset to field `response` (table) + +0x01DC | 28 31 00 00 | UOffset32 | 0x00003128 (12584) Loc: +0x3304 | offset to field `response` (table) +0x01E0 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x01EC | offset to field `attributes` (vector) +0x01E4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x01E8 | offset to field `documentation` (vector) @@ -216,7 +216,7 @@ vector (reflection.RPCCall.attributes): +0x01F0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x01F4 | offset to table[0] table (reflection.KeyValue): - +0x01F4 | 90 CC FF FF | SOffset32 | 0xFFFFCC90 (-13168) Loc: +0x3564 | offset to vtable + +0x01F4 | D8 C8 FF FF | SOffset32 | 0xFFFFC8D8 (-14120) Loc: +0x391C | offset to vtable +0x01F8 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x020C | offset to field `key` (string) +0x01FC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x0200 | offset to field `value` (string) @@ -243,7 +243,7 @@ string (reflection.RPCCall.name): table (reflection.RPCCall): +0x0230 | 7E FF FF FF | SOffset32 | 0xFFFFFF7E (-130) Loc: +0x02B2 | offset to vtable +0x0234 | 70 00 00 00 | UOffset32 | 0x00000070 (112) Loc: +0x02A4 | offset to field `name` (string) - +0x0238 | 14 2D 00 00 | UOffset32 | 0x00002D14 (11540) Loc: +0x2F4C | offset to field `request` (table) + +0x0238 | CC 30 00 00 | UOffset32 | 0x000030CC (12492) Loc: +0x3304 | offset to field `request` (table) +0x023C | 94 0C 00 00 | UOffset32 | 0x00000C94 (3220) Loc: +0x0ED0 | offset to field `response` (table) +0x0240 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x024C | offset to field `attributes` (vector) +0x0244 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x0248 | offset to field `documentation` (vector) @@ -257,7 +257,7 @@ vector (reflection.RPCCall.attributes): +0x0254 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x0258 | offset to table[1] table (reflection.KeyValue): - +0x0258 | F4 CC FF FF | SOffset32 | 0xFFFFCCF4 (-13068) Loc: +0x3564 | offset to vtable + +0x0258 | 3C C9 FF FF | SOffset32 | 0xFFFFC93C (-14020) Loc: +0x391C | offset to vtable +0x025C | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x0270 | offset to field `key` (string) +0x0260 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x0264 | offset to field `value` (string) @@ -276,7 +276,7 @@ padding: +0x027E | 00 00 | uint8_t[2] | .. | padding table (reflection.KeyValue): - +0x0280 | 1C CD FF FF | SOffset32 | 0xFFFFCD1C (-13028) Loc: +0x3564 | offset to vtable + +0x0280 | 64 C9 FF FF | SOffset32 | 0xFFFFC964 (-13980) Loc: +0x391C | offset to vtable +0x0284 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x0294 | offset to field `key` (string) +0x0288 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x028C | offset to field `value` (string) @@ -312,7 +312,7 @@ table (reflection.RPCCall): +0x02C0 | 0E 00 00 00 | SOffset32 | 0x0000000E (14) Loc: +0x02B2 | offset to vtable +0x02C4 | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: +0x030C | offset to field `name` (string) +0x02C8 | 08 0C 00 00 | UOffset32 | 0x00000C08 (3080) Loc: +0x0ED0 | offset to field `request` (table) - +0x02CC | 80 2C 00 00 | UOffset32 | 0x00002C80 (11392) Loc: +0x2F4C | offset to field `response` (table) + +0x02CC | 38 30 00 00 | UOffset32 | 0x00003038 (12344) Loc: +0x3304 | offset to field `response` (table) +0x02D0 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x02DC | offset to field `attributes` (vector) +0x02D4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x02D8 | offset to field `documentation` (vector) @@ -324,7 +324,7 @@ vector (reflection.RPCCall.attributes): +0x02E0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x02E4 | offset to table[0] table (reflection.KeyValue): - +0x02E4 | 80 CD FF FF | SOffset32 | 0xFFFFCD80 (-12928) Loc: +0x3564 | offset to vtable + +0x02E4 | C8 C9 FF FF | SOffset32 | 0xFFFFC9C8 (-13880) Loc: +0x391C | offset to vtable +0x02E8 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x02FC | offset to field `key` (string) +0x02EC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x02F0 | offset to field `value` (string) @@ -361,13 +361,13 @@ table (reflection.Enum): +0x0324 | 28 00 00 00 | UOffset32 | 0x00000028 (40) Loc: +0x034C | offset to field `values` (vector) +0x0328 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x0338 | offset to field `underlying_type` (table) +0x032C | 08 00 00 00 | UOffset32 | 0x00000008 (8) Loc: +0x0334 | offset to field `documentation` (vector) - +0x0330 | 30 34 00 00 | UOffset32 | 0x00003430 (13360) Loc: +0x3760 | offset to field `declaration_file` (string) + +0x0330 | E8 37 00 00 | UOffset32 | 0x000037E8 (14312) Loc: +0x3B18 | offset to field `declaration_file` (string) vector (reflection.Enum.documentation): +0x0334 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) table (reflection.Type): - +0x0338 | 34 CD FF FF | SOffset32 | 0xFFFFCD34 (-13004) Loc: +0x3604 | offset to vtable + +0x0338 | 7C C9 FF FF | SOffset32 | 0xFFFFC97C (-13956) Loc: +0x39BC | offset to vtable +0x033C | 00 00 00 | uint8_t[3] | ... | padding +0x033F | 01 | uint8_t | 0x01 (1) | table field `base_type` (Byte) +0x0340 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `index` (Int) @@ -402,7 +402,7 @@ vector (reflection.EnumVal.documentation): +0x03A4 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) table (reflection.Type): - +0x03A8 | F0 CA FF FF | SOffset32 | 0xFFFFCAF0 (-13584) Loc: +0x38B8 | offset to vtable + +0x03A8 | 38 C7 FF FF | SOffset32 | 0xFFFFC738 (-14536) Loc: +0x3C70 | offset to vtable +0x03AC | 00 00 00 | uint8_t[3] | ... | padding +0x03AF | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) +0x03B0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `index` (Int) @@ -425,7 +425,7 @@ vector (reflection.EnumVal.documentation): +0x03DC | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) table (reflection.Type): - +0x03E0 | 28 CB FF FF | SOffset32 | 0xFFFFCB28 (-13528) Loc: +0x38B8 | offset to vtable + +0x03E0 | 70 C7 FF FF | SOffset32 | 0xFFFFC770 (-14480) Loc: +0x3C70 | offset to vtable +0x03E4 | 00 00 00 | uint8_t[3] | ... | padding +0x03E7 | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) +0x03E8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `index` (Int) @@ -448,7 +448,7 @@ vector (reflection.EnumVal.documentation): +0x0414 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) table (reflection.Type): - +0x0418 | 60 CB FF FF | SOffset32 | 0xFFFFCB60 (-13472) Loc: +0x38B8 | offset to vtable + +0x0418 | A8 C7 FF FF | SOffset32 | 0xFFFFC7A8 (-14424) Loc: +0x3C70 | offset to vtable +0x041C | 00 00 00 | uint8_t[3] | ... | padding +0x041F | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) +0x0420 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `index` (Int) @@ -489,13 +489,13 @@ table (reflection.Enum): +0x0468 | 28 00 00 00 | UOffset32 | 0x00000028 (40) Loc: +0x0490 | offset to field `values` (vector) +0x046C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x047C | offset to field `underlying_type` (table) +0x0470 | 08 00 00 00 | UOffset32 | 0x00000008 (8) Loc: +0x0478 | offset to field `documentation` (vector) - +0x0474 | EC 32 00 00 | UOffset32 | 0x000032EC (13036) Loc: +0x3760 | offset to field `declaration_file` (string) + +0x0474 | A4 36 00 00 | UOffset32 | 0x000036A4 (13988) Loc: +0x3B18 | offset to field `declaration_file` (string) vector (reflection.Enum.documentation): +0x0478 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) table (reflection.Type): - +0x047C | 78 CE FF FF | SOffset32 | 0xFFFFCE78 (-12680) Loc: +0x3604 | offset to vtable + +0x047C | C0 CA FF FF | SOffset32 | 0xFFFFCAC0 (-13632) Loc: +0x39BC | offset to vtable +0x0480 | 00 00 00 | uint8_t[3] | ... | padding +0x0483 | 01 | uint8_t | 0x01 (1) | table field `base_type` (Byte) +0x0484 | 02 00 00 00 | uint32_t | 0x00000002 (2) | table field `index` (Int) @@ -529,7 +529,7 @@ vector (reflection.EnumVal.documentation): +0x04E4 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) table (reflection.Type): - +0x04E8 | 30 CC FF FF | SOffset32 | 0xFFFFCC30 (-13264) Loc: +0x38B8 | offset to vtable + +0x04E8 | 78 C8 FF FF | SOffset32 | 0xFFFFC878 (-14216) Loc: +0x3C70 | offset to vtable +0x04EC | 00 00 00 | uint8_t[3] | ... | padding +0x04EF | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) +0x04F0 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | table field `index` (Int) @@ -552,7 +552,7 @@ vector (reflection.EnumVal.documentation): +0x051C | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) table (reflection.Type): - +0x0520 | 68 CC FF FF | SOffset32 | 0xFFFFCC68 (-13208) Loc: +0x38B8 | offset to vtable + +0x0520 | B0 C8 FF FF | SOffset32 | 0xFFFFC8B0 (-14160) Loc: +0x3C70 | offset to vtable +0x0524 | 00 00 00 | uint8_t[3] | ... | padding +0x0527 | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) +0x0528 | 07 00 00 00 | uint32_t | 0x00000007 (7) | table field `index` (Int) @@ -574,7 +574,7 @@ vector (reflection.EnumVal.documentation): +0x0550 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) table (reflection.Type): - +0x0554 | 9C CC FF FF | SOffset32 | 0xFFFFCC9C (-13156) Loc: +0x38B8 | offset to vtable + +0x0554 | E4 C8 FF FF | SOffset32 | 0xFFFFC8E4 (-14108) Loc: +0x3C70 | offset to vtable +0x0558 | 00 00 00 | uint8_t[3] | ... | padding +0x055B | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) +0x055C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `index` (Int) @@ -626,13 +626,13 @@ table (reflection.Enum): +0x05B4 | 28 00 00 00 | UOffset32 | 0x00000028 (40) Loc: +0x05DC | offset to field `values` (vector) +0x05B8 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x05C8 | offset to field `underlying_type` (table) +0x05BC | 08 00 00 00 | UOffset32 | 0x00000008 (8) Loc: +0x05C4 | offset to field `documentation` (vector) - +0x05C0 | A0 31 00 00 | UOffset32 | 0x000031A0 (12704) Loc: +0x3760 | offset to field `declaration_file` (string) + +0x05C0 | 58 35 00 00 | UOffset32 | 0x00003558 (13656) Loc: +0x3B18 | offset to field `declaration_file` (string) vector (reflection.Enum.documentation): +0x05C4 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) table (reflection.Type): - +0x05C8 | C4 CF FF FF | SOffset32 | 0xFFFFCFC4 (-12348) Loc: +0x3604 | offset to vtable + +0x05C8 | 0C CC FF FF | SOffset32 | 0xFFFFCC0C (-13300) Loc: +0x39BC | offset to vtable +0x05CC | 00 00 00 | uint8_t[3] | ... | padding +0x05CF | 01 | uint8_t | 0x01 (1) | table field `base_type` (Byte) +0x05D0 | 00 00 00 00 | uint32_t | 0x00000000 (0) | table field `index` (Int) @@ -664,7 +664,7 @@ vector (reflection.EnumVal.documentation): +0x0620 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) table (reflection.Type): - +0x0624 | 6C CD FF FF | SOffset32 | 0xFFFFCD6C (-12948) Loc: +0x38B8 | offset to vtable + +0x0624 | B4 C9 FF FF | SOffset32 | 0xFFFFC9B4 (-13900) Loc: +0x3C70 | offset to vtable +0x0628 | 00 00 00 | uint8_t[3] | ... | padding +0x062B | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) +0x062C | 0A 00 00 00 | uint32_t | 0x0000000A (10) | table field `index` (Int) @@ -688,7 +688,7 @@ vector (reflection.EnumVal.documentation): +0x0668 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) table (reflection.Type): - +0x066C | B4 CD FF FF | SOffset32 | 0xFFFFCDB4 (-12876) Loc: +0x38B8 | offset to vtable + +0x066C | FC C9 FF FF | SOffset32 | 0xFFFFC9FC (-13828) Loc: +0x3C70 | offset to vtable +0x0670 | 00 00 00 | uint8_t[3] | ... | padding +0x0673 | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) +0x0674 | 07 00 00 00 | uint32_t | 0x00000007 (7) | table field `index` (Int) @@ -712,7 +712,7 @@ vector (reflection.EnumVal.documentation): +0x06B0 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) table (reflection.Type): - +0x06B4 | FC CD FF FF | SOffset32 | 0xFFFFCDFC (-12804) Loc: +0x38B8 | offset to vtable + +0x06B4 | 44 CA FF FF | SOffset32 | 0xFFFFCA44 (-13756) Loc: +0x3C70 | offset to vtable +0x06B8 | 00 00 00 | uint8_t[3] | ... | padding +0x06BB | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) +0x06BC | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `index` (Int) @@ -752,7 +752,7 @@ table (reflection.Enum): +0x0708 | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: +0x0748 | offset to field `underlying_type` (table) +0x070C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x071C | offset to field `attributes` (vector) +0x0710 | 08 00 00 00 | UOffset32 | 0x00000008 (8) Loc: +0x0718 | offset to field `documentation` (vector) - +0x0714 | 4C 30 00 00 | UOffset32 | 0x0000304C (12364) Loc: +0x3760 | offset to field `declaration_file` (string) + +0x0714 | 04 34 00 00 | UOffset32 | 0x00003404 (13316) Loc: +0x3B18 | offset to field `declaration_file` (string) vector (reflection.Enum.documentation): +0x0718 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) @@ -762,7 +762,7 @@ vector (reflection.Enum.attributes): +0x0720 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x0724 | offset to table[0] table (reflection.KeyValue): - +0x0724 | C0 D1 FF FF | SOffset32 | 0xFFFFD1C0 (-11840) Loc: +0x3564 | offset to vtable + +0x0724 | 08 CE FF FF | SOffset32 | 0xFFFFCE08 (-12792) Loc: +0x391C | offset to vtable +0x0728 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x0738 | offset to field `key` (string) +0x072C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x0730 | offset to field `value` (string) @@ -784,7 +784,7 @@ padding: +0x0746 | 00 00 | uint8_t[2] | .. | padding table (reflection.Type): - +0x0748 | 44 D1 FF FF | SOffset32 | 0xFFFFD144 (-11964) Loc: +0x3604 | offset to vtable + +0x0748 | 8C CD FF FF | SOffset32 | 0xFFFFCD8C (-12916) Loc: +0x39BC | offset to vtable +0x074C | 00 00 00 | uint8_t[3] | ... | padding +0x074F | 0A | uint8_t | 0x0A (10) | table field `base_type` (Byte) +0x0750 | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `index` (Int) @@ -872,13 +872,13 @@ table (reflection.Enum): +0x0834 | 28 00 00 00 | UOffset32 | 0x00000028 (40) Loc: +0x085C | offset to field `values` (vector) +0x0838 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x0848 | offset to field `underlying_type` (table) +0x083C | 08 00 00 00 | UOffset32 | 0x00000008 (8) Loc: +0x0844 | offset to field `documentation` (vector) - +0x0840 | 20 2F 00 00 | UOffset32 | 0x00002F20 (12064) Loc: +0x3760 | offset to field `declaration_file` (string) + +0x0840 | D8 32 00 00 | UOffset32 | 0x000032D8 (13016) Loc: +0x3B18 | offset to field `declaration_file` (string) vector (reflection.Enum.documentation): +0x0844 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) table (reflection.Type): - +0x0848 | 44 D2 FF FF | SOffset32 | 0xFFFFD244 (-11708) Loc: +0x3604 | offset to vtable + +0x0848 | 8C CE FF FF | SOffset32 | 0xFFFFCE8C (-12660) Loc: +0x39BC | offset to vtable +0x084C | 00 00 00 | uint8_t[3] | ... | padding +0x084F | 03 | uint8_t | 0x03 (3) | table field `base_type` (Byte) +0x0850 | 05 00 00 00 | uint32_t | 0x00000005 (5) | table field `index` (Int) @@ -1009,7 +1009,7 @@ table (reflection.Enum): +0x0978 | 70 00 00 00 | UOffset32 | 0x00000070 (112) Loc: +0x09E8 | offset to field `underlying_type` (table) +0x097C | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: +0x09BC | offset to field `attributes` (vector) +0x0980 | 08 00 00 00 | UOffset32 | 0x00000008 (8) Loc: +0x0988 | offset to field `documentation` (vector) - +0x0984 | DC 2D 00 00 | UOffset32 | 0x00002DDC (11740) Loc: +0x3760 | offset to field `declaration_file` (string) + +0x0984 | 94 31 00 00 | UOffset32 | 0x00003194 (12692) Loc: +0x3B18 | offset to field `declaration_file` (string) vector (reflection.Enum.documentation): +0x0988 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) @@ -1029,7 +1029,7 @@ vector (reflection.Enum.attributes): +0x09C0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x09C4 | offset to table[0] table (reflection.KeyValue): - +0x09C4 | 60 D4 FF FF | SOffset32 | 0xFFFFD460 (-11168) Loc: +0x3564 | offset to vtable + +0x09C4 | A8 D0 FF FF | SOffset32 | 0xFFFFD0A8 (-12120) Loc: +0x391C | offset to vtable +0x09C8 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x09D8 | offset to field `key` (string) +0x09CC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x09D0 | offset to field `value` (string) @@ -1051,7 +1051,7 @@ padding: +0x09E6 | 00 00 | uint8_t[2] | .. | padding table (reflection.Type): - +0x09E8 | E4 D3 FF FF | SOffset32 | 0xFFFFD3E4 (-11292) Loc: +0x3604 | offset to vtable + +0x09E8 | 2C D0 FF FF | SOffset32 | 0xFFFFD02C (-12244) Loc: +0x39BC | offset to vtable +0x09EC | 00 00 00 | uint8_t[3] | ... | padding +0x09EF | 04 | uint8_t | 0x04 (4) | table field `base_type` (Byte) +0x09F0 | 03 00 00 00 | uint32_t | 0x00000003 (3) | table field `index` (Int) @@ -1199,13 +1199,13 @@ table (reflection.Enum): +0x0B68 | 28 00 00 00 | UOffset32 | 0x00000028 (40) Loc: +0x0B90 | offset to field `values` (vector) +0x0B6C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x0B7C | offset to field `underlying_type` (table) +0x0B70 | 08 00 00 00 | UOffset32 | 0x00000008 (8) Loc: +0x0B78 | offset to field `documentation` (vector) - +0x0B74 | A0 2D 00 00 | UOffset32 | 0x00002DA0 (11680) Loc: +0x3914 | offset to field `declaration_file` (string) + +0x0B74 | 58 31 00 00 | UOffset32 | 0x00003158 (12632) Loc: +0x3CCC | offset to field `declaration_file` (string) vector (reflection.Enum.documentation): +0x0B78 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) table (reflection.Type): - +0x0B7C | 78 D5 FF FF | SOffset32 | 0xFFFFD578 (-10888) Loc: +0x3604 | offset to vtable + +0x0B7C | C0 D1 FF FF | SOffset32 | 0xFFFFD1C0 (-11840) Loc: +0x39BC | offset to vtable +0x0B80 | 00 00 00 | uint8_t[3] | ... | padding +0x0B83 | 09 | uint8_t | 0x09 (9) | table field `base_type` (Byte) +0x0B84 | 06 00 00 00 | uint32_t | 0x00000006 (6) | table field `index` (Int) @@ -1265,12 +1265,12 @@ string (reflection.EnumVal.name): +0x0C0A | 00 | char | 0x00 (0) | string terminator table (reflection.Object): - +0x0C0C | E4 D3 FF FF | SOffset32 | 0xFFFFD3E4 (-11292) Loc: +0x3828 | offset to vtable + +0x0C0C | 2C D0 FF FF | SOffset32 | 0xFFFFD02C (-12244) Loc: +0x3BE0 | offset to vtable +0x0C10 | 4C 00 00 00 | UOffset32 | 0x0000004C (76) Loc: +0x0C5C | offset to field `name` (string) +0x0C14 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x0C28 | offset to field `fields` (vector) +0x0C18 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `minalign` (Int) +0x0C1C | 08 00 00 00 | UOffset32 | 0x00000008 (8) Loc: +0x0C24 | offset to field `documentation` (vector) - +0x0C20 | 40 2B 00 00 | UOffset32 | 0x00002B40 (11072) Loc: +0x3760 | offset to field `declaration_file` (string) + +0x0C20 | F8 2E 00 00 | UOffset32 | 0x00002EF8 (12024) Loc: +0x3B18 | offset to field `declaration_file` (string) vector (reflection.Object.documentation): +0x0C24 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) @@ -1299,7 +1299,7 @@ string (reflection.Object.name): +0x0C7A | 00 | char | 0x00 (0) | string terminator table (reflection.Field): - +0x0C7C | 00 DB FF FF | SOffset32 | 0xFFFFDB00 (-9472) Loc: +0x317C | offset to vtable + +0x0C7C | 48 D7 FF FF | SOffset32 | 0xFFFFD748 (-10424) Loc: +0x3534 | offset to vtable +0x0C80 | 00 00 00 | uint8_t[3] | ... | padding +0x0C83 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) +0x0C84 | 0B 00 | uint16_t | 0x000B (11) | table field `id` (UShort) @@ -1312,7 +1312,7 @@ vector (reflection.Field.documentation): +0x0C94 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) table (reflection.Type): - +0x0C98 | 14 E1 FF FF | SOffset32 | 0xFFFFE114 (-7916) Loc: +0x2B84 | offset to vtable + +0x0C98 | 5C DD FF FF | SOffset32 | 0xFFFFDD5C (-8868) Loc: +0x2F3C | offset to vtable +0x0C9C | 00 00 | uint8_t[2] | .. | padding +0x0C9E | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) +0x0C9F | 0C | uint8_t | 0x0C (12) | table field `element` (Byte) @@ -1327,7 +1327,7 @@ padding: +0x0CAD | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Field): - +0x0CB0 | 34 DB FF FF | SOffset32 | 0xFFFFDB34 (-9420) Loc: +0x317C | offset to vtable + +0x0CB0 | 7C D7 FF FF | SOffset32 | 0xFFFFD77C (-10372) Loc: +0x3534 | offset to vtable +0x0CB4 | 00 00 00 | uint8_t[3] | ... | padding +0x0CB7 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) +0x0CB8 | 0A 00 | uint16_t | 0x000A (10) | table field `id` (UShort) @@ -1340,7 +1340,7 @@ vector (reflection.Field.documentation): +0x0CC8 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) table (reflection.Type): - +0x0CCC | 48 E1 FF FF | SOffset32 | 0xFFFFE148 (-7864) Loc: +0x2B84 | offset to vtable + +0x0CCC | 90 DD FF FF | SOffset32 | 0xFFFFDD90 (-8816) Loc: +0x2F3C | offset to vtable +0x0CD0 | 00 00 | uint8_t[2] | .. | padding +0x0CD2 | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) +0x0CD3 | 03 | uint8_t | 0x03 (3) | table field `element` (Byte) @@ -1352,7 +1352,7 @@ string (reflection.Field.name): +0x0CDE | 00 | char | 0x00 (0) | string terminator table (reflection.Field): - +0x0CE0 | 4A D8 FF FF | SOffset32 | 0xFFFFD84A (-10166) Loc: +0x3496 | offset to vtable + +0x0CE0 | 92 D4 FF FF | SOffset32 | 0xFFFFD492 (-11118) Loc: +0x384E | offset to vtable +0x0CE4 | 09 00 | uint16_t | 0x0009 (9) | table field `id` (UShort) +0x0CE6 | 16 00 | uint16_t | 0x0016 (22) | table field `offset` (UShort) +0x0CE8 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x0D08 | offset to field `name` (string) @@ -1363,7 +1363,7 @@ vector (reflection.Field.documentation): +0x0CF4 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) table (reflection.Type): - +0x0CF8 | 14 D6 FF FF | SOffset32 | 0xFFFFD614 (-10732) Loc: +0x36E4 | offset to vtable + +0x0CF8 | 5C D2 FF FF | SOffset32 | 0xFFFFD25C (-11684) Loc: +0x3A9C | offset to vtable +0x0CFC | 00 00 00 | uint8_t[3] | ... | padding +0x0CFF | 0C | uint8_t | 0x0C (12) | table field `base_type` (Byte) +0x0D00 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt) @@ -1375,7 +1375,7 @@ string (reflection.Field.name): +0x0D0F | 00 | char | 0x00 (0) | string terminator table (reflection.Field): - +0x0D10 | 7A D8 FF FF | SOffset32 | 0xFFFFD87A (-10118) Loc: +0x3496 | offset to vtable + +0x0D10 | C2 D4 FF FF | SOffset32 | 0xFFFFD4C2 (-11070) Loc: +0x384E | offset to vtable +0x0D14 | 08 00 | uint16_t | 0x0008 (8) | table field `id` (UShort) +0x0D16 | 14 00 | uint16_t | 0x0014 (20) | table field `offset` (UShort) +0x0D18 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: +0x0D34 | offset to field `name` (string) @@ -1386,7 +1386,7 @@ vector (reflection.Field.documentation): +0x0D24 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) table (reflection.Type): - +0x0D28 | 8C D3 FF FF | SOffset32 | 0xFFFFD38C (-11380) Loc: +0x399C | offset to vtable + +0x0D28 | D4 CF FF FF | SOffset32 | 0xFFFFCFD4 (-12332) Loc: +0x3D54 | offset to vtable +0x0D2C | 00 00 00 | uint8_t[3] | ... | padding +0x0D2F | 0B | uint8_t | 0x0B (11) | table field `base_type` (Byte) +0x0D30 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) @@ -1397,7 +1397,7 @@ string (reflection.Field.name): +0x0D3B | 00 | char | 0x00 (0) | string terminator table (reflection.Field): - +0x0D3C | A6 D8 FF FF | SOffset32 | 0xFFFFD8A6 (-10074) Loc: +0x3496 | offset to vtable + +0x0D3C | EE D4 FF FF | SOffset32 | 0xFFFFD4EE (-11026) Loc: +0x384E | offset to vtable +0x0D40 | 07 00 | uint16_t | 0x0007 (7) | table field `id` (UShort) +0x0D42 | 12 00 | uint16_t | 0x0012 (18) | table field `offset` (UShort) +0x0D44 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x0D64 | offset to field `name` (string) @@ -1408,7 +1408,7 @@ vector (reflection.Field.documentation): +0x0D50 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) table (reflection.Type): - +0x0D54 | 70 D6 FF FF | SOffset32 | 0xFFFFD670 (-10640) Loc: +0x36E4 | offset to vtable + +0x0D54 | B8 D2 FF FF | SOffset32 | 0xFFFFD2B8 (-11592) Loc: +0x3A9C | offset to vtable +0x0D58 | 00 00 00 | uint8_t[3] | ... | padding +0x0D5B | 0A | uint8_t | 0x0A (10) | table field `base_type` (Byte) +0x0D5C | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt) @@ -1420,7 +1420,7 @@ string (reflection.Field.name): +0x0D6B | 00 | char | 0x00 (0) | string terminator table (reflection.Field): - +0x0D6C | D6 D8 FF FF | SOffset32 | 0xFFFFD8D6 (-10026) Loc: +0x3496 | offset to vtable + +0x0D6C | 1E D5 FF FF | SOffset32 | 0xFFFFD51E (-10978) Loc: +0x384E | offset to vtable +0x0D70 | 06 00 | uint16_t | 0x0006 (6) | table field `id` (UShort) +0x0D72 | 10 00 | uint16_t | 0x0010 (16) | table field `offset` (UShort) +0x0D74 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x0D94 | offset to field `name` (string) @@ -1431,7 +1431,7 @@ vector (reflection.Field.documentation): +0x0D80 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) table (reflection.Type): - +0x0D84 | A0 D6 FF FF | SOffset32 | 0xFFFFD6A0 (-10592) Loc: +0x36E4 | offset to vtable + +0x0D84 | E8 D2 FF FF | SOffset32 | 0xFFFFD2E8 (-11544) Loc: +0x3A9C | offset to vtable +0x0D88 | 00 00 00 | uint8_t[3] | ... | padding +0x0D8B | 09 | uint8_t | 0x09 (9) | table field `base_type` (Byte) +0x0D8C | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt) @@ -1443,7 +1443,7 @@ string (reflection.Field.name): +0x0D9B | 00 | char | 0x00 (0) | string terminator table (reflection.Field): - +0x0D9C | 06 D9 FF FF | SOffset32 | 0xFFFFD906 (-9978) Loc: +0x3496 | offset to vtable + +0x0D9C | 4E D5 FF FF | SOffset32 | 0xFFFFD54E (-10930) Loc: +0x384E | offset to vtable +0x0DA0 | 05 00 | uint16_t | 0x0005 (5) | table field `id` (UShort) +0x0DA2 | 0E 00 | uint16_t | 0x000E (14) | table field `offset` (UShort) +0x0DA4 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: +0x0DC0 | offset to field `name` (string) @@ -1454,7 +1454,7 @@ vector (reflection.Field.documentation): +0x0DB0 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) table (reflection.Type): - +0x0DB4 | 18 D4 FF FF | SOffset32 | 0xFFFFD418 (-11240) Loc: +0x399C | offset to vtable + +0x0DB4 | 60 D0 FF FF | SOffset32 | 0xFFFFD060 (-12192) Loc: +0x3D54 | offset to vtable +0x0DB8 | 00 00 00 | uint8_t[3] | ... | padding +0x0DBB | 08 | uint8_t | 0x08 (8) | table field `base_type` (Byte) +0x0DBC | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) @@ -1465,7 +1465,7 @@ string (reflection.Field.name): +0x0DC7 | 00 | char | 0x00 (0) | string terminator table (reflection.Field): - +0x0DC8 | 32 D9 FF FF | SOffset32 | 0xFFFFD932 (-9934) Loc: +0x3496 | offset to vtable + +0x0DC8 | 7A D5 FF FF | SOffset32 | 0xFFFFD57A (-10886) Loc: +0x384E | offset to vtable +0x0DCC | 04 00 | uint16_t | 0x0004 (4) | table field `id` (UShort) +0x0DCE | 0C 00 | uint16_t | 0x000C (12) | table field `offset` (UShort) +0x0DD0 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: +0x0DEC | offset to field `name` (string) @@ -1476,7 +1476,7 @@ vector (reflection.Field.documentation): +0x0DDC | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) table (reflection.Type): - +0x0DE0 | 44 D4 FF FF | SOffset32 | 0xFFFFD444 (-11196) Loc: +0x399C | offset to vtable + +0x0DE0 | 8C D0 FF FF | SOffset32 | 0xFFFFD08C (-12148) Loc: +0x3D54 | offset to vtable +0x0DE4 | 00 00 00 | uint8_t[3] | ... | padding +0x0DE7 | 07 | uint8_t | 0x07 (7) | table field `base_type` (Byte) +0x0DE8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) @@ -1487,7 +1487,7 @@ string (reflection.Field.name): +0x0DF3 | 00 | char | 0x00 (0) | string terminator table (reflection.Field): - +0x0DF4 | 5E D9 FF FF | SOffset32 | 0xFFFFD95E (-9890) Loc: +0x3496 | offset to vtable + +0x0DF4 | A6 D5 FF FF | SOffset32 | 0xFFFFD5A6 (-10842) Loc: +0x384E | offset to vtable +0x0DF8 | 03 00 | uint16_t | 0x0003 (3) | table field `id` (UShort) +0x0DFA | 0A 00 | uint16_t | 0x000A (10) | table field `offset` (UShort) +0x0DFC | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x0E1C | offset to field `name` (string) @@ -1498,7 +1498,7 @@ vector (reflection.Field.documentation): +0x0E08 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) table (reflection.Type): - +0x0E0C | 28 D7 FF FF | SOffset32 | 0xFFFFD728 (-10456) Loc: +0x36E4 | offset to vtable + +0x0E0C | 70 D3 FF FF | SOffset32 | 0xFFFFD370 (-11408) Loc: +0x3A9C | offset to vtable +0x0E10 | 00 00 00 | uint8_t[3] | ... | padding +0x0E13 | 06 | uint8_t | 0x06 (6) | table field `base_type` (Byte) +0x0E14 | 02 00 00 00 | uint32_t | 0x00000002 (2) | table field `base_size` (UInt) @@ -1510,7 +1510,7 @@ string (reflection.Field.name): +0x0E23 | 00 | char | 0x00 (0) | string terminator table (reflection.Field): - +0x0E24 | 8E D9 FF FF | SOffset32 | 0xFFFFD98E (-9842) Loc: +0x3496 | offset to vtable + +0x0E24 | D6 D5 FF FF | SOffset32 | 0xFFFFD5D6 (-10794) Loc: +0x384E | offset to vtable +0x0E28 | 02 00 | uint16_t | 0x0002 (2) | table field `id` (UShort) +0x0E2A | 08 00 | uint16_t | 0x0008 (8) | table field `offset` (UShort) +0x0E2C | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x0E4C | offset to field `name` (string) @@ -1521,7 +1521,7 @@ vector (reflection.Field.documentation): +0x0E38 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) table (reflection.Type): - +0x0E3C | 58 D7 FF FF | SOffset32 | 0xFFFFD758 (-10408) Loc: +0x36E4 | offset to vtable + +0x0E3C | A0 D3 FF FF | SOffset32 | 0xFFFFD3A0 (-11360) Loc: +0x3A9C | offset to vtable +0x0E40 | 00 00 00 | uint8_t[3] | ... | padding +0x0E43 | 05 | uint8_t | 0x05 (5) | table field `base_type` (Byte) +0x0E44 | 02 00 00 00 | uint32_t | 0x00000002 (2) | table field `base_size` (UInt) @@ -1533,7 +1533,7 @@ string (reflection.Field.name): +0x0E53 | 00 | char | 0x00 (0) | string terminator table (reflection.Field): - +0x0E54 | BE D9 FF FF | SOffset32 | 0xFFFFD9BE (-9794) Loc: +0x3496 | offset to vtable + +0x0E54 | 06 D6 FF FF | SOffset32 | 0xFFFFD606 (-10746) Loc: +0x384E | offset to vtable +0x0E58 | 01 00 | uint16_t | 0x0001 (1) | table field `id` (UShort) +0x0E5A | 06 00 | uint16_t | 0x0006 (6) | table field `offset` (UShort) +0x0E5C | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x0E7C | offset to field `name` (string) @@ -1544,7 +1544,7 @@ vector (reflection.Field.documentation): +0x0E68 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) table (reflection.Type): - +0x0E6C | 88 D7 FF FF | SOffset32 | 0xFFFFD788 (-10360) Loc: +0x36E4 | offset to vtable + +0x0E6C | D0 D3 FF FF | SOffset32 | 0xFFFFD3D0 (-11312) Loc: +0x3A9C | offset to vtable +0x0E70 | 00 00 00 | uint8_t[3] | ... | padding +0x0E73 | 04 | uint8_t | 0x04 (4) | table field `base_type` (Byte) +0x0E74 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) @@ -1585,7 +1585,7 @@ vector (reflection.Field.documentation): +0x0EB4 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) table (reflection.Type): - +0x0EB8 | D4 D7 FF FF | SOffset32 | 0xFFFFD7D4 (-10284) Loc: +0x36E4 | offset to vtable + +0x0EB8 | 1C D4 FF FF | SOffset32 | 0xFFFFD41C (-11236) Loc: +0x3A9C | offset to vtable +0x0EBC | 00 00 00 | uint8_t[3] | ... | padding +0x0EBF | 03 | uint8_t | 0x03 (3) | table field `base_type` (Byte) +0x0EC0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) @@ -1597,12 +1597,12 @@ string (reflection.Field.name): +0x0ECE | 00 | char | 0x00 (0) | string terminator table (reflection.Object): - +0x0ED0 | A8 D6 FF FF | SOffset32 | 0xFFFFD6A8 (-10584) Loc: +0x3828 | offset to vtable - +0x0ED4 | 30 01 00 00 | UOffset32 | 0x00000130 (304) Loc: +0x1004 | offset to field `name` (string) + +0x0ED0 | F0 D2 FF FF | SOffset32 | 0xFFFFD2F0 (-11536) Loc: +0x3BE0 | offset to vtable + +0x0ED4 | 50 01 00 00 | UOffset32 | 0x00000150 (336) Loc: +0x1024 | offset to field `name` (string) +0x0ED8 | 50 00 00 00 | UOffset32 | 0x00000050 (80) Loc: +0x0F28 | offset to field `fields` (vector) +0x0EDC | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `minalign` (Int) +0x0EE0 | 08 00 00 00 | UOffset32 | 0x00000008 (8) Loc: +0x0EE8 | offset to field `documentation` (vector) - +0x0EE4 | 7C 28 00 00 | UOffset32 | 0x0000287C (10364) Loc: +0x3760 | offset to field `declaration_file` (string) + +0x0EE4 | 34 2C 00 00 | UOffset32 | 0x00002C34 (11316) Loc: +0x3B18 | offset to field `declaration_file` (string) vector (reflection.Object.documentation): +0x0EE8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) @@ -1620,5028 +1620,5428 @@ string (reflection.Object.documentation): +0x0F27 | 00 | char | 0x00 (0) | string terminator vector (reflection.Object.fields): - +0x0F28 | 36 00 00 00 | uint32_t | 0x00000036 (54) | length of vector (# items) - +0x0F2C | 80 04 00 00 | UOffset32 | 0x00000480 (1152) Loc: +0x13AC | offset to table[0] - +0x0F30 | E4 04 00 00 | UOffset32 | 0x000004E4 (1252) Loc: +0x1414 | offset to table[1] - +0x0F34 | 4C 05 00 00 | UOffset32 | 0x0000054C (1356) Loc: +0x1480 | offset to table[2] - +0x0F38 | AC 05 00 00 | UOffset32 | 0x000005AC (1452) Loc: +0x14E4 | offset to table[3] - +0x0F3C | A8 09 00 00 | UOffset32 | 0x000009A8 (2472) Loc: +0x18E4 | offset to table[4] - +0x0F40 | 78 1B 00 00 | UOffset32 | 0x00001B78 (7032) Loc: +0x2AB8 | offset to table[5] - +0x0F44 | 88 18 00 00 | UOffset32 | 0x00001888 (6280) Loc: +0x27CC | offset to table[6] - +0x0F48 | 44 0F 00 00 | UOffset32 | 0x00000F44 (3908) Loc: +0x1E8C | offset to table[7] - +0x0F4C | 7C 1C 00 00 | UOffset32 | 0x00001C7C (7292) Loc: +0x2BC8 | offset to table[8] - +0x0F50 | C0 1D 00 00 | UOffset32 | 0x00001DC0 (7616) Loc: +0x2D10 | offset to table[9] - +0x0F54 | EC 1B 00 00 | UOffset32 | 0x00001BEC (7148) Loc: +0x2B40 | offset to table[10] - +0x0F58 | 44 01 00 00 | UOffset32 | 0x00000144 (324) Loc: +0x109C | offset to table[11] - +0x0F5C | C4 00 00 00 | UOffset32 | 0x000000C4 (196) Loc: +0x1020 | offset to table[12] - +0x0F60 | 30 1E 00 00 | UOffset32 | 0x00001E30 (7728) Loc: +0x2D90 | offset to table[13] - +0x0F64 | 30 1D 00 00 | UOffset32 | 0x00001D30 (7472) Loc: +0x2C94 | offset to table[14] - +0x0F68 | A8 01 00 00 | UOffset32 | 0x000001A8 (424) Loc: +0x1110 | offset to table[15] - +0x0F6C | 10 07 00 00 | UOffset32 | 0x00000710 (1808) Loc: +0x167C | offset to table[16] - +0x0F70 | 80 0D 00 00 | UOffset32 | 0x00000D80 (3456) Loc: +0x1CF0 | offset to table[17] - +0x0F74 | A0 1E 00 00 | UOffset32 | 0x00001EA0 (7840) Loc: +0x2E14 | offset to table[18] - +0x0F78 | 2C 02 00 00 | UOffset32 | 0x0000022C (556) Loc: +0x11A4 | offset to table[19] - +0x0F7C | 5C 03 00 00 | UOffset32 | 0x0000035C (860) Loc: +0x12D8 | offset to table[20] - +0x0F80 | 08 0C 00 00 | UOffset32 | 0x00000C08 (3080) Loc: +0x1B88 | offset to table[21] - +0x0F84 | 58 1A 00 00 | UOffset32 | 0x00001A58 (6744) Loc: +0x29DC | offset to table[22] - +0x0F88 | E4 19 00 00 | UOffset32 | 0x000019E4 (6628) Loc: +0x296C | offset to table[23] - +0x0F8C | A0 0E 00 00 | UOffset32 | 0x00000EA0 (3744) Loc: +0x1E2C | offset to table[24] - +0x0F90 | C4 1A 00 00 | UOffset32 | 0x00001AC4 (6852) Loc: +0x2A54 | offset to table[25] - +0x0F94 | 90 11 00 00 | UOffset32 | 0x00001190 (4496) Loc: +0x2124 | offset to table[26] - +0x0F98 | 78 0F 00 00 | UOffset32 | 0x00000F78 (3960) Loc: +0x1F10 | offset to table[27] - +0x0F9C | 68 19 00 00 | UOffset32 | 0x00001968 (6504) Loc: +0x2904 | offset to table[28] - +0x0FA0 | E0 0F 00 00 | UOffset32 | 0x00000FE0 (4064) Loc: +0x1F80 | offset to table[29] - +0x0FA4 | 88 18 00 00 | UOffset32 | 0x00001888 (6280) Loc: +0x282C | offset to table[30] - +0x0FA8 | C0 16 00 00 | UOffset32 | 0x000016C0 (5824) Loc: +0x2668 | offset to table[31] - +0x0FAC | 1C 17 00 00 | UOffset32 | 0x0000171C (5916) Loc: +0x26C8 | offset to table[32] - +0x0FB0 | 10 11 00 00 | UOffset32 | 0x00001110 (4368) Loc: +0x20C0 | offset to table[33] - +0x0FB4 | 8C 10 00 00 | UOffset32 | 0x0000108C (4236) Loc: +0x2040 | offset to table[34] - +0x0FB8 | 30 10 00 00 | UOffset32 | 0x00001030 (4144) Loc: +0x1FE8 | offset to table[35] - +0x0FBC | 20 16 00 00 | UOffset32 | 0x00001620 (5664) Loc: +0x25DC | offset to table[36] - +0x0FC0 | E0 13 00 00 | UOffset32 | 0x000013E0 (5088) Loc: +0x23A0 | offset to table[37] - +0x0FC4 | FC 14 00 00 | UOffset32 | 0x000014FC (5372) Loc: +0x24C0 | offset to table[38] - +0x0FC8 | 58 12 00 00 | UOffset32 | 0x00001258 (4696) Loc: +0x2220 | offset to table[39] - +0x0FCC | 84 15 00 00 | UOffset32 | 0x00001584 (5508) Loc: +0x2550 | offset to table[40] - +0x0FD0 | E4 12 00 00 | UOffset32 | 0x000012E4 (4836) Loc: +0x22B4 | offset to table[41] - +0x0FD4 | 5C 14 00 00 | UOffset32 | 0x0000145C (5212) Loc: +0x2430 | offset to table[42] - +0x0FD8 | B4 11 00 00 | UOffset32 | 0x000011B4 (4532) Loc: +0x218C | offset to table[43] - +0x0FDC | 50 17 00 00 | UOffset32 | 0x00001750 (5968) Loc: +0x272C | offset to table[44] - +0x0FE0 | 38 02 00 00 | UOffset32 | 0x00000238 (568) Loc: +0x1218 | offset to table[45] - +0x0FE4 | C0 07 00 00 | UOffset32 | 0x000007C0 (1984) Loc: +0x17A4 | offset to table[46] - +0x0FE8 | 78 0D 00 00 | UOffset32 | 0x00000D78 (3448) Loc: +0x1D60 | offset to table[47] - +0x0FEC | 58 03 00 00 | UOffset32 | 0x00000358 (856) Loc: +0x1344 | offset to table[48] - +0x0FF0 | D8 0D 00 00 | UOffset32 | 0x00000DD8 (3544) Loc: +0x1DC8 | offset to table[49] - +0x0FF4 | 58 05 00 00 | UOffset32 | 0x00000558 (1368) Loc: +0x154C | offset to table[50] - +0x0FF8 | 88 0C 00 00 | UOffset32 | 0x00000C88 (3208) Loc: +0x1C80 | offset to table[51] - +0x0FFC | DC 09 00 00 | UOffset32 | 0x000009DC (2524) Loc: +0x19D8 | offset to table[52] - +0x1000 | 8C 0A 00 00 | UOffset32 | 0x00000A8C (2700) Loc: +0x1A8C | offset to table[53] + +0x0F28 | 3E 00 00 00 | uint32_t | 0x0000003E (62) | length of vector (# items) + +0x0F2C | 38 08 00 00 | UOffset32 | 0x00000838 (2104) Loc: +0x1764 | offset to table[0] + +0x0F30 | 9C 08 00 00 | UOffset32 | 0x0000089C (2204) Loc: +0x17CC | offset to table[1] + +0x0F34 | 04 09 00 00 | UOffset32 | 0x00000904 (2308) Loc: +0x1838 | offset to table[2] + +0x0F38 | 64 09 00 00 | UOffset32 | 0x00000964 (2404) Loc: +0x189C | offset to table[3] + +0x0F3C | 60 0D 00 00 | UOffset32 | 0x00000D60 (3424) Loc: +0x1C9C | offset to table[4] + +0x0F40 | 30 1F 00 00 | UOffset32 | 0x00001F30 (7984) Loc: +0x2E70 | offset to table[5] + +0x0F44 | FC 00 00 00 | UOffset32 | 0x000000FC (252) Loc: +0x1040 | offset to table[6] + +0x0F48 | 3C 1C 00 00 | UOffset32 | 0x00001C3C (7228) Loc: +0x2B84 | offset to table[7] + +0x0F4C | F8 12 00 00 | UOffset32 | 0x000012F8 (4856) Loc: +0x2244 | offset to table[8] + +0x0F50 | 30 20 00 00 | UOffset32 | 0x00002030 (8240) Loc: +0x2F80 | offset to table[9] + +0x0F54 | 74 21 00 00 | UOffset32 | 0x00002174 (8564) Loc: +0x30C8 | offset to table[10] + +0x0F58 | B0 03 00 00 | UOffset32 | 0x000003B0 (944) Loc: +0x1308 | offset to table[11] + +0x0F5C | B4 02 00 00 | UOffset32 | 0x000002B4 (692) Loc: +0x1210 | offset to table[12] + +0x0F60 | 98 1F 00 00 | UOffset32 | 0x00001F98 (8088) Loc: +0x2EF8 | offset to table[13] + +0x0F64 | F0 04 00 00 | UOffset32 | 0x000004F0 (1264) Loc: +0x1454 | offset to table[14] + +0x0F68 | 70 04 00 00 | UOffset32 | 0x00000470 (1136) Loc: +0x13D8 | offset to table[15] + +0x0F6C | DC 21 00 00 | UOffset32 | 0x000021DC (8668) Loc: +0x3148 | offset to table[16] + +0x0F70 | DC 20 00 00 | UOffset32 | 0x000020DC (8412) Loc: +0x304C | offset to table[17] + +0x0F74 | FC 03 00 00 | UOffset32 | 0x000003FC (1020) Loc: +0x1370 | offset to table[18] + +0x0F78 | 50 05 00 00 | UOffset32 | 0x00000550 (1360) Loc: +0x14C8 | offset to table[19] + +0x0F7C | AC 01 00 00 | UOffset32 | 0x000001AC (428) Loc: +0x1128 | offset to table[20] + +0x0F80 | 30 01 00 00 | UOffset32 | 0x00000130 (304) Loc: +0x10B0 | offset to table[21] + +0x0F84 | B0 0A 00 00 | UOffset32 | 0x00000AB0 (2736) Loc: +0x1A34 | offset to table[22] + +0x0F88 | 20 11 00 00 | UOffset32 | 0x00001120 (4384) Loc: +0x20A8 | offset to table[23] + +0x0F8C | 40 22 00 00 | UOffset32 | 0x00002240 (8768) Loc: +0x31CC | offset to table[24] + +0x0F90 | 08 03 00 00 | UOffset32 | 0x00000308 (776) Loc: +0x1298 | offset to table[25] + +0x0F94 | 04 02 00 00 | UOffset32 | 0x00000204 (516) Loc: +0x1198 | offset to table[26] + +0x0F98 | C4 05 00 00 | UOffset32 | 0x000005C4 (1476) Loc: +0x155C | offset to table[27] + +0x0F9C | F4 06 00 00 | UOffset32 | 0x000006F4 (1780) Loc: +0x1690 | offset to table[28] + +0x0FA0 | A0 0F 00 00 | UOffset32 | 0x00000FA0 (4000) Loc: +0x1F40 | offset to table[29] + +0x0FA4 | F0 1D 00 00 | UOffset32 | 0x00001DF0 (7664) Loc: +0x2D94 | offset to table[30] + +0x0FA8 | 7C 1D 00 00 | UOffset32 | 0x00001D7C (7548) Loc: +0x2D24 | offset to table[31] + +0x0FAC | 38 12 00 00 | UOffset32 | 0x00001238 (4664) Loc: +0x21E4 | offset to table[32] + +0x0FB0 | 5C 1E 00 00 | UOffset32 | 0x00001E5C (7772) Loc: +0x2E0C | offset to table[33] + +0x0FB4 | 28 15 00 00 | UOffset32 | 0x00001528 (5416) Loc: +0x24DC | offset to table[34] + +0x0FB8 | 10 13 00 00 | UOffset32 | 0x00001310 (4880) Loc: +0x22C8 | offset to table[35] + +0x0FBC | 00 1D 00 00 | UOffset32 | 0x00001D00 (7424) Loc: +0x2CBC | offset to table[36] + +0x0FC0 | 78 13 00 00 | UOffset32 | 0x00001378 (4984) Loc: +0x2338 | offset to table[37] + +0x0FC4 | 20 1C 00 00 | UOffset32 | 0x00001C20 (7200) Loc: +0x2BE4 | offset to table[38] + +0x0FC8 | 58 1A 00 00 | UOffset32 | 0x00001A58 (6744) Loc: +0x2A20 | offset to table[39] + +0x0FCC | B4 1A 00 00 | UOffset32 | 0x00001AB4 (6836) Loc: +0x2A80 | offset to table[40] + +0x0FD0 | A8 14 00 00 | UOffset32 | 0x000014A8 (5288) Loc: +0x2478 | offset to table[41] + +0x0FD4 | 24 14 00 00 | UOffset32 | 0x00001424 (5156) Loc: +0x23F8 | offset to table[42] + +0x0FD8 | C8 13 00 00 | UOffset32 | 0x000013C8 (5064) Loc: +0x23A0 | offset to table[43] + +0x0FDC | B8 19 00 00 | UOffset32 | 0x000019B8 (6584) Loc: +0x2994 | offset to table[44] + +0x0FE0 | 78 17 00 00 | UOffset32 | 0x00001778 (6008) Loc: +0x2758 | offset to table[45] + +0x0FE4 | 94 18 00 00 | UOffset32 | 0x00001894 (6292) Loc: +0x2878 | offset to table[46] + +0x0FE8 | F0 15 00 00 | UOffset32 | 0x000015F0 (5616) Loc: +0x25D8 | offset to table[47] + +0x0FEC | 1C 19 00 00 | UOffset32 | 0x0000191C (6428) Loc: +0x2908 | offset to table[48] + +0x0FF0 | 7C 16 00 00 | UOffset32 | 0x0000167C (5756) Loc: +0x266C | offset to table[49] + +0x0FF4 | F4 17 00 00 | UOffset32 | 0x000017F4 (6132) Loc: +0x27E8 | offset to table[50] + +0x0FF8 | 4C 15 00 00 | UOffset32 | 0x0000154C (5452) Loc: +0x2544 | offset to table[51] + +0x0FFC | E8 1A 00 00 | UOffset32 | 0x00001AE8 (6888) Loc: +0x2AE4 | offset to table[52] + +0x1000 | D0 05 00 00 | UOffset32 | 0x000005D0 (1488) Loc: +0x15D0 | offset to table[53] + +0x1004 | 58 0B 00 00 | UOffset32 | 0x00000B58 (2904) Loc: +0x1B5C | offset to table[54] + +0x1008 | 10 11 00 00 | UOffset32 | 0x00001110 (4368) Loc: +0x2118 | offset to table[55] + +0x100C | F0 06 00 00 | UOffset32 | 0x000006F0 (1776) Loc: +0x16FC | offset to table[56] + +0x1010 | 70 11 00 00 | UOffset32 | 0x00001170 (4464) Loc: +0x2180 | offset to table[57] + +0x1014 | F0 08 00 00 | UOffset32 | 0x000008F0 (2288) Loc: +0x1904 | offset to table[58] + +0x1018 | 20 10 00 00 | UOffset32 | 0x00001020 (4128) Loc: +0x2038 | offset to table[59] + +0x101C | 74 0D 00 00 | UOffset32 | 0x00000D74 (3444) Loc: +0x1D90 | offset to table[60] + +0x1020 | 24 0E 00 00 | UOffset32 | 0x00000E24 (3620) Loc: +0x1E44 | offset to table[61] string (reflection.Object.name): - +0x1004 | 16 00 00 00 | uint32_t | 0x00000016 (22) | length of string - +0x1008 | 4D 79 47 61 6D 65 2E 45 | char[22] | MyGame.E | string literal - +0x1010 | 78 61 6D 70 6C 65 2E 4D | | xample.M - +0x1018 | 6F 6E 73 74 65 72 | | onster - +0x101E | 00 | char | 0x00 (0) | string terminator + +0x1024 | 16 00 00 00 | uint32_t | 0x00000016 (22) | length of string + +0x1028 | 4D 79 47 61 6D 65 2E 45 | char[22] | MyGame.E | string literal + +0x1030 | 78 61 6D 70 6C 65 2E 4D | | xample.M + +0x1038 | 6F 6E 73 74 65 72 | | onster + +0x103E | 00 | char | 0x00 (0) | string terminator table (reflection.Field): - +0x1020 | 62 FD FF FF | SOffset32 | 0xFFFFFD62 (-670) Loc: +0x12BE | offset to vtable - +0x1024 | 35 00 | uint16_t | 0x0035 (53) | table field `id` (UShort) - +0x1026 | 6E 00 | uint16_t | 0x006E (110) | table field `offset` (UShort) - +0x1028 | 54 00 00 00 | UOffset32 | 0x00000054 (84) Loc: +0x107C | offset to field `name` (string) - +0x102C | 3C 00 00 00 | UOffset32 | 0x0000003C (60) Loc: +0x1068 | offset to field `type` (table) - +0x1030 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x1044 | offset to field `attributes` (vector) - +0x1034 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x1040 | offset to field `documentation` (vector) - +0x1038 | 02 00 00 00 00 00 00 00 | int64_t | 0x0000000000000002 (2) | table field `default_integer` (Long) + +0x1040 | C2 FD FF FF | SOffset32 | 0xFFFFFDC2 (-574) Loc: +0x127E | offset to vtable + +0x1044 | 3D 00 | uint16_t | 0x003D (61) | table field `id` (UShort) + +0x1046 | 7E 00 | uint16_t | 0x007E (126) | table field `offset` (UShort) + +0x1048 | 50 00 00 00 | UOffset32 | 0x00000050 (80) Loc: +0x1098 | offset to field `name` (string) + +0x104C | 3C 00 00 00 | UOffset32 | 0x0000003C (60) Loc: +0x1088 | offset to field `type` (table) + +0x1050 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x1064 | offset to field `attributes` (vector) + +0x1054 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x1060 | offset to field `documentation` (vector) + +0x1058 | 00 00 00 00 00 00 F0 7F | double | 0x7FF0000000000000 (inf) | table field `default_real` (Double) vector (reflection.Field.documentation): - +0x1040 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x1060 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) vector (reflection.Field.attributes): - +0x1044 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x1048 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x104C | offset to table[0] + +0x1064 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x1068 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x106C | offset to table[0] table (reflection.KeyValue): - +0x104C | E8 DA FF FF | SOffset32 | 0xFFFFDAE8 (-9496) Loc: +0x3564 | offset to vtable - +0x1050 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1060 | offset to field `key` (string) - +0x1054 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1058 | offset to field `value` (string) + +0x106C | 50 D7 FF FF | SOffset32 | 0xFFFFD750 (-10416) Loc: +0x391C | offset to vtable + +0x1070 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1080 | offset to field `key` (string) + +0x1074 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1078 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1058 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x105C | 35 33 | char[2] | 53 | string literal - +0x105E | 00 | char | 0x00 (0) | string terminator + +0x1078 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x107C | 36 31 | char[2] | 61 | string literal + +0x107E | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x1060 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x1064 | 69 64 | char[2] | id | string literal - +0x1066 | 00 | char | 0x00 (0) | string terminator + +0x1080 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1084 | 69 64 | char[2] | id | string literal + +0x1086 | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x1068 | 64 DA FF FF | SOffset32 | 0xFFFFDA64 (-9628) Loc: +0x3604 | offset to vtable - +0x106C | 00 00 00 | uint8_t[3] | ... | padding - +0x106F | 0A | uint8_t | 0x0A (10) | table field `base_type` (Byte) - +0x1070 | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `index` (Int) - +0x1074 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt) - +0x1078 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x1088 | EC D5 FF FF | SOffset32 | 0xFFFFD5EC (-10772) Loc: +0x3A9C | offset to vtable + +0x108C | 00 00 00 | uint8_t[3] | ... | padding + +0x108F | 0C | uint8_t | 0x0C (12) | table field `base_type` (Byte) + +0x1090 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt) + +0x1094 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x107C | 18 00 00 00 | uint32_t | 0x00000018 (24) | length of string - +0x1080 | 6C 6F 6E 67 5F 65 6E 75 | char[24] | long_enu | string literal - +0x1088 | 6D 5F 6E 6F 72 6D 61 6C | | m_normal - +0x1090 | 5F 64 65 66 61 75 6C 74 | | _default - +0x1098 | 00 | char | 0x00 (0) | string terminator + +0x1098 | 12 00 00 00 | uint32_t | 0x00000012 (18) | length of string + +0x109C | 64 6F 75 62 6C 65 5F 69 | char[18] | double_i | string literal + +0x10A4 | 6E 66 5F 64 65 66 61 75 | | nf_defau + +0x10AC | 6C 74 | | lt + +0x10AE | 00 | char | 0x00 (0) | string terminator + +table (reflection.Field): + +0x10B0 | 52 EC FF FF | SOffset32 | 0xFFFFEC52 (-5038) Loc: +0x245E | offset to vtable + +0x10B4 | 3C 00 | uint16_t | 0x003C (60) | table field `id` (UShort) + +0x10B6 | 7C 00 | uint16_t | 0x007C (124) | table field `offset` (UShort) + +0x10B8 | 50 00 00 00 | UOffset32 | 0x00000050 (80) Loc: +0x1108 | offset to field `name` (string) + +0x10BC | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: +0x10FC | offset to field `type` (table) + +0x10C0 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x10D8 | offset to field `attributes` (vector) + +0x10C4 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x10D4 | offset to field `documentation` (vector) + +0x10C8 | 00 00 00 00 00 00 F0 FF | double | 0xFFF0000000000000 (-inf) | table field `default_real` (Double) + +0x10D0 | 00 00 00 00 | uint8_t[4] | .... | padding + +vector (reflection.Field.documentation): + +0x10D4 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +vector (reflection.Field.attributes): + +0x10D8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x10DC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x10E0 | offset to table[0] + +table (reflection.KeyValue): + +0x10E0 | C4 D7 FF FF | SOffset32 | 0xFFFFD7C4 (-10300) Loc: +0x391C | offset to vtable + +0x10E4 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x10F4 | offset to field `key` (string) + +0x10E8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x10EC | offset to field `value` (string) + +string (reflection.KeyValue.value): + +0x10EC | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x10F0 | 36 30 | char[2] | 60 | string literal + +0x10F2 | 00 | char | 0x00 (0) | string terminator + +string (reflection.KeyValue.key): + +0x10F4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x10F8 | 69 64 | char[2] | id | string literal + +0x10FA | 00 | char | 0x00 (0) | string terminator + +table (reflection.Type): + +0x10FC | A8 D3 FF FF | SOffset32 | 0xFFFFD3A8 (-11352) Loc: +0x3D54 | offset to vtable + +0x1100 | 00 00 00 | uint8_t[3] | ... | padding + +0x1103 | 0B | uint8_t | 0x0B (11) | table field `base_type` (Byte) + +0x1104 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +string (reflection.Field.name): + +0x1108 | 19 00 00 00 | uint32_t | 0x00000019 (25) | length of string + +0x110C | 6E 65 67 61 74 69 76 65 | char[25] | negative | string literal + +0x1114 | 5F 69 6E 66 69 6E 69 74 | | _infinit + +0x111C | 79 5F 64 65 66 61 75 6C | | y_defaul + +0x1124 | 74 | | t + +0x1125 | 00 | char | 0x00 (0) | string terminator + +padding: + +0x1126 | 00 00 | uint8_t[2] | .. | padding + +table (reflection.Field): + +0x1128 | AA FE FF FF | SOffset32 | 0xFFFFFEAA (-342) Loc: +0x127E | offset to vtable + +0x112C | 3B 00 | uint16_t | 0x003B (59) | table field `id` (UShort) + +0x112E | 7A 00 | uint16_t | 0x007A (122) | table field `offset` (UShort) + +0x1130 | 4C 00 00 00 | UOffset32 | 0x0000004C (76) Loc: +0x117C | offset to field `name` (string) + +0x1134 | 3C 00 00 00 | UOffset32 | 0x0000003C (60) Loc: +0x1170 | offset to field `type` (table) + +0x1138 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x114C | offset to field `attributes` (vector) + +0x113C | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x1148 | offset to field `documentation` (vector) + +0x1140 | 00 00 00 00 00 00 F0 FF | double | 0xFFF0000000000000 (-inf) | table field `default_real` (Double) + +vector (reflection.Field.documentation): + +0x1148 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +vector (reflection.Field.attributes): + +0x114C | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x1150 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1154 | offset to table[0] + +table (reflection.KeyValue): + +0x1154 | 38 D8 FF FF | SOffset32 | 0xFFFFD838 (-10184) Loc: +0x391C | offset to vtable + +0x1158 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1168 | offset to field `key` (string) + +0x115C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1160 | offset to field `value` (string) + +string (reflection.KeyValue.value): + +0x1160 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1164 | 35 39 | char[2] | 59 | string literal + +0x1166 | 00 | char | 0x00 (0) | string terminator + +string (reflection.KeyValue.key): + +0x1168 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x116C | 69 64 | char[2] | id | string literal + +0x116E | 00 | char | 0x00 (0) | string terminator + +table (reflection.Type): + +0x1170 | 1C D4 FF FF | SOffset32 | 0xFFFFD41C (-11236) Loc: +0x3D54 | offset to vtable + +0x1174 | 00 00 00 | uint8_t[3] | ... | padding + +0x1177 | 0B | uint8_t | 0x0B (11) | table field `base_type` (Byte) + +0x1178 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +string (reflection.Field.name): + +0x117C | 14 00 00 00 | uint32_t | 0x00000014 (20) | length of string + +0x1180 | 6E 65 67 61 74 69 76 65 | char[20] | negative | string literal + +0x1188 | 5F 69 6E 66 5F 64 65 66 | | _inf_def + +0x1190 | 61 75 6C 74 | | ault + +0x1194 | 00 | char | 0x00 (0) | string terminator + +padding: + +0x1195 | 00 00 00 | uint8_t[3] | ... | padding + +table (reflection.Field): + +0x1198 | 3A ED FF FF | SOffset32 | 0xFFFFED3A (-4806) Loc: +0x245E | offset to vtable + +0x119C | 3A 00 | uint16_t | 0x003A (58) | table field `id` (UShort) + +0x119E | 78 00 | uint16_t | 0x0078 (120) | table field `offset` (UShort) + +0x11A0 | 50 00 00 00 | UOffset32 | 0x00000050 (80) Loc: +0x11F0 | offset to field `name` (string) + +0x11A4 | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: +0x11E4 | offset to field `type` (table) + +0x11A8 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x11C0 | offset to field `attributes` (vector) + +0x11AC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x11BC | offset to field `documentation` (vector) + +0x11B0 | 00 00 00 00 00 00 F0 7F | double | 0x7FF0000000000000 (inf) | table field `default_real` (Double) + +0x11B8 | 00 00 00 00 | uint8_t[4] | .... | padding + +vector (reflection.Field.documentation): + +0x11BC | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +vector (reflection.Field.attributes): + +0x11C0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x11C4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x11C8 | offset to table[0] + +table (reflection.KeyValue): + +0x11C8 | AC D8 FF FF | SOffset32 | 0xFFFFD8AC (-10068) Loc: +0x391C | offset to vtable + +0x11CC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x11DC | offset to field `key` (string) + +0x11D0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x11D4 | offset to field `value` (string) + +string (reflection.KeyValue.value): + +0x11D4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x11D8 | 35 38 | char[2] | 58 | string literal + +0x11DA | 00 | char | 0x00 (0) | string terminator + +string (reflection.KeyValue.key): + +0x11DC | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x11E0 | 69 64 | char[2] | id | string literal + +0x11E2 | 00 | char | 0x00 (0) | string terminator + +table (reflection.Type): + +0x11E4 | 90 D4 FF FF | SOffset32 | 0xFFFFD490 (-11120) Loc: +0x3D54 | offset to vtable + +0x11E8 | 00 00 00 | uint8_t[3] | ... | padding + +0x11EB | 0B | uint8_t | 0x0B (11) | table field `base_type` (Byte) + +0x11EC | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +string (reflection.Field.name): + +0x11F0 | 19 00 00 00 | uint32_t | 0x00000019 (25) | length of string + +0x11F4 | 70 6F 73 69 74 69 76 65 | char[25] | positive | string literal + +0x11FC | 5F 69 6E 66 69 6E 69 74 | | _infinit + +0x1204 | 79 5F 64 65 66 61 75 6C | | y_defaul + +0x120C | 74 | | t + +0x120D | 00 | char | 0x00 (0) | string terminator + +padding: + +0x120E | 00 00 | uint8_t[2] | .. | padding + +table (reflection.Field): + +0x1210 | B2 ED FF FF | SOffset32 | 0xFFFFEDB2 (-4686) Loc: +0x245E | offset to vtable + +0x1214 | 39 00 | uint16_t | 0x0039 (57) | table field `id` (UShort) + +0x1216 | 76 00 | uint16_t | 0x0076 (118) | table field `offset` (UShort) + +0x1218 | 50 00 00 00 | UOffset32 | 0x00000050 (80) Loc: +0x1268 | offset to field `name` (string) + +0x121C | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: +0x125C | offset to field `type` (table) + +0x1220 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x1238 | offset to field `attributes` (vector) + +0x1224 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1234 | offset to field `documentation` (vector) + +0x1228 | 00 00 00 00 00 00 F0 7F | double | 0x7FF0000000000000 (inf) | table field `default_real` (Double) + +0x1230 | 00 00 00 00 | uint8_t[4] | .... | padding + +vector (reflection.Field.documentation): + +0x1234 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +vector (reflection.Field.attributes): + +0x1238 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x123C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1240 | offset to table[0] + +table (reflection.KeyValue): + +0x1240 | 24 D9 FF FF | SOffset32 | 0xFFFFD924 (-9948) Loc: +0x391C | offset to vtable + +0x1244 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1254 | offset to field `key` (string) + +0x1248 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x124C | offset to field `value` (string) + +string (reflection.KeyValue.value): + +0x124C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1250 | 35 37 | char[2] | 57 | string literal + +0x1252 | 00 | char | 0x00 (0) | string terminator + +string (reflection.KeyValue.key): + +0x1254 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1258 | 69 64 | char[2] | id | string literal + +0x125A | 00 | char | 0x00 (0) | string terminator + +table (reflection.Type): + +0x125C | 08 D5 FF FF | SOffset32 | 0xFFFFD508 (-11000) Loc: +0x3D54 | offset to vtable + +0x1260 | 00 00 00 | uint8_t[3] | ... | padding + +0x1263 | 0B | uint8_t | 0x0B (11) | table field `base_type` (Byte) + +0x1264 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +string (reflection.Field.name): + +0x1268 | 10 00 00 00 | uint32_t | 0x00000010 (16) | length of string + +0x126C | 69 6E 66 69 6E 69 74 79 | char[16] | infinity | string literal + +0x1274 | 5F 64 65 66 61 75 6C 74 | | _default + +0x127C | 00 | char | 0x00 (0) | string terminator + +vtable (reflection.Field): + +0x127E | 1A 00 | uint16_t | 0x001A (26) | size of this vtable + +0x1280 | 20 00 | uint16_t | 0x0020 (32) | size of referring table + +0x1282 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0) + +0x1284 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `type` (id: 1) + +0x1286 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `id` (id: 2) + +0x1288 | 06 00 | VOffset16 | 0x0006 (6) | offset to field `offset` (id: 3) + +0x128A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) (Long) + +0x128C | 18 00 | VOffset16 | 0x0018 (24) | offset to field `default_real` (id: 5) + +0x128E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) + +0x1290 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) (Bool) + +0x1292 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 8) (Bool) + +0x1294 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `attributes` (id: 9) + +0x1296 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `documentation` (id: 10) + +table (reflection.Field): + +0x1298 | 1A 00 00 00 | SOffset32 | 0x0000001A (26) Loc: +0x127E | offset to vtable + +0x129C | 38 00 | uint16_t | 0x0038 (56) | table field `id` (UShort) + +0x129E | 74 00 | uint16_t | 0x0074 (116) | table field `offset` (UShort) + +0x12A0 | 4C 00 00 00 | UOffset32 | 0x0000004C (76) Loc: +0x12EC | offset to field `name` (string) + +0x12A4 | 3C 00 00 00 | UOffset32 | 0x0000003C (60) Loc: +0x12E0 | offset to field `type` (table) + +0x12A8 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x12BC | offset to field `attributes` (vector) + +0x12AC | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x12B8 | offset to field `documentation` (vector) + +0x12B0 | 00 00 00 00 00 00 F0 7F | double | 0x7FF0000000000000 (inf) | table field `default_real` (Double) + +vector (reflection.Field.documentation): + +0x12B8 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +vector (reflection.Field.attributes): + +0x12BC | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x12C0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x12C4 | offset to table[0] + +table (reflection.KeyValue): + +0x12C4 | A8 D9 FF FF | SOffset32 | 0xFFFFD9A8 (-9816) Loc: +0x391C | offset to vtable + +0x12C8 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x12D8 | offset to field `key` (string) + +0x12CC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x12D0 | offset to field `value` (string) + +string (reflection.KeyValue.value): + +0x12D0 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x12D4 | 35 36 | char[2] | 56 | string literal + +0x12D6 | 00 | char | 0x00 (0) | string terminator + +string (reflection.KeyValue.key): + +0x12D8 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x12DC | 69 64 | char[2] | id | string literal + +0x12DE | 00 | char | 0x00 (0) | string terminator + +table (reflection.Type): + +0x12E0 | 8C D5 FF FF | SOffset32 | 0xFFFFD58C (-10868) Loc: +0x3D54 | offset to vtable + +0x12E4 | 00 00 00 | uint8_t[3] | ... | padding + +0x12E7 | 0B | uint8_t | 0x0B (11) | table field `base_type` (Byte) + +0x12E8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +string (reflection.Field.name): + +0x12EC | 14 00 00 00 | uint32_t | 0x00000014 (20) | length of string + +0x12F0 | 70 6F 73 69 74 69 76 65 | char[20] | positive | string literal + +0x12F8 | 5F 69 6E 66 5F 64 65 66 | | _inf_def + +0x1300 | 61 75 6C 74 | | ault + +0x1304 | 00 | char | 0x00 (0) | string terminator + +padding: + +0x1305 | 00 00 00 | uint8_t[3] | ... | padding + +table (reflection.Field): + +0x1308 | AA EE FF FF | SOffset32 | 0xFFFFEEAA (-4438) Loc: +0x245E | offset to vtable + +0x130C | 37 00 | uint16_t | 0x0037 (55) | table field `id` (UShort) + +0x130E | 72 00 | uint16_t | 0x0072 (114) | table field `offset` (UShort) + +0x1310 | 50 00 00 00 | UOffset32 | 0x00000050 (80) Loc: +0x1360 | offset to field `name` (string) + +0x1314 | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: +0x1354 | offset to field `type` (table) + +0x1318 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x1330 | offset to field `attributes` (vector) + +0x131C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x132C | offset to field `documentation` (vector) + +0x1320 | 00 00 00 00 00 00 F0 7F | double | 0x7FF0000000000000 (inf) | table field `default_real` (Double) + +0x1328 | 00 00 00 00 | uint8_t[4] | .... | padding + +vector (reflection.Field.documentation): + +0x132C | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +vector (reflection.Field.attributes): + +0x1330 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x1334 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1338 | offset to table[0] + +table (reflection.KeyValue): + +0x1338 | 1C DA FF FF | SOffset32 | 0xFFFFDA1C (-9700) Loc: +0x391C | offset to vtable + +0x133C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x134C | offset to field `key` (string) + +0x1340 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1344 | offset to field `value` (string) + +string (reflection.KeyValue.value): + +0x1344 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1348 | 35 35 | char[2] | 55 | string literal + +0x134A | 00 | char | 0x00 (0) | string terminator + +string (reflection.KeyValue.key): + +0x134C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1350 | 69 64 | char[2] | id | string literal + +0x1352 | 00 | char | 0x00 (0) | string terminator + +table (reflection.Type): + +0x1354 | 00 D6 FF FF | SOffset32 | 0xFFFFD600 (-10752) Loc: +0x3D54 | offset to vtable + +0x1358 | 00 00 00 | uint8_t[3] | ... | padding + +0x135B | 0B | uint8_t | 0x0B (11) | table field `base_type` (Byte) + +0x135C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +string (reflection.Field.name): + +0x1360 | 0B 00 00 00 | uint32_t | 0x0000000B (11) | length of string + +0x1364 | 69 6E 66 5F 64 65 66 61 | char[11] | inf_defa | string literal + +0x136C | 75 6C 74 | | ult + +0x136F | 00 | char | 0x00 (0) | string terminator + +table (reflection.Field): + +0x1370 | 12 EF FF FF | SOffset32 | 0xFFFFEF12 (-4334) Loc: +0x245E | offset to vtable + +0x1374 | 36 00 | uint16_t | 0x0036 (54) | table field `id` (UShort) + +0x1376 | 70 00 | uint16_t | 0x0070 (112) | table field `offset` (UShort) + +0x1378 | 50 00 00 00 | UOffset32 | 0x00000050 (80) Loc: +0x13C8 | offset to field `name` (string) + +0x137C | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: +0x13BC | offset to field `type` (table) + +0x1380 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x1398 | offset to field `attributes` (vector) + +0x1384 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1394 | offset to field `documentation` (vector) + +0x1388 | 00 00 00 00 00 00 F8 7F | double | 0x7FF8000000000000 (nan) | table field `default_real` (Double) + +0x1390 | 00 00 00 00 | uint8_t[4] | .... | padding + +vector (reflection.Field.documentation): + +0x1394 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +vector (reflection.Field.attributes): + +0x1398 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x139C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x13A0 | offset to table[0] + +table (reflection.KeyValue): + +0x13A0 | 84 DA FF FF | SOffset32 | 0xFFFFDA84 (-9596) Loc: +0x391C | offset to vtable + +0x13A4 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x13B4 | offset to field `key` (string) + +0x13A8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x13AC | offset to field `value` (string) + +string (reflection.KeyValue.value): + +0x13AC | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x13B0 | 35 34 | char[2] | 54 | string literal + +0x13B2 | 00 | char | 0x00 (0) | string terminator + +string (reflection.KeyValue.key): + +0x13B4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x13B8 | 69 64 | char[2] | id | string literal + +0x13BA | 00 | char | 0x00 (0) | string terminator + +table (reflection.Type): + +0x13BC | 68 D6 FF FF | SOffset32 | 0xFFFFD668 (-10648) Loc: +0x3D54 | offset to vtable + +0x13C0 | 00 00 00 | uint8_t[3] | ... | padding + +0x13C3 | 0B | uint8_t | 0x0B (11) | table field `base_type` (Byte) + +0x13C4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +string (reflection.Field.name): + +0x13C8 | 0B 00 00 00 | uint32_t | 0x0000000B (11) | length of string + +0x13CC | 6E 61 6E 5F 64 65 66 61 | char[11] | nan_defa | string literal + +0x13D4 | 75 6C 74 | | ult + +0x13D7 | 00 | char | 0x00 (0) | string terminator + +table (reflection.Field): + +0x13D8 | 62 FD FF FF | SOffset32 | 0xFFFFFD62 (-670) Loc: +0x1676 | offset to vtable + +0x13DC | 35 00 | uint16_t | 0x0035 (53) | table field `id` (UShort) + +0x13DE | 6E 00 | uint16_t | 0x006E (110) | table field `offset` (UShort) + +0x13E0 | 54 00 00 00 | UOffset32 | 0x00000054 (84) Loc: +0x1434 | offset to field `name` (string) + +0x13E4 | 3C 00 00 00 | UOffset32 | 0x0000003C (60) Loc: +0x1420 | offset to field `type` (table) + +0x13E8 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x13FC | offset to field `attributes` (vector) + +0x13EC | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x13F8 | offset to field `documentation` (vector) + +0x13F0 | 02 00 00 00 00 00 00 00 | int64_t | 0x0000000000000002 (2) | table field `default_integer` (Long) + +vector (reflection.Field.documentation): + +0x13F8 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +vector (reflection.Field.attributes): + +0x13FC | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x1400 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1404 | offset to table[0] + +table (reflection.KeyValue): + +0x1404 | E8 DA FF FF | SOffset32 | 0xFFFFDAE8 (-9496) Loc: +0x391C | offset to vtable + +0x1408 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1418 | offset to field `key` (string) + +0x140C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1410 | offset to field `value` (string) + +string (reflection.KeyValue.value): + +0x1410 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1414 | 35 33 | char[2] | 53 | string literal + +0x1416 | 00 | char | 0x00 (0) | string terminator + +string (reflection.KeyValue.key): + +0x1418 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x141C | 69 64 | char[2] | id | string literal + +0x141E | 00 | char | 0x00 (0) | string terminator + +table (reflection.Type): + +0x1420 | 64 DA FF FF | SOffset32 | 0xFFFFDA64 (-9628) Loc: +0x39BC | offset to vtable + +0x1424 | 00 00 00 | uint8_t[3] | ... | padding + +0x1427 | 0A | uint8_t | 0x0A (10) | table field `base_type` (Byte) + +0x1428 | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `index` (Int) + +0x142C | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt) + +0x1430 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +string (reflection.Field.name): + +0x1434 | 18 00 00 00 | uint32_t | 0x00000018 (24) | length of string + +0x1438 | 6C 6F 6E 67 5F 65 6E 75 | char[24] | long_enu | string literal + +0x1440 | 6D 5F 6E 6F 72 6D 61 6C | | m_normal + +0x1448 | 5F 64 65 66 61 75 6C 74 | | _default + +0x1450 | 00 | char | 0x00 (0) | string terminator padding: - +0x1099 | 00 00 00 | uint8_t[3] | ... | padding + +0x1451 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Field): - +0x109C | 62 E6 FF FF | SOffset32 | 0xFFFFE662 (-6558) Loc: +0x2A3A | offset to vtable - +0x10A0 | 34 00 | uint16_t | 0x0034 (52) | table field `id` (UShort) - +0x10A2 | 6C 00 | uint16_t | 0x006C (108) | table field `offset` (UShort) - +0x10A4 | 4C 00 00 00 | UOffset32 | 0x0000004C (76) Loc: +0x10F0 | offset to field `name` (string) - +0x10A8 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x10DC | offset to field `type` (table) - +0x10AC | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x10B8 | offset to field `attributes` (vector) - +0x10B0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x10B4 | offset to field `documentation` (vector) + +0x1454 | 62 E6 FF FF | SOffset32 | 0xFFFFE662 (-6558) Loc: +0x2DF2 | offset to vtable + +0x1458 | 34 00 | uint16_t | 0x0034 (52) | table field `id` (UShort) + +0x145A | 6C 00 | uint16_t | 0x006C (108) | table field `offset` (UShort) + +0x145C | 4C 00 00 00 | UOffset32 | 0x0000004C (76) Loc: +0x14A8 | offset to field `name` (string) + +0x1460 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x1494 | offset to field `type` (table) + +0x1464 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x1470 | offset to field `attributes` (vector) + +0x1468 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x146C | offset to field `documentation` (vector) vector (reflection.Field.documentation): - +0x10B4 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x146C | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) vector (reflection.Field.attributes): - +0x10B8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x10BC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x10C0 | offset to table[0] + +0x1470 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x1474 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1478 | offset to table[0] table (reflection.KeyValue): - +0x10C0 | 5C DB FF FF | SOffset32 | 0xFFFFDB5C (-9380) Loc: +0x3564 | offset to vtable - +0x10C4 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x10D4 | offset to field `key` (string) - +0x10C8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x10CC | offset to field `value` (string) + +0x1478 | 5C DB FF FF | SOffset32 | 0xFFFFDB5C (-9380) Loc: +0x391C | offset to vtable + +0x147C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x148C | offset to field `key` (string) + +0x1480 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1484 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x10CC | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x10D0 | 35 32 | char[2] | 52 | string literal - +0x10D2 | 00 | char | 0x00 (0) | string terminator + +0x1484 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1488 | 35 32 | char[2] | 52 | string literal + +0x148A | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x10D4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x10D8 | 69 64 | char[2] | id | string literal - +0x10DA | 00 | char | 0x00 (0) | string terminator + +0x148C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1490 | 69 64 | char[2] | id | string literal + +0x1492 | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x10DC | D8 DA FF FF | SOffset32 | 0xFFFFDAD8 (-9512) Loc: +0x3604 | offset to vtable - +0x10E0 | 00 00 00 | uint8_t[3] | ... | padding - +0x10E3 | 0A | uint8_t | 0x0A (10) | table field `base_type` (Byte) - +0x10E4 | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `index` (Int) - +0x10E8 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt) - +0x10EC | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x1494 | D8 DA FF FF | SOffset32 | 0xFFFFDAD8 (-9512) Loc: +0x39BC | offset to vtable + +0x1498 | 00 00 00 | uint8_t[3] | ... | padding + +0x149B | 0A | uint8_t | 0x0A (10) | table field `base_type` (Byte) + +0x149C | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `index` (Int) + +0x14A0 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt) + +0x14A4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x10F0 | 1A 00 00 00 | uint32_t | 0x0000001A (26) | length of string - +0x10F4 | 6C 6F 6E 67 5F 65 6E 75 | char[26] | long_enu | string literal - +0x10FC | 6D 5F 6E 6F 6E 5F 65 6E | | m_non_en - +0x1104 | 75 6D 5F 64 65 66 61 75 | | um_defau - +0x110C | 6C 74 | | lt - +0x110E | 00 | char | 0x00 (0) | string terminator + +0x14A8 | 1A 00 00 00 | uint32_t | 0x0000001A (26) | length of string + +0x14AC | 6C 6F 6E 67 5F 65 6E 75 | char[26] | long_enu | string literal + +0x14B4 | 6D 5F 6E 6F 6E 5F 65 6E | | m_non_en + +0x14BC | 75 6D 5F 64 65 66 61 75 | | um_defau + +0x14C4 | 6C 74 | | lt + +0x14C6 | 00 | char | 0x00 (0) | string terminator table (reflection.Field): - +0x1110 | EC E5 FF FF | SOffset32 | 0xFFFFE5EC (-6676) Loc: +0x2B24 | offset to vtable - +0x1114 | 00 00 00 | uint8_t[3] | ... | padding - +0x1117 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x1118 | 33 00 | uint16_t | 0x0033 (51) | table field `id` (UShort) - +0x111A | 6A 00 | uint16_t | 0x006A (106) | table field `offset` (UShort) - +0x111C | 74 00 00 00 | UOffset32 | 0x00000074 (116) Loc: +0x1190 | offset to field `name` (string) - +0x1120 | 60 00 00 00 | UOffset32 | 0x00000060 (96) Loc: +0x1180 | offset to field `type` (table) - +0x1124 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x1130 | offset to field `attributes` (vector) - +0x1128 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x112C | offset to field `documentation` (vector) + +0x14C8 | EC E5 FF FF | SOffset32 | 0xFFFFE5EC (-6676) Loc: +0x2EDC | offset to vtable + +0x14CC | 00 00 00 | uint8_t[3] | ... | padding + +0x14CF | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x14D0 | 33 00 | uint16_t | 0x0033 (51) | table field `id` (UShort) + +0x14D2 | 6A 00 | uint16_t | 0x006A (106) | table field `offset` (UShort) + +0x14D4 | 74 00 00 00 | UOffset32 | 0x00000074 (116) Loc: +0x1548 | offset to field `name` (string) + +0x14D8 | 60 00 00 00 | UOffset32 | 0x00000060 (96) Loc: +0x1538 | offset to field `type` (table) + +0x14DC | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x14E8 | offset to field `attributes` (vector) + +0x14E0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x14E4 | offset to field `documentation` (vector) vector (reflection.Field.documentation): - +0x112C | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x14E4 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) vector (reflection.Field.attributes): - +0x1130 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) - +0x1134 | 30 00 00 00 | UOffset32 | 0x00000030 (48) Loc: +0x1164 | offset to table[0] - +0x1138 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x113C | offset to table[1] + +0x14E8 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) + +0x14EC | 30 00 00 00 | UOffset32 | 0x00000030 (48) Loc: +0x151C | offset to table[0] + +0x14F0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x14F4 | offset to table[1] table (reflection.KeyValue): - +0x113C | D8 DB FF FF | SOffset32 | 0xFFFFDBD8 (-9256) Loc: +0x3564 | offset to vtable - +0x1140 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1150 | offset to field `key` (string) - +0x1144 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1148 | offset to field `value` (string) + +0x14F4 | D8 DB FF FF | SOffset32 | 0xFFFFDBD8 (-9256) Loc: +0x391C | offset to vtable + +0x14F8 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1508 | offset to field `key` (string) + +0x14FC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1500 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1148 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x114C | 30 | char[1] | 0 | string literal - +0x114D | 00 | char | 0x00 (0) | string terminator + +0x1500 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x1504 | 30 | char[1] | 0 | string literal + +0x1505 | 00 | char | 0x00 (0) | string terminator padding: - +0x114E | 00 00 | uint8_t[2] | .. | padding + +0x1506 | 00 00 | uint8_t[2] | .. | padding string (reflection.KeyValue.key): - +0x1150 | 0D 00 00 00 | uint32_t | 0x0000000D (13) | length of string - +0x1154 | 6E 61 74 69 76 65 5F 69 | char[13] | native_i | string literal - +0x115C | 6E 6C 69 6E 65 | | nline - +0x1161 | 00 | char | 0x00 (0) | string terminator + +0x1508 | 0D 00 00 00 | uint32_t | 0x0000000D (13) | length of string + +0x150C | 6E 61 74 69 76 65 5F 69 | char[13] | native_i | string literal + +0x1514 | 6E 6C 69 6E 65 | | nline + +0x1519 | 00 | char | 0x00 (0) | string terminator padding: - +0x1162 | 00 00 | uint8_t[2] | .. | padding + +0x151A | 00 00 | uint8_t[2] | .. | padding table (reflection.KeyValue): - +0x1164 | 00 DC FF FF | SOffset32 | 0xFFFFDC00 (-9216) Loc: +0x3564 | offset to vtable - +0x1168 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1178 | offset to field `key` (string) - +0x116C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1170 | offset to field `value` (string) + +0x151C | 00 DC FF FF | SOffset32 | 0xFFFFDC00 (-9216) Loc: +0x391C | offset to vtable + +0x1520 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1530 | offset to field `key` (string) + +0x1524 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1528 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1170 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x1174 | 35 31 | char[2] | 51 | string literal - +0x1176 | 00 | char | 0x00 (0) | string terminator + +0x1528 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x152C | 35 31 | char[2] | 51 | string literal + +0x152E | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x1178 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x117C | 69 64 | char[2] | id | string literal - +0x117E | 00 | char | 0x00 (0) | string terminator + +0x1530 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1534 | 69 64 | char[2] | id | string literal + +0x1536 | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x1180 | C8 D8 FF FF | SOffset32 | 0xFFFFD8C8 (-10040) Loc: +0x38B8 | offset to vtable - +0x1184 | 00 00 00 | uint8_t[3] | ... | padding - +0x1187 | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) - +0x1188 | 06 00 00 00 | uint32_t | 0x00000006 (6) | table field `index` (Int) - +0x118C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x1538 | C8 D8 FF FF | SOffset32 | 0xFFFFD8C8 (-10040) Loc: +0x3C70 | offset to vtable + +0x153C | 00 00 00 | uint8_t[3] | ... | padding + +0x153F | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) + +0x1540 | 06 00 00 00 | uint32_t | 0x00000006 (6) | table field `index` (Int) + +0x1544 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x1190 | 0D 00 00 00 | uint32_t | 0x0000000D (13) | length of string - +0x1194 | 6E 61 74 69 76 65 5F 69 | char[13] | native_i | string literal - +0x119C | 6E 6C 69 6E 65 | | nline - +0x11A1 | 00 | char | 0x00 (0) | string terminator + +0x1548 | 0D 00 00 00 | uint32_t | 0x0000000D (13) | length of string + +0x154C | 6E 61 74 69 76 65 5F 69 | char[13] | native_i | string literal + +0x1554 | 6E 6C 69 6E 65 | | nline + +0x1559 | 00 | char | 0x00 (0) | string terminator padding: - +0x11A2 | 00 00 | uint8_t[2] | .. | padding + +0x155A | 00 00 | uint8_t[2] | .. | padding table (reflection.Field): - +0x11A4 | 80 E6 FF FF | SOffset32 | 0xFFFFE680 (-6528) Loc: +0x2B24 | offset to vtable - +0x11A8 | 00 00 00 | uint8_t[3] | ... | padding - +0x11AB | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x11AC | 32 00 | uint16_t | 0x0032 (50) | table field `id` (UShort) - +0x11AE | 68 00 | uint16_t | 0x0068 (104) | table field `offset` (UShort) - +0x11B0 | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: +0x11F8 | offset to field `name` (string) - +0x11B4 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x11E8 | offset to field `type` (table) - +0x11B8 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x11C4 | offset to field `attributes` (vector) - +0x11BC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x11C0 | offset to field `documentation` (vector) + +0x155C | 80 E6 FF FF | SOffset32 | 0xFFFFE680 (-6528) Loc: +0x2EDC | offset to vtable + +0x1560 | 00 00 00 | uint8_t[3] | ... | padding + +0x1563 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x1564 | 32 00 | uint16_t | 0x0032 (50) | table field `id` (UShort) + +0x1566 | 68 00 | uint16_t | 0x0068 (104) | table field `offset` (UShort) + +0x1568 | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: +0x15B0 | offset to field `name` (string) + +0x156C | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x15A0 | offset to field `type` (table) + +0x1570 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x157C | offset to field `attributes` (vector) + +0x1574 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1578 | offset to field `documentation` (vector) vector (reflection.Field.documentation): - +0x11C0 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x1578 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) vector (reflection.Field.attributes): - +0x11C4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x11C8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x11CC | offset to table[0] + +0x157C | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x1580 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1584 | offset to table[0] table (reflection.KeyValue): - +0x11CC | 68 DC FF FF | SOffset32 | 0xFFFFDC68 (-9112) Loc: +0x3564 | offset to vtable - +0x11D0 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x11E0 | offset to field `key` (string) - +0x11D4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x11D8 | offset to field `value` (string) + +0x1584 | 68 DC FF FF | SOffset32 | 0xFFFFDC68 (-9112) Loc: +0x391C | offset to vtable + +0x1588 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1598 | offset to field `key` (string) + +0x158C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1590 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x11D8 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x11DC | 35 30 | char[2] | 50 | string literal - +0x11DE | 00 | char | 0x00 (0) | string terminator + +0x1590 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1594 | 35 30 | char[2] | 50 | string literal + +0x1596 | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x11E0 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x11E4 | 69 64 | char[2] | id | string literal - +0x11E6 | 00 | char | 0x00 (0) | string terminator + +0x1598 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x159C | 69 64 | char[2] | id | string literal + +0x159E | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x11E8 | 38 E8 FF FF | SOffset32 | 0xFFFFE838 (-6088) Loc: +0x29B0 | offset to vtable - +0x11EC | 00 00 | uint8_t[2] | .. | padding - +0x11EE | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) - +0x11EF | 0F | uint8_t | 0x0F (15) | table field `element` (Byte) - +0x11F0 | 03 00 00 00 | uint32_t | 0x00000003 (3) | table field `index` (Int) - +0x11F4 | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `element_size` (UInt) + +0x15A0 | 38 E8 FF FF | SOffset32 | 0xFFFFE838 (-6088) Loc: +0x2D68 | offset to vtable + +0x15A4 | 00 00 | uint8_t[2] | .. | padding + +0x15A6 | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) + +0x15A7 | 0F | uint8_t | 0x0F (15) | table field `element` (Byte) + +0x15A8 | 03 00 00 00 | uint32_t | 0x00000003 (3) | table field `index` (Int) + +0x15AC | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `element_size` (UInt) string (reflection.Field.name): - +0x11F8 | 18 00 00 00 | uint32_t | 0x00000018 (24) | length of string - +0x11FC | 73 63 61 6C 61 72 5F 6B | char[24] | scalar_k | string literal - +0x1204 | 65 79 5F 73 6F 72 74 65 | | ey_sorte - +0x120C | 64 5F 74 61 62 6C 65 73 | | d_tables - +0x1214 | 00 | char | 0x00 (0) | string terminator + +0x15B0 | 18 00 00 00 | uint32_t | 0x00000018 (24) | length of string + +0x15B4 | 73 63 61 6C 61 72 5F 6B | char[24] | scalar_k | string literal + +0x15BC | 65 79 5F 73 6F 72 74 65 | | ey_sorte + +0x15C4 | 64 5F 74 61 62 6C 65 73 | | d_tables + +0x15CC | 00 | char | 0x00 (0) | string terminator padding: - +0x1215 | 00 00 00 | uint8_t[3] | ... | padding + +0x15CD | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Field): - +0x1218 | F4 E6 FF FF | SOffset32 | 0xFFFFE6F4 (-6412) Loc: +0x2B24 | offset to vtable - +0x121C | 00 00 00 | uint8_t[3] | ... | padding - +0x121F | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x1220 | 31 00 | uint16_t | 0x0031 (49) | table field `id` (UShort) - +0x1222 | 66 00 | uint16_t | 0x0066 (102) | table field `offset` (UShort) - +0x1224 | 78 00 00 00 | UOffset32 | 0x00000078 (120) Loc: +0x129C | offset to field `name` (string) - +0x1228 | 68 00 00 00 | UOffset32 | 0x00000068 (104) Loc: +0x1290 | offset to field `type` (table) - +0x122C | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x1238 | offset to field `attributes` (vector) - +0x1230 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1234 | offset to field `documentation` (vector) + +0x15D0 | F4 E6 FF FF | SOffset32 | 0xFFFFE6F4 (-6412) Loc: +0x2EDC | offset to vtable + +0x15D4 | 00 00 00 | uint8_t[3] | ... | padding + +0x15D7 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x15D8 | 31 00 | uint16_t | 0x0031 (49) | table field `id` (UShort) + +0x15DA | 66 00 | uint16_t | 0x0066 (102) | table field `offset` (UShort) + +0x15DC | 78 00 00 00 | UOffset32 | 0x00000078 (120) Loc: +0x1654 | offset to field `name` (string) + +0x15E0 | 68 00 00 00 | UOffset32 | 0x00000068 (104) Loc: +0x1648 | offset to field `type` (table) + +0x15E4 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x15F0 | offset to field `attributes` (vector) + +0x15E8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x15EC | offset to field `documentation` (vector) vector (reflection.Field.documentation): - +0x1234 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x15EC | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) vector (reflection.Field.attributes): - +0x1238 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) - +0x123C | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: +0x1274 | offset to table[0] - +0x1240 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1244 | offset to table[1] + +0x15F0 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) + +0x15F4 | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: +0x162C | offset to table[0] + +0x15F8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x15FC | offset to table[1] table (reflection.KeyValue): - +0x1244 | E0 DC FF FF | SOffset32 | 0xFFFFDCE0 (-8992) Loc: +0x3564 | offset to vtable - +0x1248 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x125C | offset to field `key` (string) - +0x124C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1250 | offset to field `value` (string) + +0x15FC | E0 DC FF FF | SOffset32 | 0xFFFFDCE0 (-8992) Loc: +0x391C | offset to vtable + +0x1600 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x1614 | offset to field `key` (string) + +0x1604 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1608 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1250 | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string - +0x1254 | 4D 6F 6E 73 74 65 72 | char[7] | Monster | string literal - +0x125B | 00 | char | 0x00 (0) | string terminator + +0x1608 | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string + +0x160C | 4D 6F 6E 73 74 65 72 | char[7] | Monster | string literal + +0x1613 | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x125C | 11 00 00 00 | uint32_t | 0x00000011 (17) | length of string - +0x1260 | 6E 65 73 74 65 64 5F 66 | char[17] | nested_f | string literal - +0x1268 | 6C 61 74 62 75 66 66 65 | | latbuffe - +0x1270 | 72 | | r - +0x1271 | 00 | char | 0x00 (0) | string terminator + +0x1614 | 11 00 00 00 | uint32_t | 0x00000011 (17) | length of string + +0x1618 | 6E 65 73 74 65 64 5F 66 | char[17] | nested_f | string literal + +0x1620 | 6C 61 74 62 75 66 66 65 | | latbuffe + +0x1628 | 72 | | r + +0x1629 | 00 | char | 0x00 (0) | string terminator padding: - +0x1272 | 00 00 | uint8_t[2] | .. | padding + +0x162A | 00 00 | uint8_t[2] | .. | padding table (reflection.KeyValue): - +0x1274 | 10 DD FF FF | SOffset32 | 0xFFFFDD10 (-8944) Loc: +0x3564 | offset to vtable - +0x1278 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1288 | offset to field `key` (string) - +0x127C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1280 | offset to field `value` (string) + +0x162C | 10 DD FF FF | SOffset32 | 0xFFFFDD10 (-8944) Loc: +0x391C | offset to vtable + +0x1630 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1640 | offset to field `key` (string) + +0x1634 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1638 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1280 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x1284 | 34 39 | char[2] | 49 | string literal - +0x1286 | 00 | char | 0x00 (0) | string terminator + +0x1638 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x163C | 34 39 | char[2] | 49 | string literal + +0x163E | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x1288 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x128C | 69 64 | char[2] | id | string literal - +0x128E | 00 | char | 0x00 (0) | string terminator + +0x1640 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1644 | 69 64 | char[2] | id | string literal + +0x1646 | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x1290 | 0C E7 FF FF | SOffset32 | 0xFFFFE70C (-6388) Loc: +0x2B84 | offset to vtable - +0x1294 | 00 00 | uint8_t[2] | .. | padding - +0x1296 | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) - +0x1297 | 04 | uint8_t | 0x04 (4) | table field `element` (Byte) - +0x1298 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x1648 | 0C E7 FF FF | SOffset32 | 0xFFFFE70C (-6388) Loc: +0x2F3C | offset to vtable + +0x164C | 00 00 | uint8_t[2] | .. | padding + +0x164E | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) + +0x164F | 04 | uint8_t | 0x04 (4) | table field `element` (Byte) + +0x1650 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x129C | 1C 00 00 00 | uint32_t | 0x0000001C (28) | length of string - +0x12A0 | 74 65 73 74 72 65 71 75 | char[28] | testrequ | string literal - +0x12A8 | 69 72 65 64 6E 65 73 74 | | irednest - +0x12B0 | 65 64 66 6C 61 74 62 75 | | edflatbu - +0x12B8 | 66 66 65 72 | | ffer - +0x12BC | 00 | char | 0x00 (0) | string terminator + +0x1654 | 1C 00 00 00 | uint32_t | 0x0000001C (28) | length of string + +0x1658 | 74 65 73 74 72 65 71 75 | char[28] | testrequ | string literal + +0x1660 | 69 72 65 64 6E 65 73 74 | | irednest + +0x1668 | 65 64 66 6C 61 74 62 75 | | edflatbu + +0x1670 | 66 66 65 72 | | ffer + +0x1674 | 00 | char | 0x00 (0) | string terminator vtable (reflection.Field): - +0x12BE | 1A 00 | uint16_t | 0x001A (26) | size of this vtable - +0x12C0 | 20 00 | uint16_t | 0x0020 (32) | size of referring table - +0x12C2 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0) - +0x12C4 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `type` (id: 1) - +0x12C6 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `id` (id: 2) - +0x12C8 | 06 00 | VOffset16 | 0x0006 (6) | offset to field `offset` (id: 3) - +0x12CA | 18 00 | VOffset16 | 0x0018 (24) | offset to field `default_integer` (id: 4) - +0x12CC | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) (Double) - +0x12CE | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) - +0x12D0 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) (Bool) - +0x12D2 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 8) (Bool) - +0x12D4 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `attributes` (id: 9) - +0x12D6 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `documentation` (id: 10) + +0x1676 | 1A 00 | uint16_t | 0x001A (26) | size of this vtable + +0x1678 | 20 00 | uint16_t | 0x0020 (32) | size of referring table + +0x167A | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0) + +0x167C | 0C 00 | VOffset16 | 0x000C (12) | offset to field `type` (id: 1) + +0x167E | 04 00 | VOffset16 | 0x0004 (4) | offset to field `id` (id: 2) + +0x1680 | 06 00 | VOffset16 | 0x0006 (6) | offset to field `offset` (id: 3) + +0x1682 | 18 00 | VOffset16 | 0x0018 (24) | offset to field `default_integer` (id: 4) + +0x1684 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) (Double) + +0x1686 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) + +0x1688 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) (Bool) + +0x168A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 8) (Bool) + +0x168C | 10 00 | VOffset16 | 0x0010 (16) | offset to field `attributes` (id: 9) + +0x168E | 14 00 | VOffset16 | 0x0014 (20) | offset to field `documentation` (id: 10) table (reflection.Field): - +0x12D8 | 1A 00 00 00 | SOffset32 | 0x0000001A (26) Loc: +0x12BE | offset to vtable - +0x12DC | 30 00 | uint16_t | 0x0030 (48) | table field `id` (UShort) - +0x12DE | 64 00 | uint16_t | 0x0064 (100) | table field `offset` (UShort) - +0x12E0 | 54 00 00 00 | UOffset32 | 0x00000054 (84) Loc: +0x1334 | offset to field `name` (string) - +0x12E4 | 3C 00 00 00 | UOffset32 | 0x0000003C (60) Loc: +0x1320 | offset to field `type` (table) - +0x12E8 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x12FC | offset to field `attributes` (vector) - +0x12EC | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x12F8 | offset to field `documentation` (vector) - +0x12F0 | FF FF FF FF FF FF FF FF | int64_t | 0xFFFFFFFFFFFFFFFF (-1) | table field `default_integer` (Long) + +0x1690 | 1A 00 00 00 | SOffset32 | 0x0000001A (26) Loc: +0x1676 | offset to vtable + +0x1694 | 30 00 | uint16_t | 0x0030 (48) | table field `id` (UShort) + +0x1696 | 64 00 | uint16_t | 0x0064 (100) | table field `offset` (UShort) + +0x1698 | 54 00 00 00 | UOffset32 | 0x00000054 (84) Loc: +0x16EC | offset to field `name` (string) + +0x169C | 3C 00 00 00 | UOffset32 | 0x0000003C (60) Loc: +0x16D8 | offset to field `type` (table) + +0x16A0 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x16B4 | offset to field `attributes` (vector) + +0x16A4 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x16B0 | offset to field `documentation` (vector) + +0x16A8 | FF FF FF FF FF FF FF FF | int64_t | 0xFFFFFFFFFFFFFFFF (-1) | table field `default_integer` (Long) vector (reflection.Field.documentation): - +0x12F8 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x16B0 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) vector (reflection.Field.attributes): - +0x12FC | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x1300 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1304 | offset to table[0] + +0x16B4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x16B8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x16BC | offset to table[0] table (reflection.KeyValue): - +0x1304 | A0 DD FF FF | SOffset32 | 0xFFFFDDA0 (-8800) Loc: +0x3564 | offset to vtable - +0x1308 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1318 | offset to field `key` (string) - +0x130C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1310 | offset to field `value` (string) + +0x16BC | A0 DD FF FF | SOffset32 | 0xFFFFDDA0 (-8800) Loc: +0x391C | offset to vtable + +0x16C0 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x16D0 | offset to field `key` (string) + +0x16C4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x16C8 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1310 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x1314 | 34 38 | char[2] | 48 | string literal - +0x1316 | 00 | char | 0x00 (0) | string terminator + +0x16C8 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x16CC | 34 38 | char[2] | 48 | string literal + +0x16CE | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x1318 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x131C | 69 64 | char[2] | id | string literal - +0x131E | 00 | char | 0x00 (0) | string terminator + +0x16D0 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x16D4 | 69 64 | char[2] | id | string literal + +0x16D6 | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x1320 | 1C DD FF FF | SOffset32 | 0xFFFFDD1C (-8932) Loc: +0x3604 | offset to vtable - +0x1324 | 00 00 00 | uint8_t[3] | ... | padding - +0x1327 | 03 | uint8_t | 0x03 (3) | table field `base_type` (Byte) - +0x1328 | 05 00 00 00 | uint32_t | 0x00000005 (5) | table field `index` (Int) - +0x132C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) - +0x1330 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x16D8 | 1C DD FF FF | SOffset32 | 0xFFFFDD1C (-8932) Loc: +0x39BC | offset to vtable + +0x16DC | 00 00 00 | uint8_t[3] | ... | padding + +0x16DF | 03 | uint8_t | 0x03 (3) | table field `base_type` (Byte) + +0x16E0 | 05 00 00 00 | uint32_t | 0x00000005 (5) | table field `index` (Int) + +0x16E4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) + +0x16E8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x1334 | 0B 00 00 00 | uint32_t | 0x0000000B (11) | length of string - +0x1338 | 73 69 67 6E 65 64 5F 65 | char[11] | signed_e | string literal - +0x1340 | 6E 75 6D | | num - +0x1343 | 00 | char | 0x00 (0) | string terminator + +0x16EC | 0B 00 00 00 | uint32_t | 0x0000000B (11) | length of string + +0x16F0 | 73 69 67 6E 65 64 5F 65 | char[11] | signed_e | string literal + +0x16F8 | 6E 75 6D | | num + +0x16FB | 00 | char | 0x00 (0) | string terminator table (reflection.Field): - +0x1344 | 20 E8 FF FF | SOffset32 | 0xFFFFE820 (-6112) Loc: +0x2B24 | offset to vtable - +0x1348 | 00 00 00 | uint8_t[3] | ... | padding - +0x134B | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x134C | 2F 00 | uint16_t | 0x002F (47) | table field `id` (UShort) - +0x134E | 62 00 | uint16_t | 0x0062 (98) | table field `offset` (UShort) - +0x1350 | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: +0x1398 | offset to field `name` (string) - +0x1354 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x1388 | offset to field `type` (table) - +0x1358 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x1364 | offset to field `attributes` (vector) - +0x135C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1360 | offset to field `documentation` (vector) + +0x16FC | 20 E8 FF FF | SOffset32 | 0xFFFFE820 (-6112) Loc: +0x2EDC | offset to vtable + +0x1700 | 00 00 00 | uint8_t[3] | ... | padding + +0x1703 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x1704 | 2F 00 | uint16_t | 0x002F (47) | table field `id` (UShort) + +0x1706 | 62 00 | uint16_t | 0x0062 (98) | table field `offset` (UShort) + +0x1708 | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: +0x1750 | offset to field `name` (string) + +0x170C | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x1740 | offset to field `type` (table) + +0x1710 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x171C | offset to field `attributes` (vector) + +0x1714 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1718 | offset to field `documentation` (vector) vector (reflection.Field.documentation): - +0x1360 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x1718 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) vector (reflection.Field.attributes): - +0x1364 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x1368 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x136C | offset to table[0] + +0x171C | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x1720 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1724 | offset to table[0] table (reflection.KeyValue): - +0x136C | 08 DE FF FF | SOffset32 | 0xFFFFDE08 (-8696) Loc: +0x3564 | offset to vtable - +0x1370 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1380 | offset to field `key` (string) - +0x1374 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1378 | offset to field `value` (string) + +0x1724 | 08 DE FF FF | SOffset32 | 0xFFFFDE08 (-8696) Loc: +0x391C | offset to vtable + +0x1728 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1738 | offset to field `key` (string) + +0x172C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1730 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1378 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x137C | 34 37 | char[2] | 47 | string literal - +0x137E | 00 | char | 0x00 (0) | string terminator + +0x1730 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1734 | 34 37 | char[2] | 47 | string literal + +0x1736 | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x1380 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x1384 | 69 64 | char[2] | id | string literal - +0x1386 | 00 | char | 0x00 (0) | string terminator + +0x1738 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x173C | 69 64 | char[2] | id | string literal + +0x173E | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x1388 | D8 E9 FF FF | SOffset32 | 0xFFFFE9D8 (-5672) Loc: +0x29B0 | offset to vtable - +0x138C | 00 00 | uint8_t[2] | .. | padding - +0x138E | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) - +0x138F | 04 | uint8_t | 0x04 (4) | table field `element` (Byte) - +0x1390 | 03 00 00 00 | uint32_t | 0x00000003 (3) | table field `index` (Int) - +0x1394 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x1740 | D8 E9 FF FF | SOffset32 | 0xFFFFE9D8 (-5672) Loc: +0x2D68 | offset to vtable + +0x1744 | 00 00 | uint8_t[2] | .. | padding + +0x1746 | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) + +0x1747 | 04 | uint8_t | 0x04 (4) | table field `element` (Byte) + +0x1748 | 03 00 00 00 | uint32_t | 0x00000003 (3) | table field `index` (Int) + +0x174C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x1398 | 0F 00 00 00 | uint32_t | 0x0000000F (15) | length of string - +0x139C | 76 65 63 74 6F 72 5F 6F | char[15] | vector_o | string literal - +0x13A4 | 66 5F 65 6E 75 6D 73 | | f_enums - +0x13AB | 00 | char | 0x00 (0) | string terminator + +0x1750 | 0F 00 00 00 | uint32_t | 0x0000000F (15) | length of string + +0x1754 | 76 65 63 74 6F 72 5F 6F | char[15] | vector_o | string literal + +0x175C | 66 5F 65 6E 75 6D 73 | | f_enums + +0x1763 | 00 | char | 0x00 (0) | string terminator table (reflection.Field): - +0x13AC | 88 E8 FF FF | SOffset32 | 0xFFFFE888 (-6008) Loc: +0x2B24 | offset to vtable - +0x13B0 | 00 00 00 | uint8_t[3] | ... | padding - +0x13B3 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x13B4 | 2E 00 | uint16_t | 0x002E (46) | table field `id` (UShort) - +0x13B6 | 60 00 | uint16_t | 0x0060 (96) | table field `offset` (UShort) - +0x13B8 | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: +0x1400 | offset to field `name` (string) - +0x13BC | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x13F0 | offset to field `type` (table) - +0x13C0 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x13CC | offset to field `attributes` (vector) - +0x13C4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x13C8 | offset to field `documentation` (vector) + +0x1764 | 88 E8 FF FF | SOffset32 | 0xFFFFE888 (-6008) Loc: +0x2EDC | offset to vtable + +0x1768 | 00 00 00 | uint8_t[3] | ... | padding + +0x176B | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x176C | 2E 00 | uint16_t | 0x002E (46) | table field `id` (UShort) + +0x176E | 60 00 | uint16_t | 0x0060 (96) | table field `offset` (UShort) + +0x1770 | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: +0x17B8 | offset to field `name` (string) + +0x1774 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x17A8 | offset to field `type` (table) + +0x1778 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x1784 | offset to field `attributes` (vector) + +0x177C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1780 | offset to field `documentation` (vector) vector (reflection.Field.documentation): - +0x13C8 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x1780 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) vector (reflection.Field.attributes): - +0x13CC | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x13D0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x13D4 | offset to table[0] + +0x1784 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x1788 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x178C | offset to table[0] table (reflection.KeyValue): - +0x13D4 | 70 DE FF FF | SOffset32 | 0xFFFFDE70 (-8592) Loc: +0x3564 | offset to vtable - +0x13D8 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x13E8 | offset to field `key` (string) - +0x13DC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x13E0 | offset to field `value` (string) + +0x178C | 70 DE FF FF | SOffset32 | 0xFFFFDE70 (-8592) Loc: +0x391C | offset to vtable + +0x1790 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x17A0 | offset to field `key` (string) + +0x1794 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1798 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x13E0 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x13E4 | 34 36 | char[2] | 46 | string literal - +0x13E6 | 00 | char | 0x00 (0) | string terminator + +0x1798 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x179C | 34 36 | char[2] | 46 | string literal + +0x179E | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x13E8 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x13EC | 69 64 | char[2] | id | string literal - +0x13EE | 00 | char | 0x00 (0) | string terminator + +0x17A0 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x17A4 | 69 64 | char[2] | id | string literal + +0x17A6 | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x13F0 | 38 DB FF FF | SOffset32 | 0xFFFFDB38 (-9416) Loc: +0x38B8 | offset to vtable - +0x13F4 | 00 00 00 | uint8_t[3] | ... | padding - +0x13F7 | 10 | uint8_t | 0x10 (16) | table field `base_type` (Byte) - +0x13F8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `index` (Int) - +0x13FC | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x17A8 | 38 DB FF FF | SOffset32 | 0xFFFFDB38 (-9416) Loc: +0x3C70 | offset to vtable + +0x17AC | 00 00 00 | uint8_t[3] | ... | padding + +0x17AF | 10 | uint8_t | 0x10 (16) | table field `base_type` (Byte) + +0x17B0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `index` (Int) + +0x17B4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x1400 | 0D 00 00 00 | uint32_t | 0x0000000D (13) | length of string - +0x1404 | 61 6E 79 5F 61 6D 62 69 | char[13] | any_ambi | string literal - +0x140C | 67 75 6F 75 73 | | guous - +0x1411 | 00 | char | 0x00 (0) | string terminator + +0x17B8 | 0D 00 00 00 | uint32_t | 0x0000000D (13) | length of string + +0x17BC | 61 6E 79 5F 61 6D 62 69 | char[13] | any_ambi | string literal + +0x17C4 | 67 75 6F 75 73 | | guous + +0x17C9 | 00 | char | 0x00 (0) | string terminator padding: - +0x1412 | 00 00 | uint8_t[2] | .. | padding + +0x17CA | 00 00 | uint8_t[2] | .. | padding table (reflection.Field): - +0x1414 | DA E9 FF FF | SOffset32 | 0xFFFFE9DA (-5670) Loc: +0x2A3A | offset to vtable - +0x1418 | 2D 00 | uint16_t | 0x002D (45) | table field `id` (UShort) - +0x141A | 5E 00 | uint16_t | 0x005E (94) | table field `offset` (UShort) - +0x141C | 4C 00 00 00 | UOffset32 | 0x0000004C (76) Loc: +0x1468 | offset to field `name` (string) - +0x1420 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x1454 | offset to field `type` (table) - +0x1424 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x1430 | offset to field `attributes` (vector) - +0x1428 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x142C | offset to field `documentation` (vector) + +0x17CC | DA E9 FF FF | SOffset32 | 0xFFFFE9DA (-5670) Loc: +0x2DF2 | offset to vtable + +0x17D0 | 2D 00 | uint16_t | 0x002D (45) | table field `id` (UShort) + +0x17D2 | 5E 00 | uint16_t | 0x005E (94) | table field `offset` (UShort) + +0x17D4 | 4C 00 00 00 | UOffset32 | 0x0000004C (76) Loc: +0x1820 | offset to field `name` (string) + +0x17D8 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x180C | offset to field `type` (table) + +0x17DC | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x17E8 | offset to field `attributes` (vector) + +0x17E0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x17E4 | offset to field `documentation` (vector) vector (reflection.Field.documentation): - +0x142C | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x17E4 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) vector (reflection.Field.attributes): - +0x1430 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x1434 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1438 | offset to table[0] + +0x17E8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x17EC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x17F0 | offset to table[0] table (reflection.KeyValue): - +0x1438 | D4 DE FF FF | SOffset32 | 0xFFFFDED4 (-8492) Loc: +0x3564 | offset to vtable - +0x143C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x144C | offset to field `key` (string) - +0x1440 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1444 | offset to field `value` (string) + +0x17F0 | D4 DE FF FF | SOffset32 | 0xFFFFDED4 (-8492) Loc: +0x391C | offset to vtable + +0x17F4 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1804 | offset to field `key` (string) + +0x17F8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x17FC | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1444 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x1448 | 34 35 | char[2] | 45 | string literal - +0x144A | 00 | char | 0x00 (0) | string terminator + +0x17FC | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1800 | 34 35 | char[2] | 45 | string literal + +0x1802 | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x144C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x1450 | 69 64 | char[2] | id | string literal - +0x1452 | 00 | char | 0x00 (0) | string terminator + +0x1804 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1808 | 69 64 | char[2] | id | string literal + +0x180A | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x1454 | 50 DE FF FF | SOffset32 | 0xFFFFDE50 (-8624) Loc: +0x3604 | offset to vtable - +0x1458 | 00 00 00 | uint8_t[3] | ... | padding - +0x145B | 01 | uint8_t | 0x01 (1) | table field `base_type` (Byte) - +0x145C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `index` (Int) - +0x1460 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) - +0x1464 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x180C | 50 DE FF FF | SOffset32 | 0xFFFFDE50 (-8624) Loc: +0x39BC | offset to vtable + +0x1810 | 00 00 00 | uint8_t[3] | ... | padding + +0x1813 | 01 | uint8_t | 0x01 (1) | table field `base_type` (Byte) + +0x1814 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `index` (Int) + +0x1818 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) + +0x181C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x1468 | 12 00 00 00 | uint32_t | 0x00000012 (18) | length of string - +0x146C | 61 6E 79 5F 61 6D 62 69 | char[18] | any_ambi | string literal - +0x1474 | 67 75 6F 75 73 5F 74 79 | | guous_ty - +0x147C | 70 65 | | pe - +0x147E | 00 | char | 0x00 (0) | string terminator + +0x1820 | 12 00 00 00 | uint32_t | 0x00000012 (18) | length of string + +0x1824 | 61 6E 79 5F 61 6D 62 69 | char[18] | any_ambi | string literal + +0x182C | 67 75 6F 75 73 5F 74 79 | | guous_ty + +0x1834 | 70 65 | | pe + +0x1836 | 00 | char | 0x00 (0) | string terminator table (reflection.Field): - +0x1480 | 5C E9 FF FF | SOffset32 | 0xFFFFE95C (-5796) Loc: +0x2B24 | offset to vtable - +0x1484 | 00 00 00 | uint8_t[3] | ... | padding - +0x1487 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x1488 | 2C 00 | uint16_t | 0x002C (44) | table field `id` (UShort) - +0x148A | 5C 00 | uint16_t | 0x005C (92) | table field `offset` (UShort) - +0x148C | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: +0x14D4 | offset to field `name` (string) - +0x1490 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x14C4 | offset to field `type` (table) - +0x1494 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x14A0 | offset to field `attributes` (vector) - +0x1498 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x149C | offset to field `documentation` (vector) + +0x1838 | 5C E9 FF FF | SOffset32 | 0xFFFFE95C (-5796) Loc: +0x2EDC | offset to vtable + +0x183C | 00 00 00 | uint8_t[3] | ... | padding + +0x183F | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x1840 | 2C 00 | uint16_t | 0x002C (44) | table field `id` (UShort) + +0x1842 | 5C 00 | uint16_t | 0x005C (92) | table field `offset` (UShort) + +0x1844 | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: +0x188C | offset to field `name` (string) + +0x1848 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x187C | offset to field `type` (table) + +0x184C | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x1858 | offset to field `attributes` (vector) + +0x1850 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1854 | offset to field `documentation` (vector) vector (reflection.Field.documentation): - +0x149C | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x1854 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) vector (reflection.Field.attributes): - +0x14A0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x14A4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x14A8 | offset to table[0] + +0x1858 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x185C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1860 | offset to table[0] table (reflection.KeyValue): - +0x14A8 | 44 DF FF FF | SOffset32 | 0xFFFFDF44 (-8380) Loc: +0x3564 | offset to vtable - +0x14AC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x14BC | offset to field `key` (string) - +0x14B0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x14B4 | offset to field `value` (string) + +0x1860 | 44 DF FF FF | SOffset32 | 0xFFFFDF44 (-8380) Loc: +0x391C | offset to vtable + +0x1864 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1874 | offset to field `key` (string) + +0x1868 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x186C | offset to field `value` (string) string (reflection.KeyValue.value): - +0x14B4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x14B8 | 34 34 | char[2] | 44 | string literal - +0x14BA | 00 | char | 0x00 (0) | string terminator + +0x186C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1870 | 34 34 | char[2] | 44 | string literal + +0x1872 | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x14BC | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x14C0 | 69 64 | char[2] | id | string literal - +0x14C2 | 00 | char | 0x00 (0) | string terminator + +0x1874 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1878 | 69 64 | char[2] | id | string literal + +0x187A | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x14C4 | 0C DC FF FF | SOffset32 | 0xFFFFDC0C (-9204) Loc: +0x38B8 | offset to vtable - +0x14C8 | 00 00 00 | uint8_t[3] | ... | padding - +0x14CB | 10 | uint8_t | 0x10 (16) | table field `base_type` (Byte) - +0x14CC | 02 00 00 00 | uint32_t | 0x00000002 (2) | table field `index` (Int) - +0x14D0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x187C | 0C DC FF FF | SOffset32 | 0xFFFFDC0C (-9204) Loc: +0x3C70 | offset to vtable + +0x1880 | 00 00 00 | uint8_t[3] | ... | padding + +0x1883 | 10 | uint8_t | 0x10 (16) | table field `base_type` (Byte) + +0x1884 | 02 00 00 00 | uint32_t | 0x00000002 (2) | table field `index` (Int) + +0x1888 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x14D4 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | length of string - +0x14D8 | 61 6E 79 5F 75 6E 69 71 | char[10] | any_uniq | string literal - +0x14E0 | 75 65 | | ue - +0x14E2 | 00 | char | 0x00 (0) | string terminator + +0x188C | 0A 00 00 00 | uint32_t | 0x0000000A (10) | length of string + +0x1890 | 61 6E 79 5F 75 6E 69 71 | char[10] | any_uniq | string literal + +0x1898 | 75 65 | | ue + +0x189A | 00 | char | 0x00 (0) | string terminator table (reflection.Field): - +0x14E4 | AA EA FF FF | SOffset32 | 0xFFFFEAAA (-5462) Loc: +0x2A3A | offset to vtable - +0x14E8 | 2B 00 | uint16_t | 0x002B (43) | table field `id` (UShort) - +0x14EA | 5A 00 | uint16_t | 0x005A (90) | table field `offset` (UShort) - +0x14EC | 4C 00 00 00 | UOffset32 | 0x0000004C (76) Loc: +0x1538 | offset to field `name` (string) - +0x14F0 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x1524 | offset to field `type` (table) - +0x14F4 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x1500 | offset to field `attributes` (vector) - +0x14F8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x14FC | offset to field `documentation` (vector) + +0x189C | AA EA FF FF | SOffset32 | 0xFFFFEAAA (-5462) Loc: +0x2DF2 | offset to vtable + +0x18A0 | 2B 00 | uint16_t | 0x002B (43) | table field `id` (UShort) + +0x18A2 | 5A 00 | uint16_t | 0x005A (90) | table field `offset` (UShort) + +0x18A4 | 4C 00 00 00 | UOffset32 | 0x0000004C (76) Loc: +0x18F0 | offset to field `name` (string) + +0x18A8 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x18DC | offset to field `type` (table) + +0x18AC | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x18B8 | offset to field `attributes` (vector) + +0x18B0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x18B4 | offset to field `documentation` (vector) vector (reflection.Field.documentation): - +0x14FC | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x18B4 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) vector (reflection.Field.attributes): - +0x1500 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x1504 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1508 | offset to table[0] + +0x18B8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x18BC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x18C0 | offset to table[0] table (reflection.KeyValue): - +0x1508 | A4 DF FF FF | SOffset32 | 0xFFFFDFA4 (-8284) Loc: +0x3564 | offset to vtable - +0x150C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x151C | offset to field `key` (string) - +0x1510 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1514 | offset to field `value` (string) + +0x18C0 | A4 DF FF FF | SOffset32 | 0xFFFFDFA4 (-8284) Loc: +0x391C | offset to vtable + +0x18C4 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x18D4 | offset to field `key` (string) + +0x18C8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x18CC | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1514 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x1518 | 34 33 | char[2] | 43 | string literal - +0x151A | 00 | char | 0x00 (0) | string terminator + +0x18CC | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x18D0 | 34 33 | char[2] | 43 | string literal + +0x18D2 | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x151C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x1520 | 69 64 | char[2] | id | string literal - +0x1522 | 00 | char | 0x00 (0) | string terminator + +0x18D4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x18D8 | 69 64 | char[2] | id | string literal + +0x18DA | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x1524 | 20 DF FF FF | SOffset32 | 0xFFFFDF20 (-8416) Loc: +0x3604 | offset to vtable - +0x1528 | 00 00 00 | uint8_t[3] | ... | padding - +0x152B | 01 | uint8_t | 0x01 (1) | table field `base_type` (Byte) - +0x152C | 02 00 00 00 | uint32_t | 0x00000002 (2) | table field `index` (Int) - +0x1530 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) - +0x1534 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x18DC | 20 DF FF FF | SOffset32 | 0xFFFFDF20 (-8416) Loc: +0x39BC | offset to vtable + +0x18E0 | 00 00 00 | uint8_t[3] | ... | padding + +0x18E3 | 01 | uint8_t | 0x01 (1) | table field `base_type` (Byte) + +0x18E4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | table field `index` (Int) + +0x18E8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) + +0x18EC | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x1538 | 0F 00 00 00 | uint32_t | 0x0000000F (15) | length of string - +0x153C | 61 6E 79 5F 75 6E 69 71 | char[15] | any_uniq | string literal - +0x1544 | 75 65 5F 74 79 70 65 | | ue_type - +0x154B | 00 | char | 0x00 (0) | string terminator + +0x18F0 | 0F 00 00 00 | uint32_t | 0x0000000F (15) | length of string + +0x18F4 | 61 6E 79 5F 75 6E 69 71 | char[15] | any_uniq | string literal + +0x18FC | 75 65 5F 74 79 70 65 | | ue_type + +0x1903 | 00 | char | 0x00 (0) | string terminator table (reflection.Field): - +0x154C | 28 EA FF FF | SOffset32 | 0xFFFFEA28 (-5592) Loc: +0x2B24 | offset to vtable - +0x1550 | 00 00 00 | uint8_t[3] | ... | padding - +0x1553 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x1554 | 2A 00 | uint16_t | 0x002A (42) | table field `id` (UShort) - +0x1556 | 58 00 | uint16_t | 0x0058 (88) | table field `offset` (UShort) - +0x1558 | 00 01 00 00 | UOffset32 | 0x00000100 (256) Loc: +0x1658 | offset to field `name` (string) - +0x155C | F0 00 00 00 | UOffset32 | 0x000000F0 (240) Loc: +0x164C | offset to field `type` (table) - +0x1560 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x156C | offset to field `attributes` (vector) - +0x1564 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1568 | offset to field `documentation` (vector) + +0x1904 | 28 EA FF FF | SOffset32 | 0xFFFFEA28 (-5592) Loc: +0x2EDC | offset to vtable + +0x1908 | 00 00 00 | uint8_t[3] | ... | padding + +0x190B | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x190C | 2A 00 | uint16_t | 0x002A (42) | table field `id` (UShort) + +0x190E | 58 00 | uint16_t | 0x0058 (88) | table field `offset` (UShort) + +0x1910 | 00 01 00 00 | UOffset32 | 0x00000100 (256) Loc: +0x1A10 | offset to field `name` (string) + +0x1914 | F0 00 00 00 | UOffset32 | 0x000000F0 (240) Loc: +0x1A04 | offset to field `type` (table) + +0x1918 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x1924 | offset to field `attributes` (vector) + +0x191C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1920 | offset to field `documentation` (vector) vector (reflection.Field.documentation): - +0x1568 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x1920 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) vector (reflection.Field.attributes): - +0x156C | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of vector (# items) - +0x1570 | B0 00 00 00 | UOffset32 | 0x000000B0 (176) Loc: +0x1620 | offset to table[0] - +0x1574 | 80 00 00 00 | UOffset32 | 0x00000080 (128) Loc: +0x15F4 | offset to table[1] - +0x1578 | 50 00 00 00 | UOffset32 | 0x00000050 (80) Loc: +0x15C8 | offset to table[2] - +0x157C | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x15A0 | offset to table[3] - +0x1580 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1584 | offset to table[4] + +0x1924 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of vector (# items) + +0x1928 | B0 00 00 00 | UOffset32 | 0x000000B0 (176) Loc: +0x19D8 | offset to table[0] + +0x192C | 80 00 00 00 | UOffset32 | 0x00000080 (128) Loc: +0x19AC | offset to table[1] + +0x1930 | 50 00 00 00 | UOffset32 | 0x00000050 (80) Loc: +0x1980 | offset to table[2] + +0x1934 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x1958 | offset to table[3] + +0x1938 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x193C | offset to table[4] table (reflection.KeyValue): - +0x1584 | 20 E0 FF FF | SOffset32 | 0xFFFFE020 (-8160) Loc: +0x3564 | offset to vtable - +0x1588 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1598 | offset to field `key` (string) - +0x158C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1590 | offset to field `value` (string) + +0x193C | 20 E0 FF FF | SOffset32 | 0xFFFFE020 (-8160) Loc: +0x391C | offset to vtable + +0x1940 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1950 | offset to field `key` (string) + +0x1944 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1948 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1590 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x1594 | 34 32 | char[2] | 42 | string literal - +0x1596 | 00 | char | 0x00 (0) | string terminator + +0x1948 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x194C | 34 32 | char[2] | 42 | string literal + +0x194E | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x1598 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x159C | 69 64 | char[2] | id | string literal - +0x159E | 00 | char | 0x00 (0) | string terminator + +0x1950 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1954 | 69 64 | char[2] | id | string literal + +0x1956 | 00 | char | 0x00 (0) | string terminator table (reflection.KeyValue): - +0x15A0 | 3C E0 FF FF | SOffset32 | 0xFFFFE03C (-8132) Loc: +0x3564 | offset to vtable - +0x15A4 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x15BC | offset to field `key` (string) - +0x15A8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x15AC | offset to field `value` (string) + +0x1958 | 3C E0 FF FF | SOffset32 | 0xFFFFE03C (-8132) Loc: +0x391C | offset to vtable + +0x195C | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x1974 | offset to field `key` (string) + +0x1960 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1964 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x15AC | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string - +0x15B0 | 66 6E 76 31 61 5F 36 34 | char[8] | fnv1a_64 | string literal - +0x15B8 | 00 | char | 0x00 (0) | string terminator + +0x1964 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string + +0x1968 | 66 6E 76 31 61 5F 36 34 | char[8] | fnv1a_64 | string literal + +0x1970 | 00 | char | 0x00 (0) | string terminator padding: - +0x15B9 | 00 00 00 | uint8_t[3] | ... | padding + +0x1971 | 00 00 00 | uint8_t[3] | ... | padding string (reflection.KeyValue.key): - +0x15BC | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string - +0x15C0 | 68 61 73 68 | char[4] | hash | string literal - +0x15C4 | 00 | char | 0x00 (0) | string terminator + +0x1974 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string + +0x1978 | 68 61 73 68 | char[4] | hash | string literal + +0x197C | 00 | char | 0x00 (0) | string terminator padding: - +0x15C5 | 00 00 00 | uint8_t[3] | ... | padding + +0x197D | 00 00 00 | uint8_t[3] | ... | padding table (reflection.KeyValue): - +0x15C8 | 64 E0 FF FF | SOffset32 | 0xFFFFE064 (-8092) Loc: +0x3564 | offset to vtable - +0x15CC | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x15E4 | offset to field `key` (string) - +0x15D0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x15D4 | offset to field `value` (string) + +0x1980 | 64 E0 FF FF | SOffset32 | 0xFFFFE064 (-8092) Loc: +0x391C | offset to vtable + +0x1984 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x199C | offset to field `key` (string) + +0x1988 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x198C | offset to field `value` (string) string (reflection.KeyValue.value): - +0x15D4 | 0B 00 00 00 | uint32_t | 0x0000000B (11) | length of string - +0x15D8 | 52 65 66 65 72 72 61 62 | char[11] | Referrab | string literal - +0x15E0 | 6C 65 54 | | leT - +0x15E3 | 00 | char | 0x00 (0) | string terminator + +0x198C | 0B 00 00 00 | uint32_t | 0x0000000B (11) | length of string + +0x1990 | 52 65 66 65 72 72 61 62 | char[11] | Referrab | string literal + +0x1998 | 6C 65 54 | | leT + +0x199B | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x15E4 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string - +0x15E8 | 63 70 70 5F 74 79 70 65 | char[8] | cpp_type | string literal - +0x15F0 | 00 | char | 0x00 (0) | string terminator + +0x199C | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string + +0x19A0 | 63 70 70 5F 74 79 70 65 | char[8] | cpp_type | string literal + +0x19A8 | 00 | char | 0x00 (0) | string terminator padding: - +0x15F1 | 00 00 00 | uint8_t[3] | ... | padding + +0x19A9 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.KeyValue): - +0x15F4 | 90 E0 FF FF | SOffset32 | 0xFFFFE090 (-8048) Loc: +0x3564 | offset to vtable - +0x15F8 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1608 | offset to field `key` (string) - +0x15FC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1600 | offset to field `value` (string) + +0x19AC | 90 E0 FF FF | SOffset32 | 0xFFFFE090 (-8048) Loc: +0x391C | offset to vtable + +0x19B0 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x19C0 | offset to field `key` (string) + +0x19B4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x19B8 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1600 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of string - +0x1604 | 00 | char | 0x00 (0) | string terminator + +0x19B8 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of string + +0x19BC | 00 | char | 0x00 (0) | string terminator padding: - +0x1605 | 00 00 00 | uint8_t[3] | ... | padding + +0x19BD | 00 00 00 | uint8_t[3] | ... | padding string (reflection.KeyValue.key): - +0x1608 | 10 00 00 00 | uint32_t | 0x00000010 (16) | length of string - +0x160C | 63 70 70 5F 70 74 72 5F | char[16] | cpp_ptr_ | string literal - +0x1614 | 74 79 70 65 5F 67 65 74 | | type_get - +0x161C | 00 | char | 0x00 (0) | string terminator + +0x19C0 | 10 00 00 00 | uint32_t | 0x00000010 (16) | length of string + +0x19C4 | 63 70 70 5F 70 74 72 5F | char[16] | cpp_ptr_ | string literal + +0x19CC | 74 79 70 65 5F 67 65 74 | | type_get + +0x19D4 | 00 | char | 0x00 (0) | string terminator padding: - +0x161D | 00 00 00 | uint8_t[3] | ... | padding + +0x19D5 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.KeyValue): - +0x1620 | BC E0 FF FF | SOffset32 | 0xFFFFE0BC (-8004) Loc: +0x3564 | offset to vtable - +0x1624 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x1638 | offset to field `key` (string) - +0x1628 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x162C | offset to field `value` (string) + +0x19D8 | BC E0 FF FF | SOffset32 | 0xFFFFE0BC (-8004) Loc: +0x391C | offset to vtable + +0x19DC | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x19F0 | offset to field `key` (string) + +0x19E0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x19E4 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x162C | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string - +0x1630 | 6E 61 6B 65 64 | char[5] | naked | string literal - +0x1635 | 00 | char | 0x00 (0) | string terminator + +0x19E4 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string + +0x19E8 | 6E 61 6B 65 64 | char[5] | naked | string literal + +0x19ED | 00 | char | 0x00 (0) | string terminator padding: - +0x1636 | 00 00 | uint8_t[2] | .. | padding + +0x19EE | 00 00 | uint8_t[2] | .. | padding string (reflection.KeyValue.key): - +0x1638 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | length of string - +0x163C | 63 70 70 5F 70 74 72 5F | char[12] | cpp_ptr_ | string literal - +0x1644 | 74 79 70 65 | | type - +0x1648 | 00 | char | 0x00 (0) | string terminator + +0x19F0 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | length of string + +0x19F4 | 63 70 70 5F 70 74 72 5F | char[12] | cpp_ptr_ | string literal + +0x19FC | 74 79 70 65 | | type + +0x1A00 | 00 | char | 0x00 (0) | string terminator padding: - +0x1649 | 00 00 00 | uint8_t[3] | ... | padding + +0x1A01 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Type): - +0x164C | C8 EA FF FF | SOffset32 | 0xFFFFEAC8 (-5432) Loc: +0x2B84 | offset to vtable - +0x1650 | 00 00 | uint8_t[2] | .. | padding - +0x1652 | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) - +0x1653 | 0A | uint8_t | 0x0A (10) | table field `element` (Byte) - +0x1654 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `element_size` (UInt) + +0x1A04 | C8 EA FF FF | SOffset32 | 0xFFFFEAC8 (-5432) Loc: +0x2F3C | offset to vtable + +0x1A08 | 00 00 | uint8_t[2] | .. | padding + +0x1A0A | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) + +0x1A0B | 0A | uint8_t | 0x0A (10) | table field `element` (Byte) + +0x1A0C | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `element_size` (UInt) string (reflection.Field.name): - +0x1658 | 1F 00 00 00 | uint32_t | 0x0000001F (31) | length of string - +0x165C | 76 65 63 74 6F 72 5F 6F | char[31] | vector_o | string literal - +0x1664 | 66 5F 6E 6F 6E 5F 6F 77 | | f_non_ow - +0x166C | 6E 69 6E 67 5F 72 65 66 | | ning_ref - +0x1674 | 65 72 65 6E 63 65 73 | | erences - +0x167B | 00 | char | 0x00 (0) | string terminator + +0x1A10 | 1F 00 00 00 | uint32_t | 0x0000001F (31) | length of string + +0x1A14 | 76 65 63 74 6F 72 5F 6F | char[31] | vector_o | string literal + +0x1A1C | 66 5F 6E 6F 6E 5F 6F 77 | | f_non_ow + +0x1A24 | 6E 69 6E 67 5F 72 65 66 | | ning_ref + +0x1A2C | 65 72 65 6E 63 65 73 | | erences + +0x1A33 | 00 | char | 0x00 (0) | string terminator table (reflection.Field): - +0x167C | 42 EC FF FF | SOffset32 | 0xFFFFEC42 (-5054) Loc: +0x2A3A | offset to vtable - +0x1680 | 29 00 | uint16_t | 0x0029 (41) | table field `id` (UShort) - +0x1682 | 56 00 | uint16_t | 0x0056 (86) | table field `offset` (UShort) - +0x1684 | 04 01 00 00 | UOffset32 | 0x00000104 (260) Loc: +0x1788 | offset to field `name` (string) - +0x1688 | F0 00 00 00 | UOffset32 | 0x000000F0 (240) Loc: +0x1778 | offset to field `type` (table) - +0x168C | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x1698 | offset to field `attributes` (vector) - +0x1690 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1694 | offset to field `documentation` (vector) + +0x1A34 | 42 EC FF FF | SOffset32 | 0xFFFFEC42 (-5054) Loc: +0x2DF2 | offset to vtable + +0x1A38 | 29 00 | uint16_t | 0x0029 (41) | table field `id` (UShort) + +0x1A3A | 56 00 | uint16_t | 0x0056 (86) | table field `offset` (UShort) + +0x1A3C | 04 01 00 00 | UOffset32 | 0x00000104 (260) Loc: +0x1B40 | offset to field `name` (string) + +0x1A40 | F0 00 00 00 | UOffset32 | 0x000000F0 (240) Loc: +0x1B30 | offset to field `type` (table) + +0x1A44 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x1A50 | offset to field `attributes` (vector) + +0x1A48 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1A4C | offset to field `documentation` (vector) vector (reflection.Field.documentation): - +0x1694 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x1A4C | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) vector (reflection.Field.attributes): - +0x1698 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of vector (# items) - +0x169C | B0 00 00 00 | UOffset32 | 0x000000B0 (176) Loc: +0x174C | offset to table[0] - +0x16A0 | 80 00 00 00 | UOffset32 | 0x00000080 (128) Loc: +0x1720 | offset to table[1] - +0x16A4 | 50 00 00 00 | UOffset32 | 0x00000050 (80) Loc: +0x16F4 | offset to table[2] - +0x16A8 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x16CC | offset to table[3] - +0x16AC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x16B0 | offset to table[4] + +0x1A50 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of vector (# items) + +0x1A54 | B0 00 00 00 | UOffset32 | 0x000000B0 (176) Loc: +0x1B04 | offset to table[0] + +0x1A58 | 80 00 00 00 | UOffset32 | 0x00000080 (128) Loc: +0x1AD8 | offset to table[1] + +0x1A5C | 50 00 00 00 | UOffset32 | 0x00000050 (80) Loc: +0x1AAC | offset to table[2] + +0x1A60 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x1A84 | offset to table[3] + +0x1A64 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1A68 | offset to table[4] table (reflection.KeyValue): - +0x16B0 | 4C E1 FF FF | SOffset32 | 0xFFFFE14C (-7860) Loc: +0x3564 | offset to vtable - +0x16B4 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x16C4 | offset to field `key` (string) - +0x16B8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x16BC | offset to field `value` (string) + +0x1A68 | 4C E1 FF FF | SOffset32 | 0xFFFFE14C (-7860) Loc: +0x391C | offset to vtable + +0x1A6C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1A7C | offset to field `key` (string) + +0x1A70 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1A74 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x16BC | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x16C0 | 34 31 | char[2] | 41 | string literal - +0x16C2 | 00 | char | 0x00 (0) | string terminator + +0x1A74 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1A78 | 34 31 | char[2] | 41 | string literal + +0x1A7A | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x16C4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x16C8 | 69 64 | char[2] | id | string literal - +0x16CA | 00 | char | 0x00 (0) | string terminator + +0x1A7C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1A80 | 69 64 | char[2] | id | string literal + +0x1A82 | 00 | char | 0x00 (0) | string terminator table (reflection.KeyValue): - +0x16CC | 68 E1 FF FF | SOffset32 | 0xFFFFE168 (-7832) Loc: +0x3564 | offset to vtable - +0x16D0 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x16E8 | offset to field `key` (string) - +0x16D4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x16D8 | offset to field `value` (string) + +0x1A84 | 68 E1 FF FF | SOffset32 | 0xFFFFE168 (-7832) Loc: +0x391C | offset to vtable + +0x1A88 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x1AA0 | offset to field `key` (string) + +0x1A8C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1A90 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x16D8 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string - +0x16DC | 66 6E 76 31 61 5F 36 34 | char[8] | fnv1a_64 | string literal - +0x16E4 | 00 | char | 0x00 (0) | string terminator + +0x1A90 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string + +0x1A94 | 66 6E 76 31 61 5F 36 34 | char[8] | fnv1a_64 | string literal + +0x1A9C | 00 | char | 0x00 (0) | string terminator padding: - +0x16E5 | 00 00 00 | uint8_t[3] | ... | padding + +0x1A9D | 00 00 00 | uint8_t[3] | ... | padding string (reflection.KeyValue.key): - +0x16E8 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string - +0x16EC | 68 61 73 68 | char[4] | hash | string literal - +0x16F0 | 00 | char | 0x00 (0) | string terminator + +0x1AA0 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string + +0x1AA4 | 68 61 73 68 | char[4] | hash | string literal + +0x1AA8 | 00 | char | 0x00 (0) | string terminator padding: - +0x16F1 | 00 00 00 | uint8_t[3] | ... | padding + +0x1AA9 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.KeyValue): - +0x16F4 | 90 E1 FF FF | SOffset32 | 0xFFFFE190 (-7792) Loc: +0x3564 | offset to vtable - +0x16F8 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x1710 | offset to field `key` (string) - +0x16FC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1700 | offset to field `value` (string) + +0x1AAC | 90 E1 FF FF | SOffset32 | 0xFFFFE190 (-7792) Loc: +0x391C | offset to vtable + +0x1AB0 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x1AC8 | offset to field `key` (string) + +0x1AB4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1AB8 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1700 | 0B 00 00 00 | uint32_t | 0x0000000B (11) | length of string - +0x1704 | 52 65 66 65 72 72 61 62 | char[11] | Referrab | string literal - +0x170C | 6C 65 54 | | leT - +0x170F | 00 | char | 0x00 (0) | string terminator + +0x1AB8 | 0B 00 00 00 | uint32_t | 0x0000000B (11) | length of string + +0x1ABC | 52 65 66 65 72 72 61 62 | char[11] | Referrab | string literal + +0x1AC4 | 6C 65 54 | | leT + +0x1AC7 | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x1710 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string - +0x1714 | 63 70 70 5F 74 79 70 65 | char[8] | cpp_type | string literal - +0x171C | 00 | char | 0x00 (0) | string terminator + +0x1AC8 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string + +0x1ACC | 63 70 70 5F 74 79 70 65 | char[8] | cpp_type | string literal + +0x1AD4 | 00 | char | 0x00 (0) | string terminator padding: - +0x171D | 00 00 00 | uint8_t[3] | ... | padding + +0x1AD5 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.KeyValue): - +0x1720 | BC E1 FF FF | SOffset32 | 0xFFFFE1BC (-7748) Loc: +0x3564 | offset to vtable - +0x1724 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1734 | offset to field `key` (string) - +0x1728 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x172C | offset to field `value` (string) + +0x1AD8 | BC E1 FF FF | SOffset32 | 0xFFFFE1BC (-7748) Loc: +0x391C | offset to vtable + +0x1ADC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1AEC | offset to field `key` (string) + +0x1AE0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1AE4 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x172C | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of string - +0x1730 | 00 | char | 0x00 (0) | string terminator + +0x1AE4 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of string + +0x1AE8 | 00 | char | 0x00 (0) | string terminator padding: - +0x1731 | 00 00 00 | uint8_t[3] | ... | padding + +0x1AE9 | 00 00 00 | uint8_t[3] | ... | padding string (reflection.KeyValue.key): - +0x1734 | 10 00 00 00 | uint32_t | 0x00000010 (16) | length of string - +0x1738 | 63 70 70 5F 70 74 72 5F | char[16] | cpp_ptr_ | string literal - +0x1740 | 74 79 70 65 5F 67 65 74 | | type_get - +0x1748 | 00 | char | 0x00 (0) | string terminator + +0x1AEC | 10 00 00 00 | uint32_t | 0x00000010 (16) | length of string + +0x1AF0 | 63 70 70 5F 70 74 72 5F | char[16] | cpp_ptr_ | string literal + +0x1AF8 | 74 79 70 65 5F 67 65 74 | | type_get + +0x1B00 | 00 | char | 0x00 (0) | string terminator padding: - +0x1749 | 00 00 00 | uint8_t[3] | ... | padding + +0x1B01 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.KeyValue): - +0x174C | E8 E1 FF FF | SOffset32 | 0xFFFFE1E8 (-7704) Loc: +0x3564 | offset to vtable - +0x1750 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x1764 | offset to field `key` (string) - +0x1754 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1758 | offset to field `value` (string) + +0x1B04 | E8 E1 FF FF | SOffset32 | 0xFFFFE1E8 (-7704) Loc: +0x391C | offset to vtable + +0x1B08 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x1B1C | offset to field `key` (string) + +0x1B0C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1B10 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1758 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string - +0x175C | 6E 61 6B 65 64 | char[5] | naked | string literal - +0x1761 | 00 | char | 0x00 (0) | string terminator + +0x1B10 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string + +0x1B14 | 6E 61 6B 65 64 | char[5] | naked | string literal + +0x1B19 | 00 | char | 0x00 (0) | string terminator padding: - +0x1762 | 00 00 | uint8_t[2] | .. | padding + +0x1B1A | 00 00 | uint8_t[2] | .. | padding string (reflection.KeyValue.key): - +0x1764 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | length of string - +0x1768 | 63 70 70 5F 70 74 72 5F | char[12] | cpp_ptr_ | string literal - +0x1770 | 74 79 70 65 | | type - +0x1774 | 00 | char | 0x00 (0) | string terminator + +0x1B1C | 0C 00 00 00 | uint32_t | 0x0000000C (12) | length of string + +0x1B20 | 63 70 70 5F 70 74 72 5F | char[12] | cpp_ptr_ | string literal + +0x1B28 | 74 79 70 65 | | type + +0x1B2C | 00 | char | 0x00 (0) | string terminator padding: - +0x1775 | 00 00 00 | uint8_t[3] | ... | padding + +0x1B2D | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Type): - +0x1778 | 94 E0 FF FF | SOffset32 | 0xFFFFE094 (-8044) Loc: +0x36E4 | offset to vtable - +0x177C | 00 00 00 | uint8_t[3] | ... | padding - +0x177F | 0A | uint8_t | 0x0A (10) | table field `base_type` (Byte) - +0x1780 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt) - +0x1784 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x1B30 | 94 E0 FF FF | SOffset32 | 0xFFFFE094 (-8044) Loc: +0x3A9C | offset to vtable + +0x1B34 | 00 00 00 | uint8_t[3] | ... | padding + +0x1B37 | 0A | uint8_t | 0x0A (10) | table field `base_type` (Byte) + +0x1B38 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt) + +0x1B3C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x1788 | 14 00 00 00 | uint32_t | 0x00000014 (20) | length of string - +0x178C | 6E 6F 6E 5F 6F 77 6E 69 | char[20] | non_owni | string literal - +0x1794 | 6E 67 5F 72 65 66 65 72 | | ng_refer - +0x179C | 65 6E 63 65 | | ence - +0x17A0 | 00 | char | 0x00 (0) | string terminator + +0x1B40 | 14 00 00 00 | uint32_t | 0x00000014 (20) | length of string + +0x1B44 | 6E 6F 6E 5F 6F 77 6E 69 | char[20] | non_owni | string literal + +0x1B4C | 6E 67 5F 72 65 66 65 72 | | ng_refer + +0x1B54 | 65 6E 63 65 | | ence + +0x1B58 | 00 | char | 0x00 (0) | string terminator padding: - +0x17A1 | 00 00 00 | uint8_t[3] | ... | padding + +0x1B59 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Field): - +0x17A4 | 80 EC FF FF | SOffset32 | 0xFFFFEC80 (-4992) Loc: +0x2B24 | offset to vtable - +0x17A8 | 00 00 00 | uint8_t[3] | ... | padding - +0x17AB | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x17AC | 28 00 | uint16_t | 0x0028 (40) | table field `id` (UShort) - +0x17AE | 54 00 | uint16_t | 0x0054 (84) | table field `offset` (UShort) - +0x17B0 | 10 01 00 00 | UOffset32 | 0x00000110 (272) Loc: +0x18C0 | offset to field `name` (string) - +0x17B4 | 00 01 00 00 | UOffset32 | 0x00000100 (256) Loc: +0x18B4 | offset to field `type` (table) - +0x17B8 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x17C4 | offset to field `attributes` (vector) - +0x17BC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x17C0 | offset to field `documentation` (vector) + +0x1B5C | 80 EC FF FF | SOffset32 | 0xFFFFEC80 (-4992) Loc: +0x2EDC | offset to vtable + +0x1B60 | 00 00 00 | uint8_t[3] | ... | padding + +0x1B63 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x1B64 | 28 00 | uint16_t | 0x0028 (40) | table field `id` (UShort) + +0x1B66 | 54 00 | uint16_t | 0x0054 (84) | table field `offset` (UShort) + +0x1B68 | 10 01 00 00 | UOffset32 | 0x00000110 (272) Loc: +0x1C78 | offset to field `name` (string) + +0x1B6C | 00 01 00 00 | UOffset32 | 0x00000100 (256) Loc: +0x1C6C | offset to field `type` (table) + +0x1B70 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x1B7C | offset to field `attributes` (vector) + +0x1B74 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1B78 | offset to field `documentation` (vector) vector (reflection.Field.documentation): - +0x17C0 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x1B78 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) vector (reflection.Field.attributes): - +0x17C4 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of vector (# items) - +0x17C8 | B4 00 00 00 | UOffset32 | 0x000000B4 (180) Loc: +0x187C | offset to table[0] - +0x17CC | 80 00 00 00 | UOffset32 | 0x00000080 (128) Loc: +0x184C | offset to table[1] - +0x17D0 | 50 00 00 00 | UOffset32 | 0x00000050 (80) Loc: +0x1820 | offset to table[2] - +0x17D4 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x17F8 | offset to table[3] - +0x17D8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x17DC | offset to table[4] + +0x1B7C | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of vector (# items) + +0x1B80 | B4 00 00 00 | UOffset32 | 0x000000B4 (180) Loc: +0x1C34 | offset to table[0] + +0x1B84 | 80 00 00 00 | UOffset32 | 0x00000080 (128) Loc: +0x1C04 | offset to table[1] + +0x1B88 | 50 00 00 00 | UOffset32 | 0x00000050 (80) Loc: +0x1BD8 | offset to table[2] + +0x1B8C | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x1BB0 | offset to table[3] + +0x1B90 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1B94 | offset to table[4] table (reflection.KeyValue): - +0x17DC | 78 E2 FF FF | SOffset32 | 0xFFFFE278 (-7560) Loc: +0x3564 | offset to vtable - +0x17E0 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x17F0 | offset to field `key` (string) - +0x17E4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x17E8 | offset to field `value` (string) + +0x1B94 | 78 E2 FF FF | SOffset32 | 0xFFFFE278 (-7560) Loc: +0x391C | offset to vtable + +0x1B98 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1BA8 | offset to field `key` (string) + +0x1B9C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1BA0 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x17E8 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x17EC | 34 30 | char[2] | 40 | string literal - +0x17EE | 00 | char | 0x00 (0) | string terminator + +0x1BA0 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1BA4 | 34 30 | char[2] | 40 | string literal + +0x1BA6 | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x17F0 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x17F4 | 69 64 | char[2] | id | string literal - +0x17F6 | 00 | char | 0x00 (0) | string terminator + +0x1BA8 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1BAC | 69 64 | char[2] | id | string literal + +0x1BAE | 00 | char | 0x00 (0) | string terminator table (reflection.KeyValue): - +0x17F8 | 94 E2 FF FF | SOffset32 | 0xFFFFE294 (-7532) Loc: +0x3564 | offset to vtable - +0x17FC | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x1814 | offset to field `key` (string) - +0x1800 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1804 | offset to field `value` (string) + +0x1BB0 | 94 E2 FF FF | SOffset32 | 0xFFFFE294 (-7532) Loc: +0x391C | offset to vtable + +0x1BB4 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x1BCC | offset to field `key` (string) + +0x1BB8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1BBC | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1804 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string - +0x1808 | 66 6E 76 31 61 5F 36 34 | char[8] | fnv1a_64 | string literal - +0x1810 | 00 | char | 0x00 (0) | string terminator + +0x1BBC | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string + +0x1BC0 | 66 6E 76 31 61 5F 36 34 | char[8] | fnv1a_64 | string literal + +0x1BC8 | 00 | char | 0x00 (0) | string terminator padding: - +0x1811 | 00 00 00 | uint8_t[3] | ... | padding + +0x1BC9 | 00 00 00 | uint8_t[3] | ... | padding string (reflection.KeyValue.key): - +0x1814 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string - +0x1818 | 68 61 73 68 | char[4] | hash | string literal - +0x181C | 00 | char | 0x00 (0) | string terminator + +0x1BCC | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string + +0x1BD0 | 68 61 73 68 | char[4] | hash | string literal + +0x1BD4 | 00 | char | 0x00 (0) | string terminator padding: - +0x181D | 00 00 00 | uint8_t[3] | ... | padding + +0x1BD5 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.KeyValue): - +0x1820 | BC E2 FF FF | SOffset32 | 0xFFFFE2BC (-7492) Loc: +0x3564 | offset to vtable - +0x1824 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x183C | offset to field `key` (string) - +0x1828 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x182C | offset to field `value` (string) + +0x1BD8 | BC E2 FF FF | SOffset32 | 0xFFFFE2BC (-7492) Loc: +0x391C | offset to vtable + +0x1BDC | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x1BF4 | offset to field `key` (string) + +0x1BE0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1BE4 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x182C | 0B 00 00 00 | uint32_t | 0x0000000B (11) | length of string - +0x1830 | 52 65 66 65 72 72 61 62 | char[11] | Referrab | string literal - +0x1838 | 6C 65 54 | | leT - +0x183B | 00 | char | 0x00 (0) | string terminator + +0x1BE4 | 0B 00 00 00 | uint32_t | 0x0000000B (11) | length of string + +0x1BE8 | 52 65 66 65 72 72 61 62 | char[11] | Referrab | string literal + +0x1BF0 | 6C 65 54 | | leT + +0x1BF3 | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x183C | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string - +0x1840 | 63 70 70 5F 74 79 70 65 | char[8] | cpp_type | string literal - +0x1848 | 00 | char | 0x00 (0) | string terminator + +0x1BF4 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string + +0x1BF8 | 63 70 70 5F 74 79 70 65 | char[8] | cpp_type | string literal + +0x1C00 | 00 | char | 0x00 (0) | string terminator padding: - +0x1849 | 00 00 00 | uint8_t[3] | ... | padding + +0x1C01 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.KeyValue): - +0x184C | E8 E2 FF FF | SOffset32 | 0xFFFFE2E8 (-7448) Loc: +0x3564 | offset to vtable - +0x1850 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x1864 | offset to field `key` (string) - +0x1854 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1858 | offset to field `value` (string) + +0x1C04 | E8 E2 FF FF | SOffset32 | 0xFFFFE2E8 (-7448) Loc: +0x391C | offset to vtable + +0x1C08 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x1C1C | offset to field `key` (string) + +0x1C0C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1C10 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1858 | 06 00 00 00 | uint32_t | 0x00000006 (6) | length of string - +0x185C | 2E 67 65 74 28 29 | char[6] | .get() | string literal - +0x1862 | 00 | char | 0x00 (0) | string terminator + +0x1C10 | 06 00 00 00 | uint32_t | 0x00000006 (6) | length of string + +0x1C14 | 2E 67 65 74 28 29 | char[6] | .get() | string literal + +0x1C1A | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x1864 | 10 00 00 00 | uint32_t | 0x00000010 (16) | length of string - +0x1868 | 63 70 70 5F 70 74 72 5F | char[16] | cpp_ptr_ | string literal - +0x1870 | 74 79 70 65 5F 67 65 74 | | type_get - +0x1878 | 00 | char | 0x00 (0) | string terminator + +0x1C1C | 10 00 00 00 | uint32_t | 0x00000010 (16) | length of string + +0x1C20 | 63 70 70 5F 70 74 72 5F | char[16] | cpp_ptr_ | string literal + +0x1C28 | 74 79 70 65 5F 67 65 74 | | type_get + +0x1C30 | 00 | char | 0x00 (0) | string terminator padding: - +0x1879 | 00 00 00 | uint8_t[3] | ... | padding + +0x1C31 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.KeyValue): - +0x187C | 18 E3 FF FF | SOffset32 | 0xFFFFE318 (-7400) Loc: +0x3564 | offset to vtable - +0x1880 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x18A0 | offset to field `key` (string) - +0x1884 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1888 | offset to field `value` (string) + +0x1C34 | 18 E3 FF FF | SOffset32 | 0xFFFFE318 (-7400) Loc: +0x391C | offset to vtable + +0x1C38 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x1C58 | offset to field `key` (string) + +0x1C3C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1C40 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1888 | 10 00 00 00 | uint32_t | 0x00000010 (16) | length of string - +0x188C | 64 65 66 61 75 6C 74 5F | char[16] | default_ | string literal - +0x1894 | 70 74 72 5F 74 79 70 65 | | ptr_type - +0x189C | 00 | char | 0x00 (0) | string terminator + +0x1C40 | 10 00 00 00 | uint32_t | 0x00000010 (16) | length of string + +0x1C44 | 64 65 66 61 75 6C 74 5F | char[16] | default_ | string literal + +0x1C4C | 70 74 72 5F 74 79 70 65 | | ptr_type + +0x1C54 | 00 | char | 0x00 (0) | string terminator padding: - +0x189D | 00 00 00 | uint8_t[3] | ... | padding + +0x1C55 | 00 00 00 | uint8_t[3] | ... | padding string (reflection.KeyValue.key): - +0x18A0 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | length of string - +0x18A4 | 63 70 70 5F 70 74 72 5F | char[12] | cpp_ptr_ | string literal - +0x18AC | 74 79 70 65 | | type - +0x18B0 | 00 | char | 0x00 (0) | string terminator + +0x1C58 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | length of string + +0x1C5C | 63 70 70 5F 70 74 72 5F | char[12] | cpp_ptr_ | string literal + +0x1C64 | 74 79 70 65 | | type + +0x1C68 | 00 | char | 0x00 (0) | string terminator padding: - +0x18B1 | 00 00 00 | uint8_t[3] | ... | padding + +0x1C69 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Type): - +0x18B4 | 30 ED FF FF | SOffset32 | 0xFFFFED30 (-4816) Loc: +0x2B84 | offset to vtable - +0x18B8 | 00 00 | uint8_t[2] | .. | padding - +0x18BA | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) - +0x18BB | 0A | uint8_t | 0x0A (10) | table field `element` (Byte) - +0x18BC | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `element_size` (UInt) + +0x1C6C | 30 ED FF FF | SOffset32 | 0xFFFFED30 (-4816) Loc: +0x2F3C | offset to vtable + +0x1C70 | 00 00 | uint8_t[2] | .. | padding + +0x1C72 | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) + +0x1C73 | 0A | uint8_t | 0x0A (10) | table field `element` (Byte) + +0x1C74 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `element_size` (UInt) string (reflection.Field.name): - +0x18C0 | 1E 00 00 00 | uint32_t | 0x0000001E (30) | length of string - +0x18C4 | 76 65 63 74 6F 72 5F 6F | char[30] | vector_o | string literal - +0x18CC | 66 5F 63 6F 5F 6F 77 6E | | f_co_own - +0x18D4 | 69 6E 67 5F 72 65 66 65 | | ing_refe - +0x18DC | 72 65 6E 63 65 73 | | rences - +0x18E2 | 00 | char | 0x00 (0) | string terminator + +0x1C78 | 1E 00 00 00 | uint32_t | 0x0000001E (30) | length of string + +0x1C7C | 76 65 63 74 6F 72 5F 6F | char[30] | vector_o | string literal + +0x1C84 | 66 5F 63 6F 5F 6F 77 6E | | f_co_own + +0x1C8C | 69 6E 67 5F 72 65 66 65 | | ing_refe + +0x1C94 | 72 65 6E 63 65 73 | | rences + +0x1C9A | 00 | char | 0x00 (0) | string terminator table (reflection.Field): - +0x18E4 | AA EE FF FF | SOffset32 | 0xFFFFEEAA (-4438) Loc: +0x2A3A | offset to vtable - +0x18E8 | 27 00 | uint16_t | 0x0027 (39) | table field `id` (UShort) - +0x18EA | 52 00 | uint16_t | 0x0052 (82) | table field `offset` (UShort) - +0x18EC | D4 00 00 00 | UOffset32 | 0x000000D4 (212) Loc: +0x19C0 | offset to field `name` (string) - +0x18F0 | C0 00 00 00 | UOffset32 | 0x000000C0 (192) Loc: +0x19B0 | offset to field `type` (table) - +0x18F4 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x1900 | offset to field `attributes` (vector) - +0x18F8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x18FC | offset to field `documentation` (vector) + +0x1C9C | AA EE FF FF | SOffset32 | 0xFFFFEEAA (-4438) Loc: +0x2DF2 | offset to vtable + +0x1CA0 | 27 00 | uint16_t | 0x0027 (39) | table field `id` (UShort) + +0x1CA2 | 52 00 | uint16_t | 0x0052 (82) | table field `offset` (UShort) + +0x1CA4 | D4 00 00 00 | UOffset32 | 0x000000D4 (212) Loc: +0x1D78 | offset to field `name` (string) + +0x1CA8 | C0 00 00 00 | UOffset32 | 0x000000C0 (192) Loc: +0x1D68 | offset to field `type` (table) + +0x1CAC | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x1CB8 | offset to field `attributes` (vector) + +0x1CB0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1CB4 | offset to field `documentation` (vector) vector (reflection.Field.documentation): - +0x18FC | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x1CB4 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) vector (reflection.Field.attributes): - +0x1900 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of vector (# items) - +0x1904 | 80 00 00 00 | UOffset32 | 0x00000080 (128) Loc: +0x1984 | offset to table[0] - +0x1908 | 50 00 00 00 | UOffset32 | 0x00000050 (80) Loc: +0x1958 | offset to table[1] - +0x190C | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x1930 | offset to table[2] - +0x1910 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1914 | offset to table[3] + +0x1CB8 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of vector (# items) + +0x1CBC | 80 00 00 00 | UOffset32 | 0x00000080 (128) Loc: +0x1D3C | offset to table[0] + +0x1CC0 | 50 00 00 00 | UOffset32 | 0x00000050 (80) Loc: +0x1D10 | offset to table[1] + +0x1CC4 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x1CE8 | offset to table[2] + +0x1CC8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1CCC | offset to table[3] table (reflection.KeyValue): - +0x1914 | B0 E3 FF FF | SOffset32 | 0xFFFFE3B0 (-7248) Loc: +0x3564 | offset to vtable - +0x1918 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1928 | offset to field `key` (string) - +0x191C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1920 | offset to field `value` (string) + +0x1CCC | B0 E3 FF FF | SOffset32 | 0xFFFFE3B0 (-7248) Loc: +0x391C | offset to vtable + +0x1CD0 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1CE0 | offset to field `key` (string) + +0x1CD4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1CD8 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1920 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x1924 | 33 39 | char[2] | 39 | string literal - +0x1926 | 00 | char | 0x00 (0) | string terminator + +0x1CD8 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1CDC | 33 39 | char[2] | 39 | string literal + +0x1CDE | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x1928 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x192C | 69 64 | char[2] | id | string literal - +0x192E | 00 | char | 0x00 (0) | string terminator + +0x1CE0 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1CE4 | 69 64 | char[2] | id | string literal + +0x1CE6 | 00 | char | 0x00 (0) | string terminator table (reflection.KeyValue): - +0x1930 | CC E3 FF FF | SOffset32 | 0xFFFFE3CC (-7220) Loc: +0x3564 | offset to vtable - +0x1934 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x194C | offset to field `key` (string) - +0x1938 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x193C | offset to field `value` (string) + +0x1CE8 | CC E3 FF FF | SOffset32 | 0xFFFFE3CC (-7220) Loc: +0x391C | offset to vtable + +0x1CEC | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x1D04 | offset to field `key` (string) + +0x1CF0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1CF4 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x193C | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string - +0x1940 | 66 6E 76 31 61 5F 36 34 | char[8] | fnv1a_64 | string literal - +0x1948 | 00 | char | 0x00 (0) | string terminator + +0x1CF4 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string + +0x1CF8 | 66 6E 76 31 61 5F 36 34 | char[8] | fnv1a_64 | string literal + +0x1D00 | 00 | char | 0x00 (0) | string terminator padding: - +0x1949 | 00 00 00 | uint8_t[3] | ... | padding + +0x1D01 | 00 00 00 | uint8_t[3] | ... | padding string (reflection.KeyValue.key): - +0x194C | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string - +0x1950 | 68 61 73 68 | char[4] | hash | string literal - +0x1954 | 00 | char | 0x00 (0) | string terminator + +0x1D04 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string + +0x1D08 | 68 61 73 68 | char[4] | hash | string literal + +0x1D0C | 00 | char | 0x00 (0) | string terminator padding: - +0x1955 | 00 00 00 | uint8_t[3] | ... | padding + +0x1D0D | 00 00 00 | uint8_t[3] | ... | padding table (reflection.KeyValue): - +0x1958 | F4 E3 FF FF | SOffset32 | 0xFFFFE3F4 (-7180) Loc: +0x3564 | offset to vtable - +0x195C | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x1974 | offset to field `key` (string) - +0x1960 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1964 | offset to field `value` (string) + +0x1D10 | F4 E3 FF FF | SOffset32 | 0xFFFFE3F4 (-7180) Loc: +0x391C | offset to vtable + +0x1D14 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x1D2C | offset to field `key` (string) + +0x1D18 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1D1C | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1964 | 0B 00 00 00 | uint32_t | 0x0000000B (11) | length of string - +0x1968 | 52 65 66 65 72 72 61 62 | char[11] | Referrab | string literal - +0x1970 | 6C 65 54 | | leT - +0x1973 | 00 | char | 0x00 (0) | string terminator + +0x1D1C | 0B 00 00 00 | uint32_t | 0x0000000B (11) | length of string + +0x1D20 | 52 65 66 65 72 72 61 62 | char[11] | Referrab | string literal + +0x1D28 | 6C 65 54 | | leT + +0x1D2B | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x1974 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string - +0x1978 | 63 70 70 5F 74 79 70 65 | char[8] | cpp_type | string literal - +0x1980 | 00 | char | 0x00 (0) | string terminator + +0x1D2C | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string + +0x1D30 | 63 70 70 5F 74 79 70 65 | char[8] | cpp_type | string literal + +0x1D38 | 00 | char | 0x00 (0) | string terminator padding: - +0x1981 | 00 00 00 | uint8_t[3] | ... | padding + +0x1D39 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.KeyValue): - +0x1984 | 20 E4 FF FF | SOffset32 | 0xFFFFE420 (-7136) Loc: +0x3564 | offset to vtable - +0x1988 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x199C | offset to field `key` (string) - +0x198C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1990 | offset to field `value` (string) + +0x1D3C | 20 E4 FF FF | SOffset32 | 0xFFFFE420 (-7136) Loc: +0x391C | offset to vtable + +0x1D40 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x1D54 | offset to field `key` (string) + +0x1D44 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1D48 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1990 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string - +0x1994 | 6E 61 6B 65 64 | char[5] | naked | string literal - +0x1999 | 00 | char | 0x00 (0) | string terminator + +0x1D48 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string + +0x1D4C | 6E 61 6B 65 64 | char[5] | naked | string literal + +0x1D51 | 00 | char | 0x00 (0) | string terminator padding: - +0x199A | 00 00 | uint8_t[2] | .. | padding + +0x1D52 | 00 00 | uint8_t[2] | .. | padding string (reflection.KeyValue.key): - +0x199C | 0C 00 00 00 | uint32_t | 0x0000000C (12) | length of string - +0x19A0 | 63 70 70 5F 70 74 72 5F | char[12] | cpp_ptr_ | string literal - +0x19A8 | 74 79 70 65 | | type - +0x19AC | 00 | char | 0x00 (0) | string terminator + +0x1D54 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | length of string + +0x1D58 | 63 70 70 5F 70 74 72 5F | char[12] | cpp_ptr_ | string literal + +0x1D60 | 74 79 70 65 | | type + +0x1D64 | 00 | char | 0x00 (0) | string terminator padding: - +0x19AD | 00 00 00 | uint8_t[3] | ... | padding + +0x1D65 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Type): - +0x19B0 | CC E2 FF FF | SOffset32 | 0xFFFFE2CC (-7476) Loc: +0x36E4 | offset to vtable - +0x19B4 | 00 00 00 | uint8_t[3] | ... | padding - +0x19B7 | 0A | uint8_t | 0x0A (10) | table field `base_type` (Byte) - +0x19B8 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt) - +0x19BC | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x1D68 | CC E2 FF FF | SOffset32 | 0xFFFFE2CC (-7476) Loc: +0x3A9C | offset to vtable + +0x1D6C | 00 00 00 | uint8_t[3] | ... | padding + +0x1D6F | 0A | uint8_t | 0x0A (10) | table field `base_type` (Byte) + +0x1D70 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt) + +0x1D74 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x19C0 | 13 00 00 00 | uint32_t | 0x00000013 (19) | length of string - +0x19C4 | 63 6F 5F 6F 77 6E 69 6E | char[19] | co_ownin | string literal - +0x19CC | 67 5F 72 65 66 65 72 65 | | g_refere - +0x19D4 | 6E 63 65 | | nce - +0x19D7 | 00 | char | 0x00 (0) | string terminator + +0x1D78 | 13 00 00 00 | uint32_t | 0x00000013 (19) | length of string + +0x1D7C | 63 6F 5F 6F 77 6E 69 6E | char[19] | co_ownin | string literal + +0x1D84 | 67 5F 72 65 66 65 72 65 | | g_refere + +0x1D8C | 6E 63 65 | | nce + +0x1D8F | 00 | char | 0x00 (0) | string terminator table (reflection.Field): - +0x19D8 | B4 EE FF FF | SOffset32 | 0xFFFFEEB4 (-4428) Loc: +0x2B24 | offset to vtable - +0x19DC | 00 00 00 | uint8_t[3] | ... | padding - +0x19DF | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x19E0 | 26 00 | uint16_t | 0x0026 (38) | table field `id` (UShort) - +0x19E2 | 50 00 | uint16_t | 0x0050 (80) | table field `offset` (UShort) - +0x19E4 | 84 00 00 00 | UOffset32 | 0x00000084 (132) Loc: +0x1A68 | offset to field `name` (string) - +0x19E8 | 70 00 00 00 | UOffset32 | 0x00000070 (112) Loc: +0x1A58 | offset to field `type` (table) - +0x19EC | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x19F8 | offset to field `attributes` (vector) - +0x19F0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x19F4 | offset to field `documentation` (vector) + +0x1D90 | B4 EE FF FF | SOffset32 | 0xFFFFEEB4 (-4428) Loc: +0x2EDC | offset to vtable + +0x1D94 | 00 00 00 | uint8_t[3] | ... | padding + +0x1D97 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x1D98 | 26 00 | uint16_t | 0x0026 (38) | table field `id` (UShort) + +0x1D9A | 50 00 | uint16_t | 0x0050 (80) | table field `offset` (UShort) + +0x1D9C | 84 00 00 00 | UOffset32 | 0x00000084 (132) Loc: +0x1E20 | offset to field `name` (string) + +0x1DA0 | 70 00 00 00 | UOffset32 | 0x00000070 (112) Loc: +0x1E10 | offset to field `type` (table) + +0x1DA4 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x1DB0 | offset to field `attributes` (vector) + +0x1DA8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1DAC | offset to field `documentation` (vector) vector (reflection.Field.documentation): - +0x19F4 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x1DAC | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) vector (reflection.Field.attributes): - +0x19F8 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) - +0x19FC | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x1A20 | offset to table[0] - +0x1A00 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1A04 | offset to table[1] + +0x1DB0 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) + +0x1DB4 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x1DD8 | offset to table[0] + +0x1DB8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1DBC | offset to table[1] table (reflection.KeyValue): - +0x1A04 | A0 E4 FF FF | SOffset32 | 0xFFFFE4A0 (-7008) Loc: +0x3564 | offset to vtable - +0x1A08 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1A18 | offset to field `key` (string) - +0x1A0C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1A10 | offset to field `value` (string) + +0x1DBC | A0 E4 FF FF | SOffset32 | 0xFFFFE4A0 (-7008) Loc: +0x391C | offset to vtable + +0x1DC0 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1DD0 | offset to field `key` (string) + +0x1DC4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1DC8 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1A10 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x1A14 | 33 38 | char[2] | 38 | string literal - +0x1A16 | 00 | char | 0x00 (0) | string terminator + +0x1DC8 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1DCC | 33 38 | char[2] | 38 | string literal + +0x1DCE | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x1A18 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x1A1C | 69 64 | char[2] | id | string literal - +0x1A1E | 00 | char | 0x00 (0) | string terminator + +0x1DD0 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1DD4 | 69 64 | char[2] | id | string literal + +0x1DD6 | 00 | char | 0x00 (0) | string terminator table (reflection.KeyValue): - +0x1A20 | BC E4 FF FF | SOffset32 | 0xFFFFE4BC (-6980) Loc: +0x3564 | offset to vtable - +0x1A24 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x1A44 | offset to field `key` (string) - +0x1A28 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1A2C | offset to field `value` (string) + +0x1DD8 | BC E4 FF FF | SOffset32 | 0xFFFFE4BC (-6980) Loc: +0x391C | offset to vtable + +0x1DDC | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x1DFC | offset to field `key` (string) + +0x1DE0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1DE4 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1A2C | 10 00 00 00 | uint32_t | 0x00000010 (16) | length of string - +0x1A30 | 64 65 66 61 75 6C 74 5F | char[16] | default_ | string literal - +0x1A38 | 70 74 72 5F 74 79 70 65 | | ptr_type - +0x1A40 | 00 | char | 0x00 (0) | string terminator + +0x1DE4 | 10 00 00 00 | uint32_t | 0x00000010 (16) | length of string + +0x1DE8 | 64 65 66 61 75 6C 74 5F | char[16] | default_ | string literal + +0x1DF0 | 70 74 72 5F 74 79 70 65 | | ptr_type + +0x1DF8 | 00 | char | 0x00 (0) | string terminator padding: - +0x1A41 | 00 00 00 | uint8_t[3] | ... | padding + +0x1DF9 | 00 00 00 | uint8_t[3] | ... | padding string (reflection.KeyValue.key): - +0x1A44 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | length of string - +0x1A48 | 63 70 70 5F 70 74 72 5F | char[12] | cpp_ptr_ | string literal - +0x1A50 | 74 79 70 65 | | type - +0x1A54 | 00 | char | 0x00 (0) | string terminator + +0x1DFC | 0C 00 00 00 | uint32_t | 0x0000000C (12) | length of string + +0x1E00 | 63 70 70 5F 70 74 72 5F | char[12] | cpp_ptr_ | string literal + +0x1E08 | 74 79 70 65 | | type + +0x1E0C | 00 | char | 0x00 (0) | string terminator padding: - +0x1A55 | 00 00 00 | uint8_t[3] | ... | padding + +0x1E0D | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Type): - +0x1A58 | A8 F0 FF FF | SOffset32 | 0xFFFFF0A8 (-3928) Loc: +0x29B0 | offset to vtable - +0x1A5C | 00 00 | uint8_t[2] | .. | padding - +0x1A5E | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) - +0x1A5F | 0F | uint8_t | 0x0F (15) | table field `element` (Byte) - +0x1A60 | 02 00 00 00 | uint32_t | 0x00000002 (2) | table field `index` (Int) - +0x1A64 | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `element_size` (UInt) + +0x1E10 | A8 F0 FF FF | SOffset32 | 0xFFFFF0A8 (-3928) Loc: +0x2D68 | offset to vtable + +0x1E14 | 00 00 | uint8_t[2] | .. | padding + +0x1E16 | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) + +0x1E17 | 0F | uint8_t | 0x0F (15) | table field `element` (Byte) + +0x1E18 | 02 00 00 00 | uint32_t | 0x00000002 (2) | table field `index` (Int) + +0x1E1C | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `element_size` (UInt) string (reflection.Field.name): - +0x1A68 | 1C 00 00 00 | uint32_t | 0x0000001C (28) | length of string - +0x1A6C | 76 65 63 74 6F 72 5F 6F | char[28] | vector_o | string literal - +0x1A74 | 66 5F 73 74 72 6F 6E 67 | | f_strong - +0x1A7C | 5F 72 65 66 65 72 72 61 | | _referra - +0x1A84 | 62 6C 65 73 | | bles - +0x1A88 | 00 | char | 0x00 (0) | string terminator + +0x1E20 | 1C 00 00 00 | uint32_t | 0x0000001C (28) | length of string + +0x1E24 | 76 65 63 74 6F 72 5F 6F | char[28] | vector_o | string literal + +0x1E2C | 66 5F 73 74 72 6F 6E 67 | | f_strong + +0x1E34 | 5F 72 65 66 65 72 72 61 | | _referra + +0x1E3C | 62 6C 65 73 | | bles + +0x1E40 | 00 | char | 0x00 (0) | string terminator padding: - +0x1A89 | 00 00 00 | uint8_t[3] | ... | padding + +0x1E41 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Field): - +0x1A8C | 68 EF FF FF | SOffset32 | 0xFFFFEF68 (-4248) Loc: +0x2B24 | offset to vtable - +0x1A90 | 00 00 00 | uint8_t[3] | ... | padding - +0x1A93 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x1A94 | 25 00 | uint16_t | 0x0025 (37) | table field `id` (UShort) - +0x1A96 | 4E 00 | uint16_t | 0x004E (78) | table field `offset` (UShort) - +0x1A98 | D0 00 00 00 | UOffset32 | 0x000000D0 (208) Loc: +0x1B68 | offset to field `name` (string) - +0x1A9C | C0 00 00 00 | UOffset32 | 0x000000C0 (192) Loc: +0x1B5C | offset to field `type` (table) - +0x1AA0 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x1AAC | offset to field `attributes` (vector) - +0x1AA4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1AA8 | offset to field `documentation` (vector) + +0x1E44 | 68 EF FF FF | SOffset32 | 0xFFFFEF68 (-4248) Loc: +0x2EDC | offset to vtable + +0x1E48 | 00 00 00 | uint8_t[3] | ... | padding + +0x1E4B | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x1E4C | 25 00 | uint16_t | 0x0025 (37) | table field `id` (UShort) + +0x1E4E | 4E 00 | uint16_t | 0x004E (78) | table field `offset` (UShort) + +0x1E50 | D0 00 00 00 | UOffset32 | 0x000000D0 (208) Loc: +0x1F20 | offset to field `name` (string) + +0x1E54 | C0 00 00 00 | UOffset32 | 0x000000C0 (192) Loc: +0x1F14 | offset to field `type` (table) + +0x1E58 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x1E64 | offset to field `attributes` (vector) + +0x1E5C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1E60 | offset to field `documentation` (vector) vector (reflection.Field.documentation): - +0x1AA8 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x1E60 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) vector (reflection.Field.attributes): - +0x1AAC | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of vector (# items) - +0x1AB0 | 80 00 00 00 | UOffset32 | 0x00000080 (128) Loc: +0x1B30 | offset to table[0] - +0x1AB4 | 50 00 00 00 | UOffset32 | 0x00000050 (80) Loc: +0x1B04 | offset to table[1] - +0x1AB8 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x1ADC | offset to table[2] - +0x1ABC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1AC0 | offset to table[3] + +0x1E64 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of vector (# items) + +0x1E68 | 80 00 00 00 | UOffset32 | 0x00000080 (128) Loc: +0x1EE8 | offset to table[0] + +0x1E6C | 50 00 00 00 | UOffset32 | 0x00000050 (80) Loc: +0x1EBC | offset to table[1] + +0x1E70 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x1E94 | offset to table[2] + +0x1E74 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1E78 | offset to table[3] table (reflection.KeyValue): - +0x1AC0 | 5C E5 FF FF | SOffset32 | 0xFFFFE55C (-6820) Loc: +0x3564 | offset to vtable - +0x1AC4 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1AD4 | offset to field `key` (string) - +0x1AC8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1ACC | offset to field `value` (string) + +0x1E78 | 5C E5 FF FF | SOffset32 | 0xFFFFE55C (-6820) Loc: +0x391C | offset to vtable + +0x1E7C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1E8C | offset to field `key` (string) + +0x1E80 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1E84 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1ACC | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x1AD0 | 33 37 | char[2] | 37 | string literal - +0x1AD2 | 00 | char | 0x00 (0) | string terminator + +0x1E84 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1E88 | 33 37 | char[2] | 37 | string literal + +0x1E8A | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x1AD4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x1AD8 | 69 64 | char[2] | id | string literal - +0x1ADA | 00 | char | 0x00 (0) | string terminator + +0x1E8C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1E90 | 69 64 | char[2] | id | string literal + +0x1E92 | 00 | char | 0x00 (0) | string terminator table (reflection.KeyValue): - +0x1ADC | 78 E5 FF FF | SOffset32 | 0xFFFFE578 (-6792) Loc: +0x3564 | offset to vtable - +0x1AE0 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x1AF8 | offset to field `key` (string) - +0x1AE4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1AE8 | offset to field `value` (string) + +0x1E94 | 78 E5 FF FF | SOffset32 | 0xFFFFE578 (-6792) Loc: +0x391C | offset to vtable + +0x1E98 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x1EB0 | offset to field `key` (string) + +0x1E9C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1EA0 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1AE8 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string - +0x1AEC | 66 6E 76 31 61 5F 36 34 | char[8] | fnv1a_64 | string literal - +0x1AF4 | 00 | char | 0x00 (0) | string terminator + +0x1EA0 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string + +0x1EA4 | 66 6E 76 31 61 5F 36 34 | char[8] | fnv1a_64 | string literal + +0x1EAC | 00 | char | 0x00 (0) | string terminator padding: - +0x1AF5 | 00 00 00 | uint8_t[3] | ... | padding + +0x1EAD | 00 00 00 | uint8_t[3] | ... | padding string (reflection.KeyValue.key): - +0x1AF8 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string - +0x1AFC | 68 61 73 68 | char[4] | hash | string literal - +0x1B00 | 00 | char | 0x00 (0) | string terminator + +0x1EB0 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string + +0x1EB4 | 68 61 73 68 | char[4] | hash | string literal + +0x1EB8 | 00 | char | 0x00 (0) | string terminator padding: - +0x1B01 | 00 00 00 | uint8_t[3] | ... | padding + +0x1EB9 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.KeyValue): - +0x1B04 | A0 E5 FF FF | SOffset32 | 0xFFFFE5A0 (-6752) Loc: +0x3564 | offset to vtable - +0x1B08 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x1B20 | offset to field `key` (string) - +0x1B0C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1B10 | offset to field `value` (string) + +0x1EBC | A0 E5 FF FF | SOffset32 | 0xFFFFE5A0 (-6752) Loc: +0x391C | offset to vtable + +0x1EC0 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x1ED8 | offset to field `key` (string) + +0x1EC4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1EC8 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1B10 | 0B 00 00 00 | uint32_t | 0x0000000B (11) | length of string - +0x1B14 | 52 65 66 65 72 72 61 62 | char[11] | Referrab | string literal - +0x1B1C | 6C 65 54 | | leT - +0x1B1F | 00 | char | 0x00 (0) | string terminator + +0x1EC8 | 0B 00 00 00 | uint32_t | 0x0000000B (11) | length of string + +0x1ECC | 52 65 66 65 72 72 61 62 | char[11] | Referrab | string literal + +0x1ED4 | 6C 65 54 | | leT + +0x1ED7 | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x1B20 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string - +0x1B24 | 63 70 70 5F 74 79 70 65 | char[8] | cpp_type | string literal - +0x1B2C | 00 | char | 0x00 (0) | string terminator + +0x1ED8 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string + +0x1EDC | 63 70 70 5F 74 79 70 65 | char[8] | cpp_type | string literal + +0x1EE4 | 00 | char | 0x00 (0) | string terminator padding: - +0x1B2D | 00 00 00 | uint8_t[3] | ... | padding + +0x1EE5 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.KeyValue): - +0x1B30 | CC E5 FF FF | SOffset32 | 0xFFFFE5CC (-6708) Loc: +0x3564 | offset to vtable - +0x1B34 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x1B48 | offset to field `key` (string) - +0x1B38 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1B3C | offset to field `value` (string) + +0x1EE8 | CC E5 FF FF | SOffset32 | 0xFFFFE5CC (-6708) Loc: +0x391C | offset to vtable + +0x1EEC | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x1F00 | offset to field `key` (string) + +0x1EF0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1EF4 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1B3C | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string - +0x1B40 | 6E 61 6B 65 64 | char[5] | naked | string literal - +0x1B45 | 00 | char | 0x00 (0) | string terminator + +0x1EF4 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string + +0x1EF8 | 6E 61 6B 65 64 | char[5] | naked | string literal + +0x1EFD | 00 | char | 0x00 (0) | string terminator padding: - +0x1B46 | 00 00 | uint8_t[2] | .. | padding + +0x1EFE | 00 00 | uint8_t[2] | .. | padding string (reflection.KeyValue.key): - +0x1B48 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | length of string - +0x1B4C | 63 70 70 5F 70 74 72 5F | char[12] | cpp_ptr_ | string literal - +0x1B54 | 74 79 70 65 | | type - +0x1B58 | 00 | char | 0x00 (0) | string terminator + +0x1F00 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | length of string + +0x1F04 | 63 70 70 5F 70 74 72 5F | char[12] | cpp_ptr_ | string literal + +0x1F0C | 74 79 70 65 | | type + +0x1F10 | 00 | char | 0x00 (0) | string terminator padding: - +0x1B59 | 00 00 00 | uint8_t[3] | ... | padding + +0x1F11 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Type): - +0x1B5C | D8 EF FF FF | SOffset32 | 0xFFFFEFD8 (-4136) Loc: +0x2B84 | offset to vtable - +0x1B60 | 00 00 | uint8_t[2] | .. | padding - +0x1B62 | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) - +0x1B63 | 0A | uint8_t | 0x0A (10) | table field `element` (Byte) - +0x1B64 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `element_size` (UInt) + +0x1F14 | D8 EF FF FF | SOffset32 | 0xFFFFEFD8 (-4136) Loc: +0x2F3C | offset to vtable + +0x1F18 | 00 00 | uint8_t[2] | .. | padding + +0x1F1A | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) + +0x1F1B | 0A | uint8_t | 0x0A (10) | table field `element` (Byte) + +0x1F1C | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `element_size` (UInt) string (reflection.Field.name): - +0x1B68 | 19 00 00 00 | uint32_t | 0x00000019 (25) | length of string - +0x1B6C | 76 65 63 74 6F 72 5F 6F | char[25] | vector_o | string literal - +0x1B74 | 66 5F 77 65 61 6B 5F 72 | | f_weak_r - +0x1B7C | 65 66 65 72 65 6E 63 65 | | eference - +0x1B84 | 73 | | s - +0x1B85 | 00 | char | 0x00 (0) | string terminator + +0x1F20 | 19 00 00 00 | uint32_t | 0x00000019 (25) | length of string + +0x1F24 | 76 65 63 74 6F 72 5F 6F | char[25] | vector_o | string literal + +0x1F2C | 66 5F 77 65 61 6B 5F 72 | | f_weak_r + +0x1F34 | 65 66 65 72 65 6E 63 65 | | eference + +0x1F3C | 73 | | s + +0x1F3D | 00 | char | 0x00 (0) | string terminator padding: - +0x1B86 | 00 00 | uint8_t[2] | .. | padding + +0x1F3E | 00 00 | uint8_t[2] | .. | padding table (reflection.Field): - +0x1B88 | 4E F1 FF FF | SOffset32 | 0xFFFFF14E (-3762) Loc: +0x2A3A | offset to vtable - +0x1B8C | 24 00 | uint16_t | 0x0024 (36) | table field `id` (UShort) - +0x1B8E | 4C 00 | uint16_t | 0x004C (76) | table field `offset` (UShort) - +0x1B90 | D4 00 00 00 | UOffset32 | 0x000000D4 (212) Loc: +0x1C64 | offset to field `name` (string) - +0x1B94 | C0 00 00 00 | UOffset32 | 0x000000C0 (192) Loc: +0x1C54 | offset to field `type` (table) - +0x1B98 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x1BA4 | offset to field `attributes` (vector) - +0x1B9C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1BA0 | offset to field `documentation` (vector) + +0x1F40 | 4E F1 FF FF | SOffset32 | 0xFFFFF14E (-3762) Loc: +0x2DF2 | offset to vtable + +0x1F44 | 24 00 | uint16_t | 0x0024 (36) | table field `id` (UShort) + +0x1F46 | 4C 00 | uint16_t | 0x004C (76) | table field `offset` (UShort) + +0x1F48 | D4 00 00 00 | UOffset32 | 0x000000D4 (212) Loc: +0x201C | offset to field `name` (string) + +0x1F4C | C0 00 00 00 | UOffset32 | 0x000000C0 (192) Loc: +0x200C | offset to field `type` (table) + +0x1F50 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x1F5C | offset to field `attributes` (vector) + +0x1F54 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1F58 | offset to field `documentation` (vector) vector (reflection.Field.documentation): - +0x1BA0 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x1F58 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) vector (reflection.Field.attributes): - +0x1BA4 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of vector (# items) - +0x1BA8 | 80 00 00 00 | UOffset32 | 0x00000080 (128) Loc: +0x1C28 | offset to table[0] - +0x1BAC | 50 00 00 00 | UOffset32 | 0x00000050 (80) Loc: +0x1BFC | offset to table[1] - +0x1BB0 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x1BD4 | offset to table[2] - +0x1BB4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1BB8 | offset to table[3] + +0x1F5C | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of vector (# items) + +0x1F60 | 80 00 00 00 | UOffset32 | 0x00000080 (128) Loc: +0x1FE0 | offset to table[0] + +0x1F64 | 50 00 00 00 | UOffset32 | 0x00000050 (80) Loc: +0x1FB4 | offset to table[1] + +0x1F68 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x1F8C | offset to table[2] + +0x1F6C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1F70 | offset to table[3] table (reflection.KeyValue): - +0x1BB8 | 54 E6 FF FF | SOffset32 | 0xFFFFE654 (-6572) Loc: +0x3564 | offset to vtable - +0x1BBC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1BCC | offset to field `key` (string) - +0x1BC0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1BC4 | offset to field `value` (string) + +0x1F70 | 54 E6 FF FF | SOffset32 | 0xFFFFE654 (-6572) Loc: +0x391C | offset to vtable + +0x1F74 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1F84 | offset to field `key` (string) + +0x1F78 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1F7C | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1BC4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x1BC8 | 33 36 | char[2] | 36 | string literal - +0x1BCA | 00 | char | 0x00 (0) | string terminator + +0x1F7C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1F80 | 33 36 | char[2] | 36 | string literal + +0x1F82 | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x1BCC | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x1BD0 | 69 64 | char[2] | id | string literal - +0x1BD2 | 00 | char | 0x00 (0) | string terminator + +0x1F84 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1F88 | 69 64 | char[2] | id | string literal + +0x1F8A | 00 | char | 0x00 (0) | string terminator table (reflection.KeyValue): - +0x1BD4 | 70 E6 FF FF | SOffset32 | 0xFFFFE670 (-6544) Loc: +0x3564 | offset to vtable - +0x1BD8 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x1BF0 | offset to field `key` (string) - +0x1BDC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1BE0 | offset to field `value` (string) + +0x1F8C | 70 E6 FF FF | SOffset32 | 0xFFFFE670 (-6544) Loc: +0x391C | offset to vtable + +0x1F90 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x1FA8 | offset to field `key` (string) + +0x1F94 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1F98 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1BE0 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string - +0x1BE4 | 66 6E 76 31 61 5F 36 34 | char[8] | fnv1a_64 | string literal - +0x1BEC | 00 | char | 0x00 (0) | string terminator + +0x1F98 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string + +0x1F9C | 66 6E 76 31 61 5F 36 34 | char[8] | fnv1a_64 | string literal + +0x1FA4 | 00 | char | 0x00 (0) | string terminator padding: - +0x1BED | 00 00 00 | uint8_t[3] | ... | padding + +0x1FA5 | 00 00 00 | uint8_t[3] | ... | padding string (reflection.KeyValue.key): - +0x1BF0 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string - +0x1BF4 | 68 61 73 68 | char[4] | hash | string literal - +0x1BF8 | 00 | char | 0x00 (0) | string terminator + +0x1FA8 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string + +0x1FAC | 68 61 73 68 | char[4] | hash | string literal + +0x1FB0 | 00 | char | 0x00 (0) | string terminator padding: - +0x1BF9 | 00 00 00 | uint8_t[3] | ... | padding + +0x1FB1 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.KeyValue): - +0x1BFC | 98 E6 FF FF | SOffset32 | 0xFFFFE698 (-6504) Loc: +0x3564 | offset to vtable - +0x1C00 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x1C18 | offset to field `key` (string) - +0x1C04 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1C08 | offset to field `value` (string) + +0x1FB4 | 98 E6 FF FF | SOffset32 | 0xFFFFE698 (-6504) Loc: +0x391C | offset to vtable + +0x1FB8 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x1FD0 | offset to field `key` (string) + +0x1FBC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1FC0 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1C08 | 0B 00 00 00 | uint32_t | 0x0000000B (11) | length of string - +0x1C0C | 52 65 66 65 72 72 61 62 | char[11] | Referrab | string literal - +0x1C14 | 6C 65 54 | | leT - +0x1C17 | 00 | char | 0x00 (0) | string terminator + +0x1FC0 | 0B 00 00 00 | uint32_t | 0x0000000B (11) | length of string + +0x1FC4 | 52 65 66 65 72 72 61 62 | char[11] | Referrab | string literal + +0x1FCC | 6C 65 54 | | leT + +0x1FCF | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x1C18 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string - +0x1C1C | 63 70 70 5F 74 79 70 65 | char[8] | cpp_type | string literal - +0x1C24 | 00 | char | 0x00 (0) | string terminator + +0x1FD0 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string + +0x1FD4 | 63 70 70 5F 74 79 70 65 | char[8] | cpp_type | string literal + +0x1FDC | 00 | char | 0x00 (0) | string terminator padding: - +0x1C25 | 00 00 00 | uint8_t[3] | ... | padding + +0x1FDD | 00 00 00 | uint8_t[3] | ... | padding table (reflection.KeyValue): - +0x1C28 | C4 E6 FF FF | SOffset32 | 0xFFFFE6C4 (-6460) Loc: +0x3564 | offset to vtable - +0x1C2C | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x1C40 | offset to field `key` (string) - +0x1C30 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1C34 | offset to field `value` (string) + +0x1FE0 | C4 E6 FF FF | SOffset32 | 0xFFFFE6C4 (-6460) Loc: +0x391C | offset to vtable + +0x1FE4 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x1FF8 | offset to field `key` (string) + +0x1FE8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1FEC | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1C34 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string - +0x1C38 | 6E 61 6B 65 64 | char[5] | naked | string literal - +0x1C3D | 00 | char | 0x00 (0) | string terminator + +0x1FEC | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string + +0x1FF0 | 6E 61 6B 65 64 | char[5] | naked | string literal + +0x1FF5 | 00 | char | 0x00 (0) | string terminator padding: - +0x1C3E | 00 00 | uint8_t[2] | .. | padding + +0x1FF6 | 00 00 | uint8_t[2] | .. | padding string (reflection.KeyValue.key): - +0x1C40 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | length of string - +0x1C44 | 63 70 70 5F 70 74 72 5F | char[12] | cpp_ptr_ | string literal - +0x1C4C | 74 79 70 65 | | type - +0x1C50 | 00 | char | 0x00 (0) | string terminator + +0x1FF8 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | length of string + +0x1FFC | 63 70 70 5F 70 74 72 5F | char[12] | cpp_ptr_ | string literal + +0x2004 | 74 79 70 65 | | type + +0x2008 | 00 | char | 0x00 (0) | string terminator padding: - +0x1C51 | 00 00 00 | uint8_t[3] | ... | padding + +0x2009 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Type): - +0x1C54 | 70 E5 FF FF | SOffset32 | 0xFFFFE570 (-6800) Loc: +0x36E4 | offset to vtable - +0x1C58 | 00 00 00 | uint8_t[3] | ... | padding - +0x1C5B | 0A | uint8_t | 0x0A (10) | table field `base_type` (Byte) - +0x1C5C | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt) - +0x1C60 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x200C | 70 E5 FF FF | SOffset32 | 0xFFFFE570 (-6800) Loc: +0x3A9C | offset to vtable + +0x2010 | 00 00 00 | uint8_t[3] | ... | padding + +0x2013 | 0A | uint8_t | 0x0A (10) | table field `base_type` (Byte) + +0x2014 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt) + +0x2018 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x1C64 | 15 00 00 00 | uint32_t | 0x00000015 (21) | length of string - +0x1C68 | 73 69 6E 67 6C 65 5F 77 | char[21] | single_w | string literal - +0x1C70 | 65 61 6B 5F 72 65 66 65 | | eak_refe - +0x1C78 | 72 65 6E 63 65 | | rence - +0x1C7D | 00 | char | 0x00 (0) | string terminator + +0x201C | 15 00 00 00 | uint32_t | 0x00000015 (21) | length of string + +0x2020 | 73 69 6E 67 6C 65 5F 77 | char[21] | single_w | string literal + +0x2028 | 65 61 6B 5F 72 65 66 65 | | eak_refe + +0x2030 | 72 65 6E 63 65 | | rence + +0x2035 | 00 | char | 0x00 (0) | string terminator padding: - +0x1C7E | 00 00 | uint8_t[2] | .. | padding + +0x2036 | 00 00 | uint8_t[2] | .. | padding table (reflection.Field): - +0x1C80 | 5C F1 FF FF | SOffset32 | 0xFFFFF15C (-3748) Loc: +0x2B24 | offset to vtable - +0x1C84 | 00 00 00 | uint8_t[3] | ... | padding - +0x1C87 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x1C88 | 23 00 | uint16_t | 0x0023 (35) | table field `id` (UShort) - +0x1C8A | 4A 00 | uint16_t | 0x004A (74) | table field `offset` (UShort) - +0x1C8C | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: +0x1CD4 | offset to field `name` (string) - +0x1C90 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x1CC4 | offset to field `type` (table) - +0x1C94 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x1CA0 | offset to field `attributes` (vector) - +0x1C98 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1C9C | offset to field `documentation` (vector) + +0x2038 | 5C F1 FF FF | SOffset32 | 0xFFFFF15C (-3748) Loc: +0x2EDC | offset to vtable + +0x203C | 00 00 00 | uint8_t[3] | ... | padding + +0x203F | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x2040 | 23 00 | uint16_t | 0x0023 (35) | table field `id` (UShort) + +0x2042 | 4A 00 | uint16_t | 0x004A (74) | table field `offset` (UShort) + +0x2044 | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: +0x208C | offset to field `name` (string) + +0x2048 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x207C | offset to field `type` (table) + +0x204C | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x2058 | offset to field `attributes` (vector) + +0x2050 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2054 | offset to field `documentation` (vector) vector (reflection.Field.documentation): - +0x1C9C | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x2054 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) vector (reflection.Field.attributes): - +0x1CA0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x1CA4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1CA8 | offset to table[0] + +0x2058 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x205C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2060 | offset to table[0] table (reflection.KeyValue): - +0x1CA8 | 44 E7 FF FF | SOffset32 | 0xFFFFE744 (-6332) Loc: +0x3564 | offset to vtable - +0x1CAC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1CBC | offset to field `key` (string) - +0x1CB0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1CB4 | offset to field `value` (string) + +0x2060 | 44 E7 FF FF | SOffset32 | 0xFFFFE744 (-6332) Loc: +0x391C | offset to vtable + +0x2064 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2074 | offset to field `key` (string) + +0x2068 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x206C | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1CB4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x1CB8 | 33 35 | char[2] | 35 | string literal - +0x1CBA | 00 | char | 0x00 (0) | string terminator + +0x206C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2070 | 33 35 | char[2] | 35 | string literal + +0x2072 | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x1CBC | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x1CC0 | 69 64 | char[2] | id | string literal - +0x1CC2 | 00 | char | 0x00 (0) | string terminator + +0x2074 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2078 | 69 64 | char[2] | id | string literal + +0x207A | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x1CC4 | 14 F3 FF FF | SOffset32 | 0xFFFFF314 (-3308) Loc: +0x29B0 | offset to vtable - +0x1CC8 | 00 00 | uint8_t[2] | .. | padding - +0x1CCA | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) - +0x1CCB | 0F | uint8_t | 0x0F (15) | table field `element` (Byte) - +0x1CCC | 02 00 00 00 | uint32_t | 0x00000002 (2) | table field `index` (Int) - +0x1CD0 | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `element_size` (UInt) + +0x207C | 14 F3 FF FF | SOffset32 | 0xFFFFF314 (-3308) Loc: +0x2D68 | offset to vtable + +0x2080 | 00 00 | uint8_t[2] | .. | padding + +0x2082 | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) + +0x2083 | 0F | uint8_t | 0x0F (15) | table field `element` (Byte) + +0x2084 | 02 00 00 00 | uint32_t | 0x00000002 (2) | table field `index` (Int) + +0x2088 | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `element_size` (UInt) string (reflection.Field.name): - +0x1CD4 | 15 00 00 00 | uint32_t | 0x00000015 (21) | length of string - +0x1CD8 | 76 65 63 74 6F 72 5F 6F | char[21] | vector_o | string literal - +0x1CE0 | 66 5F 72 65 66 65 72 72 | | f_referr - +0x1CE8 | 61 62 6C 65 73 | | ables - +0x1CED | 00 | char | 0x00 (0) | string terminator + +0x208C | 15 00 00 00 | uint32_t | 0x00000015 (21) | length of string + +0x2090 | 76 65 63 74 6F 72 5F 6F | char[21] | vector_o | string literal + +0x2098 | 66 5F 72 65 66 65 72 72 | | f_referr + +0x20A0 | 61 62 6C 65 73 | | ables + +0x20A5 | 00 | char | 0x00 (0) | string terminator padding: - +0x1CEE | 00 00 | uint8_t[2] | .. | padding + +0x20A6 | 00 00 | uint8_t[2] | .. | padding table (reflection.Field): - +0x1CF0 | CC F1 FF FF | SOffset32 | 0xFFFFF1CC (-3636) Loc: +0x2B24 | offset to vtable - +0x1CF4 | 00 00 00 | uint8_t[3] | ... | padding - +0x1CF7 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x1CF8 | 22 00 | uint16_t | 0x0022 (34) | table field `id` (UShort) - +0x1CFA | 48 00 | uint16_t | 0x0048 (72) | table field `offset` (UShort) - +0x1CFC | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: +0x1D44 | offset to field `name` (string) - +0x1D00 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x1D34 | offset to field `type` (table) - +0x1D04 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x1D10 | offset to field `attributes` (vector) - +0x1D08 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1D0C | offset to field `documentation` (vector) + +0x20A8 | CC F1 FF FF | SOffset32 | 0xFFFFF1CC (-3636) Loc: +0x2EDC | offset to vtable + +0x20AC | 00 00 00 | uint8_t[3] | ... | padding + +0x20AF | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x20B0 | 22 00 | uint16_t | 0x0022 (34) | table field `id` (UShort) + +0x20B2 | 48 00 | uint16_t | 0x0048 (72) | table field `offset` (UShort) + +0x20B4 | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: +0x20FC | offset to field `name` (string) + +0x20B8 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x20EC | offset to field `type` (table) + +0x20BC | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x20C8 | offset to field `attributes` (vector) + +0x20C0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x20C4 | offset to field `documentation` (vector) vector (reflection.Field.documentation): - +0x1D0C | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x20C4 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) vector (reflection.Field.attributes): - +0x1D10 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x1D14 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1D18 | offset to table[0] + +0x20C8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x20CC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x20D0 | offset to table[0] table (reflection.KeyValue): - +0x1D18 | B4 E7 FF FF | SOffset32 | 0xFFFFE7B4 (-6220) Loc: +0x3564 | offset to vtable - +0x1D1C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1D2C | offset to field `key` (string) - +0x1D20 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1D24 | offset to field `value` (string) + +0x20D0 | B4 E7 FF FF | SOffset32 | 0xFFFFE7B4 (-6220) Loc: +0x391C | offset to vtable + +0x20D4 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x20E4 | offset to field `key` (string) + +0x20D8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x20DC | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1D24 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x1D28 | 33 34 | char[2] | 34 | string literal - +0x1D2A | 00 | char | 0x00 (0) | string terminator + +0x20DC | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x20E0 | 33 34 | char[2] | 34 | string literal + +0x20E2 | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x1D2C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x1D30 | 69 64 | char[2] | id | string literal - +0x1D32 | 00 | char | 0x00 (0) | string terminator + +0x20E4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x20E8 | 69 64 | char[2] | id | string literal + +0x20EA | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x1D34 | 7C E4 FF FF | SOffset32 | 0xFFFFE47C (-7044) Loc: +0x38B8 | offset to vtable - +0x1D38 | 00 00 00 | uint8_t[3] | ... | padding - +0x1D3B | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) - +0x1D3C | 0B 00 00 00 | uint32_t | 0x0000000B (11) | table field `index` (Int) - +0x1D40 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x20EC | 7C E4 FF FF | SOffset32 | 0xFFFFE47C (-7044) Loc: +0x3C70 | offset to vtable + +0x20F0 | 00 00 00 | uint8_t[3] | ... | padding + +0x20F3 | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) + +0x20F4 | 0B 00 00 00 | uint32_t | 0x0000000B (11) | table field `index` (Int) + +0x20F8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x1D44 | 15 00 00 00 | uint32_t | 0x00000015 (21) | length of string - +0x1D48 | 70 61 72 65 6E 74 5F 6E | char[21] | parent_n | string literal - +0x1D50 | 61 6D 65 73 70 61 63 65 | | amespace - +0x1D58 | 5F 74 65 73 74 | | _test - +0x1D5D | 00 | char | 0x00 (0) | string terminator + +0x20FC | 15 00 00 00 | uint32_t | 0x00000015 (21) | length of string + +0x2100 | 70 61 72 65 6E 74 5F 6E | char[21] | parent_n | string literal + +0x2108 | 61 6D 65 73 70 61 63 65 | | amespace + +0x2110 | 5F 74 65 73 74 | | _test + +0x2115 | 00 | char | 0x00 (0) | string terminator padding: - +0x1D5E | 00 00 | uint8_t[2] | .. | padding + +0x2116 | 00 00 | uint8_t[2] | .. | padding table (reflection.Field): - +0x1D60 | 3C F2 FF FF | SOffset32 | 0xFFFFF23C (-3524) Loc: +0x2B24 | offset to vtable - +0x1D64 | 00 00 00 | uint8_t[3] | ... | padding - +0x1D67 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x1D68 | 21 00 | uint16_t | 0x0021 (33) | table field `id` (UShort) - +0x1D6A | 46 00 | uint16_t | 0x0046 (70) | table field `offset` (UShort) - +0x1D6C | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x1DB0 | offset to field `name` (string) - +0x1D70 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x1DA4 | offset to field `type` (table) - +0x1D74 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x1D80 | offset to field `attributes` (vector) - +0x1D78 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1D7C | offset to field `documentation` (vector) + +0x2118 | 3C F2 FF FF | SOffset32 | 0xFFFFF23C (-3524) Loc: +0x2EDC | offset to vtable + +0x211C | 00 00 00 | uint8_t[3] | ... | padding + +0x211F | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x2120 | 21 00 | uint16_t | 0x0021 (33) | table field `id` (UShort) + +0x2122 | 46 00 | uint16_t | 0x0046 (70) | table field `offset` (UShort) + +0x2124 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x2168 | offset to field `name` (string) + +0x2128 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x215C | offset to field `type` (table) + +0x212C | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x2138 | offset to field `attributes` (vector) + +0x2130 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2134 | offset to field `documentation` (vector) vector (reflection.Field.documentation): - +0x1D7C | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x2134 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) vector (reflection.Field.attributes): - +0x1D80 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x1D84 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1D88 | offset to table[0] + +0x2138 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x213C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2140 | offset to table[0] table (reflection.KeyValue): - +0x1D88 | 24 E8 FF FF | SOffset32 | 0xFFFFE824 (-6108) Loc: +0x3564 | offset to vtable - +0x1D8C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1D9C | offset to field `key` (string) - +0x1D90 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1D94 | offset to field `value` (string) + +0x2140 | 24 E8 FF FF | SOffset32 | 0xFFFFE824 (-6108) Loc: +0x391C | offset to vtable + +0x2144 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2154 | offset to field `key` (string) + +0x2148 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x214C | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1D94 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x1D98 | 33 33 | char[2] | 33 | string literal - +0x1D9A | 00 | char | 0x00 (0) | string terminator + +0x214C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2150 | 33 33 | char[2] | 33 | string literal + +0x2152 | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x1D9C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x1DA0 | 69 64 | char[2] | id | string literal - +0x1DA2 | 00 | char | 0x00 (0) | string terminator + +0x2154 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2158 | 69 64 | char[2] | id | string literal + +0x215A | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x1DA4 | 20 F2 FF FF | SOffset32 | 0xFFFFF220 (-3552) Loc: +0x2B84 | offset to vtable - +0x1DA8 | 00 00 | uint8_t[2] | .. | padding - +0x1DAA | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) - +0x1DAB | 0C | uint8_t | 0x0C (12) | table field `element` (Byte) - +0x1DAC | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `element_size` (UInt) + +0x215C | 20 F2 FF FF | SOffset32 | 0xFFFFF220 (-3552) Loc: +0x2F3C | offset to vtable + +0x2160 | 00 00 | uint8_t[2] | .. | padding + +0x2162 | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) + +0x2163 | 0C | uint8_t | 0x0C (12) | table field `element` (Byte) + +0x2164 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `element_size` (UInt) string (reflection.Field.name): - +0x1DB0 | 11 00 00 00 | uint32_t | 0x00000011 (17) | length of string - +0x1DB4 | 76 65 63 74 6F 72 5F 6F | char[17] | vector_o | string literal - +0x1DBC | 66 5F 64 6F 75 62 6C 65 | | f_double - +0x1DC4 | 73 | | s - +0x1DC5 | 00 | char | 0x00 (0) | string terminator + +0x2168 | 11 00 00 00 | uint32_t | 0x00000011 (17) | length of string + +0x216C | 76 65 63 74 6F 72 5F 6F | char[17] | vector_o | string literal + +0x2174 | 66 5F 64 6F 75 62 6C 65 | | f_double + +0x217C | 73 | | s + +0x217D | 00 | char | 0x00 (0) | string terminator padding: - +0x1DC6 | 00 00 | uint8_t[2] | .. | padding + +0x217E | 00 00 | uint8_t[2] | .. | padding table (reflection.Field): - +0x1DC8 | A4 F2 FF FF | SOffset32 | 0xFFFFF2A4 (-3420) Loc: +0x2B24 | offset to vtable - +0x1DCC | 00 00 00 | uint8_t[3] | ... | padding - +0x1DCF | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x1DD0 | 20 00 | uint16_t | 0x0020 (32) | table field `id` (UShort) - +0x1DD2 | 44 00 | uint16_t | 0x0044 (68) | table field `offset` (UShort) - +0x1DD4 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x1E18 | offset to field `name` (string) - +0x1DD8 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x1E0C | offset to field `type` (table) - +0x1DDC | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x1DE8 | offset to field `attributes` (vector) - +0x1DE0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1DE4 | offset to field `documentation` (vector) + +0x2180 | A4 F2 FF FF | SOffset32 | 0xFFFFF2A4 (-3420) Loc: +0x2EDC | offset to vtable + +0x2184 | 00 00 00 | uint8_t[3] | ... | padding + +0x2187 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x2188 | 20 00 | uint16_t | 0x0020 (32) | table field `id` (UShort) + +0x218A | 44 00 | uint16_t | 0x0044 (68) | table field `offset` (UShort) + +0x218C | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x21D0 | offset to field `name` (string) + +0x2190 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x21C4 | offset to field `type` (table) + +0x2194 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x21A0 | offset to field `attributes` (vector) + +0x2198 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x219C | offset to field `documentation` (vector) vector (reflection.Field.documentation): - +0x1DE4 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x219C | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) vector (reflection.Field.attributes): - +0x1DE8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x1DEC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1DF0 | offset to table[0] + +0x21A0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x21A4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x21A8 | offset to table[0] table (reflection.KeyValue): - +0x1DF0 | 8C E8 FF FF | SOffset32 | 0xFFFFE88C (-6004) Loc: +0x3564 | offset to vtable - +0x1DF4 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1E04 | offset to field `key` (string) - +0x1DF8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1DFC | offset to field `value` (string) + +0x21A8 | 8C E8 FF FF | SOffset32 | 0xFFFFE88C (-6004) Loc: +0x391C | offset to vtable + +0x21AC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x21BC | offset to field `key` (string) + +0x21B0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x21B4 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1DFC | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x1E00 | 33 32 | char[2] | 32 | string literal - +0x1E02 | 00 | char | 0x00 (0) | string terminator + +0x21B4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x21B8 | 33 32 | char[2] | 32 | string literal + +0x21BA | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x1E04 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x1E08 | 69 64 | char[2] | id | string literal - +0x1E0A | 00 | char | 0x00 (0) | string terminator + +0x21BC | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x21C0 | 69 64 | char[2] | id | string literal + +0x21C2 | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x1E0C | 88 F2 FF FF | SOffset32 | 0xFFFFF288 (-3448) Loc: +0x2B84 | offset to vtable - +0x1E10 | 00 00 | uint8_t[2] | .. | padding - +0x1E12 | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) - +0x1E13 | 09 | uint8_t | 0x09 (9) | table field `element` (Byte) - +0x1E14 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `element_size` (UInt) + +0x21C4 | 88 F2 FF FF | SOffset32 | 0xFFFFF288 (-3448) Loc: +0x2F3C | offset to vtable + +0x21C8 | 00 00 | uint8_t[2] | .. | padding + +0x21CA | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) + +0x21CB | 09 | uint8_t | 0x09 (9) | table field `element` (Byte) + +0x21CC | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `element_size` (UInt) string (reflection.Field.name): - +0x1E18 | 0F 00 00 00 | uint32_t | 0x0000000F (15) | length of string - +0x1E1C | 76 65 63 74 6F 72 5F 6F | char[15] | vector_o | string literal - +0x1E24 | 66 5F 6C 6F 6E 67 73 | | f_longs - +0x1E2B | 00 | char | 0x00 (0) | string terminator + +0x21D0 | 0F 00 00 00 | uint32_t | 0x0000000F (15) | length of string + +0x21D4 | 76 65 63 74 6F 72 5F 6F | char[15] | vector_o | string literal + +0x21DC | 66 5F 6C 6F 6E 67 73 | | f_longs + +0x21E3 | 00 | char | 0x00 (0) | string terminator table (reflection.Field): - +0x1E2C | 08 F3 FF FF | SOffset32 | 0xFFFFF308 (-3320) Loc: +0x2B24 | offset to vtable - +0x1E30 | 00 00 00 | uint8_t[3] | ... | padding - +0x1E33 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x1E34 | 1F 00 | uint16_t | 0x001F (31) | table field `id` (UShort) - +0x1E36 | 42 00 | uint16_t | 0x0042 (66) | table field `offset` (UShort) - +0x1E38 | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: +0x1E80 | offset to field `name` (string) - +0x1E3C | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x1E70 | offset to field `type` (table) - +0x1E40 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x1E4C | offset to field `attributes` (vector) - +0x1E44 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1E48 | offset to field `documentation` (vector) + +0x21E4 | 08 F3 FF FF | SOffset32 | 0xFFFFF308 (-3320) Loc: +0x2EDC | offset to vtable + +0x21E8 | 00 00 00 | uint8_t[3] | ... | padding + +0x21EB | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x21EC | 1F 00 | uint16_t | 0x001F (31) | table field `id` (UShort) + +0x21EE | 42 00 | uint16_t | 0x0042 (66) | table field `offset` (UShort) + +0x21F0 | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: +0x2238 | offset to field `name` (string) + +0x21F4 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x2228 | offset to field `type` (table) + +0x21F8 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x2204 | offset to field `attributes` (vector) + +0x21FC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2200 | offset to field `documentation` (vector) vector (reflection.Field.documentation): - +0x1E48 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x2200 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) vector (reflection.Field.attributes): - +0x1E4C | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x1E50 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1E54 | offset to table[0] + +0x2204 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x2208 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x220C | offset to table[0] table (reflection.KeyValue): - +0x1E54 | F0 E8 FF FF | SOffset32 | 0xFFFFE8F0 (-5904) Loc: +0x3564 | offset to vtable - +0x1E58 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1E68 | offset to field `key` (string) - +0x1E5C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1E60 | offset to field `value` (string) + +0x220C | F0 E8 FF FF | SOffset32 | 0xFFFFE8F0 (-5904) Loc: +0x391C | offset to vtable + +0x2210 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2220 | offset to field `key` (string) + +0x2214 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2218 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1E60 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x1E64 | 33 31 | char[2] | 31 | string literal - +0x1E66 | 00 | char | 0x00 (0) | string terminator + +0x2218 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x221C | 33 31 | char[2] | 31 | string literal + +0x221E | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x1E68 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x1E6C | 69 64 | char[2] | id | string literal - +0x1E6E | 00 | char | 0x00 (0) | string terminator + +0x2220 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2224 | 69 64 | char[2] | id | string literal + +0x2226 | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x1E70 | C0 F4 FF FF | SOffset32 | 0xFFFFF4C0 (-2880) Loc: +0x29B0 | offset to vtable - +0x1E74 | 00 00 | uint8_t[2] | .. | padding - +0x1E76 | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) - +0x1E77 | 0F | uint8_t | 0x0F (15) | table field `element` (Byte) - +0x1E78 | 06 00 00 00 | uint32_t | 0x00000006 (6) | table field `index` (Int) - +0x1E7C | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `element_size` (UInt) + +0x2228 | C0 F4 FF FF | SOffset32 | 0xFFFFF4C0 (-2880) Loc: +0x2D68 | offset to vtable + +0x222C | 00 00 | uint8_t[2] | .. | padding + +0x222E | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) + +0x222F | 0F | uint8_t | 0x0F (15) | table field `element` (Byte) + +0x2230 | 06 00 00 00 | uint32_t | 0x00000006 (6) | table field `index` (Int) + +0x2234 | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `element_size` (UInt) string (reflection.Field.name): - +0x1E80 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string - +0x1E84 | 74 65 73 74 35 | char[5] | test5 | string literal - +0x1E89 | 00 | char | 0x00 (0) | string terminator + +0x2238 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string + +0x223C | 74 65 73 74 35 | char[5] | test5 | string literal + +0x2241 | 00 | char | 0x00 (0) | string terminator padding: - +0x1E8A | 00 00 | uint8_t[2] | .. | padding + +0x2242 | 00 00 | uint8_t[2] | .. | padding table (reflection.Field): - +0x1E8C | 68 F3 FF FF | SOffset32 | 0xFFFFF368 (-3224) Loc: +0x2B24 | offset to vtable - +0x1E90 | 00 00 00 | uint8_t[3] | ... | padding - +0x1E93 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x1E94 | 1E 00 | uint16_t | 0x001E (30) | table field `id` (UShort) - +0x1E96 | 40 00 | uint16_t | 0x0040 (64) | table field `offset` (UShort) - +0x1E98 | 6C 00 00 00 | UOffset32 | 0x0000006C (108) Loc: +0x1F04 | offset to field `name` (string) - +0x1E9C | 5C 00 00 00 | UOffset32 | 0x0000005C (92) Loc: +0x1EF8 | offset to field `type` (table) - +0x1EA0 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x1EAC | offset to field `attributes` (vector) - +0x1EA4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1EA8 | offset to field `documentation` (vector) + +0x2244 | 68 F3 FF FF | SOffset32 | 0xFFFFF368 (-3224) Loc: +0x2EDC | offset to vtable + +0x2248 | 00 00 00 | uint8_t[3] | ... | padding + +0x224B | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x224C | 1E 00 | uint16_t | 0x001E (30) | table field `id` (UShort) + +0x224E | 40 00 | uint16_t | 0x0040 (64) | table field `offset` (UShort) + +0x2250 | 6C 00 00 00 | UOffset32 | 0x0000006C (108) Loc: +0x22BC | offset to field `name` (string) + +0x2254 | 5C 00 00 00 | UOffset32 | 0x0000005C (92) Loc: +0x22B0 | offset to field `type` (table) + +0x2258 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x2264 | offset to field `attributes` (vector) + +0x225C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2260 | offset to field `documentation` (vector) vector (reflection.Field.documentation): - +0x1EA8 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x2260 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) vector (reflection.Field.attributes): - +0x1EAC | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) - +0x1EB0 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x1ED4 | offset to table[0] - +0x1EB4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1EB8 | offset to table[1] + +0x2264 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) + +0x2268 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x228C | offset to table[0] + +0x226C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2270 | offset to table[1] table (reflection.KeyValue): - +0x1EB8 | 54 E9 FF FF | SOffset32 | 0xFFFFE954 (-5804) Loc: +0x3564 | offset to vtable - +0x1EBC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1ECC | offset to field `key` (string) - +0x1EC0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1EC4 | offset to field `value` (string) + +0x2270 | 54 E9 FF FF | SOffset32 | 0xFFFFE954 (-5804) Loc: +0x391C | offset to vtable + +0x2274 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2284 | offset to field `key` (string) + +0x2278 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x227C | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1EC4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x1EC8 | 33 30 | char[2] | 30 | string literal - +0x1ECA | 00 | char | 0x00 (0) | string terminator + +0x227C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2280 | 33 30 | char[2] | 30 | string literal + +0x2282 | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x1ECC | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x1ED0 | 69 64 | char[2] | id | string literal - +0x1ED2 | 00 | char | 0x00 (0) | string terminator + +0x2284 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2288 | 69 64 | char[2] | id | string literal + +0x228A | 00 | char | 0x00 (0) | string terminator table (reflection.KeyValue): - +0x1ED4 | 70 E9 FF FF | SOffset32 | 0xFFFFE970 (-5776) Loc: +0x3564 | offset to vtable - +0x1ED8 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1EE8 | offset to field `key` (string) - +0x1EDC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1EE0 | offset to field `value` (string) + +0x228C | 70 E9 FF FF | SOffset32 | 0xFFFFE970 (-5776) Loc: +0x391C | offset to vtable + +0x2290 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x22A0 | offset to field `key` (string) + +0x2294 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2298 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1EE0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x1EE4 | 30 | char[1] | 0 | string literal - +0x1EE5 | 00 | char | 0x00 (0) | string terminator + +0x2298 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x229C | 30 | char[1] | 0 | string literal + +0x229D | 00 | char | 0x00 (0) | string terminator padding: - +0x1EE6 | 00 00 | uint8_t[2] | .. | padding + +0x229E | 00 00 | uint8_t[2] | .. | padding string (reflection.KeyValue.key): - +0x1EE8 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | length of string - +0x1EEC | 66 6C 65 78 62 75 66 66 | char[10] | flexbuff | string literal - +0x1EF4 | 65 72 | | er - +0x1EF6 | 00 | char | 0x00 (0) | string terminator + +0x22A0 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | length of string + +0x22A4 | 66 6C 65 78 62 75 66 66 | char[10] | flexbuff | string literal + +0x22AC | 65 72 | | er + +0x22AE | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x1EF8 | 74 F3 FF FF | SOffset32 | 0xFFFFF374 (-3212) Loc: +0x2B84 | offset to vtable - +0x1EFC | 00 00 | uint8_t[2] | .. | padding - +0x1EFE | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) - +0x1EFF | 04 | uint8_t | 0x04 (4) | table field `element` (Byte) - +0x1F00 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x22B0 | 74 F3 FF FF | SOffset32 | 0xFFFFF374 (-3212) Loc: +0x2F3C | offset to vtable + +0x22B4 | 00 00 | uint8_t[2] | .. | padding + +0x22B6 | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) + +0x22B7 | 04 | uint8_t | 0x04 (4) | table field `element` (Byte) + +0x22B8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x1F04 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string - +0x1F08 | 66 6C 65 78 | char[4] | flex | string literal - +0x1F0C | 00 | char | 0x00 (0) | string terminator + +0x22BC | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string + +0x22C0 | 66 6C 65 78 | char[4] | flex | string literal + +0x22C4 | 00 | char | 0x00 (0) | string terminator padding: - +0x1F0D | 00 00 00 | uint8_t[3] | ... | padding + +0x22C5 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Field): - +0x1F10 | EC F3 FF FF | SOffset32 | 0xFFFFF3EC (-3092) Loc: +0x2B24 | offset to vtable - +0x1F14 | 00 00 00 | uint8_t[3] | ... | padding - +0x1F17 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x1F18 | 1D 00 | uint16_t | 0x001D (29) | table field `id` (UShort) - +0x1F1A | 3E 00 | uint16_t | 0x003E (62) | table field `offset` (UShort) - +0x1F1C | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: +0x1F64 | offset to field `name` (string) - +0x1F20 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x1F54 | offset to field `type` (table) - +0x1F24 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x1F30 | offset to field `attributes` (vector) - +0x1F28 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1F2C | offset to field `documentation` (vector) + +0x22C8 | EC F3 FF FF | SOffset32 | 0xFFFFF3EC (-3092) Loc: +0x2EDC | offset to vtable + +0x22CC | 00 00 00 | uint8_t[3] | ... | padding + +0x22CF | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x22D0 | 1D 00 | uint16_t | 0x001D (29) | table field `id` (UShort) + +0x22D2 | 3E 00 | uint16_t | 0x003E (62) | table field `offset` (UShort) + +0x22D4 | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: +0x231C | offset to field `name` (string) + +0x22D8 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x230C | offset to field `type` (table) + +0x22DC | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x22E8 | offset to field `attributes` (vector) + +0x22E0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x22E4 | offset to field `documentation` (vector) vector (reflection.Field.documentation): - +0x1F2C | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x22E4 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) vector (reflection.Field.attributes): - +0x1F30 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x1F34 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1F38 | offset to table[0] + +0x22E8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x22EC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x22F0 | offset to table[0] table (reflection.KeyValue): - +0x1F38 | D4 E9 FF FF | SOffset32 | 0xFFFFE9D4 (-5676) Loc: +0x3564 | offset to vtable - +0x1F3C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1F4C | offset to field `key` (string) - +0x1F40 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1F44 | offset to field `value` (string) + +0x22F0 | D4 E9 FF FF | SOffset32 | 0xFFFFE9D4 (-5676) Loc: +0x391C | offset to vtable + +0x22F4 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2304 | offset to field `key` (string) + +0x22F8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x22FC | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1F44 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x1F48 | 32 39 | char[2] | 29 | string literal - +0x1F4A | 00 | char | 0x00 (0) | string terminator + +0x22FC | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2300 | 32 39 | char[2] | 29 | string literal + +0x2302 | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x1F4C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x1F50 | 69 64 | char[2] | id | string literal - +0x1F52 | 00 | char | 0x00 (0) | string terminator + +0x2304 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2308 | 69 64 | char[2] | id | string literal + +0x230A | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x1F54 | A4 F5 FF FF | SOffset32 | 0xFFFFF5A4 (-2652) Loc: +0x29B0 | offset to vtable - +0x1F58 | 00 00 | uint8_t[2] | .. | padding - +0x1F5A | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) - +0x1F5B | 0F | uint8_t | 0x0F (15) | table field `element` (Byte) - +0x1F5C | 00 00 00 00 | uint32_t | 0x00000000 (0) | table field `index` (Int) - +0x1F60 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `element_size` (UInt) + +0x230C | A4 F5 FF FF | SOffset32 | 0xFFFFF5A4 (-2652) Loc: +0x2D68 | offset to vtable + +0x2310 | 00 00 | uint8_t[2] | .. | padding + +0x2312 | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) + +0x2313 | 0F | uint8_t | 0x0F (15) | table field `element` (Byte) + +0x2314 | 00 00 00 00 | uint32_t | 0x00000000 (0) | table field `index` (Int) + +0x2318 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `element_size` (UInt) string (reflection.Field.name): - +0x1F64 | 17 00 00 00 | uint32_t | 0x00000017 (23) | length of string - +0x1F68 | 74 65 73 74 61 72 72 61 | char[23] | testarra | string literal - +0x1F70 | 79 6F 66 73 6F 72 74 65 | | yofsorte - +0x1F78 | 64 73 74 72 75 63 74 | | dstruct - +0x1F7F | 00 | char | 0x00 (0) | string terminator + +0x231C | 17 00 00 00 | uint32_t | 0x00000017 (23) | length of string + +0x2320 | 74 65 73 74 61 72 72 61 | char[23] | testarra | string literal + +0x2328 | 79 6F 66 73 6F 72 74 65 | | yofsorte + +0x2330 | 64 73 74 72 75 63 74 | | dstruct + +0x2337 | 00 | char | 0x00 (0) | string terminator table (reflection.Field): - +0x1F80 | 5C F4 FF FF | SOffset32 | 0xFFFFF45C (-2980) Loc: +0x2B24 | offset to vtable - +0x1F84 | 00 00 00 | uint8_t[3] | ... | padding - +0x1F87 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x1F88 | 1C 00 | uint16_t | 0x001C (28) | table field `id` (UShort) - +0x1F8A | 3C 00 | uint16_t | 0x003C (60) | table field `offset` (UShort) - +0x1F8C | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x1FD0 | offset to field `name` (string) - +0x1F90 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x1FC4 | offset to field `type` (table) - +0x1F94 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x1FA0 | offset to field `attributes` (vector) - +0x1F98 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1F9C | offset to field `documentation` (vector) + +0x2338 | 5C F4 FF FF | SOffset32 | 0xFFFFF45C (-2980) Loc: +0x2EDC | offset to vtable + +0x233C | 00 00 00 | uint8_t[3] | ... | padding + +0x233F | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x2340 | 1C 00 | uint16_t | 0x001C (28) | table field `id` (UShort) + +0x2342 | 3C 00 | uint16_t | 0x003C (60) | table field `offset` (UShort) + +0x2344 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x2388 | offset to field `name` (string) + +0x2348 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x237C | offset to field `type` (table) + +0x234C | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x2358 | offset to field `attributes` (vector) + +0x2350 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2354 | offset to field `documentation` (vector) vector (reflection.Field.documentation): - +0x1F9C | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x2354 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) vector (reflection.Field.attributes): - +0x1FA0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x1FA4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1FA8 | offset to table[0] + +0x2358 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x235C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2360 | offset to table[0] table (reflection.KeyValue): - +0x1FA8 | 44 EA FF FF | SOffset32 | 0xFFFFEA44 (-5564) Loc: +0x3564 | offset to vtable - +0x1FAC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1FBC | offset to field `key` (string) - +0x1FB0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1FB4 | offset to field `value` (string) + +0x2360 | 44 EA FF FF | SOffset32 | 0xFFFFEA44 (-5564) Loc: +0x391C | offset to vtable + +0x2364 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2374 | offset to field `key` (string) + +0x2368 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x236C | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1FB4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x1FB8 | 32 38 | char[2] | 28 | string literal - +0x1FBA | 00 | char | 0x00 (0) | string terminator + +0x236C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2370 | 32 38 | char[2] | 28 | string literal + +0x2372 | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x1FBC | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x1FC0 | 69 64 | char[2] | id | string literal - +0x1FC2 | 00 | char | 0x00 (0) | string terminator + +0x2374 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2378 | 69 64 | char[2] | id | string literal + +0x237A | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x1FC4 | 40 F4 FF FF | SOffset32 | 0xFFFFF440 (-3008) Loc: +0x2B84 | offset to vtable - +0x1FC8 | 00 00 | uint8_t[2] | .. | padding - +0x1FCA | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) - +0x1FCB | 0D | uint8_t | 0x0D (13) | table field `element` (Byte) - +0x1FCC | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `element_size` (UInt) + +0x237C | 40 F4 FF FF | SOffset32 | 0xFFFFF440 (-3008) Loc: +0x2F3C | offset to vtable + +0x2380 | 00 00 | uint8_t[2] | .. | padding + +0x2382 | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) + +0x2383 | 0D | uint8_t | 0x0D (13) | table field `element` (Byte) + +0x2384 | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `element_size` (UInt) string (reflection.Field.name): - +0x1FD0 | 12 00 00 00 | uint32_t | 0x00000012 (18) | length of string - +0x1FD4 | 74 65 73 74 61 72 72 61 | char[18] | testarra | string literal - +0x1FDC | 79 6F 66 73 74 72 69 6E | | yofstrin - +0x1FE4 | 67 32 | | g2 - +0x1FE6 | 00 | char | 0x00 (0) | string terminator + +0x2388 | 12 00 00 00 | uint32_t | 0x00000012 (18) | length of string + +0x238C | 74 65 73 74 61 72 72 61 | char[18] | testarra | string literal + +0x2394 | 79 6F 66 73 74 72 69 6E | | yofstrin + +0x239C | 67 32 | | g2 + +0x239E | 00 | char | 0x00 (0) | string terminator table (reflection.Field): - +0x1FE8 | AE F5 FF FF | SOffset32 | 0xFFFFF5AE (-2642) Loc: +0x2A3A | offset to vtable - +0x1FEC | 1B 00 | uint16_t | 0x001B (27) | table field `id` (UShort) - +0x1FEE | 3A 00 | uint16_t | 0x003A (58) | table field `offset` (UShort) - +0x1FF0 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x2034 | offset to field `name` (string) - +0x1FF4 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x2028 | offset to field `type` (table) - +0x1FF8 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x2004 | offset to field `attributes` (vector) - +0x1FFC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2000 | offset to field `documentation` (vector) + +0x23A0 | AE F5 FF FF | SOffset32 | 0xFFFFF5AE (-2642) Loc: +0x2DF2 | offset to vtable + +0x23A4 | 1B 00 | uint16_t | 0x001B (27) | table field `id` (UShort) + +0x23A6 | 3A 00 | uint16_t | 0x003A (58) | table field `offset` (UShort) + +0x23A8 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x23EC | offset to field `name` (string) + +0x23AC | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x23E0 | offset to field `type` (table) + +0x23B0 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x23BC | offset to field `attributes` (vector) + +0x23B4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x23B8 | offset to field `documentation` (vector) vector (reflection.Field.documentation): - +0x2000 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x23B8 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) vector (reflection.Field.attributes): - +0x2004 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x2008 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x200C | offset to table[0] + +0x23BC | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x23C0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x23C4 | offset to table[0] table (reflection.KeyValue): - +0x200C | A8 EA FF FF | SOffset32 | 0xFFFFEAA8 (-5464) Loc: +0x3564 | offset to vtable - +0x2010 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2020 | offset to field `key` (string) - +0x2014 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2018 | offset to field `value` (string) + +0x23C4 | A8 EA FF FF | SOffset32 | 0xFFFFEAA8 (-5464) Loc: +0x391C | offset to vtable + +0x23C8 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x23D8 | offset to field `key` (string) + +0x23CC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x23D0 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x2018 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x201C | 32 37 | char[2] | 27 | string literal - +0x201E | 00 | char | 0x00 (0) | string terminator + +0x23D0 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x23D4 | 32 37 | char[2] | 27 | string literal + +0x23D6 | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x2020 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x2024 | 69 64 | char[2] | id | string literal - +0x2026 | 00 | char | 0x00 (0) | string terminator + +0x23D8 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x23DC | 69 64 | char[2] | id | string literal + +0x23DE | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x2028 | 8C E6 FF FF | SOffset32 | 0xFFFFE68C (-6516) Loc: +0x399C | offset to vtable - +0x202C | 00 00 00 | uint8_t[3] | ... | padding - +0x202F | 0B | uint8_t | 0x0B (11) | table field `base_type` (Byte) - +0x2030 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x23E0 | 8C E6 FF FF | SOffset32 | 0xFFFFE68C (-6516) Loc: +0x3D54 | offset to vtable + +0x23E4 | 00 00 00 | uint8_t[3] | ... | padding + +0x23E7 | 0B | uint8_t | 0x0B (11) | table field `base_type` (Byte) + +0x23E8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x2034 | 06 00 00 00 | uint32_t | 0x00000006 (6) | length of string - +0x2038 | 74 65 73 74 66 33 | char[6] | testf3 | string literal - +0x203E | 00 | char | 0x00 (0) | string terminator + +0x23EC | 06 00 00 00 | uint32_t | 0x00000006 (6) | length of string + +0x23F0 | 74 65 73 74 66 33 | char[6] | testf3 | string literal + +0x23F6 | 00 | char | 0x00 (0) | string terminator table (reflection.Field): - +0x2040 | 9A FF FF FF | SOffset32 | 0xFFFFFF9A (-102) Loc: +0x20A6 | offset to vtable - +0x2044 | 1A 00 | uint16_t | 0x001A (26) | table field `id` (UShort) - +0x2046 | 38 00 | uint16_t | 0x0038 (56) | table field `offset` (UShort) - +0x2048 | 50 00 00 00 | UOffset32 | 0x00000050 (80) Loc: +0x2098 | offset to field `name` (string) - +0x204C | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: +0x208C | offset to field `type` (table) - +0x2050 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x2068 | offset to field `attributes` (vector) - +0x2054 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2064 | offset to field `documentation` (vector) - +0x2058 | 00 00 00 00 00 00 08 40 | double | 0x4008000000000000 (3) | table field `default_real` (Double) - +0x2060 | 00 00 00 00 | uint8_t[4] | .... | padding + +0x23F8 | 9A FF FF FF | SOffset32 | 0xFFFFFF9A (-102) Loc: +0x245E | offset to vtable + +0x23FC | 1A 00 | uint16_t | 0x001A (26) | table field `id` (UShort) + +0x23FE | 38 00 | uint16_t | 0x0038 (56) | table field `offset` (UShort) + +0x2400 | 50 00 00 00 | UOffset32 | 0x00000050 (80) Loc: +0x2450 | offset to field `name` (string) + +0x2404 | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: +0x2444 | offset to field `type` (table) + +0x2408 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x2420 | offset to field `attributes` (vector) + +0x240C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x241C | offset to field `documentation` (vector) + +0x2410 | 00 00 00 00 00 00 08 40 | double | 0x4008000000000000 (3) | table field `default_real` (Double) + +0x2418 | 00 00 00 00 | uint8_t[4] | .... | padding vector (reflection.Field.documentation): - +0x2064 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x241C | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) vector (reflection.Field.attributes): - +0x2068 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x206C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2070 | offset to table[0] + +0x2420 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x2424 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2428 | offset to table[0] table (reflection.KeyValue): - +0x2070 | 0C EB FF FF | SOffset32 | 0xFFFFEB0C (-5364) Loc: +0x3564 | offset to vtable - +0x2074 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2084 | offset to field `key` (string) - +0x2078 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x207C | offset to field `value` (string) + +0x2428 | 0C EB FF FF | SOffset32 | 0xFFFFEB0C (-5364) Loc: +0x391C | offset to vtable + +0x242C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x243C | offset to field `key` (string) + +0x2430 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2434 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x207C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x2080 | 32 36 | char[2] | 26 | string literal - +0x2082 | 00 | char | 0x00 (0) | string terminator + +0x2434 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2438 | 32 36 | char[2] | 26 | string literal + +0x243A | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x2084 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x2088 | 69 64 | char[2] | id | string literal - +0x208A | 00 | char | 0x00 (0) | string terminator + +0x243C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2440 | 69 64 | char[2] | id | string literal + +0x2442 | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x208C | F0 E6 FF FF | SOffset32 | 0xFFFFE6F0 (-6416) Loc: +0x399C | offset to vtable - +0x2090 | 00 00 00 | uint8_t[3] | ... | padding - +0x2093 | 0B | uint8_t | 0x0B (11) | table field `base_type` (Byte) - +0x2094 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x2444 | F0 E6 FF FF | SOffset32 | 0xFFFFE6F0 (-6416) Loc: +0x3D54 | offset to vtable + +0x2448 | 00 00 00 | uint8_t[3] | ... | padding + +0x244B | 0B | uint8_t | 0x0B (11) | table field `base_type` (Byte) + +0x244C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x2098 | 06 00 00 00 | uint32_t | 0x00000006 (6) | length of string - +0x209C | 74 65 73 74 66 32 | char[6] | testf2 | string literal - +0x20A2 | 00 | char | 0x00 (0) | string terminator + +0x2450 | 06 00 00 00 | uint32_t | 0x00000006 (6) | length of string + +0x2454 | 74 65 73 74 66 32 | char[6] | testf2 | string literal + +0x245A | 00 | char | 0x00 (0) | string terminator padding: - +0x20A3 | 00 00 00 | uint8_t[3] | ... | padding + +0x245B | 00 00 00 | uint8_t[3] | ... | padding vtable (reflection.Field): - +0x20A6 | 1A 00 | uint16_t | 0x001A (26) | size of this vtable - +0x20A8 | 24 00 | uint16_t | 0x0024 (36) | size of referring table - +0x20AA | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0) - +0x20AC | 0C 00 | VOffset16 | 0x000C (12) | offset to field `type` (id: 1) - +0x20AE | 04 00 | VOffset16 | 0x0004 (4) | offset to field `id` (id: 2) - +0x20B0 | 06 00 | VOffset16 | 0x0006 (6) | offset to field `offset` (id: 3) - +0x20B2 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) (Long) - +0x20B4 | 18 00 | VOffset16 | 0x0018 (24) | offset to field `default_real` (id: 5) - +0x20B6 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) - +0x20B8 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) (Bool) - +0x20BA | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 8) (Bool) - +0x20BC | 10 00 | VOffset16 | 0x0010 (16) | offset to field `attributes` (id: 9) - +0x20BE | 14 00 | VOffset16 | 0x0014 (20) | offset to field `documentation` (id: 10) + +0x245E | 1A 00 | uint16_t | 0x001A (26) | size of this vtable + +0x2460 | 24 00 | uint16_t | 0x0024 (36) | size of referring table + +0x2462 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0) + +0x2464 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `type` (id: 1) + +0x2466 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `id` (id: 2) + +0x2468 | 06 00 | VOffset16 | 0x0006 (6) | offset to field `offset` (id: 3) + +0x246A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) (Long) + +0x246C | 18 00 | VOffset16 | 0x0018 (24) | offset to field `default_real` (id: 5) + +0x246E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) + +0x2470 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) (Bool) + +0x2472 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 8) (Bool) + +0x2474 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `attributes` (id: 9) + +0x2476 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `documentation` (id: 10) table (reflection.Field): - +0x20C0 | 1A 00 00 00 | SOffset32 | 0x0000001A (26) Loc: +0x20A6 | offset to vtable - +0x20C4 | 19 00 | uint16_t | 0x0019 (25) | table field `id` (UShort) - +0x20C6 | 36 00 | uint16_t | 0x0036 (54) | table field `offset` (UShort) - +0x20C8 | 50 00 00 00 | UOffset32 | 0x00000050 (80) Loc: +0x2118 | offset to field `name` (string) - +0x20CC | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: +0x210C | offset to field `type` (table) - +0x20D0 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x20E8 | offset to field `attributes` (vector) - +0x20D4 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x20E4 | offset to field `documentation` (vector) - +0x20D8 | 6E 86 1B F0 F9 21 09 40 | double | 0x400921F9F01B866E (3.14159) | table field `default_real` (Double) - +0x20E0 | 00 00 00 00 | uint8_t[4] | .... | padding + +0x2478 | 1A 00 00 00 | SOffset32 | 0x0000001A (26) Loc: +0x245E | offset to vtable + +0x247C | 19 00 | uint16_t | 0x0019 (25) | table field `id` (UShort) + +0x247E | 36 00 | uint16_t | 0x0036 (54) | table field `offset` (UShort) + +0x2480 | 50 00 00 00 | UOffset32 | 0x00000050 (80) Loc: +0x24D0 | offset to field `name` (string) + +0x2484 | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: +0x24C4 | offset to field `type` (table) + +0x2488 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x24A0 | offset to field `attributes` (vector) + +0x248C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x249C | offset to field `documentation` (vector) + +0x2490 | 6E 86 1B F0 F9 21 09 40 | double | 0x400921F9F01B866E (3.14159) | table field `default_real` (Double) + +0x2498 | 00 00 00 00 | uint8_t[4] | .... | padding vector (reflection.Field.documentation): - +0x20E4 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x249C | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) vector (reflection.Field.attributes): - +0x20E8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x20EC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x20F0 | offset to table[0] + +0x24A0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x24A4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x24A8 | offset to table[0] table (reflection.KeyValue): - +0x20F0 | 8C EB FF FF | SOffset32 | 0xFFFFEB8C (-5236) Loc: +0x3564 | offset to vtable - +0x20F4 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2104 | offset to field `key` (string) - +0x20F8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x20FC | offset to field `value` (string) + +0x24A8 | 8C EB FF FF | SOffset32 | 0xFFFFEB8C (-5236) Loc: +0x391C | offset to vtable + +0x24AC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x24BC | offset to field `key` (string) + +0x24B0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x24B4 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x20FC | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x2100 | 32 35 | char[2] | 25 | string literal - +0x2102 | 00 | char | 0x00 (0) | string terminator + +0x24B4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x24B8 | 32 35 | char[2] | 25 | string literal + +0x24BA | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x2104 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x2108 | 69 64 | char[2] | id | string literal - +0x210A | 00 | char | 0x00 (0) | string terminator + +0x24BC | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x24C0 | 69 64 | char[2] | id | string literal + +0x24C2 | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x210C | 70 E7 FF FF | SOffset32 | 0xFFFFE770 (-6288) Loc: +0x399C | offset to vtable - +0x2110 | 00 00 00 | uint8_t[3] | ... | padding - +0x2113 | 0B | uint8_t | 0x0B (11) | table field `base_type` (Byte) - +0x2114 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x24C4 | 70 E7 FF FF | SOffset32 | 0xFFFFE770 (-6288) Loc: +0x3D54 | offset to vtable + +0x24C8 | 00 00 00 | uint8_t[3] | ... | padding + +0x24CB | 0B | uint8_t | 0x0B (11) | table field `base_type` (Byte) + +0x24CC | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x2118 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string - +0x211C | 74 65 73 74 66 | char[5] | testf | string literal - +0x2121 | 00 | char | 0x00 (0) | string terminator + +0x24D0 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string + +0x24D4 | 74 65 73 74 66 | char[5] | testf | string literal + +0x24D9 | 00 | char | 0x00 (0) | string terminator padding: - +0x2122 | 00 00 | uint8_t[2] | .. | padding + +0x24DA | 00 00 | uint8_t[2] | .. | padding table (reflection.Field): - +0x2124 | 00 F6 FF FF | SOffset32 | 0xFFFFF600 (-2560) Loc: +0x2B24 | offset to vtable - +0x2128 | 00 00 00 | uint8_t[3] | ... | padding - +0x212B | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x212C | 18 00 | uint16_t | 0x0018 (24) | table field `id` (UShort) - +0x212E | 34 00 | uint16_t | 0x0034 (52) | table field `offset` (UShort) - +0x2130 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x2174 | offset to field `name` (string) - +0x2134 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x2168 | offset to field `type` (table) - +0x2138 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x2144 | offset to field `attributes` (vector) - +0x213C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2140 | offset to field `documentation` (vector) + +0x24DC | 00 F6 FF FF | SOffset32 | 0xFFFFF600 (-2560) Loc: +0x2EDC | offset to vtable + +0x24E0 | 00 00 00 | uint8_t[3] | ... | padding + +0x24E3 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x24E4 | 18 00 | uint16_t | 0x0018 (24) | table field `id` (UShort) + +0x24E6 | 34 00 | uint16_t | 0x0034 (52) | table field `offset` (UShort) + +0x24E8 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x252C | offset to field `name` (string) + +0x24EC | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x2520 | offset to field `type` (table) + +0x24F0 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x24FC | offset to field `attributes` (vector) + +0x24F4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x24F8 | offset to field `documentation` (vector) vector (reflection.Field.documentation): - +0x2140 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x24F8 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) vector (reflection.Field.attributes): - +0x2144 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x2148 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x214C | offset to table[0] + +0x24FC | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x2500 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2504 | offset to table[0] table (reflection.KeyValue): - +0x214C | E8 EB FF FF | SOffset32 | 0xFFFFEBE8 (-5144) Loc: +0x3564 | offset to vtable - +0x2150 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2160 | offset to field `key` (string) - +0x2154 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2158 | offset to field `value` (string) + +0x2504 | E8 EB FF FF | SOffset32 | 0xFFFFEBE8 (-5144) Loc: +0x391C | offset to vtable + +0x2508 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2518 | offset to field `key` (string) + +0x250C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2510 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x2158 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x215C | 32 34 | char[2] | 24 | string literal - +0x215E | 00 | char | 0x00 (0) | string terminator + +0x2510 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2514 | 32 34 | char[2] | 24 | string literal + +0x2516 | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x2160 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x2164 | 69 64 | char[2] | id | string literal - +0x2166 | 00 | char | 0x00 (0) | string terminator + +0x2518 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x251C | 69 64 | char[2] | id | string literal + +0x251E | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x2168 | E4 F5 FF FF | SOffset32 | 0xFFFFF5E4 (-2588) Loc: +0x2B84 | offset to vtable - +0x216C | 00 00 | uint8_t[2] | .. | padding - +0x216E | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) - +0x216F | 02 | uint8_t | 0x02 (2) | table field `element` (Byte) - +0x2170 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x2520 | E4 F5 FF FF | SOffset32 | 0xFFFFF5E4 (-2588) Loc: +0x2F3C | offset to vtable + +0x2524 | 00 00 | uint8_t[2] | .. | padding + +0x2526 | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) + +0x2527 | 02 | uint8_t | 0x02 (2) | table field `element` (Byte) + +0x2528 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x2174 | 10 00 00 00 | uint32_t | 0x00000010 (16) | length of string - +0x2178 | 74 65 73 74 61 72 72 61 | char[16] | testarra | string literal - +0x2180 | 79 6F 66 62 6F 6F 6C 73 | | yofbools - +0x2188 | 00 | char | 0x00 (0) | string terminator + +0x252C | 10 00 00 00 | uint32_t | 0x00000010 (16) | length of string + +0x2530 | 74 65 73 74 61 72 72 61 | char[16] | testarra | string literal + +0x2538 | 79 6F 66 62 6F 6F 6C 73 | | yofbools + +0x2540 | 00 | char | 0x00 (0) | string terminator padding: - +0x2189 | 00 00 00 | uint8_t[3] | ... | padding + +0x2541 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Field): - +0x218C | 52 F7 FF FF | SOffset32 | 0xFFFFF752 (-2222) Loc: +0x2A3A | offset to vtable - +0x2190 | 17 00 | uint16_t | 0x0017 (23) | table field `id` (UShort) - +0x2192 | 32 00 | uint16_t | 0x0032 (50) | table field `offset` (UShort) - +0x2194 | 74 00 00 00 | UOffset32 | 0x00000074 (116) Loc: +0x2208 | offset to field `name` (string) - +0x2198 | 60 00 00 00 | UOffset32 | 0x00000060 (96) Loc: +0x21F8 | offset to field `type` (table) - +0x219C | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x21A8 | offset to field `attributes` (vector) - +0x21A0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x21A4 | offset to field `documentation` (vector) + +0x2544 | 52 F7 FF FF | SOffset32 | 0xFFFFF752 (-2222) Loc: +0x2DF2 | offset to vtable + +0x2548 | 17 00 | uint16_t | 0x0017 (23) | table field `id` (UShort) + +0x254A | 32 00 | uint16_t | 0x0032 (50) | table field `offset` (UShort) + +0x254C | 74 00 00 00 | UOffset32 | 0x00000074 (116) Loc: +0x25C0 | offset to field `name` (string) + +0x2550 | 60 00 00 00 | UOffset32 | 0x00000060 (96) Loc: +0x25B0 | offset to field `type` (table) + +0x2554 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x2560 | offset to field `attributes` (vector) + +0x2558 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x255C | offset to field `documentation` (vector) vector (reflection.Field.documentation): - +0x21A4 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x255C | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) vector (reflection.Field.attributes): - +0x21A8 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) - +0x21AC | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x21D0 | offset to table[0] - +0x21B0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x21B4 | offset to table[1] + +0x2560 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) + +0x2564 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x2588 | offset to table[0] + +0x2568 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x256C | offset to table[1] table (reflection.KeyValue): - +0x21B4 | 50 EC FF FF | SOffset32 | 0xFFFFEC50 (-5040) Loc: +0x3564 | offset to vtable - +0x21B8 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x21C8 | offset to field `key` (string) - +0x21BC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x21C0 | offset to field `value` (string) + +0x256C | 50 EC FF FF | SOffset32 | 0xFFFFEC50 (-5040) Loc: +0x391C | offset to vtable + +0x2570 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2580 | offset to field `key` (string) + +0x2574 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2578 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x21C0 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x21C4 | 32 33 | char[2] | 23 | string literal - +0x21C6 | 00 | char | 0x00 (0) | string terminator + +0x2578 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x257C | 32 33 | char[2] | 23 | string literal + +0x257E | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x21C8 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x21CC | 69 64 | char[2] | id | string literal - +0x21CE | 00 | char | 0x00 (0) | string terminator + +0x2580 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2584 | 69 64 | char[2] | id | string literal + +0x2586 | 00 | char | 0x00 (0) | string terminator table (reflection.KeyValue): - +0x21D0 | 6C EC FF FF | SOffset32 | 0xFFFFEC6C (-5012) Loc: +0x3564 | offset to vtable - +0x21D4 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x21EC | offset to field `key` (string) - +0x21D8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x21DC | offset to field `value` (string) + +0x2588 | 6C EC FF FF | SOffset32 | 0xFFFFEC6C (-5012) Loc: +0x391C | offset to vtable + +0x258C | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x25A4 | offset to field `key` (string) + +0x2590 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2594 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x21DC | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string - +0x21E0 | 66 6E 76 31 61 5F 36 34 | char[8] | fnv1a_64 | string literal - +0x21E8 | 00 | char | 0x00 (0) | string terminator + +0x2594 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string + +0x2598 | 66 6E 76 31 61 5F 36 34 | char[8] | fnv1a_64 | string literal + +0x25A0 | 00 | char | 0x00 (0) | string terminator padding: - +0x21E9 | 00 00 00 | uint8_t[3] | ... | padding + +0x25A1 | 00 00 00 | uint8_t[3] | ... | padding string (reflection.KeyValue.key): - +0x21EC | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string - +0x21F0 | 68 61 73 68 | char[4] | hash | string literal - +0x21F4 | 00 | char | 0x00 (0) | string terminator + +0x25A4 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string + +0x25A8 | 68 61 73 68 | char[4] | hash | string literal + +0x25AC | 00 | char | 0x00 (0) | string terminator padding: - +0x21F5 | 00 00 00 | uint8_t[3] | ... | padding + +0x25AD | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Type): - +0x21F8 | 14 EB FF FF | SOffset32 | 0xFFFFEB14 (-5356) Loc: +0x36E4 | offset to vtable - +0x21FC | 00 00 00 | uint8_t[3] | ... | padding - +0x21FF | 0A | uint8_t | 0x0A (10) | table field `base_type` (Byte) - +0x2200 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt) - +0x2204 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x25B0 | 14 EB FF FF | SOffset32 | 0xFFFFEB14 (-5356) Loc: +0x3A9C | offset to vtable + +0x25B4 | 00 00 00 | uint8_t[3] | ... | padding + +0x25B7 | 0A | uint8_t | 0x0A (10) | table field `base_type` (Byte) + +0x25B8 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt) + +0x25BC | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x2208 | 11 00 00 00 | uint32_t | 0x00000011 (17) | length of string - +0x220C | 74 65 73 74 68 61 73 68 | char[17] | testhash | string literal - +0x2214 | 75 36 34 5F 66 6E 76 31 | | u64_fnv1 - +0x221C | 61 | | a - +0x221D | 00 | char | 0x00 (0) | string terminator + +0x25C0 | 11 00 00 00 | uint32_t | 0x00000011 (17) | length of string + +0x25C4 | 74 65 73 74 68 61 73 68 | char[17] | testhash | string literal + +0x25CC | 75 36 34 5F 66 6E 76 31 | | u64_fnv1 + +0x25D4 | 61 | | a + +0x25D5 | 00 | char | 0x00 (0) | string terminator padding: - +0x221E | 00 00 | uint8_t[2] | .. | padding + +0x25D6 | 00 00 | uint8_t[2] | .. | padding table (reflection.Field): - +0x2220 | E6 F7 FF FF | SOffset32 | 0xFFFFF7E6 (-2074) Loc: +0x2A3A | offset to vtable - +0x2224 | 16 00 | uint16_t | 0x0016 (22) | table field `id` (UShort) - +0x2226 | 30 00 | uint16_t | 0x0030 (48) | table field `offset` (UShort) - +0x2228 | 74 00 00 00 | UOffset32 | 0x00000074 (116) Loc: +0x229C | offset to field `name` (string) - +0x222C | 60 00 00 00 | UOffset32 | 0x00000060 (96) Loc: +0x228C | offset to field `type` (table) - +0x2230 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x223C | offset to field `attributes` (vector) - +0x2234 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2238 | offset to field `documentation` (vector) + +0x25D8 | E6 F7 FF FF | SOffset32 | 0xFFFFF7E6 (-2074) Loc: +0x2DF2 | offset to vtable + +0x25DC | 16 00 | uint16_t | 0x0016 (22) | table field `id` (UShort) + +0x25DE | 30 00 | uint16_t | 0x0030 (48) | table field `offset` (UShort) + +0x25E0 | 74 00 00 00 | UOffset32 | 0x00000074 (116) Loc: +0x2654 | offset to field `name` (string) + +0x25E4 | 60 00 00 00 | UOffset32 | 0x00000060 (96) Loc: +0x2644 | offset to field `type` (table) + +0x25E8 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x25F4 | offset to field `attributes` (vector) + +0x25EC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x25F0 | offset to field `documentation` (vector) vector (reflection.Field.documentation): - +0x2238 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x25F0 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) vector (reflection.Field.attributes): - +0x223C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) - +0x2240 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x2264 | offset to table[0] - +0x2244 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2248 | offset to table[1] + +0x25F4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) + +0x25F8 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x261C | offset to table[0] + +0x25FC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2600 | offset to table[1] table (reflection.KeyValue): - +0x2248 | E4 EC FF FF | SOffset32 | 0xFFFFECE4 (-4892) Loc: +0x3564 | offset to vtable - +0x224C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x225C | offset to field `key` (string) - +0x2250 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2254 | offset to field `value` (string) + +0x2600 | E4 EC FF FF | SOffset32 | 0xFFFFECE4 (-4892) Loc: +0x391C | offset to vtable + +0x2604 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2614 | offset to field `key` (string) + +0x2608 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x260C | offset to field `value` (string) string (reflection.KeyValue.value): - +0x2254 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x2258 | 32 32 | char[2] | 22 | string literal - +0x225A | 00 | char | 0x00 (0) | string terminator + +0x260C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2610 | 32 32 | char[2] | 22 | string literal + +0x2612 | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x225C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x2260 | 69 64 | char[2] | id | string literal - +0x2262 | 00 | char | 0x00 (0) | string terminator + +0x2614 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2618 | 69 64 | char[2] | id | string literal + +0x261A | 00 | char | 0x00 (0) | string terminator table (reflection.KeyValue): - +0x2264 | 00 ED FF FF | SOffset32 | 0xFFFFED00 (-4864) Loc: +0x3564 | offset to vtable - +0x2268 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x2280 | offset to field `key` (string) - +0x226C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2270 | offset to field `value` (string) + +0x261C | 00 ED FF FF | SOffset32 | 0xFFFFED00 (-4864) Loc: +0x391C | offset to vtable + +0x2620 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x2638 | offset to field `key` (string) + +0x2624 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2628 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x2270 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string - +0x2274 | 66 6E 76 31 61 5F 36 34 | char[8] | fnv1a_64 | string literal - +0x227C | 00 | char | 0x00 (0) | string terminator + +0x2628 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string + +0x262C | 66 6E 76 31 61 5F 36 34 | char[8] | fnv1a_64 | string literal + +0x2634 | 00 | char | 0x00 (0) | string terminator padding: - +0x227D | 00 00 00 | uint8_t[3] | ... | padding + +0x2635 | 00 00 00 | uint8_t[3] | ... | padding string (reflection.KeyValue.key): - +0x2280 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string - +0x2284 | 68 61 73 68 | char[4] | hash | string literal - +0x2288 | 00 | char | 0x00 (0) | string terminator + +0x2638 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string + +0x263C | 68 61 73 68 | char[4] | hash | string literal + +0x2640 | 00 | char | 0x00 (0) | string terminator padding: - +0x2289 | 00 00 00 | uint8_t[3] | ... | padding + +0x2641 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Type): - +0x228C | A8 EB FF FF | SOffset32 | 0xFFFFEBA8 (-5208) Loc: +0x36E4 | offset to vtable - +0x2290 | 00 00 00 | uint8_t[3] | ... | padding - +0x2293 | 09 | uint8_t | 0x09 (9) | table field `base_type` (Byte) - +0x2294 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt) - +0x2298 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x2644 | A8 EB FF FF | SOffset32 | 0xFFFFEBA8 (-5208) Loc: +0x3A9C | offset to vtable + +0x2648 | 00 00 00 | uint8_t[3] | ... | padding + +0x264B | 09 | uint8_t | 0x09 (9) | table field `base_type` (Byte) + +0x264C | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt) + +0x2650 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x229C | 11 00 00 00 | uint32_t | 0x00000011 (17) | length of string - +0x22A0 | 74 65 73 74 68 61 73 68 | char[17] | testhash | string literal - +0x22A8 | 73 36 34 5F 66 6E 76 31 | | s64_fnv1 - +0x22B0 | 61 | | a - +0x22B1 | 00 | char | 0x00 (0) | string terminator + +0x2654 | 11 00 00 00 | uint32_t | 0x00000011 (17) | length of string + +0x2658 | 74 65 73 74 68 61 73 68 | char[17] | testhash | string literal + +0x2660 | 73 36 34 5F 66 6E 76 31 | | s64_fnv1 + +0x2668 | 61 | | a + +0x2669 | 00 | char | 0x00 (0) | string terminator padding: - +0x22B2 | 00 00 | uint8_t[2] | .. | padding + +0x266A | 00 00 | uint8_t[2] | .. | padding table (reflection.Field): - +0x22B4 | 7A F8 FF FF | SOffset32 | 0xFFFFF87A (-1926) Loc: +0x2A3A | offset to vtable - +0x22B8 | 15 00 | uint16_t | 0x0015 (21) | table field `id` (UShort) - +0x22BA | 2E 00 | uint16_t | 0x002E (46) | table field `offset` (UShort) - +0x22BC | CC 00 00 00 | UOffset32 | 0x000000CC (204) Loc: +0x2388 | offset to field `name` (string) - +0x22C0 | BC 00 00 00 | UOffset32 | 0x000000BC (188) Loc: +0x237C | offset to field `type` (table) - +0x22C4 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x22D0 | offset to field `attributes` (vector) - +0x22C8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x22CC | offset to field `documentation` (vector) + +0x266C | 7A F8 FF FF | SOffset32 | 0xFFFFF87A (-1926) Loc: +0x2DF2 | offset to vtable + +0x2670 | 15 00 | uint16_t | 0x0015 (21) | table field `id` (UShort) + +0x2672 | 2E 00 | uint16_t | 0x002E (46) | table field `offset` (UShort) + +0x2674 | CC 00 00 00 | UOffset32 | 0x000000CC (204) Loc: +0x2740 | offset to field `name` (string) + +0x2678 | BC 00 00 00 | UOffset32 | 0x000000BC (188) Loc: +0x2734 | offset to field `type` (table) + +0x267C | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x2688 | offset to field `attributes` (vector) + +0x2680 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2684 | offset to field `documentation` (vector) vector (reflection.Field.documentation): - +0x22CC | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x2684 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) vector (reflection.Field.attributes): - +0x22D0 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of vector (# items) - +0x22D4 | 7C 00 00 00 | UOffset32 | 0x0000007C (124) Loc: +0x2350 | offset to table[0] - +0x22D8 | 50 00 00 00 | UOffset32 | 0x00000050 (80) Loc: +0x2328 | offset to table[1] - +0x22DC | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x2300 | offset to table[2] - +0x22E0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x22E4 | offset to table[3] + +0x2688 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of vector (# items) + +0x268C | 7C 00 00 00 | UOffset32 | 0x0000007C (124) Loc: +0x2708 | offset to table[0] + +0x2690 | 50 00 00 00 | UOffset32 | 0x00000050 (80) Loc: +0x26E0 | offset to table[1] + +0x2694 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x26B8 | offset to table[2] + +0x2698 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x269C | offset to table[3] table (reflection.KeyValue): - +0x22E4 | 80 ED FF FF | SOffset32 | 0xFFFFED80 (-4736) Loc: +0x3564 | offset to vtable - +0x22E8 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x22F8 | offset to field `key` (string) - +0x22EC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x22F0 | offset to field `value` (string) + +0x269C | 80 ED FF FF | SOffset32 | 0xFFFFED80 (-4736) Loc: +0x391C | offset to vtable + +0x26A0 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x26B0 | offset to field `key` (string) + +0x26A4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x26A8 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x22F0 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x22F4 | 32 31 | char[2] | 21 | string literal - +0x22F6 | 00 | char | 0x00 (0) | string terminator + +0x26A8 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x26AC | 32 31 | char[2] | 21 | string literal + +0x26AE | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x22F8 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x22FC | 69 64 | char[2] | id | string literal - +0x22FE | 00 | char | 0x00 (0) | string terminator + +0x26B0 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x26B4 | 69 64 | char[2] | id | string literal + +0x26B6 | 00 | char | 0x00 (0) | string terminator table (reflection.KeyValue): - +0x2300 | 9C ED FF FF | SOffset32 | 0xFFFFED9C (-4708) Loc: +0x3564 | offset to vtable - +0x2304 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x231C | offset to field `key` (string) - +0x2308 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x230C | offset to field `value` (string) + +0x26B8 | 9C ED FF FF | SOffset32 | 0xFFFFED9C (-4708) Loc: +0x391C | offset to vtable + +0x26BC | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x26D4 | offset to field `key` (string) + +0x26C0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x26C4 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x230C | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string - +0x2310 | 66 6E 76 31 61 5F 33 32 | char[8] | fnv1a_32 | string literal - +0x2318 | 00 | char | 0x00 (0) | string terminator + +0x26C4 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string + +0x26C8 | 66 6E 76 31 61 5F 33 32 | char[8] | fnv1a_32 | string literal + +0x26D0 | 00 | char | 0x00 (0) | string terminator padding: - +0x2319 | 00 00 00 | uint8_t[3] | ... | padding + +0x26D1 | 00 00 00 | uint8_t[3] | ... | padding string (reflection.KeyValue.key): - +0x231C | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string - +0x2320 | 68 61 73 68 | char[4] | hash | string literal - +0x2324 | 00 | char | 0x00 (0) | string terminator + +0x26D4 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string + +0x26D8 | 68 61 73 68 | char[4] | hash | string literal + +0x26DC | 00 | char | 0x00 (0) | string terminator padding: - +0x2325 | 00 00 00 | uint8_t[3] | ... | padding + +0x26DD | 00 00 00 | uint8_t[3] | ... | padding table (reflection.KeyValue): - +0x2328 | C4 ED FF FF | SOffset32 | 0xFFFFEDC4 (-4668) Loc: +0x3564 | offset to vtable - +0x232C | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x2340 | offset to field `key` (string) - +0x2330 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2334 | offset to field `value` (string) + +0x26E0 | C4 ED FF FF | SOffset32 | 0xFFFFEDC4 (-4668) Loc: +0x391C | offset to vtable + +0x26E4 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x26F8 | offset to field `key` (string) + +0x26E8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x26EC | offset to field `value` (string) string (reflection.KeyValue.value): - +0x2334 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string - +0x2338 | 53 74 61 74 | char[4] | Stat | string literal - +0x233C | 00 | char | 0x00 (0) | string terminator + +0x26EC | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string + +0x26F0 | 53 74 61 74 | char[4] | Stat | string literal + +0x26F4 | 00 | char | 0x00 (0) | string terminator padding: - +0x233D | 00 00 00 | uint8_t[3] | ... | padding + +0x26F5 | 00 00 00 | uint8_t[3] | ... | padding string (reflection.KeyValue.key): - +0x2340 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string - +0x2344 | 63 70 70 5F 74 79 70 65 | char[8] | cpp_type | string literal - +0x234C | 00 | char | 0x00 (0) | string terminator + +0x26F8 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string + +0x26FC | 63 70 70 5F 74 79 70 65 | char[8] | cpp_type | string literal + +0x2704 | 00 | char | 0x00 (0) | string terminator padding: - +0x234D | 00 00 00 | uint8_t[3] | ... | padding + +0x2705 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.KeyValue): - +0x2350 | EC ED FF FF | SOffset32 | 0xFFFFEDEC (-4628) Loc: +0x3564 | offset to vtable - +0x2354 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x2368 | offset to field `key` (string) - +0x2358 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x235C | offset to field `value` (string) + +0x2708 | EC ED FF FF | SOffset32 | 0xFFFFEDEC (-4628) Loc: +0x391C | offset to vtable + +0x270C | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x2720 | offset to field `key` (string) + +0x2710 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2714 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x235C | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string - +0x2360 | 6E 61 6B 65 64 | char[5] | naked | string literal - +0x2365 | 00 | char | 0x00 (0) | string terminator + +0x2714 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string + +0x2718 | 6E 61 6B 65 64 | char[5] | naked | string literal + +0x271D | 00 | char | 0x00 (0) | string terminator padding: - +0x2366 | 00 00 | uint8_t[2] | .. | padding + +0x271E | 00 00 | uint8_t[2] | .. | padding string (reflection.KeyValue.key): - +0x2368 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | length of string - +0x236C | 63 70 70 5F 70 74 72 5F | char[12] | cpp_ptr_ | string literal - +0x2374 | 74 79 70 65 | | type - +0x2378 | 00 | char | 0x00 (0) | string terminator + +0x2720 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | length of string + +0x2724 | 63 70 70 5F 70 74 72 5F | char[12] | cpp_ptr_ | string literal + +0x272C | 74 79 70 65 | | type + +0x2730 | 00 | char | 0x00 (0) | string terminator padding: - +0x2379 | 00 00 00 | uint8_t[3] | ... | padding + +0x2731 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Type): - +0x237C | E0 E9 FF FF | SOffset32 | 0xFFFFE9E0 (-5664) Loc: +0x399C | offset to vtable - +0x2380 | 00 00 00 | uint8_t[3] | ... | padding - +0x2383 | 08 | uint8_t | 0x08 (8) | table field `base_type` (Byte) - +0x2384 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x2734 | E0 E9 FF FF | SOffset32 | 0xFFFFE9E0 (-5664) Loc: +0x3D54 | offset to vtable + +0x2738 | 00 00 00 | uint8_t[3] | ... | padding + +0x273B | 08 | uint8_t | 0x08 (8) | table field `base_type` (Byte) + +0x273C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x2388 | 11 00 00 00 | uint32_t | 0x00000011 (17) | length of string - +0x238C | 74 65 73 74 68 61 73 68 | char[17] | testhash | string literal - +0x2394 | 75 33 32 5F 66 6E 76 31 | | u32_fnv1 - +0x239C | 61 | | a - +0x239D | 00 | char | 0x00 (0) | string terminator + +0x2740 | 11 00 00 00 | uint32_t | 0x00000011 (17) | length of string + +0x2744 | 74 65 73 74 68 61 73 68 | char[17] | testhash | string literal + +0x274C | 75 33 32 5F 66 6E 76 31 | | u32_fnv1 + +0x2754 | 61 | | a + +0x2755 | 00 | char | 0x00 (0) | string terminator padding: - +0x239E | 00 00 | uint8_t[2] | .. | padding + +0x2756 | 00 00 | uint8_t[2] | .. | padding table (reflection.Field): - +0x23A0 | 66 F9 FF FF | SOffset32 | 0xFFFFF966 (-1690) Loc: +0x2A3A | offset to vtable - +0x23A4 | 14 00 | uint16_t | 0x0014 (20) | table field `id` (UShort) - +0x23A6 | 2C 00 | uint16_t | 0x002C (44) | table field `offset` (UShort) - +0x23A8 | 70 00 00 00 | UOffset32 | 0x00000070 (112) Loc: +0x2418 | offset to field `name` (string) - +0x23AC | 60 00 00 00 | UOffset32 | 0x00000060 (96) Loc: +0x240C | offset to field `type` (table) - +0x23B0 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x23BC | offset to field `attributes` (vector) - +0x23B4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x23B8 | offset to field `documentation` (vector) + +0x2758 | 66 F9 FF FF | SOffset32 | 0xFFFFF966 (-1690) Loc: +0x2DF2 | offset to vtable + +0x275C | 14 00 | uint16_t | 0x0014 (20) | table field `id` (UShort) + +0x275E | 2C 00 | uint16_t | 0x002C (44) | table field `offset` (UShort) + +0x2760 | 70 00 00 00 | UOffset32 | 0x00000070 (112) Loc: +0x27D0 | offset to field `name` (string) + +0x2764 | 60 00 00 00 | UOffset32 | 0x00000060 (96) Loc: +0x27C4 | offset to field `type` (table) + +0x2768 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x2774 | offset to field `attributes` (vector) + +0x276C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2770 | offset to field `documentation` (vector) vector (reflection.Field.documentation): - +0x23B8 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x2770 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) vector (reflection.Field.attributes): - +0x23BC | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) - +0x23C0 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x23E4 | offset to table[0] - +0x23C4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x23C8 | offset to table[1] + +0x2774 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) + +0x2778 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x279C | offset to table[0] + +0x277C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2780 | offset to table[1] table (reflection.KeyValue): - +0x23C8 | 64 EE FF FF | SOffset32 | 0xFFFFEE64 (-4508) Loc: +0x3564 | offset to vtable - +0x23CC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x23DC | offset to field `key` (string) - +0x23D0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x23D4 | offset to field `value` (string) + +0x2780 | 64 EE FF FF | SOffset32 | 0xFFFFEE64 (-4508) Loc: +0x391C | offset to vtable + +0x2784 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2794 | offset to field `key` (string) + +0x2788 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x278C | offset to field `value` (string) string (reflection.KeyValue.value): - +0x23D4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x23D8 | 32 30 | char[2] | 20 | string literal - +0x23DA | 00 | char | 0x00 (0) | string terminator + +0x278C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2790 | 32 30 | char[2] | 20 | string literal + +0x2792 | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x23DC | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x23E0 | 69 64 | char[2] | id | string literal - +0x23E2 | 00 | char | 0x00 (0) | string terminator + +0x2794 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2798 | 69 64 | char[2] | id | string literal + +0x279A | 00 | char | 0x00 (0) | string terminator table (reflection.KeyValue): - +0x23E4 | 80 EE FF FF | SOffset32 | 0xFFFFEE80 (-4480) Loc: +0x3564 | offset to vtable - +0x23E8 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x2400 | offset to field `key` (string) - +0x23EC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x23F0 | offset to field `value` (string) + +0x279C | 80 EE FF FF | SOffset32 | 0xFFFFEE80 (-4480) Loc: +0x391C | offset to vtable + +0x27A0 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x27B8 | offset to field `key` (string) + +0x27A4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x27A8 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x23F0 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string - +0x23F4 | 66 6E 76 31 61 5F 33 32 | char[8] | fnv1a_32 | string literal - +0x23FC | 00 | char | 0x00 (0) | string terminator + +0x27A8 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string + +0x27AC | 66 6E 76 31 61 5F 33 32 | char[8] | fnv1a_32 | string literal + +0x27B4 | 00 | char | 0x00 (0) | string terminator padding: - +0x23FD | 00 00 00 | uint8_t[3] | ... | padding + +0x27B5 | 00 00 00 | uint8_t[3] | ... | padding string (reflection.KeyValue.key): - +0x2400 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string - +0x2404 | 68 61 73 68 | char[4] | hash | string literal - +0x2408 | 00 | char | 0x00 (0) | string terminator + +0x27B8 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string + +0x27BC | 68 61 73 68 | char[4] | hash | string literal + +0x27C0 | 00 | char | 0x00 (0) | string terminator padding: - +0x2409 | 00 00 00 | uint8_t[3] | ... | padding + +0x27C1 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Type): - +0x240C | 70 EA FF FF | SOffset32 | 0xFFFFEA70 (-5520) Loc: +0x399C | offset to vtable - +0x2410 | 00 00 00 | uint8_t[3] | ... | padding - +0x2413 | 07 | uint8_t | 0x07 (7) | table field `base_type` (Byte) - +0x2414 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x27C4 | 70 EA FF FF | SOffset32 | 0xFFFFEA70 (-5520) Loc: +0x3D54 | offset to vtable + +0x27C8 | 00 00 00 | uint8_t[3] | ... | padding + +0x27CB | 07 | uint8_t | 0x07 (7) | table field `base_type` (Byte) + +0x27CC | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x2418 | 11 00 00 00 | uint32_t | 0x00000011 (17) | length of string - +0x241C | 74 65 73 74 68 61 73 68 | char[17] | testhash | string literal - +0x2424 | 73 33 32 5F 66 6E 76 31 | | s32_fnv1 - +0x242C | 61 | | a - +0x242D | 00 | char | 0x00 (0) | string terminator + +0x27D0 | 11 00 00 00 | uint32_t | 0x00000011 (17) | length of string + +0x27D4 | 74 65 73 74 68 61 73 68 | char[17] | testhash | string literal + +0x27DC | 73 33 32 5F 66 6E 76 31 | | s32_fnv1 + +0x27E4 | 61 | | a + +0x27E5 | 00 | char | 0x00 (0) | string terminator padding: - +0x242E | 00 00 | uint8_t[2] | .. | padding + +0x27E6 | 00 00 | uint8_t[2] | .. | padding table (reflection.Field): - +0x2430 | F6 F9 FF FF | SOffset32 | 0xFFFFF9F6 (-1546) Loc: +0x2A3A | offset to vtable - +0x2434 | 13 00 | uint16_t | 0x0013 (19) | table field `id` (UShort) - +0x2436 | 2A 00 | uint16_t | 0x002A (42) | table field `offset` (UShort) - +0x2438 | 70 00 00 00 | UOffset32 | 0x00000070 (112) Loc: +0x24A8 | offset to field `name` (string) - +0x243C | 5C 00 00 00 | UOffset32 | 0x0000005C (92) Loc: +0x2498 | offset to field `type` (table) - +0x2440 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x244C | offset to field `attributes` (vector) - +0x2444 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2448 | offset to field `documentation` (vector) + +0x27E8 | F6 F9 FF FF | SOffset32 | 0xFFFFF9F6 (-1546) Loc: +0x2DF2 | offset to vtable + +0x27EC | 13 00 | uint16_t | 0x0013 (19) | table field `id` (UShort) + +0x27EE | 2A 00 | uint16_t | 0x002A (42) | table field `offset` (UShort) + +0x27F0 | 70 00 00 00 | UOffset32 | 0x00000070 (112) Loc: +0x2860 | offset to field `name` (string) + +0x27F4 | 5C 00 00 00 | UOffset32 | 0x0000005C (92) Loc: +0x2850 | offset to field `type` (table) + +0x27F8 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x2804 | offset to field `attributes` (vector) + +0x27FC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2800 | offset to field `documentation` (vector) vector (reflection.Field.documentation): - +0x2448 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x2800 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) vector (reflection.Field.attributes): - +0x244C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) - +0x2450 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x2474 | offset to table[0] - +0x2454 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2458 | offset to table[1] + +0x2804 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) + +0x2808 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x282C | offset to table[0] + +0x280C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2810 | offset to table[1] table (reflection.KeyValue): - +0x2458 | F4 EE FF FF | SOffset32 | 0xFFFFEEF4 (-4364) Loc: +0x3564 | offset to vtable - +0x245C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x246C | offset to field `key` (string) - +0x2460 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2464 | offset to field `value` (string) + +0x2810 | F4 EE FF FF | SOffset32 | 0xFFFFEEF4 (-4364) Loc: +0x391C | offset to vtable + +0x2814 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2824 | offset to field `key` (string) + +0x2818 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x281C | offset to field `value` (string) string (reflection.KeyValue.value): - +0x2464 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x2468 | 31 39 | char[2] | 19 | string literal - +0x246A | 00 | char | 0x00 (0) | string terminator + +0x281C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2820 | 31 39 | char[2] | 19 | string literal + +0x2822 | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x246C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x2470 | 69 64 | char[2] | id | string literal - +0x2472 | 00 | char | 0x00 (0) | string terminator + +0x2824 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2828 | 69 64 | char[2] | id | string literal + +0x282A | 00 | char | 0x00 (0) | string terminator table (reflection.KeyValue): - +0x2474 | 10 EF FF FF | SOffset32 | 0xFFFFEF10 (-4336) Loc: +0x3564 | offset to vtable - +0x2478 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x248C | offset to field `key` (string) - +0x247C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2480 | offset to field `value` (string) + +0x282C | 10 EF FF FF | SOffset32 | 0xFFFFEF10 (-4336) Loc: +0x391C | offset to vtable + +0x2830 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x2844 | offset to field `key` (string) + +0x2834 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2838 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x2480 | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string - +0x2484 | 66 6E 76 31 5F 36 34 | char[7] | fnv1_64 | string literal - +0x248B | 00 | char | 0x00 (0) | string terminator + +0x2838 | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string + +0x283C | 66 6E 76 31 5F 36 34 | char[7] | fnv1_64 | string literal + +0x2843 | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x248C | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string - +0x2490 | 68 61 73 68 | char[4] | hash | string literal - +0x2494 | 00 | char | 0x00 (0) | string terminator + +0x2844 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string + +0x2848 | 68 61 73 68 | char[4] | hash | string literal + +0x284C | 00 | char | 0x00 (0) | string terminator padding: - +0x2495 | 00 00 00 | uint8_t[3] | ... | padding + +0x284D | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Type): - +0x2498 | B4 ED FF FF | SOffset32 | 0xFFFFEDB4 (-4684) Loc: +0x36E4 | offset to vtable - +0x249C | 00 00 00 | uint8_t[3] | ... | padding - +0x249F | 0A | uint8_t | 0x0A (10) | table field `base_type` (Byte) - +0x24A0 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt) - +0x24A4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x2850 | B4 ED FF FF | SOffset32 | 0xFFFFEDB4 (-4684) Loc: +0x3A9C | offset to vtable + +0x2854 | 00 00 00 | uint8_t[3] | ... | padding + +0x2857 | 0A | uint8_t | 0x0A (10) | table field `base_type` (Byte) + +0x2858 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt) + +0x285C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x24A8 | 10 00 00 00 | uint32_t | 0x00000010 (16) | length of string - +0x24AC | 74 65 73 74 68 61 73 68 | char[16] | testhash | string literal - +0x24B4 | 75 36 34 5F 66 6E 76 31 | | u64_fnv1 - +0x24BC | 00 | char | 0x00 (0) | string terminator + +0x2860 | 10 00 00 00 | uint32_t | 0x00000010 (16) | length of string + +0x2864 | 74 65 73 74 68 61 73 68 | char[16] | testhash | string literal + +0x286C | 75 36 34 5F 66 6E 76 31 | | u64_fnv1 + +0x2874 | 00 | char | 0x00 (0) | string terminator padding: - +0x24BD | 00 00 00 | uint8_t[3] | ... | padding + +0x2875 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Field): - +0x24C0 | 86 FA FF FF | SOffset32 | 0xFFFFFA86 (-1402) Loc: +0x2A3A | offset to vtable - +0x24C4 | 12 00 | uint16_t | 0x0012 (18) | table field `id` (UShort) - +0x24C6 | 28 00 | uint16_t | 0x0028 (40) | table field `offset` (UShort) - +0x24C8 | 70 00 00 00 | UOffset32 | 0x00000070 (112) Loc: +0x2538 | offset to field `name` (string) - +0x24CC | 5C 00 00 00 | UOffset32 | 0x0000005C (92) Loc: +0x2528 | offset to field `type` (table) - +0x24D0 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x24DC | offset to field `attributes` (vector) - +0x24D4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x24D8 | offset to field `documentation` (vector) + +0x2878 | 86 FA FF FF | SOffset32 | 0xFFFFFA86 (-1402) Loc: +0x2DF2 | offset to vtable + +0x287C | 12 00 | uint16_t | 0x0012 (18) | table field `id` (UShort) + +0x287E | 28 00 | uint16_t | 0x0028 (40) | table field `offset` (UShort) + +0x2880 | 70 00 00 00 | UOffset32 | 0x00000070 (112) Loc: +0x28F0 | offset to field `name` (string) + +0x2884 | 5C 00 00 00 | UOffset32 | 0x0000005C (92) Loc: +0x28E0 | offset to field `type` (table) + +0x2888 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x2894 | offset to field `attributes` (vector) + +0x288C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2890 | offset to field `documentation` (vector) vector (reflection.Field.documentation): - +0x24D8 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x2890 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) vector (reflection.Field.attributes): - +0x24DC | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) - +0x24E0 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x2504 | offset to table[0] - +0x24E4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x24E8 | offset to table[1] + +0x2894 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) + +0x2898 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x28BC | offset to table[0] + +0x289C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x28A0 | offset to table[1] table (reflection.KeyValue): - +0x24E8 | 84 EF FF FF | SOffset32 | 0xFFFFEF84 (-4220) Loc: +0x3564 | offset to vtable - +0x24EC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x24FC | offset to field `key` (string) - +0x24F0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x24F4 | offset to field `value` (string) + +0x28A0 | 84 EF FF FF | SOffset32 | 0xFFFFEF84 (-4220) Loc: +0x391C | offset to vtable + +0x28A4 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x28B4 | offset to field `key` (string) + +0x28A8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x28AC | offset to field `value` (string) string (reflection.KeyValue.value): - +0x24F4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x24F8 | 31 38 | char[2] | 18 | string literal - +0x24FA | 00 | char | 0x00 (0) | string terminator + +0x28AC | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x28B0 | 31 38 | char[2] | 18 | string literal + +0x28B2 | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x24FC | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x2500 | 69 64 | char[2] | id | string literal - +0x2502 | 00 | char | 0x00 (0) | string terminator + +0x28B4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x28B8 | 69 64 | char[2] | id | string literal + +0x28BA | 00 | char | 0x00 (0) | string terminator table (reflection.KeyValue): - +0x2504 | A0 EF FF FF | SOffset32 | 0xFFFFEFA0 (-4192) Loc: +0x3564 | offset to vtable - +0x2508 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x251C | offset to field `key` (string) - +0x250C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2510 | offset to field `value` (string) + +0x28BC | A0 EF FF FF | SOffset32 | 0xFFFFEFA0 (-4192) Loc: +0x391C | offset to vtable + +0x28C0 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x28D4 | offset to field `key` (string) + +0x28C4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x28C8 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x2510 | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string - +0x2514 | 66 6E 76 31 5F 36 34 | char[7] | fnv1_64 | string literal - +0x251B | 00 | char | 0x00 (0) | string terminator + +0x28C8 | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string + +0x28CC | 66 6E 76 31 5F 36 34 | char[7] | fnv1_64 | string literal + +0x28D3 | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x251C | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string - +0x2520 | 68 61 73 68 | char[4] | hash | string literal - +0x2524 | 00 | char | 0x00 (0) | string terminator + +0x28D4 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string + +0x28D8 | 68 61 73 68 | char[4] | hash | string literal + +0x28DC | 00 | char | 0x00 (0) | string terminator padding: - +0x2525 | 00 00 00 | uint8_t[3] | ... | padding + +0x28DD | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Type): - +0x2528 | 44 EE FF FF | SOffset32 | 0xFFFFEE44 (-4540) Loc: +0x36E4 | offset to vtable - +0x252C | 00 00 00 | uint8_t[3] | ... | padding - +0x252F | 09 | uint8_t | 0x09 (9) | table field `base_type` (Byte) - +0x2530 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt) - +0x2534 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x28E0 | 44 EE FF FF | SOffset32 | 0xFFFFEE44 (-4540) Loc: +0x3A9C | offset to vtable + +0x28E4 | 00 00 00 | uint8_t[3] | ... | padding + +0x28E7 | 09 | uint8_t | 0x09 (9) | table field `base_type` (Byte) + +0x28E8 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt) + +0x28EC | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x2538 | 10 00 00 00 | uint32_t | 0x00000010 (16) | length of string - +0x253C | 74 65 73 74 68 61 73 68 | char[16] | testhash | string literal - +0x2544 | 73 36 34 5F 66 6E 76 31 | | s64_fnv1 - +0x254C | 00 | char | 0x00 (0) | string terminator + +0x28F0 | 10 00 00 00 | uint32_t | 0x00000010 (16) | length of string + +0x28F4 | 74 65 73 74 68 61 73 68 | char[16] | testhash | string literal + +0x28FC | 73 36 34 5F 66 6E 76 31 | | s64_fnv1 + +0x2904 | 00 | char | 0x00 (0) | string terminator padding: - +0x254D | 00 00 00 | uint8_t[3] | ... | padding + +0x2905 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Field): - +0x2550 | 16 FB FF FF | SOffset32 | 0xFFFFFB16 (-1258) Loc: +0x2A3A | offset to vtable - +0x2554 | 11 00 | uint16_t | 0x0011 (17) | table field `id` (UShort) - +0x2556 | 26 00 | uint16_t | 0x0026 (38) | table field `offset` (UShort) - +0x2558 | 6C 00 00 00 | UOffset32 | 0x0000006C (108) Loc: +0x25C4 | offset to field `name` (string) - +0x255C | 5C 00 00 00 | UOffset32 | 0x0000005C (92) Loc: +0x25B8 | offset to field `type` (table) - +0x2560 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x256C | offset to field `attributes` (vector) - +0x2564 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2568 | offset to field `documentation` (vector) + +0x2908 | 16 FB FF FF | SOffset32 | 0xFFFFFB16 (-1258) Loc: +0x2DF2 | offset to vtable + +0x290C | 11 00 | uint16_t | 0x0011 (17) | table field `id` (UShort) + +0x290E | 26 00 | uint16_t | 0x0026 (38) | table field `offset` (UShort) + +0x2910 | 6C 00 00 00 | UOffset32 | 0x0000006C (108) Loc: +0x297C | offset to field `name` (string) + +0x2914 | 5C 00 00 00 | UOffset32 | 0x0000005C (92) Loc: +0x2970 | offset to field `type` (table) + +0x2918 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x2924 | offset to field `attributes` (vector) + +0x291C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2920 | offset to field `documentation` (vector) vector (reflection.Field.documentation): - +0x2568 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x2920 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) vector (reflection.Field.attributes): - +0x256C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) - +0x2570 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x2594 | offset to table[0] - +0x2574 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2578 | offset to table[1] + +0x2924 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) + +0x2928 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x294C | offset to table[0] + +0x292C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2930 | offset to table[1] table (reflection.KeyValue): - +0x2578 | 14 F0 FF FF | SOffset32 | 0xFFFFF014 (-4076) Loc: +0x3564 | offset to vtable - +0x257C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x258C | offset to field `key` (string) - +0x2580 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2584 | offset to field `value` (string) + +0x2930 | 14 F0 FF FF | SOffset32 | 0xFFFFF014 (-4076) Loc: +0x391C | offset to vtable + +0x2934 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2944 | offset to field `key` (string) + +0x2938 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x293C | offset to field `value` (string) string (reflection.KeyValue.value): - +0x2584 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x2588 | 31 37 | char[2] | 17 | string literal - +0x258A | 00 | char | 0x00 (0) | string terminator + +0x293C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2940 | 31 37 | char[2] | 17 | string literal + +0x2942 | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x258C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x2590 | 69 64 | char[2] | id | string literal - +0x2592 | 00 | char | 0x00 (0) | string terminator + +0x2944 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2948 | 69 64 | char[2] | id | string literal + +0x294A | 00 | char | 0x00 (0) | string terminator table (reflection.KeyValue): - +0x2594 | 30 F0 FF FF | SOffset32 | 0xFFFFF030 (-4048) Loc: +0x3564 | offset to vtable - +0x2598 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x25AC | offset to field `key` (string) - +0x259C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x25A0 | offset to field `value` (string) + +0x294C | 30 F0 FF FF | SOffset32 | 0xFFFFF030 (-4048) Loc: +0x391C | offset to vtable + +0x2950 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x2964 | offset to field `key` (string) + +0x2954 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2958 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x25A0 | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string - +0x25A4 | 66 6E 76 31 5F 33 32 | char[7] | fnv1_32 | string literal - +0x25AB | 00 | char | 0x00 (0) | string terminator + +0x2958 | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string + +0x295C | 66 6E 76 31 5F 33 32 | char[7] | fnv1_32 | string literal + +0x2963 | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x25AC | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string - +0x25B0 | 68 61 73 68 | char[4] | hash | string literal - +0x25B4 | 00 | char | 0x00 (0) | string terminator + +0x2964 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string + +0x2968 | 68 61 73 68 | char[4] | hash | string literal + +0x296C | 00 | char | 0x00 (0) | string terminator padding: - +0x25B5 | 00 00 00 | uint8_t[3] | ... | padding + +0x296D | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Type): - +0x25B8 | 1C EC FF FF | SOffset32 | 0xFFFFEC1C (-5092) Loc: +0x399C | offset to vtable - +0x25BC | 00 00 00 | uint8_t[3] | ... | padding - +0x25BF | 08 | uint8_t | 0x08 (8) | table field `base_type` (Byte) - +0x25C0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x2970 | 1C EC FF FF | SOffset32 | 0xFFFFEC1C (-5092) Loc: +0x3D54 | offset to vtable + +0x2974 | 00 00 00 | uint8_t[3] | ... | padding + +0x2977 | 08 | uint8_t | 0x08 (8) | table field `base_type` (Byte) + +0x2978 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x25C4 | 10 00 00 00 | uint32_t | 0x00000010 (16) | length of string - +0x25C8 | 74 65 73 74 68 61 73 68 | char[16] | testhash | string literal - +0x25D0 | 75 33 32 5F 66 6E 76 31 | | u32_fnv1 - +0x25D8 | 00 | char | 0x00 (0) | string terminator + +0x297C | 10 00 00 00 | uint32_t | 0x00000010 (16) | length of string + +0x2980 | 74 65 73 74 68 61 73 68 | char[16] | testhash | string literal + +0x2988 | 75 33 32 5F 66 6E 76 31 | | u32_fnv1 + +0x2990 | 00 | char | 0x00 (0) | string terminator padding: - +0x25D9 | 00 00 00 | uint8_t[3] | ... | padding + +0x2991 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Field): - +0x25DC | A2 FB FF FF | SOffset32 | 0xFFFFFBA2 (-1118) Loc: +0x2A3A | offset to vtable - +0x25E0 | 10 00 | uint16_t | 0x0010 (16) | table field `id` (UShort) - +0x25E2 | 24 00 | uint16_t | 0x0024 (36) | table field `offset` (UShort) - +0x25E4 | 6C 00 00 00 | UOffset32 | 0x0000006C (108) Loc: +0x2650 | offset to field `name` (string) - +0x25E8 | 5C 00 00 00 | UOffset32 | 0x0000005C (92) Loc: +0x2644 | offset to field `type` (table) - +0x25EC | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x25F8 | offset to field `attributes` (vector) - +0x25F0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x25F4 | offset to field `documentation` (vector) + +0x2994 | A2 FB FF FF | SOffset32 | 0xFFFFFBA2 (-1118) Loc: +0x2DF2 | offset to vtable + +0x2998 | 10 00 | uint16_t | 0x0010 (16) | table field `id` (UShort) + +0x299A | 24 00 | uint16_t | 0x0024 (36) | table field `offset` (UShort) + +0x299C | 6C 00 00 00 | UOffset32 | 0x0000006C (108) Loc: +0x2A08 | offset to field `name` (string) + +0x29A0 | 5C 00 00 00 | UOffset32 | 0x0000005C (92) Loc: +0x29FC | offset to field `type` (table) + +0x29A4 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x29B0 | offset to field `attributes` (vector) + +0x29A8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x29AC | offset to field `documentation` (vector) vector (reflection.Field.documentation): - +0x25F4 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x29AC | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) vector (reflection.Field.attributes): - +0x25F8 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) - +0x25FC | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x2620 | offset to table[0] - +0x2600 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2604 | offset to table[1] + +0x29B0 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) + +0x29B4 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x29D8 | offset to table[0] + +0x29B8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x29BC | offset to table[1] table (reflection.KeyValue): - +0x2604 | A0 F0 FF FF | SOffset32 | 0xFFFFF0A0 (-3936) Loc: +0x3564 | offset to vtable - +0x2608 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2618 | offset to field `key` (string) - +0x260C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2610 | offset to field `value` (string) + +0x29BC | A0 F0 FF FF | SOffset32 | 0xFFFFF0A0 (-3936) Loc: +0x391C | offset to vtable + +0x29C0 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x29D0 | offset to field `key` (string) + +0x29C4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x29C8 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x2610 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x2614 | 31 36 | char[2] | 16 | string literal - +0x2616 | 00 | char | 0x00 (0) | string terminator + +0x29C8 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x29CC | 31 36 | char[2] | 16 | string literal + +0x29CE | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x2618 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x261C | 69 64 | char[2] | id | string literal - +0x261E | 00 | char | 0x00 (0) | string terminator + +0x29D0 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x29D4 | 69 64 | char[2] | id | string literal + +0x29D6 | 00 | char | 0x00 (0) | string terminator table (reflection.KeyValue): - +0x2620 | BC F0 FF FF | SOffset32 | 0xFFFFF0BC (-3908) Loc: +0x3564 | offset to vtable - +0x2624 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x2638 | offset to field `key` (string) - +0x2628 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x262C | offset to field `value` (string) + +0x29D8 | BC F0 FF FF | SOffset32 | 0xFFFFF0BC (-3908) Loc: +0x391C | offset to vtable + +0x29DC | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x29F0 | offset to field `key` (string) + +0x29E0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x29E4 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x262C | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string - +0x2630 | 66 6E 76 31 5F 33 32 | char[7] | fnv1_32 | string literal - +0x2637 | 00 | char | 0x00 (0) | string terminator + +0x29E4 | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string + +0x29E8 | 66 6E 76 31 5F 33 32 | char[7] | fnv1_32 | string literal + +0x29EF | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x2638 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string - +0x263C | 68 61 73 68 | char[4] | hash | string literal - +0x2640 | 00 | char | 0x00 (0) | string terminator + +0x29F0 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string + +0x29F4 | 68 61 73 68 | char[4] | hash | string literal + +0x29F8 | 00 | char | 0x00 (0) | string terminator padding: - +0x2641 | 00 00 00 | uint8_t[3] | ... | padding + +0x29F9 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Type): - +0x2644 | A8 EC FF FF | SOffset32 | 0xFFFFECA8 (-4952) Loc: +0x399C | offset to vtable - +0x2648 | 00 00 00 | uint8_t[3] | ... | padding - +0x264B | 07 | uint8_t | 0x07 (7) | table field `base_type` (Byte) - +0x264C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x29FC | A8 EC FF FF | SOffset32 | 0xFFFFECA8 (-4952) Loc: +0x3D54 | offset to vtable + +0x2A00 | 00 00 00 | uint8_t[3] | ... | padding + +0x2A03 | 07 | uint8_t | 0x07 (7) | table field `base_type` (Byte) + +0x2A04 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x2650 | 10 00 00 00 | uint32_t | 0x00000010 (16) | length of string - +0x2654 | 74 65 73 74 68 61 73 68 | char[16] | testhash | string literal - +0x265C | 73 33 32 5F 66 6E 76 31 | | s32_fnv1 - +0x2664 | 00 | char | 0x00 (0) | string terminator + +0x2A08 | 10 00 00 00 | uint32_t | 0x00000010 (16) | length of string + +0x2A0C | 74 65 73 74 68 61 73 68 | char[16] | testhash | string literal + +0x2A14 | 73 33 32 5F 66 6E 76 31 | | s32_fnv1 + +0x2A1C | 00 | char | 0x00 (0) | string terminator padding: - +0x2665 | 00 00 00 | uint8_t[3] | ... | padding + +0x2A1D | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Field): - +0x2668 | 2E FC FF FF | SOffset32 | 0xFFFFFC2E (-978) Loc: +0x2A3A | offset to vtable - +0x266C | 0F 00 | uint16_t | 0x000F (15) | table field `id` (UShort) - +0x266E | 22 00 | uint16_t | 0x0022 (34) | table field `offset` (UShort) - +0x2670 | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: +0x26B8 | offset to field `name` (string) - +0x2674 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x26A8 | offset to field `type` (table) - +0x2678 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x2684 | offset to field `attributes` (vector) - +0x267C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2680 | offset to field `documentation` (vector) + +0x2A20 | 2E FC FF FF | SOffset32 | 0xFFFFFC2E (-978) Loc: +0x2DF2 | offset to vtable + +0x2A24 | 0F 00 | uint16_t | 0x000F (15) | table field `id` (UShort) + +0x2A26 | 22 00 | uint16_t | 0x0022 (34) | table field `offset` (UShort) + +0x2A28 | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: +0x2A70 | offset to field `name` (string) + +0x2A2C | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x2A60 | offset to field `type` (table) + +0x2A30 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x2A3C | offset to field `attributes` (vector) + +0x2A34 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2A38 | offset to field `documentation` (vector) vector (reflection.Field.documentation): - +0x2680 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x2A38 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) vector (reflection.Field.attributes): - +0x2684 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x2688 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x268C | offset to table[0] + +0x2A3C | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x2A40 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2A44 | offset to table[0] table (reflection.KeyValue): - +0x268C | 28 F1 FF FF | SOffset32 | 0xFFFFF128 (-3800) Loc: +0x3564 | offset to vtable - +0x2690 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x26A0 | offset to field `key` (string) - +0x2694 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2698 | offset to field `value` (string) + +0x2A44 | 28 F1 FF FF | SOffset32 | 0xFFFFF128 (-3800) Loc: +0x391C | offset to vtable + +0x2A48 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2A58 | offset to field `key` (string) + +0x2A4C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2A50 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x2698 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x269C | 31 35 | char[2] | 15 | string literal - +0x269E | 00 | char | 0x00 (0) | string terminator + +0x2A50 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2A54 | 31 35 | char[2] | 15 | string literal + +0x2A56 | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x26A0 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x26A4 | 69 64 | char[2] | id | string literal - +0x26A6 | 00 | char | 0x00 (0) | string terminator + +0x2A58 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2A5C | 69 64 | char[2] | id | string literal + +0x2A5E | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x26A8 | C4 EF FF FF | SOffset32 | 0xFFFFEFC4 (-4156) Loc: +0x36E4 | offset to vtable - +0x26AC | 00 00 00 | uint8_t[3] | ... | padding - +0x26AF | 02 | uint8_t | 0x02 (2) | table field `base_type` (Byte) - +0x26B0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) - +0x26B4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x2A60 | C4 EF FF FF | SOffset32 | 0xFFFFEFC4 (-4156) Loc: +0x3A9C | offset to vtable + +0x2A64 | 00 00 00 | uint8_t[3] | ... | padding + +0x2A67 | 02 | uint8_t | 0x02 (2) | table field `base_type` (Byte) + +0x2A68 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) + +0x2A6C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x26B8 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string - +0x26BC | 74 65 73 74 62 6F 6F 6C | char[8] | testbool | string literal - +0x26C4 | 00 | char | 0x00 (0) | string terminator + +0x2A70 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string + +0x2A74 | 74 65 73 74 62 6F 6F 6C | char[8] | testbool | string literal + +0x2A7C | 00 | char | 0x00 (0) | string terminator padding: - +0x26C5 | 00 00 00 | uint8_t[3] | ... | padding + +0x2A7D | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Field): - +0x26C8 | A4 FB FF FF | SOffset32 | 0xFFFFFBA4 (-1116) Loc: +0x2B24 | offset to vtable - +0x26CC | 00 00 00 | uint8_t[3] | ... | padding - +0x26CF | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x26D0 | 0E 00 | uint16_t | 0x000E (14) | table field `id` (UShort) - +0x26D2 | 20 00 | uint16_t | 0x0020 (32) | table field `offset` (UShort) - +0x26D4 | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: +0x271C | offset to field `name` (string) - +0x26D8 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x270C | offset to field `type` (table) - +0x26DC | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x26E8 | offset to field `attributes` (vector) - +0x26E0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x26E4 | offset to field `documentation` (vector) + +0x2A80 | A4 FB FF FF | SOffset32 | 0xFFFFFBA4 (-1116) Loc: +0x2EDC | offset to vtable + +0x2A84 | 00 00 00 | uint8_t[3] | ... | padding + +0x2A87 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x2A88 | 0E 00 | uint16_t | 0x000E (14) | table field `id` (UShort) + +0x2A8A | 20 00 | uint16_t | 0x0020 (32) | table field `offset` (UShort) + +0x2A8C | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: +0x2AD4 | offset to field `name` (string) + +0x2A90 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x2AC4 | offset to field `type` (table) + +0x2A94 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x2AA0 | offset to field `attributes` (vector) + +0x2A98 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2A9C | offset to field `documentation` (vector) vector (reflection.Field.documentation): - +0x26E4 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x2A9C | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) vector (reflection.Field.attributes): - +0x26E8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x26EC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x26F0 | offset to table[0] + +0x2AA0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x2AA4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2AA8 | offset to table[0] table (reflection.KeyValue): - +0x26F0 | 8C F1 FF FF | SOffset32 | 0xFFFFF18C (-3700) Loc: +0x3564 | offset to vtable - +0x26F4 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2704 | offset to field `key` (string) - +0x26F8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x26FC | offset to field `value` (string) + +0x2AA8 | 8C F1 FF FF | SOffset32 | 0xFFFFF18C (-3700) Loc: +0x391C | offset to vtable + +0x2AAC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2ABC | offset to field `key` (string) + +0x2AB0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2AB4 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x26FC | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x2700 | 31 34 | char[2] | 14 | string literal - +0x2702 | 00 | char | 0x00 (0) | string terminator + +0x2AB4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2AB8 | 31 34 | char[2] | 14 | string literal + +0x2ABA | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x2704 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x2708 | 69 64 | char[2] | id | string literal - +0x270A | 00 | char | 0x00 (0) | string terminator + +0x2ABC | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2AC0 | 69 64 | char[2] | id | string literal + +0x2AC2 | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x270C | 54 EE FF FF | SOffset32 | 0xFFFFEE54 (-4524) Loc: +0x38B8 | offset to vtable - +0x2710 | 00 00 00 | uint8_t[3] | ... | padding - +0x2713 | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) - +0x2714 | 03 00 00 00 | uint32_t | 0x00000003 (3) | table field `index` (Int) - +0x2718 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x2AC4 | 54 EE FF FF | SOffset32 | 0xFFFFEE54 (-4524) Loc: +0x3C70 | offset to vtable + +0x2AC8 | 00 00 00 | uint8_t[3] | ... | padding + +0x2ACB | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) + +0x2ACC | 03 00 00 00 | uint32_t | 0x00000003 (3) | table field `index` (Int) + +0x2AD0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x271C | 09 00 00 00 | uint32_t | 0x00000009 (9) | length of string - +0x2720 | 74 65 73 74 65 6D 70 74 | char[9] | testempt | string literal - +0x2728 | 79 | | y - +0x2729 | 00 | char | 0x00 (0) | string terminator + +0x2AD4 | 09 00 00 00 | uint32_t | 0x00000009 (9) | length of string + +0x2AD8 | 74 65 73 74 65 6D 70 74 | char[9] | testempt | string literal + +0x2AE0 | 79 | | y + +0x2AE1 | 00 | char | 0x00 (0) | string terminator padding: - +0x272A | 00 00 | uint8_t[2] | .. | padding + +0x2AE2 | 00 00 | uint8_t[2] | .. | padding table (reflection.Field): - +0x272C | 08 FC FF FF | SOffset32 | 0xFFFFFC08 (-1016) Loc: +0x2B24 | offset to vtable - +0x2730 | 00 00 00 | uint8_t[3] | ... | padding - +0x2733 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x2734 | 0D 00 | uint16_t | 0x000D (13) | table field `id` (UShort) - +0x2736 | 1E 00 | uint16_t | 0x001E (30) | table field `offset` (UShort) - +0x2738 | 78 00 00 00 | UOffset32 | 0x00000078 (120) Loc: +0x27B0 | offset to field `name` (string) - +0x273C | 68 00 00 00 | UOffset32 | 0x00000068 (104) Loc: +0x27A4 | offset to field `type` (table) - +0x2740 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x274C | offset to field `attributes` (vector) - +0x2744 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2748 | offset to field `documentation` (vector) + +0x2AE4 | 08 FC FF FF | SOffset32 | 0xFFFFFC08 (-1016) Loc: +0x2EDC | offset to vtable + +0x2AE8 | 00 00 00 | uint8_t[3] | ... | padding + +0x2AEB | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x2AEC | 0D 00 | uint16_t | 0x000D (13) | table field `id` (UShort) + +0x2AEE | 1E 00 | uint16_t | 0x001E (30) | table field `offset` (UShort) + +0x2AF0 | 78 00 00 00 | UOffset32 | 0x00000078 (120) Loc: +0x2B68 | offset to field `name` (string) + +0x2AF4 | 68 00 00 00 | UOffset32 | 0x00000068 (104) Loc: +0x2B5C | offset to field `type` (table) + +0x2AF8 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x2B04 | offset to field `attributes` (vector) + +0x2AFC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2B00 | offset to field `documentation` (vector) vector (reflection.Field.documentation): - +0x2748 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x2B00 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) vector (reflection.Field.attributes): - +0x274C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) - +0x2750 | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: +0x2788 | offset to table[0] - +0x2754 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2758 | offset to table[1] + +0x2B04 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) + +0x2B08 | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: +0x2B40 | offset to table[0] + +0x2B0C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2B10 | offset to table[1] table (reflection.KeyValue): - +0x2758 | F4 F1 FF FF | SOffset32 | 0xFFFFF1F4 (-3596) Loc: +0x3564 | offset to vtable - +0x275C | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x2770 | offset to field `key` (string) - +0x2760 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2764 | offset to field `value` (string) + +0x2B10 | F4 F1 FF FF | SOffset32 | 0xFFFFF1F4 (-3596) Loc: +0x391C | offset to vtable + +0x2B14 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x2B28 | offset to field `key` (string) + +0x2B18 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2B1C | offset to field `value` (string) string (reflection.KeyValue.value): - +0x2764 | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string - +0x2768 | 4D 6F 6E 73 74 65 72 | char[7] | Monster | string literal - +0x276F | 00 | char | 0x00 (0) | string terminator + +0x2B1C | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string + +0x2B20 | 4D 6F 6E 73 74 65 72 | char[7] | Monster | string literal + +0x2B27 | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x2770 | 11 00 00 00 | uint32_t | 0x00000011 (17) | length of string - +0x2774 | 6E 65 73 74 65 64 5F 66 | char[17] | nested_f | string literal - +0x277C | 6C 61 74 62 75 66 66 65 | | latbuffe - +0x2784 | 72 | | r - +0x2785 | 00 | char | 0x00 (0) | string terminator + +0x2B28 | 11 00 00 00 | uint32_t | 0x00000011 (17) | length of string + +0x2B2C | 6E 65 73 74 65 64 5F 66 | char[17] | nested_f | string literal + +0x2B34 | 6C 61 74 62 75 66 66 65 | | latbuffe + +0x2B3C | 72 | | r + +0x2B3D | 00 | char | 0x00 (0) | string terminator padding: - +0x2786 | 00 00 | uint8_t[2] | .. | padding + +0x2B3E | 00 00 | uint8_t[2] | .. | padding table (reflection.KeyValue): - +0x2788 | 24 F2 FF FF | SOffset32 | 0xFFFFF224 (-3548) Loc: +0x3564 | offset to vtable - +0x278C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x279C | offset to field `key` (string) - +0x2790 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2794 | offset to field `value` (string) + +0x2B40 | 24 F2 FF FF | SOffset32 | 0xFFFFF224 (-3548) Loc: +0x391C | offset to vtable + +0x2B44 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2B54 | offset to field `key` (string) + +0x2B48 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2B4C | offset to field `value` (string) string (reflection.KeyValue.value): - +0x2794 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x2798 | 31 33 | char[2] | 13 | string literal - +0x279A | 00 | char | 0x00 (0) | string terminator + +0x2B4C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2B50 | 31 33 | char[2] | 13 | string literal + +0x2B52 | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x279C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x27A0 | 69 64 | char[2] | id | string literal - +0x27A2 | 00 | char | 0x00 (0) | string terminator + +0x2B54 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2B58 | 69 64 | char[2] | id | string literal + +0x2B5A | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x27A4 | 20 FC FF FF | SOffset32 | 0xFFFFFC20 (-992) Loc: +0x2B84 | offset to vtable - +0x27A8 | 00 00 | uint8_t[2] | .. | padding - +0x27AA | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) - +0x27AB | 04 | uint8_t | 0x04 (4) | table field `element` (Byte) - +0x27AC | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x2B5C | 20 FC FF FF | SOffset32 | 0xFFFFFC20 (-992) Loc: +0x2F3C | offset to vtable + +0x2B60 | 00 00 | uint8_t[2] | .. | padding + +0x2B62 | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) + +0x2B63 | 04 | uint8_t | 0x04 (4) | table field `element` (Byte) + +0x2B64 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x27B0 | 14 00 00 00 | uint32_t | 0x00000014 (20) | length of string - +0x27B4 | 74 65 73 74 6E 65 73 74 | char[20] | testnest | string literal - +0x27BC | 65 64 66 6C 61 74 62 75 | | edflatbu - +0x27C4 | 66 66 65 72 | | ffer - +0x27C8 | 00 | char | 0x00 (0) | string terminator + +0x2B68 | 14 00 00 00 | uint32_t | 0x00000014 (20) | length of string + +0x2B6C | 74 65 73 74 6E 65 73 74 | char[20] | testnest | string literal + +0x2B74 | 65 64 66 6C 61 74 62 75 | | edflatbu + +0x2B7C | 66 66 65 72 | | ffer + +0x2B80 | 00 | char | 0x00 (0) | string terminator padding: - +0x27C9 | 00 00 00 | uint8_t[3] | ... | padding + +0x2B81 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Field): - +0x27CC | A8 FC FF FF | SOffset32 | 0xFFFFFCA8 (-856) Loc: +0x2B24 | offset to vtable - +0x27D0 | 00 00 00 | uint8_t[3] | ... | padding - +0x27D3 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x27D4 | 0C 00 | uint16_t | 0x000C (12) | table field `id` (UShort) - +0x27D6 | 1C 00 | uint16_t | 0x001C (28) | table field `offset` (UShort) - +0x27D8 | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: +0x2820 | offset to field `name` (string) - +0x27DC | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x2810 | offset to field `type` (table) - +0x27E0 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x27EC | offset to field `attributes` (vector) - +0x27E4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x27E8 | offset to field `documentation` (vector) + +0x2B84 | A8 FC FF FF | SOffset32 | 0xFFFFFCA8 (-856) Loc: +0x2EDC | offset to vtable + +0x2B88 | 00 00 00 | uint8_t[3] | ... | padding + +0x2B8B | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x2B8C | 0C 00 | uint16_t | 0x000C (12) | table field `id` (UShort) + +0x2B8E | 1C 00 | uint16_t | 0x001C (28) | table field `offset` (UShort) + +0x2B90 | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: +0x2BD8 | offset to field `name` (string) + +0x2B94 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x2BC8 | offset to field `type` (table) + +0x2B98 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x2BA4 | offset to field `attributes` (vector) + +0x2B9C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2BA0 | offset to field `documentation` (vector) vector (reflection.Field.documentation): - +0x27E8 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x2BA0 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) vector (reflection.Field.attributes): - +0x27EC | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x27F0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x27F4 | offset to table[0] + +0x2BA4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x2BA8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2BAC | offset to table[0] table (reflection.KeyValue): - +0x27F4 | 90 F2 FF FF | SOffset32 | 0xFFFFF290 (-3440) Loc: +0x3564 | offset to vtable - +0x27F8 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2808 | offset to field `key` (string) - +0x27FC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2800 | offset to field `value` (string) + +0x2BAC | 90 F2 FF FF | SOffset32 | 0xFFFFF290 (-3440) Loc: +0x391C | offset to vtable + +0x2BB0 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2BC0 | offset to field `key` (string) + +0x2BB4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2BB8 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x2800 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x2804 | 31 32 | char[2] | 12 | string literal - +0x2806 | 00 | char | 0x00 (0) | string terminator + +0x2BB8 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2BBC | 31 32 | char[2] | 12 | string literal + +0x2BBE | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x2808 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x280C | 69 64 | char[2] | id | string literal - +0x280E | 00 | char | 0x00 (0) | string terminator + +0x2BC0 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2BC4 | 69 64 | char[2] | id | string literal + +0x2BC6 | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x2810 | 58 EF FF FF | SOffset32 | 0xFFFFEF58 (-4264) Loc: +0x38B8 | offset to vtable - +0x2814 | 00 00 00 | uint8_t[3] | ... | padding - +0x2817 | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) - +0x2818 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `index` (Int) - +0x281C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x2BC8 | 58 EF FF FF | SOffset32 | 0xFFFFEF58 (-4264) Loc: +0x3C70 | offset to vtable + +0x2BCC | 00 00 00 | uint8_t[3] | ... | padding + +0x2BCF | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) + +0x2BD0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `index` (Int) + +0x2BD4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x2820 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string - +0x2824 | 65 6E 65 6D 79 | char[5] | enemy | string literal - +0x2829 | 00 | char | 0x00 (0) | string terminator + +0x2BD8 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string + +0x2BDC | 65 6E 65 6D 79 | char[5] | enemy | string literal + +0x2BE1 | 00 | char | 0x00 (0) | string terminator padding: - +0x282A | 00 00 | uint8_t[2] | .. | padding + +0x2BE2 | 00 00 | uint8_t[2] | .. | padding table (reflection.Field): - +0x282C | 08 FD FF FF | SOffset32 | 0xFFFFFD08 (-760) Loc: +0x2B24 | offset to vtable - +0x2830 | 00 00 00 | uint8_t[3] | ... | padding - +0x2833 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x2834 | 0B 00 | uint16_t | 0x000B (11) | table field `id` (UShort) - +0x2836 | 1A 00 | uint16_t | 0x001A (26) | table field `offset` (UShort) - +0x2838 | B4 00 00 00 | UOffset32 | 0x000000B4 (180) Loc: +0x28EC | offset to field `name` (string) - +0x283C | A0 00 00 00 | UOffset32 | 0x000000A0 (160) Loc: +0x28DC | offset to field `type` (table) - +0x2840 | 78 00 00 00 | UOffset32 | 0x00000078 (120) Loc: +0x28B8 | offset to field `attributes` (vector) - +0x2844 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2848 | offset to field `documentation` (vector) + +0x2BE4 | 08 FD FF FF | SOffset32 | 0xFFFFFD08 (-760) Loc: +0x2EDC | offset to vtable + +0x2BE8 | 00 00 00 | uint8_t[3] | ... | padding + +0x2BEB | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x2BEC | 0B 00 | uint16_t | 0x000B (11) | table field `id` (UShort) + +0x2BEE | 1A 00 | uint16_t | 0x001A (26) | table field `offset` (UShort) + +0x2BF0 | B4 00 00 00 | UOffset32 | 0x000000B4 (180) Loc: +0x2CA4 | offset to field `name` (string) + +0x2BF4 | A0 00 00 00 | UOffset32 | 0x000000A0 (160) Loc: +0x2C94 | offset to field `type` (table) + +0x2BF8 | 78 00 00 00 | UOffset32 | 0x00000078 (120) Loc: +0x2C70 | offset to field `attributes` (vector) + +0x2BFC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2C00 | offset to field `documentation` (vector) vector (reflection.Field.documentation): - +0x2848 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) - +0x284C | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: +0x2868 | offset to string[0] - +0x2850 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2854 | offset to string[1] + +0x2C00 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) + +0x2C04 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: +0x2C20 | offset to string[0] + +0x2C08 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2C0C | offset to string[1] string (reflection.Field.documentation): - +0x2854 | 0E 00 00 00 | uint32_t | 0x0000000E (14) | length of string - +0x2858 | 20 6D 75 6C 74 69 6C 69 | char[14] | multili | string literal - +0x2860 | 6E 65 20 74 6F 6F | | ne too - +0x2866 | 00 | char | 0x00 (0) | string terminator + +0x2C0C | 0E 00 00 00 | uint32_t | 0x0000000E (14) | length of string + +0x2C10 | 20 6D 75 6C 74 69 6C 69 | char[14] | multili | string literal + +0x2C18 | 6E 65 20 74 6F 6F | | ne too + +0x2C1E | 00 | char | 0x00 (0) | string terminator string (reflection.Field.documentation): - +0x2868 | 49 00 00 00 | uint32_t | 0x00000049 (73) | length of string - +0x286C | 20 61 6E 20 65 78 61 6D | char[73] | an exam | string literal - +0x2874 | 70 6C 65 20 64 6F 63 75 | | ple docu - +0x287C | 6D 65 6E 74 61 74 69 6F | | mentatio - +0x2884 | 6E 20 63 6F 6D 6D 65 6E | | n commen - +0x288C | 74 3A 20 74 68 69 73 20 | | t: this - +0x2894 | 77 69 6C 6C 20 65 6E 64 | | will end - +0x289C | 20 75 70 20 69 6E 20 74 | | up in t - +0x28A4 | 68 65 20 67 65 6E 65 72 | | he gener - +0x28AC | 61 74 65 64 20 63 6F 64 | | ated cod - +0x28B4 | 65 | | e - +0x28B5 | 00 | char | 0x00 (0) | string terminator - -padding: - +0x28B6 | 00 00 | uint8_t[2] | .. | padding + +0x2C20 | 49 00 00 00 | uint32_t | 0x00000049 (73) | length of string + +0x2C24 | 20 61 6E 20 65 78 61 6D | char[73] | an exam | string literal + +0x2C2C | 70 6C 65 20 64 6F 63 75 | | ple docu + +0x2C34 | 6D 65 6E 74 61 74 69 6F | | mentatio + +0x2C3C | 6E 20 63 6F 6D 6D 65 6E | | n commen + +0x2C44 | 74 3A 20 74 68 69 73 20 | | t: this + +0x2C4C | 77 69 6C 6C 20 65 6E 64 | | will end + +0x2C54 | 20 75 70 20 69 6E 20 74 | | up in t + +0x2C5C | 68 65 20 67 65 6E 65 72 | | he gener + +0x2C64 | 61 74 65 64 20 63 6F 64 | | ated cod + +0x2C6C | 65 | | e + +0x2C6D | 00 | char | 0x00 (0) | string terminator + +padding: + +0x2C6E | 00 00 | uint8_t[2] | .. | padding vector (reflection.Field.attributes): - +0x28B8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x28BC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x28C0 | offset to table[0] + +0x2C70 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x2C74 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2C78 | offset to table[0] table (reflection.KeyValue): - +0x28C0 | 5C F3 FF FF | SOffset32 | 0xFFFFF35C (-3236) Loc: +0x3564 | offset to vtable - +0x28C4 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x28D4 | offset to field `key` (string) - +0x28C8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x28CC | offset to field `value` (string) + +0x2C78 | 5C F3 FF FF | SOffset32 | 0xFFFFF35C (-3236) Loc: +0x391C | offset to vtable + +0x2C7C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2C8C | offset to field `key` (string) + +0x2C80 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2C84 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x28CC | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x28D0 | 31 31 | char[2] | 11 | string literal - +0x28D2 | 00 | char | 0x00 (0) | string terminator + +0x2C84 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2C88 | 31 31 | char[2] | 11 | string literal + +0x2C8A | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x28D4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x28D8 | 69 64 | char[2] | id | string literal - +0x28DA | 00 | char | 0x00 (0) | string terminator + +0x2C8C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2C90 | 69 64 | char[2] | id | string literal + +0x2C92 | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x28DC | 2C FF FF FF | SOffset32 | 0xFFFFFF2C (-212) Loc: +0x29B0 | offset to vtable - +0x28E0 | 00 00 | uint8_t[2] | .. | padding - +0x28E2 | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) - +0x28E3 | 0F | uint8_t | 0x0F (15) | table field `element` (Byte) - +0x28E4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `index` (Int) - +0x28E8 | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `element_size` (UInt) + +0x2C94 | 2C FF FF FF | SOffset32 | 0xFFFFFF2C (-212) Loc: +0x2D68 | offset to vtable + +0x2C98 | 00 00 | uint8_t[2] | .. | padding + +0x2C9A | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) + +0x2C9B | 0F | uint8_t | 0x0F (15) | table field `element` (Byte) + +0x2C9C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `index` (Int) + +0x2CA0 | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `element_size` (UInt) string (reflection.Field.name): - +0x28EC | 11 00 00 00 | uint32_t | 0x00000011 (17) | length of string - +0x28F0 | 74 65 73 74 61 72 72 61 | char[17] | testarra | string literal - +0x28F8 | 79 6F 66 74 61 62 6C 65 | | yoftable - +0x2900 | 73 | | s - +0x2901 | 00 | char | 0x00 (0) | string terminator + +0x2CA4 | 11 00 00 00 | uint32_t | 0x00000011 (17) | length of string + +0x2CA8 | 74 65 73 74 61 72 72 61 | char[17] | testarra | string literal + +0x2CB0 | 79 6F 66 74 61 62 6C 65 | | yoftable + +0x2CB8 | 73 | | s + +0x2CB9 | 00 | char | 0x00 (0) | string terminator padding: - +0x2902 | 00 00 | uint8_t[2] | .. | padding + +0x2CBA | 00 00 | uint8_t[2] | .. | padding table (reflection.Field): - +0x2904 | E0 FD FF FF | SOffset32 | 0xFFFFFDE0 (-544) Loc: +0x2B24 | offset to vtable - +0x2908 | 00 00 00 | uint8_t[3] | ... | padding - +0x290B | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x290C | 0A 00 | uint16_t | 0x000A (10) | table field `id` (UShort) - +0x290E | 18 00 | uint16_t | 0x0018 (24) | table field `offset` (UShort) - +0x2910 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x2954 | offset to field `name` (string) - +0x2914 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x2948 | offset to field `type` (table) - +0x2918 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x2924 | offset to field `attributes` (vector) - +0x291C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2920 | offset to field `documentation` (vector) + +0x2CBC | E0 FD FF FF | SOffset32 | 0xFFFFFDE0 (-544) Loc: +0x2EDC | offset to vtable + +0x2CC0 | 00 00 00 | uint8_t[3] | ... | padding + +0x2CC3 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x2CC4 | 0A 00 | uint16_t | 0x000A (10) | table field `id` (UShort) + +0x2CC6 | 18 00 | uint16_t | 0x0018 (24) | table field `offset` (UShort) + +0x2CC8 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x2D0C | offset to field `name` (string) + +0x2CCC | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x2D00 | offset to field `type` (table) + +0x2CD0 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x2CDC | offset to field `attributes` (vector) + +0x2CD4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2CD8 | offset to field `documentation` (vector) vector (reflection.Field.documentation): - +0x2920 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x2CD8 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) vector (reflection.Field.attributes): - +0x2924 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x2928 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x292C | offset to table[0] + +0x2CDC | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x2CE0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2CE4 | offset to table[0] table (reflection.KeyValue): - +0x292C | C8 F3 FF FF | SOffset32 | 0xFFFFF3C8 (-3128) Loc: +0x3564 | offset to vtable - +0x2930 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2940 | offset to field `key` (string) - +0x2934 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2938 | offset to field `value` (string) + +0x2CE4 | C8 F3 FF FF | SOffset32 | 0xFFFFF3C8 (-3128) Loc: +0x391C | offset to vtable + +0x2CE8 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2CF8 | offset to field `key` (string) + +0x2CEC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2CF0 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x2938 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x293C | 31 30 | char[2] | 10 | string literal - +0x293E | 00 | char | 0x00 (0) | string terminator + +0x2CF0 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2CF4 | 31 30 | char[2] | 10 | string literal + +0x2CF6 | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x2940 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x2944 | 69 64 | char[2] | id | string literal - +0x2946 | 00 | char | 0x00 (0) | string terminator + +0x2CF8 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2CFC | 69 64 | char[2] | id | string literal + +0x2CFE | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x2948 | C4 FD FF FF | SOffset32 | 0xFFFFFDC4 (-572) Loc: +0x2B84 | offset to vtable - +0x294C | 00 00 | uint8_t[2] | .. | padding - +0x294E | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) - +0x294F | 0D | uint8_t | 0x0D (13) | table field `element` (Byte) - +0x2950 | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `element_size` (UInt) + +0x2D00 | C4 FD FF FF | SOffset32 | 0xFFFFFDC4 (-572) Loc: +0x2F3C | offset to vtable + +0x2D04 | 00 00 | uint8_t[2] | .. | padding + +0x2D06 | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) + +0x2D07 | 0D | uint8_t | 0x0D (13) | table field `element` (Byte) + +0x2D08 | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `element_size` (UInt) string (reflection.Field.name): - +0x2954 | 11 00 00 00 | uint32_t | 0x00000011 (17) | length of string - +0x2958 | 74 65 73 74 61 72 72 61 | char[17] | testarra | string literal - +0x2960 | 79 6F 66 73 74 72 69 6E | | yofstrin - +0x2968 | 67 | | g - +0x2969 | 00 | char | 0x00 (0) | string terminator + +0x2D0C | 11 00 00 00 | uint32_t | 0x00000011 (17) | length of string + +0x2D10 | 74 65 73 74 61 72 72 61 | char[17] | testarra | string literal + +0x2D18 | 79 6F 66 73 74 72 69 6E | | yofstrin + +0x2D20 | 67 | | g + +0x2D21 | 00 | char | 0x00 (0) | string terminator padding: - +0x296A | 00 00 | uint8_t[2] | .. | padding + +0x2D22 | 00 00 | uint8_t[2] | .. | padding table (reflection.Field): - +0x296C | 48 FE FF FF | SOffset32 | 0xFFFFFE48 (-440) Loc: +0x2B24 | offset to vtable - +0x2970 | 00 00 00 | uint8_t[3] | ... | padding - +0x2973 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x2974 | 09 00 | uint16_t | 0x0009 (9) | table field `id` (UShort) - +0x2976 | 16 00 | uint16_t | 0x0016 (22) | table field `offset` (UShort) - +0x2978 | 58 00 00 00 | UOffset32 | 0x00000058 (88) Loc: +0x29D0 | offset to field `name` (string) - +0x297C | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x29C0 | offset to field `type` (table) - +0x2980 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x298C | offset to field `attributes` (vector) - +0x2984 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2988 | offset to field `documentation` (vector) + +0x2D24 | 48 FE FF FF | SOffset32 | 0xFFFFFE48 (-440) Loc: +0x2EDC | offset to vtable + +0x2D28 | 00 00 00 | uint8_t[3] | ... | padding + +0x2D2B | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x2D2C | 09 00 | uint16_t | 0x0009 (9) | table field `id` (UShort) + +0x2D2E | 16 00 | uint16_t | 0x0016 (22) | table field `offset` (UShort) + +0x2D30 | 58 00 00 00 | UOffset32 | 0x00000058 (88) Loc: +0x2D88 | offset to field `name` (string) + +0x2D34 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x2D78 | offset to field `type` (table) + +0x2D38 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x2D44 | offset to field `attributes` (vector) + +0x2D3C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2D40 | offset to field `documentation` (vector) vector (reflection.Field.documentation): - +0x2988 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x2D40 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) vector (reflection.Field.attributes): - +0x298C | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x2990 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2994 | offset to table[0] + +0x2D44 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x2D48 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2D4C | offset to table[0] table (reflection.KeyValue): - +0x2994 | 30 F4 FF FF | SOffset32 | 0xFFFFF430 (-3024) Loc: +0x3564 | offset to vtable - +0x2998 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x29A8 | offset to field `key` (string) - +0x299C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x29A0 | offset to field `value` (string) + +0x2D4C | 30 F4 FF FF | SOffset32 | 0xFFFFF430 (-3024) Loc: +0x391C | offset to vtable + +0x2D50 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2D60 | offset to field `key` (string) + +0x2D54 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2D58 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x29A0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x29A4 | 39 | char[1] | 9 | string literal - +0x29A5 | 00 | char | 0x00 (0) | string terminator + +0x2D58 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x2D5C | 39 | char[1] | 9 | string literal + +0x2D5D | 00 | char | 0x00 (0) | string terminator padding: - +0x29A6 | 00 00 | uint8_t[2] | .. | padding + +0x2D5E | 00 00 | uint8_t[2] | .. | padding string (reflection.KeyValue.key): - +0x29A8 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x29AC | 69 64 | char[2] | id | string literal - +0x29AE | 00 | char | 0x00 (0) | string terminator + +0x2D60 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2D64 | 69 64 | char[2] | id | string literal + +0x2D66 | 00 | char | 0x00 (0) | string terminator vtable (reflection.Type): - +0x29B0 | 10 00 | uint16_t | 0x0010 (16) | size of this vtable - +0x29B2 | 10 00 | uint16_t | 0x0010 (16) | size of referring table - +0x29B4 | 06 00 | VOffset16 | 0x0006 (6) | offset to field `base_type` (id: 0) - +0x29B6 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `element` (id: 1) - +0x29B8 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `index` (id: 2) - +0x29BA | 00 00 | VOffset16 | 0x0000 (0) | offset to field `fixed_length` (id: 3) (UShort) - +0x29BC | 00 00 | VOffset16 | 0x0000 (0) | offset to field `base_size` (id: 4) (UInt) - +0x29BE | 0C 00 | VOffset16 | 0x000C (12) | offset to field `element_size` (id: 5) + +0x2D68 | 10 00 | uint16_t | 0x0010 (16) | size of this vtable + +0x2D6A | 10 00 | uint16_t | 0x0010 (16) | size of referring table + +0x2D6C | 06 00 | VOffset16 | 0x0006 (6) | offset to field `base_type` (id: 0) + +0x2D6E | 07 00 | VOffset16 | 0x0007 (7) | offset to field `element` (id: 1) + +0x2D70 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `index` (id: 2) + +0x2D72 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `fixed_length` (id: 3) (UShort) + +0x2D74 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `base_size` (id: 4) (UInt) + +0x2D76 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `element_size` (id: 5) table (reflection.Type): - +0x29C0 | 10 00 00 00 | SOffset32 | 0x00000010 (16) Loc: +0x29B0 | offset to vtable - +0x29C4 | 00 00 | uint8_t[2] | .. | padding - +0x29C6 | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) - +0x29C7 | 0F | uint8_t | 0x0F (15) | table field `element` (Byte) - +0x29C8 | 06 00 00 00 | uint32_t | 0x00000006 (6) | table field `index` (Int) - +0x29CC | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `element_size` (UInt) + +0x2D78 | 10 00 00 00 | SOffset32 | 0x00000010 (16) Loc: +0x2D68 | offset to vtable + +0x2D7C | 00 00 | uint8_t[2] | .. | padding + +0x2D7E | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) + +0x2D7F | 0F | uint8_t | 0x0F (15) | table field `element` (Byte) + +0x2D80 | 06 00 00 00 | uint32_t | 0x00000006 (6) | table field `index` (Int) + +0x2D84 | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `element_size` (UInt) string (reflection.Field.name): - +0x29D0 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string - +0x29D4 | 74 65 73 74 34 | char[5] | test4 | string literal - +0x29D9 | 00 | char | 0x00 (0) | string terminator + +0x2D88 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string + +0x2D8C | 74 65 73 74 34 | char[5] | test4 | string literal + +0x2D91 | 00 | char | 0x00 (0) | string terminator padding: - +0x29DA | 00 00 | uint8_t[2] | .. | padding + +0x2D92 | 00 00 | uint8_t[2] | .. | padding table (reflection.Field): - +0x29DC | B8 FE FF FF | SOffset32 | 0xFFFFFEB8 (-328) Loc: +0x2B24 | offset to vtable - +0x29E0 | 00 00 00 | uint8_t[3] | ... | padding - +0x29E3 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x29E4 | 08 00 | uint16_t | 0x0008 (8) | table field `id` (UShort) - +0x29E6 | 14 00 | uint16_t | 0x0014 (20) | table field `offset` (UShort) - +0x29E8 | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: +0x2A30 | offset to field `name` (string) - +0x29EC | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x2A20 | offset to field `type` (table) - +0x29F0 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x29FC | offset to field `attributes` (vector) - +0x29F4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x29F8 | offset to field `documentation` (vector) + +0x2D94 | B8 FE FF FF | SOffset32 | 0xFFFFFEB8 (-328) Loc: +0x2EDC | offset to vtable + +0x2D98 | 00 00 00 | uint8_t[3] | ... | padding + +0x2D9B | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x2D9C | 08 00 | uint16_t | 0x0008 (8) | table field `id` (UShort) + +0x2D9E | 14 00 | uint16_t | 0x0014 (20) | table field `offset` (UShort) + +0x2DA0 | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: +0x2DE8 | offset to field `name` (string) + +0x2DA4 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x2DD8 | offset to field `type` (table) + +0x2DA8 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x2DB4 | offset to field `attributes` (vector) + +0x2DAC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2DB0 | offset to field `documentation` (vector) vector (reflection.Field.documentation): - +0x29F8 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x2DB0 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) vector (reflection.Field.attributes): - +0x29FC | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x2A00 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2A04 | offset to table[0] + +0x2DB4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x2DB8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2DBC | offset to table[0] table (reflection.KeyValue): - +0x2A04 | A0 F4 FF FF | SOffset32 | 0xFFFFF4A0 (-2912) Loc: +0x3564 | offset to vtable - +0x2A08 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2A18 | offset to field `key` (string) - +0x2A0C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2A10 | offset to field `value` (string) + +0x2DBC | A0 F4 FF FF | SOffset32 | 0xFFFFF4A0 (-2912) Loc: +0x391C | offset to vtable + +0x2DC0 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2DD0 | offset to field `key` (string) + +0x2DC4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2DC8 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x2A10 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x2A14 | 38 | char[1] | 8 | string literal - +0x2A15 | 00 | char | 0x00 (0) | string terminator + +0x2DC8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x2DCC | 38 | char[1] | 8 | string literal + +0x2DCD | 00 | char | 0x00 (0) | string terminator padding: - +0x2A16 | 00 00 | uint8_t[2] | .. | padding + +0x2DCE | 00 00 | uint8_t[2] | .. | padding string (reflection.KeyValue.key): - +0x2A18 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x2A1C | 69 64 | char[2] | id | string literal - +0x2A1E | 00 | char | 0x00 (0) | string terminator + +0x2DD0 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2DD4 | 69 64 | char[2] | id | string literal + +0x2DD6 | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x2A20 | 68 F1 FF FF | SOffset32 | 0xFFFFF168 (-3736) Loc: +0x38B8 | offset to vtable - +0x2A24 | 00 00 00 | uint8_t[3] | ... | padding - +0x2A27 | 10 | uint8_t | 0x10 (16) | table field `base_type` (Byte) - +0x2A28 | 00 00 00 00 | uint32_t | 0x00000000 (0) | table field `index` (Int) - +0x2A2C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x2DD8 | 68 F1 FF FF | SOffset32 | 0xFFFFF168 (-3736) Loc: +0x3C70 | offset to vtable + +0x2DDC | 00 00 00 | uint8_t[3] | ... | padding + +0x2DDF | 10 | uint8_t | 0x10 (16) | table field `base_type` (Byte) + +0x2DE0 | 00 00 00 00 | uint32_t | 0x00000000 (0) | table field `index` (Int) + +0x2DE4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x2A30 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string - +0x2A34 | 74 65 73 74 | char[4] | test | string literal - +0x2A38 | 00 | char | 0x00 (0) | string terminator + +0x2DE8 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string + +0x2DEC | 74 65 73 74 | char[4] | test | string literal + +0x2DF0 | 00 | char | 0x00 (0) | string terminator vtable (reflection.Field): - +0x2A3A | 1A 00 | uint16_t | 0x001A (26) | size of this vtable - +0x2A3C | 18 00 | uint16_t | 0x0018 (24) | size of referring table - +0x2A3E | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0) - +0x2A40 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `type` (id: 1) - +0x2A42 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `id` (id: 2) - +0x2A44 | 06 00 | VOffset16 | 0x0006 (6) | offset to field `offset` (id: 3) - +0x2A46 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) (Long) - +0x2A48 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) (Double) - +0x2A4A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) - +0x2A4C | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) (Bool) - +0x2A4E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 8) (Bool) - +0x2A50 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `attributes` (id: 9) - +0x2A52 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `documentation` (id: 10) + +0x2DF2 | 1A 00 | uint16_t | 0x001A (26) | size of this vtable + +0x2DF4 | 18 00 | uint16_t | 0x0018 (24) | size of referring table + +0x2DF6 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0) + +0x2DF8 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `type` (id: 1) + +0x2DFA | 04 00 | VOffset16 | 0x0004 (4) | offset to field `id` (id: 2) + +0x2DFC | 06 00 | VOffset16 | 0x0006 (6) | offset to field `offset` (id: 3) + +0x2DFE | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) (Long) + +0x2E00 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) (Double) + +0x2E02 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) + +0x2E04 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) (Bool) + +0x2E06 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 8) (Bool) + +0x2E08 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `attributes` (id: 9) + +0x2E0A | 14 00 | VOffset16 | 0x0014 (20) | offset to field `documentation` (id: 10) table (reflection.Field): - +0x2A54 | 1A 00 00 00 | SOffset32 | 0x0000001A (26) Loc: +0x2A3A | offset to vtable - +0x2A58 | 07 00 | uint16_t | 0x0007 (7) | table field `id` (UShort) - +0x2A5A | 12 00 | uint16_t | 0x0012 (18) | table field `offset` (UShort) - +0x2A5C | 4C 00 00 00 | UOffset32 | 0x0000004C (76) Loc: +0x2AA8 | offset to field `name` (string) - +0x2A60 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x2A94 | offset to field `type` (table) - +0x2A64 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x2A70 | offset to field `attributes` (vector) - +0x2A68 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2A6C | offset to field `documentation` (vector) + +0x2E0C | 1A 00 00 00 | SOffset32 | 0x0000001A (26) Loc: +0x2DF2 | offset to vtable + +0x2E10 | 07 00 | uint16_t | 0x0007 (7) | table field `id` (UShort) + +0x2E12 | 12 00 | uint16_t | 0x0012 (18) | table field `offset` (UShort) + +0x2E14 | 4C 00 00 00 | UOffset32 | 0x0000004C (76) Loc: +0x2E60 | offset to field `name` (string) + +0x2E18 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x2E4C | offset to field `type` (table) + +0x2E1C | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x2E28 | offset to field `attributes` (vector) + +0x2E20 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2E24 | offset to field `documentation` (vector) vector (reflection.Field.documentation): - +0x2A6C | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x2E24 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) vector (reflection.Field.attributes): - +0x2A70 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x2A74 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2A78 | offset to table[0] + +0x2E28 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x2E2C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2E30 | offset to table[0] table (reflection.KeyValue): - +0x2A78 | 14 F5 FF FF | SOffset32 | 0xFFFFF514 (-2796) Loc: +0x3564 | offset to vtable - +0x2A7C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2A8C | offset to field `key` (string) - +0x2A80 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2A84 | offset to field `value` (string) + +0x2E30 | 14 F5 FF FF | SOffset32 | 0xFFFFF514 (-2796) Loc: +0x391C | offset to vtable + +0x2E34 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2E44 | offset to field `key` (string) + +0x2E38 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2E3C | offset to field `value` (string) string (reflection.KeyValue.value): - +0x2A84 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x2A88 | 37 | char[1] | 7 | string literal - +0x2A89 | 00 | char | 0x00 (0) | string terminator + +0x2E3C | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x2E40 | 37 | char[1] | 7 | string literal + +0x2E41 | 00 | char | 0x00 (0) | string terminator padding: - +0x2A8A | 00 00 | uint8_t[2] | .. | padding + +0x2E42 | 00 00 | uint8_t[2] | .. | padding string (reflection.KeyValue.key): - +0x2A8C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x2A90 | 69 64 | char[2] | id | string literal - +0x2A92 | 00 | char | 0x00 (0) | string terminator + +0x2E44 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2E48 | 69 64 | char[2] | id | string literal + +0x2E4A | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x2A94 | 90 F4 FF FF | SOffset32 | 0xFFFFF490 (-2928) Loc: +0x3604 | offset to vtable - +0x2A98 | 00 00 00 | uint8_t[3] | ... | padding - +0x2A9B | 01 | uint8_t | 0x01 (1) | table field `base_type` (Byte) - +0x2A9C | 00 00 00 00 | uint32_t | 0x00000000 (0) | table field `index` (Int) - +0x2AA0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) - +0x2AA4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x2E4C | 90 F4 FF FF | SOffset32 | 0xFFFFF490 (-2928) Loc: +0x39BC | offset to vtable + +0x2E50 | 00 00 00 | uint8_t[3] | ... | padding + +0x2E53 | 01 | uint8_t | 0x01 (1) | table field `base_type` (Byte) + +0x2E54 | 00 00 00 00 | uint32_t | 0x00000000 (0) | table field `index` (Int) + +0x2E58 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) + +0x2E5C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x2AA8 | 09 00 00 00 | uint32_t | 0x00000009 (9) | length of string - +0x2AAC | 74 65 73 74 5F 74 79 70 | char[9] | test_typ | string literal - +0x2AB4 | 65 | | e - +0x2AB5 | 00 | char | 0x00 (0) | string terminator + +0x2E60 | 09 00 00 00 | uint32_t | 0x00000009 (9) | length of string + +0x2E64 | 74 65 73 74 5F 74 79 70 | char[9] | test_typ | string literal + +0x2E6C | 65 | | e + +0x2E6D | 00 | char | 0x00 (0) | string terminator padding: - +0x2AB6 | 00 00 | uint8_t[2] | .. | padding + +0x2E6E | 00 00 | uint8_t[2] | .. | padding table (reflection.Field): - +0x2AB8 | 42 FD FF FF | SOffset32 | 0xFFFFFD42 (-702) Loc: +0x2D76 | offset to vtable - +0x2ABC | 06 00 | uint16_t | 0x0006 (6) | table field `id` (UShort) - +0x2ABE | 10 00 | uint16_t | 0x0010 (16) | table field `offset` (UShort) - +0x2AC0 | 58 00 00 00 | UOffset32 | 0x00000058 (88) Loc: +0x2B18 | offset to field `name` (string) - +0x2AC4 | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: +0x2B04 | offset to field `type` (table) - +0x2AC8 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x2AE0 | offset to field `attributes` (vector) - +0x2ACC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2ADC | offset to field `documentation` (vector) - +0x2AD0 | 08 00 00 00 00 00 00 00 | int64_t | 0x0000000000000008 (8) | table field `default_integer` (Long) - +0x2AD8 | 00 00 00 00 | uint8_t[4] | .... | padding + +0x2E70 | 42 FD FF FF | SOffset32 | 0xFFFFFD42 (-702) Loc: +0x312E | offset to vtable + +0x2E74 | 06 00 | uint16_t | 0x0006 (6) | table field `id` (UShort) + +0x2E76 | 10 00 | uint16_t | 0x0010 (16) | table field `offset` (UShort) + +0x2E78 | 58 00 00 00 | UOffset32 | 0x00000058 (88) Loc: +0x2ED0 | offset to field `name` (string) + +0x2E7C | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: +0x2EBC | offset to field `type` (table) + +0x2E80 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x2E98 | offset to field `attributes` (vector) + +0x2E84 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2E94 | offset to field `documentation` (vector) + +0x2E88 | 08 00 00 00 00 00 00 00 | int64_t | 0x0000000000000008 (8) | table field `default_integer` (Long) + +0x2E90 | 00 00 00 00 | uint8_t[4] | .... | padding vector (reflection.Field.documentation): - +0x2ADC | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x2E94 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) vector (reflection.Field.attributes): - +0x2AE0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x2AE4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2AE8 | offset to table[0] + +0x2E98 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x2E9C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2EA0 | offset to table[0] table (reflection.KeyValue): - +0x2AE8 | 84 F5 FF FF | SOffset32 | 0xFFFFF584 (-2684) Loc: +0x3564 | offset to vtable - +0x2AEC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2AFC | offset to field `key` (string) - +0x2AF0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2AF4 | offset to field `value` (string) + +0x2EA0 | 84 F5 FF FF | SOffset32 | 0xFFFFF584 (-2684) Loc: +0x391C | offset to vtable + +0x2EA4 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2EB4 | offset to field `key` (string) + +0x2EA8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2EAC | offset to field `value` (string) string (reflection.KeyValue.value): - +0x2AF4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x2AF8 | 36 | char[1] | 6 | string literal - +0x2AF9 | 00 | char | 0x00 (0) | string terminator + +0x2EAC | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x2EB0 | 36 | char[1] | 6 | string literal + +0x2EB1 | 00 | char | 0x00 (0) | string terminator padding: - +0x2AFA | 00 00 | uint8_t[2] | .. | padding + +0x2EB2 | 00 00 | uint8_t[2] | .. | padding string (reflection.KeyValue.key): - +0x2AFC | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x2B00 | 69 64 | char[2] | id | string literal - +0x2B02 | 00 | char | 0x00 (0) | string terminator + +0x2EB4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2EB8 | 69 64 | char[2] | id | string literal + +0x2EBA | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x2B04 | 00 F5 FF FF | SOffset32 | 0xFFFFF500 (-2816) Loc: +0x3604 | offset to vtable - +0x2B08 | 00 00 00 | uint8_t[3] | ... | padding - +0x2B0B | 04 | uint8_t | 0x04 (4) | table field `base_type` (Byte) - +0x2B0C | 03 00 00 00 | uint32_t | 0x00000003 (3) | table field `index` (Int) - +0x2B10 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) - +0x2B14 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x2EBC | 00 F5 FF FF | SOffset32 | 0xFFFFF500 (-2816) Loc: +0x39BC | offset to vtable + +0x2EC0 | 00 00 00 | uint8_t[3] | ... | padding + +0x2EC3 | 04 | uint8_t | 0x04 (4) | table field `base_type` (Byte) + +0x2EC4 | 03 00 00 00 | uint32_t | 0x00000003 (3) | table field `index` (Int) + +0x2EC8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) + +0x2ECC | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x2B18 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string - +0x2B1C | 63 6F 6C 6F 72 | char[5] | color | string literal - +0x2B21 | 00 | char | 0x00 (0) | string terminator + +0x2ED0 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string + +0x2ED4 | 63 6F 6C 6F 72 | char[5] | color | string literal + +0x2ED9 | 00 | char | 0x00 (0) | string terminator padding: - +0x2B22 | 00 00 | uint8_t[2] | .. | padding + +0x2EDA | 00 00 | uint8_t[2] | .. | padding vtable (reflection.Field): - +0x2B24 | 1C 00 | uint16_t | 0x001C (28) | size of this vtable - +0x2B26 | 1C 00 | uint16_t | 0x001C (28) | size of referring table - +0x2B28 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `name` (id: 0) - +0x2B2A | 10 00 | VOffset16 | 0x0010 (16) | offset to field `type` (id: 1) - +0x2B2C | 08 00 | VOffset16 | 0x0008 (8) | offset to field `id` (id: 2) - +0x2B2E | 0A 00 | VOffset16 | 0x000A (10) | offset to field `offset` (id: 3) - +0x2B30 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) (Long) - +0x2B32 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) (Double) - +0x2B34 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) - +0x2B36 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) (Bool) - +0x2B38 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 8) (Bool) - +0x2B3A | 14 00 | VOffset16 | 0x0014 (20) | offset to field `attributes` (id: 9) - +0x2B3C | 18 00 | VOffset16 | 0x0018 (24) | offset to field `documentation` (id: 10) - +0x2B3E | 07 00 | VOffset16 | 0x0007 (7) | offset to field `optional` (id: 11) + +0x2EDC | 1C 00 | uint16_t | 0x001C (28) | size of this vtable + +0x2EDE | 1C 00 | uint16_t | 0x001C (28) | size of referring table + +0x2EE0 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `name` (id: 0) + +0x2EE2 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `type` (id: 1) + +0x2EE4 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `id` (id: 2) + +0x2EE6 | 0A 00 | VOffset16 | 0x000A (10) | offset to field `offset` (id: 3) + +0x2EE8 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) (Long) + +0x2EEA | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) (Double) + +0x2EEC | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) + +0x2EEE | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) (Bool) + +0x2EF0 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 8) (Bool) + +0x2EF2 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `attributes` (id: 9) + +0x2EF4 | 18 00 | VOffset16 | 0x0018 (24) | offset to field `documentation` (id: 10) + +0x2EF6 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `optional` (id: 11) table (reflection.Field): - +0x2B40 | 1C 00 00 00 | SOffset32 | 0x0000001C (28) Loc: +0x2B24 | offset to vtable - +0x2B44 | 00 00 00 | uint8_t[3] | ... | padding - +0x2B47 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x2B48 | 05 00 | uint16_t | 0x0005 (5) | table field `id` (UShort) - +0x2B4A | 0E 00 | uint16_t | 0x000E (14) | table field `offset` (UShort) - +0x2B4C | 54 00 00 00 | UOffset32 | 0x00000054 (84) Loc: +0x2BA0 | offset to field `name` (string) - +0x2B50 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x2B94 | offset to field `type` (table) - +0x2B54 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x2B60 | offset to field `attributes` (vector) - +0x2B58 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2B5C | offset to field `documentation` (vector) + +0x2EF8 | 1C 00 00 00 | SOffset32 | 0x0000001C (28) Loc: +0x2EDC | offset to vtable + +0x2EFC | 00 00 00 | uint8_t[3] | ... | padding + +0x2EFF | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x2F00 | 05 00 | uint16_t | 0x0005 (5) | table field `id` (UShort) + +0x2F02 | 0E 00 | uint16_t | 0x000E (14) | table field `offset` (UShort) + +0x2F04 | 54 00 00 00 | UOffset32 | 0x00000054 (84) Loc: +0x2F58 | offset to field `name` (string) + +0x2F08 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x2F4C | offset to field `type` (table) + +0x2F0C | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x2F18 | offset to field `attributes` (vector) + +0x2F10 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2F14 | offset to field `documentation` (vector) vector (reflection.Field.documentation): - +0x2B5C | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x2F14 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) vector (reflection.Field.attributes): - +0x2B60 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x2B64 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2B68 | offset to table[0] + +0x2F18 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x2F1C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2F20 | offset to table[0] table (reflection.KeyValue): - +0x2B68 | 04 F6 FF FF | SOffset32 | 0xFFFFF604 (-2556) Loc: +0x3564 | offset to vtable - +0x2B6C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2B7C | offset to field `key` (string) - +0x2B70 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2B74 | offset to field `value` (string) + +0x2F20 | 04 F6 FF FF | SOffset32 | 0xFFFFF604 (-2556) Loc: +0x391C | offset to vtable + +0x2F24 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2F34 | offset to field `key` (string) + +0x2F28 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2F2C | offset to field `value` (string) string (reflection.KeyValue.value): - +0x2B74 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x2B78 | 35 | char[1] | 5 | string literal - +0x2B79 | 00 | char | 0x00 (0) | string terminator + +0x2F2C | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x2F30 | 35 | char[1] | 5 | string literal + +0x2F31 | 00 | char | 0x00 (0) | string terminator padding: - +0x2B7A | 00 00 | uint8_t[2] | .. | padding + +0x2F32 | 00 00 | uint8_t[2] | .. | padding string (reflection.KeyValue.key): - +0x2B7C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x2B80 | 69 64 | char[2] | id | string literal - +0x2B82 | 00 | char | 0x00 (0) | string terminator + +0x2F34 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2F38 | 69 64 | char[2] | id | string literal + +0x2F3A | 00 | char | 0x00 (0) | string terminator vtable (reflection.Type): - +0x2B84 | 10 00 | uint16_t | 0x0010 (16) | size of this vtable - +0x2B86 | 0C 00 | uint16_t | 0x000C (12) | size of referring table - +0x2B88 | 06 00 | VOffset16 | 0x0006 (6) | offset to field `base_type` (id: 0) - +0x2B8A | 07 00 | VOffset16 | 0x0007 (7) | offset to field `element` (id: 1) - +0x2B8C | 00 00 | VOffset16 | 0x0000 (0) | offset to field `index` (id: 2) (Int) - +0x2B8E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `fixed_length` (id: 3) (UShort) - +0x2B90 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `base_size` (id: 4) (UInt) - +0x2B92 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `element_size` (id: 5) + +0x2F3C | 10 00 | uint16_t | 0x0010 (16) | size of this vtable + +0x2F3E | 0C 00 | uint16_t | 0x000C (12) | size of referring table + +0x2F40 | 06 00 | VOffset16 | 0x0006 (6) | offset to field `base_type` (id: 0) + +0x2F42 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `element` (id: 1) + +0x2F44 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `index` (id: 2) (Int) + +0x2F46 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `fixed_length` (id: 3) (UShort) + +0x2F48 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `base_size` (id: 4) (UInt) + +0x2F4A | 08 00 | VOffset16 | 0x0008 (8) | offset to field `element_size` (id: 5) table (reflection.Type): - +0x2B94 | 10 00 00 00 | SOffset32 | 0x00000010 (16) Loc: +0x2B84 | offset to vtable - +0x2B98 | 00 00 | uint8_t[2] | .. | padding - +0x2B9A | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) - +0x2B9B | 04 | uint8_t | 0x04 (4) | table field `element` (Byte) - +0x2B9C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x2F4C | 10 00 00 00 | SOffset32 | 0x00000010 (16) Loc: +0x2F3C | offset to vtable + +0x2F50 | 00 00 | uint8_t[2] | .. | padding + +0x2F52 | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) + +0x2F53 | 04 | uint8_t | 0x04 (4) | table field `element` (Byte) + +0x2F54 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x2BA0 | 09 00 00 00 | uint32_t | 0x00000009 (9) | length of string - +0x2BA4 | 69 6E 76 65 6E 74 6F 72 | char[9] | inventor | string literal - +0x2BAC | 79 | | y - +0x2BAD | 00 | char | 0x00 (0) | string terminator + +0x2F58 | 09 00 00 00 | uint32_t | 0x00000009 (9) | length of string + +0x2F5C | 69 6E 76 65 6E 74 6F 72 | char[9] | inventor | string literal + +0x2F64 | 79 | | y + +0x2F65 | 00 | char | 0x00 (0) | string terminator vtable (reflection.Field): - +0x2BAE | 1A 00 | uint16_t | 0x001A (26) | size of this vtable - +0x2BB0 | 1C 00 | uint16_t | 0x001C (28) | size of referring table - +0x2BB2 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `name` (id: 0) - +0x2BB4 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `type` (id: 1) - +0x2BB6 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `id` (id: 2) - +0x2BB8 | 0A 00 | VOffset16 | 0x000A (10) | offset to field `offset` (id: 3) - +0x2BBA | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) (Long) - +0x2BBC | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) (Double) - +0x2BBE | 07 00 | VOffset16 | 0x0007 (7) | offset to field `deprecated` (id: 6) - +0x2BC0 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) (Bool) - +0x2BC2 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 8) (Bool) - +0x2BC4 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `attributes` (id: 9) - +0x2BC6 | 18 00 | VOffset16 | 0x0018 (24) | offset to field `documentation` (id: 10) + +0x2F66 | 1A 00 | uint16_t | 0x001A (26) | size of this vtable + +0x2F68 | 1C 00 | uint16_t | 0x001C (28) | size of referring table + +0x2F6A | 0C 00 | VOffset16 | 0x000C (12) | offset to field `name` (id: 0) + +0x2F6C | 10 00 | VOffset16 | 0x0010 (16) | offset to field `type` (id: 1) + +0x2F6E | 08 00 | VOffset16 | 0x0008 (8) | offset to field `id` (id: 2) + +0x2F70 | 0A 00 | VOffset16 | 0x000A (10) | offset to field `offset` (id: 3) + +0x2F72 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) (Long) + +0x2F74 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) (Double) + +0x2F76 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `deprecated` (id: 6) + +0x2F78 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) (Bool) + +0x2F7A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 8) (Bool) + +0x2F7C | 14 00 | VOffset16 | 0x0014 (20) | offset to field `attributes` (id: 9) + +0x2F7E | 18 00 | VOffset16 | 0x0018 (24) | offset to field `documentation` (id: 10) table (reflection.Field): - +0x2BC8 | 1A 00 00 00 | SOffset32 | 0x0000001A (26) Loc: +0x2BAE | offset to vtable - +0x2BCC | 00 00 00 | uint8_t[3] | ... | padding - +0x2BCF | 01 | uint8_t | 0x01 (1) | table field `deprecated` (Bool) - +0x2BD0 | 04 00 | uint16_t | 0x0004 (4) | table field `id` (UShort) - +0x2BD2 | 0C 00 | uint16_t | 0x000C (12) | table field `offset` (UShort) - +0x2BD4 | 98 00 00 00 | UOffset32 | 0x00000098 (152) Loc: +0x2C6C | offset to field `name` (string) - +0x2BD8 | 84 00 00 00 | UOffset32 | 0x00000084 (132) Loc: +0x2C5C | offset to field `type` (table) - +0x2BDC | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x2BE8 | offset to field `attributes` (vector) - +0x2BE0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2BE4 | offset to field `documentation` (vector) + +0x2F80 | 1A 00 00 00 | SOffset32 | 0x0000001A (26) Loc: +0x2F66 | offset to vtable + +0x2F84 | 00 00 00 | uint8_t[3] | ... | padding + +0x2F87 | 01 | uint8_t | 0x01 (1) | table field `deprecated` (Bool) + +0x2F88 | 04 00 | uint16_t | 0x0004 (4) | table field `id` (UShort) + +0x2F8A | 0C 00 | uint16_t | 0x000C (12) | table field `offset` (UShort) + +0x2F8C | 98 00 00 00 | UOffset32 | 0x00000098 (152) Loc: +0x3024 | offset to field `name` (string) + +0x2F90 | 84 00 00 00 | UOffset32 | 0x00000084 (132) Loc: +0x3014 | offset to field `type` (table) + +0x2F94 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x2FA0 | offset to field `attributes` (vector) + +0x2F98 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2F9C | offset to field `documentation` (vector) vector (reflection.Field.documentation): - +0x2BE4 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x2F9C | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) vector (reflection.Field.attributes): - +0x2BE8 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) - +0x2BEC | 4C 00 00 00 | UOffset32 | 0x0000004C (76) Loc: +0x2C38 | offset to table[0] - +0x2BF0 | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: +0x2C1C | offset to table[1] - +0x2BF4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2BF8 | offset to table[2] + +0x2FA0 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) + +0x2FA4 | 4C 00 00 00 | UOffset32 | 0x0000004C (76) Loc: +0x2FF0 | offset to table[0] + +0x2FA8 | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: +0x2FD4 | offset to table[1] + +0x2FAC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2FB0 | offset to table[2] table (reflection.KeyValue): - +0x2BF8 | 94 F6 FF FF | SOffset32 | 0xFFFFF694 (-2412) Loc: +0x3564 | offset to vtable - +0x2BFC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2C0C | offset to field `key` (string) - +0x2C00 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2C04 | offset to field `value` (string) + +0x2FB0 | 94 F6 FF FF | SOffset32 | 0xFFFFF694 (-2412) Loc: +0x391C | offset to vtable + +0x2FB4 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2FC4 | offset to field `key` (string) + +0x2FB8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2FBC | offset to field `value` (string) string (reflection.KeyValue.value): - +0x2C04 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x2C08 | 31 | char[1] | 1 | string literal - +0x2C09 | 00 | char | 0x00 (0) | string terminator + +0x2FBC | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x2FC0 | 31 | char[1] | 1 | string literal + +0x2FC1 | 00 | char | 0x00 (0) | string terminator padding: - +0x2C0A | 00 00 | uint8_t[2] | .. | padding + +0x2FC2 | 00 00 | uint8_t[2] | .. | padding string (reflection.KeyValue.key): - +0x2C0C | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string - +0x2C10 | 70 72 69 6F 72 69 74 79 | char[8] | priority | string literal - +0x2C18 | 00 | char | 0x00 (0) | string terminator + +0x2FC4 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string + +0x2FC8 | 70 72 69 6F 72 69 74 79 | char[8] | priority | string literal + +0x2FD0 | 00 | char | 0x00 (0) | string terminator padding: - +0x2C19 | 00 00 00 | uint8_t[3] | ... | padding + +0x2FD1 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.KeyValue): - +0x2C1C | B8 F6 FF FF | SOffset32 | 0xFFFFF6B8 (-2376) Loc: +0x3564 | offset to vtable - +0x2C20 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2C30 | offset to field `key` (string) - +0x2C24 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2C28 | offset to field `value` (string) + +0x2FD4 | B8 F6 FF FF | SOffset32 | 0xFFFFF6B8 (-2376) Loc: +0x391C | offset to vtable + +0x2FD8 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2FE8 | offset to field `key` (string) + +0x2FDC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2FE0 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x2C28 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x2C2C | 34 | char[1] | 4 | string literal - +0x2C2D | 00 | char | 0x00 (0) | string terminator + +0x2FE0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x2FE4 | 34 | char[1] | 4 | string literal + +0x2FE5 | 00 | char | 0x00 (0) | string terminator padding: - +0x2C2E | 00 00 | uint8_t[2] | .. | padding + +0x2FE6 | 00 00 | uint8_t[2] | .. | padding string (reflection.KeyValue.key): - +0x2C30 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x2C34 | 69 64 | char[2] | id | string literal - +0x2C36 | 00 | char | 0x00 (0) | string terminator + +0x2FE8 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2FEC | 69 64 | char[2] | id | string literal + +0x2FEE | 00 | char | 0x00 (0) | string terminator table (reflection.KeyValue): - +0x2C38 | D4 F6 FF FF | SOffset32 | 0xFFFFF6D4 (-2348) Loc: +0x3564 | offset to vtable - +0x2C3C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2C4C | offset to field `key` (string) - +0x2C40 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2C44 | offset to field `value` (string) + +0x2FF0 | D4 F6 FF FF | SOffset32 | 0xFFFFF6D4 (-2348) Loc: +0x391C | offset to vtable + +0x2FF4 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x3004 | offset to field `key` (string) + +0x2FF8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2FFC | offset to field `value` (string) string (reflection.KeyValue.value): - +0x2C44 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x2C48 | 30 | char[1] | 0 | string literal - +0x2C49 | 00 | char | 0x00 (0) | string terminator + +0x2FFC | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x3000 | 30 | char[1] | 0 | string literal + +0x3001 | 00 | char | 0x00 (0) | string terminator padding: - +0x2C4A | 00 00 | uint8_t[2] | .. | padding + +0x3002 | 00 00 | uint8_t[2] | .. | padding string (reflection.KeyValue.key): - +0x2C4C | 0A 00 00 00 | uint32_t | 0x0000000A (10) | length of string - +0x2C50 | 64 65 70 72 65 63 61 74 | char[10] | deprecat | string literal - +0x2C58 | 65 64 | | ed - +0x2C5A | 00 | char | 0x00 (0) | string terminator + +0x3004 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | length of string + +0x3008 | 64 65 70 72 65 63 61 74 | char[10] | deprecat | string literal + +0x3010 | 65 64 | | ed + +0x3012 | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x2C5C | 78 F5 FF FF | SOffset32 | 0xFFFFF578 (-2696) Loc: +0x36E4 | offset to vtable - +0x2C60 | 00 00 00 | uint8_t[3] | ... | padding - +0x2C63 | 02 | uint8_t | 0x02 (2) | table field `base_type` (Byte) - +0x2C64 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) - +0x2C68 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x3014 | 78 F5 FF FF | SOffset32 | 0xFFFFF578 (-2696) Loc: +0x3A9C | offset to vtable + +0x3018 | 00 00 00 | uint8_t[3] | ... | padding + +0x301B | 02 | uint8_t | 0x02 (2) | table field `base_type` (Byte) + +0x301C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) + +0x3020 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x2C6C | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string - +0x2C70 | 66 72 69 65 6E 64 6C 79 | char[8] | friendly | string literal - +0x2C78 | 00 | char | 0x00 (0) | string terminator + +0x3024 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string + +0x3028 | 66 72 69 65 6E 64 6C 79 | char[8] | friendly | string literal + +0x3030 | 00 | char | 0x00 (0) | string terminator vtable (reflection.Field): - +0x2C7A | 1A 00 | uint16_t | 0x001A (26) | size of this vtable - +0x2C7C | 1C 00 | uint16_t | 0x001C (28) | size of referring table - +0x2C7E | 0C 00 | VOffset16 | 0x000C (12) | offset to field `name` (id: 0) - +0x2C80 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `type` (id: 1) - +0x2C82 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `id` (id: 2) - +0x2C84 | 0A 00 | VOffset16 | 0x000A (10) | offset to field `offset` (id: 3) - +0x2C86 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) (Long) - +0x2C88 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) (Double) - +0x2C8A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) - +0x2C8C | 06 00 | VOffset16 | 0x0006 (6) | offset to field `required` (id: 7) - +0x2C8E | 07 00 | VOffset16 | 0x0007 (7) | offset to field `key` (id: 8) - +0x2C90 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `attributes` (id: 9) - +0x2C92 | 18 00 | VOffset16 | 0x0018 (24) | offset to field `documentation` (id: 10) + +0x3032 | 1A 00 | uint16_t | 0x001A (26) | size of this vtable + +0x3034 | 1C 00 | uint16_t | 0x001C (28) | size of referring table + +0x3036 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `name` (id: 0) + +0x3038 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `type` (id: 1) + +0x303A | 08 00 | VOffset16 | 0x0008 (8) | offset to field `id` (id: 2) + +0x303C | 0A 00 | VOffset16 | 0x000A (10) | offset to field `offset` (id: 3) + +0x303E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) (Long) + +0x3040 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) (Double) + +0x3042 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) + +0x3044 | 06 00 | VOffset16 | 0x0006 (6) | offset to field `required` (id: 7) + +0x3046 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `key` (id: 8) + +0x3048 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `attributes` (id: 9) + +0x304A | 18 00 | VOffset16 | 0x0018 (24) | offset to field `documentation` (id: 10) table (reflection.Field): - +0x2C94 | 1A 00 00 00 | SOffset32 | 0x0000001A (26) Loc: +0x2C7A | offset to vtable - +0x2C98 | 00 00 | uint8_t[2] | .. | padding - +0x2C9A | 01 | uint8_t | 0x01 (1) | table field `required` (Bool) - +0x2C9B | 01 | uint8_t | 0x01 (1) | table field `key` (Bool) - +0x2C9C | 03 00 | uint16_t | 0x0003 (3) | table field `id` (UShort) - +0x2C9E | 0A 00 | uint16_t | 0x000A (10) | table field `offset` (UShort) - +0x2CA0 | 64 00 00 00 | UOffset32 | 0x00000064 (100) Loc: +0x2D04 | offset to field `name` (string) - +0x2CA4 | 54 00 00 00 | UOffset32 | 0x00000054 (84) Loc: +0x2CF8 | offset to field `type` (table) - +0x2CA8 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x2CB4 | offset to field `attributes` (vector) - +0x2CAC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2CB0 | offset to field `documentation` (vector) + +0x304C | 1A 00 00 00 | SOffset32 | 0x0000001A (26) Loc: +0x3032 | offset to vtable + +0x3050 | 00 00 | uint8_t[2] | .. | padding + +0x3052 | 01 | uint8_t | 0x01 (1) | table field `required` (Bool) + +0x3053 | 01 | uint8_t | 0x01 (1) | table field `key` (Bool) + +0x3054 | 03 00 | uint16_t | 0x0003 (3) | table field `id` (UShort) + +0x3056 | 0A 00 | uint16_t | 0x000A (10) | table field `offset` (UShort) + +0x3058 | 64 00 00 00 | UOffset32 | 0x00000064 (100) Loc: +0x30BC | offset to field `name` (string) + +0x305C | 54 00 00 00 | UOffset32 | 0x00000054 (84) Loc: +0x30B0 | offset to field `type` (table) + +0x3060 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x306C | offset to field `attributes` (vector) + +0x3064 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3068 | offset to field `documentation` (vector) vector (reflection.Field.documentation): - +0x2CB0 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x3068 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) vector (reflection.Field.attributes): - +0x2CB4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) - +0x2CB8 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x2CDC | offset to table[0] - +0x2CBC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2CC0 | offset to table[1] + +0x306C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) + +0x3070 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x3094 | offset to table[0] + +0x3074 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3078 | offset to table[1] table (reflection.KeyValue): - +0x2CC0 | 5C F7 FF FF | SOffset32 | 0xFFFFF75C (-2212) Loc: +0x3564 | offset to vtable - +0x2CC4 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2CD4 | offset to field `key` (string) - +0x2CC8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2CCC | offset to field `value` (string) + +0x3078 | 5C F7 FF FF | SOffset32 | 0xFFFFF75C (-2212) Loc: +0x391C | offset to vtable + +0x307C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x308C | offset to field `key` (string) + +0x3080 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3084 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x2CCC | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x2CD0 | 30 | char[1] | 0 | string literal - +0x2CD1 | 00 | char | 0x00 (0) | string terminator + +0x3084 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x3088 | 30 | char[1] | 0 | string literal + +0x3089 | 00 | char | 0x00 (0) | string terminator padding: - +0x2CD2 | 00 00 | uint8_t[2] | .. | padding + +0x308A | 00 00 | uint8_t[2] | .. | padding string (reflection.KeyValue.key): - +0x2CD4 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string - +0x2CD8 | 6B 65 79 | char[3] | key | string literal - +0x2CDB | 00 | char | 0x00 (0) | string terminator + +0x308C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string + +0x3090 | 6B 65 79 | char[3] | key | string literal + +0x3093 | 00 | char | 0x00 (0) | string terminator table (reflection.KeyValue): - +0x2CDC | 78 F7 FF FF | SOffset32 | 0xFFFFF778 (-2184) Loc: +0x3564 | offset to vtable - +0x2CE0 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2CF0 | offset to field `key` (string) - +0x2CE4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2CE8 | offset to field `value` (string) + +0x3094 | 78 F7 FF FF | SOffset32 | 0xFFFFF778 (-2184) Loc: +0x391C | offset to vtable + +0x3098 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x30A8 | offset to field `key` (string) + +0x309C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x30A0 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x2CE8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x2CEC | 33 | char[1] | 3 | string literal - +0x2CED | 00 | char | 0x00 (0) | string terminator + +0x30A0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x30A4 | 33 | char[1] | 3 | string literal + +0x30A5 | 00 | char | 0x00 (0) | string terminator padding: - +0x2CEE | 00 00 | uint8_t[2] | .. | padding + +0x30A6 | 00 00 | uint8_t[2] | .. | padding string (reflection.KeyValue.key): - +0x2CF0 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x2CF4 | 69 64 | char[2] | id | string literal - +0x2CF6 | 00 | char | 0x00 (0) | string terminator + +0x30A8 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x30AC | 69 64 | char[2] | id | string literal + +0x30AE | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x2CF8 | 5C F3 FF FF | SOffset32 | 0xFFFFF35C (-3236) Loc: +0x399C | offset to vtable - +0x2CFC | 00 00 00 | uint8_t[3] | ... | padding - +0x2CFF | 0D | uint8_t | 0x0D (13) | table field `base_type` (Byte) - +0x2D00 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x30B0 | 5C F3 FF FF | SOffset32 | 0xFFFFF35C (-3236) Loc: +0x3D54 | offset to vtable + +0x30B4 | 00 00 00 | uint8_t[3] | ... | padding + +0x30B7 | 0D | uint8_t | 0x0D (13) | table field `base_type` (Byte) + +0x30B8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x2D04 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string - +0x2D08 | 6E 61 6D 65 | char[4] | name | string literal - +0x2D0C | 00 | char | 0x00 (0) | string terminator + +0x30BC | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string + +0x30C0 | 6E 61 6D 65 | char[4] | name | string literal + +0x30C4 | 00 | char | 0x00 (0) | string terminator padding: - +0x2D0D | 00 00 00 | uint8_t[3] | ... | padding + +0x30C5 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Field): - +0x2D10 | 9A FF FF FF | SOffset32 | 0xFFFFFF9A (-102) Loc: +0x2D76 | offset to vtable - +0x2D14 | 02 00 | uint16_t | 0x0002 (2) | table field `id` (UShort) - +0x2D16 | 08 00 | uint16_t | 0x0008 (8) | table field `offset` (UShort) - +0x2D18 | 54 00 00 00 | UOffset32 | 0x00000054 (84) Loc: +0x2D6C | offset to field `name` (string) - +0x2D1C | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: +0x2D5C | offset to field `type` (table) - +0x2D20 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x2D38 | offset to field `attributes` (vector) - +0x2D24 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2D34 | offset to field `documentation` (vector) - +0x2D28 | 64 00 00 00 00 00 00 00 | int64_t | 0x0000000000000064 (100) | table field `default_integer` (Long) - +0x2D30 | 00 00 00 00 | uint8_t[4] | .... | padding + +0x30C8 | 9A FF FF FF | SOffset32 | 0xFFFFFF9A (-102) Loc: +0x312E | offset to vtable + +0x30CC | 02 00 | uint16_t | 0x0002 (2) | table field `id` (UShort) + +0x30CE | 08 00 | uint16_t | 0x0008 (8) | table field `offset` (UShort) + +0x30D0 | 54 00 00 00 | UOffset32 | 0x00000054 (84) Loc: +0x3124 | offset to field `name` (string) + +0x30D4 | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: +0x3114 | offset to field `type` (table) + +0x30D8 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x30F0 | offset to field `attributes` (vector) + +0x30DC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x30EC | offset to field `documentation` (vector) + +0x30E0 | 64 00 00 00 00 00 00 00 | int64_t | 0x0000000000000064 (100) | table field `default_integer` (Long) + +0x30E8 | 00 00 00 00 | uint8_t[4] | .... | padding vector (reflection.Field.documentation): - +0x2D34 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x30EC | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) vector (reflection.Field.attributes): - +0x2D38 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x2D3C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2D40 | offset to table[0] + +0x30F0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x30F4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x30F8 | offset to table[0] table (reflection.KeyValue): - +0x2D40 | DC F7 FF FF | SOffset32 | 0xFFFFF7DC (-2084) Loc: +0x3564 | offset to vtable - +0x2D44 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2D54 | offset to field `key` (string) - +0x2D48 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2D4C | offset to field `value` (string) + +0x30F8 | DC F7 FF FF | SOffset32 | 0xFFFFF7DC (-2084) Loc: +0x391C | offset to vtable + +0x30FC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x310C | offset to field `key` (string) + +0x3100 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3104 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x2D4C | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x2D50 | 32 | char[1] | 2 | string literal - +0x2D51 | 00 | char | 0x00 (0) | string terminator + +0x3104 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x3108 | 32 | char[1] | 2 | string literal + +0x3109 | 00 | char | 0x00 (0) | string terminator padding: - +0x2D52 | 00 00 | uint8_t[2] | .. | padding + +0x310A | 00 00 | uint8_t[2] | .. | padding string (reflection.KeyValue.key): - +0x2D54 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x2D58 | 69 64 | char[2] | id | string literal - +0x2D5A | 00 | char | 0x00 (0) | string terminator + +0x310C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x3110 | 69 64 | char[2] | id | string literal + +0x3112 | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x2D5C | 78 F6 FF FF | SOffset32 | 0xFFFFF678 (-2440) Loc: +0x36E4 | offset to vtable - +0x2D60 | 00 00 00 | uint8_t[3] | ... | padding - +0x2D63 | 05 | uint8_t | 0x05 (5) | table field `base_type` (Byte) - +0x2D64 | 02 00 00 00 | uint32_t | 0x00000002 (2) | table field `base_size` (UInt) - +0x2D68 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x3114 | 78 F6 FF FF | SOffset32 | 0xFFFFF678 (-2440) Loc: +0x3A9C | offset to vtable + +0x3118 | 00 00 00 | uint8_t[3] | ... | padding + +0x311B | 05 | uint8_t | 0x05 (5) | table field `base_type` (Byte) + +0x311C | 02 00 00 00 | uint32_t | 0x00000002 (2) | table field `base_size` (UInt) + +0x3120 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x2D6C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x2D70 | 68 70 | char[2] | hp | string literal - +0x2D72 | 00 | char | 0x00 (0) | string terminator + +0x3124 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x3128 | 68 70 | char[2] | hp | string literal + +0x312A | 00 | char | 0x00 (0) | string terminator padding: - +0x2D73 | 00 00 00 | uint8_t[3] | ... | padding + +0x312B | 00 00 00 | uint8_t[3] | ... | padding vtable (reflection.Field): - +0x2D76 | 1A 00 | uint16_t | 0x001A (26) | size of this vtable - +0x2D78 | 24 00 | uint16_t | 0x0024 (36) | size of referring table - +0x2D7A | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0) - +0x2D7C | 0C 00 | VOffset16 | 0x000C (12) | offset to field `type` (id: 1) - +0x2D7E | 04 00 | VOffset16 | 0x0004 (4) | offset to field `id` (id: 2) - +0x2D80 | 06 00 | VOffset16 | 0x0006 (6) | offset to field `offset` (id: 3) - +0x2D82 | 18 00 | VOffset16 | 0x0018 (24) | offset to field `default_integer` (id: 4) - +0x2D84 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) (Double) - +0x2D86 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) - +0x2D88 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) (Bool) - +0x2D8A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 8) (Bool) - +0x2D8C | 10 00 | VOffset16 | 0x0010 (16) | offset to field `attributes` (id: 9) - +0x2D8E | 14 00 | VOffset16 | 0x0014 (20) | offset to field `documentation` (id: 10) + +0x312E | 1A 00 | uint16_t | 0x001A (26) | size of this vtable + +0x3130 | 24 00 | uint16_t | 0x0024 (36) | size of referring table + +0x3132 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0) + +0x3134 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `type` (id: 1) + +0x3136 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `id` (id: 2) + +0x3138 | 06 00 | VOffset16 | 0x0006 (6) | offset to field `offset` (id: 3) + +0x313A | 18 00 | VOffset16 | 0x0018 (24) | offset to field `default_integer` (id: 4) + +0x313C | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) (Double) + +0x313E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) + +0x3140 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) (Bool) + +0x3142 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 8) (Bool) + +0x3144 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `attributes` (id: 9) + +0x3146 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `documentation` (id: 10) table (reflection.Field): - +0x2D90 | 1A 00 00 00 | SOffset32 | 0x0000001A (26) Loc: +0x2D76 | offset to vtable - +0x2D94 | 01 00 | uint16_t | 0x0001 (1) | table field `id` (UShort) - +0x2D96 | 06 00 | uint16_t | 0x0006 (6) | table field `offset` (UShort) - +0x2D98 | 54 00 00 00 | UOffset32 | 0x00000054 (84) Loc: +0x2DEC | offset to field `name` (string) - +0x2D9C | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: +0x2DDC | offset to field `type` (table) - +0x2DA0 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x2DB8 | offset to field `attributes` (vector) - +0x2DA4 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2DB4 | offset to field `documentation` (vector) - +0x2DA8 | 96 00 00 00 00 00 00 00 | int64_t | 0x0000000000000096 (150) | table field `default_integer` (Long) - +0x2DB0 | 00 00 00 00 | uint8_t[4] | .... | padding + +0x3148 | 1A 00 00 00 | SOffset32 | 0x0000001A (26) Loc: +0x312E | offset to vtable + +0x314C | 01 00 | uint16_t | 0x0001 (1) | table field `id` (UShort) + +0x314E | 06 00 | uint16_t | 0x0006 (6) | table field `offset` (UShort) + +0x3150 | 54 00 00 00 | UOffset32 | 0x00000054 (84) Loc: +0x31A4 | offset to field `name` (string) + +0x3154 | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: +0x3194 | offset to field `type` (table) + +0x3158 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x3170 | offset to field `attributes` (vector) + +0x315C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x316C | offset to field `documentation` (vector) + +0x3160 | 96 00 00 00 00 00 00 00 | int64_t | 0x0000000000000096 (150) | table field `default_integer` (Long) + +0x3168 | 00 00 00 00 | uint8_t[4] | .... | padding vector (reflection.Field.documentation): - +0x2DB4 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x316C | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) vector (reflection.Field.attributes): - +0x2DB8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x2DBC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2DC0 | offset to table[0] + +0x3170 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x3174 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3178 | offset to table[0] table (reflection.KeyValue): - +0x2DC0 | 5C F8 FF FF | SOffset32 | 0xFFFFF85C (-1956) Loc: +0x3564 | offset to vtable - +0x2DC4 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2DD4 | offset to field `key` (string) - +0x2DC8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2DCC | offset to field `value` (string) + +0x3178 | 5C F8 FF FF | SOffset32 | 0xFFFFF85C (-1956) Loc: +0x391C | offset to vtable + +0x317C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x318C | offset to field `key` (string) + +0x3180 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3184 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x2DCC | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x2DD0 | 31 | char[1] | 1 | string literal - +0x2DD1 | 00 | char | 0x00 (0) | string terminator + +0x3184 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x3188 | 31 | char[1] | 1 | string literal + +0x3189 | 00 | char | 0x00 (0) | string terminator padding: - +0x2DD2 | 00 00 | uint8_t[2] | .. | padding + +0x318A | 00 00 | uint8_t[2] | .. | padding string (reflection.KeyValue.key): - +0x2DD4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x2DD8 | 69 64 | char[2] | id | string literal - +0x2DDA | 00 | char | 0x00 (0) | string terminator + +0x318C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x3190 | 69 64 | char[2] | id | string literal + +0x3192 | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x2DDC | F8 F6 FF FF | SOffset32 | 0xFFFFF6F8 (-2312) Loc: +0x36E4 | offset to vtable - +0x2DE0 | 00 00 00 | uint8_t[3] | ... | padding - +0x2DE3 | 05 | uint8_t | 0x05 (5) | table field `base_type` (Byte) - +0x2DE4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | table field `base_size` (UInt) - +0x2DE8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x3194 | F8 F6 FF FF | SOffset32 | 0xFFFFF6F8 (-2312) Loc: +0x3A9C | offset to vtable + +0x3198 | 00 00 00 | uint8_t[3] | ... | padding + +0x319B | 05 | uint8_t | 0x05 (5) | table field `base_type` (Byte) + +0x319C | 02 00 00 00 | uint32_t | 0x00000002 (2) | table field `base_size` (UInt) + +0x31A0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x2DEC | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string - +0x2DF0 | 6D 61 6E 61 | char[4] | mana | string literal - +0x2DF4 | 00 | char | 0x00 (0) | string terminator + +0x31A4 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string + +0x31A8 | 6D 61 6E 61 | char[4] | mana | string literal + +0x31AC | 00 | char | 0x00 (0) | string terminator padding: - +0x2DF5 | 00 00 00 | uint8_t[3] | ... | padding + +0x31AD | 00 00 00 | uint8_t[3] | ... | padding vtable (reflection.Field): - +0x2DF8 | 1C 00 | uint16_t | 0x001C (28) | size of this vtable - +0x2DFA | 18 00 | uint16_t | 0x0018 (24) | size of referring table - +0x2DFC | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0) - +0x2DFE | 0C 00 | VOffset16 | 0x000C (12) | offset to field `type` (id: 1) - +0x2E00 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `id` (id: 2) (UShort) - +0x2E02 | 06 00 | VOffset16 | 0x0006 (6) | offset to field `offset` (id: 3) - +0x2E04 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) (Long) - +0x2E06 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) (Double) - +0x2E08 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) - +0x2E0A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) (Bool) - +0x2E0C | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 8) (Bool) - +0x2E0E | 10 00 | VOffset16 | 0x0010 (16) | offset to field `attributes` (id: 9) - +0x2E10 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `documentation` (id: 10) - +0x2E12 | 05 00 | VOffset16 | 0x0005 (5) | offset to field `optional` (id: 11) + +0x31B0 | 1C 00 | uint16_t | 0x001C (28) | size of this vtable + +0x31B2 | 18 00 | uint16_t | 0x0018 (24) | size of referring table + +0x31B4 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0) + +0x31B6 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `type` (id: 1) + +0x31B8 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `id` (id: 2) (UShort) + +0x31BA | 06 00 | VOffset16 | 0x0006 (6) | offset to field `offset` (id: 3) + +0x31BC | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) (Long) + +0x31BE | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) (Double) + +0x31C0 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) + +0x31C2 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) (Bool) + +0x31C4 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 8) (Bool) + +0x31C6 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `attributes` (id: 9) + +0x31C8 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `documentation` (id: 10) + +0x31CA | 05 00 | VOffset16 | 0x0005 (5) | offset to field `optional` (id: 11) table (reflection.Field): - +0x2E14 | 1C 00 00 00 | SOffset32 | 0x0000001C (28) Loc: +0x2DF8 | offset to vtable - +0x2E18 | 00 | uint8_t[1] | . | padding - +0x2E19 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x2E1A | 04 00 | uint16_t | 0x0004 (4) | table field `offset` (UShort) - +0x2E1C | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: +0x2E64 | offset to field `name` (string) - +0x2E20 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x2E54 | offset to field `type` (table) - +0x2E24 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x2E30 | offset to field `attributes` (vector) - +0x2E28 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2E2C | offset to field `documentation` (vector) + +0x31CC | 1C 00 00 00 | SOffset32 | 0x0000001C (28) Loc: +0x31B0 | offset to vtable + +0x31D0 | 00 | uint8_t[1] | . | padding + +0x31D1 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x31D2 | 04 00 | uint16_t | 0x0004 (4) | table field `offset` (UShort) + +0x31D4 | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: +0x321C | offset to field `name` (string) + +0x31D8 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x320C | offset to field `type` (table) + +0x31DC | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x31E8 | offset to field `attributes` (vector) + +0x31E0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x31E4 | offset to field `documentation` (vector) vector (reflection.Field.documentation): - +0x2E2C | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x31E4 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) vector (reflection.Field.attributes): - +0x2E30 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x2E34 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2E38 | offset to table[0] + +0x31E8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x31EC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x31F0 | offset to table[0] table (reflection.KeyValue): - +0x2E38 | D4 F8 FF FF | SOffset32 | 0xFFFFF8D4 (-1836) Loc: +0x3564 | offset to vtable - +0x2E3C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2E4C | offset to field `key` (string) - +0x2E40 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2E44 | offset to field `value` (string) + +0x31F0 | D4 F8 FF FF | SOffset32 | 0xFFFFF8D4 (-1836) Loc: +0x391C | offset to vtable + +0x31F4 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x3204 | offset to field `key` (string) + +0x31F8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x31FC | offset to field `value` (string) string (reflection.KeyValue.value): - +0x2E44 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x2E48 | 30 | char[1] | 0 | string literal - +0x2E49 | 00 | char | 0x00 (0) | string terminator + +0x31FC | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x3200 | 30 | char[1] | 0 | string literal + +0x3201 | 00 | char | 0x00 (0) | string terminator padding: - +0x2E4A | 00 00 | uint8_t[2] | .. | padding + +0x3202 | 00 00 | uint8_t[2] | .. | padding string (reflection.KeyValue.key): - +0x2E4C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x2E50 | 69 64 | char[2] | id | string literal - +0x2E52 | 00 | char | 0x00 (0) | string terminator + +0x3204 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x3208 | 69 64 | char[2] | id | string literal + +0x320A | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x2E54 | 9C F5 FF FF | SOffset32 | 0xFFFFF59C (-2660) Loc: +0x38B8 | offset to vtable - +0x2E58 | 00 00 00 | uint8_t[3] | ... | padding - +0x2E5B | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) - +0x2E5C | 09 00 00 00 | uint32_t | 0x00000009 (9) | table field `index` (Int) - +0x2E60 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x320C | 9C F5 FF FF | SOffset32 | 0xFFFFF59C (-2660) Loc: +0x3C70 | offset to vtable + +0x3210 | 00 00 00 | uint8_t[3] | ... | padding + +0x3213 | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) + +0x3214 | 09 00 00 00 | uint32_t | 0x00000009 (9) | table field `index` (Int) + +0x3218 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x2E64 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string - +0x2E68 | 70 6F 73 | char[3] | pos | string literal - +0x2E6B | 00 | char | 0x00 (0) | string terminator + +0x321C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string + +0x3220 | 70 6F 73 | char[3] | pos | string literal + +0x3223 | 00 | char | 0x00 (0) | string terminator table (reflection.Object): - +0x2E6C | 44 F6 FF FF | SOffset32 | 0xFFFFF644 (-2492) Loc: +0x3828 | offset to vtable - +0x2E70 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x2E90 | offset to field `name` (string) - +0x2E74 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x2E88 | offset to field `fields` (vector) - +0x2E78 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `minalign` (Int) - +0x2E7C | 08 00 00 00 | UOffset32 | 0x00000008 (8) Loc: +0x2E84 | offset to field `documentation` (vector) - +0x2E80 | E0 08 00 00 | UOffset32 | 0x000008E0 (2272) Loc: +0x3760 | offset to field `declaration_file` (string) + +0x3224 | 44 F6 FF FF | SOffset32 | 0xFFFFF644 (-2492) Loc: +0x3BE0 | offset to vtable + +0x3228 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x3248 | offset to field `name` (string) + +0x322C | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x3240 | offset to field `fields` (vector) + +0x3230 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `minalign` (Int) + +0x3234 | 08 00 00 00 | UOffset32 | 0x00000008 (8) Loc: +0x323C | offset to field `documentation` (vector) + +0x3238 | E0 08 00 00 | UOffset32 | 0x000008E0 (2272) Loc: +0x3B18 | offset to field `declaration_file` (string) vector (reflection.Object.documentation): - +0x2E84 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x323C | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) vector (reflection.Object.fields): - +0x2E88 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x2E8C | 3C 00 00 00 | UOffset32 | 0x0000003C (60) Loc: +0x2EC8 | offset to table[0] + +0x3240 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x3244 | 3C 00 00 00 | UOffset32 | 0x0000003C (60) Loc: +0x3280 | offset to table[0] string (reflection.Object.name): - +0x2E90 | 19 00 00 00 | uint32_t | 0x00000019 (25) | length of string - +0x2E94 | 4D 79 47 61 6D 65 2E 45 | char[25] | MyGame.E | string literal - +0x2E9C | 78 61 6D 70 6C 65 2E 52 | | xample.R - +0x2EA4 | 65 66 65 72 72 61 62 6C | | eferrabl - +0x2EAC | 65 | | e - +0x2EAD | 00 | char | 0x00 (0) | string terminator + +0x3248 | 19 00 00 00 | uint32_t | 0x00000019 (25) | length of string + +0x324C | 4D 79 47 61 6D 65 2E 45 | char[25] | MyGame.E | string literal + +0x3254 | 78 61 6D 70 6C 65 2E 52 | | xample.R + +0x325C | 65 66 65 72 72 61 62 6C | | eferrabl + +0x3264 | 65 | | e + +0x3265 | 00 | char | 0x00 (0) | string terminator vtable (reflection.Field): - +0x2EAE | 1A 00 | uint16_t | 0x001A (26) | size of this vtable - +0x2EB0 | 18 00 | uint16_t | 0x0018 (24) | size of referring table - +0x2EB2 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0) - +0x2EB4 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `type` (id: 1) - +0x2EB6 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `id` (id: 2) (UShort) - +0x2EB8 | 06 00 | VOffset16 | 0x0006 (6) | offset to field `offset` (id: 3) - +0x2EBA | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) (Long) - +0x2EBC | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) (Double) - +0x2EBE | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) - +0x2EC0 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) (Bool) - +0x2EC2 | 05 00 | VOffset16 | 0x0005 (5) | offset to field `key` (id: 8) - +0x2EC4 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `attributes` (id: 9) - +0x2EC6 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `documentation` (id: 10) + +0x3266 | 1A 00 | uint16_t | 0x001A (26) | size of this vtable + +0x3268 | 18 00 | uint16_t | 0x0018 (24) | size of referring table + +0x326A | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0) + +0x326C | 0C 00 | VOffset16 | 0x000C (12) | offset to field `type` (id: 1) + +0x326E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `id` (id: 2) (UShort) + +0x3270 | 06 00 | VOffset16 | 0x0006 (6) | offset to field `offset` (id: 3) + +0x3272 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) (Long) + +0x3274 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) (Double) + +0x3276 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) + +0x3278 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) (Bool) + +0x327A | 05 00 | VOffset16 | 0x0005 (5) | offset to field `key` (id: 8) + +0x327C | 10 00 | VOffset16 | 0x0010 (16) | offset to field `attributes` (id: 9) + +0x327E | 14 00 | VOffset16 | 0x0014 (20) | offset to field `documentation` (id: 10) table (reflection.Field): - +0x2EC8 | 1A 00 00 00 | SOffset32 | 0x0000001A (26) Loc: +0x2EAE | offset to vtable - +0x2ECC | 00 | uint8_t[1] | . | padding - +0x2ECD | 01 | uint8_t | 0x01 (1) | table field `key` (Bool) - +0x2ECE | 04 00 | uint16_t | 0x0004 (4) | table field `offset` (UShort) - +0x2ED0 | 74 00 00 00 | UOffset32 | 0x00000074 (116) Loc: +0x2F44 | offset to field `name` (string) - +0x2ED4 | 60 00 00 00 | UOffset32 | 0x00000060 (96) Loc: +0x2F34 | offset to field `type` (table) - +0x2ED8 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x2EE4 | offset to field `attributes` (vector) - +0x2EDC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2EE0 | offset to field `documentation` (vector) + +0x3280 | 1A 00 00 00 | SOffset32 | 0x0000001A (26) Loc: +0x3266 | offset to vtable + +0x3284 | 00 | uint8_t[1] | . | padding + +0x3285 | 01 | uint8_t | 0x01 (1) | table field `key` (Bool) + +0x3286 | 04 00 | uint16_t | 0x0004 (4) | table field `offset` (UShort) + +0x3288 | 74 00 00 00 | UOffset32 | 0x00000074 (116) Loc: +0x32FC | offset to field `name` (string) + +0x328C | 60 00 00 00 | UOffset32 | 0x00000060 (96) Loc: +0x32EC | offset to field `type` (table) + +0x3290 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x329C | offset to field `attributes` (vector) + +0x3294 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3298 | offset to field `documentation` (vector) vector (reflection.Field.documentation): - +0x2EE0 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x3298 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) vector (reflection.Field.attributes): - +0x2EE4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) - +0x2EE8 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x2F0C | offset to table[0] - +0x2EEC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2EF0 | offset to table[1] + +0x329C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) + +0x32A0 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x32C4 | offset to table[0] + +0x32A4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x32A8 | offset to table[1] table (reflection.KeyValue): - +0x2EF0 | 8C F9 FF FF | SOffset32 | 0xFFFFF98C (-1652) Loc: +0x3564 | offset to vtable - +0x2EF4 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2F04 | offset to field `key` (string) - +0x2EF8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2EFC | offset to field `value` (string) + +0x32A8 | 8C F9 FF FF | SOffset32 | 0xFFFFF98C (-1652) Loc: +0x391C | offset to vtable + +0x32AC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x32BC | offset to field `key` (string) + +0x32B0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x32B4 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x2EFC | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x2F00 | 30 | char[1] | 0 | string literal - +0x2F01 | 00 | char | 0x00 (0) | string terminator + +0x32B4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x32B8 | 30 | char[1] | 0 | string literal + +0x32B9 | 00 | char | 0x00 (0) | string terminator padding: - +0x2F02 | 00 00 | uint8_t[2] | .. | padding + +0x32BA | 00 00 | uint8_t[2] | .. | padding string (reflection.KeyValue.key): - +0x2F04 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string - +0x2F08 | 6B 65 79 | char[3] | key | string literal - +0x2F0B | 00 | char | 0x00 (0) | string terminator + +0x32BC | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string + +0x32C0 | 6B 65 79 | char[3] | key | string literal + +0x32C3 | 00 | char | 0x00 (0) | string terminator table (reflection.KeyValue): - +0x2F0C | A8 F9 FF FF | SOffset32 | 0xFFFFF9A8 (-1624) Loc: +0x3564 | offset to vtable - +0x2F10 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x2F28 | offset to field `key` (string) - +0x2F14 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2F18 | offset to field `value` (string) + +0x32C4 | A8 F9 FF FF | SOffset32 | 0xFFFFF9A8 (-1624) Loc: +0x391C | offset to vtable + +0x32C8 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x32E0 | offset to field `key` (string) + +0x32CC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x32D0 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x2F18 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string - +0x2F1C | 66 6E 76 31 61 5F 36 34 | char[8] | fnv1a_64 | string literal - +0x2F24 | 00 | char | 0x00 (0) | string terminator + +0x32D0 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string + +0x32D4 | 66 6E 76 31 61 5F 36 34 | char[8] | fnv1a_64 | string literal + +0x32DC | 00 | char | 0x00 (0) | string terminator padding: - +0x2F25 | 00 00 00 | uint8_t[3] | ... | padding + +0x32DD | 00 00 00 | uint8_t[3] | ... | padding string (reflection.KeyValue.key): - +0x2F28 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string - +0x2F2C | 68 61 73 68 | char[4] | hash | string literal - +0x2F30 | 00 | char | 0x00 (0) | string terminator + +0x32E0 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string + +0x32E4 | 68 61 73 68 | char[4] | hash | string literal + +0x32E8 | 00 | char | 0x00 (0) | string terminator padding: - +0x2F31 | 00 00 00 | uint8_t[3] | ... | padding + +0x32E9 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Type): - +0x2F34 | 50 F8 FF FF | SOffset32 | 0xFFFFF850 (-1968) Loc: +0x36E4 | offset to vtable - +0x2F38 | 00 00 00 | uint8_t[3] | ... | padding - +0x2F3B | 0A | uint8_t | 0x0A (10) | table field `base_type` (Byte) - +0x2F3C | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt) - +0x2F40 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x32EC | 50 F8 FF FF | SOffset32 | 0xFFFFF850 (-1968) Loc: +0x3A9C | offset to vtable + +0x32F0 | 00 00 00 | uint8_t[3] | ... | padding + +0x32F3 | 0A | uint8_t | 0x0A (10) | table field `base_type` (Byte) + +0x32F4 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt) + +0x32F8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x2F44 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x2F48 | 69 64 | char[2] | id | string literal - +0x2F4A | 00 | char | 0x00 (0) | string terminator + +0x32FC | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x3300 | 69 64 | char[2] | id | string literal + +0x3302 | 00 | char | 0x00 (0) | string terminator table (reflection.Object): - +0x2F4C | 24 F7 FF FF | SOffset32 | 0xFFFFF724 (-2268) Loc: +0x3828 | offset to vtable - +0x2F50 | 28 00 00 00 | UOffset32 | 0x00000028 (40) Loc: +0x2F78 | offset to field `name` (string) - +0x2F54 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x2F68 | offset to field `fields` (vector) - +0x2F58 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `minalign` (Int) - +0x2F5C | 08 00 00 00 | UOffset32 | 0x00000008 (8) Loc: +0x2F64 | offset to field `documentation` (vector) - +0x2F60 | 00 08 00 00 | UOffset32 | 0x00000800 (2048) Loc: +0x3760 | offset to field `declaration_file` (string) + +0x3304 | 24 F7 FF FF | SOffset32 | 0xFFFFF724 (-2268) Loc: +0x3BE0 | offset to vtable + +0x3308 | 28 00 00 00 | UOffset32 | 0x00000028 (40) Loc: +0x3330 | offset to field `name` (string) + +0x330C | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x3320 | offset to field `fields` (vector) + +0x3310 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `minalign` (Int) + +0x3314 | 08 00 00 00 | UOffset32 | 0x00000008 (8) Loc: +0x331C | offset to field `documentation` (vector) + +0x3318 | 00 08 00 00 | UOffset32 | 0x00000800 (2048) Loc: +0x3B18 | offset to field `declaration_file` (string) vector (reflection.Object.documentation): - +0x2F64 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x331C | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) vector (reflection.Object.fields): - +0x2F68 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) - +0x2F6C | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: +0x2FAC | offset to table[0] - +0x2F70 | CC 00 00 00 | UOffset32 | 0x000000CC (204) Loc: +0x303C | offset to table[1] - +0x2F74 | 98 00 00 00 | UOffset32 | 0x00000098 (152) Loc: +0x300C | offset to table[2] + +0x3320 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) + +0x3324 | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: +0x3364 | offset to table[0] + +0x3328 | CC 00 00 00 | UOffset32 | 0x000000CC (204) Loc: +0x33F4 | offset to table[1] + +0x332C | 98 00 00 00 | UOffset32 | 0x00000098 (152) Loc: +0x33C4 | offset to table[2] string (reflection.Object.name): - +0x2F78 | 13 00 00 00 | uint32_t | 0x00000013 (19) | length of string - +0x2F7C | 4D 79 47 61 6D 65 2E 45 | char[19] | MyGame.E | string literal - +0x2F84 | 78 61 6D 70 6C 65 2E 53 | | xample.S - +0x2F8C | 74 61 74 | | tat - +0x2F8F | 00 | char | 0x00 (0) | string terminator + +0x3330 | 13 00 00 00 | uint32_t | 0x00000013 (19) | length of string + +0x3334 | 4D 79 47 61 6D 65 2E 45 | char[19] | MyGame.E | string literal + +0x333C | 78 61 6D 70 6C 65 2E 53 | | xample.S + +0x3344 | 74 61 74 | | tat + +0x3347 | 00 | char | 0x00 (0) | string terminator padding: - +0x2F90 | 00 00 | uint8_t[2] | .. | padding + +0x3348 | 00 00 | uint8_t[2] | .. | padding vtable (reflection.Field): - +0x2F92 | 1A 00 | uint16_t | 0x001A (26) | size of this vtable - +0x2F94 | 1C 00 | uint16_t | 0x001C (28) | size of referring table - +0x2F96 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `name` (id: 0) - +0x2F98 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `type` (id: 1) - +0x2F9A | 08 00 | VOffset16 | 0x0008 (8) | offset to field `id` (id: 2) - +0x2F9C | 0A 00 | VOffset16 | 0x000A (10) | offset to field `offset` (id: 3) - +0x2F9E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) (Long) - +0x2FA0 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) (Double) - +0x2FA2 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) - +0x2FA4 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) (Bool) - +0x2FA6 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `key` (id: 8) - +0x2FA8 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `attributes` (id: 9) - +0x2FAA | 18 00 | VOffset16 | 0x0018 (24) | offset to field `documentation` (id: 10) + +0x334A | 1A 00 | uint16_t | 0x001A (26) | size of this vtable + +0x334C | 1C 00 | uint16_t | 0x001C (28) | size of referring table + +0x334E | 0C 00 | VOffset16 | 0x000C (12) | offset to field `name` (id: 0) + +0x3350 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `type` (id: 1) + +0x3352 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `id` (id: 2) + +0x3354 | 0A 00 | VOffset16 | 0x000A (10) | offset to field `offset` (id: 3) + +0x3356 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) (Long) + +0x3358 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) (Double) + +0x335A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) + +0x335C | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) (Bool) + +0x335E | 07 00 | VOffset16 | 0x0007 (7) | offset to field `key` (id: 8) + +0x3360 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `attributes` (id: 9) + +0x3362 | 18 00 | VOffset16 | 0x0018 (24) | offset to field `documentation` (id: 10) table (reflection.Field): - +0x2FAC | 1A 00 00 00 | SOffset32 | 0x0000001A (26) Loc: +0x2F92 | offset to vtable - +0x2FB0 | 00 00 00 | uint8_t[3] | ... | padding - +0x2FB3 | 01 | uint8_t | 0x01 (1) | table field `key` (Bool) - +0x2FB4 | 02 00 | uint16_t | 0x0002 (2) | table field `id` (UShort) - +0x2FB6 | 08 00 | uint16_t | 0x0008 (8) | table field `offset` (UShort) - +0x2FB8 | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: +0x3000 | offset to field `name` (string) - +0x2FBC | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x2FF0 | offset to field `type` (table) - +0x2FC0 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x2FCC | offset to field `attributes` (vector) - +0x2FC4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2FC8 | offset to field `documentation` (vector) + +0x3364 | 1A 00 00 00 | SOffset32 | 0x0000001A (26) Loc: +0x334A | offset to vtable + +0x3368 | 00 00 00 | uint8_t[3] | ... | padding + +0x336B | 01 | uint8_t | 0x01 (1) | table field `key` (Bool) + +0x336C | 02 00 | uint16_t | 0x0002 (2) | table field `id` (UShort) + +0x336E | 08 00 | uint16_t | 0x0008 (8) | table field `offset` (UShort) + +0x3370 | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: +0x33B8 | offset to field `name` (string) + +0x3374 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x33A8 | offset to field `type` (table) + +0x3378 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x3384 | offset to field `attributes` (vector) + +0x337C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3380 | offset to field `documentation` (vector) vector (reflection.Field.documentation): - +0x2FC8 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x3380 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) vector (reflection.Field.attributes): - +0x2FCC | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x2FD0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2FD4 | offset to table[0] + +0x3384 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x3388 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x338C | offset to table[0] table (reflection.KeyValue): - +0x2FD4 | 70 FA FF FF | SOffset32 | 0xFFFFFA70 (-1424) Loc: +0x3564 | offset to vtable - +0x2FD8 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2FE8 | offset to field `key` (string) - +0x2FDC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2FE0 | offset to field `value` (string) + +0x338C | 70 FA FF FF | SOffset32 | 0xFFFFFA70 (-1424) Loc: +0x391C | offset to vtable + +0x3390 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x33A0 | offset to field `key` (string) + +0x3394 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3398 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x2FE0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x2FE4 | 30 | char[1] | 0 | string literal - +0x2FE5 | 00 | char | 0x00 (0) | string terminator + +0x3398 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x339C | 30 | char[1] | 0 | string literal + +0x339D | 00 | char | 0x00 (0) | string terminator padding: - +0x2FE6 | 00 00 | uint8_t[2] | .. | padding + +0x339E | 00 00 | uint8_t[2] | .. | padding string (reflection.KeyValue.key): - +0x2FE8 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string - +0x2FEC | 6B 65 79 | char[3] | key | string literal - +0x2FEF | 00 | char | 0x00 (0) | string terminator + +0x33A0 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string + +0x33A4 | 6B 65 79 | char[3] | key | string literal + +0x33A7 | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x2FF0 | 0C F9 FF FF | SOffset32 | 0xFFFFF90C (-1780) Loc: +0x36E4 | offset to vtable - +0x2FF4 | 00 00 00 | uint8_t[3] | ... | padding - +0x2FF7 | 06 | uint8_t | 0x06 (6) | table field `base_type` (Byte) - +0x2FF8 | 02 00 00 00 | uint32_t | 0x00000002 (2) | table field `base_size` (UInt) - +0x2FFC | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x33A8 | 0C F9 FF FF | SOffset32 | 0xFFFFF90C (-1780) Loc: +0x3A9C | offset to vtable + +0x33AC | 00 00 00 | uint8_t[3] | ... | padding + +0x33AF | 06 | uint8_t | 0x06 (6) | table field `base_type` (Byte) + +0x33B0 | 02 00 00 00 | uint32_t | 0x00000002 (2) | table field `base_size` (UInt) + +0x33B4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x3000 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string - +0x3004 | 63 6F 75 6E 74 | char[5] | count | string literal - +0x3009 | 00 | char | 0x00 (0) | string terminator + +0x33B8 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string + +0x33BC | 63 6F 75 6E 74 | char[5] | count | string literal + +0x33C1 | 00 | char | 0x00 (0) | string terminator padding: - +0x300A | 00 00 | uint8_t[2] | .. | padding + +0x33C2 | 00 00 | uint8_t[2] | .. | padding table (reflection.Field): - +0x300C | 76 FB FF FF | SOffset32 | 0xFFFFFB76 (-1162) Loc: +0x3496 | offset to vtable - +0x3010 | 01 00 | uint16_t | 0x0001 (1) | table field `id` (UShort) - +0x3012 | 06 00 | uint16_t | 0x0006 (6) | table field `offset` (UShort) - +0x3014 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x3034 | offset to field `name` (string) - +0x3018 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x3024 | offset to field `type` (table) - +0x301C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3020 | offset to field `documentation` (vector) + +0x33C4 | 76 FB FF FF | SOffset32 | 0xFFFFFB76 (-1162) Loc: +0x384E | offset to vtable + +0x33C8 | 01 00 | uint16_t | 0x0001 (1) | table field `id` (UShort) + +0x33CA | 06 00 | uint16_t | 0x0006 (6) | table field `offset` (UShort) + +0x33CC | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x33EC | offset to field `name` (string) + +0x33D0 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x33DC | offset to field `type` (table) + +0x33D4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x33D8 | offset to field `documentation` (vector) vector (reflection.Field.documentation): - +0x3020 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x33D8 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) table (reflection.Type): - +0x3024 | 40 F9 FF FF | SOffset32 | 0xFFFFF940 (-1728) Loc: +0x36E4 | offset to vtable - +0x3028 | 00 00 00 | uint8_t[3] | ... | padding - +0x302B | 09 | uint8_t | 0x09 (9) | table field `base_type` (Byte) - +0x302C | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt) - +0x3030 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x33DC | 40 F9 FF FF | SOffset32 | 0xFFFFF940 (-1728) Loc: +0x3A9C | offset to vtable + +0x33E0 | 00 00 00 | uint8_t[3] | ... | padding + +0x33E3 | 09 | uint8_t | 0x09 (9) | table field `base_type` (Byte) + +0x33E4 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt) + +0x33E8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x3034 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string - +0x3038 | 76 61 6C | char[3] | val | string literal - +0x303B | 00 | char | 0x00 (0) | string terminator + +0x33EC | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string + +0x33F0 | 76 61 6C | char[3] | val | string literal + +0x33F3 | 00 | char | 0x00 (0) | string terminator table (reflection.Field): - +0x303C | B8 F7 FF FF | SOffset32 | 0xFFFFF7B8 (-2120) Loc: +0x3884 | offset to vtable - +0x3040 | 00 | uint8_t[1] | . | padding - +0x3041 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x3042 | 04 00 | uint16_t | 0x0004 (4) | table field `offset` (UShort) - +0x3044 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: +0x3060 | offset to field `name` (string) - +0x3048 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x3054 | offset to field `type` (table) - +0x304C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3050 | offset to field `documentation` (vector) + +0x33F4 | B8 F7 FF FF | SOffset32 | 0xFFFFF7B8 (-2120) Loc: +0x3C3C | offset to vtable + +0x33F8 | 00 | uint8_t[1] | . | padding + +0x33F9 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x33FA | 04 00 | uint16_t | 0x0004 (4) | table field `offset` (UShort) + +0x33FC | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: +0x3418 | offset to field `name` (string) + +0x3400 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x340C | offset to field `type` (table) + +0x3404 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3408 | offset to field `documentation` (vector) vector (reflection.Field.documentation): - +0x3050 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x3408 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) table (reflection.Type): - +0x3054 | B8 F6 FF FF | SOffset32 | 0xFFFFF6B8 (-2376) Loc: +0x399C | offset to vtable - +0x3058 | 00 00 00 | uint8_t[3] | ... | padding - +0x305B | 0D | uint8_t | 0x0D (13) | table field `base_type` (Byte) - +0x305C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x340C | B8 F6 FF FF | SOffset32 | 0xFFFFF6B8 (-2376) Loc: +0x3D54 | offset to vtable + +0x3410 | 00 00 00 | uint8_t[3] | ... | padding + +0x3413 | 0D | uint8_t | 0x0D (13) | table field `base_type` (Byte) + +0x3414 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x3060 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x3064 | 69 64 | char[2] | id | string literal - +0x3066 | 00 | char | 0x00 (0) | string terminator + +0x3418 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x341C | 69 64 | char[2] | id | string literal + +0x341E | 00 | char | 0x00 (0) | string terminator table (reflection.Object): - +0x3068 | 88 F7 FF FF | SOffset32 | 0xFFFFF788 (-2168) Loc: +0x38E0 | offset to vtable - +0x306C | 00 00 00 | uint8_t[3] | ... | padding - +0x306F | 01 | uint8_t | 0x01 (1) | table field `is_struct` (Bool) - +0x3070 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x3094 | offset to field `name` (string) - +0x3074 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x308C | offset to field `fields` (vector) - +0x3078 | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `minalign` (Int) - +0x307C | 14 00 00 00 | uint32_t | 0x00000014 (20) | table field `bytesize` (Int) - +0x3080 | 08 00 00 00 | UOffset32 | 0x00000008 (8) Loc: +0x3088 | offset to field `documentation` (vector) - +0x3084 | DC 06 00 00 | UOffset32 | 0x000006DC (1756) Loc: +0x3760 | offset to field `declaration_file` (string) + +0x3420 | 88 F7 FF FF | SOffset32 | 0xFFFFF788 (-2168) Loc: +0x3C98 | offset to vtable + +0x3424 | 00 00 00 | uint8_t[3] | ... | padding + +0x3427 | 01 | uint8_t | 0x01 (1) | table field `is_struct` (Bool) + +0x3428 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x344C | offset to field `name` (string) + +0x342C | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x3444 | offset to field `fields` (vector) + +0x3430 | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `minalign` (Int) + +0x3434 | 14 00 00 00 | uint32_t | 0x00000014 (20) | table field `bytesize` (Int) + +0x3438 | 08 00 00 00 | UOffset32 | 0x00000008 (8) Loc: +0x3440 | offset to field `documentation` (vector) + +0x343C | DC 06 00 00 | UOffset32 | 0x000006DC (1756) Loc: +0x3B18 | offset to field `declaration_file` (string) vector (reflection.Object.documentation): - +0x3088 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x3440 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) vector (reflection.Object.fields): - +0x308C | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x3090 | 30 00 00 00 | UOffset32 | 0x00000030 (48) Loc: +0x30C0 | offset to table[0] + +0x3444 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x3448 | 30 00 00 00 | UOffset32 | 0x00000030 (48) Loc: +0x3478 | offset to table[0] string (reflection.Object.name): - +0x3094 | 27 00 00 00 | uint32_t | 0x00000027 (39) | length of string - +0x3098 | 4D 79 47 61 6D 65 2E 45 | char[39] | MyGame.E | string literal - +0x30A0 | 78 61 6D 70 6C 65 2E 53 | | xample.S - +0x30A8 | 74 72 75 63 74 4F 66 53 | | tructOfS - +0x30B0 | 74 72 75 63 74 73 4F 66 | | tructsOf - +0x30B8 | 53 74 72 75 63 74 73 | | Structs - +0x30BF | 00 | char | 0x00 (0) | string terminator + +0x344C | 27 00 00 00 | uint32_t | 0x00000027 (39) | length of string + +0x3450 | 4D 79 47 61 6D 65 2E 45 | char[39] | MyGame.E | string literal + +0x3458 | 78 61 6D 70 6C 65 2E 53 | | xample.S + +0x3460 | 74 72 75 63 74 4F 66 53 | | tructOfS + +0x3468 | 74 72 75 63 74 73 4F 66 | | tructsOf + +0x3470 | 53 74 72 75 63 74 73 | | Structs + +0x3477 | 00 | char | 0x00 (0) | string terminator table (reflection.Field): - +0x30C0 | F4 FE FF FF | SOffset32 | 0xFFFFFEF4 (-268) Loc: +0x31CC | offset to vtable - +0x30C4 | 00 00 00 | uint8_t[3] | ... | padding - +0x30C7 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x30C8 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x30E8 | offset to field `name` (string) - +0x30CC | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x30D8 | offset to field `type` (table) - +0x30D0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x30D4 | offset to field `documentation` (vector) + +0x3478 | F4 FE FF FF | SOffset32 | 0xFFFFFEF4 (-268) Loc: +0x3584 | offset to vtable + +0x347C | 00 00 00 | uint8_t[3] | ... | padding + +0x347F | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x3480 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x34A0 | offset to field `name` (string) + +0x3484 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x3490 | offset to field `type` (table) + +0x3488 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x348C | offset to field `documentation` (vector) vector (reflection.Field.documentation): - +0x30D4 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x348C | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) table (reflection.Type): - +0x30D8 | 20 F8 FF FF | SOffset32 | 0xFFFFF820 (-2016) Loc: +0x38B8 | offset to vtable - +0x30DC | 00 00 00 | uint8_t[3] | ... | padding - +0x30DF | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) - +0x30E0 | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `index` (Int) - +0x30E4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x3490 | 20 F8 FF FF | SOffset32 | 0xFFFFF820 (-2016) Loc: +0x3C70 | offset to vtable + +0x3494 | 00 00 00 | uint8_t[3] | ... | padding + +0x3497 | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) + +0x3498 | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `index` (Int) + +0x349C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x30E8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x30EC | 61 | char[1] | a | string literal - +0x30ED | 00 | char | 0x00 (0) | string terminator + +0x34A0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x34A4 | 61 | char[1] | a | string literal + +0x34A5 | 00 | char | 0x00 (0) | string terminator padding: - +0x30EE | 00 00 | uint8_t[2] | .. | padding + +0x34A6 | 00 00 | uint8_t[2] | .. | padding table (reflection.Object): - +0x30F0 | 10 F8 FF FF | SOffset32 | 0xFFFFF810 (-2032) Loc: +0x38E0 | offset to vtable - +0x30F4 | 00 00 00 | uint8_t[3] | ... | padding - +0x30F7 | 01 | uint8_t | 0x01 (1) | table field `is_struct` (Bool) - +0x30F8 | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: +0x3124 | offset to field `name` (string) - +0x30FC | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x3114 | offset to field `fields` (vector) - +0x3100 | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `minalign` (Int) - +0x3104 | 14 00 00 00 | uint32_t | 0x00000014 (20) | table field `bytesize` (Int) - +0x3108 | 08 00 00 00 | UOffset32 | 0x00000008 (8) Loc: +0x3110 | offset to field `documentation` (vector) - +0x310C | 54 06 00 00 | UOffset32 | 0x00000654 (1620) Loc: +0x3760 | offset to field `declaration_file` (string) + +0x34A8 | 10 F8 FF FF | SOffset32 | 0xFFFFF810 (-2032) Loc: +0x3C98 | offset to vtable + +0x34AC | 00 00 00 | uint8_t[3] | ... | padding + +0x34AF | 01 | uint8_t | 0x01 (1) | table field `is_struct` (Bool) + +0x34B0 | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: +0x34DC | offset to field `name` (string) + +0x34B4 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x34CC | offset to field `fields` (vector) + +0x34B8 | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `minalign` (Int) + +0x34BC | 14 00 00 00 | uint32_t | 0x00000014 (20) | table field `bytesize` (Int) + +0x34C0 | 08 00 00 00 | UOffset32 | 0x00000008 (8) Loc: +0x34C8 | offset to field `documentation` (vector) + +0x34C4 | 54 06 00 00 | UOffset32 | 0x00000654 (1620) Loc: +0x3B18 | offset to field `declaration_file` (string) vector (reflection.Object.documentation): - +0x3110 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x34C8 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) vector (reflection.Object.fields): - +0x3114 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) - +0x3118 | D0 00 00 00 | UOffset32 | 0x000000D0 (208) Loc: +0x31E8 | offset to table[0] - +0x311C | 7C 00 00 00 | UOffset32 | 0x0000007C (124) Loc: +0x3198 | offset to table[1] - +0x3120 | 28 00 00 00 | UOffset32 | 0x00000028 (40) Loc: +0x3148 | offset to table[2] + +0x34CC | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) + +0x34D0 | D0 00 00 00 | UOffset32 | 0x000000D0 (208) Loc: +0x35A0 | offset to table[0] + +0x34D4 | 7C 00 00 00 | UOffset32 | 0x0000007C (124) Loc: +0x3550 | offset to table[1] + +0x34D8 | 28 00 00 00 | UOffset32 | 0x00000028 (40) Loc: +0x3500 | offset to table[2] string (reflection.Object.name): - +0x3124 | 1E 00 00 00 | uint32_t | 0x0000001E (30) | length of string - +0x3128 | 4D 79 47 61 6D 65 2E 45 | char[30] | MyGame.E | string literal - +0x3130 | 78 61 6D 70 6C 65 2E 53 | | xample.S - +0x3138 | 74 72 75 63 74 4F 66 53 | | tructOfS - +0x3140 | 74 72 75 63 74 73 | | tructs - +0x3146 | 00 | char | 0x00 (0) | string terminator + +0x34DC | 1E 00 00 00 | uint32_t | 0x0000001E (30) | length of string + +0x34E0 | 4D 79 47 61 6D 65 2E 45 | char[30] | MyGame.E | string literal + +0x34E8 | 78 61 6D 70 6C 65 2E 53 | | xample.S + +0x34F0 | 74 72 75 63 74 4F 66 53 | | tructOfS + +0x34F8 | 74 72 75 63 74 73 | | tructs + +0x34FE | 00 | char | 0x00 (0) | string terminator table (reflection.Field): - +0x3148 | CC FF FF FF | SOffset32 | 0xFFFFFFCC (-52) Loc: +0x317C | offset to vtable - +0x314C | 00 00 00 | uint8_t[3] | ... | padding - +0x314F | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x3150 | 02 00 | uint16_t | 0x0002 (2) | table field `id` (UShort) - +0x3152 | 0C 00 | uint16_t | 0x000C (12) | table field `offset` (UShort) - +0x3154 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x3174 | offset to field `name` (string) - +0x3158 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x3164 | offset to field `type` (table) - +0x315C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3160 | offset to field `documentation` (vector) + +0x3500 | CC FF FF FF | SOffset32 | 0xFFFFFFCC (-52) Loc: +0x3534 | offset to vtable + +0x3504 | 00 00 00 | uint8_t[3] | ... | padding + +0x3507 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x3508 | 02 00 | uint16_t | 0x0002 (2) | table field `id` (UShort) + +0x350A | 0C 00 | uint16_t | 0x000C (12) | table field `offset` (UShort) + +0x350C | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x352C | offset to field `name` (string) + +0x3510 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x351C | offset to field `type` (table) + +0x3514 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3518 | offset to field `documentation` (vector) vector (reflection.Field.documentation): - +0x3160 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x3518 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) table (reflection.Type): - +0x3164 | AC F8 FF FF | SOffset32 | 0xFFFFF8AC (-1876) Loc: +0x38B8 | offset to vtable - +0x3168 | 00 00 00 | uint8_t[3] | ... | padding - +0x316B | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) - +0x316C | 00 00 00 00 | uint32_t | 0x00000000 (0) | table field `index` (Int) - +0x3170 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x351C | AC F8 FF FF | SOffset32 | 0xFFFFF8AC (-1876) Loc: +0x3C70 | offset to vtable + +0x3520 | 00 00 00 | uint8_t[3] | ... | padding + +0x3523 | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) + +0x3524 | 00 00 00 00 | uint32_t | 0x00000000 (0) | table field `index` (Int) + +0x3528 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x3174 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x3178 | 63 | char[1] | c | string literal - +0x3179 | 00 | char | 0x00 (0) | string terminator + +0x352C | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x3530 | 63 | char[1] | c | string literal + +0x3531 | 00 | char | 0x00 (0) | string terminator padding: - +0x317A | 00 00 | uint8_t[2] | .. | padding + +0x3532 | 00 00 | uint8_t[2] | .. | padding vtable (reflection.Field): - +0x317C | 1C 00 | uint16_t | 0x001C (28) | size of this vtable - +0x317E | 18 00 | uint16_t | 0x0018 (24) | size of referring table - +0x3180 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `name` (id: 0) - +0x3182 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `type` (id: 1) - +0x3184 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `id` (id: 2) - +0x3186 | 0A 00 | VOffset16 | 0x000A (10) | offset to field `offset` (id: 3) - +0x3188 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) (Long) - +0x318A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) (Double) - +0x318C | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) - +0x318E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) (Bool) - +0x3190 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 8) (Bool) - +0x3192 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `attributes` (id: 9) (Vector) - +0x3194 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `documentation` (id: 10) - +0x3196 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `optional` (id: 11) + +0x3534 | 1C 00 | uint16_t | 0x001C (28) | size of this vtable + +0x3536 | 18 00 | uint16_t | 0x0018 (24) | size of referring table + +0x3538 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `name` (id: 0) + +0x353A | 10 00 | VOffset16 | 0x0010 (16) | offset to field `type` (id: 1) + +0x353C | 08 00 | VOffset16 | 0x0008 (8) | offset to field `id` (id: 2) + +0x353E | 0A 00 | VOffset16 | 0x000A (10) | offset to field `offset` (id: 3) + +0x3540 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) (Long) + +0x3542 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) (Double) + +0x3544 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) + +0x3546 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) (Bool) + +0x3548 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 8) (Bool) + +0x354A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `attributes` (id: 9) (Vector) + +0x354C | 14 00 | VOffset16 | 0x0014 (20) | offset to field `documentation` (id: 10) + +0x354E | 07 00 | VOffset16 | 0x0007 (7) | offset to field `optional` (id: 11) table (reflection.Field): - +0x3198 | 1C 00 00 00 | SOffset32 | 0x0000001C (28) Loc: +0x317C | offset to vtable - +0x319C | 00 00 00 | uint8_t[3] | ... | padding - +0x319F | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x31A0 | 01 00 | uint16_t | 0x0001 (1) | table field `id` (UShort) - +0x31A2 | 08 00 | uint16_t | 0x0008 (8) | table field `offset` (UShort) - +0x31A4 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x31C4 | offset to field `name` (string) - +0x31A8 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x31B4 | offset to field `type` (table) - +0x31AC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x31B0 | offset to field `documentation` (vector) + +0x3550 | 1C 00 00 00 | SOffset32 | 0x0000001C (28) Loc: +0x3534 | offset to vtable + +0x3554 | 00 00 00 | uint8_t[3] | ... | padding + +0x3557 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x3558 | 01 00 | uint16_t | 0x0001 (1) | table field `id` (UShort) + +0x355A | 08 00 | uint16_t | 0x0008 (8) | table field `offset` (UShort) + +0x355C | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x357C | offset to field `name` (string) + +0x3560 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x356C | offset to field `type` (table) + +0x3564 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3568 | offset to field `documentation` (vector) vector (reflection.Field.documentation): - +0x31B0 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x3568 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) table (reflection.Type): - +0x31B4 | FC F8 FF FF | SOffset32 | 0xFFFFF8FC (-1796) Loc: +0x38B8 | offset to vtable - +0x31B8 | 00 00 00 | uint8_t[3] | ... | padding - +0x31BB | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) - +0x31BC | 06 00 00 00 | uint32_t | 0x00000006 (6) | table field `index` (Int) - +0x31C0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x356C | FC F8 FF FF | SOffset32 | 0xFFFFF8FC (-1796) Loc: +0x3C70 | offset to vtable + +0x3570 | 00 00 00 | uint8_t[3] | ... | padding + +0x3573 | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) + +0x3574 | 06 00 00 00 | uint32_t | 0x00000006 (6) | table field `index` (Int) + +0x3578 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x31C4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x31C8 | 62 | char[1] | b | string literal - +0x31C9 | 00 | char | 0x00 (0) | string terminator + +0x357C | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x3580 | 62 | char[1] | b | string literal + +0x3581 | 00 | char | 0x00 (0) | string terminator padding: - +0x31CA | 00 00 | uint8_t[2] | .. | padding + +0x3582 | 00 00 | uint8_t[2] | .. | padding vtable (reflection.Field): - +0x31CC | 1C 00 | uint16_t | 0x001C (28) | size of this vtable - +0x31CE | 14 00 | uint16_t | 0x0014 (20) | size of referring table - +0x31D0 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0) - +0x31D2 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `type` (id: 1) - +0x31D4 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `id` (id: 2) (UShort) - +0x31D6 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `offset` (id: 3) (UShort) - +0x31D8 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) (Long) - +0x31DA | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) (Double) - +0x31DC | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) - +0x31DE | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) (Bool) - +0x31E0 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 8) (Bool) - +0x31E2 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `attributes` (id: 9) (Vector) - +0x31E4 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `documentation` (id: 10) - +0x31E6 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `optional` (id: 11) + +0x3584 | 1C 00 | uint16_t | 0x001C (28) | size of this vtable + +0x3586 | 14 00 | uint16_t | 0x0014 (20) | size of referring table + +0x3588 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0) + +0x358A | 0C 00 | VOffset16 | 0x000C (12) | offset to field `type` (id: 1) + +0x358C | 00 00 | VOffset16 | 0x0000 (0) | offset to field `id` (id: 2) (UShort) + +0x358E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `offset` (id: 3) (UShort) + +0x3590 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) (Long) + +0x3592 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) (Double) + +0x3594 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) + +0x3596 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) (Bool) + +0x3598 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 8) (Bool) + +0x359A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `attributes` (id: 9) (Vector) + +0x359C | 10 00 | VOffset16 | 0x0010 (16) | offset to field `documentation` (id: 10) + +0x359E | 07 00 | VOffset16 | 0x0007 (7) | offset to field `optional` (id: 11) table (reflection.Field): - +0x31E8 | 1C 00 00 00 | SOffset32 | 0x0000001C (28) Loc: +0x31CC | offset to vtable - +0x31EC | 00 00 00 | uint8_t[3] | ... | padding - +0x31EF | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x31F0 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x3210 | offset to field `name` (string) - +0x31F4 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x3200 | offset to field `type` (table) - +0x31F8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x31FC | offset to field `documentation` (vector) + +0x35A0 | 1C 00 00 00 | SOffset32 | 0x0000001C (28) Loc: +0x3584 | offset to vtable + +0x35A4 | 00 00 00 | uint8_t[3] | ... | padding + +0x35A7 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x35A8 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x35C8 | offset to field `name` (string) + +0x35AC | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x35B8 | offset to field `type` (table) + +0x35B0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x35B4 | offset to field `documentation` (vector) vector (reflection.Field.documentation): - +0x31FC | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x35B4 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) table (reflection.Type): - +0x3200 | 48 F9 FF FF | SOffset32 | 0xFFFFF948 (-1720) Loc: +0x38B8 | offset to vtable - +0x3204 | 00 00 00 | uint8_t[3] | ... | padding - +0x3207 | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) - +0x3208 | 00 00 00 00 | uint32_t | 0x00000000 (0) | table field `index` (Int) - +0x320C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x35B8 | 48 F9 FF FF | SOffset32 | 0xFFFFF948 (-1720) Loc: +0x3C70 | offset to vtable + +0x35BC | 00 00 00 | uint8_t[3] | ... | padding + +0x35BF | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) + +0x35C0 | 00 00 00 00 | uint32_t | 0x00000000 (0) | table field `index` (Int) + +0x35C4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x3210 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x3214 | 61 | char[1] | a | string literal - +0x3215 | 00 | char | 0x00 (0) | string terminator + +0x35C8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x35CC | 61 | char[1] | a | string literal + +0x35CD | 00 | char | 0x00 (0) | string terminator padding: - +0x3216 | 00 00 | uint8_t[2] | .. | padding + +0x35CE | 00 00 | uint8_t[2] | .. | padding table (reflection.Object): - +0x3218 | 38 F9 FF FF | SOffset32 | 0xFFFFF938 (-1736) Loc: +0x38E0 | offset to vtable - +0x321C | 00 00 00 | uint8_t[3] | ... | padding - +0x321F | 01 | uint8_t | 0x01 (1) | table field `is_struct` (Bool) - +0x3220 | 28 00 00 00 | UOffset32 | 0x00000028 (40) Loc: +0x3248 | offset to field `name` (string) - +0x3224 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x323C | offset to field `fields` (vector) - +0x3228 | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `minalign` (Int) - +0x322C | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `bytesize` (Int) - +0x3230 | 08 00 00 00 | UOffset32 | 0x00000008 (8) Loc: +0x3238 | offset to field `documentation` (vector) - +0x3234 | 2C 05 00 00 | UOffset32 | 0x0000052C (1324) Loc: +0x3760 | offset to field `declaration_file` (string) + +0x35D0 | 38 F9 FF FF | SOffset32 | 0xFFFFF938 (-1736) Loc: +0x3C98 | offset to vtable + +0x35D4 | 00 00 00 | uint8_t[3] | ... | padding + +0x35D7 | 01 | uint8_t | 0x01 (1) | table field `is_struct` (Bool) + +0x35D8 | 28 00 00 00 | UOffset32 | 0x00000028 (40) Loc: +0x3600 | offset to field `name` (string) + +0x35DC | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x35F4 | offset to field `fields` (vector) + +0x35E0 | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `minalign` (Int) + +0x35E4 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `bytesize` (Int) + +0x35E8 | 08 00 00 00 | UOffset32 | 0x00000008 (8) Loc: +0x35F0 | offset to field `documentation` (vector) + +0x35EC | 2C 05 00 00 | UOffset32 | 0x0000052C (1324) Loc: +0x3B18 | offset to field `declaration_file` (string) vector (reflection.Object.documentation): - +0x3238 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x35F0 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) vector (reflection.Object.fields): - +0x323C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) - +0x3240 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x3264 | offset to table[0] - +0x3244 | 6C 00 00 00 | UOffset32 | 0x0000006C (108) Loc: +0x32B0 | offset to table[1] + +0x35F4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) + +0x35F8 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x361C | offset to table[0] + +0x35FC | 6C 00 00 00 | UOffset32 | 0x0000006C (108) Loc: +0x3668 | offset to table[1] string (reflection.Object.name): - +0x3248 | 16 00 00 00 | uint32_t | 0x00000016 (22) | length of string - +0x324C | 4D 79 47 61 6D 65 2E 45 | char[22] | MyGame.E | string literal - +0x3254 | 78 61 6D 70 6C 65 2E 41 | | xample.A - +0x325C | 62 69 6C 69 74 79 | | bility - +0x3262 | 00 | char | 0x00 (0) | string terminator + +0x3600 | 16 00 00 00 | uint32_t | 0x00000016 (22) | length of string + +0x3604 | 4D 79 47 61 6D 65 2E 45 | char[22] | MyGame.E | string literal + +0x360C | 78 61 6D 70 6C 65 2E 41 | | xample.A + +0x3614 | 62 69 6C 69 74 79 | | bility + +0x361A | 00 | char | 0x00 (0) | string terminator table (reflection.Field): - +0x3264 | CE FD FF FF | SOffset32 | 0xFFFFFDCE (-562) Loc: +0x3496 | offset to vtable - +0x3268 | 01 00 | uint16_t | 0x0001 (1) | table field `id` (UShort) - +0x326A | 04 00 | uint16_t | 0x0004 (4) | table field `offset` (UShort) - +0x326C | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: +0x3288 | offset to field `name` (string) - +0x3270 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x327C | offset to field `type` (table) - +0x3274 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3278 | offset to field `documentation` (vector) + +0x361C | CE FD FF FF | SOffset32 | 0xFFFFFDCE (-562) Loc: +0x384E | offset to vtable + +0x3620 | 01 00 | uint16_t | 0x0001 (1) | table field `id` (UShort) + +0x3622 | 04 00 | uint16_t | 0x0004 (4) | table field `offset` (UShort) + +0x3624 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: +0x3640 | offset to field `name` (string) + +0x3628 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x3634 | offset to field `type` (table) + +0x362C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3630 | offset to field `documentation` (vector) vector (reflection.Field.documentation): - +0x3278 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x3630 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) table (reflection.Type): - +0x327C | E0 F8 FF FF | SOffset32 | 0xFFFFF8E0 (-1824) Loc: +0x399C | offset to vtable - +0x3280 | 00 00 00 | uint8_t[3] | ... | padding - +0x3283 | 08 | uint8_t | 0x08 (8) | table field `base_type` (Byte) - +0x3284 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x3634 | E0 F8 FF FF | SOffset32 | 0xFFFFF8E0 (-1824) Loc: +0x3D54 | offset to vtable + +0x3638 | 00 00 00 | uint8_t[3] | ... | padding + +0x363B | 08 | uint8_t | 0x08 (8) | table field `base_type` (Byte) + +0x363C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x3288 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string - +0x328C | 64 69 73 74 61 6E 63 65 | char[8] | distance | string literal - +0x3294 | 00 | char | 0x00 (0) | string terminator + +0x3640 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string + +0x3644 | 64 69 73 74 61 6E 63 65 | char[8] | distance | string literal + +0x364C | 00 | char | 0x00 (0) | string terminator vtable (reflection.Field): - +0x3296 | 1A 00 | uint16_t | 0x001A (26) | size of this vtable - +0x3298 | 18 00 | uint16_t | 0x0018 (24) | size of referring table - +0x329A | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0) - +0x329C | 0C 00 | VOffset16 | 0x000C (12) | offset to field `type` (id: 1) - +0x329E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `id` (id: 2) (UShort) - +0x32A0 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `offset` (id: 3) (UShort) - +0x32A2 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) (Long) - +0x32A4 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) (Double) - +0x32A6 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) - +0x32A8 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) (Bool) - +0x32AA | 07 00 | VOffset16 | 0x0007 (7) | offset to field `key` (id: 8) - +0x32AC | 10 00 | VOffset16 | 0x0010 (16) | offset to field `attributes` (id: 9) - +0x32AE | 14 00 | VOffset16 | 0x0014 (20) | offset to field `documentation` (id: 10) + +0x364E | 1A 00 | uint16_t | 0x001A (26) | size of this vtable + +0x3650 | 18 00 | uint16_t | 0x0018 (24) | size of referring table + +0x3652 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0) + +0x3654 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `type` (id: 1) + +0x3656 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `id` (id: 2) (UShort) + +0x3658 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `offset` (id: 3) (UShort) + +0x365A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) (Long) + +0x365C | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) (Double) + +0x365E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) + +0x3660 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) (Bool) + +0x3662 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `key` (id: 8) + +0x3664 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `attributes` (id: 9) + +0x3666 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `documentation` (id: 10) table (reflection.Field): - +0x32B0 | 1A 00 00 00 | SOffset32 | 0x0000001A (26) Loc: +0x3296 | offset to vtable - +0x32B4 | 00 00 00 | uint8_t[3] | ... | padding - +0x32B7 | 01 | uint8_t | 0x01 (1) | table field `key` (Bool) - +0x32B8 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x32FC | offset to field `name` (string) - +0x32BC | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x32F0 | offset to field `type` (table) - +0x32C0 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x32CC | offset to field `attributes` (vector) - +0x32C4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x32C8 | offset to field `documentation` (vector) + +0x3668 | 1A 00 00 00 | SOffset32 | 0x0000001A (26) Loc: +0x364E | offset to vtable + +0x366C | 00 00 00 | uint8_t[3] | ... | padding + +0x366F | 01 | uint8_t | 0x01 (1) | table field `key` (Bool) + +0x3670 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x36B4 | offset to field `name` (string) + +0x3674 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x36A8 | offset to field `type` (table) + +0x3678 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x3684 | offset to field `attributes` (vector) + +0x367C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3680 | offset to field `documentation` (vector) vector (reflection.Field.documentation): - +0x32C8 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x3680 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) vector (reflection.Field.attributes): - +0x32CC | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x32D0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x32D4 | offset to table[0] + +0x3684 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x3688 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x368C | offset to table[0] table (reflection.KeyValue): - +0x32D4 | 70 FD FF FF | SOffset32 | 0xFFFFFD70 (-656) Loc: +0x3564 | offset to vtable - +0x32D8 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x32E8 | offset to field `key` (string) - +0x32DC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x32E0 | offset to field `value` (string) + +0x368C | 70 FD FF FF | SOffset32 | 0xFFFFFD70 (-656) Loc: +0x391C | offset to vtable + +0x3690 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x36A0 | offset to field `key` (string) + +0x3694 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3698 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x32E0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x32E4 | 30 | char[1] | 0 | string literal - +0x32E5 | 00 | char | 0x00 (0) | string terminator + +0x3698 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x369C | 30 | char[1] | 0 | string literal + +0x369D | 00 | char | 0x00 (0) | string terminator padding: - +0x32E6 | 00 00 | uint8_t[2] | .. | padding + +0x369E | 00 00 | uint8_t[2] | .. | padding string (reflection.KeyValue.key): - +0x32E8 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string - +0x32EC | 6B 65 79 | char[3] | key | string literal - +0x32EF | 00 | char | 0x00 (0) | string terminator + +0x36A0 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string + +0x36A4 | 6B 65 79 | char[3] | key | string literal + +0x36A7 | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x32F0 | 54 F9 FF FF | SOffset32 | 0xFFFFF954 (-1708) Loc: +0x399C | offset to vtable - +0x32F4 | 00 00 00 | uint8_t[3] | ... | padding - +0x32F7 | 08 | uint8_t | 0x08 (8) | table field `base_type` (Byte) - +0x32F8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x36A8 | 54 F9 FF FF | SOffset32 | 0xFFFFF954 (-1708) Loc: +0x3D54 | offset to vtable + +0x36AC | 00 00 00 | uint8_t[3] | ... | padding + +0x36AF | 08 | uint8_t | 0x08 (8) | table field `base_type` (Byte) + +0x36B0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x32FC | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x3300 | 69 64 | char[2] | id | string literal - +0x3302 | 00 | char | 0x00 (0) | string terminator + +0x36B4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x36B8 | 69 64 | char[2] | id | string literal + +0x36BA | 00 | char | 0x00 (0) | string terminator vtable (reflection.Object): - +0x3304 | 14 00 | uint16_t | 0x0014 (20) | size of this vtable - +0x3306 | 24 00 | uint16_t | 0x0024 (36) | size of referring table - +0x3308 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0) - +0x330A | 0C 00 | VOffset16 | 0x000C (12) | offset to field `fields` (id: 1) - +0x330C | 07 00 | VOffset16 | 0x0007 (7) | offset to field `is_struct` (id: 2) - +0x330E | 10 00 | VOffset16 | 0x0010 (16) | offset to field `minalign` (id: 3) - +0x3310 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `bytesize` (id: 4) - +0x3312 | 18 00 | VOffset16 | 0x0018 (24) | offset to field `attributes` (id: 5) - +0x3314 | 1C 00 | VOffset16 | 0x001C (28) | offset to field `documentation` (id: 6) - +0x3316 | 20 00 | VOffset16 | 0x0020 (32) | offset to field `declaration_file` (id: 7) + +0x36BC | 14 00 | uint16_t | 0x0014 (20) | size of this vtable + +0x36BE | 24 00 | uint16_t | 0x0024 (36) | size of referring table + +0x36C0 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0) + +0x36C2 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `fields` (id: 1) + +0x36C4 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `is_struct` (id: 2) + +0x36C6 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `minalign` (id: 3) + +0x36C8 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `bytesize` (id: 4) + +0x36CA | 18 00 | VOffset16 | 0x0018 (24) | offset to field `attributes` (id: 5) + +0x36CC | 1C 00 | VOffset16 | 0x001C (28) | offset to field `documentation` (id: 6) + +0x36CE | 20 00 | VOffset16 | 0x0020 (32) | offset to field `declaration_file` (id: 7) table (reflection.Object): - +0x3318 | 14 00 00 00 | SOffset32 | 0x00000014 (20) Loc: +0x3304 | offset to vtable - +0x331C | 00 00 00 | uint8_t[3] | ... | padding - +0x331F | 01 | uint8_t | 0x01 (1) | table field `is_struct` (Bool) - +0x3320 | 68 00 00 00 | UOffset32 | 0x00000068 (104) Loc: +0x3388 | offset to field `name` (string) - +0x3324 | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: +0x336C | offset to field `fields` (vector) - +0x3328 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `minalign` (Int) - +0x332C | 20 00 00 00 | uint32_t | 0x00000020 (32) | table field `bytesize` (Int) - +0x3330 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x3340 | offset to field `attributes` (vector) - +0x3334 | 08 00 00 00 | UOffset32 | 0x00000008 (8) Loc: +0x333C | offset to field `documentation` (vector) - +0x3338 | 28 04 00 00 | UOffset32 | 0x00000428 (1064) Loc: +0x3760 | offset to field `declaration_file` (string) + +0x36D0 | 14 00 00 00 | SOffset32 | 0x00000014 (20) Loc: +0x36BC | offset to vtable + +0x36D4 | 00 00 00 | uint8_t[3] | ... | padding + +0x36D7 | 01 | uint8_t | 0x01 (1) | table field `is_struct` (Bool) + +0x36D8 | 68 00 00 00 | UOffset32 | 0x00000068 (104) Loc: +0x3740 | offset to field `name` (string) + +0x36DC | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: +0x3724 | offset to field `fields` (vector) + +0x36E0 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `minalign` (Int) + +0x36E4 | 20 00 00 00 | uint32_t | 0x00000020 (32) | table field `bytesize` (Int) + +0x36E8 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x36F8 | offset to field `attributes` (vector) + +0x36EC | 08 00 00 00 | UOffset32 | 0x00000008 (8) Loc: +0x36F4 | offset to field `documentation` (vector) + +0x36F0 | 28 04 00 00 | UOffset32 | 0x00000428 (1064) Loc: +0x3B18 | offset to field `declaration_file` (string) vector (reflection.Object.documentation): - +0x333C | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x36F4 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) vector (reflection.Object.attributes): - +0x3340 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x3344 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3348 | offset to table[0] + +0x36F8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x36FC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3700 | offset to table[0] table (reflection.KeyValue): - +0x3348 | E4 FD FF FF | SOffset32 | 0xFFFFFDE4 (-540) Loc: +0x3564 | offset to vtable - +0x334C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x335C | offset to field `key` (string) - +0x3350 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3354 | offset to field `value` (string) + +0x3700 | E4 FD FF FF | SOffset32 | 0xFFFFFDE4 (-540) Loc: +0x391C | offset to vtable + +0x3704 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x3714 | offset to field `key` (string) + +0x3708 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x370C | offset to field `value` (string) string (reflection.KeyValue.value): - +0x3354 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x3358 | 38 | char[1] | 8 | string literal - +0x3359 | 00 | char | 0x00 (0) | string terminator + +0x370C | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x3710 | 38 | char[1] | 8 | string literal + +0x3711 | 00 | char | 0x00 (0) | string terminator padding: - +0x335A | 00 00 | uint8_t[2] | .. | padding + +0x3712 | 00 00 | uint8_t[2] | .. | padding string (reflection.KeyValue.key): - +0x335C | 0B 00 00 00 | uint32_t | 0x0000000B (11) | length of string - +0x3360 | 66 6F 72 63 65 5F 61 6C | char[11] | force_al | string literal - +0x3368 | 69 67 6E | | ign - +0x336B | 00 | char | 0x00 (0) | string terminator + +0x3714 | 0B 00 00 00 | uint32_t | 0x0000000B (11) | length of string + +0x3718 | 66 6F 72 63 65 5F 61 6C | char[11] | force_al | string literal + +0x3720 | 69 67 6E | | ign + +0x3723 | 00 | char | 0x00 (0) | string terminator vector (reflection.Object.fields): - +0x336C | 06 00 00 00 | uint32_t | 0x00000006 (6) | length of vector (# items) - +0x3370 | C4 00 00 00 | UOffset32 | 0x000000C4 (196) Loc: +0x3434 | offset to table[0] - +0x3374 | 84 00 00 00 | UOffset32 | 0x00000084 (132) Loc: +0x33F8 | offset to table[1] - +0x3378 | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: +0x33C0 | offset to table[2] - +0x337C | 60 01 00 00 | UOffset32 | 0x00000160 (352) Loc: +0x34DC | offset to table[3] - +0x3380 | 30 01 00 00 | UOffset32 | 0x00000130 (304) Loc: +0x34B0 | offset to table[4] - +0x3384 | E4 00 00 00 | UOffset32 | 0x000000E4 (228) Loc: +0x3468 | offset to table[5] + +0x3724 | 06 00 00 00 | uint32_t | 0x00000006 (6) | length of vector (# items) + +0x3728 | C4 00 00 00 | UOffset32 | 0x000000C4 (196) Loc: +0x37EC | offset to table[0] + +0x372C | 84 00 00 00 | UOffset32 | 0x00000084 (132) Loc: +0x37B0 | offset to table[1] + +0x3730 | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: +0x3778 | offset to table[2] + +0x3734 | 60 01 00 00 | UOffset32 | 0x00000160 (352) Loc: +0x3894 | offset to table[3] + +0x3738 | 30 01 00 00 | UOffset32 | 0x00000130 (304) Loc: +0x3868 | offset to table[4] + +0x373C | E4 00 00 00 | UOffset32 | 0x000000E4 (228) Loc: +0x3820 | offset to table[5] string (reflection.Object.name): - +0x3388 | 13 00 00 00 | uint32_t | 0x00000013 (19) | length of string - +0x338C | 4D 79 47 61 6D 65 2E 45 | char[19] | MyGame.E | string literal - +0x3394 | 78 61 6D 70 6C 65 2E 56 | | xample.V - +0x339C | 65 63 33 | | ec3 - +0x339F | 00 | char | 0x00 (0) | string terminator + +0x3740 | 13 00 00 00 | uint32_t | 0x00000013 (19) | length of string + +0x3744 | 4D 79 47 61 6D 65 2E 45 | char[19] | MyGame.E | string literal + +0x374C | 78 61 6D 70 6C 65 2E 56 | | xample.V + +0x3754 | 65 63 33 | | ec3 + +0x3757 | 00 | char | 0x00 (0) | string terminator padding: - +0x33A0 | 00 00 | uint8_t[2] | .. | padding + +0x3758 | 00 00 | uint8_t[2] | .. | padding vtable (reflection.Field): - +0x33A2 | 1E 00 | uint16_t | 0x001E (30) | size of this vtable - +0x33A4 | 18 00 | uint16_t | 0x0018 (24) | size of referring table - +0x33A6 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `name` (id: 0) - +0x33A8 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `type` (id: 1) - +0x33AA | 06 00 | VOffset16 | 0x0006 (6) | offset to field `id` (id: 2) - +0x33AC | 08 00 | VOffset16 | 0x0008 (8) | offset to field `offset` (id: 3) - +0x33AE | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) (Long) - +0x33B0 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) (Double) - +0x33B2 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) - +0x33B4 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) (Bool) - +0x33B6 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 8) (Bool) - +0x33B8 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `attributes` (id: 9) (Vector) - +0x33BA | 14 00 | VOffset16 | 0x0014 (20) | offset to field `documentation` (id: 10) - +0x33BC | 05 00 | VOffset16 | 0x0005 (5) | offset to field `optional` (id: 11) - +0x33BE | 0A 00 | VOffset16 | 0x000A (10) | offset to field `padding` (id: 12) + +0x375A | 1E 00 | uint16_t | 0x001E (30) | size of this vtable + +0x375C | 18 00 | uint16_t | 0x0018 (24) | size of referring table + +0x375E | 0C 00 | VOffset16 | 0x000C (12) | offset to field `name` (id: 0) + +0x3760 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `type` (id: 1) + +0x3762 | 06 00 | VOffset16 | 0x0006 (6) | offset to field `id` (id: 2) + +0x3764 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `offset` (id: 3) + +0x3766 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) (Long) + +0x3768 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) (Double) + +0x376A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) + +0x376C | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) (Bool) + +0x376E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 8) (Bool) + +0x3770 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `attributes` (id: 9) (Vector) + +0x3772 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `documentation` (id: 10) + +0x3774 | 05 00 | VOffset16 | 0x0005 (5) | offset to field `optional` (id: 11) + +0x3776 | 0A 00 | VOffset16 | 0x000A (10) | offset to field `padding` (id: 12) table (reflection.Field): - +0x33C0 | 1E 00 00 00 | SOffset32 | 0x0000001E (30) Loc: +0x33A2 | offset to vtable - +0x33C4 | 00 | uint8_t[1] | . | padding - +0x33C5 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x33C6 | 05 00 | uint16_t | 0x0005 (5) | table field `id` (UShort) - +0x33C8 | 1A 00 | uint16_t | 0x001A (26) | table field `offset` (UShort) - +0x33CA | 02 00 | uint16_t | 0x0002 (2) | table field `padding` (UShort) - +0x33CC | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x33EC | offset to field `name` (string) - +0x33D0 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x33DC | offset to field `type` (table) - +0x33D4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x33D8 | offset to field `documentation` (vector) + +0x3778 | 1E 00 00 00 | SOffset32 | 0x0000001E (30) Loc: +0x375A | offset to vtable + +0x377C | 00 | uint8_t[1] | . | padding + +0x377D | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x377E | 05 00 | uint16_t | 0x0005 (5) | table field `id` (UShort) + +0x3780 | 1A 00 | uint16_t | 0x001A (26) | table field `offset` (UShort) + +0x3782 | 02 00 | uint16_t | 0x0002 (2) | table field `padding` (UShort) + +0x3784 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x37A4 | offset to field `name` (string) + +0x3788 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x3794 | offset to field `type` (table) + +0x378C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3790 | offset to field `documentation` (vector) vector (reflection.Field.documentation): - +0x33D8 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x3790 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) table (reflection.Type): - +0x33DC | 24 FB FF FF | SOffset32 | 0xFFFFFB24 (-1244) Loc: +0x38B8 | offset to vtable - +0x33E0 | 00 00 00 | uint8_t[3] | ... | padding - +0x33E3 | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) - +0x33E4 | 06 00 00 00 | uint32_t | 0x00000006 (6) | table field `index` (Int) - +0x33E8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x3794 | 24 FB FF FF | SOffset32 | 0xFFFFFB24 (-1244) Loc: +0x3C70 | offset to vtable + +0x3798 | 00 00 00 | uint8_t[3] | ... | padding + +0x379B | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) + +0x379C | 06 00 00 00 | uint32_t | 0x00000006 (6) | table field `index` (Int) + +0x37A0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x33EC | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string - +0x33F0 | 74 65 73 74 33 | char[5] | test3 | string literal - +0x33F5 | 00 | char | 0x00 (0) | string terminator + +0x37A4 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string + +0x37A8 | 74 65 73 74 33 | char[5] | test3 | string literal + +0x37AD | 00 | char | 0x00 (0) | string terminator padding: - +0x33F6 | 00 00 | uint8_t[2] | .. | padding + +0x37AE | 00 00 | uint8_t[2] | .. | padding table (reflection.Field): - +0x33F8 | 7A FD FF FF | SOffset32 | 0xFFFFFD7A (-646) Loc: +0x367E | offset to vtable - +0x33FC | 00 00 | uint8_t[2] | .. | padding - +0x33FE | 04 00 | uint16_t | 0x0004 (4) | table field `id` (UShort) - +0x3400 | 18 00 | uint16_t | 0x0018 (24) | table field `offset` (UShort) - +0x3402 | 01 00 | uint16_t | 0x0001 (1) | table field `padding` (UShort) - +0x3404 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x3428 | offset to field `name` (string) - +0x3408 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x3414 | offset to field `type` (table) - +0x340C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3410 | offset to field `documentation` (vector) + +0x37B0 | 7A FD FF FF | SOffset32 | 0xFFFFFD7A (-646) Loc: +0x3A36 | offset to vtable + +0x37B4 | 00 00 | uint8_t[2] | .. | padding + +0x37B6 | 04 00 | uint16_t | 0x0004 (4) | table field `id` (UShort) + +0x37B8 | 18 00 | uint16_t | 0x0018 (24) | table field `offset` (UShort) + +0x37BA | 01 00 | uint16_t | 0x0001 (1) | table field `padding` (UShort) + +0x37BC | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x37E0 | offset to field `name` (string) + +0x37C0 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x37CC | offset to field `type` (table) + +0x37C4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x37C8 | offset to field `documentation` (vector) vector (reflection.Field.documentation): - +0x3410 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x37C8 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) table (reflection.Type): - +0x3414 | 10 FE FF FF | SOffset32 | 0xFFFFFE10 (-496) Loc: +0x3604 | offset to vtable - +0x3418 | 00 00 00 | uint8_t[3] | ... | padding - +0x341B | 04 | uint8_t | 0x04 (4) | table field `base_type` (Byte) - +0x341C | 03 00 00 00 | uint32_t | 0x00000003 (3) | table field `index` (Int) - +0x3420 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) - +0x3424 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x37CC | 10 FE FF FF | SOffset32 | 0xFFFFFE10 (-496) Loc: +0x39BC | offset to vtable + +0x37D0 | 00 00 00 | uint8_t[3] | ... | padding + +0x37D3 | 04 | uint8_t | 0x04 (4) | table field `base_type` (Byte) + +0x37D4 | 03 00 00 00 | uint32_t | 0x00000003 (3) | table field `index` (Int) + +0x37D8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) + +0x37DC | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x3428 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string - +0x342C | 74 65 73 74 32 | char[5] | test2 | string literal - +0x3431 | 00 | char | 0x00 (0) | string terminator + +0x37E0 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string + +0x37E4 | 74 65 73 74 32 | char[5] | test2 | string literal + +0x37E9 | 00 | char | 0x00 (0) | string terminator padding: - +0x3432 | 00 00 | uint8_t[2] | .. | padding + +0x37EA | 00 00 | uint8_t[2] | .. | padding table (reflection.Field): - +0x3434 | 9E FF FF FF | SOffset32 | 0xFFFFFF9E (-98) Loc: +0x3496 | offset to vtable - +0x3438 | 03 00 | uint16_t | 0x0003 (3) | table field `id` (UShort) - +0x343A | 10 00 | uint16_t | 0x0010 (16) | table field `offset` (UShort) - +0x343C | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x345C | offset to field `name` (string) - +0x3440 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x344C | offset to field `type` (table) - +0x3444 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3448 | offset to field `documentation` (vector) + +0x37EC | 9E FF FF FF | SOffset32 | 0xFFFFFF9E (-98) Loc: +0x384E | offset to vtable + +0x37F0 | 03 00 | uint16_t | 0x0003 (3) | table field `id` (UShort) + +0x37F2 | 10 00 | uint16_t | 0x0010 (16) | table field `offset` (UShort) + +0x37F4 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x3814 | offset to field `name` (string) + +0x37F8 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x3804 | offset to field `type` (table) + +0x37FC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3800 | offset to field `documentation` (vector) vector (reflection.Field.documentation): - +0x3448 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x3800 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) table (reflection.Type): - +0x344C | 68 FD FF FF | SOffset32 | 0xFFFFFD68 (-664) Loc: +0x36E4 | offset to vtable - +0x3450 | 00 00 00 | uint8_t[3] | ... | padding - +0x3453 | 0C | uint8_t | 0x0C (12) | table field `base_type` (Byte) - +0x3454 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt) - +0x3458 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x3804 | 68 FD FF FF | SOffset32 | 0xFFFFFD68 (-664) Loc: +0x3A9C | offset to vtable + +0x3808 | 00 00 00 | uint8_t[3] | ... | padding + +0x380B | 0C | uint8_t | 0x0C (12) | table field `base_type` (Byte) + +0x380C | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt) + +0x3810 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x345C | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string - +0x3460 | 74 65 73 74 31 | char[5] | test1 | string literal - +0x3465 | 00 | char | 0x00 (0) | string terminator + +0x3814 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string + +0x3818 | 74 65 73 74 31 | char[5] | test1 | string literal + +0x381D | 00 | char | 0x00 (0) | string terminator padding: - +0x3466 | 00 00 | uint8_t[2] | .. | padding + +0x381E | 00 00 | uint8_t[2] | .. | padding table (reflection.Field): - +0x3468 | EA FD FF FF | SOffset32 | 0xFFFFFDEA (-534) Loc: +0x367E | offset to vtable - +0x346C | 00 00 | uint8_t[2] | .. | padding - +0x346E | 02 00 | uint16_t | 0x0002 (2) | table field `id` (UShort) - +0x3470 | 08 00 | uint16_t | 0x0008 (8) | table field `offset` (UShort) - +0x3472 | 04 00 | uint16_t | 0x0004 (4) | table field `padding` (UShort) - +0x3474 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: +0x3490 | offset to field `name` (string) - +0x3478 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x3484 | offset to field `type` (table) - +0x347C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3480 | offset to field `documentation` (vector) + +0x3820 | EA FD FF FF | SOffset32 | 0xFFFFFDEA (-534) Loc: +0x3A36 | offset to vtable + +0x3824 | 00 00 | uint8_t[2] | .. | padding + +0x3826 | 02 00 | uint16_t | 0x0002 (2) | table field `id` (UShort) + +0x3828 | 08 00 | uint16_t | 0x0008 (8) | table field `offset` (UShort) + +0x382A | 04 00 | uint16_t | 0x0004 (4) | table field `padding` (UShort) + +0x382C | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: +0x3848 | offset to field `name` (string) + +0x3830 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x383C | offset to field `type` (table) + +0x3834 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3838 | offset to field `documentation` (vector) vector (reflection.Field.documentation): - +0x3480 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x3838 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) table (reflection.Type): - +0x3484 | E8 FA FF FF | SOffset32 | 0xFFFFFAE8 (-1304) Loc: +0x399C | offset to vtable - +0x3488 | 00 00 00 | uint8_t[3] | ... | padding - +0x348B | 0B | uint8_t | 0x0B (11) | table field `base_type` (Byte) - +0x348C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x383C | E8 FA FF FF | SOffset32 | 0xFFFFFAE8 (-1304) Loc: +0x3D54 | offset to vtable + +0x3840 | 00 00 00 | uint8_t[3] | ... | padding + +0x3843 | 0B | uint8_t | 0x0B (11) | table field `base_type` (Byte) + +0x3844 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x3490 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x3494 | 7A | char[1] | z | string literal - +0x3495 | 00 | char | 0x00 (0) | string terminator + +0x3848 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x384C | 7A | char[1] | z | string literal + +0x384D | 00 | char | 0x00 (0) | string terminator vtable (reflection.Field): - +0x3496 | 1A 00 | uint16_t | 0x001A (26) | size of this vtable - +0x3498 | 14 00 | uint16_t | 0x0014 (20) | size of referring table - +0x349A | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0) - +0x349C | 0C 00 | VOffset16 | 0x000C (12) | offset to field `type` (id: 1) - +0x349E | 04 00 | VOffset16 | 0x0004 (4) | offset to field `id` (id: 2) - +0x34A0 | 06 00 | VOffset16 | 0x0006 (6) | offset to field `offset` (id: 3) - +0x34A2 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) (Long) - +0x34A4 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) (Double) - +0x34A6 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) - +0x34A8 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) (Bool) - +0x34AA | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 8) (Bool) - +0x34AC | 00 00 | VOffset16 | 0x0000 (0) | offset to field `attributes` (id: 9) (Vector) - +0x34AE | 10 00 | VOffset16 | 0x0010 (16) | offset to field `documentation` (id: 10) + +0x384E | 1A 00 | uint16_t | 0x001A (26) | size of this vtable + +0x3850 | 14 00 | uint16_t | 0x0014 (20) | size of referring table + +0x3852 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0) + +0x3854 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `type` (id: 1) + +0x3856 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `id` (id: 2) + +0x3858 | 06 00 | VOffset16 | 0x0006 (6) | offset to field `offset` (id: 3) + +0x385A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) (Long) + +0x385C | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) (Double) + +0x385E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) + +0x3860 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) (Bool) + +0x3862 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 8) (Bool) + +0x3864 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `attributes` (id: 9) (Vector) + +0x3866 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `documentation` (id: 10) table (reflection.Field): - +0x34B0 | 1A 00 00 00 | SOffset32 | 0x0000001A (26) Loc: +0x3496 | offset to vtable - +0x34B4 | 01 00 | uint16_t | 0x0001 (1) | table field `id` (UShort) - +0x34B6 | 04 00 | uint16_t | 0x0004 (4) | table field `offset` (UShort) - +0x34B8 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: +0x34D4 | offset to field `name` (string) - +0x34BC | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x34C8 | offset to field `type` (table) - +0x34C0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x34C4 | offset to field `documentation` (vector) + +0x3868 | 1A 00 00 00 | SOffset32 | 0x0000001A (26) Loc: +0x384E | offset to vtable + +0x386C | 01 00 | uint16_t | 0x0001 (1) | table field `id` (UShort) + +0x386E | 04 00 | uint16_t | 0x0004 (4) | table field `offset` (UShort) + +0x3870 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: +0x388C | offset to field `name` (string) + +0x3874 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x3880 | offset to field `type` (table) + +0x3878 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x387C | offset to field `documentation` (vector) vector (reflection.Field.documentation): - +0x34C4 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x387C | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) table (reflection.Type): - +0x34C8 | 2C FB FF FF | SOffset32 | 0xFFFFFB2C (-1236) Loc: +0x399C | offset to vtable - +0x34CC | 00 00 00 | uint8_t[3] | ... | padding - +0x34CF | 0B | uint8_t | 0x0B (11) | table field `base_type` (Byte) - +0x34D0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x3880 | 2C FB FF FF | SOffset32 | 0xFFFFFB2C (-1236) Loc: +0x3D54 | offset to vtable + +0x3884 | 00 00 00 | uint8_t[3] | ... | padding + +0x3887 | 0B | uint8_t | 0x0B (11) | table field `base_type` (Byte) + +0x3888 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x34D4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x34D8 | 79 | char[1] | y | string literal - +0x34D9 | 00 | char | 0x00 (0) | string terminator + +0x388C | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x3890 | 79 | char[1] | y | string literal + +0x3891 | 00 | char | 0x00 (0) | string terminator padding: - +0x34DA | 00 00 | uint8_t[2] | .. | padding + +0x3892 | 00 00 | uint8_t[2] | .. | padding table (reflection.Field): - +0x34DC | 6E FB FF FF | SOffset32 | 0xFFFFFB6E (-1170) Loc: +0x396E | offset to vtable - +0x34E0 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: +0x34FC | offset to field `name` (string) - +0x34E4 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x34F0 | offset to field `type` (table) - +0x34E8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x34EC | offset to field `documentation` (vector) + +0x3894 | 6E FB FF FF | SOffset32 | 0xFFFFFB6E (-1170) Loc: +0x3D26 | offset to vtable + +0x3898 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: +0x38B4 | offset to field `name` (string) + +0x389C | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x38A8 | offset to field `type` (table) + +0x38A0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x38A4 | offset to field `documentation` (vector) vector (reflection.Field.documentation): - +0x34EC | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x38A4 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) table (reflection.Type): - +0x34F0 | 54 FB FF FF | SOffset32 | 0xFFFFFB54 (-1196) Loc: +0x399C | offset to vtable - +0x34F4 | 00 00 00 | uint8_t[3] | ... | padding - +0x34F7 | 0B | uint8_t | 0x0B (11) | table field `base_type` (Byte) - +0x34F8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x38A8 | 54 FB FF FF | SOffset32 | 0xFFFFFB54 (-1196) Loc: +0x3D54 | offset to vtable + +0x38AC | 00 00 00 | uint8_t[3] | ... | padding + +0x38AF | 0B | uint8_t | 0x0B (11) | table field `base_type` (Byte) + +0x38B0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x34FC | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x3500 | 78 | char[1] | x | string literal - +0x3501 | 00 | char | 0x00 (0) | string terminator + +0x38B4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x38B8 | 78 | char[1] | x | string literal + +0x38B9 | 00 | char | 0x00 (0) | string terminator padding: - +0x3502 | 00 00 | uint8_t[2] | .. | padding + +0x38BA | 00 00 | uint8_t[2] | .. | padding vtable (reflection.Object): - +0x3504 | 14 00 | uint16_t | 0x0014 (20) | size of this vtable - +0x3506 | 1C 00 | uint16_t | 0x001C (28) | size of referring table - +0x3508 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `name` (id: 0) - +0x350A | 08 00 | VOffset16 | 0x0008 (8) | offset to field `fields` (id: 1) - +0x350C | 00 00 | VOffset16 | 0x0000 (0) | offset to field `is_struct` (id: 2) (Bool) - +0x350E | 0C 00 | VOffset16 | 0x000C (12) | offset to field `minalign` (id: 3) - +0x3510 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `bytesize` (id: 4) (Int) - +0x3512 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `attributes` (id: 5) - +0x3514 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `documentation` (id: 6) - +0x3516 | 18 00 | VOffset16 | 0x0018 (24) | offset to field `declaration_file` (id: 7) + +0x38BC | 14 00 | uint16_t | 0x0014 (20) | size of this vtable + +0x38BE | 1C 00 | uint16_t | 0x001C (28) | size of referring table + +0x38C0 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `name` (id: 0) + +0x38C2 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `fields` (id: 1) + +0x38C4 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `is_struct` (id: 2) (Bool) + +0x38C6 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `minalign` (id: 3) + +0x38C8 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `bytesize` (id: 4) (Int) + +0x38CA | 10 00 | VOffset16 | 0x0010 (16) | offset to field `attributes` (id: 5) + +0x38CC | 14 00 | VOffset16 | 0x0014 (20) | offset to field `documentation` (id: 6) + +0x38CE | 18 00 | VOffset16 | 0x0018 (24) | offset to field `declaration_file` (id: 7) table (reflection.Object): - +0x3518 | 14 00 00 00 | SOffset32 | 0x00000014 (20) Loc: +0x3504 | offset to vtable - +0x351C | 80 00 00 00 | UOffset32 | 0x00000080 (128) Loc: +0x359C | offset to field `name` (string) - +0x3520 | 74 00 00 00 | UOffset32 | 0x00000074 (116) Loc: +0x3594 | offset to field `fields` (vector) - +0x3524 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `minalign` (Int) - +0x3528 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x3538 | offset to field `attributes` (vector) - +0x352C | 08 00 00 00 | UOffset32 | 0x00000008 (8) Loc: +0x3534 | offset to field `documentation` (vector) - +0x3530 | 30 02 00 00 | UOffset32 | 0x00000230 (560) Loc: +0x3760 | offset to field `declaration_file` (string) + +0x38D0 | 14 00 00 00 | SOffset32 | 0x00000014 (20) Loc: +0x38BC | offset to vtable + +0x38D4 | 80 00 00 00 | UOffset32 | 0x00000080 (128) Loc: +0x3954 | offset to field `name` (string) + +0x38D8 | 74 00 00 00 | UOffset32 | 0x00000074 (116) Loc: +0x394C | offset to field `fields` (vector) + +0x38DC | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `minalign` (Int) + +0x38E0 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x38F0 | offset to field `attributes` (vector) + +0x38E4 | 08 00 00 00 | UOffset32 | 0x00000008 (8) Loc: +0x38EC | offset to field `documentation` (vector) + +0x38E8 | 30 02 00 00 | UOffset32 | 0x00000230 (560) Loc: +0x3B18 | offset to field `declaration_file` (string) vector (reflection.Object.documentation): - +0x3534 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x38EC | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) vector (reflection.Object.attributes): - +0x3538 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) - +0x353C | 30 00 00 00 | UOffset32 | 0x00000030 (48) Loc: +0x356C | offset to table[0] - +0x3540 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3544 | offset to table[1] + +0x38F0 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) + +0x38F4 | 30 00 00 00 | UOffset32 | 0x00000030 (48) Loc: +0x3924 | offset to table[0] + +0x38F8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x38FC | offset to table[1] table (reflection.KeyValue): - +0x3544 | E0 FF FF FF | SOffset32 | 0xFFFFFFE0 (-32) Loc: +0x3564 | offset to vtable - +0x3548 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x3558 | offset to field `key` (string) - +0x354C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3550 | offset to field `value` (string) + +0x38FC | E0 FF FF FF | SOffset32 | 0xFFFFFFE0 (-32) Loc: +0x391C | offset to vtable + +0x3900 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x3910 | offset to field `key` (string) + +0x3904 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3908 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x3550 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x3554 | 30 | char[1] | 0 | string literal - +0x3555 | 00 | char | 0x00 (0) | string terminator + +0x3908 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x390C | 30 | char[1] | 0 | string literal + +0x390D | 00 | char | 0x00 (0) | string terminator padding: - +0x3556 | 00 00 | uint8_t[2] | .. | padding + +0x390E | 00 00 | uint8_t[2] | .. | padding string (reflection.KeyValue.key): - +0x3558 | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string - +0x355C | 70 72 69 76 61 74 65 | char[7] | private | string literal - +0x3563 | 00 | char | 0x00 (0) | string terminator + +0x3910 | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string + +0x3914 | 70 72 69 76 61 74 65 | char[7] | private | string literal + +0x391B | 00 | char | 0x00 (0) | string terminator vtable (reflection.KeyValue): - +0x3564 | 08 00 | uint16_t | 0x0008 (8) | size of this vtable - +0x3566 | 0C 00 | uint16_t | 0x000C (12) | size of referring table - +0x3568 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `key` (id: 0) - +0x356A | 08 00 | VOffset16 | 0x0008 (8) | offset to field `value` (id: 1) + +0x391C | 08 00 | uint16_t | 0x0008 (8) | size of this vtable + +0x391E | 0C 00 | uint16_t | 0x000C (12) | size of referring table + +0x3920 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `key` (id: 0) + +0x3922 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `value` (id: 1) table (reflection.KeyValue): - +0x356C | 08 00 00 00 | SOffset32 | 0x00000008 (8) Loc: +0x3564 | offset to vtable - +0x3570 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x3580 | offset to field `key` (string) - +0x3574 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3578 | offset to field `value` (string) + +0x3924 | 08 00 00 00 | SOffset32 | 0x00000008 (8) Loc: +0x391C | offset to vtable + +0x3928 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x3938 | offset to field `key` (string) + +0x392C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3930 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x3578 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x357C | 30 | char[1] | 0 | string literal - +0x357D | 00 | char | 0x00 (0) | string terminator + +0x3930 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x3934 | 30 | char[1] | 0 | string literal + +0x3935 | 00 | char | 0x00 (0) | string terminator padding: - +0x357E | 00 00 | uint8_t[2] | .. | padding + +0x3936 | 00 00 | uint8_t[2] | .. | padding string (reflection.KeyValue.key): - +0x3580 | 0E 00 00 00 | uint32_t | 0x0000000E (14) | length of string - +0x3584 | 63 73 68 61 72 70 5F 70 | char[14] | csharp_p | string literal - +0x358C | 61 72 74 69 61 6C | | artial - +0x3592 | 00 | char | 0x00 (0) | string terminator + +0x3938 | 0E 00 00 00 | uint32_t | 0x0000000E (14) | length of string + +0x393C | 63 73 68 61 72 70 5F 70 | char[14] | csharp_p | string literal + +0x3944 | 61 72 74 69 61 6C | | artial + +0x394A | 00 | char | 0x00 (0) | string terminator vector (reflection.Object.fields): - +0x3594 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x3598 | 4C 00 00 00 | UOffset32 | 0x0000004C (76) Loc: +0x35E4 | offset to table[0] + +0x394C | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x3950 | 4C 00 00 00 | UOffset32 | 0x0000004C (76) Loc: +0x399C | offset to table[0] string (reflection.Object.name): - +0x359C | 26 00 00 00 | uint32_t | 0x00000026 (38) | length of string - +0x35A0 | 4D 79 47 61 6D 65 2E 45 | char[38] | MyGame.E | string literal - +0x35A8 | 78 61 6D 70 6C 65 2E 54 | | xample.T - +0x35B0 | 65 73 74 53 69 6D 70 6C | | estSimpl - +0x35B8 | 65 54 61 62 6C 65 57 69 | | eTableWi - +0x35C0 | 74 68 45 6E 75 6D | | thEnum - +0x35C6 | 00 | char | 0x00 (0) | string terminator + +0x3954 | 26 00 00 00 | uint32_t | 0x00000026 (38) | length of string + +0x3958 | 4D 79 47 61 6D 65 2E 45 | char[38] | MyGame.E | string literal + +0x3960 | 78 61 6D 70 6C 65 2E 54 | | xample.T + +0x3968 | 65 73 74 53 69 6D 70 6C | | estSimpl + +0x3970 | 65 54 61 62 6C 65 57 69 | | eTableWi + +0x3978 | 74 68 45 6E 75 6D | | thEnum + +0x397E | 00 | char | 0x00 (0) | string terminator padding: - +0x35C7 | 00 00 00 | uint8_t[3] | ... | padding + +0x397F | 00 00 00 | uint8_t[3] | ... | padding vtable (reflection.Field): - +0x35CA | 1A 00 | uint16_t | 0x001A (26) | size of this vtable - +0x35CC | 1C 00 | uint16_t | 0x001C (28) | size of referring table - +0x35CE | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0) - +0x35D0 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `type` (id: 1) - +0x35D2 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `id` (id: 2) (UShort) - +0x35D4 | 06 00 | VOffset16 | 0x0006 (6) | offset to field `offset` (id: 3) - +0x35D6 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `default_integer` (id: 4) - +0x35D8 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) (Double) - +0x35DA | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) - +0x35DC | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) (Bool) - +0x35DE | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 8) (Bool) - +0x35E0 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `attributes` (id: 9) (Vector) - +0x35E2 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `documentation` (id: 10) + +0x3982 | 1A 00 | uint16_t | 0x001A (26) | size of this vtable + +0x3984 | 1C 00 | uint16_t | 0x001C (28) | size of referring table + +0x3986 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0) + +0x3988 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `type` (id: 1) + +0x398A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `id` (id: 2) (UShort) + +0x398C | 06 00 | VOffset16 | 0x0006 (6) | offset to field `offset` (id: 3) + +0x398E | 14 00 | VOffset16 | 0x0014 (20) | offset to field `default_integer` (id: 4) + +0x3990 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) (Double) + +0x3992 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) + +0x3994 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) (Bool) + +0x3996 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 8) (Bool) + +0x3998 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `attributes` (id: 9) (Vector) + +0x399A | 10 00 | VOffset16 | 0x0010 (16) | offset to field `documentation` (id: 10) table (reflection.Field): - +0x35E4 | 1A 00 00 00 | SOffset32 | 0x0000001A (26) Loc: +0x35CA | offset to vtable - +0x35E8 | 00 00 | uint8_t[2] | .. | padding - +0x35EA | 04 00 | uint16_t | 0x0004 (4) | table field `offset` (UShort) - +0x35EC | 3C 00 00 00 | UOffset32 | 0x0000003C (60) Loc: +0x3628 | offset to field `name` (string) - +0x35F0 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x3614 | offset to field `type` (table) - +0x35F4 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x3600 | offset to field `documentation` (vector) - +0x35F8 | 02 00 00 00 00 00 00 00 | int64_t | 0x0000000000000002 (2) | table field `default_integer` (Long) + +0x399C | 1A 00 00 00 | SOffset32 | 0x0000001A (26) Loc: +0x3982 | offset to vtable + +0x39A0 | 00 00 | uint8_t[2] | .. | padding + +0x39A2 | 04 00 | uint16_t | 0x0004 (4) | table field `offset` (UShort) + +0x39A4 | 3C 00 00 00 | UOffset32 | 0x0000003C (60) Loc: +0x39E0 | offset to field `name` (string) + +0x39A8 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x39CC | offset to field `type` (table) + +0x39AC | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x39B8 | offset to field `documentation` (vector) + +0x39B0 | 02 00 00 00 00 00 00 00 | int64_t | 0x0000000000000002 (2) | table field `default_integer` (Long) vector (reflection.Field.documentation): - +0x3600 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x39B8 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) vtable (reflection.Type): - +0x3604 | 10 00 | uint16_t | 0x0010 (16) | size of this vtable - +0x3606 | 14 00 | uint16_t | 0x0014 (20) | size of referring table - +0x3608 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `base_type` (id: 0) - +0x360A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `element` (id: 1) (Byte) - +0x360C | 08 00 | VOffset16 | 0x0008 (8) | offset to field `index` (id: 2) - +0x360E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `fixed_length` (id: 3) (UShort) - +0x3610 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `base_size` (id: 4) - +0x3612 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `element_size` (id: 5) + +0x39BC | 10 00 | uint16_t | 0x0010 (16) | size of this vtable + +0x39BE | 14 00 | uint16_t | 0x0014 (20) | size of referring table + +0x39C0 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `base_type` (id: 0) + +0x39C2 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `element` (id: 1) (Byte) + +0x39C4 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `index` (id: 2) + +0x39C6 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `fixed_length` (id: 3) (UShort) + +0x39C8 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `base_size` (id: 4) + +0x39CA | 10 00 | VOffset16 | 0x0010 (16) | offset to field `element_size` (id: 5) table (reflection.Type): - +0x3614 | 10 00 00 00 | SOffset32 | 0x00000010 (16) Loc: +0x3604 | offset to vtable - +0x3618 | 00 00 00 | uint8_t[3] | ... | padding - +0x361B | 04 | uint8_t | 0x04 (4) | table field `base_type` (Byte) - +0x361C | 03 00 00 00 | uint32_t | 0x00000003 (3) | table field `index` (Int) - +0x3620 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) - +0x3624 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x39CC | 10 00 00 00 | SOffset32 | 0x00000010 (16) Loc: +0x39BC | offset to vtable + +0x39D0 | 00 00 00 | uint8_t[3] | ... | padding + +0x39D3 | 04 | uint8_t | 0x04 (4) | table field `base_type` (Byte) + +0x39D4 | 03 00 00 00 | uint32_t | 0x00000003 (3) | table field `index` (Int) + +0x39D8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) + +0x39DC | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x3628 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string - +0x362C | 63 6F 6C 6F 72 | char[5] | color | string literal - +0x3631 | 00 | char | 0x00 (0) | string terminator + +0x39E0 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string + +0x39E4 | 63 6F 6C 6F 72 | char[5] | color | string literal + +0x39E9 | 00 | char | 0x00 (0) | string terminator padding: - +0x3632 | 00 00 | uint8_t[2] | .. | padding + +0x39EA | 00 00 | uint8_t[2] | .. | padding table (reflection.Object): - +0x3634 | 54 FD FF FF | SOffset32 | 0xFFFFFD54 (-684) Loc: +0x38E0 | offset to vtable - +0x3638 | 00 00 00 | uint8_t[3] | ... | padding - +0x363B | 01 | uint8_t | 0x01 (1) | table field `is_struct` (Bool) - +0x363C | 28 00 00 00 | UOffset32 | 0x00000028 (40) Loc: +0x3664 | offset to field `name` (string) - +0x3640 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x3658 | offset to field `fields` (vector) - +0x3644 | 02 00 00 00 | uint32_t | 0x00000002 (2) | table field `minalign` (Int) - +0x3648 | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `bytesize` (Int) - +0x364C | 08 00 00 00 | UOffset32 | 0x00000008 (8) Loc: +0x3654 | offset to field `documentation` (vector) - +0x3650 | 10 01 00 00 | UOffset32 | 0x00000110 (272) Loc: +0x3760 | offset to field `declaration_file` (string) + +0x39EC | 54 FD FF FF | SOffset32 | 0xFFFFFD54 (-684) Loc: +0x3C98 | offset to vtable + +0x39F0 | 00 00 00 | uint8_t[3] | ... | padding + +0x39F3 | 01 | uint8_t | 0x01 (1) | table field `is_struct` (Bool) + +0x39F4 | 28 00 00 00 | UOffset32 | 0x00000028 (40) Loc: +0x3A1C | offset to field `name` (string) + +0x39F8 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x3A10 | offset to field `fields` (vector) + +0x39FC | 02 00 00 00 | uint32_t | 0x00000002 (2) | table field `minalign` (Int) + +0x3A00 | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `bytesize` (Int) + +0x3A04 | 08 00 00 00 | UOffset32 | 0x00000008 (8) Loc: +0x3A0C | offset to field `documentation` (vector) + +0x3A08 | 10 01 00 00 | UOffset32 | 0x00000110 (272) Loc: +0x3B18 | offset to field `declaration_file` (string) vector (reflection.Object.documentation): - +0x3654 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x3A0C | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) vector (reflection.Object.fields): - +0x3658 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) - +0x365C | 74 00 00 00 | UOffset32 | 0x00000074 (116) Loc: +0x36D0 | offset to table[0] - +0x3660 | 3C 00 00 00 | UOffset32 | 0x0000003C (60) Loc: +0x369C | offset to table[1] + +0x3A10 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) + +0x3A14 | 74 00 00 00 | UOffset32 | 0x00000074 (116) Loc: +0x3A88 | offset to table[0] + +0x3A18 | 3C 00 00 00 | UOffset32 | 0x0000003C (60) Loc: +0x3A54 | offset to table[1] string (reflection.Object.name): - +0x3664 | 13 00 00 00 | uint32_t | 0x00000013 (19) | length of string - +0x3668 | 4D 79 47 61 6D 65 2E 45 | char[19] | MyGame.E | string literal - +0x3670 | 78 61 6D 70 6C 65 2E 54 | | xample.T - +0x3678 | 65 73 74 | | est - +0x367B | 00 | char | 0x00 (0) | string terminator + +0x3A1C | 13 00 00 00 | uint32_t | 0x00000013 (19) | length of string + +0x3A20 | 4D 79 47 61 6D 65 2E 45 | char[19] | MyGame.E | string literal + +0x3A28 | 78 61 6D 70 6C 65 2E 54 | | xample.T + +0x3A30 | 65 73 74 | | est + +0x3A33 | 00 | char | 0x00 (0) | string terminator padding: - +0x367C | 00 00 | uint8_t[2] | .. | padding + +0x3A34 | 00 00 | uint8_t[2] | .. | padding vtable (reflection.Field): - +0x367E | 1E 00 | uint16_t | 0x001E (30) | size of this vtable - +0x3680 | 18 00 | uint16_t | 0x0018 (24) | size of referring table - +0x3682 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `name` (id: 0) - +0x3684 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `type` (id: 1) - +0x3686 | 06 00 | VOffset16 | 0x0006 (6) | offset to field `id` (id: 2) - +0x3688 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `offset` (id: 3) - +0x368A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) (Long) - +0x368C | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) (Double) - +0x368E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) - +0x3690 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) (Bool) - +0x3692 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 8) (Bool) - +0x3694 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `attributes` (id: 9) (Vector) - +0x3696 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `documentation` (id: 10) - +0x3698 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `optional` (id: 11) (Bool) - +0x369A | 0A 00 | VOffset16 | 0x000A (10) | offset to field `padding` (id: 12) + +0x3A36 | 1E 00 | uint16_t | 0x001E (30) | size of this vtable + +0x3A38 | 18 00 | uint16_t | 0x0018 (24) | size of referring table + +0x3A3A | 0C 00 | VOffset16 | 0x000C (12) | offset to field `name` (id: 0) + +0x3A3C | 10 00 | VOffset16 | 0x0010 (16) | offset to field `type` (id: 1) + +0x3A3E | 06 00 | VOffset16 | 0x0006 (6) | offset to field `id` (id: 2) + +0x3A40 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `offset` (id: 3) + +0x3A42 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) (Long) + +0x3A44 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) (Double) + +0x3A46 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) + +0x3A48 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) (Bool) + +0x3A4A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 8) (Bool) + +0x3A4C | 00 00 | VOffset16 | 0x0000 (0) | offset to field `attributes` (id: 9) (Vector) + +0x3A4E | 14 00 | VOffset16 | 0x0014 (20) | offset to field `documentation` (id: 10) + +0x3A50 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `optional` (id: 11) (Bool) + +0x3A52 | 0A 00 | VOffset16 | 0x000A (10) | offset to field `padding` (id: 12) table (reflection.Field): - +0x369C | 1E 00 00 00 | SOffset32 | 0x0000001E (30) Loc: +0x367E | offset to vtable - +0x36A0 | 00 00 | uint8_t[2] | .. | padding - +0x36A2 | 01 00 | uint16_t | 0x0001 (1) | table field `id` (UShort) - +0x36A4 | 02 00 | uint16_t | 0x0002 (2) | table field `offset` (UShort) - +0x36A6 | 01 00 | uint16_t | 0x0001 (1) | table field `padding` (UShort) - +0x36A8 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x36C8 | offset to field `name` (string) - +0x36AC | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x36B8 | offset to field `type` (table) - +0x36B0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x36B4 | offset to field `documentation` (vector) + +0x3A54 | 1E 00 00 00 | SOffset32 | 0x0000001E (30) Loc: +0x3A36 | offset to vtable + +0x3A58 | 00 00 | uint8_t[2] | .. | padding + +0x3A5A | 01 00 | uint16_t | 0x0001 (1) | table field `id` (UShort) + +0x3A5C | 02 00 | uint16_t | 0x0002 (2) | table field `offset` (UShort) + +0x3A5E | 01 00 | uint16_t | 0x0001 (1) | table field `padding` (UShort) + +0x3A60 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x3A80 | offset to field `name` (string) + +0x3A64 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x3A70 | offset to field `type` (table) + +0x3A68 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3A6C | offset to field `documentation` (vector) vector (reflection.Field.documentation): - +0x36B4 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x3A6C | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) table (reflection.Type): - +0x36B8 | D4 FF FF FF | SOffset32 | 0xFFFFFFD4 (-44) Loc: +0x36E4 | offset to vtable - +0x36BC | 00 00 00 | uint8_t[3] | ... | padding - +0x36BF | 03 | uint8_t | 0x03 (3) | table field `base_type` (Byte) - +0x36C0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) - +0x36C4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x3A70 | D4 FF FF FF | SOffset32 | 0xFFFFFFD4 (-44) Loc: +0x3A9C | offset to vtable + +0x3A74 | 00 00 00 | uint8_t[3] | ... | padding + +0x3A77 | 03 | uint8_t | 0x03 (3) | table field `base_type` (Byte) + +0x3A78 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) + +0x3A7C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x36C8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x36CC | 62 | char[1] | b | string literal - +0x36CD | 00 | char | 0x00 (0) | string terminator + +0x3A80 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x3A84 | 62 | char[1] | b | string literal + +0x3A85 | 00 | char | 0x00 (0) | string terminator padding: - +0x36CE | 00 00 | uint8_t[2] | .. | padding + +0x3A86 | 00 00 | uint8_t[2] | .. | padding table (reflection.Field): - +0x36D0 | 62 FD FF FF | SOffset32 | 0xFFFFFD62 (-670) Loc: +0x396E | offset to vtable - +0x36D4 | 30 00 00 00 | UOffset32 | 0x00000030 (48) Loc: +0x3704 | offset to field `name` (string) - +0x36D8 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: +0x36F4 | offset to field `type` (table) - +0x36DC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x36E0 | offset to field `documentation` (vector) + +0x3A88 | 62 FD FF FF | SOffset32 | 0xFFFFFD62 (-670) Loc: +0x3D26 | offset to vtable + +0x3A8C | 30 00 00 00 | UOffset32 | 0x00000030 (48) Loc: +0x3ABC | offset to field `name` (string) + +0x3A90 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: +0x3AAC | offset to field `type` (table) + +0x3A94 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3A98 | offset to field `documentation` (vector) vector (reflection.Field.documentation): - +0x36E0 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x3A98 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) vtable (reflection.Type): - +0x36E4 | 10 00 | uint16_t | 0x0010 (16) | size of this vtable - +0x36E6 | 10 00 | uint16_t | 0x0010 (16) | size of referring table - +0x36E8 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `base_type` (id: 0) - +0x36EA | 00 00 | VOffset16 | 0x0000 (0) | offset to field `element` (id: 1) (Byte) - +0x36EC | 00 00 | VOffset16 | 0x0000 (0) | offset to field `index` (id: 2) (Int) - +0x36EE | 00 00 | VOffset16 | 0x0000 (0) | offset to field `fixed_length` (id: 3) (UShort) - +0x36F0 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `base_size` (id: 4) - +0x36F2 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `element_size` (id: 5) + +0x3A9C | 10 00 | uint16_t | 0x0010 (16) | size of this vtable + +0x3A9E | 10 00 | uint16_t | 0x0010 (16) | size of referring table + +0x3AA0 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `base_type` (id: 0) + +0x3AA2 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `element` (id: 1) (Byte) + +0x3AA4 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `index` (id: 2) (Int) + +0x3AA6 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `fixed_length` (id: 3) (UShort) + +0x3AA8 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `base_size` (id: 4) + +0x3AAA | 0C 00 | VOffset16 | 0x000C (12) | offset to field `element_size` (id: 5) table (reflection.Type): - +0x36F4 | 10 00 00 00 | SOffset32 | 0x00000010 (16) Loc: +0x36E4 | offset to vtable - +0x36F8 | 00 00 00 | uint8_t[3] | ... | padding - +0x36FB | 05 | uint8_t | 0x05 (5) | table field `base_type` (Byte) - +0x36FC | 02 00 00 00 | uint32_t | 0x00000002 (2) | table field `base_size` (UInt) - +0x3700 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x3AAC | 10 00 00 00 | SOffset32 | 0x00000010 (16) Loc: +0x3A9C | offset to vtable + +0x3AB0 | 00 00 00 | uint8_t[3] | ... | padding + +0x3AB3 | 05 | uint8_t | 0x05 (5) | table field `base_type` (Byte) + +0x3AB4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | table field `base_size` (UInt) + +0x3AB8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x3704 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x3708 | 61 | char[1] | a | string literal - +0x3709 | 00 | char | 0x00 (0) | string terminator + +0x3ABC | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x3AC0 | 61 | char[1] | a | string literal + +0x3AC1 | 00 | char | 0x00 (0) | string terminator padding: - +0x370A | 00 00 | uint8_t[2] | .. | padding + +0x3AC2 | 00 00 | uint8_t[2] | .. | padding table (reflection.Object): - +0x370C | E4 FE FF FF | SOffset32 | 0xFFFFFEE4 (-284) Loc: +0x3828 | offset to vtable - +0x3710 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: +0x372C | offset to field `name` (string) - +0x3714 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x3728 | offset to field `fields` (vector) - +0x3718 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `minalign` (Int) - +0x371C | 08 00 00 00 | UOffset32 | 0x00000008 (8) Loc: +0x3724 | offset to field `documentation` (vector) - +0x3720 | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: +0x3760 | offset to field `declaration_file` (string) + +0x3AC4 | E4 FE FF FF | SOffset32 | 0xFFFFFEE4 (-284) Loc: +0x3BE0 | offset to vtable + +0x3AC8 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: +0x3AE4 | offset to field `name` (string) + +0x3ACC | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x3AE0 | offset to field `fields` (vector) + +0x3AD0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `minalign` (Int) + +0x3AD4 | 08 00 00 00 | UOffset32 | 0x00000008 (8) Loc: +0x3ADC | offset to field `documentation` (vector) + +0x3AD8 | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: +0x3B18 | offset to field `declaration_file` (string) vector (reflection.Object.documentation): - +0x3724 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x3ADC | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) vector (reflection.Object.fields): - +0x3728 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x3AE0 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) string (reflection.Object.name): - +0x372C | 17 00 00 00 | uint32_t | 0x00000017 (23) | length of string - +0x3730 | 4D 79 47 61 6D 65 2E 45 | char[23] | MyGame.E | string literal - +0x3738 | 78 61 6D 70 6C 65 32 2E | | xample2. - +0x3740 | 4D 6F 6E 73 74 65 72 | | Monster - +0x3747 | 00 | char | 0x00 (0) | string terminator + +0x3AE4 | 17 00 00 00 | uint32_t | 0x00000017 (23) | length of string + +0x3AE8 | 4D 79 47 61 6D 65 2E 45 | char[23] | MyGame.E | string literal + +0x3AF0 | 78 61 6D 70 6C 65 32 2E | | xample2. + +0x3AF8 | 4D 6F 6E 73 74 65 72 | | Monster + +0x3AFF | 00 | char | 0x00 (0) | string terminator table (reflection.Object): - +0x3748 | 20 FF FF FF | SOffset32 | 0xFFFFFF20 (-224) Loc: +0x3828 | offset to vtable - +0x374C | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x3780 | offset to field `name` (string) - +0x3750 | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: +0x377C | offset to field `fields` (vector) - +0x3754 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `minalign` (Int) - +0x3758 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x3778 | offset to field `documentation` (vector) - +0x375C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3760 | offset to field `declaration_file` (string) + +0x3B00 | 20 FF FF FF | SOffset32 | 0xFFFFFF20 (-224) Loc: +0x3BE0 | offset to vtable + +0x3B04 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x3B38 | offset to field `name` (string) + +0x3B08 | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: +0x3B34 | offset to field `fields` (vector) + +0x3B0C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `minalign` (Int) + +0x3B10 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x3B30 | offset to field `documentation` (vector) + +0x3B14 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3B18 | offset to field `declaration_file` (string) string (reflection.Object.declaration_file): - +0x3760 | 12 00 00 00 | uint32_t | 0x00000012 (18) | length of string - +0x3764 | 2F 2F 6D 6F 6E 73 74 65 | char[18] | //monste | string literal - +0x376C | 72 5F 74 65 73 74 2E 66 | | r_test.f - +0x3774 | 62 73 | | bs - +0x3776 | 00 | char | 0x00 (0) | string terminator + +0x3B18 | 12 00 00 00 | uint32_t | 0x00000012 (18) | length of string + +0x3B1C | 2F 2F 6D 6F 6E 73 74 65 | char[18] | //monste | string literal + +0x3B24 | 72 5F 74 65 73 74 2E 66 | | r_test.f + +0x3B2C | 62 73 | | bs + +0x3B2E | 00 | char | 0x00 (0) | string terminator vector (reflection.Object.documentation): - +0x3778 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x3B30 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) vector (reflection.Object.fields): - +0x377C | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x3B34 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) string (reflection.Object.name): - +0x3780 | 18 00 00 00 | uint32_t | 0x00000018 (24) | length of string - +0x3784 | 4D 79 47 61 6D 65 2E 49 | char[24] | MyGame.I | string literal - +0x378C | 6E 50 61 72 65 6E 74 4E | | nParentN - +0x3794 | 61 6D 65 73 70 61 63 65 | | amespace - +0x379C | 00 | char | 0x00 (0) | string terminator + +0x3B38 | 18 00 00 00 | uint32_t | 0x00000018 (24) | length of string + +0x3B3C | 4D 79 47 61 6D 65 2E 49 | char[24] | MyGame.I | string literal + +0x3B44 | 6E 50 61 72 65 6E 74 4E | | nParentN + +0x3B4C | 61 6D 65 73 70 61 63 65 | | amespace + +0x3B54 | 00 | char | 0x00 (0) | string terminator padding: - +0x379D | 00 00 00 | uint8_t[3] | ... | padding + +0x3B55 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Object): - +0x37A0 | 78 FF FF FF | SOffset32 | 0xFFFFFF78 (-136) Loc: +0x3828 | offset to vtable - +0x37A4 | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: +0x37EC | offset to field `name` (string) - +0x37A8 | 3C 00 00 00 | UOffset32 | 0x0000003C (60) Loc: +0x37E4 | offset to field `fields` (vector) - +0x37AC | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `minalign` (Int) - +0x37B0 | 30 00 00 00 | UOffset32 | 0x00000030 (48) Loc: +0x37E0 | offset to field `documentation` (vector) - +0x37B4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x37B8 | offset to field `declaration_file` (string) + +0x3B58 | 78 FF FF FF | SOffset32 | 0xFFFFFF78 (-136) Loc: +0x3BE0 | offset to vtable + +0x3B5C | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: +0x3BA4 | offset to field `name` (string) + +0x3B60 | 3C 00 00 00 | UOffset32 | 0x0000003C (60) Loc: +0x3B9C | offset to field `fields` (vector) + +0x3B64 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `minalign` (Int) + +0x3B68 | 30 00 00 00 | UOffset32 | 0x00000030 (48) Loc: +0x3B98 | offset to field `documentation` (vector) + +0x3B6C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3B70 | offset to field `declaration_file` (string) string (reflection.Object.declaration_file): - +0x37B8 | 20 00 00 00 | uint32_t | 0x00000020 (32) | length of string - +0x37BC | 2F 2F 69 6E 63 6C 75 64 | char[32] | //includ | string literal - +0x37C4 | 65 5F 74 65 73 74 2F 69 | | e_test/i - +0x37CC | 6E 63 6C 75 64 65 5F 74 | | nclude_t - +0x37D4 | 65 73 74 31 2E 66 62 73 | | est1.fbs - +0x37DC | 00 | char | 0x00 (0) | string terminator + +0x3B70 | 20 00 00 00 | uint32_t | 0x00000020 (32) | length of string + +0x3B74 | 2F 2F 69 6E 63 6C 75 64 | char[32] | //includ | string literal + +0x3B7C | 65 5F 74 65 73 74 2F 69 | | e_test/i + +0x3B84 | 6E 63 6C 75 64 65 5F 74 | | nclude_t + +0x3B8C | 65 73 74 31 2E 66 62 73 | | est1.fbs + +0x3B94 | 00 | char | 0x00 (0) | string terminator padding: - +0x37DD | 00 00 00 | uint8_t[3] | ... | padding + +0x3B95 | 00 00 00 | uint8_t[3] | ... | padding vector (reflection.Object.documentation): - +0x37E0 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x3B98 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) vector (reflection.Object.fields): - +0x37E4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x37E8 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x37F8 | offset to table[0] + +0x3B9C | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x3BA0 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x3BB0 | offset to table[0] string (reflection.Object.name): - +0x37EC | 06 00 00 00 | uint32_t | 0x00000006 (6) | length of string - +0x37F0 | 54 61 62 6C 65 41 | char[6] | TableA | string literal - +0x37F6 | 00 | char | 0x00 (0) | string terminator + +0x3BA4 | 06 00 00 00 | uint32_t | 0x00000006 (6) | length of string + +0x3BA8 | 54 61 62 6C 65 41 | char[6] | TableA | string literal + +0x3BAE | 00 | char | 0x00 (0) | string terminator table (reflection.Field): - +0x37F8 | 74 FF FF FF | SOffset32 | 0xFFFFFF74 (-140) Loc: +0x3884 | offset to vtable - +0x37FC | 00 | uint8_t[1] | . | padding - +0x37FD | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x37FE | 04 00 | uint16_t | 0x0004 (4) | table field `offset` (UShort) - +0x3800 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x3820 | offset to field `name` (string) - +0x3804 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x3810 | offset to field `type` (table) - +0x3808 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x380C | offset to field `documentation` (vector) + +0x3BB0 | 74 FF FF FF | SOffset32 | 0xFFFFFF74 (-140) Loc: +0x3C3C | offset to vtable + +0x3BB4 | 00 | uint8_t[1] | . | padding + +0x3BB5 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x3BB6 | 04 00 | uint16_t | 0x0004 (4) | table field `offset` (UShort) + +0x3BB8 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x3BD8 | offset to field `name` (string) + +0x3BBC | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x3BC8 | offset to field `type` (table) + +0x3BC0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3BC4 | offset to field `documentation` (vector) vector (reflection.Field.documentation): - +0x380C | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x3BC4 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) table (reflection.Type): - +0x3810 | 58 FF FF FF | SOffset32 | 0xFFFFFF58 (-168) Loc: +0x38B8 | offset to vtable - +0x3814 | 00 00 00 | uint8_t[3] | ... | padding - +0x3817 | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) - +0x3818 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | table field `index` (Int) - +0x381C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x3BC8 | 58 FF FF FF | SOffset32 | 0xFFFFFF58 (-168) Loc: +0x3C70 | offset to vtable + +0x3BCC | 00 00 00 | uint8_t[3] | ... | padding + +0x3BCF | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) + +0x3BD0 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | table field `index` (Int) + +0x3BD4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x3820 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x3824 | 62 | char[1] | b | string literal - +0x3825 | 00 | char | 0x00 (0) | string terminator + +0x3BD8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x3BDC | 62 | char[1] | b | string literal + +0x3BDD | 00 | char | 0x00 (0) | string terminator padding: - +0x3826 | 00 00 | uint8_t[2] | .. | padding + +0x3BDE | 00 00 | uint8_t[2] | .. | padding vtable (reflection.Object): - +0x3828 | 14 00 | uint16_t | 0x0014 (20) | size of this vtable - +0x382A | 18 00 | uint16_t | 0x0018 (24) | size of referring table - +0x382C | 04 00 | VOffset16 | 0x0004 (4) | offset to field `name` (id: 0) - +0x382E | 08 00 | VOffset16 | 0x0008 (8) | offset to field `fields` (id: 1) - +0x3830 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `is_struct` (id: 2) (Bool) - +0x3832 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `minalign` (id: 3) - +0x3834 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `bytesize` (id: 4) (Int) - +0x3836 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `attributes` (id: 5) (Vector) - +0x3838 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `documentation` (id: 6) - +0x383A | 14 00 | VOffset16 | 0x0014 (20) | offset to field `declaration_file` (id: 7) + +0x3BE0 | 14 00 | uint16_t | 0x0014 (20) | size of this vtable + +0x3BE2 | 18 00 | uint16_t | 0x0018 (24) | size of referring table + +0x3BE4 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `name` (id: 0) + +0x3BE6 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `fields` (id: 1) + +0x3BE8 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `is_struct` (id: 2) (Bool) + +0x3BEA | 0C 00 | VOffset16 | 0x000C (12) | offset to field `minalign` (id: 3) + +0x3BEC | 00 00 | VOffset16 | 0x0000 (0) | offset to field `bytesize` (id: 4) (Int) + +0x3BEE | 00 00 | VOffset16 | 0x0000 (0) | offset to field `attributes` (id: 5) (Vector) + +0x3BF0 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `documentation` (id: 6) + +0x3BF2 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `declaration_file` (id: 7) table (reflection.Object): - +0x383C | 14 00 00 00 | SOffset32 | 0x00000014 (20) Loc: +0x3828 | offset to vtable - +0x3840 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x3860 | offset to field `name` (string) - +0x3844 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x3858 | offset to field `fields` (vector) - +0x3848 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `minalign` (Int) - +0x384C | 08 00 00 00 | UOffset32 | 0x00000008 (8) Loc: +0x3854 | offset to field `documentation` (vector) - +0x3850 | C4 00 00 00 | UOffset32 | 0x000000C4 (196) Loc: +0x3914 | offset to field `declaration_file` (string) + +0x3BF4 | 14 00 00 00 | SOffset32 | 0x00000014 (20) Loc: +0x3BE0 | offset to vtable + +0x3BF8 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x3C18 | offset to field `name` (string) + +0x3BFC | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x3C10 | offset to field `fields` (vector) + +0x3C00 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `minalign` (Int) + +0x3C04 | 08 00 00 00 | UOffset32 | 0x00000008 (8) Loc: +0x3C0C | offset to field `documentation` (vector) + +0x3C08 | C4 00 00 00 | UOffset32 | 0x000000C4 (196) Loc: +0x3CCC | offset to field `declaration_file` (string) vector (reflection.Object.documentation): - +0x3854 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x3C0C | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) vector (reflection.Object.fields): - +0x3858 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x385C | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x38A0 | offset to table[0] + +0x3C10 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x3C14 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x3C58 | offset to table[0] string (reflection.Object.name): - +0x3860 | 1C 00 00 00 | uint32_t | 0x0000001C (28) | length of string - +0x3864 | 4D 79 47 61 6D 65 2E 4F | char[28] | MyGame.O | string literal - +0x386C | 74 68 65 72 4E 61 6D 65 | | therName - +0x3874 | 53 70 61 63 65 2E 54 61 | | Space.Ta - +0x387C | 62 6C 65 42 | | bleB - +0x3880 | 00 | char | 0x00 (0) | string terminator + +0x3C18 | 1C 00 00 00 | uint32_t | 0x0000001C (28) | length of string + +0x3C1C | 4D 79 47 61 6D 65 2E 4F | char[28] | MyGame.O | string literal + +0x3C24 | 74 68 65 72 4E 61 6D 65 | | therName + +0x3C2C | 53 70 61 63 65 2E 54 61 | | Space.Ta + +0x3C34 | 62 6C 65 42 | | bleB + +0x3C38 | 00 | char | 0x00 (0) | string terminator padding: - +0x3881 | 00 00 00 | uint8_t[3] | ... | padding + +0x3C39 | 00 00 00 | uint8_t[3] | ... | padding vtable (reflection.Field): - +0x3884 | 1C 00 | uint16_t | 0x001C (28) | size of this vtable - +0x3886 | 14 00 | uint16_t | 0x0014 (20) | size of referring table - +0x3888 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0) - +0x388A | 0C 00 | VOffset16 | 0x000C (12) | offset to field `type` (id: 1) - +0x388C | 00 00 | VOffset16 | 0x0000 (0) | offset to field `id` (id: 2) (UShort) - +0x388E | 06 00 | VOffset16 | 0x0006 (6) | offset to field `offset` (id: 3) - +0x3890 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) (Long) - +0x3892 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) (Double) - +0x3894 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) - +0x3896 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) (Bool) - +0x3898 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 8) (Bool) - +0x389A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `attributes` (id: 9) (Vector) - +0x389C | 10 00 | VOffset16 | 0x0010 (16) | offset to field `documentation` (id: 10) - +0x389E | 05 00 | VOffset16 | 0x0005 (5) | offset to field `optional` (id: 11) + +0x3C3C | 1C 00 | uint16_t | 0x001C (28) | size of this vtable + +0x3C3E | 14 00 | uint16_t | 0x0014 (20) | size of referring table + +0x3C40 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0) + +0x3C42 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `type` (id: 1) + +0x3C44 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `id` (id: 2) (UShort) + +0x3C46 | 06 00 | VOffset16 | 0x0006 (6) | offset to field `offset` (id: 3) + +0x3C48 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) (Long) + +0x3C4A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) (Double) + +0x3C4C | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) + +0x3C4E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) (Bool) + +0x3C50 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 8) (Bool) + +0x3C52 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `attributes` (id: 9) (Vector) + +0x3C54 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `documentation` (id: 10) + +0x3C56 | 05 00 | VOffset16 | 0x0005 (5) | offset to field `optional` (id: 11) table (reflection.Field): - +0x38A0 | 1C 00 00 00 | SOffset32 | 0x0000001C (28) Loc: +0x3884 | offset to vtable - +0x38A4 | 00 | uint8_t[1] | . | padding - +0x38A5 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x38A6 | 04 00 | uint16_t | 0x0004 (4) | table field `offset` (UShort) - +0x38A8 | 30 00 00 00 | UOffset32 | 0x00000030 (48) Loc: +0x38D8 | offset to field `name` (string) - +0x38AC | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: +0x38C8 | offset to field `type` (table) - +0x38B0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x38B4 | offset to field `documentation` (vector) + +0x3C58 | 1C 00 00 00 | SOffset32 | 0x0000001C (28) Loc: +0x3C3C | offset to vtable + +0x3C5C | 00 | uint8_t[1] | . | padding + +0x3C5D | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x3C5E | 04 00 | uint16_t | 0x0004 (4) | table field `offset` (UShort) + +0x3C60 | 30 00 00 00 | UOffset32 | 0x00000030 (48) Loc: +0x3C90 | offset to field `name` (string) + +0x3C64 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: +0x3C80 | offset to field `type` (table) + +0x3C68 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3C6C | offset to field `documentation` (vector) vector (reflection.Field.documentation): - +0x38B4 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x3C6C | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) vtable (reflection.Type): - +0x38B8 | 10 00 | uint16_t | 0x0010 (16) | size of this vtable - +0x38BA | 10 00 | uint16_t | 0x0010 (16) | size of referring table - +0x38BC | 07 00 | VOffset16 | 0x0007 (7) | offset to field `base_type` (id: 0) - +0x38BE | 00 00 | VOffset16 | 0x0000 (0) | offset to field `element` (id: 1) (Byte) - +0x38C0 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `index` (id: 2) - +0x38C2 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `fixed_length` (id: 3) (UShort) - +0x38C4 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `base_size` (id: 4) (UInt) - +0x38C6 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `element_size` (id: 5) + +0x3C70 | 10 00 | uint16_t | 0x0010 (16) | size of this vtable + +0x3C72 | 10 00 | uint16_t | 0x0010 (16) | size of referring table + +0x3C74 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `base_type` (id: 0) + +0x3C76 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `element` (id: 1) (Byte) + +0x3C78 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `index` (id: 2) + +0x3C7A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `fixed_length` (id: 3) (UShort) + +0x3C7C | 00 00 | VOffset16 | 0x0000 (0) | offset to field `base_size` (id: 4) (UInt) + +0x3C7E | 0C 00 | VOffset16 | 0x000C (12) | offset to field `element_size` (id: 5) table (reflection.Type): - +0x38C8 | 10 00 00 00 | SOffset32 | 0x00000010 (16) Loc: +0x38B8 | offset to vtable - +0x38CC | 00 00 00 | uint8_t[3] | ... | padding - +0x38CF | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) - +0x38D0 | 0E 00 00 00 | uint32_t | 0x0000000E (14) | table field `index` (Int) - +0x38D4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x3C80 | 10 00 00 00 | SOffset32 | 0x00000010 (16) Loc: +0x3C70 | offset to vtable + +0x3C84 | 00 00 00 | uint8_t[3] | ... | padding + +0x3C87 | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) + +0x3C88 | 0E 00 00 00 | uint32_t | 0x0000000E (14) | table field `index` (Int) + +0x3C8C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x38D8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x38DC | 61 | char[1] | a | string literal - +0x38DD | 00 | char | 0x00 (0) | string terminator + +0x3C90 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x3C94 | 61 | char[1] | a | string literal + +0x3C95 | 00 | char | 0x00 (0) | string terminator padding: - +0x38DE | 00 00 | uint8_t[2] | .. | padding + +0x3C96 | 00 00 | uint8_t[2] | .. | padding vtable (reflection.Object): - +0x38E0 | 14 00 | uint16_t | 0x0014 (20) | size of this vtable - +0x38E2 | 20 00 | uint16_t | 0x0020 (32) | size of referring table - +0x38E4 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0) - +0x38E6 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `fields` (id: 1) - +0x38E8 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `is_struct` (id: 2) - +0x38EA | 10 00 | VOffset16 | 0x0010 (16) | offset to field `minalign` (id: 3) - +0x38EC | 14 00 | VOffset16 | 0x0014 (20) | offset to field `bytesize` (id: 4) - +0x38EE | 00 00 | VOffset16 | 0x0000 (0) | offset to field `attributes` (id: 5) (Vector) - +0x38F0 | 18 00 | VOffset16 | 0x0018 (24) | offset to field `documentation` (id: 6) - +0x38F2 | 1C 00 | VOffset16 | 0x001C (28) | offset to field `declaration_file` (id: 7) + +0x3C98 | 14 00 | uint16_t | 0x0014 (20) | size of this vtable + +0x3C9A | 20 00 | uint16_t | 0x0020 (32) | size of referring table + +0x3C9C | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0) + +0x3C9E | 0C 00 | VOffset16 | 0x000C (12) | offset to field `fields` (id: 1) + +0x3CA0 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `is_struct` (id: 2) + +0x3CA2 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `minalign` (id: 3) + +0x3CA4 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `bytesize` (id: 4) + +0x3CA6 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `attributes` (id: 5) (Vector) + +0x3CA8 | 18 00 | VOffset16 | 0x0018 (24) | offset to field `documentation` (id: 6) + +0x3CAA | 1C 00 | VOffset16 | 0x001C (28) | offset to field `declaration_file` (id: 7) table (reflection.Object): - +0x38F4 | 14 00 00 00 | SOffset32 | 0x00000014 (20) Loc: +0x38E0 | offset to vtable - +0x38F8 | 00 00 00 | uint8_t[3] | ... | padding - +0x38FB | 01 | uint8_t | 0x01 (1) | table field `is_struct` (Bool) - +0x38FC | 50 00 00 00 | UOffset32 | 0x00000050 (80) Loc: +0x394C | offset to field `name` (string) - +0x3900 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x3944 | offset to field `fields` (vector) - +0x3904 | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `minalign` (Int) - +0x3908 | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `bytesize` (Int) - +0x390C | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x3940 | offset to field `documentation` (vector) - +0x3910 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3914 | offset to field `declaration_file` (string) + +0x3CAC | 14 00 00 00 | SOffset32 | 0x00000014 (20) Loc: +0x3C98 | offset to vtable + +0x3CB0 | 00 00 00 | uint8_t[3] | ... | padding + +0x3CB3 | 01 | uint8_t | 0x01 (1) | table field `is_struct` (Bool) + +0x3CB4 | 50 00 00 00 | UOffset32 | 0x00000050 (80) Loc: +0x3D04 | offset to field `name` (string) + +0x3CB8 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x3CFC | offset to field `fields` (vector) + +0x3CBC | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `minalign` (Int) + +0x3CC0 | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `bytesize` (Int) + +0x3CC4 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x3CF8 | offset to field `documentation` (vector) + +0x3CC8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3CCC | offset to field `declaration_file` (string) string (reflection.Object.declaration_file): - +0x3914 | 24 00 00 00 | uint32_t | 0x00000024 (36) | length of string - +0x3918 | 2F 2F 69 6E 63 6C 75 64 | char[36] | //includ | string literal - +0x3920 | 65 5F 74 65 73 74 2F 73 | | e_test/s - +0x3928 | 75 62 2F 69 6E 63 6C 75 | | ub/inclu - +0x3930 | 64 65 5F 74 65 73 74 32 | | de_test2 - +0x3938 | 2E 66 62 73 | | .fbs - +0x393C | 00 | char | 0x00 (0) | string terminator + +0x3CCC | 24 00 00 00 | uint32_t | 0x00000024 (36) | length of string + +0x3CD0 | 2F 2F 69 6E 63 6C 75 64 | char[36] | //includ | string literal + +0x3CD8 | 65 5F 74 65 73 74 2F 73 | | e_test/s + +0x3CE0 | 75 62 2F 69 6E 63 6C 75 | | ub/inclu + +0x3CE8 | 64 65 5F 74 65 73 74 32 | | de_test2 + +0x3CF0 | 2E 66 62 73 | | .fbs + +0x3CF4 | 00 | char | 0x00 (0) | string terminator padding: - +0x393D | 00 00 00 | uint8_t[3] | ... | padding + +0x3CF5 | 00 00 00 | uint8_t[3] | ... | padding vector (reflection.Object.documentation): - +0x3940 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x3CF8 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) vector (reflection.Object.fields): - +0x3944 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x3948 | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: +0x3988 | offset to table[0] + +0x3CFC | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x3D00 | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: +0x3D40 | offset to table[0] string (reflection.Object.name): - +0x394C | 1C 00 00 00 | uint32_t | 0x0000001C (28) | length of string - +0x3950 | 4D 79 47 61 6D 65 2E 4F | char[28] | MyGame.O | string literal - +0x3958 | 74 68 65 72 4E 61 6D 65 | | therName - +0x3960 | 53 70 61 63 65 2E 55 6E | | Space.Un - +0x3968 | 75 73 65 64 | | used - +0x396C | 00 | char | 0x00 (0) | string terminator + +0x3D04 | 1C 00 00 00 | uint32_t | 0x0000001C (28) | length of string + +0x3D08 | 4D 79 47 61 6D 65 2E 4F | char[28] | MyGame.O | string literal + +0x3D10 | 74 68 65 72 4E 61 6D 65 | | therName + +0x3D18 | 53 70 61 63 65 2E 55 6E | | Space.Un + +0x3D20 | 75 73 65 64 | | used + +0x3D24 | 00 | char | 0x00 (0) | string terminator vtable (reflection.Field): - +0x396E | 1A 00 | uint16_t | 0x001A (26) | size of this vtable - +0x3970 | 10 00 | uint16_t | 0x0010 (16) | size of referring table - +0x3972 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `name` (id: 0) - +0x3974 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `type` (id: 1) - +0x3976 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `id` (id: 2) (UShort) - +0x3978 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `offset` (id: 3) (UShort) - +0x397A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) (Long) - +0x397C | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) (Double) - +0x397E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) - +0x3980 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) (Bool) - +0x3982 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 8) (Bool) - +0x3984 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `attributes` (id: 9) (Vector) - +0x3986 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `documentation` (id: 10) + +0x3D26 | 1A 00 | uint16_t | 0x001A (26) | size of this vtable + +0x3D28 | 10 00 | uint16_t | 0x0010 (16) | size of referring table + +0x3D2A | 04 00 | VOffset16 | 0x0004 (4) | offset to field `name` (id: 0) + +0x3D2C | 08 00 | VOffset16 | 0x0008 (8) | offset to field `type` (id: 1) + +0x3D2E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `id` (id: 2) (UShort) + +0x3D30 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `offset` (id: 3) (UShort) + +0x3D32 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) (Long) + +0x3D34 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) (Double) + +0x3D36 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) + +0x3D38 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) (Bool) + +0x3D3A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 8) (Bool) + +0x3D3C | 00 00 | VOffset16 | 0x0000 (0) | offset to field `attributes` (id: 9) (Vector) + +0x3D3E | 0C 00 | VOffset16 | 0x000C (12) | offset to field `documentation` (id: 10) table (reflection.Field): - +0x3988 | 1A 00 00 00 | SOffset32 | 0x0000001A (26) Loc: +0x396E | offset to vtable - +0x398C | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: +0x39B8 | offset to field `name` (string) - +0x3990 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: +0x39AC | offset to field `type` (table) - +0x3994 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3998 | offset to field `documentation` (vector) + +0x3D40 | 1A 00 00 00 | SOffset32 | 0x0000001A (26) Loc: +0x3D26 | offset to vtable + +0x3D44 | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: +0x3D70 | offset to field `name` (string) + +0x3D48 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: +0x3D64 | offset to field `type` (table) + +0x3D4C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3D50 | offset to field `documentation` (vector) vector (reflection.Field.documentation): - +0x3998 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x3D50 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) vtable (reflection.Type): - +0x399C | 10 00 | uint16_t | 0x0010 (16) | size of this vtable - +0x399E | 0C 00 | uint16_t | 0x000C (12) | size of referring table - +0x39A0 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `base_type` (id: 0) - +0x39A2 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `element` (id: 1) (Byte) - +0x39A4 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `index` (id: 2) (Int) - +0x39A6 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `fixed_length` (id: 3) (UShort) - +0x39A8 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `base_size` (id: 4) (UInt) - +0x39AA | 08 00 | VOffset16 | 0x0008 (8) | offset to field `element_size` (id: 5) + +0x3D54 | 10 00 | uint16_t | 0x0010 (16) | size of this vtable + +0x3D56 | 0C 00 | uint16_t | 0x000C (12) | size of referring table + +0x3D58 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `base_type` (id: 0) + +0x3D5A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `element` (id: 1) (Byte) + +0x3D5C | 00 00 | VOffset16 | 0x0000 (0) | offset to field `index` (id: 2) (Int) + +0x3D5E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `fixed_length` (id: 3) (UShort) + +0x3D60 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `base_size` (id: 4) (UInt) + +0x3D62 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `element_size` (id: 5) table (reflection.Type): - +0x39AC | 10 00 00 00 | SOffset32 | 0x00000010 (16) Loc: +0x399C | offset to vtable - +0x39B0 | 00 00 00 | uint8_t[3] | ... | padding - +0x39B3 | 07 | uint8_t | 0x07 (7) | table field `base_type` (Byte) - +0x39B4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x3D64 | 10 00 00 00 | SOffset32 | 0x00000010 (16) Loc: +0x3D54 | offset to vtable + +0x3D68 | 00 00 00 | uint8_t[3] | ... | padding + +0x3D6B | 07 | uint8_t | 0x07 (7) | table field `base_type` (Byte) + +0x3D6C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x39B8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x39BC | 61 | char[1] | a | string literal - +0x39BD | 00 | char | 0x00 (0) | string terminator + +0x3D70 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x3D74 | 61 | char[1] | a | string literal + +0x3D75 | 00 | char | 0x00 (0) | string terminator padding: - +0x39BE | 00 00 | uint8_t[2] | .. | padding + +0x3D76 | 00 00 | uint8_t[2] | .. | padding diff --git a/tests/monster_test.bfbs b/tests/monster_test.bfbs index 3838df207a06cdd326074235eca90a7158b2ed77..04a6d16d863531bf675137a232f9a1da2c9696a3 100644 GIT binary patch delta 2051 zcmZ`)Ur1Y582@q-HMwf)Y((q^A#k7^8(Uob*9vDSeb8m`K-U^-tY!dl;igaa|rp@xkrxcg{8OHg*R-?mgf4 zo$q&kzw_O5=ZCk)r&8&2Cx{|Wq8omqR5Ovgg=p$HQFkj*Fi4cBB=QA_JR$gCXWEE% zV7KsYCFH=|FdOXlqONzrFWxP%>v*4sZwvXt$6#0B+rWGs{;?1pCYmWQkw3oh~*Yk(yd`R{m4FLIZyN4W)NV$3h`3EKrWmf=rr0XCcA^<~ZMj|~5) z?1It_g~X_Oz?aH;*qtnIEPs#fWVwdNJ4^g-`Ny?3s3wMBEtuLL^2UmKHu(b&S3FnN zp{p2^59h-6kcD0I^Di77Y&s{CnsReb9ba0MZk&J^^FQ&4%CFR>9K^)*5KNS{!?wM= zzN&|vdCVuOTGw*uR$gL>k#*zCia;>D0 zrzAJA%$-iPYz<+?Z~70i8_T@Isj~7l?)0fFx6CzX*y{#gER>pwszSFobjxGY5jY~4 z3%}TWOA~+MJe}^qYY_9VVKxU*6n4HEU(!*0J&3hq*W0z2dx(;663s%}JE(gd@jT8l z0o#Co1MwZiB4zlxfZ>D9Dny=Fh&t;5iI@%R77+it9AEJPtUp3&N*%!l0MJ`UbnI24 znu9=vZwyZlz`I=lgiWKp8ekdt@4b%rYed%$qX^cxF;A%|3||-Ko5;@rs2f*84K|Pm zU_v}W(o+K>AlQJbLwkFKAh2`O4T_9WU{ z9G@}rSZRnU8ajeTM&05S5%BMdA0^ttnITkcPH?5@(8wo)vA(#L9_Wk42Kq+^lSChG z>3Tb*Bw#0!K#oLFW8_5pIO`_1Bx*no2K{QRBNGxG0 zrG;Des*v|~DJXin06Jy#e35BlXgK~drh@4A0B)sGlfr#3NW2fY;pY;zxTy=kcH>+n zusEg?Wr61+5C6{dMmk8z|I=0?7POr%MZ=w6K$|q732n_Z&Dzd9)Af^d$wUzvo4RNp zMfWcy6!8-&fYRDt7vWP96pL83f9ZOF5@sM1&bA5Xl+mtNN`YGTfIce$()zUm(A?3Q Hn{WRId~>YK delta 1156 zcmZWoUr5tY6h6PZsoT#vP1mwzGDet@Tg&DWA0%Y`VJP?%V~A*IsN|9?St8Dd2nmtV z=^;YGr;zAP=`r@;lWv8%+(Z!zkq{qx2U86ckVg&-ao^M!T3mQ z>MBvImFTCNXx>BAD%WfhYV_d>EKRz*5hu;u1bTdz7F^yLm&gi<%_Agg21$ z;z{09nuN{G4Wd%~PI6dOiHa0Yy6pT~_{3O^zG*DQ+ajoXQGp!36gLKx-w-5rn66Ve`>&FT(k&{IG*i zro){Ou3gnMBhD)y;L%eDa@>LgZZEj);2KCJ=P_<|hOJh+V-jJ31|JWHGTeypCxjKs zKM@|!aKsw)q%->A^p?t`vaP*n>kMl00%(OVaar3)HE&y+VtDQ}hAZ2GHRln1fX$e3 z_2-Dj%kfZ(K}BJS^Z0DQ0@y!~J>E(fuo?Iz1<)wM#{^b`oNc%s6B-e6K=&+geC&Cw zwR7&*hG=wm>!Jh-K75sW6N+59* zi9<-3l`{@Mj>PLIU_vE4B%+q5w>$g0JvXDB{R0oWJuMF-gO9r(5#9T%X>~NaQTFE2 EKcz(afB*mh diff --git a/tests/monster_test.fbs b/tests/monster_test.fbs index 14d34cb4ab..b40ecf58f9 100644 --- a/tests/monster_test.fbs +++ b/tests/monster_test.fbs @@ -141,6 +141,15 @@ table Monster { // enum value. long_enum_non_enum_default:LongEnum (id: 52); long_enum_normal_default:LongEnum = LongOne (id: 53); + // Test that default values nan and +/-inf work. + nan_default:float = nan (id: 54); + inf_default:float = inf (id: 55); + positive_inf_default:float = +inf (id: 56); + infinity_default:float = infinity (id: 57); + positive_infinity_default:float = +infinity (id: 58); + negative_inf_default:float = -inf (id: 59); + negative_infinity_default:float = -infinity (id: 60); + double_inf_default:double = inf (id: 61); } table TypeAliases { diff --git a/tests/monster_test.schema.json b/tests/monster_test.schema.json index 5e98ef4aa4..edcfbd9e24 100644 --- a/tests/monster_test.schema.json +++ b/tests/monster_test.schema.json @@ -340,6 +340,30 @@ }, "long_enum_normal_default" : { "$ref" : "#/definitions/MyGame_Example_LongEnum" + }, + "nan_default" : { + "type" : "number" + }, + "inf_default" : { + "type" : "number" + }, + "positive_inf_default" : { + "type" : "number" + }, + "infinity_default" : { + "type" : "number" + }, + "positive_infinity_default" : { + "type" : "number" + }, + "negative_inf_default" : { + "type" : "number" + }, + "negative_infinity_default" : { + "type" : "number" + }, + "double_inf_default" : { + "type" : "number" } }, "required" : ["name"], diff --git a/tests/monster_test/my_game/example/monster_generated.rs b/tests/monster_test/my_game/example/monster_generated.rs index 1ca88f0692..67dfcb37ea 100644 --- a/tests/monster_test/my_game/example/monster_generated.rs +++ b/tests/monster_test/my_game/example/monster_generated.rs @@ -79,6 +79,14 @@ impl<'a> Monster<'a> { pub const VT_NATIVE_INLINE: flatbuffers::VOffsetT = 106; pub const VT_LONG_ENUM_NON_ENUM_DEFAULT: flatbuffers::VOffsetT = 108; pub const VT_LONG_ENUM_NORMAL_DEFAULT: flatbuffers::VOffsetT = 110; + pub const VT_NAN_DEFAULT: flatbuffers::VOffsetT = 112; + pub const VT_INF_DEFAULT: flatbuffers::VOffsetT = 114; + pub const VT_POSITIVE_INF_DEFAULT: flatbuffers::VOffsetT = 116; + pub const VT_INFINITY_DEFAULT: flatbuffers::VOffsetT = 118; + pub const VT_POSITIVE_INFINITY_DEFAULT: flatbuffers::VOffsetT = 120; + pub const VT_NEGATIVE_INF_DEFAULT: flatbuffers::VOffsetT = 122; + pub const VT_NEGATIVE_INFINITY_DEFAULT: flatbuffers::VOffsetT = 124; + pub const VT_DOUBLE_INF_DEFAULT: flatbuffers::VOffsetT = 126; pub const fn get_fully_qualified_name() -> &'static str { "MyGame.Example.Monster" @@ -94,6 +102,7 @@ impl<'a> Monster<'a> { args: &'args MonsterArgs<'args> ) -> flatbuffers::WIPOffset> { let mut builder = MonsterBuilder::new(_fbb); + builder.add_double_inf_default(args.double_inf_default); builder.add_long_enum_normal_default(args.long_enum_normal_default); builder.add_long_enum_non_enum_default(args.long_enum_non_enum_default); builder.add_non_owning_reference(args.non_owning_reference); @@ -103,6 +112,13 @@ impl<'a> Monster<'a> { builder.add_testhashs64_fnv1a(args.testhashs64_fnv1a); builder.add_testhashu64_fnv1(args.testhashu64_fnv1); builder.add_testhashs64_fnv1(args.testhashs64_fnv1); + builder.add_negative_infinity_default(args.negative_infinity_default); + builder.add_negative_inf_default(args.negative_inf_default); + builder.add_positive_infinity_default(args.positive_infinity_default); + builder.add_infinity_default(args.infinity_default); + builder.add_positive_inf_default(args.positive_inf_default); + builder.add_inf_default(args.inf_default); + builder.add_nan_default(args.nan_default); if let Some(x) = args.native_inline { builder.add_native_inline(x); } if let Some(x) = args.scalar_key_sorted_tables { builder.add_scalar_key_sorted_tables(x); } if let Some(x) = args.testrequirednestedflatbuffer { builder.add_testrequirednestedflatbuffer(x); } @@ -308,6 +324,14 @@ impl<'a> Monster<'a> { }); let long_enum_non_enum_default = self.long_enum_non_enum_default(); let long_enum_normal_default = self.long_enum_normal_default(); + let nan_default = self.nan_default(); + let inf_default = self.inf_default(); + let positive_inf_default = self.positive_inf_default(); + let infinity_default = self.infinity_default(); + let positive_infinity_default = self.positive_infinity_default(); + let negative_inf_default = self.negative_inf_default(); + let negative_infinity_default = self.negative_infinity_default(); + let double_inf_default = self.double_inf_default(); MonsterT { pos, mana, @@ -359,6 +383,14 @@ impl<'a> Monster<'a> { native_inline, long_enum_non_enum_default, long_enum_normal_default, + nan_default, + inf_default, + positive_inf_default, + infinity_default, + positive_infinity_default, + negative_inf_default, + negative_infinity_default, + double_inf_default, } } @@ -764,6 +796,62 @@ impl<'a> Monster<'a> { unsafe { self._tab.get::(Monster::VT_LONG_ENUM_NORMAL_DEFAULT, Some(LongEnum::LongOne)).unwrap()} } #[inline] + pub fn nan_default(&self) -> f32 { + // Safety: + // Created from valid Table for this object + // which contains a valid value in this slot + unsafe { self._tab.get::(Monster::VT_NAN_DEFAULT, Some(f32::NAN)).unwrap()} + } + #[inline] + pub fn inf_default(&self) -> f32 { + // Safety: + // Created from valid Table for this object + // which contains a valid value in this slot + unsafe { self._tab.get::(Monster::VT_INF_DEFAULT, Some(f32::INFINITY)).unwrap()} + } + #[inline] + pub fn positive_inf_default(&self) -> f32 { + // Safety: + // Created from valid Table for this object + // which contains a valid value in this slot + unsafe { self._tab.get::(Monster::VT_POSITIVE_INF_DEFAULT, Some(f32::INFINITY)).unwrap()} + } + #[inline] + pub fn infinity_default(&self) -> f32 { + // Safety: + // Created from valid Table for this object + // which contains a valid value in this slot + unsafe { self._tab.get::(Monster::VT_INFINITY_DEFAULT, Some(f32::INFINITY)).unwrap()} + } + #[inline] + pub fn positive_infinity_default(&self) -> f32 { + // Safety: + // Created from valid Table for this object + // which contains a valid value in this slot + unsafe { self._tab.get::(Monster::VT_POSITIVE_INFINITY_DEFAULT, Some(f32::INFINITY)).unwrap()} + } + #[inline] + pub fn negative_inf_default(&self) -> f32 { + // Safety: + // Created from valid Table for this object + // which contains a valid value in this slot + unsafe { self._tab.get::(Monster::VT_NEGATIVE_INF_DEFAULT, Some(f32::NEG_INFINITY)).unwrap()} + } + #[inline] + pub fn negative_infinity_default(&self) -> f32 { + // Safety: + // Created from valid Table for this object + // which contains a valid value in this slot + unsafe { self._tab.get::(Monster::VT_NEGATIVE_INFINITY_DEFAULT, Some(f32::NEG_INFINITY)).unwrap()} + } + #[inline] + pub fn double_inf_default(&self) -> f64 { + // Safety: + // Created from valid Table for this object + // which contains a valid value in this slot + unsafe { self._tab.get::(Monster::VT_DOUBLE_INF_DEFAULT, Some(f64::INFINITY)).unwrap()} + } + #[inline] #[allow(non_snake_case)] pub fn test_as_monster(&self) -> Option> { if self.test_type() == Any::Monster { @@ -978,6 +1066,14 @@ impl flatbuffers::Verifiable for Monster<'_> { .visit_field::("native_inline", Self::VT_NATIVE_INLINE, false)? .visit_field::("long_enum_non_enum_default", Self::VT_LONG_ENUM_NON_ENUM_DEFAULT, false)? .visit_field::("long_enum_normal_default", Self::VT_LONG_ENUM_NORMAL_DEFAULT, false)? + .visit_field::("nan_default", Self::VT_NAN_DEFAULT, false)? + .visit_field::("inf_default", Self::VT_INF_DEFAULT, false)? + .visit_field::("positive_inf_default", Self::VT_POSITIVE_INF_DEFAULT, false)? + .visit_field::("infinity_default", Self::VT_INFINITY_DEFAULT, false)? + .visit_field::("positive_infinity_default", Self::VT_POSITIVE_INFINITY_DEFAULT, false)? + .visit_field::("negative_inf_default", Self::VT_NEGATIVE_INF_DEFAULT, false)? + .visit_field::("negative_infinity_default", Self::VT_NEGATIVE_INFINITY_DEFAULT, false)? + .visit_field::("double_inf_default", Self::VT_DOUBLE_INF_DEFAULT, false)? .finish(); Ok(()) } @@ -1036,6 +1132,14 @@ pub struct MonsterArgs<'a> { pub native_inline: Option<&'a Test>, pub long_enum_non_enum_default: LongEnum, pub long_enum_normal_default: LongEnum, + pub nan_default: f32, + pub inf_default: f32, + pub positive_inf_default: f32, + pub infinity_default: f32, + pub positive_infinity_default: f32, + pub negative_inf_default: f32, + pub negative_infinity_default: f32, + pub double_inf_default: f64, } impl<'a> Default for MonsterArgs<'a> { #[inline] @@ -1094,6 +1198,14 @@ impl<'a> Default for MonsterArgs<'a> { native_inline: None, long_enum_non_enum_default: Default::default(), long_enum_normal_default: LongEnum::LongOne, + nan_default: f32::NAN, + inf_default: f32::INFINITY, + positive_inf_default: f32::INFINITY, + infinity_default: f32::INFINITY, + positive_infinity_default: f32::INFINITY, + negative_inf_default: f32::NEG_INFINITY, + negative_infinity_default: f32::NEG_INFINITY, + double_inf_default: f64::INFINITY, } } } @@ -1316,6 +1428,38 @@ impl<'a: 'b, 'b> MonsterBuilder<'a, 'b> { self.fbb_.push_slot::(Monster::VT_LONG_ENUM_NORMAL_DEFAULT, long_enum_normal_default, LongEnum::LongOne); } #[inline] + pub fn add_nan_default(&mut self, nan_default: f32) { + self.fbb_.push_slot::(Monster::VT_NAN_DEFAULT, nan_default, f32::NAN); + } + #[inline] + pub fn add_inf_default(&mut self, inf_default: f32) { + self.fbb_.push_slot::(Monster::VT_INF_DEFAULT, inf_default, f32::INFINITY); + } + #[inline] + pub fn add_positive_inf_default(&mut self, positive_inf_default: f32) { + self.fbb_.push_slot::(Monster::VT_POSITIVE_INF_DEFAULT, positive_inf_default, f32::INFINITY); + } + #[inline] + pub fn add_infinity_default(&mut self, infinity_default: f32) { + self.fbb_.push_slot::(Monster::VT_INFINITY_DEFAULT, infinity_default, f32::INFINITY); + } + #[inline] + pub fn add_positive_infinity_default(&mut self, positive_infinity_default: f32) { + self.fbb_.push_slot::(Monster::VT_POSITIVE_INFINITY_DEFAULT, positive_infinity_default, f32::INFINITY); + } + #[inline] + pub fn add_negative_inf_default(&mut self, negative_inf_default: f32) { + self.fbb_.push_slot::(Monster::VT_NEGATIVE_INF_DEFAULT, negative_inf_default, f32::NEG_INFINITY); + } + #[inline] + pub fn add_negative_infinity_default(&mut self, negative_infinity_default: f32) { + self.fbb_.push_slot::(Monster::VT_NEGATIVE_INFINITY_DEFAULT, negative_infinity_default, f32::NEG_INFINITY); + } + #[inline] + pub fn add_double_inf_default(&mut self, double_inf_default: f64) { + self.fbb_.push_slot::(Monster::VT_DOUBLE_INF_DEFAULT, double_inf_default, f64::INFINITY); + } + #[inline] pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> MonsterBuilder<'a, 'b> { let start = _fbb.start_table(); MonsterBuilder { @@ -1465,6 +1609,14 @@ impl core::fmt::Debug for Monster<'_> { ds.field("native_inline", &self.native_inline()); ds.field("long_enum_non_enum_default", &self.long_enum_non_enum_default()); ds.field("long_enum_normal_default", &self.long_enum_normal_default()); + ds.field("nan_default", &self.nan_default()); + ds.field("inf_default", &self.inf_default()); + ds.field("positive_inf_default", &self.positive_inf_default()); + ds.field("infinity_default", &self.infinity_default()); + ds.field("positive_infinity_default", &self.positive_infinity_default()); + ds.field("negative_inf_default", &self.negative_inf_default()); + ds.field("negative_infinity_default", &self.negative_infinity_default()); + ds.field("double_inf_default", &self.double_inf_default()); ds.finish() } } @@ -1521,6 +1673,14 @@ pub struct MonsterT { pub native_inline: Option, pub long_enum_non_enum_default: LongEnum, pub long_enum_normal_default: LongEnum, + pub nan_default: f32, + pub inf_default: f32, + pub positive_inf_default: f32, + pub infinity_default: f32, + pub positive_infinity_default: f32, + pub negative_inf_default: f32, + pub negative_infinity_default: f32, + pub double_inf_default: f64, } impl Default for MonsterT { fn default() -> Self { @@ -1575,6 +1735,14 @@ impl Default for MonsterT { native_inline: None, long_enum_non_enum_default: Default::default(), long_enum_normal_default: LongEnum::LongOne, + nan_default: f32::NAN, + inf_default: f32::INFINITY, + positive_inf_default: f32::INFINITY, + infinity_default: f32::INFINITY, + positive_infinity_default: f32::INFINITY, + negative_inf_default: f32::NEG_INFINITY, + negative_infinity_default: f32::NEG_INFINITY, + double_inf_default: f64::INFINITY, } } } @@ -1687,6 +1855,14 @@ impl MonsterT { let native_inline = native_inline_tmp.as_ref(); let long_enum_non_enum_default = self.long_enum_non_enum_default; let long_enum_normal_default = self.long_enum_normal_default; + let nan_default = self.nan_default; + let inf_default = self.inf_default; + let positive_inf_default = self.positive_inf_default; + let infinity_default = self.infinity_default; + let positive_infinity_default = self.positive_infinity_default; + let negative_inf_default = self.negative_inf_default; + let negative_infinity_default = self.negative_infinity_default; + let double_inf_default = self.double_inf_default; Monster::create(_fbb, &MonsterArgs{ pos, mana, @@ -1741,6 +1917,14 @@ impl MonsterT { native_inline, long_enum_non_enum_default, long_enum_normal_default, + nan_default, + inf_default, + positive_inf_default, + infinity_default, + positive_infinity_default, + negative_inf_default, + negative_infinity_default, + double_inf_default, }) } } diff --git a/tests/monster_test_bfbs_generated.h b/tests/monster_test_bfbs_generated.h index 10ae0a99f2..f244529590 100644 --- a/tests/monster_test_bfbs_generated.h +++ b/tests/monster_test_bfbs_generated.h @@ -19,101 +19,101 @@ namespace Example { struct MonsterBinarySchema { static const uint8_t *data() { // Buffer containing the binary schema. - static const uint8_t bfbsData[14784] = { + static const uint8_t bfbsData[15736] = { 0x1C,0x00,0x00,0x00,0x42,0x46,0x42,0x53,0x14,0x00,0x20,0x00,0x04,0x00,0x08,0x00,0x0C,0x00,0x10,0x00, 0x14,0x00,0x18,0x00,0x00,0x00,0x1C,0x00,0x14,0x00,0x00,0x00,0x58,0x00,0x00,0x00,0x34,0x00,0x00,0x00, 0x24,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0xA0,0x0E,0x00,0x00,0x08,0x00,0x00,0x00,0x80,0x00,0x00,0x00, 0x01,0x00,0x00,0x00,0xDC,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x6D,0x6F,0x6E,0x00,0x04,0x00,0x00,0x00, 0x4D,0x4F,0x4E,0x53,0x00,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x4C,0x05,0x00,0x00,0xB8,0x02,0x00,0x00, 0xF8,0x03,0x00,0x00,0x04,0x09,0x00,0x00,0x90,0x06,0x00,0x00,0xBC,0x07,0x00,0x00,0xEC,0x0A,0x00,0x00, - 0x0F,0x00,0x00,0x00,0x9C,0x31,0x00,0x00,0x50,0x0E,0x00,0x00,0xE8,0x2D,0x00,0x00,0xC4,0x2E,0x00,0x00, - 0x64,0x30,0x00,0x00,0xD8,0x2F,0x00,0x00,0xA0,0x35,0x00,0x00,0x80,0x34,0x00,0x00,0x70,0x0B,0x00,0x00, - 0x78,0x32,0x00,0x00,0x68,0x36,0x00,0x00,0xA0,0x36,0x00,0x00,0x90,0x37,0x00,0x00,0x44,0x38,0x00,0x00, - 0xEC,0x36,0x00,0x00,0x03,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x1C,0x00,0x00,0x00,0x04,0x00,0x00,0x00, - 0x64,0xCB,0xFF,0xFF,0x94,0x36,0x00,0x00,0x04,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xE0,0x36,0x00,0x00, - 0x78,0xCB,0xFF,0xFF,0x34,0x38,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0xCC,0x36,0x00,0x00, - 0x24,0x38,0x00,0x00,0x90,0xCB,0xFF,0xFF,0xC0,0x36,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00, - 0xB4,0x36,0x00,0x00,0x0C,0x38,0x00,0x00,0x00,0x00,0x0E,0x00,0x14,0x00,0x04,0x00,0x08,0x00,0x00,0x00, + 0x0F,0x00,0x00,0x00,0x54,0x35,0x00,0x00,0x50,0x0E,0x00,0x00,0xA0,0x31,0x00,0x00,0x7C,0x32,0x00,0x00, + 0x1C,0x34,0x00,0x00,0x90,0x33,0x00,0x00,0x58,0x39,0x00,0x00,0x38,0x38,0x00,0x00,0x70,0x0B,0x00,0x00, + 0x30,0x36,0x00,0x00,0x20,0x3A,0x00,0x00,0x58,0x3A,0x00,0x00,0x48,0x3B,0x00,0x00,0xFC,0x3B,0x00,0x00, + 0xA4,0x3A,0x00,0x00,0x03,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x1C,0x00,0x00,0x00,0x04,0x00,0x00,0x00, + 0xAC,0xC7,0xFF,0xFF,0x4C,0x3A,0x00,0x00,0x04,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x98,0x3A,0x00,0x00, + 0xC0,0xC7,0xFF,0xFF,0xEC,0x3B,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x84,0x3A,0x00,0x00, + 0xDC,0x3B,0x00,0x00,0xD8,0xC7,0xFF,0xFF,0x78,0x3A,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00, + 0x6C,0x3A,0x00,0x00,0xC4,0x3B,0x00,0x00,0x00,0x00,0x0E,0x00,0x14,0x00,0x04,0x00,0x08,0x00,0x00,0x00, 0x0C,0x00,0x10,0x00,0x0E,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x08,0x00,0x00,0x00, - 0x34,0x36,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x88,0x01,0x00,0x00,0xF4,0x00,0x00,0x00, + 0xEC,0x39,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x88,0x01,0x00,0x00,0xF4,0x00,0x00,0x00, 0x90,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x1D,0x00,0x00,0x00,0x4D,0x79,0x47,0x61,0x6D,0x65,0x2E,0x45, 0x78,0x61,0x6D,0x70,0x6C,0x65,0x2E,0x4D,0x6F,0x6E,0x73,0x74,0x65,0x72,0x53,0x74,0x6F,0x72,0x61,0x67, - 0x65,0x00,0x00,0x00,0xBA,0xFE,0xFF,0xFF,0x48,0x00,0x00,0x00,0x5C,0x0D,0x00,0x00,0xD4,0x2D,0x00,0x00, + 0x65,0x00,0x00,0x00,0xBA,0xFE,0xFF,0xFF,0x48,0x00,0x00,0x00,0x5C,0x0D,0x00,0x00,0x8C,0x31,0x00,0x00, 0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00, - 0x2C,0xCC,0xFF,0xFF,0x14,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x62,0x69,0x64,0x69, + 0x74,0xC8,0xFF,0xFF,0x14,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x62,0x69,0x64,0x69, 0x00,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x73,0x74,0x72,0x65,0x61,0x6D,0x69,0x6E,0x67,0x00,0x00,0x00, 0x12,0x00,0x00,0x00,0x47,0x65,0x74,0x4D,0x69,0x6E,0x4D,0x61,0x78,0x48,0x69,0x74,0x50,0x6F,0x69,0x6E, - 0x74,0x73,0x00,0x00,0x1E,0xFF,0xFF,0xFF,0x48,0x00,0x00,0x00,0xF8,0x0C,0x00,0x00,0x70,0x2D,0x00,0x00, + 0x74,0x73,0x00,0x00,0x1E,0xFF,0xFF,0xFF,0x48,0x00,0x00,0x00,0xF8,0x0C,0x00,0x00,0x28,0x31,0x00,0x00, 0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00, - 0x90,0xCC,0xFF,0xFF,0x14,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x63,0x6C,0x69,0x65, + 0xD8,0xC8,0xFF,0xFF,0x14,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x63,0x6C,0x69,0x65, 0x6E,0x74,0x00,0x00,0x09,0x00,0x00,0x00,0x73,0x74,0x72,0x65,0x61,0x6D,0x69,0x6E,0x67,0x00,0x00,0x00, 0x0E,0x00,0x00,0x00,0x47,0x65,0x74,0x4D,0x61,0x78,0x48,0x69,0x74,0x50,0x6F,0x69,0x6E,0x74,0x00,0x00, - 0x7E,0xFF,0xFF,0xFF,0x70,0x00,0x00,0x00,0x14,0x2D,0x00,0x00,0x94,0x0C,0x00,0x00,0x0C,0x00,0x00,0x00, + 0x7E,0xFF,0xFF,0xFF,0x70,0x00,0x00,0x00,0xCC,0x30,0x00,0x00,0x94,0x0C,0x00,0x00,0x0C,0x00,0x00,0x00, 0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x04,0x00,0x00,0x00, - 0xF4,0xCC,0xFF,0xFF,0x14,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x73,0x65,0x72,0x76, + 0x3C,0xC9,0xFF,0xFF,0x14,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x73,0x65,0x72,0x76, 0x65,0x72,0x00,0x00,0x09,0x00,0x00,0x00,0x73,0x74,0x72,0x65,0x61,0x6D,0x69,0x6E,0x67,0x00,0x00,0x00, - 0x1C,0xCD,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x30,0x00,0x00,0x00, + 0x64,0xC9,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x30,0x00,0x00,0x00, 0x0A,0x00,0x00,0x00,0x69,0x64,0x65,0x6D,0x70,0x6F,0x74,0x65,0x6E,0x74,0x00,0x00,0x08,0x00,0x00,0x00, 0x52,0x65,0x74,0x72,0x69,0x65,0x76,0x65,0x00,0x00,0x0E,0x00,0x18,0x00,0x04,0x00,0x08,0x00,0x0C,0x00, - 0x10,0x00,0x14,0x00,0x0E,0x00,0x00,0x00,0x48,0x00,0x00,0x00,0x08,0x0C,0x00,0x00,0x80,0x2C,0x00,0x00, + 0x10,0x00,0x14,0x00,0x0E,0x00,0x00,0x00,0x48,0x00,0x00,0x00,0x08,0x0C,0x00,0x00,0x38,0x30,0x00,0x00, 0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00, - 0x80,0xCD,0xFF,0xFF,0x14,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x6E,0x6F,0x6E,0x65, + 0xC8,0xC9,0xFF,0xFF,0x14,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x6E,0x6F,0x6E,0x65, 0x00,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x73,0x74,0x72,0x65,0x61,0x6D,0x69,0x6E,0x67,0x00,0x00,0x00, 0x05,0x00,0x00,0x00,0x53,0x74,0x6F,0x72,0x65,0x00,0x00,0x00,0x82,0xFD,0xFF,0xFF,0x00,0x00,0x00,0x01, - 0x40,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x30,0x34,0x00,0x00, - 0x00,0x00,0x00,0x00,0x34,0xCD,0xFF,0xFF,0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00, + 0x40,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0xE8,0x37,0x00,0x00, + 0x00,0x00,0x00,0x00,0x7C,0xC9,0xFF,0xFF,0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00, 0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0xE0,0x00,0x00,0x00,0xA4,0x00,0x00,0x00,0x68,0x00,0x00,0x00, 0x2C,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x4D,0x79,0x47,0x61,0x6D,0x65,0x2E,0x45,0x78,0x61,0x6D,0x70, 0x6C,0x65,0x2E,0x41,0x6E,0x79,0x41,0x6D,0x62,0x69,0x67,0x75,0x6F,0x75,0x73,0x41,0x6C,0x69,0x61,0x73, 0x65,0x73,0x00,0x00,0x7E,0xF8,0xFF,0xFF,0x2C,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x10,0x00,0x00,0x00, - 0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0xCA,0xFF,0xFF, + 0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0xC7,0xFF,0xFF, 0x00,0x00,0x00,0x0F,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x4D,0x33,0x00,0x00, 0xB6,0xF8,0xFF,0xFF,0x2C,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x02,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x28,0xCB,0xFF,0xFF,0x00,0x00,0x00,0x0F, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0xC7,0xFF,0xFF,0x00,0x00,0x00,0x0F, 0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x4D,0x32,0x00,0x00,0xEE,0xF8,0xFF,0xFF, 0x2C,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0xCB,0xFF,0xFF,0x00,0x00,0x00,0x0F,0x01,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xA8,0xC7,0xFF,0xFF,0x00,0x00,0x00,0x0F,0x01,0x00,0x00,0x00, 0x01,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x4D,0x31,0x00,0x00,0x72,0xF8,0xFF,0xFF,0x1C,0x00,0x00,0x00, 0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x64,0xF8,0xFF,0xFF,0x01,0x00,0x00,0x00, 0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x4E,0x4F,0x4E,0x45,0x00,0x00,0x00,0x00,0xC6,0xFE,0xFF,0xFF, 0x00,0x00,0x00,0x01,0x40,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x08,0x00,0x00,0x00, - 0xEC,0x32,0x00,0x00,0x00,0x00,0x00,0x00,0x78,0xCE,0xFF,0xFF,0x00,0x00,0x00,0x01,0x02,0x00,0x00,0x00, + 0xA4,0x36,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0xCA,0xFF,0xFF,0x00,0x00,0x00,0x01,0x02,0x00,0x00,0x00, 0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0xD8,0x00,0x00,0x00,0xA0,0x00,0x00,0x00, 0x64,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x1F,0x00,0x00,0x00,0x4D,0x79,0x47,0x61,0x6D,0x65,0x2E,0x45, 0x78,0x61,0x6D,0x70,0x6C,0x65,0x2E,0x41,0x6E,0x79,0x55,0x6E,0x69,0x71,0x75,0x65,0x41,0x6C,0x69,0x61, 0x73,0x65,0x73,0x00,0xBE,0xF9,0xFF,0xFF,0x2C,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x10,0x00,0x00,0x00, - 0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0xCC,0xFF,0xFF, + 0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x78,0xC8,0xFF,0xFF, 0x00,0x00,0x00,0x0F,0x0A,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x4D,0x32,0x00,0x00, 0xF6,0xF9,0xFF,0xFF,0x2C,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x02,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x68,0xCC,0xFF,0xFF,0x00,0x00,0x00,0x0F, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xB0,0xC8,0xFF,0xFF,0x00,0x00,0x00,0x0F, 0x07,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x54,0x53,0x00,0x00,0x1E,0xFC,0xFF,0xFF, 0x28,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x9C,0xCC,0xFF,0xFF,0x00,0x00,0x00,0x0F,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0xE4,0xC8,0xFF,0xFF,0x00,0x00,0x00,0x0F,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00, 0x01,0x00,0x00,0x00,0x4D,0x00,0x00,0x00,0xAE,0xF9,0xFF,0xFF,0x1C,0x00,0x00,0x00,0x0C,0x00,0x00,0x00, 0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xA0,0xF9,0xFF,0xFF,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00, 0x04,0x00,0x00,0x00,0x4E,0x4F,0x4E,0x45,0x00,0x00,0x12,0x00,0x1C,0x00,0x08,0x00,0x0C,0x00,0x07,0x00, 0x10,0x00,0x00,0x00,0x14,0x00,0x18,0x00,0x12,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x40,0x00,0x00,0x00, - 0x28,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0xA0,0x31,0x00,0x00,0x00,0x00,0x00,0x00, - 0xC4,0xCF,0xFF,0xFF,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00, + 0x28,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x58,0x35,0x00,0x00,0x00,0x00,0x00,0x00, + 0x0C,0xCC,0xFF,0xFF,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00, 0x04,0x00,0x00,0x00,0xF0,0x00,0x00,0x00,0xB4,0x00,0x00,0x00,0x68,0x00,0x00,0x00,0x1C,0x00,0x00,0x00, 0x12,0x00,0x00,0x00,0x4D,0x79,0x47,0x61,0x6D,0x65,0x2E,0x45,0x78,0x61,0x6D,0x70,0x6C,0x65,0x2E,0x41, 0x6E,0x79,0x00,0x00,0xEE,0xFC,0xFF,0xFF,0x28,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x0C,0x00,0x00,0x00, - 0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x6C,0xCD,0xFF,0xFF,0x00,0x00,0x00,0x0F, + 0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xB4,0xC9,0xFF,0xFF,0x00,0x00,0x00,0x0F, 0x0A,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x17,0x00,0x00,0x00,0x4D,0x79,0x47,0x61,0x6D,0x65,0x5F,0x45, 0x78,0x61,0x6D,0x70,0x6C,0x65,0x32,0x5F,0x4D,0x6F,0x6E,0x73,0x74,0x65,0x72,0x00,0x36,0xFD,0xFF,0xFF, 0x28,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0xB4,0xCD,0xFF,0xFF,0x00,0x00,0x00,0x0F,0x07,0x00,0x00,0x00,0x01,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0xFC,0xC9,0xFF,0xFF,0x00,0x00,0x00,0x0F,0x07,0x00,0x00,0x00,0x01,0x00,0x00,0x00, 0x17,0x00,0x00,0x00,0x54,0x65,0x73,0x74,0x53,0x69,0x6D,0x70,0x6C,0x65,0x54,0x61,0x62,0x6C,0x65,0x57, 0x69,0x74,0x68,0x45,0x6E,0x75,0x6D,0x00,0x7E,0xFD,0xFF,0xFF,0x28,0x00,0x00,0x00,0x14,0x00,0x00,0x00, - 0x0C,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFC,0xCD,0xFF,0xFF, + 0x0C,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x44,0xCA,0xFF,0xFF, 0x00,0x00,0x00,0x0F,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x4D,0x6F,0x6E,0x73, 0x74,0x65,0x72,0x00,0x12,0xFB,0xFF,0xFF,0x1C,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x04,0xFB,0xFF,0xFF,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00, 0x4E,0x4F,0x4E,0x45,0x00,0x00,0x00,0x00,0xA2,0xFD,0xFF,0xFF,0x6C,0x00,0x00,0x00,0x58,0x00,0x00,0x00, - 0x40,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x4C,0x30,0x00,0x00,0x00,0x00,0x00,0x00, - 0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0xC0,0xD1,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00, + 0x40,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x04,0x34,0x00,0x00,0x00,0x00,0x00,0x00, + 0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x08,0xCE,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00, 0x01,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x62,0x69,0x74,0x5F,0x66,0x6C,0x61,0x67, - 0x73,0x00,0x00,0x00,0x44,0xD1,0xFF,0xFF,0x00,0x00,0x00,0x0A,0x04,0x00,0x00,0x00,0x08,0x00,0x00,0x00, + 0x73,0x00,0x00,0x00,0x8C,0xCD,0xFF,0xFF,0x00,0x00,0x00,0x0A,0x04,0x00,0x00,0x00,0x08,0x00,0x00,0x00, 0x01,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x98,0x00,0x00,0x00,0x5C,0x00,0x00,0x00,0x20,0x00,0x00,0x00, 0x17,0x00,0x00,0x00,0x4D,0x79,0x47,0x61,0x6D,0x65,0x2E,0x45,0x78,0x61,0x6D,0x70,0x6C,0x65,0x2E,0x4C, 0x6F,0x6E,0x67,0x45,0x6E,0x75,0x6D,0x00,0x7E,0xFC,0xFF,0xFF,0x28,0x00,0x00,0x00,0x18,0x00,0x00,0x00, @@ -125,8 +125,8 @@ struct MonsterBinarySchema { 0xDE,0xFE,0xFF,0xFF,0x24,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x02,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x34,0xFC,0xFF,0xFF,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00, 0x07,0x00,0x00,0x00,0x4C,0x6F,0x6E,0x67,0x4F,0x6E,0x65,0x00,0xDE,0xFC,0xFF,0xFF,0x40,0x00,0x00,0x00, - 0x28,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x20,0x2F,0x00,0x00,0x00,0x00,0x00,0x00, - 0x44,0xD2,0xFF,0xFF,0x00,0x00,0x00,0x03,0x05,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00, + 0x28,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0xD8,0x32,0x00,0x00,0x00,0x00,0x00,0x00, + 0x8C,0xCE,0xFF,0xFF,0x00,0x00,0x00,0x03,0x05,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00, 0x04,0x00,0x00,0x00,0xC8,0x00,0x00,0x00,0x8C,0x00,0x00,0x00,0x50,0x00,0x00,0x00,0x1C,0x00,0x00,0x00, 0x13,0x00,0x00,0x00,0x4D,0x79,0x47,0x61,0x6D,0x65,0x2E,0x45,0x78,0x61,0x6D,0x70,0x6C,0x65,0x2E,0x52, 0x61,0x63,0x65,0x00,0x6E,0xFF,0xFF,0xFF,0x24,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x0C,0x00,0x00,0x00, @@ -141,12 +141,12 @@ struct MonsterBinarySchema { 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x64,0xFD,0xFF,0xFF,0x01,0x00,0x00,0x00, 0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x4E,0x6F,0x6E,0x65,0x00,0x00,0x12,0x00,0x1C,0x00,0x04,0x00, 0x08,0x00,0x00,0x00,0x0C,0x00,0x10,0x00,0x14,0x00,0x18,0x00,0x12,0x00,0x00,0x00,0x9C,0x00,0x00,0x00, - 0x88,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0xDC,0x2D,0x00,0x00, + 0x88,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x94,0x31,0x00,0x00, 0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x27,0x00,0x00,0x00,0x20,0x43,0x6F,0x6D,0x70,0x6F,0x73,0x69, 0x74,0x65,0x20,0x63,0x6F,0x6D,0x70,0x6F,0x6E,0x65,0x6E,0x74,0x73,0x20,0x6F,0x66,0x20,0x4D,0x6F,0x6E, 0x73,0x74,0x65,0x72,0x20,0x63,0x6F,0x6C,0x6F,0x72,0x2E,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00, - 0x60,0xD4,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x30,0x00,0x00,0x00, - 0x09,0x00,0x00,0x00,0x62,0x69,0x74,0x5F,0x66,0x6C,0x61,0x67,0x73,0x00,0x00,0x00,0xE4,0xD3,0xFF,0xFF, + 0xA8,0xD0,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x30,0x00,0x00,0x00, + 0x09,0x00,0x00,0x00,0x62,0x69,0x74,0x5F,0x66,0x6C,0x61,0x67,0x73,0x00,0x00,0x00,0x2C,0xD0,0xFF,0xFF, 0x00,0x00,0x00,0x04,0x03,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x03,0x00,0x00,0x00, 0x18,0x01,0x00,0x00,0x84,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x4D,0x79,0x47,0x61, 0x6D,0x65,0x2E,0x45,0x78,0x61,0x6D,0x70,0x6C,0x65,0x2E,0x43,0x6F,0x6C,0x6F,0x72,0x00,0x00,0x00,0x00, @@ -166,605 +166,652 @@ struct MonsterBinarySchema { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x58,0xFF,0xFF,0xFF,0x01,0x00,0x00,0x00, 0x01,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x52,0x65,0x64,0x00,0x00,0x00,0x12,0x00,0x18,0x00,0x04,0x00, 0x08,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x10,0x00,0x14,0x00,0x12,0x00,0x00,0x00,0x34,0x00,0x00,0x00, - 0x28,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0xA0,0x2D,0x00,0x00,0x00,0x00,0x00,0x00, - 0x78,0xD5,0xFF,0xFF,0x00,0x00,0x00,0x09,0x06,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x01,0x00,0x00,0x00, + 0x28,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x58,0x31,0x00,0x00,0x00,0x00,0x00,0x00, + 0xC0,0xD1,0xFF,0xFF,0x00,0x00,0x00,0x09,0x06,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x01,0x00,0x00,0x00, 0x01,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x4D,0x79,0x47,0x61,0x6D,0x65,0x2E,0x4F, 0x74,0x68,0x65,0x72,0x4E,0x61,0x6D,0x65,0x53,0x70,0x61,0x63,0x65,0x2E,0x46,0x72,0x6F,0x6D,0x49,0x6E, 0x63,0x6C,0x75,0x64,0x65,0x00,0x0E,0x00,0x10,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x0C,0x00, 0x0E,0x00,0x00,0x00,0x2C,0x00,0x00,0x00,0x1C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x10,0x00,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x08,0x00,0x10,0x00,0x00,0x00, 0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x0A,0x00,0x00,0x00,0x49,0x6E,0x63,0x6C,0x75,0x64,0x65,0x56, - 0x61,0x6C,0x00,0x00,0xE4,0xD3,0xFF,0xFF,0x4C,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x01,0x00,0x00,0x00, - 0x08,0x00,0x00,0x00,0x40,0x2B,0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0xE4,0x00,0x00,0x00, + 0x61,0x6C,0x00,0x00,0x2C,0xD0,0xFF,0xFF,0x4C,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x01,0x00,0x00,0x00, + 0x08,0x00,0x00,0x00,0xF8,0x2E,0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0xE4,0x00,0x00,0x00, 0xB0,0x00,0x00,0x00,0xF0,0x01,0x00,0x00,0x90,0x01,0x00,0x00,0x30,0x01,0x00,0x00,0x60,0x02,0x00,0x00, 0xB0,0x01,0x00,0x00,0x54,0x01,0x00,0x00,0xF0,0x00,0x00,0x00,0x04,0x02,0x00,0x00,0x5C,0x00,0x00,0x00, 0x24,0x00,0x00,0x00,0x1A,0x00,0x00,0x00,0x4D,0x79,0x47,0x61,0x6D,0x65,0x2E,0x45,0x78,0x61,0x6D,0x70, - 0x6C,0x65,0x2E,0x54,0x79,0x70,0x65,0x41,0x6C,0x69,0x61,0x73,0x65,0x73,0x00,0x00,0x00,0xDB,0xFF,0xFF, + 0x6C,0x65,0x2E,0x54,0x79,0x70,0x65,0x41,0x6C,0x69,0x61,0x73,0x65,0x73,0x00,0x00,0x48,0xD7,0xFF,0xFF, 0x00,0x00,0x00,0x01,0x0B,0x00,0x1A,0x00,0x1C,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x14,0xE1,0xFF,0xFF,0x00,0x00,0x0E,0x0C,0x08,0x00,0x00,0x00,0x04,0x00,0x00,0x00, - 0x76,0x66,0x36,0x34,0x00,0x00,0x00,0x00,0x34,0xDB,0xFF,0xFF,0x00,0x00,0x00,0x01,0x0A,0x00,0x18,0x00, - 0x1C,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x48,0xE1,0xFF,0xFF, - 0x00,0x00,0x0E,0x03,0x01,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x76,0x38,0x00,0x00,0x4A,0xD8,0xFF,0xFF, + 0x00,0x00,0x00,0x00,0x5C,0xDD,0xFF,0xFF,0x00,0x00,0x0E,0x0C,0x08,0x00,0x00,0x00,0x04,0x00,0x00,0x00, + 0x76,0x66,0x36,0x34,0x00,0x00,0x00,0x00,0x7C,0xD7,0xFF,0xFF,0x00,0x00,0x00,0x01,0x0A,0x00,0x18,0x00, + 0x1C,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x90,0xDD,0xFF,0xFF, + 0x00,0x00,0x0E,0x03,0x01,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x76,0x38,0x00,0x00,0x92,0xD4,0xFF,0xFF, 0x09,0x00,0x16,0x00,0x20,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x14,0xD6,0xFF,0xFF,0x00,0x00,0x00,0x0C,0x08,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x03,0x00,0x00,0x00, - 0x66,0x36,0x34,0x00,0x7A,0xD8,0xFF,0xFF,0x08,0x00,0x14,0x00,0x1C,0x00,0x00,0x00,0x0C,0x00,0x00,0x00, - 0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x8C,0xD3,0xFF,0xFF,0x00,0x00,0x00,0x0B,0x01,0x00,0x00,0x00, - 0x03,0x00,0x00,0x00,0x66,0x33,0x32,0x00,0xA6,0xD8,0xFF,0xFF,0x07,0x00,0x12,0x00,0x20,0x00,0x00,0x00, - 0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0xD6,0xFF,0xFF,0x00,0x00,0x00,0x0A, - 0x08,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x75,0x36,0x34,0x00,0xD6,0xD8,0xFF,0xFF, + 0x5C,0xD2,0xFF,0xFF,0x00,0x00,0x00,0x0C,0x08,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x03,0x00,0x00,0x00, + 0x66,0x36,0x34,0x00,0xC2,0xD4,0xFF,0xFF,0x08,0x00,0x14,0x00,0x1C,0x00,0x00,0x00,0x0C,0x00,0x00,0x00, + 0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xD4,0xCF,0xFF,0xFF,0x00,0x00,0x00,0x0B,0x01,0x00,0x00,0x00, + 0x03,0x00,0x00,0x00,0x66,0x33,0x32,0x00,0xEE,0xD4,0xFF,0xFF,0x07,0x00,0x12,0x00,0x20,0x00,0x00,0x00, + 0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xB8,0xD2,0xFF,0xFF,0x00,0x00,0x00,0x0A, + 0x08,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x75,0x36,0x34,0x00,0x1E,0xD5,0xFF,0xFF, 0x06,0x00,0x10,0x00,0x20,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0xA0,0xD6,0xFF,0xFF,0x00,0x00,0x00,0x09,0x08,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x03,0x00,0x00,0x00, - 0x69,0x36,0x34,0x00,0x06,0xD9,0xFF,0xFF,0x05,0x00,0x0E,0x00,0x1C,0x00,0x00,0x00,0x0C,0x00,0x00,0x00, - 0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0xD4,0xFF,0xFF,0x00,0x00,0x00,0x08,0x01,0x00,0x00,0x00, - 0x03,0x00,0x00,0x00,0x75,0x33,0x32,0x00,0x32,0xD9,0xFF,0xFF,0x04,0x00,0x0C,0x00,0x1C,0x00,0x00,0x00, - 0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x44,0xD4,0xFF,0xFF,0x00,0x00,0x00,0x07, - 0x01,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x69,0x33,0x32,0x00,0x5E,0xD9,0xFF,0xFF,0x03,0x00,0x0A,0x00, - 0x20,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x28,0xD7,0xFF,0xFF, + 0xE8,0xD2,0xFF,0xFF,0x00,0x00,0x00,0x09,0x08,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x03,0x00,0x00,0x00, + 0x69,0x36,0x34,0x00,0x4E,0xD5,0xFF,0xFF,0x05,0x00,0x0E,0x00,0x1C,0x00,0x00,0x00,0x0C,0x00,0x00,0x00, + 0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0xD0,0xFF,0xFF,0x00,0x00,0x00,0x08,0x01,0x00,0x00,0x00, + 0x03,0x00,0x00,0x00,0x75,0x33,0x32,0x00,0x7A,0xD5,0xFF,0xFF,0x04,0x00,0x0C,0x00,0x1C,0x00,0x00,0x00, + 0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x8C,0xD0,0xFF,0xFF,0x00,0x00,0x00,0x07, + 0x01,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x69,0x33,0x32,0x00,0xA6,0xD5,0xFF,0xFF,0x03,0x00,0x0A,0x00, + 0x20,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0xD3,0xFF,0xFF, 0x00,0x00,0x00,0x06,0x02,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x75,0x31,0x36,0x00, - 0x8E,0xD9,0xFF,0xFF,0x02,0x00,0x08,0x00,0x20,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x58,0xD7,0xFF,0xFF,0x00,0x00,0x00,0x05,0x02,0x00,0x00,0x00,0x01,0x00,0x00,0x00, - 0x03,0x00,0x00,0x00,0x69,0x31,0x36,0x00,0xBE,0xD9,0xFF,0xFF,0x01,0x00,0x06,0x00,0x20,0x00,0x00,0x00, - 0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x88,0xD7,0xFF,0xFF,0x00,0x00,0x00,0x04, + 0xD6,0xD5,0xFF,0xFF,0x02,0x00,0x08,0x00,0x20,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0xA0,0xD3,0xFF,0xFF,0x00,0x00,0x00,0x05,0x02,0x00,0x00,0x00,0x01,0x00,0x00,0x00, + 0x03,0x00,0x00,0x00,0x69,0x31,0x36,0x00,0x06,0xD6,0xFF,0xFF,0x01,0x00,0x06,0x00,0x20,0x00,0x00,0x00, + 0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xD0,0xD3,0xFF,0xFF,0x00,0x00,0x00,0x04, 0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x75,0x38,0x00,0x00,0x00,0x00,0x1A,0x00, 0x14,0x00,0x08,0x00,0x0C,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x10,0x00,0x1A,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x20,0x00,0x00,0x00,0x0C,0x00,0x00,0x00, - 0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xD4,0xD7,0xFF,0xFF,0x00,0x00,0x00,0x03,0x01,0x00,0x00,0x00, - 0x01,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x38,0x00,0x00,0xA8,0xD6,0xFF,0xFF,0x30,0x01,0x00,0x00, - 0x50,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x7C,0x28,0x00,0x00,0x01,0x00,0x00,0x00, + 0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1C,0xD4,0xFF,0xFF,0x00,0x00,0x00,0x03,0x01,0x00,0x00,0x00, + 0x01,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x38,0x00,0x00,0xF0,0xD2,0xFF,0xFF,0x50,0x01,0x00,0x00, + 0x50,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x34,0x2C,0x00,0x00,0x01,0x00,0x00,0x00, 0x04,0x00,0x00,0x00,0x33,0x00,0x00,0x00,0x20,0x61,0x6E,0x20,0x65,0x78,0x61,0x6D,0x70,0x6C,0x65,0x20, 0x64,0x6F,0x63,0x75,0x6D,0x65,0x6E,0x74,0x61,0x74,0x69,0x6F,0x6E,0x20,0x63,0x6F,0x6D,0x6D,0x65,0x6E, 0x74,0x3A,0x20,0x22,0x6D,0x6F,0x6E,0x73,0x74,0x65,0x72,0x20,0x6F,0x62,0x6A,0x65,0x63,0x74,0x22,0x00, - 0x36,0x00,0x00,0x00,0x80,0x04,0x00,0x00,0xE4,0x04,0x00,0x00,0x4C,0x05,0x00,0x00,0xAC,0x05,0x00,0x00, - 0xA8,0x09,0x00,0x00,0x78,0x1B,0x00,0x00,0x88,0x18,0x00,0x00,0x44,0x0F,0x00,0x00,0x7C,0x1C,0x00,0x00, - 0xC0,0x1D,0x00,0x00,0xEC,0x1B,0x00,0x00,0x44,0x01,0x00,0x00,0xC4,0x00,0x00,0x00,0x30,0x1E,0x00,0x00, - 0x30,0x1D,0x00,0x00,0xA8,0x01,0x00,0x00,0x10,0x07,0x00,0x00,0x80,0x0D,0x00,0x00,0xA0,0x1E,0x00,0x00, - 0x2C,0x02,0x00,0x00,0x5C,0x03,0x00,0x00,0x08,0x0C,0x00,0x00,0x58,0x1A,0x00,0x00,0xE4,0x19,0x00,0x00, - 0xA0,0x0E,0x00,0x00,0xC4,0x1A,0x00,0x00,0x90,0x11,0x00,0x00,0x78,0x0F,0x00,0x00,0x68,0x19,0x00,0x00, - 0xE0,0x0F,0x00,0x00,0x88,0x18,0x00,0x00,0xC0,0x16,0x00,0x00,0x1C,0x17,0x00,0x00,0x10,0x11,0x00,0x00, - 0x8C,0x10,0x00,0x00,0x30,0x10,0x00,0x00,0x20,0x16,0x00,0x00,0xE0,0x13,0x00,0x00,0xFC,0x14,0x00,0x00, - 0x58,0x12,0x00,0x00,0x84,0x15,0x00,0x00,0xE4,0x12,0x00,0x00,0x5C,0x14,0x00,0x00,0xB4,0x11,0x00,0x00, - 0x50,0x17,0x00,0x00,0x38,0x02,0x00,0x00,0xC0,0x07,0x00,0x00,0x78,0x0D,0x00,0x00,0x58,0x03,0x00,0x00, - 0xD8,0x0D,0x00,0x00,0x58,0x05,0x00,0x00,0x88,0x0C,0x00,0x00,0xDC,0x09,0x00,0x00,0x8C,0x0A,0x00,0x00, - 0x16,0x00,0x00,0x00,0x4D,0x79,0x47,0x61,0x6D,0x65,0x2E,0x45,0x78,0x61,0x6D,0x70,0x6C,0x65,0x2E,0x4D, - 0x6F,0x6E,0x73,0x74,0x65,0x72,0x00,0x00,0x62,0xFD,0xFF,0xFF,0x35,0x00,0x6E,0x00,0x54,0x00,0x00,0x00, - 0x3C,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0xE8,0xDA,0xFF,0xFF,0x10,0x00,0x00,0x00, - 0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x35,0x33,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00, - 0x64,0xDA,0xFF,0xFF,0x00,0x00,0x00,0x0A,0x04,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x01,0x00,0x00,0x00, - 0x18,0x00,0x00,0x00,0x6C,0x6F,0x6E,0x67,0x5F,0x65,0x6E,0x75,0x6D,0x5F,0x6E,0x6F,0x72,0x6D,0x61,0x6C, - 0x5F,0x64,0x65,0x66,0x61,0x75,0x6C,0x74,0x00,0x00,0x00,0x00,0x62,0xE6,0xFF,0xFF,0x34,0x00,0x6C,0x00, - 0x4C,0x00,0x00,0x00,0x34,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x5C,0xDB,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00, - 0x02,0x00,0x00,0x00,0x35,0x32,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0xD8,0xDA,0xFF,0xFF, - 0x00,0x00,0x00,0x0A,0x04,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x1A,0x00,0x00,0x00, - 0x6C,0x6F,0x6E,0x67,0x5F,0x65,0x6E,0x75,0x6D,0x5F,0x6E,0x6F,0x6E,0x5F,0x65,0x6E,0x75,0x6D,0x5F,0x64, - 0x65,0x66,0x61,0x75,0x6C,0x74,0x00,0x00,0xEC,0xE5,0xFF,0xFF,0x00,0x00,0x00,0x01,0x33,0x00,0x6A,0x00, - 0x74,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x02,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0xD8,0xDB,0xFF,0xFF,0x10,0x00,0x00,0x00, - 0x04,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x0D,0x00,0x00,0x00,0x6E,0x61,0x74,0x69, - 0x76,0x65,0x5F,0x69,0x6E,0x6C,0x69,0x6E,0x65,0x00,0x00,0x00,0x00,0xDC,0xFF,0xFF,0x10,0x00,0x00,0x00, - 0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x35,0x31,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00, - 0xC8,0xD8,0xFF,0xFF,0x00,0x00,0x00,0x0F,0x06,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x0D,0x00,0x00,0x00, - 0x6E,0x61,0x74,0x69,0x76,0x65,0x5F,0x69,0x6E,0x6C,0x69,0x6E,0x65,0x00,0x00,0x00,0x80,0xE6,0xFF,0xFF, - 0x00,0x00,0x00,0x01,0x32,0x00,0x68,0x00,0x48,0x00,0x00,0x00,0x34,0x00,0x00,0x00,0x0C,0x00,0x00,0x00, - 0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x68,0xDC,0xFF,0xFF, - 0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x35,0x30,0x00,0x00,0x02,0x00,0x00,0x00, - 0x69,0x64,0x00,0x00,0x38,0xE8,0xFF,0xFF,0x00,0x00,0x0E,0x0F,0x03,0x00,0x00,0x00,0x04,0x00,0x00,0x00, - 0x18,0x00,0x00,0x00,0x73,0x63,0x61,0x6C,0x61,0x72,0x5F,0x6B,0x65,0x79,0x5F,0x73,0x6F,0x72,0x74,0x65, - 0x64,0x5F,0x74,0x61,0x62,0x6C,0x65,0x73,0x00,0x00,0x00,0x00,0xF4,0xE6,0xFF,0xFF,0x00,0x00,0x00,0x01, - 0x31,0x00,0x66,0x00,0x78,0x00,0x00,0x00,0x68,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0xE0,0xDC,0xFF,0xFF, - 0x14,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x4D,0x6F,0x6E,0x73,0x74,0x65,0x72,0x00, - 0x11,0x00,0x00,0x00,0x6E,0x65,0x73,0x74,0x65,0x64,0x5F,0x66,0x6C,0x61,0x74,0x62,0x75,0x66,0x66,0x65, - 0x72,0x00,0x00,0x00,0x10,0xDD,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00, - 0x34,0x39,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0x0C,0xE7,0xFF,0xFF,0x00,0x00,0x0E,0x04, - 0x01,0x00,0x00,0x00,0x1C,0x00,0x00,0x00,0x74,0x65,0x73,0x74,0x72,0x65,0x71,0x75,0x69,0x72,0x65,0x64, - 0x6E,0x65,0x73,0x74,0x65,0x64,0x66,0x6C,0x61,0x74,0x62,0x75,0x66,0x66,0x65,0x72,0x00,0x00,0x1A,0x00, - 0x20,0x00,0x08,0x00,0x0C,0x00,0x04,0x00,0x06,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x10,0x00,0x14,0x00,0x1A,0x00,0x00,0x00,0x30,0x00,0x64,0x00,0x54,0x00,0x00,0x00,0x3C,0x00,0x00,0x00, - 0x14,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00, - 0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0xA0,0xDD,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00, - 0x02,0x00,0x00,0x00,0x34,0x38,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0x1C,0xDD,0xFF,0xFF, - 0x00,0x00,0x00,0x03,0x05,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x0B,0x00,0x00,0x00, - 0x73,0x69,0x67,0x6E,0x65,0x64,0x5F,0x65,0x6E,0x75,0x6D,0x00,0x20,0xE8,0xFF,0xFF,0x00,0x00,0x00,0x01, - 0x2F,0x00,0x62,0x00,0x48,0x00,0x00,0x00,0x34,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x08,0xDE,0xFF,0xFF,0x10,0x00,0x00,0x00, - 0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x34,0x37,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00, - 0xD8,0xE9,0xFF,0xFF,0x00,0x00,0x0E,0x04,0x03,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x0F,0x00,0x00,0x00, - 0x76,0x65,0x63,0x74,0x6F,0x72,0x5F,0x6F,0x66,0x5F,0x65,0x6E,0x75,0x6D,0x73,0x00,0x88,0xE8,0xFF,0xFF, - 0x00,0x00,0x00,0x01,0x2E,0x00,0x60,0x00,0x48,0x00,0x00,0x00,0x34,0x00,0x00,0x00,0x0C,0x00,0x00,0x00, - 0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x70,0xDE,0xFF,0xFF, - 0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x34,0x36,0x00,0x00,0x02,0x00,0x00,0x00, - 0x69,0x64,0x00,0x00,0x38,0xDB,0xFF,0xFF,0x00,0x00,0x00,0x10,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00, - 0x0D,0x00,0x00,0x00,0x61,0x6E,0x79,0x5F,0x61,0x6D,0x62,0x69,0x67,0x75,0x6F,0x75,0x73,0x00,0x00,0x00, - 0xDA,0xE9,0xFF,0xFF,0x2D,0x00,0x5E,0x00,0x4C,0x00,0x00,0x00,0x34,0x00,0x00,0x00,0x0C,0x00,0x00,0x00, - 0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0xD4,0xDE,0xFF,0xFF, - 0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x34,0x35,0x00,0x00,0x02,0x00,0x00,0x00, - 0x69,0x64,0x00,0x00,0x50,0xDE,0xFF,0xFF,0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00, - 0x01,0x00,0x00,0x00,0x12,0x00,0x00,0x00,0x61,0x6E,0x79,0x5F,0x61,0x6D,0x62,0x69,0x67,0x75,0x6F,0x75, - 0x73,0x5F,0x74,0x79,0x70,0x65,0x00,0x00,0x5C,0xE9,0xFF,0xFF,0x00,0x00,0x00,0x01,0x2C,0x00,0x5C,0x00, + 0x3E,0x00,0x00,0x00,0x38,0x08,0x00,0x00,0x9C,0x08,0x00,0x00,0x04,0x09,0x00,0x00,0x64,0x09,0x00,0x00, + 0x60,0x0D,0x00,0x00,0x30,0x1F,0x00,0x00,0xFC,0x00,0x00,0x00,0x3C,0x1C,0x00,0x00,0xF8,0x12,0x00,0x00, + 0x30,0x20,0x00,0x00,0x74,0x21,0x00,0x00,0xB0,0x03,0x00,0x00,0xB4,0x02,0x00,0x00,0x98,0x1F,0x00,0x00, + 0xF0,0x04,0x00,0x00,0x70,0x04,0x00,0x00,0xDC,0x21,0x00,0x00,0xDC,0x20,0x00,0x00,0xFC,0x03,0x00,0x00, + 0x50,0x05,0x00,0x00,0xAC,0x01,0x00,0x00,0x30,0x01,0x00,0x00,0xB0,0x0A,0x00,0x00,0x20,0x11,0x00,0x00, + 0x40,0x22,0x00,0x00,0x08,0x03,0x00,0x00,0x04,0x02,0x00,0x00,0xC4,0x05,0x00,0x00,0xF4,0x06,0x00,0x00, + 0xA0,0x0F,0x00,0x00,0xF0,0x1D,0x00,0x00,0x7C,0x1D,0x00,0x00,0x38,0x12,0x00,0x00,0x5C,0x1E,0x00,0x00, + 0x28,0x15,0x00,0x00,0x10,0x13,0x00,0x00,0x00,0x1D,0x00,0x00,0x78,0x13,0x00,0x00,0x20,0x1C,0x00,0x00, + 0x58,0x1A,0x00,0x00,0xB4,0x1A,0x00,0x00,0xA8,0x14,0x00,0x00,0x24,0x14,0x00,0x00,0xC8,0x13,0x00,0x00, + 0xB8,0x19,0x00,0x00,0x78,0x17,0x00,0x00,0x94,0x18,0x00,0x00,0xF0,0x15,0x00,0x00,0x1C,0x19,0x00,0x00, + 0x7C,0x16,0x00,0x00,0xF4,0x17,0x00,0x00,0x4C,0x15,0x00,0x00,0xE8,0x1A,0x00,0x00,0xD0,0x05,0x00,0x00, + 0x58,0x0B,0x00,0x00,0x10,0x11,0x00,0x00,0xF0,0x06,0x00,0x00,0x70,0x11,0x00,0x00,0xF0,0x08,0x00,0x00, + 0x20,0x10,0x00,0x00,0x74,0x0D,0x00,0x00,0x24,0x0E,0x00,0x00,0x16,0x00,0x00,0x00,0x4D,0x79,0x47,0x61, + 0x6D,0x65,0x2E,0x45,0x78,0x61,0x6D,0x70,0x6C,0x65,0x2E,0x4D,0x6F,0x6E,0x73,0x74,0x65,0x72,0x00,0x00, + 0xC2,0xFD,0xFF,0xFF,0x3D,0x00,0x7E,0x00,0x50,0x00,0x00,0x00,0x3C,0x00,0x00,0x00,0x14,0x00,0x00,0x00, + 0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0x7F,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00, + 0x04,0x00,0x00,0x00,0x50,0xD7,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00, + 0x36,0x31,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0xEC,0xD5,0xFF,0xFF,0x00,0x00,0x00,0x0C, + 0x08,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x12,0x00,0x00,0x00,0x64,0x6F,0x75,0x62,0x6C,0x65,0x5F,0x69, + 0x6E,0x66,0x5F,0x64,0x65,0x66,0x61,0x75,0x6C,0x74,0x00,0x00,0x52,0xEC,0xFF,0xFF,0x3C,0x00,0x7C,0x00, + 0x50,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0xF0,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00, + 0xC4,0xD7,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x36,0x30,0x00,0x00, + 0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0xA8,0xD3,0xFF,0xFF,0x00,0x00,0x00,0x0B,0x01,0x00,0x00,0x00, + 0x19,0x00,0x00,0x00,0x6E,0x65,0x67,0x61,0x74,0x69,0x76,0x65,0x5F,0x69,0x6E,0x66,0x69,0x6E,0x69,0x74, + 0x79,0x5F,0x64,0x65,0x66,0x61,0x75,0x6C,0x74,0x00,0x00,0x00,0xAA,0xFE,0xFF,0xFF,0x3B,0x00,0x7A,0x00, + 0x4C,0x00,0x00,0x00,0x3C,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0xF0,0xFF,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x38,0xD8,0xFF,0xFF, + 0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x35,0x39,0x00,0x00,0x02,0x00,0x00,0x00, + 0x69,0x64,0x00,0x00,0x1C,0xD4,0xFF,0xFF,0x00,0x00,0x00,0x0B,0x01,0x00,0x00,0x00,0x14,0x00,0x00,0x00, + 0x6E,0x65,0x67,0x61,0x74,0x69,0x76,0x65,0x5F,0x69,0x6E,0x66,0x5F,0x64,0x65,0x66,0x61,0x75,0x6C,0x74, + 0x00,0x00,0x00,0x00,0x3A,0xED,0xFF,0xFF,0x3A,0x00,0x78,0x00,0x50,0x00,0x00,0x00,0x40,0x00,0x00,0x00, + 0x18,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0x7F,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0xAC,0xD8,0xFF,0xFF,0x10,0x00,0x00,0x00, + 0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x35,0x38,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00, + 0x90,0xD4,0xFF,0xFF,0x00,0x00,0x00,0x0B,0x01,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x70,0x6F,0x73,0x69, + 0x74,0x69,0x76,0x65,0x5F,0x69,0x6E,0x66,0x69,0x6E,0x69,0x74,0x79,0x5F,0x64,0x65,0x66,0x61,0x75,0x6C, + 0x74,0x00,0x00,0x00,0xB2,0xED,0xFF,0xFF,0x39,0x00,0x76,0x00,0x50,0x00,0x00,0x00,0x40,0x00,0x00,0x00, + 0x18,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0x7F,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x24,0xD9,0xFF,0xFF,0x10,0x00,0x00,0x00, + 0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x35,0x37,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00, + 0x08,0xD5,0xFF,0xFF,0x00,0x00,0x00,0x0B,0x01,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x69,0x6E,0x66,0x69, + 0x6E,0x69,0x74,0x79,0x5F,0x64,0x65,0x66,0x61,0x75,0x6C,0x74,0x00,0x00,0x1A,0x00,0x20,0x00,0x08,0x00, + 0x0C,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x14,0x00, + 0x1A,0x00,0x00,0x00,0x38,0x00,0x74,0x00,0x4C,0x00,0x00,0x00,0x3C,0x00,0x00,0x00,0x14,0x00,0x00,0x00, + 0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0x7F,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00, + 0x04,0x00,0x00,0x00,0xA8,0xD9,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00, + 0x35,0x36,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0x8C,0xD5,0xFF,0xFF,0x00,0x00,0x00,0x0B, + 0x01,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x70,0x6F,0x73,0x69,0x74,0x69,0x76,0x65,0x5F,0x69,0x6E,0x66, + 0x5F,0x64,0x65,0x66,0x61,0x75,0x6C,0x74,0x00,0x00,0x00,0x00,0xAA,0xEE,0xFF,0xFF,0x37,0x00,0x72,0x00, + 0x50,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0xF0,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00, + 0x1C,0xDA,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x35,0x35,0x00,0x00, + 0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0x00,0xD6,0xFF,0xFF,0x00,0x00,0x00,0x0B,0x01,0x00,0x00,0x00, + 0x0B,0x00,0x00,0x00,0x69,0x6E,0x66,0x5F,0x64,0x65,0x66,0x61,0x75,0x6C,0x74,0x00,0x12,0xEF,0xFF,0xFF, + 0x36,0x00,0x70,0x00,0x50,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x10,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00, + 0x04,0x00,0x00,0x00,0x84,0xDA,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00, + 0x35,0x34,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0x68,0xD6,0xFF,0xFF,0x00,0x00,0x00,0x0B, + 0x01,0x00,0x00,0x00,0x0B,0x00,0x00,0x00,0x6E,0x61,0x6E,0x5F,0x64,0x65,0x66,0x61,0x75,0x6C,0x74,0x00, + 0x62,0xFD,0xFF,0xFF,0x35,0x00,0x6E,0x00,0x54,0x00,0x00,0x00,0x3C,0x00,0x00,0x00,0x14,0x00,0x00,0x00, + 0x0C,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00, + 0x04,0x00,0x00,0x00,0xE8,0xDA,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00, + 0x35,0x33,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0x64,0xDA,0xFF,0xFF,0x00,0x00,0x00,0x0A, + 0x04,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x6C,0x6F,0x6E,0x67, + 0x5F,0x65,0x6E,0x75,0x6D,0x5F,0x6E,0x6F,0x72,0x6D,0x61,0x6C,0x5F,0x64,0x65,0x66,0x61,0x75,0x6C,0x74, + 0x00,0x00,0x00,0x00,0x62,0xE6,0xFF,0xFF,0x34,0x00,0x6C,0x00,0x4C,0x00,0x00,0x00,0x34,0x00,0x00,0x00, + 0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00, + 0x5C,0xDB,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x35,0x32,0x00,0x00, + 0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0xD8,0xDA,0xFF,0xFF,0x00,0x00,0x00,0x0A,0x04,0x00,0x00,0x00, + 0x08,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x1A,0x00,0x00,0x00,0x6C,0x6F,0x6E,0x67,0x5F,0x65,0x6E,0x75, + 0x6D,0x5F,0x6E,0x6F,0x6E,0x5F,0x65,0x6E,0x75,0x6D,0x5F,0x64,0x65,0x66,0x61,0x75,0x6C,0x74,0x00,0x00, + 0xEC,0xE5,0xFF,0xFF,0x00,0x00,0x00,0x01,0x33,0x00,0x6A,0x00,0x74,0x00,0x00,0x00,0x60,0x00,0x00,0x00, + 0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x30,0x00,0x00,0x00, + 0x04,0x00,0x00,0x00,0xD8,0xDB,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x01,0x00,0x00,0x00, + 0x30,0x00,0x00,0x00,0x0D,0x00,0x00,0x00,0x6E,0x61,0x74,0x69,0x76,0x65,0x5F,0x69,0x6E,0x6C,0x69,0x6E, + 0x65,0x00,0x00,0x00,0x00,0xDC,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00, + 0x35,0x31,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0xC8,0xD8,0xFF,0xFF,0x00,0x00,0x00,0x0F, + 0x06,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x0D,0x00,0x00,0x00,0x6E,0x61,0x74,0x69,0x76,0x65,0x5F,0x69, + 0x6E,0x6C,0x69,0x6E,0x65,0x00,0x00,0x00,0x80,0xE6,0xFF,0xFF,0x00,0x00,0x00,0x01,0x32,0x00,0x68,0x00, 0x48,0x00,0x00,0x00,0x34,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x44,0xDF,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00, - 0x02,0x00,0x00,0x00,0x34,0x34,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0x0C,0xDC,0xFF,0xFF, - 0x00,0x00,0x00,0x10,0x02,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x0A,0x00,0x00,0x00,0x61,0x6E,0x79,0x5F, - 0x75,0x6E,0x69,0x71,0x75,0x65,0x00,0x00,0xAA,0xEA,0xFF,0xFF,0x2B,0x00,0x5A,0x00,0x4C,0x00,0x00,0x00, + 0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x68,0xDC,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00, + 0x02,0x00,0x00,0x00,0x35,0x30,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0x38,0xE8,0xFF,0xFF, + 0x00,0x00,0x0E,0x0F,0x03,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x73,0x63,0x61,0x6C, + 0x61,0x72,0x5F,0x6B,0x65,0x79,0x5F,0x73,0x6F,0x72,0x74,0x65,0x64,0x5F,0x74,0x61,0x62,0x6C,0x65,0x73, + 0x00,0x00,0x00,0x00,0xF4,0xE6,0xFF,0xFF,0x00,0x00,0x00,0x01,0x31,0x00,0x66,0x00,0x78,0x00,0x00,0x00, + 0x68,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00, + 0x38,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0xE0,0xDC,0xFF,0xFF,0x14,0x00,0x00,0x00,0x04,0x00,0x00,0x00, + 0x07,0x00,0x00,0x00,0x4D,0x6F,0x6E,0x73,0x74,0x65,0x72,0x00,0x11,0x00,0x00,0x00,0x6E,0x65,0x73,0x74, + 0x65,0x64,0x5F,0x66,0x6C,0x61,0x74,0x62,0x75,0x66,0x66,0x65,0x72,0x00,0x00,0x00,0x10,0xDD,0xFF,0xFF, + 0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x34,0x39,0x00,0x00,0x02,0x00,0x00,0x00, + 0x69,0x64,0x00,0x00,0x0C,0xE7,0xFF,0xFF,0x00,0x00,0x0E,0x04,0x01,0x00,0x00,0x00,0x1C,0x00,0x00,0x00, + 0x74,0x65,0x73,0x74,0x72,0x65,0x71,0x75,0x69,0x72,0x65,0x64,0x6E,0x65,0x73,0x74,0x65,0x64,0x66,0x6C, + 0x61,0x74,0x62,0x75,0x66,0x66,0x65,0x72,0x00,0x00,0x1A,0x00,0x20,0x00,0x08,0x00,0x0C,0x00,0x04,0x00, + 0x06,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x14,0x00,0x1A,0x00,0x00,0x00, + 0x30,0x00,0x64,0x00,0x54,0x00,0x00,0x00,0x3C,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x0C,0x00,0x00,0x00, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00, + 0xA0,0xDD,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x34,0x38,0x00,0x00, + 0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0x1C,0xDD,0xFF,0xFF,0x00,0x00,0x00,0x03,0x05,0x00,0x00,0x00, + 0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x0B,0x00,0x00,0x00,0x73,0x69,0x67,0x6E,0x65,0x64,0x5F,0x65, + 0x6E,0x75,0x6D,0x00,0x20,0xE8,0xFF,0xFF,0x00,0x00,0x00,0x01,0x2F,0x00,0x62,0x00,0x48,0x00,0x00,0x00, 0x34,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00, - 0x04,0x00,0x00,0x00,0xA4,0xDF,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00, - 0x34,0x33,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0x20,0xDF,0xFF,0xFF,0x00,0x00,0x00,0x01, - 0x02,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x0F,0x00,0x00,0x00,0x61,0x6E,0x79,0x5F, - 0x75,0x6E,0x69,0x71,0x75,0x65,0x5F,0x74,0x79,0x70,0x65,0x00,0x28,0xEA,0xFF,0xFF,0x00,0x00,0x00,0x01, - 0x2A,0x00,0x58,0x00,0x00,0x01,0x00,0x00,0xF0,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0xB0,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x50,0x00,0x00,0x00, - 0x24,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x20,0xE0,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00, - 0x02,0x00,0x00,0x00,0x34,0x32,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0x3C,0xE0,0xFF,0xFF, - 0x18,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x66,0x6E,0x76,0x31,0x61,0x5F,0x36,0x34, - 0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x68,0x61,0x73,0x68,0x00,0x00,0x00,0x00,0x64,0xE0,0xFF,0xFF, - 0x18,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x0B,0x00,0x00,0x00,0x52,0x65,0x66,0x65,0x72,0x72,0x61,0x62, - 0x6C,0x65,0x54,0x00,0x08,0x00,0x00,0x00,0x63,0x70,0x70,0x5F,0x74,0x79,0x70,0x65,0x00,0x00,0x00,0x00, - 0x90,0xE0,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x10,0x00,0x00,0x00,0x63,0x70,0x70,0x5F,0x70,0x74,0x72,0x5F,0x74,0x79,0x70,0x65,0x5F,0x67,0x65,0x74, - 0x00,0x00,0x00,0x00,0xBC,0xE0,0xFF,0xFF,0x14,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x05,0x00,0x00,0x00, - 0x6E,0x61,0x6B,0x65,0x64,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x63,0x70,0x70,0x5F,0x70,0x74,0x72,0x5F, - 0x74,0x79,0x70,0x65,0x00,0x00,0x00,0x00,0xC8,0xEA,0xFF,0xFF,0x00,0x00,0x0E,0x0A,0x08,0x00,0x00,0x00, - 0x1F,0x00,0x00,0x00,0x76,0x65,0x63,0x74,0x6F,0x72,0x5F,0x6F,0x66,0x5F,0x6E,0x6F,0x6E,0x5F,0x6F,0x77, - 0x6E,0x69,0x6E,0x67,0x5F,0x72,0x65,0x66,0x65,0x72,0x65,0x6E,0x63,0x65,0x73,0x00,0x42,0xEC,0xFF,0xFF, - 0x29,0x00,0x56,0x00,0x04,0x01,0x00,0x00,0xF0,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0xB0,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x50,0x00,0x00,0x00, - 0x24,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x4C,0xE1,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00, - 0x02,0x00,0x00,0x00,0x34,0x31,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0x68,0xE1,0xFF,0xFF, - 0x18,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x66,0x6E,0x76,0x31,0x61,0x5F,0x36,0x34, - 0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x68,0x61,0x73,0x68,0x00,0x00,0x00,0x00,0x90,0xE1,0xFF,0xFF, - 0x18,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x0B,0x00,0x00,0x00,0x52,0x65,0x66,0x65,0x72,0x72,0x61,0x62, - 0x6C,0x65,0x54,0x00,0x08,0x00,0x00,0x00,0x63,0x70,0x70,0x5F,0x74,0x79,0x70,0x65,0x00,0x00,0x00,0x00, - 0xBC,0xE1,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x10,0x00,0x00,0x00,0x63,0x70,0x70,0x5F,0x70,0x74,0x72,0x5F,0x74,0x79,0x70,0x65,0x5F,0x67,0x65,0x74, - 0x00,0x00,0x00,0x00,0xE8,0xE1,0xFF,0xFF,0x14,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x05,0x00,0x00,0x00, + 0x04,0x00,0x00,0x00,0x08,0xDE,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00, + 0x34,0x37,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0xD8,0xE9,0xFF,0xFF,0x00,0x00,0x0E,0x04, + 0x03,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x0F,0x00,0x00,0x00,0x76,0x65,0x63,0x74,0x6F,0x72,0x5F,0x6F, + 0x66,0x5F,0x65,0x6E,0x75,0x6D,0x73,0x00,0x88,0xE8,0xFF,0xFF,0x00,0x00,0x00,0x01,0x2E,0x00,0x60,0x00, + 0x48,0x00,0x00,0x00,0x34,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x70,0xDE,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00, + 0x02,0x00,0x00,0x00,0x34,0x36,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0x38,0xDB,0xFF,0xFF, + 0x00,0x00,0x00,0x10,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x0D,0x00,0x00,0x00,0x61,0x6E,0x79,0x5F, + 0x61,0x6D,0x62,0x69,0x67,0x75,0x6F,0x75,0x73,0x00,0x00,0x00,0xDA,0xE9,0xFF,0xFF,0x2D,0x00,0x5E,0x00, + 0x4C,0x00,0x00,0x00,0x34,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0xD4,0xDE,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00, + 0x02,0x00,0x00,0x00,0x34,0x35,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0x50,0xDE,0xFF,0xFF, + 0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x12,0x00,0x00,0x00, + 0x61,0x6E,0x79,0x5F,0x61,0x6D,0x62,0x69,0x67,0x75,0x6F,0x75,0x73,0x5F,0x74,0x79,0x70,0x65,0x00,0x00, + 0x5C,0xE9,0xFF,0xFF,0x00,0x00,0x00,0x01,0x2C,0x00,0x5C,0x00,0x48,0x00,0x00,0x00,0x34,0x00,0x00,0x00, + 0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00, + 0x44,0xDF,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x34,0x34,0x00,0x00, + 0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0x0C,0xDC,0xFF,0xFF,0x00,0x00,0x00,0x10,0x02,0x00,0x00,0x00, + 0x01,0x00,0x00,0x00,0x0A,0x00,0x00,0x00,0x61,0x6E,0x79,0x5F,0x75,0x6E,0x69,0x71,0x75,0x65,0x00,0x00, + 0xAA,0xEA,0xFF,0xFF,0x2B,0x00,0x5A,0x00,0x4C,0x00,0x00,0x00,0x34,0x00,0x00,0x00,0x0C,0x00,0x00,0x00, + 0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0xA4,0xDF,0xFF,0xFF, + 0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x34,0x33,0x00,0x00,0x02,0x00,0x00,0x00, + 0x69,0x64,0x00,0x00,0x20,0xDF,0xFF,0xFF,0x00,0x00,0x00,0x01,0x02,0x00,0x00,0x00,0x01,0x00,0x00,0x00, + 0x01,0x00,0x00,0x00,0x0F,0x00,0x00,0x00,0x61,0x6E,0x79,0x5F,0x75,0x6E,0x69,0x71,0x75,0x65,0x5F,0x74, + 0x79,0x70,0x65,0x00,0x28,0xEA,0xFF,0xFF,0x00,0x00,0x00,0x01,0x2A,0x00,0x58,0x00,0x00,0x01,0x00,0x00, + 0xF0,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x00,0x00,0x00, + 0xB0,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x50,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x04,0x00,0x00,0x00, + 0x20,0xE0,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x34,0x32,0x00,0x00, + 0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0x3C,0xE0,0xFF,0xFF,0x18,0x00,0x00,0x00,0x04,0x00,0x00,0x00, + 0x08,0x00,0x00,0x00,0x66,0x6E,0x76,0x31,0x61,0x5F,0x36,0x34,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00, + 0x68,0x61,0x73,0x68,0x00,0x00,0x00,0x00,0x64,0xE0,0xFF,0xFF,0x18,0x00,0x00,0x00,0x04,0x00,0x00,0x00, + 0x0B,0x00,0x00,0x00,0x52,0x65,0x66,0x65,0x72,0x72,0x61,0x62,0x6C,0x65,0x54,0x00,0x08,0x00,0x00,0x00, + 0x63,0x70,0x70,0x5F,0x74,0x79,0x70,0x65,0x00,0x00,0x00,0x00,0x90,0xE0,0xFF,0xFF,0x10,0x00,0x00,0x00, + 0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x63,0x70,0x70,0x5F, + 0x70,0x74,0x72,0x5F,0x74,0x79,0x70,0x65,0x5F,0x67,0x65,0x74,0x00,0x00,0x00,0x00,0xBC,0xE0,0xFF,0xFF, + 0x14,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x6E,0x61,0x6B,0x65,0x64,0x00,0x00,0x00, + 0x0C,0x00,0x00,0x00,0x63,0x70,0x70,0x5F,0x70,0x74,0x72,0x5F,0x74,0x79,0x70,0x65,0x00,0x00,0x00,0x00, + 0xC8,0xEA,0xFF,0xFF,0x00,0x00,0x0E,0x0A,0x08,0x00,0x00,0x00,0x1F,0x00,0x00,0x00,0x76,0x65,0x63,0x74, + 0x6F,0x72,0x5F,0x6F,0x66,0x5F,0x6E,0x6F,0x6E,0x5F,0x6F,0x77,0x6E,0x69,0x6E,0x67,0x5F,0x72,0x65,0x66, + 0x65,0x72,0x65,0x6E,0x63,0x65,0x73,0x00,0x42,0xEC,0xFF,0xFF,0x29,0x00,0x56,0x00,0x04,0x01,0x00,0x00, + 0xF0,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x00,0x00,0x00, + 0xB0,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x50,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x04,0x00,0x00,0x00, + 0x4C,0xE1,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x34,0x31,0x00,0x00, + 0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0x68,0xE1,0xFF,0xFF,0x18,0x00,0x00,0x00,0x04,0x00,0x00,0x00, + 0x08,0x00,0x00,0x00,0x66,0x6E,0x76,0x31,0x61,0x5F,0x36,0x34,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00, + 0x68,0x61,0x73,0x68,0x00,0x00,0x00,0x00,0x90,0xE1,0xFF,0xFF,0x18,0x00,0x00,0x00,0x04,0x00,0x00,0x00, + 0x0B,0x00,0x00,0x00,0x52,0x65,0x66,0x65,0x72,0x72,0x61,0x62,0x6C,0x65,0x54,0x00,0x08,0x00,0x00,0x00, + 0x63,0x70,0x70,0x5F,0x74,0x79,0x70,0x65,0x00,0x00,0x00,0x00,0xBC,0xE1,0xFF,0xFF,0x10,0x00,0x00,0x00, + 0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x63,0x70,0x70,0x5F, + 0x70,0x74,0x72,0x5F,0x74,0x79,0x70,0x65,0x5F,0x67,0x65,0x74,0x00,0x00,0x00,0x00,0xE8,0xE1,0xFF,0xFF, + 0x14,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x6E,0x61,0x6B,0x65,0x64,0x00,0x00,0x00, + 0x0C,0x00,0x00,0x00,0x63,0x70,0x70,0x5F,0x70,0x74,0x72,0x5F,0x74,0x79,0x70,0x65,0x00,0x00,0x00,0x00, + 0x94,0xE0,0xFF,0xFF,0x00,0x00,0x00,0x0A,0x08,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x14,0x00,0x00,0x00, + 0x6E,0x6F,0x6E,0x5F,0x6F,0x77,0x6E,0x69,0x6E,0x67,0x5F,0x72,0x65,0x66,0x65,0x72,0x65,0x6E,0x63,0x65, + 0x00,0x00,0x00,0x00,0x80,0xEC,0xFF,0xFF,0x00,0x00,0x00,0x01,0x28,0x00,0x54,0x00,0x10,0x01,0x00,0x00, + 0x00,0x01,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x00,0x00,0x00, + 0xB4,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x50,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x04,0x00,0x00,0x00, + 0x78,0xE2,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x34,0x30,0x00,0x00, + 0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0x94,0xE2,0xFF,0xFF,0x18,0x00,0x00,0x00,0x04,0x00,0x00,0x00, + 0x08,0x00,0x00,0x00,0x66,0x6E,0x76,0x31,0x61,0x5F,0x36,0x34,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00, + 0x68,0x61,0x73,0x68,0x00,0x00,0x00,0x00,0xBC,0xE2,0xFF,0xFF,0x18,0x00,0x00,0x00,0x04,0x00,0x00,0x00, + 0x0B,0x00,0x00,0x00,0x52,0x65,0x66,0x65,0x72,0x72,0x61,0x62,0x6C,0x65,0x54,0x00,0x08,0x00,0x00,0x00, + 0x63,0x70,0x70,0x5F,0x74,0x79,0x70,0x65,0x00,0x00,0x00,0x00,0xE8,0xE2,0xFF,0xFF,0x14,0x00,0x00,0x00, + 0x04,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x2E,0x67,0x65,0x74,0x28,0x29,0x00,0x00,0x10,0x00,0x00,0x00, + 0x63,0x70,0x70,0x5F,0x70,0x74,0x72,0x5F,0x74,0x79,0x70,0x65,0x5F,0x67,0x65,0x74,0x00,0x00,0x00,0x00, + 0x18,0xE3,0xFF,0xFF,0x20,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x64,0x65,0x66,0x61, + 0x75,0x6C,0x74,0x5F,0x70,0x74,0x72,0x5F,0x74,0x79,0x70,0x65,0x00,0x00,0x00,0x00,0x0C,0x00,0x00,0x00, + 0x63,0x70,0x70,0x5F,0x70,0x74,0x72,0x5F,0x74,0x79,0x70,0x65,0x00,0x00,0x00,0x00,0x30,0xED,0xFF,0xFF, + 0x00,0x00,0x0E,0x0A,0x08,0x00,0x00,0x00,0x1E,0x00,0x00,0x00,0x76,0x65,0x63,0x74,0x6F,0x72,0x5F,0x6F, + 0x66,0x5F,0x63,0x6F,0x5F,0x6F,0x77,0x6E,0x69,0x6E,0x67,0x5F,0x72,0x65,0x66,0x65,0x72,0x65,0x6E,0x63, + 0x65,0x73,0x00,0x00,0xAA,0xEE,0xFF,0xFF,0x27,0x00,0x52,0x00,0xD4,0x00,0x00,0x00,0xC0,0x00,0x00,0x00, + 0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x80,0x00,0x00,0x00, + 0x50,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0xB0,0xE3,0xFF,0xFF,0x10,0x00,0x00,0x00, + 0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x33,0x39,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00, + 0xCC,0xE3,0xFF,0xFF,0x18,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x66,0x6E,0x76,0x31, + 0x61,0x5F,0x36,0x34,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x68,0x61,0x73,0x68,0x00,0x00,0x00,0x00, + 0xF4,0xE3,0xFF,0xFF,0x18,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x0B,0x00,0x00,0x00,0x52,0x65,0x66,0x65, + 0x72,0x72,0x61,0x62,0x6C,0x65,0x54,0x00,0x08,0x00,0x00,0x00,0x63,0x70,0x70,0x5F,0x74,0x79,0x70,0x65, + 0x00,0x00,0x00,0x00,0x20,0xE4,0xFF,0xFF,0x14,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x05,0x00,0x00,0x00, 0x6E,0x61,0x6B,0x65,0x64,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x63,0x70,0x70,0x5F,0x70,0x74,0x72,0x5F, - 0x74,0x79,0x70,0x65,0x00,0x00,0x00,0x00,0x94,0xE0,0xFF,0xFF,0x00,0x00,0x00,0x0A,0x08,0x00,0x00,0x00, - 0x01,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x6E,0x6F,0x6E,0x5F,0x6F,0x77,0x6E,0x69,0x6E,0x67,0x5F,0x72, - 0x65,0x66,0x65,0x72,0x65,0x6E,0x63,0x65,0x00,0x00,0x00,0x00,0x80,0xEC,0xFF,0xFF,0x00,0x00,0x00,0x01, - 0x28,0x00,0x54,0x00,0x10,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0xB4,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x50,0x00,0x00,0x00, - 0x24,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x78,0xE2,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00, - 0x02,0x00,0x00,0x00,0x34,0x30,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0x94,0xE2,0xFF,0xFF, - 0x18,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x66,0x6E,0x76,0x31,0x61,0x5F,0x36,0x34, - 0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x68,0x61,0x73,0x68,0x00,0x00,0x00,0x00,0xBC,0xE2,0xFF,0xFF, - 0x18,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x0B,0x00,0x00,0x00,0x52,0x65,0x66,0x65,0x72,0x72,0x61,0x62, - 0x6C,0x65,0x54,0x00,0x08,0x00,0x00,0x00,0x63,0x70,0x70,0x5F,0x74,0x79,0x70,0x65,0x00,0x00,0x00,0x00, - 0xE8,0xE2,0xFF,0xFF,0x14,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x2E,0x67,0x65,0x74, - 0x28,0x29,0x00,0x00,0x10,0x00,0x00,0x00,0x63,0x70,0x70,0x5F,0x70,0x74,0x72,0x5F,0x74,0x79,0x70,0x65, - 0x5F,0x67,0x65,0x74,0x00,0x00,0x00,0x00,0x18,0xE3,0xFF,0xFF,0x20,0x00,0x00,0x00,0x04,0x00,0x00,0x00, - 0x10,0x00,0x00,0x00,0x64,0x65,0x66,0x61,0x75,0x6C,0x74,0x5F,0x70,0x74,0x72,0x5F,0x74,0x79,0x70,0x65, - 0x00,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x63,0x70,0x70,0x5F,0x70,0x74,0x72,0x5F,0x74,0x79,0x70,0x65, - 0x00,0x00,0x00,0x00,0x30,0xED,0xFF,0xFF,0x00,0x00,0x0E,0x0A,0x08,0x00,0x00,0x00,0x1E,0x00,0x00,0x00, - 0x76,0x65,0x63,0x74,0x6F,0x72,0x5F,0x6F,0x66,0x5F,0x63,0x6F,0x5F,0x6F,0x77,0x6E,0x69,0x6E,0x67,0x5F, - 0x72,0x65,0x66,0x65,0x72,0x65,0x6E,0x63,0x65,0x73,0x00,0x00,0xAA,0xEE,0xFF,0xFF,0x27,0x00,0x52,0x00, - 0xD4,0x00,0x00,0x00,0xC0,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x74,0x79,0x70,0x65,0x00,0x00,0x00,0x00,0xCC,0xE2,0xFF,0xFF,0x00,0x00,0x00,0x0A,0x08,0x00,0x00,0x00, + 0x01,0x00,0x00,0x00,0x13,0x00,0x00,0x00,0x63,0x6F,0x5F,0x6F,0x77,0x6E,0x69,0x6E,0x67,0x5F,0x72,0x65, + 0x66,0x65,0x72,0x65,0x6E,0x63,0x65,0x00,0xB4,0xEE,0xFF,0xFF,0x00,0x00,0x00,0x01,0x26,0x00,0x50,0x00, + 0x84,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x02,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0xA0,0xE4,0xFF,0xFF,0x10,0x00,0x00,0x00, + 0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x33,0x38,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00, + 0xBC,0xE4,0xFF,0xFF,0x20,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x64,0x65,0x66,0x61, + 0x75,0x6C,0x74,0x5F,0x70,0x74,0x72,0x5F,0x74,0x79,0x70,0x65,0x00,0x00,0x00,0x00,0x0C,0x00,0x00,0x00, + 0x63,0x70,0x70,0x5F,0x70,0x74,0x72,0x5F,0x74,0x79,0x70,0x65,0x00,0x00,0x00,0x00,0xA8,0xF0,0xFF,0xFF, + 0x00,0x00,0x0E,0x0F,0x02,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x1C,0x00,0x00,0x00,0x76,0x65,0x63,0x74, + 0x6F,0x72,0x5F,0x6F,0x66,0x5F,0x73,0x74,0x72,0x6F,0x6E,0x67,0x5F,0x72,0x65,0x66,0x65,0x72,0x72,0x61, + 0x62,0x6C,0x65,0x73,0x00,0x00,0x00,0x00,0x68,0xEF,0xFF,0xFF,0x00,0x00,0x00,0x01,0x25,0x00,0x4E,0x00, + 0xD0,0x00,0x00,0x00,0xC0,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x04,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x50,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x04,0x00,0x00,0x00, - 0xB0,0xE3,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x33,0x39,0x00,0x00, - 0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0xCC,0xE3,0xFF,0xFF,0x18,0x00,0x00,0x00,0x04,0x00,0x00,0x00, + 0x5C,0xE5,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x33,0x37,0x00,0x00, + 0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0x78,0xE5,0xFF,0xFF,0x18,0x00,0x00,0x00,0x04,0x00,0x00,0x00, 0x08,0x00,0x00,0x00,0x66,0x6E,0x76,0x31,0x61,0x5F,0x36,0x34,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00, - 0x68,0x61,0x73,0x68,0x00,0x00,0x00,0x00,0xF4,0xE3,0xFF,0xFF,0x18,0x00,0x00,0x00,0x04,0x00,0x00,0x00, + 0x68,0x61,0x73,0x68,0x00,0x00,0x00,0x00,0xA0,0xE5,0xFF,0xFF,0x18,0x00,0x00,0x00,0x04,0x00,0x00,0x00, 0x0B,0x00,0x00,0x00,0x52,0x65,0x66,0x65,0x72,0x72,0x61,0x62,0x6C,0x65,0x54,0x00,0x08,0x00,0x00,0x00, - 0x63,0x70,0x70,0x5F,0x74,0x79,0x70,0x65,0x00,0x00,0x00,0x00,0x20,0xE4,0xFF,0xFF,0x14,0x00,0x00,0x00, + 0x63,0x70,0x70,0x5F,0x74,0x79,0x70,0x65,0x00,0x00,0x00,0x00,0xCC,0xE5,0xFF,0xFF,0x14,0x00,0x00,0x00, 0x04,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x6E,0x61,0x6B,0x65,0x64,0x00,0x00,0x00,0x0C,0x00,0x00,0x00, - 0x63,0x70,0x70,0x5F,0x70,0x74,0x72,0x5F,0x74,0x79,0x70,0x65,0x00,0x00,0x00,0x00,0xCC,0xE2,0xFF,0xFF, - 0x00,0x00,0x00,0x0A,0x08,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x13,0x00,0x00,0x00,0x63,0x6F,0x5F,0x6F, - 0x77,0x6E,0x69,0x6E,0x67,0x5F,0x72,0x65,0x66,0x65,0x72,0x65,0x6E,0x63,0x65,0x00,0xB4,0xEE,0xFF,0xFF, - 0x00,0x00,0x00,0x01,0x26,0x00,0x50,0x00,0x84,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x0C,0x00,0x00,0x00, - 0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x04,0x00,0x00,0x00, - 0xA0,0xE4,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x33,0x38,0x00,0x00, - 0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0xBC,0xE4,0xFF,0xFF,0x20,0x00,0x00,0x00,0x04,0x00,0x00,0x00, - 0x10,0x00,0x00,0x00,0x64,0x65,0x66,0x61,0x75,0x6C,0x74,0x5F,0x70,0x74,0x72,0x5F,0x74,0x79,0x70,0x65, - 0x00,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x63,0x70,0x70,0x5F,0x70,0x74,0x72,0x5F,0x74,0x79,0x70,0x65, - 0x00,0x00,0x00,0x00,0xA8,0xF0,0xFF,0xFF,0x00,0x00,0x0E,0x0F,0x02,0x00,0x00,0x00,0x04,0x00,0x00,0x00, - 0x1C,0x00,0x00,0x00,0x76,0x65,0x63,0x74,0x6F,0x72,0x5F,0x6F,0x66,0x5F,0x73,0x74,0x72,0x6F,0x6E,0x67, - 0x5F,0x72,0x65,0x66,0x65,0x72,0x72,0x61,0x62,0x6C,0x65,0x73,0x00,0x00,0x00,0x00,0x68,0xEF,0xFF,0xFF, - 0x00,0x00,0x00,0x01,0x25,0x00,0x4E,0x00,0xD0,0x00,0x00,0x00,0xC0,0x00,0x00,0x00,0x0C,0x00,0x00,0x00, + 0x63,0x70,0x70,0x5F,0x70,0x74,0x72,0x5F,0x74,0x79,0x70,0x65,0x00,0x00,0x00,0x00,0xD8,0xEF,0xFF,0xFF, + 0x00,0x00,0x0E,0x0A,0x08,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x76,0x65,0x63,0x74,0x6F,0x72,0x5F,0x6F, + 0x66,0x5F,0x77,0x65,0x61,0x6B,0x5F,0x72,0x65,0x66,0x65,0x72,0x65,0x6E,0x63,0x65,0x73,0x00,0x00,0x00, + 0x4E,0xF1,0xFF,0xFF,0x24,0x00,0x4C,0x00,0xD4,0x00,0x00,0x00,0xC0,0x00,0x00,0x00,0x0C,0x00,0x00,0x00, 0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x50,0x00,0x00,0x00, - 0x24,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x5C,0xE5,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00, - 0x02,0x00,0x00,0x00,0x33,0x37,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0x78,0xE5,0xFF,0xFF, + 0x24,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x54,0xE6,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00, + 0x02,0x00,0x00,0x00,0x33,0x36,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0x70,0xE6,0xFF,0xFF, 0x18,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x66,0x6E,0x76,0x31,0x61,0x5F,0x36,0x34, - 0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x68,0x61,0x73,0x68,0x00,0x00,0x00,0x00,0xA0,0xE5,0xFF,0xFF, + 0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x68,0x61,0x73,0x68,0x00,0x00,0x00,0x00,0x98,0xE6,0xFF,0xFF, 0x18,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x0B,0x00,0x00,0x00,0x52,0x65,0x66,0x65,0x72,0x72,0x61,0x62, 0x6C,0x65,0x54,0x00,0x08,0x00,0x00,0x00,0x63,0x70,0x70,0x5F,0x74,0x79,0x70,0x65,0x00,0x00,0x00,0x00, - 0xCC,0xE5,0xFF,0xFF,0x14,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x6E,0x61,0x6B,0x65, + 0xC4,0xE6,0xFF,0xFF,0x14,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x6E,0x61,0x6B,0x65, 0x64,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x63,0x70,0x70,0x5F,0x70,0x74,0x72,0x5F,0x74,0x79,0x70,0x65, - 0x00,0x00,0x00,0x00,0xD8,0xEF,0xFF,0xFF,0x00,0x00,0x0E,0x0A,0x08,0x00,0x00,0x00,0x19,0x00,0x00,0x00, - 0x76,0x65,0x63,0x74,0x6F,0x72,0x5F,0x6F,0x66,0x5F,0x77,0x65,0x61,0x6B,0x5F,0x72,0x65,0x66,0x65,0x72, - 0x65,0x6E,0x63,0x65,0x73,0x00,0x00,0x00,0x4E,0xF1,0xFF,0xFF,0x24,0x00,0x4C,0x00,0xD4,0x00,0x00,0x00, - 0xC0,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00, - 0x80,0x00,0x00,0x00,0x50,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x54,0xE6,0xFF,0xFF, - 0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x33,0x36,0x00,0x00,0x02,0x00,0x00,0x00, - 0x69,0x64,0x00,0x00,0x70,0xE6,0xFF,0xFF,0x18,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x08,0x00,0x00,0x00, - 0x66,0x6E,0x76,0x31,0x61,0x5F,0x36,0x34,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x68,0x61,0x73,0x68, - 0x00,0x00,0x00,0x00,0x98,0xE6,0xFF,0xFF,0x18,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x0B,0x00,0x00,0x00, - 0x52,0x65,0x66,0x65,0x72,0x72,0x61,0x62,0x6C,0x65,0x54,0x00,0x08,0x00,0x00,0x00,0x63,0x70,0x70,0x5F, - 0x74,0x79,0x70,0x65,0x00,0x00,0x00,0x00,0xC4,0xE6,0xFF,0xFF,0x14,0x00,0x00,0x00,0x04,0x00,0x00,0x00, - 0x05,0x00,0x00,0x00,0x6E,0x61,0x6B,0x65,0x64,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x63,0x70,0x70,0x5F, - 0x70,0x74,0x72,0x5F,0x74,0x79,0x70,0x65,0x00,0x00,0x00,0x00,0x70,0xE5,0xFF,0xFF,0x00,0x00,0x00,0x0A, - 0x08,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x15,0x00,0x00,0x00,0x73,0x69,0x6E,0x67,0x6C,0x65,0x5F,0x77, - 0x65,0x61,0x6B,0x5F,0x72,0x65,0x66,0x65,0x72,0x65,0x6E,0x63,0x65,0x00,0x00,0x00,0x5C,0xF1,0xFF,0xFF, - 0x00,0x00,0x00,0x01,0x23,0x00,0x4A,0x00,0x48,0x00,0x00,0x00,0x34,0x00,0x00,0x00,0x0C,0x00,0x00,0x00, - 0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x44,0xE7,0xFF,0xFF, - 0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x33,0x35,0x00,0x00,0x02,0x00,0x00,0x00, - 0x69,0x64,0x00,0x00,0x14,0xF3,0xFF,0xFF,0x00,0x00,0x0E,0x0F,0x02,0x00,0x00,0x00,0x04,0x00,0x00,0x00, - 0x15,0x00,0x00,0x00,0x76,0x65,0x63,0x74,0x6F,0x72,0x5F,0x6F,0x66,0x5F,0x72,0x65,0x66,0x65,0x72,0x72, - 0x61,0x62,0x6C,0x65,0x73,0x00,0x00,0x00,0xCC,0xF1,0xFF,0xFF,0x00,0x00,0x00,0x01,0x22,0x00,0x48,0x00, + 0x00,0x00,0x00,0x00,0x70,0xE5,0xFF,0xFF,0x00,0x00,0x00,0x0A,0x08,0x00,0x00,0x00,0x01,0x00,0x00,0x00, + 0x15,0x00,0x00,0x00,0x73,0x69,0x6E,0x67,0x6C,0x65,0x5F,0x77,0x65,0x61,0x6B,0x5F,0x72,0x65,0x66,0x65, + 0x72,0x65,0x6E,0x63,0x65,0x00,0x00,0x00,0x5C,0xF1,0xFF,0xFF,0x00,0x00,0x00,0x01,0x23,0x00,0x4A,0x00, 0x48,0x00,0x00,0x00,0x34,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0xB4,0xE7,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00, - 0x02,0x00,0x00,0x00,0x33,0x34,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0x7C,0xE4,0xFF,0xFF, - 0x00,0x00,0x00,0x0F,0x0B,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x15,0x00,0x00,0x00,0x70,0x61,0x72,0x65, - 0x6E,0x74,0x5F,0x6E,0x61,0x6D,0x65,0x73,0x70,0x61,0x63,0x65,0x5F,0x74,0x65,0x73,0x74,0x00,0x00,0x00, - 0x3C,0xF2,0xFF,0xFF,0x00,0x00,0x00,0x01,0x21,0x00,0x46,0x00,0x44,0x00,0x00,0x00,0x34,0x00,0x00,0x00, + 0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x44,0xE7,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00, + 0x02,0x00,0x00,0x00,0x33,0x35,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0x14,0xF3,0xFF,0xFF, + 0x00,0x00,0x0E,0x0F,0x02,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x15,0x00,0x00,0x00,0x76,0x65,0x63,0x74, + 0x6F,0x72,0x5F,0x6F,0x66,0x5F,0x72,0x65,0x66,0x65,0x72,0x72,0x61,0x62,0x6C,0x65,0x73,0x00,0x00,0x00, + 0xCC,0xF1,0xFF,0xFF,0x00,0x00,0x00,0x01,0x22,0x00,0x48,0x00,0x48,0x00,0x00,0x00,0x34,0x00,0x00,0x00, 0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00, - 0x24,0xE8,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x33,0x33,0x00,0x00, - 0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0x20,0xF2,0xFF,0xFF,0x00,0x00,0x0E,0x0C,0x08,0x00,0x00,0x00, - 0x11,0x00,0x00,0x00,0x76,0x65,0x63,0x74,0x6F,0x72,0x5F,0x6F,0x66,0x5F,0x64,0x6F,0x75,0x62,0x6C,0x65, - 0x73,0x00,0x00,0x00,0xA4,0xF2,0xFF,0xFF,0x00,0x00,0x00,0x01,0x20,0x00,0x44,0x00,0x44,0x00,0x00,0x00, + 0xB4,0xE7,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x33,0x34,0x00,0x00, + 0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0x7C,0xE4,0xFF,0xFF,0x00,0x00,0x00,0x0F,0x0B,0x00,0x00,0x00, + 0x01,0x00,0x00,0x00,0x15,0x00,0x00,0x00,0x70,0x61,0x72,0x65,0x6E,0x74,0x5F,0x6E,0x61,0x6D,0x65,0x73, + 0x70,0x61,0x63,0x65,0x5F,0x74,0x65,0x73,0x74,0x00,0x00,0x00,0x3C,0xF2,0xFF,0xFF,0x00,0x00,0x00,0x01, + 0x21,0x00,0x46,0x00,0x44,0x00,0x00,0x00,0x34,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x24,0xE8,0xFF,0xFF,0x10,0x00,0x00,0x00, + 0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x33,0x33,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00, + 0x20,0xF2,0xFF,0xFF,0x00,0x00,0x0E,0x0C,0x08,0x00,0x00,0x00,0x11,0x00,0x00,0x00,0x76,0x65,0x63,0x74, + 0x6F,0x72,0x5F,0x6F,0x66,0x5F,0x64,0x6F,0x75,0x62,0x6C,0x65,0x73,0x00,0x00,0x00,0xA4,0xF2,0xFF,0xFF, + 0x00,0x00,0x00,0x01,0x20,0x00,0x44,0x00,0x44,0x00,0x00,0x00,0x34,0x00,0x00,0x00,0x0C,0x00,0x00,0x00, + 0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x8C,0xE8,0xFF,0xFF, + 0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x33,0x32,0x00,0x00,0x02,0x00,0x00,0x00, + 0x69,0x64,0x00,0x00,0x88,0xF2,0xFF,0xFF,0x00,0x00,0x0E,0x09,0x08,0x00,0x00,0x00,0x0F,0x00,0x00,0x00, + 0x76,0x65,0x63,0x74,0x6F,0x72,0x5F,0x6F,0x66,0x5F,0x6C,0x6F,0x6E,0x67,0x73,0x00,0x08,0xF3,0xFF,0xFF, + 0x00,0x00,0x00,0x01,0x1F,0x00,0x42,0x00,0x48,0x00,0x00,0x00,0x34,0x00,0x00,0x00,0x0C,0x00,0x00,0x00, + 0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0xF0,0xE8,0xFF,0xFF, + 0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x33,0x31,0x00,0x00,0x02,0x00,0x00,0x00, + 0x69,0x64,0x00,0x00,0xC0,0xF4,0xFF,0xFF,0x00,0x00,0x0E,0x0F,0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00, + 0x05,0x00,0x00,0x00,0x74,0x65,0x73,0x74,0x35,0x00,0x00,0x00,0x68,0xF3,0xFF,0xFF,0x00,0x00,0x00,0x01, + 0x1E,0x00,0x40,0x00,0x6C,0x00,0x00,0x00,0x5C,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x54,0xE9,0xFF,0xFF, + 0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x33,0x30,0x00,0x00,0x02,0x00,0x00,0x00, + 0x69,0x64,0x00,0x00,0x70,0xE9,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x01,0x00,0x00,0x00, + 0x30,0x00,0x00,0x00,0x0A,0x00,0x00,0x00,0x66,0x6C,0x65,0x78,0x62,0x75,0x66,0x66,0x65,0x72,0x00,0x00, + 0x74,0xF3,0xFF,0xFF,0x00,0x00,0x0E,0x04,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x66,0x6C,0x65,0x78, + 0x00,0x00,0x00,0x00,0xEC,0xF3,0xFF,0xFF,0x00,0x00,0x00,0x01,0x1D,0x00,0x3E,0x00,0x48,0x00,0x00,0x00, 0x34,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00, - 0x04,0x00,0x00,0x00,0x8C,0xE8,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00, - 0x33,0x32,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0x88,0xF2,0xFF,0xFF,0x00,0x00,0x0E,0x09, - 0x08,0x00,0x00,0x00,0x0F,0x00,0x00,0x00,0x76,0x65,0x63,0x74,0x6F,0x72,0x5F,0x6F,0x66,0x5F,0x6C,0x6F, - 0x6E,0x67,0x73,0x00,0x08,0xF3,0xFF,0xFF,0x00,0x00,0x00,0x01,0x1F,0x00,0x42,0x00,0x48,0x00,0x00,0x00, - 0x34,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00, - 0x04,0x00,0x00,0x00,0xF0,0xE8,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00, - 0x33,0x31,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0xC0,0xF4,0xFF,0xFF,0x00,0x00,0x0E,0x0F, - 0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x74,0x65,0x73,0x74,0x35,0x00,0x00,0x00, - 0x68,0xF3,0xFF,0xFF,0x00,0x00,0x00,0x01,0x1E,0x00,0x40,0x00,0x6C,0x00,0x00,0x00,0x5C,0x00,0x00,0x00, - 0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x24,0x00,0x00,0x00, - 0x04,0x00,0x00,0x00,0x54,0xE9,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00, - 0x33,0x30,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0x70,0xE9,0xFF,0xFF,0x10,0x00,0x00,0x00, - 0x04,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x0A,0x00,0x00,0x00,0x66,0x6C,0x65,0x78, - 0x62,0x75,0x66,0x66,0x65,0x72,0x00,0x00,0x74,0xF3,0xFF,0xFF,0x00,0x00,0x0E,0x04,0x01,0x00,0x00,0x00, - 0x04,0x00,0x00,0x00,0x66,0x6C,0x65,0x78,0x00,0x00,0x00,0x00,0xEC,0xF3,0xFF,0xFF,0x00,0x00,0x00,0x01, - 0x1D,0x00,0x3E,0x00,0x48,0x00,0x00,0x00,0x34,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0xD4,0xE9,0xFF,0xFF,0x10,0x00,0x00,0x00, - 0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x32,0x39,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00, - 0xA4,0xF5,0xFF,0xFF,0x00,0x00,0x0E,0x0F,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x17,0x00,0x00,0x00, - 0x74,0x65,0x73,0x74,0x61,0x72,0x72,0x61,0x79,0x6F,0x66,0x73,0x6F,0x72,0x74,0x65,0x64,0x73,0x74,0x72, - 0x75,0x63,0x74,0x00,0x5C,0xF4,0xFF,0xFF,0x00,0x00,0x00,0x01,0x1C,0x00,0x3C,0x00,0x44,0x00,0x00,0x00, - 0x34,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00, - 0x04,0x00,0x00,0x00,0x44,0xEA,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00, - 0x32,0x38,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0x40,0xF4,0xFF,0xFF,0x00,0x00,0x0E,0x0D, - 0x04,0x00,0x00,0x00,0x12,0x00,0x00,0x00,0x74,0x65,0x73,0x74,0x61,0x72,0x72,0x61,0x79,0x6F,0x66,0x73, - 0x74,0x72,0x69,0x6E,0x67,0x32,0x00,0x00,0xAE,0xF5,0xFF,0xFF,0x1B,0x00,0x3A,0x00,0x44,0x00,0x00,0x00, - 0x34,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00, - 0x04,0x00,0x00,0x00,0xA8,0xEA,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00, - 0x32,0x37,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0x8C,0xE6,0xFF,0xFF,0x00,0x00,0x00,0x0B, - 0x01,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x74,0x65,0x73,0x74,0x66,0x33,0x00,0x00,0x9A,0xFF,0xFF,0xFF, - 0x1A,0x00,0x38,0x00,0x50,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x10,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00, - 0x04,0x00,0x00,0x00,0x0C,0xEB,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00, - 0x32,0x36,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0xF0,0xE6,0xFF,0xFF,0x00,0x00,0x00,0x0B, - 0x01,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x74,0x65,0x73,0x74,0x66,0x32,0x00,0x00,0x00,0x00,0x1A,0x00, - 0x24,0x00,0x08,0x00,0x0C,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x10,0x00,0x14,0x00,0x1A,0x00,0x00,0x00,0x19,0x00,0x36,0x00,0x50,0x00,0x00,0x00,0x40,0x00,0x00,0x00, - 0x18,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x6E,0x86,0x1B,0xF0,0xF9,0x21,0x09,0x40,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x8C,0xEB,0xFF,0xFF,0x10,0x00,0x00,0x00, - 0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x32,0x35,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00, - 0x70,0xE7,0xFF,0xFF,0x00,0x00,0x00,0x0B,0x01,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x74,0x65,0x73,0x74, - 0x66,0x00,0x00,0x00,0x00,0xF6,0xFF,0xFF,0x00,0x00,0x00,0x01,0x18,0x00,0x34,0x00,0x44,0x00,0x00,0x00, - 0x34,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00, - 0x04,0x00,0x00,0x00,0xE8,0xEB,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00, - 0x32,0x34,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0xE4,0xF5,0xFF,0xFF,0x00,0x00,0x0E,0x02, - 0x01,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x74,0x65,0x73,0x74,0x61,0x72,0x72,0x61,0x79,0x6F,0x66,0x62, - 0x6F,0x6F,0x6C,0x73,0x00,0x00,0x00,0x00,0x52,0xF7,0xFF,0xFF,0x17,0x00,0x32,0x00,0x74,0x00,0x00,0x00, + 0x04,0x00,0x00,0x00,0xD4,0xE9,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00, + 0x32,0x39,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0xA4,0xF5,0xFF,0xFF,0x00,0x00,0x0E,0x0F, + 0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x17,0x00,0x00,0x00,0x74,0x65,0x73,0x74,0x61,0x72,0x72,0x61, + 0x79,0x6F,0x66,0x73,0x6F,0x72,0x74,0x65,0x64,0x73,0x74,0x72,0x75,0x63,0x74,0x00,0x5C,0xF4,0xFF,0xFF, + 0x00,0x00,0x00,0x01,0x1C,0x00,0x3C,0x00,0x44,0x00,0x00,0x00,0x34,0x00,0x00,0x00,0x0C,0x00,0x00,0x00, + 0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x44,0xEA,0xFF,0xFF, + 0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x32,0x38,0x00,0x00,0x02,0x00,0x00,0x00, + 0x69,0x64,0x00,0x00,0x40,0xF4,0xFF,0xFF,0x00,0x00,0x0E,0x0D,0x04,0x00,0x00,0x00,0x12,0x00,0x00,0x00, + 0x74,0x65,0x73,0x74,0x61,0x72,0x72,0x61,0x79,0x6F,0x66,0x73,0x74,0x72,0x69,0x6E,0x67,0x32,0x00,0x00, + 0xAE,0xF5,0xFF,0xFF,0x1B,0x00,0x3A,0x00,0x44,0x00,0x00,0x00,0x34,0x00,0x00,0x00,0x0C,0x00,0x00,0x00, + 0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0xA8,0xEA,0xFF,0xFF, + 0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x32,0x37,0x00,0x00,0x02,0x00,0x00,0x00, + 0x69,0x64,0x00,0x00,0x8C,0xE6,0xFF,0xFF,0x00,0x00,0x00,0x0B,0x01,0x00,0x00,0x00,0x06,0x00,0x00,0x00, + 0x74,0x65,0x73,0x74,0x66,0x33,0x00,0x00,0x9A,0xFF,0xFF,0xFF,0x1A,0x00,0x38,0x00,0x50,0x00,0x00,0x00, + 0x40,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x40, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x0C,0xEB,0xFF,0xFF, + 0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x32,0x36,0x00,0x00,0x02,0x00,0x00,0x00, + 0x69,0x64,0x00,0x00,0xF0,0xE6,0xFF,0xFF,0x00,0x00,0x00,0x0B,0x01,0x00,0x00,0x00,0x06,0x00,0x00,0x00, + 0x74,0x65,0x73,0x74,0x66,0x32,0x00,0x00,0x00,0x00,0x1A,0x00,0x24,0x00,0x08,0x00,0x0C,0x00,0x04,0x00, + 0x06,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x14,0x00,0x1A,0x00,0x00,0x00, + 0x19,0x00,0x36,0x00,0x50,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x10,0x00,0x00,0x00, + 0x6E,0x86,0x1B,0xF0,0xF9,0x21,0x09,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00, + 0x04,0x00,0x00,0x00,0x8C,0xEB,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00, + 0x32,0x35,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0x70,0xE7,0xFF,0xFF,0x00,0x00,0x00,0x0B, + 0x01,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x74,0x65,0x73,0x74,0x66,0x00,0x00,0x00,0x00,0xF6,0xFF,0xFF, + 0x00,0x00,0x00,0x01,0x18,0x00,0x34,0x00,0x44,0x00,0x00,0x00,0x34,0x00,0x00,0x00,0x0C,0x00,0x00,0x00, + 0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0xE8,0xEB,0xFF,0xFF, + 0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x32,0x34,0x00,0x00,0x02,0x00,0x00,0x00, + 0x69,0x64,0x00,0x00,0xE4,0xF5,0xFF,0xFF,0x00,0x00,0x0E,0x02,0x01,0x00,0x00,0x00,0x10,0x00,0x00,0x00, + 0x74,0x65,0x73,0x74,0x61,0x72,0x72,0x61,0x79,0x6F,0x66,0x62,0x6F,0x6F,0x6C,0x73,0x00,0x00,0x00,0x00, + 0x52,0xF7,0xFF,0xFF,0x17,0x00,0x32,0x00,0x74,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0x0C,0x00,0x00,0x00, + 0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x04,0x00,0x00,0x00, + 0x50,0xEC,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x32,0x33,0x00,0x00, + 0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0x6C,0xEC,0xFF,0xFF,0x18,0x00,0x00,0x00,0x04,0x00,0x00,0x00, + 0x08,0x00,0x00,0x00,0x66,0x6E,0x76,0x31,0x61,0x5F,0x36,0x34,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00, + 0x68,0x61,0x73,0x68,0x00,0x00,0x00,0x00,0x14,0xEB,0xFF,0xFF,0x00,0x00,0x00,0x0A,0x08,0x00,0x00,0x00, + 0x01,0x00,0x00,0x00,0x11,0x00,0x00,0x00,0x74,0x65,0x73,0x74,0x68,0x61,0x73,0x68,0x75,0x36,0x34,0x5F, + 0x66,0x6E,0x76,0x31,0x61,0x00,0x00,0x00,0xE6,0xF7,0xFF,0xFF,0x16,0x00,0x30,0x00,0x74,0x00,0x00,0x00, 0x60,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00, - 0x24,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x50,0xEC,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00, - 0x02,0x00,0x00,0x00,0x32,0x33,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0x6C,0xEC,0xFF,0xFF, + 0x24,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0xE4,0xEC,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00, + 0x02,0x00,0x00,0x00,0x32,0x32,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0x00,0xED,0xFF,0xFF, 0x18,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x66,0x6E,0x76,0x31,0x61,0x5F,0x36,0x34, - 0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x68,0x61,0x73,0x68,0x00,0x00,0x00,0x00,0x14,0xEB,0xFF,0xFF, - 0x00,0x00,0x00,0x0A,0x08,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x11,0x00,0x00,0x00,0x74,0x65,0x73,0x74, - 0x68,0x61,0x73,0x68,0x75,0x36,0x34,0x5F,0x66,0x6E,0x76,0x31,0x61,0x00,0x00,0x00,0xE6,0xF7,0xFF,0xFF, - 0x16,0x00,0x30,0x00,0x74,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0xE4,0xEC,0xFF,0xFF, - 0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x32,0x32,0x00,0x00,0x02,0x00,0x00,0x00, - 0x69,0x64,0x00,0x00,0x00,0xED,0xFF,0xFF,0x18,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x08,0x00,0x00,0x00, - 0x66,0x6E,0x76,0x31,0x61,0x5F,0x36,0x34,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x68,0x61,0x73,0x68, - 0x00,0x00,0x00,0x00,0xA8,0xEB,0xFF,0xFF,0x00,0x00,0x00,0x09,0x08,0x00,0x00,0x00,0x01,0x00,0x00,0x00, - 0x11,0x00,0x00,0x00,0x74,0x65,0x73,0x74,0x68,0x61,0x73,0x68,0x73,0x36,0x34,0x5F,0x66,0x6E,0x76,0x31, - 0x61,0x00,0x00,0x00,0x7A,0xF8,0xFF,0xFF,0x15,0x00,0x2E,0x00,0xCC,0x00,0x00,0x00,0xBC,0x00,0x00,0x00, - 0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x7C,0x00,0x00,0x00, - 0x50,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x80,0xED,0xFF,0xFF,0x10,0x00,0x00,0x00, - 0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x32,0x31,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00, - 0x9C,0xED,0xFF,0xFF,0x18,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x66,0x6E,0x76,0x31, + 0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x68,0x61,0x73,0x68,0x00,0x00,0x00,0x00,0xA8,0xEB,0xFF,0xFF, + 0x00,0x00,0x00,0x09,0x08,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x11,0x00,0x00,0x00,0x74,0x65,0x73,0x74, + 0x68,0x61,0x73,0x68,0x73,0x36,0x34,0x5F,0x66,0x6E,0x76,0x31,0x61,0x00,0x00,0x00,0x7A,0xF8,0xFF,0xFF, + 0x15,0x00,0x2E,0x00,0xCC,0x00,0x00,0x00,0xBC,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x50,0x00,0x00,0x00,0x24,0x00,0x00,0x00, + 0x04,0x00,0x00,0x00,0x80,0xED,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00, + 0x32,0x31,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0x9C,0xED,0xFF,0xFF,0x18,0x00,0x00,0x00, + 0x04,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x66,0x6E,0x76,0x31,0x61,0x5F,0x33,0x32,0x00,0x00,0x00,0x00, + 0x04,0x00,0x00,0x00,0x68,0x61,0x73,0x68,0x00,0x00,0x00,0x00,0xC4,0xED,0xFF,0xFF,0x14,0x00,0x00,0x00, + 0x04,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x53,0x74,0x61,0x74,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x00, + 0x63,0x70,0x70,0x5F,0x74,0x79,0x70,0x65,0x00,0x00,0x00,0x00,0xEC,0xED,0xFF,0xFF,0x14,0x00,0x00,0x00, + 0x04,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x6E,0x61,0x6B,0x65,0x64,0x00,0x00,0x00,0x0C,0x00,0x00,0x00, + 0x63,0x70,0x70,0x5F,0x70,0x74,0x72,0x5F,0x74,0x79,0x70,0x65,0x00,0x00,0x00,0x00,0xE0,0xE9,0xFF,0xFF, + 0x00,0x00,0x00,0x08,0x01,0x00,0x00,0x00,0x11,0x00,0x00,0x00,0x74,0x65,0x73,0x74,0x68,0x61,0x73,0x68, + 0x75,0x33,0x32,0x5F,0x66,0x6E,0x76,0x31,0x61,0x00,0x00,0x00,0x66,0xF9,0xFF,0xFF,0x14,0x00,0x2C,0x00, + 0x70,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x02,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x64,0xEE,0xFF,0xFF,0x10,0x00,0x00,0x00, + 0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x32,0x30,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00, + 0x80,0xEE,0xFF,0xFF,0x18,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x66,0x6E,0x76,0x31, 0x61,0x5F,0x33,0x32,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x68,0x61,0x73,0x68,0x00,0x00,0x00,0x00, - 0xC4,0xED,0xFF,0xFF,0x14,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x53,0x74,0x61,0x74, - 0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x63,0x70,0x70,0x5F,0x74,0x79,0x70,0x65,0x00,0x00,0x00,0x00, - 0xEC,0xED,0xFF,0xFF,0x14,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x6E,0x61,0x6B,0x65, - 0x64,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x63,0x70,0x70,0x5F,0x70,0x74,0x72,0x5F,0x74,0x79,0x70,0x65, - 0x00,0x00,0x00,0x00,0xE0,0xE9,0xFF,0xFF,0x00,0x00,0x00,0x08,0x01,0x00,0x00,0x00,0x11,0x00,0x00,0x00, - 0x74,0x65,0x73,0x74,0x68,0x61,0x73,0x68,0x75,0x33,0x32,0x5F,0x66,0x6E,0x76,0x31,0x61,0x00,0x00,0x00, - 0x66,0xF9,0xFF,0xFF,0x14,0x00,0x2C,0x00,0x70,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0x0C,0x00,0x00,0x00, + 0x70,0xEA,0xFF,0xFF,0x00,0x00,0x00,0x07,0x01,0x00,0x00,0x00,0x11,0x00,0x00,0x00,0x74,0x65,0x73,0x74, + 0x68,0x61,0x73,0x68,0x73,0x33,0x32,0x5F,0x66,0x6E,0x76,0x31,0x61,0x00,0x00,0x00,0xF6,0xF9,0xFF,0xFF, + 0x13,0x00,0x2A,0x00,0x70,0x00,0x00,0x00,0x5C,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0xF4,0xEE,0xFF,0xFF, + 0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x31,0x39,0x00,0x00,0x02,0x00,0x00,0x00, + 0x69,0x64,0x00,0x00,0x10,0xEF,0xFF,0xFF,0x14,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x07,0x00,0x00,0x00, + 0x66,0x6E,0x76,0x31,0x5F,0x36,0x34,0x00,0x04,0x00,0x00,0x00,0x68,0x61,0x73,0x68,0x00,0x00,0x00,0x00, + 0xB4,0xED,0xFF,0xFF,0x00,0x00,0x00,0x0A,0x08,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x10,0x00,0x00,0x00, + 0x74,0x65,0x73,0x74,0x68,0x61,0x73,0x68,0x75,0x36,0x34,0x5F,0x66,0x6E,0x76,0x31,0x00,0x00,0x00,0x00, + 0x86,0xFA,0xFF,0xFF,0x12,0x00,0x28,0x00,0x70,0x00,0x00,0x00,0x5C,0x00,0x00,0x00,0x0C,0x00,0x00,0x00, 0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x04,0x00,0x00,0x00, - 0x64,0xEE,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x32,0x30,0x00,0x00, - 0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0x80,0xEE,0xFF,0xFF,0x18,0x00,0x00,0x00,0x04,0x00,0x00,0x00, - 0x08,0x00,0x00,0x00,0x66,0x6E,0x76,0x31,0x61,0x5F,0x33,0x32,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00, - 0x68,0x61,0x73,0x68,0x00,0x00,0x00,0x00,0x70,0xEA,0xFF,0xFF,0x00,0x00,0x00,0x07,0x01,0x00,0x00,0x00, - 0x11,0x00,0x00,0x00,0x74,0x65,0x73,0x74,0x68,0x61,0x73,0x68,0x73,0x33,0x32,0x5F,0x66,0x6E,0x76,0x31, - 0x61,0x00,0x00,0x00,0xF6,0xF9,0xFF,0xFF,0x13,0x00,0x2A,0x00,0x70,0x00,0x00,0x00,0x5C,0x00,0x00,0x00, + 0x84,0xEF,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x31,0x38,0x00,0x00, + 0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0xA0,0xEF,0xFF,0xFF,0x14,0x00,0x00,0x00,0x04,0x00,0x00,0x00, + 0x07,0x00,0x00,0x00,0x66,0x6E,0x76,0x31,0x5F,0x36,0x34,0x00,0x04,0x00,0x00,0x00,0x68,0x61,0x73,0x68, + 0x00,0x00,0x00,0x00,0x44,0xEE,0xFF,0xFF,0x00,0x00,0x00,0x09,0x08,0x00,0x00,0x00,0x01,0x00,0x00,0x00, + 0x10,0x00,0x00,0x00,0x74,0x65,0x73,0x74,0x68,0x61,0x73,0x68,0x73,0x36,0x34,0x5F,0x66,0x6E,0x76,0x31, + 0x00,0x00,0x00,0x00,0x16,0xFB,0xFF,0xFF,0x11,0x00,0x26,0x00,0x6C,0x00,0x00,0x00,0x5C,0x00,0x00,0x00, 0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x24,0x00,0x00,0x00, - 0x04,0x00,0x00,0x00,0xF4,0xEE,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00, - 0x31,0x39,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0x10,0xEF,0xFF,0xFF,0x14,0x00,0x00,0x00, - 0x04,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x66,0x6E,0x76,0x31,0x5F,0x36,0x34,0x00,0x04,0x00,0x00,0x00, - 0x68,0x61,0x73,0x68,0x00,0x00,0x00,0x00,0xB4,0xED,0xFF,0xFF,0x00,0x00,0x00,0x0A,0x08,0x00,0x00,0x00, - 0x01,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x74,0x65,0x73,0x74,0x68,0x61,0x73,0x68,0x75,0x36,0x34,0x5F, - 0x66,0x6E,0x76,0x31,0x00,0x00,0x00,0x00,0x86,0xFA,0xFF,0xFF,0x12,0x00,0x28,0x00,0x70,0x00,0x00,0x00, - 0x5C,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00, - 0x24,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x84,0xEF,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00, - 0x02,0x00,0x00,0x00,0x31,0x38,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0xA0,0xEF,0xFF,0xFF, - 0x14,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x66,0x6E,0x76,0x31,0x5F,0x36,0x34,0x00, - 0x04,0x00,0x00,0x00,0x68,0x61,0x73,0x68,0x00,0x00,0x00,0x00,0x44,0xEE,0xFF,0xFF,0x00,0x00,0x00,0x09, - 0x08,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x74,0x65,0x73,0x74,0x68,0x61,0x73,0x68, - 0x73,0x36,0x34,0x5F,0x66,0x6E,0x76,0x31,0x00,0x00,0x00,0x00,0x16,0xFB,0xFF,0xFF,0x11,0x00,0x26,0x00, - 0x6C,0x00,0x00,0x00,0x5C,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x02,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x14,0xF0,0xFF,0xFF,0x10,0x00,0x00,0x00, - 0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x31,0x37,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00, - 0x30,0xF0,0xFF,0xFF,0x14,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x66,0x6E,0x76,0x31, - 0x5F,0x33,0x32,0x00,0x04,0x00,0x00,0x00,0x68,0x61,0x73,0x68,0x00,0x00,0x00,0x00,0x1C,0xEC,0xFF,0xFF, - 0x00,0x00,0x00,0x08,0x01,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x74,0x65,0x73,0x74,0x68,0x61,0x73,0x68, - 0x75,0x33,0x32,0x5F,0x66,0x6E,0x76,0x31,0x00,0x00,0x00,0x00,0xA2,0xFB,0xFF,0xFF,0x10,0x00,0x24,0x00, - 0x6C,0x00,0x00,0x00,0x5C,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x02,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0xA0,0xF0,0xFF,0xFF,0x10,0x00,0x00,0x00, - 0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x31,0x36,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00, - 0xBC,0xF0,0xFF,0xFF,0x14,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x66,0x6E,0x76,0x31, - 0x5F,0x33,0x32,0x00,0x04,0x00,0x00,0x00,0x68,0x61,0x73,0x68,0x00,0x00,0x00,0x00,0xA8,0xEC,0xFF,0xFF, - 0x00,0x00,0x00,0x07,0x01,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x74,0x65,0x73,0x74,0x68,0x61,0x73,0x68, - 0x73,0x33,0x32,0x5F,0x66,0x6E,0x76,0x31,0x00,0x00,0x00,0x00,0x2E,0xFC,0xFF,0xFF,0x0F,0x00,0x22,0x00, - 0x48,0x00,0x00,0x00,0x34,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x28,0xF1,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00, - 0x02,0x00,0x00,0x00,0x31,0x35,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0xC4,0xEF,0xFF,0xFF, - 0x00,0x00,0x00,0x02,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x74,0x65,0x73,0x74, - 0x62,0x6F,0x6F,0x6C,0x00,0x00,0x00,0x00,0xA4,0xFB,0xFF,0xFF,0x00,0x00,0x00,0x01,0x0E,0x00,0x20,0x00, - 0x48,0x00,0x00,0x00,0x34,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x8C,0xF1,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00, - 0x02,0x00,0x00,0x00,0x31,0x34,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0x54,0xEE,0xFF,0xFF, - 0x00,0x00,0x00,0x0F,0x03,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x74,0x65,0x73,0x74, - 0x65,0x6D,0x70,0x74,0x79,0x00,0x00,0x00,0x08,0xFC,0xFF,0xFF,0x00,0x00,0x00,0x01,0x0D,0x00,0x1E,0x00, - 0x78,0x00,0x00,0x00,0x68,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x02,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0xF4,0xF1,0xFF,0xFF,0x14,0x00,0x00,0x00, - 0x04,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x4D,0x6F,0x6E,0x73,0x74,0x65,0x72,0x00,0x11,0x00,0x00,0x00, - 0x6E,0x65,0x73,0x74,0x65,0x64,0x5F,0x66,0x6C,0x61,0x74,0x62,0x75,0x66,0x66,0x65,0x72,0x00,0x00,0x00, - 0x24,0xF2,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x31,0x33,0x00,0x00, - 0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0x20,0xFC,0xFF,0xFF,0x00,0x00,0x0E,0x04,0x01,0x00,0x00,0x00, - 0x14,0x00,0x00,0x00,0x74,0x65,0x73,0x74,0x6E,0x65,0x73,0x74,0x65,0x64,0x66,0x6C,0x61,0x74,0x62,0x75, - 0x66,0x66,0x65,0x72,0x00,0x00,0x00,0x00,0xA8,0xFC,0xFF,0xFF,0x00,0x00,0x00,0x01,0x0C,0x00,0x1C,0x00, - 0x48,0x00,0x00,0x00,0x34,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x90,0xF2,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00, - 0x02,0x00,0x00,0x00,0x31,0x32,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0x58,0xEF,0xFF,0xFF, - 0x00,0x00,0x00,0x0F,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x65,0x6E,0x65,0x6D, - 0x79,0x00,0x00,0x00,0x08,0xFD,0xFF,0xFF,0x00,0x00,0x00,0x01,0x0B,0x00,0x1A,0x00,0xB4,0x00,0x00,0x00, - 0xA0,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x1C,0x00,0x00,0x00, - 0x04,0x00,0x00,0x00,0x0E,0x00,0x00,0x00,0x20,0x6D,0x75,0x6C,0x74,0x69,0x6C,0x69,0x6E,0x65,0x20,0x74, - 0x6F,0x6F,0x00,0x00,0x49,0x00,0x00,0x00,0x20,0x61,0x6E,0x20,0x65,0x78,0x61,0x6D,0x70,0x6C,0x65,0x20, - 0x64,0x6F,0x63,0x75,0x6D,0x65,0x6E,0x74,0x61,0x74,0x69,0x6F,0x6E,0x20,0x63,0x6F,0x6D,0x6D,0x65,0x6E, - 0x74,0x3A,0x20,0x74,0x68,0x69,0x73,0x20,0x77,0x69,0x6C,0x6C,0x20,0x65,0x6E,0x64,0x20,0x75,0x70,0x20, - 0x69,0x6E,0x20,0x74,0x68,0x65,0x20,0x67,0x65,0x6E,0x65,0x72,0x61,0x74,0x65,0x64,0x20,0x63,0x6F,0x64, - 0x65,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x5C,0xF3,0xFF,0xFF,0x10,0x00,0x00,0x00, - 0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x31,0x31,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00, - 0x2C,0xFF,0xFF,0xFF,0x00,0x00,0x0E,0x0F,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x11,0x00,0x00,0x00, - 0x74,0x65,0x73,0x74,0x61,0x72,0x72,0x61,0x79,0x6F,0x66,0x74,0x61,0x62,0x6C,0x65,0x73,0x00,0x00,0x00, - 0xE0,0xFD,0xFF,0xFF,0x00,0x00,0x00,0x01,0x0A,0x00,0x18,0x00,0x44,0x00,0x00,0x00,0x34,0x00,0x00,0x00, + 0x04,0x00,0x00,0x00,0x14,0xF0,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00, + 0x31,0x37,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0x30,0xF0,0xFF,0xFF,0x14,0x00,0x00,0x00, + 0x04,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x66,0x6E,0x76,0x31,0x5F,0x33,0x32,0x00,0x04,0x00,0x00,0x00, + 0x68,0x61,0x73,0x68,0x00,0x00,0x00,0x00,0x1C,0xEC,0xFF,0xFF,0x00,0x00,0x00,0x08,0x01,0x00,0x00,0x00, + 0x10,0x00,0x00,0x00,0x74,0x65,0x73,0x74,0x68,0x61,0x73,0x68,0x75,0x33,0x32,0x5F,0x66,0x6E,0x76,0x31, + 0x00,0x00,0x00,0x00,0xA2,0xFB,0xFF,0xFF,0x10,0x00,0x24,0x00,0x6C,0x00,0x00,0x00,0x5C,0x00,0x00,0x00, + 0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x24,0x00,0x00,0x00, + 0x04,0x00,0x00,0x00,0xA0,0xF0,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00, + 0x31,0x36,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0xBC,0xF0,0xFF,0xFF,0x14,0x00,0x00,0x00, + 0x04,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x66,0x6E,0x76,0x31,0x5F,0x33,0x32,0x00,0x04,0x00,0x00,0x00, + 0x68,0x61,0x73,0x68,0x00,0x00,0x00,0x00,0xA8,0xEC,0xFF,0xFF,0x00,0x00,0x00,0x07,0x01,0x00,0x00,0x00, + 0x10,0x00,0x00,0x00,0x74,0x65,0x73,0x74,0x68,0x61,0x73,0x68,0x73,0x33,0x32,0x5F,0x66,0x6E,0x76,0x31, + 0x00,0x00,0x00,0x00,0x2E,0xFC,0xFF,0xFF,0x0F,0x00,0x22,0x00,0x48,0x00,0x00,0x00,0x34,0x00,0x00,0x00, 0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00, - 0xC8,0xF3,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x31,0x30,0x00,0x00, - 0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0xC4,0xFD,0xFF,0xFF,0x00,0x00,0x0E,0x0D,0x04,0x00,0x00,0x00, - 0x11,0x00,0x00,0x00,0x74,0x65,0x73,0x74,0x61,0x72,0x72,0x61,0x79,0x6F,0x66,0x73,0x74,0x72,0x69,0x6E, - 0x67,0x00,0x00,0x00,0x48,0xFE,0xFF,0xFF,0x00,0x00,0x00,0x01,0x09,0x00,0x16,0x00,0x58,0x00,0x00,0x00, + 0x28,0xF1,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x31,0x35,0x00,0x00, + 0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0xC4,0xEF,0xFF,0xFF,0x00,0x00,0x00,0x02,0x01,0x00,0x00,0x00, + 0x01,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x74,0x65,0x73,0x74,0x62,0x6F,0x6F,0x6C,0x00,0x00,0x00,0x00, + 0xA4,0xFB,0xFF,0xFF,0x00,0x00,0x00,0x01,0x0E,0x00,0x20,0x00,0x48,0x00,0x00,0x00,0x34,0x00,0x00,0x00, + 0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00, + 0x8C,0xF1,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x31,0x34,0x00,0x00, + 0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0x54,0xEE,0xFF,0xFF,0x00,0x00,0x00,0x0F,0x03,0x00,0x00,0x00, + 0x01,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x74,0x65,0x73,0x74,0x65,0x6D,0x70,0x74,0x79,0x00,0x00,0x00, + 0x08,0xFC,0xFF,0xFF,0x00,0x00,0x00,0x01,0x0D,0x00,0x1E,0x00,0x78,0x00,0x00,0x00,0x68,0x00,0x00,0x00, + 0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x38,0x00,0x00,0x00, + 0x04,0x00,0x00,0x00,0xF4,0xF1,0xFF,0xFF,0x14,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x07,0x00,0x00,0x00, + 0x4D,0x6F,0x6E,0x73,0x74,0x65,0x72,0x00,0x11,0x00,0x00,0x00,0x6E,0x65,0x73,0x74,0x65,0x64,0x5F,0x66, + 0x6C,0x61,0x74,0x62,0x75,0x66,0x66,0x65,0x72,0x00,0x00,0x00,0x24,0xF2,0xFF,0xFF,0x10,0x00,0x00,0x00, + 0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x31,0x33,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00, + 0x20,0xFC,0xFF,0xFF,0x00,0x00,0x0E,0x04,0x01,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x74,0x65,0x73,0x74, + 0x6E,0x65,0x73,0x74,0x65,0x64,0x66,0x6C,0x61,0x74,0x62,0x75,0x66,0x66,0x65,0x72,0x00,0x00,0x00,0x00, + 0xA8,0xFC,0xFF,0xFF,0x00,0x00,0x00,0x01,0x0C,0x00,0x1C,0x00,0x48,0x00,0x00,0x00,0x34,0x00,0x00,0x00, + 0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00, + 0x90,0xF2,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x31,0x32,0x00,0x00, + 0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0x58,0xEF,0xFF,0xFF,0x00,0x00,0x00,0x0F,0x01,0x00,0x00,0x00, + 0x01,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x65,0x6E,0x65,0x6D,0x79,0x00,0x00,0x00,0x08,0xFD,0xFF,0xFF, + 0x00,0x00,0x00,0x01,0x0B,0x00,0x1A,0x00,0xB4,0x00,0x00,0x00,0xA0,0x00,0x00,0x00,0x78,0x00,0x00,0x00, + 0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x1C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x0E,0x00,0x00,0x00, + 0x20,0x6D,0x75,0x6C,0x74,0x69,0x6C,0x69,0x6E,0x65,0x20,0x74,0x6F,0x6F,0x00,0x00,0x49,0x00,0x00,0x00, + 0x20,0x61,0x6E,0x20,0x65,0x78,0x61,0x6D,0x70,0x6C,0x65,0x20,0x64,0x6F,0x63,0x75,0x6D,0x65,0x6E,0x74, + 0x61,0x74,0x69,0x6F,0x6E,0x20,0x63,0x6F,0x6D,0x6D,0x65,0x6E,0x74,0x3A,0x20,0x74,0x68,0x69,0x73,0x20, + 0x77,0x69,0x6C,0x6C,0x20,0x65,0x6E,0x64,0x20,0x75,0x70,0x20,0x69,0x6E,0x20,0x74,0x68,0x65,0x20,0x67, + 0x65,0x6E,0x65,0x72,0x61,0x74,0x65,0x64,0x20,0x63,0x6F,0x64,0x65,0x00,0x00,0x00,0x01,0x00,0x00,0x00, + 0x04,0x00,0x00,0x00,0x5C,0xF3,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00, + 0x31,0x31,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0x2C,0xFF,0xFF,0xFF,0x00,0x00,0x0E,0x0F, + 0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x11,0x00,0x00,0x00,0x74,0x65,0x73,0x74,0x61,0x72,0x72,0x61, + 0x79,0x6F,0x66,0x74,0x61,0x62,0x6C,0x65,0x73,0x00,0x00,0x00,0xE0,0xFD,0xFF,0xFF,0x00,0x00,0x00,0x01, + 0x0A,0x00,0x18,0x00,0x44,0x00,0x00,0x00,0x34,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0xC8,0xF3,0xFF,0xFF,0x10,0x00,0x00,0x00, + 0x04,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x31,0x30,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00, + 0xC4,0xFD,0xFF,0xFF,0x00,0x00,0x0E,0x0D,0x04,0x00,0x00,0x00,0x11,0x00,0x00,0x00,0x74,0x65,0x73,0x74, + 0x61,0x72,0x72,0x61,0x79,0x6F,0x66,0x73,0x74,0x72,0x69,0x6E,0x67,0x00,0x00,0x00,0x48,0xFE,0xFF,0xFF, + 0x00,0x00,0x00,0x01,0x09,0x00,0x16,0x00,0x58,0x00,0x00,0x00,0x44,0x00,0x00,0x00,0x0C,0x00,0x00,0x00, + 0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x30,0xF4,0xFF,0xFF, + 0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x39,0x00,0x00,0x00,0x02,0x00,0x00,0x00, + 0x69,0x64,0x00,0x00,0x10,0x00,0x10,0x00,0x06,0x00,0x07,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x0C,0x00, + 0x10,0x00,0x00,0x00,0x00,0x00,0x0E,0x0F,0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x05,0x00,0x00,0x00, + 0x74,0x65,0x73,0x74,0x34,0x00,0x00,0x00,0xB8,0xFE,0xFF,0xFF,0x00,0x00,0x00,0x01,0x08,0x00,0x14,0x00, + 0x48,0x00,0x00,0x00,0x34,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0xA0,0xF4,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00, + 0x01,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0x68,0xF1,0xFF,0xFF, + 0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x74,0x65,0x73,0x74, + 0x00,0x00,0x1A,0x00,0x18,0x00,0x08,0x00,0x0C,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x10,0x00,0x14,0x00,0x1A,0x00,0x00,0x00,0x07,0x00,0x12,0x00,0x4C,0x00,0x00,0x00, + 0x34,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00, + 0x04,0x00,0x00,0x00,0x14,0xF5,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x01,0x00,0x00,0x00, + 0x37,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0x90,0xF4,0xFF,0xFF,0x00,0x00,0x00,0x01, + 0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x74,0x65,0x73,0x74, + 0x5F,0x74,0x79,0x70,0x65,0x00,0x00,0x00,0x42,0xFD,0xFF,0xFF,0x06,0x00,0x10,0x00,0x58,0x00,0x00,0x00, + 0x40,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x84,0xF5,0xFF,0xFF, + 0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x36,0x00,0x00,0x00,0x02,0x00,0x00,0x00, + 0x69,0x64,0x00,0x00,0x00,0xF5,0xFF,0xFF,0x00,0x00,0x00,0x04,0x03,0x00,0x00,0x00,0x01,0x00,0x00,0x00, + 0x01,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x63,0x6F,0x6C,0x6F,0x72,0x00,0x00,0x00,0x1C,0x00,0x1C,0x00, + 0x0C,0x00,0x10,0x00,0x08,0x00,0x0A,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x14,0x00, + 0x18,0x00,0x07,0x00,0x1C,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x05,0x00,0x0E,0x00,0x54,0x00,0x00,0x00, 0x44,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00, - 0x04,0x00,0x00,0x00,0x30,0xF4,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x01,0x00,0x00,0x00, - 0x39,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0x10,0x00,0x10,0x00,0x06,0x00,0x07,0x00, - 0x08,0x00,0x00,0x00,0x00,0x00,0x0C,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x0E,0x0F,0x06,0x00,0x00,0x00, - 0x04,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x74,0x65,0x73,0x74,0x34,0x00,0x00,0x00,0xB8,0xFE,0xFF,0xFF, - 0x00,0x00,0x00,0x01,0x08,0x00,0x14,0x00,0x48,0x00,0x00,0x00,0x34,0x00,0x00,0x00,0x0C,0x00,0x00,0x00, - 0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0xA0,0xF4,0xFF,0xFF, - 0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x02,0x00,0x00,0x00, - 0x69,0x64,0x00,0x00,0x68,0xF1,0xFF,0xFF,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00, - 0x04,0x00,0x00,0x00,0x74,0x65,0x73,0x74,0x00,0x00,0x1A,0x00,0x18,0x00,0x08,0x00,0x0C,0x00,0x04,0x00, - 0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x14,0x00,0x1A,0x00,0x00,0x00, - 0x07,0x00,0x12,0x00,0x4C,0x00,0x00,0x00,0x34,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x14,0xF5,0xFF,0xFF,0x10,0x00,0x00,0x00, - 0x04,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x37,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00, - 0x90,0xF4,0xFF,0xFF,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00, - 0x09,0x00,0x00,0x00,0x74,0x65,0x73,0x74,0x5F,0x74,0x79,0x70,0x65,0x00,0x00,0x00,0x42,0xFD,0xFF,0xFF, - 0x06,0x00,0x10,0x00,0x58,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x10,0x00,0x00,0x00, - 0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00, - 0x04,0x00,0x00,0x00,0x84,0xF5,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x01,0x00,0x00,0x00, - 0x36,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0x00,0xF5,0xFF,0xFF,0x00,0x00,0x00,0x04, - 0x03,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x63,0x6F,0x6C,0x6F, - 0x72,0x00,0x00,0x00,0x1C,0x00,0x1C,0x00,0x0C,0x00,0x10,0x00,0x08,0x00,0x0A,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x14,0x00,0x18,0x00,0x07,0x00,0x1C,0x00,0x00,0x00,0x00,0x00,0x00,0x01, - 0x05,0x00,0x0E,0x00,0x54,0x00,0x00,0x00,0x44,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x04,0xF6,0xFF,0xFF,0x10,0x00,0x00,0x00, - 0x04,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x35,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00, - 0x10,0x00,0x0C,0x00,0x06,0x00,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x10,0x00,0x00,0x00, - 0x00,0x00,0x0E,0x04,0x01,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x69,0x6E,0x76,0x65,0x6E,0x74,0x6F,0x72, - 0x79,0x00,0x1A,0x00,0x1C,0x00,0x0C,0x00,0x10,0x00,0x08,0x00,0x0A,0x00,0x00,0x00,0x00,0x00,0x07,0x00, - 0x00,0x00,0x00,0x00,0x14,0x00,0x18,0x00,0x1A,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x04,0x00,0x0C,0x00, - 0x98,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x03,0x00,0x00,0x00,0x4C,0x00,0x00,0x00,0x2C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x94,0xF6,0xFF,0xFF, - 0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x31,0x00,0x00,0x00,0x08,0x00,0x00,0x00, - 0x70,0x72,0x69,0x6F,0x72,0x69,0x74,0x79,0x00,0x00,0x00,0x00,0xB8,0xF6,0xFF,0xFF,0x10,0x00,0x00,0x00, - 0x04,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x34,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00, - 0xD4,0xF6,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x30,0x00,0x00,0x00, - 0x0A,0x00,0x00,0x00,0x64,0x65,0x70,0x72,0x65,0x63,0x61,0x74,0x65,0x64,0x00,0x00,0x78,0xF5,0xFF,0xFF, - 0x00,0x00,0x00,0x02,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x66,0x72,0x69,0x65, - 0x6E,0x64,0x6C,0x79,0x00,0x00,0x1A,0x00,0x1C,0x00,0x0C,0x00,0x10,0x00,0x08,0x00,0x0A,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x06,0x00,0x07,0x00,0x14,0x00,0x18,0x00,0x1A,0x00,0x00,0x00,0x00,0x00,0x01,0x01, - 0x03,0x00,0x0A,0x00,0x64,0x00,0x00,0x00,0x54,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x5C,0xF7,0xFF,0xFF, - 0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x03,0x00,0x00,0x00, - 0x6B,0x65,0x79,0x00,0x78,0xF7,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x01,0x00,0x00,0x00, - 0x33,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0x5C,0xF3,0xFF,0xFF,0x00,0x00,0x00,0x0D, - 0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x6E,0x61,0x6D,0x65,0x00,0x00,0x00,0x00,0x9A,0xFF,0xFF,0xFF, - 0x02,0x00,0x08,0x00,0x54,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x10,0x00,0x00,0x00, - 0x64,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00, - 0x04,0x00,0x00,0x00,0xDC,0xF7,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x01,0x00,0x00,0x00, - 0x32,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0x78,0xF6,0xFF,0xFF,0x00,0x00,0x00,0x05, - 0x02,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x68,0x70,0x00,0x00,0x00,0x00,0x1A,0x00, - 0x24,0x00,0x08,0x00,0x0C,0x00,0x04,0x00,0x06,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x10,0x00,0x14,0x00,0x1A,0x00,0x00,0x00,0x01,0x00,0x06,0x00,0x54,0x00,0x00,0x00,0x40,0x00,0x00,0x00, - 0x18,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x96,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x5C,0xF8,0xFF,0xFF,0x10,0x00,0x00,0x00, - 0x04,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x31,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00, - 0xF8,0xF6,0xFF,0xFF,0x00,0x00,0x00,0x05,0x02,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00, - 0x6D,0x61,0x6E,0x61,0x00,0x00,0x00,0x00,0x1C,0x00,0x18,0x00,0x08,0x00,0x0C,0x00,0x00,0x00,0x06,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x14,0x00,0x05,0x00,0x1C,0x00,0x00,0x00, - 0x00,0x01,0x04,0x00,0x48,0x00,0x00,0x00,0x34,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0xD4,0xF8,0xFF,0xFF,0x10,0x00,0x00,0x00, - 0x04,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00, - 0x9C,0xF5,0xFF,0xFF,0x00,0x00,0x00,0x0F,0x09,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x03,0x00,0x00,0x00, - 0x70,0x6F,0x73,0x00,0x44,0xF6,0xFF,0xFF,0x20,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x01,0x00,0x00,0x00, - 0x08,0x00,0x00,0x00,0xE0,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x3C,0x00,0x00,0x00, - 0x19,0x00,0x00,0x00,0x4D,0x79,0x47,0x61,0x6D,0x65,0x2E,0x45,0x78,0x61,0x6D,0x70,0x6C,0x65,0x2E,0x52, - 0x65,0x66,0x65,0x72,0x72,0x61,0x62,0x6C,0x65,0x00,0x1A,0x00,0x18,0x00,0x08,0x00,0x0C,0x00,0x00,0x00, - 0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x00,0x10,0x00,0x14,0x00,0x1A,0x00,0x00,0x00, - 0x00,0x01,0x04,0x00,0x74,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x8C,0xF9,0xFF,0xFF, + 0x04,0x00,0x00,0x00,0x04,0xF6,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x01,0x00,0x00,0x00, + 0x35,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0x10,0x00,0x0C,0x00,0x06,0x00,0x07,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x0E,0x04,0x01,0x00,0x00,0x00, + 0x09,0x00,0x00,0x00,0x69,0x6E,0x76,0x65,0x6E,0x74,0x6F,0x72,0x79,0x00,0x1A,0x00,0x1C,0x00,0x0C,0x00, + 0x10,0x00,0x08,0x00,0x0A,0x00,0x00,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x00,0x00,0x14,0x00,0x18,0x00, + 0x1A,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x04,0x00,0x0C,0x00,0x98,0x00,0x00,0x00,0x84,0x00,0x00,0x00, + 0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x4C,0x00,0x00,0x00, + 0x2C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x94,0xF6,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00, + 0x01,0x00,0x00,0x00,0x31,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x70,0x72,0x69,0x6F,0x72,0x69,0x74,0x79, + 0x00,0x00,0x00,0x00,0xB8,0xF6,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x01,0x00,0x00,0x00, + 0x34,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0xD4,0xF6,0xFF,0xFF,0x10,0x00,0x00,0x00, + 0x04,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x0A,0x00,0x00,0x00,0x64,0x65,0x70,0x72, + 0x65,0x63,0x61,0x74,0x65,0x64,0x00,0x00,0x78,0xF5,0xFF,0xFF,0x00,0x00,0x00,0x02,0x01,0x00,0x00,0x00, + 0x01,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x66,0x72,0x69,0x65,0x6E,0x64,0x6C,0x79,0x00,0x00,0x1A,0x00, + 0x1C,0x00,0x0C,0x00,0x10,0x00,0x08,0x00,0x0A,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x00,0x07,0x00, + 0x14,0x00,0x18,0x00,0x1A,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x03,0x00,0x0A,0x00,0x64,0x00,0x00,0x00, + 0x54,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00, + 0x24,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x5C,0xF7,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00, + 0x01,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x6B,0x65,0x79,0x00,0x78,0xF7,0xFF,0xFF, + 0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x33,0x00,0x00,0x00,0x02,0x00,0x00,0x00, + 0x69,0x64,0x00,0x00,0x5C,0xF3,0xFF,0xFF,0x00,0x00,0x00,0x0D,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00, + 0x6E,0x61,0x6D,0x65,0x00,0x00,0x00,0x00,0x9A,0xFF,0xFF,0xFF,0x02,0x00,0x08,0x00,0x54,0x00,0x00,0x00, + 0x40,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x64,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0xDC,0xF7,0xFF,0xFF, + 0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x02,0x00,0x00,0x00, + 0x69,0x64,0x00,0x00,0x78,0xF6,0xFF,0xFF,0x00,0x00,0x00,0x05,0x02,0x00,0x00,0x00,0x01,0x00,0x00,0x00, + 0x02,0x00,0x00,0x00,0x68,0x70,0x00,0x00,0x00,0x00,0x1A,0x00,0x24,0x00,0x08,0x00,0x0C,0x00,0x04,0x00, + 0x06,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x14,0x00,0x1A,0x00,0x00,0x00, + 0x01,0x00,0x06,0x00,0x54,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x10,0x00,0x00,0x00, + 0x96,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00, + 0x04,0x00,0x00,0x00,0x5C,0xF8,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x01,0x00,0x00,0x00, + 0x31,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0xF8,0xF6,0xFF,0xFF,0x00,0x00,0x00,0x05, + 0x02,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x6D,0x61,0x6E,0x61,0x00,0x00,0x00,0x00, + 0x1C,0x00,0x18,0x00,0x08,0x00,0x0C,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x10,0x00,0x14,0x00,0x05,0x00,0x1C,0x00,0x00,0x00,0x00,0x01,0x04,0x00,0x48,0x00,0x00,0x00, + 0x34,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00, + 0x04,0x00,0x00,0x00,0xD4,0xF8,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x01,0x00,0x00,0x00, + 0x30,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0x9C,0xF5,0xFF,0xFF,0x00,0x00,0x00,0x0F, + 0x09,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x70,0x6F,0x73,0x00,0x44,0xF6,0xFF,0xFF, + 0x20,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0xE0,0x08,0x00,0x00, + 0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x3C,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x4D,0x79,0x47,0x61, + 0x6D,0x65,0x2E,0x45,0x78,0x61,0x6D,0x70,0x6C,0x65,0x2E,0x52,0x65,0x66,0x65,0x72,0x72,0x61,0x62,0x6C, + 0x65,0x00,0x1A,0x00,0x18,0x00,0x08,0x00,0x0C,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x05,0x00,0x10,0x00,0x14,0x00,0x1A,0x00,0x00,0x00,0x00,0x01,0x04,0x00,0x74,0x00,0x00,0x00, + 0x60,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00, + 0x24,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x8C,0xF9,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00, + 0x01,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x6B,0x65,0x79,0x00,0xA8,0xF9,0xFF,0xFF, + 0x18,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x66,0x6E,0x76,0x31,0x61,0x5F,0x36,0x34, + 0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x68,0x61,0x73,0x68,0x00,0x00,0x00,0x00,0x50,0xF8,0xFF,0xFF, + 0x00,0x00,0x00,0x0A,0x08,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00, + 0x24,0xF7,0xFF,0xFF,0x28,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x08,0x00,0x00,0x00, + 0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0xCC,0x00,0x00,0x00, + 0x98,0x00,0x00,0x00,0x13,0x00,0x00,0x00,0x4D,0x79,0x47,0x61,0x6D,0x65,0x2E,0x45,0x78,0x61,0x6D,0x70, + 0x6C,0x65,0x2E,0x53,0x74,0x61,0x74,0x00,0x00,0x00,0x1A,0x00,0x1C,0x00,0x0C,0x00,0x10,0x00,0x08,0x00, + 0x0A,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x00,0x14,0x00,0x18,0x00,0x1A,0x00,0x00,0x00, + 0x00,0x00,0x00,0x01,0x02,0x00,0x08,0x00,0x48,0x00,0x00,0x00,0x34,0x00,0x00,0x00,0x0C,0x00,0x00,0x00, + 0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x70,0xFA,0xFF,0xFF, 0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x03,0x00,0x00,0x00, - 0x6B,0x65,0x79,0x00,0xA8,0xF9,0xFF,0xFF,0x18,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x08,0x00,0x00,0x00, - 0x66,0x6E,0x76,0x31,0x61,0x5F,0x36,0x34,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x68,0x61,0x73,0x68, - 0x00,0x00,0x00,0x00,0x50,0xF8,0xFF,0xFF,0x00,0x00,0x00,0x0A,0x08,0x00,0x00,0x00,0x01,0x00,0x00,0x00, - 0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0x24,0xF7,0xFF,0xFF,0x28,0x00,0x00,0x00,0x14,0x00,0x00,0x00, - 0x01,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00, - 0x40,0x00,0x00,0x00,0xCC,0x00,0x00,0x00,0x98,0x00,0x00,0x00,0x13,0x00,0x00,0x00,0x4D,0x79,0x47,0x61, - 0x6D,0x65,0x2E,0x45,0x78,0x61,0x6D,0x70,0x6C,0x65,0x2E,0x53,0x74,0x61,0x74,0x00,0x00,0x00,0x1A,0x00, - 0x1C,0x00,0x0C,0x00,0x10,0x00,0x08,0x00,0x0A,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x00, - 0x14,0x00,0x18,0x00,0x1A,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x00,0x08,0x00,0x48,0x00,0x00,0x00, + 0x6B,0x65,0x79,0x00,0x0C,0xF9,0xFF,0xFF,0x00,0x00,0x00,0x06,0x02,0x00,0x00,0x00,0x01,0x00,0x00,0x00, + 0x05,0x00,0x00,0x00,0x63,0x6F,0x75,0x6E,0x74,0x00,0x00,0x00,0x76,0xFB,0xFF,0xFF,0x01,0x00,0x06,0x00, + 0x20,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0xF9,0xFF,0xFF, + 0x00,0x00,0x00,0x09,0x08,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x76,0x61,0x6C,0x00, + 0xB8,0xF7,0xFF,0xFF,0x00,0x01,0x04,0x00,0x1C,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0xB8,0xF6,0xFF,0xFF,0x00,0x00,0x00,0x0D,0x01,0x00,0x00,0x00,0x02,0x00,0x00,0x00, + 0x69,0x64,0x00,0x00,0x88,0xF7,0xFF,0xFF,0x00,0x00,0x00,0x01,0x24,0x00,0x00,0x00,0x18,0x00,0x00,0x00, + 0x04,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0xDC,0x06,0x00,0x00,0x00,0x00,0x00,0x00, + 0x01,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x27,0x00,0x00,0x00,0x4D,0x79,0x47,0x61,0x6D,0x65,0x2E,0x45, + 0x78,0x61,0x6D,0x70,0x6C,0x65,0x2E,0x53,0x74,0x72,0x75,0x63,0x74,0x4F,0x66,0x53,0x74,0x72,0x75,0x63, + 0x74,0x73,0x4F,0x66,0x53,0x74,0x72,0x75,0x63,0x74,0x73,0x00,0xF4,0xFE,0xFF,0xFF,0x00,0x00,0x00,0x01, + 0x20,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0xF8,0xFF,0xFF, + 0x00,0x00,0x00,0x0F,0x04,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x61,0x00,0x00,0x00, + 0x10,0xF8,0xFF,0xFF,0x00,0x00,0x00,0x01,0x2C,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x04,0x00,0x00,0x00, + 0x14,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x54,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00, + 0xD0,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x1E,0x00,0x00,0x00,0x4D,0x79,0x47,0x61, + 0x6D,0x65,0x2E,0x45,0x78,0x61,0x6D,0x70,0x6C,0x65,0x2E,0x53,0x74,0x72,0x75,0x63,0x74,0x4F,0x66,0x53, + 0x74,0x72,0x75,0x63,0x74,0x73,0x00,0x00,0xCC,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x01,0x02,0x00,0x0C,0x00, + 0x20,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xAC,0xF8,0xFF,0xFF, + 0x00,0x00,0x00,0x0F,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x63,0x00,0x00,0x00, + 0x1C,0x00,0x18,0x00,0x0C,0x00,0x10,0x00,0x08,0x00,0x0A,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x14,0x00,0x07,0x00,0x1C,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x00,0x08,0x00, + 0x20,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFC,0xF8,0xFF,0xFF, + 0x00,0x00,0x00,0x0F,0x06,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x62,0x00,0x00,0x00, + 0x1C,0x00,0x14,0x00,0x08,0x00,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x10,0x00,0x07,0x00,0x1C,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x20,0x00,0x00,0x00, + 0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x48,0xF9,0xFF,0xFF,0x00,0x00,0x00,0x0F, + 0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0x38,0xF9,0xFF,0xFF, + 0x00,0x00,0x00,0x01,0x28,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x08,0x00,0x00,0x00, + 0x08,0x00,0x00,0x00,0x2C,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x24,0x00,0x00,0x00, + 0x6C,0x00,0x00,0x00,0x16,0x00,0x00,0x00,0x4D,0x79,0x47,0x61,0x6D,0x65,0x2E,0x45,0x78,0x61,0x6D,0x70, + 0x6C,0x65,0x2E,0x41,0x62,0x69,0x6C,0x69,0x74,0x79,0x00,0x00,0xCE,0xFD,0xFF,0xFF,0x01,0x00,0x04,0x00, + 0x1C,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0xF8,0xFF,0xFF, + 0x00,0x00,0x00,0x08,0x01,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x64,0x69,0x73,0x74,0x61,0x6E,0x63,0x65, + 0x00,0x00,0x1A,0x00,0x18,0x00,0x08,0x00,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x07,0x00,0x10,0x00,0x14,0x00,0x1A,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x44,0x00,0x00,0x00, 0x34,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00, - 0x04,0x00,0x00,0x00,0x70,0xFA,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x01,0x00,0x00,0x00, - 0x30,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x6B,0x65,0x79,0x00,0x0C,0xF9,0xFF,0xFF,0x00,0x00,0x00,0x06, - 0x02,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x63,0x6F,0x75,0x6E,0x74,0x00,0x00,0x00, - 0x76,0xFB,0xFF,0xFF,0x01,0x00,0x06,0x00,0x20,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x40,0xF9,0xFF,0xFF,0x00,0x00,0x00,0x09,0x08,0x00,0x00,0x00,0x01,0x00,0x00,0x00, - 0x03,0x00,0x00,0x00,0x76,0x61,0x6C,0x00,0xB8,0xF7,0xFF,0xFF,0x00,0x01,0x04,0x00,0x1C,0x00,0x00,0x00, - 0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xB8,0xF6,0xFF,0xFF,0x00,0x00,0x00,0x0D, - 0x01,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0x88,0xF7,0xFF,0xFF,0x00,0x00,0x00,0x01, - 0x24,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x08,0x00,0x00,0x00, - 0xDC,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x27,0x00,0x00,0x00, - 0x4D,0x79,0x47,0x61,0x6D,0x65,0x2E,0x45,0x78,0x61,0x6D,0x70,0x6C,0x65,0x2E,0x53,0x74,0x72,0x75,0x63, - 0x74,0x4F,0x66,0x53,0x74,0x72,0x75,0x63,0x74,0x73,0x4F,0x66,0x53,0x74,0x72,0x75,0x63,0x74,0x73,0x00, - 0xF4,0xFE,0xFF,0xFF,0x00,0x00,0x00,0x01,0x20,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x20,0xF8,0xFF,0xFF,0x00,0x00,0x00,0x0F,0x04,0x00,0x00,0x00,0x01,0x00,0x00,0x00, - 0x01,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0x10,0xF8,0xFF,0xFF,0x00,0x00,0x00,0x01,0x2C,0x00,0x00,0x00, - 0x18,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x54,0x06,0x00,0x00, - 0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0xD0,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x28,0x00,0x00,0x00, - 0x1E,0x00,0x00,0x00,0x4D,0x79,0x47,0x61,0x6D,0x65,0x2E,0x45,0x78,0x61,0x6D,0x70,0x6C,0x65,0x2E,0x53, - 0x74,0x72,0x75,0x63,0x74,0x4F,0x66,0x53,0x74,0x72,0x75,0x63,0x74,0x73,0x00,0x00,0xCC,0xFF,0xFF,0xFF, - 0x00,0x00,0x00,0x01,0x02,0x00,0x0C,0x00,0x20,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0xAC,0xF8,0xFF,0xFF,0x00,0x00,0x00,0x0F,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00, - 0x01,0x00,0x00,0x00,0x63,0x00,0x00,0x00,0x1C,0x00,0x18,0x00,0x0C,0x00,0x10,0x00,0x08,0x00,0x0A,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x14,0x00,0x07,0x00,0x1C,0x00,0x00,0x00, - 0x00,0x00,0x00,0x01,0x01,0x00,0x08,0x00,0x20,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0xFC,0xF8,0xFF,0xFF,0x00,0x00,0x00,0x0F,0x06,0x00,0x00,0x00,0x01,0x00,0x00,0x00, - 0x01,0x00,0x00,0x00,0x62,0x00,0x00,0x00,0x1C,0x00,0x14,0x00,0x08,0x00,0x0C,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x07,0x00,0x1C,0x00,0x00,0x00, - 0x00,0x00,0x00,0x01,0x20,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x48,0xF9,0xFF,0xFF,0x00,0x00,0x00,0x0F,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00, - 0x61,0x00,0x00,0x00,0x38,0xF9,0xFF,0xFF,0x00,0x00,0x00,0x01,0x28,0x00,0x00,0x00,0x18,0x00,0x00,0x00, - 0x04,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x2C,0x05,0x00,0x00,0x00,0x00,0x00,0x00, - 0x02,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x6C,0x00,0x00,0x00,0x16,0x00,0x00,0x00,0x4D,0x79,0x47,0x61, - 0x6D,0x65,0x2E,0x45,0x78,0x61,0x6D,0x70,0x6C,0x65,0x2E,0x41,0x62,0x69,0x6C,0x69,0x74,0x79,0x00,0x00, - 0xCE,0xFD,0xFF,0xFF,0x01,0x00,0x04,0x00,0x1C,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0xE0,0xF8,0xFF,0xFF,0x00,0x00,0x00,0x08,0x01,0x00,0x00,0x00,0x08,0x00,0x00,0x00, - 0x64,0x69,0x73,0x74,0x61,0x6E,0x63,0x65,0x00,0x00,0x1A,0x00,0x18,0x00,0x08,0x00,0x0C,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x00,0x10,0x00,0x14,0x00,0x1A,0x00,0x00,0x00, - 0x00,0x00,0x00,0x01,0x44,0x00,0x00,0x00,0x34,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x70,0xFD,0xFF,0xFF,0x10,0x00,0x00,0x00, - 0x04,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x6B,0x65,0x79,0x00, - 0x54,0xF9,0xFF,0xFF,0x00,0x00,0x00,0x08,0x01,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00, - 0x14,0x00,0x24,0x00,0x08,0x00,0x0C,0x00,0x07,0x00,0x10,0x00,0x14,0x00,0x18,0x00,0x1C,0x00,0x20,0x00, - 0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x68,0x00,0x00,0x00,0x48,0x00,0x00,0x00,0x08,0x00,0x00,0x00, - 0x20,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x28,0x04,0x00,0x00,0x00,0x00,0x00,0x00, - 0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0xE4,0xFD,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00, - 0x01,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x0B,0x00,0x00,0x00,0x66,0x6F,0x72,0x63,0x65,0x5F,0x61,0x6C, - 0x69,0x67,0x6E,0x00,0x06,0x00,0x00,0x00,0xC4,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0x48,0x00,0x00,0x00, - 0x60,0x01,0x00,0x00,0x30,0x01,0x00,0x00,0xE4,0x00,0x00,0x00,0x13,0x00,0x00,0x00,0x4D,0x79,0x47,0x61, - 0x6D,0x65,0x2E,0x45,0x78,0x61,0x6D,0x70,0x6C,0x65,0x2E,0x56,0x65,0x63,0x33,0x00,0x00,0x00,0x1E,0x00, - 0x18,0x00,0x0C,0x00,0x10,0x00,0x06,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x14,0x00,0x05,0x00,0x0A,0x00,0x1E,0x00,0x00,0x00,0x00,0x01,0x05,0x00,0x1A,0x00,0x02,0x00, - 0x20,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x24,0xFB,0xFF,0xFF, - 0x00,0x00,0x00,0x0F,0x06,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x74,0x65,0x73,0x74, - 0x33,0x00,0x00,0x00,0x7A,0xFD,0xFF,0xFF,0x00,0x00,0x04,0x00,0x18,0x00,0x01,0x00,0x24,0x00,0x00,0x00, - 0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0xFE,0xFF,0xFF,0x00,0x00,0x00,0x04, - 0x03,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x74,0x65,0x73,0x74, - 0x32,0x00,0x00,0x00,0x9E,0xFF,0xFF,0xFF,0x03,0x00,0x10,0x00,0x20,0x00,0x00,0x00,0x0C,0x00,0x00,0x00, - 0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x68,0xFD,0xFF,0xFF,0x00,0x00,0x00,0x0C,0x08,0x00,0x00,0x00, - 0x01,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x74,0x65,0x73,0x74,0x31,0x00,0x00,0x00,0xEA,0xFD,0xFF,0xFF, - 0x00,0x00,0x02,0x00,0x08,0x00,0x04,0x00,0x1C,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0xE8,0xFA,0xFF,0xFF,0x00,0x00,0x00,0x0B,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00, - 0x7A,0x00,0x1A,0x00,0x14,0x00,0x08,0x00,0x0C,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x1A,0x00,0x00,0x00,0x01,0x00,0x04,0x00,0x1C,0x00,0x00,0x00, - 0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2C,0xFB,0xFF,0xFF,0x00,0x00,0x00,0x0B, - 0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x79,0x00,0x00,0x00,0x6E,0xFB,0xFF,0xFF,0x1C,0x00,0x00,0x00, - 0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x54,0xFB,0xFF,0xFF,0x00,0x00,0x00,0x0B, - 0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0x14,0x00,0x1C,0x00,0x04,0x00,0x08,0x00, - 0x00,0x00,0x0C,0x00,0x00,0x00,0x10,0x00,0x14,0x00,0x18,0x00,0x14,0x00,0x00,0x00,0x80,0x00,0x00,0x00, - 0x74,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x30,0x02,0x00,0x00, - 0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0xE0,0xFF,0xFF,0xFF, - 0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x07,0x00,0x00,0x00, - 0x70,0x72,0x69,0x76,0x61,0x74,0x65,0x00,0x08,0x00,0x0C,0x00,0x04,0x00,0x08,0x00,0x08,0x00,0x00,0x00, - 0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x0E,0x00,0x00,0x00, - 0x63,0x73,0x68,0x61,0x72,0x70,0x5F,0x70,0x61,0x72,0x74,0x69,0x61,0x6C,0x00,0x00,0x01,0x00,0x00,0x00, - 0x4C,0x00,0x00,0x00,0x26,0x00,0x00,0x00,0x4D,0x79,0x47,0x61,0x6D,0x65,0x2E,0x45,0x78,0x61,0x6D,0x70, - 0x6C,0x65,0x2E,0x54,0x65,0x73,0x74,0x53,0x69,0x6D,0x70,0x6C,0x65,0x54,0x61,0x62,0x6C,0x65,0x57,0x69, - 0x74,0x68,0x45,0x6E,0x75,0x6D,0x00,0x00,0x00,0x00,0x1A,0x00,0x1C,0x00,0x08,0x00,0x0C,0x00,0x00,0x00, - 0x06,0x00,0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x1A,0x00,0x00,0x00, - 0x00,0x00,0x04,0x00,0x3C,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x02,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x14,0x00,0x07,0x00,0x00,0x00,0x08,0x00,0x00,0x00, - 0x0C,0x00,0x10,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x03,0x00,0x00,0x00,0x01,0x00,0x00,0x00, - 0x01,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x63,0x6F,0x6C,0x6F,0x72,0x00,0x00,0x00,0x54,0xFD,0xFF,0xFF, - 0x00,0x00,0x00,0x01,0x28,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x04,0x00,0x00,0x00, - 0x08,0x00,0x00,0x00,0x10,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x74,0x00,0x00,0x00, - 0x3C,0x00,0x00,0x00,0x13,0x00,0x00,0x00,0x4D,0x79,0x47,0x61,0x6D,0x65,0x2E,0x45,0x78,0x61,0x6D,0x70, - 0x6C,0x65,0x2E,0x54,0x65,0x73,0x74,0x00,0x00,0x00,0x1E,0x00,0x18,0x00,0x0C,0x00,0x10,0x00,0x06,0x00, - 0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x0A,0x00, - 0x1E,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x00,0x01,0x00,0x20,0x00,0x00,0x00,0x0C,0x00,0x00,0x00, - 0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xD4,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x03,0x01,0x00,0x00,0x00, - 0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x62,0x00,0x00,0x00,0x62,0xFD,0xFF,0xFF,0x30,0x00,0x00,0x00, + 0x04,0x00,0x00,0x00,0x70,0xFD,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x01,0x00,0x00,0x00, + 0x30,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x6B,0x65,0x79,0x00,0x54,0xF9,0xFF,0xFF,0x00,0x00,0x00,0x08, + 0x01,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x69,0x64,0x00,0x00,0x14,0x00,0x24,0x00,0x08,0x00,0x0C,0x00, + 0x07,0x00,0x10,0x00,0x14,0x00,0x18,0x00,0x1C,0x00,0x20,0x00,0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x01, + 0x68,0x00,0x00,0x00,0x48,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x10,0x00,0x00,0x00, + 0x08,0x00,0x00,0x00,0x28,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00, + 0xE4,0xFD,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x38,0x00,0x00,0x00, + 0x0B,0x00,0x00,0x00,0x66,0x6F,0x72,0x63,0x65,0x5F,0x61,0x6C,0x69,0x67,0x6E,0x00,0x06,0x00,0x00,0x00, + 0xC4,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0x48,0x00,0x00,0x00,0x60,0x01,0x00,0x00,0x30,0x01,0x00,0x00, + 0xE4,0x00,0x00,0x00,0x13,0x00,0x00,0x00,0x4D,0x79,0x47,0x61,0x6D,0x65,0x2E,0x45,0x78,0x61,0x6D,0x70, + 0x6C,0x65,0x2E,0x56,0x65,0x63,0x33,0x00,0x00,0x00,0x1E,0x00,0x18,0x00,0x0C,0x00,0x10,0x00,0x06,0x00, + 0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x14,0x00,0x05,0x00,0x0A,0x00, + 0x1E,0x00,0x00,0x00,0x00,0x01,0x05,0x00,0x1A,0x00,0x02,0x00,0x20,0x00,0x00,0x00,0x0C,0x00,0x00,0x00, + 0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x24,0xFB,0xFF,0xFF,0x00,0x00,0x00,0x0F,0x06,0x00,0x00,0x00, + 0x01,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x74,0x65,0x73,0x74,0x33,0x00,0x00,0x00,0x7A,0xFD,0xFF,0xFF, + 0x00,0x00,0x04,0x00,0x18,0x00,0x01,0x00,0x24,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x10,0xFE,0xFF,0xFF,0x00,0x00,0x00,0x04,0x03,0x00,0x00,0x00,0x01,0x00,0x00,0x00, + 0x01,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x74,0x65,0x73,0x74,0x32,0x00,0x00,0x00,0x9E,0xFF,0xFF,0xFF, + 0x03,0x00,0x10,0x00,0x20,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x68,0xFD,0xFF,0xFF,0x00,0x00,0x00,0x0C,0x08,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x05,0x00,0x00,0x00, + 0x74,0x65,0x73,0x74,0x31,0x00,0x00,0x00,0xEA,0xFD,0xFF,0xFF,0x00,0x00,0x02,0x00,0x08,0x00,0x04,0x00, + 0x1C,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE8,0xFA,0xFF,0xFF, + 0x00,0x00,0x00,0x0B,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x7A,0x00,0x1A,0x00,0x14,0x00,0x08,0x00, + 0x0C,0x00,0x04,0x00,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00, + 0x1A,0x00,0x00,0x00,0x01,0x00,0x04,0x00,0x1C,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x2C,0xFB,0xFF,0xFF,0x00,0x00,0x00,0x0B,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00, + 0x79,0x00,0x00,0x00,0x6E,0xFB,0xFF,0xFF,0x1C,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x54,0xFB,0xFF,0xFF,0x00,0x00,0x00,0x0B,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00, + 0x78,0x00,0x00,0x00,0x14,0x00,0x1C,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x10,0x00, + 0x14,0x00,0x18,0x00,0x14,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x74,0x00,0x00,0x00,0x01,0x00,0x00,0x00, + 0x10,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x30,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00, + 0x30,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0xE0,0xFF,0xFF,0xFF,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00, + 0x01,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x70,0x72,0x69,0x76,0x61,0x74,0x65,0x00, + 0x08,0x00,0x0C,0x00,0x04,0x00,0x08,0x00,0x08,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00, + 0x01,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x0E,0x00,0x00,0x00,0x63,0x73,0x68,0x61,0x72,0x70,0x5F,0x70, + 0x61,0x72,0x74,0x69,0x61,0x6C,0x00,0x00,0x01,0x00,0x00,0x00,0x4C,0x00,0x00,0x00,0x26,0x00,0x00,0x00, + 0x4D,0x79,0x47,0x61,0x6D,0x65,0x2E,0x45,0x78,0x61,0x6D,0x70,0x6C,0x65,0x2E,0x54,0x65,0x73,0x74,0x53, + 0x69,0x6D,0x70,0x6C,0x65,0x54,0x61,0x62,0x6C,0x65,0x57,0x69,0x74,0x68,0x45,0x6E,0x75,0x6D,0x00,0x00, + 0x00,0x00,0x1A,0x00,0x1C,0x00,0x08,0x00,0x0C,0x00,0x00,0x00,0x06,0x00,0x14,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x1A,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x3C,0x00,0x00,0x00, + 0x24,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x10,0x00,0x14,0x00,0x07,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x0C,0x00,0x10,0x00,0x10,0x00,0x00,0x00, + 0x00,0x00,0x00,0x04,0x03,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x05,0x00,0x00,0x00, + 0x63,0x6F,0x6C,0x6F,0x72,0x00,0x00,0x00,0x54,0xFD,0xFF,0xFF,0x00,0x00,0x00,0x01,0x28,0x00,0x00,0x00, + 0x18,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x10,0x01,0x00,0x00, + 0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x74,0x00,0x00,0x00,0x3C,0x00,0x00,0x00,0x13,0x00,0x00,0x00, + 0x4D,0x79,0x47,0x61,0x6D,0x65,0x2E,0x45,0x78,0x61,0x6D,0x70,0x6C,0x65,0x2E,0x54,0x65,0x73,0x74,0x00, + 0x00,0x00,0x1E,0x00,0x18,0x00,0x0C,0x00,0x10,0x00,0x06,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x0A,0x00,0x1E,0x00,0x00,0x00,0x00,0x00,0x01,0x00, + 0x02,0x00,0x01,0x00,0x20,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0xD4,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x03,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00, + 0x62,0x00,0x00,0x00,0x62,0xFD,0xFF,0xFF,0x30,0x00,0x00,0x00,0x1C,0x00,0x00,0x00,0x04,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x10,0x00,0x10,0x00,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x0C,0x00, + 0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x02,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00, + 0x61,0x00,0x00,0x00,0xE4,0xFE,0xFF,0xFF,0x1C,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x01,0x00,0x00,0x00, + 0x08,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x17,0x00,0x00,0x00, + 0x4D,0x79,0x47,0x61,0x6D,0x65,0x2E,0x45,0x78,0x61,0x6D,0x70,0x6C,0x65,0x32,0x2E,0x4D,0x6F,0x6E,0x73, + 0x74,0x65,0x72,0x00,0x20,0xFF,0xFF,0xFF,0x34,0x00,0x00,0x00,0x2C,0x00,0x00,0x00,0x01,0x00,0x00,0x00, + 0x20,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x12,0x00,0x00,0x00,0x2F,0x2F,0x6D,0x6F,0x6E,0x73,0x74,0x65, + 0x72,0x5F,0x74,0x65,0x73,0x74,0x2E,0x66,0x62,0x73,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x18,0x00,0x00,0x00,0x4D,0x79,0x47,0x61,0x6D,0x65,0x2E,0x49,0x6E,0x50,0x61,0x72,0x65,0x6E,0x74,0x4E, + 0x61,0x6D,0x65,0x73,0x70,0x61,0x63,0x65,0x00,0x00,0x00,0x00,0x78,0xFF,0xFF,0xFF,0x48,0x00,0x00,0x00, + 0x3C,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x20,0x00,0x00,0x00, + 0x2F,0x2F,0x69,0x6E,0x63,0x6C,0x75,0x64,0x65,0x5F,0x74,0x65,0x73,0x74,0x2F,0x69,0x6E,0x63,0x6C,0x75, + 0x64,0x65,0x5F,0x74,0x65,0x73,0x74,0x31,0x2E,0x66,0x62,0x73,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x01,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x54,0x61,0x62,0x6C,0x65,0x41,0x00,0x00, + 0x74,0xFF,0xFF,0xFF,0x00,0x01,0x04,0x00,0x20,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x58,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x0F,0x0C,0x00,0x00,0x00,0x01,0x00,0x00,0x00, + 0x01,0x00,0x00,0x00,0x62,0x00,0x00,0x00,0x14,0x00,0x18,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x0C,0x00, + 0x00,0x00,0x00,0x00,0x10,0x00,0x14,0x00,0x14,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x14,0x00,0x00,0x00, + 0x01,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0xC4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00, + 0x44,0x00,0x00,0x00,0x1C,0x00,0x00,0x00,0x4D,0x79,0x47,0x61,0x6D,0x65,0x2E,0x4F,0x74,0x68,0x65,0x72, + 0x4E,0x61,0x6D,0x65,0x53,0x70,0x61,0x63,0x65,0x2E,0x54,0x61,0x62,0x6C,0x65,0x42,0x00,0x00,0x00,0x00, + 0x1C,0x00,0x14,0x00,0x08,0x00,0x0C,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x10,0x00,0x05,0x00,0x1C,0x00,0x00,0x00,0x00,0x01,0x04,0x00,0x30,0x00,0x00,0x00, 0x1C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x10,0x00,0x07,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x08,0x00,0x0C,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x02,0x00,0x00,0x00, - 0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0xE4,0xFE,0xFF,0xFF,0x1C,0x00,0x00,0x00, - 0x14,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x17,0x00,0x00,0x00,0x4D,0x79,0x47,0x61,0x6D,0x65,0x2E,0x45,0x78,0x61,0x6D,0x70, - 0x6C,0x65,0x32,0x2E,0x4D,0x6F,0x6E,0x73,0x74,0x65,0x72,0x00,0x20,0xFF,0xFF,0xFF,0x34,0x00,0x00,0x00, - 0x2C,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x12,0x00,0x00,0x00, - 0x2F,0x2F,0x6D,0x6F,0x6E,0x73,0x74,0x65,0x72,0x5F,0x74,0x65,0x73,0x74,0x2E,0x66,0x62,0x73,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x4D,0x79,0x47,0x61,0x6D,0x65,0x2E,0x49, - 0x6E,0x50,0x61,0x72,0x65,0x6E,0x74,0x4E,0x61,0x6D,0x65,0x73,0x70,0x61,0x63,0x65,0x00,0x00,0x00,0x00, - 0x78,0xFF,0xFF,0xFF,0x48,0x00,0x00,0x00,0x3C,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x30,0x00,0x00,0x00, - 0x04,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x2F,0x2F,0x69,0x6E,0x63,0x6C,0x75,0x64,0x65,0x5F,0x74,0x65, - 0x73,0x74,0x2F,0x69,0x6E,0x63,0x6C,0x75,0x64,0x65,0x5F,0x74,0x65,0x73,0x74,0x31,0x2E,0x66,0x62,0x73, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x06,0x00,0x00,0x00, - 0x54,0x61,0x62,0x6C,0x65,0x41,0x00,0x00,0x74,0xFF,0xFF,0xFF,0x00,0x01,0x04,0x00,0x20,0x00,0x00,0x00, - 0x0C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x58,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x0F, - 0x0C,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x62,0x00,0x00,0x00,0x14,0x00,0x18,0x00, - 0x04,0x00,0x08,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x14,0x00,0x14,0x00,0x00,0x00, - 0x20,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0xC4,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x44,0x00,0x00,0x00,0x1C,0x00,0x00,0x00,0x4D,0x79,0x47,0x61, - 0x6D,0x65,0x2E,0x4F,0x74,0x68,0x65,0x72,0x4E,0x61,0x6D,0x65,0x53,0x70,0x61,0x63,0x65,0x2E,0x54,0x61, - 0x62,0x6C,0x65,0x42,0x00,0x00,0x00,0x00,0x1C,0x00,0x14,0x00,0x08,0x00,0x0C,0x00,0x00,0x00,0x06,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x05,0x00,0x1C,0x00,0x00,0x00, - 0x00,0x01,0x04,0x00,0x30,0x00,0x00,0x00,0x1C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x10,0x00,0x10,0x00,0x07,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x0C,0x00,0x10,0x00,0x00,0x00, - 0x00,0x00,0x00,0x0F,0x0E,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x61,0x00,0x00,0x00, - 0x14,0x00,0x20,0x00,0x08,0x00,0x0C,0x00,0x07,0x00,0x10,0x00,0x14,0x00,0x00,0x00,0x18,0x00,0x1C,0x00, - 0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x50,0x00,0x00,0x00,0x44,0x00,0x00,0x00,0x04,0x00,0x00,0x00, - 0x04,0x00,0x00,0x00,0x34,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x2F,0x2F,0x69,0x6E, - 0x63,0x6C,0x75,0x64,0x65,0x5F,0x74,0x65,0x73,0x74,0x2F,0x73,0x75,0x62,0x2F,0x69,0x6E,0x63,0x6C,0x75, - 0x64,0x65,0x5F,0x74,0x65,0x73,0x74,0x32,0x2E,0x66,0x62,0x73,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x01,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x1C,0x00,0x00,0x00,0x4D,0x79,0x47,0x61,0x6D,0x65,0x2E,0x4F, - 0x74,0x68,0x65,0x72,0x4E,0x61,0x6D,0x65,0x53,0x70,0x61,0x63,0x65,0x2E,0x55,0x6E,0x75,0x73,0x65,0x64, - 0x00,0x00,0x1A,0x00,0x10,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x00,0x1A,0x00,0x00,0x00,0x2C,0x00,0x00,0x00,0x1C,0x00,0x00,0x00, - 0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x0C,0x00,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x08,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00, - 0x61,0x00,0x00,0x00 + 0x08,0x00,0x00,0x00,0x00,0x00,0x0C,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x0E,0x00,0x00,0x00, + 0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0x14,0x00,0x20,0x00,0x08,0x00,0x0C,0x00, + 0x07,0x00,0x10,0x00,0x14,0x00,0x00,0x00,0x18,0x00,0x1C,0x00,0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x01, + 0x50,0x00,0x00,0x00,0x44,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x34,0x00,0x00,0x00, + 0x04,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x2F,0x2F,0x69,0x6E,0x63,0x6C,0x75,0x64,0x65,0x5F,0x74,0x65, + 0x73,0x74,0x2F,0x73,0x75,0x62,0x2F,0x69,0x6E,0x63,0x6C,0x75,0x64,0x65,0x5F,0x74,0x65,0x73,0x74,0x32, + 0x2E,0x66,0x62,0x73,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x40,0x00,0x00,0x00, + 0x1C,0x00,0x00,0x00,0x4D,0x79,0x47,0x61,0x6D,0x65,0x2E,0x4F,0x74,0x68,0x65,0x72,0x4E,0x61,0x6D,0x65, + 0x53,0x70,0x61,0x63,0x65,0x2E,0x55,0x6E,0x75,0x73,0x65,0x64,0x00,0x00,0x1A,0x00,0x10,0x00,0x04,0x00, + 0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x00, + 0x1A,0x00,0x00,0x00,0x2C,0x00,0x00,0x00,0x1C,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x10,0x00,0x0C,0x00,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x10,0x00,0x00,0x00, + 0x00,0x00,0x00,0x07,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x61,0x00,0x00,0x00 }; return bfbsData; } static size_t size() { - return 14784; + return 15736; } const uint8_t *begin() { return data(); diff --git a/tests/monster_test_generated.h b/tests/monster_test_generated.h index fd6387c8b2..ce5acf8357 100644 --- a/tests/monster_test_generated.h +++ b/tests/monster_test_generated.h @@ -1309,6 +1309,14 @@ struct MonsterT : public flatbuffers::NativeTable { MyGame::Example::Test native_inline{}; MyGame::Example::LongEnum long_enum_non_enum_default = static_cast(0); MyGame::Example::LongEnum long_enum_normal_default = MyGame::Example::LongEnum_LongOne; + float nan_default = std::numeric_limits::quiet_NaN(); + float inf_default = std::numeric_limits::infinity(); + float positive_inf_default = std::numeric_limits::infinity(); + float infinity_default = std::numeric_limits::infinity(); + float positive_infinity_default = std::numeric_limits::infinity(); + float negative_inf_default = -std::numeric_limits::infinity(); + float negative_infinity_default = -std::numeric_limits::infinity(); + double double_inf_default = std::numeric_limits::infinity(); MonsterT() = default; MonsterT(const MonsterT &o); MonsterT(MonsterT&&) FLATBUFFERS_NOEXCEPT = default; @@ -1375,7 +1383,15 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { VT_SCALAR_KEY_SORTED_TABLES = 104, VT_NATIVE_INLINE = 106, VT_LONG_ENUM_NON_ENUM_DEFAULT = 108, - VT_LONG_ENUM_NORMAL_DEFAULT = 110 + VT_LONG_ENUM_NORMAL_DEFAULT = 110, + VT_NAN_DEFAULT = 112, + VT_INF_DEFAULT = 114, + VT_POSITIVE_INF_DEFAULT = 116, + VT_INFINITY_DEFAULT = 118, + VT_POSITIVE_INFINITY_DEFAULT = 120, + VT_NEGATIVE_INF_DEFAULT = 122, + VT_NEGATIVE_INFINITY_DEFAULT = 124, + VT_DOUBLE_INF_DEFAULT = 126 }; const MyGame::Example::Vec3 *pos() const { return GetStruct(VT_POS); @@ -1732,6 +1748,54 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { bool mutate_long_enum_normal_default(MyGame::Example::LongEnum _long_enum_normal_default = static_cast(2ULL)) { return SetField(VT_LONG_ENUM_NORMAL_DEFAULT, static_cast(_long_enum_normal_default), 2ULL); } + float nan_default() const { + return GetField(VT_NAN_DEFAULT, std::numeric_limits::quiet_NaN()); + } + bool mutate_nan_default(float _nan_default = std::numeric_limits::quiet_NaN()) { + return SetField(VT_NAN_DEFAULT, _nan_default, std::numeric_limits::quiet_NaN()); + } + float inf_default() const { + return GetField(VT_INF_DEFAULT, std::numeric_limits::infinity()); + } + bool mutate_inf_default(float _inf_default = std::numeric_limits::infinity()) { + return SetField(VT_INF_DEFAULT, _inf_default, std::numeric_limits::infinity()); + } + float positive_inf_default() const { + return GetField(VT_POSITIVE_INF_DEFAULT, std::numeric_limits::infinity()); + } + bool mutate_positive_inf_default(float _positive_inf_default = std::numeric_limits::infinity()) { + return SetField(VT_POSITIVE_INF_DEFAULT, _positive_inf_default, std::numeric_limits::infinity()); + } + float infinity_default() const { + return GetField(VT_INFINITY_DEFAULT, std::numeric_limits::infinity()); + } + bool mutate_infinity_default(float _infinity_default = std::numeric_limits::infinity()) { + return SetField(VT_INFINITY_DEFAULT, _infinity_default, std::numeric_limits::infinity()); + } + float positive_infinity_default() const { + return GetField(VT_POSITIVE_INFINITY_DEFAULT, std::numeric_limits::infinity()); + } + bool mutate_positive_infinity_default(float _positive_infinity_default = std::numeric_limits::infinity()) { + return SetField(VT_POSITIVE_INFINITY_DEFAULT, _positive_infinity_default, std::numeric_limits::infinity()); + } + float negative_inf_default() const { + return GetField(VT_NEGATIVE_INF_DEFAULT, -std::numeric_limits::infinity()); + } + bool mutate_negative_inf_default(float _negative_inf_default = -std::numeric_limits::infinity()) { + return SetField(VT_NEGATIVE_INF_DEFAULT, _negative_inf_default, -std::numeric_limits::infinity()); + } + float negative_infinity_default() const { + return GetField(VT_NEGATIVE_INFINITY_DEFAULT, -std::numeric_limits::infinity()); + } + bool mutate_negative_infinity_default(float _negative_infinity_default = -std::numeric_limits::infinity()) { + return SetField(VT_NEGATIVE_INFINITY_DEFAULT, _negative_infinity_default, -std::numeric_limits::infinity()); + } + double double_inf_default() const { + return GetField(VT_DOUBLE_INF_DEFAULT, std::numeric_limits::infinity()); + } + bool mutate_double_inf_default(double _double_inf_default = std::numeric_limits::infinity()) { + return SetField(VT_DOUBLE_INF_DEFAULT, _double_inf_default, std::numeric_limits::infinity()); + } bool Verify(flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_POS, 8) && @@ -1823,6 +1887,14 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { VerifyField(verifier, VT_NATIVE_INLINE, 2) && VerifyField(verifier, VT_LONG_ENUM_NON_ENUM_DEFAULT, 8) && VerifyField(verifier, VT_LONG_ENUM_NORMAL_DEFAULT, 8) && + VerifyField(verifier, VT_NAN_DEFAULT, 4) && + VerifyField(verifier, VT_INF_DEFAULT, 4) && + VerifyField(verifier, VT_POSITIVE_INF_DEFAULT, 4) && + VerifyField(verifier, VT_INFINITY_DEFAULT, 4) && + VerifyField(verifier, VT_POSITIVE_INFINITY_DEFAULT, 4) && + VerifyField(verifier, VT_NEGATIVE_INF_DEFAULT, 4) && + VerifyField(verifier, VT_NEGATIVE_INFINITY_DEFAULT, 4) && + VerifyField(verifier, VT_DOUBLE_INF_DEFAULT, 8) && verifier.EndTable(); } MonsterT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; @@ -2017,6 +2089,30 @@ struct MonsterBuilder { void add_long_enum_normal_default(MyGame::Example::LongEnum long_enum_normal_default) { fbb_.AddElement(Monster::VT_LONG_ENUM_NORMAL_DEFAULT, static_cast(long_enum_normal_default), 2ULL); } + void add_nan_default(float nan_default) { + fbb_.AddElement(Monster::VT_NAN_DEFAULT, nan_default, std::numeric_limits::quiet_NaN()); + } + void add_inf_default(float inf_default) { + fbb_.AddElement(Monster::VT_INF_DEFAULT, inf_default, std::numeric_limits::infinity()); + } + void add_positive_inf_default(float positive_inf_default) { + fbb_.AddElement(Monster::VT_POSITIVE_INF_DEFAULT, positive_inf_default, std::numeric_limits::infinity()); + } + void add_infinity_default(float infinity_default) { + fbb_.AddElement(Monster::VT_INFINITY_DEFAULT, infinity_default, std::numeric_limits::infinity()); + } + void add_positive_infinity_default(float positive_infinity_default) { + fbb_.AddElement(Monster::VT_POSITIVE_INFINITY_DEFAULT, positive_infinity_default, std::numeric_limits::infinity()); + } + void add_negative_inf_default(float negative_inf_default) { + fbb_.AddElement(Monster::VT_NEGATIVE_INF_DEFAULT, negative_inf_default, -std::numeric_limits::infinity()); + } + void add_negative_infinity_default(float negative_infinity_default) { + fbb_.AddElement(Monster::VT_NEGATIVE_INFINITY_DEFAULT, negative_infinity_default, -std::numeric_limits::infinity()); + } + void add_double_inf_default(double double_inf_default) { + fbb_.AddElement(Monster::VT_DOUBLE_INF_DEFAULT, double_inf_default, std::numeric_limits::infinity()); + } explicit MonsterBuilder(flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); @@ -2083,8 +2179,17 @@ inline flatbuffers::Offset CreateMonster( flatbuffers::Offset>> scalar_key_sorted_tables = 0, const MyGame::Example::Test *native_inline = nullptr, MyGame::Example::LongEnum long_enum_non_enum_default = static_cast(0), - MyGame::Example::LongEnum long_enum_normal_default = MyGame::Example::LongEnum_LongOne) { + MyGame::Example::LongEnum long_enum_normal_default = MyGame::Example::LongEnum_LongOne, + float nan_default = std::numeric_limits::quiet_NaN(), + float inf_default = std::numeric_limits::infinity(), + float positive_inf_default = std::numeric_limits::infinity(), + float infinity_default = std::numeric_limits::infinity(), + float positive_infinity_default = std::numeric_limits::infinity(), + float negative_inf_default = -std::numeric_limits::infinity(), + float negative_infinity_default = -std::numeric_limits::infinity(), + double double_inf_default = std::numeric_limits::infinity()) { MonsterBuilder builder_(_fbb); + builder_.add_double_inf_default(double_inf_default); builder_.add_long_enum_normal_default(long_enum_normal_default); builder_.add_long_enum_non_enum_default(long_enum_non_enum_default); builder_.add_non_owning_reference(non_owning_reference); @@ -2094,6 +2199,13 @@ inline flatbuffers::Offset CreateMonster( builder_.add_testhashs64_fnv1a(testhashs64_fnv1a); builder_.add_testhashu64_fnv1(testhashu64_fnv1); builder_.add_testhashs64_fnv1(testhashs64_fnv1); + builder_.add_negative_infinity_default(negative_infinity_default); + builder_.add_negative_inf_default(negative_inf_default); + builder_.add_positive_infinity_default(positive_infinity_default); + builder_.add_infinity_default(infinity_default); + builder_.add_positive_inf_default(positive_inf_default); + builder_.add_inf_default(inf_default); + builder_.add_nan_default(nan_default); builder_.add_native_inline(native_inline); builder_.add_scalar_key_sorted_tables(scalar_key_sorted_tables); builder_.add_testrequirednestedflatbuffer(testrequirednestedflatbuffer); @@ -2195,7 +2307,15 @@ inline flatbuffers::Offset CreateMonsterDirect( std::vector> *scalar_key_sorted_tables = nullptr, const MyGame::Example::Test *native_inline = nullptr, MyGame::Example::LongEnum long_enum_non_enum_default = static_cast(0), - MyGame::Example::LongEnum long_enum_normal_default = MyGame::Example::LongEnum_LongOne) { + MyGame::Example::LongEnum long_enum_normal_default = MyGame::Example::LongEnum_LongOne, + float nan_default = std::numeric_limits::quiet_NaN(), + float inf_default = std::numeric_limits::infinity(), + float positive_inf_default = std::numeric_limits::infinity(), + float infinity_default = std::numeric_limits::infinity(), + float positive_infinity_default = std::numeric_limits::infinity(), + float negative_inf_default = -std::numeric_limits::infinity(), + float negative_infinity_default = -std::numeric_limits::infinity(), + double double_inf_default = std::numeric_limits::infinity()) { auto name__ = name ? _fbb.CreateString(name) : 0; auto inventory__ = inventory ? _fbb.CreateVector(*inventory) : 0; auto test4__ = test4 ? _fbb.CreateVectorOfStructs(*test4) : 0; @@ -2271,7 +2391,15 @@ inline flatbuffers::Offset CreateMonsterDirect( scalar_key_sorted_tables__, native_inline, long_enum_non_enum_default, - long_enum_normal_default); + long_enum_normal_default, + nan_default, + inf_default, + positive_inf_default, + infinity_default, + positive_infinity_default, + negative_inf_default, + negative_infinity_default, + double_inf_default); } flatbuffers::Offset CreateMonster(flatbuffers::FlatBufferBuilder &_fbb, const MonsterT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); @@ -2767,7 +2895,15 @@ inline bool operator==(const MonsterT &lhs, const MonsterT &rhs) { (lhs.scalar_key_sorted_tables.size() == rhs.scalar_key_sorted_tables.size() && std::equal(lhs.scalar_key_sorted_tables.cbegin(), lhs.scalar_key_sorted_tables.cend(), rhs.scalar_key_sorted_tables.cbegin(), [](flatbuffers::unique_ptr const &a, flatbuffers::unique_ptr const &b) { return (a == b) || (a && b && *a == *b); })) && (lhs.native_inline == rhs.native_inline) && (lhs.long_enum_non_enum_default == rhs.long_enum_non_enum_default) && - (lhs.long_enum_normal_default == rhs.long_enum_normal_default); + (lhs.long_enum_normal_default == rhs.long_enum_normal_default) && + (lhs.nan_default == rhs.nan_default) && + (lhs.inf_default == rhs.inf_default) && + (lhs.positive_inf_default == rhs.positive_inf_default) && + (lhs.infinity_default == rhs.infinity_default) && + (lhs.positive_infinity_default == rhs.positive_infinity_default) && + (lhs.negative_inf_default == rhs.negative_inf_default) && + (lhs.negative_infinity_default == rhs.negative_infinity_default) && + (lhs.double_inf_default == rhs.double_inf_default); } inline bool operator!=(const MonsterT &lhs, const MonsterT &rhs) { @@ -2820,7 +2956,15 @@ inline MonsterT::MonsterT(const MonsterT &o) testrequirednestedflatbuffer(o.testrequirednestedflatbuffer), native_inline(o.native_inline), long_enum_non_enum_default(o.long_enum_non_enum_default), - long_enum_normal_default(o.long_enum_normal_default) { + long_enum_normal_default(o.long_enum_normal_default), + nan_default(o.nan_default), + inf_default(o.inf_default), + positive_inf_default(o.positive_inf_default), + infinity_default(o.infinity_default), + positive_infinity_default(o.positive_infinity_default), + negative_inf_default(o.negative_inf_default), + negative_infinity_default(o.negative_infinity_default), + double_inf_default(o.double_inf_default) { testarrayoftables.reserve(o.testarrayoftables.size()); for (const auto &testarrayoftables_ : o.testarrayoftables) { testarrayoftables.emplace_back((testarrayoftables_) ? new MyGame::Example::MonsterT(*testarrayoftables_) : nullptr); } vector_of_referrables.reserve(o.vector_of_referrables.size()); @@ -2884,6 +3028,14 @@ inline MonsterT &MonsterT::operator=(MonsterT o) FLATBUFFERS_NOEXCEPT { std::swap(native_inline, o.native_inline); std::swap(long_enum_non_enum_default, o.long_enum_non_enum_default); std::swap(long_enum_normal_default, o.long_enum_normal_default); + std::swap(nan_default, o.nan_default); + std::swap(inf_default, o.inf_default); + std::swap(positive_inf_default, o.positive_inf_default); + std::swap(infinity_default, o.infinity_default); + std::swap(positive_infinity_default, o.positive_infinity_default); + std::swap(negative_inf_default, o.negative_inf_default); + std::swap(negative_infinity_default, o.negative_infinity_default); + std::swap(double_inf_default, o.double_inf_default); return *this; } @@ -2949,6 +3101,14 @@ inline void Monster::UnPackTo(MonsterT *_o, const flatbuffers::resolver_function { auto _e = native_inline(); if (_e) _o->native_inline = *_e; } { auto _e = long_enum_non_enum_default(); _o->long_enum_non_enum_default = _e; } { auto _e = long_enum_normal_default(); _o->long_enum_normal_default = _e; } + { auto _e = nan_default(); _o->nan_default = _e; } + { auto _e = inf_default(); _o->inf_default = _e; } + { auto _e = positive_inf_default(); _o->positive_inf_default = _e; } + { auto _e = infinity_default(); _o->infinity_default = _e; } + { auto _e = positive_infinity_default(); _o->positive_infinity_default = _e; } + { auto _e = negative_inf_default(); _o->negative_inf_default = _e; } + { auto _e = negative_infinity_default(); _o->negative_infinity_default = _e; } + { auto _e = double_inf_default(); _o->double_inf_default = _e; } } inline flatbuffers::Offset Monster::Pack(flatbuffers::FlatBufferBuilder &_fbb, const MonsterT* _o, const flatbuffers::rehasher_function_t *_rehasher) { @@ -3012,6 +3172,14 @@ inline flatbuffers::Offset CreateMonster(flatbuffers::FlatBufferBuilder auto _native_inline = &_o->native_inline; auto _long_enum_non_enum_default = _o->long_enum_non_enum_default; auto _long_enum_normal_default = _o->long_enum_normal_default; + auto _nan_default = _o->nan_default; + auto _inf_default = _o->inf_default; + auto _positive_inf_default = _o->positive_inf_default; + auto _infinity_default = _o->infinity_default; + auto _positive_infinity_default = _o->positive_infinity_default; + auto _negative_inf_default = _o->negative_inf_default; + auto _negative_infinity_default = _o->negative_infinity_default; + auto _double_inf_default = _o->double_inf_default; return MyGame::Example::CreateMonster( _fbb, _pos, @@ -3066,7 +3234,15 @@ inline flatbuffers::Offset CreateMonster(flatbuffers::FlatBufferBuilder _scalar_key_sorted_tables, _native_inline, _long_enum_non_enum_default, - _long_enum_normal_default); + _long_enum_normal_default, + _nan_default, + _inf_default, + _positive_inf_default, + _infinity_default, + _positive_infinity_default, + _negative_inf_default, + _negative_infinity_default, + _double_inf_default); } @@ -3846,7 +4022,15 @@ inline const flatbuffers::TypeTable *MonsterTypeTable() { { flatbuffers::ET_SEQUENCE, 1, 5 }, { flatbuffers::ET_SEQUENCE, 0, 3 }, { flatbuffers::ET_ULONG, 0, 12 }, - { flatbuffers::ET_ULONG, 0, 12 } + { flatbuffers::ET_ULONG, 0, 12 }, + { flatbuffers::ET_FLOAT, 0, -1 }, + { flatbuffers::ET_FLOAT, 0, -1 }, + { flatbuffers::ET_FLOAT, 0, -1 }, + { flatbuffers::ET_FLOAT, 0, -1 }, + { flatbuffers::ET_FLOAT, 0, -1 }, + { flatbuffers::ET_FLOAT, 0, -1 }, + { flatbuffers::ET_FLOAT, 0, -1 }, + { flatbuffers::ET_DOUBLE, 0, -1 } }; static const flatbuffers::TypeFunction type_refs[] = { MyGame::Example::Vec3TypeTable, @@ -3917,10 +4101,18 @@ inline const flatbuffers::TypeTable *MonsterTypeTable() { "scalar_key_sorted_tables", "native_inline", "long_enum_non_enum_default", - "long_enum_normal_default" + "long_enum_normal_default", + "nan_default", + "inf_default", + "positive_inf_default", + "infinity_default", + "positive_infinity_default", + "negative_inf_default", + "negative_infinity_default", + "double_inf_default" }; static const flatbuffers::TypeTable tt = { - flatbuffers::ST_TABLE, 54, type_codes, type_refs, nullptr, nullptr, names + flatbuffers::ST_TABLE, 62, type_codes, type_refs, nullptr, nullptr, names }; return &tt; } diff --git a/tests/monster_test_generated.lobster b/tests/monster_test_generated.lobster index c3ee785e75..d6390fd8b1 100644 --- a/tests/monster_test_generated.lobster +++ b/tests/monster_test_generated.lobster @@ -425,13 +425,29 @@ class Monster : flatbuffers_handle return LongEnum(buf_.flatbuffers_field_uint64(pos_, 108, 0)) def long_enum_normal_default() -> LongEnum: return LongEnum(buf_.flatbuffers_field_uint64(pos_, 110, 2)) + def nan_default() -> float: + return buf_.flatbuffers_field_float32(pos_, 112, nan) + def inf_default() -> float: + return buf_.flatbuffers_field_float32(pos_, 114, inf) + def positive_inf_default() -> float: + return buf_.flatbuffers_field_float32(pos_, 116, +inf) + def infinity_default() -> float: + return buf_.flatbuffers_field_float32(pos_, 118, infinity) + def positive_infinity_default() -> float: + return buf_.flatbuffers_field_float32(pos_, 120, +infinity) + def negative_inf_default() -> float: + return buf_.flatbuffers_field_float32(pos_, 122, -inf) + def negative_infinity_default() -> float: + return buf_.flatbuffers_field_float32(pos_, 124, -infinity) + def double_inf_default() -> float: + return buf_.flatbuffers_field_float64(pos_, 126, inf) def GetRootAsMonster(buf:string): return Monster { buf, buf.flatbuffers_indirect(0) } struct MonsterBuilder: b_:flatbuffers_builder def start(): - b_.StartObject(54) + b_.StartObject(62) return this def add_pos(pos:flatbuffers_offset): b_.PrependStructSlot(0, pos) @@ -592,6 +608,30 @@ struct MonsterBuilder: def add_long_enum_normal_default(long_enum_normal_default:LongEnum): b_.PrependUint64Slot(53, long_enum_normal_default, 2) return this + def add_nan_default(nan_default:float): + b_.PrependFloat32Slot(54, nan_default, nan) + return this + def add_inf_default(inf_default:float): + b_.PrependFloat32Slot(55, inf_default, inf) + return this + def add_positive_inf_default(positive_inf_default:float): + b_.PrependFloat32Slot(56, positive_inf_default, +inf) + return this + def add_infinity_default(infinity_default:float): + b_.PrependFloat32Slot(57, infinity_default, infinity) + return this + def add_positive_infinity_default(positive_infinity_default:float): + b_.PrependFloat32Slot(58, positive_infinity_default, +infinity) + return this + def add_negative_inf_default(negative_inf_default:float): + b_.PrependFloat32Slot(59, negative_inf_default, -inf) + return this + def add_negative_infinity_default(negative_infinity_default:float): + b_.PrependFloat32Slot(60, negative_infinity_default, -infinity) + return this + def add_double_inf_default(double_inf_default:float): + b_.PrependFloat64Slot(61, double_inf_default, inf) + return this def end(): return b_.EndObject() diff --git a/tests/monster_test_generated.py b/tests/monster_test_generated.py index 55209a0023..b70c31a2fb 100644 --- a/tests/monster_test_generated.py +++ b/tests/monster_test_generated.py @@ -1615,7 +1615,63 @@ def LongEnumNormalDefault(self): return self._tab.Get(flatbuffers.number_types.Uint64Flags, o + self._tab.Pos) return 2 -def MonsterStart(builder): builder.StartObject(54) + # Monster + def NanDefault(self): + o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(112)) + if o != 0: + return self._tab.Get(flatbuffers.number_types.Float32Flags, o + self._tab.Pos) + return float('nan') + + # Monster + def InfDefault(self): + o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(114)) + if o != 0: + return self._tab.Get(flatbuffers.number_types.Float32Flags, o + self._tab.Pos) + return float('inf') + + # Monster + def PositiveInfDefault(self): + o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(116)) + if o != 0: + return self._tab.Get(flatbuffers.number_types.Float32Flags, o + self._tab.Pos) + return float('inf') + + # Monster + def InfinityDefault(self): + o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(118)) + if o != 0: + return self._tab.Get(flatbuffers.number_types.Float32Flags, o + self._tab.Pos) + return float('inf') + + # Monster + def PositiveInfinityDefault(self): + o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(120)) + if o != 0: + return self._tab.Get(flatbuffers.number_types.Float32Flags, o + self._tab.Pos) + return float('inf') + + # Monster + def NegativeInfDefault(self): + o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(122)) + if o != 0: + return self._tab.Get(flatbuffers.number_types.Float32Flags, o + self._tab.Pos) + return float('-inf') + + # Monster + def NegativeInfinityDefault(self): + o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(124)) + if o != 0: + return self._tab.Get(flatbuffers.number_types.Float32Flags, o + self._tab.Pos) + return float('-inf') + + # Monster + def DoubleInfDefault(self): + o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(126)) + if o != 0: + return self._tab.Get(flatbuffers.number_types.Float64Flags, o + self._tab.Pos) + return float('inf') + +def MonsterStart(builder): builder.StartObject(62) def MonsterAddPos(builder, pos): builder.PrependStructSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(pos), 0) def MonsterAddMana(builder, mana): builder.PrependInt16Slot(1, mana, 150) def MonsterAddHp(builder, hp): builder.PrependInt16Slot(2, hp, 100) @@ -1699,6 +1755,14 @@ def MonsterStartScalarKeySortedTablesVector(builder, numElems): return builder.S def MonsterAddNativeInline(builder, nativeInline): builder.PrependStructSlot(51, flatbuffers.number_types.UOffsetTFlags.py_type(nativeInline), 0) def MonsterAddLongEnumNonEnumDefault(builder, longEnumNonEnumDefault): builder.PrependUint64Slot(52, longEnumNonEnumDefault, 0) def MonsterAddLongEnumNormalDefault(builder, longEnumNormalDefault): builder.PrependUint64Slot(53, longEnumNormalDefault, 2) +def MonsterAddNanDefault(builder, nanDefault): builder.PrependFloat32Slot(54, nanDefault, float('nan')) +def MonsterAddInfDefault(builder, infDefault): builder.PrependFloat32Slot(55, infDefault, float('inf')) +def MonsterAddPositiveInfDefault(builder, positiveInfDefault): builder.PrependFloat32Slot(56, positiveInfDefault, float('inf')) +def MonsterAddInfinityDefault(builder, infinityDefault): builder.PrependFloat32Slot(57, infinityDefault, float('inf')) +def MonsterAddPositiveInfinityDefault(builder, positiveInfinityDefault): builder.PrependFloat32Slot(58, positiveInfinityDefault, float('inf')) +def MonsterAddNegativeInfDefault(builder, negativeInfDefault): builder.PrependFloat32Slot(59, negativeInfDefault, float('-inf')) +def MonsterAddNegativeInfinityDefault(builder, negativeInfinityDefault): builder.PrependFloat32Slot(60, negativeInfinityDefault, float('-inf')) +def MonsterAddDoubleInfDefault(builder, doubleInfDefault): builder.PrependFloat64Slot(61, doubleInfDefault, float('inf')) def MonsterEnd(builder): return builder.EndObject() try: @@ -1763,6 +1827,14 @@ def __init__(self): self.nativeInline = None # type: Optional[TestT] self.longEnumNonEnumDefault = 0 # type: int self.longEnumNormalDefault = 2 # type: int + self.nanDefault = float('nan') # type: float + self.infDefault = float('inf') # type: float + self.positiveInfDefault = float('inf') # type: float + self.infinityDefault = float('inf') # type: float + self.positiveInfinityDefault = float('inf') # type: float + self.negativeInfDefault = float('-inf') # type: float + self.negativeInfinityDefault = float('-inf') # type: float + self.doubleInfDefault = float('inf') # type: float @classmethod def InitFromBuf(cls, buf, pos): @@ -1964,6 +2036,14 @@ def _UnPack(self, monster): self.nativeInline = TestT.InitFromObj(monster.NativeInline()) self.longEnumNonEnumDefault = monster.LongEnumNonEnumDefault() self.longEnumNormalDefault = monster.LongEnumNormalDefault() + self.nanDefault = monster.NanDefault() + self.infDefault = monster.InfDefault() + self.positiveInfDefault = monster.PositiveInfDefault() + self.infinityDefault = monster.InfinityDefault() + self.positiveInfinityDefault = monster.PositiveInfinityDefault() + self.negativeInfDefault = monster.NegativeInfDefault() + self.negativeInfinityDefault = monster.NegativeInfinityDefault() + self.doubleInfDefault = monster.DoubleInfDefault() # MonsterT def Pack(self, builder): @@ -2217,6 +2297,14 @@ def Pack(self, builder): MonsterAddNativeInline(builder, nativeInline) MonsterAddLongEnumNonEnumDefault(builder, self.longEnumNonEnumDefault) MonsterAddLongEnumNormalDefault(builder, self.longEnumNormalDefault) + MonsterAddNanDefault(builder, self.nanDefault) + MonsterAddInfDefault(builder, self.infDefault) + MonsterAddPositiveInfDefault(builder, self.positiveInfDefault) + MonsterAddInfinityDefault(builder, self.infinityDefault) + MonsterAddPositiveInfinityDefault(builder, self.positiveInfinityDefault) + MonsterAddNegativeInfDefault(builder, self.negativeInfDefault) + MonsterAddNegativeInfinityDefault(builder, self.negativeInfinityDefault) + MonsterAddDoubleInfDefault(builder, self.doubleInfDefault) monster = MonsterEnd(builder) return monster diff --git a/tests/monster_test_my_game.example_generated.dart b/tests/monster_test_my_game.example_generated.dart index 174fe1d8dd..a9e9e812ac 100644 --- a/tests/monster_test_my_game.example_generated.dart +++ b/tests/monster_test_my_game.example_generated.dart @@ -1258,10 +1258,18 @@ class Monster { Test? get nativeInline => Test.reader.vTableGetNullable(_bc, _bcOffset, 106); LongEnum get longEnumNonEnumDefault => LongEnum.fromValue(const fb.Uint64Reader().vTableGet(_bc, _bcOffset, 108, 0)); LongEnum get longEnumNormalDefault => LongEnum.fromValue(const fb.Uint64Reader().vTableGet(_bc, _bcOffset, 110, 2)); + double get nanDefault => const fb.Float32Reader().vTableGet(_bc, _bcOffset, 112, double.nan); + double get infDefault => const fb.Float32Reader().vTableGet(_bc, _bcOffset, 114, double.infinity); + double get positiveInfDefault => const fb.Float32Reader().vTableGet(_bc, _bcOffset, 116, double.infinity); + double get infinityDefault => const fb.Float32Reader().vTableGet(_bc, _bcOffset, 118, double.infinity); + double get positiveInfinityDefault => const fb.Float32Reader().vTableGet(_bc, _bcOffset, 120, double.infinity); + double get negativeInfDefault => const fb.Float32Reader().vTableGet(_bc, _bcOffset, 122, double.negativeInfinity); + double get negativeInfinityDefault => const fb.Float32Reader().vTableGet(_bc, _bcOffset, 124, double.negativeInfinity); + double get doubleInfDefault => const fb.Float64Reader().vTableGet(_bc, _bcOffset, 126, double.infinity); @override String toString() { - return 'Monster{pos: ${pos}, mana: ${mana}, hp: ${hp}, name: ${name}, inventory: ${inventory}, color: ${color}, testType: ${testType}, test: ${test}, test4: ${test4}, testarrayofstring: ${testarrayofstring}, testarrayoftables: ${testarrayoftables}, enemy: ${enemy}, testnestedflatbuffer: ${testnestedflatbuffer}, testempty: ${testempty}, testbool: ${testbool}, testhashs32Fnv1: ${testhashs32Fnv1}, testhashu32Fnv1: ${testhashu32Fnv1}, testhashs64Fnv1: ${testhashs64Fnv1}, testhashu64Fnv1: ${testhashu64Fnv1}, testhashs32Fnv1a: ${testhashs32Fnv1a}, testhashu32Fnv1a: ${testhashu32Fnv1a}, testhashs64Fnv1a: ${testhashs64Fnv1a}, testhashu64Fnv1a: ${testhashu64Fnv1a}, testarrayofbools: ${testarrayofbools}, testf: ${testf}, testf2: ${testf2}, testf3: ${testf3}, testarrayofstring2: ${testarrayofstring2}, testarrayofsortedstruct: ${testarrayofsortedstruct}, flex: ${flex}, test5: ${test5}, vectorOfLongs: ${vectorOfLongs}, vectorOfDoubles: ${vectorOfDoubles}, parentNamespaceTest: ${parentNamespaceTest}, vectorOfReferrables: ${vectorOfReferrables}, singleWeakReference: ${singleWeakReference}, vectorOfWeakReferences: ${vectorOfWeakReferences}, vectorOfStrongReferrables: ${vectorOfStrongReferrables}, coOwningReference: ${coOwningReference}, vectorOfCoOwningReferences: ${vectorOfCoOwningReferences}, nonOwningReference: ${nonOwningReference}, vectorOfNonOwningReferences: ${vectorOfNonOwningReferences}, anyUniqueType: ${anyUniqueType}, anyUnique: ${anyUnique}, anyAmbiguousType: ${anyAmbiguousType}, anyAmbiguous: ${anyAmbiguous}, vectorOfEnums: ${vectorOfEnums}, signedEnum: ${signedEnum}, testrequirednestedflatbuffer: ${testrequirednestedflatbuffer}, scalarKeySortedTables: ${scalarKeySortedTables}, nativeInline: ${nativeInline}, longEnumNonEnumDefault: ${longEnumNonEnumDefault}, longEnumNormalDefault: ${longEnumNormalDefault}}'; + return 'Monster{pos: ${pos}, mana: ${mana}, hp: ${hp}, name: ${name}, inventory: ${inventory}, color: ${color}, testType: ${testType}, test: ${test}, test4: ${test4}, testarrayofstring: ${testarrayofstring}, testarrayoftables: ${testarrayoftables}, enemy: ${enemy}, testnestedflatbuffer: ${testnestedflatbuffer}, testempty: ${testempty}, testbool: ${testbool}, testhashs32Fnv1: ${testhashs32Fnv1}, testhashu32Fnv1: ${testhashu32Fnv1}, testhashs64Fnv1: ${testhashs64Fnv1}, testhashu64Fnv1: ${testhashu64Fnv1}, testhashs32Fnv1a: ${testhashs32Fnv1a}, testhashu32Fnv1a: ${testhashu32Fnv1a}, testhashs64Fnv1a: ${testhashs64Fnv1a}, testhashu64Fnv1a: ${testhashu64Fnv1a}, testarrayofbools: ${testarrayofbools}, testf: ${testf}, testf2: ${testf2}, testf3: ${testf3}, testarrayofstring2: ${testarrayofstring2}, testarrayofsortedstruct: ${testarrayofsortedstruct}, flex: ${flex}, test5: ${test5}, vectorOfLongs: ${vectorOfLongs}, vectorOfDoubles: ${vectorOfDoubles}, parentNamespaceTest: ${parentNamespaceTest}, vectorOfReferrables: ${vectorOfReferrables}, singleWeakReference: ${singleWeakReference}, vectorOfWeakReferences: ${vectorOfWeakReferences}, vectorOfStrongReferrables: ${vectorOfStrongReferrables}, coOwningReference: ${coOwningReference}, vectorOfCoOwningReferences: ${vectorOfCoOwningReferences}, nonOwningReference: ${nonOwningReference}, vectorOfNonOwningReferences: ${vectorOfNonOwningReferences}, anyUniqueType: ${anyUniqueType}, anyUnique: ${anyUnique}, anyAmbiguousType: ${anyAmbiguousType}, anyAmbiguous: ${anyAmbiguous}, vectorOfEnums: ${vectorOfEnums}, signedEnum: ${signedEnum}, testrequirednestedflatbuffer: ${testrequirednestedflatbuffer}, scalarKeySortedTables: ${scalarKeySortedTables}, nativeInline: ${nativeInline}, longEnumNonEnumDefault: ${longEnumNonEnumDefault}, longEnumNormalDefault: ${longEnumNormalDefault}, nanDefault: ${nanDefault}, infDefault: ${infDefault}, positiveInfDefault: ${positiveInfDefault}, infinityDefault: ${infinityDefault}, positiveInfinityDefault: ${positiveInfinityDefault}, negativeInfDefault: ${negativeInfDefault}, negativeInfinityDefault: ${negativeInfinityDefault}, doubleInfDefault: ${doubleInfDefault}}'; } MonsterT unpack() => MonsterT( @@ -1317,7 +1325,15 @@ class Monster { scalarKeySortedTables: scalarKeySortedTables?.map((e) => e.unpack()).toList(), nativeInline: nativeInline?.unpack(), longEnumNonEnumDefault: longEnumNonEnumDefault, - longEnumNormalDefault: longEnumNormalDefault); + longEnumNormalDefault: longEnumNormalDefault, + nanDefault: nanDefault, + infDefault: infDefault, + positiveInfDefault: positiveInfDefault, + infinityDefault: infinityDefault, + positiveInfinityDefault: positiveInfinityDefault, + negativeInfDefault: negativeInfDefault, + negativeInfinityDefault: negativeInfinityDefault, + doubleInfDefault: doubleInfDefault); static int pack(fb.Builder fbBuilder, MonsterT? object) { if (object == null) return 0; @@ -1382,6 +1398,14 @@ class MonsterT implements fb.Packable { TestT? nativeInline; LongEnum longEnumNonEnumDefault; LongEnum longEnumNormalDefault; + double nanDefault; + double infDefault; + double positiveInfDefault; + double infinityDefault; + double positiveInfinityDefault; + double negativeInfDefault; + double negativeInfinityDefault; + double doubleInfDefault; MonsterT({ this.pos, @@ -1436,7 +1460,15 @@ class MonsterT implements fb.Packable { this.scalarKeySortedTables, this.nativeInline, this.longEnumNonEnumDefault = const LongEnum._(0), - this.longEnumNormalDefault = LongEnum.LongOne}); + this.longEnumNormalDefault = LongEnum.LongOne, + this.nanDefault = double.nan, + this.infDefault = double.infinity, + this.positiveInfDefault = double.infinity, + this.infinityDefault = double.infinity, + this.positiveInfinityDefault = double.infinity, + this.negativeInfDefault = double.negativeInfinity, + this.negativeInfinityDefault = double.negativeInfinity, + this.doubleInfDefault = double.infinity}); @override int pack(fb.Builder fbBuilder) { @@ -1497,7 +1529,7 @@ class MonsterT implements fb.Packable { : fbBuilder.writeListUint8(testrequirednestedflatbuffer!); final int? scalarKeySortedTablesOffset = scalarKeySortedTables == null ? null : fbBuilder.writeList(scalarKeySortedTables!.map((b) => b.pack(fbBuilder)).toList()); - fbBuilder.startTable(54); + fbBuilder.startTable(62); if (pos != null) { fbBuilder.addStruct(0, pos!.pack(fbBuilder)); } @@ -1555,12 +1587,20 @@ class MonsterT implements fb.Packable { } fbBuilder.addUint64(52, longEnumNonEnumDefault.value); fbBuilder.addUint64(53, longEnumNormalDefault.value); + fbBuilder.addFloat32(54, nanDefault); + fbBuilder.addFloat32(55, infDefault); + fbBuilder.addFloat32(56, positiveInfDefault); + fbBuilder.addFloat32(57, infinityDefault); + fbBuilder.addFloat32(58, positiveInfinityDefault); + fbBuilder.addFloat32(59, negativeInfDefault); + fbBuilder.addFloat32(60, negativeInfinityDefault); + fbBuilder.addFloat64(61, doubleInfDefault); return fbBuilder.endTable(); } @override String toString() { - return 'MonsterT{pos: ${pos}, mana: ${mana}, hp: ${hp}, name: ${name}, inventory: ${inventory}, color: ${color}, testType: ${testType}, test: ${test}, test4: ${test4}, testarrayofstring: ${testarrayofstring}, testarrayoftables: ${testarrayoftables}, enemy: ${enemy}, testnestedflatbuffer: ${testnestedflatbuffer}, testempty: ${testempty}, testbool: ${testbool}, testhashs32Fnv1: ${testhashs32Fnv1}, testhashu32Fnv1: ${testhashu32Fnv1}, testhashs64Fnv1: ${testhashs64Fnv1}, testhashu64Fnv1: ${testhashu64Fnv1}, testhashs32Fnv1a: ${testhashs32Fnv1a}, testhashu32Fnv1a: ${testhashu32Fnv1a}, testhashs64Fnv1a: ${testhashs64Fnv1a}, testhashu64Fnv1a: ${testhashu64Fnv1a}, testarrayofbools: ${testarrayofbools}, testf: ${testf}, testf2: ${testf2}, testf3: ${testf3}, testarrayofstring2: ${testarrayofstring2}, testarrayofsortedstruct: ${testarrayofsortedstruct}, flex: ${flex}, test5: ${test5}, vectorOfLongs: ${vectorOfLongs}, vectorOfDoubles: ${vectorOfDoubles}, parentNamespaceTest: ${parentNamespaceTest}, vectorOfReferrables: ${vectorOfReferrables}, singleWeakReference: ${singleWeakReference}, vectorOfWeakReferences: ${vectorOfWeakReferences}, vectorOfStrongReferrables: ${vectorOfStrongReferrables}, coOwningReference: ${coOwningReference}, vectorOfCoOwningReferences: ${vectorOfCoOwningReferences}, nonOwningReference: ${nonOwningReference}, vectorOfNonOwningReferences: ${vectorOfNonOwningReferences}, anyUniqueType: ${anyUniqueType}, anyUnique: ${anyUnique}, anyAmbiguousType: ${anyAmbiguousType}, anyAmbiguous: ${anyAmbiguous}, vectorOfEnums: ${vectorOfEnums}, signedEnum: ${signedEnum}, testrequirednestedflatbuffer: ${testrequirednestedflatbuffer}, scalarKeySortedTables: ${scalarKeySortedTables}, nativeInline: ${nativeInline}, longEnumNonEnumDefault: ${longEnumNonEnumDefault}, longEnumNormalDefault: ${longEnumNormalDefault}}'; + return 'MonsterT{pos: ${pos}, mana: ${mana}, hp: ${hp}, name: ${name}, inventory: ${inventory}, color: ${color}, testType: ${testType}, test: ${test}, test4: ${test4}, testarrayofstring: ${testarrayofstring}, testarrayoftables: ${testarrayoftables}, enemy: ${enemy}, testnestedflatbuffer: ${testnestedflatbuffer}, testempty: ${testempty}, testbool: ${testbool}, testhashs32Fnv1: ${testhashs32Fnv1}, testhashu32Fnv1: ${testhashu32Fnv1}, testhashs64Fnv1: ${testhashs64Fnv1}, testhashu64Fnv1: ${testhashu64Fnv1}, testhashs32Fnv1a: ${testhashs32Fnv1a}, testhashu32Fnv1a: ${testhashu32Fnv1a}, testhashs64Fnv1a: ${testhashs64Fnv1a}, testhashu64Fnv1a: ${testhashu64Fnv1a}, testarrayofbools: ${testarrayofbools}, testf: ${testf}, testf2: ${testf2}, testf3: ${testf3}, testarrayofstring2: ${testarrayofstring2}, testarrayofsortedstruct: ${testarrayofsortedstruct}, flex: ${flex}, test5: ${test5}, vectorOfLongs: ${vectorOfLongs}, vectorOfDoubles: ${vectorOfDoubles}, parentNamespaceTest: ${parentNamespaceTest}, vectorOfReferrables: ${vectorOfReferrables}, singleWeakReference: ${singleWeakReference}, vectorOfWeakReferences: ${vectorOfWeakReferences}, vectorOfStrongReferrables: ${vectorOfStrongReferrables}, coOwningReference: ${coOwningReference}, vectorOfCoOwningReferences: ${vectorOfCoOwningReferences}, nonOwningReference: ${nonOwningReference}, vectorOfNonOwningReferences: ${vectorOfNonOwningReferences}, anyUniqueType: ${anyUniqueType}, anyUnique: ${anyUnique}, anyAmbiguousType: ${anyAmbiguousType}, anyAmbiguous: ${anyAmbiguous}, vectorOfEnums: ${vectorOfEnums}, signedEnum: ${signedEnum}, testrequirednestedflatbuffer: ${testrequirednestedflatbuffer}, scalarKeySortedTables: ${scalarKeySortedTables}, nativeInline: ${nativeInline}, longEnumNonEnumDefault: ${longEnumNonEnumDefault}, longEnumNormalDefault: ${longEnumNormalDefault}, nanDefault: ${nanDefault}, infDefault: ${infDefault}, positiveInfDefault: ${positiveInfDefault}, infinityDefault: ${infinityDefault}, positiveInfinityDefault: ${positiveInfinityDefault}, negativeInfDefault: ${negativeInfDefault}, negativeInfinityDefault: ${negativeInfinityDefault}, doubleInfDefault: ${doubleInfDefault}}'; } } @@ -1578,7 +1618,7 @@ class MonsterBuilder { final fb.Builder fbBuilder; void begin() { - fbBuilder.startTable(54); + fbBuilder.startTable(62); } int addPos(int offset) { @@ -1793,6 +1833,38 @@ class MonsterBuilder { fbBuilder.addUint64(53, longEnumNormalDefault?.value); return fbBuilder.offset; } + int addNanDefault(double? nanDefault) { + fbBuilder.addFloat32(54, nanDefault); + return fbBuilder.offset; + } + int addInfDefault(double? infDefault) { + fbBuilder.addFloat32(55, infDefault); + return fbBuilder.offset; + } + int addPositiveInfDefault(double? positiveInfDefault) { + fbBuilder.addFloat32(56, positiveInfDefault); + return fbBuilder.offset; + } + int addInfinityDefault(double? infinityDefault) { + fbBuilder.addFloat32(57, infinityDefault); + return fbBuilder.offset; + } + int addPositiveInfinityDefault(double? positiveInfinityDefault) { + fbBuilder.addFloat32(58, positiveInfinityDefault); + return fbBuilder.offset; + } + int addNegativeInfDefault(double? negativeInfDefault) { + fbBuilder.addFloat32(59, negativeInfDefault); + return fbBuilder.offset; + } + int addNegativeInfinityDefault(double? negativeInfinityDefault) { + fbBuilder.addFloat32(60, negativeInfinityDefault); + return fbBuilder.offset; + } + int addDoubleInfDefault(double? doubleInfDefault) { + fbBuilder.addFloat64(61, doubleInfDefault); + return fbBuilder.offset; + } int finish() { return fbBuilder.endTable(); @@ -1853,6 +1925,14 @@ class MonsterObjectBuilder extends fb.ObjectBuilder { final TestObjectBuilder? _nativeInline; final LongEnum? _longEnumNonEnumDefault; final LongEnum? _longEnumNormalDefault; + final double? _nanDefault; + final double? _infDefault; + final double? _positiveInfDefault; + final double? _infinityDefault; + final double? _positiveInfinityDefault; + final double? _negativeInfDefault; + final double? _negativeInfinityDefault; + final double? _doubleInfDefault; MonsterObjectBuilder({ Vec3ObjectBuilder? pos, @@ -1908,6 +1988,14 @@ class MonsterObjectBuilder extends fb.ObjectBuilder { TestObjectBuilder? nativeInline, LongEnum? longEnumNonEnumDefault, LongEnum? longEnumNormalDefault, + double? nanDefault, + double? infDefault, + double? positiveInfDefault, + double? infinityDefault, + double? positiveInfinityDefault, + double? negativeInfDefault, + double? negativeInfinityDefault, + double? doubleInfDefault, }) : _pos = pos, _mana = mana, @@ -1961,7 +2049,15 @@ class MonsterObjectBuilder extends fb.ObjectBuilder { _scalarKeySortedTables = scalarKeySortedTables, _nativeInline = nativeInline, _longEnumNonEnumDefault = longEnumNonEnumDefault, - _longEnumNormalDefault = longEnumNormalDefault; + _longEnumNormalDefault = longEnumNormalDefault, + _nanDefault = nanDefault, + _infDefault = infDefault, + _positiveInfDefault = positiveInfDefault, + _infinityDefault = infinityDefault, + _positiveInfinityDefault = positiveInfinityDefault, + _negativeInfDefault = negativeInfDefault, + _negativeInfinityDefault = negativeInfinityDefault, + _doubleInfDefault = doubleInfDefault; /// Finish building, and store into the [fbBuilder]. @override @@ -2014,7 +2110,7 @@ class MonsterObjectBuilder extends fb.ObjectBuilder { : fbBuilder.writeListUint8(_testrequirednestedflatbuffer!); final int? scalarKeySortedTablesOffset = _scalarKeySortedTables == null ? null : fbBuilder.writeList(_scalarKeySortedTables!.map((b) => b.getOrCreateOffset(fbBuilder)).toList()); - fbBuilder.startTable(54); + fbBuilder.startTable(62); if (_pos != null) { fbBuilder.addStruct(0, _pos!.finish(fbBuilder)); } @@ -2072,6 +2168,14 @@ class MonsterObjectBuilder extends fb.ObjectBuilder { } fbBuilder.addUint64(52, _longEnumNonEnumDefault?.value); fbBuilder.addUint64(53, _longEnumNormalDefault?.value); + fbBuilder.addFloat32(54, _nanDefault); + fbBuilder.addFloat32(55, _infDefault); + fbBuilder.addFloat32(56, _positiveInfDefault); + fbBuilder.addFloat32(57, _infinityDefault); + fbBuilder.addFloat32(58, _positiveInfinityDefault); + fbBuilder.addFloat32(59, _negativeInfDefault); + fbBuilder.addFloat32(60, _negativeInfinityDefault); + fbBuilder.addFloat64(61, _doubleInfDefault); return fbBuilder.endTable(); } diff --git a/tests/monster_test_serialize/my_game/example/monster_generated.rs b/tests/monster_test_serialize/my_game/example/monster_generated.rs index c5d709bb29..4c01eed1d8 100644 --- a/tests/monster_test_serialize/my_game/example/monster_generated.rs +++ b/tests/monster_test_serialize/my_game/example/monster_generated.rs @@ -81,6 +81,14 @@ impl<'a> Monster<'a> { pub const VT_NATIVE_INLINE: flatbuffers::VOffsetT = 106; pub const VT_LONG_ENUM_NON_ENUM_DEFAULT: flatbuffers::VOffsetT = 108; pub const VT_LONG_ENUM_NORMAL_DEFAULT: flatbuffers::VOffsetT = 110; + pub const VT_NAN_DEFAULT: flatbuffers::VOffsetT = 112; + pub const VT_INF_DEFAULT: flatbuffers::VOffsetT = 114; + pub const VT_POSITIVE_INF_DEFAULT: flatbuffers::VOffsetT = 116; + pub const VT_INFINITY_DEFAULT: flatbuffers::VOffsetT = 118; + pub const VT_POSITIVE_INFINITY_DEFAULT: flatbuffers::VOffsetT = 120; + pub const VT_NEGATIVE_INF_DEFAULT: flatbuffers::VOffsetT = 122; + pub const VT_NEGATIVE_INFINITY_DEFAULT: flatbuffers::VOffsetT = 124; + pub const VT_DOUBLE_INF_DEFAULT: flatbuffers::VOffsetT = 126; pub const fn get_fully_qualified_name() -> &'static str { "MyGame.Example.Monster" @@ -96,6 +104,7 @@ impl<'a> Monster<'a> { args: &'args MonsterArgs<'args> ) -> flatbuffers::WIPOffset> { let mut builder = MonsterBuilder::new(_fbb); + builder.add_double_inf_default(args.double_inf_default); builder.add_long_enum_normal_default(args.long_enum_normal_default); builder.add_long_enum_non_enum_default(args.long_enum_non_enum_default); builder.add_non_owning_reference(args.non_owning_reference); @@ -105,6 +114,13 @@ impl<'a> Monster<'a> { builder.add_testhashs64_fnv1a(args.testhashs64_fnv1a); builder.add_testhashu64_fnv1(args.testhashu64_fnv1); builder.add_testhashs64_fnv1(args.testhashs64_fnv1); + builder.add_negative_infinity_default(args.negative_infinity_default); + builder.add_negative_inf_default(args.negative_inf_default); + builder.add_positive_infinity_default(args.positive_infinity_default); + builder.add_infinity_default(args.infinity_default); + builder.add_positive_inf_default(args.positive_inf_default); + builder.add_inf_default(args.inf_default); + builder.add_nan_default(args.nan_default); if let Some(x) = args.native_inline { builder.add_native_inline(x); } if let Some(x) = args.scalar_key_sorted_tables { builder.add_scalar_key_sorted_tables(x); } if let Some(x) = args.testrequirednestedflatbuffer { builder.add_testrequirednestedflatbuffer(x); } @@ -310,6 +326,14 @@ impl<'a> Monster<'a> { }); let long_enum_non_enum_default = self.long_enum_non_enum_default(); let long_enum_normal_default = self.long_enum_normal_default(); + let nan_default = self.nan_default(); + let inf_default = self.inf_default(); + let positive_inf_default = self.positive_inf_default(); + let infinity_default = self.infinity_default(); + let positive_infinity_default = self.positive_infinity_default(); + let negative_inf_default = self.negative_inf_default(); + let negative_infinity_default = self.negative_infinity_default(); + let double_inf_default = self.double_inf_default(); MonsterT { pos, mana, @@ -361,6 +385,14 @@ impl<'a> Monster<'a> { native_inline, long_enum_non_enum_default, long_enum_normal_default, + nan_default, + inf_default, + positive_inf_default, + infinity_default, + positive_infinity_default, + negative_inf_default, + negative_infinity_default, + double_inf_default, } } @@ -766,6 +798,62 @@ impl<'a> Monster<'a> { unsafe { self._tab.get::(Monster::VT_LONG_ENUM_NORMAL_DEFAULT, Some(LongEnum::LongOne)).unwrap()} } #[inline] + pub fn nan_default(&self) -> f32 { + // Safety: + // Created from valid Table for this object + // which contains a valid value in this slot + unsafe { self._tab.get::(Monster::VT_NAN_DEFAULT, Some(f32::NAN)).unwrap()} + } + #[inline] + pub fn inf_default(&self) -> f32 { + // Safety: + // Created from valid Table for this object + // which contains a valid value in this slot + unsafe { self._tab.get::(Monster::VT_INF_DEFAULT, Some(f32::INFINITY)).unwrap()} + } + #[inline] + pub fn positive_inf_default(&self) -> f32 { + // Safety: + // Created from valid Table for this object + // which contains a valid value in this slot + unsafe { self._tab.get::(Monster::VT_POSITIVE_INF_DEFAULT, Some(f32::INFINITY)).unwrap()} + } + #[inline] + pub fn infinity_default(&self) -> f32 { + // Safety: + // Created from valid Table for this object + // which contains a valid value in this slot + unsafe { self._tab.get::(Monster::VT_INFINITY_DEFAULT, Some(f32::INFINITY)).unwrap()} + } + #[inline] + pub fn positive_infinity_default(&self) -> f32 { + // Safety: + // Created from valid Table for this object + // which contains a valid value in this slot + unsafe { self._tab.get::(Monster::VT_POSITIVE_INFINITY_DEFAULT, Some(f32::INFINITY)).unwrap()} + } + #[inline] + pub fn negative_inf_default(&self) -> f32 { + // Safety: + // Created from valid Table for this object + // which contains a valid value in this slot + unsafe { self._tab.get::(Monster::VT_NEGATIVE_INF_DEFAULT, Some(f32::NEG_INFINITY)).unwrap()} + } + #[inline] + pub fn negative_infinity_default(&self) -> f32 { + // Safety: + // Created from valid Table for this object + // which contains a valid value in this slot + unsafe { self._tab.get::(Monster::VT_NEGATIVE_INFINITY_DEFAULT, Some(f32::NEG_INFINITY)).unwrap()} + } + #[inline] + pub fn double_inf_default(&self) -> f64 { + // Safety: + // Created from valid Table for this object + // which contains a valid value in this slot + unsafe { self._tab.get::(Monster::VT_DOUBLE_INF_DEFAULT, Some(f64::INFINITY)).unwrap()} + } + #[inline] #[allow(non_snake_case)] pub fn test_as_monster(&self) -> Option> { if self.test_type() == Any::Monster { @@ -980,6 +1068,14 @@ impl flatbuffers::Verifiable for Monster<'_> { .visit_field::("native_inline", Self::VT_NATIVE_INLINE, false)? .visit_field::("long_enum_non_enum_default", Self::VT_LONG_ENUM_NON_ENUM_DEFAULT, false)? .visit_field::("long_enum_normal_default", Self::VT_LONG_ENUM_NORMAL_DEFAULT, false)? + .visit_field::("nan_default", Self::VT_NAN_DEFAULT, false)? + .visit_field::("inf_default", Self::VT_INF_DEFAULT, false)? + .visit_field::("positive_inf_default", Self::VT_POSITIVE_INF_DEFAULT, false)? + .visit_field::("infinity_default", Self::VT_INFINITY_DEFAULT, false)? + .visit_field::("positive_infinity_default", Self::VT_POSITIVE_INFINITY_DEFAULT, false)? + .visit_field::("negative_inf_default", Self::VT_NEGATIVE_INF_DEFAULT, false)? + .visit_field::("negative_infinity_default", Self::VT_NEGATIVE_INFINITY_DEFAULT, false)? + .visit_field::("double_inf_default", Self::VT_DOUBLE_INF_DEFAULT, false)? .finish(); Ok(()) } @@ -1038,6 +1134,14 @@ pub struct MonsterArgs<'a> { pub native_inline: Option<&'a Test>, pub long_enum_non_enum_default: LongEnum, pub long_enum_normal_default: LongEnum, + pub nan_default: f32, + pub inf_default: f32, + pub positive_inf_default: f32, + pub infinity_default: f32, + pub positive_infinity_default: f32, + pub negative_inf_default: f32, + pub negative_infinity_default: f32, + pub double_inf_default: f64, } impl<'a> Default for MonsterArgs<'a> { #[inline] @@ -1096,6 +1200,14 @@ impl<'a> Default for MonsterArgs<'a> { native_inline: None, long_enum_non_enum_default: Default::default(), long_enum_normal_default: LongEnum::LongOne, + nan_default: f32::NAN, + inf_default: f32::INFINITY, + positive_inf_default: f32::INFINITY, + infinity_default: f32::INFINITY, + positive_infinity_default: f32::INFINITY, + negative_inf_default: f32::NEG_INFINITY, + negative_infinity_default: f32::NEG_INFINITY, + double_inf_default: f64::INFINITY, } } } @@ -1105,7 +1217,7 @@ impl Serialize for Monster<'_> { where S: Serializer, { - let mut s = serializer.serialize_struct("Monster", 54)?; + let mut s = serializer.serialize_struct("Monster", 62)?; if let Some(f) = self.pos() { s.serialize_field("pos", &f)?; } else { @@ -1313,6 +1425,14 @@ impl Serialize for Monster<'_> { } s.serialize_field("long_enum_non_enum_default", &self.long_enum_non_enum_default())?; s.serialize_field("long_enum_normal_default", &self.long_enum_normal_default())?; + s.serialize_field("nan_default", &self.nan_default())?; + s.serialize_field("inf_default", &self.inf_default())?; + s.serialize_field("positive_inf_default", &self.positive_inf_default())?; + s.serialize_field("infinity_default", &self.infinity_default())?; + s.serialize_field("positive_infinity_default", &self.positive_infinity_default())?; + s.serialize_field("negative_inf_default", &self.negative_inf_default())?; + s.serialize_field("negative_infinity_default", &self.negative_infinity_default())?; + s.serialize_field("double_inf_default", &self.double_inf_default())?; s.end() } } @@ -1535,6 +1655,38 @@ impl<'a: 'b, 'b> MonsterBuilder<'a, 'b> { self.fbb_.push_slot::(Monster::VT_LONG_ENUM_NORMAL_DEFAULT, long_enum_normal_default, LongEnum::LongOne); } #[inline] + pub fn add_nan_default(&mut self, nan_default: f32) { + self.fbb_.push_slot::(Monster::VT_NAN_DEFAULT, nan_default, f32::NAN); + } + #[inline] + pub fn add_inf_default(&mut self, inf_default: f32) { + self.fbb_.push_slot::(Monster::VT_INF_DEFAULT, inf_default, f32::INFINITY); + } + #[inline] + pub fn add_positive_inf_default(&mut self, positive_inf_default: f32) { + self.fbb_.push_slot::(Monster::VT_POSITIVE_INF_DEFAULT, positive_inf_default, f32::INFINITY); + } + #[inline] + pub fn add_infinity_default(&mut self, infinity_default: f32) { + self.fbb_.push_slot::(Monster::VT_INFINITY_DEFAULT, infinity_default, f32::INFINITY); + } + #[inline] + pub fn add_positive_infinity_default(&mut self, positive_infinity_default: f32) { + self.fbb_.push_slot::(Monster::VT_POSITIVE_INFINITY_DEFAULT, positive_infinity_default, f32::INFINITY); + } + #[inline] + pub fn add_negative_inf_default(&mut self, negative_inf_default: f32) { + self.fbb_.push_slot::(Monster::VT_NEGATIVE_INF_DEFAULT, negative_inf_default, f32::NEG_INFINITY); + } + #[inline] + pub fn add_negative_infinity_default(&mut self, negative_infinity_default: f32) { + self.fbb_.push_slot::(Monster::VT_NEGATIVE_INFINITY_DEFAULT, negative_infinity_default, f32::NEG_INFINITY); + } + #[inline] + pub fn add_double_inf_default(&mut self, double_inf_default: f64) { + self.fbb_.push_slot::(Monster::VT_DOUBLE_INF_DEFAULT, double_inf_default, f64::INFINITY); + } + #[inline] pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> MonsterBuilder<'a, 'b> { let start = _fbb.start_table(); MonsterBuilder { @@ -1684,6 +1836,14 @@ impl core::fmt::Debug for Monster<'_> { ds.field("native_inline", &self.native_inline()); ds.field("long_enum_non_enum_default", &self.long_enum_non_enum_default()); ds.field("long_enum_normal_default", &self.long_enum_normal_default()); + ds.field("nan_default", &self.nan_default()); + ds.field("inf_default", &self.inf_default()); + ds.field("positive_inf_default", &self.positive_inf_default()); + ds.field("infinity_default", &self.infinity_default()); + ds.field("positive_infinity_default", &self.positive_infinity_default()); + ds.field("negative_inf_default", &self.negative_inf_default()); + ds.field("negative_infinity_default", &self.negative_infinity_default()); + ds.field("double_inf_default", &self.double_inf_default()); ds.finish() } } @@ -1740,6 +1900,14 @@ pub struct MonsterT { pub native_inline: Option, pub long_enum_non_enum_default: LongEnum, pub long_enum_normal_default: LongEnum, + pub nan_default: f32, + pub inf_default: f32, + pub positive_inf_default: f32, + pub infinity_default: f32, + pub positive_infinity_default: f32, + pub negative_inf_default: f32, + pub negative_infinity_default: f32, + pub double_inf_default: f64, } impl Default for MonsterT { fn default() -> Self { @@ -1794,6 +1962,14 @@ impl Default for MonsterT { native_inline: None, long_enum_non_enum_default: Default::default(), long_enum_normal_default: LongEnum::LongOne, + nan_default: f32::NAN, + inf_default: f32::INFINITY, + positive_inf_default: f32::INFINITY, + infinity_default: f32::INFINITY, + positive_infinity_default: f32::INFINITY, + negative_inf_default: f32::NEG_INFINITY, + negative_infinity_default: f32::NEG_INFINITY, + double_inf_default: f64::INFINITY, } } } @@ -1906,6 +2082,14 @@ impl MonsterT { let native_inline = native_inline_tmp.as_ref(); let long_enum_non_enum_default = self.long_enum_non_enum_default; let long_enum_normal_default = self.long_enum_normal_default; + let nan_default = self.nan_default; + let inf_default = self.inf_default; + let positive_inf_default = self.positive_inf_default; + let infinity_default = self.infinity_default; + let positive_infinity_default = self.positive_infinity_default; + let negative_inf_default = self.negative_inf_default; + let negative_infinity_default = self.negative_infinity_default; + let double_inf_default = self.double_inf_default; Monster::create(_fbb, &MonsterArgs{ pos, mana, @@ -1960,6 +2144,14 @@ impl MonsterT { native_inline, long_enum_non_enum_default, long_enum_normal_default, + nan_default, + inf_default, + positive_inf_default, + infinity_default, + positive_infinity_default, + negative_inf_default, + negative_infinity_default, + double_inf_default, }) } } diff --git a/tests/monster_test_suffix/ext_only/monster_test_generated.hpp b/tests/monster_test_suffix/ext_only/monster_test_generated.hpp index fd6387c8b2..ce5acf8357 100644 --- a/tests/monster_test_suffix/ext_only/monster_test_generated.hpp +++ b/tests/monster_test_suffix/ext_only/monster_test_generated.hpp @@ -1309,6 +1309,14 @@ struct MonsterT : public flatbuffers::NativeTable { MyGame::Example::Test native_inline{}; MyGame::Example::LongEnum long_enum_non_enum_default = static_cast(0); MyGame::Example::LongEnum long_enum_normal_default = MyGame::Example::LongEnum_LongOne; + float nan_default = std::numeric_limits::quiet_NaN(); + float inf_default = std::numeric_limits::infinity(); + float positive_inf_default = std::numeric_limits::infinity(); + float infinity_default = std::numeric_limits::infinity(); + float positive_infinity_default = std::numeric_limits::infinity(); + float negative_inf_default = -std::numeric_limits::infinity(); + float negative_infinity_default = -std::numeric_limits::infinity(); + double double_inf_default = std::numeric_limits::infinity(); MonsterT() = default; MonsterT(const MonsterT &o); MonsterT(MonsterT&&) FLATBUFFERS_NOEXCEPT = default; @@ -1375,7 +1383,15 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { VT_SCALAR_KEY_SORTED_TABLES = 104, VT_NATIVE_INLINE = 106, VT_LONG_ENUM_NON_ENUM_DEFAULT = 108, - VT_LONG_ENUM_NORMAL_DEFAULT = 110 + VT_LONG_ENUM_NORMAL_DEFAULT = 110, + VT_NAN_DEFAULT = 112, + VT_INF_DEFAULT = 114, + VT_POSITIVE_INF_DEFAULT = 116, + VT_INFINITY_DEFAULT = 118, + VT_POSITIVE_INFINITY_DEFAULT = 120, + VT_NEGATIVE_INF_DEFAULT = 122, + VT_NEGATIVE_INFINITY_DEFAULT = 124, + VT_DOUBLE_INF_DEFAULT = 126 }; const MyGame::Example::Vec3 *pos() const { return GetStruct(VT_POS); @@ -1732,6 +1748,54 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { bool mutate_long_enum_normal_default(MyGame::Example::LongEnum _long_enum_normal_default = static_cast(2ULL)) { return SetField(VT_LONG_ENUM_NORMAL_DEFAULT, static_cast(_long_enum_normal_default), 2ULL); } + float nan_default() const { + return GetField(VT_NAN_DEFAULT, std::numeric_limits::quiet_NaN()); + } + bool mutate_nan_default(float _nan_default = std::numeric_limits::quiet_NaN()) { + return SetField(VT_NAN_DEFAULT, _nan_default, std::numeric_limits::quiet_NaN()); + } + float inf_default() const { + return GetField(VT_INF_DEFAULT, std::numeric_limits::infinity()); + } + bool mutate_inf_default(float _inf_default = std::numeric_limits::infinity()) { + return SetField(VT_INF_DEFAULT, _inf_default, std::numeric_limits::infinity()); + } + float positive_inf_default() const { + return GetField(VT_POSITIVE_INF_DEFAULT, std::numeric_limits::infinity()); + } + bool mutate_positive_inf_default(float _positive_inf_default = std::numeric_limits::infinity()) { + return SetField(VT_POSITIVE_INF_DEFAULT, _positive_inf_default, std::numeric_limits::infinity()); + } + float infinity_default() const { + return GetField(VT_INFINITY_DEFAULT, std::numeric_limits::infinity()); + } + bool mutate_infinity_default(float _infinity_default = std::numeric_limits::infinity()) { + return SetField(VT_INFINITY_DEFAULT, _infinity_default, std::numeric_limits::infinity()); + } + float positive_infinity_default() const { + return GetField(VT_POSITIVE_INFINITY_DEFAULT, std::numeric_limits::infinity()); + } + bool mutate_positive_infinity_default(float _positive_infinity_default = std::numeric_limits::infinity()) { + return SetField(VT_POSITIVE_INFINITY_DEFAULT, _positive_infinity_default, std::numeric_limits::infinity()); + } + float negative_inf_default() const { + return GetField(VT_NEGATIVE_INF_DEFAULT, -std::numeric_limits::infinity()); + } + bool mutate_negative_inf_default(float _negative_inf_default = -std::numeric_limits::infinity()) { + return SetField(VT_NEGATIVE_INF_DEFAULT, _negative_inf_default, -std::numeric_limits::infinity()); + } + float negative_infinity_default() const { + return GetField(VT_NEGATIVE_INFINITY_DEFAULT, -std::numeric_limits::infinity()); + } + bool mutate_negative_infinity_default(float _negative_infinity_default = -std::numeric_limits::infinity()) { + return SetField(VT_NEGATIVE_INFINITY_DEFAULT, _negative_infinity_default, -std::numeric_limits::infinity()); + } + double double_inf_default() const { + return GetField(VT_DOUBLE_INF_DEFAULT, std::numeric_limits::infinity()); + } + bool mutate_double_inf_default(double _double_inf_default = std::numeric_limits::infinity()) { + return SetField(VT_DOUBLE_INF_DEFAULT, _double_inf_default, std::numeric_limits::infinity()); + } bool Verify(flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_POS, 8) && @@ -1823,6 +1887,14 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { VerifyField(verifier, VT_NATIVE_INLINE, 2) && VerifyField(verifier, VT_LONG_ENUM_NON_ENUM_DEFAULT, 8) && VerifyField(verifier, VT_LONG_ENUM_NORMAL_DEFAULT, 8) && + VerifyField(verifier, VT_NAN_DEFAULT, 4) && + VerifyField(verifier, VT_INF_DEFAULT, 4) && + VerifyField(verifier, VT_POSITIVE_INF_DEFAULT, 4) && + VerifyField(verifier, VT_INFINITY_DEFAULT, 4) && + VerifyField(verifier, VT_POSITIVE_INFINITY_DEFAULT, 4) && + VerifyField(verifier, VT_NEGATIVE_INF_DEFAULT, 4) && + VerifyField(verifier, VT_NEGATIVE_INFINITY_DEFAULT, 4) && + VerifyField(verifier, VT_DOUBLE_INF_DEFAULT, 8) && verifier.EndTable(); } MonsterT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; @@ -2017,6 +2089,30 @@ struct MonsterBuilder { void add_long_enum_normal_default(MyGame::Example::LongEnum long_enum_normal_default) { fbb_.AddElement(Monster::VT_LONG_ENUM_NORMAL_DEFAULT, static_cast(long_enum_normal_default), 2ULL); } + void add_nan_default(float nan_default) { + fbb_.AddElement(Monster::VT_NAN_DEFAULT, nan_default, std::numeric_limits::quiet_NaN()); + } + void add_inf_default(float inf_default) { + fbb_.AddElement(Monster::VT_INF_DEFAULT, inf_default, std::numeric_limits::infinity()); + } + void add_positive_inf_default(float positive_inf_default) { + fbb_.AddElement(Monster::VT_POSITIVE_INF_DEFAULT, positive_inf_default, std::numeric_limits::infinity()); + } + void add_infinity_default(float infinity_default) { + fbb_.AddElement(Monster::VT_INFINITY_DEFAULT, infinity_default, std::numeric_limits::infinity()); + } + void add_positive_infinity_default(float positive_infinity_default) { + fbb_.AddElement(Monster::VT_POSITIVE_INFINITY_DEFAULT, positive_infinity_default, std::numeric_limits::infinity()); + } + void add_negative_inf_default(float negative_inf_default) { + fbb_.AddElement(Monster::VT_NEGATIVE_INF_DEFAULT, negative_inf_default, -std::numeric_limits::infinity()); + } + void add_negative_infinity_default(float negative_infinity_default) { + fbb_.AddElement(Monster::VT_NEGATIVE_INFINITY_DEFAULT, negative_infinity_default, -std::numeric_limits::infinity()); + } + void add_double_inf_default(double double_inf_default) { + fbb_.AddElement(Monster::VT_DOUBLE_INF_DEFAULT, double_inf_default, std::numeric_limits::infinity()); + } explicit MonsterBuilder(flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); @@ -2083,8 +2179,17 @@ inline flatbuffers::Offset CreateMonster( flatbuffers::Offset>> scalar_key_sorted_tables = 0, const MyGame::Example::Test *native_inline = nullptr, MyGame::Example::LongEnum long_enum_non_enum_default = static_cast(0), - MyGame::Example::LongEnum long_enum_normal_default = MyGame::Example::LongEnum_LongOne) { + MyGame::Example::LongEnum long_enum_normal_default = MyGame::Example::LongEnum_LongOne, + float nan_default = std::numeric_limits::quiet_NaN(), + float inf_default = std::numeric_limits::infinity(), + float positive_inf_default = std::numeric_limits::infinity(), + float infinity_default = std::numeric_limits::infinity(), + float positive_infinity_default = std::numeric_limits::infinity(), + float negative_inf_default = -std::numeric_limits::infinity(), + float negative_infinity_default = -std::numeric_limits::infinity(), + double double_inf_default = std::numeric_limits::infinity()) { MonsterBuilder builder_(_fbb); + builder_.add_double_inf_default(double_inf_default); builder_.add_long_enum_normal_default(long_enum_normal_default); builder_.add_long_enum_non_enum_default(long_enum_non_enum_default); builder_.add_non_owning_reference(non_owning_reference); @@ -2094,6 +2199,13 @@ inline flatbuffers::Offset CreateMonster( builder_.add_testhashs64_fnv1a(testhashs64_fnv1a); builder_.add_testhashu64_fnv1(testhashu64_fnv1); builder_.add_testhashs64_fnv1(testhashs64_fnv1); + builder_.add_negative_infinity_default(negative_infinity_default); + builder_.add_negative_inf_default(negative_inf_default); + builder_.add_positive_infinity_default(positive_infinity_default); + builder_.add_infinity_default(infinity_default); + builder_.add_positive_inf_default(positive_inf_default); + builder_.add_inf_default(inf_default); + builder_.add_nan_default(nan_default); builder_.add_native_inline(native_inline); builder_.add_scalar_key_sorted_tables(scalar_key_sorted_tables); builder_.add_testrequirednestedflatbuffer(testrequirednestedflatbuffer); @@ -2195,7 +2307,15 @@ inline flatbuffers::Offset CreateMonsterDirect( std::vector> *scalar_key_sorted_tables = nullptr, const MyGame::Example::Test *native_inline = nullptr, MyGame::Example::LongEnum long_enum_non_enum_default = static_cast(0), - MyGame::Example::LongEnum long_enum_normal_default = MyGame::Example::LongEnum_LongOne) { + MyGame::Example::LongEnum long_enum_normal_default = MyGame::Example::LongEnum_LongOne, + float nan_default = std::numeric_limits::quiet_NaN(), + float inf_default = std::numeric_limits::infinity(), + float positive_inf_default = std::numeric_limits::infinity(), + float infinity_default = std::numeric_limits::infinity(), + float positive_infinity_default = std::numeric_limits::infinity(), + float negative_inf_default = -std::numeric_limits::infinity(), + float negative_infinity_default = -std::numeric_limits::infinity(), + double double_inf_default = std::numeric_limits::infinity()) { auto name__ = name ? _fbb.CreateString(name) : 0; auto inventory__ = inventory ? _fbb.CreateVector(*inventory) : 0; auto test4__ = test4 ? _fbb.CreateVectorOfStructs(*test4) : 0; @@ -2271,7 +2391,15 @@ inline flatbuffers::Offset CreateMonsterDirect( scalar_key_sorted_tables__, native_inline, long_enum_non_enum_default, - long_enum_normal_default); + long_enum_normal_default, + nan_default, + inf_default, + positive_inf_default, + infinity_default, + positive_infinity_default, + negative_inf_default, + negative_infinity_default, + double_inf_default); } flatbuffers::Offset CreateMonster(flatbuffers::FlatBufferBuilder &_fbb, const MonsterT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); @@ -2767,7 +2895,15 @@ inline bool operator==(const MonsterT &lhs, const MonsterT &rhs) { (lhs.scalar_key_sorted_tables.size() == rhs.scalar_key_sorted_tables.size() && std::equal(lhs.scalar_key_sorted_tables.cbegin(), lhs.scalar_key_sorted_tables.cend(), rhs.scalar_key_sorted_tables.cbegin(), [](flatbuffers::unique_ptr const &a, flatbuffers::unique_ptr const &b) { return (a == b) || (a && b && *a == *b); })) && (lhs.native_inline == rhs.native_inline) && (lhs.long_enum_non_enum_default == rhs.long_enum_non_enum_default) && - (lhs.long_enum_normal_default == rhs.long_enum_normal_default); + (lhs.long_enum_normal_default == rhs.long_enum_normal_default) && + (lhs.nan_default == rhs.nan_default) && + (lhs.inf_default == rhs.inf_default) && + (lhs.positive_inf_default == rhs.positive_inf_default) && + (lhs.infinity_default == rhs.infinity_default) && + (lhs.positive_infinity_default == rhs.positive_infinity_default) && + (lhs.negative_inf_default == rhs.negative_inf_default) && + (lhs.negative_infinity_default == rhs.negative_infinity_default) && + (lhs.double_inf_default == rhs.double_inf_default); } inline bool operator!=(const MonsterT &lhs, const MonsterT &rhs) { @@ -2820,7 +2956,15 @@ inline MonsterT::MonsterT(const MonsterT &o) testrequirednestedflatbuffer(o.testrequirednestedflatbuffer), native_inline(o.native_inline), long_enum_non_enum_default(o.long_enum_non_enum_default), - long_enum_normal_default(o.long_enum_normal_default) { + long_enum_normal_default(o.long_enum_normal_default), + nan_default(o.nan_default), + inf_default(o.inf_default), + positive_inf_default(o.positive_inf_default), + infinity_default(o.infinity_default), + positive_infinity_default(o.positive_infinity_default), + negative_inf_default(o.negative_inf_default), + negative_infinity_default(o.negative_infinity_default), + double_inf_default(o.double_inf_default) { testarrayoftables.reserve(o.testarrayoftables.size()); for (const auto &testarrayoftables_ : o.testarrayoftables) { testarrayoftables.emplace_back((testarrayoftables_) ? new MyGame::Example::MonsterT(*testarrayoftables_) : nullptr); } vector_of_referrables.reserve(o.vector_of_referrables.size()); @@ -2884,6 +3028,14 @@ inline MonsterT &MonsterT::operator=(MonsterT o) FLATBUFFERS_NOEXCEPT { std::swap(native_inline, o.native_inline); std::swap(long_enum_non_enum_default, o.long_enum_non_enum_default); std::swap(long_enum_normal_default, o.long_enum_normal_default); + std::swap(nan_default, o.nan_default); + std::swap(inf_default, o.inf_default); + std::swap(positive_inf_default, o.positive_inf_default); + std::swap(infinity_default, o.infinity_default); + std::swap(positive_infinity_default, o.positive_infinity_default); + std::swap(negative_inf_default, o.negative_inf_default); + std::swap(negative_infinity_default, o.negative_infinity_default); + std::swap(double_inf_default, o.double_inf_default); return *this; } @@ -2949,6 +3101,14 @@ inline void Monster::UnPackTo(MonsterT *_o, const flatbuffers::resolver_function { auto _e = native_inline(); if (_e) _o->native_inline = *_e; } { auto _e = long_enum_non_enum_default(); _o->long_enum_non_enum_default = _e; } { auto _e = long_enum_normal_default(); _o->long_enum_normal_default = _e; } + { auto _e = nan_default(); _o->nan_default = _e; } + { auto _e = inf_default(); _o->inf_default = _e; } + { auto _e = positive_inf_default(); _o->positive_inf_default = _e; } + { auto _e = infinity_default(); _o->infinity_default = _e; } + { auto _e = positive_infinity_default(); _o->positive_infinity_default = _e; } + { auto _e = negative_inf_default(); _o->negative_inf_default = _e; } + { auto _e = negative_infinity_default(); _o->negative_infinity_default = _e; } + { auto _e = double_inf_default(); _o->double_inf_default = _e; } } inline flatbuffers::Offset Monster::Pack(flatbuffers::FlatBufferBuilder &_fbb, const MonsterT* _o, const flatbuffers::rehasher_function_t *_rehasher) { @@ -3012,6 +3172,14 @@ inline flatbuffers::Offset CreateMonster(flatbuffers::FlatBufferBuilder auto _native_inline = &_o->native_inline; auto _long_enum_non_enum_default = _o->long_enum_non_enum_default; auto _long_enum_normal_default = _o->long_enum_normal_default; + auto _nan_default = _o->nan_default; + auto _inf_default = _o->inf_default; + auto _positive_inf_default = _o->positive_inf_default; + auto _infinity_default = _o->infinity_default; + auto _positive_infinity_default = _o->positive_infinity_default; + auto _negative_inf_default = _o->negative_inf_default; + auto _negative_infinity_default = _o->negative_infinity_default; + auto _double_inf_default = _o->double_inf_default; return MyGame::Example::CreateMonster( _fbb, _pos, @@ -3066,7 +3234,15 @@ inline flatbuffers::Offset CreateMonster(flatbuffers::FlatBufferBuilder _scalar_key_sorted_tables, _native_inline, _long_enum_non_enum_default, - _long_enum_normal_default); + _long_enum_normal_default, + _nan_default, + _inf_default, + _positive_inf_default, + _infinity_default, + _positive_infinity_default, + _negative_inf_default, + _negative_infinity_default, + _double_inf_default); } @@ -3846,7 +4022,15 @@ inline const flatbuffers::TypeTable *MonsterTypeTable() { { flatbuffers::ET_SEQUENCE, 1, 5 }, { flatbuffers::ET_SEQUENCE, 0, 3 }, { flatbuffers::ET_ULONG, 0, 12 }, - { flatbuffers::ET_ULONG, 0, 12 } + { flatbuffers::ET_ULONG, 0, 12 }, + { flatbuffers::ET_FLOAT, 0, -1 }, + { flatbuffers::ET_FLOAT, 0, -1 }, + { flatbuffers::ET_FLOAT, 0, -1 }, + { flatbuffers::ET_FLOAT, 0, -1 }, + { flatbuffers::ET_FLOAT, 0, -1 }, + { flatbuffers::ET_FLOAT, 0, -1 }, + { flatbuffers::ET_FLOAT, 0, -1 }, + { flatbuffers::ET_DOUBLE, 0, -1 } }; static const flatbuffers::TypeFunction type_refs[] = { MyGame::Example::Vec3TypeTable, @@ -3917,10 +4101,18 @@ inline const flatbuffers::TypeTable *MonsterTypeTable() { "scalar_key_sorted_tables", "native_inline", "long_enum_non_enum_default", - "long_enum_normal_default" + "long_enum_normal_default", + "nan_default", + "inf_default", + "positive_inf_default", + "infinity_default", + "positive_infinity_default", + "negative_inf_default", + "negative_infinity_default", + "double_inf_default" }; static const flatbuffers::TypeTable tt = { - flatbuffers::ST_TABLE, 54, type_codes, type_refs, nullptr, nullptr, names + flatbuffers::ST_TABLE, 62, type_codes, type_refs, nullptr, nullptr, names }; return &tt; } diff --git a/tests/monster_test_suffix/filesuffix_only/monster_test_suffix.h b/tests/monster_test_suffix/filesuffix_only/monster_test_suffix.h index fd6387c8b2..ce5acf8357 100644 --- a/tests/monster_test_suffix/filesuffix_only/monster_test_suffix.h +++ b/tests/monster_test_suffix/filesuffix_only/monster_test_suffix.h @@ -1309,6 +1309,14 @@ struct MonsterT : public flatbuffers::NativeTable { MyGame::Example::Test native_inline{}; MyGame::Example::LongEnum long_enum_non_enum_default = static_cast(0); MyGame::Example::LongEnum long_enum_normal_default = MyGame::Example::LongEnum_LongOne; + float nan_default = std::numeric_limits::quiet_NaN(); + float inf_default = std::numeric_limits::infinity(); + float positive_inf_default = std::numeric_limits::infinity(); + float infinity_default = std::numeric_limits::infinity(); + float positive_infinity_default = std::numeric_limits::infinity(); + float negative_inf_default = -std::numeric_limits::infinity(); + float negative_infinity_default = -std::numeric_limits::infinity(); + double double_inf_default = std::numeric_limits::infinity(); MonsterT() = default; MonsterT(const MonsterT &o); MonsterT(MonsterT&&) FLATBUFFERS_NOEXCEPT = default; @@ -1375,7 +1383,15 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { VT_SCALAR_KEY_SORTED_TABLES = 104, VT_NATIVE_INLINE = 106, VT_LONG_ENUM_NON_ENUM_DEFAULT = 108, - VT_LONG_ENUM_NORMAL_DEFAULT = 110 + VT_LONG_ENUM_NORMAL_DEFAULT = 110, + VT_NAN_DEFAULT = 112, + VT_INF_DEFAULT = 114, + VT_POSITIVE_INF_DEFAULT = 116, + VT_INFINITY_DEFAULT = 118, + VT_POSITIVE_INFINITY_DEFAULT = 120, + VT_NEGATIVE_INF_DEFAULT = 122, + VT_NEGATIVE_INFINITY_DEFAULT = 124, + VT_DOUBLE_INF_DEFAULT = 126 }; const MyGame::Example::Vec3 *pos() const { return GetStruct(VT_POS); @@ -1732,6 +1748,54 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { bool mutate_long_enum_normal_default(MyGame::Example::LongEnum _long_enum_normal_default = static_cast(2ULL)) { return SetField(VT_LONG_ENUM_NORMAL_DEFAULT, static_cast(_long_enum_normal_default), 2ULL); } + float nan_default() const { + return GetField(VT_NAN_DEFAULT, std::numeric_limits::quiet_NaN()); + } + bool mutate_nan_default(float _nan_default = std::numeric_limits::quiet_NaN()) { + return SetField(VT_NAN_DEFAULT, _nan_default, std::numeric_limits::quiet_NaN()); + } + float inf_default() const { + return GetField(VT_INF_DEFAULT, std::numeric_limits::infinity()); + } + bool mutate_inf_default(float _inf_default = std::numeric_limits::infinity()) { + return SetField(VT_INF_DEFAULT, _inf_default, std::numeric_limits::infinity()); + } + float positive_inf_default() const { + return GetField(VT_POSITIVE_INF_DEFAULT, std::numeric_limits::infinity()); + } + bool mutate_positive_inf_default(float _positive_inf_default = std::numeric_limits::infinity()) { + return SetField(VT_POSITIVE_INF_DEFAULT, _positive_inf_default, std::numeric_limits::infinity()); + } + float infinity_default() const { + return GetField(VT_INFINITY_DEFAULT, std::numeric_limits::infinity()); + } + bool mutate_infinity_default(float _infinity_default = std::numeric_limits::infinity()) { + return SetField(VT_INFINITY_DEFAULT, _infinity_default, std::numeric_limits::infinity()); + } + float positive_infinity_default() const { + return GetField(VT_POSITIVE_INFINITY_DEFAULT, std::numeric_limits::infinity()); + } + bool mutate_positive_infinity_default(float _positive_infinity_default = std::numeric_limits::infinity()) { + return SetField(VT_POSITIVE_INFINITY_DEFAULT, _positive_infinity_default, std::numeric_limits::infinity()); + } + float negative_inf_default() const { + return GetField(VT_NEGATIVE_INF_DEFAULT, -std::numeric_limits::infinity()); + } + bool mutate_negative_inf_default(float _negative_inf_default = -std::numeric_limits::infinity()) { + return SetField(VT_NEGATIVE_INF_DEFAULT, _negative_inf_default, -std::numeric_limits::infinity()); + } + float negative_infinity_default() const { + return GetField(VT_NEGATIVE_INFINITY_DEFAULT, -std::numeric_limits::infinity()); + } + bool mutate_negative_infinity_default(float _negative_infinity_default = -std::numeric_limits::infinity()) { + return SetField(VT_NEGATIVE_INFINITY_DEFAULT, _negative_infinity_default, -std::numeric_limits::infinity()); + } + double double_inf_default() const { + return GetField(VT_DOUBLE_INF_DEFAULT, std::numeric_limits::infinity()); + } + bool mutate_double_inf_default(double _double_inf_default = std::numeric_limits::infinity()) { + return SetField(VT_DOUBLE_INF_DEFAULT, _double_inf_default, std::numeric_limits::infinity()); + } bool Verify(flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_POS, 8) && @@ -1823,6 +1887,14 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { VerifyField(verifier, VT_NATIVE_INLINE, 2) && VerifyField(verifier, VT_LONG_ENUM_NON_ENUM_DEFAULT, 8) && VerifyField(verifier, VT_LONG_ENUM_NORMAL_DEFAULT, 8) && + VerifyField(verifier, VT_NAN_DEFAULT, 4) && + VerifyField(verifier, VT_INF_DEFAULT, 4) && + VerifyField(verifier, VT_POSITIVE_INF_DEFAULT, 4) && + VerifyField(verifier, VT_INFINITY_DEFAULT, 4) && + VerifyField(verifier, VT_POSITIVE_INFINITY_DEFAULT, 4) && + VerifyField(verifier, VT_NEGATIVE_INF_DEFAULT, 4) && + VerifyField(verifier, VT_NEGATIVE_INFINITY_DEFAULT, 4) && + VerifyField(verifier, VT_DOUBLE_INF_DEFAULT, 8) && verifier.EndTable(); } MonsterT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; @@ -2017,6 +2089,30 @@ struct MonsterBuilder { void add_long_enum_normal_default(MyGame::Example::LongEnum long_enum_normal_default) { fbb_.AddElement(Monster::VT_LONG_ENUM_NORMAL_DEFAULT, static_cast(long_enum_normal_default), 2ULL); } + void add_nan_default(float nan_default) { + fbb_.AddElement(Monster::VT_NAN_DEFAULT, nan_default, std::numeric_limits::quiet_NaN()); + } + void add_inf_default(float inf_default) { + fbb_.AddElement(Monster::VT_INF_DEFAULT, inf_default, std::numeric_limits::infinity()); + } + void add_positive_inf_default(float positive_inf_default) { + fbb_.AddElement(Monster::VT_POSITIVE_INF_DEFAULT, positive_inf_default, std::numeric_limits::infinity()); + } + void add_infinity_default(float infinity_default) { + fbb_.AddElement(Monster::VT_INFINITY_DEFAULT, infinity_default, std::numeric_limits::infinity()); + } + void add_positive_infinity_default(float positive_infinity_default) { + fbb_.AddElement(Monster::VT_POSITIVE_INFINITY_DEFAULT, positive_infinity_default, std::numeric_limits::infinity()); + } + void add_negative_inf_default(float negative_inf_default) { + fbb_.AddElement(Monster::VT_NEGATIVE_INF_DEFAULT, negative_inf_default, -std::numeric_limits::infinity()); + } + void add_negative_infinity_default(float negative_infinity_default) { + fbb_.AddElement(Monster::VT_NEGATIVE_INFINITY_DEFAULT, negative_infinity_default, -std::numeric_limits::infinity()); + } + void add_double_inf_default(double double_inf_default) { + fbb_.AddElement(Monster::VT_DOUBLE_INF_DEFAULT, double_inf_default, std::numeric_limits::infinity()); + } explicit MonsterBuilder(flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); @@ -2083,8 +2179,17 @@ inline flatbuffers::Offset CreateMonster( flatbuffers::Offset>> scalar_key_sorted_tables = 0, const MyGame::Example::Test *native_inline = nullptr, MyGame::Example::LongEnum long_enum_non_enum_default = static_cast(0), - MyGame::Example::LongEnum long_enum_normal_default = MyGame::Example::LongEnum_LongOne) { + MyGame::Example::LongEnum long_enum_normal_default = MyGame::Example::LongEnum_LongOne, + float nan_default = std::numeric_limits::quiet_NaN(), + float inf_default = std::numeric_limits::infinity(), + float positive_inf_default = std::numeric_limits::infinity(), + float infinity_default = std::numeric_limits::infinity(), + float positive_infinity_default = std::numeric_limits::infinity(), + float negative_inf_default = -std::numeric_limits::infinity(), + float negative_infinity_default = -std::numeric_limits::infinity(), + double double_inf_default = std::numeric_limits::infinity()) { MonsterBuilder builder_(_fbb); + builder_.add_double_inf_default(double_inf_default); builder_.add_long_enum_normal_default(long_enum_normal_default); builder_.add_long_enum_non_enum_default(long_enum_non_enum_default); builder_.add_non_owning_reference(non_owning_reference); @@ -2094,6 +2199,13 @@ inline flatbuffers::Offset CreateMonster( builder_.add_testhashs64_fnv1a(testhashs64_fnv1a); builder_.add_testhashu64_fnv1(testhashu64_fnv1); builder_.add_testhashs64_fnv1(testhashs64_fnv1); + builder_.add_negative_infinity_default(negative_infinity_default); + builder_.add_negative_inf_default(negative_inf_default); + builder_.add_positive_infinity_default(positive_infinity_default); + builder_.add_infinity_default(infinity_default); + builder_.add_positive_inf_default(positive_inf_default); + builder_.add_inf_default(inf_default); + builder_.add_nan_default(nan_default); builder_.add_native_inline(native_inline); builder_.add_scalar_key_sorted_tables(scalar_key_sorted_tables); builder_.add_testrequirednestedflatbuffer(testrequirednestedflatbuffer); @@ -2195,7 +2307,15 @@ inline flatbuffers::Offset CreateMonsterDirect( std::vector> *scalar_key_sorted_tables = nullptr, const MyGame::Example::Test *native_inline = nullptr, MyGame::Example::LongEnum long_enum_non_enum_default = static_cast(0), - MyGame::Example::LongEnum long_enum_normal_default = MyGame::Example::LongEnum_LongOne) { + MyGame::Example::LongEnum long_enum_normal_default = MyGame::Example::LongEnum_LongOne, + float nan_default = std::numeric_limits::quiet_NaN(), + float inf_default = std::numeric_limits::infinity(), + float positive_inf_default = std::numeric_limits::infinity(), + float infinity_default = std::numeric_limits::infinity(), + float positive_infinity_default = std::numeric_limits::infinity(), + float negative_inf_default = -std::numeric_limits::infinity(), + float negative_infinity_default = -std::numeric_limits::infinity(), + double double_inf_default = std::numeric_limits::infinity()) { auto name__ = name ? _fbb.CreateString(name) : 0; auto inventory__ = inventory ? _fbb.CreateVector(*inventory) : 0; auto test4__ = test4 ? _fbb.CreateVectorOfStructs(*test4) : 0; @@ -2271,7 +2391,15 @@ inline flatbuffers::Offset CreateMonsterDirect( scalar_key_sorted_tables__, native_inline, long_enum_non_enum_default, - long_enum_normal_default); + long_enum_normal_default, + nan_default, + inf_default, + positive_inf_default, + infinity_default, + positive_infinity_default, + negative_inf_default, + negative_infinity_default, + double_inf_default); } flatbuffers::Offset CreateMonster(flatbuffers::FlatBufferBuilder &_fbb, const MonsterT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); @@ -2767,7 +2895,15 @@ inline bool operator==(const MonsterT &lhs, const MonsterT &rhs) { (lhs.scalar_key_sorted_tables.size() == rhs.scalar_key_sorted_tables.size() && std::equal(lhs.scalar_key_sorted_tables.cbegin(), lhs.scalar_key_sorted_tables.cend(), rhs.scalar_key_sorted_tables.cbegin(), [](flatbuffers::unique_ptr const &a, flatbuffers::unique_ptr const &b) { return (a == b) || (a && b && *a == *b); })) && (lhs.native_inline == rhs.native_inline) && (lhs.long_enum_non_enum_default == rhs.long_enum_non_enum_default) && - (lhs.long_enum_normal_default == rhs.long_enum_normal_default); + (lhs.long_enum_normal_default == rhs.long_enum_normal_default) && + (lhs.nan_default == rhs.nan_default) && + (lhs.inf_default == rhs.inf_default) && + (lhs.positive_inf_default == rhs.positive_inf_default) && + (lhs.infinity_default == rhs.infinity_default) && + (lhs.positive_infinity_default == rhs.positive_infinity_default) && + (lhs.negative_inf_default == rhs.negative_inf_default) && + (lhs.negative_infinity_default == rhs.negative_infinity_default) && + (lhs.double_inf_default == rhs.double_inf_default); } inline bool operator!=(const MonsterT &lhs, const MonsterT &rhs) { @@ -2820,7 +2956,15 @@ inline MonsterT::MonsterT(const MonsterT &o) testrequirednestedflatbuffer(o.testrequirednestedflatbuffer), native_inline(o.native_inline), long_enum_non_enum_default(o.long_enum_non_enum_default), - long_enum_normal_default(o.long_enum_normal_default) { + long_enum_normal_default(o.long_enum_normal_default), + nan_default(o.nan_default), + inf_default(o.inf_default), + positive_inf_default(o.positive_inf_default), + infinity_default(o.infinity_default), + positive_infinity_default(o.positive_infinity_default), + negative_inf_default(o.negative_inf_default), + negative_infinity_default(o.negative_infinity_default), + double_inf_default(o.double_inf_default) { testarrayoftables.reserve(o.testarrayoftables.size()); for (const auto &testarrayoftables_ : o.testarrayoftables) { testarrayoftables.emplace_back((testarrayoftables_) ? new MyGame::Example::MonsterT(*testarrayoftables_) : nullptr); } vector_of_referrables.reserve(o.vector_of_referrables.size()); @@ -2884,6 +3028,14 @@ inline MonsterT &MonsterT::operator=(MonsterT o) FLATBUFFERS_NOEXCEPT { std::swap(native_inline, o.native_inline); std::swap(long_enum_non_enum_default, o.long_enum_non_enum_default); std::swap(long_enum_normal_default, o.long_enum_normal_default); + std::swap(nan_default, o.nan_default); + std::swap(inf_default, o.inf_default); + std::swap(positive_inf_default, o.positive_inf_default); + std::swap(infinity_default, o.infinity_default); + std::swap(positive_infinity_default, o.positive_infinity_default); + std::swap(negative_inf_default, o.negative_inf_default); + std::swap(negative_infinity_default, o.negative_infinity_default); + std::swap(double_inf_default, o.double_inf_default); return *this; } @@ -2949,6 +3101,14 @@ inline void Monster::UnPackTo(MonsterT *_o, const flatbuffers::resolver_function { auto _e = native_inline(); if (_e) _o->native_inline = *_e; } { auto _e = long_enum_non_enum_default(); _o->long_enum_non_enum_default = _e; } { auto _e = long_enum_normal_default(); _o->long_enum_normal_default = _e; } + { auto _e = nan_default(); _o->nan_default = _e; } + { auto _e = inf_default(); _o->inf_default = _e; } + { auto _e = positive_inf_default(); _o->positive_inf_default = _e; } + { auto _e = infinity_default(); _o->infinity_default = _e; } + { auto _e = positive_infinity_default(); _o->positive_infinity_default = _e; } + { auto _e = negative_inf_default(); _o->negative_inf_default = _e; } + { auto _e = negative_infinity_default(); _o->negative_infinity_default = _e; } + { auto _e = double_inf_default(); _o->double_inf_default = _e; } } inline flatbuffers::Offset Monster::Pack(flatbuffers::FlatBufferBuilder &_fbb, const MonsterT* _o, const flatbuffers::rehasher_function_t *_rehasher) { @@ -3012,6 +3172,14 @@ inline flatbuffers::Offset CreateMonster(flatbuffers::FlatBufferBuilder auto _native_inline = &_o->native_inline; auto _long_enum_non_enum_default = _o->long_enum_non_enum_default; auto _long_enum_normal_default = _o->long_enum_normal_default; + auto _nan_default = _o->nan_default; + auto _inf_default = _o->inf_default; + auto _positive_inf_default = _o->positive_inf_default; + auto _infinity_default = _o->infinity_default; + auto _positive_infinity_default = _o->positive_infinity_default; + auto _negative_inf_default = _o->negative_inf_default; + auto _negative_infinity_default = _o->negative_infinity_default; + auto _double_inf_default = _o->double_inf_default; return MyGame::Example::CreateMonster( _fbb, _pos, @@ -3066,7 +3234,15 @@ inline flatbuffers::Offset CreateMonster(flatbuffers::FlatBufferBuilder _scalar_key_sorted_tables, _native_inline, _long_enum_non_enum_default, - _long_enum_normal_default); + _long_enum_normal_default, + _nan_default, + _inf_default, + _positive_inf_default, + _infinity_default, + _positive_infinity_default, + _negative_inf_default, + _negative_infinity_default, + _double_inf_default); } @@ -3846,7 +4022,15 @@ inline const flatbuffers::TypeTable *MonsterTypeTable() { { flatbuffers::ET_SEQUENCE, 1, 5 }, { flatbuffers::ET_SEQUENCE, 0, 3 }, { flatbuffers::ET_ULONG, 0, 12 }, - { flatbuffers::ET_ULONG, 0, 12 } + { flatbuffers::ET_ULONG, 0, 12 }, + { flatbuffers::ET_FLOAT, 0, -1 }, + { flatbuffers::ET_FLOAT, 0, -1 }, + { flatbuffers::ET_FLOAT, 0, -1 }, + { flatbuffers::ET_FLOAT, 0, -1 }, + { flatbuffers::ET_FLOAT, 0, -1 }, + { flatbuffers::ET_FLOAT, 0, -1 }, + { flatbuffers::ET_FLOAT, 0, -1 }, + { flatbuffers::ET_DOUBLE, 0, -1 } }; static const flatbuffers::TypeFunction type_refs[] = { MyGame::Example::Vec3TypeTable, @@ -3917,10 +4101,18 @@ inline const flatbuffers::TypeTable *MonsterTypeTable() { "scalar_key_sorted_tables", "native_inline", "long_enum_non_enum_default", - "long_enum_normal_default" + "long_enum_normal_default", + "nan_default", + "inf_default", + "positive_inf_default", + "infinity_default", + "positive_infinity_default", + "negative_inf_default", + "negative_infinity_default", + "double_inf_default" }; static const flatbuffers::TypeTable tt = { - flatbuffers::ST_TABLE, 54, type_codes, type_refs, nullptr, nullptr, names + flatbuffers::ST_TABLE, 62, type_codes, type_refs, nullptr, nullptr, names }; return &tt; } diff --git a/tests/monster_test_suffix/monster_test_suffix.hpp b/tests/monster_test_suffix/monster_test_suffix.hpp index fd6387c8b2..ce5acf8357 100644 --- a/tests/monster_test_suffix/monster_test_suffix.hpp +++ b/tests/monster_test_suffix/monster_test_suffix.hpp @@ -1309,6 +1309,14 @@ struct MonsterT : public flatbuffers::NativeTable { MyGame::Example::Test native_inline{}; MyGame::Example::LongEnum long_enum_non_enum_default = static_cast(0); MyGame::Example::LongEnum long_enum_normal_default = MyGame::Example::LongEnum_LongOne; + float nan_default = std::numeric_limits::quiet_NaN(); + float inf_default = std::numeric_limits::infinity(); + float positive_inf_default = std::numeric_limits::infinity(); + float infinity_default = std::numeric_limits::infinity(); + float positive_infinity_default = std::numeric_limits::infinity(); + float negative_inf_default = -std::numeric_limits::infinity(); + float negative_infinity_default = -std::numeric_limits::infinity(); + double double_inf_default = std::numeric_limits::infinity(); MonsterT() = default; MonsterT(const MonsterT &o); MonsterT(MonsterT&&) FLATBUFFERS_NOEXCEPT = default; @@ -1375,7 +1383,15 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { VT_SCALAR_KEY_SORTED_TABLES = 104, VT_NATIVE_INLINE = 106, VT_LONG_ENUM_NON_ENUM_DEFAULT = 108, - VT_LONG_ENUM_NORMAL_DEFAULT = 110 + VT_LONG_ENUM_NORMAL_DEFAULT = 110, + VT_NAN_DEFAULT = 112, + VT_INF_DEFAULT = 114, + VT_POSITIVE_INF_DEFAULT = 116, + VT_INFINITY_DEFAULT = 118, + VT_POSITIVE_INFINITY_DEFAULT = 120, + VT_NEGATIVE_INF_DEFAULT = 122, + VT_NEGATIVE_INFINITY_DEFAULT = 124, + VT_DOUBLE_INF_DEFAULT = 126 }; const MyGame::Example::Vec3 *pos() const { return GetStruct(VT_POS); @@ -1732,6 +1748,54 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { bool mutate_long_enum_normal_default(MyGame::Example::LongEnum _long_enum_normal_default = static_cast(2ULL)) { return SetField(VT_LONG_ENUM_NORMAL_DEFAULT, static_cast(_long_enum_normal_default), 2ULL); } + float nan_default() const { + return GetField(VT_NAN_DEFAULT, std::numeric_limits::quiet_NaN()); + } + bool mutate_nan_default(float _nan_default = std::numeric_limits::quiet_NaN()) { + return SetField(VT_NAN_DEFAULT, _nan_default, std::numeric_limits::quiet_NaN()); + } + float inf_default() const { + return GetField(VT_INF_DEFAULT, std::numeric_limits::infinity()); + } + bool mutate_inf_default(float _inf_default = std::numeric_limits::infinity()) { + return SetField(VT_INF_DEFAULT, _inf_default, std::numeric_limits::infinity()); + } + float positive_inf_default() const { + return GetField(VT_POSITIVE_INF_DEFAULT, std::numeric_limits::infinity()); + } + bool mutate_positive_inf_default(float _positive_inf_default = std::numeric_limits::infinity()) { + return SetField(VT_POSITIVE_INF_DEFAULT, _positive_inf_default, std::numeric_limits::infinity()); + } + float infinity_default() const { + return GetField(VT_INFINITY_DEFAULT, std::numeric_limits::infinity()); + } + bool mutate_infinity_default(float _infinity_default = std::numeric_limits::infinity()) { + return SetField(VT_INFINITY_DEFAULT, _infinity_default, std::numeric_limits::infinity()); + } + float positive_infinity_default() const { + return GetField(VT_POSITIVE_INFINITY_DEFAULT, std::numeric_limits::infinity()); + } + bool mutate_positive_infinity_default(float _positive_infinity_default = std::numeric_limits::infinity()) { + return SetField(VT_POSITIVE_INFINITY_DEFAULT, _positive_infinity_default, std::numeric_limits::infinity()); + } + float negative_inf_default() const { + return GetField(VT_NEGATIVE_INF_DEFAULT, -std::numeric_limits::infinity()); + } + bool mutate_negative_inf_default(float _negative_inf_default = -std::numeric_limits::infinity()) { + return SetField(VT_NEGATIVE_INF_DEFAULT, _negative_inf_default, -std::numeric_limits::infinity()); + } + float negative_infinity_default() const { + return GetField(VT_NEGATIVE_INFINITY_DEFAULT, -std::numeric_limits::infinity()); + } + bool mutate_negative_infinity_default(float _negative_infinity_default = -std::numeric_limits::infinity()) { + return SetField(VT_NEGATIVE_INFINITY_DEFAULT, _negative_infinity_default, -std::numeric_limits::infinity()); + } + double double_inf_default() const { + return GetField(VT_DOUBLE_INF_DEFAULT, std::numeric_limits::infinity()); + } + bool mutate_double_inf_default(double _double_inf_default = std::numeric_limits::infinity()) { + return SetField(VT_DOUBLE_INF_DEFAULT, _double_inf_default, std::numeric_limits::infinity()); + } bool Verify(flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_POS, 8) && @@ -1823,6 +1887,14 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { VerifyField(verifier, VT_NATIVE_INLINE, 2) && VerifyField(verifier, VT_LONG_ENUM_NON_ENUM_DEFAULT, 8) && VerifyField(verifier, VT_LONG_ENUM_NORMAL_DEFAULT, 8) && + VerifyField(verifier, VT_NAN_DEFAULT, 4) && + VerifyField(verifier, VT_INF_DEFAULT, 4) && + VerifyField(verifier, VT_POSITIVE_INF_DEFAULT, 4) && + VerifyField(verifier, VT_INFINITY_DEFAULT, 4) && + VerifyField(verifier, VT_POSITIVE_INFINITY_DEFAULT, 4) && + VerifyField(verifier, VT_NEGATIVE_INF_DEFAULT, 4) && + VerifyField(verifier, VT_NEGATIVE_INFINITY_DEFAULT, 4) && + VerifyField(verifier, VT_DOUBLE_INF_DEFAULT, 8) && verifier.EndTable(); } MonsterT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; @@ -2017,6 +2089,30 @@ struct MonsterBuilder { void add_long_enum_normal_default(MyGame::Example::LongEnum long_enum_normal_default) { fbb_.AddElement(Monster::VT_LONG_ENUM_NORMAL_DEFAULT, static_cast(long_enum_normal_default), 2ULL); } + void add_nan_default(float nan_default) { + fbb_.AddElement(Monster::VT_NAN_DEFAULT, nan_default, std::numeric_limits::quiet_NaN()); + } + void add_inf_default(float inf_default) { + fbb_.AddElement(Monster::VT_INF_DEFAULT, inf_default, std::numeric_limits::infinity()); + } + void add_positive_inf_default(float positive_inf_default) { + fbb_.AddElement(Monster::VT_POSITIVE_INF_DEFAULT, positive_inf_default, std::numeric_limits::infinity()); + } + void add_infinity_default(float infinity_default) { + fbb_.AddElement(Monster::VT_INFINITY_DEFAULT, infinity_default, std::numeric_limits::infinity()); + } + void add_positive_infinity_default(float positive_infinity_default) { + fbb_.AddElement(Monster::VT_POSITIVE_INFINITY_DEFAULT, positive_infinity_default, std::numeric_limits::infinity()); + } + void add_negative_inf_default(float negative_inf_default) { + fbb_.AddElement(Monster::VT_NEGATIVE_INF_DEFAULT, negative_inf_default, -std::numeric_limits::infinity()); + } + void add_negative_infinity_default(float negative_infinity_default) { + fbb_.AddElement(Monster::VT_NEGATIVE_INFINITY_DEFAULT, negative_infinity_default, -std::numeric_limits::infinity()); + } + void add_double_inf_default(double double_inf_default) { + fbb_.AddElement(Monster::VT_DOUBLE_INF_DEFAULT, double_inf_default, std::numeric_limits::infinity()); + } explicit MonsterBuilder(flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); @@ -2083,8 +2179,17 @@ inline flatbuffers::Offset CreateMonster( flatbuffers::Offset>> scalar_key_sorted_tables = 0, const MyGame::Example::Test *native_inline = nullptr, MyGame::Example::LongEnum long_enum_non_enum_default = static_cast(0), - MyGame::Example::LongEnum long_enum_normal_default = MyGame::Example::LongEnum_LongOne) { + MyGame::Example::LongEnum long_enum_normal_default = MyGame::Example::LongEnum_LongOne, + float nan_default = std::numeric_limits::quiet_NaN(), + float inf_default = std::numeric_limits::infinity(), + float positive_inf_default = std::numeric_limits::infinity(), + float infinity_default = std::numeric_limits::infinity(), + float positive_infinity_default = std::numeric_limits::infinity(), + float negative_inf_default = -std::numeric_limits::infinity(), + float negative_infinity_default = -std::numeric_limits::infinity(), + double double_inf_default = std::numeric_limits::infinity()) { MonsterBuilder builder_(_fbb); + builder_.add_double_inf_default(double_inf_default); builder_.add_long_enum_normal_default(long_enum_normal_default); builder_.add_long_enum_non_enum_default(long_enum_non_enum_default); builder_.add_non_owning_reference(non_owning_reference); @@ -2094,6 +2199,13 @@ inline flatbuffers::Offset CreateMonster( builder_.add_testhashs64_fnv1a(testhashs64_fnv1a); builder_.add_testhashu64_fnv1(testhashu64_fnv1); builder_.add_testhashs64_fnv1(testhashs64_fnv1); + builder_.add_negative_infinity_default(negative_infinity_default); + builder_.add_negative_inf_default(negative_inf_default); + builder_.add_positive_infinity_default(positive_infinity_default); + builder_.add_infinity_default(infinity_default); + builder_.add_positive_inf_default(positive_inf_default); + builder_.add_inf_default(inf_default); + builder_.add_nan_default(nan_default); builder_.add_native_inline(native_inline); builder_.add_scalar_key_sorted_tables(scalar_key_sorted_tables); builder_.add_testrequirednestedflatbuffer(testrequirednestedflatbuffer); @@ -2195,7 +2307,15 @@ inline flatbuffers::Offset CreateMonsterDirect( std::vector> *scalar_key_sorted_tables = nullptr, const MyGame::Example::Test *native_inline = nullptr, MyGame::Example::LongEnum long_enum_non_enum_default = static_cast(0), - MyGame::Example::LongEnum long_enum_normal_default = MyGame::Example::LongEnum_LongOne) { + MyGame::Example::LongEnum long_enum_normal_default = MyGame::Example::LongEnum_LongOne, + float nan_default = std::numeric_limits::quiet_NaN(), + float inf_default = std::numeric_limits::infinity(), + float positive_inf_default = std::numeric_limits::infinity(), + float infinity_default = std::numeric_limits::infinity(), + float positive_infinity_default = std::numeric_limits::infinity(), + float negative_inf_default = -std::numeric_limits::infinity(), + float negative_infinity_default = -std::numeric_limits::infinity(), + double double_inf_default = std::numeric_limits::infinity()) { auto name__ = name ? _fbb.CreateString(name) : 0; auto inventory__ = inventory ? _fbb.CreateVector(*inventory) : 0; auto test4__ = test4 ? _fbb.CreateVectorOfStructs(*test4) : 0; @@ -2271,7 +2391,15 @@ inline flatbuffers::Offset CreateMonsterDirect( scalar_key_sorted_tables__, native_inline, long_enum_non_enum_default, - long_enum_normal_default); + long_enum_normal_default, + nan_default, + inf_default, + positive_inf_default, + infinity_default, + positive_infinity_default, + negative_inf_default, + negative_infinity_default, + double_inf_default); } flatbuffers::Offset CreateMonster(flatbuffers::FlatBufferBuilder &_fbb, const MonsterT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); @@ -2767,7 +2895,15 @@ inline bool operator==(const MonsterT &lhs, const MonsterT &rhs) { (lhs.scalar_key_sorted_tables.size() == rhs.scalar_key_sorted_tables.size() && std::equal(lhs.scalar_key_sorted_tables.cbegin(), lhs.scalar_key_sorted_tables.cend(), rhs.scalar_key_sorted_tables.cbegin(), [](flatbuffers::unique_ptr const &a, flatbuffers::unique_ptr const &b) { return (a == b) || (a && b && *a == *b); })) && (lhs.native_inline == rhs.native_inline) && (lhs.long_enum_non_enum_default == rhs.long_enum_non_enum_default) && - (lhs.long_enum_normal_default == rhs.long_enum_normal_default); + (lhs.long_enum_normal_default == rhs.long_enum_normal_default) && + (lhs.nan_default == rhs.nan_default) && + (lhs.inf_default == rhs.inf_default) && + (lhs.positive_inf_default == rhs.positive_inf_default) && + (lhs.infinity_default == rhs.infinity_default) && + (lhs.positive_infinity_default == rhs.positive_infinity_default) && + (lhs.negative_inf_default == rhs.negative_inf_default) && + (lhs.negative_infinity_default == rhs.negative_infinity_default) && + (lhs.double_inf_default == rhs.double_inf_default); } inline bool operator!=(const MonsterT &lhs, const MonsterT &rhs) { @@ -2820,7 +2956,15 @@ inline MonsterT::MonsterT(const MonsterT &o) testrequirednestedflatbuffer(o.testrequirednestedflatbuffer), native_inline(o.native_inline), long_enum_non_enum_default(o.long_enum_non_enum_default), - long_enum_normal_default(o.long_enum_normal_default) { + long_enum_normal_default(o.long_enum_normal_default), + nan_default(o.nan_default), + inf_default(o.inf_default), + positive_inf_default(o.positive_inf_default), + infinity_default(o.infinity_default), + positive_infinity_default(o.positive_infinity_default), + negative_inf_default(o.negative_inf_default), + negative_infinity_default(o.negative_infinity_default), + double_inf_default(o.double_inf_default) { testarrayoftables.reserve(o.testarrayoftables.size()); for (const auto &testarrayoftables_ : o.testarrayoftables) { testarrayoftables.emplace_back((testarrayoftables_) ? new MyGame::Example::MonsterT(*testarrayoftables_) : nullptr); } vector_of_referrables.reserve(o.vector_of_referrables.size()); @@ -2884,6 +3028,14 @@ inline MonsterT &MonsterT::operator=(MonsterT o) FLATBUFFERS_NOEXCEPT { std::swap(native_inline, o.native_inline); std::swap(long_enum_non_enum_default, o.long_enum_non_enum_default); std::swap(long_enum_normal_default, o.long_enum_normal_default); + std::swap(nan_default, o.nan_default); + std::swap(inf_default, o.inf_default); + std::swap(positive_inf_default, o.positive_inf_default); + std::swap(infinity_default, o.infinity_default); + std::swap(positive_infinity_default, o.positive_infinity_default); + std::swap(negative_inf_default, o.negative_inf_default); + std::swap(negative_infinity_default, o.negative_infinity_default); + std::swap(double_inf_default, o.double_inf_default); return *this; } @@ -2949,6 +3101,14 @@ inline void Monster::UnPackTo(MonsterT *_o, const flatbuffers::resolver_function { auto _e = native_inline(); if (_e) _o->native_inline = *_e; } { auto _e = long_enum_non_enum_default(); _o->long_enum_non_enum_default = _e; } { auto _e = long_enum_normal_default(); _o->long_enum_normal_default = _e; } + { auto _e = nan_default(); _o->nan_default = _e; } + { auto _e = inf_default(); _o->inf_default = _e; } + { auto _e = positive_inf_default(); _o->positive_inf_default = _e; } + { auto _e = infinity_default(); _o->infinity_default = _e; } + { auto _e = positive_infinity_default(); _o->positive_infinity_default = _e; } + { auto _e = negative_inf_default(); _o->negative_inf_default = _e; } + { auto _e = negative_infinity_default(); _o->negative_infinity_default = _e; } + { auto _e = double_inf_default(); _o->double_inf_default = _e; } } inline flatbuffers::Offset Monster::Pack(flatbuffers::FlatBufferBuilder &_fbb, const MonsterT* _o, const flatbuffers::rehasher_function_t *_rehasher) { @@ -3012,6 +3172,14 @@ inline flatbuffers::Offset CreateMonster(flatbuffers::FlatBufferBuilder auto _native_inline = &_o->native_inline; auto _long_enum_non_enum_default = _o->long_enum_non_enum_default; auto _long_enum_normal_default = _o->long_enum_normal_default; + auto _nan_default = _o->nan_default; + auto _inf_default = _o->inf_default; + auto _positive_inf_default = _o->positive_inf_default; + auto _infinity_default = _o->infinity_default; + auto _positive_infinity_default = _o->positive_infinity_default; + auto _negative_inf_default = _o->negative_inf_default; + auto _negative_infinity_default = _o->negative_infinity_default; + auto _double_inf_default = _o->double_inf_default; return MyGame::Example::CreateMonster( _fbb, _pos, @@ -3066,7 +3234,15 @@ inline flatbuffers::Offset CreateMonster(flatbuffers::FlatBufferBuilder _scalar_key_sorted_tables, _native_inline, _long_enum_non_enum_default, - _long_enum_normal_default); + _long_enum_normal_default, + _nan_default, + _inf_default, + _positive_inf_default, + _infinity_default, + _positive_infinity_default, + _negative_inf_default, + _negative_infinity_default, + _double_inf_default); } @@ -3846,7 +4022,15 @@ inline const flatbuffers::TypeTable *MonsterTypeTable() { { flatbuffers::ET_SEQUENCE, 1, 5 }, { flatbuffers::ET_SEQUENCE, 0, 3 }, { flatbuffers::ET_ULONG, 0, 12 }, - { flatbuffers::ET_ULONG, 0, 12 } + { flatbuffers::ET_ULONG, 0, 12 }, + { flatbuffers::ET_FLOAT, 0, -1 }, + { flatbuffers::ET_FLOAT, 0, -1 }, + { flatbuffers::ET_FLOAT, 0, -1 }, + { flatbuffers::ET_FLOAT, 0, -1 }, + { flatbuffers::ET_FLOAT, 0, -1 }, + { flatbuffers::ET_FLOAT, 0, -1 }, + { flatbuffers::ET_FLOAT, 0, -1 }, + { flatbuffers::ET_DOUBLE, 0, -1 } }; static const flatbuffers::TypeFunction type_refs[] = { MyGame::Example::Vec3TypeTable, @@ -3917,10 +4101,18 @@ inline const flatbuffers::TypeTable *MonsterTypeTable() { "scalar_key_sorted_tables", "native_inline", "long_enum_non_enum_default", - "long_enum_normal_default" + "long_enum_normal_default", + "nan_default", + "inf_default", + "positive_inf_default", + "infinity_default", + "positive_infinity_default", + "negative_inf_default", + "negative_infinity_default", + "double_inf_default" }; static const flatbuffers::TypeTable tt = { - flatbuffers::ST_TABLE, 54, type_codes, type_refs, nullptr, nullptr, names + flatbuffers::ST_TABLE, 62, type_codes, type_refs, nullptr, nullptr, names }; return &tt; } diff --git a/tests/reflection_test.cpp b/tests/reflection_test.cpp index b48bd81983..9f92689519 100644 --- a/tests/reflection_test.cpp +++ b/tests/reflection_test.cpp @@ -266,10 +266,14 @@ void MiniReflectFlatBuffersTest(uint8_t *flatbuf) { "}, " "{ name: \"Wilma\" } ], " // TODO(wvo): should really print this nested buffer correctly. - "testnestedflatbuffer: [ 20, 0, 0, 0, 77, 79, 78, 83, 12, 0, 12, 0, 0, " - "0, " - "4, 0, 6, 0, 8, 0, 12, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 13, 0, 0, 0, 78, " - "101, 115, 116, 101, 100, 77, 111, 110, 115, 116, 101, 114, 0, 0, 0 ], " + "testnestedflatbuffer: [ 124, 0, 0, 0, 77, 79, 78, 83, 0, 0, 114, 0, 16, " + "0, 0, 0, 4, 0, 6, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, " + "0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, " + "0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, " + "0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, " + "0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 114, 0, 0, 0, 0, 0, 0, 0, " + "8, 0, 0, 0, 0, 0, 192, 127, 13, 0, 0, 0, 78, 101, 115, 116, 101, 100, " + "77, 111, 110, 115, 116, 101, 114, 0, 0, 0 ], " "testarrayofstring2: [ \"jane\", \"mary\" ], " "testarrayofsortedstruct: [ { id: 0, distance: 0 }, " "{ id: 2, distance: 20 }, { id: 3, distance: 30 }, " @@ -277,7 +281,8 @@ void MiniReflectFlatBuffersTest(uint8_t *flatbuf) { "flex: [ 210, 4, 5, 2 ], " "test5: [ { a: 10, b: 20 }, { a: 30, b: 40 } ], " "vector_of_enums: [ Blue, Green ], " - "scalar_key_sorted_tables: [ { id: \"miss\" } ] " + "scalar_key_sorted_tables: [ { id: \"miss\" } ], " + "nan_default: nan " "}"); Test test(16, 32); @@ -317,4 +322,4 @@ void MiniReflectFixedLengthArrayTest() { } } // namespace tests -} // namespace flatbuffers \ No newline at end of file +} // namespace flatbuffers diff --git a/tests/rust_usage_test/tests/integration_test.rs b/tests/rust_usage_test/tests/integration_test.rs index 0f405a4a73..fd92da3855 100644 --- a/tests/rust_usage_test/tests/integration_test.rs +++ b/tests/rust_usage_test/tests/integration_test.rs @@ -152,8 +152,10 @@ fn object_api_defaults() { b: 0 } }); + let mut default_without_nan = MonsterT::default(); + default_without_nan.nan_default = 0.0; assert_eq!( - MonsterT::default(), + default_without_nan, MonsterT { pos: None, hp: 100, @@ -205,6 +207,14 @@ fn object_api_defaults() { native_inline: None, long_enum_non_enum_default: Default::default(), long_enum_normal_default: LongEnum::LongOne, + nan_default: 0.0, + inf_default: f32::INFINITY, + positive_inf_default: f32::INFINITY, + infinity_default: f32::INFINITY, + positive_infinity_default: f32::INFINITY, + negative_inf_default: f32::NEG_INFINITY, + negative_infinity_default: f32::NEG_INFINITY, + double_inf_default: f64::INFINITY, } ); } @@ -467,7 +477,7 @@ fn verifier_apparent_size_too_large() { }); b.finish(m, None); let data = b.finished_data(); - assert!(data.len() < 5100); // est 4000 for the vector + 1000 for the string + 100 overhead. + assert!(data.len() < 5200); // est 4000 for the vector + 1000 for the string + 200 overhead. let mut opts = flatbuffers::VerifierOptions::default(); opts.max_apparent_size = 1_000_000; @@ -1774,7 +1784,10 @@ mod write_and_read_examples { vector_of_enums: None, signed_enum: None, \ testrequirednestedflatbuffer: None, scalar_key_sorted_tables: None, \ native_inline: None, long_enum_non_enum_default: (empty), \ - long_enum_normal_default: LongOne }, \ + long_enum_normal_default: LongOne, nan_default: NaN, inf_default: \ + inf, positive_inf_default: inf, infinity_default: inf, \ + positive_infinity_default: inf, negative_inf_default: -inf, \ + negative_infinity_default: -inf, double_inf_default: inf }, \ test4: Some([Test { a: 10, b: 20 }, Test { a: 30, b: 40 }]), \ testarrayofstring: Some([\"test1\", \"test2\"]), \ testarrayoftables: None, enemy: None, testnestedflatbuffer: None, \ @@ -1794,7 +1807,10 @@ mod write_and_read_examples { vector_of_enums: None, signed_enum: None, \ testrequirednestedflatbuffer: None, scalar_key_sorted_tables: None, \ native_inline: None, long_enum_non_enum_default: (empty), \ - long_enum_normal_default: LongOne }" + long_enum_normal_default: LongOne, nan_default: NaN, inf_default: \ + inf, positive_inf_default: inf, infinity_default: inf, \ + positive_infinity_default: inf, negative_inf_default: -inf, \ + negative_infinity_default: -inf, double_inf_default: inf }" ); } diff --git a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/monster_test_generated.swift b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/monster_test_generated.swift index ef7d697a85..18d227f923 100644 --- a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/monster_test_generated.swift +++ b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/monster_test_generated.swift @@ -1184,6 +1184,14 @@ public struct MyGame_Example_Monster: FlatBufferObject, Verifiable, ObjectAPIPac case nativeInline = 106 case longEnumNonEnumDefault = 108 case longEnumNormalDefault = 110 + case nanDefault = 112 + case infDefault = 114 + case positiveInfDefault = 116 + case infinityDefault = 118 + case positiveInfinityDefault = 120 + case negativeInfDefault = 122 + case negativeInfinityDefault = 124 + case doubleInfDefault = 126 var v: Int32 { Int32(self.rawValue) } var p: VOffset { self.rawValue } } @@ -1334,7 +1342,23 @@ public struct MyGame_Example_Monster: FlatBufferObject, Verifiable, ObjectAPIPac @discardableResult public func mutate(longEnumNonEnumDefault: MyGame_Example_LongEnum) -> Bool {let o = _accessor.offset(VTOFFSET.longEnumNonEnumDefault.v); return _accessor.mutate(longEnumNonEnumDefault.rawValue, index: o) } public var longEnumNormalDefault: MyGame_Example_LongEnum { let o = _accessor.offset(VTOFFSET.longEnumNormalDefault.v); return o == 0 ? .longone : MyGame_Example_LongEnum(rawValue: _accessor.readBuffer(of: UInt64.self, at: o)) ?? .longone } @discardableResult public func mutate(longEnumNormalDefault: MyGame_Example_LongEnum) -> Bool {let o = _accessor.offset(VTOFFSET.longEnumNormalDefault.v); return _accessor.mutate(longEnumNormalDefault.rawValue, index: o) } - public static func startMonster(_ fbb: inout FlatBufferBuilder) -> UOffset { fbb.startTable(with: 54) } + public var nanDefault: Float32 { let o = _accessor.offset(VTOFFSET.nanDefault.v); return o == 0 ? nan : _accessor.readBuffer(of: Float32.self, at: o) } + @discardableResult public func mutate(nanDefault: Float32) -> Bool {let o = _accessor.offset(VTOFFSET.nanDefault.v); return _accessor.mutate(nanDefault, index: o) } + public var infDefault: Float32 { let o = _accessor.offset(VTOFFSET.infDefault.v); return o == 0 ? inf : _accessor.readBuffer(of: Float32.self, at: o) } + @discardableResult public func mutate(infDefault: Float32) -> Bool {let o = _accessor.offset(VTOFFSET.infDefault.v); return _accessor.mutate(infDefault, index: o) } + public var positiveInfDefault: Float32 { let o = _accessor.offset(VTOFFSET.positiveInfDefault.v); return o == 0 ? +inf : _accessor.readBuffer(of: Float32.self, at: o) } + @discardableResult public func mutate(positiveInfDefault: Float32) -> Bool {let o = _accessor.offset(VTOFFSET.positiveInfDefault.v); return _accessor.mutate(positiveInfDefault, index: o) } + public var infinityDefault: Float32 { let o = _accessor.offset(VTOFFSET.infinityDefault.v); return o == 0 ? infinity : _accessor.readBuffer(of: Float32.self, at: o) } + @discardableResult public func mutate(infinityDefault: Float32) -> Bool {let o = _accessor.offset(VTOFFSET.infinityDefault.v); return _accessor.mutate(infinityDefault, index: o) } + public var positiveInfinityDefault: Float32 { let o = _accessor.offset(VTOFFSET.positiveInfinityDefault.v); return o == 0 ? +infinity : _accessor.readBuffer(of: Float32.self, at: o) } + @discardableResult public func mutate(positiveInfinityDefault: Float32) -> Bool {let o = _accessor.offset(VTOFFSET.positiveInfinityDefault.v); return _accessor.mutate(positiveInfinityDefault, index: o) } + public var negativeInfDefault: Float32 { let o = _accessor.offset(VTOFFSET.negativeInfDefault.v); return o == 0 ? -inf : _accessor.readBuffer(of: Float32.self, at: o) } + @discardableResult public func mutate(negativeInfDefault: Float32) -> Bool {let o = _accessor.offset(VTOFFSET.negativeInfDefault.v); return _accessor.mutate(negativeInfDefault, index: o) } + public var negativeInfinityDefault: Float32 { let o = _accessor.offset(VTOFFSET.negativeInfinityDefault.v); return o == 0 ? -infinity : _accessor.readBuffer(of: Float32.self, at: o) } + @discardableResult public func mutate(negativeInfinityDefault: Float32) -> Bool {let o = _accessor.offset(VTOFFSET.negativeInfinityDefault.v); return _accessor.mutate(negativeInfinityDefault, index: o) } + public var doubleInfDefault: Double { let o = _accessor.offset(VTOFFSET.doubleInfDefault.v); return o == 0 ? inf : _accessor.readBuffer(of: Double.self, at: o) } + @discardableResult public func mutate(doubleInfDefault: Double) -> Bool {let o = _accessor.offset(VTOFFSET.doubleInfDefault.v); return _accessor.mutate(doubleInfDefault, index: o) } + public static func startMonster(_ fbb: inout FlatBufferBuilder) -> UOffset { fbb.startTable(with: 62) } public static func add(pos: MyGame_Example_Vec3?, _ fbb: inout FlatBufferBuilder) { guard let pos = pos else { return }; fbb.create(struct: pos, position: VTOFFSET.pos.p) } public static func add(mana: Int16, _ fbb: inout FlatBufferBuilder) { fbb.add(element: mana, def: 150, at: VTOFFSET.mana.p) } public static func add(hp: Int16, _ fbb: inout FlatBufferBuilder) { fbb.add(element: hp, def: 100, at: VTOFFSET.hp.p) } @@ -1398,6 +1422,14 @@ public struct MyGame_Example_Monster: FlatBufferObject, Verifiable, ObjectAPIPac public static func add(nativeInline: MyGame_Example_Test?, _ fbb: inout FlatBufferBuilder) { guard let nativeInline = nativeInline else { return }; fbb.create(struct: nativeInline, position: VTOFFSET.nativeInline.p) } public static func add(longEnumNonEnumDefault: MyGame_Example_LongEnum, _ fbb: inout FlatBufferBuilder) { fbb.add(element: longEnumNonEnumDefault.rawValue, def: 0, at: VTOFFSET.longEnumNonEnumDefault.p) } public static func add(longEnumNormalDefault: MyGame_Example_LongEnum, _ fbb: inout FlatBufferBuilder) { fbb.add(element: longEnumNormalDefault.rawValue, def: 2, at: VTOFFSET.longEnumNormalDefault.p) } + public static func add(nanDefault: Float32, _ fbb: inout FlatBufferBuilder) { fbb.add(element: nanDefault, def: nan, at: VTOFFSET.nanDefault.p) } + public static func add(infDefault: Float32, _ fbb: inout FlatBufferBuilder) { fbb.add(element: infDefault, def: inf, at: VTOFFSET.infDefault.p) } + public static func add(positiveInfDefault: Float32, _ fbb: inout FlatBufferBuilder) { fbb.add(element: positiveInfDefault, def: +inf, at: VTOFFSET.positiveInfDefault.p) } + public static func add(infinityDefault: Float32, _ fbb: inout FlatBufferBuilder) { fbb.add(element: infinityDefault, def: infinity, at: VTOFFSET.infinityDefault.p) } + public static func add(positiveInfinityDefault: Float32, _ fbb: inout FlatBufferBuilder) { fbb.add(element: positiveInfinityDefault, def: +infinity, at: VTOFFSET.positiveInfinityDefault.p) } + public static func add(negativeInfDefault: Float32, _ fbb: inout FlatBufferBuilder) { fbb.add(element: negativeInfDefault, def: -inf, at: VTOFFSET.negativeInfDefault.p) } + public static func add(negativeInfinityDefault: Float32, _ fbb: inout FlatBufferBuilder) { fbb.add(element: negativeInfinityDefault, def: -infinity, at: VTOFFSET.negativeInfinityDefault.p) } + public static func add(doubleInfDefault: Double, _ fbb: inout FlatBufferBuilder) { fbb.add(element: doubleInfDefault, def: inf, at: VTOFFSET.doubleInfDefault.p) } public static func endMonster(_ fbb: inout FlatBufferBuilder, start: UOffset) -> Offset { let end = Offset(offset: fbb.endTable(at: start)); fbb.require(table: end, fields: [10]); return end } public static func createMonster( _ fbb: inout FlatBufferBuilder, @@ -1453,7 +1485,15 @@ public struct MyGame_Example_Monster: FlatBufferObject, Verifiable, ObjectAPIPac scalarKeySortedTablesVectorOffset scalarKeySortedTables: Offset = Offset(), nativeInline: MyGame_Example_Test? = nil, longEnumNonEnumDefault: MyGame_Example_LongEnum = .longone, - longEnumNormalDefault: MyGame_Example_LongEnum = .longone + longEnumNormalDefault: MyGame_Example_LongEnum = .longone, + nanDefault: Float32 = nan, + infDefault: Float32 = inf, + positiveInfDefault: Float32 = +inf, + infinityDefault: Float32 = infinity, + positiveInfinityDefault: Float32 = +infinity, + negativeInfDefault: Float32 = -inf, + negativeInfinityDefault: Float32 = -infinity, + doubleInfDefault: Double = inf ) -> Offset { let __start = MyGame_Example_Monster.startMonster(&fbb) MyGame_Example_Monster.add(pos: pos, &fbb) @@ -1509,6 +1549,14 @@ public struct MyGame_Example_Monster: FlatBufferObject, Verifiable, ObjectAPIPac MyGame_Example_Monster.add(nativeInline: nativeInline, &fbb) MyGame_Example_Monster.add(longEnumNonEnumDefault: longEnumNonEnumDefault, &fbb) MyGame_Example_Monster.add(longEnumNormalDefault: longEnumNormalDefault, &fbb) + MyGame_Example_Monster.add(nanDefault: nanDefault, &fbb) + MyGame_Example_Monster.add(infDefault: infDefault, &fbb) + MyGame_Example_Monster.add(positiveInfDefault: positiveInfDefault, &fbb) + MyGame_Example_Monster.add(infinityDefault: infinityDefault, &fbb) + MyGame_Example_Monster.add(positiveInfinityDefault: positiveInfinityDefault, &fbb) + MyGame_Example_Monster.add(negativeInfDefault: negativeInfDefault, &fbb) + MyGame_Example_Monster.add(negativeInfinityDefault: negativeInfinityDefault, &fbb) + MyGame_Example_Monster.add(doubleInfDefault: doubleInfDefault, &fbb) return MyGame_Example_Monster.endMonster(&fbb, start: __start) } public static func sortVectorOfMonster(offsets:[Offset], _ fbb: inout FlatBufferBuilder) -> Offset { @@ -1668,6 +1716,14 @@ public struct MyGame_Example_Monster: FlatBufferObject, Verifiable, ObjectAPIPac MyGame_Example_Monster.add(nativeInline: obj.nativeInline, &builder) MyGame_Example_Monster.add(longEnumNonEnumDefault: obj.longEnumNonEnumDefault, &builder) MyGame_Example_Monster.add(longEnumNormalDefault: obj.longEnumNormalDefault, &builder) + MyGame_Example_Monster.add(nanDefault: obj.nanDefault, &builder) + MyGame_Example_Monster.add(infDefault: obj.infDefault, &builder) + MyGame_Example_Monster.add(positiveInfDefault: obj.positiveInfDefault, &builder) + MyGame_Example_Monster.add(infinityDefault: obj.infinityDefault, &builder) + MyGame_Example_Monster.add(positiveInfinityDefault: obj.positiveInfinityDefault, &builder) + MyGame_Example_Monster.add(negativeInfDefault: obj.negativeInfDefault, &builder) + MyGame_Example_Monster.add(negativeInfinityDefault: obj.negativeInfinityDefault, &builder) + MyGame_Example_Monster.add(doubleInfDefault: obj.doubleInfDefault, &builder) return MyGame_Example_Monster.endMonster(&builder, start: __root) } @@ -1756,6 +1812,14 @@ public struct MyGame_Example_Monster: FlatBufferObject, Verifiable, ObjectAPIPac try _v.visit(field: VTOFFSET.nativeInline.p, fieldName: "nativeInline", required: false, type: MyGame_Example_Test.self) try _v.visit(field: VTOFFSET.longEnumNonEnumDefault.p, fieldName: "longEnumNonEnumDefault", required: false, type: MyGame_Example_LongEnum.self) try _v.visit(field: VTOFFSET.longEnumNormalDefault.p, fieldName: "longEnumNormalDefault", required: false, type: MyGame_Example_LongEnum.self) + try _v.visit(field: VTOFFSET.nanDefault.p, fieldName: "nanDefault", required: false, type: Float32.self) + try _v.visit(field: VTOFFSET.infDefault.p, fieldName: "infDefault", required: false, type: Float32.self) + try _v.visit(field: VTOFFSET.positiveInfDefault.p, fieldName: "positiveInfDefault", required: false, type: Float32.self) + try _v.visit(field: VTOFFSET.infinityDefault.p, fieldName: "infinityDefault", required: false, type: Float32.self) + try _v.visit(field: VTOFFSET.positiveInfinityDefault.p, fieldName: "positiveInfinityDefault", required: false, type: Float32.self) + try _v.visit(field: VTOFFSET.negativeInfDefault.p, fieldName: "negativeInfDefault", required: false, type: Float32.self) + try _v.visit(field: VTOFFSET.negativeInfinityDefault.p, fieldName: "negativeInfinityDefault", required: false, type: Float32.self) + try _v.visit(field: VTOFFSET.doubleInfDefault.p, fieldName: "doubleInfDefault", required: false, type: Double.self) _v.finish() } } @@ -1816,6 +1880,14 @@ extension MyGame_Example_Monster: Encodable { case nativeInline = "native_inline" case longEnumNonEnumDefault = "long_enum_non_enum_default" case longEnumNormalDefault = "long_enum_normal_default" + case nanDefault = "nan_default" + case infDefault = "inf_default" + case positiveInfDefault = "positive_inf_default" + case infinityDefault = "infinity_default" + case positiveInfinityDefault = "positive_infinity_default" + case negativeInfDefault = "negative_inf_default" + case negativeInfinityDefault = "negative_infinity_default" + case doubleInfDefault = "double_inf_default" } public func encode(to encoder: Encoder) throws { var container = encoder.container(keyedBy: CodingKeys.self) @@ -2033,6 +2105,30 @@ extension MyGame_Example_Monster: Encodable { if longEnumNormalDefault != .longone { try container.encodeIfPresent(longEnumNormalDefault, forKey: .longEnumNormalDefault) } + if nanDefault != nan { + try container.encodeIfPresent(nanDefault, forKey: .nanDefault) + } + if infDefault != inf { + try container.encodeIfPresent(infDefault, forKey: .infDefault) + } + if positiveInfDefault != +inf { + try container.encodeIfPresent(positiveInfDefault, forKey: .positiveInfDefault) + } + if infinityDefault != infinity { + try container.encodeIfPresent(infinityDefault, forKey: .infinityDefault) + } + if positiveInfinityDefault != +infinity { + try container.encodeIfPresent(positiveInfinityDefault, forKey: .positiveInfinityDefault) + } + if negativeInfDefault != -inf { + try container.encodeIfPresent(negativeInfDefault, forKey: .negativeInfDefault) + } + if negativeInfinityDefault != -infinity { + try container.encodeIfPresent(negativeInfinityDefault, forKey: .negativeInfinityDefault) + } + if doubleInfDefault != inf { + try container.encodeIfPresent(doubleInfDefault, forKey: .doubleInfDefault) + } } } @@ -2088,6 +2184,14 @@ public class MyGame_Example_MonsterT: NativeObject { public var nativeInline: MyGame_Example_Test? public var longEnumNonEnumDefault: MyGame_Example_LongEnum public var longEnumNormalDefault: MyGame_Example_LongEnum + public var nanDefault: Float32 + public var infDefault: Float32 + public var positiveInfDefault: Float32 + public var infinityDefault: Float32 + public var positiveInfinityDefault: Float32 + public var negativeInfDefault: Float32 + public var negativeInfinityDefault: Float32 + public var doubleInfDefault: Double public init(_ _t: inout MyGame_Example_Monster) { pos = _t.pos @@ -2240,6 +2344,14 @@ public class MyGame_Example_MonsterT: NativeObject { nativeInline = _t.nativeInline longEnumNonEnumDefault = _t.longEnumNonEnumDefault longEnumNormalDefault = _t.longEnumNormalDefault + nanDefault = _t.nanDefault + infDefault = _t.infDefault + positiveInfDefault = _t.positiveInfDefault + infinityDefault = _t.infinityDefault + positiveInfinityDefault = _t.positiveInfinityDefault + negativeInfDefault = _t.negativeInfDefault + negativeInfinityDefault = _t.negativeInfinityDefault + doubleInfDefault = _t.doubleInfDefault } public init() { @@ -2290,6 +2402,14 @@ public class MyGame_Example_MonsterT: NativeObject { nativeInline = MyGame_Example_Test() longEnumNonEnumDefault = .longone longEnumNormalDefault = .longone + nanDefault = nan + infDefault = inf + positiveInfDefault = +inf + infinityDefault = infinity + positiveInfinityDefault = +infinity + negativeInfDefault = -inf + negativeInfinityDefault = -infinity + doubleInfDefault = inf } public func serialize() -> ByteBuffer { return serialize(type: MyGame_Example_Monster.self) } diff --git a/tests/test.cpp b/tests/test.cpp index 440077acd8..65198a67a4 100644 --- a/tests/test.cpp +++ b/tests/test.cpp @@ -424,6 +424,12 @@ void UninitializedVectorTest() { void EqualOperatorTest() { MonsterT a; MonsterT b; + // We have to reset the fields that are NaN to zero to allow the equality + // to evaluate to true. + TEST_EQ(std::isnan(a.nan_default), true); + TEST_EQ(std::isnan(b.nan_default), true); + a.nan_default = 0; + b.nan_default = 0; TEST_EQ(b == a, true); TEST_EQ(b != a, false); @@ -442,12 +448,14 @@ void EqualOperatorTest() { TEST_EQ(b != a, false); a.enemy.reset(new MonsterT()); + a.enemy->nan_default = 0; TEST_EQ(b != a, true); a.enemy->mana = 33; TEST_EQ(b == a, false); TEST_EQ(b != a, true); b.enemy.reset(new MonsterT()); + b.enemy->nan_default = 0; TEST_EQ(b == a, false); TEST_EQ(b != a, true); b.enemy->mana = 33; @@ -461,6 +469,7 @@ void EqualOperatorTest() { TEST_EQ(b == a, false); TEST_EQ(b != a, true); a.enemy.reset(new MonsterT()); + a.enemy->nan_default = 0; TEST_EQ(b == a, true); TEST_EQ(b != a, false); @@ -474,23 +483,29 @@ void EqualOperatorTest() { { // Two tables are equal by default. MonsterT a, b; + a.nan_default = 0; + b.nan_default = 0; TEST_EQ(a == b, true); // Adding only a table to one of the monster vectors should make it not // equal (due to size mistmatch). a.testarrayoftables.push_back( flatbuffers::unique_ptr(new MonsterT)); + a.testarrayoftables.back()->nan_default = 0; TEST_EQ(a == b, false); // Adding an equalivant table to the other monster vector should make it // equal again. b.testarrayoftables.push_back( flatbuffers::unique_ptr(new MonsterT)); + b.testarrayoftables.back()->nan_default = 0; TEST_EQ(a == b, true); // Create two new monsters that are different. auto c = flatbuffers::unique_ptr(new MonsterT); auto d = flatbuffers::unique_ptr(new MonsterT); + c->nan_default = 0; + d->nan_default = 0; c->hp = 1; d->hp = 2; TEST_EQ(c == d, false); diff --git a/tests/ts/monsterdata_javascript_wire.mon b/tests/ts/monsterdata_javascript_wire.mon index c6020a2eb2040a35f689518e6eb60ad230cb0427..8e270b35b229ef7fcd1db058b5c15ea04e132f66 100644 GIT binary patch literal 744 zcmb_0uaYDL@pt43LxnVi6#Q00AJy!@vRMu>frZfdlm|KoS{u0Qu;+2Pn1x3kC`? z&H)lIya&j(U<49C@ee@y2bdiIyC;+hxg9MNi0b&6lh5#NQ#lgS=w26VC1r2uq`RKR@C^iQR1`09G01_~~ z1IX541QI~;2SEA-m>mG*HrN9R2Ot7s7~pVVVqj%pgK>$ZnSkmbRxmJZ@nR*Y9i$%Q zdln#O1>%y_;u0eywjq!WQX>ZpGcK^oEQSam9|S^x802~o0EIp%>>WTH3_yPPgX}=Y vAiL2qC=HN;F`P#w0Z(this.scalarKeySortedTables.bind(this), this.scalarKeySortedTablesLength()), (this.nativeInline() !== null ? this.nativeInline()!.unpack() : null), this.longEnumNonEnumDefault(), - this.longEnumNormalDefault() + this.longEnumNormalDefault(), + this.nanDefault(), + this.infDefault(), + this.positiveInfDefault(), + this.infinityDefault(), + this.positiveInfinityDefault(), + this.negativeInfDefault(), + this.negativeInfinityDefault(), + this.doubleInfDefault() ); } @@ -1284,6 +1452,14 @@ unpackTo(_o: MonsterT): void { _o.nativeInline = (this.nativeInline() !== null ? this.nativeInline()!.unpack() : null); _o.longEnumNonEnumDefault = this.longEnumNonEnumDefault(); _o.longEnumNormalDefault = this.longEnumNormalDefault(); + _o.nanDefault = this.nanDefault(); + _o.infDefault = this.infDefault(); + _o.positiveInfDefault = this.positiveInfDefault(); + _o.infinityDefault = this.infinityDefault(); + _o.positiveInfinityDefault = this.positiveInfinityDefault(); + _o.negativeInfDefault = this.negativeInfDefault(); + _o.negativeInfinityDefault = this.negativeInfinityDefault(); + _o.doubleInfDefault = this.doubleInfDefault(); } } @@ -1341,7 +1517,15 @@ constructor( public scalarKeySortedTables: (StatT)[] = [], public nativeInline: TestT|null = null, public longEnumNonEnumDefault: bigint = BigInt('0'), - public longEnumNormalDefault: bigint = BigInt('2') + public longEnumNormalDefault: bigint = BigInt('2'), + public nanDefault: number = NaN, + public infDefault: number = Infinity, + public positiveInfDefault: number = Infinity, + public infinityDefault: number = Infinity, + public positiveInfinityDefault: number = Infinity, + public negativeInfDefault: number = -Infinity, + public negativeInfinityDefault: number = -Infinity, + public doubleInfDefault: number = Infinity ){} @@ -1428,6 +1612,14 @@ pack(builder:flatbuffers.Builder): flatbuffers.Offset { Monster.addNativeInline(builder, (this.nativeInline !== null ? this.nativeInline!.pack(builder) : 0)); Monster.addLongEnumNonEnumDefault(builder, this.longEnumNonEnumDefault); Monster.addLongEnumNormalDefault(builder, this.longEnumNormalDefault); + Monster.addNanDefault(builder, this.nanDefault); + Monster.addInfDefault(builder, this.infDefault); + Monster.addPositiveInfDefault(builder, this.positiveInfDefault); + Monster.addInfinityDefault(builder, this.infinityDefault); + Monster.addPositiveInfinityDefault(builder, this.positiveInfinityDefault); + Monster.addNegativeInfDefault(builder, this.negativeInfDefault); + Monster.addNegativeInfinityDefault(builder, this.negativeInfinityDefault); + Monster.addDoubleInfDefault(builder, this.doubleInfDefault); return Monster.endMonster(builder); } diff --git a/tests/ts/ts-flat-files/monster_test_generated.ts b/tests/ts/ts-flat-files/monster_test_generated.ts index 8a768f2e83..f1566c61d2 100644 --- a/tests/ts/ts-flat-files/monster_test_generated.ts +++ b/tests/ts/ts-flat-files/monster_test_generated.ts @@ -1152,8 +1152,48 @@ longEnumNormalDefault():bigint { return offset ? this.bb!.readUint64(this.bb_pos + offset) : BigInt('2'); } +nanDefault():number { + const offset = this.bb!.__offset(this.bb_pos, 112); + return offset ? this.bb!.readFloat32(this.bb_pos + offset) : NaN; +} + +infDefault():number { + const offset = this.bb!.__offset(this.bb_pos, 114); + return offset ? this.bb!.readFloat32(this.bb_pos + offset) : Infinity; +} + +positiveInfDefault():number { + const offset = this.bb!.__offset(this.bb_pos, 116); + return offset ? this.bb!.readFloat32(this.bb_pos + offset) : Infinity; +} + +infinityDefault():number { + const offset = this.bb!.__offset(this.bb_pos, 118); + return offset ? this.bb!.readFloat32(this.bb_pos + offset) : Infinity; +} + +positiveInfinityDefault():number { + const offset = this.bb!.__offset(this.bb_pos, 120); + return offset ? this.bb!.readFloat32(this.bb_pos + offset) : Infinity; +} + +negativeInfDefault():number { + const offset = this.bb!.__offset(this.bb_pos, 122); + return offset ? this.bb!.readFloat32(this.bb_pos + offset) : -Infinity; +} + +negativeInfinityDefault():number { + const offset = this.bb!.__offset(this.bb_pos, 124); + return offset ? this.bb!.readFloat32(this.bb_pos + offset) : -Infinity; +} + +doubleInfDefault():number { + const offset = this.bb!.__offset(this.bb_pos, 126); + return offset ? this.bb!.readFloat64(this.bb_pos + offset) : Infinity; +} + static startMonster(builder:flatbuffers.Builder) { - builder.startObject(54); + builder.startObject(62); } static addPos(builder:flatbuffers.Builder, posOffset:flatbuffers.Offset) { @@ -1589,6 +1629,38 @@ static addLongEnumNormalDefault(builder:flatbuffers.Builder, longEnumNormalDefau builder.addFieldInt64(53, longEnumNormalDefault, BigInt('2')); } +static addNanDefault(builder:flatbuffers.Builder, nanDefault:number) { + builder.addFieldFloat32(54, nanDefault, NaN); +} + +static addInfDefault(builder:flatbuffers.Builder, infDefault:number) { + builder.addFieldFloat32(55, infDefault, Infinity); +} + +static addPositiveInfDefault(builder:flatbuffers.Builder, positiveInfDefault:number) { + builder.addFieldFloat32(56, positiveInfDefault, Infinity); +} + +static addInfinityDefault(builder:flatbuffers.Builder, infinityDefault:number) { + builder.addFieldFloat32(57, infinityDefault, Infinity); +} + +static addPositiveInfinityDefault(builder:flatbuffers.Builder, positiveInfinityDefault:number) { + builder.addFieldFloat32(58, positiveInfinityDefault, Infinity); +} + +static addNegativeInfDefault(builder:flatbuffers.Builder, negativeInfDefault:number) { + builder.addFieldFloat32(59, negativeInfDefault, -Infinity); +} + +static addNegativeInfinityDefault(builder:flatbuffers.Builder, negativeInfinityDefault:number) { + builder.addFieldFloat32(60, negativeInfinityDefault, -Infinity); +} + +static addDoubleInfDefault(builder:flatbuffers.Builder, doubleInfDefault:number) { + builder.addFieldFloat64(61, doubleInfDefault, Infinity); +} + static endMonster(builder:flatbuffers.Builder):flatbuffers.Offset { const offset = builder.endObject(); builder.requiredField(offset, 10) // name From 459e8acc3712a9123a427d948fe58d5beb3f6cca Mon Sep 17 00:00:00 2001 From: mustiikhalil <26250654+mustiikhalil@users.noreply.github.com> Date: Thu, 10 Nov 2022 23:16:42 +0100 Subject: [PATCH 010/571] Uses swift build command directly in the CI (#7635) --- .github/workflows/build.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 925c3a46d2..3513d47bf8 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -431,7 +431,9 @@ jobs: - uses: actions/checkout@v2 - name: test working-directory: tests/swift/tests - run: sh SwiftTest.sh + run: | + swift build --build-tests + swift test build-swift-wasm: name: Build Swift Wasm From 225578a8b3600dad63ed6f28b9b1c5e1ad9863ec Mon Sep 17 00:00:00 2001 From: laurentsimon <64505099+laurentsimon@users.noreply.github.com> Date: Thu, 10 Nov 2022 18:09:01 -0800 Subject: [PATCH 011/571] Temporary fix for SLSA generators (#7636) * Temporary fix for SLSA generators Sigstore made a breaking change as part of their recent GA announcement. We need a temporary fix to avoid builder failure (see slsa-framework/slsa-github-generator#1163) /cc @asraa * Update build.yml --- .github/workflows/build.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 3513d47bf8..ae700e2b61 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -526,7 +526,8 @@ jobs: actions: read # To read the workflow path. id-token: write # To sign the provenance. contents: write # To add assets to a release. - uses: slsa-framework/slsa-github-generator/.github/workflows/generator_generic_slsa3.yml@v1.2.0 + uses: slsa-framework/slsa-github-generator/.github/workflows/generator_generic_slsa3.yml@v1.2.1 with: base64-subjects: "${{ needs.release-digests.outputs.digests }}" upload-assets: true # Optional: Upload to a new release + compile-generator: true # Workaround for https://github.com/slsa-framework/slsa-github-generator/issues/1163 From 207708efef418d1db3af1cca0505f19d2db196ee Mon Sep 17 00:00:00 2001 From: Rudi Heitbaum Date: Fri, 11 Nov 2022 13:21:38 +1100 Subject: [PATCH 012/571] [CMake]: only warn when the working directory in a git worktree (#7562) Signed-off-by: Rudi Heitbaum Signed-off-by: Rudi Heitbaum Co-authored-by: Derek Bailey --- CMake/Version.cmake | 38 ++++++++++++++++++++------------------ 1 file changed, 20 insertions(+), 18 deletions(-) diff --git a/CMake/Version.cmake b/CMake/Version.cmake index a713f3413b..e3db9cc608 100644 --- a/CMake/Version.cmake +++ b/CMake/Version.cmake @@ -3,35 +3,37 @@ set(VERSION_MINOR 10) set(VERSION_PATCH 26) set(VERSION_COMMIT 0) -find_program(GIT git) -if(GIT AND EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/.git") - execute_process( +if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/.git") + find_program(GIT git) + if(GIT) + execute_process( COMMAND ${GIT} describe --tags WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} OUTPUT_VARIABLE GIT_DESCRIBE_DIRTY OUTPUT_STRIP_TRAILING_WHITESPACE RESULT_VARIABLE GIT_DESCRIBE_RESULT - ) + ) - if(GIT_DESCRIBE_RESULT EQUAL 0) - # Test if the most recent Git tag matches the pattern "v..*" - if(GIT_DESCRIBE_DIRTY MATCHES "^v[0-9]+\\.[0-9]+\\.[0-9]+.*") - string(REGEX REPLACE "^v([0-9]+)\\..*" "\\1" VERSION_MAJOR "${GIT_DESCRIBE_DIRTY}") - string(REGEX REPLACE "^v[0-9]+\\.([0-9]+).*" "\\1" VERSION_MINOR "${GIT_DESCRIBE_DIRTY}") - string(REGEX REPLACE "^v[0-9]+\\.[0-9]+\\.([0-9]+).*" "\\1" VERSION_PATCH "${GIT_DESCRIBE_DIRTY}") - string(REGEX REPLACE "^v[0-9]+\\.[0-9]+\\.[0-9]+\\-([0-9]+).*" "\\1" VERSION_COMMIT "${GIT_DESCRIBE_DIRTY}") - # If the tag points to the commit, then only the tag is shown in "git describe" - if(VERSION_COMMIT STREQUAL GIT_DESCRIBE_DIRTY) - set(VERSION_COMMIT 0) + if(GIT_DESCRIBE_RESULT EQUAL 0) + # Test if the most recent Git tag matches the pattern "v..*" + if(GIT_DESCRIBE_DIRTY MATCHES "^v[0-9]+\\.[0-9]+\\.[0-9]+.*") + string(REGEX REPLACE "^v([0-9]+)\\..*" "\\1" VERSION_MAJOR "${GIT_DESCRIBE_DIRTY}") + string(REGEX REPLACE "^v[0-9]+\\.([0-9]+).*" "\\1" VERSION_MINOR "${GIT_DESCRIBE_DIRTY}") + string(REGEX REPLACE "^v[0-9]+\\.[0-9]+\\.([0-9]+).*" "\\1" VERSION_PATCH "${GIT_DESCRIBE_DIRTY}") + string(REGEX REPLACE "^v[0-9]+\\.[0-9]+\\.[0-9]+\\-([0-9]+).*" "\\1" VERSION_COMMIT "${GIT_DESCRIBE_DIRTY}") + # If the tag points to the commit, then only the tag is shown in "git describe" + if(VERSION_COMMIT STREQUAL GIT_DESCRIBE_DIRTY) + set(VERSION_COMMIT 0) + endif() + else() + message(WARNING "\"${GIT_DESCRIBE_DIRTY}\" does not match pattern v..-") endif() else() - message(WARNING "\"${GIT_DESCRIBE_DIRTY}\" does not match pattern v..-") + message(WARNING "git describe failed with exit code: ${GIT_DESCRIBE_RESULT}") endif() else() - message(WARNING "git describe failed with exit code: ${GIT_DESCRIBE_RESULT}") + message(WARNING "git is not found") endif() -else() - message(WARNING "git is not found") endif() message(STATUS "Proceeding with version: ${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}.${VERSION_COMMIT}") From f20b0a45b3452aad04c2d242b2c7bf8521a57d94 Mon Sep 17 00:00:00 2001 From: Alex-Ratcliffe <108370508+Alex-Ratcliffe@users.noreply.github.com> Date: Fri, 11 Nov 2022 13:47:53 +1100 Subject: [PATCH 013/571] Add comparison operator to python objects under --gen-compare option (#7610) * Add comparison operator to python code generator * Missing semi-colon * Regenerate test examples Co-authored-by: Derek Bailey --- src/idl_gen_python.cpp | 21 +++++++++++++++++++++ tests/MyGame/MonsterExtra.py | 13 +++++++++++++ 2 files changed, 34 insertions(+) diff --git a/src/idl_gen_python.cpp b/src/idl_gen_python.cpp index 38a5bc100a..76d3dfe9bb 100644 --- a/src/idl_gen_python.cpp +++ b/src/idl_gen_python.cpp @@ -1141,6 +1141,23 @@ class PythonGenerator : public BaseGenerator { code += "\n"; } + void GenCompareOperator(const StructDef &struct_def, + std::string *code_ptr) const { + auto &code = *code_ptr; + code += GenIndents(1) + "def __eq__(self, other):"; + code += GenIndents(2) + "return type(self) == type(other)"; + for (auto it = struct_def.fields.vec.begin(); + it != struct_def.fields.vec.end(); ++it) { + auto &field = **it; + if (field.deprecated) continue; + + // Wrties the comparison statement for this field. + const auto field_field = namer_.Field(field); + code += " and \\" + GenIndents(3) + "self." + field_field + " == " + "other." + field_field; + } + code += "\n"; + } + void GenUnPackForStruct(const StructDef &struct_def, const FieldDef &field, std::string *code_ptr) const { auto &code = *code_ptr; @@ -1623,6 +1640,10 @@ class PythonGenerator : public BaseGenerator { InitializeFromObjForObject(struct_def, &code); + if (parser_.opts.gen_compare) { + GenCompareOperator(struct_def, &code); + } + GenUnPack(struct_def, &code); if (struct_def.fixed) { diff --git a/tests/MyGame/MonsterExtra.py b/tests/MyGame/MonsterExtra.py index b30ee6e788..90916523c9 100644 --- a/tests/MyGame/MonsterExtra.py +++ b/tests/MyGame/MonsterExtra.py @@ -217,6 +217,19 @@ def InitFromObj(cls, monsterExtra): x._UnPack(monsterExtra) return x + def __eq__(self, other): + return type(self) == type(other) and \ + self.d0 == other.d0 and \ + self.d1 == other.d1 and \ + self.d2 == other.d2 and \ + self.d3 == other.d3 and \ + self.f0 == other.f0 and \ + self.f1 == other.f1 and \ + self.f2 == other.f2 and \ + self.f3 == other.f3 and \ + self.dvec == other.dvec and \ + self.fvec == other.fvec + # MonsterExtraT def _UnPack(self, monsterExtra): if monsterExtra is None: From 83e7a98f69ff1004ef70bb94737d02fa0dfe8887 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=2E=20=C5=9Eamil=20Ate=C5=9Fo=C4=9Flu?= Date: Fri, 11 Nov 2022 05:57:29 +0300 Subject: [PATCH 014/571] [C++] Minireflect: Add option to indent when converting table to string (#7602) Co-authored-by: Derek Bailey --- include/flatbuffers/minireflect.h | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/include/flatbuffers/minireflect.h b/include/flatbuffers/minireflect.h index 26fd86c96a..22f43fbab9 100644 --- a/include/flatbuffers/minireflect.h +++ b/include/flatbuffers/minireflect.h @@ -407,8 +407,9 @@ struct ToStringVisitor : public IterationVisitor { inline std::string FlatBufferToString(const uint8_t *buffer, const TypeTable *type_table, bool multi_line = false, - bool vector_delimited = true) { - ToStringVisitor tostring_visitor(multi_line ? "\n" : " ", false, "", + bool vector_delimited = true, + const std::string& indent = "") { + ToStringVisitor tostring_visitor(multi_line ? "\n" : " ", false, indent, vector_delimited); IterateFlatBuffer(buffer, type_table, &tostring_visitor); return tostring_visitor.s; From 879622fc57a0afefee04efced17e57f22aa3110d Mon Sep 17 00:00:00 2001 From: RishabhDeep Singh Date: Fri, 11 Nov 2022 10:17:28 +0530 Subject: [PATCH 015/571] Fixes #7345 to add the option to minify enums (#7566) * Added cpp minified enums * Update generated files * remove initializer and fix comma * Fix .gitignore * Fix comma * Add tests for cpp minify enums --- .gitignore | 2 +- include/flatbuffers/idl.h | 2 + src/flatc.cpp | 2 + src/idl_gen_cpp.cpp | 377 +++++++++++++------------ tests/minified_enums/enums.fbs | 3 + tests/minified_enums/enums_generated.h | 26 ++ 6 files changed, 225 insertions(+), 187 deletions(-) create mode 100644 tests/minified_enums/enums.fbs create mode 100644 tests/minified_enums/enums_generated.h diff --git a/.gitignore b/.gitignore index 8c7baf8765..1369bce8ab 100644 --- a/.gitignore +++ b/.gitignore @@ -149,4 +149,4 @@ flatbuffers.pc **/html/** **/latex/** # https://cmake.org/cmake/help/latest/module/FetchContent.html#variable:FETCHCONTENT_BASE_DIR -_deps/ \ No newline at end of file +cmake-build-debug/ diff --git a/include/flatbuffers/idl.h b/include/flatbuffers/idl.h index 1701236bf7..4044828128 100644 --- a/include/flatbuffers/idl.h +++ b/include/flatbuffers/idl.h @@ -587,6 +587,7 @@ struct IDLOptions { bool strict_json; bool output_default_scalars_in_json; int indent_step; + bool cpp_minify_enums; bool output_enum_identifiers; bool prefixed_enums; bool scoped_enums; @@ -698,6 +699,7 @@ struct IDLOptions { strict_json(false), output_default_scalars_in_json(false), indent_step(2), + cpp_minify_enums(false), output_enum_identifiers(true), prefixed_enums(true), scoped_enums(false), diff --git a/src/flatc.cpp b/src/flatc.cpp index 40a538fcd6..deb45ec88f 100644 --- a/src/flatc.cpp +++ b/src/flatc.cpp @@ -454,6 +454,8 @@ int FlatCompiler::Compile(int argc, const char **argv) { opts.skip_unexpected_fields_in_json = true; } else if (arg == "--no-prefix") { opts.prefixed_enums = false; + } else if (arg == "--cpp-minify-enums") { + opts.cpp_minify_enums = true; } else if (arg == "--scoped-enums") { opts.prefixed_enums = false; opts.scoped_enums = true; diff --git a/src/idl_gen_cpp.cpp b/src/idl_gen_cpp.cpp index 6072c0889d..5cffc18a3b 100644 --- a/src/idl_gen_cpp.cpp +++ b/src/idl_gen_cpp.cpp @@ -459,12 +459,10 @@ class CppGenerator : public BaseGenerator { } // Generate code for all the enum declarations. - for (auto it = parser_.enums_.vec.begin(); it != parser_.enums_.vec.end(); - ++it) { - const auto &enum_def = **it; - if (!enum_def.generated) { - SetNameSpace(enum_def.defined_namespace); - GenEnum(enum_def); + for (const auto enum_def : parser_.enums_.vec) { + if (!enum_def->generated) { + SetNameSpace(enum_def->defined_namespace); + GenEnum(*enum_def); } } @@ -1231,17 +1229,21 @@ class CppGenerator : public BaseGenerator { code_.SetValue("SEP", ","); auto add_sep = false; - for (auto it = enum_def.Vals().begin(); it != enum_def.Vals().end(); ++it) { - const auto &ev = **it; + for (const auto ev : enum_def.Vals()) { if (add_sep) code_ += "{{SEP}}"; - GenComment(ev.doc_comment, " "); - code_.SetValue("KEY", GenEnumValDecl(enum_def, Name(ev))); + GenComment(ev->doc_comment, " "); + code_.SetValue("KEY", GenEnumValDecl(enum_def, Name(*ev))); code_.SetValue("VALUE", - NumToStringCpp(enum_def.ToString(ev), + NumToStringCpp(enum_def.ToString(*ev), enum_def.underlying_type.base_type)); code_ += " {{KEY}} = {{VALUE}}\\"; add_sep = true; } + if (opts_.cpp_minify_enums) { + code_ += ""; + code_ += "};"; + return; + } const EnumVal *minv = enum_def.MinValue(); const EnumVal *maxv = enum_def.MaxValue(); @@ -1277,8 +1279,175 @@ class CppGenerator : public BaseGenerator { "FLATBUFFERS_DEFINE_BITMASK_OPERATORS({{ENUM_NAME}}, {{BASE_TYPE}})"; } code_ += ""; + GenEnumArray(enum_def); + GenEnumStringTable(enum_def); + + // Generate type traits for unions to map from a type to union enum value. + if (enum_def.is_union && !enum_def.uses_multiple_type_instances) { + for (auto it = enum_def.Vals().begin(); it != enum_def.Vals().end(); + ++it) { + const auto &ev = **it; + + if (it == enum_def.Vals().begin()) { + code_ += "template struct {{ENUM_NAME}}Traits {"; + } else { + auto name = GetUnionElement(ev, false, opts_); + code_ += "template<> struct {{ENUM_NAME}}Traits<" + name + "> {"; + } + + auto value = GetEnumValUse(enum_def, ev); + code_ += " static const {{ENUM_NAME}} enum_value = " + value + ";"; + code_ += "};"; + code_ += ""; + } + } + + GenEnumObjectBasedAPI(enum_def); + + if (enum_def.is_union) { + code_ += UnionVerifySignature(enum_def) + ";"; + code_ += UnionVectorVerifySignature(enum_def) + ";"; + code_ += ""; + } + } + + // Generate a union type and a trait type for it. + void GenEnumObjectBasedAPI(const EnumDef &enum_def) { + if (!(opts_.generate_object_based_api && enum_def.is_union)) { return; } + code_.SetValue("NAME", Name(enum_def)); + FLATBUFFERS_ASSERT(enum_def.Lookup("NONE")); + code_.SetValue("NONE", GetEnumValUse(enum_def, *enum_def.Lookup("NONE"))); + + if (!enum_def.uses_multiple_type_instances) { + for (auto it = enum_def.Vals().begin(); it != enum_def.Vals().end(); + ++it) { + const auto &ev = **it; + + if (it == enum_def.Vals().begin()) { + code_ += "template struct {{NAME}}UnionTraits {"; + } else { + auto name = GetUnionElement(ev, true, opts_); + code_ += "template<> struct {{NAME}}UnionTraits<" + name + "> {"; + } + + auto value = GetEnumValUse(enum_def, ev); + code_ += " static const {{ENUM_NAME}} enum_value = " + value + ";"; + code_ += "};"; + code_ += ""; + } + } + + code_ += "struct {{NAME}}Union {"; + code_ += " {{NAME}} type;"; + code_ += " void *value;"; + code_ += ""; + code_ += " {{NAME}}Union() : type({{NONE}}), value(nullptr) {}"; + code_ += " {{NAME}}Union({{NAME}}Union&& u) FLATBUFFERS_NOEXCEPT :"; + code_ += " type({{NONE}}), value(nullptr)"; + code_ += " { std::swap(type, u.type); std::swap(value, u.value); }"; + code_ += " {{NAME}}Union(const {{NAME}}Union &);"; + code_ += " {{NAME}}Union &operator=(const {{NAME}}Union &u)"; + code_ += + " { {{NAME}}Union t(u); std::swap(type, t.type); std::swap(value, " + "t.value); return *this; }"; + code_ += + " {{NAME}}Union &operator=({{NAME}}Union &&u) FLATBUFFERS_NOEXCEPT"; + code_ += + " { std::swap(type, u.type); std::swap(value, u.value); return " + "*this; }"; + code_ += " ~{{NAME}}Union() { Reset(); }"; + code_ += ""; + code_ += " void Reset();"; + code_ += ""; + if (!enum_def.uses_multiple_type_instances) { + code_ += " template "; + code_ += " void Set(T&& val) {"; + code_ += " typedef typename std::remove_reference::type RT;"; + code_ += " Reset();"; + code_ += " type = {{NAME}}UnionTraits::enum_value;"; + code_ += " if (type != {{NONE}}) {"; + code_ += " value = new RT(std::forward(val));"; + code_ += " }"; + code_ += " }"; + code_ += ""; + } + code_ += " " + UnionUnPackSignature(enum_def, true) + ";"; + code_ += " " + UnionPackSignature(enum_def, true) + ";"; + code_ += ""; + + for (const auto ev : enum_def.Vals()) { + if (ev->IsZero()) { continue; } + + const auto native_type = GetUnionElement(*ev, true, opts_); + code_.SetValue("NATIVE_TYPE", native_type); + code_.SetValue("NATIVE_NAME", Name(*ev)); + code_.SetValue("NATIVE_ID", GetEnumValUse(enum_def, *ev)); + + code_ += " {{NATIVE_TYPE}} *As{{NATIVE_NAME}}() {"; + code_ += " return type == {{NATIVE_ID}} ?"; + code_ += " reinterpret_cast<{{NATIVE_TYPE}} *>(value) : nullptr;"; + code_ += " }"; + + code_ += " const {{NATIVE_TYPE}} *As{{NATIVE_NAME}}() const {"; + code_ += " return type == {{NATIVE_ID}} ?"; + code_ += + " reinterpret_cast(value) : nullptr;"; + code_ += " }"; + } + code_ += "};"; + code_ += ""; + + GenEnumEquals(enum_def); + } + + void GenEnumEquals(const EnumDef &enum_def) { + if (opts_.gen_compare) { + code_ += ""; + code_ += + "inline bool operator==(const {{NAME}}Union &lhs, const " + "{{NAME}}Union &rhs) {"; + code_ += " if (lhs.type != rhs.type) return false;"; + code_ += " switch (lhs.type) {"; + + for (auto it = enum_def.Vals().begin(); it != enum_def.Vals().end(); + ++it) { + const auto &ev = **it; + code_.SetValue("NATIVE_ID", GetEnumValUse(enum_def, ev)); + if (ev.IsNonZero()) { + const auto native_type = GetUnionElement(ev, true, opts_); + code_.SetValue("NATIVE_TYPE", native_type); + code_ += " case {{NATIVE_ID}}: {"; + code_ += + " return *(reinterpret_cast(lhs.value)) =="; + code_ += + " *(reinterpret_cast(rhs.value));"; + code_ += " }"; + } else { + code_ += " case {{NATIVE_ID}}: {"; + code_ += " return true;"; // "NONE" enum value. + code_ += " }"; + } + } + code_ += " default: {"; + code_ += " return false;"; + code_ += " }"; + code_ += " }"; + code_ += "}"; - // Generate an array of all enumeration values + code_ += ""; + code_ += + "inline bool operator!=(const {{NAME}}Union &lhs, const " + "{{NAME}}Union &rhs) {"; + code_ += " return !(lhs == rhs);"; + code_ += "}"; + code_ += ""; + } + } + + // Generate an array of all enumeration values + void GenEnumArray(const EnumDef &enum_def) { auto num_fields = NumToString(enum_def.size()); code_ += "inline const {{ENUM_NAME}} (&EnumValues{{ENUM_NAME}}())[" + num_fields + "] {"; @@ -1293,11 +1462,13 @@ class CppGenerator : public BaseGenerator { code_ += " return values;"; code_ += "}"; code_ += ""; + } - // Generate a generate string table for enum values. - // Problem is, if values are very sparse that could generate really big - // tables. Ideally in that case we generate a map lookup instead, but for - // the moment we simply don't output a table at all. + // Generate a string table for enum values. + // Problem is, if values are very sparse that could generate huge tables. + // Ideally in that case we generate a map lookup instead, but for the moment + // we simply don't output a table at all. + void GenEnumStringTable(const EnumDef &enum_def) { auto range = enum_def.Distance(); // Average distance between values above which we consider a table // "too sparse". Change at will. @@ -1308,9 +1479,7 @@ class CppGenerator : public BaseGenerator { NumToString(range + 1 + 1) + "] = {"; auto val = enum_def.Vals().front(); - for (auto it = enum_def.Vals().begin(); it != enum_def.Vals().end(); - ++it) { - auto ev = *it; + for (const auto &ev : enum_def.Vals()) { for (auto k = enum_def.Distance(val, ev); k > 1; --k) { code_ += " \"\","; } @@ -1343,180 +1512,16 @@ class CppGenerator : public BaseGenerator { code_ += ""; } else { code_ += "inline const char *EnumName{{ENUM_NAME}}({{ENUM_NAME}} e) {"; - code_ += " switch (e) {"; - - for (auto it = enum_def.Vals().begin(); it != enum_def.Vals().end(); - ++it) { - const auto &ev = **it; - code_ += " case " + GetEnumValUse(enum_def, ev) + ": return \"" + - Name(ev) + "\";"; + for (const auto &ev : enum_def.Vals()) { + code_ += " case " + GetEnumValUse(enum_def, *ev) + ": return \"" + + Name(*ev) + "\";"; } - code_ += " default: return \"\";"; code_ += " }"; - code_ += "}"; code_ += ""; } - - // Generate type traits for unions to map from a type to union enum value. - if (enum_def.is_union && !enum_def.uses_multiple_type_instances) { - for (auto it = enum_def.Vals().begin(); it != enum_def.Vals().end(); - ++it) { - const auto &ev = **it; - - if (it == enum_def.Vals().begin()) { - code_ += "template struct {{ENUM_NAME}}Traits {"; - } else { - auto name = GetUnionElement(ev, false, opts_); - code_ += "template<> struct {{ENUM_NAME}}Traits<" + name + "> {"; - } - - auto value = GetEnumValUse(enum_def, ev); - code_ += " static const {{ENUM_NAME}} enum_value = " + value + ";"; - code_ += "};"; - code_ += ""; - } - } - - if (opts_.generate_object_based_api && enum_def.is_union) { - // Generate a union type and a trait type for it. - code_.SetValue("NAME", Name(enum_def)); - FLATBUFFERS_ASSERT(enum_def.Lookup("NONE")); - code_.SetValue("NONE", GetEnumValUse(enum_def, *enum_def.Lookup("NONE"))); - - if (!enum_def.uses_multiple_type_instances) { - for (auto it = enum_def.Vals().begin(); it != enum_def.Vals().end(); - ++it) { - const auto &ev = **it; - - if (it == enum_def.Vals().begin()) { - code_ += "template struct {{NAME}}UnionTraits {"; - } else { - auto name = GetUnionElement(ev, true, opts_); - code_ += "template<> struct {{NAME}}UnionTraits<" + name + "> {"; - } - - auto value = GetEnumValUse(enum_def, ev); - code_ += " static const {{ENUM_NAME}} enum_value = " + value + ";"; - code_ += "};"; - code_ += ""; - } - } - - code_ += "struct {{NAME}}Union {"; - code_ += " {{NAME}} type;"; - code_ += " void *value;"; - code_ += ""; - code_ += " {{NAME}}Union() : type({{NONE}}), value(nullptr) {}"; - code_ += " {{NAME}}Union({{NAME}}Union&& u) FLATBUFFERS_NOEXCEPT :"; - code_ += " type({{NONE}}), value(nullptr)"; - code_ += " { std::swap(type, u.type); std::swap(value, u.value); }"; - code_ += " {{NAME}}Union(const {{NAME}}Union &);"; - code_ += " {{NAME}}Union &operator=(const {{NAME}}Union &u)"; - code_ += - " { {{NAME}}Union t(u); std::swap(type, t.type); std::swap(value, " - "t.value); return *this; }"; - code_ += - " {{NAME}}Union &operator=({{NAME}}Union &&u) FLATBUFFERS_NOEXCEPT"; - code_ += - " { std::swap(type, u.type); std::swap(value, u.value); return " - "*this; }"; - code_ += " ~{{NAME}}Union() { Reset(); }"; - code_ += ""; - code_ += " void Reset();"; - code_ += ""; - if (!enum_def.uses_multiple_type_instances) { - code_ += " template "; - code_ += " void Set(T&& val) {"; - code_ += " typedef typename std::remove_reference::type RT;"; - code_ += " Reset();"; - code_ += " type = {{NAME}}UnionTraits::enum_value;"; - code_ += " if (type != {{NONE}}) {"; - code_ += " value = new RT(std::forward(val));"; - code_ += " }"; - code_ += " }"; - code_ += ""; - } - code_ += " " + UnionUnPackSignature(enum_def, true) + ";"; - code_ += " " + UnionPackSignature(enum_def, true) + ";"; - code_ += ""; - - for (auto it = enum_def.Vals().begin(); it != enum_def.Vals().end(); - ++it) { - const auto &ev = **it; - if (ev.IsZero()) { continue; } - - const auto native_type = GetUnionElement(ev, true, opts_); - code_.SetValue("NATIVE_TYPE", native_type); - code_.SetValue("NATIVE_NAME", Name(ev)); - code_.SetValue("NATIVE_ID", GetEnumValUse(enum_def, ev)); - - code_ += " {{NATIVE_TYPE}} *As{{NATIVE_NAME}}() {"; - code_ += " return type == {{NATIVE_ID}} ?"; - code_ += " reinterpret_cast<{{NATIVE_TYPE}} *>(value) : nullptr;"; - code_ += " }"; - - code_ += " const {{NATIVE_TYPE}} *As{{NATIVE_NAME}}() const {"; - code_ += " return type == {{NATIVE_ID}} ?"; - code_ += - " reinterpret_cast(value) : nullptr;"; - code_ += " }"; - } - code_ += "};"; - code_ += ""; - - if (opts_.gen_compare) { - code_ += ""; - code_ += - "inline bool operator==(const {{NAME}}Union &lhs, const " - "{{NAME}}Union &rhs) {"; - code_ += " if (lhs.type != rhs.type) return false;"; - code_ += " switch (lhs.type) {"; - - for (auto it = enum_def.Vals().begin(); it != enum_def.Vals().end(); - ++it) { - const auto &ev = **it; - code_.SetValue("NATIVE_ID", GetEnumValUse(enum_def, ev)); - if (ev.IsNonZero()) { - const auto native_type = GetUnionElement(ev, true, opts_); - code_.SetValue("NATIVE_TYPE", native_type); - code_ += " case {{NATIVE_ID}}: {"; - code_ += - " return *(reinterpret_cast(lhs.value)) =="; - code_ += - " *(reinterpret_cast(rhs.value));"; - code_ += " }"; - } else { - code_ += " case {{NATIVE_ID}}: {"; - code_ += " return true;"; // "NONE" enum value. - code_ += " }"; - } - } - code_ += " default: {"; - code_ += " return false;"; - code_ += " }"; - code_ += " }"; - code_ += "}"; - - code_ += ""; - code_ += - "inline bool operator!=(const {{NAME}}Union &lhs, const " - "{{NAME}}Union &rhs) {"; - code_ += " return !(lhs == rhs);"; - code_ += "}"; - code_ += ""; - } - } - - if (enum_def.is_union) { - code_ += UnionVerifySignature(enum_def) + ";"; - code_ += UnionVectorVerifySignature(enum_def) + ";"; - code_ += ""; - } } void GenUnionPost(const EnumDef &enum_def) { diff --git a/tests/minified_enums/enums.fbs b/tests/minified_enums/enums.fbs new file mode 100644 index 0000000000..0e0211aa1c --- /dev/null +++ b/tests/minified_enums/enums.fbs @@ -0,0 +1,3 @@ +enum Color : int {Red = 1, Blue, Orange} + +enum Size: int {Small = 10, Large = 100, Medium = 1000} \ No newline at end of file diff --git a/tests/minified_enums/enums_generated.h b/tests/minified_enums/enums_generated.h new file mode 100644 index 0000000000..2794186684 --- /dev/null +++ b/tests/minified_enums/enums_generated.h @@ -0,0 +1,26 @@ +// automatically generated by the FlatBuffers compiler, do not modify + + +#ifndef FLATBUFFERS_GENERATED_ENUMS_H_ +#define FLATBUFFERS_GENERATED_ENUMS_H_ + +#include "flatbuffers/flatbuffers.h" + +// Ensure the included flatbuffers.h is the same version as when this file was +// generated, otherwise it may not be compatible. +static_assert(FLATBUFFERS_VERSION_MAJOR == 22 && + FLATBUFFERS_VERSION_MINOR == 9 && + FLATBUFFERS_VERSION_REVISION == 29, + "Non-compatible flatbuffers version included"); + +enum Color : int32_t { + Color_Red = 1, + Color_Blue = 2, + Color_Orange = 3 +}; +enum Size : int32_t { + Size_Small = 10, + Size_Large = 100, + Size_Medium = 1000 +}; +#endif // FLATBUFFERS_GENERATED_ENUMS_H_ From 74756e5d1b1e44034c8744d1b2ed63bef125b18c Mon Sep 17 00:00:00 2001 From: mr-swifter <103502437+mr-swifter@users.noreply.github.com> Date: Fri, 11 Nov 2022 20:36:47 +0300 Subject: [PATCH 016/571] [swift] fix broken swift test build (#7633) (#7634) * [swift] fix broken swift test build (#7633) * [swift] fix unused variable (#7633) * [swift] update generated code (#7633) * [swift] add binary & json test for nan, inf, -inf for swift (#7633) * [swift] use just '.infinity' instead of '+.infinity' (#7633) * [swift] remove commented code (#7633) Co-authored-by: Derek Bailey Co-authored-by: mustiikhalil <26250654+mustiikhalil@users.noreply.github.com> --- scripts/generate_code.py | 1 + src/idl_gen_swift.cpp | 84 ++++-------- tests/nan_inf_test.fbs | 14 ++ .../monster_test_generated.swift | 124 +++++++++++++++++- .../FlatBuffersNanInfTests.swift | 68 ++++++++++ .../monster_test_generated.swift | 80 +++++------ .../nan_inf_test_generated.swift | 116 ++++++++++++++++ 7 files changed, 389 insertions(+), 98 deletions(-) create mode 100644 tests/nan_inf_test.fbs create mode 100644 tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/FlatBuffersNanInfTests.swift create mode 100644 tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/nan_inf_test_generated.swift diff --git a/scripts/generate_code.py b/scripts/generate_code.py index dd84cfdfb0..66e978517c 100755 --- a/scripts/generate_code.py +++ b/scripts/generate_code.py @@ -432,6 +432,7 @@ def glob(path, pattern): ) flatc(SWIFT_OPTS, schema="optional_scalars.fbs", prefix=swift_prefix) flatc(SWIFT_OPTS, schema="vector_has_test.fbs", prefix=swift_prefix) +flatc(SWIFT_OPTS, schema="nan_inf_test.fbs", prefix=swift_prefix) flatc( SWIFT_OPTS + ["--gen-object-api"], schema="more_defaults.fbs", diff --git a/src/idl_gen_swift.cpp b/src/idl_gen_swift.cpp index c7cf2b5c88..0424f7db83 100644 --- a/src/idl_gen_swift.cpp +++ b/src/idl_gen_swift.cpp @@ -258,11 +258,9 @@ class SwiftGenerator : public BaseGenerator { IsEnum(field.value.type) ? "{{BASEVALUE}}" : "{{VALUETYPE}}"; code_ += "private var _{{FIELDVAR}}: " + valueType; const auto accessing_value = IsEnum(field.value.type) ? ".value" : ""; - const auto is_bool = IsBool(field.value.type.base_type); const auto base_value = IsStruct(field.value.type) ? (type + "()") - : is_bool ? ("0" == field.value.constant ? "false" : "true") - : field.value.constant; + : SwiftConstant(field); main_constructor.push_back("_" + field_var + " = " + field_var + accessing_value); @@ -378,35 +376,6 @@ class SwiftGenerator : public BaseGenerator { code_ += "}\n"; } - // Generates the create function for swift - void GenStructWriter(const StructDef &struct_def) { - const bool is_private_access = - parser_.opts.swift_implementation_only || - struct_def.attributes.Lookup("private") != nullptr; - code_.SetValue("ACCESS_TYPE", is_private_access ? "internal" : "public"); - code_.SetValue("STRUCTNAME", namer_.NamespacedType(struct_def)); - code_.SetValue("SHORT_STRUCTNAME", namer_.Method(struct_def)); - code_ += "extension {{STRUCTNAME}} {"; - Indent(); - code_ += "@discardableResult"; - code_ += - "{{ACCESS_TYPE}} static func create{{SHORT_STRUCTNAME}}(builder: inout " - "FlatBufferBuilder, \\"; - std::string func_header = ""; - GenerateStructArgs(struct_def, &func_header, "", ""); - code_ += func_header.substr(0, func_header.size() - 2) + "\\"; - code_ += ") -> Offset {"; - Indent(); - code_ += - "builder.createStructOf(size: {{STRUCTNAME}}.size, alignment: " - "{{STRUCTNAME}}.alignment)"; - code_ += "return builder.endStruct()"; - Outdent(); - code_ += "}\n"; - Outdent(); - code_ += "}\n"; - } - void GenerateStructArgs(const StructDef &struct_def, std::string *code_ptr, const std::string &nameprefix, const std::string &object_name, @@ -430,11 +399,7 @@ class SwiftGenerator : public BaseGenerator { code += nameprefix + field_var + ": " + type; if (!IsEnum(field.value.type)) { code += " = "; - const auto is_bool = IsBool(field.value.type.base_type); - const auto constant = - is_bool ? ("0" == field.value.constant ? "false" : "true") - : field.value.constant; - code += constant; + code += SwiftConstant(field); } code += ", "; continue; @@ -633,7 +598,7 @@ class SwiftGenerator : public BaseGenerator { code_.SetValue("FIELDVAR", namer_.Variable(field)); code_.SetValue("VALUETYPE", nullable_type); code_.SetValue("OFFSET", namer_.Field(field)); - code_.SetValue("CONSTANT", field.value.constant); + code_.SetValue("CONSTANT", SwiftConstant(field)); std::string check_if_vector = (IsVector(field.value.type) || IsArray(field.value.type)) ? "VectorOf(" : "("; @@ -659,7 +624,7 @@ class SwiftGenerator : public BaseGenerator { const auto default_value = IsEnum(field.value.type) ? (field.IsOptional() ? "nil" : GenEnumDefaultValue(field)) - : field.value.constant; + : SwiftConstant(field); create_func_header.push_back( "" + field_field + ": " + nullable_type + " = " + (field.IsOptional() ? "nil" : default_value)); @@ -667,8 +632,7 @@ class SwiftGenerator : public BaseGenerator { } if (IsBool(field.value.type.base_type)) { - std::string default_value = - "0" == field.value.constant ? "false" : "true"; + std::string default_value = SwiftConstant(field); code_.SetValue("CONSTANT", default_value); code_.SetValue("VALUETYPE", field.IsOptional() ? "Bool?" : "Bool"); @@ -743,7 +707,7 @@ class SwiftGenerator : public BaseGenerator { code_.SetValue("FIELDMETHOD", namer_.Method(field)); code_.SetValue("VALUETYPE", type); code_.SetValue("OFFSET", namer_.Constant(field.name)); - code_.SetValue("CONSTANT", field.value.constant); + code_.SetValue("CONSTANT", SwiftConstant(field)); bool opt_scalar = field.IsOptional() && IsScalar(field.value.type.base_type); std::string def_Val = opt_scalar ? "nil" : "{{CONSTANT}}"; @@ -761,7 +725,7 @@ class SwiftGenerator : public BaseGenerator { if (IsBool(field.value.type.base_type)) { std::string default_value = field.IsOptional() ? "nil" - : ("0" == field.value.constant ? "false" : "true"); + : SwiftConstant(field); code_.SetValue("CONSTANT", default_value); code_.SetValue("VALUETYPE", "Bool"); code_ += GenReaderMainBody(optional) + "\\"; @@ -809,7 +773,7 @@ class SwiftGenerator : public BaseGenerator { break; case BASE_TYPE_STRING: { - const auto default_string = "\"" + field.value.constant + "\""; + const auto default_string = "\"" + SwiftConstant(field) + "\""; code_.SetValue("VALUETYPE", GenType(field.value.type)); code_.SetValue("CONSTANT", field.IsDefault() ? default_string : "nil"); code_ += GenReaderMainBody(is_required) + GenOffset() + @@ -1017,20 +981,20 @@ class SwiftGenerator : public BaseGenerator { field.value.type.VectorType().base_type != BASE_TYPE_UTYPE; code_.SetValue("FIELDVAR", namer_.Variable(field)); - code_.SetValue("CONSTANT", field.value.constant); + code_.SetValue("CONSTANT", SwiftConstant(field)); bool should_indent = true; if (is_non_union_vector) { code_ += "if {{FIELDVAR}}Count > 0 {"; } else if (IsEnum(type) && !field.IsOptional()) { code_.SetValue("CONSTANT", GenEnumDefaultValue(field)); code_ += "if {{FIELDVAR}} != {{CONSTANT}} {"; + } else if (IsFloat(type.base_type) && StringIsFlatbufferNan(field.value.constant)) { + code_ += "if !{{FIELDVAR}}.isNaN {"; } else if (IsScalar(type.base_type) && !IsEnum(type) && !IsBool(type.base_type) && !field.IsOptional()) { code_ += "if {{FIELDVAR}} != {{CONSTANT}} {"; } else if (IsBool(type.base_type) && !field.IsOptional()) { - std::string default_value = - "0" == field.value.constant ? "false" : "true"; - code_.SetValue("CONSTANT", default_value); + code_.SetValue("CONSTANT", SwiftConstant(field)); code_ += "if {{FIELDVAR}} != {{CONSTANT}} {"; } else { should_indent = false; @@ -1578,13 +1542,13 @@ class SwiftGenerator : public BaseGenerator { if (field.IsRequired()) { std::string default_value = - field.IsDefault() ? field.value.constant : ""; + field.IsDefault() ? SwiftConstant(field) : ""; base_constructor.push_back(field_var + " = \"" + default_value + "\""); break; } if (field.IsDefault() && !field.IsRequired()) { - std::string value = field.IsDefault() ? field.value.constant : "nil"; + std::string value = field.IsDefault() ? SwiftConstant(field) : "nil"; base_constructor.push_back(field_var + " = \"" + value + "\""); } break; @@ -1603,14 +1567,14 @@ class SwiftGenerator : public BaseGenerator { code_ += "{{ACCESS_TYPE}} var {{FIELDVAR}}: {{VALUETYPE}}" + nullable; if (!field.IsOptional()) base_constructor.push_back(field_var + " = " + - field.value.constant); + SwiftConstant(field)); break; } if (IsEnum(field.value.type)) { const auto default_value = IsEnum(field.value.type) ? GenEnumDefaultValue(field) - : field.value.constant; + : SwiftConstant(field); code_ += "{{ACCESS_TYPE}} var {{FIELDVAR}}: {{VALUETYPE}}"; base_constructor.push_back(field_var + " = " + default_value); break; @@ -1618,10 +1582,8 @@ class SwiftGenerator : public BaseGenerator { if (IsBool(field.value.type.base_type)) { code_ += "{{ACCESS_TYPE}} var {{FIELDVAR}}: Bool" + nullable; - std::string default_value = - "0" == field.value.constant ? "false" : "true"; if (!field.IsOptional()) - base_constructor.push_back(field_var + " = " + default_value); + base_constructor.push_back(field_var + " = " + SwiftConstant(field)); } } } @@ -1676,7 +1638,7 @@ class SwiftGenerator : public BaseGenerator { if (IsEnum(vectortype) && vectortype.base_type != BASE_TYPE_UNION) { const auto default_value = IsEnum(field.value.type) ? GenEnumDefaultValue(field) - : field.value.constant; + : SwiftConstant(field); buffer_constructor.push_back(indentation + field_var + ".append(_t." + field_field + "(at: index)!)"); break; @@ -1869,6 +1831,16 @@ class SwiftGenerator : public BaseGenerator { } } + std::string SwiftConstant(const FieldDef& field) { + const auto default_value = + StringIsFlatbufferNan(field.value.constant) ? ".nan" : + StringIsFlatbufferPositiveInfinity(field.value.constant) ? ".infinity" : + StringIsFlatbufferNegativeInfinity(field.value.constant) ? "-.infinity" : + IsBool(field.value.type.base_type) ? ("0" == field.value.constant ? "false" : "true") : + field.value.constant; + return default_value; + } + std::string GenEnumConstructor(const std::string &at) { return "{{VALUETYPE}}(rawValue: " + GenReader("BASEVALUE", at) + ") "; } diff --git a/tests/nan_inf_test.fbs b/tests/nan_inf_test.fbs new file mode 100644 index 0000000000..e9dc281d7b --- /dev/null +++ b/tests/nan_inf_test.fbs @@ -0,0 +1,14 @@ +namespace Swift.Tests; + +table NanInfTable +{ + default_nan:double = nan; + default_inf:double = inf; + default_ninf:double = -inf; + value_nan:double; + value_inf:double; + value_ninf:double; + value:double; +} + +root_type NanInfTable; diff --git a/tests/swift/Wasm.tests/Tests/FlatBuffers.Test.Swift.WasmTests/monster_test_generated.swift b/tests/swift/Wasm.tests/Tests/FlatBuffers.Test.Swift.WasmTests/monster_test_generated.swift index ef7d697a85..1924068736 100644 --- a/tests/swift/Wasm.tests/Tests/FlatBuffers.Test.Swift.WasmTests/monster_test_generated.swift +++ b/tests/swift/Wasm.tests/Tests/FlatBuffers.Test.Swift.WasmTests/monster_test_generated.swift @@ -1184,6 +1184,14 @@ public struct MyGame_Example_Monster: FlatBufferObject, Verifiable, ObjectAPIPac case nativeInline = 106 case longEnumNonEnumDefault = 108 case longEnumNormalDefault = 110 + case nanDefault = 112 + case infDefault = 114 + case positiveInfDefault = 116 + case infinityDefault = 118 + case positiveInfinityDefault = 120 + case negativeInfDefault = 122 + case negativeInfinityDefault = 124 + case doubleInfDefault = 126 var v: Int32 { Int32(self.rawValue) } var p: VOffset { self.rawValue } } @@ -1334,7 +1342,23 @@ public struct MyGame_Example_Monster: FlatBufferObject, Verifiable, ObjectAPIPac @discardableResult public func mutate(longEnumNonEnumDefault: MyGame_Example_LongEnum) -> Bool {let o = _accessor.offset(VTOFFSET.longEnumNonEnumDefault.v); return _accessor.mutate(longEnumNonEnumDefault.rawValue, index: o) } public var longEnumNormalDefault: MyGame_Example_LongEnum { let o = _accessor.offset(VTOFFSET.longEnumNormalDefault.v); return o == 0 ? .longone : MyGame_Example_LongEnum(rawValue: _accessor.readBuffer(of: UInt64.self, at: o)) ?? .longone } @discardableResult public func mutate(longEnumNormalDefault: MyGame_Example_LongEnum) -> Bool {let o = _accessor.offset(VTOFFSET.longEnumNormalDefault.v); return _accessor.mutate(longEnumNormalDefault.rawValue, index: o) } - public static func startMonster(_ fbb: inout FlatBufferBuilder) -> UOffset { fbb.startTable(with: 54) } + public var nanDefault: Float32 { let o = _accessor.offset(VTOFFSET.nanDefault.v); return o == 0 ? .nan : _accessor.readBuffer(of: Float32.self, at: o) } + @discardableResult public func mutate(nanDefault: Float32) -> Bool {let o = _accessor.offset(VTOFFSET.nanDefault.v); return _accessor.mutate(nanDefault, index: o) } + public var infDefault: Float32 { let o = _accessor.offset(VTOFFSET.infDefault.v); return o == 0 ? +.infinity : _accessor.readBuffer(of: Float32.self, at: o) } + @discardableResult public func mutate(infDefault: Float32) -> Bool {let o = _accessor.offset(VTOFFSET.infDefault.v); return _accessor.mutate(infDefault, index: o) } + public var positiveInfDefault: Float32 { let o = _accessor.offset(VTOFFSET.positiveInfDefault.v); return o == 0 ? +.infinity : _accessor.readBuffer(of: Float32.self, at: o) } + @discardableResult public func mutate(positiveInfDefault: Float32) -> Bool {let o = _accessor.offset(VTOFFSET.positiveInfDefault.v); return _accessor.mutate(positiveInfDefault, index: o) } + public var infinityDefault: Float32 { let o = _accessor.offset(VTOFFSET.infinityDefault.v); return o == 0 ? +.infinity : _accessor.readBuffer(of: Float32.self, at: o) } + @discardableResult public func mutate(infinityDefault: Float32) -> Bool {let o = _accessor.offset(VTOFFSET.infinityDefault.v); return _accessor.mutate(infinityDefault, index: o) } + public var positiveInfinityDefault: Float32 { let o = _accessor.offset(VTOFFSET.positiveInfinityDefault.v); return o == 0 ? +.infinity : _accessor.readBuffer(of: Float32.self, at: o) } + @discardableResult public func mutate(positiveInfinityDefault: Float32) -> Bool {let o = _accessor.offset(VTOFFSET.positiveInfinityDefault.v); return _accessor.mutate(positiveInfinityDefault, index: o) } + public var negativeInfDefault: Float32 { let o = _accessor.offset(VTOFFSET.negativeInfDefault.v); return o == 0 ? -.infinity : _accessor.readBuffer(of: Float32.self, at: o) } + @discardableResult public func mutate(negativeInfDefault: Float32) -> Bool {let o = _accessor.offset(VTOFFSET.negativeInfDefault.v); return _accessor.mutate(negativeInfDefault, index: o) } + public var negativeInfinityDefault: Float32 { let o = _accessor.offset(VTOFFSET.negativeInfinityDefault.v); return o == 0 ? -.infinity : _accessor.readBuffer(of: Float32.self, at: o) } + @discardableResult public func mutate(negativeInfinityDefault: Float32) -> Bool {let o = _accessor.offset(VTOFFSET.negativeInfinityDefault.v); return _accessor.mutate(negativeInfinityDefault, index: o) } + public var doubleInfDefault: Double { let o = _accessor.offset(VTOFFSET.doubleInfDefault.v); return o == 0 ? +.infinity : _accessor.readBuffer(of: Double.self, at: o) } + @discardableResult public func mutate(doubleInfDefault: Double) -> Bool {let o = _accessor.offset(VTOFFSET.doubleInfDefault.v); return _accessor.mutate(doubleInfDefault, index: o) } + public static func startMonster(_ fbb: inout FlatBufferBuilder) -> UOffset { fbb.startTable(with: 62) } public static func add(pos: MyGame_Example_Vec3?, _ fbb: inout FlatBufferBuilder) { guard let pos = pos else { return }; fbb.create(struct: pos, position: VTOFFSET.pos.p) } public static func add(mana: Int16, _ fbb: inout FlatBufferBuilder) { fbb.add(element: mana, def: 150, at: VTOFFSET.mana.p) } public static func add(hp: Int16, _ fbb: inout FlatBufferBuilder) { fbb.add(element: hp, def: 100, at: VTOFFSET.hp.p) } @@ -1398,6 +1422,14 @@ public struct MyGame_Example_Monster: FlatBufferObject, Verifiable, ObjectAPIPac public static func add(nativeInline: MyGame_Example_Test?, _ fbb: inout FlatBufferBuilder) { guard let nativeInline = nativeInline else { return }; fbb.create(struct: nativeInline, position: VTOFFSET.nativeInline.p) } public static func add(longEnumNonEnumDefault: MyGame_Example_LongEnum, _ fbb: inout FlatBufferBuilder) { fbb.add(element: longEnumNonEnumDefault.rawValue, def: 0, at: VTOFFSET.longEnumNonEnumDefault.p) } public static func add(longEnumNormalDefault: MyGame_Example_LongEnum, _ fbb: inout FlatBufferBuilder) { fbb.add(element: longEnumNormalDefault.rawValue, def: 2, at: VTOFFSET.longEnumNormalDefault.p) } + public static func add(nanDefault: Float32, _ fbb: inout FlatBufferBuilder) { fbb.add(element: nanDefault, def: .nan, at: VTOFFSET.nanDefault.p) } + public static func add(infDefault: Float32, _ fbb: inout FlatBufferBuilder) { fbb.add(element: infDefault, def: +.infinity, at: VTOFFSET.infDefault.p) } + public static func add(positiveInfDefault: Float32, _ fbb: inout FlatBufferBuilder) { fbb.add(element: positiveInfDefault, def: +.infinity, at: VTOFFSET.positiveInfDefault.p) } + public static func add(infinityDefault: Float32, _ fbb: inout FlatBufferBuilder) { fbb.add(element: infinityDefault, def: +.infinity, at: VTOFFSET.infinityDefault.p) } + public static func add(positiveInfinityDefault: Float32, _ fbb: inout FlatBufferBuilder) { fbb.add(element: positiveInfinityDefault, def: +.infinity, at: VTOFFSET.positiveInfinityDefault.p) } + public static func add(negativeInfDefault: Float32, _ fbb: inout FlatBufferBuilder) { fbb.add(element: negativeInfDefault, def: -.infinity, at: VTOFFSET.negativeInfDefault.p) } + public static func add(negativeInfinityDefault: Float32, _ fbb: inout FlatBufferBuilder) { fbb.add(element: negativeInfinityDefault, def: -.infinity, at: VTOFFSET.negativeInfinityDefault.p) } + public static func add(doubleInfDefault: Double, _ fbb: inout FlatBufferBuilder) { fbb.add(element: doubleInfDefault, def: +.infinity, at: VTOFFSET.doubleInfDefault.p) } public static func endMonster(_ fbb: inout FlatBufferBuilder, start: UOffset) -> Offset { let end = Offset(offset: fbb.endTable(at: start)); fbb.require(table: end, fields: [10]); return end } public static func createMonster( _ fbb: inout FlatBufferBuilder, @@ -1453,7 +1485,15 @@ public struct MyGame_Example_Monster: FlatBufferObject, Verifiable, ObjectAPIPac scalarKeySortedTablesVectorOffset scalarKeySortedTables: Offset = Offset(), nativeInline: MyGame_Example_Test? = nil, longEnumNonEnumDefault: MyGame_Example_LongEnum = .longone, - longEnumNormalDefault: MyGame_Example_LongEnum = .longone + longEnumNormalDefault: MyGame_Example_LongEnum = .longone, + nanDefault: Float32 = .nan, + infDefault: Float32 = +.infinity, + positiveInfDefault: Float32 = +.infinity, + infinityDefault: Float32 = +.infinity, + positiveInfinityDefault: Float32 = +.infinity, + negativeInfDefault: Float32 = -.infinity, + negativeInfinityDefault: Float32 = -.infinity, + doubleInfDefault: Double = +.infinity ) -> Offset { let __start = MyGame_Example_Monster.startMonster(&fbb) MyGame_Example_Monster.add(pos: pos, &fbb) @@ -1509,6 +1549,14 @@ public struct MyGame_Example_Monster: FlatBufferObject, Verifiable, ObjectAPIPac MyGame_Example_Monster.add(nativeInline: nativeInline, &fbb) MyGame_Example_Monster.add(longEnumNonEnumDefault: longEnumNonEnumDefault, &fbb) MyGame_Example_Monster.add(longEnumNormalDefault: longEnumNormalDefault, &fbb) + MyGame_Example_Monster.add(nanDefault: nanDefault, &fbb) + MyGame_Example_Monster.add(infDefault: infDefault, &fbb) + MyGame_Example_Monster.add(positiveInfDefault: positiveInfDefault, &fbb) + MyGame_Example_Monster.add(infinityDefault: infinityDefault, &fbb) + MyGame_Example_Monster.add(positiveInfinityDefault: positiveInfinityDefault, &fbb) + MyGame_Example_Monster.add(negativeInfDefault: negativeInfDefault, &fbb) + MyGame_Example_Monster.add(negativeInfinityDefault: negativeInfinityDefault, &fbb) + MyGame_Example_Monster.add(doubleInfDefault: doubleInfDefault, &fbb) return MyGame_Example_Monster.endMonster(&fbb, start: __start) } public static func sortVectorOfMonster(offsets:[Offset], _ fbb: inout FlatBufferBuilder) -> Offset { @@ -1668,6 +1716,14 @@ public struct MyGame_Example_Monster: FlatBufferObject, Verifiable, ObjectAPIPac MyGame_Example_Monster.add(nativeInline: obj.nativeInline, &builder) MyGame_Example_Monster.add(longEnumNonEnumDefault: obj.longEnumNonEnumDefault, &builder) MyGame_Example_Monster.add(longEnumNormalDefault: obj.longEnumNormalDefault, &builder) + MyGame_Example_Monster.add(nanDefault: obj.nanDefault, &builder) + MyGame_Example_Monster.add(infDefault: obj.infDefault, &builder) + MyGame_Example_Monster.add(positiveInfDefault: obj.positiveInfDefault, &builder) + MyGame_Example_Monster.add(infinityDefault: obj.infinityDefault, &builder) + MyGame_Example_Monster.add(positiveInfinityDefault: obj.positiveInfinityDefault, &builder) + MyGame_Example_Monster.add(negativeInfDefault: obj.negativeInfDefault, &builder) + MyGame_Example_Monster.add(negativeInfinityDefault: obj.negativeInfinityDefault, &builder) + MyGame_Example_Monster.add(doubleInfDefault: obj.doubleInfDefault, &builder) return MyGame_Example_Monster.endMonster(&builder, start: __root) } @@ -1756,6 +1812,14 @@ public struct MyGame_Example_Monster: FlatBufferObject, Verifiable, ObjectAPIPac try _v.visit(field: VTOFFSET.nativeInline.p, fieldName: "nativeInline", required: false, type: MyGame_Example_Test.self) try _v.visit(field: VTOFFSET.longEnumNonEnumDefault.p, fieldName: "longEnumNonEnumDefault", required: false, type: MyGame_Example_LongEnum.self) try _v.visit(field: VTOFFSET.longEnumNormalDefault.p, fieldName: "longEnumNormalDefault", required: false, type: MyGame_Example_LongEnum.self) + try _v.visit(field: VTOFFSET.nanDefault.p, fieldName: "nanDefault", required: false, type: Float32.self) + try _v.visit(field: VTOFFSET.infDefault.p, fieldName: "infDefault", required: false, type: Float32.self) + try _v.visit(field: VTOFFSET.positiveInfDefault.p, fieldName: "positiveInfDefault", required: false, type: Float32.self) + try _v.visit(field: VTOFFSET.infinityDefault.p, fieldName: "infinityDefault", required: false, type: Float32.self) + try _v.visit(field: VTOFFSET.positiveInfinityDefault.p, fieldName: "positiveInfinityDefault", required: false, type: Float32.self) + try _v.visit(field: VTOFFSET.negativeInfDefault.p, fieldName: "negativeInfDefault", required: false, type: Float32.self) + try _v.visit(field: VTOFFSET.negativeInfinityDefault.p, fieldName: "negativeInfinityDefault", required: false, type: Float32.self) + try _v.visit(field: VTOFFSET.doubleInfDefault.p, fieldName: "doubleInfDefault", required: false, type: Double.self) _v.finish() } } @@ -1816,6 +1880,14 @@ extension MyGame_Example_Monster: Encodable { case nativeInline = "native_inline" case longEnumNonEnumDefault = "long_enum_non_enum_default" case longEnumNormalDefault = "long_enum_normal_default" + case nanDefault = "nan_default" + case infDefault = "inf_default" + case positiveInfDefault = "positive_inf_default" + case infinityDefault = "infinity_default" + case positiveInfinityDefault = "positive_infinity_default" + case negativeInfDefault = "negative_inf_default" + case negativeInfinityDefault = "negative_infinity_default" + case doubleInfDefault = "double_inf_default" } public func encode(to encoder: Encoder) throws { var container = encoder.container(keyedBy: CodingKeys.self) @@ -2033,6 +2105,30 @@ extension MyGame_Example_Monster: Encodable { if longEnumNormalDefault != .longone { try container.encodeIfPresent(longEnumNormalDefault, forKey: .longEnumNormalDefault) } + if !nanDefault.isNaN { + try container.encodeIfPresent(nanDefault, forKey: .nanDefault) + } + if infDefault != +.infinity { + try container.encodeIfPresent(infDefault, forKey: .infDefault) + } + if positiveInfDefault != +.infinity { + try container.encodeIfPresent(positiveInfDefault, forKey: .positiveInfDefault) + } + if infinityDefault != +.infinity { + try container.encodeIfPresent(infinityDefault, forKey: .infinityDefault) + } + if positiveInfinityDefault != +.infinity { + try container.encodeIfPresent(positiveInfinityDefault, forKey: .positiveInfinityDefault) + } + if negativeInfDefault != -.infinity { + try container.encodeIfPresent(negativeInfDefault, forKey: .negativeInfDefault) + } + if negativeInfinityDefault != -.infinity { + try container.encodeIfPresent(negativeInfinityDefault, forKey: .negativeInfinityDefault) + } + if doubleInfDefault != +.infinity { + try container.encodeIfPresent(doubleInfDefault, forKey: .doubleInfDefault) + } } } @@ -2088,6 +2184,14 @@ public class MyGame_Example_MonsterT: NativeObject { public var nativeInline: MyGame_Example_Test? public var longEnumNonEnumDefault: MyGame_Example_LongEnum public var longEnumNormalDefault: MyGame_Example_LongEnum + public var nanDefault: Float32 + public var infDefault: Float32 + public var positiveInfDefault: Float32 + public var infinityDefault: Float32 + public var positiveInfinityDefault: Float32 + public var negativeInfDefault: Float32 + public var negativeInfinityDefault: Float32 + public var doubleInfDefault: Double public init(_ _t: inout MyGame_Example_Monster) { pos = _t.pos @@ -2240,6 +2344,14 @@ public class MyGame_Example_MonsterT: NativeObject { nativeInline = _t.nativeInline longEnumNonEnumDefault = _t.longEnumNonEnumDefault longEnumNormalDefault = _t.longEnumNormalDefault + nanDefault = _t.nanDefault + infDefault = _t.infDefault + positiveInfDefault = _t.positiveInfDefault + infinityDefault = _t.infinityDefault + positiveInfinityDefault = _t.positiveInfinityDefault + negativeInfDefault = _t.negativeInfDefault + negativeInfinityDefault = _t.negativeInfinityDefault + doubleInfDefault = _t.doubleInfDefault } public init() { @@ -2290,6 +2402,14 @@ public class MyGame_Example_MonsterT: NativeObject { nativeInline = MyGame_Example_Test() longEnumNonEnumDefault = .longone longEnumNormalDefault = .longone + nanDefault = .nan + infDefault = +.infinity + positiveInfDefault = +.infinity + infinityDefault = +.infinity + positiveInfinityDefault = +.infinity + negativeInfDefault = -.infinity + negativeInfinityDefault = -.infinity + doubleInfDefault = +.infinity } public func serialize() -> ByteBuffer { return serialize(type: MyGame_Example_Monster.self) } diff --git a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/FlatBuffersNanInfTests.swift b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/FlatBuffersNanInfTests.swift new file mode 100644 index 0000000000..e6ee5a5abe --- /dev/null +++ b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/FlatBuffersNanInfTests.swift @@ -0,0 +1,68 @@ +/* + * 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 XCTest +@testable import FlatBuffers + +final class FlatBuffersNanInfTests: XCTestCase { + + func createTestTable() -> FlatBufferBuilder { + var fbb = FlatBufferBuilder() + let msg = Swift_Tests_NanInfTable.createNanInfTable(&fbb, + valueNan: .nan, + valueInf: .infinity, + valueNinf: -.infinity, + value: 100.0 + ) + fbb.finish(offset: msg) + return fbb + } + + func testInfNanBinary() { + let fbb = createTestTable() + let data = fbb.sizedByteArray + + let table = Swift_Tests_NanInfTable.getRootAsNanInfTable(bb: ByteBuffer(bytes: data)) + XCTAssert(table.defaultNan.isNaN) + XCTAssertEqual(table.defaultInf, .infinity) + XCTAssertEqual(table.defaultNinf, -.infinity) + XCTAssert(table.valueNan.isNaN) + XCTAssertEqual(table.valueInf, .infinity) + XCTAssertEqual(table.valueNinf, -.infinity) + XCTAssertEqual(table.value, 100.0) + } + + func testInfNanJSON() { + let fbb = createTestTable() + var bb = fbb.sizedBuffer + do { + let reader: Swift_Tests_NanInfTable = try getCheckedRoot(byteBuffer: &bb) + let encoder = JSONEncoder() + encoder.keyEncodingStrategy = .convertToSnakeCase + encoder.nonConformingFloatEncodingStrategy = + .convertToString(positiveInfinity: "inf", negativeInfinity: "-inf", nan: "nan") + let data = try encoder.encode(reader) + XCTAssertEqual(data, jsonData.data(using: .utf8)) + } catch { + XCTFail(error.localizedDescription) + } + } + + var jsonData: String { + "{\"value_inf\":\"inf\",\"value\":100,\"value_nan\":\"nan\",\"value_ninf\":\"-inf\"}" + } + +} diff --git a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/monster_test_generated.swift b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/monster_test_generated.swift index 18d227f923..67399e1c73 100644 --- a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/monster_test_generated.swift +++ b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/monster_test_generated.swift @@ -1342,21 +1342,21 @@ public struct MyGame_Example_Monster: FlatBufferObject, Verifiable, ObjectAPIPac @discardableResult public func mutate(longEnumNonEnumDefault: MyGame_Example_LongEnum) -> Bool {let o = _accessor.offset(VTOFFSET.longEnumNonEnumDefault.v); return _accessor.mutate(longEnumNonEnumDefault.rawValue, index: o) } public var longEnumNormalDefault: MyGame_Example_LongEnum { let o = _accessor.offset(VTOFFSET.longEnumNormalDefault.v); return o == 0 ? .longone : MyGame_Example_LongEnum(rawValue: _accessor.readBuffer(of: UInt64.self, at: o)) ?? .longone } @discardableResult public func mutate(longEnumNormalDefault: MyGame_Example_LongEnum) -> Bool {let o = _accessor.offset(VTOFFSET.longEnumNormalDefault.v); return _accessor.mutate(longEnumNormalDefault.rawValue, index: o) } - public var nanDefault: Float32 { let o = _accessor.offset(VTOFFSET.nanDefault.v); return o == 0 ? nan : _accessor.readBuffer(of: Float32.self, at: o) } + public var nanDefault: Float32 { let o = _accessor.offset(VTOFFSET.nanDefault.v); return o == 0 ? .nan : _accessor.readBuffer(of: Float32.self, at: o) } @discardableResult public func mutate(nanDefault: Float32) -> Bool {let o = _accessor.offset(VTOFFSET.nanDefault.v); return _accessor.mutate(nanDefault, index: o) } - public var infDefault: Float32 { let o = _accessor.offset(VTOFFSET.infDefault.v); return o == 0 ? inf : _accessor.readBuffer(of: Float32.self, at: o) } + public var infDefault: Float32 { let o = _accessor.offset(VTOFFSET.infDefault.v); return o == 0 ? .infinity : _accessor.readBuffer(of: Float32.self, at: o) } @discardableResult public func mutate(infDefault: Float32) -> Bool {let o = _accessor.offset(VTOFFSET.infDefault.v); return _accessor.mutate(infDefault, index: o) } - public var positiveInfDefault: Float32 { let o = _accessor.offset(VTOFFSET.positiveInfDefault.v); return o == 0 ? +inf : _accessor.readBuffer(of: Float32.self, at: o) } + public var positiveInfDefault: Float32 { let o = _accessor.offset(VTOFFSET.positiveInfDefault.v); return o == 0 ? .infinity : _accessor.readBuffer(of: Float32.self, at: o) } @discardableResult public func mutate(positiveInfDefault: Float32) -> Bool {let o = _accessor.offset(VTOFFSET.positiveInfDefault.v); return _accessor.mutate(positiveInfDefault, index: o) } - public var infinityDefault: Float32 { let o = _accessor.offset(VTOFFSET.infinityDefault.v); return o == 0 ? infinity : _accessor.readBuffer(of: Float32.self, at: o) } + public var infinityDefault: Float32 { let o = _accessor.offset(VTOFFSET.infinityDefault.v); return o == 0 ? .infinity : _accessor.readBuffer(of: Float32.self, at: o) } @discardableResult public func mutate(infinityDefault: Float32) -> Bool {let o = _accessor.offset(VTOFFSET.infinityDefault.v); return _accessor.mutate(infinityDefault, index: o) } - public var positiveInfinityDefault: Float32 { let o = _accessor.offset(VTOFFSET.positiveInfinityDefault.v); return o == 0 ? +infinity : _accessor.readBuffer(of: Float32.self, at: o) } + public var positiveInfinityDefault: Float32 { let o = _accessor.offset(VTOFFSET.positiveInfinityDefault.v); return o == 0 ? .infinity : _accessor.readBuffer(of: Float32.self, at: o) } @discardableResult public func mutate(positiveInfinityDefault: Float32) -> Bool {let o = _accessor.offset(VTOFFSET.positiveInfinityDefault.v); return _accessor.mutate(positiveInfinityDefault, index: o) } - public var negativeInfDefault: Float32 { let o = _accessor.offset(VTOFFSET.negativeInfDefault.v); return o == 0 ? -inf : _accessor.readBuffer(of: Float32.self, at: o) } + public var negativeInfDefault: Float32 { let o = _accessor.offset(VTOFFSET.negativeInfDefault.v); return o == 0 ? -.infinity : _accessor.readBuffer(of: Float32.self, at: o) } @discardableResult public func mutate(negativeInfDefault: Float32) -> Bool {let o = _accessor.offset(VTOFFSET.negativeInfDefault.v); return _accessor.mutate(negativeInfDefault, index: o) } - public var negativeInfinityDefault: Float32 { let o = _accessor.offset(VTOFFSET.negativeInfinityDefault.v); return o == 0 ? -infinity : _accessor.readBuffer(of: Float32.self, at: o) } + public var negativeInfinityDefault: Float32 { let o = _accessor.offset(VTOFFSET.negativeInfinityDefault.v); return o == 0 ? -.infinity : _accessor.readBuffer(of: Float32.self, at: o) } @discardableResult public func mutate(negativeInfinityDefault: Float32) -> Bool {let o = _accessor.offset(VTOFFSET.negativeInfinityDefault.v); return _accessor.mutate(negativeInfinityDefault, index: o) } - public var doubleInfDefault: Double { let o = _accessor.offset(VTOFFSET.doubleInfDefault.v); return o == 0 ? inf : _accessor.readBuffer(of: Double.self, at: o) } + public var doubleInfDefault: Double { let o = _accessor.offset(VTOFFSET.doubleInfDefault.v); return o == 0 ? .infinity : _accessor.readBuffer(of: Double.self, at: o) } @discardableResult public func mutate(doubleInfDefault: Double) -> Bool {let o = _accessor.offset(VTOFFSET.doubleInfDefault.v); return _accessor.mutate(doubleInfDefault, index: o) } public static func startMonster(_ fbb: inout FlatBufferBuilder) -> UOffset { fbb.startTable(with: 62) } public static func add(pos: MyGame_Example_Vec3?, _ fbb: inout FlatBufferBuilder) { guard let pos = pos else { return }; fbb.create(struct: pos, position: VTOFFSET.pos.p) } @@ -1422,14 +1422,14 @@ public struct MyGame_Example_Monster: FlatBufferObject, Verifiable, ObjectAPIPac public static func add(nativeInline: MyGame_Example_Test?, _ fbb: inout FlatBufferBuilder) { guard let nativeInline = nativeInline else { return }; fbb.create(struct: nativeInline, position: VTOFFSET.nativeInline.p) } public static func add(longEnumNonEnumDefault: MyGame_Example_LongEnum, _ fbb: inout FlatBufferBuilder) { fbb.add(element: longEnumNonEnumDefault.rawValue, def: 0, at: VTOFFSET.longEnumNonEnumDefault.p) } public static func add(longEnumNormalDefault: MyGame_Example_LongEnum, _ fbb: inout FlatBufferBuilder) { fbb.add(element: longEnumNormalDefault.rawValue, def: 2, at: VTOFFSET.longEnumNormalDefault.p) } - public static func add(nanDefault: Float32, _ fbb: inout FlatBufferBuilder) { fbb.add(element: nanDefault, def: nan, at: VTOFFSET.nanDefault.p) } - public static func add(infDefault: Float32, _ fbb: inout FlatBufferBuilder) { fbb.add(element: infDefault, def: inf, at: VTOFFSET.infDefault.p) } - public static func add(positiveInfDefault: Float32, _ fbb: inout FlatBufferBuilder) { fbb.add(element: positiveInfDefault, def: +inf, at: VTOFFSET.positiveInfDefault.p) } - public static func add(infinityDefault: Float32, _ fbb: inout FlatBufferBuilder) { fbb.add(element: infinityDefault, def: infinity, at: VTOFFSET.infinityDefault.p) } - public static func add(positiveInfinityDefault: Float32, _ fbb: inout FlatBufferBuilder) { fbb.add(element: positiveInfinityDefault, def: +infinity, at: VTOFFSET.positiveInfinityDefault.p) } - public static func add(negativeInfDefault: Float32, _ fbb: inout FlatBufferBuilder) { fbb.add(element: negativeInfDefault, def: -inf, at: VTOFFSET.negativeInfDefault.p) } - public static func add(negativeInfinityDefault: Float32, _ fbb: inout FlatBufferBuilder) { fbb.add(element: negativeInfinityDefault, def: -infinity, at: VTOFFSET.negativeInfinityDefault.p) } - public static func add(doubleInfDefault: Double, _ fbb: inout FlatBufferBuilder) { fbb.add(element: doubleInfDefault, def: inf, at: VTOFFSET.doubleInfDefault.p) } + public static func add(nanDefault: Float32, _ fbb: inout FlatBufferBuilder) { fbb.add(element: nanDefault, def: .nan, at: VTOFFSET.nanDefault.p) } + public static func add(infDefault: Float32, _ fbb: inout FlatBufferBuilder) { fbb.add(element: infDefault, def: .infinity, at: VTOFFSET.infDefault.p) } + public static func add(positiveInfDefault: Float32, _ fbb: inout FlatBufferBuilder) { fbb.add(element: positiveInfDefault, def: .infinity, at: VTOFFSET.positiveInfDefault.p) } + public static func add(infinityDefault: Float32, _ fbb: inout FlatBufferBuilder) { fbb.add(element: infinityDefault, def: .infinity, at: VTOFFSET.infinityDefault.p) } + public static func add(positiveInfinityDefault: Float32, _ fbb: inout FlatBufferBuilder) { fbb.add(element: positiveInfinityDefault, def: .infinity, at: VTOFFSET.positiveInfinityDefault.p) } + public static func add(negativeInfDefault: Float32, _ fbb: inout FlatBufferBuilder) { fbb.add(element: negativeInfDefault, def: -.infinity, at: VTOFFSET.negativeInfDefault.p) } + public static func add(negativeInfinityDefault: Float32, _ fbb: inout FlatBufferBuilder) { fbb.add(element: negativeInfinityDefault, def: -.infinity, at: VTOFFSET.negativeInfinityDefault.p) } + public static func add(doubleInfDefault: Double, _ fbb: inout FlatBufferBuilder) { fbb.add(element: doubleInfDefault, def: .infinity, at: VTOFFSET.doubleInfDefault.p) } public static func endMonster(_ fbb: inout FlatBufferBuilder, start: UOffset) -> Offset { let end = Offset(offset: fbb.endTable(at: start)); fbb.require(table: end, fields: [10]); return end } public static func createMonster( _ fbb: inout FlatBufferBuilder, @@ -1486,14 +1486,14 @@ public struct MyGame_Example_Monster: FlatBufferObject, Verifiable, ObjectAPIPac nativeInline: MyGame_Example_Test? = nil, longEnumNonEnumDefault: MyGame_Example_LongEnum = .longone, longEnumNormalDefault: MyGame_Example_LongEnum = .longone, - nanDefault: Float32 = nan, - infDefault: Float32 = inf, - positiveInfDefault: Float32 = +inf, - infinityDefault: Float32 = infinity, - positiveInfinityDefault: Float32 = +infinity, - negativeInfDefault: Float32 = -inf, - negativeInfinityDefault: Float32 = -infinity, - doubleInfDefault: Double = inf + nanDefault: Float32 = .nan, + infDefault: Float32 = .infinity, + positiveInfDefault: Float32 = .infinity, + infinityDefault: Float32 = .infinity, + positiveInfinityDefault: Float32 = .infinity, + negativeInfDefault: Float32 = -.infinity, + negativeInfinityDefault: Float32 = -.infinity, + doubleInfDefault: Double = .infinity ) -> Offset { let __start = MyGame_Example_Monster.startMonster(&fbb) MyGame_Example_Monster.add(pos: pos, &fbb) @@ -2105,28 +2105,28 @@ extension MyGame_Example_Monster: Encodable { if longEnumNormalDefault != .longone { try container.encodeIfPresent(longEnumNormalDefault, forKey: .longEnumNormalDefault) } - if nanDefault != nan { + if !nanDefault.isNaN { try container.encodeIfPresent(nanDefault, forKey: .nanDefault) } - if infDefault != inf { + if infDefault != .infinity { try container.encodeIfPresent(infDefault, forKey: .infDefault) } - if positiveInfDefault != +inf { + if positiveInfDefault != .infinity { try container.encodeIfPresent(positiveInfDefault, forKey: .positiveInfDefault) } - if infinityDefault != infinity { + if infinityDefault != .infinity { try container.encodeIfPresent(infinityDefault, forKey: .infinityDefault) } - if positiveInfinityDefault != +infinity { + if positiveInfinityDefault != .infinity { try container.encodeIfPresent(positiveInfinityDefault, forKey: .positiveInfinityDefault) } - if negativeInfDefault != -inf { + if negativeInfDefault != -.infinity { try container.encodeIfPresent(negativeInfDefault, forKey: .negativeInfDefault) } - if negativeInfinityDefault != -infinity { + if negativeInfinityDefault != -.infinity { try container.encodeIfPresent(negativeInfinityDefault, forKey: .negativeInfinityDefault) } - if doubleInfDefault != inf { + if doubleInfDefault != .infinity { try container.encodeIfPresent(doubleInfDefault, forKey: .doubleInfDefault) } } @@ -2402,14 +2402,14 @@ public class MyGame_Example_MonsterT: NativeObject { nativeInline = MyGame_Example_Test() longEnumNonEnumDefault = .longone longEnumNormalDefault = .longone - nanDefault = nan - infDefault = inf - positiveInfDefault = +inf - infinityDefault = infinity - positiveInfinityDefault = +infinity - negativeInfDefault = -inf - negativeInfinityDefault = -infinity - doubleInfDefault = inf + nanDefault = .nan + infDefault = .infinity + positiveInfDefault = .infinity + infinityDefault = .infinity + positiveInfinityDefault = .infinity + negativeInfDefault = -.infinity + negativeInfinityDefault = -.infinity + doubleInfDefault = .infinity } public func serialize() -> ByteBuffer { return serialize(type: MyGame_Example_Monster.self) } diff --git a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/nan_inf_test_generated.swift b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/nan_inf_test_generated.swift new file mode 100644 index 0000000000..0e41c7a6b4 --- /dev/null +++ b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/nan_inf_test_generated.swift @@ -0,0 +1,116 @@ +// automatically generated by the FlatBuffers compiler, do not modify +// swiftlint:disable all +// swiftformat:disable all + +import FlatBuffers + +public struct Swift_Tests_NanInfTable: FlatBufferObject, Verifiable { + + static func validateVersion() { FlatBuffersVersion_22_10_26() } + public var __buffer: ByteBuffer! { return _accessor.bb } + private var _accessor: Table + + public static func getRootAsNanInfTable(bb: ByteBuffer) -> Swift_Tests_NanInfTable { return Swift_Tests_NanInfTable(Table(bb: bb, position: Int32(bb.read(def: UOffset.self, position: bb.reader)) + Int32(bb.reader))) } + + private init(_ t: Table) { _accessor = t } + public init(_ bb: ByteBuffer, o: Int32) { _accessor = Table(bb: bb, position: o) } + + private enum VTOFFSET: VOffset { + case defaultNan = 4 + case defaultInf = 6 + case defaultNinf = 8 + case valueNan = 10 + case valueInf = 12 + case valueNinf = 14 + case value = 16 + var v: Int32 { Int32(self.rawValue) } + var p: VOffset { self.rawValue } + } + + public var defaultNan: Double { let o = _accessor.offset(VTOFFSET.defaultNan.v); return o == 0 ? .nan : _accessor.readBuffer(of: Double.self, at: o) } + public var defaultInf: Double { let o = _accessor.offset(VTOFFSET.defaultInf.v); return o == 0 ? .infinity : _accessor.readBuffer(of: Double.self, at: o) } + public var defaultNinf: Double { let o = _accessor.offset(VTOFFSET.defaultNinf.v); return o == 0 ? -.infinity : _accessor.readBuffer(of: Double.self, at: o) } + public var valueNan: Double { let o = _accessor.offset(VTOFFSET.valueNan.v); return o == 0 ? 0.0 : _accessor.readBuffer(of: Double.self, at: o) } + public var valueInf: Double { let o = _accessor.offset(VTOFFSET.valueInf.v); return o == 0 ? 0.0 : _accessor.readBuffer(of: Double.self, at: o) } + public var valueNinf: Double { let o = _accessor.offset(VTOFFSET.valueNinf.v); return o == 0 ? 0.0 : _accessor.readBuffer(of: Double.self, at: o) } + public var value: Double { let o = _accessor.offset(VTOFFSET.value.v); return o == 0 ? 0.0 : _accessor.readBuffer(of: Double.self, at: o) } + public static func startNanInfTable(_ fbb: inout FlatBufferBuilder) -> UOffset { fbb.startTable(with: 7) } + public static func add(defaultNan: Double, _ fbb: inout FlatBufferBuilder) { fbb.add(element: defaultNan, def: .nan, at: VTOFFSET.defaultNan.p) } + public static func add(defaultInf: Double, _ fbb: inout FlatBufferBuilder) { fbb.add(element: defaultInf, def: .infinity, at: VTOFFSET.defaultInf.p) } + public static func add(defaultNinf: Double, _ fbb: inout FlatBufferBuilder) { fbb.add(element: defaultNinf, def: -.infinity, at: VTOFFSET.defaultNinf.p) } + public static func add(valueNan: Double, _ fbb: inout FlatBufferBuilder) { fbb.add(element: valueNan, def: 0.0, at: VTOFFSET.valueNan.p) } + public static func add(valueInf: Double, _ fbb: inout FlatBufferBuilder) { fbb.add(element: valueInf, def: 0.0, at: VTOFFSET.valueInf.p) } + public static func add(valueNinf: Double, _ fbb: inout FlatBufferBuilder) { fbb.add(element: valueNinf, def: 0.0, at: VTOFFSET.valueNinf.p) } + public static func add(value: Double, _ fbb: inout FlatBufferBuilder) { fbb.add(element: value, def: 0.0, at: VTOFFSET.value.p) } + public static func endNanInfTable(_ fbb: inout FlatBufferBuilder, start: UOffset) -> Offset { let end = Offset(offset: fbb.endTable(at: start)); return end } + public static func createNanInfTable( + _ fbb: inout FlatBufferBuilder, + defaultNan: Double = .nan, + defaultInf: Double = .infinity, + defaultNinf: Double = -.infinity, + valueNan: Double = 0.0, + valueInf: Double = 0.0, + valueNinf: Double = 0.0, + value: Double = 0.0 + ) -> Offset { + let __start = Swift_Tests_NanInfTable.startNanInfTable(&fbb) + Swift_Tests_NanInfTable.add(defaultNan: defaultNan, &fbb) + Swift_Tests_NanInfTable.add(defaultInf: defaultInf, &fbb) + Swift_Tests_NanInfTable.add(defaultNinf: defaultNinf, &fbb) + Swift_Tests_NanInfTable.add(valueNan: valueNan, &fbb) + Swift_Tests_NanInfTable.add(valueInf: valueInf, &fbb) + Swift_Tests_NanInfTable.add(valueNinf: valueNinf, &fbb) + Swift_Tests_NanInfTable.add(value: value, &fbb) + return Swift_Tests_NanInfTable.endNanInfTable(&fbb, start: __start) + } + + public static func verify(_ verifier: inout Verifier, at position: Int, of type: T.Type) throws where T: Verifiable { + var _v = try verifier.visitTable(at: position) + try _v.visit(field: VTOFFSET.defaultNan.p, fieldName: "defaultNan", required: false, type: Double.self) + try _v.visit(field: VTOFFSET.defaultInf.p, fieldName: "defaultInf", required: false, type: Double.self) + try _v.visit(field: VTOFFSET.defaultNinf.p, fieldName: "defaultNinf", required: false, type: Double.self) + try _v.visit(field: VTOFFSET.valueNan.p, fieldName: "valueNan", required: false, type: Double.self) + try _v.visit(field: VTOFFSET.valueInf.p, fieldName: "valueInf", required: false, type: Double.self) + try _v.visit(field: VTOFFSET.valueNinf.p, fieldName: "valueNinf", required: false, type: Double.self) + try _v.visit(field: VTOFFSET.value.p, fieldName: "value", required: false, type: Double.self) + _v.finish() + } +} + +extension Swift_Tests_NanInfTable: Encodable { + + enum CodingKeys: String, CodingKey { + case defaultNan = "default_nan" + case defaultInf = "default_inf" + case defaultNinf = "default_ninf" + case valueNan = "value_nan" + case valueInf = "value_inf" + case valueNinf = "value_ninf" + case value = "value" + } + public func encode(to encoder: Encoder) throws { + var container = encoder.container(keyedBy: CodingKeys.self) + if !defaultNan.isNaN { + try container.encodeIfPresent(defaultNan, forKey: .defaultNan) + } + if defaultInf != .infinity { + try container.encodeIfPresent(defaultInf, forKey: .defaultInf) + } + if defaultNinf != -.infinity { + try container.encodeIfPresent(defaultNinf, forKey: .defaultNinf) + } + if valueNan != 0.0 { + try container.encodeIfPresent(valueNan, forKey: .valueNan) + } + if valueInf != 0.0 { + try container.encodeIfPresent(valueInf, forKey: .valueInf) + } + if valueNinf != 0.0 { + try container.encodeIfPresent(valueNinf, forKey: .valueNinf) + } + if value != 0.0 { + try container.encodeIfPresent(value, forKey: .value) + } + } +} + From 7b038e3277550e4dc316b6c0147c1932a54e3531 Mon Sep 17 00:00:00 2001 From: Saman <100295082+enum-class@users.noreply.github.com> Date: Sun, 13 Nov 2022 14:21:57 -0500 Subject: [PATCH 017/571] Fix import problem in dart generated files. (fixes #7609). (#7621) * Fix import problem in dart generated files. (fixes #7609). * Fix naming. * Fix minor changes in generated files. * Add some tests. Fix minor problems. * Fix minor format problem plus import alias issue. * Minor fix in dart code generator, remove java from examples * remove java and go generated files * Fix dart tests. * Fix spell problem. * Remove excessive tests :)) Co-authored-by: Derek Bailey --- dart/test/include_test1_generated.dart | 109 ++++++++ ...t2_my_game.other_name_space_generated.dart | 241 ++++++++++++++++++ dart/test/monster_test.fbs | 9 + ...nster_test_my_game.example2_generated.dart | 2 + ...onster_test_my_game.example_generated.dart | 122 ++++++++- dart/test/monster_test_my_game_generated.dart | 2 + scripts/generate_code.py | 14 + src/idl_gen_dart.cpp | 40 ++- tests/DartTest.sh | 3 + tests/include_test1_generated.dart | 109 ++++++++ ...t2_my_game.other_name_space_generated.dart | 241 ++++++++++++++++++ ...nster_test_my_game.example2_generated.dart | 2 + ...onster_test_my_game.example_generated.dart | 2 + tests/monster_test_my_game_generated.dart | 2 + 14 files changed, 889 insertions(+), 9 deletions(-) create mode 100644 dart/test/include_test1_generated.dart create mode 100644 dart/test/include_test2_my_game.other_name_space_generated.dart create mode 100644 tests/include_test1_generated.dart create mode 100644 tests/include_test2_my_game.other_name_space_generated.dart diff --git a/dart/test/include_test1_generated.dart b/dart/test/include_test1_generated.dart new file mode 100644 index 0000000000..b280f58414 --- /dev/null +++ b/dart/test/include_test1_generated.dart @@ -0,0 +1,109 @@ +// automatically generated by the FlatBuffers compiler, do not modify +// ignore_for_file: unused_import, unused_field, unused_element, unused_local_variable + +import 'dart:typed_data' show Uint8List; +import 'package:flat_buffers/flat_buffers.dart' as fb; + + +import './include_test2_my_game.other_name_space_generated.dart' as my_game_other_name_space; + +class TableA { + TableA._(this._bc, this._bcOffset); + factory TableA(List bytes) { + final rootRef = fb.BufferContext.fromBytes(bytes); + return reader.read(rootRef, 0); + } + + static const fb.Reader reader = _TableAReader(); + + final fb.BufferContext _bc; + final int _bcOffset; + + my_game_other_name_space.TableB? get b => my_game_other_name_space.TableB.reader.vTableGetNullable(_bc, _bcOffset, 4); + + @override + String toString() { + return 'TableA{b: ${b}}'; + } + + TableAT unpack() => TableAT( + b: b?.unpack()); + + static int pack(fb.Builder fbBuilder, TableAT? object) { + if (object == null) return 0; + return object.pack(fbBuilder); + } +} + +class TableAT implements fb.Packable { + my_game_other_name_space.TableBT? b; + + TableAT({ + this.b}); + + @override + int pack(fb.Builder fbBuilder) { + final int? bOffset = b?.pack(fbBuilder); + fbBuilder.startTable(1); + fbBuilder.addOffset(0, bOffset); + return fbBuilder.endTable(); + } + + @override + String toString() { + return 'TableAT{b: ${b}}'; + } +} + +class _TableAReader extends fb.TableReader { + const _TableAReader(); + + @override + TableA createObject(fb.BufferContext bc, int offset) => + TableA._(bc, offset); +} + +class TableABuilder { + TableABuilder(this.fbBuilder); + + final fb.Builder fbBuilder; + + void begin() { + fbBuilder.startTable(1); + } + + int addBOffset(int? offset) { + fbBuilder.addOffset(0, offset); + return fbBuilder.offset; + } + + int finish() { + return fbBuilder.endTable(); + } +} + +class TableAObjectBuilder extends fb.ObjectBuilder { + final my_game_other_name_space.TableBObjectBuilder? _b; + + TableAObjectBuilder({ + my_game_other_name_space.TableBObjectBuilder? b, + }) + : _b = b; + + /// Finish building, and store into the [fbBuilder]. + @override + int finish(fb.Builder fbBuilder) { + final int? bOffset = _b?.getOrCreateOffset(fbBuilder); + fbBuilder.startTable(1); + fbBuilder.addOffset(0, bOffset); + return fbBuilder.endTable(); + } + + /// Convenience method to serialize to byte list. + @override + Uint8List toBytes([String? fileIdentifier]) { + final fbBuilder = fb.Builder(deduplicateTables: false); + fbBuilder.finish(finish(fbBuilder), fileIdentifier); + return fbBuilder.buffer; + } +} diff --git a/dart/test/include_test2_my_game.other_name_space_generated.dart b/dart/test/include_test2_my_game.other_name_space_generated.dart new file mode 100644 index 0000000000..f69df4e4d3 --- /dev/null +++ b/dart/test/include_test2_my_game.other_name_space_generated.dart @@ -0,0 +1,241 @@ +// automatically generated by the FlatBuffers compiler, do not modify +// ignore_for_file: unused_import, unused_field, unused_element, unused_local_variable + +library my_game.other_name_space; + +import 'dart:typed_data' show Uint8List; +import 'package:flat_buffers/flat_buffers.dart' as fb; + + +import './include_test1_generated.dart'; + +class FromInclude { + final int value; + const FromInclude._(this.value); + + factory FromInclude.fromValue(int value) { + final result = values[value]; + if (result == null) { + throw StateError('Invalid value $value for bit flag enum FromInclude'); + } + return result; + } + + static FromInclude? _createOrNull(int? value) => + value == null ? null : FromInclude.fromValue(value); + + static const int minValue = 0; + static const int maxValue = 0; + static bool containsValue(int value) => values.containsKey(value); + + static const FromInclude IncludeVal = FromInclude._(0); + static const Map values = { + 0: IncludeVal}; + + static const fb.Reader reader = _FromIncludeReader(); + + @override + String toString() { + return 'FromInclude{value: $value}'; + } +} + +class _FromIncludeReader extends fb.Reader { + const _FromIncludeReader(); + + @override + int get size => 8; + + @override + FromInclude read(fb.BufferContext bc, int offset) => + FromInclude.fromValue(const fb.Int64Reader().read(bc, offset)); +} + +class Unused { + Unused._(this._bc, this._bcOffset); + + static const fb.Reader reader = _UnusedReader(); + + final fb.BufferContext _bc; + final int _bcOffset; + + int get a => const fb.Int32Reader().read(_bc, _bcOffset + 0); + + @override + String toString() { + return 'Unused{a: ${a}}'; + } + + UnusedT unpack() => UnusedT( + a: a); + + static int pack(fb.Builder fbBuilder, UnusedT? object) { + if (object == null) return 0; + return object.pack(fbBuilder); + } +} + +class UnusedT implements fb.Packable { + int a; + + UnusedT({ + required this.a}); + + @override + int pack(fb.Builder fbBuilder) { + fbBuilder.putInt32(a); + return fbBuilder.offset; + } + + @override + String toString() { + return 'UnusedT{a: ${a}}'; + } +} + +class _UnusedReader extends fb.StructReader { + const _UnusedReader(); + + @override + int get size => 4; + + @override + Unused createObject(fb.BufferContext bc, int offset) => + Unused._(bc, offset); +} + +class UnusedBuilder { + UnusedBuilder(this.fbBuilder); + + final fb.Builder fbBuilder; + + int finish(int a) { + fbBuilder.putInt32(a); + return fbBuilder.offset; + } + +} + +class UnusedObjectBuilder extends fb.ObjectBuilder { + final int _a; + + UnusedObjectBuilder({ + required int a, + }) + : _a = a; + + /// Finish building, and store into the [fbBuilder]. + @override + int finish(fb.Builder fbBuilder) { + fbBuilder.putInt32(_a); + return fbBuilder.offset; + } + + /// Convenience method to serialize to byte list. + @override + Uint8List toBytes([String? fileIdentifier]) { + final fbBuilder = fb.Builder(deduplicateTables: false); + fbBuilder.finish(finish(fbBuilder), fileIdentifier); + return fbBuilder.buffer; + } +} +class TableB { + TableB._(this._bc, this._bcOffset); + factory TableB(List bytes) { + final rootRef = fb.BufferContext.fromBytes(bytes); + return reader.read(rootRef, 0); + } + + static const fb.Reader reader = _TableBReader(); + + final fb.BufferContext _bc; + final int _bcOffset; + + TableA? get a => TableA.reader.vTableGetNullable(_bc, _bcOffset, 4); + + @override + String toString() { + return 'TableB{a: ${a}}'; + } + + TableBT unpack() => TableBT( + a: a?.unpack()); + + static int pack(fb.Builder fbBuilder, TableBT? object) { + if (object == null) return 0; + return object.pack(fbBuilder); + } +} + +class TableBT implements fb.Packable { + TableAT? a; + + TableBT({ + this.a}); + + @override + int pack(fb.Builder fbBuilder) { + final int? aOffset = a?.pack(fbBuilder); + fbBuilder.startTable(1); + fbBuilder.addOffset(0, aOffset); + return fbBuilder.endTable(); + } + + @override + String toString() { + return 'TableBT{a: ${a}}'; + } +} + +class _TableBReader extends fb.TableReader { + const _TableBReader(); + + @override + TableB createObject(fb.BufferContext bc, int offset) => + TableB._(bc, offset); +} + +class TableBBuilder { + TableBBuilder(this.fbBuilder); + + final fb.Builder fbBuilder; + + void begin() { + fbBuilder.startTable(1); + } + + int addAOffset(int? offset) { + fbBuilder.addOffset(0, offset); + return fbBuilder.offset; + } + + int finish() { + return fbBuilder.endTable(); + } +} + +class TableBObjectBuilder extends fb.ObjectBuilder { + final TableAObjectBuilder? _a; + + TableBObjectBuilder({ + TableAObjectBuilder? a, + }) + : _a = a; + + /// Finish building, and store into the [fbBuilder]. + @override + int finish(fb.Builder fbBuilder) { + final int? aOffset = _a?.getOrCreateOffset(fbBuilder); + fbBuilder.startTable(1); + fbBuilder.addOffset(0, aOffset); + return fbBuilder.endTable(); + } + + /// Convenience method to serialize to byte list. + @override + Uint8List toBytes([String? fileIdentifier]) { + final fbBuilder = fb.Builder(deduplicateTables: false); + fbBuilder.finish(finish(fbBuilder), fileIdentifier); + return fbBuilder.buffer; + } +} diff --git a/dart/test/monster_test.fbs b/dart/test/monster_test.fbs index 14d34cb4ab..b40ecf58f9 100644 --- a/dart/test/monster_test.fbs +++ b/dart/test/monster_test.fbs @@ -141,6 +141,15 @@ table Monster { // enum value. long_enum_non_enum_default:LongEnum (id: 52); long_enum_normal_default:LongEnum = LongOne (id: 53); + // Test that default values nan and +/-inf work. + nan_default:float = nan (id: 54); + inf_default:float = inf (id: 55); + positive_inf_default:float = +inf (id: 56); + infinity_default:float = infinity (id: 57); + positive_infinity_default:float = +infinity (id: 58); + negative_inf_default:float = -inf (id: 59); + negative_infinity_default:float = -infinity (id: 60); + double_inf_default:double = inf (id: 61); } table TypeAliases { diff --git a/dart/test/monster_test_my_game.example2_generated.dart b/dart/test/monster_test_my_game.example2_generated.dart index 24ccf72132..78e1bfcfef 100644 --- a/dart/test/monster_test_my_game.example2_generated.dart +++ b/dart/test/monster_test_my_game.example2_generated.dart @@ -9,6 +9,8 @@ import 'package:flat_buffers/flat_buffers.dart' as fb; import './monster_test_my_game_generated.dart' as my_game; import './monster_test_my_game.example_generated.dart' as my_game_example; +import './include_test1_generated.dart'; + class Monster { Monster._(this._bc, this._bcOffset); factory Monster(List bytes) { diff --git a/dart/test/monster_test_my_game.example_generated.dart b/dart/test/monster_test_my_game.example_generated.dart index 174fe1d8dd..c70b3d7096 100644 --- a/dart/test/monster_test_my_game.example_generated.dart +++ b/dart/test/monster_test_my_game.example_generated.dart @@ -9,6 +9,8 @@ import 'package:flat_buffers/flat_buffers.dart' as fb; import './monster_test_my_game_generated.dart' as my_game; import './monster_test_my_game.example2_generated.dart' as my_game_example2; +import './include_test1_generated.dart'; + /// Composite components of Monster color. class Color { final int value; @@ -1258,10 +1260,18 @@ class Monster { Test? get nativeInline => Test.reader.vTableGetNullable(_bc, _bcOffset, 106); LongEnum get longEnumNonEnumDefault => LongEnum.fromValue(const fb.Uint64Reader().vTableGet(_bc, _bcOffset, 108, 0)); LongEnum get longEnumNormalDefault => LongEnum.fromValue(const fb.Uint64Reader().vTableGet(_bc, _bcOffset, 110, 2)); + double get nanDefault => const fb.Float32Reader().vTableGet(_bc, _bcOffset, 112, double.nan); + double get infDefault => const fb.Float32Reader().vTableGet(_bc, _bcOffset, 114, double.infinity); + double get positiveInfDefault => const fb.Float32Reader().vTableGet(_bc, _bcOffset, 116, double.infinity); + double get infinityDefault => const fb.Float32Reader().vTableGet(_bc, _bcOffset, 118, double.infinity); + double get positiveInfinityDefault => const fb.Float32Reader().vTableGet(_bc, _bcOffset, 120, double.infinity); + double get negativeInfDefault => const fb.Float32Reader().vTableGet(_bc, _bcOffset, 122, double.negativeInfinity); + double get negativeInfinityDefault => const fb.Float32Reader().vTableGet(_bc, _bcOffset, 124, double.negativeInfinity); + double get doubleInfDefault => const fb.Float64Reader().vTableGet(_bc, _bcOffset, 126, double.infinity); @override String toString() { - return 'Monster{pos: ${pos}, mana: ${mana}, hp: ${hp}, name: ${name}, inventory: ${inventory}, color: ${color}, testType: ${testType}, test: ${test}, test4: ${test4}, testarrayofstring: ${testarrayofstring}, testarrayoftables: ${testarrayoftables}, enemy: ${enemy}, testnestedflatbuffer: ${testnestedflatbuffer}, testempty: ${testempty}, testbool: ${testbool}, testhashs32Fnv1: ${testhashs32Fnv1}, testhashu32Fnv1: ${testhashu32Fnv1}, testhashs64Fnv1: ${testhashs64Fnv1}, testhashu64Fnv1: ${testhashu64Fnv1}, testhashs32Fnv1a: ${testhashs32Fnv1a}, testhashu32Fnv1a: ${testhashu32Fnv1a}, testhashs64Fnv1a: ${testhashs64Fnv1a}, testhashu64Fnv1a: ${testhashu64Fnv1a}, testarrayofbools: ${testarrayofbools}, testf: ${testf}, testf2: ${testf2}, testf3: ${testf3}, testarrayofstring2: ${testarrayofstring2}, testarrayofsortedstruct: ${testarrayofsortedstruct}, flex: ${flex}, test5: ${test5}, vectorOfLongs: ${vectorOfLongs}, vectorOfDoubles: ${vectorOfDoubles}, parentNamespaceTest: ${parentNamespaceTest}, vectorOfReferrables: ${vectorOfReferrables}, singleWeakReference: ${singleWeakReference}, vectorOfWeakReferences: ${vectorOfWeakReferences}, vectorOfStrongReferrables: ${vectorOfStrongReferrables}, coOwningReference: ${coOwningReference}, vectorOfCoOwningReferences: ${vectorOfCoOwningReferences}, nonOwningReference: ${nonOwningReference}, vectorOfNonOwningReferences: ${vectorOfNonOwningReferences}, anyUniqueType: ${anyUniqueType}, anyUnique: ${anyUnique}, anyAmbiguousType: ${anyAmbiguousType}, anyAmbiguous: ${anyAmbiguous}, vectorOfEnums: ${vectorOfEnums}, signedEnum: ${signedEnum}, testrequirednestedflatbuffer: ${testrequirednestedflatbuffer}, scalarKeySortedTables: ${scalarKeySortedTables}, nativeInline: ${nativeInline}, longEnumNonEnumDefault: ${longEnumNonEnumDefault}, longEnumNormalDefault: ${longEnumNormalDefault}}'; + return 'Monster{pos: ${pos}, mana: ${mana}, hp: ${hp}, name: ${name}, inventory: ${inventory}, color: ${color}, testType: ${testType}, test: ${test}, test4: ${test4}, testarrayofstring: ${testarrayofstring}, testarrayoftables: ${testarrayoftables}, enemy: ${enemy}, testnestedflatbuffer: ${testnestedflatbuffer}, testempty: ${testempty}, testbool: ${testbool}, testhashs32Fnv1: ${testhashs32Fnv1}, testhashu32Fnv1: ${testhashu32Fnv1}, testhashs64Fnv1: ${testhashs64Fnv1}, testhashu64Fnv1: ${testhashu64Fnv1}, testhashs32Fnv1a: ${testhashs32Fnv1a}, testhashu32Fnv1a: ${testhashu32Fnv1a}, testhashs64Fnv1a: ${testhashs64Fnv1a}, testhashu64Fnv1a: ${testhashu64Fnv1a}, testarrayofbools: ${testarrayofbools}, testf: ${testf}, testf2: ${testf2}, testf3: ${testf3}, testarrayofstring2: ${testarrayofstring2}, testarrayofsortedstruct: ${testarrayofsortedstruct}, flex: ${flex}, test5: ${test5}, vectorOfLongs: ${vectorOfLongs}, vectorOfDoubles: ${vectorOfDoubles}, parentNamespaceTest: ${parentNamespaceTest}, vectorOfReferrables: ${vectorOfReferrables}, singleWeakReference: ${singleWeakReference}, vectorOfWeakReferences: ${vectorOfWeakReferences}, vectorOfStrongReferrables: ${vectorOfStrongReferrables}, coOwningReference: ${coOwningReference}, vectorOfCoOwningReferences: ${vectorOfCoOwningReferences}, nonOwningReference: ${nonOwningReference}, vectorOfNonOwningReferences: ${vectorOfNonOwningReferences}, anyUniqueType: ${anyUniqueType}, anyUnique: ${anyUnique}, anyAmbiguousType: ${anyAmbiguousType}, anyAmbiguous: ${anyAmbiguous}, vectorOfEnums: ${vectorOfEnums}, signedEnum: ${signedEnum}, testrequirednestedflatbuffer: ${testrequirednestedflatbuffer}, scalarKeySortedTables: ${scalarKeySortedTables}, nativeInline: ${nativeInline}, longEnumNonEnumDefault: ${longEnumNonEnumDefault}, longEnumNormalDefault: ${longEnumNormalDefault}, nanDefault: ${nanDefault}, infDefault: ${infDefault}, positiveInfDefault: ${positiveInfDefault}, infinityDefault: ${infinityDefault}, positiveInfinityDefault: ${positiveInfinityDefault}, negativeInfDefault: ${negativeInfDefault}, negativeInfinityDefault: ${negativeInfinityDefault}, doubleInfDefault: ${doubleInfDefault}}'; } MonsterT unpack() => MonsterT( @@ -1317,7 +1327,15 @@ class Monster { scalarKeySortedTables: scalarKeySortedTables?.map((e) => e.unpack()).toList(), nativeInline: nativeInline?.unpack(), longEnumNonEnumDefault: longEnumNonEnumDefault, - longEnumNormalDefault: longEnumNormalDefault); + longEnumNormalDefault: longEnumNormalDefault, + nanDefault: nanDefault, + infDefault: infDefault, + positiveInfDefault: positiveInfDefault, + infinityDefault: infinityDefault, + positiveInfinityDefault: positiveInfinityDefault, + negativeInfDefault: negativeInfDefault, + negativeInfinityDefault: negativeInfinityDefault, + doubleInfDefault: doubleInfDefault); static int pack(fb.Builder fbBuilder, MonsterT? object) { if (object == null) return 0; @@ -1382,6 +1400,14 @@ class MonsterT implements fb.Packable { TestT? nativeInline; LongEnum longEnumNonEnumDefault; LongEnum longEnumNormalDefault; + double nanDefault; + double infDefault; + double positiveInfDefault; + double infinityDefault; + double positiveInfinityDefault; + double negativeInfDefault; + double negativeInfinityDefault; + double doubleInfDefault; MonsterT({ this.pos, @@ -1436,7 +1462,15 @@ class MonsterT implements fb.Packable { this.scalarKeySortedTables, this.nativeInline, this.longEnumNonEnumDefault = const LongEnum._(0), - this.longEnumNormalDefault = LongEnum.LongOne}); + this.longEnumNormalDefault = LongEnum.LongOne, + this.nanDefault = double.nan, + this.infDefault = double.infinity, + this.positiveInfDefault = double.infinity, + this.infinityDefault = double.infinity, + this.positiveInfinityDefault = double.infinity, + this.negativeInfDefault = double.negativeInfinity, + this.negativeInfinityDefault = double.negativeInfinity, + this.doubleInfDefault = double.infinity}); @override int pack(fb.Builder fbBuilder) { @@ -1497,7 +1531,7 @@ class MonsterT implements fb.Packable { : fbBuilder.writeListUint8(testrequirednestedflatbuffer!); final int? scalarKeySortedTablesOffset = scalarKeySortedTables == null ? null : fbBuilder.writeList(scalarKeySortedTables!.map((b) => b.pack(fbBuilder)).toList()); - fbBuilder.startTable(54); + fbBuilder.startTable(62); if (pos != null) { fbBuilder.addStruct(0, pos!.pack(fbBuilder)); } @@ -1555,12 +1589,20 @@ class MonsterT implements fb.Packable { } fbBuilder.addUint64(52, longEnumNonEnumDefault.value); fbBuilder.addUint64(53, longEnumNormalDefault.value); + fbBuilder.addFloat32(54, nanDefault); + fbBuilder.addFloat32(55, infDefault); + fbBuilder.addFloat32(56, positiveInfDefault); + fbBuilder.addFloat32(57, infinityDefault); + fbBuilder.addFloat32(58, positiveInfinityDefault); + fbBuilder.addFloat32(59, negativeInfDefault); + fbBuilder.addFloat32(60, negativeInfinityDefault); + fbBuilder.addFloat64(61, doubleInfDefault); return fbBuilder.endTable(); } @override String toString() { - return 'MonsterT{pos: ${pos}, mana: ${mana}, hp: ${hp}, name: ${name}, inventory: ${inventory}, color: ${color}, testType: ${testType}, test: ${test}, test4: ${test4}, testarrayofstring: ${testarrayofstring}, testarrayoftables: ${testarrayoftables}, enemy: ${enemy}, testnestedflatbuffer: ${testnestedflatbuffer}, testempty: ${testempty}, testbool: ${testbool}, testhashs32Fnv1: ${testhashs32Fnv1}, testhashu32Fnv1: ${testhashu32Fnv1}, testhashs64Fnv1: ${testhashs64Fnv1}, testhashu64Fnv1: ${testhashu64Fnv1}, testhashs32Fnv1a: ${testhashs32Fnv1a}, testhashu32Fnv1a: ${testhashu32Fnv1a}, testhashs64Fnv1a: ${testhashs64Fnv1a}, testhashu64Fnv1a: ${testhashu64Fnv1a}, testarrayofbools: ${testarrayofbools}, testf: ${testf}, testf2: ${testf2}, testf3: ${testf3}, testarrayofstring2: ${testarrayofstring2}, testarrayofsortedstruct: ${testarrayofsortedstruct}, flex: ${flex}, test5: ${test5}, vectorOfLongs: ${vectorOfLongs}, vectorOfDoubles: ${vectorOfDoubles}, parentNamespaceTest: ${parentNamespaceTest}, vectorOfReferrables: ${vectorOfReferrables}, singleWeakReference: ${singleWeakReference}, vectorOfWeakReferences: ${vectorOfWeakReferences}, vectorOfStrongReferrables: ${vectorOfStrongReferrables}, coOwningReference: ${coOwningReference}, vectorOfCoOwningReferences: ${vectorOfCoOwningReferences}, nonOwningReference: ${nonOwningReference}, vectorOfNonOwningReferences: ${vectorOfNonOwningReferences}, anyUniqueType: ${anyUniqueType}, anyUnique: ${anyUnique}, anyAmbiguousType: ${anyAmbiguousType}, anyAmbiguous: ${anyAmbiguous}, vectorOfEnums: ${vectorOfEnums}, signedEnum: ${signedEnum}, testrequirednestedflatbuffer: ${testrequirednestedflatbuffer}, scalarKeySortedTables: ${scalarKeySortedTables}, nativeInline: ${nativeInline}, longEnumNonEnumDefault: ${longEnumNonEnumDefault}, longEnumNormalDefault: ${longEnumNormalDefault}}'; + return 'MonsterT{pos: ${pos}, mana: ${mana}, hp: ${hp}, name: ${name}, inventory: ${inventory}, color: ${color}, testType: ${testType}, test: ${test}, test4: ${test4}, testarrayofstring: ${testarrayofstring}, testarrayoftables: ${testarrayoftables}, enemy: ${enemy}, testnestedflatbuffer: ${testnestedflatbuffer}, testempty: ${testempty}, testbool: ${testbool}, testhashs32Fnv1: ${testhashs32Fnv1}, testhashu32Fnv1: ${testhashu32Fnv1}, testhashs64Fnv1: ${testhashs64Fnv1}, testhashu64Fnv1: ${testhashu64Fnv1}, testhashs32Fnv1a: ${testhashs32Fnv1a}, testhashu32Fnv1a: ${testhashu32Fnv1a}, testhashs64Fnv1a: ${testhashs64Fnv1a}, testhashu64Fnv1a: ${testhashu64Fnv1a}, testarrayofbools: ${testarrayofbools}, testf: ${testf}, testf2: ${testf2}, testf3: ${testf3}, testarrayofstring2: ${testarrayofstring2}, testarrayofsortedstruct: ${testarrayofsortedstruct}, flex: ${flex}, test5: ${test5}, vectorOfLongs: ${vectorOfLongs}, vectorOfDoubles: ${vectorOfDoubles}, parentNamespaceTest: ${parentNamespaceTest}, vectorOfReferrables: ${vectorOfReferrables}, singleWeakReference: ${singleWeakReference}, vectorOfWeakReferences: ${vectorOfWeakReferences}, vectorOfStrongReferrables: ${vectorOfStrongReferrables}, coOwningReference: ${coOwningReference}, vectorOfCoOwningReferences: ${vectorOfCoOwningReferences}, nonOwningReference: ${nonOwningReference}, vectorOfNonOwningReferences: ${vectorOfNonOwningReferences}, anyUniqueType: ${anyUniqueType}, anyUnique: ${anyUnique}, anyAmbiguousType: ${anyAmbiguousType}, anyAmbiguous: ${anyAmbiguous}, vectorOfEnums: ${vectorOfEnums}, signedEnum: ${signedEnum}, testrequirednestedflatbuffer: ${testrequirednestedflatbuffer}, scalarKeySortedTables: ${scalarKeySortedTables}, nativeInline: ${nativeInline}, longEnumNonEnumDefault: ${longEnumNonEnumDefault}, longEnumNormalDefault: ${longEnumNormalDefault}, nanDefault: ${nanDefault}, infDefault: ${infDefault}, positiveInfDefault: ${positiveInfDefault}, infinityDefault: ${infinityDefault}, positiveInfinityDefault: ${positiveInfinityDefault}, negativeInfDefault: ${negativeInfDefault}, negativeInfinityDefault: ${negativeInfinityDefault}, doubleInfDefault: ${doubleInfDefault}}'; } } @@ -1578,7 +1620,7 @@ class MonsterBuilder { final fb.Builder fbBuilder; void begin() { - fbBuilder.startTable(54); + fbBuilder.startTable(62); } int addPos(int offset) { @@ -1793,6 +1835,38 @@ class MonsterBuilder { fbBuilder.addUint64(53, longEnumNormalDefault?.value); return fbBuilder.offset; } + int addNanDefault(double? nanDefault) { + fbBuilder.addFloat32(54, nanDefault); + return fbBuilder.offset; + } + int addInfDefault(double? infDefault) { + fbBuilder.addFloat32(55, infDefault); + return fbBuilder.offset; + } + int addPositiveInfDefault(double? positiveInfDefault) { + fbBuilder.addFloat32(56, positiveInfDefault); + return fbBuilder.offset; + } + int addInfinityDefault(double? infinityDefault) { + fbBuilder.addFloat32(57, infinityDefault); + return fbBuilder.offset; + } + int addPositiveInfinityDefault(double? positiveInfinityDefault) { + fbBuilder.addFloat32(58, positiveInfinityDefault); + return fbBuilder.offset; + } + int addNegativeInfDefault(double? negativeInfDefault) { + fbBuilder.addFloat32(59, negativeInfDefault); + return fbBuilder.offset; + } + int addNegativeInfinityDefault(double? negativeInfinityDefault) { + fbBuilder.addFloat32(60, negativeInfinityDefault); + return fbBuilder.offset; + } + int addDoubleInfDefault(double? doubleInfDefault) { + fbBuilder.addFloat64(61, doubleInfDefault); + return fbBuilder.offset; + } int finish() { return fbBuilder.endTable(); @@ -1853,6 +1927,14 @@ class MonsterObjectBuilder extends fb.ObjectBuilder { final TestObjectBuilder? _nativeInline; final LongEnum? _longEnumNonEnumDefault; final LongEnum? _longEnumNormalDefault; + final double? _nanDefault; + final double? _infDefault; + final double? _positiveInfDefault; + final double? _infinityDefault; + final double? _positiveInfinityDefault; + final double? _negativeInfDefault; + final double? _negativeInfinityDefault; + final double? _doubleInfDefault; MonsterObjectBuilder({ Vec3ObjectBuilder? pos, @@ -1908,6 +1990,14 @@ class MonsterObjectBuilder extends fb.ObjectBuilder { TestObjectBuilder? nativeInline, LongEnum? longEnumNonEnumDefault, LongEnum? longEnumNormalDefault, + double? nanDefault, + double? infDefault, + double? positiveInfDefault, + double? infinityDefault, + double? positiveInfinityDefault, + double? negativeInfDefault, + double? negativeInfinityDefault, + double? doubleInfDefault, }) : _pos = pos, _mana = mana, @@ -1961,7 +2051,15 @@ class MonsterObjectBuilder extends fb.ObjectBuilder { _scalarKeySortedTables = scalarKeySortedTables, _nativeInline = nativeInline, _longEnumNonEnumDefault = longEnumNonEnumDefault, - _longEnumNormalDefault = longEnumNormalDefault; + _longEnumNormalDefault = longEnumNormalDefault, + _nanDefault = nanDefault, + _infDefault = infDefault, + _positiveInfDefault = positiveInfDefault, + _infinityDefault = infinityDefault, + _positiveInfinityDefault = positiveInfinityDefault, + _negativeInfDefault = negativeInfDefault, + _negativeInfinityDefault = negativeInfinityDefault, + _doubleInfDefault = doubleInfDefault; /// Finish building, and store into the [fbBuilder]. @override @@ -2014,7 +2112,7 @@ class MonsterObjectBuilder extends fb.ObjectBuilder { : fbBuilder.writeListUint8(_testrequirednestedflatbuffer!); final int? scalarKeySortedTablesOffset = _scalarKeySortedTables == null ? null : fbBuilder.writeList(_scalarKeySortedTables!.map((b) => b.getOrCreateOffset(fbBuilder)).toList()); - fbBuilder.startTable(54); + fbBuilder.startTable(62); if (_pos != null) { fbBuilder.addStruct(0, _pos!.finish(fbBuilder)); } @@ -2072,6 +2170,14 @@ class MonsterObjectBuilder extends fb.ObjectBuilder { } fbBuilder.addUint64(52, _longEnumNonEnumDefault?.value); fbBuilder.addUint64(53, _longEnumNormalDefault?.value); + fbBuilder.addFloat32(54, _nanDefault); + fbBuilder.addFloat32(55, _infDefault); + fbBuilder.addFloat32(56, _positiveInfDefault); + fbBuilder.addFloat32(57, _infinityDefault); + fbBuilder.addFloat32(58, _positiveInfinityDefault); + fbBuilder.addFloat32(59, _negativeInfDefault); + fbBuilder.addFloat32(60, _negativeInfinityDefault); + fbBuilder.addFloat64(61, _doubleInfDefault); return fbBuilder.endTable(); } diff --git a/dart/test/monster_test_my_game_generated.dart b/dart/test/monster_test_my_game_generated.dart index 70e256cab3..b13bbe873d 100644 --- a/dart/test/monster_test_my_game_generated.dart +++ b/dart/test/monster_test_my_game_generated.dart @@ -9,6 +9,8 @@ import 'package:flat_buffers/flat_buffers.dart' as fb; import './monster_test_my_game.example_generated.dart' as my_game_example; import './monster_test_my_game.example2_generated.dart' as my_game_example2; +import './include_test1_generated.dart'; + class InParentNamespace { InParentNamespace._(this._bc, this._bcOffset); factory InParentNamespace(List bytes) { diff --git a/scripts/generate_code.py b/scripts/generate_code.py index 66e978517c..1a8d2f1e8c 100755 --- a/scripts/generate_code.py +++ b/scripts/generate_code.py @@ -179,6 +179,20 @@ def glob(path, pattern): data="monsterdata_test.json", ) +flatc( + NO_INCL_OPTS + + DART_OPTS, + schema="include_test/include_test1.fbs", + include="include_test/sub", +) + +flatc( + NO_INCL_OPTS + + DART_OPTS, + schema="include_test/sub/include_test2.fbs", + include="include_test", +) + flatc( NO_INCL_OPTS + TS_OPTS, diff --git a/src/idl_gen_dart.cpp b/src/idl_gen_dart.cpp index ada5956081..ed144a5247 100644 --- a/src/idl_gen_dart.cpp +++ b/src/idl_gen_dart.cpp @@ -70,7 +70,7 @@ static std::set DartKeywords() { "dynamic", "implements", "set", }; } -} // namespace +} // namespace const std::string _kFb = "fb"; @@ -85,6 +85,27 @@ class DartGenerator : public BaseGenerator { : BaseGenerator(parser, path, file_name, "", ".", "dart"), namer_(WithFlagOptions(DartDefaultConfig(), parser.opts, path), DartKeywords()) {} + + template + void import_generator(const std::vector &definitions, + const std::string &included, + std::set &imports) { + for (const auto &item : definitions) { + if (item->file == included) { + std::string component = namer_.Namespace(*item->defined_namespace); + std::string filebase = + flatbuffers::StripPath(flatbuffers::StripExtension(item->file)); + std::string filename = + namer_.File(filebase + (component.empty() ? "" : "_" + component)); + + imports.emplace("import './" + filename + "'" + + (component.empty() + ? ";\n" + : " as " + ImportAliasName(component) + ";\n")); + } + } + } + // Iterate through all definitions we haven't generate code for (enums, // structs, and tables) and output them to a single file. bool generate() { @@ -93,6 +114,20 @@ class DartGenerator : public BaseGenerator { GenerateEnums(namespace_code); GenerateStructs(namespace_code); + std::set imports; + + for (const auto &included_file : parser_.GetIncludedFiles()) { + if (included_file.filename == parser_.file_being_parsed_) continue; + + import_generator(parser_.structs_.vec, included_file.filename, imports); + import_generator(parser_.enums_.vec, included_file.filename, imports); + } + + std::string import_code = ""; + for (const auto &file : imports) { import_code += file; } + + import_code += import_code.empty() ? "" : "\n"; + for (auto kv = namespace_code.begin(); kv != namespace_code.end(); ++kv) { code.clear(); code = code + "// " + FlatBuffersGeneratedWarning() + "\n"; @@ -113,7 +148,10 @@ class DartGenerator : public BaseGenerator { "' as " + ImportAliasName(kv2->first) + ";\n"; } } + code += "\n"; + code += import_code; + code += kv->second; if (!SaveFile(Filename(kv->first).c_str(), code, false)) { return false; } diff --git a/tests/DartTest.sh b/tests/DartTest.sh index e2ac6c7f8d..aba975b383 100755 --- a/tests/DartTest.sh +++ b/tests/DartTest.sh @@ -20,6 +20,9 @@ command -v dart >/dev/null 2>&1 || { echo >&2 "Dart tests require dart to be in # output required files to the dart folder so that pub will be able to # distribute them and more people can more easily run the dart tests ../flatc --dart --gen-object-api -I include_test -o ../dart/test monster_test.fbs +../flatc --dart --gen-object-api -I include_test/sub -o ../dart/test include_test/include_test1.fbs +../flatc --dart --gen-object-api -I include_test -o ../dart/test include_test/sub/include_test2.fbs + cp monsterdata_test.mon ../dart/test cp monster_test.fbs ../dart/test diff --git a/tests/include_test1_generated.dart b/tests/include_test1_generated.dart new file mode 100644 index 0000000000..b280f58414 --- /dev/null +++ b/tests/include_test1_generated.dart @@ -0,0 +1,109 @@ +// automatically generated by the FlatBuffers compiler, do not modify +// ignore_for_file: unused_import, unused_field, unused_element, unused_local_variable + +import 'dart:typed_data' show Uint8List; +import 'package:flat_buffers/flat_buffers.dart' as fb; + + +import './include_test2_my_game.other_name_space_generated.dart' as my_game_other_name_space; + +class TableA { + TableA._(this._bc, this._bcOffset); + factory TableA(List bytes) { + final rootRef = fb.BufferContext.fromBytes(bytes); + return reader.read(rootRef, 0); + } + + static const fb.Reader reader = _TableAReader(); + + final fb.BufferContext _bc; + final int _bcOffset; + + my_game_other_name_space.TableB? get b => my_game_other_name_space.TableB.reader.vTableGetNullable(_bc, _bcOffset, 4); + + @override + String toString() { + return 'TableA{b: ${b}}'; + } + + TableAT unpack() => TableAT( + b: b?.unpack()); + + static int pack(fb.Builder fbBuilder, TableAT? object) { + if (object == null) return 0; + return object.pack(fbBuilder); + } +} + +class TableAT implements fb.Packable { + my_game_other_name_space.TableBT? b; + + TableAT({ + this.b}); + + @override + int pack(fb.Builder fbBuilder) { + final int? bOffset = b?.pack(fbBuilder); + fbBuilder.startTable(1); + fbBuilder.addOffset(0, bOffset); + return fbBuilder.endTable(); + } + + @override + String toString() { + return 'TableAT{b: ${b}}'; + } +} + +class _TableAReader extends fb.TableReader { + const _TableAReader(); + + @override + TableA createObject(fb.BufferContext bc, int offset) => + TableA._(bc, offset); +} + +class TableABuilder { + TableABuilder(this.fbBuilder); + + final fb.Builder fbBuilder; + + void begin() { + fbBuilder.startTable(1); + } + + int addBOffset(int? offset) { + fbBuilder.addOffset(0, offset); + return fbBuilder.offset; + } + + int finish() { + return fbBuilder.endTable(); + } +} + +class TableAObjectBuilder extends fb.ObjectBuilder { + final my_game_other_name_space.TableBObjectBuilder? _b; + + TableAObjectBuilder({ + my_game_other_name_space.TableBObjectBuilder? b, + }) + : _b = b; + + /// Finish building, and store into the [fbBuilder]. + @override + int finish(fb.Builder fbBuilder) { + final int? bOffset = _b?.getOrCreateOffset(fbBuilder); + fbBuilder.startTable(1); + fbBuilder.addOffset(0, bOffset); + return fbBuilder.endTable(); + } + + /// Convenience method to serialize to byte list. + @override + Uint8List toBytes([String? fileIdentifier]) { + final fbBuilder = fb.Builder(deduplicateTables: false); + fbBuilder.finish(finish(fbBuilder), fileIdentifier); + return fbBuilder.buffer; + } +} diff --git a/tests/include_test2_my_game.other_name_space_generated.dart b/tests/include_test2_my_game.other_name_space_generated.dart new file mode 100644 index 0000000000..f69df4e4d3 --- /dev/null +++ b/tests/include_test2_my_game.other_name_space_generated.dart @@ -0,0 +1,241 @@ +// automatically generated by the FlatBuffers compiler, do not modify +// ignore_for_file: unused_import, unused_field, unused_element, unused_local_variable + +library my_game.other_name_space; + +import 'dart:typed_data' show Uint8List; +import 'package:flat_buffers/flat_buffers.dart' as fb; + + +import './include_test1_generated.dart'; + +class FromInclude { + final int value; + const FromInclude._(this.value); + + factory FromInclude.fromValue(int value) { + final result = values[value]; + if (result == null) { + throw StateError('Invalid value $value for bit flag enum FromInclude'); + } + return result; + } + + static FromInclude? _createOrNull(int? value) => + value == null ? null : FromInclude.fromValue(value); + + static const int minValue = 0; + static const int maxValue = 0; + static bool containsValue(int value) => values.containsKey(value); + + static const FromInclude IncludeVal = FromInclude._(0); + static const Map values = { + 0: IncludeVal}; + + static const fb.Reader reader = _FromIncludeReader(); + + @override + String toString() { + return 'FromInclude{value: $value}'; + } +} + +class _FromIncludeReader extends fb.Reader { + const _FromIncludeReader(); + + @override + int get size => 8; + + @override + FromInclude read(fb.BufferContext bc, int offset) => + FromInclude.fromValue(const fb.Int64Reader().read(bc, offset)); +} + +class Unused { + Unused._(this._bc, this._bcOffset); + + static const fb.Reader reader = _UnusedReader(); + + final fb.BufferContext _bc; + final int _bcOffset; + + int get a => const fb.Int32Reader().read(_bc, _bcOffset + 0); + + @override + String toString() { + return 'Unused{a: ${a}}'; + } + + UnusedT unpack() => UnusedT( + a: a); + + static int pack(fb.Builder fbBuilder, UnusedT? object) { + if (object == null) return 0; + return object.pack(fbBuilder); + } +} + +class UnusedT implements fb.Packable { + int a; + + UnusedT({ + required this.a}); + + @override + int pack(fb.Builder fbBuilder) { + fbBuilder.putInt32(a); + return fbBuilder.offset; + } + + @override + String toString() { + return 'UnusedT{a: ${a}}'; + } +} + +class _UnusedReader extends fb.StructReader { + const _UnusedReader(); + + @override + int get size => 4; + + @override + Unused createObject(fb.BufferContext bc, int offset) => + Unused._(bc, offset); +} + +class UnusedBuilder { + UnusedBuilder(this.fbBuilder); + + final fb.Builder fbBuilder; + + int finish(int a) { + fbBuilder.putInt32(a); + return fbBuilder.offset; + } + +} + +class UnusedObjectBuilder extends fb.ObjectBuilder { + final int _a; + + UnusedObjectBuilder({ + required int a, + }) + : _a = a; + + /// Finish building, and store into the [fbBuilder]. + @override + int finish(fb.Builder fbBuilder) { + fbBuilder.putInt32(_a); + return fbBuilder.offset; + } + + /// Convenience method to serialize to byte list. + @override + Uint8List toBytes([String? fileIdentifier]) { + final fbBuilder = fb.Builder(deduplicateTables: false); + fbBuilder.finish(finish(fbBuilder), fileIdentifier); + return fbBuilder.buffer; + } +} +class TableB { + TableB._(this._bc, this._bcOffset); + factory TableB(List bytes) { + final rootRef = fb.BufferContext.fromBytes(bytes); + return reader.read(rootRef, 0); + } + + static const fb.Reader reader = _TableBReader(); + + final fb.BufferContext _bc; + final int _bcOffset; + + TableA? get a => TableA.reader.vTableGetNullable(_bc, _bcOffset, 4); + + @override + String toString() { + return 'TableB{a: ${a}}'; + } + + TableBT unpack() => TableBT( + a: a?.unpack()); + + static int pack(fb.Builder fbBuilder, TableBT? object) { + if (object == null) return 0; + return object.pack(fbBuilder); + } +} + +class TableBT implements fb.Packable { + TableAT? a; + + TableBT({ + this.a}); + + @override + int pack(fb.Builder fbBuilder) { + final int? aOffset = a?.pack(fbBuilder); + fbBuilder.startTable(1); + fbBuilder.addOffset(0, aOffset); + return fbBuilder.endTable(); + } + + @override + String toString() { + return 'TableBT{a: ${a}}'; + } +} + +class _TableBReader extends fb.TableReader { + const _TableBReader(); + + @override + TableB createObject(fb.BufferContext bc, int offset) => + TableB._(bc, offset); +} + +class TableBBuilder { + TableBBuilder(this.fbBuilder); + + final fb.Builder fbBuilder; + + void begin() { + fbBuilder.startTable(1); + } + + int addAOffset(int? offset) { + fbBuilder.addOffset(0, offset); + return fbBuilder.offset; + } + + int finish() { + return fbBuilder.endTable(); + } +} + +class TableBObjectBuilder extends fb.ObjectBuilder { + final TableAObjectBuilder? _a; + + TableBObjectBuilder({ + TableAObjectBuilder? a, + }) + : _a = a; + + /// Finish building, and store into the [fbBuilder]. + @override + int finish(fb.Builder fbBuilder) { + final int? aOffset = _a?.getOrCreateOffset(fbBuilder); + fbBuilder.startTable(1); + fbBuilder.addOffset(0, aOffset); + return fbBuilder.endTable(); + } + + /// Convenience method to serialize to byte list. + @override + Uint8List toBytes([String? fileIdentifier]) { + final fbBuilder = fb.Builder(deduplicateTables: false); + fbBuilder.finish(finish(fbBuilder), fileIdentifier); + return fbBuilder.buffer; + } +} diff --git a/tests/monster_test_my_game.example2_generated.dart b/tests/monster_test_my_game.example2_generated.dart index 24ccf72132..78e1bfcfef 100644 --- a/tests/monster_test_my_game.example2_generated.dart +++ b/tests/monster_test_my_game.example2_generated.dart @@ -9,6 +9,8 @@ import 'package:flat_buffers/flat_buffers.dart' as fb; import './monster_test_my_game_generated.dart' as my_game; import './monster_test_my_game.example_generated.dart' as my_game_example; +import './include_test1_generated.dart'; + class Monster { Monster._(this._bc, this._bcOffset); factory Monster(List bytes) { diff --git a/tests/monster_test_my_game.example_generated.dart b/tests/monster_test_my_game.example_generated.dart index a9e9e812ac..c70b3d7096 100644 --- a/tests/monster_test_my_game.example_generated.dart +++ b/tests/monster_test_my_game.example_generated.dart @@ -9,6 +9,8 @@ import 'package:flat_buffers/flat_buffers.dart' as fb; import './monster_test_my_game_generated.dart' as my_game; import './monster_test_my_game.example2_generated.dart' as my_game_example2; +import './include_test1_generated.dart'; + /// Composite components of Monster color. class Color { final int value; diff --git a/tests/monster_test_my_game_generated.dart b/tests/monster_test_my_game_generated.dart index 70e256cab3..b13bbe873d 100644 --- a/tests/monster_test_my_game_generated.dart +++ b/tests/monster_test_my_game_generated.dart @@ -9,6 +9,8 @@ import 'package:flat_buffers/flat_buffers.dart' as fb; import './monster_test_my_game.example_generated.dart' as my_game_example; import './monster_test_my_game.example2_generated.dart' as my_game_example2; +import './include_test1_generated.dart'; + class InParentNamespace { InParentNamespace._(this._bc, this._bcOffset); factory InParentNamespace(List bytes) { From 41d690329423739ac4e8fab79889eb6ebb18e176 Mon Sep 17 00:00:00 2001 From: Gh0u1L5 Date: Mon, 14 Nov 2022 03:52:02 +0800 Subject: [PATCH 018/571] [Go] Fix GenNativeUnionUnPack for imported union type. (#7579) * Fix GenNativeUnionUnPack for imported union type. * Update test results. Co-authored-by: Derek Bailey --- src/idl_gen_go.cpp | 5 ++++- tests/MyGame/Example/Any.go | 9 ++++++--- tests/MyGame/Example/AnyAmbiguousAliases.go | 9 ++++++--- tests/MyGame/Example/AnyUniqueAliases.go | 9 ++++++--- 4 files changed, 22 insertions(+), 10 deletions(-) diff --git a/src/idl_gen_go.cpp b/src/idl_gen_go.cpp index 33917ff776..d5d3c43d04 100644 --- a/src/idl_gen_go.cpp +++ b/src/idl_gen_go.cpp @@ -906,7 +906,10 @@ class GoGenerator : public BaseGenerator { const EnumVal &ev = **it2; if (ev.IsZero()) continue; code += "\tcase " + namer_.EnumVariant(enum_def, ev) + ":\n"; - code += "\t\tx := " + ev.union_type.struct_def->name + "{_tab: table}\n"; + code += "\t\tvar x " + + WrapInNameSpaceAndTrack(*ev.union_type.struct_def) + + "\n"; + code += "\t\tx.Init(table.Bytes, table.Pos)\n"; code += "\t\treturn &" + WrapInNameSpaceAndTrack(enum_def.defined_namespace, diff --git a/tests/MyGame/Example/Any.go b/tests/MyGame/Example/Any.go index 14b66b5b5e..62664185bb 100644 --- a/tests/MyGame/Example/Any.go +++ b/tests/MyGame/Example/Any.go @@ -63,13 +63,16 @@ func (t *AnyT) Pack(builder *flatbuffers.Builder) flatbuffers.UOffsetT { func (rcv Any) UnPack(table flatbuffers.Table) *AnyT { switch rcv { case AnyMonster: - x := Monster{_tab: table} + var x Monster + x.Init(table.Bytes, table.Pos) return &AnyT{ Type: AnyMonster, Value: x.UnPack() } case AnyTestSimpleTableWithEnum: - x := TestSimpleTableWithEnum{_tab: table} + var x TestSimpleTableWithEnum + x.Init(table.Bytes, table.Pos) return &AnyT{ Type: AnyTestSimpleTableWithEnum, Value: x.UnPack() } case AnyMyGame_Example2_Monster: - x := Monster{_tab: table} + var x MyGame__Example2.Monster + x.Init(table.Bytes, table.Pos) return &AnyT{ Type: AnyMyGame_Example2_Monster, Value: x.UnPack() } } return nil diff --git a/tests/MyGame/Example/AnyAmbiguousAliases.go b/tests/MyGame/Example/AnyAmbiguousAliases.go index 8a088dbb56..cdb65c9b23 100644 --- a/tests/MyGame/Example/AnyAmbiguousAliases.go +++ b/tests/MyGame/Example/AnyAmbiguousAliases.go @@ -61,13 +61,16 @@ func (t *AnyAmbiguousAliasesT) Pack(builder *flatbuffers.Builder) flatbuffers.UO func (rcv AnyAmbiguousAliases) UnPack(table flatbuffers.Table) *AnyAmbiguousAliasesT { switch rcv { case AnyAmbiguousAliasesM1: - x := Monster{_tab: table} + var x Monster + x.Init(table.Bytes, table.Pos) return &AnyAmbiguousAliasesT{ Type: AnyAmbiguousAliasesM1, Value: x.UnPack() } case AnyAmbiguousAliasesM2: - x := Monster{_tab: table} + var x Monster + x.Init(table.Bytes, table.Pos) return &AnyAmbiguousAliasesT{ Type: AnyAmbiguousAliasesM2, Value: x.UnPack() } case AnyAmbiguousAliasesM3: - x := Monster{_tab: table} + var x Monster + x.Init(table.Bytes, table.Pos) return &AnyAmbiguousAliasesT{ Type: AnyAmbiguousAliasesM3, Value: x.UnPack() } } return nil diff --git a/tests/MyGame/Example/AnyUniqueAliases.go b/tests/MyGame/Example/AnyUniqueAliases.go index 2a52ebec3a..32cbe08b91 100644 --- a/tests/MyGame/Example/AnyUniqueAliases.go +++ b/tests/MyGame/Example/AnyUniqueAliases.go @@ -63,13 +63,16 @@ func (t *AnyUniqueAliasesT) Pack(builder *flatbuffers.Builder) flatbuffers.UOffs func (rcv AnyUniqueAliases) UnPack(table flatbuffers.Table) *AnyUniqueAliasesT { switch rcv { case AnyUniqueAliasesM: - x := Monster{_tab: table} + var x Monster + x.Init(table.Bytes, table.Pos) return &AnyUniqueAliasesT{ Type: AnyUniqueAliasesM, Value: x.UnPack() } case AnyUniqueAliasesTS: - x := TestSimpleTableWithEnum{_tab: table} + var x TestSimpleTableWithEnum + x.Init(table.Bytes, table.Pos) return &AnyUniqueAliasesT{ Type: AnyUniqueAliasesTS, Value: x.UnPack() } case AnyUniqueAliasesM2: - x := Monster{_tab: table} + var x MyGame__Example2.Monster + x.Init(table.Bytes, table.Pos) return &AnyUniqueAliasesT{ Type: AnyUniqueAliasesM2, Value: x.UnPack() } } return nil From 6f895f54c25aa19f5d84ac6cf7fa8bc955a14e1d Mon Sep 17 00:00:00 2001 From: Derek Bailey Date: Sun, 13 Nov 2022 12:00:07 -0800 Subject: [PATCH 019/571] Add _deps/ to gitignore --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 1369bce8ab..4d83964e54 100644 --- a/.gitignore +++ b/.gitignore @@ -150,3 +150,4 @@ flatbuffers.pc **/latex/** # https://cmake.org/cmake/help/latest/module/FetchContent.html#variable:FETCHCONTENT_BASE_DIR cmake-build-debug/ +_deps/ From 634c2ee7e3b89b715bb9c484904efea9f8552320 Mon Sep 17 00:00:00 2001 From: tira-misu Date: Fri, 18 Nov 2022 00:55:42 +0100 Subject: [PATCH 020/571] Put documentation to bfbs if it is not empty (#7649) * Fix C/C++ CreateDirect with sorted vectors If a struct has a key the vector has to be sorted. To sort the vector you can't use "const". * Changes due to code review * Improve code readability * Add generate of JSON schema to string to lib * option indent_step is supported * Remove unused variables * Fix break in test * Fix style to be consistent with rest of the code * [TS] Fix reserved words as arguments (#6955) * [TS] Fix generation of reserved words in object api (#7106) * [TS] Fix generation of object api * [TS] Fix MakeCamel -> ConvertCase * [C#] Fix collision of field name and type name * [TS] Add test for struct of struct of struct * Update generated files * Add missing files * [TS] Fix query of null/undefined fields in object api * Put documentation to bfbs if it is not empty * Fix monster test bfbs reference files * Fix generated monster test files Why they are different when generating it with linux and windows executable? --- samples/monster.bfbs | Bin 2168 -> 1888 bytes src/idl_parser.cpp | 12 +- tests/arrays_test.bfbs | Bin 1592 -> 1408 bytes tests/monster_test.afb | 9173 +++++++++++++-------------- tests/monster_test.bfbs | Bin 15736 -> 14592 bytes tests/monster_test_bfbs_generated.h | 1437 ++--- 6 files changed, 5009 insertions(+), 5613 deletions(-) diff --git a/samples/monster.bfbs b/samples/monster.bfbs index 5b47002040811049e12c8439d65f58dde0efc8ce..c0a6a6c174b49557d12b84a2d51627d09275d4fc 100644 GIT binary patch literal 1888 zcmZvcy;4(A6ovPNgaim7gHb6cZb4z;05eihP%tQB0q6*$cFvVtgqi$YLr}5u0W2Ax zfP%u((t^U$aV#x-01ID0MdP>5$qk9RCu`2nJ!kK=*WM>nX108Dd9!SxWh`$6D_Pkl z*_~oETLf1@2(*4bV4O0W2mdoZ+Zk8_gW!mb$sx0^ff+wyn5}(pw?p69REw zfOGzriy=8&4EfRG7*xO&Z~^r5zTT)dns8MFF_u26ijO6}vLiV5@>;GQ#M&>QXz#s{ zJ!z}6seS6X3r$;X#xZGgx8QP4V@|Ut9ZHS?6HL95`b+b<8&@pBXUb9g3y3AI^05Zw zr$5hBZF2dkT!vitan0WPT4#G}Q;BNPV=_F}w;<#E>Fg`+GK?vv)^$37f$#klQWoN{ z1kye@q8OvB=egWsJO&>$CvcVV4dWtEom9AY3>QIv9_x+zek*RWU!YeQf)O&&OA?<7 zx|kKm#ZPgymqe{y23zc$AGS-~^ACK_lyqKDFU9KQ1d*{*^3Rirw3e@`^WXn2#@J8q zJZv2%66B;4D@Ug)A79rJs^?q`vGZ@R=-z~U=fE@fCia;XiK$-9aHqsdZ>D4mj3Gd# zu1RU#6?b{{eqHN#-+}sW+jY9xjZO|(yiT+4xfL8YmYDB3IAo;BFxaa<q6 z;^b|FmFF!lssTo~6zmq0d7!-HL*o~;7PoY7j=4Nk;-ndGM=dG7D2t6e*H+C0lbHtQJ)an*{P4;eGAfgH_@je`SsUB zZ%8?)H(u)qCiPVdnNBNTtm{vlYEeDX=9JS=(e-cGYgwNQO7`|nTI2KHG1uqPN&j<6 zW1qZz*XSQ!8mL-+v_QQx4a6aR8|vNJ*_wY-GdqvedGhrV+yTl>|F!*Z@Ls%qje2%8 xOtn7o+Kq~j@B;W+`7Tz>favM@&wrg)fxW_cM$c7e^?#UZdfuDXjq{u{e*n;a;${E< literal 2168 zcmZ{lyKfUg5XR?19tIq+f&nXX;UYzfC`5vSf+7k}As!MSpo1g6kVt+UwgUuFQc+Ry zSENiqNkKtLfe-~HLKFy5AS57QzTfVhxeH;W@$Sy<&V2LD?73!U3#S$?Yp}A_Y}g7` zw36l(S*jY%j!9>vH7V=r4$~>KBhu|;NXANFHm^}f?UM{&M$M)*%B&b>AAj`wo3b(Y zGNEY19#eGURBXa;1V=SaOR*F8h3+BmfA;$t0(_=Q?3>b>^q}965e<2`` zG?tZoL-T3bW6fV{+%L`NcfQ@~_9CkN?w7+9>{5klT4(W|6Mw4bUb!9EcqTk@WolqWrbRBhaB+c{kaw!ye;~6F?l^R zNe(0G+8NpN*oqFD%o5+T!Zr*?JEbeFyZWTGJ8L$ndqgYPE{-|`zE39In(ivvb83i5A12tBA)u#6HTMrOry!syEg&6_$#;{Y8Tfff@3X z1UuxFc^1oa-&48V?!JCX${PL)j<@uCQBSv%aouAbygTZ(9J2{$KI`rL z@`jJ<)RYvAPo=3)RcegjA*t~o2HZ8nR>(g8WSsF|ax7j-HsZNZW#BkpckdrwiJtg( z?+U*8Ud8RMJbPyN=i-}GanUppzw`Q;k%EQjsej(bp+imoo@bYCb+tzDxh{o2&hmee z{{~!*77v@f5ub3rwRR6Z&%42gJ`le?^I StructDef::Serialize(FlatBufferBuilder *builder, const auto name__ = builder->CreateString(qualified_name); const auto flds__ = builder->CreateVectorOfSortedTables(&field_offsets); const auto attr__ = SerializeAttributes(builder, parser); - const auto docs__ = parser.opts.binary_schema_comments + const auto docs__ = parser.opts.binary_schema_comments && !doc_comment.empty() ? builder->CreateVectorOfStrings(doc_comment) : 0; std::string decl_file_in_project = declaration_file ? *declaration_file : ""; @@ -3856,7 +3856,7 @@ Offset FieldDef::Serialize(FlatBufferBuilder *builder, auto name__ = builder->CreateString(name); auto type__ = value.type.Serialize(builder); auto attr__ = SerializeAttributes(builder, parser); - auto docs__ = parser.opts.binary_schema_comments + auto docs__ = parser.opts.binary_schema_comments && !doc_comment.empty() ? builder->CreateVectorOfStrings(doc_comment) : 0; double d; @@ -3909,7 +3909,7 @@ Offset RPCCall::Serialize(FlatBufferBuilder *builder, const Parser &parser) const { auto name__ = builder->CreateString(name); auto attr__ = SerializeAttributes(builder, parser); - auto docs__ = parser.opts.binary_schema_comments + auto docs__ = parser.opts.binary_schema_comments && !doc_comment.empty() ? builder->CreateVectorOfStrings(doc_comment) : 0; return reflection::CreateRPCCall( @@ -3937,7 +3937,7 @@ Offset ServiceDef::Serialize(FlatBufferBuilder *builder, const auto name__ = builder->CreateString(qualified_name); const auto call__ = builder->CreateVector(servicecall_offsets); const auto attr__ = SerializeAttributes(builder, parser); - const auto docs__ = parser.opts.binary_schema_comments + const auto docs__ = parser.opts.binary_schema_comments && !doc_comment.empty() ? builder->CreateVectorOfStrings(doc_comment) : 0; std::string decl_file_in_project = declaration_file ? *declaration_file : ""; @@ -3975,7 +3975,7 @@ Offset EnumDef::Serialize(FlatBufferBuilder *builder, const auto vals__ = builder->CreateVector(enumval_offsets); const auto type__ = underlying_type.Serialize(builder); const auto attr__ = SerializeAttributes(builder, parser); - const auto docs__ = parser.opts.binary_schema_comments + const auto docs__ = parser.opts.binary_schema_comments && !doc_comment.empty() ? builder->CreateVectorOfStrings(doc_comment) : 0; std::string decl_file_in_project = declaration_file ? *declaration_file : ""; @@ -4020,7 +4020,7 @@ Offset EnumVal::Serialize(FlatBufferBuilder *builder, const auto name__ = builder->CreateString(name); const auto type__ = union_type.Serialize(builder); const auto attr__ = SerializeAttributes(builder, parser); - const auto docs__ = parser.opts.binary_schema_comments + const auto docs__ = parser.opts.binary_schema_comments && !doc_comment.empty() ? builder->CreateVectorOfStrings(doc_comment) : 0; return reflection::CreateEnumVal(*builder, name__, value, type__, docs__, diff --git a/tests/arrays_test.bfbs b/tests/arrays_test.bfbs index 39acd0ca4279e53023e594e7ef83c21dbcce3f69..117630a16684ab5774cb61e2ff87d739496d49bb 100644 GIT binary patch literal 1408 zcmaKs&rTCj6vofY&`!Z7w4{lsjp>3#7X(0VaI zsVa;*BsE*%cN?^T_MhYb`Fon8Dy)m8crqs74Oj$)LZn|1KF^ob@+){n2>; z{Bl6-RkA39`t`BZQwVaIq-mf7N<89$p@g z@yp_t?1SrB9QJ;uX?-ztIS6T|;1isS!5g5u<+twkES8U;-X~eS$eua=02D9^9;7_9laf}l`qTQ$VXu5S4q0maap z5SMGf&!g(*fr(tS;ql!9{VF|Kq(xOvif= z+M<>I;C%tR;$E76qxC3s$#Y)ByRS=}meDomiu)hod2LMJx%{$s9w|s3L#yU8`+js< Wlv$6(d8s!475I78<8V6Xgp=P2d4Hh* literal 1592 zcmaKsyKYlK5QgXY5<6gFJF-Lo3%Q_hVL2%%C@5k>APp3W3p#Y{IHHI{WIGah0}6^1 z)QAV5%iq7lck!n>Ws}I~rMqqJ zmg36AhhjH?xK8*eIWOLWSW%q$_$|)r*^DveU2*YiPUr2#+1t1n-QNK>z!ER5;V?Y! zgx%vlI!%G{GFt;PDOuL#XhFvDyO?jua+oTf7*M`QQ9nuEA^XN3*SA3PC9Y-vK3>1e z5K+`I`#Si_{tb8r#P3b8D))o&@T^DU^RfS|UASCTMZ)Q~NfedWQ!b`L9f5cBMi#Gu z>Y2Bncwaf$3gYHP>_5$v*ErAH8@h5aXY?i@D*W6HUq$w2~Bk$^Da4 zS@>6~ou!j}wDv%pXArEY;mdDw$`u_4vhTv6X3zJD4^t^PZX28z`&w{)^=5t!*ky)@xOj$lYRv$TjwpPu0^iIY?fLz!Tt@D z)Bf>Mj+=)bEc@4$x%9d;+X1)lUh=CdJcsgHVvj8R_sM@3%-*g{W}?@b@UW`K%G (ULong) - +0x001A | 1C 00 | VOffset16 | 0x001C (28) | offset to field `fbs_files` (id: 7) + +0x000C | 14 00 | uint16_t | 0x0014 (20) | size of this vtable + +0x000E | 20 00 | uint16_t | 0x0020 (32) | size of referring table + +0x0010 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `objects` (id: 0) + +0x0012 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `enums` (id: 1) + +0x0014 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `file_ident` (id: 2) + +0x0016 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `file_ext` (id: 3) + +0x0018 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `root_table` (id: 4) + +0x001A | 18 00 | VOffset16 | 0x0018 (24) | offset to field `services` (id: 5) + +0x001C | 00 00 | VOffset16 | 0x0000 (0) | offset to field `advanced_features` (id: 6) (ULong) + +0x001E | 1C 00 | VOffset16 | 0x001C (28) | offset to field `fbs_files` (id: 7) root_table (reflection.Schema): - +0x001C | 14 00 00 00 | SOffset32 | 0x00000014 (20) Loc: +0x0008 | offset to vtable - +0x0020 | 58 00 00 00 | UOffset32 | 0x00000058 (88) Loc: +0x0078 | offset to field `objects` (vector) - +0x0024 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x0058 | offset to field `enums` (vector) - +0x0028 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x004C | offset to field `file_ident` (string) - +0x002C | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x0044 | offset to field `file_ext` (string) - +0x0030 | A0 0E 00 00 | UOffset32 | 0x00000EA0 (3744) Loc: +0x0ED0 | offset to field `root_table` (table) - +0x0034 | 08 00 00 00 | UOffset32 | 0x00000008 (8) Loc: +0x003C | offset to field `services` (vector) - +0x0038 | 80 00 00 00 | UOffset32 | 0x00000080 (128) Loc: +0x00B8 | offset to field `fbs_files` (vector) + +0x0020 | 14 00 00 00 | SOffset32 | 0x00000014 (20) Loc: +0x000C | offset to vtable + +0x0024 | 58 00 00 00 | UOffset32 | 0x00000058 (88) Loc: +0x007C | offset to field `objects` (vector) + +0x0028 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x005C | offset to field `enums` (vector) + +0x002C | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x0050 | offset to field `file_ident` (string) + +0x0030 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x0048 | offset to field `file_ext` (string) + +0x0034 | 50 0D 00 00 | UOffset32 | 0x00000D50 (3408) Loc: +0x0D84 | offset to field `root_table` (table) + +0x0038 | 08 00 00 00 | UOffset32 | 0x00000008 (8) Loc: +0x0040 | offset to field `services` (vector) + +0x003C | 80 00 00 00 | UOffset32 | 0x00000080 (128) Loc: +0x00BC | offset to field `fbs_files` (vector) vector (reflection.Schema.services): - +0x003C | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x0040 | DC 00 00 00 | UOffset32 | 0x000000DC (220) Loc: +0x011C | offset to table[0] + +0x0040 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x0044 | DC 00 00 00 | UOffset32 | 0x000000DC (220) Loc: +0x0120 | offset to table[0] string (reflection.Schema.file_ext): - +0x0044 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string - +0x0048 | 6D 6F 6E | char[3] | mon | string literal - +0x004B | 00 | char | 0x00 (0) | string terminator + +0x0048 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string + +0x004C | 6D 6F 6E | char[3] | mon | string literal + +0x004F | 00 | char | 0x00 (0) | string terminator string (reflection.Schema.file_ident): - +0x004C | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string - +0x0050 | 4D 4F 4E 53 | char[4] | MONS | string literal - +0x0054 | 00 | char | 0x00 (0) | string terminator + +0x0050 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string + +0x0054 | 4D 4F 4E 53 | char[4] | MONS | string literal + +0x0058 | 00 | char | 0x00 (0) | string terminator padding: - +0x0055 | 00 00 00 | uint8_t[3] | ... | padding + +0x0059 | 00 00 00 | uint8_t[3] | ... | padding vector (reflection.Schema.enums): - +0x0058 | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of vector (# items) - +0x005C | 4C 05 00 00 | UOffset32 | 0x0000054C (1356) Loc: +0x05A8 | offset to table[0] - +0x0060 | B8 02 00 00 | UOffset32 | 0x000002B8 (696) Loc: +0x0318 | offset to table[1] - +0x0064 | F8 03 00 00 | UOffset32 | 0x000003F8 (1016) Loc: +0x045C | offset to table[2] - +0x0068 | 04 09 00 00 | UOffset32 | 0x00000904 (2308) Loc: +0x096C | offset to table[3] - +0x006C | 90 06 00 00 | UOffset32 | 0x00000690 (1680) Loc: +0x06FC | offset to table[4] - +0x0070 | BC 07 00 00 | UOffset32 | 0x000007BC (1980) Loc: +0x082C | offset to table[5] - +0x0074 | EC 0A 00 00 | UOffset32 | 0x00000AEC (2796) Loc: +0x0B60 | offset to table[6] + +0x005C | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of vector (# items) + +0x0060 | D4 04 00 00 | UOffset32 | 0x000004D4 (1236) Loc: +0x0534 | offset to table[0] + +0x0064 | 90 02 00 00 | UOffset32 | 0x00000290 (656) Loc: +0x02F4 | offset to table[1] + +0x0068 | A8 03 00 00 | UOffset32 | 0x000003A8 (936) Loc: +0x0410 | offset to table[2] + +0x006C | 30 08 00 00 | UOffset32 | 0x00000830 (2096) Loc: +0x089C | offset to table[3] + +0x0070 | 00 06 00 00 | UOffset32 | 0x00000600 (1536) Loc: +0x0670 | offset to table[4] + +0x0074 | 0C 07 00 00 | UOffset32 | 0x0000070C (1804) Loc: +0x0780 | offset to table[5] + +0x0078 | 10 0A 00 00 | UOffset32 | 0x00000A10 (2576) Loc: +0x0A88 | offset to table[6] vector (reflection.Schema.objects): - +0x0078 | 0F 00 00 00 | uint32_t | 0x0000000F (15) | length of vector (# items) - +0x007C | 54 35 00 00 | UOffset32 | 0x00003554 (13652) Loc: +0x35D0 | offset to table[0] - +0x0080 | 50 0E 00 00 | UOffset32 | 0x00000E50 (3664) Loc: +0x0ED0 | offset to table[1] - +0x0084 | A0 31 00 00 | UOffset32 | 0x000031A0 (12704) Loc: +0x3224 | offset to table[2] - +0x0088 | 7C 32 00 00 | UOffset32 | 0x0000327C (12924) Loc: +0x3304 | offset to table[3] - +0x008C | 1C 34 00 00 | UOffset32 | 0x0000341C (13340) Loc: +0x34A8 | offset to table[4] - +0x0090 | 90 33 00 00 | UOffset32 | 0x00003390 (13200) Loc: +0x3420 | offset to table[5] - +0x0094 | 58 39 00 00 | UOffset32 | 0x00003958 (14680) Loc: +0x39EC | offset to table[6] - +0x0098 | 38 38 00 00 | UOffset32 | 0x00003838 (14392) Loc: +0x38D0 | offset to table[7] - +0x009C | 70 0B 00 00 | UOffset32 | 0x00000B70 (2928) Loc: +0x0C0C | offset to table[8] - +0x00A0 | 30 36 00 00 | UOffset32 | 0x00003630 (13872) Loc: +0x36D0 | offset to table[9] - +0x00A4 | 20 3A 00 00 | UOffset32 | 0x00003A20 (14880) Loc: +0x3AC4 | offset to table[10] - +0x00A8 | 58 3A 00 00 | UOffset32 | 0x00003A58 (14936) Loc: +0x3B00 | offset to table[11] - +0x00AC | 48 3B 00 00 | UOffset32 | 0x00003B48 (15176) Loc: +0x3BF4 | offset to table[12] - +0x00B0 | FC 3B 00 00 | UOffset32 | 0x00003BFC (15356) Loc: +0x3CAC | offset to table[13] - +0x00B4 | A4 3A 00 00 | UOffset32 | 0x00003AA4 (15012) Loc: +0x3B58 | offset to table[14] + +0x007C | 0F 00 00 00 | uint32_t | 0x0000000F (15) | length of vector (# items) + +0x0080 | BC 31 00 00 | UOffset32 | 0x000031BC (12732) Loc: +0x323C | offset to table[0] + +0x0084 | 00 0D 00 00 | UOffset32 | 0x00000D00 (3328) Loc: +0x0D84 | offset to table[1] + +0x0088 | 6C 2E 00 00 | UOffset32 | 0x00002E6C (11884) Loc: +0x2EF4 | offset to table[2] + +0x008C | 38 2F 00 00 | UOffset32 | 0x00002F38 (12088) Loc: +0x2FC4 | offset to table[3] + +0x0090 | A4 30 00 00 | UOffset32 | 0x000030A4 (12452) Loc: +0x3134 | offset to table[4] + +0x0094 | 28 30 00 00 | UOffset32 | 0x00003028 (12328) Loc: +0x30BC | offset to table[5] + +0x0098 | 44 35 00 00 | UOffset32 | 0x00003544 (13636) Loc: +0x35DC | offset to table[6] + +0x009C | 44 34 00 00 | UOffset32 | 0x00003444 (13380) Loc: +0x34E0 | offset to table[7] + +0x00A0 | 84 0A 00 00 | UOffset32 | 0x00000A84 (2692) Loc: +0x0B24 | offset to table[8] + +0x00A4 | 80 32 00 00 | UOffset32 | 0x00003280 (12928) Loc: +0x3324 | offset to table[9] + +0x00A8 | F4 35 00 00 | UOffset32 | 0x000035F4 (13812) Loc: +0x369C | offset to table[10] + +0x00AC | 24 36 00 00 | UOffset32 | 0x00003624 (13860) Loc: +0x36D0 | offset to table[11] + +0x00B0 | FC 36 00 00 | UOffset32 | 0x000036FC (14076) Loc: +0x37AC | offset to table[12] + +0x00B4 | A0 37 00 00 | UOffset32 | 0x000037A0 (14240) Loc: +0x3854 | offset to table[13] + +0x00B8 | 68 36 00 00 | UOffset32 | 0x00003668 (13928) Loc: +0x3720 | offset to table[14] vector (reflection.Schema.fbs_files): - +0x00B8 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) - +0x00BC | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: +0x00F4 | offset to table[0] - +0x00C0 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: +0x00DC | offset to table[1] - +0x00C4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x00C8 | offset to table[2] + +0x00BC | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) + +0x00C0 | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: +0x00F8 | offset to table[0] + +0x00C4 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: +0x00E0 | offset to table[1] + +0x00C8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x00CC | offset to table[2] table (reflection.SchemaFile): - +0x00C8 | AC C7 FF FF | SOffset32 | 0xFFFFC7AC (-14420) Loc: +0x391C | offset to vtable - +0x00CC | 4C 3A 00 00 | UOffset32 | 0x00003A4C (14924) Loc: +0x3B18 | offset to field `key` (string) - +0x00D0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x00D4 | offset to field `value` (string) + +0x00CC | 04 C8 FF FF | SOffset32 | 0xFFFFC804 (-14332) Loc: +0x38C8 | offset to vtable + +0x00D0 | 14 36 00 00 | UOffset32 | 0x00003614 (13844) Loc: +0x36E4 | offset to field `key` (string) + +0x00D4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x00D8 | offset to field `value` (string) string (reflection.SchemaFile.value): - +0x00D4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x00D8 | 98 | char[1] | | string literal - +0x00D9 | 3A | char | 0x3A (58) | string terminator + +0x00D8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x00DC | 58 | char[1] | X | string literal + +0x00DD | 36 | char | 0x36 (54) | string terminator padding: - +0x00DA | 00 00 | uint8_t[2] | .. | padding + +0x00DE | 00 00 | uint8_t[2] | .. | padding table (reflection.SchemaFile): - +0x00DC | C0 C7 FF FF | SOffset32 | 0xFFFFC7C0 (-14400) Loc: +0x391C | offset to vtable - +0x00E0 | EC 3B 00 00 | UOffset32 | 0x00003BEC (15340) Loc: +0x3CCC | offset to field `key` (string) - +0x00E4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x00E8 | offset to field `value` (string) + +0x00E0 | 18 C8 FF FF | SOffset32 | 0xFFFFC818 (-14312) Loc: +0x38C8 | offset to vtable + +0x00E4 | 8C 37 00 00 | UOffset32 | 0x0000378C (14220) Loc: +0x3870 | offset to field `key` (string) + +0x00E8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x00EC | offset to field `value` (string) string (reflection.SchemaFile.value): - +0x00E8 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x00EC | 84 3A | char[2] | : | string literal - +0x00EE | 00 | char | 0x00 (0) | string terminator + +0x00EC | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x00F0 | 44 36 | char[2] | D6 | string literal + +0x00F2 | 00 | char | 0x00 (0) | string terminator unknown (no known references): - +0x00EF | 00 DC 3B 00 00 | ?uint8_t[5] | ..;.. | WARN: could be corrupted padding region. + +0x00F3 | 00 7C 37 00 00 | ?uint8_t[5] | .|7.. | WARN: could be corrupted padding region. table (reflection.SchemaFile): - +0x00F4 | D8 C7 FF FF | SOffset32 | 0xFFFFC7D8 (-14376) Loc: +0x391C | offset to vtable - +0x00F8 | 78 3A 00 00 | UOffset32 | 0x00003A78 (14968) Loc: +0x3B70 | offset to field `key` (string) - +0x00FC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x0100 | offset to field `value` (string) + +0x00F8 | 30 C8 FF FF | SOffset32 | 0xFFFFC830 (-14288) Loc: +0x38C8 | offset to vtable + +0x00FC | 38 36 00 00 | UOffset32 | 0x00003638 (13880) Loc: +0x3734 | offset to field `key` (string) + +0x0100 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x0104 | offset to field `value` (string) string (reflection.SchemaFile.value): - +0x0100 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x0104 | 6C 3A | char[2] | l: | string literal - +0x0106 | 00 | char | 0x00 (0) | string terminator + +0x0104 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x0108 | 2C 36 | char[2] | ,6 | string literal + +0x010A | 00 | char | 0x00 (0) | string terminator unknown (no known references): - +0x0107 | 00 C4 3B 00 00 00 00 | ?uint8_t[7] | ..;.... | WARN: could be corrupted padding region. + +0x010B | 00 64 37 00 00 00 00 | ?uint8_t[7] | .d7.... | WARN: could be corrupted padding region. vtable (reflection.Service): - +0x010E | 0E 00 | uint16_t | 0x000E (14) | size of this vtable - +0x0110 | 14 00 | uint16_t | 0x0014 (20) | size of referring table - +0x0112 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `name` (id: 0) - +0x0114 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `calls` (id: 1) - +0x0116 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `attributes` (id: 2) (Vector) - +0x0118 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `documentation` (id: 3) - +0x011A | 10 00 | VOffset16 | 0x0010 (16) | offset to field `declaration_file` (id: 4) + +0x0112 | 0E 00 | uint16_t | 0x000E (14) | size of this vtable + +0x0114 | 10 00 | uint16_t | 0x0010 (16) | size of referring table + +0x0116 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `name` (id: 0) + +0x0118 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `calls` (id: 1) + +0x011A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `attributes` (id: 2) (Vector) + +0x011C | 00 00 | VOffset16 | 0x0000 (0) | offset to field `documentation` (id: 3) (Vector) + +0x011E | 0C 00 | VOffset16 | 0x000C (12) | offset to field `declaration_file` (id: 4) table (reflection.Service): - +0x011C | 0E 00 00 00 | SOffset32 | 0x0000000E (14) Loc: +0x010E | offset to vtable - +0x0120 | 28 00 00 00 | UOffset32 | 0x00000028 (40) Loc: +0x0148 | offset to field `name` (string) - +0x0124 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x0134 | offset to field `calls` (vector) - +0x0128 | 08 00 00 00 | UOffset32 | 0x00000008 (8) Loc: +0x0130 | offset to field `documentation` (vector) - +0x012C | EC 39 00 00 | UOffset32 | 0x000039EC (14828) Loc: +0x3B18 | offset to field `declaration_file` (string) - -vector (reflection.Service.documentation): - +0x0130 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x0120 | 0E 00 00 00 | SOffset32 | 0x0000000E (14) Loc: +0x0112 | offset to vtable + +0x0124 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x0144 | offset to field `name` (string) + +0x0128 | 08 00 00 00 | UOffset32 | 0x00000008 (8) Loc: +0x0130 | offset to field `calls` (vector) + +0x012C | B8 35 00 00 | UOffset32 | 0x000035B8 (13752) Loc: +0x36E4 | offset to field `declaration_file` (string) vector (reflection.Service.calls): - +0x0134 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of vector (# items) - +0x0138 | 88 01 00 00 | UOffset32 | 0x00000188 (392) Loc: +0x02C0 | offset to table[0] - +0x013C | F4 00 00 00 | UOffset32 | 0x000000F4 (244) Loc: +0x0230 | offset to table[1] - +0x0140 | 90 00 00 00 | UOffset32 | 0x00000090 (144) Loc: +0x01D0 | offset to table[2] - +0x0144 | 28 00 00 00 | UOffset32 | 0x00000028 (40) Loc: +0x016C | offset to table[3] + +0x0130 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of vector (# items) + +0x0134 | 70 01 00 00 | UOffset32 | 0x00000170 (368) Loc: +0x02A4 | offset to table[0] + +0x0138 | E4 00 00 00 | UOffset32 | 0x000000E4 (228) Loc: +0x021C | offset to table[1] + +0x013C | 88 00 00 00 | UOffset32 | 0x00000088 (136) Loc: +0x01C4 | offset to table[2] + +0x0140 | 28 00 00 00 | UOffset32 | 0x00000028 (40) Loc: +0x0168 | offset to table[3] string (reflection.Service.name): - +0x0148 | 1D 00 00 00 | uint32_t | 0x0000001D (29) | length of string - +0x014C | 4D 79 47 61 6D 65 2E 45 | char[29] | MyGame.E | string literal - +0x0154 | 78 61 6D 70 6C 65 2E 4D | | xample.M - +0x015C | 6F 6E 73 74 65 72 53 74 | | onsterSt - +0x0164 | 6F 72 61 67 65 | | orage - +0x0169 | 00 | char | 0x00 (0) | string terminator + +0x0144 | 1D 00 00 00 | uint32_t | 0x0000001D (29) | length of string + +0x0148 | 4D 79 47 61 6D 65 2E 45 | char[29] | MyGame.E | string literal + +0x0150 | 78 61 6D 70 6C 65 2E 4D | | xample.M + +0x0158 | 6F 6E 73 74 65 72 53 74 | | onsterSt + +0x0160 | 6F 72 61 67 65 | | orage + +0x0165 | 00 | char | 0x00 (0) | string terminator padding: - +0x016A | 00 00 | uint8_t[2] | .. | padding + +0x0166 | 00 00 | uint8_t[2] | .. | padding table (reflection.RPCCall): - +0x016C | BA FE FF FF | SOffset32 | 0xFFFFFEBA (-326) Loc: +0x02B2 | offset to vtable - +0x0170 | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: +0x01B8 | offset to field `name` (string) - +0x0174 | 5C 0D 00 00 | UOffset32 | 0x00000D5C (3420) Loc: +0x0ED0 | offset to field `request` (table) - +0x0178 | 8C 31 00 00 | UOffset32 | 0x0000318C (12684) Loc: +0x3304 | offset to field `response` (table) - +0x017C | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x0188 | offset to field `attributes` (vector) - +0x0180 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x0184 | offset to field `documentation` (vector) - -vector (reflection.RPCCall.documentation): - +0x0184 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x0168 | D0 FE FF FF | SOffset32 | 0xFFFFFED0 (-304) Loc: +0x0298 | offset to vtable + +0x016C | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: +0x01AC | offset to field `name` (string) + +0x0170 | 14 0C 00 00 | UOffset32 | 0x00000C14 (3092) Loc: +0x0D84 | offset to field `request` (table) + +0x0174 | 50 2E 00 00 | UOffset32 | 0x00002E50 (11856) Loc: +0x2FC4 | offset to field `response` (table) + +0x0178 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x017C | offset to field `attributes` (vector) vector (reflection.RPCCall.attributes): - +0x0188 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x018C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x0190 | offset to table[0] + +0x017C | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x0180 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x0184 | offset to table[0] table (reflection.KeyValue): - +0x0190 | 74 C8 FF FF | SOffset32 | 0xFFFFC874 (-14220) Loc: +0x391C | offset to vtable - +0x0194 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x01A8 | offset to field `key` (string) - +0x0198 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x019C | offset to field `value` (string) + +0x0184 | BC C8 FF FF | SOffset32 | 0xFFFFC8BC (-14148) Loc: +0x38C8 | offset to vtable + +0x0188 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x019C | offset to field `key` (string) + +0x018C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x0190 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x019C | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string - +0x01A0 | 62 69 64 69 | char[4] | bidi | string literal - +0x01A4 | 00 | char | 0x00 (0) | string terminator + +0x0190 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string + +0x0194 | 62 69 64 69 | char[4] | bidi | string literal + +0x0198 | 00 | char | 0x00 (0) | string terminator padding: - +0x01A5 | 00 00 00 | uint8_t[3] | ... | padding + +0x0199 | 00 00 00 | uint8_t[3] | ... | padding string (reflection.KeyValue.key): - +0x01A8 | 09 00 00 00 | uint32_t | 0x00000009 (9) | length of string - +0x01AC | 73 74 72 65 61 6D 69 6E | char[9] | streamin | string literal - +0x01B4 | 67 | | g - +0x01B5 | 00 | char | 0x00 (0) | string terminator + +0x019C | 09 00 00 00 | uint32_t | 0x00000009 (9) | length of string + +0x01A0 | 73 74 72 65 61 6D 69 6E | char[9] | streamin | string literal + +0x01A8 | 67 | | g + +0x01A9 | 00 | char | 0x00 (0) | string terminator padding: - +0x01B6 | 00 00 | uint8_t[2] | .. | padding + +0x01AA | 00 00 | uint8_t[2] | .. | padding string (reflection.RPCCall.name): - +0x01B8 | 12 00 00 00 | uint32_t | 0x00000012 (18) | length of string - +0x01BC | 47 65 74 4D 69 6E 4D 61 | char[18] | GetMinMa | string literal - +0x01C4 | 78 48 69 74 50 6F 69 6E | | xHitPoin - +0x01CC | 74 73 | | ts - +0x01CE | 00 | char | 0x00 (0) | string terminator + +0x01AC | 12 00 00 00 | uint32_t | 0x00000012 (18) | length of string + +0x01B0 | 47 65 74 4D 69 6E 4D 61 | char[18] | GetMinMa | string literal + +0x01B8 | 78 48 69 74 50 6F 69 6E | | xHitPoin + +0x01C0 | 74 73 | | ts + +0x01C2 | 00 | char | 0x00 (0) | string terminator table (reflection.RPCCall): - +0x01D0 | 1E FF FF FF | SOffset32 | 0xFFFFFF1E (-226) Loc: +0x02B2 | offset to vtable - +0x01D4 | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: +0x021C | offset to field `name` (string) - +0x01D8 | F8 0C 00 00 | UOffset32 | 0x00000CF8 (3320) Loc: +0x0ED0 | offset to field `request` (table) - +0x01DC | 28 31 00 00 | UOffset32 | 0x00003128 (12584) Loc: +0x3304 | offset to field `response` (table) - +0x01E0 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x01EC | offset to field `attributes` (vector) - +0x01E4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x01E8 | offset to field `documentation` (vector) - -vector (reflection.RPCCall.documentation): - +0x01E8 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x01C4 | 2C FF FF FF | SOffset32 | 0xFFFFFF2C (-212) Loc: +0x0298 | offset to vtable + +0x01C8 | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: +0x0208 | offset to field `name` (string) + +0x01CC | B8 0B 00 00 | UOffset32 | 0x00000BB8 (3000) Loc: +0x0D84 | offset to field `request` (table) + +0x01D0 | F4 2D 00 00 | UOffset32 | 0x00002DF4 (11764) Loc: +0x2FC4 | offset to field `response` (table) + +0x01D4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x01D8 | offset to field `attributes` (vector) vector (reflection.RPCCall.attributes): - +0x01EC | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x01F0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x01F4 | offset to table[0] + +0x01D8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x01DC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x01E0 | offset to table[0] table (reflection.KeyValue): - +0x01F4 | D8 C8 FF FF | SOffset32 | 0xFFFFC8D8 (-14120) Loc: +0x391C | offset to vtable - +0x01F8 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x020C | offset to field `key` (string) - +0x01FC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x0200 | offset to field `value` (string) + +0x01E0 | 18 C9 FF FF | SOffset32 | 0xFFFFC918 (-14056) Loc: +0x38C8 | offset to vtable + +0x01E4 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x01F8 | offset to field `key` (string) + +0x01E8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x01EC | offset to field `value` (string) string (reflection.KeyValue.value): - +0x0200 | 06 00 00 00 | uint32_t | 0x00000006 (6) | length of string - +0x0204 | 63 6C 69 65 6E 74 | char[6] | client | string literal - +0x020A | 00 | char | 0x00 (0) | string terminator + +0x01EC | 06 00 00 00 | uint32_t | 0x00000006 (6) | length of string + +0x01F0 | 63 6C 69 65 6E 74 | char[6] | client | string literal + +0x01F6 | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x020C | 09 00 00 00 | uint32_t | 0x00000009 (9) | length of string - +0x0210 | 73 74 72 65 61 6D 69 6E | char[9] | streamin | string literal - +0x0218 | 67 | | g - +0x0219 | 00 | char | 0x00 (0) | string terminator + +0x01F8 | 09 00 00 00 | uint32_t | 0x00000009 (9) | length of string + +0x01FC | 73 74 72 65 61 6D 69 6E | char[9] | streamin | string literal + +0x0204 | 67 | | g + +0x0205 | 00 | char | 0x00 (0) | string terminator padding: - +0x021A | 00 00 | uint8_t[2] | .. | padding + +0x0206 | 00 00 | uint8_t[2] | .. | padding string (reflection.RPCCall.name): - +0x021C | 0E 00 00 00 | uint32_t | 0x0000000E (14) | length of string - +0x0220 | 47 65 74 4D 61 78 48 69 | char[14] | GetMaxHi | string literal - +0x0228 | 74 50 6F 69 6E 74 | | tPoint - +0x022E | 00 | char | 0x00 (0) | string terminator + +0x0208 | 0E 00 00 00 | uint32_t | 0x0000000E (14) | length of string + +0x020C | 47 65 74 4D 61 78 48 69 | char[14] | GetMaxHi | string literal + +0x0214 | 74 50 6F 69 6E 74 | | tPoint + +0x021A | 00 | char | 0x00 (0) | string terminator table (reflection.RPCCall): - +0x0230 | 7E FF FF FF | SOffset32 | 0xFFFFFF7E (-130) Loc: +0x02B2 | offset to vtable - +0x0234 | 70 00 00 00 | UOffset32 | 0x00000070 (112) Loc: +0x02A4 | offset to field `name` (string) - +0x0238 | CC 30 00 00 | UOffset32 | 0x000030CC (12492) Loc: +0x3304 | offset to field `request` (table) - +0x023C | 94 0C 00 00 | UOffset32 | 0x00000C94 (3220) Loc: +0x0ED0 | offset to field `response` (table) - +0x0240 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x024C | offset to field `attributes` (vector) - +0x0244 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x0248 | offset to field `documentation` (vector) - -vector (reflection.RPCCall.documentation): - +0x0248 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x021C | 84 FF FF FF | SOffset32 | 0xFFFFFF84 (-124) Loc: +0x0298 | offset to vtable + +0x0220 | 68 00 00 00 | UOffset32 | 0x00000068 (104) Loc: +0x0288 | offset to field `name` (string) + +0x0224 | A0 2D 00 00 | UOffset32 | 0x00002DA0 (11680) Loc: +0x2FC4 | offset to field `request` (table) + +0x0228 | 5C 0B 00 00 | UOffset32 | 0x00000B5C (2908) Loc: +0x0D84 | offset to field `response` (table) + +0x022C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x0230 | offset to field `attributes` (vector) vector (reflection.RPCCall.attributes): - +0x024C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) - +0x0250 | 30 00 00 00 | UOffset32 | 0x00000030 (48) Loc: +0x0280 | offset to table[0] - +0x0254 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x0258 | offset to table[1] + +0x0230 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) + +0x0234 | 30 00 00 00 | UOffset32 | 0x00000030 (48) Loc: +0x0264 | offset to table[0] + +0x0238 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x023C | offset to table[1] table (reflection.KeyValue): - +0x0258 | 3C C9 FF FF | SOffset32 | 0xFFFFC93C (-14020) Loc: +0x391C | offset to vtable - +0x025C | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x0270 | offset to field `key` (string) - +0x0260 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x0264 | offset to field `value` (string) + +0x023C | 74 C9 FF FF | SOffset32 | 0xFFFFC974 (-13964) Loc: +0x38C8 | offset to vtable + +0x0240 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x0254 | offset to field `key` (string) + +0x0244 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x0248 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x0264 | 06 00 00 00 | uint32_t | 0x00000006 (6) | length of string - +0x0268 | 73 65 72 76 65 72 | char[6] | server | string literal - +0x026E | 00 | char | 0x00 (0) | string terminator + +0x0248 | 06 00 00 00 | uint32_t | 0x00000006 (6) | length of string + +0x024C | 73 65 72 76 65 72 | char[6] | server | string literal + +0x0252 | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x0270 | 09 00 00 00 | uint32_t | 0x00000009 (9) | length of string - +0x0274 | 73 74 72 65 61 6D 69 6E | char[9] | streamin | string literal - +0x027C | 67 | | g - +0x027D | 00 | char | 0x00 (0) | string terminator + +0x0254 | 09 00 00 00 | uint32_t | 0x00000009 (9) | length of string + +0x0258 | 73 74 72 65 61 6D 69 6E | char[9] | streamin | string literal + +0x0260 | 67 | | g + +0x0261 | 00 | char | 0x00 (0) | string terminator padding: - +0x027E | 00 00 | uint8_t[2] | .. | padding + +0x0262 | 00 00 | uint8_t[2] | .. | padding table (reflection.KeyValue): - +0x0280 | 64 C9 FF FF | SOffset32 | 0xFFFFC964 (-13980) Loc: +0x391C | offset to vtable - +0x0284 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x0294 | offset to field `key` (string) - +0x0288 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x028C | offset to field `value` (string) + +0x0264 | 9C C9 FF FF | SOffset32 | 0xFFFFC99C (-13924) Loc: +0x38C8 | offset to vtable + +0x0268 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x0278 | offset to field `key` (string) + +0x026C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x0270 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x028C | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x0290 | 30 | char[1] | 0 | string literal - +0x0291 | 00 | char | 0x00 (0) | string terminator + +0x0270 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x0274 | 30 | char[1] | 0 | string literal + +0x0275 | 00 | char | 0x00 (0) | string terminator padding: - +0x0292 | 00 00 | uint8_t[2] | .. | padding + +0x0276 | 00 00 | uint8_t[2] | .. | padding string (reflection.KeyValue.key): - +0x0294 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | length of string - +0x0298 | 69 64 65 6D 70 6F 74 65 | char[10] | idempote | string literal - +0x02A0 | 6E 74 | | nt - +0x02A2 | 00 | char | 0x00 (0) | string terminator + +0x0278 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | length of string + +0x027C | 69 64 65 6D 70 6F 74 65 | char[10] | idempote | string literal + +0x0284 | 6E 74 | | nt + +0x0286 | 00 | char | 0x00 (0) | string terminator string (reflection.RPCCall.name): - +0x02A4 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string - +0x02A8 | 52 65 74 72 69 65 76 65 | char[8] | Retrieve | string literal - +0x02B0 | 00 | char | 0x00 (0) | string terminator + +0x0288 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string + +0x028C | 52 65 74 72 69 65 76 65 | char[8] | Retrieve | string literal + +0x0294 | 00 | char | 0x00 (0) | string terminator + +padding: + +0x0295 | 00 00 00 | uint8_t[3] | ... | padding vtable (reflection.RPCCall): - +0x02B2 | 0E 00 | uint16_t | 0x000E (14) | size of this vtable - +0x02B4 | 18 00 | uint16_t | 0x0018 (24) | size of referring table - +0x02B6 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `name` (id: 0) - +0x02B8 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `request` (id: 1) - +0x02BA | 0C 00 | VOffset16 | 0x000C (12) | offset to field `response` (id: 2) - +0x02BC | 10 00 | VOffset16 | 0x0010 (16) | offset to field `attributes` (id: 3) - +0x02BE | 14 00 | VOffset16 | 0x0014 (20) | offset to field `documentation` (id: 4) + +0x0298 | 0C 00 | uint16_t | 0x000C (12) | size of this vtable + +0x029A | 14 00 | uint16_t | 0x0014 (20) | size of referring table + +0x029C | 04 00 | VOffset16 | 0x0004 (4) | offset to field `name` (id: 0) + +0x029E | 08 00 | VOffset16 | 0x0008 (8) | offset to field `request` (id: 1) + +0x02A0 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `response` (id: 2) + +0x02A2 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `attributes` (id: 3) table (reflection.RPCCall): - +0x02C0 | 0E 00 00 00 | SOffset32 | 0x0000000E (14) Loc: +0x02B2 | offset to vtable - +0x02C4 | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: +0x030C | offset to field `name` (string) - +0x02C8 | 08 0C 00 00 | UOffset32 | 0x00000C08 (3080) Loc: +0x0ED0 | offset to field `request` (table) - +0x02CC | 38 30 00 00 | UOffset32 | 0x00003038 (12344) Loc: +0x3304 | offset to field `response` (table) - +0x02D0 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x02DC | offset to field `attributes` (vector) - +0x02D4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x02D8 | offset to field `documentation` (vector) - -vector (reflection.RPCCall.documentation): - +0x02D8 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x02A4 | 0C 00 00 00 | SOffset32 | 0x0000000C (12) Loc: +0x0298 | offset to vtable + +0x02A8 | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: +0x02E8 | offset to field `name` (string) + +0x02AC | D8 0A 00 00 | UOffset32 | 0x00000AD8 (2776) Loc: +0x0D84 | offset to field `request` (table) + +0x02B0 | 14 2D 00 00 | UOffset32 | 0x00002D14 (11540) Loc: +0x2FC4 | offset to field `response` (table) + +0x02B4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x02B8 | offset to field `attributes` (vector) vector (reflection.RPCCall.attributes): - +0x02DC | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x02E0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x02E4 | offset to table[0] + +0x02B8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x02BC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x02C0 | offset to table[0] table (reflection.KeyValue): - +0x02E4 | C8 C9 FF FF | SOffset32 | 0xFFFFC9C8 (-13880) Loc: +0x391C | offset to vtable - +0x02E8 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x02FC | offset to field `key` (string) - +0x02EC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x02F0 | offset to field `value` (string) + +0x02C0 | F8 C9 FF FF | SOffset32 | 0xFFFFC9F8 (-13832) Loc: +0x38C8 | offset to vtable + +0x02C4 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x02D8 | offset to field `key` (string) + +0x02C8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x02CC | offset to field `value` (string) string (reflection.KeyValue.value): - +0x02F0 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string - +0x02F4 | 6E 6F 6E 65 | char[4] | none | string literal - +0x02F8 | 00 | char | 0x00 (0) | string terminator + +0x02CC | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string + +0x02D0 | 6E 6F 6E 65 | char[4] | none | string literal + +0x02D4 | 00 | char | 0x00 (0) | string terminator padding: - +0x02F9 | 00 00 00 | uint8_t[3] | ... | padding + +0x02D5 | 00 00 00 | uint8_t[3] | ... | padding string (reflection.KeyValue.key): - +0x02FC | 09 00 00 00 | uint32_t | 0x00000009 (9) | length of string - +0x0300 | 73 74 72 65 61 6D 69 6E | char[9] | streamin | string literal - +0x0308 | 67 | | g - +0x0309 | 00 | char | 0x00 (0) | string terminator + +0x02D8 | 09 00 00 00 | uint32_t | 0x00000009 (9) | length of string + +0x02DC | 73 74 72 65 61 6D 69 6E | char[9] | streamin | string literal + +0x02E4 | 67 | | g + +0x02E5 | 00 | char | 0x00 (0) | string terminator padding: - +0x030A | 00 00 | uint8_t[2] | .. | padding + +0x02E6 | 00 00 | uint8_t[2] | .. | padding string (reflection.RPCCall.name): - +0x030C | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string - +0x0310 | 53 74 6F 72 65 | char[5] | Store | string literal - +0x0315 | 00 | char | 0x00 (0) | string terminator + +0x02E8 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string + +0x02EC | 53 74 6F 72 65 | char[5] | Store | string literal + +0x02F1 | 00 | char | 0x00 (0) | string terminator padding: - +0x0316 | 00 00 | uint8_t[2] | .. | padding + +0x02F2 | 00 00 | uint8_t[2] | .. | padding table (reflection.Enum): - +0x0318 | 82 FD FF FF | SOffset32 | 0xFFFFFD82 (-638) Loc: +0x0596 | offset to vtable - +0x031C | 00 00 00 | uint8_t[3] | ... | padding - +0x031F | 01 | uint8_t | 0x01 (1) | table field `is_union` (Bool) - +0x0320 | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: +0x0360 | offset to field `name` (string) - +0x0324 | 28 00 00 00 | UOffset32 | 0x00000028 (40) Loc: +0x034C | offset to field `values` (vector) - +0x0328 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x0338 | offset to field `underlying_type` (table) - +0x032C | 08 00 00 00 | UOffset32 | 0x00000008 (8) Loc: +0x0334 | offset to field `documentation` (vector) - +0x0330 | E8 37 00 00 | UOffset32 | 0x000037E8 (14312) Loc: +0x3B18 | offset to field `declaration_file` (string) - -vector (reflection.Enum.documentation): - +0x0334 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x02F4 | D2 FD FF FF | SOffset32 | 0xFFFFFDD2 (-558) Loc: +0x0522 | offset to vtable + +0x02F8 | 00 00 00 | uint8_t[3] | ... | padding + +0x02FB | 01 | uint8_t | 0x01 (1) | table field `is_union` (Bool) + +0x02FC | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: +0x0334 | offset to field `name` (string) + +0x0300 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x0320 | offset to field `values` (vector) + +0x0304 | 08 00 00 00 | UOffset32 | 0x00000008 (8) Loc: +0x030C | offset to field `underlying_type` (table) + +0x0308 | DC 33 00 00 | UOffset32 | 0x000033DC (13276) Loc: +0x36E4 | offset to field `declaration_file` (string) table (reflection.Type): - +0x0338 | 7C C9 FF FF | SOffset32 | 0xFFFFC97C (-13956) Loc: +0x39BC | offset to vtable - +0x033C | 00 00 00 | uint8_t[3] | ... | padding - +0x033F | 01 | uint8_t | 0x01 (1) | table field `base_type` (Byte) - +0x0340 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `index` (Int) - +0x0344 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) - +0x0348 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x030C | 60 CD FF FF | SOffset32 | 0xFFFFCD60 (-12960) Loc: +0x35AC | offset to vtable + +0x0310 | 00 00 00 | uint8_t[3] | ... | padding + +0x0313 | 01 | uint8_t | 0x01 (1) | table field `base_type` (Byte) + +0x0314 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `index` (Int) + +0x0318 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) + +0x031C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) vector (reflection.Enum.values): - +0x034C | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of vector (# items) - +0x0350 | E0 00 00 00 | UOffset32 | 0x000000E0 (224) Loc: +0x0430 | offset to table[0] - +0x0354 | A4 00 00 00 | UOffset32 | 0x000000A4 (164) Loc: +0x03F8 | offset to table[1] - +0x0358 | 68 00 00 00 | UOffset32 | 0x00000068 (104) Loc: +0x03C0 | offset to table[2] - +0x035C | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: +0x0388 | offset to table[3] + +0x0320 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of vector (# items) + +0x0324 | C8 00 00 00 | UOffset32 | 0x000000C8 (200) Loc: +0x03EC | offset to table[0] + +0x0328 | 94 00 00 00 | UOffset32 | 0x00000094 (148) Loc: +0x03BC | offset to table[1] + +0x032C | 60 00 00 00 | UOffset32 | 0x00000060 (96) Loc: +0x038C | offset to table[2] + +0x0330 | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: +0x035C | offset to table[3] string (reflection.Enum.name): - +0x0360 | 22 00 00 00 | uint32_t | 0x00000022 (34) | length of string - +0x0364 | 4D 79 47 61 6D 65 2E 45 | char[34] | MyGame.E | string literal - +0x036C | 78 61 6D 70 6C 65 2E 41 | | xample.A - +0x0374 | 6E 79 41 6D 62 69 67 75 | | nyAmbigu - +0x037C | 6F 75 73 41 6C 69 61 73 | | ousAlias - +0x0384 | 65 73 | | es - +0x0386 | 00 | char | 0x00 (0) | string terminator + +0x0334 | 22 00 00 00 | uint32_t | 0x00000022 (34) | length of string + +0x0338 | 4D 79 47 61 6D 65 2E 45 | char[34] | MyGame.E | string literal + +0x0340 | 78 61 6D 70 6C 65 2E 41 | | xample.A + +0x0348 | 6E 79 41 6D 62 69 67 75 | | nyAmbigu + +0x0350 | 6F 75 73 41 6C 69 61 73 | | ousAlias + +0x0358 | 65 73 | | es + +0x035A | 00 | char | 0x00 (0) | string terminator table (reflection.EnumVal): - +0x0388 | 7E F8 FF FF | SOffset32 | 0xFFFFF87E (-1922) Loc: +0x0B0A | offset to vtable - +0x038C | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: +0x03B8 | offset to field `name` (string) - +0x0390 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x03A8 | offset to field `union_type` (table) - +0x0394 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x03A4 | offset to field `documentation` (vector) - +0x0398 | 03 00 00 00 00 00 00 00 | int64_t | 0x0000000000000003 (3) | table field `value` (Long) - +0x03A0 | 00 00 00 00 | uint8_t[4] | .... | padding - -vector (reflection.EnumVal.documentation): - +0x03A4 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x035C | 0C FB FF FF | SOffset32 | 0xFFFFFB0C (-1268) Loc: +0x0850 | offset to vtable + +0x0360 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x0384 | offset to field `name` (string) + +0x0364 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x0374 | offset to field `union_type` (table) + +0x0368 | 03 00 00 00 00 00 00 00 | int64_t | 0x0000000000000003 (3) | table field `value` (Long) + +0x0370 | 00 00 00 00 | uint8_t[4] | .... | padding table (reflection.Type): - +0x03A8 | 38 C7 FF FF | SOffset32 | 0xFFFFC738 (-14536) Loc: +0x3C70 | offset to vtable - +0x03AC | 00 00 00 | uint8_t[3] | ... | padding - +0x03AF | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) - +0x03B0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `index` (Int) - +0x03B4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x0374 | 5C CB FF FF | SOffset32 | 0xFFFFCB5C (-13476) Loc: +0x3818 | offset to vtable + +0x0378 | 00 00 00 | uint8_t[3] | ... | padding + +0x037B | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) + +0x037C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `index` (Int) + +0x0380 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.EnumVal.name): - +0x03B8 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x03BC | 4D 33 | char[2] | M3 | string literal - +0x03BE | 00 | char | 0x00 (0) | string terminator + +0x0384 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x0388 | 4D 33 | char[2] | M3 | string literal + +0x038A | 00 | char | 0x00 (0) | string terminator table (reflection.EnumVal): - +0x03C0 | B6 F8 FF FF | SOffset32 | 0xFFFFF8B6 (-1866) Loc: +0x0B0A | offset to vtable - +0x03C4 | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: +0x03F0 | offset to field `name` (string) - +0x03C8 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x03E0 | offset to field `union_type` (table) - +0x03CC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x03DC | offset to field `documentation` (vector) - +0x03D0 | 02 00 00 00 00 00 00 00 | int64_t | 0x0000000000000002 (2) | table field `value` (Long) - +0x03D8 | 00 00 00 00 | uint8_t[4] | .... | padding - -vector (reflection.EnumVal.documentation): - +0x03DC | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x038C | 3C FB FF FF | SOffset32 | 0xFFFFFB3C (-1220) Loc: +0x0850 | offset to vtable + +0x0390 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x03B4 | offset to field `name` (string) + +0x0394 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x03A4 | offset to field `union_type` (table) + +0x0398 | 02 00 00 00 00 00 00 00 | int64_t | 0x0000000000000002 (2) | table field `value` (Long) + +0x03A0 | 00 00 00 00 | uint8_t[4] | .... | padding table (reflection.Type): - +0x03E0 | 70 C7 FF FF | SOffset32 | 0xFFFFC770 (-14480) Loc: +0x3C70 | offset to vtable - +0x03E4 | 00 00 00 | uint8_t[3] | ... | padding - +0x03E7 | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) - +0x03E8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `index` (Int) - +0x03EC | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x03A4 | 8C CB FF FF | SOffset32 | 0xFFFFCB8C (-13428) Loc: +0x3818 | offset to vtable + +0x03A8 | 00 00 00 | uint8_t[3] | ... | padding + +0x03AB | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) + +0x03AC | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `index` (Int) + +0x03B0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.EnumVal.name): - +0x03F0 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x03F4 | 4D 32 | char[2] | M2 | string literal - +0x03F6 | 00 | char | 0x00 (0) | string terminator + +0x03B4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x03B8 | 4D 32 | char[2] | M2 | string literal + +0x03BA | 00 | char | 0x00 (0) | string terminator table (reflection.EnumVal): - +0x03F8 | EE F8 FF FF | SOffset32 | 0xFFFFF8EE (-1810) Loc: +0x0B0A | offset to vtable - +0x03FC | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: +0x0428 | offset to field `name` (string) - +0x0400 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x0418 | offset to field `union_type` (table) - +0x0404 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x0414 | offset to field `documentation` (vector) - +0x0408 | 01 00 00 00 00 00 00 00 | int64_t | 0x0000000000000001 (1) | table field `value` (Long) - +0x0410 | 00 00 00 00 | uint8_t[4] | .... | padding - -vector (reflection.EnumVal.documentation): - +0x0414 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x03BC | 6C FB FF FF | SOffset32 | 0xFFFFFB6C (-1172) Loc: +0x0850 | offset to vtable + +0x03C0 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x03E4 | offset to field `name` (string) + +0x03C4 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x03D4 | offset to field `union_type` (table) + +0x03C8 | 01 00 00 00 00 00 00 00 | int64_t | 0x0000000000000001 (1) | table field `value` (Long) + +0x03D0 | 00 00 00 00 | uint8_t[4] | .... | padding table (reflection.Type): - +0x0418 | A8 C7 FF FF | SOffset32 | 0xFFFFC7A8 (-14424) Loc: +0x3C70 | offset to vtable - +0x041C | 00 00 00 | uint8_t[3] | ... | padding - +0x041F | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) - +0x0420 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `index` (Int) - +0x0424 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x03D4 | BC CB FF FF | SOffset32 | 0xFFFFCBBC (-13380) Loc: +0x3818 | offset to vtable + +0x03D8 | 00 00 00 | uint8_t[3] | ... | padding + +0x03DB | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) + +0x03DC | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `index` (Int) + +0x03E0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.EnumVal.name): - +0x0428 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x042C | 4D 31 | char[2] | M1 | string literal - +0x042E | 00 | char | 0x00 (0) | string terminator + +0x03E4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x03E8 | 4D 31 | char[2] | M1 | string literal + +0x03EA | 00 | char | 0x00 (0) | string terminator table (reflection.EnumVal): - +0x0430 | 72 F8 FF FF | SOffset32 | 0xFFFFF872 (-1934) Loc: +0x0BBE | offset to vtable - +0x0434 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: +0x0450 | offset to field `name` (string) - +0x0438 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x0444 | offset to field `union_type` (table) - +0x043C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x0440 | offset to field `documentation` (vector) - -vector (reflection.EnumVal.documentation): - +0x0440 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x03EC | 0C F9 FF FF | SOffset32 | 0xFFFFF90C (-1780) Loc: +0x0AE0 | offset to vtable + +0x03F0 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x0404 | offset to field `name` (string) + +0x03F4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x03F8 | offset to field `union_type` (table) table (reflection.Type): - +0x0444 | 64 F8 FF FF | SOffset32 | 0xFFFFF864 (-1948) Loc: +0x0BE0 | offset to vtable - +0x0448 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) - +0x044C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x03F8 | 00 F9 FF FF | SOffset32 | 0xFFFFF900 (-1792) Loc: +0x0AF8 | offset to vtable + +0x03FC | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) + +0x0400 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.EnumVal.name): - +0x0450 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string - +0x0454 | 4E 4F 4E 45 | char[4] | NONE | string literal - +0x0458 | 00 | char | 0x00 (0) | string terminator + +0x0404 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string + +0x0408 | 4E 4F 4E 45 | char[4] | NONE | string literal + +0x040C | 00 | char | 0x00 (0) | string terminator padding: - +0x0459 | 00 00 00 | uint8_t[3] | ... | padding + +0x040D | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Enum): - +0x045C | C6 FE FF FF | SOffset32 | 0xFFFFFEC6 (-314) Loc: +0x0596 | offset to vtable - +0x0460 | 00 00 00 | uint8_t[3] | ... | padding - +0x0463 | 01 | uint8_t | 0x01 (1) | table field `is_union` (Bool) - +0x0464 | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: +0x04A4 | offset to field `name` (string) - +0x0468 | 28 00 00 00 | UOffset32 | 0x00000028 (40) Loc: +0x0490 | offset to field `values` (vector) - +0x046C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x047C | offset to field `underlying_type` (table) - +0x0470 | 08 00 00 00 | UOffset32 | 0x00000008 (8) Loc: +0x0478 | offset to field `documentation` (vector) - +0x0474 | A4 36 00 00 | UOffset32 | 0x000036A4 (13988) Loc: +0x3B18 | offset to field `declaration_file` (string) - -vector (reflection.Enum.documentation): - +0x0478 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x0410 | EE FE FF FF | SOffset32 | 0xFFFFFEEE (-274) Loc: +0x0522 | offset to vtable + +0x0414 | 00 00 00 | uint8_t[3] | ... | padding + +0x0417 | 01 | uint8_t | 0x01 (1) | table field `is_union` (Bool) + +0x0418 | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: +0x0450 | offset to field `name` (string) + +0x041C | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x043C | offset to field `values` (vector) + +0x0420 | 08 00 00 00 | UOffset32 | 0x00000008 (8) Loc: +0x0428 | offset to field `underlying_type` (table) + +0x0424 | C0 32 00 00 | UOffset32 | 0x000032C0 (12992) Loc: +0x36E4 | offset to field `declaration_file` (string) table (reflection.Type): - +0x047C | C0 CA FF FF | SOffset32 | 0xFFFFCAC0 (-13632) Loc: +0x39BC | offset to vtable - +0x0480 | 00 00 00 | uint8_t[3] | ... | padding - +0x0483 | 01 | uint8_t | 0x01 (1) | table field `base_type` (Byte) - +0x0484 | 02 00 00 00 | uint32_t | 0x00000002 (2) | table field `index` (Int) - +0x0488 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) - +0x048C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x0428 | 7C CE FF FF | SOffset32 | 0xFFFFCE7C (-12676) Loc: +0x35AC | offset to vtable + +0x042C | 00 00 00 | uint8_t[3] | ... | padding + +0x042F | 01 | uint8_t | 0x01 (1) | table field `base_type` (Byte) + +0x0430 | 02 00 00 00 | uint32_t | 0x00000002 (2) | table field `index` (Int) + +0x0434 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) + +0x0438 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) vector (reflection.Enum.values): - +0x0490 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of vector (# items) - +0x0494 | D8 00 00 00 | UOffset32 | 0x000000D8 (216) Loc: +0x056C | offset to table[0] - +0x0498 | A0 00 00 00 | UOffset32 | 0x000000A0 (160) Loc: +0x0538 | offset to table[1] - +0x049C | 64 00 00 00 | UOffset32 | 0x00000064 (100) Loc: +0x0500 | offset to table[2] - +0x04A0 | 28 00 00 00 | UOffset32 | 0x00000028 (40) Loc: +0x04C8 | offset to table[3] + +0x043C | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of vector (# items) + +0x0440 | C0 00 00 00 | UOffset32 | 0x000000C0 (192) Loc: +0x0500 | offset to table[0] + +0x0444 | 90 00 00 00 | UOffset32 | 0x00000090 (144) Loc: +0x04D4 | offset to table[1] + +0x0448 | 5C 00 00 00 | UOffset32 | 0x0000005C (92) Loc: +0x04A4 | offset to table[2] + +0x044C | 28 00 00 00 | UOffset32 | 0x00000028 (40) Loc: +0x0474 | offset to table[3] string (reflection.Enum.name): - +0x04A4 | 1F 00 00 00 | uint32_t | 0x0000001F (31) | length of string - +0x04A8 | 4D 79 47 61 6D 65 2E 45 | char[31] | MyGame.E | string literal - +0x04B0 | 78 61 6D 70 6C 65 2E 41 | | xample.A - +0x04B8 | 6E 79 55 6E 69 71 75 65 | | nyUnique - +0x04C0 | 41 6C 69 61 73 65 73 | | Aliases - +0x04C7 | 00 | char | 0x00 (0) | string terminator + +0x0450 | 1F 00 00 00 | uint32_t | 0x0000001F (31) | length of string + +0x0454 | 4D 79 47 61 6D 65 2E 45 | char[31] | MyGame.E | string literal + +0x045C | 78 61 6D 70 6C 65 2E 41 | | xample.A + +0x0464 | 6E 79 55 6E 69 71 75 65 | | nyUnique + +0x046C | 41 6C 69 61 73 65 73 | | Aliases + +0x0473 | 00 | char | 0x00 (0) | string terminator table (reflection.EnumVal): - +0x04C8 | BE F9 FF FF | SOffset32 | 0xFFFFF9BE (-1602) Loc: +0x0B0A | offset to vtable - +0x04CC | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: +0x04F8 | offset to field `name` (string) - +0x04D0 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x04E8 | offset to field `union_type` (table) - +0x04D4 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x04E4 | offset to field `documentation` (vector) - +0x04D8 | 03 00 00 00 00 00 00 00 | int64_t | 0x0000000000000003 (3) | table field `value` (Long) - +0x04E0 | 00 00 00 00 | uint8_t[4] | .... | padding - -vector (reflection.EnumVal.documentation): - +0x04E4 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x0474 | 24 FC FF FF | SOffset32 | 0xFFFFFC24 (-988) Loc: +0x0850 | offset to vtable + +0x0478 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x049C | offset to field `name` (string) + +0x047C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x048C | offset to field `union_type` (table) + +0x0480 | 03 00 00 00 00 00 00 00 | int64_t | 0x0000000000000003 (3) | table field `value` (Long) + +0x0488 | 00 00 00 00 | uint8_t[4] | .... | padding table (reflection.Type): - +0x04E8 | 78 C8 FF FF | SOffset32 | 0xFFFFC878 (-14216) Loc: +0x3C70 | offset to vtable - +0x04EC | 00 00 00 | uint8_t[3] | ... | padding - +0x04EF | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) - +0x04F0 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | table field `index` (Int) - +0x04F4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x048C | 74 CC FF FF | SOffset32 | 0xFFFFCC74 (-13196) Loc: +0x3818 | offset to vtable + +0x0490 | 00 00 00 | uint8_t[3] | ... | padding + +0x0493 | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) + +0x0494 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | table field `index` (Int) + +0x0498 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.EnumVal.name): - +0x04F8 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x04FC | 4D 32 | char[2] | M2 | string literal - +0x04FE | 00 | char | 0x00 (0) | string terminator + +0x049C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x04A0 | 4D 32 | char[2] | M2 | string literal + +0x04A2 | 00 | char | 0x00 (0) | string terminator table (reflection.EnumVal): - +0x0500 | F6 F9 FF FF | SOffset32 | 0xFFFFF9F6 (-1546) Loc: +0x0B0A | offset to vtable - +0x0504 | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: +0x0530 | offset to field `name` (string) - +0x0508 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x0520 | offset to field `union_type` (table) - +0x050C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x051C | offset to field `documentation` (vector) - +0x0510 | 02 00 00 00 00 00 00 00 | int64_t | 0x0000000000000002 (2) | table field `value` (Long) - +0x0518 | 00 00 00 00 | uint8_t[4] | .... | padding - -vector (reflection.EnumVal.documentation): - +0x051C | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x04A4 | 54 FC FF FF | SOffset32 | 0xFFFFFC54 (-940) Loc: +0x0850 | offset to vtable + +0x04A8 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x04CC | offset to field `name` (string) + +0x04AC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x04BC | offset to field `union_type` (table) + +0x04B0 | 02 00 00 00 00 00 00 00 | int64_t | 0x0000000000000002 (2) | table field `value` (Long) + +0x04B8 | 00 00 00 00 | uint8_t[4] | .... | padding table (reflection.Type): - +0x0520 | B0 C8 FF FF | SOffset32 | 0xFFFFC8B0 (-14160) Loc: +0x3C70 | offset to vtable - +0x0524 | 00 00 00 | uint8_t[3] | ... | padding - +0x0527 | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) - +0x0528 | 07 00 00 00 | uint32_t | 0x00000007 (7) | table field `index` (Int) - +0x052C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x04BC | A4 CC FF FF | SOffset32 | 0xFFFFCCA4 (-13148) Loc: +0x3818 | offset to vtable + +0x04C0 | 00 00 00 | uint8_t[3] | ... | padding + +0x04C3 | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) + +0x04C4 | 07 00 00 00 | uint32_t | 0x00000007 (7) | table field `index` (Int) + +0x04C8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.EnumVal.name): - +0x0530 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x0534 | 54 53 | char[2] | TS | string literal - +0x0536 | 00 | char | 0x00 (0) | string terminator + +0x04CC | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x04D0 | 54 53 | char[2] | TS | string literal + +0x04D2 | 00 | char | 0x00 (0) | string terminator table (reflection.EnumVal): - +0x0538 | 1E FC FF FF | SOffset32 | 0xFFFFFC1E (-994) Loc: +0x091A | offset to vtable - +0x053C | 28 00 00 00 | UOffset32 | 0x00000028 (40) Loc: +0x0564 | offset to field `name` (string) - +0x0540 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x0554 | offset to field `union_type` (table) - +0x0544 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x0550 | offset to field `documentation` (vector) - +0x0548 | 01 00 00 00 00 00 00 00 | int64_t | 0x0000000000000001 (1) | table field `value` (Long) - -vector (reflection.EnumVal.documentation): - +0x0550 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x04D4 | 94 FA FF FF | SOffset32 | 0xFFFFFA94 (-1388) Loc: +0x0A40 | offset to vtable + +0x04D8 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x04F8 | offset to field `name` (string) + +0x04DC | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x04E8 | offset to field `union_type` (table) + +0x04E0 | 01 00 00 00 00 00 00 00 | int64_t | 0x0000000000000001 (1) | table field `value` (Long) table (reflection.Type): - +0x0554 | E4 C8 FF FF | SOffset32 | 0xFFFFC8E4 (-14108) Loc: +0x3C70 | offset to vtable - +0x0558 | 00 00 00 | uint8_t[3] | ... | padding - +0x055B | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) - +0x055C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `index` (Int) - +0x0560 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x04E8 | D0 CC FF FF | SOffset32 | 0xFFFFCCD0 (-13104) Loc: +0x3818 | offset to vtable + +0x04EC | 00 00 00 | uint8_t[3] | ... | padding + +0x04EF | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) + +0x04F0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `index` (Int) + +0x04F4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.EnumVal.name): - +0x0564 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x0568 | 4D | char[1] | M | string literal - +0x0569 | 00 | char | 0x00 (0) | string terminator + +0x04F8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x04FC | 4D | char[1] | M | string literal + +0x04FD | 00 | char | 0x00 (0) | string terminator padding: - +0x056A | 00 00 | uint8_t[2] | .. | padding + +0x04FE | 00 00 | uint8_t[2] | .. | padding table (reflection.EnumVal): - +0x056C | AE F9 FF FF | SOffset32 | 0xFFFFF9AE (-1618) Loc: +0x0BBE | offset to vtable - +0x0570 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: +0x058C | offset to field `name` (string) - +0x0574 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x0580 | offset to field `union_type` (table) - +0x0578 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x057C | offset to field `documentation` (vector) - -vector (reflection.EnumVal.documentation): - +0x057C | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x0500 | 20 FA FF FF | SOffset32 | 0xFFFFFA20 (-1504) Loc: +0x0AE0 | offset to vtable + +0x0504 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x0518 | offset to field `name` (string) + +0x0508 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x050C | offset to field `union_type` (table) table (reflection.Type): - +0x0580 | A0 F9 FF FF | SOffset32 | 0xFFFFF9A0 (-1632) Loc: +0x0BE0 | offset to vtable - +0x0584 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) - +0x0588 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x050C | 14 FA FF FF | SOffset32 | 0xFFFFFA14 (-1516) Loc: +0x0AF8 | offset to vtable + +0x0510 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) + +0x0514 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.EnumVal.name): - +0x058C | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string - +0x0590 | 4E 4F 4E 45 | char[4] | NONE | string literal - +0x0594 | 00 | char | 0x00 (0) | string terminator + +0x0518 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string + +0x051C | 4E 4F 4E 45 | char[4] | NONE | string literal + +0x0520 | 00 | char | 0x00 (0) | string terminator vtable (reflection.Enum): - +0x0596 | 12 00 | uint16_t | 0x0012 (18) | size of this vtable - +0x0598 | 1C 00 | uint16_t | 0x001C (28) | size of referring table - +0x059A | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0) - +0x059C | 0C 00 | VOffset16 | 0x000C (12) | offset to field `values` (id: 1) - +0x059E | 07 00 | VOffset16 | 0x0007 (7) | offset to field `is_union` (id: 2) - +0x05A0 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `underlying_type` (id: 3) - +0x05A2 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `attributes` (id: 4) (Vector) - +0x05A4 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `documentation` (id: 5) - +0x05A6 | 18 00 | VOffset16 | 0x0018 (24) | offset to field `declaration_file` (id: 6) + +0x0522 | 12 00 | uint16_t | 0x0012 (18) | size of this vtable + +0x0524 | 18 00 | uint16_t | 0x0018 (24) | size of referring table + +0x0526 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0) + +0x0528 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `values` (id: 1) + +0x052A | 07 00 | VOffset16 | 0x0007 (7) | offset to field `is_union` (id: 2) + +0x052C | 10 00 | VOffset16 | 0x0010 (16) | offset to field `underlying_type` (id: 3) + +0x052E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `attributes` (id: 4) (Vector) + +0x0530 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `documentation` (id: 5) (Vector) + +0x0532 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `declaration_file` (id: 6) table (reflection.Enum): - +0x05A8 | 12 00 00 00 | SOffset32 | 0x00000012 (18) Loc: +0x0596 | offset to vtable - +0x05AC | 00 00 00 | uint8_t[3] | ... | padding - +0x05AF | 01 | uint8_t | 0x01 (1) | table field `is_union` (Bool) - +0x05B0 | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: +0x05F0 | offset to field `name` (string) - +0x05B4 | 28 00 00 00 | UOffset32 | 0x00000028 (40) Loc: +0x05DC | offset to field `values` (vector) - +0x05B8 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x05C8 | offset to field `underlying_type` (table) - +0x05BC | 08 00 00 00 | UOffset32 | 0x00000008 (8) Loc: +0x05C4 | offset to field `documentation` (vector) - +0x05C0 | 58 35 00 00 | UOffset32 | 0x00003558 (13656) Loc: +0x3B18 | offset to field `declaration_file` (string) - -vector (reflection.Enum.documentation): - +0x05C4 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x0534 | 12 00 00 00 | SOffset32 | 0x00000012 (18) Loc: +0x0522 | offset to vtable + +0x0538 | 00 00 00 | uint8_t[3] | ... | padding + +0x053B | 01 | uint8_t | 0x01 (1) | table field `is_union` (Bool) + +0x053C | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: +0x0574 | offset to field `name` (string) + +0x0540 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x0560 | offset to field `values` (vector) + +0x0544 | 08 00 00 00 | UOffset32 | 0x00000008 (8) Loc: +0x054C | offset to field `underlying_type` (table) + +0x0548 | 9C 31 00 00 | UOffset32 | 0x0000319C (12700) Loc: +0x36E4 | offset to field `declaration_file` (string) table (reflection.Type): - +0x05C8 | 0C CC FF FF | SOffset32 | 0xFFFFCC0C (-13300) Loc: +0x39BC | offset to vtable - +0x05CC | 00 00 00 | uint8_t[3] | ... | padding - +0x05CF | 01 | uint8_t | 0x01 (1) | table field `base_type` (Byte) - +0x05D0 | 00 00 00 00 | uint32_t | 0x00000000 (0) | table field `index` (Int) - +0x05D4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) - +0x05D8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x054C | A0 CF FF FF | SOffset32 | 0xFFFFCFA0 (-12384) Loc: +0x35AC | offset to vtable + +0x0550 | 00 00 00 | uint8_t[3] | ... | padding + +0x0553 | 01 | uint8_t | 0x01 (1) | table field `base_type` (Byte) + +0x0554 | 00 00 00 00 | uint32_t | 0x00000000 (0) | table field `index` (Int) + +0x0558 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) + +0x055C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) vector (reflection.Enum.values): - +0x05DC | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of vector (# items) - +0x05E0 | F0 00 00 00 | UOffset32 | 0x000000F0 (240) Loc: +0x06D0 | offset to table[0] - +0x05E4 | B4 00 00 00 | UOffset32 | 0x000000B4 (180) Loc: +0x0698 | offset to table[1] - +0x05E8 | 68 00 00 00 | UOffset32 | 0x00000068 (104) Loc: +0x0650 | offset to table[2] - +0x05EC | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: +0x0608 | offset to table[3] + +0x0560 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of vector (# items) + +0x0564 | D8 00 00 00 | UOffset32 | 0x000000D8 (216) Loc: +0x063C | offset to table[0] + +0x0568 | A4 00 00 00 | UOffset32 | 0x000000A4 (164) Loc: +0x060C | offset to table[1] + +0x056C | 60 00 00 00 | UOffset32 | 0x00000060 (96) Loc: +0x05CC | offset to table[2] + +0x0570 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: +0x058C | offset to table[3] string (reflection.Enum.name): - +0x05F0 | 12 00 00 00 | uint32_t | 0x00000012 (18) | length of string - +0x05F4 | 4D 79 47 61 6D 65 2E 45 | char[18] | MyGame.E | string literal - +0x05FC | 78 61 6D 70 6C 65 2E 41 | | xample.A - +0x0604 | 6E 79 | | ny - +0x0606 | 00 | char | 0x00 (0) | string terminator + +0x0574 | 12 00 00 00 | uint32_t | 0x00000012 (18) | length of string + +0x0578 | 4D 79 47 61 6D 65 2E 45 | char[18] | MyGame.E | string literal + +0x0580 | 78 61 6D 70 6C 65 2E 41 | | xample.A + +0x0588 | 6E 79 | | ny + +0x058A | 00 | char | 0x00 (0) | string terminator table (reflection.EnumVal): - +0x0608 | EE FC FF FF | SOffset32 | 0xFFFFFCEE (-786) Loc: +0x091A | offset to vtable - +0x060C | 28 00 00 00 | UOffset32 | 0x00000028 (40) Loc: +0x0634 | offset to field `name` (string) - +0x0610 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x0624 | offset to field `union_type` (table) - +0x0614 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x0620 | offset to field `documentation` (vector) - +0x0618 | 03 00 00 00 00 00 00 00 | int64_t | 0x0000000000000003 (3) | table field `value` (Long) - -vector (reflection.EnumVal.documentation): - +0x0620 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x058C | 4C FB FF FF | SOffset32 | 0xFFFFFB4C (-1204) Loc: +0x0A40 | offset to vtable + +0x0590 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x05B0 | offset to field `name` (string) + +0x0594 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x05A0 | offset to field `union_type` (table) + +0x0598 | 03 00 00 00 00 00 00 00 | int64_t | 0x0000000000000003 (3) | table field `value` (Long) table (reflection.Type): - +0x0624 | B4 C9 FF FF | SOffset32 | 0xFFFFC9B4 (-13900) Loc: +0x3C70 | offset to vtable - +0x0628 | 00 00 00 | uint8_t[3] | ... | padding - +0x062B | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) - +0x062C | 0A 00 00 00 | uint32_t | 0x0000000A (10) | table field `index` (Int) - +0x0630 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x05A0 | 88 CD FF FF | SOffset32 | 0xFFFFCD88 (-12920) Loc: +0x3818 | offset to vtable + +0x05A4 | 00 00 00 | uint8_t[3] | ... | padding + +0x05A7 | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) + +0x05A8 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | table field `index` (Int) + +0x05AC | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.EnumVal.name): - +0x0634 | 17 00 00 00 | uint32_t | 0x00000017 (23) | length of string - +0x0638 | 4D 79 47 61 6D 65 5F 45 | char[23] | MyGame_E | string literal - +0x0640 | 78 61 6D 70 6C 65 32 5F | | xample2_ - +0x0648 | 4D 6F 6E 73 74 65 72 | | Monster - +0x064F | 00 | char | 0x00 (0) | string terminator + +0x05B0 | 17 00 00 00 | uint32_t | 0x00000017 (23) | length of string + +0x05B4 | 4D 79 47 61 6D 65 5F 45 | char[23] | MyGame_E | string literal + +0x05BC | 78 61 6D 70 6C 65 32 5F | | xample2_ + +0x05C4 | 4D 6F 6E 73 74 65 72 | | Monster + +0x05CB | 00 | char | 0x00 (0) | string terminator table (reflection.EnumVal): - +0x0650 | 36 FD FF FF | SOffset32 | 0xFFFFFD36 (-714) Loc: +0x091A | offset to vtable - +0x0654 | 28 00 00 00 | UOffset32 | 0x00000028 (40) Loc: +0x067C | offset to field `name` (string) - +0x0658 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x066C | offset to field `union_type` (table) - +0x065C | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x0668 | offset to field `documentation` (vector) - +0x0660 | 02 00 00 00 00 00 00 00 | int64_t | 0x0000000000000002 (2) | table field `value` (Long) - -vector (reflection.EnumVal.documentation): - +0x0668 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x05CC | 8C FB FF FF | SOffset32 | 0xFFFFFB8C (-1140) Loc: +0x0A40 | offset to vtable + +0x05D0 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x05F0 | offset to field `name` (string) + +0x05D4 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x05E0 | offset to field `union_type` (table) + +0x05D8 | 02 00 00 00 00 00 00 00 | int64_t | 0x0000000000000002 (2) | table field `value` (Long) table (reflection.Type): - +0x066C | FC C9 FF FF | SOffset32 | 0xFFFFC9FC (-13828) Loc: +0x3C70 | offset to vtable - +0x0670 | 00 00 00 | uint8_t[3] | ... | padding - +0x0673 | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) - +0x0674 | 07 00 00 00 | uint32_t | 0x00000007 (7) | table field `index` (Int) - +0x0678 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x05E0 | C8 CD FF FF | SOffset32 | 0xFFFFCDC8 (-12856) Loc: +0x3818 | offset to vtable + +0x05E4 | 00 00 00 | uint8_t[3] | ... | padding + +0x05E7 | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) + +0x05E8 | 07 00 00 00 | uint32_t | 0x00000007 (7) | table field `index` (Int) + +0x05EC | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.EnumVal.name): - +0x067C | 17 00 00 00 | uint32_t | 0x00000017 (23) | length of string - +0x0680 | 54 65 73 74 53 69 6D 70 | char[23] | TestSimp | string literal - +0x0688 | 6C 65 54 61 62 6C 65 57 | | leTableW - +0x0690 | 69 74 68 45 6E 75 6D | | ithEnum - +0x0697 | 00 | char | 0x00 (0) | string terminator + +0x05F0 | 17 00 00 00 | uint32_t | 0x00000017 (23) | length of string + +0x05F4 | 54 65 73 74 53 69 6D 70 | char[23] | TestSimp | string literal + +0x05FC | 6C 65 54 61 62 6C 65 57 | | leTableW + +0x0604 | 69 74 68 45 6E 75 6D | | ithEnum + +0x060B | 00 | char | 0x00 (0) | string terminator table (reflection.EnumVal): - +0x0698 | 7E FD FF FF | SOffset32 | 0xFFFFFD7E (-642) Loc: +0x091A | offset to vtable - +0x069C | 28 00 00 00 | UOffset32 | 0x00000028 (40) Loc: +0x06C4 | offset to field `name` (string) - +0x06A0 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x06B4 | offset to field `union_type` (table) - +0x06A4 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x06B0 | offset to field `documentation` (vector) - +0x06A8 | 01 00 00 00 00 00 00 00 | int64_t | 0x0000000000000001 (1) | table field `value` (Long) - -vector (reflection.EnumVal.documentation): - +0x06B0 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x060C | CC FB FF FF | SOffset32 | 0xFFFFFBCC (-1076) Loc: +0x0A40 | offset to vtable + +0x0610 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x0630 | offset to field `name` (string) + +0x0614 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x0620 | offset to field `union_type` (table) + +0x0618 | 01 00 00 00 00 00 00 00 | int64_t | 0x0000000000000001 (1) | table field `value` (Long) table (reflection.Type): - +0x06B4 | 44 CA FF FF | SOffset32 | 0xFFFFCA44 (-13756) Loc: +0x3C70 | offset to vtable - +0x06B8 | 00 00 00 | uint8_t[3] | ... | padding - +0x06BB | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) - +0x06BC | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `index` (Int) - +0x06C0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x0620 | 08 CE FF FF | SOffset32 | 0xFFFFCE08 (-12792) Loc: +0x3818 | offset to vtable + +0x0624 | 00 00 00 | uint8_t[3] | ... | padding + +0x0627 | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) + +0x0628 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `index` (Int) + +0x062C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.EnumVal.name): - +0x06C4 | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string - +0x06C8 | 4D 6F 6E 73 74 65 72 | char[7] | Monster | string literal - +0x06CF | 00 | char | 0x00 (0) | string terminator + +0x0630 | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string + +0x0634 | 4D 6F 6E 73 74 65 72 | char[7] | Monster | string literal + +0x063B | 00 | char | 0x00 (0) | string terminator table (reflection.EnumVal): - +0x06D0 | 12 FB FF FF | SOffset32 | 0xFFFFFB12 (-1262) Loc: +0x0BBE | offset to vtable - +0x06D4 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: +0x06F0 | offset to field `name` (string) - +0x06D8 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x06E4 | offset to field `union_type` (table) - +0x06DC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x06E0 | offset to field `documentation` (vector) - -vector (reflection.EnumVal.documentation): - +0x06E0 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x063C | 5C FB FF FF | SOffset32 | 0xFFFFFB5C (-1188) Loc: +0x0AE0 | offset to vtable + +0x0640 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x0654 | offset to field `name` (string) + +0x0644 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x0648 | offset to field `union_type` (table) table (reflection.Type): - +0x06E4 | 04 FB FF FF | SOffset32 | 0xFFFFFB04 (-1276) Loc: +0x0BE0 | offset to vtable - +0x06E8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) - +0x06EC | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x0648 | 50 FB FF FF | SOffset32 | 0xFFFFFB50 (-1200) Loc: +0x0AF8 | offset to vtable + +0x064C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) + +0x0650 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.EnumVal.name): - +0x06F0 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string - +0x06F4 | 4E 4F 4E 45 | char[4] | NONE | string literal - +0x06F8 | 00 | char | 0x00 (0) | string terminator + +0x0654 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string + +0x0658 | 4E 4F 4E 45 | char[4] | NONE | string literal + +0x065C | 00 | char | 0x00 (0) | string terminator -padding: - +0x06F9 | 00 00 00 | uint8_t[3] | ... | padding +vtable (reflection.Enum): + +0x065E | 12 00 | uint16_t | 0x0012 (18) | size of this vtable + +0x0660 | 18 00 | uint16_t | 0x0018 (24) | size of referring table + +0x0662 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `name` (id: 0) + +0x0664 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `values` (id: 1) + +0x0666 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `is_union` (id: 2) (Bool) + +0x0668 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `underlying_type` (id: 3) + +0x066A | 10 00 | VOffset16 | 0x0010 (16) | offset to field `attributes` (id: 4) + +0x066C | 00 00 | VOffset16 | 0x0000 (0) | offset to field `documentation` (id: 5) (Vector) + +0x066E | 14 00 | VOffset16 | 0x0014 (20) | offset to field `declaration_file` (id: 6) table (reflection.Enum): - +0x06FC | A2 FD FF FF | SOffset32 | 0xFFFFFDA2 (-606) Loc: +0x095A | offset to vtable - +0x0700 | 6C 00 00 00 | UOffset32 | 0x0000006C (108) Loc: +0x076C | offset to field `name` (string) - +0x0704 | 58 00 00 00 | UOffset32 | 0x00000058 (88) Loc: +0x075C | offset to field `values` (vector) - +0x0708 | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: +0x0748 | offset to field `underlying_type` (table) - +0x070C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x071C | offset to field `attributes` (vector) - +0x0710 | 08 00 00 00 | UOffset32 | 0x00000008 (8) Loc: +0x0718 | offset to field `documentation` (vector) - +0x0714 | 04 34 00 00 | UOffset32 | 0x00003404 (13316) Loc: +0x3B18 | offset to field `declaration_file` (string) - -vector (reflection.Enum.documentation): - +0x0718 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x0670 | 12 00 00 00 | SOffset32 | 0x00000012 (18) Loc: +0x065E | offset to vtable + +0x0674 | 64 00 00 00 | UOffset32 | 0x00000064 (100) Loc: +0x06D8 | offset to field `name` (string) + +0x0678 | 50 00 00 00 | UOffset32 | 0x00000050 (80) Loc: +0x06C8 | offset to field `values` (vector) + +0x067C | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: +0x06B4 | offset to field `underlying_type` (table) + +0x0680 | 08 00 00 00 | UOffset32 | 0x00000008 (8) Loc: +0x0688 | offset to field `attributes` (vector) + +0x0684 | 60 30 00 00 | UOffset32 | 0x00003060 (12384) Loc: +0x36E4 | offset to field `declaration_file` (string) vector (reflection.Enum.attributes): - +0x071C | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x0720 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x0724 | offset to table[0] + +0x0688 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x068C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x0690 | offset to table[0] table (reflection.KeyValue): - +0x0724 | 08 CE FF FF | SOffset32 | 0xFFFFCE08 (-12792) Loc: +0x391C | offset to vtable - +0x0728 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x0738 | offset to field `key` (string) - +0x072C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x0730 | offset to field `value` (string) + +0x0690 | C8 CD FF FF | SOffset32 | 0xFFFFCDC8 (-12856) Loc: +0x38C8 | offset to vtable + +0x0694 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x06A4 | offset to field `key` (string) + +0x0698 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x069C | offset to field `value` (string) string (reflection.KeyValue.value): - +0x0730 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x0734 | 30 | char[1] | 0 | string literal - +0x0735 | 00 | char | 0x00 (0) | string terminator + +0x069C | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x06A0 | 30 | char[1] | 0 | string literal + +0x06A1 | 00 | char | 0x00 (0) | string terminator padding: - +0x0736 | 00 00 | uint8_t[2] | .. | padding + +0x06A2 | 00 00 | uint8_t[2] | .. | padding string (reflection.KeyValue.key): - +0x0738 | 09 00 00 00 | uint32_t | 0x00000009 (9) | length of string - +0x073C | 62 69 74 5F 66 6C 61 67 | char[9] | bit_flag | string literal - +0x0744 | 73 | | s - +0x0745 | 00 | char | 0x00 (0) | string terminator + +0x06A4 | 09 00 00 00 | uint32_t | 0x00000009 (9) | length of string + +0x06A8 | 62 69 74 5F 66 6C 61 67 | char[9] | bit_flag | string literal + +0x06B0 | 73 | | s + +0x06B1 | 00 | char | 0x00 (0) | string terminator padding: - +0x0746 | 00 00 | uint8_t[2] | .. | padding + +0x06B2 | 00 00 | uint8_t[2] | .. | padding table (reflection.Type): - +0x0748 | 8C CD FF FF | SOffset32 | 0xFFFFCD8C (-12916) Loc: +0x39BC | offset to vtable - +0x074C | 00 00 00 | uint8_t[3] | ... | padding - +0x074F | 0A | uint8_t | 0x0A (10) | table field `base_type` (Byte) - +0x0750 | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `index` (Int) - +0x0754 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt) - +0x0758 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x06B4 | 08 D1 FF FF | SOffset32 | 0xFFFFD108 (-12024) Loc: +0x35AC | offset to vtable + +0x06B8 | 00 00 00 | uint8_t[3] | ... | padding + +0x06BB | 0A | uint8_t | 0x0A (10) | table field `base_type` (Byte) + +0x06BC | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `index` (Int) + +0x06C0 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt) + +0x06C4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) vector (reflection.Enum.values): - +0x075C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) - +0x0760 | 98 00 00 00 | UOffset32 | 0x00000098 (152) Loc: +0x07F8 | offset to table[0] - +0x0764 | 5C 00 00 00 | UOffset32 | 0x0000005C (92) Loc: +0x07C0 | offset to table[1] - +0x0768 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x0788 | offset to table[2] + +0x06C8 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) + +0x06CC | 88 00 00 00 | UOffset32 | 0x00000088 (136) Loc: +0x0754 | offset to table[0] + +0x06D0 | 54 00 00 00 | UOffset32 | 0x00000054 (84) Loc: +0x0724 | offset to table[1] + +0x06D4 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x06F4 | offset to table[2] string (reflection.Enum.name): - +0x076C | 17 00 00 00 | uint32_t | 0x00000017 (23) | length of string - +0x0770 | 4D 79 47 61 6D 65 2E 45 | char[23] | MyGame.E | string literal - +0x0778 | 78 61 6D 70 6C 65 2E 4C | | xample.L - +0x0780 | 6F 6E 67 45 6E 75 6D | | ongEnum - +0x0787 | 00 | char | 0x00 (0) | string terminator + +0x06D8 | 17 00 00 00 | uint32_t | 0x00000017 (23) | length of string + +0x06DC | 4D 79 47 61 6D 65 2E 45 | char[23] | MyGame.E | string literal + +0x06E4 | 78 61 6D 70 6C 65 2E 4C | | xample.L + +0x06EC | 6F 6E 67 45 6E 75 6D | | ongEnum + +0x06F3 | 00 | char | 0x00 (0) | string terminator table (reflection.EnumVal): - +0x0788 | 7E FC FF FF | SOffset32 | 0xFFFFFC7E (-898) Loc: +0x0B0A | offset to vtable - +0x078C | 28 00 00 00 | UOffset32 | 0x00000028 (40) Loc: +0x07B4 | offset to field `name` (string) - +0x0790 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x07A8 | offset to field `union_type` (table) - +0x0794 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x07A4 | offset to field `documentation` (vector) - +0x0798 | 00 00 00 00 00 01 00 00 | int64_t | 0x0000010000000000 (1099511627776) | table field `value` (Long) - +0x07A0 | 00 00 00 00 | uint8_t[4] | .... | padding - -vector (reflection.EnumVal.documentation): - +0x07A4 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x06F4 | A4 FE FF FF | SOffset32 | 0xFFFFFEA4 (-348) Loc: +0x0850 | offset to vtable + +0x06F8 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x0718 | offset to field `name` (string) + +0x06FC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x070C | offset to field `union_type` (table) + +0x0700 | 00 00 00 00 00 01 00 00 | int64_t | 0x0000010000000000 (1099511627776) | table field `value` (Long) + +0x0708 | 00 00 00 00 | uint8_t[4] | .... | padding table (reflection.Type): - +0x07A8 | C8 FB FF FF | SOffset32 | 0xFFFFFBC8 (-1080) Loc: +0x0BE0 | offset to vtable - +0x07AC | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) - +0x07B0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x070C | 14 FC FF FF | SOffset32 | 0xFFFFFC14 (-1004) Loc: +0x0AF8 | offset to vtable + +0x0710 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) + +0x0714 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.EnumVal.name): - +0x07B4 | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string - +0x07B8 | 4C 6F 6E 67 42 69 67 | char[7] | LongBig | string literal - +0x07BF | 00 | char | 0x00 (0) | string terminator + +0x0718 | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string + +0x071C | 4C 6F 6E 67 42 69 67 | char[7] | LongBig | string literal + +0x0723 | 00 | char | 0x00 (0) | string terminator table (reflection.EnumVal): - +0x07C0 | B6 FC FF FF | SOffset32 | 0xFFFFFCB6 (-842) Loc: +0x0B0A | offset to vtable - +0x07C4 | 28 00 00 00 | UOffset32 | 0x00000028 (40) Loc: +0x07EC | offset to field `name` (string) - +0x07C8 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x07E0 | offset to field `union_type` (table) - +0x07CC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x07DC | offset to field `documentation` (vector) - +0x07D0 | 04 00 00 00 00 00 00 00 | int64_t | 0x0000000000000004 (4) | table field `value` (Long) - +0x07D8 | 00 00 00 00 | uint8_t[4] | .... | padding - -vector (reflection.EnumVal.documentation): - +0x07DC | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x0724 | D4 FE FF FF | SOffset32 | 0xFFFFFED4 (-300) Loc: +0x0850 | offset to vtable + +0x0728 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x0748 | offset to field `name` (string) + +0x072C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x073C | offset to field `union_type` (table) + +0x0730 | 04 00 00 00 00 00 00 00 | int64_t | 0x0000000000000004 (4) | table field `value` (Long) + +0x0738 | 00 00 00 00 | uint8_t[4] | .... | padding table (reflection.Type): - +0x07E0 | 00 FC FF FF | SOffset32 | 0xFFFFFC00 (-1024) Loc: +0x0BE0 | offset to vtable - +0x07E4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) - +0x07E8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x073C | 44 FC FF FF | SOffset32 | 0xFFFFFC44 (-956) Loc: +0x0AF8 | offset to vtable + +0x0740 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) + +0x0744 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.EnumVal.name): - +0x07EC | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string - +0x07F0 | 4C 6F 6E 67 54 77 6F | char[7] | LongTwo | string literal - +0x07F7 | 00 | char | 0x00 (0) | string terminator + +0x0748 | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string + +0x074C | 4C 6F 6E 67 54 77 6F | char[7] | LongTwo | string literal + +0x0753 | 00 | char | 0x00 (0) | string terminator table (reflection.EnumVal): - +0x07F8 | DE FE FF FF | SOffset32 | 0xFFFFFEDE (-290) Loc: +0x091A | offset to vtable - +0x07FC | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x0820 | offset to field `name` (string) - +0x0800 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x0814 | offset to field `union_type` (table) - +0x0804 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x0810 | offset to field `documentation` (vector) - +0x0808 | 02 00 00 00 00 00 00 00 | int64_t | 0x0000000000000002 (2) | table field `value` (Long) - -vector (reflection.EnumVal.documentation): - +0x0810 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x0754 | 14 FD FF FF | SOffset32 | 0xFFFFFD14 (-748) Loc: +0x0A40 | offset to vtable + +0x0758 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: +0x0774 | offset to field `name` (string) + +0x075C | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x0768 | offset to field `union_type` (table) + +0x0760 | 02 00 00 00 00 00 00 00 | int64_t | 0x0000000000000002 (2) | table field `value` (Long) table (reflection.Type): - +0x0814 | 34 FC FF FF | SOffset32 | 0xFFFFFC34 (-972) Loc: +0x0BE0 | offset to vtable - +0x0818 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) - +0x081C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x0768 | 70 FC FF FF | SOffset32 | 0xFFFFFC70 (-912) Loc: +0x0AF8 | offset to vtable + +0x076C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) + +0x0770 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.EnumVal.name): - +0x0820 | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string - +0x0824 | 4C 6F 6E 67 4F 6E 65 | char[7] | LongOne | string literal - +0x082B | 00 | char | 0x00 (0) | string terminator + +0x0774 | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string + +0x0778 | 4C 6F 6E 67 4F 6E 65 | char[7] | LongOne | string literal + +0x077F | 00 | char | 0x00 (0) | string terminator table (reflection.Enum): - +0x082C | DE FC FF FF | SOffset32 | 0xFFFFFCDE (-802) Loc: +0x0B4E | offset to vtable - +0x0830 | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: +0x0870 | offset to field `name` (string) - +0x0834 | 28 00 00 00 | UOffset32 | 0x00000028 (40) Loc: +0x085C | offset to field `values` (vector) - +0x0838 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x0848 | offset to field `underlying_type` (table) - +0x083C | 08 00 00 00 | UOffset32 | 0x00000008 (8) Loc: +0x0844 | offset to field `documentation` (vector) - +0x0840 | D8 32 00 00 | UOffset32 | 0x000032D8 (13016) Loc: +0x3B18 | offset to field `declaration_file` (string) - -vector (reflection.Enum.documentation): - +0x0844 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x0780 | 0A FD FF FF | SOffset32 | 0xFFFFFD0A (-758) Loc: +0x0A76 | offset to vtable + +0x0784 | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: +0x07BC | offset to field `name` (string) + +0x0788 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x07A8 | offset to field `values` (vector) + +0x078C | 08 00 00 00 | UOffset32 | 0x00000008 (8) Loc: +0x0794 | offset to field `underlying_type` (table) + +0x0790 | 54 2F 00 00 | UOffset32 | 0x00002F54 (12116) Loc: +0x36E4 | offset to field `declaration_file` (string) table (reflection.Type): - +0x0848 | 8C CE FF FF | SOffset32 | 0xFFFFCE8C (-12660) Loc: +0x39BC | offset to vtable - +0x084C | 00 00 00 | uint8_t[3] | ... | padding - +0x084F | 03 | uint8_t | 0x03 (3) | table field `base_type` (Byte) - +0x0850 | 05 00 00 00 | uint32_t | 0x00000005 (5) | table field `index` (Int) - +0x0854 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) - +0x0858 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x0794 | E8 D1 FF FF | SOffset32 | 0xFFFFD1E8 (-11800) Loc: +0x35AC | offset to vtable + +0x0798 | 00 00 00 | uint8_t[3] | ... | padding + +0x079B | 03 | uint8_t | 0x03 (3) | table field `base_type` (Byte) + +0x079C | 05 00 00 00 | uint32_t | 0x00000005 (5) | table field `index` (Int) + +0x07A0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) + +0x07A4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) vector (reflection.Enum.values): - +0x085C | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of vector (# items) - +0x0860 | C8 00 00 00 | UOffset32 | 0x000000C8 (200) Loc: +0x0928 | offset to table[0] - +0x0864 | 8C 00 00 00 | UOffset32 | 0x0000008C (140) Loc: +0x08F0 | offset to table[1] - +0x0868 | 50 00 00 00 | UOffset32 | 0x00000050 (80) Loc: +0x08B8 | offset to table[2] - +0x086C | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: +0x0888 | offset to table[3] + +0x07A8 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of vector (# items) + +0x07AC | B0 00 00 00 | UOffset32 | 0x000000B0 (176) Loc: +0x085C | offset to table[0] + +0x07B0 | 7C 00 00 00 | UOffset32 | 0x0000007C (124) Loc: +0x082C | offset to table[1] + +0x07B4 | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: +0x07FC | offset to table[2] + +0x07B8 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: +0x07D4 | offset to table[3] string (reflection.Enum.name): - +0x0870 | 13 00 00 00 | uint32_t | 0x00000013 (19) | length of string - +0x0874 | 4D 79 47 61 6D 65 2E 45 | char[19] | MyGame.E | string literal - +0x087C | 78 61 6D 70 6C 65 2E 52 | | xample.R - +0x0884 | 61 63 65 | | ace - +0x0887 | 00 | char | 0x00 (0) | string terminator + +0x07BC | 13 00 00 00 | uint32_t | 0x00000013 (19) | length of string + +0x07C0 | 4D 79 47 61 6D 65 2E 45 | char[19] | MyGame.E | string literal + +0x07C8 | 78 61 6D 70 6C 65 2E 52 | | xample.R + +0x07D0 | 61 63 65 | | ace + +0x07D3 | 00 | char | 0x00 (0) | string terminator table (reflection.EnumVal): - +0x0888 | 6E FF FF FF | SOffset32 | 0xFFFFFF6E (-146) Loc: +0x091A | offset to vtable - +0x088C | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x08B0 | offset to field `name` (string) - +0x0890 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x08A4 | offset to field `union_type` (table) - +0x0894 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x08A0 | offset to field `documentation` (vector) - +0x0898 | 02 00 00 00 00 00 00 00 | int64_t | 0x0000000000000002 (2) | table field `value` (Long) - -vector (reflection.EnumVal.documentation): - +0x08A0 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x07D4 | 94 FD FF FF | SOffset32 | 0xFFFFFD94 (-620) Loc: +0x0A40 | offset to vtable + +0x07D8 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: +0x07F4 | offset to field `name` (string) + +0x07DC | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x07E8 | offset to field `union_type` (table) + +0x07E0 | 02 00 00 00 00 00 00 00 | int64_t | 0x0000000000000002 (2) | table field `value` (Long) table (reflection.Type): - +0x08A4 | C4 FC FF FF | SOffset32 | 0xFFFFFCC4 (-828) Loc: +0x0BE0 | offset to vtable - +0x08A8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) - +0x08AC | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x07E8 | F0 FC FF FF | SOffset32 | 0xFFFFFCF0 (-784) Loc: +0x0AF8 | offset to vtable + +0x07EC | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) + +0x07F0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.EnumVal.name): - +0x08B0 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string - +0x08B4 | 45 6C 66 | char[3] | Elf | string literal - +0x08B7 | 00 | char | 0x00 (0) | string terminator + +0x07F4 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string + +0x07F8 | 45 6C 66 | char[3] | Elf | string literal + +0x07FB | 00 | char | 0x00 (0) | string terminator table (reflection.EnumVal): - +0x08B8 | AE FD FF FF | SOffset32 | 0xFFFFFDAE (-594) Loc: +0x0B0A | offset to vtable - +0x08BC | 28 00 00 00 | UOffset32 | 0x00000028 (40) Loc: +0x08E4 | offset to field `name` (string) - +0x08C0 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x08D8 | offset to field `union_type` (table) - +0x08C4 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x08D4 | offset to field `documentation` (vector) - +0x08C8 | 01 00 00 00 00 00 00 00 | int64_t | 0x0000000000000001 (1) | table field `value` (Long) - +0x08D0 | 00 00 00 00 | uint8_t[4] | .... | padding - -vector (reflection.EnumVal.documentation): - +0x08D4 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x07FC | AC FF FF FF | SOffset32 | 0xFFFFFFAC (-84) Loc: +0x0850 | offset to vtable + +0x0800 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x0820 | offset to field `name` (string) + +0x0804 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x0814 | offset to field `union_type` (table) + +0x0808 | 01 00 00 00 00 00 00 00 | int64_t | 0x0000000000000001 (1) | table field `value` (Long) + +0x0810 | 00 00 00 00 | uint8_t[4] | .... | padding table (reflection.Type): - +0x08D8 | F8 FC FF FF | SOffset32 | 0xFFFFFCF8 (-776) Loc: +0x0BE0 | offset to vtable - +0x08DC | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) - +0x08E0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x0814 | 1C FD FF FF | SOffset32 | 0xFFFFFD1C (-740) Loc: +0x0AF8 | offset to vtable + +0x0818 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) + +0x081C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.EnumVal.name): - +0x08E4 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string - +0x08E8 | 44 77 61 72 66 | char[5] | Dwarf | string literal - +0x08ED | 00 | char | 0x00 (0) | string terminator + +0x0820 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string + +0x0824 | 44 77 61 72 66 | char[5] | Dwarf | string literal + +0x0829 | 00 | char | 0x00 (0) | string terminator padding: - +0x08EE | 00 00 | uint8_t[2] | .. | padding + +0x082A | 00 00 | uint8_t[2] | .. | padding table (reflection.EnumVal): - +0x08F0 | 32 FD FF FF | SOffset32 | 0xFFFFFD32 (-718) Loc: +0x0BBE | offset to vtable - +0x08F4 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: +0x0910 | offset to field `name` (string) - +0x08F8 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x0904 | offset to field `union_type` (table) - +0x08FC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x0900 | offset to field `documentation` (vector) - -vector (reflection.EnumVal.documentation): - +0x0900 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x082C | 4C FD FF FF | SOffset32 | 0xFFFFFD4C (-692) Loc: +0x0AE0 | offset to vtable + +0x0830 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x0844 | offset to field `name` (string) + +0x0834 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x0838 | offset to field `union_type` (table) table (reflection.Type): - +0x0904 | 24 FD FF FF | SOffset32 | 0xFFFFFD24 (-732) Loc: +0x0BE0 | offset to vtable - +0x0908 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) - +0x090C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x0838 | 40 FD FF FF | SOffset32 | 0xFFFFFD40 (-704) Loc: +0x0AF8 | offset to vtable + +0x083C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) + +0x0840 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.EnumVal.name): - +0x0910 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string - +0x0914 | 48 75 6D 61 6E | char[5] | Human | string literal - +0x0919 | 00 | char | 0x00 (0) | string terminator + +0x0844 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string + +0x0848 | 48 75 6D 61 6E | char[5] | Human | string literal + +0x084D | 00 | char | 0x00 (0) | string terminator + +padding: + +0x084E | 00 00 | uint8_t[2] | .. | padding vtable (reflection.EnumVal): - +0x091A | 0E 00 | uint16_t | 0x000E (14) | size of this vtable - +0x091C | 18 00 | uint16_t | 0x0018 (24) | size of referring table - +0x091E | 04 00 | VOffset16 | 0x0004 (4) | offset to field `name` (id: 0) - +0x0920 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `value` (id: 1) - +0x0922 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `object` (id: 2) (Obj) - +0x0924 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `union_type` (id: 3) - +0x0926 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `documentation` (id: 4) + +0x0850 | 0C 00 | uint16_t | 0x000C (12) | size of this vtable + +0x0852 | 18 00 | uint16_t | 0x0018 (24) | size of referring table + +0x0854 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `name` (id: 0) + +0x0856 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `value` (id: 1) + +0x0858 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `object` (id: 2) (Obj) + +0x085A | 08 00 | VOffset16 | 0x0008 (8) | offset to field `union_type` (id: 3) table (reflection.EnumVal): - +0x0928 | 0E 00 00 00 | SOffset32 | 0x0000000E (14) Loc: +0x091A | offset to vtable - +0x092C | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x0950 | offset to field `name` (string) - +0x0930 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x0944 | offset to field `union_type` (table) - +0x0934 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x0940 | offset to field `documentation` (vector) - +0x0938 | FF FF FF FF FF FF FF FF | int64_t | 0xFFFFFFFFFFFFFFFF (-1) | table field `value` (Long) - -vector (reflection.EnumVal.documentation): - +0x0940 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x085C | 0C 00 00 00 | SOffset32 | 0x0000000C (12) Loc: +0x0850 | offset to vtable + +0x0860 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x0880 | offset to field `name` (string) + +0x0864 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x0874 | offset to field `union_type` (table) + +0x0868 | FF FF FF FF FF FF FF FF | int64_t | 0xFFFFFFFFFFFFFFFF (-1) | table field `value` (Long) + +0x0870 | 00 00 00 00 | uint8_t[4] | .... | padding table (reflection.Type): - +0x0944 | 64 FD FF FF | SOffset32 | 0xFFFFFD64 (-668) Loc: +0x0BE0 | offset to vtable - +0x0948 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) - +0x094C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x0874 | 7C FD FF FF | SOffset32 | 0xFFFFFD7C (-644) Loc: +0x0AF8 | offset to vtable + +0x0878 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) + +0x087C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.EnumVal.name): - +0x0950 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string - +0x0954 | 4E 6F 6E 65 | char[4] | None | string literal - +0x0958 | 00 | char | 0x00 (0) | string terminator + +0x0880 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string + +0x0884 | 4E 6F 6E 65 | char[4] | None | string literal + +0x0888 | 00 | char | 0x00 (0) | string terminator vtable (reflection.Enum): - +0x095A | 12 00 | uint16_t | 0x0012 (18) | size of this vtable - +0x095C | 1C 00 | uint16_t | 0x001C (28) | size of referring table - +0x095E | 04 00 | VOffset16 | 0x0004 (4) | offset to field `name` (id: 0) - +0x0960 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `values` (id: 1) - +0x0962 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `is_union` (id: 2) (Bool) - +0x0964 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `underlying_type` (id: 3) - +0x0966 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `attributes` (id: 4) - +0x0968 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `documentation` (id: 5) - +0x096A | 18 00 | VOffset16 | 0x0018 (24) | offset to field `declaration_file` (id: 6) + +0x088A | 12 00 | uint16_t | 0x0012 (18) | size of this vtable + +0x088C | 1C 00 | uint16_t | 0x001C (28) | size of referring table + +0x088E | 04 00 | VOffset16 | 0x0004 (4) | offset to field `name` (id: 0) + +0x0890 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `values` (id: 1) + +0x0892 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `is_union` (id: 2) (Bool) + +0x0894 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `underlying_type` (id: 3) + +0x0896 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `attributes` (id: 4) + +0x0898 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `documentation` (id: 5) + +0x089A | 18 00 | VOffset16 | 0x0018 (24) | offset to field `declaration_file` (id: 6) table (reflection.Enum): - +0x096C | 12 00 00 00 | SOffset32 | 0x00000012 (18) Loc: +0x095A | offset to vtable - +0x0970 | 9C 00 00 00 | UOffset32 | 0x0000009C (156) Loc: +0x0A0C | offset to field `name` (string) - +0x0974 | 88 00 00 00 | UOffset32 | 0x00000088 (136) Loc: +0x09FC | offset to field `values` (vector) - +0x0978 | 70 00 00 00 | UOffset32 | 0x00000070 (112) Loc: +0x09E8 | offset to field `underlying_type` (table) - +0x097C | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: +0x09BC | offset to field `attributes` (vector) - +0x0980 | 08 00 00 00 | UOffset32 | 0x00000008 (8) Loc: +0x0988 | offset to field `documentation` (vector) - +0x0984 | 94 31 00 00 | UOffset32 | 0x00003194 (12692) Loc: +0x3B18 | offset to field `declaration_file` (string) + +0x089C | 12 00 00 00 | SOffset32 | 0x00000012 (18) Loc: +0x088A | offset to vtable + +0x08A0 | 9C 00 00 00 | UOffset32 | 0x0000009C (156) Loc: +0x093C | offset to field `name` (string) + +0x08A4 | 88 00 00 00 | UOffset32 | 0x00000088 (136) Loc: +0x092C | offset to field `values` (vector) + +0x08A8 | 70 00 00 00 | UOffset32 | 0x00000070 (112) Loc: +0x0918 | offset to field `underlying_type` (table) + +0x08AC | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: +0x08EC | offset to field `attributes` (vector) + +0x08B0 | 08 00 00 00 | UOffset32 | 0x00000008 (8) Loc: +0x08B8 | offset to field `documentation` (vector) + +0x08B4 | 30 2E 00 00 | UOffset32 | 0x00002E30 (11824) Loc: +0x36E4 | offset to field `declaration_file` (string) vector (reflection.Enum.documentation): - +0x0988 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x098C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x0990 | offset to string[0] + +0x08B8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x08BC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x08C0 | offset to string[0] string (reflection.Enum.documentation): - +0x0990 | 27 00 00 00 | uint32_t | 0x00000027 (39) | length of string - +0x0994 | 20 43 6F 6D 70 6F 73 69 | char[39] | Composi | string literal - +0x099C | 74 65 20 63 6F 6D 70 6F | | te compo - +0x09A4 | 6E 65 6E 74 73 20 6F 66 | | nents of - +0x09AC | 20 4D 6F 6E 73 74 65 72 | | Monster - +0x09B4 | 20 63 6F 6C 6F 72 2E | | color. - +0x09BB | 00 | char | 0x00 (0) | string terminator + +0x08C0 | 27 00 00 00 | uint32_t | 0x00000027 (39) | length of string + +0x08C4 | 20 43 6F 6D 70 6F 73 69 | char[39] | Composi | string literal + +0x08CC | 74 65 20 63 6F 6D 70 6F | | te compo + +0x08D4 | 6E 65 6E 74 73 20 6F 66 | | nents of + +0x08DC | 20 4D 6F 6E 73 74 65 72 | | Monster + +0x08E4 | 20 63 6F 6C 6F 72 2E | | color. + +0x08EB | 00 | char | 0x00 (0) | string terminator vector (reflection.Enum.attributes): - +0x09BC | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x09C0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x09C4 | offset to table[0] + +0x08EC | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x08F0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x08F4 | offset to table[0] table (reflection.KeyValue): - +0x09C4 | A8 D0 FF FF | SOffset32 | 0xFFFFD0A8 (-12120) Loc: +0x391C | offset to vtable - +0x09C8 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x09D8 | offset to field `key` (string) - +0x09CC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x09D0 | offset to field `value` (string) + +0x08F4 | 2C D0 FF FF | SOffset32 | 0xFFFFD02C (-12244) Loc: +0x38C8 | offset to vtable + +0x08F8 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x0908 | offset to field `key` (string) + +0x08FC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x0900 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x09D0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x09D4 | 30 | char[1] | 0 | string literal - +0x09D5 | 00 | char | 0x00 (0) | string terminator + +0x0900 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x0904 | 30 | char[1] | 0 | string literal + +0x0905 | 00 | char | 0x00 (0) | string terminator padding: - +0x09D6 | 00 00 | uint8_t[2] | .. | padding + +0x0906 | 00 00 | uint8_t[2] | .. | padding string (reflection.KeyValue.key): - +0x09D8 | 09 00 00 00 | uint32_t | 0x00000009 (9) | length of string - +0x09DC | 62 69 74 5F 66 6C 61 67 | char[9] | bit_flag | string literal - +0x09E4 | 73 | | s - +0x09E5 | 00 | char | 0x00 (0) | string terminator + +0x0908 | 09 00 00 00 | uint32_t | 0x00000009 (9) | length of string + +0x090C | 62 69 74 5F 66 6C 61 67 | char[9] | bit_flag | string literal + +0x0914 | 73 | | s + +0x0915 | 00 | char | 0x00 (0) | string terminator padding: - +0x09E6 | 00 00 | uint8_t[2] | .. | padding + +0x0916 | 00 00 | uint8_t[2] | .. | padding table (reflection.Type): - +0x09E8 | 2C D0 FF FF | SOffset32 | 0xFFFFD02C (-12244) Loc: +0x39BC | offset to vtable - +0x09EC | 00 00 00 | uint8_t[3] | ... | padding - +0x09EF | 04 | uint8_t | 0x04 (4) | table field `base_type` (Byte) - +0x09F0 | 03 00 00 00 | uint32_t | 0x00000003 (3) | table field `index` (Int) - +0x09F4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) - +0x09F8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x0918 | 6C D3 FF FF | SOffset32 | 0xFFFFD36C (-11412) Loc: +0x35AC | offset to vtable + +0x091C | 00 00 00 | uint8_t[3] | ... | padding + +0x091F | 04 | uint8_t | 0x04 (4) | table field `base_type` (Byte) + +0x0920 | 03 00 00 00 | uint32_t | 0x00000003 (3) | table field `index` (Int) + +0x0924 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) + +0x0928 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) vector (reflection.Enum.values): - +0x09FC | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) - +0x0A00 | 18 01 00 00 | UOffset32 | 0x00000118 (280) Loc: +0x0B18 | offset to table[0] - +0x0A04 | 84 00 00 00 | UOffset32 | 0x00000084 (132) Loc: +0x0A88 | offset to table[1] - +0x0A08 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x0A28 | offset to table[2] + +0x092C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) + +0x0930 | 1C 01 00 00 | UOffset32 | 0x0000011C (284) Loc: +0x0A4C | offset to table[0] + +0x0934 | 8C 00 00 00 | UOffset32 | 0x0000008C (140) Loc: +0x09C0 | offset to table[1] + +0x0938 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x0958 | offset to table[2] string (reflection.Enum.name): - +0x0A0C | 14 00 00 00 | uint32_t | 0x00000014 (20) | length of string - +0x0A10 | 4D 79 47 61 6D 65 2E 45 | char[20] | MyGame.E | string literal - +0x0A18 | 78 61 6D 70 6C 65 2E 43 | | xample.C - +0x0A20 | 6F 6C 6F 72 | | olor - +0x0A24 | 00 | char | 0x00 (0) | string terminator + +0x093C | 14 00 00 00 | uint32_t | 0x00000014 (20) | length of string + +0x0940 | 4D 79 47 61 6D 65 2E 45 | char[20] | MyGame.E | string literal + +0x0948 | 78 61 6D 70 6C 65 2E 43 | | xample.C + +0x0950 | 6F 6C 6F 72 | | olor + +0x0954 | 00 | char | 0x00 (0) | string terminator padding: - +0x0A25 | 00 00 00 | uint8_t[3] | ... | padding + +0x0955 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.EnumVal): - +0x0A28 | 1E FF FF FF | SOffset32 | 0xFFFFFF1E (-226) Loc: +0x0B0A | offset to vtable - +0x0A2C | 50 00 00 00 | UOffset32 | 0x00000050 (80) Loc: +0x0A7C | offset to field `name` (string) - +0x0A30 | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: +0x0A70 | offset to field `union_type` (table) - +0x0A34 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x0A44 | offset to field `documentation` (vector) - +0x0A38 | 08 00 00 00 00 00 00 00 | int64_t | 0x0000000000000008 (8) | table field `value` (Long) - +0x0A40 | 00 00 00 00 | uint8_t[4] | .... | padding + +0x0958 | A6 FF FF FF | SOffset32 | 0xFFFFFFA6 (-90) Loc: +0x09B2 | offset to vtable + +0x095C | 4C 00 00 00 | UOffset32 | 0x0000004C (76) Loc: +0x09A8 | offset to field `name` (string) + +0x0960 | 3C 00 00 00 | UOffset32 | 0x0000003C (60) Loc: +0x099C | offset to field `union_type` (table) + +0x0964 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x0970 | offset to field `documentation` (vector) + +0x0968 | 08 00 00 00 00 00 00 00 | int64_t | 0x0000000000000008 (8) | table field `value` (Long) vector (reflection.EnumVal.documentation): - +0x0A44 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x0A48 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x0A4C | offset to string[0] + +0x0970 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x0974 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x0978 | offset to string[0] string (reflection.EnumVal.documentation): - +0x0A4C | 1C 00 00 00 | uint32_t | 0x0000001C (28) | length of string - +0x0A50 | 20 5C 62 72 69 65 66 20 | char[28] | \brief | string literal - +0x0A58 | 63 6F 6C 6F 72 20 42 6C | | color Bl - +0x0A60 | 75 65 20 28 31 75 20 3C | | ue (1u < - +0x0A68 | 3C 20 33 29 | | < 3) - +0x0A6C | 00 | char | 0x00 (0) | string terminator + +0x0978 | 1C 00 00 00 | uint32_t | 0x0000001C (28) | length of string + +0x097C | 20 5C 62 72 69 65 66 20 | char[28] | \brief | string literal + +0x0984 | 63 6F 6C 6F 72 20 42 6C | | color Bl + +0x098C | 75 65 20 28 31 75 20 3C | | ue (1u < + +0x0994 | 3C 20 33 29 | | < 3) + +0x0998 | 00 | char | 0x00 (0) | string terminator padding: - +0x0A6D | 00 00 00 | uint8_t[3] | ... | padding + +0x0999 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Type): - +0x0A70 | 90 FE FF FF | SOffset32 | 0xFFFFFE90 (-368) Loc: +0x0BE0 | offset to vtable - +0x0A74 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) - +0x0A78 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x099C | A4 FE FF FF | SOffset32 | 0xFFFFFEA4 (-348) Loc: +0x0AF8 | offset to vtable + +0x09A0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) + +0x09A4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.EnumVal.name): - +0x0A7C | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string - +0x0A80 | 42 6C 75 65 | char[4] | Blue | string literal - +0x0A84 | 00 | char | 0x00 (0) | string terminator + +0x09A8 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string + +0x09AC | 42 6C 75 65 | char[4] | Blue | string literal + +0x09B0 | 00 | char | 0x00 (0) | string terminator -padding: - +0x0A85 | 00 00 00 | uint8_t[3] | ... | padding +vtable (reflection.EnumVal): + +0x09B2 | 0E 00 | uint16_t | 0x000E (14) | size of this vtable + +0x09B4 | 18 00 | uint16_t | 0x0018 (24) | size of referring table + +0x09B6 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `name` (id: 0) + +0x09B8 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `value` (id: 1) + +0x09BA | 00 00 | VOffset16 | 0x0000 (0) | offset to field `object` (id: 2) (Obj) + +0x09BC | 08 00 | VOffset16 | 0x0008 (8) | offset to field `union_type` (id: 3) + +0x09BE | 0C 00 | VOffset16 | 0x000C (12) | offset to field `documentation` (id: 4) table (reflection.EnumVal): - +0x0A88 | 7E FF FF FF | SOffset32 | 0xFFFFFF7E (-130) Loc: +0x0B0A | offset to vtable - +0x0A8C | 74 00 00 00 | UOffset32 | 0x00000074 (116) Loc: +0x0B00 | offset to field `name` (string) - +0x0A90 | 64 00 00 00 | UOffset32 | 0x00000064 (100) Loc: +0x0AF4 | offset to field `union_type` (table) - +0x0A94 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x0AA4 | offset to field `documentation` (vector) - +0x0A98 | 02 00 00 00 00 00 00 00 | int64_t | 0x0000000000000002 (2) | table field `value` (Long) - +0x0AA0 | 00 00 00 00 | uint8_t[4] | .... | padding + +0x09C0 | 0E 00 00 00 | SOffset32 | 0x0000000E (14) Loc: +0x09B2 | offset to vtable + +0x09C4 | 70 00 00 00 | UOffset32 | 0x00000070 (112) Loc: +0x0A34 | offset to field `name` (string) + +0x09C8 | 60 00 00 00 | UOffset32 | 0x00000060 (96) Loc: +0x0A28 | offset to field `union_type` (table) + +0x09CC | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x09D8 | offset to field `documentation` (vector) + +0x09D0 | 02 00 00 00 00 00 00 00 | int64_t | 0x0000000000000002 (2) | table field `value` (Long) vector (reflection.EnumVal.documentation): - +0x0AA4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) - +0x0AA8 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x0ADC | offset to string[0] - +0x0AAC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x0AB0 | offset to string[1] + +0x09D8 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) + +0x09DC | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x0A10 | offset to string[0] + +0x09E0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x09E4 | offset to string[1] string (reflection.EnumVal.documentation): - +0x0AB0 | 27 00 00 00 | uint32_t | 0x00000027 (39) | length of string - +0x0AB4 | 20 47 72 65 65 6E 20 69 | char[39] | Green i | string literal - +0x0ABC | 73 20 62 69 74 5F 66 6C | | s bit_fl - +0x0AC4 | 61 67 20 77 69 74 68 20 | | ag with - +0x0ACC | 76 61 6C 75 65 20 28 31 | | value (1 - +0x0AD4 | 75 20 3C 3C 20 31 29 | | u << 1) - +0x0ADB | 00 | char | 0x00 (0) | string terminator + +0x09E4 | 27 00 00 00 | uint32_t | 0x00000027 (39) | length of string + +0x09E8 | 20 47 72 65 65 6E 20 69 | char[39] | Green i | string literal + +0x09F0 | 73 20 62 69 74 5F 66 6C | | s bit_fl + +0x09F8 | 61 67 20 77 69 74 68 20 | | ag with + +0x0A00 | 76 61 6C 75 65 20 28 31 | | value (1 + +0x0A08 | 75 20 3C 3C 20 31 29 | | u << 1) + +0x0A0F | 00 | char | 0x00 (0) | string terminator string (reflection.EnumVal.documentation): - +0x0ADC | 13 00 00 00 | uint32_t | 0x00000013 (19) | length of string - +0x0AE0 | 20 5C 62 72 69 65 66 20 | char[19] | \brief | string literal - +0x0AE8 | 63 6F 6C 6F 72 20 47 72 | | color Gr - +0x0AF0 | 65 65 6E | | een - +0x0AF3 | 00 | char | 0x00 (0) | string terminator + +0x0A10 | 13 00 00 00 | uint32_t | 0x00000013 (19) | length of string + +0x0A14 | 20 5C 62 72 69 65 66 20 | char[19] | \brief | string literal + +0x0A1C | 63 6F 6C 6F 72 20 47 72 | | color Gr + +0x0A24 | 65 65 6E | | een + +0x0A27 | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x0AF4 | 14 FF FF FF | SOffset32 | 0xFFFFFF14 (-236) Loc: +0x0BE0 | offset to vtable - +0x0AF8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) - +0x0AFC | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x0A28 | 30 FF FF FF | SOffset32 | 0xFFFFFF30 (-208) Loc: +0x0AF8 | offset to vtable + +0x0A2C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) + +0x0A30 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.EnumVal.name): - +0x0B00 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string - +0x0B04 | 47 72 65 65 6E | char[5] | Green | string literal - +0x0B09 | 00 | char | 0x00 (0) | string terminator + +0x0A34 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string + +0x0A38 | 47 72 65 65 6E | char[5] | Green | string literal + +0x0A3D | 00 | char | 0x00 (0) | string terminator + +padding: + +0x0A3E | 00 00 | uint8_t[2] | .. | padding vtable (reflection.EnumVal): - +0x0B0A | 0E 00 | uint16_t | 0x000E (14) | size of this vtable - +0x0B0C | 1C 00 | uint16_t | 0x001C (28) | size of referring table - +0x0B0E | 04 00 | VOffset16 | 0x0004 (4) | offset to field `name` (id: 0) - +0x0B10 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `value` (id: 1) - +0x0B12 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `object` (id: 2) (Obj) - +0x0B14 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `union_type` (id: 3) - +0x0B16 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `documentation` (id: 4) + +0x0A40 | 0C 00 | uint16_t | 0x000C (12) | size of this vtable + +0x0A42 | 14 00 | uint16_t | 0x0014 (20) | size of referring table + +0x0A44 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `name` (id: 0) + +0x0A46 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `value` (id: 1) + +0x0A48 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `object` (id: 2) (Obj) + +0x0A4A | 08 00 | VOffset16 | 0x0008 (8) | offset to field `union_type` (id: 3) table (reflection.EnumVal): - +0x0B18 | 0E 00 00 00 | SOffset32 | 0x0000000E (14) Loc: +0x0B0A | offset to vtable - +0x0B1C | 28 00 00 00 | UOffset32 | 0x00000028 (40) Loc: +0x0B44 | offset to field `name` (string) - +0x0B20 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x0B38 | offset to field `union_type` (table) - +0x0B24 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x0B34 | offset to field `documentation` (vector) - +0x0B28 | 01 00 00 00 00 00 00 00 | int64_t | 0x0000000000000001 (1) | table field `value` (Long) - +0x0B30 | 00 00 00 00 | uint8_t[4] | .... | padding - -vector (reflection.EnumVal.documentation): - +0x0B34 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x0A4C | 0C 00 00 00 | SOffset32 | 0x0000000C (12) Loc: +0x0A40 | offset to vtable + +0x0A50 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: +0x0A6C | offset to field `name` (string) + +0x0A54 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x0A60 | offset to field `union_type` (table) + +0x0A58 | 01 00 00 00 00 00 00 00 | int64_t | 0x0000000000000001 (1) | table field `value` (Long) table (reflection.Type): - +0x0B38 | 58 FF FF FF | SOffset32 | 0xFFFFFF58 (-168) Loc: +0x0BE0 | offset to vtable - +0x0B3C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) - +0x0B40 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x0A60 | 68 FF FF FF | SOffset32 | 0xFFFFFF68 (-152) Loc: +0x0AF8 | offset to vtable + +0x0A64 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) + +0x0A68 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.EnumVal.name): - +0x0B44 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string - +0x0B48 | 52 65 64 | char[3] | Red | string literal - +0x0B4B | 00 | char | 0x00 (0) | string terminator + +0x0A6C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string + +0x0A70 | 52 65 64 | char[3] | Red | string literal + +0x0A73 | 00 | char | 0x00 (0) | string terminator padding: - +0x0B4C | 00 00 | uint8_t[2] | .. | padding + +0x0A74 | 00 00 | uint8_t[2] | .. | padding vtable (reflection.Enum): - +0x0B4E | 12 00 | uint16_t | 0x0012 (18) | size of this vtable - +0x0B50 | 18 00 | uint16_t | 0x0018 (24) | size of referring table - +0x0B52 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `name` (id: 0) - +0x0B54 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `values` (id: 1) - +0x0B56 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `is_union` (id: 2) (Bool) - +0x0B58 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `underlying_type` (id: 3) - +0x0B5A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `attributes` (id: 4) (Vector) - +0x0B5C | 10 00 | VOffset16 | 0x0010 (16) | offset to field `documentation` (id: 5) - +0x0B5E | 14 00 | VOffset16 | 0x0014 (20) | offset to field `declaration_file` (id: 6) + +0x0A76 | 12 00 | uint16_t | 0x0012 (18) | size of this vtable + +0x0A78 | 14 00 | uint16_t | 0x0014 (20) | size of referring table + +0x0A7A | 04 00 | VOffset16 | 0x0004 (4) | offset to field `name` (id: 0) + +0x0A7C | 08 00 | VOffset16 | 0x0008 (8) | offset to field `values` (id: 1) + +0x0A7E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `is_union` (id: 2) (Bool) + +0x0A80 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `underlying_type` (id: 3) + +0x0A82 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `attributes` (id: 4) (Vector) + +0x0A84 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `documentation` (id: 5) (Vector) + +0x0A86 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `declaration_file` (id: 6) table (reflection.Enum): - +0x0B60 | 12 00 00 00 | SOffset32 | 0x00000012 (18) Loc: +0x0B4E | offset to vtable - +0x0B64 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x0B98 | offset to field `name` (string) - +0x0B68 | 28 00 00 00 | UOffset32 | 0x00000028 (40) Loc: +0x0B90 | offset to field `values` (vector) - +0x0B6C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x0B7C | offset to field `underlying_type` (table) - +0x0B70 | 08 00 00 00 | UOffset32 | 0x00000008 (8) Loc: +0x0B78 | offset to field `documentation` (vector) - +0x0B74 | 58 31 00 00 | UOffset32 | 0x00003158 (12632) Loc: +0x3CCC | offset to field `declaration_file` (string) - -vector (reflection.Enum.documentation): - +0x0B78 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x0A88 | 12 00 00 00 | SOffset32 | 0x00000012 (18) Loc: +0x0A76 | offset to vtable + +0x0A8C | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: +0x0AB8 | offset to field `name` (string) + +0x0A90 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x0AB0 | offset to field `values` (vector) + +0x0A94 | 08 00 00 00 | UOffset32 | 0x00000008 (8) Loc: +0x0A9C | offset to field `underlying_type` (table) + +0x0A98 | D8 2D 00 00 | UOffset32 | 0x00002DD8 (11736) Loc: +0x3870 | offset to field `declaration_file` (string) table (reflection.Type): - +0x0B7C | C0 D1 FF FF | SOffset32 | 0xFFFFD1C0 (-11840) Loc: +0x39BC | offset to vtable - +0x0B80 | 00 00 00 | uint8_t[3] | ... | padding - +0x0B83 | 09 | uint8_t | 0x09 (9) | table field `base_type` (Byte) - +0x0B84 | 06 00 00 00 | uint32_t | 0x00000006 (6) | table field `index` (Int) - +0x0B88 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt) - +0x0B8C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x0A9C | F0 D4 FF FF | SOffset32 | 0xFFFFD4F0 (-11024) Loc: +0x35AC | offset to vtable + +0x0AA0 | 00 00 00 | uint8_t[3] | ... | padding + +0x0AA3 | 09 | uint8_t | 0x09 (9) | table field `base_type` (Byte) + +0x0AA4 | 06 00 00 00 | uint32_t | 0x00000006 (6) | table field `index` (Int) + +0x0AA8 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt) + +0x0AAC | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) vector (reflection.Enum.values): - +0x0B90 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x0B94 | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: +0x0BCC | offset to table[0] + +0x0AB0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x0AB4 | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: +0x0AEC | offset to table[0] string (reflection.Enum.name): - +0x0B98 | 21 00 00 00 | uint32_t | 0x00000021 (33) | length of string - +0x0B9C | 4D 79 47 61 6D 65 2E 4F | char[33] | MyGame.O | string literal - +0x0BA4 | 74 68 65 72 4E 61 6D 65 | | therName - +0x0BAC | 53 70 61 63 65 2E 46 72 | | Space.Fr - +0x0BB4 | 6F 6D 49 6E 63 6C 75 64 | | omInclud - +0x0BBC | 65 | | e - +0x0BBD | 00 | char | 0x00 (0) | string terminator + +0x0AB8 | 21 00 00 00 | uint32_t | 0x00000021 (33) | length of string + +0x0ABC | 4D 79 47 61 6D 65 2E 4F | char[33] | MyGame.O | string literal + +0x0AC4 | 74 68 65 72 4E 61 6D 65 | | therName + +0x0ACC | 53 70 61 63 65 2E 46 72 | | Space.Fr + +0x0AD4 | 6F 6D 49 6E 63 6C 75 64 | | omInclud + +0x0ADC | 65 | | e + +0x0ADD | 00 | char | 0x00 (0) | string terminator + +padding: + +0x0ADE | 00 00 | uint8_t[2] | .. | padding vtable (reflection.EnumVal): - +0x0BBE | 0E 00 | uint16_t | 0x000E (14) | size of this vtable - +0x0BC0 | 10 00 | uint16_t | 0x0010 (16) | size of referring table - +0x0BC2 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `name` (id: 0) - +0x0BC4 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `value` (id: 1) (Long) - +0x0BC6 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `object` (id: 2) (Obj) - +0x0BC8 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `union_type` (id: 3) - +0x0BCA | 0C 00 | VOffset16 | 0x000C (12) | offset to field `documentation` (id: 4) + +0x0AE0 | 0C 00 | uint16_t | 0x000C (12) | size of this vtable + +0x0AE2 | 0C 00 | uint16_t | 0x000C (12) | size of referring table + +0x0AE4 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `name` (id: 0) + +0x0AE6 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `value` (id: 1) (Long) + +0x0AE8 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `object` (id: 2) (Obj) + +0x0AEA | 08 00 | VOffset16 | 0x0008 (8) | offset to field `union_type` (id: 3) table (reflection.EnumVal): - +0x0BCC | 0E 00 00 00 | SOffset32 | 0x0000000E (14) Loc: +0x0BBE | offset to vtable - +0x0BD0 | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: +0x0BFC | offset to field `name` (string) - +0x0BD4 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: +0x0BF0 | offset to field `union_type` (table) - +0x0BD8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x0BDC | offset to field `documentation` (vector) - -vector (reflection.EnumVal.documentation): - +0x0BDC | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x0AEC | 0C 00 00 00 | SOffset32 | 0x0000000C (12) Loc: +0x0AE0 | offset to vtable + +0x0AF0 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x0B14 | offset to field `name` (string) + +0x0AF4 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x0B08 | offset to field `union_type` (table) vtable (reflection.Type): - +0x0BE0 | 10 00 | uint16_t | 0x0010 (16) | size of this vtable - +0x0BE2 | 0C 00 | uint16_t | 0x000C (12) | size of referring table - +0x0BE4 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `base_type` (id: 0) (Byte) - +0x0BE6 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `element` (id: 1) (Byte) - +0x0BE8 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `index` (id: 2) (Int) - +0x0BEA | 00 00 | VOffset16 | 0x0000 (0) | offset to field `fixed_length` (id: 3) (UShort) - +0x0BEC | 04 00 | VOffset16 | 0x0004 (4) | offset to field `base_size` (id: 4) - +0x0BEE | 08 00 | VOffset16 | 0x0008 (8) | offset to field `element_size` (id: 5) + +0x0AF8 | 10 00 | uint16_t | 0x0010 (16) | size of this vtable + +0x0AFA | 0C 00 | uint16_t | 0x000C (12) | size of referring table + +0x0AFC | 00 00 | VOffset16 | 0x0000 (0) | offset to field `base_type` (id: 0) (Byte) + +0x0AFE | 00 00 | VOffset16 | 0x0000 (0) | offset to field `element` (id: 1) (Byte) + +0x0B00 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `index` (id: 2) (Int) + +0x0B02 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `fixed_length` (id: 3) (UShort) + +0x0B04 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `base_size` (id: 4) + +0x0B06 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `element_size` (id: 5) table (reflection.Type): - +0x0BF0 | 10 00 00 00 | SOffset32 | 0x00000010 (16) Loc: +0x0BE0 | offset to vtable - +0x0BF4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) - +0x0BF8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x0B08 | 10 00 00 00 | SOffset32 | 0x00000010 (16) Loc: +0x0AF8 | offset to vtable + +0x0B0C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) + +0x0B10 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.EnumVal.name): - +0x0BFC | 0A 00 00 00 | uint32_t | 0x0000000A (10) | length of string - +0x0C00 | 49 6E 63 6C 75 64 65 56 | char[10] | IncludeV | string literal - +0x0C08 | 61 6C | | al - +0x0C0A | 00 | char | 0x00 (0) | string terminator + +0x0B14 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | length of string + +0x0B18 | 49 6E 63 6C 75 64 65 56 | char[10] | IncludeV | string literal + +0x0B20 | 61 6C | | al + +0x0B22 | 00 | char | 0x00 (0) | string terminator table (reflection.Object): - +0x0C0C | 2C D0 FF FF | SOffset32 | 0xFFFFD02C (-12244) Loc: +0x3BE0 | offset to vtable - +0x0C10 | 4C 00 00 00 | UOffset32 | 0x0000004C (76) Loc: +0x0C5C | offset to field `name` (string) - +0x0C14 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x0C28 | offset to field `fields` (vector) - +0x0C18 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `minalign` (Int) - +0x0C1C | 08 00 00 00 | UOffset32 | 0x00000008 (8) Loc: +0x0C24 | offset to field `documentation` (vector) - +0x0C20 | F8 2E 00 00 | UOffset32 | 0x00002EF8 (12024) Loc: +0x3B18 | offset to field `declaration_file` (string) - -vector (reflection.Object.documentation): - +0x0C24 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x0B24 | 8C D3 FF FF | SOffset32 | 0xFFFFD38C (-11380) Loc: +0x3798 | offset to vtable + +0x0B28 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x0B6C | offset to field `name` (string) + +0x0B2C | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x0B38 | offset to field `fields` (vector) + +0x0B30 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `minalign` (Int) + +0x0B34 | B0 2B 00 00 | UOffset32 | 0x00002BB0 (11184) Loc: +0x36E4 | offset to field `declaration_file` (string) vector (reflection.Object.fields): - +0x0C28 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | length of vector (# items) - +0x0C2C | E4 00 00 00 | UOffset32 | 0x000000E4 (228) Loc: +0x0D10 | offset to table[0] - +0x0C30 | B0 00 00 00 | UOffset32 | 0x000000B0 (176) Loc: +0x0CE0 | offset to table[1] - +0x0C34 | F0 01 00 00 | UOffset32 | 0x000001F0 (496) Loc: +0x0E24 | offset to table[2] - +0x0C38 | 90 01 00 00 | UOffset32 | 0x00000190 (400) Loc: +0x0DC8 | offset to table[3] - +0x0C3C | 30 01 00 00 | UOffset32 | 0x00000130 (304) Loc: +0x0D6C | offset to table[4] - +0x0C40 | 60 02 00 00 | UOffset32 | 0x00000260 (608) Loc: +0x0EA0 | offset to table[5] - +0x0C44 | B0 01 00 00 | UOffset32 | 0x000001B0 (432) Loc: +0x0DF4 | offset to table[6] - +0x0C48 | 54 01 00 00 | UOffset32 | 0x00000154 (340) Loc: +0x0D9C | offset to table[7] - +0x0C4C | F0 00 00 00 | UOffset32 | 0x000000F0 (240) Loc: +0x0D3C | offset to table[8] - +0x0C50 | 04 02 00 00 | UOffset32 | 0x00000204 (516) Loc: +0x0E54 | offset to table[9] - +0x0C54 | 5C 00 00 00 | UOffset32 | 0x0000005C (92) Loc: +0x0CB0 | offset to table[10] - +0x0C58 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x0C7C | offset to table[11] + +0x0B38 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | length of vector (# items) + +0x0B3C | CC 00 00 00 | UOffset32 | 0x000000CC (204) Loc: +0x0C08 | offset to table[0] + +0x0B40 | A0 00 00 00 | UOffset32 | 0x000000A0 (160) Loc: +0x0BE0 | offset to table[1] + +0x0B44 | A8 01 00 00 | UOffset32 | 0x000001A8 (424) Loc: +0x0CEC | offset to table[2] + +0x0B48 | 58 01 00 00 | UOffset32 | 0x00000158 (344) Loc: +0x0CA0 | offset to table[3] + +0x0B4C | 08 01 00 00 | UOffset32 | 0x00000108 (264) Loc: +0x0C54 | offset to table[4] + +0x0B50 | F8 01 00 00 | UOffset32 | 0x000001F8 (504) Loc: +0x0D48 | offset to table[5] + +0x0B54 | 70 01 00 00 | UOffset32 | 0x00000170 (368) Loc: +0x0CC4 | offset to table[6] + +0x0B58 | 24 01 00 00 | UOffset32 | 0x00000124 (292) Loc: +0x0C7C | offset to table[7] + +0x0B5C | D0 00 00 00 | UOffset32 | 0x000000D0 (208) Loc: +0x0C2C | offset to table[8] + +0x0B60 | B4 01 00 00 | UOffset32 | 0x000001B4 (436) Loc: +0x0D14 | offset to table[9] + +0x0B64 | 54 00 00 00 | UOffset32 | 0x00000054 (84) Loc: +0x0BB8 | offset to table[10] + +0x0B68 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x0B8C | offset to table[11] string (reflection.Object.name): - +0x0C5C | 1A 00 00 00 | uint32_t | 0x0000001A (26) | length of string - +0x0C60 | 4D 79 47 61 6D 65 2E 45 | char[26] | MyGame.E | string literal - +0x0C68 | 78 61 6D 70 6C 65 2E 54 | | xample.T - +0x0C70 | 79 70 65 41 6C 69 61 73 | | ypeAlias - +0x0C78 | 65 73 | | es - +0x0C7A | 00 | char | 0x00 (0) | string terminator + +0x0B6C | 1A 00 00 00 | uint32_t | 0x0000001A (26) | length of string + +0x0B70 | 4D 79 47 61 6D 65 2E 45 | char[26] | MyGame.E | string literal + +0x0B78 | 78 61 6D 70 6C 65 2E 54 | | xample.T + +0x0B80 | 79 70 65 41 6C 69 61 73 | | ypeAlias + +0x0B88 | 65 73 | | es + +0x0B8A | 00 | char | 0x00 (0) | string terminator table (reflection.Field): - +0x0C7C | 48 D7 FF FF | SOffset32 | 0xFFFFD748 (-10424) Loc: +0x3534 | offset to vtable - +0x0C80 | 00 00 00 | uint8_t[3] | ... | padding - +0x0C83 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x0C84 | 0B 00 | uint16_t | 0x000B (11) | table field `id` (UShort) - +0x0C86 | 1A 00 | uint16_t | 0x001A (26) | table field `offset` (UShort) - +0x0C88 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: +0x0CA4 | offset to field `name` (string) - +0x0C8C | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x0C98 | offset to field `type` (table) - +0x0C90 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x0C94 | offset to field `documentation` (vector) - -vector (reflection.Field.documentation): - +0x0C94 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x0B8C | DC D9 FF FF | SOffset32 | 0xFFFFD9DC (-9764) Loc: +0x31B0 | offset to vtable + +0x0B90 | 00 00 00 | uint8_t[3] | ... | padding + +0x0B93 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x0B94 | 0B 00 | uint16_t | 0x000B (11) | table field `id` (UShort) + +0x0B96 | 1A 00 | uint16_t | 0x001A (26) | table field `offset` (UShort) + +0x0B98 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x0BAC | offset to field `name` (string) + +0x0B9C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x0BA0 | offset to field `type` (table) table (reflection.Type): - +0x0C98 | 5C DD FF FF | SOffset32 | 0xFFFFDD5C (-8868) Loc: +0x2F3C | offset to vtable - +0x0C9C | 00 00 | uint8_t[2] | .. | padding - +0x0C9E | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) - +0x0C9F | 0C | uint8_t | 0x0C (12) | table field `element` (Byte) - +0x0CA0 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `element_size` (UInt) + +0x0BA0 | 60 DF FF FF | SOffset32 | 0xFFFFDF60 (-8352) Loc: +0x2C40 | offset to vtable + +0x0BA4 | 00 00 | uint8_t[2] | .. | padding + +0x0BA6 | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) + +0x0BA7 | 0C | uint8_t | 0x0C (12) | table field `element` (Byte) + +0x0BA8 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `element_size` (UInt) string (reflection.Field.name): - +0x0CA4 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string - +0x0CA8 | 76 66 36 34 | char[4] | vf64 | string literal - +0x0CAC | 00 | char | 0x00 (0) | string terminator + +0x0BAC | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string + +0x0BB0 | 76 66 36 34 | char[4] | vf64 | string literal + +0x0BB4 | 00 | char | 0x00 (0) | string terminator padding: - +0x0CAD | 00 00 00 | uint8_t[3] | ... | padding + +0x0BB5 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Field): - +0x0CB0 | 7C D7 FF FF | SOffset32 | 0xFFFFD77C (-10372) Loc: +0x3534 | offset to vtable - +0x0CB4 | 00 00 00 | uint8_t[3] | ... | padding - +0x0CB7 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x0CB8 | 0A 00 | uint16_t | 0x000A (10) | table field `id` (UShort) - +0x0CBA | 18 00 | uint16_t | 0x0018 (24) | table field `offset` (UShort) - +0x0CBC | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: +0x0CD8 | offset to field `name` (string) - +0x0CC0 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x0CCC | offset to field `type` (table) - +0x0CC4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x0CC8 | offset to field `documentation` (vector) - -vector (reflection.Field.documentation): - +0x0CC8 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x0BB8 | 08 DA FF FF | SOffset32 | 0xFFFFDA08 (-9720) Loc: +0x31B0 | offset to vtable + +0x0BBC | 00 00 00 | uint8_t[3] | ... | padding + +0x0BBF | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x0BC0 | 0A 00 | uint16_t | 0x000A (10) | table field `id` (UShort) + +0x0BC2 | 18 00 | uint16_t | 0x0018 (24) | table field `offset` (UShort) + +0x0BC4 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x0BD8 | offset to field `name` (string) + +0x0BC8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x0BCC | offset to field `type` (table) table (reflection.Type): - +0x0CCC | 90 DD FF FF | SOffset32 | 0xFFFFDD90 (-8816) Loc: +0x2F3C | offset to vtable - +0x0CD0 | 00 00 | uint8_t[2] | .. | padding - +0x0CD2 | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) - +0x0CD3 | 03 | uint8_t | 0x03 (3) | table field `element` (Byte) - +0x0CD4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x0BCC | 8C DF FF FF | SOffset32 | 0xFFFFDF8C (-8308) Loc: +0x2C40 | offset to vtable + +0x0BD0 | 00 00 | uint8_t[2] | .. | padding + +0x0BD2 | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) + +0x0BD3 | 03 | uint8_t | 0x03 (3) | table field `element` (Byte) + +0x0BD4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x0CD8 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x0CDC | 76 38 | char[2] | v8 | string literal - +0x0CDE | 00 | char | 0x00 (0) | string terminator + +0x0BD8 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x0BDC | 76 38 | char[2] | v8 | string literal + +0x0BDE | 00 | char | 0x00 (0) | string terminator table (reflection.Field): - +0x0CE0 | 92 D4 FF FF | SOffset32 | 0xFFFFD492 (-11118) Loc: +0x384E | offset to vtable - +0x0CE4 | 09 00 | uint16_t | 0x0009 (9) | table field `id` (UShort) - +0x0CE6 | 16 00 | uint16_t | 0x0016 (22) | table field `offset` (UShort) - +0x0CE8 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x0D08 | offset to field `name` (string) - +0x0CEC | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x0CF8 | offset to field `type` (table) - +0x0CF0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x0CF4 | offset to field `documentation` (vector) - -vector (reflection.Field.documentation): - +0x0CF4 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x0BE0 | 64 D7 FF FF | SOffset32 | 0xFFFFD764 (-10396) Loc: +0x347C | offset to vtable + +0x0BE4 | 09 00 | uint16_t | 0x0009 (9) | table field `id` (UShort) + +0x0BE6 | 16 00 | uint16_t | 0x0016 (22) | table field `offset` (UShort) + +0x0BE8 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x0C00 | offset to field `name` (string) + +0x0BEC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x0BF0 | offset to field `type` (table) table (reflection.Type): - +0x0CF8 | 5C D2 FF FF | SOffset32 | 0xFFFFD25C (-11684) Loc: +0x3A9C | offset to vtable - +0x0CFC | 00 00 00 | uint8_t[3] | ... | padding - +0x0CFF | 0C | uint8_t | 0x0C (12) | table field `base_type` (Byte) - +0x0D00 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt) - +0x0D04 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x0BF0 | 7C D5 FF FF | SOffset32 | 0xFFFFD57C (-10884) Loc: +0x3674 | offset to vtable + +0x0BF4 | 00 00 00 | uint8_t[3] | ... | padding + +0x0BF7 | 0C | uint8_t | 0x0C (12) | table field `base_type` (Byte) + +0x0BF8 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt) + +0x0BFC | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x0D08 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string - +0x0D0C | 66 36 34 | char[3] | f64 | string literal - +0x0D0F | 00 | char | 0x00 (0) | string terminator + +0x0C00 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string + +0x0C04 | 66 36 34 | char[3] | f64 | string literal + +0x0C07 | 00 | char | 0x00 (0) | string terminator table (reflection.Field): - +0x0D10 | C2 D4 FF FF | SOffset32 | 0xFFFFD4C2 (-11070) Loc: +0x384E | offset to vtable - +0x0D14 | 08 00 | uint16_t | 0x0008 (8) | table field `id` (UShort) - +0x0D16 | 14 00 | uint16_t | 0x0014 (20) | table field `offset` (UShort) - +0x0D18 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: +0x0D34 | offset to field `name` (string) - +0x0D1C | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x0D28 | offset to field `type` (table) - +0x0D20 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x0D24 | offset to field `documentation` (vector) - -vector (reflection.Field.documentation): - +0x0D24 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x0C08 | 8C D7 FF FF | SOffset32 | 0xFFFFD78C (-10356) Loc: +0x347C | offset to vtable + +0x0C0C | 08 00 | uint16_t | 0x0008 (8) | table field `id` (UShort) + +0x0C0E | 14 00 | uint16_t | 0x0014 (20) | table field `offset` (UShort) + +0x0C10 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x0C24 | offset to field `name` (string) + +0x0C14 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x0C18 | offset to field `type` (table) table (reflection.Type): - +0x0D28 | D4 CF FF FF | SOffset32 | 0xFFFFCFD4 (-12332) Loc: +0x3D54 | offset to vtable - +0x0D2C | 00 00 00 | uint8_t[3] | ... | padding - +0x0D2F | 0B | uint8_t | 0x0B (11) | table field `base_type` (Byte) - +0x0D30 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x0C18 | 3C D3 FF FF | SOffset32 | 0xFFFFD33C (-11460) Loc: +0x38DC | offset to vtable + +0x0C1C | 00 00 00 | uint8_t[3] | ... | padding + +0x0C1F | 0B | uint8_t | 0x0B (11) | table field `base_type` (Byte) + +0x0C20 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x0D34 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string - +0x0D38 | 66 33 32 | char[3] | f32 | string literal - +0x0D3B | 00 | char | 0x00 (0) | string terminator + +0x0C24 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string + +0x0C28 | 66 33 32 | char[3] | f32 | string literal + +0x0C2B | 00 | char | 0x00 (0) | string terminator table (reflection.Field): - +0x0D3C | EE D4 FF FF | SOffset32 | 0xFFFFD4EE (-11026) Loc: +0x384E | offset to vtable - +0x0D40 | 07 00 | uint16_t | 0x0007 (7) | table field `id` (UShort) - +0x0D42 | 12 00 | uint16_t | 0x0012 (18) | table field `offset` (UShort) - +0x0D44 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x0D64 | offset to field `name` (string) - +0x0D48 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x0D54 | offset to field `type` (table) - +0x0D4C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x0D50 | offset to field `documentation` (vector) - -vector (reflection.Field.documentation): - +0x0D50 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x0C2C | B0 D7 FF FF | SOffset32 | 0xFFFFD7B0 (-10320) Loc: +0x347C | offset to vtable + +0x0C30 | 07 00 | uint16_t | 0x0007 (7) | table field `id` (UShort) + +0x0C32 | 12 00 | uint16_t | 0x0012 (18) | table field `offset` (UShort) + +0x0C34 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x0C4C | offset to field `name` (string) + +0x0C38 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x0C3C | offset to field `type` (table) table (reflection.Type): - +0x0D54 | B8 D2 FF FF | SOffset32 | 0xFFFFD2B8 (-11592) Loc: +0x3A9C | offset to vtable - +0x0D58 | 00 00 00 | uint8_t[3] | ... | padding - +0x0D5B | 0A | uint8_t | 0x0A (10) | table field `base_type` (Byte) - +0x0D5C | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt) - +0x0D60 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x0C3C | C8 D5 FF FF | SOffset32 | 0xFFFFD5C8 (-10808) Loc: +0x3674 | offset to vtable + +0x0C40 | 00 00 00 | uint8_t[3] | ... | padding + +0x0C43 | 0A | uint8_t | 0x0A (10) | table field `base_type` (Byte) + +0x0C44 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt) + +0x0C48 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x0D64 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string - +0x0D68 | 75 36 34 | char[3] | u64 | string literal - +0x0D6B | 00 | char | 0x00 (0) | string terminator + +0x0C4C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string + +0x0C50 | 75 36 34 | char[3] | u64 | string literal + +0x0C53 | 00 | char | 0x00 (0) | string terminator table (reflection.Field): - +0x0D6C | 1E D5 FF FF | SOffset32 | 0xFFFFD51E (-10978) Loc: +0x384E | offset to vtable - +0x0D70 | 06 00 | uint16_t | 0x0006 (6) | table field `id` (UShort) - +0x0D72 | 10 00 | uint16_t | 0x0010 (16) | table field `offset` (UShort) - +0x0D74 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x0D94 | offset to field `name` (string) - +0x0D78 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x0D84 | offset to field `type` (table) - +0x0D7C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x0D80 | offset to field `documentation` (vector) - -vector (reflection.Field.documentation): - +0x0D80 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x0C54 | D8 D7 FF FF | SOffset32 | 0xFFFFD7D8 (-10280) Loc: +0x347C | offset to vtable + +0x0C58 | 06 00 | uint16_t | 0x0006 (6) | table field `id` (UShort) + +0x0C5A | 10 00 | uint16_t | 0x0010 (16) | table field `offset` (UShort) + +0x0C5C | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x0C74 | offset to field `name` (string) + +0x0C60 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x0C64 | offset to field `type` (table) table (reflection.Type): - +0x0D84 | E8 D2 FF FF | SOffset32 | 0xFFFFD2E8 (-11544) Loc: +0x3A9C | offset to vtable - +0x0D88 | 00 00 00 | uint8_t[3] | ... | padding - +0x0D8B | 09 | uint8_t | 0x09 (9) | table field `base_type` (Byte) - +0x0D8C | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt) - +0x0D90 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x0C64 | F0 D5 FF FF | SOffset32 | 0xFFFFD5F0 (-10768) Loc: +0x3674 | offset to vtable + +0x0C68 | 00 00 00 | uint8_t[3] | ... | padding + +0x0C6B | 09 | uint8_t | 0x09 (9) | table field `base_type` (Byte) + +0x0C6C | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt) + +0x0C70 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x0D94 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string - +0x0D98 | 69 36 34 | char[3] | i64 | string literal - +0x0D9B | 00 | char | 0x00 (0) | string terminator + +0x0C74 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string + +0x0C78 | 69 36 34 | char[3] | i64 | string literal + +0x0C7B | 00 | char | 0x00 (0) | string terminator table (reflection.Field): - +0x0D9C | 4E D5 FF FF | SOffset32 | 0xFFFFD54E (-10930) Loc: +0x384E | offset to vtable - +0x0DA0 | 05 00 | uint16_t | 0x0005 (5) | table field `id` (UShort) - +0x0DA2 | 0E 00 | uint16_t | 0x000E (14) | table field `offset` (UShort) - +0x0DA4 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: +0x0DC0 | offset to field `name` (string) - +0x0DA8 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x0DB4 | offset to field `type` (table) - +0x0DAC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x0DB0 | offset to field `documentation` (vector) - -vector (reflection.Field.documentation): - +0x0DB0 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x0C7C | 00 D8 FF FF | SOffset32 | 0xFFFFD800 (-10240) Loc: +0x347C | offset to vtable + +0x0C80 | 05 00 | uint16_t | 0x0005 (5) | table field `id` (UShort) + +0x0C82 | 0E 00 | uint16_t | 0x000E (14) | table field `offset` (UShort) + +0x0C84 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x0C98 | offset to field `name` (string) + +0x0C88 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x0C8C | offset to field `type` (table) table (reflection.Type): - +0x0DB4 | 60 D0 FF FF | SOffset32 | 0xFFFFD060 (-12192) Loc: +0x3D54 | offset to vtable - +0x0DB8 | 00 00 00 | uint8_t[3] | ... | padding - +0x0DBB | 08 | uint8_t | 0x08 (8) | table field `base_type` (Byte) - +0x0DBC | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x0C8C | B0 D3 FF FF | SOffset32 | 0xFFFFD3B0 (-11344) Loc: +0x38DC | offset to vtable + +0x0C90 | 00 00 00 | uint8_t[3] | ... | padding + +0x0C93 | 08 | uint8_t | 0x08 (8) | table field `base_type` (Byte) + +0x0C94 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x0DC0 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string - +0x0DC4 | 75 33 32 | char[3] | u32 | string literal - +0x0DC7 | 00 | char | 0x00 (0) | string terminator + +0x0C98 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string + +0x0C9C | 75 33 32 | char[3] | u32 | string literal + +0x0C9F | 00 | char | 0x00 (0) | string terminator table (reflection.Field): - +0x0DC8 | 7A D5 FF FF | SOffset32 | 0xFFFFD57A (-10886) Loc: +0x384E | offset to vtable - +0x0DCC | 04 00 | uint16_t | 0x0004 (4) | table field `id` (UShort) - +0x0DCE | 0C 00 | uint16_t | 0x000C (12) | table field `offset` (UShort) - +0x0DD0 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: +0x0DEC | offset to field `name` (string) - +0x0DD4 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x0DE0 | offset to field `type` (table) - +0x0DD8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x0DDC | offset to field `documentation` (vector) - -vector (reflection.Field.documentation): - +0x0DDC | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x0CA0 | 24 D8 FF FF | SOffset32 | 0xFFFFD824 (-10204) Loc: +0x347C | offset to vtable + +0x0CA4 | 04 00 | uint16_t | 0x0004 (4) | table field `id` (UShort) + +0x0CA6 | 0C 00 | uint16_t | 0x000C (12) | table field `offset` (UShort) + +0x0CA8 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x0CBC | offset to field `name` (string) + +0x0CAC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x0CB0 | offset to field `type` (table) table (reflection.Type): - +0x0DE0 | 8C D0 FF FF | SOffset32 | 0xFFFFD08C (-12148) Loc: +0x3D54 | offset to vtable - +0x0DE4 | 00 00 00 | uint8_t[3] | ... | padding - +0x0DE7 | 07 | uint8_t | 0x07 (7) | table field `base_type` (Byte) - +0x0DE8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x0CB0 | D4 D3 FF FF | SOffset32 | 0xFFFFD3D4 (-11308) Loc: +0x38DC | offset to vtable + +0x0CB4 | 00 00 00 | uint8_t[3] | ... | padding + +0x0CB7 | 07 | uint8_t | 0x07 (7) | table field `base_type` (Byte) + +0x0CB8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x0DEC | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string - +0x0DF0 | 69 33 32 | char[3] | i32 | string literal - +0x0DF3 | 00 | char | 0x00 (0) | string terminator + +0x0CBC | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string + +0x0CC0 | 69 33 32 | char[3] | i32 | string literal + +0x0CC3 | 00 | char | 0x00 (0) | string terminator table (reflection.Field): - +0x0DF4 | A6 D5 FF FF | SOffset32 | 0xFFFFD5A6 (-10842) Loc: +0x384E | offset to vtable - +0x0DF8 | 03 00 | uint16_t | 0x0003 (3) | table field `id` (UShort) - +0x0DFA | 0A 00 | uint16_t | 0x000A (10) | table field `offset` (UShort) - +0x0DFC | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x0E1C | offset to field `name` (string) - +0x0E00 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x0E0C | offset to field `type` (table) - +0x0E04 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x0E08 | offset to field `documentation` (vector) - -vector (reflection.Field.documentation): - +0x0E08 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x0CC4 | 48 D8 FF FF | SOffset32 | 0xFFFFD848 (-10168) Loc: +0x347C | offset to vtable + +0x0CC8 | 03 00 | uint16_t | 0x0003 (3) | table field `id` (UShort) + +0x0CCA | 0A 00 | uint16_t | 0x000A (10) | table field `offset` (UShort) + +0x0CCC | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x0CE4 | offset to field `name` (string) + +0x0CD0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x0CD4 | offset to field `type` (table) table (reflection.Type): - +0x0E0C | 70 D3 FF FF | SOffset32 | 0xFFFFD370 (-11408) Loc: +0x3A9C | offset to vtable - +0x0E10 | 00 00 00 | uint8_t[3] | ... | padding - +0x0E13 | 06 | uint8_t | 0x06 (6) | table field `base_type` (Byte) - +0x0E14 | 02 00 00 00 | uint32_t | 0x00000002 (2) | table field `base_size` (UInt) - +0x0E18 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x0CD4 | 60 D6 FF FF | SOffset32 | 0xFFFFD660 (-10656) Loc: +0x3674 | offset to vtable + +0x0CD8 | 00 00 00 | uint8_t[3] | ... | padding + +0x0CDB | 06 | uint8_t | 0x06 (6) | table field `base_type` (Byte) + +0x0CDC | 02 00 00 00 | uint32_t | 0x00000002 (2) | table field `base_size` (UInt) + +0x0CE0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x0E1C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string - +0x0E20 | 75 31 36 | char[3] | u16 | string literal - +0x0E23 | 00 | char | 0x00 (0) | string terminator + +0x0CE4 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string + +0x0CE8 | 75 31 36 | char[3] | u16 | string literal + +0x0CEB | 00 | char | 0x00 (0) | string terminator table (reflection.Field): - +0x0E24 | D6 D5 FF FF | SOffset32 | 0xFFFFD5D6 (-10794) Loc: +0x384E | offset to vtable - +0x0E28 | 02 00 | uint16_t | 0x0002 (2) | table field `id` (UShort) - +0x0E2A | 08 00 | uint16_t | 0x0008 (8) | table field `offset` (UShort) - +0x0E2C | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x0E4C | offset to field `name` (string) - +0x0E30 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x0E3C | offset to field `type` (table) - +0x0E34 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x0E38 | offset to field `documentation` (vector) - -vector (reflection.Field.documentation): - +0x0E38 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x0CEC | 70 D8 FF FF | SOffset32 | 0xFFFFD870 (-10128) Loc: +0x347C | offset to vtable + +0x0CF0 | 02 00 | uint16_t | 0x0002 (2) | table field `id` (UShort) + +0x0CF2 | 08 00 | uint16_t | 0x0008 (8) | table field `offset` (UShort) + +0x0CF4 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x0D0C | offset to field `name` (string) + +0x0CF8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x0CFC | offset to field `type` (table) table (reflection.Type): - +0x0E3C | A0 D3 FF FF | SOffset32 | 0xFFFFD3A0 (-11360) Loc: +0x3A9C | offset to vtable - +0x0E40 | 00 00 00 | uint8_t[3] | ... | padding - +0x0E43 | 05 | uint8_t | 0x05 (5) | table field `base_type` (Byte) - +0x0E44 | 02 00 00 00 | uint32_t | 0x00000002 (2) | table field `base_size` (UInt) - +0x0E48 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x0CFC | 88 D6 FF FF | SOffset32 | 0xFFFFD688 (-10616) Loc: +0x3674 | offset to vtable + +0x0D00 | 00 00 00 | uint8_t[3] | ... | padding + +0x0D03 | 05 | uint8_t | 0x05 (5) | table field `base_type` (Byte) + +0x0D04 | 02 00 00 00 | uint32_t | 0x00000002 (2) | table field `base_size` (UInt) + +0x0D08 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x0E4C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string - +0x0E50 | 69 31 36 | char[3] | i16 | string literal - +0x0E53 | 00 | char | 0x00 (0) | string terminator + +0x0D0C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string + +0x0D10 | 69 31 36 | char[3] | i16 | string literal + +0x0D13 | 00 | char | 0x00 (0) | string terminator table (reflection.Field): - +0x0E54 | 06 D6 FF FF | SOffset32 | 0xFFFFD606 (-10746) Loc: +0x384E | offset to vtable - +0x0E58 | 01 00 | uint16_t | 0x0001 (1) | table field `id` (UShort) - +0x0E5A | 06 00 | uint16_t | 0x0006 (6) | table field `offset` (UShort) - +0x0E5C | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x0E7C | offset to field `name` (string) - +0x0E60 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x0E6C | offset to field `type` (table) - +0x0E64 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x0E68 | offset to field `documentation` (vector) - -vector (reflection.Field.documentation): - +0x0E68 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x0D14 | 98 D8 FF FF | SOffset32 | 0xFFFFD898 (-10088) Loc: +0x347C | offset to vtable + +0x0D18 | 01 00 | uint16_t | 0x0001 (1) | table field `id` (UShort) + +0x0D1A | 06 00 | uint16_t | 0x0006 (6) | table field `offset` (UShort) + +0x0D1C | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x0D34 | offset to field `name` (string) + +0x0D20 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x0D24 | offset to field `type` (table) table (reflection.Type): - +0x0E6C | D0 D3 FF FF | SOffset32 | 0xFFFFD3D0 (-11312) Loc: +0x3A9C | offset to vtable - +0x0E70 | 00 00 00 | uint8_t[3] | ... | padding - +0x0E73 | 04 | uint8_t | 0x04 (4) | table field `base_type` (Byte) - +0x0E74 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) - +0x0E78 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x0D24 | B0 D6 FF FF | SOffset32 | 0xFFFFD6B0 (-10576) Loc: +0x3674 | offset to vtable + +0x0D28 | 00 00 00 | uint8_t[3] | ... | padding + +0x0D2B | 04 | uint8_t | 0x04 (4) | table field `base_type` (Byte) + +0x0D2C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) + +0x0D30 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x0E7C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x0E80 | 75 38 | char[2] | u8 | string literal - +0x0E82 | 00 | char | 0x00 (0) | string terminator - -padding: - +0x0E83 | 00 00 00 | uint8_t[3] | ... | padding + +0x0D34 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x0D38 | 75 38 | char[2] | u8 | string literal + +0x0D3A | 00 | char | 0x00 (0) | string terminator vtable (reflection.Field): - +0x0E86 | 1A 00 | uint16_t | 0x001A (26) | size of this vtable - +0x0E88 | 14 00 | uint16_t | 0x0014 (20) | size of referring table - +0x0E8A | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0) - +0x0E8C | 0C 00 | VOffset16 | 0x000C (12) | offset to field `type` (id: 1) - +0x0E8E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `id` (id: 2) (UShort) - +0x0E90 | 06 00 | VOffset16 | 0x0006 (6) | offset to field `offset` (id: 3) - +0x0E92 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) (Long) - +0x0E94 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) (Double) - +0x0E96 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) - +0x0E98 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) (Bool) - +0x0E9A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 8) (Bool) - +0x0E9C | 00 00 | VOffset16 | 0x0000 (0) | offset to field `attributes` (id: 9) (Vector) - +0x0E9E | 10 00 | VOffset16 | 0x0010 (16) | offset to field `documentation` (id: 10) + +0x0D3C | 0C 00 | uint16_t | 0x000C (12) | size of this vtable + +0x0D3E | 10 00 | uint16_t | 0x0010 (16) | size of referring table + +0x0D40 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0) + +0x0D42 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `type` (id: 1) + +0x0D44 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `id` (id: 2) (UShort) + +0x0D46 | 06 00 | VOffset16 | 0x0006 (6) | offset to field `offset` (id: 3) table (reflection.Field): - +0x0EA0 | 1A 00 00 00 | SOffset32 | 0x0000001A (26) Loc: +0x0E86 | offset to vtable - +0x0EA4 | 00 00 | uint8_t[2] | .. | padding - +0x0EA6 | 04 00 | uint16_t | 0x0004 (4) | table field `offset` (UShort) - +0x0EA8 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x0EC8 | offset to field `name` (string) - +0x0EAC | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x0EB8 | offset to field `type` (table) - +0x0EB0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x0EB4 | offset to field `documentation` (vector) - -vector (reflection.Field.documentation): - +0x0EB4 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x0D48 | 0C 00 00 00 | SOffset32 | 0x0000000C (12) Loc: +0x0D3C | offset to vtable + +0x0D4C | 00 00 | uint8_t[2] | .. | padding + +0x0D4E | 04 00 | uint16_t | 0x0004 (4) | table field `offset` (UShort) + +0x0D50 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x0D68 | offset to field `name` (string) + +0x0D54 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x0D58 | offset to field `type` (table) table (reflection.Type): - +0x0EB8 | 1C D4 FF FF | SOffset32 | 0xFFFFD41C (-11236) Loc: +0x3A9C | offset to vtable - +0x0EBC | 00 00 00 | uint8_t[3] | ... | padding - +0x0EBF | 03 | uint8_t | 0x03 (3) | table field `base_type` (Byte) - +0x0EC0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) - +0x0EC4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x0D58 | E4 D6 FF FF | SOffset32 | 0xFFFFD6E4 (-10524) Loc: +0x3674 | offset to vtable + +0x0D5C | 00 00 00 | uint8_t[3] | ... | padding + +0x0D5F | 03 | uint8_t | 0x03 (3) | table field `base_type` (Byte) + +0x0D60 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) + +0x0D64 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x0EC8 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x0ECC | 69 38 | char[2] | i8 | string literal - +0x0ECE | 00 | char | 0x00 (0) | string terminator + +0x0D68 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x0D6C | 69 38 | char[2] | i8 | string literal + +0x0D6E | 00 | char | 0x00 (0) | string terminator + +vtable (reflection.Object): + +0x0D70 | 14 00 | uint16_t | 0x0014 (20) | size of this vtable + +0x0D72 | 18 00 | uint16_t | 0x0018 (24) | size of referring table + +0x0D74 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `name` (id: 0) + +0x0D76 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `fields` (id: 1) + +0x0D78 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `is_struct` (id: 2) (Bool) + +0x0D7A | 0C 00 | VOffset16 | 0x000C (12) | offset to field `minalign` (id: 3) + +0x0D7C | 00 00 | VOffset16 | 0x0000 (0) | offset to field `bytesize` (id: 4) (Int) + +0x0D7E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `attributes` (id: 5) (Vector) + +0x0D80 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `documentation` (id: 6) + +0x0D82 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `declaration_file` (id: 7) table (reflection.Object): - +0x0ED0 | F0 D2 FF FF | SOffset32 | 0xFFFFD2F0 (-11536) Loc: +0x3BE0 | offset to vtable - +0x0ED4 | 50 01 00 00 | UOffset32 | 0x00000150 (336) Loc: +0x1024 | offset to field `name` (string) - +0x0ED8 | 50 00 00 00 | UOffset32 | 0x00000050 (80) Loc: +0x0F28 | offset to field `fields` (vector) - +0x0EDC | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `minalign` (Int) - +0x0EE0 | 08 00 00 00 | UOffset32 | 0x00000008 (8) Loc: +0x0EE8 | offset to field `documentation` (vector) - +0x0EE4 | 34 2C 00 00 | UOffset32 | 0x00002C34 (11316) Loc: +0x3B18 | offset to field `declaration_file` (string) + +0x0D84 | 14 00 00 00 | SOffset32 | 0x00000014 (20) Loc: +0x0D70 | offset to vtable + +0x0D88 | 50 01 00 00 | UOffset32 | 0x00000150 (336) Loc: +0x0ED8 | offset to field `name` (string) + +0x0D8C | 50 00 00 00 | UOffset32 | 0x00000050 (80) Loc: +0x0DDC | offset to field `fields` (vector) + +0x0D90 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `minalign` (Int) + +0x0D94 | 08 00 00 00 | UOffset32 | 0x00000008 (8) Loc: +0x0D9C | offset to field `documentation` (vector) + +0x0D98 | 4C 29 00 00 | UOffset32 | 0x0000294C (10572) Loc: +0x36E4 | offset to field `declaration_file` (string) vector (reflection.Object.documentation): - +0x0EE8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x0EEC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x0EF0 | offset to string[0] + +0x0D9C | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x0DA0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x0DA4 | offset to string[0] string (reflection.Object.documentation): - +0x0EF0 | 33 00 00 00 | uint32_t | 0x00000033 (51) | length of string - +0x0EF4 | 20 61 6E 20 65 78 61 6D | char[51] | an exam | string literal - +0x0EFC | 70 6C 65 20 64 6F 63 75 | | ple docu - +0x0F04 | 6D 65 6E 74 61 74 69 6F | | mentatio - +0x0F0C | 6E 20 63 6F 6D 6D 65 6E | | n commen - +0x0F14 | 74 3A 20 22 6D 6F 6E 73 | | t: "mons - +0x0F1C | 74 65 72 20 6F 62 6A 65 | | ter obje - +0x0F24 | 63 74 22 | | ct" - +0x0F27 | 00 | char | 0x00 (0) | string terminator + +0x0DA4 | 33 00 00 00 | uint32_t | 0x00000033 (51) | length of string + +0x0DA8 | 20 61 6E 20 65 78 61 6D | char[51] | an exam | string literal + +0x0DB0 | 70 6C 65 20 64 6F 63 75 | | ple docu + +0x0DB8 | 6D 65 6E 74 61 74 69 6F | | mentatio + +0x0DC0 | 6E 20 63 6F 6D 6D 65 6E | | n commen + +0x0DC8 | 74 3A 20 22 6D 6F 6E 73 | | t: "mons + +0x0DD0 | 74 65 72 20 6F 62 6A 65 | | ter obje + +0x0DD8 | 63 74 22 | | ct" + +0x0DDB | 00 | char | 0x00 (0) | string terminator vector (reflection.Object.fields): - +0x0F28 | 3E 00 00 00 | uint32_t | 0x0000003E (62) | length of vector (# items) - +0x0F2C | 38 08 00 00 | UOffset32 | 0x00000838 (2104) Loc: +0x1764 | offset to table[0] - +0x0F30 | 9C 08 00 00 | UOffset32 | 0x0000089C (2204) Loc: +0x17CC | offset to table[1] - +0x0F34 | 04 09 00 00 | UOffset32 | 0x00000904 (2308) Loc: +0x1838 | offset to table[2] - +0x0F38 | 64 09 00 00 | UOffset32 | 0x00000964 (2404) Loc: +0x189C | offset to table[3] - +0x0F3C | 60 0D 00 00 | UOffset32 | 0x00000D60 (3424) Loc: +0x1C9C | offset to table[4] - +0x0F40 | 30 1F 00 00 | UOffset32 | 0x00001F30 (7984) Loc: +0x2E70 | offset to table[5] - +0x0F44 | FC 00 00 00 | UOffset32 | 0x000000FC (252) Loc: +0x1040 | offset to table[6] - +0x0F48 | 3C 1C 00 00 | UOffset32 | 0x00001C3C (7228) Loc: +0x2B84 | offset to table[7] - +0x0F4C | F8 12 00 00 | UOffset32 | 0x000012F8 (4856) Loc: +0x2244 | offset to table[8] - +0x0F50 | 30 20 00 00 | UOffset32 | 0x00002030 (8240) Loc: +0x2F80 | offset to table[9] - +0x0F54 | 74 21 00 00 | UOffset32 | 0x00002174 (8564) Loc: +0x30C8 | offset to table[10] - +0x0F58 | B0 03 00 00 | UOffset32 | 0x000003B0 (944) Loc: +0x1308 | offset to table[11] - +0x0F5C | B4 02 00 00 | UOffset32 | 0x000002B4 (692) Loc: +0x1210 | offset to table[12] - +0x0F60 | 98 1F 00 00 | UOffset32 | 0x00001F98 (8088) Loc: +0x2EF8 | offset to table[13] - +0x0F64 | F0 04 00 00 | UOffset32 | 0x000004F0 (1264) Loc: +0x1454 | offset to table[14] - +0x0F68 | 70 04 00 00 | UOffset32 | 0x00000470 (1136) Loc: +0x13D8 | offset to table[15] - +0x0F6C | DC 21 00 00 | UOffset32 | 0x000021DC (8668) Loc: +0x3148 | offset to table[16] - +0x0F70 | DC 20 00 00 | UOffset32 | 0x000020DC (8412) Loc: +0x304C | offset to table[17] - +0x0F74 | FC 03 00 00 | UOffset32 | 0x000003FC (1020) Loc: +0x1370 | offset to table[18] - +0x0F78 | 50 05 00 00 | UOffset32 | 0x00000550 (1360) Loc: +0x14C8 | offset to table[19] - +0x0F7C | AC 01 00 00 | UOffset32 | 0x000001AC (428) Loc: +0x1128 | offset to table[20] - +0x0F80 | 30 01 00 00 | UOffset32 | 0x00000130 (304) Loc: +0x10B0 | offset to table[21] - +0x0F84 | B0 0A 00 00 | UOffset32 | 0x00000AB0 (2736) Loc: +0x1A34 | offset to table[22] - +0x0F88 | 20 11 00 00 | UOffset32 | 0x00001120 (4384) Loc: +0x20A8 | offset to table[23] - +0x0F8C | 40 22 00 00 | UOffset32 | 0x00002240 (8768) Loc: +0x31CC | offset to table[24] - +0x0F90 | 08 03 00 00 | UOffset32 | 0x00000308 (776) Loc: +0x1298 | offset to table[25] - +0x0F94 | 04 02 00 00 | UOffset32 | 0x00000204 (516) Loc: +0x1198 | offset to table[26] - +0x0F98 | C4 05 00 00 | UOffset32 | 0x000005C4 (1476) Loc: +0x155C | offset to table[27] - +0x0F9C | F4 06 00 00 | UOffset32 | 0x000006F4 (1780) Loc: +0x1690 | offset to table[28] - +0x0FA0 | A0 0F 00 00 | UOffset32 | 0x00000FA0 (4000) Loc: +0x1F40 | offset to table[29] - +0x0FA4 | F0 1D 00 00 | UOffset32 | 0x00001DF0 (7664) Loc: +0x2D94 | offset to table[30] - +0x0FA8 | 7C 1D 00 00 | UOffset32 | 0x00001D7C (7548) Loc: +0x2D24 | offset to table[31] - +0x0FAC | 38 12 00 00 | UOffset32 | 0x00001238 (4664) Loc: +0x21E4 | offset to table[32] - +0x0FB0 | 5C 1E 00 00 | UOffset32 | 0x00001E5C (7772) Loc: +0x2E0C | offset to table[33] - +0x0FB4 | 28 15 00 00 | UOffset32 | 0x00001528 (5416) Loc: +0x24DC | offset to table[34] - +0x0FB8 | 10 13 00 00 | UOffset32 | 0x00001310 (4880) Loc: +0x22C8 | offset to table[35] - +0x0FBC | 00 1D 00 00 | UOffset32 | 0x00001D00 (7424) Loc: +0x2CBC | offset to table[36] - +0x0FC0 | 78 13 00 00 | UOffset32 | 0x00001378 (4984) Loc: +0x2338 | offset to table[37] - +0x0FC4 | 20 1C 00 00 | UOffset32 | 0x00001C20 (7200) Loc: +0x2BE4 | offset to table[38] - +0x0FC8 | 58 1A 00 00 | UOffset32 | 0x00001A58 (6744) Loc: +0x2A20 | offset to table[39] - +0x0FCC | B4 1A 00 00 | UOffset32 | 0x00001AB4 (6836) Loc: +0x2A80 | offset to table[40] - +0x0FD0 | A8 14 00 00 | UOffset32 | 0x000014A8 (5288) Loc: +0x2478 | offset to table[41] - +0x0FD4 | 24 14 00 00 | UOffset32 | 0x00001424 (5156) Loc: +0x23F8 | offset to table[42] - +0x0FD8 | C8 13 00 00 | UOffset32 | 0x000013C8 (5064) Loc: +0x23A0 | offset to table[43] - +0x0FDC | B8 19 00 00 | UOffset32 | 0x000019B8 (6584) Loc: +0x2994 | offset to table[44] - +0x0FE0 | 78 17 00 00 | UOffset32 | 0x00001778 (6008) Loc: +0x2758 | offset to table[45] - +0x0FE4 | 94 18 00 00 | UOffset32 | 0x00001894 (6292) Loc: +0x2878 | offset to table[46] - +0x0FE8 | F0 15 00 00 | UOffset32 | 0x000015F0 (5616) Loc: +0x25D8 | offset to table[47] - +0x0FEC | 1C 19 00 00 | UOffset32 | 0x0000191C (6428) Loc: +0x2908 | offset to table[48] - +0x0FF0 | 7C 16 00 00 | UOffset32 | 0x0000167C (5756) Loc: +0x266C | offset to table[49] - +0x0FF4 | F4 17 00 00 | UOffset32 | 0x000017F4 (6132) Loc: +0x27E8 | offset to table[50] - +0x0FF8 | 4C 15 00 00 | UOffset32 | 0x0000154C (5452) Loc: +0x2544 | offset to table[51] - +0x0FFC | E8 1A 00 00 | UOffset32 | 0x00001AE8 (6888) Loc: +0x2AE4 | offset to table[52] - +0x1000 | D0 05 00 00 | UOffset32 | 0x000005D0 (1488) Loc: +0x15D0 | offset to table[53] - +0x1004 | 58 0B 00 00 | UOffset32 | 0x00000B58 (2904) Loc: +0x1B5C | offset to table[54] - +0x1008 | 10 11 00 00 | UOffset32 | 0x00001110 (4368) Loc: +0x2118 | offset to table[55] - +0x100C | F0 06 00 00 | UOffset32 | 0x000006F0 (1776) Loc: +0x16FC | offset to table[56] - +0x1010 | 70 11 00 00 | UOffset32 | 0x00001170 (4464) Loc: +0x2180 | offset to table[57] - +0x1014 | F0 08 00 00 | UOffset32 | 0x000008F0 (2288) Loc: +0x1904 | offset to table[58] - +0x1018 | 20 10 00 00 | UOffset32 | 0x00001020 (4128) Loc: +0x2038 | offset to table[59] - +0x101C | 74 0D 00 00 | UOffset32 | 0x00000D74 (3444) Loc: +0x1D90 | offset to table[60] - +0x1020 | 24 0E 00 00 | UOffset32 | 0x00000E24 (3620) Loc: +0x1E44 | offset to table[61] + +0x0DDC | 3E 00 00 00 | uint32_t | 0x0000003E (62) | length of vector (# items) + +0x0DE0 | A8 07 00 00 | UOffset32 | 0x000007A8 (1960) Loc: +0x1588 | offset to table[0] + +0x0DE4 | 04 08 00 00 | UOffset32 | 0x00000804 (2052) Loc: +0x15E8 | offset to table[1] + +0x0DE8 | 64 08 00 00 | UOffset32 | 0x00000864 (2148) Loc: +0x164C | offset to table[2] + +0x0DEC | BC 08 00 00 | UOffset32 | 0x000008BC (2236) Loc: +0x16A8 | offset to table[3] + +0x0DF0 | 98 0C 00 00 | UOffset32 | 0x00000C98 (3224) Loc: +0x1A88 | offset to table[4] + +0x0DF4 | 90 1D 00 00 | UOffset32 | 0x00001D90 (7568) Loc: +0x2B84 | offset to table[5] + +0x0DF8 | FC 00 00 00 | UOffset32 | 0x000000FC (252) Loc: +0x0EF4 | offset to table[6] + +0x0DFC | 90 1A 00 00 | UOffset32 | 0x00001A90 (6800) Loc: +0x288C | offset to table[7] + +0x0E00 | E8 11 00 00 | UOffset32 | 0x000011E8 (4584) Loc: +0x1FE8 | offset to table[8] + +0x0E04 | 80 1E 00 00 | UOffset32 | 0x00001E80 (7808) Loc: +0x2C84 | offset to table[9] + +0x0E08 | B4 1F 00 00 | UOffset32 | 0x00001FB4 (8116) Loc: +0x2DBC | offset to table[10] + +0x0E0C | 68 03 00 00 | UOffset32 | 0x00000368 (872) Loc: +0x1174 | offset to table[11] + +0x0E10 | 94 02 00 00 | UOffset32 | 0x00000294 (660) Loc: +0x10A4 | offset to table[12] + +0x0E14 | F0 1D 00 00 | UOffset32 | 0x00001DF0 (7664) Loc: +0x2C04 | offset to table[13] + +0x0E18 | A8 04 00 00 | UOffset32 | 0x000004A8 (1192) Loc: +0x12C0 | offset to table[14] + +0x0E1C | 30 04 00 00 | UOffset32 | 0x00000430 (1072) Loc: +0x124C | offset to table[15] + +0x0E20 | 0C 20 00 00 | UOffset32 | 0x0000200C (8204) Loc: +0x2E2C | offset to table[16] + +0x0E24 | 24 1F 00 00 | UOffset32 | 0x00001F24 (7972) Loc: +0x2D48 | offset to table[17] + +0x0E28 | C4 03 00 00 | UOffset32 | 0x000003C4 (964) Loc: +0x11EC | offset to table[18] + +0x0E2C | 00 05 00 00 | UOffset32 | 0x00000500 (1280) Loc: +0x132C | offset to table[19] + +0x0E30 | 9C 01 00 00 | UOffset32 | 0x0000019C (412) Loc: +0x0FCC | offset to table[20] + +0x0E34 | 28 01 00 00 | UOffset32 | 0x00000128 (296) Loc: +0x0F5C | offset to table[21] + +0x0E38 | F8 09 00 00 | UOffset32 | 0x000009F8 (2552) Loc: +0x1830 | offset to table[22] + +0x0E3C | 30 10 00 00 | UOffset32 | 0x00001030 (4144) Loc: +0x1E6C | offset to table[23] + +0x0E40 | 64 20 00 00 | UOffset32 | 0x00002064 (8292) Loc: +0x2EA4 | offset to table[24] + +0x0E44 | C8 02 00 00 | UOffset32 | 0x000002C8 (712) Loc: +0x110C | offset to table[25] + +0x0E48 | EC 01 00 00 | UOffset32 | 0x000001EC (492) Loc: +0x1034 | offset to table[26] + +0x0E4C | 6C 05 00 00 | UOffset32 | 0x0000056C (1388) Loc: +0x13B8 | offset to table[27] + +0x0E50 | 74 06 00 00 | UOffset32 | 0x00000674 (1652) Loc: +0x14C4 | offset to table[28] + +0x0E54 | C0 0E 00 00 | UOffset32 | 0x00000EC0 (3776) Loc: +0x1D14 | offset to table[29] + +0x0E58 | 48 1C 00 00 | UOffset32 | 0x00001C48 (7240) Loc: +0x2AA0 | offset to table[30] + +0x0E5C | DC 1B 00 00 | UOffset32 | 0x00001BDC (7132) Loc: +0x2A38 | offset to table[31] + +0x0E60 | 30 11 00 00 | UOffset32 | 0x00001130 (4400) Loc: +0x1F90 | offset to table[32] + +0x0E64 | AC 1C 00 00 | UOffset32 | 0x00001CAC (7340) Loc: +0x2B10 | offset to table[33] + +0x0E68 | DC 13 00 00 | UOffset32 | 0x000013DC (5084) Loc: +0x2244 | offset to table[34] + +0x0E6C | F8 11 00 00 | UOffset32 | 0x000011F8 (4600) Loc: +0x2064 | offset to table[35] + +0x0E70 | 68 1B 00 00 | UOffset32 | 0x00001B68 (7016) Loc: +0x29D8 | offset to table[36] + +0x0E74 | 58 12 00 00 | UOffset32 | 0x00001258 (4696) Loc: +0x20CC | offset to table[37] + +0x0E78 | 88 1A 00 00 | UOffset32 | 0x00001A88 (6792) Loc: +0x2900 | offset to table[38] + +0x0E7C | C4 18 00 00 | UOffset32 | 0x000018C4 (6340) Loc: +0x2740 | offset to table[39] + +0x0E80 | 18 19 00 00 | UOffset32 | 0x00001918 (6424) Loc: +0x2798 | offset to table[40] + +0x0E84 | 68 13 00 00 | UOffset32 | 0x00001368 (4968) Loc: +0x21EC | offset to table[41] + +0x0E88 | F4 12 00 00 | UOffset32 | 0x000012F4 (4852) Loc: +0x217C | offset to table[42] + +0x0E8C | A0 12 00 00 | UOffset32 | 0x000012A0 (4768) Loc: +0x212C | offset to table[43] + +0x0E90 | 2C 18 00 00 | UOffset32 | 0x0000182C (6188) Loc: +0x26BC | offset to table[44] + +0x0E94 | 0C 16 00 00 | UOffset32 | 0x0000160C (5644) Loc: +0x24A0 | offset to table[45] + +0x0E98 | 18 17 00 00 | UOffset32 | 0x00001718 (5912) Loc: +0x25B0 | offset to table[46] + +0x0E9C | 94 14 00 00 | UOffset32 | 0x00001494 (5268) Loc: +0x2330 | offset to table[47] + +0x0EA0 | 98 17 00 00 | UOffset32 | 0x00001798 (6040) Loc: +0x2638 | offset to table[48] + +0x0EA4 | 18 15 00 00 | UOffset32 | 0x00001518 (5400) Loc: +0x23BC | offset to table[49] + +0x0EA8 | 80 16 00 00 | UOffset32 | 0x00001680 (5760) Loc: +0x2528 | offset to table[50] + +0x0EAC | F8 13 00 00 | UOffset32 | 0x000013F8 (5112) Loc: +0x22A4 | offset to table[51] + +0x0EB0 | 44 19 00 00 | UOffset32 | 0x00001944 (6468) Loc: +0x27F4 | offset to table[52] + +0x0EB4 | 70 05 00 00 | UOffset32 | 0x00000570 (1392) Loc: +0x1424 | offset to table[53] + +0x0EB8 | 98 0A 00 00 | UOffset32 | 0x00000A98 (2712) Loc: +0x1950 | offset to table[54] + +0x0EBC | 18 10 00 00 | UOffset32 | 0x00001018 (4120) Loc: +0x1ED4 | offset to table[55] + +0x0EC0 | 68 06 00 00 | UOffset32 | 0x00000668 (1640) Loc: +0x1528 | offset to table[56] + +0x0EC4 | 70 10 00 00 | UOffset32 | 0x00001070 (4208) Loc: +0x1F34 | offset to table[57] + +0x0EC8 | 40 08 00 00 | UOffset32 | 0x00000840 (2112) Loc: +0x1708 | offset to table[58] + +0x0ECC | 38 0F 00 00 | UOffset32 | 0x00000F38 (3896) Loc: +0x1E04 | offset to table[59] + +0x0ED0 | A4 0C 00 00 | UOffset32 | 0x00000CA4 (3236) Loc: +0x1B74 | offset to table[60] + +0x0ED4 | 4C 0D 00 00 | UOffset32 | 0x00000D4C (3404) Loc: +0x1C20 | offset to table[61] string (reflection.Object.name): - +0x1024 | 16 00 00 00 | uint32_t | 0x00000016 (22) | length of string - +0x1028 | 4D 79 47 61 6D 65 2E 45 | char[22] | MyGame.E | string literal - +0x1030 | 78 61 6D 70 6C 65 2E 4D | | xample.M - +0x1038 | 6F 6E 73 74 65 72 | | onster - +0x103E | 00 | char | 0x00 (0) | string terminator + +0x0ED8 | 16 00 00 00 | uint32_t | 0x00000016 (22) | length of string + +0x0EDC | 4D 79 47 61 6D 65 2E 45 | char[22] | MyGame.E | string literal + +0x0EE4 | 78 61 6D 70 6C 65 2E 4D | | xample.M + +0x0EEC | 6F 6E 73 74 65 72 | | onster + +0x0EF2 | 00 | char | 0x00 (0) | string terminator table (reflection.Field): - +0x1040 | C2 FD FF FF | SOffset32 | 0xFFFFFDC2 (-574) Loc: +0x127E | offset to vtable - +0x1044 | 3D 00 | uint16_t | 0x003D (61) | table field `id` (UShort) - +0x1046 | 7E 00 | uint16_t | 0x007E (126) | table field `offset` (UShort) - +0x1048 | 50 00 00 00 | UOffset32 | 0x00000050 (80) Loc: +0x1098 | offset to field `name` (string) - +0x104C | 3C 00 00 00 | UOffset32 | 0x0000003C (60) Loc: +0x1088 | offset to field `type` (table) - +0x1050 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x1064 | offset to field `attributes` (vector) - +0x1054 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x1060 | offset to field `documentation` (vector) - +0x1058 | 00 00 00 00 00 00 F0 7F | double | 0x7FF0000000000000 (inf) | table field `default_real` (Double) - -vector (reflection.Field.documentation): - +0x1060 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x0EF4 | 20 ED FF FF | SOffset32 | 0xFFFFED20 (-4832) Loc: +0x21D4 | offset to vtable + +0x0EF8 | 3D 00 | uint16_t | 0x003D (61) | table field `id` (UShort) + +0x0EFA | 7E 00 | uint16_t | 0x007E (126) | table field `offset` (UShort) + +0x0EFC | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: +0x0F44 | offset to field `name` (string) + +0x0F00 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x0F34 | offset to field `type` (table) + +0x0F04 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x0F10 | offset to field `attributes` (vector) + +0x0F08 | 00 00 00 00 00 00 F0 7F | double | 0x7FF0000000000000 (inf) | table field `default_real` (Double) vector (reflection.Field.attributes): - +0x1064 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x1068 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x106C | offset to table[0] + +0x0F10 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x0F14 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x0F18 | offset to table[0] table (reflection.KeyValue): - +0x106C | 50 D7 FF FF | SOffset32 | 0xFFFFD750 (-10416) Loc: +0x391C | offset to vtable - +0x1070 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1080 | offset to field `key` (string) - +0x1074 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1078 | offset to field `value` (string) + +0x0F18 | 50 D6 FF FF | SOffset32 | 0xFFFFD650 (-10672) Loc: +0x38C8 | offset to vtable + +0x0F1C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x0F2C | offset to field `key` (string) + +0x0F20 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x0F24 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1078 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x107C | 36 31 | char[2] | 61 | string literal - +0x107E | 00 | char | 0x00 (0) | string terminator + +0x0F24 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x0F28 | 36 31 | char[2] | 61 | string literal + +0x0F2A | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x1080 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x1084 | 69 64 | char[2] | id | string literal - +0x1086 | 00 | char | 0x00 (0) | string terminator + +0x0F2C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x0F30 | 69 64 | char[2] | id | string literal + +0x0F32 | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x1088 | EC D5 FF FF | SOffset32 | 0xFFFFD5EC (-10772) Loc: +0x3A9C | offset to vtable - +0x108C | 00 00 00 | uint8_t[3] | ... | padding - +0x108F | 0C | uint8_t | 0x0C (12) | table field `base_type` (Byte) - +0x1090 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt) - +0x1094 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x0F34 | C0 D8 FF FF | SOffset32 | 0xFFFFD8C0 (-10048) Loc: +0x3674 | offset to vtable + +0x0F38 | 00 00 00 | uint8_t[3] | ... | padding + +0x0F3B | 0C | uint8_t | 0x0C (12) | table field `base_type` (Byte) + +0x0F3C | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt) + +0x0F40 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x1098 | 12 00 00 00 | uint32_t | 0x00000012 (18) | length of string - +0x109C | 64 6F 75 62 6C 65 5F 69 | char[18] | double_i | string literal - +0x10A4 | 6E 66 5F 64 65 66 61 75 | | nf_defau - +0x10AC | 6C 74 | | lt - +0x10AE | 00 | char | 0x00 (0) | string terminator + +0x0F44 | 12 00 00 00 | uint32_t | 0x00000012 (18) | length of string + +0x0F48 | 64 6F 75 62 6C 65 5F 69 | char[18] | double_i | string literal + +0x0F50 | 6E 66 5F 64 65 66 61 75 | | nf_defau + +0x0F58 | 6C 74 | | lt + +0x0F5A | 00 | char | 0x00 (0) | string terminator table (reflection.Field): - +0x10B0 | 52 EC FF FF | SOffset32 | 0xFFFFEC52 (-5038) Loc: +0x245E | offset to vtable - +0x10B4 | 3C 00 | uint16_t | 0x003C (60) | table field `id` (UShort) - +0x10B6 | 7C 00 | uint16_t | 0x007C (124) | table field `offset` (UShort) - +0x10B8 | 50 00 00 00 | UOffset32 | 0x00000050 (80) Loc: +0x1108 | offset to field `name` (string) - +0x10BC | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: +0x10FC | offset to field `type` (table) - +0x10C0 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x10D8 | offset to field `attributes` (vector) - +0x10C4 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x10D4 | offset to field `documentation` (vector) - +0x10C8 | 00 00 00 00 00 00 F0 FF | double | 0xFFF0000000000000 (-inf) | table field `default_real` (Double) - +0x10D0 | 00 00 00 00 | uint8_t[4] | .... | padding - -vector (reflection.Field.documentation): - +0x10D4 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x0F5C | 88 FD FF FF | SOffset32 | 0xFFFFFD88 (-632) Loc: +0x11D4 | offset to vtable + +0x0F60 | 3C 00 | uint16_t | 0x003C (60) | table field `id` (UShort) + +0x0F62 | 7C 00 | uint16_t | 0x007C (124) | table field `offset` (UShort) + +0x0F64 | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: +0x0FAC | offset to field `name` (string) + +0x0F68 | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: +0x0FA0 | offset to field `type` (table) + +0x0F6C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x0F7C | offset to field `attributes` (vector) + +0x0F70 | 00 00 00 00 00 00 F0 FF | double | 0xFFF0000000000000 (-inf) | table field `default_real` (Double) + +0x0F78 | 00 00 00 00 | uint8_t[4] | .... | padding vector (reflection.Field.attributes): - +0x10D8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x10DC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x10E0 | offset to table[0] + +0x0F7C | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x0F80 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x0F84 | offset to table[0] table (reflection.KeyValue): - +0x10E0 | C4 D7 FF FF | SOffset32 | 0xFFFFD7C4 (-10300) Loc: +0x391C | offset to vtable - +0x10E4 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x10F4 | offset to field `key` (string) - +0x10E8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x10EC | offset to field `value` (string) + +0x0F84 | BC D6 FF FF | SOffset32 | 0xFFFFD6BC (-10564) Loc: +0x38C8 | offset to vtable + +0x0F88 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x0F98 | offset to field `key` (string) + +0x0F8C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x0F90 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x10EC | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x10F0 | 36 30 | char[2] | 60 | string literal - +0x10F2 | 00 | char | 0x00 (0) | string terminator + +0x0F90 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x0F94 | 36 30 | char[2] | 60 | string literal + +0x0F96 | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x10F4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x10F8 | 69 64 | char[2] | id | string literal - +0x10FA | 00 | char | 0x00 (0) | string terminator + +0x0F98 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x0F9C | 69 64 | char[2] | id | string literal + +0x0F9E | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x10FC | A8 D3 FF FF | SOffset32 | 0xFFFFD3A8 (-11352) Loc: +0x3D54 | offset to vtable - +0x1100 | 00 00 00 | uint8_t[3] | ... | padding - +0x1103 | 0B | uint8_t | 0x0B (11) | table field `base_type` (Byte) - +0x1104 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x0FA0 | C4 D6 FF FF | SOffset32 | 0xFFFFD6C4 (-10556) Loc: +0x38DC | offset to vtable + +0x0FA4 | 00 00 00 | uint8_t[3] | ... | padding + +0x0FA7 | 0B | uint8_t | 0x0B (11) | table field `base_type` (Byte) + +0x0FA8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x1108 | 19 00 00 00 | uint32_t | 0x00000019 (25) | length of string - +0x110C | 6E 65 67 61 74 69 76 65 | char[25] | negative | string literal - +0x1114 | 5F 69 6E 66 69 6E 69 74 | | _infinit - +0x111C | 79 5F 64 65 66 61 75 6C | | y_defaul - +0x1124 | 74 | | t - +0x1125 | 00 | char | 0x00 (0) | string terminator + +0x0FAC | 19 00 00 00 | uint32_t | 0x00000019 (25) | length of string + +0x0FB0 | 6E 65 67 61 74 69 76 65 | char[25] | negative | string literal + +0x0FB8 | 5F 69 6E 66 69 6E 69 74 | | _infinit + +0x0FC0 | 79 5F 64 65 66 61 75 6C | | y_defaul + +0x0FC8 | 74 | | t + +0x0FC9 | 00 | char | 0x00 (0) | string terminator padding: - +0x1126 | 00 00 | uint8_t[2] | .. | padding + +0x0FCA | 00 00 | uint8_t[2] | .. | padding table (reflection.Field): - +0x1128 | AA FE FF FF | SOffset32 | 0xFFFFFEAA (-342) Loc: +0x127E | offset to vtable - +0x112C | 3B 00 | uint16_t | 0x003B (59) | table field `id` (UShort) - +0x112E | 7A 00 | uint16_t | 0x007A (122) | table field `offset` (UShort) - +0x1130 | 4C 00 00 00 | UOffset32 | 0x0000004C (76) Loc: +0x117C | offset to field `name` (string) - +0x1134 | 3C 00 00 00 | UOffset32 | 0x0000003C (60) Loc: +0x1170 | offset to field `type` (table) - +0x1138 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x114C | offset to field `attributes` (vector) - +0x113C | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x1148 | offset to field `documentation` (vector) - +0x1140 | 00 00 00 00 00 00 F0 FF | double | 0xFFF0000000000000 (-inf) | table field `default_real` (Double) - -vector (reflection.Field.documentation): - +0x1148 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x0FCC | F8 ED FF FF | SOffset32 | 0xFFFFEDF8 (-4616) Loc: +0x21D4 | offset to vtable + +0x0FD0 | 3B 00 | uint16_t | 0x003B (59) | table field `id` (UShort) + +0x0FD2 | 7A 00 | uint16_t | 0x007A (122) | table field `offset` (UShort) + +0x0FD4 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x1018 | offset to field `name` (string) + +0x0FD8 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x100C | offset to field `type` (table) + +0x0FDC | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x0FE8 | offset to field `attributes` (vector) + +0x0FE0 | 00 00 00 00 00 00 F0 FF | double | 0xFFF0000000000000 (-inf) | table field `default_real` (Double) vector (reflection.Field.attributes): - +0x114C | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x1150 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1154 | offset to table[0] + +0x0FE8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x0FEC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x0FF0 | offset to table[0] table (reflection.KeyValue): - +0x1154 | 38 D8 FF FF | SOffset32 | 0xFFFFD838 (-10184) Loc: +0x391C | offset to vtable - +0x1158 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1168 | offset to field `key` (string) - +0x115C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1160 | offset to field `value` (string) + +0x0FF0 | 28 D7 FF FF | SOffset32 | 0xFFFFD728 (-10456) Loc: +0x38C8 | offset to vtable + +0x0FF4 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1004 | offset to field `key` (string) + +0x0FF8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x0FFC | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1160 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x1164 | 35 39 | char[2] | 59 | string literal - +0x1166 | 00 | char | 0x00 (0) | string terminator + +0x0FFC | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1000 | 35 39 | char[2] | 59 | string literal + +0x1002 | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x1168 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x116C | 69 64 | char[2] | id | string literal - +0x116E | 00 | char | 0x00 (0) | string terminator + +0x1004 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1008 | 69 64 | char[2] | id | string literal + +0x100A | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x1170 | 1C D4 FF FF | SOffset32 | 0xFFFFD41C (-11236) Loc: +0x3D54 | offset to vtable - +0x1174 | 00 00 00 | uint8_t[3] | ... | padding - +0x1177 | 0B | uint8_t | 0x0B (11) | table field `base_type` (Byte) - +0x1178 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x100C | 30 D7 FF FF | SOffset32 | 0xFFFFD730 (-10448) Loc: +0x38DC | offset to vtable + +0x1010 | 00 00 00 | uint8_t[3] | ... | padding + +0x1013 | 0B | uint8_t | 0x0B (11) | table field `base_type` (Byte) + +0x1014 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x117C | 14 00 00 00 | uint32_t | 0x00000014 (20) | length of string - +0x1180 | 6E 65 67 61 74 69 76 65 | char[20] | negative | string literal - +0x1188 | 5F 69 6E 66 5F 64 65 66 | | _inf_def - +0x1190 | 61 75 6C 74 | | ault - +0x1194 | 00 | char | 0x00 (0) | string terminator + +0x1018 | 14 00 00 00 | uint32_t | 0x00000014 (20) | length of string + +0x101C | 6E 65 67 61 74 69 76 65 | char[20] | negative | string literal + +0x1024 | 5F 69 6E 66 5F 64 65 66 | | _inf_def + +0x102C | 61 75 6C 74 | | ault + +0x1030 | 00 | char | 0x00 (0) | string terminator padding: - +0x1195 | 00 00 00 | uint8_t[3] | ... | padding + +0x1031 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Field): - +0x1198 | 3A ED FF FF | SOffset32 | 0xFFFFED3A (-4806) Loc: +0x245E | offset to vtable - +0x119C | 3A 00 | uint16_t | 0x003A (58) | table field `id` (UShort) - +0x119E | 78 00 | uint16_t | 0x0078 (120) | table field `offset` (UShort) - +0x11A0 | 50 00 00 00 | UOffset32 | 0x00000050 (80) Loc: +0x11F0 | offset to field `name` (string) - +0x11A4 | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: +0x11E4 | offset to field `type` (table) - +0x11A8 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x11C0 | offset to field `attributes` (vector) - +0x11AC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x11BC | offset to field `documentation` (vector) - +0x11B0 | 00 00 00 00 00 00 F0 7F | double | 0x7FF0000000000000 (inf) | table field `default_real` (Double) - +0x11B8 | 00 00 00 00 | uint8_t[4] | .... | padding - -vector (reflection.Field.documentation): - +0x11BC | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x1034 | 60 FE FF FF | SOffset32 | 0xFFFFFE60 (-416) Loc: +0x11D4 | offset to vtable + +0x1038 | 3A 00 | uint16_t | 0x003A (58) | table field `id` (UShort) + +0x103A | 78 00 | uint16_t | 0x0078 (120) | table field `offset` (UShort) + +0x103C | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: +0x1084 | offset to field `name` (string) + +0x1040 | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: +0x1078 | offset to field `type` (table) + +0x1044 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1054 | offset to field `attributes` (vector) + +0x1048 | 00 00 00 00 00 00 F0 7F | double | 0x7FF0000000000000 (inf) | table field `default_real` (Double) + +0x1050 | 00 00 00 00 | uint8_t[4] | .... | padding vector (reflection.Field.attributes): - +0x11C0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x11C4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x11C8 | offset to table[0] + +0x1054 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x1058 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x105C | offset to table[0] table (reflection.KeyValue): - +0x11C8 | AC D8 FF FF | SOffset32 | 0xFFFFD8AC (-10068) Loc: +0x391C | offset to vtable - +0x11CC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x11DC | offset to field `key` (string) - +0x11D0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x11D4 | offset to field `value` (string) + +0x105C | 94 D7 FF FF | SOffset32 | 0xFFFFD794 (-10348) Loc: +0x38C8 | offset to vtable + +0x1060 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1070 | offset to field `key` (string) + +0x1064 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1068 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x11D4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x11D8 | 35 38 | char[2] | 58 | string literal - +0x11DA | 00 | char | 0x00 (0) | string terminator + +0x1068 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x106C | 35 38 | char[2] | 58 | string literal + +0x106E | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x11DC | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x11E0 | 69 64 | char[2] | id | string literal - +0x11E2 | 00 | char | 0x00 (0) | string terminator + +0x1070 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1074 | 69 64 | char[2] | id | string literal + +0x1076 | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x11E4 | 90 D4 FF FF | SOffset32 | 0xFFFFD490 (-11120) Loc: +0x3D54 | offset to vtable - +0x11E8 | 00 00 00 | uint8_t[3] | ... | padding - +0x11EB | 0B | uint8_t | 0x0B (11) | table field `base_type` (Byte) - +0x11EC | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x1078 | 9C D7 FF FF | SOffset32 | 0xFFFFD79C (-10340) Loc: +0x38DC | offset to vtable + +0x107C | 00 00 00 | uint8_t[3] | ... | padding + +0x107F | 0B | uint8_t | 0x0B (11) | table field `base_type` (Byte) + +0x1080 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x11F0 | 19 00 00 00 | uint32_t | 0x00000019 (25) | length of string - +0x11F4 | 70 6F 73 69 74 69 76 65 | char[25] | positive | string literal - +0x11FC | 5F 69 6E 66 69 6E 69 74 | | _infinit - +0x1204 | 79 5F 64 65 66 61 75 6C | | y_defaul - +0x120C | 74 | | t - +0x120D | 00 | char | 0x00 (0) | string terminator + +0x1084 | 19 00 00 00 | uint32_t | 0x00000019 (25) | length of string + +0x1088 | 70 6F 73 69 74 69 76 65 | char[25] | positive | string literal + +0x1090 | 5F 69 6E 66 69 6E 69 74 | | _infinit + +0x1098 | 79 5F 64 65 66 61 75 6C | | y_defaul + +0x10A0 | 74 | | t + +0x10A1 | 00 | char | 0x00 (0) | string terminator padding: - +0x120E | 00 00 | uint8_t[2] | .. | padding + +0x10A2 | 00 00 | uint8_t[2] | .. | padding table (reflection.Field): - +0x1210 | B2 ED FF FF | SOffset32 | 0xFFFFEDB2 (-4686) Loc: +0x245E | offset to vtable - +0x1214 | 39 00 | uint16_t | 0x0039 (57) | table field `id` (UShort) - +0x1216 | 76 00 | uint16_t | 0x0076 (118) | table field `offset` (UShort) - +0x1218 | 50 00 00 00 | UOffset32 | 0x00000050 (80) Loc: +0x1268 | offset to field `name` (string) - +0x121C | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: +0x125C | offset to field `type` (table) - +0x1220 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x1238 | offset to field `attributes` (vector) - +0x1224 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1234 | offset to field `documentation` (vector) - +0x1228 | 00 00 00 00 00 00 F0 7F | double | 0x7FF0000000000000 (inf) | table field `default_real` (Double) - +0x1230 | 00 00 00 00 | uint8_t[4] | .... | padding - -vector (reflection.Field.documentation): - +0x1234 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x10A4 | D0 FE FF FF | SOffset32 | 0xFFFFFED0 (-304) Loc: +0x11D4 | offset to vtable + +0x10A8 | 39 00 | uint16_t | 0x0039 (57) | table field `id` (UShort) + +0x10AA | 76 00 | uint16_t | 0x0076 (118) | table field `offset` (UShort) + +0x10AC | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: +0x10F4 | offset to field `name` (string) + +0x10B0 | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: +0x10E8 | offset to field `type` (table) + +0x10B4 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x10C4 | offset to field `attributes` (vector) + +0x10B8 | 00 00 00 00 00 00 F0 7F | double | 0x7FF0000000000000 (inf) | table field `default_real` (Double) + +0x10C0 | 00 00 00 00 | uint8_t[4] | .... | padding vector (reflection.Field.attributes): - +0x1238 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x123C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1240 | offset to table[0] + +0x10C4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x10C8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x10CC | offset to table[0] table (reflection.KeyValue): - +0x1240 | 24 D9 FF FF | SOffset32 | 0xFFFFD924 (-9948) Loc: +0x391C | offset to vtable - +0x1244 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1254 | offset to field `key` (string) - +0x1248 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x124C | offset to field `value` (string) + +0x10CC | 04 D8 FF FF | SOffset32 | 0xFFFFD804 (-10236) Loc: +0x38C8 | offset to vtable + +0x10D0 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x10E0 | offset to field `key` (string) + +0x10D4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x10D8 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x124C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x1250 | 35 37 | char[2] | 57 | string literal - +0x1252 | 00 | char | 0x00 (0) | string terminator + +0x10D8 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x10DC | 35 37 | char[2] | 57 | string literal + +0x10DE | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x1254 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x1258 | 69 64 | char[2] | id | string literal - +0x125A | 00 | char | 0x00 (0) | string terminator + +0x10E0 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x10E4 | 69 64 | char[2] | id | string literal + +0x10E6 | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x125C | 08 D5 FF FF | SOffset32 | 0xFFFFD508 (-11000) Loc: +0x3D54 | offset to vtable - +0x1260 | 00 00 00 | uint8_t[3] | ... | padding - +0x1263 | 0B | uint8_t | 0x0B (11) | table field `base_type` (Byte) - +0x1264 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x10E8 | 0C D8 FF FF | SOffset32 | 0xFFFFD80C (-10228) Loc: +0x38DC | offset to vtable + +0x10EC | 00 00 00 | uint8_t[3] | ... | padding + +0x10EF | 0B | uint8_t | 0x0B (11) | table field `base_type` (Byte) + +0x10F0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x1268 | 10 00 00 00 | uint32_t | 0x00000010 (16) | length of string - +0x126C | 69 6E 66 69 6E 69 74 79 | char[16] | infinity | string literal - +0x1274 | 5F 64 65 66 61 75 6C 74 | | _default - +0x127C | 00 | char | 0x00 (0) | string terminator + +0x10F4 | 10 00 00 00 | uint32_t | 0x00000010 (16) | length of string + +0x10F8 | 69 6E 66 69 6E 69 74 79 | char[16] | infinity | string literal + +0x1100 | 5F 64 65 66 61 75 6C 74 | | _default + +0x1108 | 00 | char | 0x00 (0) | string terminator -vtable (reflection.Field): - +0x127E | 1A 00 | uint16_t | 0x001A (26) | size of this vtable - +0x1280 | 20 00 | uint16_t | 0x0020 (32) | size of referring table - +0x1282 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0) - +0x1284 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `type` (id: 1) - +0x1286 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `id` (id: 2) - +0x1288 | 06 00 | VOffset16 | 0x0006 (6) | offset to field `offset` (id: 3) - +0x128A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) (Long) - +0x128C | 18 00 | VOffset16 | 0x0018 (24) | offset to field `default_real` (id: 5) - +0x128E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) - +0x1290 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) (Bool) - +0x1292 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 8) (Bool) - +0x1294 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `attributes` (id: 9) - +0x1296 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `documentation` (id: 10) +padding: + +0x1109 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Field): - +0x1298 | 1A 00 00 00 | SOffset32 | 0x0000001A (26) Loc: +0x127E | offset to vtable - +0x129C | 38 00 | uint16_t | 0x0038 (56) | table field `id` (UShort) - +0x129E | 74 00 | uint16_t | 0x0074 (116) | table field `offset` (UShort) - +0x12A0 | 4C 00 00 00 | UOffset32 | 0x0000004C (76) Loc: +0x12EC | offset to field `name` (string) - +0x12A4 | 3C 00 00 00 | UOffset32 | 0x0000003C (60) Loc: +0x12E0 | offset to field `type` (table) - +0x12A8 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x12BC | offset to field `attributes` (vector) - +0x12AC | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x12B8 | offset to field `documentation` (vector) - +0x12B0 | 00 00 00 00 00 00 F0 7F | double | 0x7FF0000000000000 (inf) | table field `default_real` (Double) - -vector (reflection.Field.documentation): - +0x12B8 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x110C | 38 EF FF FF | SOffset32 | 0xFFFFEF38 (-4296) Loc: +0x21D4 | offset to vtable + +0x1110 | 38 00 | uint16_t | 0x0038 (56) | table field `id` (UShort) + +0x1112 | 74 00 | uint16_t | 0x0074 (116) | table field `offset` (UShort) + +0x1114 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x1158 | offset to field `name` (string) + +0x1118 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x114C | offset to field `type` (table) + +0x111C | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x1128 | offset to field `attributes` (vector) + +0x1120 | 00 00 00 00 00 00 F0 7F | double | 0x7FF0000000000000 (inf) | table field `default_real` (Double) vector (reflection.Field.attributes): - +0x12BC | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x12C0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x12C4 | offset to table[0] + +0x1128 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x112C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1130 | offset to table[0] table (reflection.KeyValue): - +0x12C4 | A8 D9 FF FF | SOffset32 | 0xFFFFD9A8 (-9816) Loc: +0x391C | offset to vtable - +0x12C8 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x12D8 | offset to field `key` (string) - +0x12CC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x12D0 | offset to field `value` (string) + +0x1130 | 68 D8 FF FF | SOffset32 | 0xFFFFD868 (-10136) Loc: +0x38C8 | offset to vtable + +0x1134 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1144 | offset to field `key` (string) + +0x1138 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x113C | offset to field `value` (string) string (reflection.KeyValue.value): - +0x12D0 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x12D4 | 35 36 | char[2] | 56 | string literal - +0x12D6 | 00 | char | 0x00 (0) | string terminator + +0x113C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1140 | 35 36 | char[2] | 56 | string literal + +0x1142 | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x12D8 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x12DC | 69 64 | char[2] | id | string literal - +0x12DE | 00 | char | 0x00 (0) | string terminator + +0x1144 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1148 | 69 64 | char[2] | id | string literal + +0x114A | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x12E0 | 8C D5 FF FF | SOffset32 | 0xFFFFD58C (-10868) Loc: +0x3D54 | offset to vtable - +0x12E4 | 00 00 00 | uint8_t[3] | ... | padding - +0x12E7 | 0B | uint8_t | 0x0B (11) | table field `base_type` (Byte) - +0x12E8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x114C | 70 D8 FF FF | SOffset32 | 0xFFFFD870 (-10128) Loc: +0x38DC | offset to vtable + +0x1150 | 00 00 00 | uint8_t[3] | ... | padding + +0x1153 | 0B | uint8_t | 0x0B (11) | table field `base_type` (Byte) + +0x1154 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x12EC | 14 00 00 00 | uint32_t | 0x00000014 (20) | length of string - +0x12F0 | 70 6F 73 69 74 69 76 65 | char[20] | positive | string literal - +0x12F8 | 5F 69 6E 66 5F 64 65 66 | | _inf_def - +0x1300 | 61 75 6C 74 | | ault - +0x1304 | 00 | char | 0x00 (0) | string terminator + +0x1158 | 14 00 00 00 | uint32_t | 0x00000014 (20) | length of string + +0x115C | 70 6F 73 69 74 69 76 65 | char[20] | positive | string literal + +0x1164 | 5F 69 6E 66 5F 64 65 66 | | _inf_def + +0x116C | 61 75 6C 74 | | ault + +0x1170 | 00 | char | 0x00 (0) | string terminator padding: - +0x1305 | 00 00 00 | uint8_t[3] | ... | padding + +0x1171 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Field): - +0x1308 | AA EE FF FF | SOffset32 | 0xFFFFEEAA (-4438) Loc: +0x245E | offset to vtable - +0x130C | 37 00 | uint16_t | 0x0037 (55) | table field `id` (UShort) - +0x130E | 72 00 | uint16_t | 0x0072 (114) | table field `offset` (UShort) - +0x1310 | 50 00 00 00 | UOffset32 | 0x00000050 (80) Loc: +0x1360 | offset to field `name` (string) - +0x1314 | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: +0x1354 | offset to field `type` (table) - +0x1318 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x1330 | offset to field `attributes` (vector) - +0x131C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x132C | offset to field `documentation` (vector) - +0x1320 | 00 00 00 00 00 00 F0 7F | double | 0x7FF0000000000000 (inf) | table field `default_real` (Double) - +0x1328 | 00 00 00 00 | uint8_t[4] | .... | padding - -vector (reflection.Field.documentation): - +0x132C | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x1174 | A0 FF FF FF | SOffset32 | 0xFFFFFFA0 (-96) Loc: +0x11D4 | offset to vtable + +0x1178 | 37 00 | uint16_t | 0x0037 (55) | table field `id` (UShort) + +0x117A | 72 00 | uint16_t | 0x0072 (114) | table field `offset` (UShort) + +0x117C | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: +0x11C4 | offset to field `name` (string) + +0x1180 | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: +0x11B8 | offset to field `type` (table) + +0x1184 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1194 | offset to field `attributes` (vector) + +0x1188 | 00 00 00 00 00 00 F0 7F | double | 0x7FF0000000000000 (inf) | table field `default_real` (Double) + +0x1190 | 00 00 00 00 | uint8_t[4] | .... | padding vector (reflection.Field.attributes): - +0x1330 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x1334 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1338 | offset to table[0] + +0x1194 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x1198 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x119C | offset to table[0] table (reflection.KeyValue): - +0x1338 | 1C DA FF FF | SOffset32 | 0xFFFFDA1C (-9700) Loc: +0x391C | offset to vtable - +0x133C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x134C | offset to field `key` (string) - +0x1340 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1344 | offset to field `value` (string) + +0x119C | D4 D8 FF FF | SOffset32 | 0xFFFFD8D4 (-10028) Loc: +0x38C8 | offset to vtable + +0x11A0 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x11B0 | offset to field `key` (string) + +0x11A4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x11A8 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1344 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x1348 | 35 35 | char[2] | 55 | string literal - +0x134A | 00 | char | 0x00 (0) | string terminator + +0x11A8 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x11AC | 35 35 | char[2] | 55 | string literal + +0x11AE | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x134C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x1350 | 69 64 | char[2] | id | string literal - +0x1352 | 00 | char | 0x00 (0) | string terminator + +0x11B0 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x11B4 | 69 64 | char[2] | id | string literal + +0x11B6 | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x1354 | 00 D6 FF FF | SOffset32 | 0xFFFFD600 (-10752) Loc: +0x3D54 | offset to vtable - +0x1358 | 00 00 00 | uint8_t[3] | ... | padding - +0x135B | 0B | uint8_t | 0x0B (11) | table field `base_type` (Byte) - +0x135C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x11B8 | DC D8 FF FF | SOffset32 | 0xFFFFD8DC (-10020) Loc: +0x38DC | offset to vtable + +0x11BC | 00 00 00 | uint8_t[3] | ... | padding + +0x11BF | 0B | uint8_t | 0x0B (11) | table field `base_type` (Byte) + +0x11C0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x1360 | 0B 00 00 00 | uint32_t | 0x0000000B (11) | length of string - +0x1364 | 69 6E 66 5F 64 65 66 61 | char[11] | inf_defa | string literal - +0x136C | 75 6C 74 | | ult - +0x136F | 00 | char | 0x00 (0) | string terminator + +0x11C4 | 0B 00 00 00 | uint32_t | 0x0000000B (11) | length of string + +0x11C8 | 69 6E 66 5F 64 65 66 61 | char[11] | inf_defa | string literal + +0x11D0 | 75 6C 74 | | ult + +0x11D3 | 00 | char | 0x00 (0) | string terminator -table (reflection.Field): - +0x1370 | 12 EF FF FF | SOffset32 | 0xFFFFEF12 (-4334) Loc: +0x245E | offset to vtable - +0x1374 | 36 00 | uint16_t | 0x0036 (54) | table field `id` (UShort) - +0x1376 | 70 00 | uint16_t | 0x0070 (112) | table field `offset` (UShort) - +0x1378 | 50 00 00 00 | UOffset32 | 0x00000050 (80) Loc: +0x13C8 | offset to field `name` (string) - +0x137C | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: +0x13BC | offset to field `type` (table) - +0x1380 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x1398 | offset to field `attributes` (vector) - +0x1384 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1394 | offset to field `documentation` (vector) - +0x1388 | 00 00 00 00 00 00 F8 7F | double | 0x7FF8000000000000 (nan) | table field `default_real` (Double) - +0x1390 | 00 00 00 00 | uint8_t[4] | .... | padding +vtable (reflection.Field): + +0x11D4 | 18 00 | uint16_t | 0x0018 (24) | size of this vtable + +0x11D6 | 20 00 | uint16_t | 0x0020 (32) | size of referring table + +0x11D8 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0) + +0x11DA | 0C 00 | VOffset16 | 0x000C (12) | offset to field `type` (id: 1) + +0x11DC | 04 00 | VOffset16 | 0x0004 (4) | offset to field `id` (id: 2) + +0x11DE | 06 00 | VOffset16 | 0x0006 (6) | offset to field `offset` (id: 3) + +0x11E0 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) (Long) + +0x11E2 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `default_real` (id: 5) + +0x11E4 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) + +0x11E6 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) (Bool) + +0x11E8 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 8) (Bool) + +0x11EA | 10 00 | VOffset16 | 0x0010 (16) | offset to field `attributes` (id: 9) -vector (reflection.Field.documentation): - +0x1394 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) +table (reflection.Field): + +0x11EC | 18 00 00 00 | SOffset32 | 0x00000018 (24) Loc: +0x11D4 | offset to vtable + +0x11F0 | 36 00 | uint16_t | 0x0036 (54) | table field `id` (UShort) + +0x11F2 | 70 00 | uint16_t | 0x0070 (112) | table field `offset` (UShort) + +0x11F4 | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: +0x123C | offset to field `name` (string) + +0x11F8 | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: +0x1230 | offset to field `type` (table) + +0x11FC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x120C | offset to field `attributes` (vector) + +0x1200 | 00 00 00 00 00 00 F8 7F | double | 0x7FF8000000000000 (nan) | table field `default_real` (Double) + +0x1208 | 00 00 00 00 | uint8_t[4] | .... | padding vector (reflection.Field.attributes): - +0x1398 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x139C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x13A0 | offset to table[0] + +0x120C | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x1210 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1214 | offset to table[0] table (reflection.KeyValue): - +0x13A0 | 84 DA FF FF | SOffset32 | 0xFFFFDA84 (-9596) Loc: +0x391C | offset to vtable - +0x13A4 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x13B4 | offset to field `key` (string) - +0x13A8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x13AC | offset to field `value` (string) + +0x1214 | 4C D9 FF FF | SOffset32 | 0xFFFFD94C (-9908) Loc: +0x38C8 | offset to vtable + +0x1218 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1228 | offset to field `key` (string) + +0x121C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1220 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x13AC | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x13B0 | 35 34 | char[2] | 54 | string literal - +0x13B2 | 00 | char | 0x00 (0) | string terminator + +0x1220 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1224 | 35 34 | char[2] | 54 | string literal + +0x1226 | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x13B4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x13B8 | 69 64 | char[2] | id | string literal - +0x13BA | 00 | char | 0x00 (0) | string terminator + +0x1228 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x122C | 69 64 | char[2] | id | string literal + +0x122E | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x13BC | 68 D6 FF FF | SOffset32 | 0xFFFFD668 (-10648) Loc: +0x3D54 | offset to vtable - +0x13C0 | 00 00 00 | uint8_t[3] | ... | padding - +0x13C3 | 0B | uint8_t | 0x0B (11) | table field `base_type` (Byte) - +0x13C4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x1230 | 54 D9 FF FF | SOffset32 | 0xFFFFD954 (-9900) Loc: +0x38DC | offset to vtable + +0x1234 | 00 00 00 | uint8_t[3] | ... | padding + +0x1237 | 0B | uint8_t | 0x0B (11) | table field `base_type` (Byte) + +0x1238 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x13C8 | 0B 00 00 00 | uint32_t | 0x0000000B (11) | length of string - +0x13CC | 6E 61 6E 5F 64 65 66 61 | char[11] | nan_defa | string literal - +0x13D4 | 75 6C 74 | | ult - +0x13D7 | 00 | char | 0x00 (0) | string terminator + +0x123C | 0B 00 00 00 | uint32_t | 0x0000000B (11) | length of string + +0x1240 | 6E 61 6E 5F 64 65 66 61 | char[11] | nan_defa | string literal + +0x1248 | 75 6C 74 | | ult + +0x124B | 00 | char | 0x00 (0) | string terminator table (reflection.Field): - +0x13D8 | 62 FD FF FF | SOffset32 | 0xFFFFFD62 (-670) Loc: +0x1676 | offset to vtable - +0x13DC | 35 00 | uint16_t | 0x0035 (53) | table field `id` (UShort) - +0x13DE | 6E 00 | uint16_t | 0x006E (110) | table field `offset` (UShort) - +0x13E0 | 54 00 00 00 | UOffset32 | 0x00000054 (84) Loc: +0x1434 | offset to field `name` (string) - +0x13E4 | 3C 00 00 00 | UOffset32 | 0x0000003C (60) Loc: +0x1420 | offset to field `type` (table) - +0x13E8 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x13FC | offset to field `attributes` (vector) - +0x13EC | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x13F8 | offset to field `documentation` (vector) - +0x13F0 | 02 00 00 00 00 00 00 00 | int64_t | 0x0000000000000002 (2) | table field `default_integer` (Long) - -vector (reflection.Field.documentation): - +0x13F8 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x124C | 38 E4 FF FF | SOffset32 | 0xFFFFE438 (-7112) Loc: +0x2E14 | offset to vtable + +0x1250 | 35 00 | uint16_t | 0x0035 (53) | table field `id` (UShort) + +0x1252 | 6E 00 | uint16_t | 0x006E (110) | table field `offset` (UShort) + +0x1254 | 4C 00 00 00 | UOffset32 | 0x0000004C (76) Loc: +0x12A0 | offset to field `name` (string) + +0x1258 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x128C | offset to field `type` (table) + +0x125C | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x1268 | offset to field `attributes` (vector) + +0x1260 | 02 00 00 00 00 00 00 00 | int64_t | 0x0000000000000002 (2) | table field `default_integer` (Long) vector (reflection.Field.attributes): - +0x13FC | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x1400 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1404 | offset to table[0] + +0x1268 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x126C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1270 | offset to table[0] table (reflection.KeyValue): - +0x1404 | E8 DA FF FF | SOffset32 | 0xFFFFDAE8 (-9496) Loc: +0x391C | offset to vtable - +0x1408 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1418 | offset to field `key` (string) - +0x140C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1410 | offset to field `value` (string) + +0x1270 | A8 D9 FF FF | SOffset32 | 0xFFFFD9A8 (-9816) Loc: +0x38C8 | offset to vtable + +0x1274 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1284 | offset to field `key` (string) + +0x1278 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x127C | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1410 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x1414 | 35 33 | char[2] | 53 | string literal - +0x1416 | 00 | char | 0x00 (0) | string terminator + +0x127C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1280 | 35 33 | char[2] | 53 | string literal + +0x1282 | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x1418 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x141C | 69 64 | char[2] | id | string literal - +0x141E | 00 | char | 0x00 (0) | string terminator + +0x1284 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1288 | 69 64 | char[2] | id | string literal + +0x128A | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x1420 | 64 DA FF FF | SOffset32 | 0xFFFFDA64 (-9628) Loc: +0x39BC | offset to vtable - +0x1424 | 00 00 00 | uint8_t[3] | ... | padding - +0x1427 | 0A | uint8_t | 0x0A (10) | table field `base_type` (Byte) - +0x1428 | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `index` (Int) - +0x142C | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt) - +0x1430 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x128C | E0 DC FF FF | SOffset32 | 0xFFFFDCE0 (-8992) Loc: +0x35AC | offset to vtable + +0x1290 | 00 00 00 | uint8_t[3] | ... | padding + +0x1293 | 0A | uint8_t | 0x0A (10) | table field `base_type` (Byte) + +0x1294 | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `index` (Int) + +0x1298 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt) + +0x129C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x1434 | 18 00 00 00 | uint32_t | 0x00000018 (24) | length of string - +0x1438 | 6C 6F 6E 67 5F 65 6E 75 | char[24] | long_enu | string literal - +0x1440 | 6D 5F 6E 6F 72 6D 61 6C | | m_normal - +0x1448 | 5F 64 65 66 61 75 6C 74 | | _default - +0x1450 | 00 | char | 0x00 (0) | string terminator + +0x12A0 | 18 00 00 00 | uint32_t | 0x00000018 (24) | length of string + +0x12A4 | 6C 6F 6E 67 5F 65 6E 75 | char[24] | long_enu | string literal + +0x12AC | 6D 5F 6E 6F 72 6D 61 6C | | m_normal + +0x12B4 | 5F 64 65 66 61 75 6C 74 | | _default + +0x12BC | 00 | char | 0x00 (0) | string terminator padding: - +0x1451 | 00 00 00 | uint8_t[3] | ... | padding + +0x12BD | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Field): - +0x1454 | 62 E6 FF FF | SOffset32 | 0xFFFFE662 (-6558) Loc: +0x2DF2 | offset to vtable - +0x1458 | 34 00 | uint16_t | 0x0034 (52) | table field `id` (UShort) - +0x145A | 6C 00 | uint16_t | 0x006C (108) | table field `offset` (UShort) - +0x145C | 4C 00 00 00 | UOffset32 | 0x0000004C (76) Loc: +0x14A8 | offset to field `name` (string) - +0x1460 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x1494 | offset to field `type` (table) - +0x1464 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x1470 | offset to field `attributes` (vector) - +0x1468 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x146C | offset to field `documentation` (vector) - -vector (reflection.Field.documentation): - +0x146C | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x12C0 | C8 E7 FF FF | SOffset32 | 0xFFFFE7C8 (-6200) Loc: +0x2AF8 | offset to vtable + +0x12C4 | 34 00 | uint16_t | 0x0034 (52) | table field `id` (UShort) + +0x12C6 | 6C 00 | uint16_t | 0x006C (108) | table field `offset` (UShort) + +0x12C8 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x130C | offset to field `name` (string) + +0x12CC | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: +0x12F8 | offset to field `type` (table) + +0x12D0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x12D4 | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x1470 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x1474 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1478 | offset to table[0] + +0x12D4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x12D8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x12DC | offset to table[0] table (reflection.KeyValue): - +0x1478 | 5C DB FF FF | SOffset32 | 0xFFFFDB5C (-9380) Loc: +0x391C | offset to vtable - +0x147C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x148C | offset to field `key` (string) - +0x1480 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1484 | offset to field `value` (string) + +0x12DC | 14 DA FF FF | SOffset32 | 0xFFFFDA14 (-9708) Loc: +0x38C8 | offset to vtable + +0x12E0 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x12F0 | offset to field `key` (string) + +0x12E4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x12E8 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1484 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x1488 | 35 32 | char[2] | 52 | string literal - +0x148A | 00 | char | 0x00 (0) | string terminator + +0x12E8 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x12EC | 35 32 | char[2] | 52 | string literal + +0x12EE | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x148C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x1490 | 69 64 | char[2] | id | string literal - +0x1492 | 00 | char | 0x00 (0) | string terminator + +0x12F0 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x12F4 | 69 64 | char[2] | id | string literal + +0x12F6 | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x1494 | D8 DA FF FF | SOffset32 | 0xFFFFDAD8 (-9512) Loc: +0x39BC | offset to vtable - +0x1498 | 00 00 00 | uint8_t[3] | ... | padding - +0x149B | 0A | uint8_t | 0x0A (10) | table field `base_type` (Byte) - +0x149C | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `index` (Int) - +0x14A0 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt) - +0x14A4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x12F8 | 4C DD FF FF | SOffset32 | 0xFFFFDD4C (-8884) Loc: +0x35AC | offset to vtable + +0x12FC | 00 00 00 | uint8_t[3] | ... | padding + +0x12FF | 0A | uint8_t | 0x0A (10) | table field `base_type` (Byte) + +0x1300 | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `index` (Int) + +0x1304 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt) + +0x1308 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x14A8 | 1A 00 00 00 | uint32_t | 0x0000001A (26) | length of string - +0x14AC | 6C 6F 6E 67 5F 65 6E 75 | char[26] | long_enu | string literal - +0x14B4 | 6D 5F 6E 6F 6E 5F 65 6E | | m_non_en - +0x14BC | 75 6D 5F 64 65 66 61 75 | | um_defau - +0x14C4 | 6C 74 | | lt - +0x14C6 | 00 | char | 0x00 (0) | string terminator + +0x130C | 1A 00 00 00 | uint32_t | 0x0000001A (26) | length of string + +0x1310 | 6C 6F 6E 67 5F 65 6E 75 | char[26] | long_enu | string literal + +0x1318 | 6D 5F 6E 6F 6E 5F 65 6E | | m_non_en + +0x1320 | 75 6D 5F 64 65 66 61 75 | | um_defau + +0x1328 | 6C 74 | | lt + +0x132A | 00 | char | 0x00 (0) | string terminator table (reflection.Field): - +0x14C8 | EC E5 FF FF | SOffset32 | 0xFFFFE5EC (-6676) Loc: +0x2EDC | offset to vtable - +0x14CC | 00 00 00 | uint8_t[3] | ... | padding - +0x14CF | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x14D0 | 33 00 | uint16_t | 0x0033 (51) | table field `id` (UShort) - +0x14D2 | 6A 00 | uint16_t | 0x006A (106) | table field `offset` (UShort) - +0x14D4 | 74 00 00 00 | UOffset32 | 0x00000074 (116) Loc: +0x1548 | offset to field `name` (string) - +0x14D8 | 60 00 00 00 | UOffset32 | 0x00000060 (96) Loc: +0x1538 | offset to field `type` (table) - +0x14DC | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x14E8 | offset to field `attributes` (vector) - +0x14E0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x14E4 | offset to field `documentation` (vector) - -vector (reflection.Field.documentation): - +0x14E4 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x132C | 44 E7 FF FF | SOffset32 | 0xFFFFE744 (-6332) Loc: +0x2BE8 | offset to vtable + +0x1330 | 00 00 00 | uint8_t[3] | ... | padding + +0x1333 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x1334 | 33 00 | uint16_t | 0x0033 (51) | table field `id` (UShort) + +0x1336 | 6A 00 | uint16_t | 0x006A (106) | table field `offset` (UShort) + +0x1338 | 6C 00 00 00 | UOffset32 | 0x0000006C (108) Loc: +0x13A4 | offset to field `name` (string) + +0x133C | 58 00 00 00 | UOffset32 | 0x00000058 (88) Loc: +0x1394 | offset to field `type` (table) + +0x1340 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1344 | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x14E8 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) - +0x14EC | 30 00 00 00 | UOffset32 | 0x00000030 (48) Loc: +0x151C | offset to table[0] - +0x14F0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x14F4 | offset to table[1] + +0x1344 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) + +0x1348 | 30 00 00 00 | UOffset32 | 0x00000030 (48) Loc: +0x1378 | offset to table[0] + +0x134C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1350 | offset to table[1] table (reflection.KeyValue): - +0x14F4 | D8 DB FF FF | SOffset32 | 0xFFFFDBD8 (-9256) Loc: +0x391C | offset to vtable - +0x14F8 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1508 | offset to field `key` (string) - +0x14FC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1500 | offset to field `value` (string) + +0x1350 | 88 DA FF FF | SOffset32 | 0xFFFFDA88 (-9592) Loc: +0x38C8 | offset to vtable + +0x1354 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1364 | offset to field `key` (string) + +0x1358 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x135C | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1500 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x1504 | 30 | char[1] | 0 | string literal - +0x1505 | 00 | char | 0x00 (0) | string terminator + +0x135C | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x1360 | 30 | char[1] | 0 | string literal + +0x1361 | 00 | char | 0x00 (0) | string terminator padding: - +0x1506 | 00 00 | uint8_t[2] | .. | padding + +0x1362 | 00 00 | uint8_t[2] | .. | padding string (reflection.KeyValue.key): - +0x1508 | 0D 00 00 00 | uint32_t | 0x0000000D (13) | length of string - +0x150C | 6E 61 74 69 76 65 5F 69 | char[13] | native_i | string literal - +0x1514 | 6E 6C 69 6E 65 | | nline - +0x1519 | 00 | char | 0x00 (0) | string terminator + +0x1364 | 0D 00 00 00 | uint32_t | 0x0000000D (13) | length of string + +0x1368 | 6E 61 74 69 76 65 5F 69 | char[13] | native_i | string literal + +0x1370 | 6E 6C 69 6E 65 | | nline + +0x1375 | 00 | char | 0x00 (0) | string terminator padding: - +0x151A | 00 00 | uint8_t[2] | .. | padding + +0x1376 | 00 00 | uint8_t[2] | .. | padding table (reflection.KeyValue): - +0x151C | 00 DC FF FF | SOffset32 | 0xFFFFDC00 (-9216) Loc: +0x391C | offset to vtable - +0x1520 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1530 | offset to field `key` (string) - +0x1524 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1528 | offset to field `value` (string) + +0x1378 | B0 DA FF FF | SOffset32 | 0xFFFFDAB0 (-9552) Loc: +0x38C8 | offset to vtable + +0x137C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x138C | offset to field `key` (string) + +0x1380 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1384 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1528 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x152C | 35 31 | char[2] | 51 | string literal - +0x152E | 00 | char | 0x00 (0) | string terminator + +0x1384 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1388 | 35 31 | char[2] | 51 | string literal + +0x138A | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x1530 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x1534 | 69 64 | char[2] | id | string literal - +0x1536 | 00 | char | 0x00 (0) | string terminator + +0x138C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1390 | 69 64 | char[2] | id | string literal + +0x1392 | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x1538 | C8 D8 FF FF | SOffset32 | 0xFFFFD8C8 (-10040) Loc: +0x3C70 | offset to vtable - +0x153C | 00 00 00 | uint8_t[3] | ... | padding - +0x153F | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) - +0x1540 | 06 00 00 00 | uint32_t | 0x00000006 (6) | table field `index` (Int) - +0x1544 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x1394 | 7C DB FF FF | SOffset32 | 0xFFFFDB7C (-9348) Loc: +0x3818 | offset to vtable + +0x1398 | 00 00 00 | uint8_t[3] | ... | padding + +0x139B | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) + +0x139C | 06 00 00 00 | uint32_t | 0x00000006 (6) | table field `index` (Int) + +0x13A0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x1548 | 0D 00 00 00 | uint32_t | 0x0000000D (13) | length of string - +0x154C | 6E 61 74 69 76 65 5F 69 | char[13] | native_i | string literal - +0x1554 | 6E 6C 69 6E 65 | | nline - +0x1559 | 00 | char | 0x00 (0) | string terminator + +0x13A4 | 0D 00 00 00 | uint32_t | 0x0000000D (13) | length of string + +0x13A8 | 6E 61 74 69 76 65 5F 69 | char[13] | native_i | string literal + +0x13B0 | 6E 6C 69 6E 65 | | nline + +0x13B5 | 00 | char | 0x00 (0) | string terminator padding: - +0x155A | 00 00 | uint8_t[2] | .. | padding + +0x13B6 | 00 00 | uint8_t[2] | .. | padding table (reflection.Field): - +0x155C | 80 E6 FF FF | SOffset32 | 0xFFFFE680 (-6528) Loc: +0x2EDC | offset to vtable - +0x1560 | 00 00 00 | uint8_t[3] | ... | padding - +0x1563 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x1564 | 32 00 | uint16_t | 0x0032 (50) | table field `id` (UShort) - +0x1566 | 68 00 | uint16_t | 0x0068 (104) | table field `offset` (UShort) - +0x1568 | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: +0x15B0 | offset to field `name` (string) - +0x156C | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x15A0 | offset to field `type` (table) - +0x1570 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x157C | offset to field `attributes` (vector) - +0x1574 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1578 | offset to field `documentation` (vector) - -vector (reflection.Field.documentation): - +0x1578 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x13B8 | D0 E7 FF FF | SOffset32 | 0xFFFFE7D0 (-6192) Loc: +0x2BE8 | offset to vtable + +0x13BC | 00 00 00 | uint8_t[3] | ... | padding + +0x13BF | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x13C0 | 32 00 | uint16_t | 0x0032 (50) | table field `id` (UShort) + +0x13C2 | 68 00 | uint16_t | 0x0068 (104) | table field `offset` (UShort) + +0x13C4 | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: +0x1404 | offset to field `name` (string) + +0x13C8 | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: +0x13F4 | offset to field `type` (table) + +0x13CC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x13D0 | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x157C | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x1580 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1584 | offset to table[0] + +0x13D0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x13D4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x13D8 | offset to table[0] table (reflection.KeyValue): - +0x1584 | 68 DC FF FF | SOffset32 | 0xFFFFDC68 (-9112) Loc: +0x391C | offset to vtable - +0x1588 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1598 | offset to field `key` (string) - +0x158C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1590 | offset to field `value` (string) + +0x13D8 | 10 DB FF FF | SOffset32 | 0xFFFFDB10 (-9456) Loc: +0x38C8 | offset to vtable + +0x13DC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x13EC | offset to field `key` (string) + +0x13E0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x13E4 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1590 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x1594 | 35 30 | char[2] | 50 | string literal - +0x1596 | 00 | char | 0x00 (0) | string terminator + +0x13E4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x13E8 | 35 30 | char[2] | 50 | string literal + +0x13EA | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x1598 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x159C | 69 64 | char[2] | id | string literal - +0x159E | 00 | char | 0x00 (0) | string terminator + +0x13EC | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x13F0 | 69 64 | char[2] | id | string literal + +0x13F2 | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x15A0 | 38 E8 FF FF | SOffset32 | 0xFFFFE838 (-6088) Loc: +0x2D68 | offset to vtable - +0x15A4 | 00 00 | uint8_t[2] | .. | padding - +0x15A6 | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) - +0x15A7 | 0F | uint8_t | 0x0F (15) | table field `element` (Byte) - +0x15A8 | 03 00 00 00 | uint32_t | 0x00000003 (3) | table field `index` (Int) - +0x15AC | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `element_size` (UInt) + +0x13F4 | 80 E9 FF FF | SOffset32 | 0xFFFFE980 (-5760) Loc: +0x2A74 | offset to vtable + +0x13F8 | 00 00 | uint8_t[2] | .. | padding + +0x13FA | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) + +0x13FB | 0F | uint8_t | 0x0F (15) | table field `element` (Byte) + +0x13FC | 03 00 00 00 | uint32_t | 0x00000003 (3) | table field `index` (Int) + +0x1400 | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `element_size` (UInt) string (reflection.Field.name): - +0x15B0 | 18 00 00 00 | uint32_t | 0x00000018 (24) | length of string - +0x15B4 | 73 63 61 6C 61 72 5F 6B | char[24] | scalar_k | string literal - +0x15BC | 65 79 5F 73 6F 72 74 65 | | ey_sorte - +0x15C4 | 64 5F 74 61 62 6C 65 73 | | d_tables - +0x15CC | 00 | char | 0x00 (0) | string terminator + +0x1404 | 18 00 00 00 | uint32_t | 0x00000018 (24) | length of string + +0x1408 | 73 63 61 6C 61 72 5F 6B | char[24] | scalar_k | string literal + +0x1410 | 65 79 5F 73 6F 72 74 65 | | ey_sorte + +0x1418 | 64 5F 74 61 62 6C 65 73 | | d_tables + +0x1420 | 00 | char | 0x00 (0) | string terminator padding: - +0x15CD | 00 00 00 | uint8_t[3] | ... | padding + +0x1421 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Field): - +0x15D0 | F4 E6 FF FF | SOffset32 | 0xFFFFE6F4 (-6412) Loc: +0x2EDC | offset to vtable - +0x15D4 | 00 00 00 | uint8_t[3] | ... | padding - +0x15D7 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x15D8 | 31 00 | uint16_t | 0x0031 (49) | table field `id` (UShort) - +0x15DA | 66 00 | uint16_t | 0x0066 (102) | table field `offset` (UShort) - +0x15DC | 78 00 00 00 | UOffset32 | 0x00000078 (120) Loc: +0x1654 | offset to field `name` (string) - +0x15E0 | 68 00 00 00 | UOffset32 | 0x00000068 (104) Loc: +0x1648 | offset to field `type` (table) - +0x15E4 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x15F0 | offset to field `attributes` (vector) - +0x15E8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x15EC | offset to field `documentation` (vector) - -vector (reflection.Field.documentation): - +0x15EC | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x1424 | 3C E8 FF FF | SOffset32 | 0xFFFFE83C (-6084) Loc: +0x2BE8 | offset to vtable + +0x1428 | 00 00 00 | uint8_t[3] | ... | padding + +0x142B | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x142C | 31 00 | uint16_t | 0x0031 (49) | table field `id` (UShort) + +0x142E | 66 00 | uint16_t | 0x0066 (102) | table field `offset` (UShort) + +0x1430 | 70 00 00 00 | UOffset32 | 0x00000070 (112) Loc: +0x14A0 | offset to field `name` (string) + +0x1434 | 60 00 00 00 | UOffset32 | 0x00000060 (96) Loc: +0x1494 | offset to field `type` (table) + +0x1438 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x143C | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x15F0 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) - +0x15F4 | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: +0x162C | offset to table[0] - +0x15F8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x15FC | offset to table[1] + +0x143C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) + +0x1440 | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: +0x1478 | offset to table[0] + +0x1444 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1448 | offset to table[1] table (reflection.KeyValue): - +0x15FC | E0 DC FF FF | SOffset32 | 0xFFFFDCE0 (-8992) Loc: +0x391C | offset to vtable - +0x1600 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x1614 | offset to field `key` (string) - +0x1604 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1608 | offset to field `value` (string) + +0x1448 | 80 DB FF FF | SOffset32 | 0xFFFFDB80 (-9344) Loc: +0x38C8 | offset to vtable + +0x144C | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x1460 | offset to field `key` (string) + +0x1450 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1454 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1608 | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string - +0x160C | 4D 6F 6E 73 74 65 72 | char[7] | Monster | string literal - +0x1613 | 00 | char | 0x00 (0) | string terminator + +0x1454 | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string + +0x1458 | 4D 6F 6E 73 74 65 72 | char[7] | Monster | string literal + +0x145F | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x1614 | 11 00 00 00 | uint32_t | 0x00000011 (17) | length of string - +0x1618 | 6E 65 73 74 65 64 5F 66 | char[17] | nested_f | string literal - +0x1620 | 6C 61 74 62 75 66 66 65 | | latbuffe - +0x1628 | 72 | | r - +0x1629 | 00 | char | 0x00 (0) | string terminator + +0x1460 | 11 00 00 00 | uint32_t | 0x00000011 (17) | length of string + +0x1464 | 6E 65 73 74 65 64 5F 66 | char[17] | nested_f | string literal + +0x146C | 6C 61 74 62 75 66 66 65 | | latbuffe + +0x1474 | 72 | | r + +0x1475 | 00 | char | 0x00 (0) | string terminator padding: - +0x162A | 00 00 | uint8_t[2] | .. | padding + +0x1476 | 00 00 | uint8_t[2] | .. | padding table (reflection.KeyValue): - +0x162C | 10 DD FF FF | SOffset32 | 0xFFFFDD10 (-8944) Loc: +0x391C | offset to vtable - +0x1630 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1640 | offset to field `key` (string) - +0x1634 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1638 | offset to field `value` (string) + +0x1478 | B0 DB FF FF | SOffset32 | 0xFFFFDBB0 (-9296) Loc: +0x38C8 | offset to vtable + +0x147C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x148C | offset to field `key` (string) + +0x1480 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1484 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1638 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x163C | 34 39 | char[2] | 49 | string literal - +0x163E | 00 | char | 0x00 (0) | string terminator + +0x1484 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1488 | 34 39 | char[2] | 49 | string literal + +0x148A | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x1640 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x1644 | 69 64 | char[2] | id | string literal - +0x1646 | 00 | char | 0x00 (0) | string terminator + +0x148C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1490 | 69 64 | char[2] | id | string literal + +0x1492 | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x1648 | 0C E7 FF FF | SOffset32 | 0xFFFFE70C (-6388) Loc: +0x2F3C | offset to vtable - +0x164C | 00 00 | uint8_t[2] | .. | padding - +0x164E | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) - +0x164F | 04 | uint8_t | 0x04 (4) | table field `element` (Byte) - +0x1650 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x1494 | 54 E8 FF FF | SOffset32 | 0xFFFFE854 (-6060) Loc: +0x2C40 | offset to vtable + +0x1498 | 00 00 | uint8_t[2] | .. | padding + +0x149A | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) + +0x149B | 04 | uint8_t | 0x04 (4) | table field `element` (Byte) + +0x149C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x1654 | 1C 00 00 00 | uint32_t | 0x0000001C (28) | length of string - +0x1658 | 74 65 73 74 72 65 71 75 | char[28] | testrequ | string literal - +0x1660 | 69 72 65 64 6E 65 73 74 | | irednest - +0x1668 | 65 64 66 6C 61 74 62 75 | | edflatbu - +0x1670 | 66 66 65 72 | | ffer - +0x1674 | 00 | char | 0x00 (0) | string terminator + +0x14A0 | 1C 00 00 00 | uint32_t | 0x0000001C (28) | length of string + +0x14A4 | 74 65 73 74 72 65 71 75 | char[28] | testrequ | string literal + +0x14AC | 69 72 65 64 6E 65 73 74 | | irednest + +0x14B4 | 65 64 66 6C 61 74 62 75 | | edflatbu + +0x14BC | 66 66 65 72 | | ffer + +0x14C0 | 00 | char | 0x00 (0) | string terminator -vtable (reflection.Field): - +0x1676 | 1A 00 | uint16_t | 0x001A (26) | size of this vtable - +0x1678 | 20 00 | uint16_t | 0x0020 (32) | size of referring table - +0x167A | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0) - +0x167C | 0C 00 | VOffset16 | 0x000C (12) | offset to field `type` (id: 1) - +0x167E | 04 00 | VOffset16 | 0x0004 (4) | offset to field `id` (id: 2) - +0x1680 | 06 00 | VOffset16 | 0x0006 (6) | offset to field `offset` (id: 3) - +0x1682 | 18 00 | VOffset16 | 0x0018 (24) | offset to field `default_integer` (id: 4) - +0x1684 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) (Double) - +0x1686 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) - +0x1688 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) (Bool) - +0x168A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 8) (Bool) - +0x168C | 10 00 | VOffset16 | 0x0010 (16) | offset to field `attributes` (id: 9) - +0x168E | 14 00 | VOffset16 | 0x0014 (20) | offset to field `documentation` (id: 10) +padding: + +0x14C1 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Field): - +0x1690 | 1A 00 00 00 | SOffset32 | 0x0000001A (26) Loc: +0x1676 | offset to vtable - +0x1694 | 30 00 | uint16_t | 0x0030 (48) | table field `id` (UShort) - +0x1696 | 64 00 | uint16_t | 0x0064 (100) | table field `offset` (UShort) - +0x1698 | 54 00 00 00 | UOffset32 | 0x00000054 (84) Loc: +0x16EC | offset to field `name` (string) - +0x169C | 3C 00 00 00 | UOffset32 | 0x0000003C (60) Loc: +0x16D8 | offset to field `type` (table) - +0x16A0 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x16B4 | offset to field `attributes` (vector) - +0x16A4 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x16B0 | offset to field `documentation` (vector) - +0x16A8 | FF FF FF FF FF FF FF FF | int64_t | 0xFFFFFFFFFFFFFFFF (-1) | table field `default_integer` (Long) - -vector (reflection.Field.documentation): - +0x16B0 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x14C4 | B0 E6 FF FF | SOffset32 | 0xFFFFE6B0 (-6480) Loc: +0x2E14 | offset to vtable + +0x14C8 | 30 00 | uint16_t | 0x0030 (48) | table field `id` (UShort) + +0x14CA | 64 00 | uint16_t | 0x0064 (100) | table field `offset` (UShort) + +0x14CC | 4C 00 00 00 | UOffset32 | 0x0000004C (76) Loc: +0x1518 | offset to field `name` (string) + +0x14D0 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x1504 | offset to field `type` (table) + +0x14D4 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x14E0 | offset to field `attributes` (vector) + +0x14D8 | FF FF FF FF FF FF FF FF | int64_t | 0xFFFFFFFFFFFFFFFF (-1) | table field `default_integer` (Long) vector (reflection.Field.attributes): - +0x16B4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x16B8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x16BC | offset to table[0] + +0x14E0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x14E4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x14E8 | offset to table[0] table (reflection.KeyValue): - +0x16BC | A0 DD FF FF | SOffset32 | 0xFFFFDDA0 (-8800) Loc: +0x391C | offset to vtable - +0x16C0 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x16D0 | offset to field `key` (string) - +0x16C4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x16C8 | offset to field `value` (string) + +0x14E8 | 20 DC FF FF | SOffset32 | 0xFFFFDC20 (-9184) Loc: +0x38C8 | offset to vtable + +0x14EC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x14FC | offset to field `key` (string) + +0x14F0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x14F4 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x16C8 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x16CC | 34 38 | char[2] | 48 | string literal - +0x16CE | 00 | char | 0x00 (0) | string terminator + +0x14F4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x14F8 | 34 38 | char[2] | 48 | string literal + +0x14FA | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x16D0 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x16D4 | 69 64 | char[2] | id | string literal - +0x16D6 | 00 | char | 0x00 (0) | string terminator + +0x14FC | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1500 | 69 64 | char[2] | id | string literal + +0x1502 | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x16D8 | 1C DD FF FF | SOffset32 | 0xFFFFDD1C (-8932) Loc: +0x39BC | offset to vtable - +0x16DC | 00 00 00 | uint8_t[3] | ... | padding - +0x16DF | 03 | uint8_t | 0x03 (3) | table field `base_type` (Byte) - +0x16E0 | 05 00 00 00 | uint32_t | 0x00000005 (5) | table field `index` (Int) - +0x16E4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) - +0x16E8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x1504 | 58 DF FF FF | SOffset32 | 0xFFFFDF58 (-8360) Loc: +0x35AC | offset to vtable + +0x1508 | 00 00 00 | uint8_t[3] | ... | padding + +0x150B | 03 | uint8_t | 0x03 (3) | table field `base_type` (Byte) + +0x150C | 05 00 00 00 | uint32_t | 0x00000005 (5) | table field `index` (Int) + +0x1510 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) + +0x1514 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x16EC | 0B 00 00 00 | uint32_t | 0x0000000B (11) | length of string - +0x16F0 | 73 69 67 6E 65 64 5F 65 | char[11] | signed_e | string literal - +0x16F8 | 6E 75 6D | | num - +0x16FB | 00 | char | 0x00 (0) | string terminator + +0x1518 | 0B 00 00 00 | uint32_t | 0x0000000B (11) | length of string + +0x151C | 73 69 67 6E 65 64 5F 65 | char[11] | signed_e | string literal + +0x1524 | 6E 75 6D | | num + +0x1527 | 00 | char | 0x00 (0) | string terminator table (reflection.Field): - +0x16FC | 20 E8 FF FF | SOffset32 | 0xFFFFE820 (-6112) Loc: +0x2EDC | offset to vtable - +0x1700 | 00 00 00 | uint8_t[3] | ... | padding - +0x1703 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x1704 | 2F 00 | uint16_t | 0x002F (47) | table field `id` (UShort) - +0x1706 | 62 00 | uint16_t | 0x0062 (98) | table field `offset` (UShort) - +0x1708 | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: +0x1750 | offset to field `name` (string) - +0x170C | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x1740 | offset to field `type` (table) - +0x1710 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x171C | offset to field `attributes` (vector) - +0x1714 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1718 | offset to field `documentation` (vector) - -vector (reflection.Field.documentation): - +0x1718 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x1528 | 40 E9 FF FF | SOffset32 | 0xFFFFE940 (-5824) Loc: +0x2BE8 | offset to vtable + +0x152C | 00 00 00 | uint8_t[3] | ... | padding + +0x152F | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x1530 | 2F 00 | uint16_t | 0x002F (47) | table field `id` (UShort) + +0x1532 | 62 00 | uint16_t | 0x0062 (98) | table field `offset` (UShort) + +0x1534 | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: +0x1574 | offset to field `name` (string) + +0x1538 | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: +0x1564 | offset to field `type` (table) + +0x153C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1540 | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x171C | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x1720 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1724 | offset to table[0] + +0x1540 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x1544 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1548 | offset to table[0] table (reflection.KeyValue): - +0x1724 | 08 DE FF FF | SOffset32 | 0xFFFFDE08 (-8696) Loc: +0x391C | offset to vtable - +0x1728 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1738 | offset to field `key` (string) - +0x172C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1730 | offset to field `value` (string) + +0x1548 | 80 DC FF FF | SOffset32 | 0xFFFFDC80 (-9088) Loc: +0x38C8 | offset to vtable + +0x154C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x155C | offset to field `key` (string) + +0x1550 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1554 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1730 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x1734 | 34 37 | char[2] | 47 | string literal - +0x1736 | 00 | char | 0x00 (0) | string terminator + +0x1554 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1558 | 34 37 | char[2] | 47 | string literal + +0x155A | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x1738 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x173C | 69 64 | char[2] | id | string literal - +0x173E | 00 | char | 0x00 (0) | string terminator + +0x155C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1560 | 69 64 | char[2] | id | string literal + +0x1562 | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x1740 | D8 E9 FF FF | SOffset32 | 0xFFFFE9D8 (-5672) Loc: +0x2D68 | offset to vtable - +0x1744 | 00 00 | uint8_t[2] | .. | padding - +0x1746 | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) - +0x1747 | 04 | uint8_t | 0x04 (4) | table field `element` (Byte) - +0x1748 | 03 00 00 00 | uint32_t | 0x00000003 (3) | table field `index` (Int) - +0x174C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x1564 | F0 EA FF FF | SOffset32 | 0xFFFFEAF0 (-5392) Loc: +0x2A74 | offset to vtable + +0x1568 | 00 00 | uint8_t[2] | .. | padding + +0x156A | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) + +0x156B | 04 | uint8_t | 0x04 (4) | table field `element` (Byte) + +0x156C | 03 00 00 00 | uint32_t | 0x00000003 (3) | table field `index` (Int) + +0x1570 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x1750 | 0F 00 00 00 | uint32_t | 0x0000000F (15) | length of string - +0x1754 | 76 65 63 74 6F 72 5F 6F | char[15] | vector_o | string literal - +0x175C | 66 5F 65 6E 75 6D 73 | | f_enums - +0x1763 | 00 | char | 0x00 (0) | string terminator + +0x1574 | 0F 00 00 00 | uint32_t | 0x0000000F (15) | length of string + +0x1578 | 76 65 63 74 6F 72 5F 6F | char[15] | vector_o | string literal + +0x1580 | 66 5F 65 6E 75 6D 73 | | f_enums + +0x1587 | 00 | char | 0x00 (0) | string terminator table (reflection.Field): - +0x1764 | 88 E8 FF FF | SOffset32 | 0xFFFFE888 (-6008) Loc: +0x2EDC | offset to vtable - +0x1768 | 00 00 00 | uint8_t[3] | ... | padding - +0x176B | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x176C | 2E 00 | uint16_t | 0x002E (46) | table field `id` (UShort) - +0x176E | 60 00 | uint16_t | 0x0060 (96) | table field `offset` (UShort) - +0x1770 | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: +0x17B8 | offset to field `name` (string) - +0x1774 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x17A8 | offset to field `type` (table) - +0x1778 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x1784 | offset to field `attributes` (vector) - +0x177C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1780 | offset to field `documentation` (vector) - -vector (reflection.Field.documentation): - +0x1780 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x1588 | A0 E9 FF FF | SOffset32 | 0xFFFFE9A0 (-5728) Loc: +0x2BE8 | offset to vtable + +0x158C | 00 00 00 | uint8_t[3] | ... | padding + +0x158F | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x1590 | 2E 00 | uint16_t | 0x002E (46) | table field `id` (UShort) + +0x1592 | 60 00 | uint16_t | 0x0060 (96) | table field `offset` (UShort) + +0x1594 | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: +0x15D4 | offset to field `name` (string) + +0x1598 | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: +0x15C4 | offset to field `type` (table) + +0x159C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x15A0 | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x1784 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x1788 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x178C | offset to table[0] + +0x15A0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x15A4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x15A8 | offset to table[0] table (reflection.KeyValue): - +0x178C | 70 DE FF FF | SOffset32 | 0xFFFFDE70 (-8592) Loc: +0x391C | offset to vtable - +0x1790 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x17A0 | offset to field `key` (string) - +0x1794 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1798 | offset to field `value` (string) + +0x15A8 | E0 DC FF FF | SOffset32 | 0xFFFFDCE0 (-8992) Loc: +0x38C8 | offset to vtable + +0x15AC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x15BC | offset to field `key` (string) + +0x15B0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x15B4 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1798 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x179C | 34 36 | char[2] | 46 | string literal - +0x179E | 00 | char | 0x00 (0) | string terminator + +0x15B4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x15B8 | 34 36 | char[2] | 46 | string literal + +0x15BA | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x17A0 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x17A4 | 69 64 | char[2] | id | string literal - +0x17A6 | 00 | char | 0x00 (0) | string terminator + +0x15BC | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x15C0 | 69 64 | char[2] | id | string literal + +0x15C2 | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x17A8 | 38 DB FF FF | SOffset32 | 0xFFFFDB38 (-9416) Loc: +0x3C70 | offset to vtable - +0x17AC | 00 00 00 | uint8_t[3] | ... | padding - +0x17AF | 10 | uint8_t | 0x10 (16) | table field `base_type` (Byte) - +0x17B0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `index` (Int) - +0x17B4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x15C4 | AC DD FF FF | SOffset32 | 0xFFFFDDAC (-8788) Loc: +0x3818 | offset to vtable + +0x15C8 | 00 00 00 | uint8_t[3] | ... | padding + +0x15CB | 10 | uint8_t | 0x10 (16) | table field `base_type` (Byte) + +0x15CC | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `index` (Int) + +0x15D0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x17B8 | 0D 00 00 00 | uint32_t | 0x0000000D (13) | length of string - +0x17BC | 61 6E 79 5F 61 6D 62 69 | char[13] | any_ambi | string literal - +0x17C4 | 67 75 6F 75 73 | | guous - +0x17C9 | 00 | char | 0x00 (0) | string terminator + +0x15D4 | 0D 00 00 00 | uint32_t | 0x0000000D (13) | length of string + +0x15D8 | 61 6E 79 5F 61 6D 62 69 | char[13] | any_ambi | string literal + +0x15E0 | 67 75 6F 75 73 | | guous + +0x15E5 | 00 | char | 0x00 (0) | string terminator padding: - +0x17CA | 00 00 | uint8_t[2] | .. | padding + +0x15E6 | 00 00 | uint8_t[2] | .. | padding table (reflection.Field): - +0x17CC | DA E9 FF FF | SOffset32 | 0xFFFFE9DA (-5670) Loc: +0x2DF2 | offset to vtable - +0x17D0 | 2D 00 | uint16_t | 0x002D (45) | table field `id` (UShort) - +0x17D2 | 5E 00 | uint16_t | 0x005E (94) | table field `offset` (UShort) - +0x17D4 | 4C 00 00 00 | UOffset32 | 0x0000004C (76) Loc: +0x1820 | offset to field `name` (string) - +0x17D8 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x180C | offset to field `type` (table) - +0x17DC | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x17E8 | offset to field `attributes` (vector) - +0x17E0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x17E4 | offset to field `documentation` (vector) - -vector (reflection.Field.documentation): - +0x17E4 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x15E8 | F0 EA FF FF | SOffset32 | 0xFFFFEAF0 (-5392) Loc: +0x2AF8 | offset to vtable + +0x15EC | 2D 00 | uint16_t | 0x002D (45) | table field `id` (UShort) + +0x15EE | 5E 00 | uint16_t | 0x005E (94) | table field `offset` (UShort) + +0x15F0 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x1634 | offset to field `name` (string) + +0x15F4 | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: +0x1620 | offset to field `type` (table) + +0x15F8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x15FC | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x17E8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x17EC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x17F0 | offset to table[0] + +0x15FC | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x1600 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1604 | offset to table[0] table (reflection.KeyValue): - +0x17F0 | D4 DE FF FF | SOffset32 | 0xFFFFDED4 (-8492) Loc: +0x391C | offset to vtable - +0x17F4 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1804 | offset to field `key` (string) - +0x17F8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x17FC | offset to field `value` (string) + +0x1604 | 3C DD FF FF | SOffset32 | 0xFFFFDD3C (-8900) Loc: +0x38C8 | offset to vtable + +0x1608 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1618 | offset to field `key` (string) + +0x160C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1610 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x17FC | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x1800 | 34 35 | char[2] | 45 | string literal - +0x1802 | 00 | char | 0x00 (0) | string terminator + +0x1610 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1614 | 34 35 | char[2] | 45 | string literal + +0x1616 | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x1804 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x1808 | 69 64 | char[2] | id | string literal - +0x180A | 00 | char | 0x00 (0) | string terminator + +0x1618 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x161C | 69 64 | char[2] | id | string literal + +0x161E | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x180C | 50 DE FF FF | SOffset32 | 0xFFFFDE50 (-8624) Loc: +0x39BC | offset to vtable - +0x1810 | 00 00 00 | uint8_t[3] | ... | padding - +0x1813 | 01 | uint8_t | 0x01 (1) | table field `base_type` (Byte) - +0x1814 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `index` (Int) - +0x1818 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) - +0x181C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x1620 | 74 E0 FF FF | SOffset32 | 0xFFFFE074 (-8076) Loc: +0x35AC | offset to vtable + +0x1624 | 00 00 00 | uint8_t[3] | ... | padding + +0x1627 | 01 | uint8_t | 0x01 (1) | table field `base_type` (Byte) + +0x1628 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `index` (Int) + +0x162C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) + +0x1630 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x1820 | 12 00 00 00 | uint32_t | 0x00000012 (18) | length of string - +0x1824 | 61 6E 79 5F 61 6D 62 69 | char[18] | any_ambi | string literal - +0x182C | 67 75 6F 75 73 5F 74 79 | | guous_ty - +0x1834 | 70 65 | | pe - +0x1836 | 00 | char | 0x00 (0) | string terminator + +0x1634 | 12 00 00 00 | uint32_t | 0x00000012 (18) | length of string + +0x1638 | 61 6E 79 5F 61 6D 62 69 | char[18] | any_ambi | string literal + +0x1640 | 67 75 6F 75 73 5F 74 79 | | guous_ty + +0x1648 | 70 65 | | pe + +0x164A | 00 | char | 0x00 (0) | string terminator table (reflection.Field): - +0x1838 | 5C E9 FF FF | SOffset32 | 0xFFFFE95C (-5796) Loc: +0x2EDC | offset to vtable - +0x183C | 00 00 00 | uint8_t[3] | ... | padding - +0x183F | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x1840 | 2C 00 | uint16_t | 0x002C (44) | table field `id` (UShort) - +0x1842 | 5C 00 | uint16_t | 0x005C (92) | table field `offset` (UShort) - +0x1844 | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: +0x188C | offset to field `name` (string) - +0x1848 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x187C | offset to field `type` (table) - +0x184C | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x1858 | offset to field `attributes` (vector) - +0x1850 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1854 | offset to field `documentation` (vector) - -vector (reflection.Field.documentation): - +0x1854 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x164C | 64 EA FF FF | SOffset32 | 0xFFFFEA64 (-5532) Loc: +0x2BE8 | offset to vtable + +0x1650 | 00 00 00 | uint8_t[3] | ... | padding + +0x1653 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x1654 | 2C 00 | uint16_t | 0x002C (44) | table field `id` (UShort) + +0x1656 | 5C 00 | uint16_t | 0x005C (92) | table field `offset` (UShort) + +0x1658 | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: +0x1698 | offset to field `name` (string) + +0x165C | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: +0x1688 | offset to field `type` (table) + +0x1660 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1664 | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x1858 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x185C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1860 | offset to table[0] + +0x1664 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x1668 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x166C | offset to table[0] table (reflection.KeyValue): - +0x1860 | 44 DF FF FF | SOffset32 | 0xFFFFDF44 (-8380) Loc: +0x391C | offset to vtable - +0x1864 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1874 | offset to field `key` (string) - +0x1868 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x186C | offset to field `value` (string) + +0x166C | A4 DD FF FF | SOffset32 | 0xFFFFDDA4 (-8796) Loc: +0x38C8 | offset to vtable + +0x1670 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1680 | offset to field `key` (string) + +0x1674 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1678 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x186C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x1870 | 34 34 | char[2] | 44 | string literal - +0x1872 | 00 | char | 0x00 (0) | string terminator + +0x1678 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x167C | 34 34 | char[2] | 44 | string literal + +0x167E | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x1874 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x1878 | 69 64 | char[2] | id | string literal - +0x187A | 00 | char | 0x00 (0) | string terminator + +0x1680 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1684 | 69 64 | char[2] | id | string literal + +0x1686 | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x187C | 0C DC FF FF | SOffset32 | 0xFFFFDC0C (-9204) Loc: +0x3C70 | offset to vtable - +0x1880 | 00 00 00 | uint8_t[3] | ... | padding - +0x1883 | 10 | uint8_t | 0x10 (16) | table field `base_type` (Byte) - +0x1884 | 02 00 00 00 | uint32_t | 0x00000002 (2) | table field `index` (Int) - +0x1888 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x1688 | 70 DE FF FF | SOffset32 | 0xFFFFDE70 (-8592) Loc: +0x3818 | offset to vtable + +0x168C | 00 00 00 | uint8_t[3] | ... | padding + +0x168F | 10 | uint8_t | 0x10 (16) | table field `base_type` (Byte) + +0x1690 | 02 00 00 00 | uint32_t | 0x00000002 (2) | table field `index` (Int) + +0x1694 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x188C | 0A 00 00 00 | uint32_t | 0x0000000A (10) | length of string - +0x1890 | 61 6E 79 5F 75 6E 69 71 | char[10] | any_uniq | string literal - +0x1898 | 75 65 | | ue - +0x189A | 00 | char | 0x00 (0) | string terminator + +0x1698 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | length of string + +0x169C | 61 6E 79 5F 75 6E 69 71 | char[10] | any_uniq | string literal + +0x16A4 | 75 65 | | ue + +0x16A6 | 00 | char | 0x00 (0) | string terminator table (reflection.Field): - +0x189C | AA EA FF FF | SOffset32 | 0xFFFFEAAA (-5462) Loc: +0x2DF2 | offset to vtable - +0x18A0 | 2B 00 | uint16_t | 0x002B (43) | table field `id` (UShort) - +0x18A2 | 5A 00 | uint16_t | 0x005A (90) | table field `offset` (UShort) - +0x18A4 | 4C 00 00 00 | UOffset32 | 0x0000004C (76) Loc: +0x18F0 | offset to field `name` (string) - +0x18A8 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x18DC | offset to field `type` (table) - +0x18AC | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x18B8 | offset to field `attributes` (vector) - +0x18B0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x18B4 | offset to field `documentation` (vector) - -vector (reflection.Field.documentation): - +0x18B4 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x16A8 | B0 EB FF FF | SOffset32 | 0xFFFFEBB0 (-5200) Loc: +0x2AF8 | offset to vtable + +0x16AC | 2B 00 | uint16_t | 0x002B (43) | table field `id` (UShort) + +0x16AE | 5A 00 | uint16_t | 0x005A (90) | table field `offset` (UShort) + +0x16B0 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x16F4 | offset to field `name` (string) + +0x16B4 | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: +0x16E0 | offset to field `type` (table) + +0x16B8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x16BC | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x18B8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x18BC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x18C0 | offset to table[0] + +0x16BC | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x16C0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x16C4 | offset to table[0] table (reflection.KeyValue): - +0x18C0 | A4 DF FF FF | SOffset32 | 0xFFFFDFA4 (-8284) Loc: +0x391C | offset to vtable - +0x18C4 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x18D4 | offset to field `key` (string) - +0x18C8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x18CC | offset to field `value` (string) + +0x16C4 | FC DD FF FF | SOffset32 | 0xFFFFDDFC (-8708) Loc: +0x38C8 | offset to vtable + +0x16C8 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x16D8 | offset to field `key` (string) + +0x16CC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x16D0 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x18CC | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x18D0 | 34 33 | char[2] | 43 | string literal - +0x18D2 | 00 | char | 0x00 (0) | string terminator + +0x16D0 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x16D4 | 34 33 | char[2] | 43 | string literal + +0x16D6 | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x18D4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x18D8 | 69 64 | char[2] | id | string literal - +0x18DA | 00 | char | 0x00 (0) | string terminator + +0x16D8 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x16DC | 69 64 | char[2] | id | string literal + +0x16DE | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x18DC | 20 DF FF FF | SOffset32 | 0xFFFFDF20 (-8416) Loc: +0x39BC | offset to vtable - +0x18E0 | 00 00 00 | uint8_t[3] | ... | padding - +0x18E3 | 01 | uint8_t | 0x01 (1) | table field `base_type` (Byte) - +0x18E4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | table field `index` (Int) - +0x18E8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) - +0x18EC | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x16E0 | 34 E1 FF FF | SOffset32 | 0xFFFFE134 (-7884) Loc: +0x35AC | offset to vtable + +0x16E4 | 00 00 00 | uint8_t[3] | ... | padding + +0x16E7 | 01 | uint8_t | 0x01 (1) | table field `base_type` (Byte) + +0x16E8 | 02 00 00 00 | uint32_t | 0x00000002 (2) | table field `index` (Int) + +0x16EC | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) + +0x16F0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x18F0 | 0F 00 00 00 | uint32_t | 0x0000000F (15) | length of string - +0x18F4 | 61 6E 79 5F 75 6E 69 71 | char[15] | any_uniq | string literal - +0x18FC | 75 65 5F 74 79 70 65 | | ue_type - +0x1903 | 00 | char | 0x00 (0) | string terminator + +0x16F4 | 0F 00 00 00 | uint32_t | 0x0000000F (15) | length of string + +0x16F8 | 61 6E 79 5F 75 6E 69 71 | char[15] | any_uniq | string literal + +0x1700 | 75 65 5F 74 79 70 65 | | ue_type + +0x1707 | 00 | char | 0x00 (0) | string terminator table (reflection.Field): - +0x1904 | 28 EA FF FF | SOffset32 | 0xFFFFEA28 (-5592) Loc: +0x2EDC | offset to vtable - +0x1908 | 00 00 00 | uint8_t[3] | ... | padding - +0x190B | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x190C | 2A 00 | uint16_t | 0x002A (42) | table field `id` (UShort) - +0x190E | 58 00 | uint16_t | 0x0058 (88) | table field `offset` (UShort) - +0x1910 | 00 01 00 00 | UOffset32 | 0x00000100 (256) Loc: +0x1A10 | offset to field `name` (string) - +0x1914 | F0 00 00 00 | UOffset32 | 0x000000F0 (240) Loc: +0x1A04 | offset to field `type` (table) - +0x1918 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x1924 | offset to field `attributes` (vector) - +0x191C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1920 | offset to field `documentation` (vector) - -vector (reflection.Field.documentation): - +0x1920 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x1708 | 20 EB FF FF | SOffset32 | 0xFFFFEB20 (-5344) Loc: +0x2BE8 | offset to vtable + +0x170C | 00 00 00 | uint8_t[3] | ... | padding + +0x170F | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x1710 | 2A 00 | uint16_t | 0x002A (42) | table field `id` (UShort) + +0x1712 | 58 00 | uint16_t | 0x0058 (88) | table field `offset` (UShort) + +0x1714 | F8 00 00 00 | UOffset32 | 0x000000F8 (248) Loc: +0x180C | offset to field `name` (string) + +0x1718 | E8 00 00 00 | UOffset32 | 0x000000E8 (232) Loc: +0x1800 | offset to field `type` (table) + +0x171C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1720 | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x1924 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of vector (# items) - +0x1928 | B0 00 00 00 | UOffset32 | 0x000000B0 (176) Loc: +0x19D8 | offset to table[0] - +0x192C | 80 00 00 00 | UOffset32 | 0x00000080 (128) Loc: +0x19AC | offset to table[1] - +0x1930 | 50 00 00 00 | UOffset32 | 0x00000050 (80) Loc: +0x1980 | offset to table[2] - +0x1934 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x1958 | offset to table[3] - +0x1938 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x193C | offset to table[4] + +0x1720 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of vector (# items) + +0x1724 | B0 00 00 00 | UOffset32 | 0x000000B0 (176) Loc: +0x17D4 | offset to table[0] + +0x1728 | 80 00 00 00 | UOffset32 | 0x00000080 (128) Loc: +0x17A8 | offset to table[1] + +0x172C | 50 00 00 00 | UOffset32 | 0x00000050 (80) Loc: +0x177C | offset to table[2] + +0x1730 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x1754 | offset to table[3] + +0x1734 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1738 | offset to table[4] table (reflection.KeyValue): - +0x193C | 20 E0 FF FF | SOffset32 | 0xFFFFE020 (-8160) Loc: +0x391C | offset to vtable - +0x1940 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1950 | offset to field `key` (string) - +0x1944 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1948 | offset to field `value` (string) + +0x1738 | 70 DE FF FF | SOffset32 | 0xFFFFDE70 (-8592) Loc: +0x38C8 | offset to vtable + +0x173C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x174C | offset to field `key` (string) + +0x1740 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1744 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1948 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x194C | 34 32 | char[2] | 42 | string literal - +0x194E | 00 | char | 0x00 (0) | string terminator + +0x1744 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1748 | 34 32 | char[2] | 42 | string literal + +0x174A | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x1950 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x1954 | 69 64 | char[2] | id | string literal - +0x1956 | 00 | char | 0x00 (0) | string terminator + +0x174C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1750 | 69 64 | char[2] | id | string literal + +0x1752 | 00 | char | 0x00 (0) | string terminator table (reflection.KeyValue): - +0x1958 | 3C E0 FF FF | SOffset32 | 0xFFFFE03C (-8132) Loc: +0x391C | offset to vtable - +0x195C | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x1974 | offset to field `key` (string) - +0x1960 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1964 | offset to field `value` (string) + +0x1754 | 8C DE FF FF | SOffset32 | 0xFFFFDE8C (-8564) Loc: +0x38C8 | offset to vtable + +0x1758 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x1770 | offset to field `key` (string) + +0x175C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1760 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1964 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string - +0x1968 | 66 6E 76 31 61 5F 36 34 | char[8] | fnv1a_64 | string literal - +0x1970 | 00 | char | 0x00 (0) | string terminator + +0x1760 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string + +0x1764 | 66 6E 76 31 61 5F 36 34 | char[8] | fnv1a_64 | string literal + +0x176C | 00 | char | 0x00 (0) | string terminator padding: - +0x1971 | 00 00 00 | uint8_t[3] | ... | padding + +0x176D | 00 00 00 | uint8_t[3] | ... | padding string (reflection.KeyValue.key): - +0x1974 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string - +0x1978 | 68 61 73 68 | char[4] | hash | string literal - +0x197C | 00 | char | 0x00 (0) | string terminator + +0x1770 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string + +0x1774 | 68 61 73 68 | char[4] | hash | string literal + +0x1778 | 00 | char | 0x00 (0) | string terminator padding: - +0x197D | 00 00 00 | uint8_t[3] | ... | padding + +0x1779 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.KeyValue): - +0x1980 | 64 E0 FF FF | SOffset32 | 0xFFFFE064 (-8092) Loc: +0x391C | offset to vtable - +0x1984 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x199C | offset to field `key` (string) - +0x1988 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x198C | offset to field `value` (string) + +0x177C | B4 DE FF FF | SOffset32 | 0xFFFFDEB4 (-8524) Loc: +0x38C8 | offset to vtable + +0x1780 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x1798 | offset to field `key` (string) + +0x1784 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1788 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x198C | 0B 00 00 00 | uint32_t | 0x0000000B (11) | length of string - +0x1990 | 52 65 66 65 72 72 61 62 | char[11] | Referrab | string literal - +0x1998 | 6C 65 54 | | leT - +0x199B | 00 | char | 0x00 (0) | string terminator + +0x1788 | 0B 00 00 00 | uint32_t | 0x0000000B (11) | length of string + +0x178C | 52 65 66 65 72 72 61 62 | char[11] | Referrab | string literal + +0x1794 | 6C 65 54 | | leT + +0x1797 | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x199C | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string - +0x19A0 | 63 70 70 5F 74 79 70 65 | char[8] | cpp_type | string literal - +0x19A8 | 00 | char | 0x00 (0) | string terminator + +0x1798 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string + +0x179C | 63 70 70 5F 74 79 70 65 | char[8] | cpp_type | string literal + +0x17A4 | 00 | char | 0x00 (0) | string terminator padding: - +0x19A9 | 00 00 00 | uint8_t[3] | ... | padding + +0x17A5 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.KeyValue): - +0x19AC | 90 E0 FF FF | SOffset32 | 0xFFFFE090 (-8048) Loc: +0x391C | offset to vtable - +0x19B0 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x19C0 | offset to field `key` (string) - +0x19B4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x19B8 | offset to field `value` (string) + +0x17A8 | E0 DE FF FF | SOffset32 | 0xFFFFDEE0 (-8480) Loc: +0x38C8 | offset to vtable + +0x17AC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x17BC | offset to field `key` (string) + +0x17B0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x17B4 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x19B8 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of string - +0x19BC | 00 | char | 0x00 (0) | string terminator + +0x17B4 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of string + +0x17B8 | 00 | char | 0x00 (0) | string terminator padding: - +0x19BD | 00 00 00 | uint8_t[3] | ... | padding + +0x17B9 | 00 00 00 | uint8_t[3] | ... | padding string (reflection.KeyValue.key): - +0x19C0 | 10 00 00 00 | uint32_t | 0x00000010 (16) | length of string - +0x19C4 | 63 70 70 5F 70 74 72 5F | char[16] | cpp_ptr_ | string literal - +0x19CC | 74 79 70 65 5F 67 65 74 | | type_get - +0x19D4 | 00 | char | 0x00 (0) | string terminator + +0x17BC | 10 00 00 00 | uint32_t | 0x00000010 (16) | length of string + +0x17C0 | 63 70 70 5F 70 74 72 5F | char[16] | cpp_ptr_ | string literal + +0x17C8 | 74 79 70 65 5F 67 65 74 | | type_get + +0x17D0 | 00 | char | 0x00 (0) | string terminator padding: - +0x19D5 | 00 00 00 | uint8_t[3] | ... | padding + +0x17D1 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.KeyValue): - +0x19D8 | BC E0 FF FF | SOffset32 | 0xFFFFE0BC (-8004) Loc: +0x391C | offset to vtable - +0x19DC | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x19F0 | offset to field `key` (string) - +0x19E0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x19E4 | offset to field `value` (string) + +0x17D4 | 0C DF FF FF | SOffset32 | 0xFFFFDF0C (-8436) Loc: +0x38C8 | offset to vtable + +0x17D8 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x17EC | offset to field `key` (string) + +0x17DC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x17E0 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x19E4 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string - +0x19E8 | 6E 61 6B 65 64 | char[5] | naked | string literal - +0x19ED | 00 | char | 0x00 (0) | string terminator + +0x17E0 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string + +0x17E4 | 6E 61 6B 65 64 | char[5] | naked | string literal + +0x17E9 | 00 | char | 0x00 (0) | string terminator padding: - +0x19EE | 00 00 | uint8_t[2] | .. | padding + +0x17EA | 00 00 | uint8_t[2] | .. | padding string (reflection.KeyValue.key): - +0x19F0 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | length of string - +0x19F4 | 63 70 70 5F 70 74 72 5F | char[12] | cpp_ptr_ | string literal - +0x19FC | 74 79 70 65 | | type - +0x1A00 | 00 | char | 0x00 (0) | string terminator + +0x17EC | 0C 00 00 00 | uint32_t | 0x0000000C (12) | length of string + +0x17F0 | 63 70 70 5F 70 74 72 5F | char[12] | cpp_ptr_ | string literal + +0x17F8 | 74 79 70 65 | | type + +0x17FC | 00 | char | 0x00 (0) | string terminator padding: - +0x1A01 | 00 00 00 | uint8_t[3] | ... | padding + +0x17FD | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Type): - +0x1A04 | C8 EA FF FF | SOffset32 | 0xFFFFEAC8 (-5432) Loc: +0x2F3C | offset to vtable - +0x1A08 | 00 00 | uint8_t[2] | .. | padding - +0x1A0A | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) - +0x1A0B | 0A | uint8_t | 0x0A (10) | table field `element` (Byte) - +0x1A0C | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `element_size` (UInt) + +0x1800 | C0 EB FF FF | SOffset32 | 0xFFFFEBC0 (-5184) Loc: +0x2C40 | offset to vtable + +0x1804 | 00 00 | uint8_t[2] | .. | padding + +0x1806 | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) + +0x1807 | 0A | uint8_t | 0x0A (10) | table field `element` (Byte) + +0x1808 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `element_size` (UInt) string (reflection.Field.name): - +0x1A10 | 1F 00 00 00 | uint32_t | 0x0000001F (31) | length of string - +0x1A14 | 76 65 63 74 6F 72 5F 6F | char[31] | vector_o | string literal - +0x1A1C | 66 5F 6E 6F 6E 5F 6F 77 | | f_non_ow - +0x1A24 | 6E 69 6E 67 5F 72 65 66 | | ning_ref - +0x1A2C | 65 72 65 6E 63 65 73 | | erences - +0x1A33 | 00 | char | 0x00 (0) | string terminator + +0x180C | 1F 00 00 00 | uint32_t | 0x0000001F (31) | length of string + +0x1810 | 76 65 63 74 6F 72 5F 6F | char[31] | vector_o | string literal + +0x1818 | 66 5F 6E 6F 6E 5F 6F 77 | | f_non_ow + +0x1820 | 6E 69 6E 67 5F 72 65 66 | | ning_ref + +0x1828 | 65 72 65 6E 63 65 73 | | erences + +0x182F | 00 | char | 0x00 (0) | string terminator table (reflection.Field): - +0x1A34 | 42 EC FF FF | SOffset32 | 0xFFFFEC42 (-5054) Loc: +0x2DF2 | offset to vtable - +0x1A38 | 29 00 | uint16_t | 0x0029 (41) | table field `id` (UShort) - +0x1A3A | 56 00 | uint16_t | 0x0056 (86) | table field `offset` (UShort) - +0x1A3C | 04 01 00 00 | UOffset32 | 0x00000104 (260) Loc: +0x1B40 | offset to field `name` (string) - +0x1A40 | F0 00 00 00 | UOffset32 | 0x000000F0 (240) Loc: +0x1B30 | offset to field `type` (table) - +0x1A44 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x1A50 | offset to field `attributes` (vector) - +0x1A48 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1A4C | offset to field `documentation` (vector) - -vector (reflection.Field.documentation): - +0x1A4C | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x1830 | 38 ED FF FF | SOffset32 | 0xFFFFED38 (-4808) Loc: +0x2AF8 | offset to vtable + +0x1834 | 29 00 | uint16_t | 0x0029 (41) | table field `id` (UShort) + +0x1836 | 56 00 | uint16_t | 0x0056 (86) | table field `offset` (UShort) + +0x1838 | FC 00 00 00 | UOffset32 | 0x000000FC (252) Loc: +0x1934 | offset to field `name` (string) + +0x183C | E8 00 00 00 | UOffset32 | 0x000000E8 (232) Loc: +0x1924 | offset to field `type` (table) + +0x1840 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1844 | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x1A50 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of vector (# items) - +0x1A54 | B0 00 00 00 | UOffset32 | 0x000000B0 (176) Loc: +0x1B04 | offset to table[0] - +0x1A58 | 80 00 00 00 | UOffset32 | 0x00000080 (128) Loc: +0x1AD8 | offset to table[1] - +0x1A5C | 50 00 00 00 | UOffset32 | 0x00000050 (80) Loc: +0x1AAC | offset to table[2] - +0x1A60 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x1A84 | offset to table[3] - +0x1A64 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1A68 | offset to table[4] + +0x1844 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of vector (# items) + +0x1848 | B0 00 00 00 | UOffset32 | 0x000000B0 (176) Loc: +0x18F8 | offset to table[0] + +0x184C | 80 00 00 00 | UOffset32 | 0x00000080 (128) Loc: +0x18CC | offset to table[1] + +0x1850 | 50 00 00 00 | UOffset32 | 0x00000050 (80) Loc: +0x18A0 | offset to table[2] + +0x1854 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x1878 | offset to table[3] + +0x1858 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x185C | offset to table[4] table (reflection.KeyValue): - +0x1A68 | 4C E1 FF FF | SOffset32 | 0xFFFFE14C (-7860) Loc: +0x391C | offset to vtable - +0x1A6C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1A7C | offset to field `key` (string) - +0x1A70 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1A74 | offset to field `value` (string) + +0x185C | 94 DF FF FF | SOffset32 | 0xFFFFDF94 (-8300) Loc: +0x38C8 | offset to vtable + +0x1860 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1870 | offset to field `key` (string) + +0x1864 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1868 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1A74 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x1A78 | 34 31 | char[2] | 41 | string literal - +0x1A7A | 00 | char | 0x00 (0) | string terminator + +0x1868 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x186C | 34 31 | char[2] | 41 | string literal + +0x186E | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x1A7C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x1A80 | 69 64 | char[2] | id | string literal - +0x1A82 | 00 | char | 0x00 (0) | string terminator + +0x1870 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1874 | 69 64 | char[2] | id | string literal + +0x1876 | 00 | char | 0x00 (0) | string terminator table (reflection.KeyValue): - +0x1A84 | 68 E1 FF FF | SOffset32 | 0xFFFFE168 (-7832) Loc: +0x391C | offset to vtable - +0x1A88 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x1AA0 | offset to field `key` (string) - +0x1A8C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1A90 | offset to field `value` (string) + +0x1878 | B0 DF FF FF | SOffset32 | 0xFFFFDFB0 (-8272) Loc: +0x38C8 | offset to vtable + +0x187C | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x1894 | offset to field `key` (string) + +0x1880 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1884 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1A90 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string - +0x1A94 | 66 6E 76 31 61 5F 36 34 | char[8] | fnv1a_64 | string literal - +0x1A9C | 00 | char | 0x00 (0) | string terminator + +0x1884 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string + +0x1888 | 66 6E 76 31 61 5F 36 34 | char[8] | fnv1a_64 | string literal + +0x1890 | 00 | char | 0x00 (0) | string terminator padding: - +0x1A9D | 00 00 00 | uint8_t[3] | ... | padding + +0x1891 | 00 00 00 | uint8_t[3] | ... | padding string (reflection.KeyValue.key): - +0x1AA0 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string - +0x1AA4 | 68 61 73 68 | char[4] | hash | string literal - +0x1AA8 | 00 | char | 0x00 (0) | string terminator + +0x1894 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string + +0x1898 | 68 61 73 68 | char[4] | hash | string literal + +0x189C | 00 | char | 0x00 (0) | string terminator padding: - +0x1AA9 | 00 00 00 | uint8_t[3] | ... | padding + +0x189D | 00 00 00 | uint8_t[3] | ... | padding table (reflection.KeyValue): - +0x1AAC | 90 E1 FF FF | SOffset32 | 0xFFFFE190 (-7792) Loc: +0x391C | offset to vtable - +0x1AB0 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x1AC8 | offset to field `key` (string) - +0x1AB4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1AB8 | offset to field `value` (string) + +0x18A0 | D8 DF FF FF | SOffset32 | 0xFFFFDFD8 (-8232) Loc: +0x38C8 | offset to vtable + +0x18A4 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x18BC | offset to field `key` (string) + +0x18A8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x18AC | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1AB8 | 0B 00 00 00 | uint32_t | 0x0000000B (11) | length of string - +0x1ABC | 52 65 66 65 72 72 61 62 | char[11] | Referrab | string literal - +0x1AC4 | 6C 65 54 | | leT - +0x1AC7 | 00 | char | 0x00 (0) | string terminator + +0x18AC | 0B 00 00 00 | uint32_t | 0x0000000B (11) | length of string + +0x18B0 | 52 65 66 65 72 72 61 62 | char[11] | Referrab | string literal + +0x18B8 | 6C 65 54 | | leT + +0x18BB | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x1AC8 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string - +0x1ACC | 63 70 70 5F 74 79 70 65 | char[8] | cpp_type | string literal - +0x1AD4 | 00 | char | 0x00 (0) | string terminator + +0x18BC | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string + +0x18C0 | 63 70 70 5F 74 79 70 65 | char[8] | cpp_type | string literal + +0x18C8 | 00 | char | 0x00 (0) | string terminator padding: - +0x1AD5 | 00 00 00 | uint8_t[3] | ... | padding + +0x18C9 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.KeyValue): - +0x1AD8 | BC E1 FF FF | SOffset32 | 0xFFFFE1BC (-7748) Loc: +0x391C | offset to vtable - +0x1ADC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1AEC | offset to field `key` (string) - +0x1AE0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1AE4 | offset to field `value` (string) + +0x18CC | 04 E0 FF FF | SOffset32 | 0xFFFFE004 (-8188) Loc: +0x38C8 | offset to vtable + +0x18D0 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x18E0 | offset to field `key` (string) + +0x18D4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x18D8 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1AE4 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of string - +0x1AE8 | 00 | char | 0x00 (0) | string terminator + +0x18D8 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of string + +0x18DC | 00 | char | 0x00 (0) | string terminator padding: - +0x1AE9 | 00 00 00 | uint8_t[3] | ... | padding + +0x18DD | 00 00 00 | uint8_t[3] | ... | padding string (reflection.KeyValue.key): - +0x1AEC | 10 00 00 00 | uint32_t | 0x00000010 (16) | length of string - +0x1AF0 | 63 70 70 5F 70 74 72 5F | char[16] | cpp_ptr_ | string literal - +0x1AF8 | 74 79 70 65 5F 67 65 74 | | type_get - +0x1B00 | 00 | char | 0x00 (0) | string terminator + +0x18E0 | 10 00 00 00 | uint32_t | 0x00000010 (16) | length of string + +0x18E4 | 63 70 70 5F 70 74 72 5F | char[16] | cpp_ptr_ | string literal + +0x18EC | 74 79 70 65 5F 67 65 74 | | type_get + +0x18F4 | 00 | char | 0x00 (0) | string terminator padding: - +0x1B01 | 00 00 00 | uint8_t[3] | ... | padding + +0x18F5 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.KeyValue): - +0x1B04 | E8 E1 FF FF | SOffset32 | 0xFFFFE1E8 (-7704) Loc: +0x391C | offset to vtable - +0x1B08 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x1B1C | offset to field `key` (string) - +0x1B0C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1B10 | offset to field `value` (string) + +0x18F8 | 30 E0 FF FF | SOffset32 | 0xFFFFE030 (-8144) Loc: +0x38C8 | offset to vtable + +0x18FC | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x1910 | offset to field `key` (string) + +0x1900 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1904 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1B10 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string - +0x1B14 | 6E 61 6B 65 64 | char[5] | naked | string literal - +0x1B19 | 00 | char | 0x00 (0) | string terminator + +0x1904 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string + +0x1908 | 6E 61 6B 65 64 | char[5] | naked | string literal + +0x190D | 00 | char | 0x00 (0) | string terminator padding: - +0x1B1A | 00 00 | uint8_t[2] | .. | padding + +0x190E | 00 00 | uint8_t[2] | .. | padding string (reflection.KeyValue.key): - +0x1B1C | 0C 00 00 00 | uint32_t | 0x0000000C (12) | length of string - +0x1B20 | 63 70 70 5F 70 74 72 5F | char[12] | cpp_ptr_ | string literal - +0x1B28 | 74 79 70 65 | | type - +0x1B2C | 00 | char | 0x00 (0) | string terminator + +0x1910 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | length of string + +0x1914 | 63 70 70 5F 70 74 72 5F | char[12] | cpp_ptr_ | string literal + +0x191C | 74 79 70 65 | | type + +0x1920 | 00 | char | 0x00 (0) | string terminator padding: - +0x1B2D | 00 00 00 | uint8_t[3] | ... | padding + +0x1921 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Type): - +0x1B30 | 94 E0 FF FF | SOffset32 | 0xFFFFE094 (-8044) Loc: +0x3A9C | offset to vtable - +0x1B34 | 00 00 00 | uint8_t[3] | ... | padding - +0x1B37 | 0A | uint8_t | 0x0A (10) | table field `base_type` (Byte) - +0x1B38 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt) - +0x1B3C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x1924 | B0 E2 FF FF | SOffset32 | 0xFFFFE2B0 (-7504) Loc: +0x3674 | offset to vtable + +0x1928 | 00 00 00 | uint8_t[3] | ... | padding + +0x192B | 0A | uint8_t | 0x0A (10) | table field `base_type` (Byte) + +0x192C | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt) + +0x1930 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x1B40 | 14 00 00 00 | uint32_t | 0x00000014 (20) | length of string - +0x1B44 | 6E 6F 6E 5F 6F 77 6E 69 | char[20] | non_owni | string literal - +0x1B4C | 6E 67 5F 72 65 66 65 72 | | ng_refer - +0x1B54 | 65 6E 63 65 | | ence - +0x1B58 | 00 | char | 0x00 (0) | string terminator + +0x1934 | 14 00 00 00 | uint32_t | 0x00000014 (20) | length of string + +0x1938 | 6E 6F 6E 5F 6F 77 6E 69 | char[20] | non_owni | string literal + +0x1940 | 6E 67 5F 72 65 66 65 72 | | ng_refer + +0x1948 | 65 6E 63 65 | | ence + +0x194C | 00 | char | 0x00 (0) | string terminator padding: - +0x1B59 | 00 00 00 | uint8_t[3] | ... | padding + +0x194D | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Field): - +0x1B5C | 80 EC FF FF | SOffset32 | 0xFFFFEC80 (-4992) Loc: +0x2EDC | offset to vtable - +0x1B60 | 00 00 00 | uint8_t[3] | ... | padding - +0x1B63 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x1B64 | 28 00 | uint16_t | 0x0028 (40) | table field `id` (UShort) - +0x1B66 | 54 00 | uint16_t | 0x0054 (84) | table field `offset` (UShort) - +0x1B68 | 10 01 00 00 | UOffset32 | 0x00000110 (272) Loc: +0x1C78 | offset to field `name` (string) - +0x1B6C | 00 01 00 00 | UOffset32 | 0x00000100 (256) Loc: +0x1C6C | offset to field `type` (table) - +0x1B70 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x1B7C | offset to field `attributes` (vector) - +0x1B74 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1B78 | offset to field `documentation` (vector) - -vector (reflection.Field.documentation): - +0x1B78 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x1950 | 68 ED FF FF | SOffset32 | 0xFFFFED68 (-4760) Loc: +0x2BE8 | offset to vtable + +0x1954 | 00 00 00 | uint8_t[3] | ... | padding + +0x1957 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x1958 | 28 00 | uint16_t | 0x0028 (40) | table field `id` (UShort) + +0x195A | 54 00 | uint16_t | 0x0054 (84) | table field `offset` (UShort) + +0x195C | 08 01 00 00 | UOffset32 | 0x00000108 (264) Loc: +0x1A64 | offset to field `name` (string) + +0x1960 | F8 00 00 00 | UOffset32 | 0x000000F8 (248) Loc: +0x1A58 | offset to field `type` (table) + +0x1964 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1968 | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x1B7C | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of vector (# items) - +0x1B80 | B4 00 00 00 | UOffset32 | 0x000000B4 (180) Loc: +0x1C34 | offset to table[0] - +0x1B84 | 80 00 00 00 | UOffset32 | 0x00000080 (128) Loc: +0x1C04 | offset to table[1] - +0x1B88 | 50 00 00 00 | UOffset32 | 0x00000050 (80) Loc: +0x1BD8 | offset to table[2] - +0x1B8C | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x1BB0 | offset to table[3] - +0x1B90 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1B94 | offset to table[4] + +0x1968 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of vector (# items) + +0x196C | B4 00 00 00 | UOffset32 | 0x000000B4 (180) Loc: +0x1A20 | offset to table[0] + +0x1970 | 80 00 00 00 | UOffset32 | 0x00000080 (128) Loc: +0x19F0 | offset to table[1] + +0x1974 | 50 00 00 00 | UOffset32 | 0x00000050 (80) Loc: +0x19C4 | offset to table[2] + +0x1978 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x199C | offset to table[3] + +0x197C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1980 | offset to table[4] table (reflection.KeyValue): - +0x1B94 | 78 E2 FF FF | SOffset32 | 0xFFFFE278 (-7560) Loc: +0x391C | offset to vtable - +0x1B98 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1BA8 | offset to field `key` (string) - +0x1B9C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1BA0 | offset to field `value` (string) + +0x1980 | B8 E0 FF FF | SOffset32 | 0xFFFFE0B8 (-8008) Loc: +0x38C8 | offset to vtable + +0x1984 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1994 | offset to field `key` (string) + +0x1988 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x198C | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1BA0 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x1BA4 | 34 30 | char[2] | 40 | string literal - +0x1BA6 | 00 | char | 0x00 (0) | string terminator + +0x198C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1990 | 34 30 | char[2] | 40 | string literal + +0x1992 | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x1BA8 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x1BAC | 69 64 | char[2] | id | string literal - +0x1BAE | 00 | char | 0x00 (0) | string terminator + +0x1994 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1998 | 69 64 | char[2] | id | string literal + +0x199A | 00 | char | 0x00 (0) | string terminator table (reflection.KeyValue): - +0x1BB0 | 94 E2 FF FF | SOffset32 | 0xFFFFE294 (-7532) Loc: +0x391C | offset to vtable - +0x1BB4 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x1BCC | offset to field `key` (string) - +0x1BB8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1BBC | offset to field `value` (string) + +0x199C | D4 E0 FF FF | SOffset32 | 0xFFFFE0D4 (-7980) Loc: +0x38C8 | offset to vtable + +0x19A0 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x19B8 | offset to field `key` (string) + +0x19A4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x19A8 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1BBC | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string - +0x1BC0 | 66 6E 76 31 61 5F 36 34 | char[8] | fnv1a_64 | string literal - +0x1BC8 | 00 | char | 0x00 (0) | string terminator + +0x19A8 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string + +0x19AC | 66 6E 76 31 61 5F 36 34 | char[8] | fnv1a_64 | string literal + +0x19B4 | 00 | char | 0x00 (0) | string terminator padding: - +0x1BC9 | 00 00 00 | uint8_t[3] | ... | padding + +0x19B5 | 00 00 00 | uint8_t[3] | ... | padding string (reflection.KeyValue.key): - +0x1BCC | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string - +0x1BD0 | 68 61 73 68 | char[4] | hash | string literal - +0x1BD4 | 00 | char | 0x00 (0) | string terminator + +0x19B8 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string + +0x19BC | 68 61 73 68 | char[4] | hash | string literal + +0x19C0 | 00 | char | 0x00 (0) | string terminator padding: - +0x1BD5 | 00 00 00 | uint8_t[3] | ... | padding + +0x19C1 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.KeyValue): - +0x1BD8 | BC E2 FF FF | SOffset32 | 0xFFFFE2BC (-7492) Loc: +0x391C | offset to vtable - +0x1BDC | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x1BF4 | offset to field `key` (string) - +0x1BE0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1BE4 | offset to field `value` (string) + +0x19C4 | FC E0 FF FF | SOffset32 | 0xFFFFE0FC (-7940) Loc: +0x38C8 | offset to vtable + +0x19C8 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x19E0 | offset to field `key` (string) + +0x19CC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x19D0 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1BE4 | 0B 00 00 00 | uint32_t | 0x0000000B (11) | length of string - +0x1BE8 | 52 65 66 65 72 72 61 62 | char[11] | Referrab | string literal - +0x1BF0 | 6C 65 54 | | leT - +0x1BF3 | 00 | char | 0x00 (0) | string terminator + +0x19D0 | 0B 00 00 00 | uint32_t | 0x0000000B (11) | length of string + +0x19D4 | 52 65 66 65 72 72 61 62 | char[11] | Referrab | string literal + +0x19DC | 6C 65 54 | | leT + +0x19DF | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x1BF4 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string - +0x1BF8 | 63 70 70 5F 74 79 70 65 | char[8] | cpp_type | string literal - +0x1C00 | 00 | char | 0x00 (0) | string terminator + +0x19E0 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string + +0x19E4 | 63 70 70 5F 74 79 70 65 | char[8] | cpp_type | string literal + +0x19EC | 00 | char | 0x00 (0) | string terminator padding: - +0x1C01 | 00 00 00 | uint8_t[3] | ... | padding + +0x19ED | 00 00 00 | uint8_t[3] | ... | padding table (reflection.KeyValue): - +0x1C04 | E8 E2 FF FF | SOffset32 | 0xFFFFE2E8 (-7448) Loc: +0x391C | offset to vtable - +0x1C08 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x1C1C | offset to field `key` (string) - +0x1C0C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1C10 | offset to field `value` (string) + +0x19F0 | 28 E1 FF FF | SOffset32 | 0xFFFFE128 (-7896) Loc: +0x38C8 | offset to vtable + +0x19F4 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x1A08 | offset to field `key` (string) + +0x19F8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x19FC | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1C10 | 06 00 00 00 | uint32_t | 0x00000006 (6) | length of string - +0x1C14 | 2E 67 65 74 28 29 | char[6] | .get() | string literal - +0x1C1A | 00 | char | 0x00 (0) | string terminator + +0x19FC | 06 00 00 00 | uint32_t | 0x00000006 (6) | length of string + +0x1A00 | 2E 67 65 74 28 29 | char[6] | .get() | string literal + +0x1A06 | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x1C1C | 10 00 00 00 | uint32_t | 0x00000010 (16) | length of string - +0x1C20 | 63 70 70 5F 70 74 72 5F | char[16] | cpp_ptr_ | string literal - +0x1C28 | 74 79 70 65 5F 67 65 74 | | type_get - +0x1C30 | 00 | char | 0x00 (0) | string terminator + +0x1A08 | 10 00 00 00 | uint32_t | 0x00000010 (16) | length of string + +0x1A0C | 63 70 70 5F 70 74 72 5F | char[16] | cpp_ptr_ | string literal + +0x1A14 | 74 79 70 65 5F 67 65 74 | | type_get + +0x1A1C | 00 | char | 0x00 (0) | string terminator padding: - +0x1C31 | 00 00 00 | uint8_t[3] | ... | padding + +0x1A1D | 00 00 00 | uint8_t[3] | ... | padding table (reflection.KeyValue): - +0x1C34 | 18 E3 FF FF | SOffset32 | 0xFFFFE318 (-7400) Loc: +0x391C | offset to vtable - +0x1C38 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x1C58 | offset to field `key` (string) - +0x1C3C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1C40 | offset to field `value` (string) + +0x1A20 | 58 E1 FF FF | SOffset32 | 0xFFFFE158 (-7848) Loc: +0x38C8 | offset to vtable + +0x1A24 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x1A44 | offset to field `key` (string) + +0x1A28 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1A2C | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1C40 | 10 00 00 00 | uint32_t | 0x00000010 (16) | length of string - +0x1C44 | 64 65 66 61 75 6C 74 5F | char[16] | default_ | string literal - +0x1C4C | 70 74 72 5F 74 79 70 65 | | ptr_type - +0x1C54 | 00 | char | 0x00 (0) | string terminator + +0x1A2C | 10 00 00 00 | uint32_t | 0x00000010 (16) | length of string + +0x1A30 | 64 65 66 61 75 6C 74 5F | char[16] | default_ | string literal + +0x1A38 | 70 74 72 5F 74 79 70 65 | | ptr_type + +0x1A40 | 00 | char | 0x00 (0) | string terminator padding: - +0x1C55 | 00 00 00 | uint8_t[3] | ... | padding + +0x1A41 | 00 00 00 | uint8_t[3] | ... | padding string (reflection.KeyValue.key): - +0x1C58 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | length of string - +0x1C5C | 63 70 70 5F 70 74 72 5F | char[12] | cpp_ptr_ | string literal - +0x1C64 | 74 79 70 65 | | type - +0x1C68 | 00 | char | 0x00 (0) | string terminator + +0x1A44 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | length of string + +0x1A48 | 63 70 70 5F 70 74 72 5F | char[12] | cpp_ptr_ | string literal + +0x1A50 | 74 79 70 65 | | type + +0x1A54 | 00 | char | 0x00 (0) | string terminator padding: - +0x1C69 | 00 00 00 | uint8_t[3] | ... | padding + +0x1A55 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Type): - +0x1C6C | 30 ED FF FF | SOffset32 | 0xFFFFED30 (-4816) Loc: +0x2F3C | offset to vtable - +0x1C70 | 00 00 | uint8_t[2] | .. | padding - +0x1C72 | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) - +0x1C73 | 0A | uint8_t | 0x0A (10) | table field `element` (Byte) - +0x1C74 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `element_size` (UInt) + +0x1A58 | 18 EE FF FF | SOffset32 | 0xFFFFEE18 (-4584) Loc: +0x2C40 | offset to vtable + +0x1A5C | 00 00 | uint8_t[2] | .. | padding + +0x1A5E | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) + +0x1A5F | 0A | uint8_t | 0x0A (10) | table field `element` (Byte) + +0x1A60 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `element_size` (UInt) string (reflection.Field.name): - +0x1C78 | 1E 00 00 00 | uint32_t | 0x0000001E (30) | length of string - +0x1C7C | 76 65 63 74 6F 72 5F 6F | char[30] | vector_o | string literal - +0x1C84 | 66 5F 63 6F 5F 6F 77 6E | | f_co_own - +0x1C8C | 69 6E 67 5F 72 65 66 65 | | ing_refe - +0x1C94 | 72 65 6E 63 65 73 | | rences - +0x1C9A | 00 | char | 0x00 (0) | string terminator + +0x1A64 | 1E 00 00 00 | uint32_t | 0x0000001E (30) | length of string + +0x1A68 | 76 65 63 74 6F 72 5F 6F | char[30] | vector_o | string literal + +0x1A70 | 66 5F 63 6F 5F 6F 77 6E | | f_co_own + +0x1A78 | 69 6E 67 5F 72 65 66 65 | | ing_refe + +0x1A80 | 72 65 6E 63 65 73 | | rences + +0x1A86 | 00 | char | 0x00 (0) | string terminator table (reflection.Field): - +0x1C9C | AA EE FF FF | SOffset32 | 0xFFFFEEAA (-4438) Loc: +0x2DF2 | offset to vtable - +0x1CA0 | 27 00 | uint16_t | 0x0027 (39) | table field `id` (UShort) - +0x1CA2 | 52 00 | uint16_t | 0x0052 (82) | table field `offset` (UShort) - +0x1CA4 | D4 00 00 00 | UOffset32 | 0x000000D4 (212) Loc: +0x1D78 | offset to field `name` (string) - +0x1CA8 | C0 00 00 00 | UOffset32 | 0x000000C0 (192) Loc: +0x1D68 | offset to field `type` (table) - +0x1CAC | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x1CB8 | offset to field `attributes` (vector) - +0x1CB0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1CB4 | offset to field `documentation` (vector) - -vector (reflection.Field.documentation): - +0x1CB4 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x1A88 | 90 EF FF FF | SOffset32 | 0xFFFFEF90 (-4208) Loc: +0x2AF8 | offset to vtable + +0x1A8C | 27 00 | uint16_t | 0x0027 (39) | table field `id` (UShort) + +0x1A8E | 52 00 | uint16_t | 0x0052 (82) | table field `offset` (UShort) + +0x1A90 | CC 00 00 00 | UOffset32 | 0x000000CC (204) Loc: +0x1B5C | offset to field `name` (string) + +0x1A94 | B8 00 00 00 | UOffset32 | 0x000000B8 (184) Loc: +0x1B4C | offset to field `type` (table) + +0x1A98 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1A9C | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x1CB8 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of vector (# items) - +0x1CBC | 80 00 00 00 | UOffset32 | 0x00000080 (128) Loc: +0x1D3C | offset to table[0] - +0x1CC0 | 50 00 00 00 | UOffset32 | 0x00000050 (80) Loc: +0x1D10 | offset to table[1] - +0x1CC4 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x1CE8 | offset to table[2] - +0x1CC8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1CCC | offset to table[3] + +0x1A9C | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of vector (# items) + +0x1AA0 | 80 00 00 00 | UOffset32 | 0x00000080 (128) Loc: +0x1B20 | offset to table[0] + +0x1AA4 | 50 00 00 00 | UOffset32 | 0x00000050 (80) Loc: +0x1AF4 | offset to table[1] + +0x1AA8 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x1ACC | offset to table[2] + +0x1AAC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1AB0 | offset to table[3] table (reflection.KeyValue): - +0x1CCC | B0 E3 FF FF | SOffset32 | 0xFFFFE3B0 (-7248) Loc: +0x391C | offset to vtable - +0x1CD0 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1CE0 | offset to field `key` (string) - +0x1CD4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1CD8 | offset to field `value` (string) + +0x1AB0 | E8 E1 FF FF | SOffset32 | 0xFFFFE1E8 (-7704) Loc: +0x38C8 | offset to vtable + +0x1AB4 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1AC4 | offset to field `key` (string) + +0x1AB8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1ABC | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1CD8 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x1CDC | 33 39 | char[2] | 39 | string literal - +0x1CDE | 00 | char | 0x00 (0) | string terminator + +0x1ABC | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1AC0 | 33 39 | char[2] | 39 | string literal + +0x1AC2 | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x1CE0 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x1CE4 | 69 64 | char[2] | id | string literal - +0x1CE6 | 00 | char | 0x00 (0) | string terminator + +0x1AC4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1AC8 | 69 64 | char[2] | id | string literal + +0x1ACA | 00 | char | 0x00 (0) | string terminator table (reflection.KeyValue): - +0x1CE8 | CC E3 FF FF | SOffset32 | 0xFFFFE3CC (-7220) Loc: +0x391C | offset to vtable - +0x1CEC | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x1D04 | offset to field `key` (string) - +0x1CF0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1CF4 | offset to field `value` (string) + +0x1ACC | 04 E2 FF FF | SOffset32 | 0xFFFFE204 (-7676) Loc: +0x38C8 | offset to vtable + +0x1AD0 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x1AE8 | offset to field `key` (string) + +0x1AD4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1AD8 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1CF4 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string - +0x1CF8 | 66 6E 76 31 61 5F 36 34 | char[8] | fnv1a_64 | string literal - +0x1D00 | 00 | char | 0x00 (0) | string terminator + +0x1AD8 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string + +0x1ADC | 66 6E 76 31 61 5F 36 34 | char[8] | fnv1a_64 | string literal + +0x1AE4 | 00 | char | 0x00 (0) | string terminator padding: - +0x1D01 | 00 00 00 | uint8_t[3] | ... | padding + +0x1AE5 | 00 00 00 | uint8_t[3] | ... | padding string (reflection.KeyValue.key): - +0x1D04 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string - +0x1D08 | 68 61 73 68 | char[4] | hash | string literal - +0x1D0C | 00 | char | 0x00 (0) | string terminator + +0x1AE8 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string + +0x1AEC | 68 61 73 68 | char[4] | hash | string literal + +0x1AF0 | 00 | char | 0x00 (0) | string terminator padding: - +0x1D0D | 00 00 00 | uint8_t[3] | ... | padding + +0x1AF1 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.KeyValue): - +0x1D10 | F4 E3 FF FF | SOffset32 | 0xFFFFE3F4 (-7180) Loc: +0x391C | offset to vtable - +0x1D14 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x1D2C | offset to field `key` (string) - +0x1D18 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1D1C | offset to field `value` (string) + +0x1AF4 | 2C E2 FF FF | SOffset32 | 0xFFFFE22C (-7636) Loc: +0x38C8 | offset to vtable + +0x1AF8 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x1B10 | offset to field `key` (string) + +0x1AFC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1B00 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1D1C | 0B 00 00 00 | uint32_t | 0x0000000B (11) | length of string - +0x1D20 | 52 65 66 65 72 72 61 62 | char[11] | Referrab | string literal - +0x1D28 | 6C 65 54 | | leT - +0x1D2B | 00 | char | 0x00 (0) | string terminator + +0x1B00 | 0B 00 00 00 | uint32_t | 0x0000000B (11) | length of string + +0x1B04 | 52 65 66 65 72 72 61 62 | char[11] | Referrab | string literal + +0x1B0C | 6C 65 54 | | leT + +0x1B0F | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x1D2C | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string - +0x1D30 | 63 70 70 5F 74 79 70 65 | char[8] | cpp_type | string literal - +0x1D38 | 00 | char | 0x00 (0) | string terminator + +0x1B10 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string + +0x1B14 | 63 70 70 5F 74 79 70 65 | char[8] | cpp_type | string literal + +0x1B1C | 00 | char | 0x00 (0) | string terminator padding: - +0x1D39 | 00 00 00 | uint8_t[3] | ... | padding + +0x1B1D | 00 00 00 | uint8_t[3] | ... | padding table (reflection.KeyValue): - +0x1D3C | 20 E4 FF FF | SOffset32 | 0xFFFFE420 (-7136) Loc: +0x391C | offset to vtable - +0x1D40 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x1D54 | offset to field `key` (string) - +0x1D44 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1D48 | offset to field `value` (string) + +0x1B20 | 58 E2 FF FF | SOffset32 | 0xFFFFE258 (-7592) Loc: +0x38C8 | offset to vtable + +0x1B24 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x1B38 | offset to field `key` (string) + +0x1B28 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1B2C | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1D48 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string - +0x1D4C | 6E 61 6B 65 64 | char[5] | naked | string literal - +0x1D51 | 00 | char | 0x00 (0) | string terminator + +0x1B2C | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string + +0x1B30 | 6E 61 6B 65 64 | char[5] | naked | string literal + +0x1B35 | 00 | char | 0x00 (0) | string terminator padding: - +0x1D52 | 00 00 | uint8_t[2] | .. | padding + +0x1B36 | 00 00 | uint8_t[2] | .. | padding string (reflection.KeyValue.key): - +0x1D54 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | length of string - +0x1D58 | 63 70 70 5F 70 74 72 5F | char[12] | cpp_ptr_ | string literal - +0x1D60 | 74 79 70 65 | | type - +0x1D64 | 00 | char | 0x00 (0) | string terminator + +0x1B38 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | length of string + +0x1B3C | 63 70 70 5F 70 74 72 5F | char[12] | cpp_ptr_ | string literal + +0x1B44 | 74 79 70 65 | | type + +0x1B48 | 00 | char | 0x00 (0) | string terminator padding: - +0x1D65 | 00 00 00 | uint8_t[3] | ... | padding + +0x1B49 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Type): - +0x1D68 | CC E2 FF FF | SOffset32 | 0xFFFFE2CC (-7476) Loc: +0x3A9C | offset to vtable - +0x1D6C | 00 00 00 | uint8_t[3] | ... | padding - +0x1D6F | 0A | uint8_t | 0x0A (10) | table field `base_type` (Byte) - +0x1D70 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt) - +0x1D74 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x1B4C | D8 E4 FF FF | SOffset32 | 0xFFFFE4D8 (-6952) Loc: +0x3674 | offset to vtable + +0x1B50 | 00 00 00 | uint8_t[3] | ... | padding + +0x1B53 | 0A | uint8_t | 0x0A (10) | table field `base_type` (Byte) + +0x1B54 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt) + +0x1B58 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x1D78 | 13 00 00 00 | uint32_t | 0x00000013 (19) | length of string - +0x1D7C | 63 6F 5F 6F 77 6E 69 6E | char[19] | co_ownin | string literal - +0x1D84 | 67 5F 72 65 66 65 72 65 | | g_refere - +0x1D8C | 6E 63 65 | | nce - +0x1D8F | 00 | char | 0x00 (0) | string terminator + +0x1B5C | 13 00 00 00 | uint32_t | 0x00000013 (19) | length of string + +0x1B60 | 63 6F 5F 6F 77 6E 69 6E | char[19] | co_ownin | string literal + +0x1B68 | 67 5F 72 65 66 65 72 65 | | g_refere + +0x1B70 | 6E 63 65 | | nce + +0x1B73 | 00 | char | 0x00 (0) | string terminator table (reflection.Field): - +0x1D90 | B4 EE FF FF | SOffset32 | 0xFFFFEEB4 (-4428) Loc: +0x2EDC | offset to vtable - +0x1D94 | 00 00 00 | uint8_t[3] | ... | padding - +0x1D97 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x1D98 | 26 00 | uint16_t | 0x0026 (38) | table field `id` (UShort) - +0x1D9A | 50 00 | uint16_t | 0x0050 (80) | table field `offset` (UShort) - +0x1D9C | 84 00 00 00 | UOffset32 | 0x00000084 (132) Loc: +0x1E20 | offset to field `name` (string) - +0x1DA0 | 70 00 00 00 | UOffset32 | 0x00000070 (112) Loc: +0x1E10 | offset to field `type` (table) - +0x1DA4 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x1DB0 | offset to field `attributes` (vector) - +0x1DA8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1DAC | offset to field `documentation` (vector) - -vector (reflection.Field.documentation): - +0x1DAC | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x1B74 | 8C EF FF FF | SOffset32 | 0xFFFFEF8C (-4212) Loc: +0x2BE8 | offset to vtable + +0x1B78 | 00 00 00 | uint8_t[3] | ... | padding + +0x1B7B | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x1B7C | 26 00 | uint16_t | 0x0026 (38) | table field `id` (UShort) + +0x1B7E | 50 00 | uint16_t | 0x0050 (80) | table field `offset` (UShort) + +0x1B80 | 7C 00 00 00 | UOffset32 | 0x0000007C (124) Loc: +0x1BFC | offset to field `name` (string) + +0x1B84 | 68 00 00 00 | UOffset32 | 0x00000068 (104) Loc: +0x1BEC | offset to field `type` (table) + +0x1B88 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1B8C | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x1DB0 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) - +0x1DB4 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x1DD8 | offset to table[0] - +0x1DB8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1DBC | offset to table[1] + +0x1B8C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) + +0x1B90 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x1BB4 | offset to table[0] + +0x1B94 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1B98 | offset to table[1] table (reflection.KeyValue): - +0x1DBC | A0 E4 FF FF | SOffset32 | 0xFFFFE4A0 (-7008) Loc: +0x391C | offset to vtable - +0x1DC0 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1DD0 | offset to field `key` (string) - +0x1DC4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1DC8 | offset to field `value` (string) + +0x1B98 | D0 E2 FF FF | SOffset32 | 0xFFFFE2D0 (-7472) Loc: +0x38C8 | offset to vtable + +0x1B9C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1BAC | offset to field `key` (string) + +0x1BA0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1BA4 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1DC8 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x1DCC | 33 38 | char[2] | 38 | string literal - +0x1DCE | 00 | char | 0x00 (0) | string terminator + +0x1BA4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1BA8 | 33 38 | char[2] | 38 | string literal + +0x1BAA | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x1DD0 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x1DD4 | 69 64 | char[2] | id | string literal - +0x1DD6 | 00 | char | 0x00 (0) | string terminator + +0x1BAC | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1BB0 | 69 64 | char[2] | id | string literal + +0x1BB2 | 00 | char | 0x00 (0) | string terminator table (reflection.KeyValue): - +0x1DD8 | BC E4 FF FF | SOffset32 | 0xFFFFE4BC (-6980) Loc: +0x391C | offset to vtable - +0x1DDC | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x1DFC | offset to field `key` (string) - +0x1DE0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1DE4 | offset to field `value` (string) + +0x1BB4 | EC E2 FF FF | SOffset32 | 0xFFFFE2EC (-7444) Loc: +0x38C8 | offset to vtable + +0x1BB8 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x1BD8 | offset to field `key` (string) + +0x1BBC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1BC0 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1DE4 | 10 00 00 00 | uint32_t | 0x00000010 (16) | length of string - +0x1DE8 | 64 65 66 61 75 6C 74 5F | char[16] | default_ | string literal - +0x1DF0 | 70 74 72 5F 74 79 70 65 | | ptr_type - +0x1DF8 | 00 | char | 0x00 (0) | string terminator + +0x1BC0 | 10 00 00 00 | uint32_t | 0x00000010 (16) | length of string + +0x1BC4 | 64 65 66 61 75 6C 74 5F | char[16] | default_ | string literal + +0x1BCC | 70 74 72 5F 74 79 70 65 | | ptr_type + +0x1BD4 | 00 | char | 0x00 (0) | string terminator padding: - +0x1DF9 | 00 00 00 | uint8_t[3] | ... | padding + +0x1BD5 | 00 00 00 | uint8_t[3] | ... | padding string (reflection.KeyValue.key): - +0x1DFC | 0C 00 00 00 | uint32_t | 0x0000000C (12) | length of string - +0x1E00 | 63 70 70 5F 70 74 72 5F | char[12] | cpp_ptr_ | string literal - +0x1E08 | 74 79 70 65 | | type - +0x1E0C | 00 | char | 0x00 (0) | string terminator + +0x1BD8 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | length of string + +0x1BDC | 63 70 70 5F 70 74 72 5F | char[12] | cpp_ptr_ | string literal + +0x1BE4 | 74 79 70 65 | | type + +0x1BE8 | 00 | char | 0x00 (0) | string terminator padding: - +0x1E0D | 00 00 00 | uint8_t[3] | ... | padding + +0x1BE9 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Type): - +0x1E10 | A8 F0 FF FF | SOffset32 | 0xFFFFF0A8 (-3928) Loc: +0x2D68 | offset to vtable - +0x1E14 | 00 00 | uint8_t[2] | .. | padding - +0x1E16 | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) - +0x1E17 | 0F | uint8_t | 0x0F (15) | table field `element` (Byte) - +0x1E18 | 02 00 00 00 | uint32_t | 0x00000002 (2) | table field `index` (Int) - +0x1E1C | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `element_size` (UInt) + +0x1BEC | 78 F1 FF FF | SOffset32 | 0xFFFFF178 (-3720) Loc: +0x2A74 | offset to vtable + +0x1BF0 | 00 00 | uint8_t[2] | .. | padding + +0x1BF2 | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) + +0x1BF3 | 0F | uint8_t | 0x0F (15) | table field `element` (Byte) + +0x1BF4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | table field `index` (Int) + +0x1BF8 | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `element_size` (UInt) string (reflection.Field.name): - +0x1E20 | 1C 00 00 00 | uint32_t | 0x0000001C (28) | length of string - +0x1E24 | 76 65 63 74 6F 72 5F 6F | char[28] | vector_o | string literal - +0x1E2C | 66 5F 73 74 72 6F 6E 67 | | f_strong - +0x1E34 | 5F 72 65 66 65 72 72 61 | | _referra - +0x1E3C | 62 6C 65 73 | | bles - +0x1E40 | 00 | char | 0x00 (0) | string terminator + +0x1BFC | 1C 00 00 00 | uint32_t | 0x0000001C (28) | length of string + +0x1C00 | 76 65 63 74 6F 72 5F 6F | char[28] | vector_o | string literal + +0x1C08 | 66 5F 73 74 72 6F 6E 67 | | f_strong + +0x1C10 | 5F 72 65 66 65 72 72 61 | | _referra + +0x1C18 | 62 6C 65 73 | | bles + +0x1C1C | 00 | char | 0x00 (0) | string terminator padding: - +0x1E41 | 00 00 00 | uint8_t[3] | ... | padding + +0x1C1D | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Field): - +0x1E44 | 68 EF FF FF | SOffset32 | 0xFFFFEF68 (-4248) Loc: +0x2EDC | offset to vtable - +0x1E48 | 00 00 00 | uint8_t[3] | ... | padding - +0x1E4B | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x1E4C | 25 00 | uint16_t | 0x0025 (37) | table field `id` (UShort) - +0x1E4E | 4E 00 | uint16_t | 0x004E (78) | table field `offset` (UShort) - +0x1E50 | D0 00 00 00 | UOffset32 | 0x000000D0 (208) Loc: +0x1F20 | offset to field `name` (string) - +0x1E54 | C0 00 00 00 | UOffset32 | 0x000000C0 (192) Loc: +0x1F14 | offset to field `type` (table) - +0x1E58 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x1E64 | offset to field `attributes` (vector) - +0x1E5C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1E60 | offset to field `documentation` (vector) - -vector (reflection.Field.documentation): - +0x1E60 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x1C20 | 38 F0 FF FF | SOffset32 | 0xFFFFF038 (-4040) Loc: +0x2BE8 | offset to vtable + +0x1C24 | 00 00 00 | uint8_t[3] | ... | padding + +0x1C27 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x1C28 | 25 00 | uint16_t | 0x0025 (37) | table field `id` (UShort) + +0x1C2A | 4E 00 | uint16_t | 0x004E (78) | table field `offset` (UShort) + +0x1C2C | C8 00 00 00 | UOffset32 | 0x000000C8 (200) Loc: +0x1CF4 | offset to field `name` (string) + +0x1C30 | B8 00 00 00 | UOffset32 | 0x000000B8 (184) Loc: +0x1CE8 | offset to field `type` (table) + +0x1C34 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1C38 | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x1E64 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of vector (# items) - +0x1E68 | 80 00 00 00 | UOffset32 | 0x00000080 (128) Loc: +0x1EE8 | offset to table[0] - +0x1E6C | 50 00 00 00 | UOffset32 | 0x00000050 (80) Loc: +0x1EBC | offset to table[1] - +0x1E70 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x1E94 | offset to table[2] - +0x1E74 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1E78 | offset to table[3] + +0x1C38 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of vector (# items) + +0x1C3C | 80 00 00 00 | UOffset32 | 0x00000080 (128) Loc: +0x1CBC | offset to table[0] + +0x1C40 | 50 00 00 00 | UOffset32 | 0x00000050 (80) Loc: +0x1C90 | offset to table[1] + +0x1C44 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x1C68 | offset to table[2] + +0x1C48 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1C4C | offset to table[3] table (reflection.KeyValue): - +0x1E78 | 5C E5 FF FF | SOffset32 | 0xFFFFE55C (-6820) Loc: +0x391C | offset to vtable - +0x1E7C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1E8C | offset to field `key` (string) - +0x1E80 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1E84 | offset to field `value` (string) + +0x1C4C | 84 E3 FF FF | SOffset32 | 0xFFFFE384 (-7292) Loc: +0x38C8 | offset to vtable + +0x1C50 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1C60 | offset to field `key` (string) + +0x1C54 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1C58 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1E84 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x1E88 | 33 37 | char[2] | 37 | string literal - +0x1E8A | 00 | char | 0x00 (0) | string terminator + +0x1C58 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1C5C | 33 37 | char[2] | 37 | string literal + +0x1C5E | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x1E8C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x1E90 | 69 64 | char[2] | id | string literal - +0x1E92 | 00 | char | 0x00 (0) | string terminator + +0x1C60 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1C64 | 69 64 | char[2] | id | string literal + +0x1C66 | 00 | char | 0x00 (0) | string terminator table (reflection.KeyValue): - +0x1E94 | 78 E5 FF FF | SOffset32 | 0xFFFFE578 (-6792) Loc: +0x391C | offset to vtable - +0x1E98 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x1EB0 | offset to field `key` (string) - +0x1E9C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1EA0 | offset to field `value` (string) + +0x1C68 | A0 E3 FF FF | SOffset32 | 0xFFFFE3A0 (-7264) Loc: +0x38C8 | offset to vtable + +0x1C6C | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x1C84 | offset to field `key` (string) + +0x1C70 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1C74 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1EA0 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string - +0x1EA4 | 66 6E 76 31 61 5F 36 34 | char[8] | fnv1a_64 | string literal - +0x1EAC | 00 | char | 0x00 (0) | string terminator + +0x1C74 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string + +0x1C78 | 66 6E 76 31 61 5F 36 34 | char[8] | fnv1a_64 | string literal + +0x1C80 | 00 | char | 0x00 (0) | string terminator padding: - +0x1EAD | 00 00 00 | uint8_t[3] | ... | padding + +0x1C81 | 00 00 00 | uint8_t[3] | ... | padding string (reflection.KeyValue.key): - +0x1EB0 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string - +0x1EB4 | 68 61 73 68 | char[4] | hash | string literal - +0x1EB8 | 00 | char | 0x00 (0) | string terminator + +0x1C84 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string + +0x1C88 | 68 61 73 68 | char[4] | hash | string literal + +0x1C8C | 00 | char | 0x00 (0) | string terminator padding: - +0x1EB9 | 00 00 00 | uint8_t[3] | ... | padding + +0x1C8D | 00 00 00 | uint8_t[3] | ... | padding table (reflection.KeyValue): - +0x1EBC | A0 E5 FF FF | SOffset32 | 0xFFFFE5A0 (-6752) Loc: +0x391C | offset to vtable - +0x1EC0 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x1ED8 | offset to field `key` (string) - +0x1EC4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1EC8 | offset to field `value` (string) + +0x1C90 | C8 E3 FF FF | SOffset32 | 0xFFFFE3C8 (-7224) Loc: +0x38C8 | offset to vtable + +0x1C94 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x1CAC | offset to field `key` (string) + +0x1C98 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1C9C | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1EC8 | 0B 00 00 00 | uint32_t | 0x0000000B (11) | length of string - +0x1ECC | 52 65 66 65 72 72 61 62 | char[11] | Referrab | string literal - +0x1ED4 | 6C 65 54 | | leT - +0x1ED7 | 00 | char | 0x00 (0) | string terminator + +0x1C9C | 0B 00 00 00 | uint32_t | 0x0000000B (11) | length of string + +0x1CA0 | 52 65 66 65 72 72 61 62 | char[11] | Referrab | string literal + +0x1CA8 | 6C 65 54 | | leT + +0x1CAB | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x1ED8 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string - +0x1EDC | 63 70 70 5F 74 79 70 65 | char[8] | cpp_type | string literal - +0x1EE4 | 00 | char | 0x00 (0) | string terminator + +0x1CAC | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string + +0x1CB0 | 63 70 70 5F 74 79 70 65 | char[8] | cpp_type | string literal + +0x1CB8 | 00 | char | 0x00 (0) | string terminator padding: - +0x1EE5 | 00 00 00 | uint8_t[3] | ... | padding + +0x1CB9 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.KeyValue): - +0x1EE8 | CC E5 FF FF | SOffset32 | 0xFFFFE5CC (-6708) Loc: +0x391C | offset to vtable - +0x1EEC | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x1F00 | offset to field `key` (string) - +0x1EF0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1EF4 | offset to field `value` (string) + +0x1CBC | F4 E3 FF FF | SOffset32 | 0xFFFFE3F4 (-7180) Loc: +0x38C8 | offset to vtable + +0x1CC0 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x1CD4 | offset to field `key` (string) + +0x1CC4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1CC8 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1EF4 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string - +0x1EF8 | 6E 61 6B 65 64 | char[5] | naked | string literal - +0x1EFD | 00 | char | 0x00 (0) | string terminator + +0x1CC8 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string + +0x1CCC | 6E 61 6B 65 64 | char[5] | naked | string literal + +0x1CD1 | 00 | char | 0x00 (0) | string terminator padding: - +0x1EFE | 00 00 | uint8_t[2] | .. | padding + +0x1CD2 | 00 00 | uint8_t[2] | .. | padding string (reflection.KeyValue.key): - +0x1F00 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | length of string - +0x1F04 | 63 70 70 5F 70 74 72 5F | char[12] | cpp_ptr_ | string literal - +0x1F0C | 74 79 70 65 | | type - +0x1F10 | 00 | char | 0x00 (0) | string terminator + +0x1CD4 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | length of string + +0x1CD8 | 63 70 70 5F 70 74 72 5F | char[12] | cpp_ptr_ | string literal + +0x1CE0 | 74 79 70 65 | | type + +0x1CE4 | 00 | char | 0x00 (0) | string terminator padding: - +0x1F11 | 00 00 00 | uint8_t[3] | ... | padding + +0x1CE5 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Type): - +0x1F14 | D8 EF FF FF | SOffset32 | 0xFFFFEFD8 (-4136) Loc: +0x2F3C | offset to vtable - +0x1F18 | 00 00 | uint8_t[2] | .. | padding - +0x1F1A | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) - +0x1F1B | 0A | uint8_t | 0x0A (10) | table field `element` (Byte) - +0x1F1C | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `element_size` (UInt) + +0x1CE8 | A8 F0 FF FF | SOffset32 | 0xFFFFF0A8 (-3928) Loc: +0x2C40 | offset to vtable + +0x1CEC | 00 00 | uint8_t[2] | .. | padding + +0x1CEE | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) + +0x1CEF | 0A | uint8_t | 0x0A (10) | table field `element` (Byte) + +0x1CF0 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `element_size` (UInt) string (reflection.Field.name): - +0x1F20 | 19 00 00 00 | uint32_t | 0x00000019 (25) | length of string - +0x1F24 | 76 65 63 74 6F 72 5F 6F | char[25] | vector_o | string literal - +0x1F2C | 66 5F 77 65 61 6B 5F 72 | | f_weak_r - +0x1F34 | 65 66 65 72 65 6E 63 65 | | eference - +0x1F3C | 73 | | s - +0x1F3D | 00 | char | 0x00 (0) | string terminator + +0x1CF4 | 19 00 00 00 | uint32_t | 0x00000019 (25) | length of string + +0x1CF8 | 76 65 63 74 6F 72 5F 6F | char[25] | vector_o | string literal + +0x1D00 | 66 5F 77 65 61 6B 5F 72 | | f_weak_r + +0x1D08 | 65 66 65 72 65 6E 63 65 | | eference + +0x1D10 | 73 | | s + +0x1D11 | 00 | char | 0x00 (0) | string terminator padding: - +0x1F3E | 00 00 | uint8_t[2] | .. | padding + +0x1D12 | 00 00 | uint8_t[2] | .. | padding table (reflection.Field): - +0x1F40 | 4E F1 FF FF | SOffset32 | 0xFFFFF14E (-3762) Loc: +0x2DF2 | offset to vtable - +0x1F44 | 24 00 | uint16_t | 0x0024 (36) | table field `id` (UShort) - +0x1F46 | 4C 00 | uint16_t | 0x004C (76) | table field `offset` (UShort) - +0x1F48 | D4 00 00 00 | UOffset32 | 0x000000D4 (212) Loc: +0x201C | offset to field `name` (string) - +0x1F4C | C0 00 00 00 | UOffset32 | 0x000000C0 (192) Loc: +0x200C | offset to field `type` (table) - +0x1F50 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x1F5C | offset to field `attributes` (vector) - +0x1F54 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1F58 | offset to field `documentation` (vector) - -vector (reflection.Field.documentation): - +0x1F58 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x1D14 | 1C F2 FF FF | SOffset32 | 0xFFFFF21C (-3556) Loc: +0x2AF8 | offset to vtable + +0x1D18 | 24 00 | uint16_t | 0x0024 (36) | table field `id` (UShort) + +0x1D1A | 4C 00 | uint16_t | 0x004C (76) | table field `offset` (UShort) + +0x1D1C | CC 00 00 00 | UOffset32 | 0x000000CC (204) Loc: +0x1DE8 | offset to field `name` (string) + +0x1D20 | B8 00 00 00 | UOffset32 | 0x000000B8 (184) Loc: +0x1DD8 | offset to field `type` (table) + +0x1D24 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1D28 | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x1F5C | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of vector (# items) - +0x1F60 | 80 00 00 00 | UOffset32 | 0x00000080 (128) Loc: +0x1FE0 | offset to table[0] - +0x1F64 | 50 00 00 00 | UOffset32 | 0x00000050 (80) Loc: +0x1FB4 | offset to table[1] - +0x1F68 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x1F8C | offset to table[2] - +0x1F6C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1F70 | offset to table[3] + +0x1D28 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of vector (# items) + +0x1D2C | 80 00 00 00 | UOffset32 | 0x00000080 (128) Loc: +0x1DAC | offset to table[0] + +0x1D30 | 50 00 00 00 | UOffset32 | 0x00000050 (80) Loc: +0x1D80 | offset to table[1] + +0x1D34 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x1D58 | offset to table[2] + +0x1D38 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1D3C | offset to table[3] table (reflection.KeyValue): - +0x1F70 | 54 E6 FF FF | SOffset32 | 0xFFFFE654 (-6572) Loc: +0x391C | offset to vtable - +0x1F74 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1F84 | offset to field `key` (string) - +0x1F78 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1F7C | offset to field `value` (string) + +0x1D3C | 74 E4 FF FF | SOffset32 | 0xFFFFE474 (-7052) Loc: +0x38C8 | offset to vtable + +0x1D40 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1D50 | offset to field `key` (string) + +0x1D44 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1D48 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1F7C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x1F80 | 33 36 | char[2] | 36 | string literal - +0x1F82 | 00 | char | 0x00 (0) | string terminator + +0x1D48 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1D4C | 33 36 | char[2] | 36 | string literal + +0x1D4E | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x1F84 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x1F88 | 69 64 | char[2] | id | string literal - +0x1F8A | 00 | char | 0x00 (0) | string terminator + +0x1D50 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1D54 | 69 64 | char[2] | id | string literal + +0x1D56 | 00 | char | 0x00 (0) | string terminator table (reflection.KeyValue): - +0x1F8C | 70 E6 FF FF | SOffset32 | 0xFFFFE670 (-6544) Loc: +0x391C | offset to vtable - +0x1F90 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x1FA8 | offset to field `key` (string) - +0x1F94 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1F98 | offset to field `value` (string) + +0x1D58 | 90 E4 FF FF | SOffset32 | 0xFFFFE490 (-7024) Loc: +0x38C8 | offset to vtable + +0x1D5C | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x1D74 | offset to field `key` (string) + +0x1D60 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1D64 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1F98 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string - +0x1F9C | 66 6E 76 31 61 5F 36 34 | char[8] | fnv1a_64 | string literal - +0x1FA4 | 00 | char | 0x00 (0) | string terminator + +0x1D64 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string + +0x1D68 | 66 6E 76 31 61 5F 36 34 | char[8] | fnv1a_64 | string literal + +0x1D70 | 00 | char | 0x00 (0) | string terminator padding: - +0x1FA5 | 00 00 00 | uint8_t[3] | ... | padding + +0x1D71 | 00 00 00 | uint8_t[3] | ... | padding string (reflection.KeyValue.key): - +0x1FA8 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string - +0x1FAC | 68 61 73 68 | char[4] | hash | string literal - +0x1FB0 | 00 | char | 0x00 (0) | string terminator + +0x1D74 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string + +0x1D78 | 68 61 73 68 | char[4] | hash | string literal + +0x1D7C | 00 | char | 0x00 (0) | string terminator padding: - +0x1FB1 | 00 00 00 | uint8_t[3] | ... | padding + +0x1D7D | 00 00 00 | uint8_t[3] | ... | padding table (reflection.KeyValue): - +0x1FB4 | 98 E6 FF FF | SOffset32 | 0xFFFFE698 (-6504) Loc: +0x391C | offset to vtable - +0x1FB8 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x1FD0 | offset to field `key` (string) - +0x1FBC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1FC0 | offset to field `value` (string) + +0x1D80 | B8 E4 FF FF | SOffset32 | 0xFFFFE4B8 (-6984) Loc: +0x38C8 | offset to vtable + +0x1D84 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x1D9C | offset to field `key` (string) + +0x1D88 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1D8C | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1FC0 | 0B 00 00 00 | uint32_t | 0x0000000B (11) | length of string - +0x1FC4 | 52 65 66 65 72 72 61 62 | char[11] | Referrab | string literal - +0x1FCC | 6C 65 54 | | leT - +0x1FCF | 00 | char | 0x00 (0) | string terminator + +0x1D8C | 0B 00 00 00 | uint32_t | 0x0000000B (11) | length of string + +0x1D90 | 52 65 66 65 72 72 61 62 | char[11] | Referrab | string literal + +0x1D98 | 6C 65 54 | | leT + +0x1D9B | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x1FD0 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string - +0x1FD4 | 63 70 70 5F 74 79 70 65 | char[8] | cpp_type | string literal - +0x1FDC | 00 | char | 0x00 (0) | string terminator + +0x1D9C | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string + +0x1DA0 | 63 70 70 5F 74 79 70 65 | char[8] | cpp_type | string literal + +0x1DA8 | 00 | char | 0x00 (0) | string terminator padding: - +0x1FDD | 00 00 00 | uint8_t[3] | ... | padding + +0x1DA9 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.KeyValue): - +0x1FE0 | C4 E6 FF FF | SOffset32 | 0xFFFFE6C4 (-6460) Loc: +0x391C | offset to vtable - +0x1FE4 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x1FF8 | offset to field `key` (string) - +0x1FE8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1FEC | offset to field `value` (string) + +0x1DAC | E4 E4 FF FF | SOffset32 | 0xFFFFE4E4 (-6940) Loc: +0x38C8 | offset to vtable + +0x1DB0 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x1DC4 | offset to field `key` (string) + +0x1DB4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1DB8 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1FEC | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string - +0x1FF0 | 6E 61 6B 65 64 | char[5] | naked | string literal - +0x1FF5 | 00 | char | 0x00 (0) | string terminator + +0x1DB8 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string + +0x1DBC | 6E 61 6B 65 64 | char[5] | naked | string literal + +0x1DC1 | 00 | char | 0x00 (0) | string terminator padding: - +0x1FF6 | 00 00 | uint8_t[2] | .. | padding + +0x1DC2 | 00 00 | uint8_t[2] | .. | padding string (reflection.KeyValue.key): - +0x1FF8 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | length of string - +0x1FFC | 63 70 70 5F 70 74 72 5F | char[12] | cpp_ptr_ | string literal - +0x2004 | 74 79 70 65 | | type - +0x2008 | 00 | char | 0x00 (0) | string terminator + +0x1DC4 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | length of string + +0x1DC8 | 63 70 70 5F 70 74 72 5F | char[12] | cpp_ptr_ | string literal + +0x1DD0 | 74 79 70 65 | | type + +0x1DD4 | 00 | char | 0x00 (0) | string terminator padding: - +0x2009 | 00 00 00 | uint8_t[3] | ... | padding + +0x1DD5 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Type): - +0x200C | 70 E5 FF FF | SOffset32 | 0xFFFFE570 (-6800) Loc: +0x3A9C | offset to vtable - +0x2010 | 00 00 00 | uint8_t[3] | ... | padding - +0x2013 | 0A | uint8_t | 0x0A (10) | table field `base_type` (Byte) - +0x2014 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt) - +0x2018 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x1DD8 | 64 E7 FF FF | SOffset32 | 0xFFFFE764 (-6300) Loc: +0x3674 | offset to vtable + +0x1DDC | 00 00 00 | uint8_t[3] | ... | padding + +0x1DDF | 0A | uint8_t | 0x0A (10) | table field `base_type` (Byte) + +0x1DE0 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt) + +0x1DE4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x201C | 15 00 00 00 | uint32_t | 0x00000015 (21) | length of string - +0x2020 | 73 69 6E 67 6C 65 5F 77 | char[21] | single_w | string literal - +0x2028 | 65 61 6B 5F 72 65 66 65 | | eak_refe - +0x2030 | 72 65 6E 63 65 | | rence - +0x2035 | 00 | char | 0x00 (0) | string terminator + +0x1DE8 | 15 00 00 00 | uint32_t | 0x00000015 (21) | length of string + +0x1DEC | 73 69 6E 67 6C 65 5F 77 | char[21] | single_w | string literal + +0x1DF4 | 65 61 6B 5F 72 65 66 65 | | eak_refe + +0x1DFC | 72 65 6E 63 65 | | rence + +0x1E01 | 00 | char | 0x00 (0) | string terminator padding: - +0x2036 | 00 00 | uint8_t[2] | .. | padding + +0x1E02 | 00 00 | uint8_t[2] | .. | padding table (reflection.Field): - +0x2038 | 5C F1 FF FF | SOffset32 | 0xFFFFF15C (-3748) Loc: +0x2EDC | offset to vtable - +0x203C | 00 00 00 | uint8_t[3] | ... | padding - +0x203F | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x2040 | 23 00 | uint16_t | 0x0023 (35) | table field `id` (UShort) - +0x2042 | 4A 00 | uint16_t | 0x004A (74) | table field `offset` (UShort) - +0x2044 | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: +0x208C | offset to field `name` (string) - +0x2048 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x207C | offset to field `type` (table) - +0x204C | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x2058 | offset to field `attributes` (vector) - +0x2050 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2054 | offset to field `documentation` (vector) - -vector (reflection.Field.documentation): - +0x2054 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x1E04 | 1C F2 FF FF | SOffset32 | 0xFFFFF21C (-3556) Loc: +0x2BE8 | offset to vtable + +0x1E08 | 00 00 00 | uint8_t[3] | ... | padding + +0x1E0B | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x1E0C | 23 00 | uint16_t | 0x0023 (35) | table field `id` (UShort) + +0x1E0E | 4A 00 | uint16_t | 0x004A (74) | table field `offset` (UShort) + +0x1E10 | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: +0x1E50 | offset to field `name` (string) + +0x1E14 | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: +0x1E40 | offset to field `type` (table) + +0x1E18 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1E1C | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x2058 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x205C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2060 | offset to table[0] + +0x1E1C | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x1E20 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1E24 | offset to table[0] table (reflection.KeyValue): - +0x2060 | 44 E7 FF FF | SOffset32 | 0xFFFFE744 (-6332) Loc: +0x391C | offset to vtable - +0x2064 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2074 | offset to field `key` (string) - +0x2068 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x206C | offset to field `value` (string) + +0x1E24 | 5C E5 FF FF | SOffset32 | 0xFFFFE55C (-6820) Loc: +0x38C8 | offset to vtable + +0x1E28 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1E38 | offset to field `key` (string) + +0x1E2C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1E30 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x206C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x2070 | 33 35 | char[2] | 35 | string literal - +0x2072 | 00 | char | 0x00 (0) | string terminator + +0x1E30 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1E34 | 33 35 | char[2] | 35 | string literal + +0x1E36 | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x2074 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x2078 | 69 64 | char[2] | id | string literal - +0x207A | 00 | char | 0x00 (0) | string terminator + +0x1E38 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1E3C | 69 64 | char[2] | id | string literal + +0x1E3E | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x207C | 14 F3 FF FF | SOffset32 | 0xFFFFF314 (-3308) Loc: +0x2D68 | offset to vtable - +0x2080 | 00 00 | uint8_t[2] | .. | padding - +0x2082 | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) - +0x2083 | 0F | uint8_t | 0x0F (15) | table field `element` (Byte) - +0x2084 | 02 00 00 00 | uint32_t | 0x00000002 (2) | table field `index` (Int) - +0x2088 | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `element_size` (UInt) + +0x1E40 | CC F3 FF FF | SOffset32 | 0xFFFFF3CC (-3124) Loc: +0x2A74 | offset to vtable + +0x1E44 | 00 00 | uint8_t[2] | .. | padding + +0x1E46 | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) + +0x1E47 | 0F | uint8_t | 0x0F (15) | table field `element` (Byte) + +0x1E48 | 02 00 00 00 | uint32_t | 0x00000002 (2) | table field `index` (Int) + +0x1E4C | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `element_size` (UInt) string (reflection.Field.name): - +0x208C | 15 00 00 00 | uint32_t | 0x00000015 (21) | length of string - +0x2090 | 76 65 63 74 6F 72 5F 6F | char[21] | vector_o | string literal - +0x2098 | 66 5F 72 65 66 65 72 72 | | f_referr - +0x20A0 | 61 62 6C 65 73 | | ables - +0x20A5 | 00 | char | 0x00 (0) | string terminator + +0x1E50 | 15 00 00 00 | uint32_t | 0x00000015 (21) | length of string + +0x1E54 | 76 65 63 74 6F 72 5F 6F | char[21] | vector_o | string literal + +0x1E5C | 66 5F 72 65 66 65 72 72 | | f_referr + +0x1E64 | 61 62 6C 65 73 | | ables + +0x1E69 | 00 | char | 0x00 (0) | string terminator padding: - +0x20A6 | 00 00 | uint8_t[2] | .. | padding + +0x1E6A | 00 00 | uint8_t[2] | .. | padding table (reflection.Field): - +0x20A8 | CC F1 FF FF | SOffset32 | 0xFFFFF1CC (-3636) Loc: +0x2EDC | offset to vtable - +0x20AC | 00 00 00 | uint8_t[3] | ... | padding - +0x20AF | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x20B0 | 22 00 | uint16_t | 0x0022 (34) | table field `id` (UShort) - +0x20B2 | 48 00 | uint16_t | 0x0048 (72) | table field `offset` (UShort) - +0x20B4 | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: +0x20FC | offset to field `name` (string) - +0x20B8 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x20EC | offset to field `type` (table) - +0x20BC | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x20C8 | offset to field `attributes` (vector) - +0x20C0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x20C4 | offset to field `documentation` (vector) - -vector (reflection.Field.documentation): - +0x20C4 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x1E6C | 84 F2 FF FF | SOffset32 | 0xFFFFF284 (-3452) Loc: +0x2BE8 | offset to vtable + +0x1E70 | 00 00 00 | uint8_t[3] | ... | padding + +0x1E73 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x1E74 | 22 00 | uint16_t | 0x0022 (34) | table field `id` (UShort) + +0x1E76 | 48 00 | uint16_t | 0x0048 (72) | table field `offset` (UShort) + +0x1E78 | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: +0x1EB8 | offset to field `name` (string) + +0x1E7C | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: +0x1EA8 | offset to field `type` (table) + +0x1E80 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1E84 | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x20C8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x20CC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x20D0 | offset to table[0] + +0x1E84 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x1E88 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1E8C | offset to table[0] table (reflection.KeyValue): - +0x20D0 | B4 E7 FF FF | SOffset32 | 0xFFFFE7B4 (-6220) Loc: +0x391C | offset to vtable - +0x20D4 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x20E4 | offset to field `key` (string) - +0x20D8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x20DC | offset to field `value` (string) + +0x1E8C | C4 E5 FF FF | SOffset32 | 0xFFFFE5C4 (-6716) Loc: +0x38C8 | offset to vtable + +0x1E90 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1EA0 | offset to field `key` (string) + +0x1E94 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1E98 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x20DC | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x20E0 | 33 34 | char[2] | 34 | string literal - +0x20E2 | 00 | char | 0x00 (0) | string terminator + +0x1E98 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1E9C | 33 34 | char[2] | 34 | string literal + +0x1E9E | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x20E4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x20E8 | 69 64 | char[2] | id | string literal - +0x20EA | 00 | char | 0x00 (0) | string terminator + +0x1EA0 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1EA4 | 69 64 | char[2] | id | string literal + +0x1EA6 | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x20EC | 7C E4 FF FF | SOffset32 | 0xFFFFE47C (-7044) Loc: +0x3C70 | offset to vtable - +0x20F0 | 00 00 00 | uint8_t[3] | ... | padding - +0x20F3 | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) - +0x20F4 | 0B 00 00 00 | uint32_t | 0x0000000B (11) | table field `index` (Int) - +0x20F8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x1EA8 | 90 E6 FF FF | SOffset32 | 0xFFFFE690 (-6512) Loc: +0x3818 | offset to vtable + +0x1EAC | 00 00 00 | uint8_t[3] | ... | padding + +0x1EAF | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) + +0x1EB0 | 0B 00 00 00 | uint32_t | 0x0000000B (11) | table field `index` (Int) + +0x1EB4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x20FC | 15 00 00 00 | uint32_t | 0x00000015 (21) | length of string - +0x2100 | 70 61 72 65 6E 74 5F 6E | char[21] | parent_n | string literal - +0x2108 | 61 6D 65 73 70 61 63 65 | | amespace - +0x2110 | 5F 74 65 73 74 | | _test - +0x2115 | 00 | char | 0x00 (0) | string terminator + +0x1EB8 | 15 00 00 00 | uint32_t | 0x00000015 (21) | length of string + +0x1EBC | 70 61 72 65 6E 74 5F 6E | char[21] | parent_n | string literal + +0x1EC4 | 61 6D 65 73 70 61 63 65 | | amespace + +0x1ECC | 5F 74 65 73 74 | | _test + +0x1ED1 | 00 | char | 0x00 (0) | string terminator padding: - +0x2116 | 00 00 | uint8_t[2] | .. | padding + +0x1ED2 | 00 00 | uint8_t[2] | .. | padding table (reflection.Field): - +0x2118 | 3C F2 FF FF | SOffset32 | 0xFFFFF23C (-3524) Loc: +0x2EDC | offset to vtable - +0x211C | 00 00 00 | uint8_t[3] | ... | padding - +0x211F | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x2120 | 21 00 | uint16_t | 0x0021 (33) | table field `id` (UShort) - +0x2122 | 46 00 | uint16_t | 0x0046 (70) | table field `offset` (UShort) - +0x2124 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x2168 | offset to field `name` (string) - +0x2128 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x215C | offset to field `type` (table) - +0x212C | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x2138 | offset to field `attributes` (vector) - +0x2130 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2134 | offset to field `documentation` (vector) - -vector (reflection.Field.documentation): - +0x2134 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x1ED4 | EC F2 FF FF | SOffset32 | 0xFFFFF2EC (-3348) Loc: +0x2BE8 | offset to vtable + +0x1ED8 | 00 00 00 | uint8_t[3] | ... | padding + +0x1EDB | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x1EDC | 21 00 | uint16_t | 0x0021 (33) | table field `id` (UShort) + +0x1EDE | 46 00 | uint16_t | 0x0046 (70) | table field `offset` (UShort) + +0x1EE0 | 3C 00 00 00 | UOffset32 | 0x0000003C (60) Loc: +0x1F1C | offset to field `name` (string) + +0x1EE4 | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: +0x1F10 | offset to field `type` (table) + +0x1EE8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1EEC | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x2138 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x213C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2140 | offset to table[0] + +0x1EEC | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x1EF0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1EF4 | offset to table[0] table (reflection.KeyValue): - +0x2140 | 24 E8 FF FF | SOffset32 | 0xFFFFE824 (-6108) Loc: +0x391C | offset to vtable - +0x2144 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2154 | offset to field `key` (string) - +0x2148 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x214C | offset to field `value` (string) + +0x1EF4 | 2C E6 FF FF | SOffset32 | 0xFFFFE62C (-6612) Loc: +0x38C8 | offset to vtable + +0x1EF8 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1F08 | offset to field `key` (string) + +0x1EFC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1F00 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x214C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x2150 | 33 33 | char[2] | 33 | string literal - +0x2152 | 00 | char | 0x00 (0) | string terminator + +0x1F00 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1F04 | 33 33 | char[2] | 33 | string literal + +0x1F06 | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x2154 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x2158 | 69 64 | char[2] | id | string literal - +0x215A | 00 | char | 0x00 (0) | string terminator + +0x1F08 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1F0C | 69 64 | char[2] | id | string literal + +0x1F0E | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x215C | 20 F2 FF FF | SOffset32 | 0xFFFFF220 (-3552) Loc: +0x2F3C | offset to vtable - +0x2160 | 00 00 | uint8_t[2] | .. | padding - +0x2162 | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) - +0x2163 | 0C | uint8_t | 0x0C (12) | table field `element` (Byte) - +0x2164 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `element_size` (UInt) + +0x1F10 | D0 F2 FF FF | SOffset32 | 0xFFFFF2D0 (-3376) Loc: +0x2C40 | offset to vtable + +0x1F14 | 00 00 | uint8_t[2] | .. | padding + +0x1F16 | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) + +0x1F17 | 0C | uint8_t | 0x0C (12) | table field `element` (Byte) + +0x1F18 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `element_size` (UInt) string (reflection.Field.name): - +0x2168 | 11 00 00 00 | uint32_t | 0x00000011 (17) | length of string - +0x216C | 76 65 63 74 6F 72 5F 6F | char[17] | vector_o | string literal - +0x2174 | 66 5F 64 6F 75 62 6C 65 | | f_double - +0x217C | 73 | | s - +0x217D | 00 | char | 0x00 (0) | string terminator + +0x1F1C | 11 00 00 00 | uint32_t | 0x00000011 (17) | length of string + +0x1F20 | 76 65 63 74 6F 72 5F 6F | char[17] | vector_o | string literal + +0x1F28 | 66 5F 64 6F 75 62 6C 65 | | f_double + +0x1F30 | 73 | | s + +0x1F31 | 00 | char | 0x00 (0) | string terminator padding: - +0x217E | 00 00 | uint8_t[2] | .. | padding + +0x1F32 | 00 00 | uint8_t[2] | .. | padding table (reflection.Field): - +0x2180 | A4 F2 FF FF | SOffset32 | 0xFFFFF2A4 (-3420) Loc: +0x2EDC | offset to vtable - +0x2184 | 00 00 00 | uint8_t[3] | ... | padding - +0x2187 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x2188 | 20 00 | uint16_t | 0x0020 (32) | table field `id` (UShort) - +0x218A | 44 00 | uint16_t | 0x0044 (68) | table field `offset` (UShort) - +0x218C | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x21D0 | offset to field `name` (string) - +0x2190 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x21C4 | offset to field `type` (table) - +0x2194 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x21A0 | offset to field `attributes` (vector) - +0x2198 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x219C | offset to field `documentation` (vector) - -vector (reflection.Field.documentation): - +0x219C | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x1F34 | 4C F3 FF FF | SOffset32 | 0xFFFFF34C (-3252) Loc: +0x2BE8 | offset to vtable + +0x1F38 | 00 00 00 | uint8_t[3] | ... | padding + +0x1F3B | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x1F3C | 20 00 | uint16_t | 0x0020 (32) | table field `id` (UShort) + +0x1F3E | 44 00 | uint16_t | 0x0044 (68) | table field `offset` (UShort) + +0x1F40 | 3C 00 00 00 | UOffset32 | 0x0000003C (60) Loc: +0x1F7C | offset to field `name` (string) + +0x1F44 | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: +0x1F70 | offset to field `type` (table) + +0x1F48 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1F4C | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x21A0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x21A4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x21A8 | offset to table[0] + +0x1F4C | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x1F50 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1F54 | offset to table[0] table (reflection.KeyValue): - +0x21A8 | 8C E8 FF FF | SOffset32 | 0xFFFFE88C (-6004) Loc: +0x391C | offset to vtable - +0x21AC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x21BC | offset to field `key` (string) - +0x21B0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x21B4 | offset to field `value` (string) + +0x1F54 | 8C E6 FF FF | SOffset32 | 0xFFFFE68C (-6516) Loc: +0x38C8 | offset to vtable + +0x1F58 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1F68 | offset to field `key` (string) + +0x1F5C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1F60 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x21B4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x21B8 | 33 32 | char[2] | 32 | string literal - +0x21BA | 00 | char | 0x00 (0) | string terminator + +0x1F60 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1F64 | 33 32 | char[2] | 32 | string literal + +0x1F66 | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x21BC | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x21C0 | 69 64 | char[2] | id | string literal - +0x21C2 | 00 | char | 0x00 (0) | string terminator + +0x1F68 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1F6C | 69 64 | char[2] | id | string literal + +0x1F6E | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x21C4 | 88 F2 FF FF | SOffset32 | 0xFFFFF288 (-3448) Loc: +0x2F3C | offset to vtable - +0x21C8 | 00 00 | uint8_t[2] | .. | padding - +0x21CA | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) - +0x21CB | 09 | uint8_t | 0x09 (9) | table field `element` (Byte) - +0x21CC | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `element_size` (UInt) + +0x1F70 | 30 F3 FF FF | SOffset32 | 0xFFFFF330 (-3280) Loc: +0x2C40 | offset to vtable + +0x1F74 | 00 00 | uint8_t[2] | .. | padding + +0x1F76 | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) + +0x1F77 | 09 | uint8_t | 0x09 (9) | table field `element` (Byte) + +0x1F78 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `element_size` (UInt) string (reflection.Field.name): - +0x21D0 | 0F 00 00 00 | uint32_t | 0x0000000F (15) | length of string - +0x21D4 | 76 65 63 74 6F 72 5F 6F | char[15] | vector_o | string literal - +0x21DC | 66 5F 6C 6F 6E 67 73 | | f_longs - +0x21E3 | 00 | char | 0x00 (0) | string terminator + +0x1F7C | 0F 00 00 00 | uint32_t | 0x0000000F (15) | length of string + +0x1F80 | 76 65 63 74 6F 72 5F 6F | char[15] | vector_o | string literal + +0x1F88 | 66 5F 6C 6F 6E 67 73 | | f_longs + +0x1F8F | 00 | char | 0x00 (0) | string terminator table (reflection.Field): - +0x21E4 | 08 F3 FF FF | SOffset32 | 0xFFFFF308 (-3320) Loc: +0x2EDC | offset to vtable - +0x21E8 | 00 00 00 | uint8_t[3] | ... | padding - +0x21EB | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x21EC | 1F 00 | uint16_t | 0x001F (31) | table field `id` (UShort) - +0x21EE | 42 00 | uint16_t | 0x0042 (66) | table field `offset` (UShort) - +0x21F0 | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: +0x2238 | offset to field `name` (string) - +0x21F4 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x2228 | offset to field `type` (table) - +0x21F8 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x2204 | offset to field `attributes` (vector) - +0x21FC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2200 | offset to field `documentation` (vector) - -vector (reflection.Field.documentation): - +0x2200 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x1F90 | A8 F3 FF FF | SOffset32 | 0xFFFFF3A8 (-3160) Loc: +0x2BE8 | offset to vtable + +0x1F94 | 00 00 00 | uint8_t[3] | ... | padding + +0x1F97 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x1F98 | 1F 00 | uint16_t | 0x001F (31) | table field `id` (UShort) + +0x1F9A | 42 00 | uint16_t | 0x0042 (66) | table field `offset` (UShort) + +0x1F9C | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: +0x1FDC | offset to field `name` (string) + +0x1FA0 | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: +0x1FCC | offset to field `type` (table) + +0x1FA4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1FA8 | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x2204 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x2208 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x220C | offset to table[0] + +0x1FA8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x1FAC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1FB0 | offset to table[0] table (reflection.KeyValue): - +0x220C | F0 E8 FF FF | SOffset32 | 0xFFFFE8F0 (-5904) Loc: +0x391C | offset to vtable - +0x2210 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2220 | offset to field `key` (string) - +0x2214 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2218 | offset to field `value` (string) + +0x1FB0 | E8 E6 FF FF | SOffset32 | 0xFFFFE6E8 (-6424) Loc: +0x38C8 | offset to vtable + +0x1FB4 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1FC4 | offset to field `key` (string) + +0x1FB8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1FBC | offset to field `value` (string) string (reflection.KeyValue.value): - +0x2218 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x221C | 33 31 | char[2] | 31 | string literal - +0x221E | 00 | char | 0x00 (0) | string terminator + +0x1FBC | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1FC0 | 33 31 | char[2] | 31 | string literal + +0x1FC2 | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x2220 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x2224 | 69 64 | char[2] | id | string literal - +0x2226 | 00 | char | 0x00 (0) | string terminator + +0x1FC4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1FC8 | 69 64 | char[2] | id | string literal + +0x1FCA | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x2228 | C0 F4 FF FF | SOffset32 | 0xFFFFF4C0 (-2880) Loc: +0x2D68 | offset to vtable - +0x222C | 00 00 | uint8_t[2] | .. | padding - +0x222E | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) - +0x222F | 0F | uint8_t | 0x0F (15) | table field `element` (Byte) - +0x2230 | 06 00 00 00 | uint32_t | 0x00000006 (6) | table field `index` (Int) - +0x2234 | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `element_size` (UInt) + +0x1FCC | 58 F5 FF FF | SOffset32 | 0xFFFFF558 (-2728) Loc: +0x2A74 | offset to vtable + +0x1FD0 | 00 00 | uint8_t[2] | .. | padding + +0x1FD2 | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) + +0x1FD3 | 0F | uint8_t | 0x0F (15) | table field `element` (Byte) + +0x1FD4 | 06 00 00 00 | uint32_t | 0x00000006 (6) | table field `index` (Int) + +0x1FD8 | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `element_size` (UInt) string (reflection.Field.name): - +0x2238 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string - +0x223C | 74 65 73 74 35 | char[5] | test5 | string literal - +0x2241 | 00 | char | 0x00 (0) | string terminator + +0x1FDC | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string + +0x1FE0 | 74 65 73 74 35 | char[5] | test5 | string literal + +0x1FE5 | 00 | char | 0x00 (0) | string terminator padding: - +0x2242 | 00 00 | uint8_t[2] | .. | padding + +0x1FE6 | 00 00 | uint8_t[2] | .. | padding table (reflection.Field): - +0x2244 | 68 F3 FF FF | SOffset32 | 0xFFFFF368 (-3224) Loc: +0x2EDC | offset to vtable - +0x2248 | 00 00 00 | uint8_t[3] | ... | padding - +0x224B | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x224C | 1E 00 | uint16_t | 0x001E (30) | table field `id` (UShort) - +0x224E | 40 00 | uint16_t | 0x0040 (64) | table field `offset` (UShort) - +0x2250 | 6C 00 00 00 | UOffset32 | 0x0000006C (108) Loc: +0x22BC | offset to field `name` (string) - +0x2254 | 5C 00 00 00 | UOffset32 | 0x0000005C (92) Loc: +0x22B0 | offset to field `type` (table) - +0x2258 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x2264 | offset to field `attributes` (vector) - +0x225C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2260 | offset to field `documentation` (vector) - -vector (reflection.Field.documentation): - +0x2260 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x1FE8 | 00 F4 FF FF | SOffset32 | 0xFFFFF400 (-3072) Loc: +0x2BE8 | offset to vtable + +0x1FEC | 00 00 00 | uint8_t[3] | ... | padding + +0x1FEF | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x1FF0 | 1E 00 | uint16_t | 0x001E (30) | table field `id` (UShort) + +0x1FF2 | 40 00 | uint16_t | 0x0040 (64) | table field `offset` (UShort) + +0x1FF4 | 64 00 00 00 | UOffset32 | 0x00000064 (100) Loc: +0x2058 | offset to field `name` (string) + +0x1FF8 | 54 00 00 00 | UOffset32 | 0x00000054 (84) Loc: +0x204C | offset to field `type` (table) + +0x1FFC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2000 | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x2264 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) - +0x2268 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x228C | offset to table[0] - +0x226C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2270 | offset to table[1] + +0x2000 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) + +0x2004 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x2028 | offset to table[0] + +0x2008 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x200C | offset to table[1] table (reflection.KeyValue): - +0x2270 | 54 E9 FF FF | SOffset32 | 0xFFFFE954 (-5804) Loc: +0x391C | offset to vtable - +0x2274 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2284 | offset to field `key` (string) - +0x2278 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x227C | offset to field `value` (string) + +0x200C | 44 E7 FF FF | SOffset32 | 0xFFFFE744 (-6332) Loc: +0x38C8 | offset to vtable + +0x2010 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2020 | offset to field `key` (string) + +0x2014 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2018 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x227C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x2280 | 33 30 | char[2] | 30 | string literal - +0x2282 | 00 | char | 0x00 (0) | string terminator + +0x2018 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x201C | 33 30 | char[2] | 30 | string literal + +0x201E | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x2284 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x2288 | 69 64 | char[2] | id | string literal - +0x228A | 00 | char | 0x00 (0) | string terminator + +0x2020 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2024 | 69 64 | char[2] | id | string literal + +0x2026 | 00 | char | 0x00 (0) | string terminator table (reflection.KeyValue): - +0x228C | 70 E9 FF FF | SOffset32 | 0xFFFFE970 (-5776) Loc: +0x391C | offset to vtable - +0x2290 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x22A0 | offset to field `key` (string) - +0x2294 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2298 | offset to field `value` (string) + +0x2028 | 60 E7 FF FF | SOffset32 | 0xFFFFE760 (-6304) Loc: +0x38C8 | offset to vtable + +0x202C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x203C | offset to field `key` (string) + +0x2030 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2034 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x2298 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x229C | 30 | char[1] | 0 | string literal - +0x229D | 00 | char | 0x00 (0) | string terminator + +0x2034 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x2038 | 30 | char[1] | 0 | string literal + +0x2039 | 00 | char | 0x00 (0) | string terminator padding: - +0x229E | 00 00 | uint8_t[2] | .. | padding + +0x203A | 00 00 | uint8_t[2] | .. | padding string (reflection.KeyValue.key): - +0x22A0 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | length of string - +0x22A4 | 66 6C 65 78 62 75 66 66 | char[10] | flexbuff | string literal - +0x22AC | 65 72 | | er - +0x22AE | 00 | char | 0x00 (0) | string terminator + +0x203C | 0A 00 00 00 | uint32_t | 0x0000000A (10) | length of string + +0x2040 | 66 6C 65 78 62 75 66 66 | char[10] | flexbuff | string literal + +0x2048 | 65 72 | | er + +0x204A | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x22B0 | 74 F3 FF FF | SOffset32 | 0xFFFFF374 (-3212) Loc: +0x2F3C | offset to vtable - +0x22B4 | 00 00 | uint8_t[2] | .. | padding - +0x22B6 | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) - +0x22B7 | 04 | uint8_t | 0x04 (4) | table field `element` (Byte) - +0x22B8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x204C | 0C F4 FF FF | SOffset32 | 0xFFFFF40C (-3060) Loc: +0x2C40 | offset to vtable + +0x2050 | 00 00 | uint8_t[2] | .. | padding + +0x2052 | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) + +0x2053 | 04 | uint8_t | 0x04 (4) | table field `element` (Byte) + +0x2054 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x22BC | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string - +0x22C0 | 66 6C 65 78 | char[4] | flex | string literal - +0x22C4 | 00 | char | 0x00 (0) | string terminator + +0x2058 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string + +0x205C | 66 6C 65 78 | char[4] | flex | string literal + +0x2060 | 00 | char | 0x00 (0) | string terminator padding: - +0x22C5 | 00 00 00 | uint8_t[3] | ... | padding + +0x2061 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Field): - +0x22C8 | EC F3 FF FF | SOffset32 | 0xFFFFF3EC (-3092) Loc: +0x2EDC | offset to vtable - +0x22CC | 00 00 00 | uint8_t[3] | ... | padding - +0x22CF | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x22D0 | 1D 00 | uint16_t | 0x001D (29) | table field `id` (UShort) - +0x22D2 | 3E 00 | uint16_t | 0x003E (62) | table field `offset` (UShort) - +0x22D4 | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: +0x231C | offset to field `name` (string) - +0x22D8 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x230C | offset to field `type` (table) - +0x22DC | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x22E8 | offset to field `attributes` (vector) - +0x22E0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x22E4 | offset to field `documentation` (vector) - -vector (reflection.Field.documentation): - +0x22E4 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x2064 | 7C F4 FF FF | SOffset32 | 0xFFFFF47C (-2948) Loc: +0x2BE8 | offset to vtable + +0x2068 | 00 00 00 | uint8_t[3] | ... | padding + +0x206B | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x206C | 1D 00 | uint16_t | 0x001D (29) | table field `id` (UShort) + +0x206E | 3E 00 | uint16_t | 0x003E (62) | table field `offset` (UShort) + +0x2070 | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: +0x20B0 | offset to field `name` (string) + +0x2074 | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: +0x20A0 | offset to field `type` (table) + +0x2078 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x207C | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x22E8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x22EC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x22F0 | offset to table[0] + +0x207C | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x2080 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2084 | offset to table[0] table (reflection.KeyValue): - +0x22F0 | D4 E9 FF FF | SOffset32 | 0xFFFFE9D4 (-5676) Loc: +0x391C | offset to vtable - +0x22F4 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2304 | offset to field `key` (string) - +0x22F8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x22FC | offset to field `value` (string) + +0x2084 | BC E7 FF FF | SOffset32 | 0xFFFFE7BC (-6212) Loc: +0x38C8 | offset to vtable + +0x2088 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2098 | offset to field `key` (string) + +0x208C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2090 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x22FC | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x2300 | 32 39 | char[2] | 29 | string literal - +0x2302 | 00 | char | 0x00 (0) | string terminator + +0x2090 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2094 | 32 39 | char[2] | 29 | string literal + +0x2096 | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x2304 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x2308 | 69 64 | char[2] | id | string literal - +0x230A | 00 | char | 0x00 (0) | string terminator + +0x2098 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x209C | 69 64 | char[2] | id | string literal + +0x209E | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x230C | A4 F5 FF FF | SOffset32 | 0xFFFFF5A4 (-2652) Loc: +0x2D68 | offset to vtable - +0x2310 | 00 00 | uint8_t[2] | .. | padding - +0x2312 | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) - +0x2313 | 0F | uint8_t | 0x0F (15) | table field `element` (Byte) - +0x2314 | 00 00 00 00 | uint32_t | 0x00000000 (0) | table field `index` (Int) - +0x2318 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `element_size` (UInt) + +0x20A0 | 2C F6 FF FF | SOffset32 | 0xFFFFF62C (-2516) Loc: +0x2A74 | offset to vtable + +0x20A4 | 00 00 | uint8_t[2] | .. | padding + +0x20A6 | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) + +0x20A7 | 0F | uint8_t | 0x0F (15) | table field `element` (Byte) + +0x20A8 | 00 00 00 00 | uint32_t | 0x00000000 (0) | table field `index` (Int) + +0x20AC | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `element_size` (UInt) string (reflection.Field.name): - +0x231C | 17 00 00 00 | uint32_t | 0x00000017 (23) | length of string - +0x2320 | 74 65 73 74 61 72 72 61 | char[23] | testarra | string literal - +0x2328 | 79 6F 66 73 6F 72 74 65 | | yofsorte - +0x2330 | 64 73 74 72 75 63 74 | | dstruct - +0x2337 | 00 | char | 0x00 (0) | string terminator + +0x20B0 | 17 00 00 00 | uint32_t | 0x00000017 (23) | length of string + +0x20B4 | 74 65 73 74 61 72 72 61 | char[23] | testarra | string literal + +0x20BC | 79 6F 66 73 6F 72 74 65 | | yofsorte + +0x20C4 | 64 73 74 72 75 63 74 | | dstruct + +0x20CB | 00 | char | 0x00 (0) | string terminator table (reflection.Field): - +0x2338 | 5C F4 FF FF | SOffset32 | 0xFFFFF45C (-2980) Loc: +0x2EDC | offset to vtable - +0x233C | 00 00 00 | uint8_t[3] | ... | padding - +0x233F | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x2340 | 1C 00 | uint16_t | 0x001C (28) | table field `id` (UShort) - +0x2342 | 3C 00 | uint16_t | 0x003C (60) | table field `offset` (UShort) - +0x2344 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x2388 | offset to field `name` (string) - +0x2348 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x237C | offset to field `type` (table) - +0x234C | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x2358 | offset to field `attributes` (vector) - +0x2350 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2354 | offset to field `documentation` (vector) - -vector (reflection.Field.documentation): - +0x2354 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x20CC | E4 F4 FF FF | SOffset32 | 0xFFFFF4E4 (-2844) Loc: +0x2BE8 | offset to vtable + +0x20D0 | 00 00 00 | uint8_t[3] | ... | padding + +0x20D3 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x20D4 | 1C 00 | uint16_t | 0x001C (28) | table field `id` (UShort) + +0x20D6 | 3C 00 | uint16_t | 0x003C (60) | table field `offset` (UShort) + +0x20D8 | 3C 00 00 00 | UOffset32 | 0x0000003C (60) Loc: +0x2114 | offset to field `name` (string) + +0x20DC | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: +0x2108 | offset to field `type` (table) + +0x20E0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x20E4 | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x2358 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x235C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2360 | offset to table[0] + +0x20E4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x20E8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x20EC | offset to table[0] table (reflection.KeyValue): - +0x2360 | 44 EA FF FF | SOffset32 | 0xFFFFEA44 (-5564) Loc: +0x391C | offset to vtable - +0x2364 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2374 | offset to field `key` (string) - +0x2368 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x236C | offset to field `value` (string) + +0x20EC | 24 E8 FF FF | SOffset32 | 0xFFFFE824 (-6108) Loc: +0x38C8 | offset to vtable + +0x20F0 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2100 | offset to field `key` (string) + +0x20F4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x20F8 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x236C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x2370 | 32 38 | char[2] | 28 | string literal - +0x2372 | 00 | char | 0x00 (0) | string terminator + +0x20F8 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x20FC | 32 38 | char[2] | 28 | string literal + +0x20FE | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x2374 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x2378 | 69 64 | char[2] | id | string literal - +0x237A | 00 | char | 0x00 (0) | string terminator + +0x2100 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2104 | 69 64 | char[2] | id | string literal + +0x2106 | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x237C | 40 F4 FF FF | SOffset32 | 0xFFFFF440 (-3008) Loc: +0x2F3C | offset to vtable - +0x2380 | 00 00 | uint8_t[2] | .. | padding - +0x2382 | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) - +0x2383 | 0D | uint8_t | 0x0D (13) | table field `element` (Byte) - +0x2384 | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `element_size` (UInt) + +0x2108 | C8 F4 FF FF | SOffset32 | 0xFFFFF4C8 (-2872) Loc: +0x2C40 | offset to vtable + +0x210C | 00 00 | uint8_t[2] | .. | padding + +0x210E | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) + +0x210F | 0D | uint8_t | 0x0D (13) | table field `element` (Byte) + +0x2110 | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `element_size` (UInt) string (reflection.Field.name): - +0x2388 | 12 00 00 00 | uint32_t | 0x00000012 (18) | length of string - +0x238C | 74 65 73 74 61 72 72 61 | char[18] | testarra | string literal - +0x2394 | 79 6F 66 73 74 72 69 6E | | yofstrin - +0x239C | 67 32 | | g2 - +0x239E | 00 | char | 0x00 (0) | string terminator + +0x2114 | 12 00 00 00 | uint32_t | 0x00000012 (18) | length of string + +0x2118 | 74 65 73 74 61 72 72 61 | char[18] | testarra | string literal + +0x2120 | 79 6F 66 73 74 72 69 6E | | yofstrin + +0x2128 | 67 32 | | g2 + +0x212A | 00 | char | 0x00 (0) | string terminator table (reflection.Field): - +0x23A0 | AE F5 FF FF | SOffset32 | 0xFFFFF5AE (-2642) Loc: +0x2DF2 | offset to vtable - +0x23A4 | 1B 00 | uint16_t | 0x001B (27) | table field `id` (UShort) - +0x23A6 | 3A 00 | uint16_t | 0x003A (58) | table field `offset` (UShort) - +0x23A8 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x23EC | offset to field `name` (string) - +0x23AC | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x23E0 | offset to field `type` (table) - +0x23B0 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x23BC | offset to field `attributes` (vector) - +0x23B4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x23B8 | offset to field `documentation` (vector) - -vector (reflection.Field.documentation): - +0x23B8 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x212C | 34 F6 FF FF | SOffset32 | 0xFFFFF634 (-2508) Loc: +0x2AF8 | offset to vtable + +0x2130 | 1B 00 | uint16_t | 0x001B (27) | table field `id` (UShort) + +0x2132 | 3A 00 | uint16_t | 0x003A (58) | table field `offset` (UShort) + +0x2134 | 3C 00 00 00 | UOffset32 | 0x0000003C (60) Loc: +0x2170 | offset to field `name` (string) + +0x2138 | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: +0x2164 | offset to field `type` (table) + +0x213C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2140 | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x23BC | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x23C0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x23C4 | offset to table[0] + +0x2140 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x2144 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2148 | offset to table[0] table (reflection.KeyValue): - +0x23C4 | A8 EA FF FF | SOffset32 | 0xFFFFEAA8 (-5464) Loc: +0x391C | offset to vtable - +0x23C8 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x23D8 | offset to field `key` (string) - +0x23CC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x23D0 | offset to field `value` (string) + +0x2148 | 80 E8 FF FF | SOffset32 | 0xFFFFE880 (-6016) Loc: +0x38C8 | offset to vtable + +0x214C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x215C | offset to field `key` (string) + +0x2150 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2154 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x23D0 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x23D4 | 32 37 | char[2] | 27 | string literal - +0x23D6 | 00 | char | 0x00 (0) | string terminator + +0x2154 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2158 | 32 37 | char[2] | 27 | string literal + +0x215A | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x23D8 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x23DC | 69 64 | char[2] | id | string literal - +0x23DE | 00 | char | 0x00 (0) | string terminator + +0x215C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2160 | 69 64 | char[2] | id | string literal + +0x2162 | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x23E0 | 8C E6 FF FF | SOffset32 | 0xFFFFE68C (-6516) Loc: +0x3D54 | offset to vtable - +0x23E4 | 00 00 00 | uint8_t[3] | ... | padding - +0x23E7 | 0B | uint8_t | 0x0B (11) | table field `base_type` (Byte) - +0x23E8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x2164 | 88 E8 FF FF | SOffset32 | 0xFFFFE888 (-6008) Loc: +0x38DC | offset to vtable + +0x2168 | 00 00 00 | uint8_t[3] | ... | padding + +0x216B | 0B | uint8_t | 0x0B (11) | table field `base_type` (Byte) + +0x216C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x23EC | 06 00 00 00 | uint32_t | 0x00000006 (6) | length of string - +0x23F0 | 74 65 73 74 66 33 | char[6] | testf3 | string literal - +0x23F6 | 00 | char | 0x00 (0) | string terminator + +0x2170 | 06 00 00 00 | uint32_t | 0x00000006 (6) | length of string + +0x2174 | 74 65 73 74 66 33 | char[6] | testf3 | string literal + +0x217A | 00 | char | 0x00 (0) | string terminator table (reflection.Field): - +0x23F8 | 9A FF FF FF | SOffset32 | 0xFFFFFF9A (-102) Loc: +0x245E | offset to vtable - +0x23FC | 1A 00 | uint16_t | 0x001A (26) | table field `id` (UShort) - +0x23FE | 38 00 | uint16_t | 0x0038 (56) | table field `offset` (UShort) - +0x2400 | 50 00 00 00 | UOffset32 | 0x00000050 (80) Loc: +0x2450 | offset to field `name` (string) - +0x2404 | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: +0x2444 | offset to field `type` (table) - +0x2408 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x2420 | offset to field `attributes` (vector) - +0x240C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x241C | offset to field `documentation` (vector) - +0x2410 | 00 00 00 00 00 00 08 40 | double | 0x4008000000000000 (3) | table field `default_real` (Double) - +0x2418 | 00 00 00 00 | uint8_t[4] | .... | padding - -vector (reflection.Field.documentation): - +0x241C | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x217C | A8 FF FF FF | SOffset32 | 0xFFFFFFA8 (-88) Loc: +0x21D4 | offset to vtable + +0x2180 | 1A 00 | uint16_t | 0x001A (26) | table field `id` (UShort) + +0x2182 | 38 00 | uint16_t | 0x0038 (56) | table field `offset` (UShort) + +0x2184 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x21C8 | offset to field `name` (string) + +0x2188 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x21BC | offset to field `type` (table) + +0x218C | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x2198 | offset to field `attributes` (vector) + +0x2190 | 00 00 00 00 00 00 08 40 | double | 0x4008000000000000 (3) | table field `default_real` (Double) vector (reflection.Field.attributes): - +0x2420 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x2424 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2428 | offset to table[0] + +0x2198 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x219C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x21A0 | offset to table[0] table (reflection.KeyValue): - +0x2428 | 0C EB FF FF | SOffset32 | 0xFFFFEB0C (-5364) Loc: +0x391C | offset to vtable - +0x242C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x243C | offset to field `key` (string) - +0x2430 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2434 | offset to field `value` (string) + +0x21A0 | D8 E8 FF FF | SOffset32 | 0xFFFFE8D8 (-5928) Loc: +0x38C8 | offset to vtable + +0x21A4 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x21B4 | offset to field `key` (string) + +0x21A8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x21AC | offset to field `value` (string) string (reflection.KeyValue.value): - +0x2434 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x2438 | 32 36 | char[2] | 26 | string literal - +0x243A | 00 | char | 0x00 (0) | string terminator + +0x21AC | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x21B0 | 32 36 | char[2] | 26 | string literal + +0x21B2 | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x243C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x2440 | 69 64 | char[2] | id | string literal - +0x2442 | 00 | char | 0x00 (0) | string terminator + +0x21B4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x21B8 | 69 64 | char[2] | id | string literal + +0x21BA | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x2444 | F0 E6 FF FF | SOffset32 | 0xFFFFE6F0 (-6416) Loc: +0x3D54 | offset to vtable - +0x2448 | 00 00 00 | uint8_t[3] | ... | padding - +0x244B | 0B | uint8_t | 0x0B (11) | table field `base_type` (Byte) - +0x244C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x21BC | E0 E8 FF FF | SOffset32 | 0xFFFFE8E0 (-5920) Loc: +0x38DC | offset to vtable + +0x21C0 | 00 00 00 | uint8_t[3] | ... | padding + +0x21C3 | 0B | uint8_t | 0x0B (11) | table field `base_type` (Byte) + +0x21C4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x2450 | 06 00 00 00 | uint32_t | 0x00000006 (6) | length of string - +0x2454 | 74 65 73 74 66 32 | char[6] | testf2 | string literal - +0x245A | 00 | char | 0x00 (0) | string terminator - -padding: - +0x245B | 00 00 00 | uint8_t[3] | ... | padding + +0x21C8 | 06 00 00 00 | uint32_t | 0x00000006 (6) | length of string + +0x21CC | 74 65 73 74 66 32 | char[6] | testf2 | string literal + +0x21D2 | 00 | char | 0x00 (0) | string terminator vtable (reflection.Field): - +0x245E | 1A 00 | uint16_t | 0x001A (26) | size of this vtable - +0x2460 | 24 00 | uint16_t | 0x0024 (36) | size of referring table - +0x2462 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0) - +0x2464 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `type` (id: 1) - +0x2466 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `id` (id: 2) - +0x2468 | 06 00 | VOffset16 | 0x0006 (6) | offset to field `offset` (id: 3) - +0x246A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) (Long) - +0x246C | 18 00 | VOffset16 | 0x0018 (24) | offset to field `default_real` (id: 5) - +0x246E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) - +0x2470 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) (Bool) - +0x2472 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 8) (Bool) - +0x2474 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `attributes` (id: 9) - +0x2476 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `documentation` (id: 10) + +0x21D4 | 18 00 | uint16_t | 0x0018 (24) | size of this vtable + +0x21D6 | 1C 00 | uint16_t | 0x001C (28) | size of referring table + +0x21D8 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0) + +0x21DA | 0C 00 | VOffset16 | 0x000C (12) | offset to field `type` (id: 1) + +0x21DC | 04 00 | VOffset16 | 0x0004 (4) | offset to field `id` (id: 2) + +0x21DE | 06 00 | VOffset16 | 0x0006 (6) | offset to field `offset` (id: 3) + +0x21E0 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) (Long) + +0x21E2 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `default_real` (id: 5) + +0x21E4 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) + +0x21E6 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) (Bool) + +0x21E8 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 8) (Bool) + +0x21EA | 10 00 | VOffset16 | 0x0010 (16) | offset to field `attributes` (id: 9) table (reflection.Field): - +0x2478 | 1A 00 00 00 | SOffset32 | 0x0000001A (26) Loc: +0x245E | offset to vtable - +0x247C | 19 00 | uint16_t | 0x0019 (25) | table field `id` (UShort) - +0x247E | 36 00 | uint16_t | 0x0036 (54) | table field `offset` (UShort) - +0x2480 | 50 00 00 00 | UOffset32 | 0x00000050 (80) Loc: +0x24D0 | offset to field `name` (string) - +0x2484 | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: +0x24C4 | offset to field `type` (table) - +0x2488 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x24A0 | offset to field `attributes` (vector) - +0x248C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x249C | offset to field `documentation` (vector) - +0x2490 | 6E 86 1B F0 F9 21 09 40 | double | 0x400921F9F01B866E (3.14159) | table field `default_real` (Double) - +0x2498 | 00 00 00 00 | uint8_t[4] | .... | padding - -vector (reflection.Field.documentation): - +0x249C | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x21EC | 18 00 00 00 | SOffset32 | 0x00000018 (24) Loc: +0x21D4 | offset to vtable + +0x21F0 | 19 00 | uint16_t | 0x0019 (25) | table field `id` (UShort) + +0x21F2 | 36 00 | uint16_t | 0x0036 (54) | table field `offset` (UShort) + +0x21F4 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x2238 | offset to field `name` (string) + +0x21F8 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x222C | offset to field `type` (table) + +0x21FC | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x2208 | offset to field `attributes` (vector) + +0x2200 | 6E 86 1B F0 F9 21 09 40 | double | 0x400921F9F01B866E (3.14159) | table field `default_real` (Double) vector (reflection.Field.attributes): - +0x24A0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x24A4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x24A8 | offset to table[0] + +0x2208 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x220C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2210 | offset to table[0] table (reflection.KeyValue): - +0x24A8 | 8C EB FF FF | SOffset32 | 0xFFFFEB8C (-5236) Loc: +0x391C | offset to vtable - +0x24AC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x24BC | offset to field `key` (string) - +0x24B0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x24B4 | offset to field `value` (string) + +0x2210 | 48 E9 FF FF | SOffset32 | 0xFFFFE948 (-5816) Loc: +0x38C8 | offset to vtable + +0x2214 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2224 | offset to field `key` (string) + +0x2218 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x221C | offset to field `value` (string) string (reflection.KeyValue.value): - +0x24B4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x24B8 | 32 35 | char[2] | 25 | string literal - +0x24BA | 00 | char | 0x00 (0) | string terminator + +0x221C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2220 | 32 35 | char[2] | 25 | string literal + +0x2222 | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x24BC | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x24C0 | 69 64 | char[2] | id | string literal - +0x24C2 | 00 | char | 0x00 (0) | string terminator + +0x2224 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2228 | 69 64 | char[2] | id | string literal + +0x222A | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x24C4 | 70 E7 FF FF | SOffset32 | 0xFFFFE770 (-6288) Loc: +0x3D54 | offset to vtable - +0x24C8 | 00 00 00 | uint8_t[3] | ... | padding - +0x24CB | 0B | uint8_t | 0x0B (11) | table field `base_type` (Byte) - +0x24CC | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x222C | 50 E9 FF FF | SOffset32 | 0xFFFFE950 (-5808) Loc: +0x38DC | offset to vtable + +0x2230 | 00 00 00 | uint8_t[3] | ... | padding + +0x2233 | 0B | uint8_t | 0x0B (11) | table field `base_type` (Byte) + +0x2234 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x24D0 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string - +0x24D4 | 74 65 73 74 66 | char[5] | testf | string literal - +0x24D9 | 00 | char | 0x00 (0) | string terminator + +0x2238 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string + +0x223C | 74 65 73 74 66 | char[5] | testf | string literal + +0x2241 | 00 | char | 0x00 (0) | string terminator padding: - +0x24DA | 00 00 | uint8_t[2] | .. | padding + +0x2242 | 00 00 | uint8_t[2] | .. | padding table (reflection.Field): - +0x24DC | 00 F6 FF FF | SOffset32 | 0xFFFFF600 (-2560) Loc: +0x2EDC | offset to vtable - +0x24E0 | 00 00 00 | uint8_t[3] | ... | padding - +0x24E3 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x24E4 | 18 00 | uint16_t | 0x0018 (24) | table field `id` (UShort) - +0x24E6 | 34 00 | uint16_t | 0x0034 (52) | table field `offset` (UShort) - +0x24E8 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x252C | offset to field `name` (string) - +0x24EC | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x2520 | offset to field `type` (table) - +0x24F0 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x24FC | offset to field `attributes` (vector) - +0x24F4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x24F8 | offset to field `documentation` (vector) - -vector (reflection.Field.documentation): - +0x24F8 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x2244 | 5C F6 FF FF | SOffset32 | 0xFFFFF65C (-2468) Loc: +0x2BE8 | offset to vtable + +0x2248 | 00 00 00 | uint8_t[3] | ... | padding + +0x224B | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x224C | 18 00 | uint16_t | 0x0018 (24) | table field `id` (UShort) + +0x224E | 34 00 | uint16_t | 0x0034 (52) | table field `offset` (UShort) + +0x2250 | 3C 00 00 00 | UOffset32 | 0x0000003C (60) Loc: +0x228C | offset to field `name` (string) + +0x2254 | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: +0x2280 | offset to field `type` (table) + +0x2258 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x225C | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x24FC | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x2500 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2504 | offset to table[0] + +0x225C | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x2260 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2264 | offset to table[0] table (reflection.KeyValue): - +0x2504 | E8 EB FF FF | SOffset32 | 0xFFFFEBE8 (-5144) Loc: +0x391C | offset to vtable - +0x2508 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2518 | offset to field `key` (string) - +0x250C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2510 | offset to field `value` (string) + +0x2264 | 9C E9 FF FF | SOffset32 | 0xFFFFE99C (-5732) Loc: +0x38C8 | offset to vtable + +0x2268 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2278 | offset to field `key` (string) + +0x226C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2270 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x2510 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x2514 | 32 34 | char[2] | 24 | string literal - +0x2516 | 00 | char | 0x00 (0) | string terminator + +0x2270 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2274 | 32 34 | char[2] | 24 | string literal + +0x2276 | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x2518 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x251C | 69 64 | char[2] | id | string literal - +0x251E | 00 | char | 0x00 (0) | string terminator + +0x2278 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x227C | 69 64 | char[2] | id | string literal + +0x227E | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x2520 | E4 F5 FF FF | SOffset32 | 0xFFFFF5E4 (-2588) Loc: +0x2F3C | offset to vtable - +0x2524 | 00 00 | uint8_t[2] | .. | padding - +0x2526 | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) - +0x2527 | 02 | uint8_t | 0x02 (2) | table field `element` (Byte) - +0x2528 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x2280 | 40 F6 FF FF | SOffset32 | 0xFFFFF640 (-2496) Loc: +0x2C40 | offset to vtable + +0x2284 | 00 00 | uint8_t[2] | .. | padding + +0x2286 | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) + +0x2287 | 02 | uint8_t | 0x02 (2) | table field `element` (Byte) + +0x2288 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x252C | 10 00 00 00 | uint32_t | 0x00000010 (16) | length of string - +0x2530 | 74 65 73 74 61 72 72 61 | char[16] | testarra | string literal - +0x2538 | 79 6F 66 62 6F 6F 6C 73 | | yofbools - +0x2540 | 00 | char | 0x00 (0) | string terminator + +0x228C | 10 00 00 00 | uint32_t | 0x00000010 (16) | length of string + +0x2290 | 74 65 73 74 61 72 72 61 | char[16] | testarra | string literal + +0x2298 | 79 6F 66 62 6F 6F 6C 73 | | yofbools + +0x22A0 | 00 | char | 0x00 (0) | string terminator padding: - +0x2541 | 00 00 00 | uint8_t[3] | ... | padding + +0x22A1 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Field): - +0x2544 | 52 F7 FF FF | SOffset32 | 0xFFFFF752 (-2222) Loc: +0x2DF2 | offset to vtable - +0x2548 | 17 00 | uint16_t | 0x0017 (23) | table field `id` (UShort) - +0x254A | 32 00 | uint16_t | 0x0032 (50) | table field `offset` (UShort) - +0x254C | 74 00 00 00 | UOffset32 | 0x00000074 (116) Loc: +0x25C0 | offset to field `name` (string) - +0x2550 | 60 00 00 00 | UOffset32 | 0x00000060 (96) Loc: +0x25B0 | offset to field `type` (table) - +0x2554 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x2560 | offset to field `attributes` (vector) - +0x2558 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x255C | offset to field `documentation` (vector) - -vector (reflection.Field.documentation): - +0x255C | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x22A4 | AC F7 FF FF | SOffset32 | 0xFFFFF7AC (-2132) Loc: +0x2AF8 | offset to vtable + +0x22A8 | 17 00 | uint16_t | 0x0017 (23) | table field `id` (UShort) + +0x22AA | 32 00 | uint16_t | 0x0032 (50) | table field `offset` (UShort) + +0x22AC | 6C 00 00 00 | UOffset32 | 0x0000006C (108) Loc: +0x2318 | offset to field `name` (string) + +0x22B0 | 58 00 00 00 | UOffset32 | 0x00000058 (88) Loc: +0x2308 | offset to field `type` (table) + +0x22B4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x22B8 | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x2560 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) - +0x2564 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x2588 | offset to table[0] - +0x2568 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x256C | offset to table[1] + +0x22B8 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) + +0x22BC | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x22E0 | offset to table[0] + +0x22C0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x22C4 | offset to table[1] table (reflection.KeyValue): - +0x256C | 50 EC FF FF | SOffset32 | 0xFFFFEC50 (-5040) Loc: +0x391C | offset to vtable - +0x2570 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2580 | offset to field `key` (string) - +0x2574 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2578 | offset to field `value` (string) + +0x22C4 | FC E9 FF FF | SOffset32 | 0xFFFFE9FC (-5636) Loc: +0x38C8 | offset to vtable + +0x22C8 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x22D8 | offset to field `key` (string) + +0x22CC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x22D0 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x2578 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x257C | 32 33 | char[2] | 23 | string literal - +0x257E | 00 | char | 0x00 (0) | string terminator + +0x22D0 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x22D4 | 32 33 | char[2] | 23 | string literal + +0x22D6 | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x2580 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x2584 | 69 64 | char[2] | id | string literal - +0x2586 | 00 | char | 0x00 (0) | string terminator + +0x22D8 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x22DC | 69 64 | char[2] | id | string literal + +0x22DE | 00 | char | 0x00 (0) | string terminator table (reflection.KeyValue): - +0x2588 | 6C EC FF FF | SOffset32 | 0xFFFFEC6C (-5012) Loc: +0x391C | offset to vtable - +0x258C | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x25A4 | offset to field `key` (string) - +0x2590 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2594 | offset to field `value` (string) + +0x22E0 | 18 EA FF FF | SOffset32 | 0xFFFFEA18 (-5608) Loc: +0x38C8 | offset to vtable + +0x22E4 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x22FC | offset to field `key` (string) + +0x22E8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x22EC | offset to field `value` (string) string (reflection.KeyValue.value): - +0x2594 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string - +0x2598 | 66 6E 76 31 61 5F 36 34 | char[8] | fnv1a_64 | string literal - +0x25A0 | 00 | char | 0x00 (0) | string terminator + +0x22EC | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string + +0x22F0 | 66 6E 76 31 61 5F 36 34 | char[8] | fnv1a_64 | string literal + +0x22F8 | 00 | char | 0x00 (0) | string terminator padding: - +0x25A1 | 00 00 00 | uint8_t[3] | ... | padding + +0x22F9 | 00 00 00 | uint8_t[3] | ... | padding string (reflection.KeyValue.key): - +0x25A4 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string - +0x25A8 | 68 61 73 68 | char[4] | hash | string literal - +0x25AC | 00 | char | 0x00 (0) | string terminator + +0x22FC | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string + +0x2300 | 68 61 73 68 | char[4] | hash | string literal + +0x2304 | 00 | char | 0x00 (0) | string terminator padding: - +0x25AD | 00 00 00 | uint8_t[3] | ... | padding + +0x2305 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Type): - +0x25B0 | 14 EB FF FF | SOffset32 | 0xFFFFEB14 (-5356) Loc: +0x3A9C | offset to vtable - +0x25B4 | 00 00 00 | uint8_t[3] | ... | padding - +0x25B7 | 0A | uint8_t | 0x0A (10) | table field `base_type` (Byte) - +0x25B8 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt) - +0x25BC | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x2308 | 94 EC FF FF | SOffset32 | 0xFFFFEC94 (-4972) Loc: +0x3674 | offset to vtable + +0x230C | 00 00 00 | uint8_t[3] | ... | padding + +0x230F | 0A | uint8_t | 0x0A (10) | table field `base_type` (Byte) + +0x2310 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt) + +0x2314 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x25C0 | 11 00 00 00 | uint32_t | 0x00000011 (17) | length of string - +0x25C4 | 74 65 73 74 68 61 73 68 | char[17] | testhash | string literal - +0x25CC | 75 36 34 5F 66 6E 76 31 | | u64_fnv1 - +0x25D4 | 61 | | a - +0x25D5 | 00 | char | 0x00 (0) | string terminator + +0x2318 | 11 00 00 00 | uint32_t | 0x00000011 (17) | length of string + +0x231C | 74 65 73 74 68 61 73 68 | char[17] | testhash | string literal + +0x2324 | 75 36 34 5F 66 6E 76 31 | | u64_fnv1 + +0x232C | 61 | | a + +0x232D | 00 | char | 0x00 (0) | string terminator padding: - +0x25D6 | 00 00 | uint8_t[2] | .. | padding + +0x232E | 00 00 | uint8_t[2] | .. | padding table (reflection.Field): - +0x25D8 | E6 F7 FF FF | SOffset32 | 0xFFFFF7E6 (-2074) Loc: +0x2DF2 | offset to vtable - +0x25DC | 16 00 | uint16_t | 0x0016 (22) | table field `id` (UShort) - +0x25DE | 30 00 | uint16_t | 0x0030 (48) | table field `offset` (UShort) - +0x25E0 | 74 00 00 00 | UOffset32 | 0x00000074 (116) Loc: +0x2654 | offset to field `name` (string) - +0x25E4 | 60 00 00 00 | UOffset32 | 0x00000060 (96) Loc: +0x2644 | offset to field `type` (table) - +0x25E8 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x25F4 | offset to field `attributes` (vector) - +0x25EC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x25F0 | offset to field `documentation` (vector) - -vector (reflection.Field.documentation): - +0x25F0 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x2330 | 38 F8 FF FF | SOffset32 | 0xFFFFF838 (-1992) Loc: +0x2AF8 | offset to vtable + +0x2334 | 16 00 | uint16_t | 0x0016 (22) | table field `id` (UShort) + +0x2336 | 30 00 | uint16_t | 0x0030 (48) | table field `offset` (UShort) + +0x2338 | 6C 00 00 00 | UOffset32 | 0x0000006C (108) Loc: +0x23A4 | offset to field `name` (string) + +0x233C | 58 00 00 00 | UOffset32 | 0x00000058 (88) Loc: +0x2394 | offset to field `type` (table) + +0x2340 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2344 | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x25F4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) - +0x25F8 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x261C | offset to table[0] - +0x25FC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2600 | offset to table[1] + +0x2344 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) + +0x2348 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x236C | offset to table[0] + +0x234C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2350 | offset to table[1] table (reflection.KeyValue): - +0x2600 | E4 EC FF FF | SOffset32 | 0xFFFFECE4 (-4892) Loc: +0x391C | offset to vtable - +0x2604 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2614 | offset to field `key` (string) - +0x2608 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x260C | offset to field `value` (string) + +0x2350 | 88 EA FF FF | SOffset32 | 0xFFFFEA88 (-5496) Loc: +0x38C8 | offset to vtable + +0x2354 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2364 | offset to field `key` (string) + +0x2358 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x235C | offset to field `value` (string) string (reflection.KeyValue.value): - +0x260C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x2610 | 32 32 | char[2] | 22 | string literal - +0x2612 | 00 | char | 0x00 (0) | string terminator + +0x235C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2360 | 32 32 | char[2] | 22 | string literal + +0x2362 | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x2614 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x2618 | 69 64 | char[2] | id | string literal - +0x261A | 00 | char | 0x00 (0) | string terminator + +0x2364 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2368 | 69 64 | char[2] | id | string literal + +0x236A | 00 | char | 0x00 (0) | string terminator table (reflection.KeyValue): - +0x261C | 00 ED FF FF | SOffset32 | 0xFFFFED00 (-4864) Loc: +0x391C | offset to vtable - +0x2620 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x2638 | offset to field `key` (string) - +0x2624 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2628 | offset to field `value` (string) + +0x236C | A4 EA FF FF | SOffset32 | 0xFFFFEAA4 (-5468) Loc: +0x38C8 | offset to vtable + +0x2370 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x2388 | offset to field `key` (string) + +0x2374 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2378 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x2628 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string - +0x262C | 66 6E 76 31 61 5F 36 34 | char[8] | fnv1a_64 | string literal - +0x2634 | 00 | char | 0x00 (0) | string terminator + +0x2378 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string + +0x237C | 66 6E 76 31 61 5F 36 34 | char[8] | fnv1a_64 | string literal + +0x2384 | 00 | char | 0x00 (0) | string terminator padding: - +0x2635 | 00 00 00 | uint8_t[3] | ... | padding + +0x2385 | 00 00 00 | uint8_t[3] | ... | padding string (reflection.KeyValue.key): - +0x2638 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string - +0x263C | 68 61 73 68 | char[4] | hash | string literal - +0x2640 | 00 | char | 0x00 (0) | string terminator + +0x2388 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string + +0x238C | 68 61 73 68 | char[4] | hash | string literal + +0x2390 | 00 | char | 0x00 (0) | string terminator padding: - +0x2641 | 00 00 00 | uint8_t[3] | ... | padding + +0x2391 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Type): - +0x2644 | A8 EB FF FF | SOffset32 | 0xFFFFEBA8 (-5208) Loc: +0x3A9C | offset to vtable - +0x2648 | 00 00 00 | uint8_t[3] | ... | padding - +0x264B | 09 | uint8_t | 0x09 (9) | table field `base_type` (Byte) - +0x264C | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt) - +0x2650 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x2394 | 20 ED FF FF | SOffset32 | 0xFFFFED20 (-4832) Loc: +0x3674 | offset to vtable + +0x2398 | 00 00 00 | uint8_t[3] | ... | padding + +0x239B | 09 | uint8_t | 0x09 (9) | table field `base_type` (Byte) + +0x239C | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt) + +0x23A0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x2654 | 11 00 00 00 | uint32_t | 0x00000011 (17) | length of string - +0x2658 | 74 65 73 74 68 61 73 68 | char[17] | testhash | string literal - +0x2660 | 73 36 34 5F 66 6E 76 31 | | s64_fnv1 - +0x2668 | 61 | | a - +0x2669 | 00 | char | 0x00 (0) | string terminator + +0x23A4 | 11 00 00 00 | uint32_t | 0x00000011 (17) | length of string + +0x23A8 | 74 65 73 74 68 61 73 68 | char[17] | testhash | string literal + +0x23B0 | 73 36 34 5F 66 6E 76 31 | | s64_fnv1 + +0x23B8 | 61 | | a + +0x23B9 | 00 | char | 0x00 (0) | string terminator padding: - +0x266A | 00 00 | uint8_t[2] | .. | padding + +0x23BA | 00 00 | uint8_t[2] | .. | padding table (reflection.Field): - +0x266C | 7A F8 FF FF | SOffset32 | 0xFFFFF87A (-1926) Loc: +0x2DF2 | offset to vtable - +0x2670 | 15 00 | uint16_t | 0x0015 (21) | table field `id` (UShort) - +0x2672 | 2E 00 | uint16_t | 0x002E (46) | table field `offset` (UShort) - +0x2674 | CC 00 00 00 | UOffset32 | 0x000000CC (204) Loc: +0x2740 | offset to field `name` (string) - +0x2678 | BC 00 00 00 | UOffset32 | 0x000000BC (188) Loc: +0x2734 | offset to field `type` (table) - +0x267C | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x2688 | offset to field `attributes` (vector) - +0x2680 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2684 | offset to field `documentation` (vector) - -vector (reflection.Field.documentation): - +0x2684 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x23BC | C4 F8 FF FF | SOffset32 | 0xFFFFF8C4 (-1852) Loc: +0x2AF8 | offset to vtable + +0x23C0 | 15 00 | uint16_t | 0x0015 (21) | table field `id` (UShort) + +0x23C2 | 2E 00 | uint16_t | 0x002E (46) | table field `offset` (UShort) + +0x23C4 | C4 00 00 00 | UOffset32 | 0x000000C4 (196) Loc: +0x2488 | offset to field `name` (string) + +0x23C8 | B4 00 00 00 | UOffset32 | 0x000000B4 (180) Loc: +0x247C | offset to field `type` (table) + +0x23CC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x23D0 | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x2688 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of vector (# items) - +0x268C | 7C 00 00 00 | UOffset32 | 0x0000007C (124) Loc: +0x2708 | offset to table[0] - +0x2690 | 50 00 00 00 | UOffset32 | 0x00000050 (80) Loc: +0x26E0 | offset to table[1] - +0x2694 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x26B8 | offset to table[2] - +0x2698 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x269C | offset to table[3] + +0x23D0 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of vector (# items) + +0x23D4 | 7C 00 00 00 | UOffset32 | 0x0000007C (124) Loc: +0x2450 | offset to table[0] + +0x23D8 | 50 00 00 00 | UOffset32 | 0x00000050 (80) Loc: +0x2428 | offset to table[1] + +0x23DC | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x2400 | offset to table[2] + +0x23E0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x23E4 | offset to table[3] table (reflection.KeyValue): - +0x269C | 80 ED FF FF | SOffset32 | 0xFFFFED80 (-4736) Loc: +0x391C | offset to vtable - +0x26A0 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x26B0 | offset to field `key` (string) - +0x26A4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x26A8 | offset to field `value` (string) + +0x23E4 | 1C EB FF FF | SOffset32 | 0xFFFFEB1C (-5348) Loc: +0x38C8 | offset to vtable + +0x23E8 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x23F8 | offset to field `key` (string) + +0x23EC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x23F0 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x26A8 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x26AC | 32 31 | char[2] | 21 | string literal - +0x26AE | 00 | char | 0x00 (0) | string terminator + +0x23F0 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x23F4 | 32 31 | char[2] | 21 | string literal + +0x23F6 | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x26B0 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x26B4 | 69 64 | char[2] | id | string literal - +0x26B6 | 00 | char | 0x00 (0) | string terminator + +0x23F8 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x23FC | 69 64 | char[2] | id | string literal + +0x23FE | 00 | char | 0x00 (0) | string terminator table (reflection.KeyValue): - +0x26B8 | 9C ED FF FF | SOffset32 | 0xFFFFED9C (-4708) Loc: +0x391C | offset to vtable - +0x26BC | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x26D4 | offset to field `key` (string) - +0x26C0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x26C4 | offset to field `value` (string) + +0x2400 | 38 EB FF FF | SOffset32 | 0xFFFFEB38 (-5320) Loc: +0x38C8 | offset to vtable + +0x2404 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x241C | offset to field `key` (string) + +0x2408 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x240C | offset to field `value` (string) string (reflection.KeyValue.value): - +0x26C4 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string - +0x26C8 | 66 6E 76 31 61 5F 33 32 | char[8] | fnv1a_32 | string literal - +0x26D0 | 00 | char | 0x00 (0) | string terminator + +0x240C | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string + +0x2410 | 66 6E 76 31 61 5F 33 32 | char[8] | fnv1a_32 | string literal + +0x2418 | 00 | char | 0x00 (0) | string terminator padding: - +0x26D1 | 00 00 00 | uint8_t[3] | ... | padding + +0x2419 | 00 00 00 | uint8_t[3] | ... | padding string (reflection.KeyValue.key): - +0x26D4 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string - +0x26D8 | 68 61 73 68 | char[4] | hash | string literal - +0x26DC | 00 | char | 0x00 (0) | string terminator + +0x241C | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string + +0x2420 | 68 61 73 68 | char[4] | hash | string literal + +0x2424 | 00 | char | 0x00 (0) | string terminator padding: - +0x26DD | 00 00 00 | uint8_t[3] | ... | padding + +0x2425 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.KeyValue): - +0x26E0 | C4 ED FF FF | SOffset32 | 0xFFFFEDC4 (-4668) Loc: +0x391C | offset to vtable - +0x26E4 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x26F8 | offset to field `key` (string) - +0x26E8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x26EC | offset to field `value` (string) + +0x2428 | 60 EB FF FF | SOffset32 | 0xFFFFEB60 (-5280) Loc: +0x38C8 | offset to vtable + +0x242C | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x2440 | offset to field `key` (string) + +0x2430 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2434 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x26EC | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string - +0x26F0 | 53 74 61 74 | char[4] | Stat | string literal - +0x26F4 | 00 | char | 0x00 (0) | string terminator + +0x2434 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string + +0x2438 | 53 74 61 74 | char[4] | Stat | string literal + +0x243C | 00 | char | 0x00 (0) | string terminator padding: - +0x26F5 | 00 00 00 | uint8_t[3] | ... | padding + +0x243D | 00 00 00 | uint8_t[3] | ... | padding string (reflection.KeyValue.key): - +0x26F8 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string - +0x26FC | 63 70 70 5F 74 79 70 65 | char[8] | cpp_type | string literal - +0x2704 | 00 | char | 0x00 (0) | string terminator + +0x2440 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string + +0x2444 | 63 70 70 5F 74 79 70 65 | char[8] | cpp_type | string literal + +0x244C | 00 | char | 0x00 (0) | string terminator padding: - +0x2705 | 00 00 00 | uint8_t[3] | ... | padding + +0x244D | 00 00 00 | uint8_t[3] | ... | padding table (reflection.KeyValue): - +0x2708 | EC ED FF FF | SOffset32 | 0xFFFFEDEC (-4628) Loc: +0x391C | offset to vtable - +0x270C | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x2720 | offset to field `key` (string) - +0x2710 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2714 | offset to field `value` (string) + +0x2450 | 88 EB FF FF | SOffset32 | 0xFFFFEB88 (-5240) Loc: +0x38C8 | offset to vtable + +0x2454 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x2468 | offset to field `key` (string) + +0x2458 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x245C | offset to field `value` (string) string (reflection.KeyValue.value): - +0x2714 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string - +0x2718 | 6E 61 6B 65 64 | char[5] | naked | string literal - +0x271D | 00 | char | 0x00 (0) | string terminator + +0x245C | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string + +0x2460 | 6E 61 6B 65 64 | char[5] | naked | string literal + +0x2465 | 00 | char | 0x00 (0) | string terminator padding: - +0x271E | 00 00 | uint8_t[2] | .. | padding + +0x2466 | 00 00 | uint8_t[2] | .. | padding string (reflection.KeyValue.key): - +0x2720 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | length of string - +0x2724 | 63 70 70 5F 70 74 72 5F | char[12] | cpp_ptr_ | string literal - +0x272C | 74 79 70 65 | | type - +0x2730 | 00 | char | 0x00 (0) | string terminator + +0x2468 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | length of string + +0x246C | 63 70 70 5F 70 74 72 5F | char[12] | cpp_ptr_ | string literal + +0x2474 | 74 79 70 65 | | type + +0x2478 | 00 | char | 0x00 (0) | string terminator padding: - +0x2731 | 00 00 00 | uint8_t[3] | ... | padding + +0x2479 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Type): - +0x2734 | E0 E9 FF FF | SOffset32 | 0xFFFFE9E0 (-5664) Loc: +0x3D54 | offset to vtable - +0x2738 | 00 00 00 | uint8_t[3] | ... | padding - +0x273B | 08 | uint8_t | 0x08 (8) | table field `base_type` (Byte) - +0x273C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x247C | A0 EB FF FF | SOffset32 | 0xFFFFEBA0 (-5216) Loc: +0x38DC | offset to vtable + +0x2480 | 00 00 00 | uint8_t[3] | ... | padding + +0x2483 | 08 | uint8_t | 0x08 (8) | table field `base_type` (Byte) + +0x2484 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x2740 | 11 00 00 00 | uint32_t | 0x00000011 (17) | length of string - +0x2744 | 74 65 73 74 68 61 73 68 | char[17] | testhash | string literal - +0x274C | 75 33 32 5F 66 6E 76 31 | | u32_fnv1 - +0x2754 | 61 | | a - +0x2755 | 00 | char | 0x00 (0) | string terminator + +0x2488 | 11 00 00 00 | uint32_t | 0x00000011 (17) | length of string + +0x248C | 74 65 73 74 68 61 73 68 | char[17] | testhash | string literal + +0x2494 | 75 33 32 5F 66 6E 76 31 | | u32_fnv1 + +0x249C | 61 | | a + +0x249D | 00 | char | 0x00 (0) | string terminator padding: - +0x2756 | 00 00 | uint8_t[2] | .. | padding + +0x249E | 00 00 | uint8_t[2] | .. | padding table (reflection.Field): - +0x2758 | 66 F9 FF FF | SOffset32 | 0xFFFFF966 (-1690) Loc: +0x2DF2 | offset to vtable - +0x275C | 14 00 | uint16_t | 0x0014 (20) | table field `id` (UShort) - +0x275E | 2C 00 | uint16_t | 0x002C (44) | table field `offset` (UShort) - +0x2760 | 70 00 00 00 | UOffset32 | 0x00000070 (112) Loc: +0x27D0 | offset to field `name` (string) - +0x2764 | 60 00 00 00 | UOffset32 | 0x00000060 (96) Loc: +0x27C4 | offset to field `type` (table) - +0x2768 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x2774 | offset to field `attributes` (vector) - +0x276C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2770 | offset to field `documentation` (vector) - -vector (reflection.Field.documentation): - +0x2770 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x24A0 | A8 F9 FF FF | SOffset32 | 0xFFFFF9A8 (-1624) Loc: +0x2AF8 | offset to vtable + +0x24A4 | 14 00 | uint16_t | 0x0014 (20) | table field `id` (UShort) + +0x24A6 | 2C 00 | uint16_t | 0x002C (44) | table field `offset` (UShort) + +0x24A8 | 68 00 00 00 | UOffset32 | 0x00000068 (104) Loc: +0x2510 | offset to field `name` (string) + +0x24AC | 58 00 00 00 | UOffset32 | 0x00000058 (88) Loc: +0x2504 | offset to field `type` (table) + +0x24B0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x24B4 | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x2774 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) - +0x2778 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x279C | offset to table[0] - +0x277C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2780 | offset to table[1] + +0x24B4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) + +0x24B8 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x24DC | offset to table[0] + +0x24BC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x24C0 | offset to table[1] table (reflection.KeyValue): - +0x2780 | 64 EE FF FF | SOffset32 | 0xFFFFEE64 (-4508) Loc: +0x391C | offset to vtable - +0x2784 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2794 | offset to field `key` (string) - +0x2788 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x278C | offset to field `value` (string) + +0x24C0 | F8 EB FF FF | SOffset32 | 0xFFFFEBF8 (-5128) Loc: +0x38C8 | offset to vtable + +0x24C4 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x24D4 | offset to field `key` (string) + +0x24C8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x24CC | offset to field `value` (string) string (reflection.KeyValue.value): - +0x278C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x2790 | 32 30 | char[2] | 20 | string literal - +0x2792 | 00 | char | 0x00 (0) | string terminator + +0x24CC | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x24D0 | 32 30 | char[2] | 20 | string literal + +0x24D2 | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x2794 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x2798 | 69 64 | char[2] | id | string literal - +0x279A | 00 | char | 0x00 (0) | string terminator + +0x24D4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x24D8 | 69 64 | char[2] | id | string literal + +0x24DA | 00 | char | 0x00 (0) | string terminator table (reflection.KeyValue): - +0x279C | 80 EE FF FF | SOffset32 | 0xFFFFEE80 (-4480) Loc: +0x391C | offset to vtable - +0x27A0 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x27B8 | offset to field `key` (string) - +0x27A4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x27A8 | offset to field `value` (string) + +0x24DC | 14 EC FF FF | SOffset32 | 0xFFFFEC14 (-5100) Loc: +0x38C8 | offset to vtable + +0x24E0 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x24F8 | offset to field `key` (string) + +0x24E4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x24E8 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x27A8 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string - +0x27AC | 66 6E 76 31 61 5F 33 32 | char[8] | fnv1a_32 | string literal - +0x27B4 | 00 | char | 0x00 (0) | string terminator + +0x24E8 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string + +0x24EC | 66 6E 76 31 61 5F 33 32 | char[8] | fnv1a_32 | string literal + +0x24F4 | 00 | char | 0x00 (0) | string terminator padding: - +0x27B5 | 00 00 00 | uint8_t[3] | ... | padding + +0x24F5 | 00 00 00 | uint8_t[3] | ... | padding string (reflection.KeyValue.key): - +0x27B8 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string - +0x27BC | 68 61 73 68 | char[4] | hash | string literal - +0x27C0 | 00 | char | 0x00 (0) | string terminator + +0x24F8 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string + +0x24FC | 68 61 73 68 | char[4] | hash | string literal + +0x2500 | 00 | char | 0x00 (0) | string terminator padding: - +0x27C1 | 00 00 00 | uint8_t[3] | ... | padding + +0x2501 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Type): - +0x27C4 | 70 EA FF FF | SOffset32 | 0xFFFFEA70 (-5520) Loc: +0x3D54 | offset to vtable - +0x27C8 | 00 00 00 | uint8_t[3] | ... | padding - +0x27CB | 07 | uint8_t | 0x07 (7) | table field `base_type` (Byte) - +0x27CC | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x2504 | 28 EC FF FF | SOffset32 | 0xFFFFEC28 (-5080) Loc: +0x38DC | offset to vtable + +0x2508 | 00 00 00 | uint8_t[3] | ... | padding + +0x250B | 07 | uint8_t | 0x07 (7) | table field `base_type` (Byte) + +0x250C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x27D0 | 11 00 00 00 | uint32_t | 0x00000011 (17) | length of string - +0x27D4 | 74 65 73 74 68 61 73 68 | char[17] | testhash | string literal - +0x27DC | 73 33 32 5F 66 6E 76 31 | | s32_fnv1 - +0x27E4 | 61 | | a - +0x27E5 | 00 | char | 0x00 (0) | string terminator + +0x2510 | 11 00 00 00 | uint32_t | 0x00000011 (17) | length of string + +0x2514 | 74 65 73 74 68 61 73 68 | char[17] | testhash | string literal + +0x251C | 73 33 32 5F 66 6E 76 31 | | s32_fnv1 + +0x2524 | 61 | | a + +0x2525 | 00 | char | 0x00 (0) | string terminator padding: - +0x27E6 | 00 00 | uint8_t[2] | .. | padding + +0x2526 | 00 00 | uint8_t[2] | .. | padding table (reflection.Field): - +0x27E8 | F6 F9 FF FF | SOffset32 | 0xFFFFF9F6 (-1546) Loc: +0x2DF2 | offset to vtable - +0x27EC | 13 00 | uint16_t | 0x0013 (19) | table field `id` (UShort) - +0x27EE | 2A 00 | uint16_t | 0x002A (42) | table field `offset` (UShort) - +0x27F0 | 70 00 00 00 | UOffset32 | 0x00000070 (112) Loc: +0x2860 | offset to field `name` (string) - +0x27F4 | 5C 00 00 00 | UOffset32 | 0x0000005C (92) Loc: +0x2850 | offset to field `type` (table) - +0x27F8 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x2804 | offset to field `attributes` (vector) - +0x27FC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2800 | offset to field `documentation` (vector) - -vector (reflection.Field.documentation): - +0x2800 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x2528 | 30 FA FF FF | SOffset32 | 0xFFFFFA30 (-1488) Loc: +0x2AF8 | offset to vtable + +0x252C | 13 00 | uint16_t | 0x0013 (19) | table field `id` (UShort) + +0x252E | 2A 00 | uint16_t | 0x002A (42) | table field `offset` (UShort) + +0x2530 | 68 00 00 00 | UOffset32 | 0x00000068 (104) Loc: +0x2598 | offset to field `name` (string) + +0x2534 | 54 00 00 00 | UOffset32 | 0x00000054 (84) Loc: +0x2588 | offset to field `type` (table) + +0x2538 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x253C | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x2804 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) - +0x2808 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x282C | offset to table[0] - +0x280C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2810 | offset to table[1] + +0x253C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) + +0x2540 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x2564 | offset to table[0] + +0x2544 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2548 | offset to table[1] table (reflection.KeyValue): - +0x2810 | F4 EE FF FF | SOffset32 | 0xFFFFEEF4 (-4364) Loc: +0x391C | offset to vtable - +0x2814 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2824 | offset to field `key` (string) - +0x2818 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x281C | offset to field `value` (string) + +0x2548 | 80 EC FF FF | SOffset32 | 0xFFFFEC80 (-4992) Loc: +0x38C8 | offset to vtable + +0x254C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x255C | offset to field `key` (string) + +0x2550 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2554 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x281C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x2820 | 31 39 | char[2] | 19 | string literal - +0x2822 | 00 | char | 0x00 (0) | string terminator + +0x2554 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2558 | 31 39 | char[2] | 19 | string literal + +0x255A | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x2824 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x2828 | 69 64 | char[2] | id | string literal - +0x282A | 00 | char | 0x00 (0) | string terminator + +0x255C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2560 | 69 64 | char[2] | id | string literal + +0x2562 | 00 | char | 0x00 (0) | string terminator table (reflection.KeyValue): - +0x282C | 10 EF FF FF | SOffset32 | 0xFFFFEF10 (-4336) Loc: +0x391C | offset to vtable - +0x2830 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x2844 | offset to field `key` (string) - +0x2834 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2838 | offset to field `value` (string) + +0x2564 | 9C EC FF FF | SOffset32 | 0xFFFFEC9C (-4964) Loc: +0x38C8 | offset to vtable + +0x2568 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x257C | offset to field `key` (string) + +0x256C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2570 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x2838 | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string - +0x283C | 66 6E 76 31 5F 36 34 | char[7] | fnv1_64 | string literal - +0x2843 | 00 | char | 0x00 (0) | string terminator + +0x2570 | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string + +0x2574 | 66 6E 76 31 5F 36 34 | char[7] | fnv1_64 | string literal + +0x257B | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x2844 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string - +0x2848 | 68 61 73 68 | char[4] | hash | string literal - +0x284C | 00 | char | 0x00 (0) | string terminator + +0x257C | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string + +0x2580 | 68 61 73 68 | char[4] | hash | string literal + +0x2584 | 00 | char | 0x00 (0) | string terminator padding: - +0x284D | 00 00 00 | uint8_t[3] | ... | padding + +0x2585 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Type): - +0x2850 | B4 ED FF FF | SOffset32 | 0xFFFFEDB4 (-4684) Loc: +0x3A9C | offset to vtable - +0x2854 | 00 00 00 | uint8_t[3] | ... | padding - +0x2857 | 0A | uint8_t | 0x0A (10) | table field `base_type` (Byte) - +0x2858 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt) - +0x285C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x2588 | 14 EF FF FF | SOffset32 | 0xFFFFEF14 (-4332) Loc: +0x3674 | offset to vtable + +0x258C | 00 00 00 | uint8_t[3] | ... | padding + +0x258F | 0A | uint8_t | 0x0A (10) | table field `base_type` (Byte) + +0x2590 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt) + +0x2594 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x2860 | 10 00 00 00 | uint32_t | 0x00000010 (16) | length of string - +0x2864 | 74 65 73 74 68 61 73 68 | char[16] | testhash | string literal - +0x286C | 75 36 34 5F 66 6E 76 31 | | u64_fnv1 - +0x2874 | 00 | char | 0x00 (0) | string terminator + +0x2598 | 10 00 00 00 | uint32_t | 0x00000010 (16) | length of string + +0x259C | 74 65 73 74 68 61 73 68 | char[16] | testhash | string literal + +0x25A4 | 75 36 34 5F 66 6E 76 31 | | u64_fnv1 + +0x25AC | 00 | char | 0x00 (0) | string terminator padding: - +0x2875 | 00 00 00 | uint8_t[3] | ... | padding + +0x25AD | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Field): - +0x2878 | 86 FA FF FF | SOffset32 | 0xFFFFFA86 (-1402) Loc: +0x2DF2 | offset to vtable - +0x287C | 12 00 | uint16_t | 0x0012 (18) | table field `id` (UShort) - +0x287E | 28 00 | uint16_t | 0x0028 (40) | table field `offset` (UShort) - +0x2880 | 70 00 00 00 | UOffset32 | 0x00000070 (112) Loc: +0x28F0 | offset to field `name` (string) - +0x2884 | 5C 00 00 00 | UOffset32 | 0x0000005C (92) Loc: +0x28E0 | offset to field `type` (table) - +0x2888 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x2894 | offset to field `attributes` (vector) - +0x288C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2890 | offset to field `documentation` (vector) - -vector (reflection.Field.documentation): - +0x2890 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x25B0 | B8 FA FF FF | SOffset32 | 0xFFFFFAB8 (-1352) Loc: +0x2AF8 | offset to vtable + +0x25B4 | 12 00 | uint16_t | 0x0012 (18) | table field `id` (UShort) + +0x25B6 | 28 00 | uint16_t | 0x0028 (40) | table field `offset` (UShort) + +0x25B8 | 68 00 00 00 | UOffset32 | 0x00000068 (104) Loc: +0x2620 | offset to field `name` (string) + +0x25BC | 54 00 00 00 | UOffset32 | 0x00000054 (84) Loc: +0x2610 | offset to field `type` (table) + +0x25C0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x25C4 | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x2894 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) - +0x2898 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x28BC | offset to table[0] - +0x289C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x28A0 | offset to table[1] + +0x25C4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) + +0x25C8 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x25EC | offset to table[0] + +0x25CC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x25D0 | offset to table[1] table (reflection.KeyValue): - +0x28A0 | 84 EF FF FF | SOffset32 | 0xFFFFEF84 (-4220) Loc: +0x391C | offset to vtable - +0x28A4 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x28B4 | offset to field `key` (string) - +0x28A8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x28AC | offset to field `value` (string) + +0x25D0 | 08 ED FF FF | SOffset32 | 0xFFFFED08 (-4856) Loc: +0x38C8 | offset to vtable + +0x25D4 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x25E4 | offset to field `key` (string) + +0x25D8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x25DC | offset to field `value` (string) string (reflection.KeyValue.value): - +0x28AC | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x28B0 | 31 38 | char[2] | 18 | string literal - +0x28B2 | 00 | char | 0x00 (0) | string terminator + +0x25DC | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x25E0 | 31 38 | char[2] | 18 | string literal + +0x25E2 | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x28B4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x28B8 | 69 64 | char[2] | id | string literal - +0x28BA | 00 | char | 0x00 (0) | string terminator + +0x25E4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x25E8 | 69 64 | char[2] | id | string literal + +0x25EA | 00 | char | 0x00 (0) | string terminator table (reflection.KeyValue): - +0x28BC | A0 EF FF FF | SOffset32 | 0xFFFFEFA0 (-4192) Loc: +0x391C | offset to vtable - +0x28C0 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x28D4 | offset to field `key` (string) - +0x28C4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x28C8 | offset to field `value` (string) + +0x25EC | 24 ED FF FF | SOffset32 | 0xFFFFED24 (-4828) Loc: +0x38C8 | offset to vtable + +0x25F0 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x2604 | offset to field `key` (string) + +0x25F4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x25F8 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x28C8 | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string - +0x28CC | 66 6E 76 31 5F 36 34 | char[7] | fnv1_64 | string literal - +0x28D3 | 00 | char | 0x00 (0) | string terminator + +0x25F8 | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string + +0x25FC | 66 6E 76 31 5F 36 34 | char[7] | fnv1_64 | string literal + +0x2603 | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x28D4 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string - +0x28D8 | 68 61 73 68 | char[4] | hash | string literal - +0x28DC | 00 | char | 0x00 (0) | string terminator + +0x2604 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string + +0x2608 | 68 61 73 68 | char[4] | hash | string literal + +0x260C | 00 | char | 0x00 (0) | string terminator padding: - +0x28DD | 00 00 00 | uint8_t[3] | ... | padding + +0x260D | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Type): - +0x28E0 | 44 EE FF FF | SOffset32 | 0xFFFFEE44 (-4540) Loc: +0x3A9C | offset to vtable - +0x28E4 | 00 00 00 | uint8_t[3] | ... | padding - +0x28E7 | 09 | uint8_t | 0x09 (9) | table field `base_type` (Byte) - +0x28E8 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt) - +0x28EC | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x2610 | 9C EF FF FF | SOffset32 | 0xFFFFEF9C (-4196) Loc: +0x3674 | offset to vtable + +0x2614 | 00 00 00 | uint8_t[3] | ... | padding + +0x2617 | 09 | uint8_t | 0x09 (9) | table field `base_type` (Byte) + +0x2618 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt) + +0x261C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x28F0 | 10 00 00 00 | uint32_t | 0x00000010 (16) | length of string - +0x28F4 | 74 65 73 74 68 61 73 68 | char[16] | testhash | string literal - +0x28FC | 73 36 34 5F 66 6E 76 31 | | s64_fnv1 - +0x2904 | 00 | char | 0x00 (0) | string terminator + +0x2620 | 10 00 00 00 | uint32_t | 0x00000010 (16) | length of string + +0x2624 | 74 65 73 74 68 61 73 68 | char[16] | testhash | string literal + +0x262C | 73 36 34 5F 66 6E 76 31 | | s64_fnv1 + +0x2634 | 00 | char | 0x00 (0) | string terminator padding: - +0x2905 | 00 00 00 | uint8_t[3] | ... | padding + +0x2635 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Field): - +0x2908 | 16 FB FF FF | SOffset32 | 0xFFFFFB16 (-1258) Loc: +0x2DF2 | offset to vtable - +0x290C | 11 00 | uint16_t | 0x0011 (17) | table field `id` (UShort) - +0x290E | 26 00 | uint16_t | 0x0026 (38) | table field `offset` (UShort) - +0x2910 | 6C 00 00 00 | UOffset32 | 0x0000006C (108) Loc: +0x297C | offset to field `name` (string) - +0x2914 | 5C 00 00 00 | UOffset32 | 0x0000005C (92) Loc: +0x2970 | offset to field `type` (table) - +0x2918 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x2924 | offset to field `attributes` (vector) - +0x291C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2920 | offset to field `documentation` (vector) - -vector (reflection.Field.documentation): - +0x2920 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x2638 | 40 FB FF FF | SOffset32 | 0xFFFFFB40 (-1216) Loc: +0x2AF8 | offset to vtable + +0x263C | 11 00 | uint16_t | 0x0011 (17) | table field `id` (UShort) + +0x263E | 26 00 | uint16_t | 0x0026 (38) | table field `offset` (UShort) + +0x2640 | 64 00 00 00 | UOffset32 | 0x00000064 (100) Loc: +0x26A4 | offset to field `name` (string) + +0x2644 | 54 00 00 00 | UOffset32 | 0x00000054 (84) Loc: +0x2698 | offset to field `type` (table) + +0x2648 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x264C | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x2924 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) - +0x2928 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x294C | offset to table[0] - +0x292C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2930 | offset to table[1] + +0x264C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) + +0x2650 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x2674 | offset to table[0] + +0x2654 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2658 | offset to table[1] table (reflection.KeyValue): - +0x2930 | 14 F0 FF FF | SOffset32 | 0xFFFFF014 (-4076) Loc: +0x391C | offset to vtable - +0x2934 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2944 | offset to field `key` (string) - +0x2938 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x293C | offset to field `value` (string) + +0x2658 | 90 ED FF FF | SOffset32 | 0xFFFFED90 (-4720) Loc: +0x38C8 | offset to vtable + +0x265C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x266C | offset to field `key` (string) + +0x2660 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2664 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x293C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x2940 | 31 37 | char[2] | 17 | string literal - +0x2942 | 00 | char | 0x00 (0) | string terminator + +0x2664 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2668 | 31 37 | char[2] | 17 | string literal + +0x266A | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x2944 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x2948 | 69 64 | char[2] | id | string literal - +0x294A | 00 | char | 0x00 (0) | string terminator + +0x266C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2670 | 69 64 | char[2] | id | string literal + +0x2672 | 00 | char | 0x00 (0) | string terminator table (reflection.KeyValue): - +0x294C | 30 F0 FF FF | SOffset32 | 0xFFFFF030 (-4048) Loc: +0x391C | offset to vtable - +0x2950 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x2964 | offset to field `key` (string) - +0x2954 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2958 | offset to field `value` (string) + +0x2674 | AC ED FF FF | SOffset32 | 0xFFFFEDAC (-4692) Loc: +0x38C8 | offset to vtable + +0x2678 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x268C | offset to field `key` (string) + +0x267C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2680 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x2958 | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string - +0x295C | 66 6E 76 31 5F 33 32 | char[7] | fnv1_32 | string literal - +0x2963 | 00 | char | 0x00 (0) | string terminator + +0x2680 | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string + +0x2684 | 66 6E 76 31 5F 33 32 | char[7] | fnv1_32 | string literal + +0x268B | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x2964 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string - +0x2968 | 68 61 73 68 | char[4] | hash | string literal - +0x296C | 00 | char | 0x00 (0) | string terminator + +0x268C | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string + +0x2690 | 68 61 73 68 | char[4] | hash | string literal + +0x2694 | 00 | char | 0x00 (0) | string terminator padding: - +0x296D | 00 00 00 | uint8_t[3] | ... | padding + +0x2695 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Type): - +0x2970 | 1C EC FF FF | SOffset32 | 0xFFFFEC1C (-5092) Loc: +0x3D54 | offset to vtable - +0x2974 | 00 00 00 | uint8_t[3] | ... | padding - +0x2977 | 08 | uint8_t | 0x08 (8) | table field `base_type` (Byte) - +0x2978 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x2698 | BC ED FF FF | SOffset32 | 0xFFFFEDBC (-4676) Loc: +0x38DC | offset to vtable + +0x269C | 00 00 00 | uint8_t[3] | ... | padding + +0x269F | 08 | uint8_t | 0x08 (8) | table field `base_type` (Byte) + +0x26A0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x297C | 10 00 00 00 | uint32_t | 0x00000010 (16) | length of string - +0x2980 | 74 65 73 74 68 61 73 68 | char[16] | testhash | string literal - +0x2988 | 75 33 32 5F 66 6E 76 31 | | u32_fnv1 - +0x2990 | 00 | char | 0x00 (0) | string terminator + +0x26A4 | 10 00 00 00 | uint32_t | 0x00000010 (16) | length of string + +0x26A8 | 74 65 73 74 68 61 73 68 | char[16] | testhash | string literal + +0x26B0 | 75 33 32 5F 66 6E 76 31 | | u32_fnv1 + +0x26B8 | 00 | char | 0x00 (0) | string terminator padding: - +0x2991 | 00 00 00 | uint8_t[3] | ... | padding + +0x26B9 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Field): - +0x2994 | A2 FB FF FF | SOffset32 | 0xFFFFFBA2 (-1118) Loc: +0x2DF2 | offset to vtable - +0x2998 | 10 00 | uint16_t | 0x0010 (16) | table field `id` (UShort) - +0x299A | 24 00 | uint16_t | 0x0024 (36) | table field `offset` (UShort) - +0x299C | 6C 00 00 00 | UOffset32 | 0x0000006C (108) Loc: +0x2A08 | offset to field `name` (string) - +0x29A0 | 5C 00 00 00 | UOffset32 | 0x0000005C (92) Loc: +0x29FC | offset to field `type` (table) - +0x29A4 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x29B0 | offset to field `attributes` (vector) - +0x29A8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x29AC | offset to field `documentation` (vector) - -vector (reflection.Field.documentation): - +0x29AC | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x26BC | C4 FB FF FF | SOffset32 | 0xFFFFFBC4 (-1084) Loc: +0x2AF8 | offset to vtable + +0x26C0 | 10 00 | uint16_t | 0x0010 (16) | table field `id` (UShort) + +0x26C2 | 24 00 | uint16_t | 0x0024 (36) | table field `offset` (UShort) + +0x26C4 | 64 00 00 00 | UOffset32 | 0x00000064 (100) Loc: +0x2728 | offset to field `name` (string) + +0x26C8 | 54 00 00 00 | UOffset32 | 0x00000054 (84) Loc: +0x271C | offset to field `type` (table) + +0x26CC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x26D0 | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x29B0 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) - +0x29B4 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x29D8 | offset to table[0] - +0x29B8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x29BC | offset to table[1] + +0x26D0 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) + +0x26D4 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x26F8 | offset to table[0] + +0x26D8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x26DC | offset to table[1] table (reflection.KeyValue): - +0x29BC | A0 F0 FF FF | SOffset32 | 0xFFFFF0A0 (-3936) Loc: +0x391C | offset to vtable - +0x29C0 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x29D0 | offset to field `key` (string) - +0x29C4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x29C8 | offset to field `value` (string) + +0x26DC | 14 EE FF FF | SOffset32 | 0xFFFFEE14 (-4588) Loc: +0x38C8 | offset to vtable + +0x26E0 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x26F0 | offset to field `key` (string) + +0x26E4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x26E8 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x29C8 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x29CC | 31 36 | char[2] | 16 | string literal - +0x29CE | 00 | char | 0x00 (0) | string terminator + +0x26E8 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x26EC | 31 36 | char[2] | 16 | string literal + +0x26EE | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x29D0 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x29D4 | 69 64 | char[2] | id | string literal - +0x29D6 | 00 | char | 0x00 (0) | string terminator + +0x26F0 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x26F4 | 69 64 | char[2] | id | string literal + +0x26F6 | 00 | char | 0x00 (0) | string terminator table (reflection.KeyValue): - +0x29D8 | BC F0 FF FF | SOffset32 | 0xFFFFF0BC (-3908) Loc: +0x391C | offset to vtable - +0x29DC | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x29F0 | offset to field `key` (string) - +0x29E0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x29E4 | offset to field `value` (string) + +0x26F8 | 30 EE FF FF | SOffset32 | 0xFFFFEE30 (-4560) Loc: +0x38C8 | offset to vtable + +0x26FC | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x2710 | offset to field `key` (string) + +0x2700 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2704 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x29E4 | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string - +0x29E8 | 66 6E 76 31 5F 33 32 | char[7] | fnv1_32 | string literal - +0x29EF | 00 | char | 0x00 (0) | string terminator + +0x2704 | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string + +0x2708 | 66 6E 76 31 5F 33 32 | char[7] | fnv1_32 | string literal + +0x270F | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x29F0 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string - +0x29F4 | 68 61 73 68 | char[4] | hash | string literal - +0x29F8 | 00 | char | 0x00 (0) | string terminator + +0x2710 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string + +0x2714 | 68 61 73 68 | char[4] | hash | string literal + +0x2718 | 00 | char | 0x00 (0) | string terminator padding: - +0x29F9 | 00 00 00 | uint8_t[3] | ... | padding + +0x2719 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Type): - +0x29FC | A8 EC FF FF | SOffset32 | 0xFFFFECA8 (-4952) Loc: +0x3D54 | offset to vtable - +0x2A00 | 00 00 00 | uint8_t[3] | ... | padding - +0x2A03 | 07 | uint8_t | 0x07 (7) | table field `base_type` (Byte) - +0x2A04 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x271C | 40 EE FF FF | SOffset32 | 0xFFFFEE40 (-4544) Loc: +0x38DC | offset to vtable + +0x2720 | 00 00 00 | uint8_t[3] | ... | padding + +0x2723 | 07 | uint8_t | 0x07 (7) | table field `base_type` (Byte) + +0x2724 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x2A08 | 10 00 00 00 | uint32_t | 0x00000010 (16) | length of string - +0x2A0C | 74 65 73 74 68 61 73 68 | char[16] | testhash | string literal - +0x2A14 | 73 33 32 5F 66 6E 76 31 | | s32_fnv1 - +0x2A1C | 00 | char | 0x00 (0) | string terminator + +0x2728 | 10 00 00 00 | uint32_t | 0x00000010 (16) | length of string + +0x272C | 74 65 73 74 68 61 73 68 | char[16] | testhash | string literal + +0x2734 | 73 33 32 5F 66 6E 76 31 | | s32_fnv1 + +0x273C | 00 | char | 0x00 (0) | string terminator padding: - +0x2A1D | 00 00 00 | uint8_t[3] | ... | padding + +0x273D | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Field): - +0x2A20 | 2E FC FF FF | SOffset32 | 0xFFFFFC2E (-978) Loc: +0x2DF2 | offset to vtable - +0x2A24 | 0F 00 | uint16_t | 0x000F (15) | table field `id` (UShort) - +0x2A26 | 22 00 | uint16_t | 0x0022 (34) | table field `offset` (UShort) - +0x2A28 | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: +0x2A70 | offset to field `name` (string) - +0x2A2C | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x2A60 | offset to field `type` (table) - +0x2A30 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x2A3C | offset to field `attributes` (vector) - +0x2A34 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2A38 | offset to field `documentation` (vector) - -vector (reflection.Field.documentation): - +0x2A38 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x2740 | 48 FC FF FF | SOffset32 | 0xFFFFFC48 (-952) Loc: +0x2AF8 | offset to vtable + +0x2744 | 0F 00 | uint16_t | 0x000F (15) | table field `id` (UShort) + +0x2746 | 22 00 | uint16_t | 0x0022 (34) | table field `offset` (UShort) + +0x2748 | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: +0x2788 | offset to field `name` (string) + +0x274C | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: +0x2778 | offset to field `type` (table) + +0x2750 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2754 | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x2A3C | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x2A40 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2A44 | offset to table[0] + +0x2754 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x2758 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x275C | offset to table[0] table (reflection.KeyValue): - +0x2A44 | 28 F1 FF FF | SOffset32 | 0xFFFFF128 (-3800) Loc: +0x391C | offset to vtable - +0x2A48 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2A58 | offset to field `key` (string) - +0x2A4C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2A50 | offset to field `value` (string) + +0x275C | 94 EE FF FF | SOffset32 | 0xFFFFEE94 (-4460) Loc: +0x38C8 | offset to vtable + +0x2760 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2770 | offset to field `key` (string) + +0x2764 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2768 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x2A50 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x2A54 | 31 35 | char[2] | 15 | string literal - +0x2A56 | 00 | char | 0x00 (0) | string terminator + +0x2768 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x276C | 31 35 | char[2] | 15 | string literal + +0x276E | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x2A58 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x2A5C | 69 64 | char[2] | id | string literal - +0x2A5E | 00 | char | 0x00 (0) | string terminator + +0x2770 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2774 | 69 64 | char[2] | id | string literal + +0x2776 | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x2A60 | C4 EF FF FF | SOffset32 | 0xFFFFEFC4 (-4156) Loc: +0x3A9C | offset to vtable - +0x2A64 | 00 00 00 | uint8_t[3] | ... | padding - +0x2A67 | 02 | uint8_t | 0x02 (2) | table field `base_type` (Byte) - +0x2A68 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) - +0x2A6C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x2778 | 04 F1 FF FF | SOffset32 | 0xFFFFF104 (-3836) Loc: +0x3674 | offset to vtable + +0x277C | 00 00 00 | uint8_t[3] | ... | padding + +0x277F | 02 | uint8_t | 0x02 (2) | table field `base_type` (Byte) + +0x2780 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) + +0x2784 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x2A70 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string - +0x2A74 | 74 65 73 74 62 6F 6F 6C | char[8] | testbool | string literal - +0x2A7C | 00 | char | 0x00 (0) | string terminator + +0x2788 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string + +0x278C | 74 65 73 74 62 6F 6F 6C | char[8] | testbool | string literal + +0x2794 | 00 | char | 0x00 (0) | string terminator padding: - +0x2A7D | 00 00 00 | uint8_t[3] | ... | padding + +0x2795 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Field): - +0x2A80 | A4 FB FF FF | SOffset32 | 0xFFFFFBA4 (-1116) Loc: +0x2EDC | offset to vtable - +0x2A84 | 00 00 00 | uint8_t[3] | ... | padding - +0x2A87 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x2A88 | 0E 00 | uint16_t | 0x000E (14) | table field `id` (UShort) - +0x2A8A | 20 00 | uint16_t | 0x0020 (32) | table field `offset` (UShort) - +0x2A8C | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: +0x2AD4 | offset to field `name` (string) - +0x2A90 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x2AC4 | offset to field `type` (table) - +0x2A94 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x2AA0 | offset to field `attributes` (vector) - +0x2A98 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2A9C | offset to field `documentation` (vector) - -vector (reflection.Field.documentation): - +0x2A9C | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x2798 | B0 FB FF FF | SOffset32 | 0xFFFFFBB0 (-1104) Loc: +0x2BE8 | offset to vtable + +0x279C | 00 00 00 | uint8_t[3] | ... | padding + +0x279F | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x27A0 | 0E 00 | uint16_t | 0x000E (14) | table field `id` (UShort) + +0x27A2 | 20 00 | uint16_t | 0x0020 (32) | table field `offset` (UShort) + +0x27A4 | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: +0x27E4 | offset to field `name` (string) + +0x27A8 | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: +0x27D4 | offset to field `type` (table) + +0x27AC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x27B0 | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x2AA0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x2AA4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2AA8 | offset to table[0] + +0x27B0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x27B4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x27B8 | offset to table[0] table (reflection.KeyValue): - +0x2AA8 | 8C F1 FF FF | SOffset32 | 0xFFFFF18C (-3700) Loc: +0x391C | offset to vtable - +0x2AAC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2ABC | offset to field `key` (string) - +0x2AB0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2AB4 | offset to field `value` (string) + +0x27B8 | F0 EE FF FF | SOffset32 | 0xFFFFEEF0 (-4368) Loc: +0x38C8 | offset to vtable + +0x27BC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x27CC | offset to field `key` (string) + +0x27C0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x27C4 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x2AB4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x2AB8 | 31 34 | char[2] | 14 | string literal - +0x2ABA | 00 | char | 0x00 (0) | string terminator + +0x27C4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x27C8 | 31 34 | char[2] | 14 | string literal + +0x27CA | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x2ABC | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x2AC0 | 69 64 | char[2] | id | string literal - +0x2AC2 | 00 | char | 0x00 (0) | string terminator + +0x27CC | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x27D0 | 69 64 | char[2] | id | string literal + +0x27D2 | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x2AC4 | 54 EE FF FF | SOffset32 | 0xFFFFEE54 (-4524) Loc: +0x3C70 | offset to vtable - +0x2AC8 | 00 00 00 | uint8_t[3] | ... | padding - +0x2ACB | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) - +0x2ACC | 03 00 00 00 | uint32_t | 0x00000003 (3) | table field `index` (Int) - +0x2AD0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x27D4 | BC EF FF FF | SOffset32 | 0xFFFFEFBC (-4164) Loc: +0x3818 | offset to vtable + +0x27D8 | 00 00 00 | uint8_t[3] | ... | padding + +0x27DB | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) + +0x27DC | 03 00 00 00 | uint32_t | 0x00000003 (3) | table field `index` (Int) + +0x27E0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x2AD4 | 09 00 00 00 | uint32_t | 0x00000009 (9) | length of string - +0x2AD8 | 74 65 73 74 65 6D 70 74 | char[9] | testempt | string literal - +0x2AE0 | 79 | | y - +0x2AE1 | 00 | char | 0x00 (0) | string terminator + +0x27E4 | 09 00 00 00 | uint32_t | 0x00000009 (9) | length of string + +0x27E8 | 74 65 73 74 65 6D 70 74 | char[9] | testempt | string literal + +0x27F0 | 79 | | y + +0x27F1 | 00 | char | 0x00 (0) | string terminator padding: - +0x2AE2 | 00 00 | uint8_t[2] | .. | padding + +0x27F2 | 00 00 | uint8_t[2] | .. | padding table (reflection.Field): - +0x2AE4 | 08 FC FF FF | SOffset32 | 0xFFFFFC08 (-1016) Loc: +0x2EDC | offset to vtable - +0x2AE8 | 00 00 00 | uint8_t[3] | ... | padding - +0x2AEB | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x2AEC | 0D 00 | uint16_t | 0x000D (13) | table field `id` (UShort) - +0x2AEE | 1E 00 | uint16_t | 0x001E (30) | table field `offset` (UShort) - +0x2AF0 | 78 00 00 00 | UOffset32 | 0x00000078 (120) Loc: +0x2B68 | offset to field `name` (string) - +0x2AF4 | 68 00 00 00 | UOffset32 | 0x00000068 (104) Loc: +0x2B5C | offset to field `type` (table) - +0x2AF8 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x2B04 | offset to field `attributes` (vector) - +0x2AFC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2B00 | offset to field `documentation` (vector) - -vector (reflection.Field.documentation): - +0x2B00 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x27F4 | 0C FC FF FF | SOffset32 | 0xFFFFFC0C (-1012) Loc: +0x2BE8 | offset to vtable + +0x27F8 | 00 00 00 | uint8_t[3] | ... | padding + +0x27FB | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x27FC | 0D 00 | uint16_t | 0x000D (13) | table field `id` (UShort) + +0x27FE | 1E 00 | uint16_t | 0x001E (30) | table field `offset` (UShort) + +0x2800 | 70 00 00 00 | UOffset32 | 0x00000070 (112) Loc: +0x2870 | offset to field `name` (string) + +0x2804 | 60 00 00 00 | UOffset32 | 0x00000060 (96) Loc: +0x2864 | offset to field `type` (table) + +0x2808 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x280C | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x2B04 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) - +0x2B08 | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: +0x2B40 | offset to table[0] - +0x2B0C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2B10 | offset to table[1] + +0x280C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) + +0x2810 | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: +0x2848 | offset to table[0] + +0x2814 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2818 | offset to table[1] table (reflection.KeyValue): - +0x2B10 | F4 F1 FF FF | SOffset32 | 0xFFFFF1F4 (-3596) Loc: +0x391C | offset to vtable - +0x2B14 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x2B28 | offset to field `key` (string) - +0x2B18 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2B1C | offset to field `value` (string) + +0x2818 | 50 EF FF FF | SOffset32 | 0xFFFFEF50 (-4272) Loc: +0x38C8 | offset to vtable + +0x281C | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x2830 | offset to field `key` (string) + +0x2820 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2824 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x2B1C | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string - +0x2B20 | 4D 6F 6E 73 74 65 72 | char[7] | Monster | string literal - +0x2B27 | 00 | char | 0x00 (0) | string terminator + +0x2824 | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string + +0x2828 | 4D 6F 6E 73 74 65 72 | char[7] | Monster | string literal + +0x282F | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x2B28 | 11 00 00 00 | uint32_t | 0x00000011 (17) | length of string - +0x2B2C | 6E 65 73 74 65 64 5F 66 | char[17] | nested_f | string literal - +0x2B34 | 6C 61 74 62 75 66 66 65 | | latbuffe - +0x2B3C | 72 | | r - +0x2B3D | 00 | char | 0x00 (0) | string terminator + +0x2830 | 11 00 00 00 | uint32_t | 0x00000011 (17) | length of string + +0x2834 | 6E 65 73 74 65 64 5F 66 | char[17] | nested_f | string literal + +0x283C | 6C 61 74 62 75 66 66 65 | | latbuffe + +0x2844 | 72 | | r + +0x2845 | 00 | char | 0x00 (0) | string terminator padding: - +0x2B3E | 00 00 | uint8_t[2] | .. | padding + +0x2846 | 00 00 | uint8_t[2] | .. | padding table (reflection.KeyValue): - +0x2B40 | 24 F2 FF FF | SOffset32 | 0xFFFFF224 (-3548) Loc: +0x391C | offset to vtable - +0x2B44 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2B54 | offset to field `key` (string) - +0x2B48 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2B4C | offset to field `value` (string) + +0x2848 | 80 EF FF FF | SOffset32 | 0xFFFFEF80 (-4224) Loc: +0x38C8 | offset to vtable + +0x284C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x285C | offset to field `key` (string) + +0x2850 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2854 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x2B4C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x2B50 | 31 33 | char[2] | 13 | string literal - +0x2B52 | 00 | char | 0x00 (0) | string terminator + +0x2854 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2858 | 31 33 | char[2] | 13 | string literal + +0x285A | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x2B54 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x2B58 | 69 64 | char[2] | id | string literal - +0x2B5A | 00 | char | 0x00 (0) | string terminator + +0x285C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2860 | 69 64 | char[2] | id | string literal + +0x2862 | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x2B5C | 20 FC FF FF | SOffset32 | 0xFFFFFC20 (-992) Loc: +0x2F3C | offset to vtable - +0x2B60 | 00 00 | uint8_t[2] | .. | padding - +0x2B62 | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) - +0x2B63 | 04 | uint8_t | 0x04 (4) | table field `element` (Byte) - +0x2B64 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x2864 | 24 FC FF FF | SOffset32 | 0xFFFFFC24 (-988) Loc: +0x2C40 | offset to vtable + +0x2868 | 00 00 | uint8_t[2] | .. | padding + +0x286A | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) + +0x286B | 04 | uint8_t | 0x04 (4) | table field `element` (Byte) + +0x286C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x2B68 | 14 00 00 00 | uint32_t | 0x00000014 (20) | length of string - +0x2B6C | 74 65 73 74 6E 65 73 74 | char[20] | testnest | string literal - +0x2B74 | 65 64 66 6C 61 74 62 75 | | edflatbu - +0x2B7C | 66 66 65 72 | | ffer - +0x2B80 | 00 | char | 0x00 (0) | string terminator + +0x2870 | 14 00 00 00 | uint32_t | 0x00000014 (20) | length of string + +0x2874 | 74 65 73 74 6E 65 73 74 | char[20] | testnest | string literal + +0x287C | 65 64 66 6C 61 74 62 75 | | edflatbu + +0x2884 | 66 66 65 72 | | ffer + +0x2888 | 00 | char | 0x00 (0) | string terminator padding: - +0x2B81 | 00 00 00 | uint8_t[3] | ... | padding + +0x2889 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Field): - +0x2B84 | A8 FC FF FF | SOffset32 | 0xFFFFFCA8 (-856) Loc: +0x2EDC | offset to vtable - +0x2B88 | 00 00 00 | uint8_t[3] | ... | padding - +0x2B8B | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x2B8C | 0C 00 | uint16_t | 0x000C (12) | table field `id` (UShort) - +0x2B8E | 1C 00 | uint16_t | 0x001C (28) | table field `offset` (UShort) - +0x2B90 | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: +0x2BD8 | offset to field `name` (string) - +0x2B94 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x2BC8 | offset to field `type` (table) - +0x2B98 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x2BA4 | offset to field `attributes` (vector) - +0x2B9C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2BA0 | offset to field `documentation` (vector) - -vector (reflection.Field.documentation): - +0x2BA0 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x288C | A4 FC FF FF | SOffset32 | 0xFFFFFCA4 (-860) Loc: +0x2BE8 | offset to vtable + +0x2890 | 00 00 00 | uint8_t[3] | ... | padding + +0x2893 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x2894 | 0C 00 | uint16_t | 0x000C (12) | table field `id` (UShort) + +0x2896 | 1C 00 | uint16_t | 0x001C (28) | table field `offset` (UShort) + +0x2898 | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: +0x28D8 | offset to field `name` (string) + +0x289C | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: +0x28C8 | offset to field `type` (table) + +0x28A0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x28A4 | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x2BA4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x2BA8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2BAC | offset to table[0] + +0x28A4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x28A8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x28AC | offset to table[0] table (reflection.KeyValue): - +0x2BAC | 90 F2 FF FF | SOffset32 | 0xFFFFF290 (-3440) Loc: +0x391C | offset to vtable - +0x2BB0 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2BC0 | offset to field `key` (string) - +0x2BB4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2BB8 | offset to field `value` (string) + +0x28AC | E4 EF FF FF | SOffset32 | 0xFFFFEFE4 (-4124) Loc: +0x38C8 | offset to vtable + +0x28B0 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x28C0 | offset to field `key` (string) + +0x28B4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x28B8 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x2BB8 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x2BBC | 31 32 | char[2] | 12 | string literal - +0x2BBE | 00 | char | 0x00 (0) | string terminator + +0x28B8 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x28BC | 31 32 | char[2] | 12 | string literal + +0x28BE | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x2BC0 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x2BC4 | 69 64 | char[2] | id | string literal - +0x2BC6 | 00 | char | 0x00 (0) | string terminator + +0x28C0 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x28C4 | 69 64 | char[2] | id | string literal + +0x28C6 | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x2BC8 | 58 EF FF FF | SOffset32 | 0xFFFFEF58 (-4264) Loc: +0x3C70 | offset to vtable - +0x2BCC | 00 00 00 | uint8_t[3] | ... | padding - +0x2BCF | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) - +0x2BD0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `index` (Int) - +0x2BD4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x28C8 | B0 F0 FF FF | SOffset32 | 0xFFFFF0B0 (-3920) Loc: +0x3818 | offset to vtable + +0x28CC | 00 00 00 | uint8_t[3] | ... | padding + +0x28CF | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) + +0x28D0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `index` (Int) + +0x28D4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x2BD8 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string - +0x2BDC | 65 6E 65 6D 79 | char[5] | enemy | string literal - +0x2BE1 | 00 | char | 0x00 (0) | string terminator + +0x28D8 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string + +0x28DC | 65 6E 65 6D 79 | char[5] | enemy | string literal + +0x28E1 | 00 | char | 0x00 (0) | string terminator padding: - +0x2BE2 | 00 00 | uint8_t[2] | .. | padding + +0x28E2 | 00 00 | uint8_t[2] | .. | padding + +vtable (reflection.Field): + +0x28E4 | 1C 00 | uint16_t | 0x001C (28) | size of this vtable + +0x28E6 | 1C 00 | uint16_t | 0x001C (28) | size of referring table + +0x28E8 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `name` (id: 0) + +0x28EA | 10 00 | VOffset16 | 0x0010 (16) | offset to field `type` (id: 1) + +0x28EC | 08 00 | VOffset16 | 0x0008 (8) | offset to field `id` (id: 2) + +0x28EE | 0A 00 | VOffset16 | 0x000A (10) | offset to field `offset` (id: 3) + +0x28F0 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) (Long) + +0x28F2 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) (Double) + +0x28F4 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) + +0x28F6 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) (Bool) + +0x28F8 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 8) (Bool) + +0x28FA | 14 00 | VOffset16 | 0x0014 (20) | offset to field `attributes` (id: 9) + +0x28FC | 18 00 | VOffset16 | 0x0018 (24) | offset to field `documentation` (id: 10) + +0x28FE | 07 00 | VOffset16 | 0x0007 (7) | offset to field `optional` (id: 11) table (reflection.Field): - +0x2BE4 | 08 FD FF FF | SOffset32 | 0xFFFFFD08 (-760) Loc: +0x2EDC | offset to vtable - +0x2BE8 | 00 00 00 | uint8_t[3] | ... | padding - +0x2BEB | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x2BEC | 0B 00 | uint16_t | 0x000B (11) | table field `id` (UShort) - +0x2BEE | 1A 00 | uint16_t | 0x001A (26) | table field `offset` (UShort) - +0x2BF0 | B4 00 00 00 | UOffset32 | 0x000000B4 (180) Loc: +0x2CA4 | offset to field `name` (string) - +0x2BF4 | A0 00 00 00 | UOffset32 | 0x000000A0 (160) Loc: +0x2C94 | offset to field `type` (table) - +0x2BF8 | 78 00 00 00 | UOffset32 | 0x00000078 (120) Loc: +0x2C70 | offset to field `attributes` (vector) - +0x2BFC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2C00 | offset to field `documentation` (vector) + +0x2900 | 1C 00 00 00 | SOffset32 | 0x0000001C (28) Loc: +0x28E4 | offset to vtable + +0x2904 | 00 00 00 | uint8_t[3] | ... | padding + +0x2907 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x2908 | 0B 00 | uint16_t | 0x000B (11) | table field `id` (UShort) + +0x290A | 1A 00 | uint16_t | 0x001A (26) | table field `offset` (UShort) + +0x290C | B4 00 00 00 | UOffset32 | 0x000000B4 (180) Loc: +0x29C0 | offset to field `name` (string) + +0x2910 | A0 00 00 00 | UOffset32 | 0x000000A0 (160) Loc: +0x29B0 | offset to field `type` (table) + +0x2914 | 78 00 00 00 | UOffset32 | 0x00000078 (120) Loc: +0x298C | offset to field `attributes` (vector) + +0x2918 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x291C | offset to field `documentation` (vector) vector (reflection.Field.documentation): - +0x2C00 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) - +0x2C04 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: +0x2C20 | offset to string[0] - +0x2C08 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2C0C | offset to string[1] + +0x291C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) + +0x2920 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: +0x293C | offset to string[0] + +0x2924 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2928 | offset to string[1] string (reflection.Field.documentation): - +0x2C0C | 0E 00 00 00 | uint32_t | 0x0000000E (14) | length of string - +0x2C10 | 20 6D 75 6C 74 69 6C 69 | char[14] | multili | string literal - +0x2C18 | 6E 65 20 74 6F 6F | | ne too - +0x2C1E | 00 | char | 0x00 (0) | string terminator + +0x2928 | 0E 00 00 00 | uint32_t | 0x0000000E (14) | length of string + +0x292C | 20 6D 75 6C 74 69 6C 69 | char[14] | multili | string literal + +0x2934 | 6E 65 20 74 6F 6F | | ne too + +0x293A | 00 | char | 0x00 (0) | string terminator string (reflection.Field.documentation): - +0x2C20 | 49 00 00 00 | uint32_t | 0x00000049 (73) | length of string - +0x2C24 | 20 61 6E 20 65 78 61 6D | char[73] | an exam | string literal - +0x2C2C | 70 6C 65 20 64 6F 63 75 | | ple docu - +0x2C34 | 6D 65 6E 74 61 74 69 6F | | mentatio - +0x2C3C | 6E 20 63 6F 6D 6D 65 6E | | n commen - +0x2C44 | 74 3A 20 74 68 69 73 20 | | t: this - +0x2C4C | 77 69 6C 6C 20 65 6E 64 | | will end - +0x2C54 | 20 75 70 20 69 6E 20 74 | | up in t - +0x2C5C | 68 65 20 67 65 6E 65 72 | | he gener - +0x2C64 | 61 74 65 64 20 63 6F 64 | | ated cod - +0x2C6C | 65 | | e - +0x2C6D | 00 | char | 0x00 (0) | string terminator - -padding: - +0x2C6E | 00 00 | uint8_t[2] | .. | padding + +0x293C | 49 00 00 00 | uint32_t | 0x00000049 (73) | length of string + +0x2940 | 20 61 6E 20 65 78 61 6D | char[73] | an exam | string literal + +0x2948 | 70 6C 65 20 64 6F 63 75 | | ple docu + +0x2950 | 6D 65 6E 74 61 74 69 6F | | mentatio + +0x2958 | 6E 20 63 6F 6D 6D 65 6E | | n commen + +0x2960 | 74 3A 20 74 68 69 73 20 | | t: this + +0x2968 | 77 69 6C 6C 20 65 6E 64 | | will end + +0x2970 | 20 75 70 20 69 6E 20 74 | | up in t + +0x2978 | 68 65 20 67 65 6E 65 72 | | he gener + +0x2980 | 61 74 65 64 20 63 6F 64 | | ated cod + +0x2988 | 65 | | e + +0x2989 | 00 | char | 0x00 (0) | string terminator + +padding: + +0x298A | 00 00 | uint8_t[2] | .. | padding vector (reflection.Field.attributes): - +0x2C70 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x2C74 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2C78 | offset to table[0] + +0x298C | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x2990 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2994 | offset to table[0] table (reflection.KeyValue): - +0x2C78 | 5C F3 FF FF | SOffset32 | 0xFFFFF35C (-3236) Loc: +0x391C | offset to vtable - +0x2C7C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2C8C | offset to field `key` (string) - +0x2C80 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2C84 | offset to field `value` (string) + +0x2994 | CC F0 FF FF | SOffset32 | 0xFFFFF0CC (-3892) Loc: +0x38C8 | offset to vtable + +0x2998 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x29A8 | offset to field `key` (string) + +0x299C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x29A0 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x2C84 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x2C88 | 31 31 | char[2] | 11 | string literal - +0x2C8A | 00 | char | 0x00 (0) | string terminator + +0x29A0 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x29A4 | 31 31 | char[2] | 11 | string literal + +0x29A6 | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x2C8C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x2C90 | 69 64 | char[2] | id | string literal - +0x2C92 | 00 | char | 0x00 (0) | string terminator + +0x29A8 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x29AC | 69 64 | char[2] | id | string literal + +0x29AE | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x2C94 | 2C FF FF FF | SOffset32 | 0xFFFFFF2C (-212) Loc: +0x2D68 | offset to vtable - +0x2C98 | 00 00 | uint8_t[2] | .. | padding - +0x2C9A | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) - +0x2C9B | 0F | uint8_t | 0x0F (15) | table field `element` (Byte) - +0x2C9C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `index` (Int) - +0x2CA0 | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `element_size` (UInt) + +0x29B0 | 3C FF FF FF | SOffset32 | 0xFFFFFF3C (-196) Loc: +0x2A74 | offset to vtable + +0x29B4 | 00 00 | uint8_t[2] | .. | padding + +0x29B6 | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) + +0x29B7 | 0F | uint8_t | 0x0F (15) | table field `element` (Byte) + +0x29B8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `index` (Int) + +0x29BC | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `element_size` (UInt) string (reflection.Field.name): - +0x2CA4 | 11 00 00 00 | uint32_t | 0x00000011 (17) | length of string - +0x2CA8 | 74 65 73 74 61 72 72 61 | char[17] | testarra | string literal - +0x2CB0 | 79 6F 66 74 61 62 6C 65 | | yoftable - +0x2CB8 | 73 | | s - +0x2CB9 | 00 | char | 0x00 (0) | string terminator + +0x29C0 | 11 00 00 00 | uint32_t | 0x00000011 (17) | length of string + +0x29C4 | 74 65 73 74 61 72 72 61 | char[17] | testarra | string literal + +0x29CC | 79 6F 66 74 61 62 6C 65 | | yoftable + +0x29D4 | 73 | | s + +0x29D5 | 00 | char | 0x00 (0) | string terminator padding: - +0x2CBA | 00 00 | uint8_t[2] | .. | padding + +0x29D6 | 00 00 | uint8_t[2] | .. | padding table (reflection.Field): - +0x2CBC | E0 FD FF FF | SOffset32 | 0xFFFFFDE0 (-544) Loc: +0x2EDC | offset to vtable - +0x2CC0 | 00 00 00 | uint8_t[3] | ... | padding - +0x2CC3 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x2CC4 | 0A 00 | uint16_t | 0x000A (10) | table field `id` (UShort) - +0x2CC6 | 18 00 | uint16_t | 0x0018 (24) | table field `offset` (UShort) - +0x2CC8 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x2D0C | offset to field `name` (string) - +0x2CCC | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x2D00 | offset to field `type` (table) - +0x2CD0 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x2CDC | offset to field `attributes` (vector) - +0x2CD4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2CD8 | offset to field `documentation` (vector) - -vector (reflection.Field.documentation): - +0x2CD8 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x29D8 | F0 FD FF FF | SOffset32 | 0xFFFFFDF0 (-528) Loc: +0x2BE8 | offset to vtable + +0x29DC | 00 00 00 | uint8_t[3] | ... | padding + +0x29DF | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x29E0 | 0A 00 | uint16_t | 0x000A (10) | table field `id` (UShort) + +0x29E2 | 18 00 | uint16_t | 0x0018 (24) | table field `offset` (UShort) + +0x29E4 | 3C 00 00 00 | UOffset32 | 0x0000003C (60) Loc: +0x2A20 | offset to field `name` (string) + +0x29E8 | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: +0x2A14 | offset to field `type` (table) + +0x29EC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x29F0 | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x2CDC | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x2CE0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2CE4 | offset to table[0] + +0x29F0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x29F4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x29F8 | offset to table[0] table (reflection.KeyValue): - +0x2CE4 | C8 F3 FF FF | SOffset32 | 0xFFFFF3C8 (-3128) Loc: +0x391C | offset to vtable - +0x2CE8 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2CF8 | offset to field `key` (string) - +0x2CEC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2CF0 | offset to field `value` (string) + +0x29F8 | 30 F1 FF FF | SOffset32 | 0xFFFFF130 (-3792) Loc: +0x38C8 | offset to vtable + +0x29FC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2A0C | offset to field `key` (string) + +0x2A00 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2A04 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x2CF0 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x2CF4 | 31 30 | char[2] | 10 | string literal - +0x2CF6 | 00 | char | 0x00 (0) | string terminator + +0x2A04 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2A08 | 31 30 | char[2] | 10 | string literal + +0x2A0A | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x2CF8 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x2CFC | 69 64 | char[2] | id | string literal - +0x2CFE | 00 | char | 0x00 (0) | string terminator + +0x2A0C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2A10 | 69 64 | char[2] | id | string literal + +0x2A12 | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x2D00 | C4 FD FF FF | SOffset32 | 0xFFFFFDC4 (-572) Loc: +0x2F3C | offset to vtable - +0x2D04 | 00 00 | uint8_t[2] | .. | padding - +0x2D06 | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) - +0x2D07 | 0D | uint8_t | 0x0D (13) | table field `element` (Byte) - +0x2D08 | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `element_size` (UInt) + +0x2A14 | D4 FD FF FF | SOffset32 | 0xFFFFFDD4 (-556) Loc: +0x2C40 | offset to vtable + +0x2A18 | 00 00 | uint8_t[2] | .. | padding + +0x2A1A | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) + +0x2A1B | 0D | uint8_t | 0x0D (13) | table field `element` (Byte) + +0x2A1C | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `element_size` (UInt) string (reflection.Field.name): - +0x2D0C | 11 00 00 00 | uint32_t | 0x00000011 (17) | length of string - +0x2D10 | 74 65 73 74 61 72 72 61 | char[17] | testarra | string literal - +0x2D18 | 79 6F 66 73 74 72 69 6E | | yofstrin - +0x2D20 | 67 | | g - +0x2D21 | 00 | char | 0x00 (0) | string terminator + +0x2A20 | 11 00 00 00 | uint32_t | 0x00000011 (17) | length of string + +0x2A24 | 74 65 73 74 61 72 72 61 | char[17] | testarra | string literal + +0x2A2C | 79 6F 66 73 74 72 69 6E | | yofstrin + +0x2A34 | 67 | | g + +0x2A35 | 00 | char | 0x00 (0) | string terminator padding: - +0x2D22 | 00 00 | uint8_t[2] | .. | padding + +0x2A36 | 00 00 | uint8_t[2] | .. | padding table (reflection.Field): - +0x2D24 | 48 FE FF FF | SOffset32 | 0xFFFFFE48 (-440) Loc: +0x2EDC | offset to vtable - +0x2D28 | 00 00 00 | uint8_t[3] | ... | padding - +0x2D2B | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x2D2C | 09 00 | uint16_t | 0x0009 (9) | table field `id` (UShort) - +0x2D2E | 16 00 | uint16_t | 0x0016 (22) | table field `offset` (UShort) - +0x2D30 | 58 00 00 00 | UOffset32 | 0x00000058 (88) Loc: +0x2D88 | offset to field `name` (string) - +0x2D34 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x2D78 | offset to field `type` (table) - +0x2D38 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x2D44 | offset to field `attributes` (vector) - +0x2D3C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2D40 | offset to field `documentation` (vector) - -vector (reflection.Field.documentation): - +0x2D40 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x2A38 | 50 FE FF FF | SOffset32 | 0xFFFFFE50 (-432) Loc: +0x2BE8 | offset to vtable + +0x2A3C | 00 00 00 | uint8_t[3] | ... | padding + +0x2A3F | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x2A40 | 09 00 | uint16_t | 0x0009 (9) | table field `id` (UShort) + +0x2A42 | 16 00 | uint16_t | 0x0016 (22) | table field `offset` (UShort) + +0x2A44 | 50 00 00 00 | UOffset32 | 0x00000050 (80) Loc: +0x2A94 | offset to field `name` (string) + +0x2A48 | 3C 00 00 00 | UOffset32 | 0x0000003C (60) Loc: +0x2A84 | offset to field `type` (table) + +0x2A4C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2A50 | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x2D44 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x2D48 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2D4C | offset to table[0] + +0x2A50 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x2A54 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2A58 | offset to table[0] table (reflection.KeyValue): - +0x2D4C | 30 F4 FF FF | SOffset32 | 0xFFFFF430 (-3024) Loc: +0x391C | offset to vtable - +0x2D50 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2D60 | offset to field `key` (string) - +0x2D54 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2D58 | offset to field `value` (string) + +0x2A58 | 90 F1 FF FF | SOffset32 | 0xFFFFF190 (-3696) Loc: +0x38C8 | offset to vtable + +0x2A5C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2A6C | offset to field `key` (string) + +0x2A60 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2A64 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x2D58 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x2D5C | 39 | char[1] | 9 | string literal - +0x2D5D | 00 | char | 0x00 (0) | string terminator + +0x2A64 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x2A68 | 39 | char[1] | 9 | string literal + +0x2A69 | 00 | char | 0x00 (0) | string terminator padding: - +0x2D5E | 00 00 | uint8_t[2] | .. | padding + +0x2A6A | 00 00 | uint8_t[2] | .. | padding string (reflection.KeyValue.key): - +0x2D60 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x2D64 | 69 64 | char[2] | id | string literal - +0x2D66 | 00 | char | 0x00 (0) | string terminator + +0x2A6C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2A70 | 69 64 | char[2] | id | string literal + +0x2A72 | 00 | char | 0x00 (0) | string terminator vtable (reflection.Type): - +0x2D68 | 10 00 | uint16_t | 0x0010 (16) | size of this vtable - +0x2D6A | 10 00 | uint16_t | 0x0010 (16) | size of referring table - +0x2D6C | 06 00 | VOffset16 | 0x0006 (6) | offset to field `base_type` (id: 0) - +0x2D6E | 07 00 | VOffset16 | 0x0007 (7) | offset to field `element` (id: 1) - +0x2D70 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `index` (id: 2) - +0x2D72 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `fixed_length` (id: 3) (UShort) - +0x2D74 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `base_size` (id: 4) (UInt) - +0x2D76 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `element_size` (id: 5) + +0x2A74 | 10 00 | uint16_t | 0x0010 (16) | size of this vtable + +0x2A76 | 10 00 | uint16_t | 0x0010 (16) | size of referring table + +0x2A78 | 06 00 | VOffset16 | 0x0006 (6) | offset to field `base_type` (id: 0) + +0x2A7A | 07 00 | VOffset16 | 0x0007 (7) | offset to field `element` (id: 1) + +0x2A7C | 08 00 | VOffset16 | 0x0008 (8) | offset to field `index` (id: 2) + +0x2A7E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `fixed_length` (id: 3) (UShort) + +0x2A80 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `base_size` (id: 4) (UInt) + +0x2A82 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `element_size` (id: 5) table (reflection.Type): - +0x2D78 | 10 00 00 00 | SOffset32 | 0x00000010 (16) Loc: +0x2D68 | offset to vtable - +0x2D7C | 00 00 | uint8_t[2] | .. | padding - +0x2D7E | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) - +0x2D7F | 0F | uint8_t | 0x0F (15) | table field `element` (Byte) - +0x2D80 | 06 00 00 00 | uint32_t | 0x00000006 (6) | table field `index` (Int) - +0x2D84 | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `element_size` (UInt) + +0x2A84 | 10 00 00 00 | SOffset32 | 0x00000010 (16) Loc: +0x2A74 | offset to vtable + +0x2A88 | 00 00 | uint8_t[2] | .. | padding + +0x2A8A | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) + +0x2A8B | 0F | uint8_t | 0x0F (15) | table field `element` (Byte) + +0x2A8C | 06 00 00 00 | uint32_t | 0x00000006 (6) | table field `index` (Int) + +0x2A90 | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `element_size` (UInt) string (reflection.Field.name): - +0x2D88 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string - +0x2D8C | 74 65 73 74 34 | char[5] | test4 | string literal - +0x2D91 | 00 | char | 0x00 (0) | string terminator + +0x2A94 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string + +0x2A98 | 74 65 73 74 34 | char[5] | test4 | string literal + +0x2A9D | 00 | char | 0x00 (0) | string terminator padding: - +0x2D92 | 00 00 | uint8_t[2] | .. | padding + +0x2A9E | 00 00 | uint8_t[2] | .. | padding table (reflection.Field): - +0x2D94 | B8 FE FF FF | SOffset32 | 0xFFFFFEB8 (-328) Loc: +0x2EDC | offset to vtable - +0x2D98 | 00 00 00 | uint8_t[3] | ... | padding - +0x2D9B | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x2D9C | 08 00 | uint16_t | 0x0008 (8) | table field `id` (UShort) - +0x2D9E | 14 00 | uint16_t | 0x0014 (20) | table field `offset` (UShort) - +0x2DA0 | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: +0x2DE8 | offset to field `name` (string) - +0x2DA4 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x2DD8 | offset to field `type` (table) - +0x2DA8 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x2DB4 | offset to field `attributes` (vector) - +0x2DAC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2DB0 | offset to field `documentation` (vector) - -vector (reflection.Field.documentation): - +0x2DB0 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x2AA0 | B8 FE FF FF | SOffset32 | 0xFFFFFEB8 (-328) Loc: +0x2BE8 | offset to vtable + +0x2AA4 | 00 00 00 | uint8_t[3] | ... | padding + +0x2AA7 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x2AA8 | 08 00 | uint16_t | 0x0008 (8) | table field `id` (UShort) + +0x2AAA | 14 00 | uint16_t | 0x0014 (20) | table field `offset` (UShort) + +0x2AAC | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: +0x2AEC | offset to field `name` (string) + +0x2AB0 | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: +0x2ADC | offset to field `type` (table) + +0x2AB4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2AB8 | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x2DB4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x2DB8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2DBC | offset to table[0] + +0x2AB8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x2ABC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2AC0 | offset to table[0] table (reflection.KeyValue): - +0x2DBC | A0 F4 FF FF | SOffset32 | 0xFFFFF4A0 (-2912) Loc: +0x391C | offset to vtable - +0x2DC0 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2DD0 | offset to field `key` (string) - +0x2DC4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2DC8 | offset to field `value` (string) + +0x2AC0 | F8 F1 FF FF | SOffset32 | 0xFFFFF1F8 (-3592) Loc: +0x38C8 | offset to vtable + +0x2AC4 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2AD4 | offset to field `key` (string) + +0x2AC8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2ACC | offset to field `value` (string) string (reflection.KeyValue.value): - +0x2DC8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x2DCC | 38 | char[1] | 8 | string literal - +0x2DCD | 00 | char | 0x00 (0) | string terminator + +0x2ACC | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x2AD0 | 38 | char[1] | 8 | string literal + +0x2AD1 | 00 | char | 0x00 (0) | string terminator padding: - +0x2DCE | 00 00 | uint8_t[2] | .. | padding + +0x2AD2 | 00 00 | uint8_t[2] | .. | padding string (reflection.KeyValue.key): - +0x2DD0 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x2DD4 | 69 64 | char[2] | id | string literal - +0x2DD6 | 00 | char | 0x00 (0) | string terminator + +0x2AD4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2AD8 | 69 64 | char[2] | id | string literal + +0x2ADA | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x2DD8 | 68 F1 FF FF | SOffset32 | 0xFFFFF168 (-3736) Loc: +0x3C70 | offset to vtable - +0x2DDC | 00 00 00 | uint8_t[3] | ... | padding - +0x2DDF | 10 | uint8_t | 0x10 (16) | table field `base_type` (Byte) - +0x2DE0 | 00 00 00 00 | uint32_t | 0x00000000 (0) | table field `index` (Int) - +0x2DE4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x2ADC | C4 F2 FF FF | SOffset32 | 0xFFFFF2C4 (-3388) Loc: +0x3818 | offset to vtable + +0x2AE0 | 00 00 00 | uint8_t[3] | ... | padding + +0x2AE3 | 10 | uint8_t | 0x10 (16) | table field `base_type` (Byte) + +0x2AE4 | 00 00 00 00 | uint32_t | 0x00000000 (0) | table field `index` (Int) + +0x2AE8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x2DE8 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string - +0x2DEC | 74 65 73 74 | char[4] | test | string literal - +0x2DF0 | 00 | char | 0x00 (0) | string terminator + +0x2AEC | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string + +0x2AF0 | 74 65 73 74 | char[4] | test | string literal + +0x2AF4 | 00 | char | 0x00 (0) | string terminator + +padding: + +0x2AF5 | 00 00 00 | uint8_t[3] | ... | padding vtable (reflection.Field): - +0x2DF2 | 1A 00 | uint16_t | 0x001A (26) | size of this vtable - +0x2DF4 | 18 00 | uint16_t | 0x0018 (24) | size of referring table - +0x2DF6 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0) - +0x2DF8 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `type` (id: 1) - +0x2DFA | 04 00 | VOffset16 | 0x0004 (4) | offset to field `id` (id: 2) - +0x2DFC | 06 00 | VOffset16 | 0x0006 (6) | offset to field `offset` (id: 3) - +0x2DFE | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) (Long) - +0x2E00 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) (Double) - +0x2E02 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) - +0x2E04 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) (Bool) - +0x2E06 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 8) (Bool) - +0x2E08 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `attributes` (id: 9) - +0x2E0A | 14 00 | VOffset16 | 0x0014 (20) | offset to field `documentation` (id: 10) + +0x2AF8 | 18 00 | uint16_t | 0x0018 (24) | size of this vtable + +0x2AFA | 14 00 | uint16_t | 0x0014 (20) | size of referring table + +0x2AFC | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0) + +0x2AFE | 0C 00 | VOffset16 | 0x000C (12) | offset to field `type` (id: 1) + +0x2B00 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `id` (id: 2) + +0x2B02 | 06 00 | VOffset16 | 0x0006 (6) | offset to field `offset` (id: 3) + +0x2B04 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) (Long) + +0x2B06 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) (Double) + +0x2B08 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) + +0x2B0A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) (Bool) + +0x2B0C | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 8) (Bool) + +0x2B0E | 10 00 | VOffset16 | 0x0010 (16) | offset to field `attributes` (id: 9) table (reflection.Field): - +0x2E0C | 1A 00 00 00 | SOffset32 | 0x0000001A (26) Loc: +0x2DF2 | offset to vtable - +0x2E10 | 07 00 | uint16_t | 0x0007 (7) | table field `id` (UShort) - +0x2E12 | 12 00 | uint16_t | 0x0012 (18) | table field `offset` (UShort) - +0x2E14 | 4C 00 00 00 | UOffset32 | 0x0000004C (76) Loc: +0x2E60 | offset to field `name` (string) - +0x2E18 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x2E4C | offset to field `type` (table) - +0x2E1C | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x2E28 | offset to field `attributes` (vector) - +0x2E20 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2E24 | offset to field `documentation` (vector) - -vector (reflection.Field.documentation): - +0x2E24 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x2B10 | 18 00 00 00 | SOffset32 | 0x00000018 (24) Loc: +0x2AF8 | offset to vtable + +0x2B14 | 07 00 | uint16_t | 0x0007 (7) | table field `id` (UShort) + +0x2B16 | 12 00 | uint16_t | 0x0012 (18) | table field `offset` (UShort) + +0x2B18 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x2B5C | offset to field `name` (string) + +0x2B1C | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: +0x2B48 | offset to field `type` (table) + +0x2B20 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2B24 | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x2E28 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x2E2C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2E30 | offset to table[0] + +0x2B24 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x2B28 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2B2C | offset to table[0] table (reflection.KeyValue): - +0x2E30 | 14 F5 FF FF | SOffset32 | 0xFFFFF514 (-2796) Loc: +0x391C | offset to vtable - +0x2E34 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2E44 | offset to field `key` (string) - +0x2E38 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2E3C | offset to field `value` (string) + +0x2B2C | 64 F2 FF FF | SOffset32 | 0xFFFFF264 (-3484) Loc: +0x38C8 | offset to vtable + +0x2B30 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2B40 | offset to field `key` (string) + +0x2B34 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2B38 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x2E3C | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x2E40 | 37 | char[1] | 7 | string literal - +0x2E41 | 00 | char | 0x00 (0) | string terminator + +0x2B38 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x2B3C | 37 | char[1] | 7 | string literal + +0x2B3D | 00 | char | 0x00 (0) | string terminator padding: - +0x2E42 | 00 00 | uint8_t[2] | .. | padding + +0x2B3E | 00 00 | uint8_t[2] | .. | padding string (reflection.KeyValue.key): - +0x2E44 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x2E48 | 69 64 | char[2] | id | string literal - +0x2E4A | 00 | char | 0x00 (0) | string terminator + +0x2B40 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2B44 | 69 64 | char[2] | id | string literal + +0x2B46 | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x2E4C | 90 F4 FF FF | SOffset32 | 0xFFFFF490 (-2928) Loc: +0x39BC | offset to vtable - +0x2E50 | 00 00 00 | uint8_t[3] | ... | padding - +0x2E53 | 01 | uint8_t | 0x01 (1) | table field `base_type` (Byte) - +0x2E54 | 00 00 00 00 | uint32_t | 0x00000000 (0) | table field `index` (Int) - +0x2E58 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) - +0x2E5C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x2B48 | 9C F5 FF FF | SOffset32 | 0xFFFFF59C (-2660) Loc: +0x35AC | offset to vtable + +0x2B4C | 00 00 00 | uint8_t[3] | ... | padding + +0x2B4F | 01 | uint8_t | 0x01 (1) | table field `base_type` (Byte) + +0x2B50 | 00 00 00 00 | uint32_t | 0x00000000 (0) | table field `index` (Int) + +0x2B54 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) + +0x2B58 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x2E60 | 09 00 00 00 | uint32_t | 0x00000009 (9) | length of string - +0x2E64 | 74 65 73 74 5F 74 79 70 | char[9] | test_typ | string literal - +0x2E6C | 65 | | e - +0x2E6D | 00 | char | 0x00 (0) | string terminator + +0x2B5C | 09 00 00 00 | uint32_t | 0x00000009 (9) | length of string + +0x2B60 | 74 65 73 74 5F 74 79 70 | char[9] | test_typ | string literal + +0x2B68 | 65 | | e + +0x2B69 | 00 | char | 0x00 (0) | string terminator padding: - +0x2E6E | 00 00 | uint8_t[2] | .. | padding + +0x2B6A | 00 00 | uint8_t[2] | .. | padding -table (reflection.Field): - +0x2E70 | 42 FD FF FF | SOffset32 | 0xFFFFFD42 (-702) Loc: +0x312E | offset to vtable - +0x2E74 | 06 00 | uint16_t | 0x0006 (6) | table field `id` (UShort) - +0x2E76 | 10 00 | uint16_t | 0x0010 (16) | table field `offset` (UShort) - +0x2E78 | 58 00 00 00 | UOffset32 | 0x00000058 (88) Loc: +0x2ED0 | offset to field `name` (string) - +0x2E7C | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: +0x2EBC | offset to field `type` (table) - +0x2E80 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x2E98 | offset to field `attributes` (vector) - +0x2E84 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2E94 | offset to field `documentation` (vector) - +0x2E88 | 08 00 00 00 00 00 00 00 | int64_t | 0x0000000000000008 (8) | table field `default_integer` (Long) - +0x2E90 | 00 00 00 00 | uint8_t[4] | .... | padding +vtable (reflection.Field): + +0x2B6C | 18 00 | uint16_t | 0x0018 (24) | size of this vtable + +0x2B6E | 20 00 | uint16_t | 0x0020 (32) | size of referring table + +0x2B70 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0) + +0x2B72 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `type` (id: 1) + +0x2B74 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `id` (id: 2) + +0x2B76 | 06 00 | VOffset16 | 0x0006 (6) | offset to field `offset` (id: 3) + +0x2B78 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `default_integer` (id: 4) + +0x2B7A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) (Double) + +0x2B7C | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) + +0x2B7E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) (Bool) + +0x2B80 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 8) (Bool) + +0x2B82 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `attributes` (id: 9) -vector (reflection.Field.documentation): - +0x2E94 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) +table (reflection.Field): + +0x2B84 | 18 00 00 00 | SOffset32 | 0x00000018 (24) Loc: +0x2B6C | offset to vtable + +0x2B88 | 06 00 | uint16_t | 0x0006 (6) | table field `id` (UShort) + +0x2B8A | 10 00 | uint16_t | 0x0010 (16) | table field `offset` (UShort) + +0x2B8C | 50 00 00 00 | UOffset32 | 0x00000050 (80) Loc: +0x2BDC | offset to field `name` (string) + +0x2B90 | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: +0x2BC8 | offset to field `type` (table) + +0x2B94 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2BA4 | offset to field `attributes` (vector) + +0x2B98 | 08 00 00 00 00 00 00 00 | int64_t | 0x0000000000000008 (8) | table field `default_integer` (Long) + +0x2BA0 | 00 00 00 00 | uint8_t[4] | .... | padding vector (reflection.Field.attributes): - +0x2E98 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x2E9C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2EA0 | offset to table[0] + +0x2BA4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x2BA8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2BAC | offset to table[0] table (reflection.KeyValue): - +0x2EA0 | 84 F5 FF FF | SOffset32 | 0xFFFFF584 (-2684) Loc: +0x391C | offset to vtable - +0x2EA4 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2EB4 | offset to field `key` (string) - +0x2EA8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2EAC | offset to field `value` (string) + +0x2BAC | E4 F2 FF FF | SOffset32 | 0xFFFFF2E4 (-3356) Loc: +0x38C8 | offset to vtable + +0x2BB0 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2BC0 | offset to field `key` (string) + +0x2BB4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2BB8 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x2EAC | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x2EB0 | 36 | char[1] | 6 | string literal - +0x2EB1 | 00 | char | 0x00 (0) | string terminator + +0x2BB8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x2BBC | 36 | char[1] | 6 | string literal + +0x2BBD | 00 | char | 0x00 (0) | string terminator padding: - +0x2EB2 | 00 00 | uint8_t[2] | .. | padding + +0x2BBE | 00 00 | uint8_t[2] | .. | padding string (reflection.KeyValue.key): - +0x2EB4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x2EB8 | 69 64 | char[2] | id | string literal - +0x2EBA | 00 | char | 0x00 (0) | string terminator + +0x2BC0 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2BC4 | 69 64 | char[2] | id | string literal + +0x2BC6 | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x2EBC | 00 F5 FF FF | SOffset32 | 0xFFFFF500 (-2816) Loc: +0x39BC | offset to vtable - +0x2EC0 | 00 00 00 | uint8_t[3] | ... | padding - +0x2EC3 | 04 | uint8_t | 0x04 (4) | table field `base_type` (Byte) - +0x2EC4 | 03 00 00 00 | uint32_t | 0x00000003 (3) | table field `index` (Int) - +0x2EC8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) - +0x2ECC | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x2BC8 | 1C F6 FF FF | SOffset32 | 0xFFFFF61C (-2532) Loc: +0x35AC | offset to vtable + +0x2BCC | 00 00 00 | uint8_t[3] | ... | padding + +0x2BCF | 04 | uint8_t | 0x04 (4) | table field `base_type` (Byte) + +0x2BD0 | 03 00 00 00 | uint32_t | 0x00000003 (3) | table field `index` (Int) + +0x2BD4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) + +0x2BD8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x2ED0 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string - +0x2ED4 | 63 6F 6C 6F 72 | char[5] | color | string literal - +0x2ED9 | 00 | char | 0x00 (0) | string terminator + +0x2BDC | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string + +0x2BE0 | 63 6F 6C 6F 72 | char[5] | color | string literal + +0x2BE5 | 00 | char | 0x00 (0) | string terminator padding: - +0x2EDA | 00 00 | uint8_t[2] | .. | padding + +0x2BE6 | 00 00 | uint8_t[2] | .. | padding vtable (reflection.Field): - +0x2EDC | 1C 00 | uint16_t | 0x001C (28) | size of this vtable - +0x2EDE | 1C 00 | uint16_t | 0x001C (28) | size of referring table - +0x2EE0 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `name` (id: 0) - +0x2EE2 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `type` (id: 1) - +0x2EE4 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `id` (id: 2) - +0x2EE6 | 0A 00 | VOffset16 | 0x000A (10) | offset to field `offset` (id: 3) - +0x2EE8 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) (Long) - +0x2EEA | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) (Double) - +0x2EEC | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) - +0x2EEE | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) (Bool) - +0x2EF0 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 8) (Bool) - +0x2EF2 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `attributes` (id: 9) - +0x2EF4 | 18 00 | VOffset16 | 0x0018 (24) | offset to field `documentation` (id: 10) - +0x2EF6 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `optional` (id: 11) + +0x2BE8 | 1C 00 | uint16_t | 0x001C (28) | size of this vtable + +0x2BEA | 18 00 | uint16_t | 0x0018 (24) | size of referring table + +0x2BEC | 0C 00 | VOffset16 | 0x000C (12) | offset to field `name` (id: 0) + +0x2BEE | 10 00 | VOffset16 | 0x0010 (16) | offset to field `type` (id: 1) + +0x2BF0 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `id` (id: 2) + +0x2BF2 | 0A 00 | VOffset16 | 0x000A (10) | offset to field `offset` (id: 3) + +0x2BF4 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) (Long) + +0x2BF6 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) (Double) + +0x2BF8 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) + +0x2BFA | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) (Bool) + +0x2BFC | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 8) (Bool) + +0x2BFE | 14 00 | VOffset16 | 0x0014 (20) | offset to field `attributes` (id: 9) + +0x2C00 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `documentation` (id: 10) (Vector) + +0x2C02 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `optional` (id: 11) table (reflection.Field): - +0x2EF8 | 1C 00 00 00 | SOffset32 | 0x0000001C (28) Loc: +0x2EDC | offset to vtable - +0x2EFC | 00 00 00 | uint8_t[3] | ... | padding - +0x2EFF | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x2F00 | 05 00 | uint16_t | 0x0005 (5) | table field `id` (UShort) - +0x2F02 | 0E 00 | uint16_t | 0x000E (14) | table field `offset` (UShort) - +0x2F04 | 54 00 00 00 | UOffset32 | 0x00000054 (84) Loc: +0x2F58 | offset to field `name` (string) - +0x2F08 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x2F4C | offset to field `type` (table) - +0x2F0C | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x2F18 | offset to field `attributes` (vector) - +0x2F10 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2F14 | offset to field `documentation` (vector) - -vector (reflection.Field.documentation): - +0x2F14 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x2C04 | 1C 00 00 00 | SOffset32 | 0x0000001C (28) Loc: +0x2BE8 | offset to vtable + +0x2C08 | 00 00 00 | uint8_t[3] | ... | padding + +0x2C0B | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x2C0C | 05 00 | uint16_t | 0x0005 (5) | table field `id` (UShort) + +0x2C0E | 0E 00 | uint16_t | 0x000E (14) | table field `offset` (UShort) + +0x2C10 | 4C 00 00 00 | UOffset32 | 0x0000004C (76) Loc: +0x2C5C | offset to field `name` (string) + +0x2C14 | 3C 00 00 00 | UOffset32 | 0x0000003C (60) Loc: +0x2C50 | offset to field `type` (table) + +0x2C18 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2C1C | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x2F18 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x2F1C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2F20 | offset to table[0] + +0x2C1C | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x2C20 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2C24 | offset to table[0] table (reflection.KeyValue): - +0x2F20 | 04 F6 FF FF | SOffset32 | 0xFFFFF604 (-2556) Loc: +0x391C | offset to vtable - +0x2F24 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2F34 | offset to field `key` (string) - +0x2F28 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2F2C | offset to field `value` (string) + +0x2C24 | 5C F3 FF FF | SOffset32 | 0xFFFFF35C (-3236) Loc: +0x38C8 | offset to vtable + +0x2C28 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2C38 | offset to field `key` (string) + +0x2C2C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2C30 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x2F2C | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x2F30 | 35 | char[1] | 5 | string literal - +0x2F31 | 00 | char | 0x00 (0) | string terminator + +0x2C30 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x2C34 | 35 | char[1] | 5 | string literal + +0x2C35 | 00 | char | 0x00 (0) | string terminator padding: - +0x2F32 | 00 00 | uint8_t[2] | .. | padding + +0x2C36 | 00 00 | uint8_t[2] | .. | padding string (reflection.KeyValue.key): - +0x2F34 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x2F38 | 69 64 | char[2] | id | string literal - +0x2F3A | 00 | char | 0x00 (0) | string terminator + +0x2C38 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2C3C | 69 64 | char[2] | id | string literal + +0x2C3E | 00 | char | 0x00 (0) | string terminator vtable (reflection.Type): - +0x2F3C | 10 00 | uint16_t | 0x0010 (16) | size of this vtable - +0x2F3E | 0C 00 | uint16_t | 0x000C (12) | size of referring table - +0x2F40 | 06 00 | VOffset16 | 0x0006 (6) | offset to field `base_type` (id: 0) - +0x2F42 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `element` (id: 1) - +0x2F44 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `index` (id: 2) (Int) - +0x2F46 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `fixed_length` (id: 3) (UShort) - +0x2F48 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `base_size` (id: 4) (UInt) - +0x2F4A | 08 00 | VOffset16 | 0x0008 (8) | offset to field `element_size` (id: 5) + +0x2C40 | 10 00 | uint16_t | 0x0010 (16) | size of this vtable + +0x2C42 | 0C 00 | uint16_t | 0x000C (12) | size of referring table + +0x2C44 | 06 00 | VOffset16 | 0x0006 (6) | offset to field `base_type` (id: 0) + +0x2C46 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `element` (id: 1) + +0x2C48 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `index` (id: 2) (Int) + +0x2C4A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `fixed_length` (id: 3) (UShort) + +0x2C4C | 00 00 | VOffset16 | 0x0000 (0) | offset to field `base_size` (id: 4) (UInt) + +0x2C4E | 08 00 | VOffset16 | 0x0008 (8) | offset to field `element_size` (id: 5) table (reflection.Type): - +0x2F4C | 10 00 00 00 | SOffset32 | 0x00000010 (16) Loc: +0x2F3C | offset to vtable - +0x2F50 | 00 00 | uint8_t[2] | .. | padding - +0x2F52 | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) - +0x2F53 | 04 | uint8_t | 0x04 (4) | table field `element` (Byte) - +0x2F54 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x2C50 | 10 00 00 00 | SOffset32 | 0x00000010 (16) Loc: +0x2C40 | offset to vtable + +0x2C54 | 00 00 | uint8_t[2] | .. | padding + +0x2C56 | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) + +0x2C57 | 04 | uint8_t | 0x04 (4) | table field `element` (Byte) + +0x2C58 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x2F58 | 09 00 00 00 | uint32_t | 0x00000009 (9) | length of string - +0x2F5C | 69 6E 76 65 6E 74 6F 72 | char[9] | inventor | string literal - +0x2F64 | 79 | | y - +0x2F65 | 00 | char | 0x00 (0) | string terminator + +0x2C5C | 09 00 00 00 | uint32_t | 0x00000009 (9) | length of string + +0x2C60 | 69 6E 76 65 6E 74 6F 72 | char[9] | inventor | string literal + +0x2C68 | 79 | | y + +0x2C69 | 00 | char | 0x00 (0) | string terminator + +padding: + +0x2C6A | 00 00 | uint8_t[2] | .. | padding vtable (reflection.Field): - +0x2F66 | 1A 00 | uint16_t | 0x001A (26) | size of this vtable - +0x2F68 | 1C 00 | uint16_t | 0x001C (28) | size of referring table - +0x2F6A | 0C 00 | VOffset16 | 0x000C (12) | offset to field `name` (id: 0) - +0x2F6C | 10 00 | VOffset16 | 0x0010 (16) | offset to field `type` (id: 1) - +0x2F6E | 08 00 | VOffset16 | 0x0008 (8) | offset to field `id` (id: 2) - +0x2F70 | 0A 00 | VOffset16 | 0x000A (10) | offset to field `offset` (id: 3) - +0x2F72 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) (Long) - +0x2F74 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) (Double) - +0x2F76 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `deprecated` (id: 6) - +0x2F78 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) (Bool) - +0x2F7A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 8) (Bool) - +0x2F7C | 14 00 | VOffset16 | 0x0014 (20) | offset to field `attributes` (id: 9) - +0x2F7E | 18 00 | VOffset16 | 0x0018 (24) | offset to field `documentation` (id: 10) + +0x2C6C | 18 00 | uint16_t | 0x0018 (24) | size of this vtable + +0x2C6E | 18 00 | uint16_t | 0x0018 (24) | size of referring table + +0x2C70 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `name` (id: 0) + +0x2C72 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `type` (id: 1) + +0x2C74 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `id` (id: 2) + +0x2C76 | 0A 00 | VOffset16 | 0x000A (10) | offset to field `offset` (id: 3) + +0x2C78 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) (Long) + +0x2C7A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) (Double) + +0x2C7C | 07 00 | VOffset16 | 0x0007 (7) | offset to field `deprecated` (id: 6) + +0x2C7E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) (Bool) + +0x2C80 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 8) (Bool) + +0x2C82 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `attributes` (id: 9) table (reflection.Field): - +0x2F80 | 1A 00 00 00 | SOffset32 | 0x0000001A (26) Loc: +0x2F66 | offset to vtable - +0x2F84 | 00 00 00 | uint8_t[3] | ... | padding - +0x2F87 | 01 | uint8_t | 0x01 (1) | table field `deprecated` (Bool) - +0x2F88 | 04 00 | uint16_t | 0x0004 (4) | table field `id` (UShort) - +0x2F8A | 0C 00 | uint16_t | 0x000C (12) | table field `offset` (UShort) - +0x2F8C | 98 00 00 00 | UOffset32 | 0x00000098 (152) Loc: +0x3024 | offset to field `name` (string) - +0x2F90 | 84 00 00 00 | UOffset32 | 0x00000084 (132) Loc: +0x3014 | offset to field `type` (table) - +0x2F94 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x2FA0 | offset to field `attributes` (vector) - +0x2F98 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2F9C | offset to field `documentation` (vector) - -vector (reflection.Field.documentation): - +0x2F9C | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x2C84 | 18 00 00 00 | SOffset32 | 0x00000018 (24) Loc: +0x2C6C | offset to vtable + +0x2C88 | 00 00 00 | uint8_t[3] | ... | padding + +0x2C8B | 01 | uint8_t | 0x01 (1) | table field `deprecated` (Bool) + +0x2C8C | 04 00 | uint16_t | 0x0004 (4) | table field `id` (UShort) + +0x2C8E | 0C 00 | uint16_t | 0x000C (12) | table field `offset` (UShort) + +0x2C90 | 90 00 00 00 | UOffset32 | 0x00000090 (144) Loc: +0x2D20 | offset to field `name` (string) + +0x2C94 | 7C 00 00 00 | UOffset32 | 0x0000007C (124) Loc: +0x2D10 | offset to field `type` (table) + +0x2C98 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2C9C | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x2FA0 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) - +0x2FA4 | 4C 00 00 00 | UOffset32 | 0x0000004C (76) Loc: +0x2FF0 | offset to table[0] - +0x2FA8 | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: +0x2FD4 | offset to table[1] - +0x2FAC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2FB0 | offset to table[2] + +0x2C9C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) + +0x2CA0 | 4C 00 00 00 | UOffset32 | 0x0000004C (76) Loc: +0x2CEC | offset to table[0] + +0x2CA4 | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: +0x2CD0 | offset to table[1] + +0x2CA8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2CAC | offset to table[2] table (reflection.KeyValue): - +0x2FB0 | 94 F6 FF FF | SOffset32 | 0xFFFFF694 (-2412) Loc: +0x391C | offset to vtable - +0x2FB4 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2FC4 | offset to field `key` (string) - +0x2FB8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2FBC | offset to field `value` (string) + +0x2CAC | E4 F3 FF FF | SOffset32 | 0xFFFFF3E4 (-3100) Loc: +0x38C8 | offset to vtable + +0x2CB0 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2CC0 | offset to field `key` (string) + +0x2CB4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2CB8 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x2FBC | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x2FC0 | 31 | char[1] | 1 | string literal - +0x2FC1 | 00 | char | 0x00 (0) | string terminator + +0x2CB8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x2CBC | 31 | char[1] | 1 | string literal + +0x2CBD | 00 | char | 0x00 (0) | string terminator padding: - +0x2FC2 | 00 00 | uint8_t[2] | .. | padding + +0x2CBE | 00 00 | uint8_t[2] | .. | padding string (reflection.KeyValue.key): - +0x2FC4 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string - +0x2FC8 | 70 72 69 6F 72 69 74 79 | char[8] | priority | string literal - +0x2FD0 | 00 | char | 0x00 (0) | string terminator + +0x2CC0 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string + +0x2CC4 | 70 72 69 6F 72 69 74 79 | char[8] | priority | string literal + +0x2CCC | 00 | char | 0x00 (0) | string terminator padding: - +0x2FD1 | 00 00 00 | uint8_t[3] | ... | padding + +0x2CCD | 00 00 00 | uint8_t[3] | ... | padding table (reflection.KeyValue): - +0x2FD4 | B8 F6 FF FF | SOffset32 | 0xFFFFF6B8 (-2376) Loc: +0x391C | offset to vtable - +0x2FD8 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2FE8 | offset to field `key` (string) - +0x2FDC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2FE0 | offset to field `value` (string) + +0x2CD0 | 08 F4 FF FF | SOffset32 | 0xFFFFF408 (-3064) Loc: +0x38C8 | offset to vtable + +0x2CD4 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2CE4 | offset to field `key` (string) + +0x2CD8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2CDC | offset to field `value` (string) string (reflection.KeyValue.value): - +0x2FE0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x2FE4 | 34 | char[1] | 4 | string literal - +0x2FE5 | 00 | char | 0x00 (0) | string terminator + +0x2CDC | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x2CE0 | 34 | char[1] | 4 | string literal + +0x2CE1 | 00 | char | 0x00 (0) | string terminator padding: - +0x2FE6 | 00 00 | uint8_t[2] | .. | padding + +0x2CE2 | 00 00 | uint8_t[2] | .. | padding string (reflection.KeyValue.key): - +0x2FE8 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x2FEC | 69 64 | char[2] | id | string literal - +0x2FEE | 00 | char | 0x00 (0) | string terminator + +0x2CE4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2CE8 | 69 64 | char[2] | id | string literal + +0x2CEA | 00 | char | 0x00 (0) | string terminator table (reflection.KeyValue): - +0x2FF0 | D4 F6 FF FF | SOffset32 | 0xFFFFF6D4 (-2348) Loc: +0x391C | offset to vtable - +0x2FF4 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x3004 | offset to field `key` (string) - +0x2FF8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2FFC | offset to field `value` (string) + +0x2CEC | 24 F4 FF FF | SOffset32 | 0xFFFFF424 (-3036) Loc: +0x38C8 | offset to vtable + +0x2CF0 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2D00 | offset to field `key` (string) + +0x2CF4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2CF8 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x2FFC | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x3000 | 30 | char[1] | 0 | string literal - +0x3001 | 00 | char | 0x00 (0) | string terminator + +0x2CF8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x2CFC | 30 | char[1] | 0 | string literal + +0x2CFD | 00 | char | 0x00 (0) | string terminator padding: - +0x3002 | 00 00 | uint8_t[2] | .. | padding + +0x2CFE | 00 00 | uint8_t[2] | .. | padding string (reflection.KeyValue.key): - +0x3004 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | length of string - +0x3008 | 64 65 70 72 65 63 61 74 | char[10] | deprecat | string literal - +0x3010 | 65 64 | | ed - +0x3012 | 00 | char | 0x00 (0) | string terminator + +0x2D00 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | length of string + +0x2D04 | 64 65 70 72 65 63 61 74 | char[10] | deprecat | string literal + +0x2D0C | 65 64 | | ed + +0x2D0E | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x3014 | 78 F5 FF FF | SOffset32 | 0xFFFFF578 (-2696) Loc: +0x3A9C | offset to vtable - +0x3018 | 00 00 00 | uint8_t[3] | ... | padding - +0x301B | 02 | uint8_t | 0x02 (2) | table field `base_type` (Byte) - +0x301C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) - +0x3020 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x2D10 | 9C F6 FF FF | SOffset32 | 0xFFFFF69C (-2404) Loc: +0x3674 | offset to vtable + +0x2D14 | 00 00 00 | uint8_t[3] | ... | padding + +0x2D17 | 02 | uint8_t | 0x02 (2) | table field `base_type` (Byte) + +0x2D18 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) + +0x2D1C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x3024 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string - +0x3028 | 66 72 69 65 6E 64 6C 79 | char[8] | friendly | string literal - +0x3030 | 00 | char | 0x00 (0) | string terminator + +0x2D20 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string + +0x2D24 | 66 72 69 65 6E 64 6C 79 | char[8] | friendly | string literal + +0x2D2C | 00 | char | 0x00 (0) | string terminator + +padding: + +0x2D2D | 00 00 00 | uint8_t[3] | ... | padding vtable (reflection.Field): - +0x3032 | 1A 00 | uint16_t | 0x001A (26) | size of this vtable - +0x3034 | 1C 00 | uint16_t | 0x001C (28) | size of referring table - +0x3036 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `name` (id: 0) - +0x3038 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `type` (id: 1) - +0x303A | 08 00 | VOffset16 | 0x0008 (8) | offset to field `id` (id: 2) - +0x303C | 0A 00 | VOffset16 | 0x000A (10) | offset to field `offset` (id: 3) - +0x303E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) (Long) - +0x3040 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) (Double) - +0x3042 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) - +0x3044 | 06 00 | VOffset16 | 0x0006 (6) | offset to field `required` (id: 7) - +0x3046 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `key` (id: 8) - +0x3048 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `attributes` (id: 9) - +0x304A | 18 00 | VOffset16 | 0x0018 (24) | offset to field `documentation` (id: 10) + +0x2D30 | 18 00 | uint16_t | 0x0018 (24) | size of this vtable + +0x2D32 | 18 00 | uint16_t | 0x0018 (24) | size of referring table + +0x2D34 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `name` (id: 0) + +0x2D36 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `type` (id: 1) + +0x2D38 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `id` (id: 2) + +0x2D3A | 0A 00 | VOffset16 | 0x000A (10) | offset to field `offset` (id: 3) + +0x2D3C | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) (Long) + +0x2D3E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) (Double) + +0x2D40 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) + +0x2D42 | 06 00 | VOffset16 | 0x0006 (6) | offset to field `required` (id: 7) + +0x2D44 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `key` (id: 8) + +0x2D46 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `attributes` (id: 9) table (reflection.Field): - +0x304C | 1A 00 00 00 | SOffset32 | 0x0000001A (26) Loc: +0x3032 | offset to vtable - +0x3050 | 00 00 | uint8_t[2] | .. | padding - +0x3052 | 01 | uint8_t | 0x01 (1) | table field `required` (Bool) - +0x3053 | 01 | uint8_t | 0x01 (1) | table field `key` (Bool) - +0x3054 | 03 00 | uint16_t | 0x0003 (3) | table field `id` (UShort) - +0x3056 | 0A 00 | uint16_t | 0x000A (10) | table field `offset` (UShort) - +0x3058 | 64 00 00 00 | UOffset32 | 0x00000064 (100) Loc: +0x30BC | offset to field `name` (string) - +0x305C | 54 00 00 00 | UOffset32 | 0x00000054 (84) Loc: +0x30B0 | offset to field `type` (table) - +0x3060 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x306C | offset to field `attributes` (vector) - +0x3064 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3068 | offset to field `documentation` (vector) - -vector (reflection.Field.documentation): - +0x3068 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x2D48 | 18 00 00 00 | SOffset32 | 0x00000018 (24) Loc: +0x2D30 | offset to vtable + +0x2D4C | 00 00 | uint8_t[2] | .. | padding + +0x2D4E | 01 | uint8_t | 0x01 (1) | table field `required` (Bool) + +0x2D4F | 01 | uint8_t | 0x01 (1) | table field `key` (Bool) + +0x2D50 | 03 00 | uint16_t | 0x0003 (3) | table field `id` (UShort) + +0x2D52 | 0A 00 | uint16_t | 0x000A (10) | table field `offset` (UShort) + +0x2D54 | 5C 00 00 00 | UOffset32 | 0x0000005C (92) Loc: +0x2DB0 | offset to field `name` (string) + +0x2D58 | 4C 00 00 00 | UOffset32 | 0x0000004C (76) Loc: +0x2DA4 | offset to field `type` (table) + +0x2D5C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2D60 | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x306C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) - +0x3070 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x3094 | offset to table[0] - +0x3074 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3078 | offset to table[1] + +0x2D60 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) + +0x2D64 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x2D88 | offset to table[0] + +0x2D68 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2D6C | offset to table[1] table (reflection.KeyValue): - +0x3078 | 5C F7 FF FF | SOffset32 | 0xFFFFF75C (-2212) Loc: +0x391C | offset to vtable - +0x307C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x308C | offset to field `key` (string) - +0x3080 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3084 | offset to field `value` (string) + +0x2D6C | A4 F4 FF FF | SOffset32 | 0xFFFFF4A4 (-2908) Loc: +0x38C8 | offset to vtable + +0x2D70 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2D80 | offset to field `key` (string) + +0x2D74 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2D78 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x3084 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x3088 | 30 | char[1] | 0 | string literal - +0x3089 | 00 | char | 0x00 (0) | string terminator + +0x2D78 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x2D7C | 30 | char[1] | 0 | string literal + +0x2D7D | 00 | char | 0x00 (0) | string terminator padding: - +0x308A | 00 00 | uint8_t[2] | .. | padding + +0x2D7E | 00 00 | uint8_t[2] | .. | padding string (reflection.KeyValue.key): - +0x308C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string - +0x3090 | 6B 65 79 | char[3] | key | string literal - +0x3093 | 00 | char | 0x00 (0) | string terminator + +0x2D80 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string + +0x2D84 | 6B 65 79 | char[3] | key | string literal + +0x2D87 | 00 | char | 0x00 (0) | string terminator table (reflection.KeyValue): - +0x3094 | 78 F7 FF FF | SOffset32 | 0xFFFFF778 (-2184) Loc: +0x391C | offset to vtable - +0x3098 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x30A8 | offset to field `key` (string) - +0x309C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x30A0 | offset to field `value` (string) + +0x2D88 | C0 F4 FF FF | SOffset32 | 0xFFFFF4C0 (-2880) Loc: +0x38C8 | offset to vtable + +0x2D8C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2D9C | offset to field `key` (string) + +0x2D90 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2D94 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x30A0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x30A4 | 33 | char[1] | 3 | string literal - +0x30A5 | 00 | char | 0x00 (0) | string terminator + +0x2D94 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x2D98 | 33 | char[1] | 3 | string literal + +0x2D99 | 00 | char | 0x00 (0) | string terminator padding: - +0x30A6 | 00 00 | uint8_t[2] | .. | padding + +0x2D9A | 00 00 | uint8_t[2] | .. | padding string (reflection.KeyValue.key): - +0x30A8 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x30AC | 69 64 | char[2] | id | string literal - +0x30AE | 00 | char | 0x00 (0) | string terminator + +0x2D9C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2DA0 | 69 64 | char[2] | id | string literal + +0x2DA2 | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x30B0 | 5C F3 FF FF | SOffset32 | 0xFFFFF35C (-3236) Loc: +0x3D54 | offset to vtable - +0x30B4 | 00 00 00 | uint8_t[3] | ... | padding - +0x30B7 | 0D | uint8_t | 0x0D (13) | table field `base_type` (Byte) - +0x30B8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x2DA4 | C8 F4 FF FF | SOffset32 | 0xFFFFF4C8 (-2872) Loc: +0x38DC | offset to vtable + +0x2DA8 | 00 00 00 | uint8_t[3] | ... | padding + +0x2DAB | 0D | uint8_t | 0x0D (13) | table field `base_type` (Byte) + +0x2DAC | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x30BC | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string - +0x30C0 | 6E 61 6D 65 | char[4] | name | string literal - +0x30C4 | 00 | char | 0x00 (0) | string terminator + +0x2DB0 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string + +0x2DB4 | 6E 61 6D 65 | char[4] | name | string literal + +0x2DB8 | 00 | char | 0x00 (0) | string terminator padding: - +0x30C5 | 00 00 00 | uint8_t[3] | ... | padding + +0x2DB9 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Field): - +0x30C8 | 9A FF FF FF | SOffset32 | 0xFFFFFF9A (-102) Loc: +0x312E | offset to vtable - +0x30CC | 02 00 | uint16_t | 0x0002 (2) | table field `id` (UShort) - +0x30CE | 08 00 | uint16_t | 0x0008 (8) | table field `offset` (UShort) - +0x30D0 | 54 00 00 00 | UOffset32 | 0x00000054 (84) Loc: +0x3124 | offset to field `name` (string) - +0x30D4 | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: +0x3114 | offset to field `type` (table) - +0x30D8 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x30F0 | offset to field `attributes` (vector) - +0x30DC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x30EC | offset to field `documentation` (vector) - +0x30E0 | 64 00 00 00 00 00 00 00 | int64_t | 0x0000000000000064 (100) | table field `default_integer` (Long) - +0x30E8 | 00 00 00 00 | uint8_t[4] | .... | padding - -vector (reflection.Field.documentation): - +0x30EC | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x2DBC | A8 FF FF FF | SOffset32 | 0xFFFFFFA8 (-88) Loc: +0x2E14 | offset to vtable + +0x2DC0 | 02 00 | uint16_t | 0x0002 (2) | table field `id` (UShort) + +0x2DC2 | 08 00 | uint16_t | 0x0008 (8) | table field `offset` (UShort) + +0x2DC4 | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: +0x2E0C | offset to field `name` (string) + +0x2DC8 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x2DFC | offset to field `type` (table) + +0x2DCC | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x2DD8 | offset to field `attributes` (vector) + +0x2DD0 | 64 00 00 00 00 00 00 00 | int64_t | 0x0000000000000064 (100) | table field `default_integer` (Long) vector (reflection.Field.attributes): - +0x30F0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x30F4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x30F8 | offset to table[0] + +0x2DD8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x2DDC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2DE0 | offset to table[0] table (reflection.KeyValue): - +0x30F8 | DC F7 FF FF | SOffset32 | 0xFFFFF7DC (-2084) Loc: +0x391C | offset to vtable - +0x30FC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x310C | offset to field `key` (string) - +0x3100 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3104 | offset to field `value` (string) + +0x2DE0 | 18 F5 FF FF | SOffset32 | 0xFFFFF518 (-2792) Loc: +0x38C8 | offset to vtable + +0x2DE4 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2DF4 | offset to field `key` (string) + +0x2DE8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2DEC | offset to field `value` (string) string (reflection.KeyValue.value): - +0x3104 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x3108 | 32 | char[1] | 2 | string literal - +0x3109 | 00 | char | 0x00 (0) | string terminator + +0x2DEC | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x2DF0 | 32 | char[1] | 2 | string literal + +0x2DF1 | 00 | char | 0x00 (0) | string terminator padding: - +0x310A | 00 00 | uint8_t[2] | .. | padding + +0x2DF2 | 00 00 | uint8_t[2] | .. | padding string (reflection.KeyValue.key): - +0x310C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x3110 | 69 64 | char[2] | id | string literal - +0x3112 | 00 | char | 0x00 (0) | string terminator + +0x2DF4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2DF8 | 69 64 | char[2] | id | string literal + +0x2DFA | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x3114 | 78 F6 FF FF | SOffset32 | 0xFFFFF678 (-2440) Loc: +0x3A9C | offset to vtable - +0x3118 | 00 00 00 | uint8_t[3] | ... | padding - +0x311B | 05 | uint8_t | 0x05 (5) | table field `base_type` (Byte) - +0x311C | 02 00 00 00 | uint32_t | 0x00000002 (2) | table field `base_size` (UInt) - +0x3120 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x2DFC | 88 F7 FF FF | SOffset32 | 0xFFFFF788 (-2168) Loc: +0x3674 | offset to vtable + +0x2E00 | 00 00 00 | uint8_t[3] | ... | padding + +0x2E03 | 05 | uint8_t | 0x05 (5) | table field `base_type` (Byte) + +0x2E04 | 02 00 00 00 | uint32_t | 0x00000002 (2) | table field `base_size` (UInt) + +0x2E08 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x3124 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x3128 | 68 70 | char[2] | hp | string literal - +0x312A | 00 | char | 0x00 (0) | string terminator - -padding: - +0x312B | 00 00 00 | uint8_t[3] | ... | padding + +0x2E0C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2E10 | 68 70 | char[2] | hp | string literal + +0x2E12 | 00 | char | 0x00 (0) | string terminator vtable (reflection.Field): - +0x312E | 1A 00 | uint16_t | 0x001A (26) | size of this vtable - +0x3130 | 24 00 | uint16_t | 0x0024 (36) | size of referring table - +0x3132 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0) - +0x3134 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `type` (id: 1) - +0x3136 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `id` (id: 2) - +0x3138 | 06 00 | VOffset16 | 0x0006 (6) | offset to field `offset` (id: 3) - +0x313A | 18 00 | VOffset16 | 0x0018 (24) | offset to field `default_integer` (id: 4) - +0x313C | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) (Double) - +0x313E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) - +0x3140 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) (Bool) - +0x3142 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 8) (Bool) - +0x3144 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `attributes` (id: 9) - +0x3146 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `documentation` (id: 10) + +0x2E14 | 18 00 | uint16_t | 0x0018 (24) | size of this vtable + +0x2E16 | 1C 00 | uint16_t | 0x001C (28) | size of referring table + +0x2E18 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0) + +0x2E1A | 0C 00 | VOffset16 | 0x000C (12) | offset to field `type` (id: 1) + +0x2E1C | 04 00 | VOffset16 | 0x0004 (4) | offset to field `id` (id: 2) + +0x2E1E | 06 00 | VOffset16 | 0x0006 (6) | offset to field `offset` (id: 3) + +0x2E20 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `default_integer` (id: 4) + +0x2E22 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) (Double) + +0x2E24 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) + +0x2E26 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) (Bool) + +0x2E28 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 8) (Bool) + +0x2E2A | 10 00 | VOffset16 | 0x0010 (16) | offset to field `attributes` (id: 9) table (reflection.Field): - +0x3148 | 1A 00 00 00 | SOffset32 | 0x0000001A (26) Loc: +0x312E | offset to vtable - +0x314C | 01 00 | uint16_t | 0x0001 (1) | table field `id` (UShort) - +0x314E | 06 00 | uint16_t | 0x0006 (6) | table field `offset` (UShort) - +0x3150 | 54 00 00 00 | UOffset32 | 0x00000054 (84) Loc: +0x31A4 | offset to field `name` (string) - +0x3154 | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: +0x3194 | offset to field `type` (table) - +0x3158 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x3170 | offset to field `attributes` (vector) - +0x315C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x316C | offset to field `documentation` (vector) - +0x3160 | 96 00 00 00 00 00 00 00 | int64_t | 0x0000000000000096 (150) | table field `default_integer` (Long) - +0x3168 | 00 00 00 00 | uint8_t[4] | .... | padding - -vector (reflection.Field.documentation): - +0x316C | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x2E2C | 18 00 00 00 | SOffset32 | 0x00000018 (24) Loc: +0x2E14 | offset to vtable + +0x2E30 | 01 00 | uint16_t | 0x0001 (1) | table field `id` (UShort) + +0x2E32 | 06 00 | uint16_t | 0x0006 (6) | table field `offset` (UShort) + +0x2E34 | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: +0x2E7C | offset to field `name` (string) + +0x2E38 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x2E6C | offset to field `type` (table) + +0x2E3C | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x2E48 | offset to field `attributes` (vector) + +0x2E40 | 96 00 00 00 00 00 00 00 | int64_t | 0x0000000000000096 (150) | table field `default_integer` (Long) vector (reflection.Field.attributes): - +0x3170 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x3174 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3178 | offset to table[0] + +0x2E48 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x2E4C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2E50 | offset to table[0] table (reflection.KeyValue): - +0x3178 | 5C F8 FF FF | SOffset32 | 0xFFFFF85C (-1956) Loc: +0x391C | offset to vtable - +0x317C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x318C | offset to field `key` (string) - +0x3180 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3184 | offset to field `value` (string) + +0x2E50 | 88 F5 FF FF | SOffset32 | 0xFFFFF588 (-2680) Loc: +0x38C8 | offset to vtable + +0x2E54 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2E64 | offset to field `key` (string) + +0x2E58 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2E5C | offset to field `value` (string) string (reflection.KeyValue.value): - +0x3184 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x3188 | 31 | char[1] | 1 | string literal - +0x3189 | 00 | char | 0x00 (0) | string terminator + +0x2E5C | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x2E60 | 31 | char[1] | 1 | string literal + +0x2E61 | 00 | char | 0x00 (0) | string terminator padding: - +0x318A | 00 00 | uint8_t[2] | .. | padding + +0x2E62 | 00 00 | uint8_t[2] | .. | padding string (reflection.KeyValue.key): - +0x318C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x3190 | 69 64 | char[2] | id | string literal - +0x3192 | 00 | char | 0x00 (0) | string terminator + +0x2E64 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2E68 | 69 64 | char[2] | id | string literal + +0x2E6A | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x3194 | F8 F6 FF FF | SOffset32 | 0xFFFFF6F8 (-2312) Loc: +0x3A9C | offset to vtable - +0x3198 | 00 00 00 | uint8_t[3] | ... | padding - +0x319B | 05 | uint8_t | 0x05 (5) | table field `base_type` (Byte) - +0x319C | 02 00 00 00 | uint32_t | 0x00000002 (2) | table field `base_size` (UInt) - +0x31A0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x2E6C | F8 F7 FF FF | SOffset32 | 0xFFFFF7F8 (-2056) Loc: +0x3674 | offset to vtable + +0x2E70 | 00 00 00 | uint8_t[3] | ... | padding + +0x2E73 | 05 | uint8_t | 0x05 (5) | table field `base_type` (Byte) + +0x2E74 | 02 00 00 00 | uint32_t | 0x00000002 (2) | table field `base_size` (UInt) + +0x2E78 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x31A4 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string - +0x31A8 | 6D 61 6E 61 | char[4] | mana | string literal - +0x31AC | 00 | char | 0x00 (0) | string terminator + +0x2E7C | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string + +0x2E80 | 6D 61 6E 61 | char[4] | mana | string literal + +0x2E84 | 00 | char | 0x00 (0) | string terminator padding: - +0x31AD | 00 00 00 | uint8_t[3] | ... | padding + +0x2E85 | 00 00 00 | uint8_t[3] | ... | padding vtable (reflection.Field): - +0x31B0 | 1C 00 | uint16_t | 0x001C (28) | size of this vtable - +0x31B2 | 18 00 | uint16_t | 0x0018 (24) | size of referring table - +0x31B4 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0) - +0x31B6 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `type` (id: 1) - +0x31B8 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `id` (id: 2) (UShort) - +0x31BA | 06 00 | VOffset16 | 0x0006 (6) | offset to field `offset` (id: 3) - +0x31BC | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) (Long) - +0x31BE | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) (Double) - +0x31C0 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) - +0x31C2 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) (Bool) - +0x31C4 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 8) (Bool) - +0x31C6 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `attributes` (id: 9) - +0x31C8 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `documentation` (id: 10) - +0x31CA | 05 00 | VOffset16 | 0x0005 (5) | offset to field `optional` (id: 11) + +0x2E88 | 1C 00 | uint16_t | 0x001C (28) | size of this vtable + +0x2E8A | 14 00 | uint16_t | 0x0014 (20) | size of referring table + +0x2E8C | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0) + +0x2E8E | 0C 00 | VOffset16 | 0x000C (12) | offset to field `type` (id: 1) + +0x2E90 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `id` (id: 2) (UShort) + +0x2E92 | 06 00 | VOffset16 | 0x0006 (6) | offset to field `offset` (id: 3) + +0x2E94 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) (Long) + +0x2E96 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) (Double) + +0x2E98 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) + +0x2E9A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) (Bool) + +0x2E9C | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 8) (Bool) + +0x2E9E | 10 00 | VOffset16 | 0x0010 (16) | offset to field `attributes` (id: 9) + +0x2EA0 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `documentation` (id: 10) (Vector) + +0x2EA2 | 05 00 | VOffset16 | 0x0005 (5) | offset to field `optional` (id: 11) table (reflection.Field): - +0x31CC | 1C 00 00 00 | SOffset32 | 0x0000001C (28) Loc: +0x31B0 | offset to vtable - +0x31D0 | 00 | uint8_t[1] | . | padding - +0x31D1 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x31D2 | 04 00 | uint16_t | 0x0004 (4) | table field `offset` (UShort) - +0x31D4 | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: +0x321C | offset to field `name` (string) - +0x31D8 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x320C | offset to field `type` (table) - +0x31DC | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x31E8 | offset to field `attributes` (vector) - +0x31E0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x31E4 | offset to field `documentation` (vector) - -vector (reflection.Field.documentation): - +0x31E4 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x2EA4 | 1C 00 00 00 | SOffset32 | 0x0000001C (28) Loc: +0x2E88 | offset to vtable + +0x2EA8 | 00 | uint8_t[1] | . | padding + +0x2EA9 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x2EAA | 04 00 | uint16_t | 0x0004 (4) | table field `offset` (UShort) + +0x2EAC | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: +0x2EEC | offset to field `name` (string) + +0x2EB0 | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: +0x2EDC | offset to field `type` (table) + +0x2EB4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2EB8 | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x31E8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x31EC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x31F0 | offset to table[0] + +0x2EB8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x2EBC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2EC0 | offset to table[0] table (reflection.KeyValue): - +0x31F0 | D4 F8 FF FF | SOffset32 | 0xFFFFF8D4 (-1836) Loc: +0x391C | offset to vtable - +0x31F4 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x3204 | offset to field `key` (string) - +0x31F8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x31FC | offset to field `value` (string) + +0x2EC0 | F8 F5 FF FF | SOffset32 | 0xFFFFF5F8 (-2568) Loc: +0x38C8 | offset to vtable + +0x2EC4 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2ED4 | offset to field `key` (string) + +0x2EC8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2ECC | offset to field `value` (string) string (reflection.KeyValue.value): - +0x31FC | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x3200 | 30 | char[1] | 0 | string literal - +0x3201 | 00 | char | 0x00 (0) | string terminator + +0x2ECC | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x2ED0 | 30 | char[1] | 0 | string literal + +0x2ED1 | 00 | char | 0x00 (0) | string terminator padding: - +0x3202 | 00 00 | uint8_t[2] | .. | padding + +0x2ED2 | 00 00 | uint8_t[2] | .. | padding string (reflection.KeyValue.key): - +0x3204 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x3208 | 69 64 | char[2] | id | string literal - +0x320A | 00 | char | 0x00 (0) | string terminator + +0x2ED4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2ED8 | 69 64 | char[2] | id | string literal + +0x2EDA | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x320C | 9C F5 FF FF | SOffset32 | 0xFFFFF59C (-2660) Loc: +0x3C70 | offset to vtable - +0x3210 | 00 00 00 | uint8_t[3] | ... | padding - +0x3213 | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) - +0x3214 | 09 00 00 00 | uint32_t | 0x00000009 (9) | table field `index` (Int) - +0x3218 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x2EDC | C4 F6 FF FF | SOffset32 | 0xFFFFF6C4 (-2364) Loc: +0x3818 | offset to vtable + +0x2EE0 | 00 00 00 | uint8_t[3] | ... | padding + +0x2EE3 | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) + +0x2EE4 | 09 00 00 00 | uint32_t | 0x00000009 (9) | table field `index` (Int) + +0x2EE8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x321C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string - +0x3220 | 70 6F 73 | char[3] | pos | string literal - +0x3223 | 00 | char | 0x00 (0) | string terminator + +0x2EEC | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string + +0x2EF0 | 70 6F 73 | char[3] | pos | string literal + +0x2EF3 | 00 | char | 0x00 (0) | string terminator table (reflection.Object): - +0x3224 | 44 F6 FF FF | SOffset32 | 0xFFFFF644 (-2492) Loc: +0x3BE0 | offset to vtable - +0x3228 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x3248 | offset to field `name` (string) - +0x322C | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x3240 | offset to field `fields` (vector) - +0x3230 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `minalign` (Int) - +0x3234 | 08 00 00 00 | UOffset32 | 0x00000008 (8) Loc: +0x323C | offset to field `documentation` (vector) - +0x3238 | E0 08 00 00 | UOffset32 | 0x000008E0 (2272) Loc: +0x3B18 | offset to field `declaration_file` (string) - -vector (reflection.Object.documentation): - +0x323C | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x2EF4 | 5C F7 FF FF | SOffset32 | 0xFFFFF75C (-2212) Loc: +0x3798 | offset to vtable + +0x2EF8 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x2F10 | offset to field `name` (string) + +0x2EFC | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x2F08 | offset to field `fields` (vector) + +0x2F00 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `minalign` (Int) + +0x2F04 | E0 07 00 00 | UOffset32 | 0x000007E0 (2016) Loc: +0x36E4 | offset to field `declaration_file` (string) vector (reflection.Object.fields): - +0x3240 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x3244 | 3C 00 00 00 | UOffset32 | 0x0000003C (60) Loc: +0x3280 | offset to table[0] + +0x2F08 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x2F0C | 3C 00 00 00 | UOffset32 | 0x0000003C (60) Loc: +0x2F48 | offset to table[0] string (reflection.Object.name): - +0x3248 | 19 00 00 00 | uint32_t | 0x00000019 (25) | length of string - +0x324C | 4D 79 47 61 6D 65 2E 45 | char[25] | MyGame.E | string literal - +0x3254 | 78 61 6D 70 6C 65 2E 52 | | xample.R - +0x325C | 65 66 65 72 72 61 62 6C | | eferrabl - +0x3264 | 65 | | e - +0x3265 | 00 | char | 0x00 (0) | string terminator + +0x2F10 | 19 00 00 00 | uint32_t | 0x00000019 (25) | length of string + +0x2F14 | 4D 79 47 61 6D 65 2E 45 | char[25] | MyGame.E | string literal + +0x2F1C | 78 61 6D 70 6C 65 2E 52 | | xample.R + +0x2F24 | 65 66 65 72 72 61 62 6C | | eferrabl + +0x2F2C | 65 | | e + +0x2F2D | 00 | char | 0x00 (0) | string terminator + +padding: + +0x2F2E | 00 00 | uint8_t[2] | .. | padding vtable (reflection.Field): - +0x3266 | 1A 00 | uint16_t | 0x001A (26) | size of this vtable - +0x3268 | 18 00 | uint16_t | 0x0018 (24) | size of referring table - +0x326A | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0) - +0x326C | 0C 00 | VOffset16 | 0x000C (12) | offset to field `type` (id: 1) - +0x326E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `id` (id: 2) (UShort) - +0x3270 | 06 00 | VOffset16 | 0x0006 (6) | offset to field `offset` (id: 3) - +0x3272 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) (Long) - +0x3274 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) (Double) - +0x3276 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) - +0x3278 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) (Bool) - +0x327A | 05 00 | VOffset16 | 0x0005 (5) | offset to field `key` (id: 8) - +0x327C | 10 00 | VOffset16 | 0x0010 (16) | offset to field `attributes` (id: 9) - +0x327E | 14 00 | VOffset16 | 0x0014 (20) | offset to field `documentation` (id: 10) + +0x2F30 | 18 00 | uint16_t | 0x0018 (24) | size of this vtable + +0x2F32 | 14 00 | uint16_t | 0x0014 (20) | size of referring table + +0x2F34 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0) + +0x2F36 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `type` (id: 1) + +0x2F38 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `id` (id: 2) (UShort) + +0x2F3A | 06 00 | VOffset16 | 0x0006 (6) | offset to field `offset` (id: 3) + +0x2F3C | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) (Long) + +0x2F3E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) (Double) + +0x2F40 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) + +0x2F42 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) (Bool) + +0x2F44 | 05 00 | VOffset16 | 0x0005 (5) | offset to field `key` (id: 8) + +0x2F46 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `attributes` (id: 9) table (reflection.Field): - +0x3280 | 1A 00 00 00 | SOffset32 | 0x0000001A (26) Loc: +0x3266 | offset to vtable - +0x3284 | 00 | uint8_t[1] | . | padding - +0x3285 | 01 | uint8_t | 0x01 (1) | table field `key` (Bool) - +0x3286 | 04 00 | uint16_t | 0x0004 (4) | table field `offset` (UShort) - +0x3288 | 74 00 00 00 | UOffset32 | 0x00000074 (116) Loc: +0x32FC | offset to field `name` (string) - +0x328C | 60 00 00 00 | UOffset32 | 0x00000060 (96) Loc: +0x32EC | offset to field `type` (table) - +0x3290 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x329C | offset to field `attributes` (vector) - +0x3294 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3298 | offset to field `documentation` (vector) - -vector (reflection.Field.documentation): - +0x3298 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x2F48 | 18 00 00 00 | SOffset32 | 0x00000018 (24) Loc: +0x2F30 | offset to vtable + +0x2F4C | 00 | uint8_t[1] | . | padding + +0x2F4D | 01 | uint8_t | 0x01 (1) | table field `key` (Bool) + +0x2F4E | 04 00 | uint16_t | 0x0004 (4) | table field `offset` (UShort) + +0x2F50 | 6C 00 00 00 | UOffset32 | 0x0000006C (108) Loc: +0x2FBC | offset to field `name` (string) + +0x2F54 | 58 00 00 00 | UOffset32 | 0x00000058 (88) Loc: +0x2FAC | offset to field `type` (table) + +0x2F58 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2F5C | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x329C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) - +0x32A0 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x32C4 | offset to table[0] - +0x32A4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x32A8 | offset to table[1] + +0x2F5C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) + +0x2F60 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x2F84 | offset to table[0] + +0x2F64 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2F68 | offset to table[1] table (reflection.KeyValue): - +0x32A8 | 8C F9 FF FF | SOffset32 | 0xFFFFF98C (-1652) Loc: +0x391C | offset to vtable - +0x32AC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x32BC | offset to field `key` (string) - +0x32B0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x32B4 | offset to field `value` (string) + +0x2F68 | A0 F6 FF FF | SOffset32 | 0xFFFFF6A0 (-2400) Loc: +0x38C8 | offset to vtable + +0x2F6C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2F7C | offset to field `key` (string) + +0x2F70 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2F74 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x32B4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x32B8 | 30 | char[1] | 0 | string literal - +0x32B9 | 00 | char | 0x00 (0) | string terminator + +0x2F74 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x2F78 | 30 | char[1] | 0 | string literal + +0x2F79 | 00 | char | 0x00 (0) | string terminator padding: - +0x32BA | 00 00 | uint8_t[2] | .. | padding + +0x2F7A | 00 00 | uint8_t[2] | .. | padding string (reflection.KeyValue.key): - +0x32BC | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string - +0x32C0 | 6B 65 79 | char[3] | key | string literal - +0x32C3 | 00 | char | 0x00 (0) | string terminator + +0x2F7C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string + +0x2F80 | 6B 65 79 | char[3] | key | string literal + +0x2F83 | 00 | char | 0x00 (0) | string terminator table (reflection.KeyValue): - +0x32C4 | A8 F9 FF FF | SOffset32 | 0xFFFFF9A8 (-1624) Loc: +0x391C | offset to vtable - +0x32C8 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x32E0 | offset to field `key` (string) - +0x32CC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x32D0 | offset to field `value` (string) + +0x2F84 | BC F6 FF FF | SOffset32 | 0xFFFFF6BC (-2372) Loc: +0x38C8 | offset to vtable + +0x2F88 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x2FA0 | offset to field `key` (string) + +0x2F8C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2F90 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x32D0 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string - +0x32D4 | 66 6E 76 31 61 5F 36 34 | char[8] | fnv1a_64 | string literal - +0x32DC | 00 | char | 0x00 (0) | string terminator + +0x2F90 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string + +0x2F94 | 66 6E 76 31 61 5F 36 34 | char[8] | fnv1a_64 | string literal + +0x2F9C | 00 | char | 0x00 (0) | string terminator padding: - +0x32DD | 00 00 00 | uint8_t[3] | ... | padding + +0x2F9D | 00 00 00 | uint8_t[3] | ... | padding string (reflection.KeyValue.key): - +0x32E0 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string - +0x32E4 | 68 61 73 68 | char[4] | hash | string literal - +0x32E8 | 00 | char | 0x00 (0) | string terminator + +0x2FA0 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string + +0x2FA4 | 68 61 73 68 | char[4] | hash | string literal + +0x2FA8 | 00 | char | 0x00 (0) | string terminator padding: - +0x32E9 | 00 00 00 | uint8_t[3] | ... | padding + +0x2FA9 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Type): - +0x32EC | 50 F8 FF FF | SOffset32 | 0xFFFFF850 (-1968) Loc: +0x3A9C | offset to vtable - +0x32F0 | 00 00 00 | uint8_t[3] | ... | padding - +0x32F3 | 0A | uint8_t | 0x0A (10) | table field `base_type` (Byte) - +0x32F4 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt) - +0x32F8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x2FAC | 38 F9 FF FF | SOffset32 | 0xFFFFF938 (-1736) Loc: +0x3674 | offset to vtable + +0x2FB0 | 00 00 00 | uint8_t[3] | ... | padding + +0x2FB3 | 0A | uint8_t | 0x0A (10) | table field `base_type` (Byte) + +0x2FB4 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt) + +0x2FB8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x32FC | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x3300 | 69 64 | char[2] | id | string literal - +0x3302 | 00 | char | 0x00 (0) | string terminator + +0x2FBC | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2FC0 | 69 64 | char[2] | id | string literal + +0x2FC2 | 00 | char | 0x00 (0) | string terminator table (reflection.Object): - +0x3304 | 24 F7 FF FF | SOffset32 | 0xFFFFF724 (-2268) Loc: +0x3BE0 | offset to vtable - +0x3308 | 28 00 00 00 | UOffset32 | 0x00000028 (40) Loc: +0x3330 | offset to field `name` (string) - +0x330C | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x3320 | offset to field `fields` (vector) - +0x3310 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `minalign` (Int) - +0x3314 | 08 00 00 00 | UOffset32 | 0x00000008 (8) Loc: +0x331C | offset to field `documentation` (vector) - +0x3318 | 00 08 00 00 | UOffset32 | 0x00000800 (2048) Loc: +0x3B18 | offset to field `declaration_file` (string) - -vector (reflection.Object.documentation): - +0x331C | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x2FC4 | 2C F8 FF FF | SOffset32 | 0xFFFFF82C (-2004) Loc: +0x3798 | offset to vtable + +0x2FC8 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x2FE8 | offset to field `name` (string) + +0x2FCC | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x2FD8 | offset to field `fields` (vector) + +0x2FD0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `minalign` (Int) + +0x2FD4 | 10 07 00 00 | UOffset32 | 0x00000710 (1808) Loc: +0x36E4 | offset to field `declaration_file` (string) vector (reflection.Object.fields): - +0x3320 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) - +0x3324 | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: +0x3364 | offset to table[0] - +0x3328 | CC 00 00 00 | UOffset32 | 0x000000CC (204) Loc: +0x33F4 | offset to table[1] - +0x332C | 98 00 00 00 | UOffset32 | 0x00000098 (152) Loc: +0x33C4 | offset to table[2] + +0x2FD8 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) + +0x2FDC | 3C 00 00 00 | UOffset32 | 0x0000003C (60) Loc: +0x3018 | offset to table[0] + +0x2FE0 | B8 00 00 00 | UOffset32 | 0x000000B8 (184) Loc: +0x3098 | offset to table[1] + +0x2FE4 | 8C 00 00 00 | UOffset32 | 0x0000008C (140) Loc: +0x3070 | offset to table[2] string (reflection.Object.name): - +0x3330 | 13 00 00 00 | uint32_t | 0x00000013 (19) | length of string - +0x3334 | 4D 79 47 61 6D 65 2E 45 | char[19] | MyGame.E | string literal - +0x333C | 78 61 6D 70 6C 65 2E 53 | | xample.S - +0x3344 | 74 61 74 | | tat - +0x3347 | 00 | char | 0x00 (0) | string terminator - -padding: - +0x3348 | 00 00 | uint8_t[2] | .. | padding + +0x2FE8 | 13 00 00 00 | uint32_t | 0x00000013 (19) | length of string + +0x2FEC | 4D 79 47 61 6D 65 2E 45 | char[19] | MyGame.E | string literal + +0x2FF4 | 78 61 6D 70 6C 65 2E 53 | | xample.S + +0x2FFC | 74 61 74 | | tat + +0x2FFF | 00 | char | 0x00 (0) | string terminator vtable (reflection.Field): - +0x334A | 1A 00 | uint16_t | 0x001A (26) | size of this vtable - +0x334C | 1C 00 | uint16_t | 0x001C (28) | size of referring table - +0x334E | 0C 00 | VOffset16 | 0x000C (12) | offset to field `name` (id: 0) - +0x3350 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `type` (id: 1) - +0x3352 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `id` (id: 2) - +0x3354 | 0A 00 | VOffset16 | 0x000A (10) | offset to field `offset` (id: 3) - +0x3356 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) (Long) - +0x3358 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) (Double) - +0x335A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) - +0x335C | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) (Bool) - +0x335E | 07 00 | VOffset16 | 0x0007 (7) | offset to field `key` (id: 8) - +0x3360 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `attributes` (id: 9) - +0x3362 | 18 00 | VOffset16 | 0x0018 (24) | offset to field `documentation` (id: 10) + +0x3000 | 18 00 | uint16_t | 0x0018 (24) | size of this vtable + +0x3002 | 18 00 | uint16_t | 0x0018 (24) | size of referring table + +0x3004 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `name` (id: 0) + +0x3006 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `type` (id: 1) + +0x3008 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `id` (id: 2) + +0x300A | 0A 00 | VOffset16 | 0x000A (10) | offset to field `offset` (id: 3) + +0x300C | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) (Long) + +0x300E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) (Double) + +0x3010 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) + +0x3012 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) (Bool) + +0x3014 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `key` (id: 8) + +0x3016 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `attributes` (id: 9) table (reflection.Field): - +0x3364 | 1A 00 00 00 | SOffset32 | 0x0000001A (26) Loc: +0x334A | offset to vtable - +0x3368 | 00 00 00 | uint8_t[3] | ... | padding - +0x336B | 01 | uint8_t | 0x01 (1) | table field `key` (Bool) - +0x336C | 02 00 | uint16_t | 0x0002 (2) | table field `id` (UShort) - +0x336E | 08 00 | uint16_t | 0x0008 (8) | table field `offset` (UShort) - +0x3370 | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: +0x33B8 | offset to field `name` (string) - +0x3374 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x33A8 | offset to field `type` (table) - +0x3378 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x3384 | offset to field `attributes` (vector) - +0x337C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3380 | offset to field `documentation` (vector) - -vector (reflection.Field.documentation): - +0x3380 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x3018 | 18 00 00 00 | SOffset32 | 0x00000018 (24) Loc: +0x3000 | offset to vtable + +0x301C | 00 00 00 | uint8_t[3] | ... | padding + +0x301F | 01 | uint8_t | 0x01 (1) | table field `key` (Bool) + +0x3020 | 02 00 | uint16_t | 0x0002 (2) | table field `id` (UShort) + +0x3022 | 08 00 | uint16_t | 0x0008 (8) | table field `offset` (UShort) + +0x3024 | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: +0x3064 | offset to field `name` (string) + +0x3028 | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: +0x3054 | offset to field `type` (table) + +0x302C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3030 | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x3384 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x3388 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x338C | offset to table[0] + +0x3030 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x3034 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3038 | offset to table[0] table (reflection.KeyValue): - +0x338C | 70 FA FF FF | SOffset32 | 0xFFFFFA70 (-1424) Loc: +0x391C | offset to vtable - +0x3390 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x33A0 | offset to field `key` (string) - +0x3394 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3398 | offset to field `value` (string) + +0x3038 | 70 F7 FF FF | SOffset32 | 0xFFFFF770 (-2192) Loc: +0x38C8 | offset to vtable + +0x303C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x304C | offset to field `key` (string) + +0x3040 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3044 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x3398 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x339C | 30 | char[1] | 0 | string literal - +0x339D | 00 | char | 0x00 (0) | string terminator + +0x3044 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x3048 | 30 | char[1] | 0 | string literal + +0x3049 | 00 | char | 0x00 (0) | string terminator padding: - +0x339E | 00 00 | uint8_t[2] | .. | padding + +0x304A | 00 00 | uint8_t[2] | .. | padding string (reflection.KeyValue.key): - +0x33A0 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string - +0x33A4 | 6B 65 79 | char[3] | key | string literal - +0x33A7 | 00 | char | 0x00 (0) | string terminator + +0x304C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string + +0x3050 | 6B 65 79 | char[3] | key | string literal + +0x3053 | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x33A8 | 0C F9 FF FF | SOffset32 | 0xFFFFF90C (-1780) Loc: +0x3A9C | offset to vtable - +0x33AC | 00 00 00 | uint8_t[3] | ... | padding - +0x33AF | 06 | uint8_t | 0x06 (6) | table field `base_type` (Byte) - +0x33B0 | 02 00 00 00 | uint32_t | 0x00000002 (2) | table field `base_size` (UInt) - +0x33B4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x3054 | E0 F9 FF FF | SOffset32 | 0xFFFFF9E0 (-1568) Loc: +0x3674 | offset to vtable + +0x3058 | 00 00 00 | uint8_t[3] | ... | padding + +0x305B | 06 | uint8_t | 0x06 (6) | table field `base_type` (Byte) + +0x305C | 02 00 00 00 | uint32_t | 0x00000002 (2) | table field `base_size` (UInt) + +0x3060 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x33B8 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string - +0x33BC | 63 6F 75 6E 74 | char[5] | count | string literal - +0x33C1 | 00 | char | 0x00 (0) | string terminator + +0x3064 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string + +0x3068 | 63 6F 75 6E 74 | char[5] | count | string literal + +0x306D | 00 | char | 0x00 (0) | string terminator padding: - +0x33C2 | 00 00 | uint8_t[2] | .. | padding + +0x306E | 00 00 | uint8_t[2] | .. | padding table (reflection.Field): - +0x33C4 | 76 FB FF FF | SOffset32 | 0xFFFFFB76 (-1162) Loc: +0x384E | offset to vtable - +0x33C8 | 01 00 | uint16_t | 0x0001 (1) | table field `id` (UShort) - +0x33CA | 06 00 | uint16_t | 0x0006 (6) | table field `offset` (UShort) - +0x33CC | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x33EC | offset to field `name` (string) - +0x33D0 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x33DC | offset to field `type` (table) - +0x33D4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x33D8 | offset to field `documentation` (vector) - -vector (reflection.Field.documentation): - +0x33D8 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x3070 | F4 FB FF FF | SOffset32 | 0xFFFFFBF4 (-1036) Loc: +0x347C | offset to vtable + +0x3074 | 01 00 | uint16_t | 0x0001 (1) | table field `id` (UShort) + +0x3076 | 06 00 | uint16_t | 0x0006 (6) | table field `offset` (UShort) + +0x3078 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x3090 | offset to field `name` (string) + +0x307C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3080 | offset to field `type` (table) table (reflection.Type): - +0x33DC | 40 F9 FF FF | SOffset32 | 0xFFFFF940 (-1728) Loc: +0x3A9C | offset to vtable - +0x33E0 | 00 00 00 | uint8_t[3] | ... | padding - +0x33E3 | 09 | uint8_t | 0x09 (9) | table field `base_type` (Byte) - +0x33E4 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt) - +0x33E8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x3080 | 0C FA FF FF | SOffset32 | 0xFFFFFA0C (-1524) Loc: +0x3674 | offset to vtable + +0x3084 | 00 00 00 | uint8_t[3] | ... | padding + +0x3087 | 09 | uint8_t | 0x09 (9) | table field `base_type` (Byte) + +0x3088 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt) + +0x308C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x33EC | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string - +0x33F0 | 76 61 6C | char[3] | val | string literal - +0x33F3 | 00 | char | 0x00 (0) | string terminator + +0x3090 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string + +0x3094 | 76 61 6C | char[3] | val | string literal + +0x3097 | 00 | char | 0x00 (0) | string terminator table (reflection.Field): - +0x33F4 | B8 F7 FF FF | SOffset32 | 0xFFFFF7B8 (-2120) Loc: +0x3C3C | offset to vtable - +0x33F8 | 00 | uint8_t[1] | . | padding - +0x33F9 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x33FA | 04 00 | uint16_t | 0x0004 (4) | table field `offset` (UShort) - +0x33FC | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: +0x3418 | offset to field `name` (string) - +0x3400 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x340C | offset to field `type` (table) - +0x3404 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3408 | offset to field `documentation` (vector) - -vector (reflection.Field.documentation): - +0x3408 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x3098 | AC F8 FF FF | SOffset32 | 0xFFFFF8AC (-1876) Loc: +0x37EC | offset to vtable + +0x309C | 00 | uint8_t[1] | . | padding + +0x309D | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x309E | 04 00 | uint16_t | 0x0004 (4) | table field `offset` (UShort) + +0x30A0 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x30B4 | offset to field `name` (string) + +0x30A4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x30A8 | offset to field `type` (table) table (reflection.Type): - +0x340C | B8 F6 FF FF | SOffset32 | 0xFFFFF6B8 (-2376) Loc: +0x3D54 | offset to vtable - +0x3410 | 00 00 00 | uint8_t[3] | ... | padding - +0x3413 | 0D | uint8_t | 0x0D (13) | table field `base_type` (Byte) - +0x3414 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x30A8 | CC F7 FF FF | SOffset32 | 0xFFFFF7CC (-2100) Loc: +0x38DC | offset to vtable + +0x30AC | 00 00 00 | uint8_t[3] | ... | padding + +0x30AF | 0D | uint8_t | 0x0D (13) | table field `base_type` (Byte) + +0x30B0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x3418 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x341C | 69 64 | char[2] | id | string literal - +0x341E | 00 | char | 0x00 (0) | string terminator + +0x30B4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x30B8 | 69 64 | char[2] | id | string literal + +0x30BA | 00 | char | 0x00 (0) | string terminator table (reflection.Object): - +0x3420 | 88 F7 FF FF | SOffset32 | 0xFFFFF788 (-2168) Loc: +0x3C98 | offset to vtable - +0x3424 | 00 00 00 | uint8_t[3] | ... | padding - +0x3427 | 01 | uint8_t | 0x01 (1) | table field `is_struct` (Bool) - +0x3428 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x344C | offset to field `name` (string) - +0x342C | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x3444 | offset to field `fields` (vector) - +0x3430 | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `minalign` (Int) - +0x3434 | 14 00 00 00 | uint32_t | 0x00000014 (20) | table field `bytesize` (Int) - +0x3438 | 08 00 00 00 | UOffset32 | 0x00000008 (8) Loc: +0x3440 | offset to field `documentation` (vector) - +0x343C | DC 06 00 00 | UOffset32 | 0x000006DC (1756) Loc: +0x3B18 | offset to field `declaration_file` (string) - -vector (reflection.Object.documentation): - +0x3440 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x30BC | 7C F8 FF FF | SOffset32 | 0xFFFFF87C (-1924) Loc: +0x3840 | offset to vtable + +0x30C0 | 00 00 00 | uint8_t[3] | ... | padding + +0x30C3 | 01 | uint8_t | 0x01 (1) | table field `is_struct` (Bool) + +0x30C4 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: +0x30E0 | offset to field `name` (string) + +0x30C8 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x30D8 | offset to field `fields` (vector) + +0x30CC | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `minalign` (Int) + +0x30D0 | 14 00 00 00 | uint32_t | 0x00000014 (20) | table field `bytesize` (Int) + +0x30D4 | 10 06 00 00 | UOffset32 | 0x00000610 (1552) Loc: +0x36E4 | offset to field `declaration_file` (string) vector (reflection.Object.fields): - +0x3444 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x3448 | 30 00 00 00 | UOffset32 | 0x00000030 (48) Loc: +0x3478 | offset to table[0] + +0x30D8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x30DC | 30 00 00 00 | UOffset32 | 0x00000030 (48) Loc: +0x310C | offset to table[0] string (reflection.Object.name): - +0x344C | 27 00 00 00 | uint32_t | 0x00000027 (39) | length of string - +0x3450 | 4D 79 47 61 6D 65 2E 45 | char[39] | MyGame.E | string literal - +0x3458 | 78 61 6D 70 6C 65 2E 53 | | xample.S - +0x3460 | 74 72 75 63 74 4F 66 53 | | tructOfS - +0x3468 | 74 72 75 63 74 73 4F 66 | | tructsOf - +0x3470 | 53 74 72 75 63 74 73 | | Structs - +0x3477 | 00 | char | 0x00 (0) | string terminator + +0x30E0 | 27 00 00 00 | uint32_t | 0x00000027 (39) | length of string + +0x30E4 | 4D 79 47 61 6D 65 2E 45 | char[39] | MyGame.E | string literal + +0x30EC | 78 61 6D 70 6C 65 2E 53 | | xample.S + +0x30F4 | 74 72 75 63 74 4F 66 53 | | tructOfS + +0x30FC | 74 72 75 63 74 73 4F 66 | | tructsOf + +0x3104 | 53 74 72 75 63 74 73 | | Structs + +0x310B | 00 | char | 0x00 (0) | string terminator table (reflection.Field): - +0x3478 | F4 FE FF FF | SOffset32 | 0xFFFFFEF4 (-268) Loc: +0x3584 | offset to vtable - +0x347C | 00 00 00 | uint8_t[3] | ... | padding - +0x347F | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x3480 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x34A0 | offset to field `name` (string) - +0x3484 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x3490 | offset to field `type` (table) - +0x3488 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x348C | offset to field `documentation` (vector) - -vector (reflection.Field.documentation): - +0x348C | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x310C | 14 FF FF FF | SOffset32 | 0xFFFFFF14 (-236) Loc: +0x31F8 | offset to vtable + +0x3110 | 00 00 00 | uint8_t[3] | ... | padding + +0x3113 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x3114 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x312C | offset to field `name` (string) + +0x3118 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x311C | offset to field `type` (table) table (reflection.Type): - +0x3490 | 20 F8 FF FF | SOffset32 | 0xFFFFF820 (-2016) Loc: +0x3C70 | offset to vtable - +0x3494 | 00 00 00 | uint8_t[3] | ... | padding - +0x3497 | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) - +0x3498 | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `index` (Int) - +0x349C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x311C | 04 F9 FF FF | SOffset32 | 0xFFFFF904 (-1788) Loc: +0x3818 | offset to vtable + +0x3120 | 00 00 00 | uint8_t[3] | ... | padding + +0x3123 | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) + +0x3124 | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `index` (Int) + +0x3128 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x34A0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x34A4 | 61 | char[1] | a | string literal - +0x34A5 | 00 | char | 0x00 (0) | string terminator + +0x312C | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x3130 | 61 | char[1] | a | string literal + +0x3131 | 00 | char | 0x00 (0) | string terminator padding: - +0x34A6 | 00 00 | uint8_t[2] | .. | padding + +0x3132 | 00 00 | uint8_t[2] | .. | padding table (reflection.Object): - +0x34A8 | 10 F8 FF FF | SOffset32 | 0xFFFFF810 (-2032) Loc: +0x3C98 | offset to vtable - +0x34AC | 00 00 00 | uint8_t[3] | ... | padding - +0x34AF | 01 | uint8_t | 0x01 (1) | table field `is_struct` (Bool) - +0x34B0 | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: +0x34DC | offset to field `name` (string) - +0x34B4 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x34CC | offset to field `fields` (vector) - +0x34B8 | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `minalign` (Int) - +0x34BC | 14 00 00 00 | uint32_t | 0x00000014 (20) | table field `bytesize` (Int) - +0x34C0 | 08 00 00 00 | UOffset32 | 0x00000008 (8) Loc: +0x34C8 | offset to field `documentation` (vector) - +0x34C4 | 54 06 00 00 | UOffset32 | 0x00000654 (1620) Loc: +0x3B18 | offset to field `declaration_file` (string) - -vector (reflection.Object.documentation): - +0x34C8 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x3134 | F4 F8 FF FF | SOffset32 | 0xFFFFF8F4 (-1804) Loc: +0x3840 | offset to vtable + +0x3138 | 00 00 00 | uint8_t[3] | ... | padding + +0x313B | 01 | uint8_t | 0x01 (1) | table field `is_struct` (Bool) + +0x313C | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x3160 | offset to field `name` (string) + +0x3140 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x3150 | offset to field `fields` (vector) + +0x3144 | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `minalign` (Int) + +0x3148 | 14 00 00 00 | uint32_t | 0x00000014 (20) | table field `bytesize` (Int) + +0x314C | 98 05 00 00 | UOffset32 | 0x00000598 (1432) Loc: +0x36E4 | offset to field `declaration_file` (string) vector (reflection.Object.fields): - +0x34CC | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) - +0x34D0 | D0 00 00 00 | UOffset32 | 0x000000D0 (208) Loc: +0x35A0 | offset to table[0] - +0x34D4 | 7C 00 00 00 | UOffset32 | 0x0000007C (124) Loc: +0x3550 | offset to table[1] - +0x34D8 | 28 00 00 00 | UOffset32 | 0x00000028 (40) Loc: +0x3500 | offset to table[2] + +0x3150 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) + +0x3154 | C0 00 00 00 | UOffset32 | 0x000000C0 (192) Loc: +0x3214 | offset to table[0] + +0x3158 | 74 00 00 00 | UOffset32 | 0x00000074 (116) Loc: +0x31CC | offset to table[1] + +0x315C | 28 00 00 00 | UOffset32 | 0x00000028 (40) Loc: +0x3184 | offset to table[2] string (reflection.Object.name): - +0x34DC | 1E 00 00 00 | uint32_t | 0x0000001E (30) | length of string - +0x34E0 | 4D 79 47 61 6D 65 2E 45 | char[30] | MyGame.E | string literal - +0x34E8 | 78 61 6D 70 6C 65 2E 53 | | xample.S - +0x34F0 | 74 72 75 63 74 4F 66 53 | | tructOfS - +0x34F8 | 74 72 75 63 74 73 | | tructs - +0x34FE | 00 | char | 0x00 (0) | string terminator + +0x3160 | 1E 00 00 00 | uint32_t | 0x0000001E (30) | length of string + +0x3164 | 4D 79 47 61 6D 65 2E 45 | char[30] | MyGame.E | string literal + +0x316C | 78 61 6D 70 6C 65 2E 53 | | xample.S + +0x3174 | 74 72 75 63 74 4F 66 53 | | tructOfS + +0x317C | 74 72 75 63 74 73 | | tructs + +0x3182 | 00 | char | 0x00 (0) | string terminator table (reflection.Field): - +0x3500 | CC FF FF FF | SOffset32 | 0xFFFFFFCC (-52) Loc: +0x3534 | offset to vtable - +0x3504 | 00 00 00 | uint8_t[3] | ... | padding - +0x3507 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x3508 | 02 00 | uint16_t | 0x0002 (2) | table field `id` (UShort) - +0x350A | 0C 00 | uint16_t | 0x000C (12) | table field `offset` (UShort) - +0x350C | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x352C | offset to field `name` (string) - +0x3510 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x351C | offset to field `type` (table) - +0x3514 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3518 | offset to field `documentation` (vector) - -vector (reflection.Field.documentation): - +0x3518 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x3184 | D4 FF FF FF | SOffset32 | 0xFFFFFFD4 (-44) Loc: +0x31B0 | offset to vtable + +0x3188 | 00 00 00 | uint8_t[3] | ... | padding + +0x318B | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x318C | 02 00 | uint16_t | 0x0002 (2) | table field `id` (UShort) + +0x318E | 0C 00 | uint16_t | 0x000C (12) | table field `offset` (UShort) + +0x3190 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x31A8 | offset to field `name` (string) + +0x3194 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3198 | offset to field `type` (table) table (reflection.Type): - +0x351C | AC F8 FF FF | SOffset32 | 0xFFFFF8AC (-1876) Loc: +0x3C70 | offset to vtable - +0x3520 | 00 00 00 | uint8_t[3] | ... | padding - +0x3523 | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) - +0x3524 | 00 00 00 00 | uint32_t | 0x00000000 (0) | table field `index` (Int) - +0x3528 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x3198 | 80 F9 FF FF | SOffset32 | 0xFFFFF980 (-1664) Loc: +0x3818 | offset to vtable + +0x319C | 00 00 00 | uint8_t[3] | ... | padding + +0x319F | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) + +0x31A0 | 00 00 00 00 | uint32_t | 0x00000000 (0) | table field `index` (Int) + +0x31A4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x352C | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x3530 | 63 | char[1] | c | string literal - +0x3531 | 00 | char | 0x00 (0) | string terminator + +0x31A8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x31AC | 63 | char[1] | c | string literal + +0x31AD | 00 | char | 0x00 (0) | string terminator padding: - +0x3532 | 00 00 | uint8_t[2] | .. | padding + +0x31AE | 00 00 | uint8_t[2] | .. | padding vtable (reflection.Field): - +0x3534 | 1C 00 | uint16_t | 0x001C (28) | size of this vtable - +0x3536 | 18 00 | uint16_t | 0x0018 (24) | size of referring table - +0x3538 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `name` (id: 0) - +0x353A | 10 00 | VOffset16 | 0x0010 (16) | offset to field `type` (id: 1) - +0x353C | 08 00 | VOffset16 | 0x0008 (8) | offset to field `id` (id: 2) - +0x353E | 0A 00 | VOffset16 | 0x000A (10) | offset to field `offset` (id: 3) - +0x3540 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) (Long) - +0x3542 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) (Double) - +0x3544 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) - +0x3546 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) (Bool) - +0x3548 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 8) (Bool) - +0x354A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `attributes` (id: 9) (Vector) - +0x354C | 14 00 | VOffset16 | 0x0014 (20) | offset to field `documentation` (id: 10) - +0x354E | 07 00 | VOffset16 | 0x0007 (7) | offset to field `optional` (id: 11) + +0x31B0 | 1C 00 | uint16_t | 0x001C (28) | size of this vtable + +0x31B2 | 14 00 | uint16_t | 0x0014 (20) | size of referring table + +0x31B4 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `name` (id: 0) + +0x31B6 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `type` (id: 1) + +0x31B8 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `id` (id: 2) + +0x31BA | 0A 00 | VOffset16 | 0x000A (10) | offset to field `offset` (id: 3) + +0x31BC | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) (Long) + +0x31BE | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) (Double) + +0x31C0 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) + +0x31C2 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) (Bool) + +0x31C4 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 8) (Bool) + +0x31C6 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `attributes` (id: 9) (Vector) + +0x31C8 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `documentation` (id: 10) (Vector) + +0x31CA | 07 00 | VOffset16 | 0x0007 (7) | offset to field `optional` (id: 11) table (reflection.Field): - +0x3550 | 1C 00 00 00 | SOffset32 | 0x0000001C (28) Loc: +0x3534 | offset to vtable - +0x3554 | 00 00 00 | uint8_t[3] | ... | padding - +0x3557 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x3558 | 01 00 | uint16_t | 0x0001 (1) | table field `id` (UShort) - +0x355A | 08 00 | uint16_t | 0x0008 (8) | table field `offset` (UShort) - +0x355C | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x357C | offset to field `name` (string) - +0x3560 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x356C | offset to field `type` (table) - +0x3564 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3568 | offset to field `documentation` (vector) - -vector (reflection.Field.documentation): - +0x3568 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x31CC | 1C 00 00 00 | SOffset32 | 0x0000001C (28) Loc: +0x31B0 | offset to vtable + +0x31D0 | 00 00 00 | uint8_t[3] | ... | padding + +0x31D3 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x31D4 | 01 00 | uint16_t | 0x0001 (1) | table field `id` (UShort) + +0x31D6 | 08 00 | uint16_t | 0x0008 (8) | table field `offset` (UShort) + +0x31D8 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x31F0 | offset to field `name` (string) + +0x31DC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x31E0 | offset to field `type` (table) table (reflection.Type): - +0x356C | FC F8 FF FF | SOffset32 | 0xFFFFF8FC (-1796) Loc: +0x3C70 | offset to vtable - +0x3570 | 00 00 00 | uint8_t[3] | ... | padding - +0x3573 | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) - +0x3574 | 06 00 00 00 | uint32_t | 0x00000006 (6) | table field `index` (Int) - +0x3578 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x31E0 | C8 F9 FF FF | SOffset32 | 0xFFFFF9C8 (-1592) Loc: +0x3818 | offset to vtable + +0x31E4 | 00 00 00 | uint8_t[3] | ... | padding + +0x31E7 | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) + +0x31E8 | 06 00 00 00 | uint32_t | 0x00000006 (6) | table field `index` (Int) + +0x31EC | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x357C | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x3580 | 62 | char[1] | b | string literal - +0x3581 | 00 | char | 0x00 (0) | string terminator + +0x31F0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x31F4 | 62 | char[1] | b | string literal + +0x31F5 | 00 | char | 0x00 (0) | string terminator padding: - +0x3582 | 00 00 | uint8_t[2] | .. | padding + +0x31F6 | 00 00 | uint8_t[2] | .. | padding vtable (reflection.Field): - +0x3584 | 1C 00 | uint16_t | 0x001C (28) | size of this vtable - +0x3586 | 14 00 | uint16_t | 0x0014 (20) | size of referring table - +0x3588 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0) - +0x358A | 0C 00 | VOffset16 | 0x000C (12) | offset to field `type` (id: 1) - +0x358C | 00 00 | VOffset16 | 0x0000 (0) | offset to field `id` (id: 2) (UShort) - +0x358E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `offset` (id: 3) (UShort) - +0x3590 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) (Long) - +0x3592 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) (Double) - +0x3594 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) - +0x3596 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) (Bool) - +0x3598 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 8) (Bool) - +0x359A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `attributes` (id: 9) (Vector) - +0x359C | 10 00 | VOffset16 | 0x0010 (16) | offset to field `documentation` (id: 10) - +0x359E | 07 00 | VOffset16 | 0x0007 (7) | offset to field `optional` (id: 11) + +0x31F8 | 1C 00 | uint16_t | 0x001C (28) | size of this vtable + +0x31FA | 10 00 | uint16_t | 0x0010 (16) | size of referring table + +0x31FC | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0) + +0x31FE | 0C 00 | VOffset16 | 0x000C (12) | offset to field `type` (id: 1) + +0x3200 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `id` (id: 2) (UShort) + +0x3202 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `offset` (id: 3) (UShort) + +0x3204 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) (Long) + +0x3206 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) (Double) + +0x3208 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) + +0x320A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) (Bool) + +0x320C | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 8) (Bool) + +0x320E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `attributes` (id: 9) (Vector) + +0x3210 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `documentation` (id: 10) (Vector) + +0x3212 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `optional` (id: 11) table (reflection.Field): - +0x35A0 | 1C 00 00 00 | SOffset32 | 0x0000001C (28) Loc: +0x3584 | offset to vtable - +0x35A4 | 00 00 00 | uint8_t[3] | ... | padding - +0x35A7 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x35A8 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x35C8 | offset to field `name` (string) - +0x35AC | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x35B8 | offset to field `type` (table) - +0x35B0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x35B4 | offset to field `documentation` (vector) - -vector (reflection.Field.documentation): - +0x35B4 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x3214 | 1C 00 00 00 | SOffset32 | 0x0000001C (28) Loc: +0x31F8 | offset to vtable + +0x3218 | 00 00 00 | uint8_t[3] | ... | padding + +0x321B | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x321C | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x3234 | offset to field `name` (string) + +0x3220 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3224 | offset to field `type` (table) table (reflection.Type): - +0x35B8 | 48 F9 FF FF | SOffset32 | 0xFFFFF948 (-1720) Loc: +0x3C70 | offset to vtable - +0x35BC | 00 00 00 | uint8_t[3] | ... | padding - +0x35BF | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) - +0x35C0 | 00 00 00 00 | uint32_t | 0x00000000 (0) | table field `index` (Int) - +0x35C4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x3224 | 0C FA FF FF | SOffset32 | 0xFFFFFA0C (-1524) Loc: +0x3818 | offset to vtable + +0x3228 | 00 00 00 | uint8_t[3] | ... | padding + +0x322B | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) + +0x322C | 00 00 00 00 | uint32_t | 0x00000000 (0) | table field `index` (Int) + +0x3230 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x35C8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x35CC | 61 | char[1] | a | string literal - +0x35CD | 00 | char | 0x00 (0) | string terminator + +0x3234 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x3238 | 61 | char[1] | a | string literal + +0x3239 | 00 | char | 0x00 (0) | string terminator padding: - +0x35CE | 00 00 | uint8_t[2] | .. | padding + +0x323A | 00 00 | uint8_t[2] | .. | padding table (reflection.Object): - +0x35D0 | 38 F9 FF FF | SOffset32 | 0xFFFFF938 (-1736) Loc: +0x3C98 | offset to vtable - +0x35D4 | 00 00 00 | uint8_t[3] | ... | padding - +0x35D7 | 01 | uint8_t | 0x01 (1) | table field `is_struct` (Bool) - +0x35D8 | 28 00 00 00 | UOffset32 | 0x00000028 (40) Loc: +0x3600 | offset to field `name` (string) - +0x35DC | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x35F4 | offset to field `fields` (vector) - +0x35E0 | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `minalign` (Int) - +0x35E4 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `bytesize` (Int) - +0x35E8 | 08 00 00 00 | UOffset32 | 0x00000008 (8) Loc: +0x35F0 | offset to field `documentation` (vector) - +0x35EC | 2C 05 00 00 | UOffset32 | 0x0000052C (1324) Loc: +0x3B18 | offset to field `declaration_file` (string) - -vector (reflection.Object.documentation): - +0x35F0 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x323C | FC F9 FF FF | SOffset32 | 0xFFFFF9FC (-1540) Loc: +0x3840 | offset to vtable + +0x3240 | 00 00 00 | uint8_t[3] | ... | padding + +0x3243 | 01 | uint8_t | 0x01 (1) | table field `is_struct` (Bool) + +0x3244 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x3264 | offset to field `name` (string) + +0x3248 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x3258 | offset to field `fields` (vector) + +0x324C | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `minalign` (Int) + +0x3250 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `bytesize` (Int) + +0x3254 | 90 04 00 00 | UOffset32 | 0x00000490 (1168) Loc: +0x36E4 | offset to field `declaration_file` (string) vector (reflection.Object.fields): - +0x35F4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) - +0x35F8 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x361C | offset to table[0] - +0x35FC | 6C 00 00 00 | UOffset32 | 0x0000006C (108) Loc: +0x3668 | offset to table[1] + +0x3258 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) + +0x325C | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x3280 | offset to table[0] + +0x3260 | 64 00 00 00 | UOffset32 | 0x00000064 (100) Loc: +0x32C4 | offset to table[1] string (reflection.Object.name): - +0x3600 | 16 00 00 00 | uint32_t | 0x00000016 (22) | length of string - +0x3604 | 4D 79 47 61 6D 65 2E 45 | char[22] | MyGame.E | string literal - +0x360C | 78 61 6D 70 6C 65 2E 41 | | xample.A - +0x3614 | 62 69 6C 69 74 79 | | bility - +0x361A | 00 | char | 0x00 (0) | string terminator + +0x3264 | 16 00 00 00 | uint32_t | 0x00000016 (22) | length of string + +0x3268 | 4D 79 47 61 6D 65 2E 45 | char[22] | MyGame.E | string literal + +0x3270 | 78 61 6D 70 6C 65 2E 41 | | xample.A + +0x3278 | 62 69 6C 69 74 79 | | bility + +0x327E | 00 | char | 0x00 (0) | string terminator table (reflection.Field): - +0x361C | CE FD FF FF | SOffset32 | 0xFFFFFDCE (-562) Loc: +0x384E | offset to vtable - +0x3620 | 01 00 | uint16_t | 0x0001 (1) | table field `id` (UShort) - +0x3622 | 04 00 | uint16_t | 0x0004 (4) | table field `offset` (UShort) - +0x3624 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: +0x3640 | offset to field `name` (string) - +0x3628 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x3634 | offset to field `type` (table) - +0x362C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3630 | offset to field `documentation` (vector) - -vector (reflection.Field.documentation): - +0x3630 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x3280 | 04 FE FF FF | SOffset32 | 0xFFFFFE04 (-508) Loc: +0x347C | offset to vtable + +0x3284 | 01 00 | uint16_t | 0x0001 (1) | table field `id` (UShort) + +0x3286 | 04 00 | uint16_t | 0x0004 (4) | table field `offset` (UShort) + +0x3288 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x329C | offset to field `name` (string) + +0x328C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3290 | offset to field `type` (table) table (reflection.Type): - +0x3634 | E0 F8 FF FF | SOffset32 | 0xFFFFF8E0 (-1824) Loc: +0x3D54 | offset to vtable - +0x3638 | 00 00 00 | uint8_t[3] | ... | padding - +0x363B | 08 | uint8_t | 0x08 (8) | table field `base_type` (Byte) - +0x363C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x3290 | B4 F9 FF FF | SOffset32 | 0xFFFFF9B4 (-1612) Loc: +0x38DC | offset to vtable + +0x3294 | 00 00 00 | uint8_t[3] | ... | padding + +0x3297 | 08 | uint8_t | 0x08 (8) | table field `base_type` (Byte) + +0x3298 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x3640 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string - +0x3644 | 64 69 73 74 61 6E 63 65 | char[8] | distance | string literal - +0x364C | 00 | char | 0x00 (0) | string terminator + +0x329C | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string + +0x32A0 | 64 69 73 74 61 6E 63 65 | char[8] | distance | string literal + +0x32A8 | 00 | char | 0x00 (0) | string terminator + +padding: + +0x32A9 | 00 00 00 | uint8_t[3] | ... | padding vtable (reflection.Field): - +0x364E | 1A 00 | uint16_t | 0x001A (26) | size of this vtable - +0x3650 | 18 00 | uint16_t | 0x0018 (24) | size of referring table - +0x3652 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0) - +0x3654 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `type` (id: 1) - +0x3656 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `id` (id: 2) (UShort) - +0x3658 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `offset` (id: 3) (UShort) - +0x365A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) (Long) - +0x365C | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) (Double) - +0x365E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) - +0x3660 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) (Bool) - +0x3662 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `key` (id: 8) - +0x3664 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `attributes` (id: 9) - +0x3666 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `documentation` (id: 10) + +0x32AC | 18 00 | uint16_t | 0x0018 (24) | size of this vtable + +0x32AE | 14 00 | uint16_t | 0x0014 (20) | size of referring table + +0x32B0 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0) + +0x32B2 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `type` (id: 1) + +0x32B4 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `id` (id: 2) (UShort) + +0x32B6 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `offset` (id: 3) (UShort) + +0x32B8 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) (Long) + +0x32BA | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) (Double) + +0x32BC | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) + +0x32BE | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) (Bool) + +0x32C0 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `key` (id: 8) + +0x32C2 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `attributes` (id: 9) table (reflection.Field): - +0x3668 | 1A 00 00 00 | SOffset32 | 0x0000001A (26) Loc: +0x364E | offset to vtable - +0x366C | 00 00 00 | uint8_t[3] | ... | padding - +0x366F | 01 | uint8_t | 0x01 (1) | table field `key` (Bool) - +0x3670 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x36B4 | offset to field `name` (string) - +0x3674 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x36A8 | offset to field `type` (table) - +0x3678 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x3684 | offset to field `attributes` (vector) - +0x367C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3680 | offset to field `documentation` (vector) - -vector (reflection.Field.documentation): - +0x3680 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x32C4 | 18 00 00 00 | SOffset32 | 0x00000018 (24) Loc: +0x32AC | offset to vtable + +0x32C8 | 00 00 00 | uint8_t[3] | ... | padding + +0x32CB | 01 | uint8_t | 0x01 (1) | table field `key` (Bool) + +0x32CC | 3C 00 00 00 | UOffset32 | 0x0000003C (60) Loc: +0x3308 | offset to field `name` (string) + +0x32D0 | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: +0x32FC | offset to field `type` (table) + +0x32D4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x32D8 | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x3684 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x3688 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x368C | offset to table[0] + +0x32D8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x32DC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x32E0 | offset to table[0] table (reflection.KeyValue): - +0x368C | 70 FD FF FF | SOffset32 | 0xFFFFFD70 (-656) Loc: +0x391C | offset to vtable - +0x3690 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x36A0 | offset to field `key` (string) - +0x3694 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3698 | offset to field `value` (string) + +0x32E0 | 18 FA FF FF | SOffset32 | 0xFFFFFA18 (-1512) Loc: +0x38C8 | offset to vtable + +0x32E4 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x32F4 | offset to field `key` (string) + +0x32E8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x32EC | offset to field `value` (string) string (reflection.KeyValue.value): - +0x3698 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x369C | 30 | char[1] | 0 | string literal - +0x369D | 00 | char | 0x00 (0) | string terminator + +0x32EC | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x32F0 | 30 | char[1] | 0 | string literal + +0x32F1 | 00 | char | 0x00 (0) | string terminator padding: - +0x369E | 00 00 | uint8_t[2] | .. | padding + +0x32F2 | 00 00 | uint8_t[2] | .. | padding string (reflection.KeyValue.key): - +0x36A0 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string - +0x36A4 | 6B 65 79 | char[3] | key | string literal - +0x36A7 | 00 | char | 0x00 (0) | string terminator + +0x32F4 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string + +0x32F8 | 6B 65 79 | char[3] | key | string literal + +0x32FB | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x36A8 | 54 F9 FF FF | SOffset32 | 0xFFFFF954 (-1708) Loc: +0x3D54 | offset to vtable - +0x36AC | 00 00 00 | uint8_t[3] | ... | padding - +0x36AF | 08 | uint8_t | 0x08 (8) | table field `base_type` (Byte) - +0x36B0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x32FC | 20 FA FF FF | SOffset32 | 0xFFFFFA20 (-1504) Loc: +0x38DC | offset to vtable + +0x3300 | 00 00 00 | uint8_t[3] | ... | padding + +0x3303 | 08 | uint8_t | 0x08 (8) | table field `base_type` (Byte) + +0x3304 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x36B4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x36B8 | 69 64 | char[2] | id | string literal - +0x36BA | 00 | char | 0x00 (0) | string terminator + +0x3308 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x330C | 69 64 | char[2] | id | string literal + +0x330E | 00 | char | 0x00 (0) | string terminator vtable (reflection.Object): - +0x36BC | 14 00 | uint16_t | 0x0014 (20) | size of this vtable - +0x36BE | 24 00 | uint16_t | 0x0024 (36) | size of referring table - +0x36C0 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0) - +0x36C2 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `fields` (id: 1) - +0x36C4 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `is_struct` (id: 2) - +0x36C6 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `minalign` (id: 3) - +0x36C8 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `bytesize` (id: 4) - +0x36CA | 18 00 | VOffset16 | 0x0018 (24) | offset to field `attributes` (id: 5) - +0x36CC | 1C 00 | VOffset16 | 0x001C (28) | offset to field `documentation` (id: 6) - +0x36CE | 20 00 | VOffset16 | 0x0020 (32) | offset to field `declaration_file` (id: 7) + +0x3310 | 14 00 | uint16_t | 0x0014 (20) | size of this vtable + +0x3312 | 20 00 | uint16_t | 0x0020 (32) | size of referring table + +0x3314 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0) + +0x3316 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `fields` (id: 1) + +0x3318 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `is_struct` (id: 2) + +0x331A | 10 00 | VOffset16 | 0x0010 (16) | offset to field `minalign` (id: 3) + +0x331C | 14 00 | VOffset16 | 0x0014 (20) | offset to field `bytesize` (id: 4) + +0x331E | 18 00 | VOffset16 | 0x0018 (24) | offset to field `attributes` (id: 5) + +0x3320 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `documentation` (id: 6) (Vector) + +0x3322 | 1C 00 | VOffset16 | 0x001C (28) | offset to field `declaration_file` (id: 7) table (reflection.Object): - +0x36D0 | 14 00 00 00 | SOffset32 | 0x00000014 (20) Loc: +0x36BC | offset to vtable - +0x36D4 | 00 00 00 | uint8_t[3] | ... | padding - +0x36D7 | 01 | uint8_t | 0x01 (1) | table field `is_struct` (Bool) - +0x36D8 | 68 00 00 00 | UOffset32 | 0x00000068 (104) Loc: +0x3740 | offset to field `name` (string) - +0x36DC | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: +0x3724 | offset to field `fields` (vector) - +0x36E0 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `minalign` (Int) - +0x36E4 | 20 00 00 00 | uint32_t | 0x00000020 (32) | table field `bytesize` (Int) - +0x36E8 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x36F8 | offset to field `attributes` (vector) - +0x36EC | 08 00 00 00 | UOffset32 | 0x00000008 (8) Loc: +0x36F4 | offset to field `documentation` (vector) - +0x36F0 | 28 04 00 00 | UOffset32 | 0x00000428 (1064) Loc: +0x3B18 | offset to field `declaration_file` (string) - -vector (reflection.Object.documentation): - +0x36F4 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x3324 | 14 00 00 00 | SOffset32 | 0x00000014 (20) Loc: +0x3310 | offset to vtable + +0x3328 | 00 00 00 | uint8_t[3] | ... | padding + +0x332B | 01 | uint8_t | 0x01 (1) | table field `is_struct` (Bool) + +0x332C | 60 00 00 00 | UOffset32 | 0x00000060 (96) Loc: +0x338C | offset to field `name` (string) + +0x3330 | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: +0x3370 | offset to field `fields` (vector) + +0x3334 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `minalign` (Int) + +0x3338 | 20 00 00 00 | uint32_t | 0x00000020 (32) | table field `bytesize` (Int) + +0x333C | 08 00 00 00 | UOffset32 | 0x00000008 (8) Loc: +0x3344 | offset to field `attributes` (vector) + +0x3340 | A4 03 00 00 | UOffset32 | 0x000003A4 (932) Loc: +0x36E4 | offset to field `declaration_file` (string) vector (reflection.Object.attributes): - +0x36F8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x36FC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3700 | offset to table[0] + +0x3344 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x3348 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x334C | offset to table[0] table (reflection.KeyValue): - +0x3700 | E4 FD FF FF | SOffset32 | 0xFFFFFDE4 (-540) Loc: +0x391C | offset to vtable - +0x3704 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x3714 | offset to field `key` (string) - +0x3708 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x370C | offset to field `value` (string) + +0x334C | 84 FA FF FF | SOffset32 | 0xFFFFFA84 (-1404) Loc: +0x38C8 | offset to vtable + +0x3350 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x3360 | offset to field `key` (string) + +0x3354 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3358 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x370C | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x3710 | 38 | char[1] | 8 | string literal - +0x3711 | 00 | char | 0x00 (0) | string terminator + +0x3358 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x335C | 38 | char[1] | 8 | string literal + +0x335D | 00 | char | 0x00 (0) | string terminator padding: - +0x3712 | 00 00 | uint8_t[2] | .. | padding + +0x335E | 00 00 | uint8_t[2] | .. | padding string (reflection.KeyValue.key): - +0x3714 | 0B 00 00 00 | uint32_t | 0x0000000B (11) | length of string - +0x3718 | 66 6F 72 63 65 5F 61 6C | char[11] | force_al | string literal - +0x3720 | 69 67 6E | | ign - +0x3723 | 00 | char | 0x00 (0) | string terminator + +0x3360 | 0B 00 00 00 | uint32_t | 0x0000000B (11) | length of string + +0x3364 | 66 6F 72 63 65 5F 61 6C | char[11] | force_al | string literal + +0x336C | 69 67 6E | | ign + +0x336F | 00 | char | 0x00 (0) | string terminator vector (reflection.Object.fields): - +0x3724 | 06 00 00 00 | uint32_t | 0x00000006 (6) | length of vector (# items) - +0x3728 | C4 00 00 00 | UOffset32 | 0x000000C4 (196) Loc: +0x37EC | offset to table[0] - +0x372C | 84 00 00 00 | UOffset32 | 0x00000084 (132) Loc: +0x37B0 | offset to table[1] - +0x3730 | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: +0x3778 | offset to table[2] - +0x3734 | 60 01 00 00 | UOffset32 | 0x00000160 (352) Loc: +0x3894 | offset to table[3] - +0x3738 | 30 01 00 00 | UOffset32 | 0x00000130 (304) Loc: +0x3868 | offset to table[4] - +0x373C | E4 00 00 00 | UOffset32 | 0x000000E4 (228) Loc: +0x3820 | offset to table[5] + +0x3370 | 06 00 00 00 | uint32_t | 0x00000006 (6) | length of vector (# items) + +0x3374 | B4 00 00 00 | UOffset32 | 0x000000B4 (180) Loc: +0x3428 | offset to table[0] + +0x3378 | 7C 00 00 00 | UOffset32 | 0x0000007C (124) Loc: +0x33F4 | offset to table[1] + +0x337C | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: +0x33C4 | offset to table[2] + +0x3380 | 2C 01 00 00 | UOffset32 | 0x0000012C (300) Loc: +0x34AC | offset to table[3] + +0x3384 | 04 01 00 00 | UOffset32 | 0x00000104 (260) Loc: +0x3488 | offset to table[4] + +0x3388 | CC 00 00 00 | UOffset32 | 0x000000CC (204) Loc: +0x3454 | offset to table[5] string (reflection.Object.name): - +0x3740 | 13 00 00 00 | uint32_t | 0x00000013 (19) | length of string - +0x3744 | 4D 79 47 61 6D 65 2E 45 | char[19] | MyGame.E | string literal - +0x374C | 78 61 6D 70 6C 65 2E 56 | | xample.V - +0x3754 | 65 63 33 | | ec3 - +0x3757 | 00 | char | 0x00 (0) | string terminator + +0x338C | 13 00 00 00 | uint32_t | 0x00000013 (19) | length of string + +0x3390 | 4D 79 47 61 6D 65 2E 45 | char[19] | MyGame.E | string literal + +0x3398 | 78 61 6D 70 6C 65 2E 56 | | xample.V + +0x33A0 | 65 63 33 | | ec3 + +0x33A3 | 00 | char | 0x00 (0) | string terminator padding: - +0x3758 | 00 00 | uint8_t[2] | .. | padding + +0x33A4 | 00 00 | uint8_t[2] | .. | padding vtable (reflection.Field): - +0x375A | 1E 00 | uint16_t | 0x001E (30) | size of this vtable - +0x375C | 18 00 | uint16_t | 0x0018 (24) | size of referring table - +0x375E | 0C 00 | VOffset16 | 0x000C (12) | offset to field `name` (id: 0) - +0x3760 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `type` (id: 1) - +0x3762 | 06 00 | VOffset16 | 0x0006 (6) | offset to field `id` (id: 2) - +0x3764 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `offset` (id: 3) - +0x3766 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) (Long) - +0x3768 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) (Double) - +0x376A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) - +0x376C | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) (Bool) - +0x376E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 8) (Bool) - +0x3770 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `attributes` (id: 9) (Vector) - +0x3772 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `documentation` (id: 10) - +0x3774 | 05 00 | VOffset16 | 0x0005 (5) | offset to field `optional` (id: 11) - +0x3776 | 0A 00 | VOffset16 | 0x000A (10) | offset to field `padding` (id: 12) + +0x33A6 | 1E 00 | uint16_t | 0x001E (30) | size of this vtable + +0x33A8 | 14 00 | uint16_t | 0x0014 (20) | size of referring table + +0x33AA | 0C 00 | VOffset16 | 0x000C (12) | offset to field `name` (id: 0) + +0x33AC | 10 00 | VOffset16 | 0x0010 (16) | offset to field `type` (id: 1) + +0x33AE | 06 00 | VOffset16 | 0x0006 (6) | offset to field `id` (id: 2) + +0x33B0 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `offset` (id: 3) + +0x33B2 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) (Long) + +0x33B4 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) (Double) + +0x33B6 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) + +0x33B8 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) (Bool) + +0x33BA | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 8) (Bool) + +0x33BC | 00 00 | VOffset16 | 0x0000 (0) | offset to field `attributes` (id: 9) (Vector) + +0x33BE | 00 00 | VOffset16 | 0x0000 (0) | offset to field `documentation` (id: 10) (Vector) + +0x33C0 | 05 00 | VOffset16 | 0x0005 (5) | offset to field `optional` (id: 11) + +0x33C2 | 0A 00 | VOffset16 | 0x000A (10) | offset to field `padding` (id: 12) table (reflection.Field): - +0x3778 | 1E 00 00 00 | SOffset32 | 0x0000001E (30) Loc: +0x375A | offset to vtable - +0x377C | 00 | uint8_t[1] | . | padding - +0x377D | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x377E | 05 00 | uint16_t | 0x0005 (5) | table field `id` (UShort) - +0x3780 | 1A 00 | uint16_t | 0x001A (26) | table field `offset` (UShort) - +0x3782 | 02 00 | uint16_t | 0x0002 (2) | table field `padding` (UShort) - +0x3784 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x37A4 | offset to field `name` (string) - +0x3788 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x3794 | offset to field `type` (table) - +0x378C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3790 | offset to field `documentation` (vector) - -vector (reflection.Field.documentation): - +0x3790 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x33C4 | 1E 00 00 00 | SOffset32 | 0x0000001E (30) Loc: +0x33A6 | offset to vtable + +0x33C8 | 00 | uint8_t[1] | . | padding + +0x33C9 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x33CA | 05 00 | uint16_t | 0x0005 (5) | table field `id` (UShort) + +0x33CC | 1A 00 | uint16_t | 0x001A (26) | table field `offset` (UShort) + +0x33CE | 02 00 | uint16_t | 0x0002 (2) | table field `padding` (UShort) + +0x33D0 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x33E8 | offset to field `name` (string) + +0x33D4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x33D8 | offset to field `type` (table) table (reflection.Type): - +0x3794 | 24 FB FF FF | SOffset32 | 0xFFFFFB24 (-1244) Loc: +0x3C70 | offset to vtable - +0x3798 | 00 00 00 | uint8_t[3] | ... | padding - +0x379B | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) - +0x379C | 06 00 00 00 | uint32_t | 0x00000006 (6) | table field `index` (Int) - +0x37A0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x33D8 | C0 FB FF FF | SOffset32 | 0xFFFFFBC0 (-1088) Loc: +0x3818 | offset to vtable + +0x33DC | 00 00 00 | uint8_t[3] | ... | padding + +0x33DF | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) + +0x33E0 | 06 00 00 00 | uint32_t | 0x00000006 (6) | table field `index` (Int) + +0x33E4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x37A4 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string - +0x37A8 | 74 65 73 74 33 | char[5] | test3 | string literal - +0x37AD | 00 | char | 0x00 (0) | string terminator + +0x33E8 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string + +0x33EC | 74 65 73 74 33 | char[5] | test3 | string literal + +0x33F1 | 00 | char | 0x00 (0) | string terminator padding: - +0x37AE | 00 00 | uint8_t[2] | .. | padding + +0x33F2 | 00 00 | uint8_t[2] | .. | padding table (reflection.Field): - +0x37B0 | 7A FD FF FF | SOffset32 | 0xFFFFFD7A (-646) Loc: +0x3A36 | offset to vtable - +0x37B4 | 00 00 | uint8_t[2] | .. | padding - +0x37B6 | 04 00 | uint16_t | 0x0004 (4) | table field `id` (UShort) - +0x37B8 | 18 00 | uint16_t | 0x0018 (24) | table field `offset` (UShort) - +0x37BA | 01 00 | uint16_t | 0x0001 (1) | table field `padding` (UShort) - +0x37BC | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x37E0 | offset to field `name` (string) - +0x37C0 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x37CC | offset to field `type` (table) - +0x37C4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x37C8 | offset to field `documentation` (vector) - -vector (reflection.Field.documentation): - +0x37C8 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x33F4 | D6 FD FF FF | SOffset32 | 0xFFFFFDD6 (-554) Loc: +0x361E | offset to vtable + +0x33F8 | 00 00 | uint8_t[2] | .. | padding + +0x33FA | 04 00 | uint16_t | 0x0004 (4) | table field `id` (UShort) + +0x33FC | 18 00 | uint16_t | 0x0018 (24) | table field `offset` (UShort) + +0x33FE | 01 00 | uint16_t | 0x0001 (1) | table field `padding` (UShort) + +0x3400 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: +0x341C | offset to field `name` (string) + +0x3404 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3408 | offset to field `type` (table) table (reflection.Type): - +0x37CC | 10 FE FF FF | SOffset32 | 0xFFFFFE10 (-496) Loc: +0x39BC | offset to vtable - +0x37D0 | 00 00 00 | uint8_t[3] | ... | padding - +0x37D3 | 04 | uint8_t | 0x04 (4) | table field `base_type` (Byte) - +0x37D4 | 03 00 00 00 | uint32_t | 0x00000003 (3) | table field `index` (Int) - +0x37D8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) - +0x37DC | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x3408 | 5C FE FF FF | SOffset32 | 0xFFFFFE5C (-420) Loc: +0x35AC | offset to vtable + +0x340C | 00 00 00 | uint8_t[3] | ... | padding + +0x340F | 04 | uint8_t | 0x04 (4) | table field `base_type` (Byte) + +0x3410 | 03 00 00 00 | uint32_t | 0x00000003 (3) | table field `index` (Int) + +0x3414 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) + +0x3418 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x37E0 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string - +0x37E4 | 74 65 73 74 32 | char[5] | test2 | string literal - +0x37E9 | 00 | char | 0x00 (0) | string terminator + +0x341C | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string + +0x3420 | 74 65 73 74 32 | char[5] | test2 | string literal + +0x3425 | 00 | char | 0x00 (0) | string terminator padding: - +0x37EA | 00 00 | uint8_t[2] | .. | padding + +0x3426 | 00 00 | uint8_t[2] | .. | padding table (reflection.Field): - +0x37EC | 9E FF FF FF | SOffset32 | 0xFFFFFF9E (-98) Loc: +0x384E | offset to vtable - +0x37F0 | 03 00 | uint16_t | 0x0003 (3) | table field `id` (UShort) - +0x37F2 | 10 00 | uint16_t | 0x0010 (16) | table field `offset` (UShort) - +0x37F4 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x3814 | offset to field `name` (string) - +0x37F8 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x3804 | offset to field `type` (table) - +0x37FC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3800 | offset to field `documentation` (vector) - -vector (reflection.Field.documentation): - +0x3800 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x3428 | AC FF FF FF | SOffset32 | 0xFFFFFFAC (-84) Loc: +0x347C | offset to vtable + +0x342C | 03 00 | uint16_t | 0x0003 (3) | table field `id` (UShort) + +0x342E | 10 00 | uint16_t | 0x0010 (16) | table field `offset` (UShort) + +0x3430 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x3448 | offset to field `name` (string) + +0x3434 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3438 | offset to field `type` (table) table (reflection.Type): - +0x3804 | 68 FD FF FF | SOffset32 | 0xFFFFFD68 (-664) Loc: +0x3A9C | offset to vtable - +0x3808 | 00 00 00 | uint8_t[3] | ... | padding - +0x380B | 0C | uint8_t | 0x0C (12) | table field `base_type` (Byte) - +0x380C | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt) - +0x3810 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x3438 | C4 FD FF FF | SOffset32 | 0xFFFFFDC4 (-572) Loc: +0x3674 | offset to vtable + +0x343C | 00 00 00 | uint8_t[3] | ... | padding + +0x343F | 0C | uint8_t | 0x0C (12) | table field `base_type` (Byte) + +0x3440 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt) + +0x3444 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x3814 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string - +0x3818 | 74 65 73 74 31 | char[5] | test1 | string literal - +0x381D | 00 | char | 0x00 (0) | string terminator + +0x3448 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string + +0x344C | 74 65 73 74 31 | char[5] | test1 | string literal + +0x3451 | 00 | char | 0x00 (0) | string terminator padding: - +0x381E | 00 00 | uint8_t[2] | .. | padding + +0x3452 | 00 00 | uint8_t[2] | .. | padding table (reflection.Field): - +0x3820 | EA FD FF FF | SOffset32 | 0xFFFFFDEA (-534) Loc: +0x3A36 | offset to vtable - +0x3824 | 00 00 | uint8_t[2] | .. | padding - +0x3826 | 02 00 | uint16_t | 0x0002 (2) | table field `id` (UShort) - +0x3828 | 08 00 | uint16_t | 0x0008 (8) | table field `offset` (UShort) - +0x382A | 04 00 | uint16_t | 0x0004 (4) | table field `padding` (UShort) - +0x382C | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: +0x3848 | offset to field `name` (string) - +0x3830 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x383C | offset to field `type` (table) - +0x3834 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3838 | offset to field `documentation` (vector) - -vector (reflection.Field.documentation): - +0x3838 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x3454 | 36 FE FF FF | SOffset32 | 0xFFFFFE36 (-458) Loc: +0x361E | offset to vtable + +0x3458 | 00 00 | uint8_t[2] | .. | padding + +0x345A | 02 00 | uint16_t | 0x0002 (2) | table field `id` (UShort) + +0x345C | 08 00 | uint16_t | 0x0008 (8) | table field `offset` (UShort) + +0x345E | 04 00 | uint16_t | 0x0004 (4) | table field `padding` (UShort) + +0x3460 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x3474 | offset to field `name` (string) + +0x3464 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3468 | offset to field `type` (table) table (reflection.Type): - +0x383C | E8 FA FF FF | SOffset32 | 0xFFFFFAE8 (-1304) Loc: +0x3D54 | offset to vtable - +0x3840 | 00 00 00 | uint8_t[3] | ... | padding - +0x3843 | 0B | uint8_t | 0x0B (11) | table field `base_type` (Byte) - +0x3844 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x3468 | 8C FB FF FF | SOffset32 | 0xFFFFFB8C (-1140) Loc: +0x38DC | offset to vtable + +0x346C | 00 00 00 | uint8_t[3] | ... | padding + +0x346F | 0B | uint8_t | 0x0B (11) | table field `base_type` (Byte) + +0x3470 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x3848 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x384C | 7A | char[1] | z | string literal - +0x384D | 00 | char | 0x00 (0) | string terminator + +0x3474 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x3478 | 7A | char[1] | z | string literal + +0x3479 | 00 | char | 0x00 (0) | string terminator + +padding: + +0x347A | 00 00 | uint8_t[2] | .. | padding vtable (reflection.Field): - +0x384E | 1A 00 | uint16_t | 0x001A (26) | size of this vtable - +0x3850 | 14 00 | uint16_t | 0x0014 (20) | size of referring table - +0x3852 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0) - +0x3854 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `type` (id: 1) - +0x3856 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `id` (id: 2) - +0x3858 | 06 00 | VOffset16 | 0x0006 (6) | offset to field `offset` (id: 3) - +0x385A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) (Long) - +0x385C | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) (Double) - +0x385E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) - +0x3860 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) (Bool) - +0x3862 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 8) (Bool) - +0x3864 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `attributes` (id: 9) (Vector) - +0x3866 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `documentation` (id: 10) + +0x347C | 0C 00 | uint16_t | 0x000C (12) | size of this vtable + +0x347E | 10 00 | uint16_t | 0x0010 (16) | size of referring table + +0x3480 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0) + +0x3482 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `type` (id: 1) + +0x3484 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `id` (id: 2) + +0x3486 | 06 00 | VOffset16 | 0x0006 (6) | offset to field `offset` (id: 3) table (reflection.Field): - +0x3868 | 1A 00 00 00 | SOffset32 | 0x0000001A (26) Loc: +0x384E | offset to vtable - +0x386C | 01 00 | uint16_t | 0x0001 (1) | table field `id` (UShort) - +0x386E | 04 00 | uint16_t | 0x0004 (4) | table field `offset` (UShort) - +0x3870 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: +0x388C | offset to field `name` (string) - +0x3874 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x3880 | offset to field `type` (table) - +0x3878 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x387C | offset to field `documentation` (vector) - -vector (reflection.Field.documentation): - +0x387C | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x3488 | 0C 00 00 00 | SOffset32 | 0x0000000C (12) Loc: +0x347C | offset to vtable + +0x348C | 01 00 | uint16_t | 0x0001 (1) | table field `id` (UShort) + +0x348E | 04 00 | uint16_t | 0x0004 (4) | table field `offset` (UShort) + +0x3490 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x34A4 | offset to field `name` (string) + +0x3494 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3498 | offset to field `type` (table) table (reflection.Type): - +0x3880 | 2C FB FF FF | SOffset32 | 0xFFFFFB2C (-1236) Loc: +0x3D54 | offset to vtable - +0x3884 | 00 00 00 | uint8_t[3] | ... | padding - +0x3887 | 0B | uint8_t | 0x0B (11) | table field `base_type` (Byte) - +0x3888 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x3498 | BC FB FF FF | SOffset32 | 0xFFFFFBBC (-1092) Loc: +0x38DC | offset to vtable + +0x349C | 00 00 00 | uint8_t[3] | ... | padding + +0x349F | 0B | uint8_t | 0x0B (11) | table field `base_type` (Byte) + +0x34A0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x388C | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x3890 | 79 | char[1] | y | string literal - +0x3891 | 00 | char | 0x00 (0) | string terminator + +0x34A4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x34A8 | 79 | char[1] | y | string literal + +0x34A9 | 00 | char | 0x00 (0) | string terminator padding: - +0x3892 | 00 00 | uint8_t[2] | .. | padding + +0x34AA | 00 00 | uint8_t[2] | .. | padding table (reflection.Field): - +0x3894 | 6E FB FF FF | SOffset32 | 0xFFFFFB6E (-1170) Loc: +0x3D26 | offset to vtable - +0x3898 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: +0x38B4 | offset to field `name` (string) - +0x389C | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x38A8 | offset to field `type` (table) - +0x38A0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x38A4 | offset to field `documentation` (vector) + +0x34AC | E4 FB FF FF | SOffset32 | 0xFFFFFBE4 (-1052) Loc: +0x38C8 | offset to vtable + +0x34B0 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x34C4 | offset to field `key` (string) + +0x34B4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x34B8 | offset to field `value` (string) -vector (reflection.Field.documentation): - +0x38A4 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) +string (reflection.Field.value): + +0x34B8 | DC FB FF FF | uint32_t | 0xFFFFFBDC (4294966236) | ERROR: length of string. Longer than the binary. -table (reflection.Type): - +0x38A8 | 54 FB FF FF | SOffset32 | 0xFFFFFB54 (-1196) Loc: +0x3D54 | offset to vtable - +0x38AC | 00 00 00 | uint8_t[3] | ... | padding - +0x38AF | 0B | uint8_t | 0x0B (11) | table field `base_type` (Byte) - +0x38B0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) +unknown (no known references): + +0x34BC | 00 00 00 0B 01 00 00 00 | ?uint8_t[8] | ........ | WARN: nothing refers to this section. -string (reflection.Field.name): - +0x38B4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x38B8 | 78 | char[1] | x | string literal - +0x38B9 | 00 | char | 0x00 (0) | string terminator +string (reflection.Field.key): + +0x34C4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x34C8 | 78 | char[1] | x | string literal + +0x34C9 | 00 | char | 0x00 (0) | string terminator padding: - +0x38BA | 00 00 | uint8_t[2] | .. | padding + +0x34CA | 00 00 | uint8_t[2] | .. | padding vtable (reflection.Object): - +0x38BC | 14 00 | uint16_t | 0x0014 (20) | size of this vtable - +0x38BE | 1C 00 | uint16_t | 0x001C (28) | size of referring table - +0x38C0 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `name` (id: 0) - +0x38C2 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `fields` (id: 1) - +0x38C4 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `is_struct` (id: 2) (Bool) - +0x38C6 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `minalign` (id: 3) - +0x38C8 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `bytesize` (id: 4) (Int) - +0x38CA | 10 00 | VOffset16 | 0x0010 (16) | offset to field `attributes` (id: 5) - +0x38CC | 14 00 | VOffset16 | 0x0014 (20) | offset to field `documentation` (id: 6) - +0x38CE | 18 00 | VOffset16 | 0x0018 (24) | offset to field `declaration_file` (id: 7) + +0x34CC | 14 00 | uint16_t | 0x0014 (20) | size of this vtable + +0x34CE | 18 00 | uint16_t | 0x0018 (24) | size of referring table + +0x34D0 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `name` (id: 0) + +0x34D2 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `fields` (id: 1) + +0x34D4 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `is_struct` (id: 2) (Bool) + +0x34D6 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `minalign` (id: 3) + +0x34D8 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `bytesize` (id: 4) (Int) + +0x34DA | 10 00 | VOffset16 | 0x0010 (16) | offset to field `attributes` (id: 5) + +0x34DC | 00 00 | VOffset16 | 0x0000 (0) | offset to field `documentation` (id: 6) (Vector) + +0x34DE | 14 00 | VOffset16 | 0x0014 (20) | offset to field `declaration_file` (id: 7) table (reflection.Object): - +0x38D0 | 14 00 00 00 | SOffset32 | 0x00000014 (20) Loc: +0x38BC | offset to vtable - +0x38D4 | 80 00 00 00 | UOffset32 | 0x00000080 (128) Loc: +0x3954 | offset to field `name` (string) - +0x38D8 | 74 00 00 00 | UOffset32 | 0x00000074 (116) Loc: +0x394C | offset to field `fields` (vector) - +0x38DC | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `minalign` (Int) - +0x38E0 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x38F0 | offset to field `attributes` (vector) - +0x38E4 | 08 00 00 00 | UOffset32 | 0x00000008 (8) Loc: +0x38EC | offset to field `documentation` (vector) - +0x38E8 | 30 02 00 00 | UOffset32 | 0x00000230 (560) Loc: +0x3B18 | offset to field `declaration_file` (string) - -vector (reflection.Object.documentation): - +0x38EC | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x34E0 | 14 00 00 00 | SOffset32 | 0x00000014 (20) Loc: +0x34CC | offset to vtable + +0x34E4 | 70 00 00 00 | UOffset32 | 0x00000070 (112) Loc: +0x3554 | offset to field `name` (string) + +0x34E8 | 64 00 00 00 | UOffset32 | 0x00000064 (100) Loc: +0x354C | offset to field `fields` (vector) + +0x34EC | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `minalign` (Int) + +0x34F0 | 08 00 00 00 | UOffset32 | 0x00000008 (8) Loc: +0x34F8 | offset to field `attributes` (vector) + +0x34F4 | F0 01 00 00 | UOffset32 | 0x000001F0 (496) Loc: +0x36E4 | offset to field `declaration_file` (string) vector (reflection.Object.attributes): - +0x38F0 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) - +0x38F4 | 30 00 00 00 | UOffset32 | 0x00000030 (48) Loc: +0x3924 | offset to table[0] - +0x38F8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x38FC | offset to table[1] + +0x34F8 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) + +0x34FC | 28 00 00 00 | UOffset32 | 0x00000028 (40) Loc: +0x3524 | offset to table[0] + +0x3500 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3504 | offset to table[1] table (reflection.KeyValue): - +0x38FC | E0 FF FF FF | SOffset32 | 0xFFFFFFE0 (-32) Loc: +0x391C | offset to vtable - +0x3900 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x3910 | offset to field `key` (string) - +0x3904 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3908 | offset to field `value` (string) + +0x3504 | 3C FC FF FF | SOffset32 | 0xFFFFFC3C (-964) Loc: +0x38C8 | offset to vtable + +0x3508 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x3518 | offset to field `key` (string) + +0x350C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3510 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x3908 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x390C | 30 | char[1] | 0 | string literal - +0x390D | 00 | char | 0x00 (0) | string terminator + +0x3510 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x3514 | 30 | char[1] | 0 | string literal + +0x3515 | 00 | char | 0x00 (0) | string terminator padding: - +0x390E | 00 00 | uint8_t[2] | .. | padding + +0x3516 | 00 00 | uint8_t[2] | .. | padding string (reflection.KeyValue.key): - +0x3910 | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string - +0x3914 | 70 72 69 76 61 74 65 | char[7] | private | string literal - +0x391B | 00 | char | 0x00 (0) | string terminator - -vtable (reflection.KeyValue): - +0x391C | 08 00 | uint16_t | 0x0008 (8) | size of this vtable - +0x391E | 0C 00 | uint16_t | 0x000C (12) | size of referring table - +0x3920 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `key` (id: 0) - +0x3922 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `value` (id: 1) + +0x3518 | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string + +0x351C | 70 72 69 76 61 74 65 | char[7] | private | string literal + +0x3523 | 00 | char | 0x00 (0) | string terminator table (reflection.KeyValue): - +0x3924 | 08 00 00 00 | SOffset32 | 0x00000008 (8) Loc: +0x391C | offset to vtable - +0x3928 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x3938 | offset to field `key` (string) - +0x392C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3930 | offset to field `value` (string) + +0x3524 | 5C FC FF FF | SOffset32 | 0xFFFFFC5C (-932) Loc: +0x38C8 | offset to vtable + +0x3528 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x3538 | offset to field `key` (string) + +0x352C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3530 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x3930 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x3934 | 30 | char[1] | 0 | string literal - +0x3935 | 00 | char | 0x00 (0) | string terminator + +0x3530 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x3534 | 30 | char[1] | 0 | string literal + +0x3535 | 00 | char | 0x00 (0) | string terminator padding: - +0x3936 | 00 00 | uint8_t[2] | .. | padding + +0x3536 | 00 00 | uint8_t[2] | .. | padding string (reflection.KeyValue.key): - +0x3938 | 0E 00 00 00 | uint32_t | 0x0000000E (14) | length of string - +0x393C | 63 73 68 61 72 70 5F 70 | char[14] | csharp_p | string literal - +0x3944 | 61 72 74 69 61 6C | | artial - +0x394A | 00 | char | 0x00 (0) | string terminator + +0x3538 | 0E 00 00 00 | uint32_t | 0x0000000E (14) | length of string + +0x353C | 63 73 68 61 72 70 5F 70 | char[14] | csharp_p | string literal + +0x3544 | 61 72 74 69 61 6C | | artial + +0x354A | 00 | char | 0x00 (0) | string terminator vector (reflection.Object.fields): - +0x394C | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x3950 | 4C 00 00 00 | UOffset32 | 0x0000004C (76) Loc: +0x399C | offset to table[0] + +0x354C | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x3550 | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: +0x3590 | offset to table[0] string (reflection.Object.name): - +0x3954 | 26 00 00 00 | uint32_t | 0x00000026 (38) | length of string - +0x3958 | 4D 79 47 61 6D 65 2E 45 | char[38] | MyGame.E | string literal - +0x3960 | 78 61 6D 70 6C 65 2E 54 | | xample.T - +0x3968 | 65 73 74 53 69 6D 70 6C | | estSimpl - +0x3970 | 65 54 61 62 6C 65 57 69 | | eTableWi - +0x3978 | 74 68 45 6E 75 6D | | thEnum - +0x397E | 00 | char | 0x00 (0) | string terminator + +0x3554 | 26 00 00 00 | uint32_t | 0x00000026 (38) | length of string + +0x3558 | 4D 79 47 61 6D 65 2E 45 | char[38] | MyGame.E | string literal + +0x3560 | 78 61 6D 70 6C 65 2E 54 | | xample.T + +0x3568 | 65 73 74 53 69 6D 70 6C | | estSimpl + +0x3570 | 65 54 61 62 6C 65 57 69 | | eTableWi + +0x3578 | 74 68 45 6E 75 6D | | thEnum + +0x357E | 00 | char | 0x00 (0) | string terminator padding: - +0x397F | 00 00 00 | uint8_t[3] | ... | padding + +0x357F | 00 00 00 | uint8_t[3] | ... | padding vtable (reflection.Field): - +0x3982 | 1A 00 | uint16_t | 0x001A (26) | size of this vtable - +0x3984 | 1C 00 | uint16_t | 0x001C (28) | size of referring table - +0x3986 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0) - +0x3988 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `type` (id: 1) - +0x398A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `id` (id: 2) (UShort) - +0x398C | 06 00 | VOffset16 | 0x0006 (6) | offset to field `offset` (id: 3) - +0x398E | 14 00 | VOffset16 | 0x0014 (20) | offset to field `default_integer` (id: 4) - +0x3990 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) (Double) - +0x3992 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) - +0x3994 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) (Bool) - +0x3996 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 8) (Bool) - +0x3998 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `attributes` (id: 9) (Vector) - +0x399A | 10 00 | VOffset16 | 0x0010 (16) | offset to field `documentation` (id: 10) + +0x3582 | 0E 00 | uint16_t | 0x000E (14) | size of this vtable + +0x3584 | 1C 00 | uint16_t | 0x001C (28) | size of referring table + +0x3586 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0) + +0x3588 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `type` (id: 1) + +0x358A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `id` (id: 2) (UShort) + +0x358C | 06 00 | VOffset16 | 0x0006 (6) | offset to field `offset` (id: 3) + +0x358E | 10 00 | VOffset16 | 0x0010 (16) | offset to field `default_integer` (id: 4) table (reflection.Field): - +0x399C | 1A 00 00 00 | SOffset32 | 0x0000001A (26) Loc: +0x3982 | offset to vtable - +0x39A0 | 00 00 | uint8_t[2] | .. | padding - +0x39A2 | 04 00 | uint16_t | 0x0004 (4) | table field `offset` (UShort) - +0x39A4 | 3C 00 00 00 | UOffset32 | 0x0000003C (60) Loc: +0x39E0 | offset to field `name` (string) - +0x39A8 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x39CC | offset to field `type` (table) - +0x39AC | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x39B8 | offset to field `documentation` (vector) - +0x39B0 | 02 00 00 00 00 00 00 00 | int64_t | 0x0000000000000002 (2) | table field `default_integer` (Long) - -vector (reflection.Field.documentation): - +0x39B8 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x3590 | 0E 00 00 00 | SOffset32 | 0x0000000E (14) Loc: +0x3582 | offset to vtable + +0x3594 | 00 00 | uint8_t[2] | .. | padding + +0x3596 | 04 00 | uint16_t | 0x0004 (4) | table field `offset` (UShort) + +0x3598 | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: +0x35D0 | offset to field `name` (string) + +0x359C | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x35BC | offset to field `type` (table) + +0x35A0 | 02 00 00 00 00 00 00 00 | int64_t | 0x0000000000000002 (2) | table field `default_integer` (Long) + +0x35A8 | 00 00 00 00 | uint8_t[4] | .... | padding vtable (reflection.Type): - +0x39BC | 10 00 | uint16_t | 0x0010 (16) | size of this vtable - +0x39BE | 14 00 | uint16_t | 0x0014 (20) | size of referring table - +0x39C0 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `base_type` (id: 0) - +0x39C2 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `element` (id: 1) (Byte) - +0x39C4 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `index` (id: 2) - +0x39C6 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `fixed_length` (id: 3) (UShort) - +0x39C8 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `base_size` (id: 4) - +0x39CA | 10 00 | VOffset16 | 0x0010 (16) | offset to field `element_size` (id: 5) + +0x35AC | 10 00 | uint16_t | 0x0010 (16) | size of this vtable + +0x35AE | 14 00 | uint16_t | 0x0014 (20) | size of referring table + +0x35B0 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `base_type` (id: 0) + +0x35B2 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `element` (id: 1) (Byte) + +0x35B4 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `index` (id: 2) + +0x35B6 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `fixed_length` (id: 3) (UShort) + +0x35B8 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `base_size` (id: 4) + +0x35BA | 10 00 | VOffset16 | 0x0010 (16) | offset to field `element_size` (id: 5) table (reflection.Type): - +0x39CC | 10 00 00 00 | SOffset32 | 0x00000010 (16) Loc: +0x39BC | offset to vtable - +0x39D0 | 00 00 00 | uint8_t[3] | ... | padding - +0x39D3 | 04 | uint8_t | 0x04 (4) | table field `base_type` (Byte) - +0x39D4 | 03 00 00 00 | uint32_t | 0x00000003 (3) | table field `index` (Int) - +0x39D8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) - +0x39DC | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x35BC | 10 00 00 00 | SOffset32 | 0x00000010 (16) Loc: +0x35AC | offset to vtable + +0x35C0 | 00 00 00 | uint8_t[3] | ... | padding + +0x35C3 | 04 | uint8_t | 0x04 (4) | table field `base_type` (Byte) + +0x35C4 | 03 00 00 00 | uint32_t | 0x00000003 (3) | table field `index` (Int) + +0x35C8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) + +0x35CC | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x39E0 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string - +0x39E4 | 63 6F 6C 6F 72 | char[5] | color | string literal - +0x39E9 | 00 | char | 0x00 (0) | string terminator + +0x35D0 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string + +0x35D4 | 63 6F 6C 6F 72 | char[5] | color | string literal + +0x35D9 | 00 | char | 0x00 (0) | string terminator padding: - +0x39EA | 00 00 | uint8_t[2] | .. | padding + +0x35DA | 00 00 | uint8_t[2] | .. | padding table (reflection.Object): - +0x39EC | 54 FD FF FF | SOffset32 | 0xFFFFFD54 (-684) Loc: +0x3C98 | offset to vtable - +0x39F0 | 00 00 00 | uint8_t[3] | ... | padding - +0x39F3 | 01 | uint8_t | 0x01 (1) | table field `is_struct` (Bool) - +0x39F4 | 28 00 00 00 | UOffset32 | 0x00000028 (40) Loc: +0x3A1C | offset to field `name` (string) - +0x39F8 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x3A10 | offset to field `fields` (vector) - +0x39FC | 02 00 00 00 | uint32_t | 0x00000002 (2) | table field `minalign` (Int) - +0x3A00 | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `bytesize` (Int) - +0x3A04 | 08 00 00 00 | UOffset32 | 0x00000008 (8) Loc: +0x3A0C | offset to field `documentation` (vector) - +0x3A08 | 10 01 00 00 | UOffset32 | 0x00000110 (272) Loc: +0x3B18 | offset to field `declaration_file` (string) - -vector (reflection.Object.documentation): - +0x3A0C | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x35DC | 9C FD FF FF | SOffset32 | 0xFFFFFD9C (-612) Loc: +0x3840 | offset to vtable + +0x35E0 | 00 00 00 | uint8_t[3] | ... | padding + +0x35E3 | 01 | uint8_t | 0x01 (1) | table field `is_struct` (Bool) + +0x35E4 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x3604 | offset to field `name` (string) + +0x35E8 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x35F8 | offset to field `fields` (vector) + +0x35EC | 02 00 00 00 | uint32_t | 0x00000002 (2) | table field `minalign` (Int) + +0x35F0 | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `bytesize` (Int) + +0x35F4 | F0 00 00 00 | UOffset32 | 0x000000F0 (240) Loc: +0x36E4 | offset to field `declaration_file` (string) vector (reflection.Object.fields): - +0x3A10 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) - +0x3A14 | 74 00 00 00 | UOffset32 | 0x00000074 (116) Loc: +0x3A88 | offset to table[0] - +0x3A18 | 3C 00 00 00 | UOffset32 | 0x0000003C (60) Loc: +0x3A54 | offset to table[1] + +0x35F8 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) + +0x35FC | 6C 00 00 00 | UOffset32 | 0x0000006C (108) Loc: +0x3668 | offset to table[0] + +0x3600 | 3C 00 00 00 | UOffset32 | 0x0000003C (60) Loc: +0x363C | offset to table[1] string (reflection.Object.name): - +0x3A1C | 13 00 00 00 | uint32_t | 0x00000013 (19) | length of string - +0x3A20 | 4D 79 47 61 6D 65 2E 45 | char[19] | MyGame.E | string literal - +0x3A28 | 78 61 6D 70 6C 65 2E 54 | | xample.T - +0x3A30 | 65 73 74 | | est - +0x3A33 | 00 | char | 0x00 (0) | string terminator + +0x3604 | 13 00 00 00 | uint32_t | 0x00000013 (19) | length of string + +0x3608 | 4D 79 47 61 6D 65 2E 45 | char[19] | MyGame.E | string literal + +0x3610 | 78 61 6D 70 6C 65 2E 54 | | xample.T + +0x3618 | 65 73 74 | | est + +0x361B | 00 | char | 0x00 (0) | string terminator padding: - +0x3A34 | 00 00 | uint8_t[2] | .. | padding + +0x361C | 00 00 | uint8_t[2] | .. | padding vtable (reflection.Field): - +0x3A36 | 1E 00 | uint16_t | 0x001E (30) | size of this vtable - +0x3A38 | 18 00 | uint16_t | 0x0018 (24) | size of referring table - +0x3A3A | 0C 00 | VOffset16 | 0x000C (12) | offset to field `name` (id: 0) - +0x3A3C | 10 00 | VOffset16 | 0x0010 (16) | offset to field `type` (id: 1) - +0x3A3E | 06 00 | VOffset16 | 0x0006 (6) | offset to field `id` (id: 2) - +0x3A40 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `offset` (id: 3) - +0x3A42 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) (Long) - +0x3A44 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) (Double) - +0x3A46 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) - +0x3A48 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) (Bool) - +0x3A4A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 8) (Bool) - +0x3A4C | 00 00 | VOffset16 | 0x0000 (0) | offset to field `attributes` (id: 9) (Vector) - +0x3A4E | 14 00 | VOffset16 | 0x0014 (20) | offset to field `documentation` (id: 10) - +0x3A50 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `optional` (id: 11) (Bool) - +0x3A52 | 0A 00 | VOffset16 | 0x000A (10) | offset to field `padding` (id: 12) + +0x361E | 1E 00 | uint16_t | 0x001E (30) | size of this vtable + +0x3620 | 14 00 | uint16_t | 0x0014 (20) | size of referring table + +0x3622 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `name` (id: 0) + +0x3624 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `type` (id: 1) + +0x3626 | 06 00 | VOffset16 | 0x0006 (6) | offset to field `id` (id: 2) + +0x3628 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `offset` (id: 3) + +0x362A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) (Long) + +0x362C | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) (Double) + +0x362E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) + +0x3630 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) (Bool) + +0x3632 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 8) (Bool) + +0x3634 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `attributes` (id: 9) (Vector) + +0x3636 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `documentation` (id: 10) (Vector) + +0x3638 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `optional` (id: 11) (Bool) + +0x363A | 0A 00 | VOffset16 | 0x000A (10) | offset to field `padding` (id: 12) table (reflection.Field): - +0x3A54 | 1E 00 00 00 | SOffset32 | 0x0000001E (30) Loc: +0x3A36 | offset to vtable - +0x3A58 | 00 00 | uint8_t[2] | .. | padding - +0x3A5A | 01 00 | uint16_t | 0x0001 (1) | table field `id` (UShort) - +0x3A5C | 02 00 | uint16_t | 0x0002 (2) | table field `offset` (UShort) - +0x3A5E | 01 00 | uint16_t | 0x0001 (1) | table field `padding` (UShort) - +0x3A60 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x3A80 | offset to field `name` (string) - +0x3A64 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x3A70 | offset to field `type` (table) - +0x3A68 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3A6C | offset to field `documentation` (vector) - -vector (reflection.Field.documentation): - +0x3A6C | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x363C | 1E 00 00 00 | SOffset32 | 0x0000001E (30) Loc: +0x361E | offset to vtable + +0x3640 | 00 00 | uint8_t[2] | .. | padding + +0x3642 | 01 00 | uint16_t | 0x0001 (1) | table field `id` (UShort) + +0x3644 | 02 00 | uint16_t | 0x0002 (2) | table field `offset` (UShort) + +0x3646 | 01 00 | uint16_t | 0x0001 (1) | table field `padding` (UShort) + +0x3648 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x3660 | offset to field `name` (string) + +0x364C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3650 | offset to field `type` (table) table (reflection.Type): - +0x3A70 | D4 FF FF FF | SOffset32 | 0xFFFFFFD4 (-44) Loc: +0x3A9C | offset to vtable - +0x3A74 | 00 00 00 | uint8_t[3] | ... | padding - +0x3A77 | 03 | uint8_t | 0x03 (3) | table field `base_type` (Byte) - +0x3A78 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) - +0x3A7C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x3650 | DC FF FF FF | SOffset32 | 0xFFFFFFDC (-36) Loc: +0x3674 | offset to vtable + +0x3654 | 00 00 00 | uint8_t[3] | ... | padding + +0x3657 | 03 | uint8_t | 0x03 (3) | table field `base_type` (Byte) + +0x3658 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) + +0x365C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x3A80 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x3A84 | 62 | char[1] | b | string literal - +0x3A85 | 00 | char | 0x00 (0) | string terminator + +0x3660 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x3664 | 62 | char[1] | b | string literal + +0x3665 | 00 | char | 0x00 (0) | string terminator padding: - +0x3A86 | 00 00 | uint8_t[2] | .. | padding + +0x3666 | 00 00 | uint8_t[2] | .. | padding table (reflection.Field): - +0x3A88 | 62 FD FF FF | SOffset32 | 0xFFFFFD62 (-670) Loc: +0x3D26 | offset to vtable - +0x3A8C | 30 00 00 00 | UOffset32 | 0x00000030 (48) Loc: +0x3ABC | offset to field `name` (string) - +0x3A90 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: +0x3AAC | offset to field `type` (table) - +0x3A94 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3A98 | offset to field `documentation` (vector) - -vector (reflection.Field.documentation): - +0x3A98 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x3668 | A0 FD FF FF | SOffset32 | 0xFFFFFDA0 (-608) Loc: +0x38C8 | offset to vtable + +0x366C | 28 00 00 00 | UOffset32 | 0x00000028 (40) Loc: +0x3694 | offset to field `key` (string) + +0x3670 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x3684 | offset to field `value` (string) vtable (reflection.Type): - +0x3A9C | 10 00 | uint16_t | 0x0010 (16) | size of this vtable - +0x3A9E | 10 00 | uint16_t | 0x0010 (16) | size of referring table - +0x3AA0 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `base_type` (id: 0) - +0x3AA2 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `element` (id: 1) (Byte) - +0x3AA4 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `index` (id: 2) (Int) - +0x3AA6 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `fixed_length` (id: 3) (UShort) - +0x3AA8 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `base_size` (id: 4) - +0x3AAA | 0C 00 | VOffset16 | 0x000C (12) | offset to field `element_size` (id: 5) + +0x3674 | 10 00 | uint16_t | 0x0010 (16) | size of this vtable + +0x3676 | 10 00 | uint16_t | 0x0010 (16) | size of referring table + +0x3678 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `base_type` (id: 0) + +0x367A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `element` (id: 1) (Byte) + +0x367C | 00 00 | VOffset16 | 0x0000 (0) | offset to field `index` (id: 2) (Int) + +0x367E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `fixed_length` (id: 3) (UShort) + +0x3680 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `base_size` (id: 4) + +0x3682 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `element_size` (id: 5) -table (reflection.Type): - +0x3AAC | 10 00 00 00 | SOffset32 | 0x00000010 (16) Loc: +0x3A9C | offset to vtable - +0x3AB0 | 00 00 00 | uint8_t[3] | ... | padding - +0x3AB3 | 05 | uint8_t | 0x05 (5) | table field `base_type` (Byte) - +0x3AB4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | table field `base_size` (UInt) - +0x3AB8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) +string (reflection.Field.value): + +0x3684 | 10 00 00 00 | uint32_t | 0x00000010 (16) | length of string + +0x3688 | 00 00 00 05 02 00 00 00 | char[16] |  | string literal + +0x3690 | 01 00 00 00 01 00 00 00 | |  + +0x3698 | 61 | char | 0x61 (97) | string terminator -string (reflection.Field.name): - +0x3ABC | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x3AC0 | 61 | char[1] | a | string literal - +0x3AC1 | 00 | char | 0x00 (0) | string terminator +string (reflection.Field.key): + +0x3694 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x3698 | 61 | char[1] | a | string literal + +0x3699 | 00 | char | 0x00 (0) | string terminator padding: - +0x3AC2 | 00 00 | uint8_t[2] | .. | padding + +0x369A | 00 00 | uint8_t[2] | .. | padding table (reflection.Object): - +0x3AC4 | E4 FE FF FF | SOffset32 | 0xFFFFFEE4 (-284) Loc: +0x3BE0 | offset to vtable - +0x3AC8 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: +0x3AE4 | offset to field `name` (string) - +0x3ACC | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x3AE0 | offset to field `fields` (vector) - +0x3AD0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `minalign` (Int) - +0x3AD4 | 08 00 00 00 | UOffset32 | 0x00000008 (8) Loc: +0x3ADC | offset to field `documentation` (vector) - +0x3AD8 | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: +0x3B18 | offset to field `declaration_file` (string) - -vector (reflection.Object.documentation): - +0x3ADC | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x369C | 04 FF FF FF | SOffset32 | 0xFFFFFF04 (-252) Loc: +0x3798 | offset to vtable + +0x36A0 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x36B4 | offset to field `name` (string) + +0x36A4 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x36B0 | offset to field `fields` (vector) + +0x36A8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `minalign` (Int) + +0x36AC | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: +0x36E4 | offset to field `declaration_file` (string) vector (reflection.Object.fields): - +0x3AE0 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x36B0 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) string (reflection.Object.name): - +0x3AE4 | 17 00 00 00 | uint32_t | 0x00000017 (23) | length of string - +0x3AE8 | 4D 79 47 61 6D 65 2E 45 | char[23] | MyGame.E | string literal - +0x3AF0 | 78 61 6D 70 6C 65 32 2E | | xample2. - +0x3AF8 | 4D 6F 6E 73 74 65 72 | | Monster - +0x3AFF | 00 | char | 0x00 (0) | string terminator + +0x36B4 | 17 00 00 00 | uint32_t | 0x00000017 (23) | length of string + +0x36B8 | 4D 79 47 61 6D 65 2E 45 | char[23] | MyGame.E | string literal + +0x36C0 | 78 61 6D 70 6C 65 32 2E | | xample2. + +0x36C8 | 4D 6F 6E 73 74 65 72 | | Monster + +0x36CF | 00 | char | 0x00 (0) | string terminator table (reflection.Object): - +0x3B00 | 20 FF FF FF | SOffset32 | 0xFFFFFF20 (-224) Loc: +0x3BE0 | offset to vtable - +0x3B04 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x3B38 | offset to field `name` (string) - +0x3B08 | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: +0x3B34 | offset to field `fields` (vector) - +0x3B0C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `minalign` (Int) - +0x3B10 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x3B30 | offset to field `documentation` (vector) - +0x3B14 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3B18 | offset to field `declaration_file` (string) + +0x36D0 | 38 FF FF FF | SOffset32 | 0xFFFFFF38 (-200) Loc: +0x3798 | offset to vtable + +0x36D4 | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: +0x3700 | offset to field `name` (string) + +0x36D8 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x36FC | offset to field `fields` (vector) + +0x36DC | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `minalign` (Int) + +0x36E0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x36E4 | offset to field `declaration_file` (string) string (reflection.Object.declaration_file): - +0x3B18 | 12 00 00 00 | uint32_t | 0x00000012 (18) | length of string - +0x3B1C | 2F 2F 6D 6F 6E 73 74 65 | char[18] | //monste | string literal - +0x3B24 | 72 5F 74 65 73 74 2E 66 | | r_test.f - +0x3B2C | 62 73 | | bs - +0x3B2E | 00 | char | 0x00 (0) | string terminator - -vector (reflection.Object.documentation): - +0x3B30 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x36E4 | 12 00 00 00 | uint32_t | 0x00000012 (18) | length of string + +0x36E8 | 2F 2F 6D 6F 6E 73 74 65 | char[18] | //monste | string literal + +0x36F0 | 72 5F 74 65 73 74 2E 66 | | r_test.f + +0x36F8 | 62 73 | | bs + +0x36FA | 00 | char | 0x00 (0) | string terminator vector (reflection.Object.fields): - +0x3B34 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x36FC | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) string (reflection.Object.name): - +0x3B38 | 18 00 00 00 | uint32_t | 0x00000018 (24) | length of string - +0x3B3C | 4D 79 47 61 6D 65 2E 49 | char[24] | MyGame.I | string literal - +0x3B44 | 6E 50 61 72 65 6E 74 4E | | nParentN - +0x3B4C | 61 6D 65 73 70 61 63 65 | | amespace - +0x3B54 | 00 | char | 0x00 (0) | string terminator + +0x3700 | 18 00 00 00 | uint32_t | 0x00000018 (24) | length of string + +0x3704 | 4D 79 47 61 6D 65 2E 49 | char[24] | MyGame.I | string literal + +0x370C | 6E 50 61 72 65 6E 74 4E | | nParentN + +0x3714 | 61 6D 65 73 70 61 63 65 | | amespace + +0x371C | 00 | char | 0x00 (0) | string terminator padding: - +0x3B55 | 00 00 00 | uint8_t[3] | ... | padding + +0x371D | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Object): - +0x3B58 | 78 FF FF FF | SOffset32 | 0xFFFFFF78 (-136) Loc: +0x3BE0 | offset to vtable - +0x3B5C | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: +0x3BA4 | offset to field `name` (string) - +0x3B60 | 3C 00 00 00 | UOffset32 | 0x0000003C (60) Loc: +0x3B9C | offset to field `fields` (vector) - +0x3B64 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `minalign` (Int) - +0x3B68 | 30 00 00 00 | UOffset32 | 0x00000030 (48) Loc: +0x3B98 | offset to field `documentation` (vector) - +0x3B6C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3B70 | offset to field `declaration_file` (string) + +0x3720 | 88 FF FF FF | SOffset32 | 0xFFFFFF88 (-120) Loc: +0x3798 | offset to vtable + +0x3724 | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: +0x3764 | offset to field `name` (string) + +0x3728 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x375C | offset to field `fields` (vector) + +0x372C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `minalign` (Int) + +0x3730 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3734 | offset to field `declaration_file` (string) string (reflection.Object.declaration_file): - +0x3B70 | 20 00 00 00 | uint32_t | 0x00000020 (32) | length of string - +0x3B74 | 2F 2F 69 6E 63 6C 75 64 | char[32] | //includ | string literal - +0x3B7C | 65 5F 74 65 73 74 2F 69 | | e_test/i - +0x3B84 | 6E 63 6C 75 64 65 5F 74 | | nclude_t - +0x3B8C | 65 73 74 31 2E 66 62 73 | | est1.fbs - +0x3B94 | 00 | char | 0x00 (0) | string terminator + +0x3734 | 20 00 00 00 | uint32_t | 0x00000020 (32) | length of string + +0x3738 | 2F 2F 69 6E 63 6C 75 64 | char[32] | //includ | string literal + +0x3740 | 65 5F 74 65 73 74 2F 69 | | e_test/i + +0x3748 | 6E 63 6C 75 64 65 5F 74 | | nclude_t + +0x3750 | 65 73 74 31 2E 66 62 73 | | est1.fbs + +0x3758 | 00 | char | 0x00 (0) | string terminator padding: - +0x3B95 | 00 00 00 | uint8_t[3] | ... | padding - -vector (reflection.Object.documentation): - +0x3B98 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x3759 | 00 00 00 | uint8_t[3] | ... | padding vector (reflection.Object.fields): - +0x3B9C | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x3BA0 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x3BB0 | offset to table[0] + +0x375C | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x3760 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x3770 | offset to table[0] string (reflection.Object.name): - +0x3BA4 | 06 00 00 00 | uint32_t | 0x00000006 (6) | length of string - +0x3BA8 | 54 61 62 6C 65 41 | char[6] | TableA | string literal - +0x3BAE | 00 | char | 0x00 (0) | string terminator + +0x3764 | 06 00 00 00 | uint32_t | 0x00000006 (6) | length of string + +0x3768 | 54 61 62 6C 65 41 | char[6] | TableA | string literal + +0x376E | 00 | char | 0x00 (0) | string terminator table (reflection.Field): - +0x3BB0 | 74 FF FF FF | SOffset32 | 0xFFFFFF74 (-140) Loc: +0x3C3C | offset to vtable - +0x3BB4 | 00 | uint8_t[1] | . | padding - +0x3BB5 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x3BB6 | 04 00 | uint16_t | 0x0004 (4) | table field `offset` (UShort) - +0x3BB8 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x3BD8 | offset to field `name` (string) - +0x3BBC | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x3BC8 | offset to field `type` (table) - +0x3BC0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3BC4 | offset to field `documentation` (vector) - -vector (reflection.Field.documentation): - +0x3BC4 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x3770 | 84 FF FF FF | SOffset32 | 0xFFFFFF84 (-124) Loc: +0x37EC | offset to vtable + +0x3774 | 00 | uint8_t[1] | . | padding + +0x3775 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x3776 | 04 00 | uint16_t | 0x0004 (4) | table field `offset` (UShort) + +0x3778 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x3790 | offset to field `name` (string) + +0x377C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3780 | offset to field `type` (table) table (reflection.Type): - +0x3BC8 | 58 FF FF FF | SOffset32 | 0xFFFFFF58 (-168) Loc: +0x3C70 | offset to vtable - +0x3BCC | 00 00 00 | uint8_t[3] | ... | padding - +0x3BCF | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) - +0x3BD0 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | table field `index` (Int) - +0x3BD4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x3780 | 68 FF FF FF | SOffset32 | 0xFFFFFF68 (-152) Loc: +0x3818 | offset to vtable + +0x3784 | 00 00 00 | uint8_t[3] | ... | padding + +0x3787 | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) + +0x3788 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | table field `index` (Int) + +0x378C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x3BD8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x3BDC | 62 | char[1] | b | string literal - +0x3BDD | 00 | char | 0x00 (0) | string terminator + +0x3790 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x3794 | 62 | char[1] | b | string literal + +0x3795 | 00 | char | 0x00 (0) | string terminator padding: - +0x3BDE | 00 00 | uint8_t[2] | .. | padding + +0x3796 | 00 00 | uint8_t[2] | .. | padding vtable (reflection.Object): - +0x3BE0 | 14 00 | uint16_t | 0x0014 (20) | size of this vtable - +0x3BE2 | 18 00 | uint16_t | 0x0018 (24) | size of referring table - +0x3BE4 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `name` (id: 0) - +0x3BE6 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `fields` (id: 1) - +0x3BE8 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `is_struct` (id: 2) (Bool) - +0x3BEA | 0C 00 | VOffset16 | 0x000C (12) | offset to field `minalign` (id: 3) - +0x3BEC | 00 00 | VOffset16 | 0x0000 (0) | offset to field `bytesize` (id: 4) (Int) - +0x3BEE | 00 00 | VOffset16 | 0x0000 (0) | offset to field `attributes` (id: 5) (Vector) - +0x3BF0 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `documentation` (id: 6) - +0x3BF2 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `declaration_file` (id: 7) + +0x3798 | 14 00 | uint16_t | 0x0014 (20) | size of this vtable + +0x379A | 14 00 | uint16_t | 0x0014 (20) | size of referring table + +0x379C | 04 00 | VOffset16 | 0x0004 (4) | offset to field `name` (id: 0) + +0x379E | 08 00 | VOffset16 | 0x0008 (8) | offset to field `fields` (id: 1) + +0x37A0 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `is_struct` (id: 2) (Bool) + +0x37A2 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `minalign` (id: 3) + +0x37A4 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `bytesize` (id: 4) (Int) + +0x37A6 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `attributes` (id: 5) (Vector) + +0x37A8 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `documentation` (id: 6) (Vector) + +0x37AA | 10 00 | VOffset16 | 0x0010 (16) | offset to field `declaration_file` (id: 7) table (reflection.Object): - +0x3BF4 | 14 00 00 00 | SOffset32 | 0x00000014 (20) Loc: +0x3BE0 | offset to vtable - +0x3BF8 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x3C18 | offset to field `name` (string) - +0x3BFC | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x3C10 | offset to field `fields` (vector) - +0x3C00 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `minalign` (Int) - +0x3C04 | 08 00 00 00 | UOffset32 | 0x00000008 (8) Loc: +0x3C0C | offset to field `documentation` (vector) - +0x3C08 | C4 00 00 00 | UOffset32 | 0x000000C4 (196) Loc: +0x3CCC | offset to field `declaration_file` (string) - -vector (reflection.Object.documentation): - +0x3C0C | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x37AC | 14 00 00 00 | SOffset32 | 0x00000014 (20) Loc: +0x3798 | offset to vtable + +0x37B0 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x37C8 | offset to field `name` (string) + +0x37B4 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x37C0 | offset to field `fields` (vector) + +0x37B8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `minalign` (Int) + +0x37BC | B4 00 00 00 | UOffset32 | 0x000000B4 (180) Loc: +0x3870 | offset to field `declaration_file` (string) vector (reflection.Object.fields): - +0x3C10 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x3C14 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x3C58 | offset to table[0] + +0x37C0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x37C4 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x3808 | offset to table[0] string (reflection.Object.name): - +0x3C18 | 1C 00 00 00 | uint32_t | 0x0000001C (28) | length of string - +0x3C1C | 4D 79 47 61 6D 65 2E 4F | char[28] | MyGame.O | string literal - +0x3C24 | 74 68 65 72 4E 61 6D 65 | | therName - +0x3C2C | 53 70 61 63 65 2E 54 61 | | Space.Ta - +0x3C34 | 62 6C 65 42 | | bleB - +0x3C38 | 00 | char | 0x00 (0) | string terminator + +0x37C8 | 1C 00 00 00 | uint32_t | 0x0000001C (28) | length of string + +0x37CC | 4D 79 47 61 6D 65 2E 4F | char[28] | MyGame.O | string literal + +0x37D4 | 74 68 65 72 4E 61 6D 65 | | therName + +0x37DC | 53 70 61 63 65 2E 54 61 | | Space.Ta + +0x37E4 | 62 6C 65 42 | | bleB + +0x37E8 | 00 | char | 0x00 (0) | string terminator padding: - +0x3C39 | 00 00 00 | uint8_t[3] | ... | padding + +0x37E9 | 00 00 00 | uint8_t[3] | ... | padding vtable (reflection.Field): - +0x3C3C | 1C 00 | uint16_t | 0x001C (28) | size of this vtable - +0x3C3E | 14 00 | uint16_t | 0x0014 (20) | size of referring table - +0x3C40 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0) - +0x3C42 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `type` (id: 1) - +0x3C44 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `id` (id: 2) (UShort) - +0x3C46 | 06 00 | VOffset16 | 0x0006 (6) | offset to field `offset` (id: 3) - +0x3C48 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) (Long) - +0x3C4A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) (Double) - +0x3C4C | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) - +0x3C4E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) (Bool) - +0x3C50 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 8) (Bool) - +0x3C52 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `attributes` (id: 9) (Vector) - +0x3C54 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `documentation` (id: 10) - +0x3C56 | 05 00 | VOffset16 | 0x0005 (5) | offset to field `optional` (id: 11) + +0x37EC | 1C 00 | uint16_t | 0x001C (28) | size of this vtable + +0x37EE | 10 00 | uint16_t | 0x0010 (16) | size of referring table + +0x37F0 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0) + +0x37F2 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `type` (id: 1) + +0x37F4 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `id` (id: 2) (UShort) + +0x37F6 | 06 00 | VOffset16 | 0x0006 (6) | offset to field `offset` (id: 3) + +0x37F8 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) (Long) + +0x37FA | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) (Double) + +0x37FC | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) + +0x37FE | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) (Bool) + +0x3800 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 8) (Bool) + +0x3802 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `attributes` (id: 9) (Vector) + +0x3804 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `documentation` (id: 10) (Vector) + +0x3806 | 05 00 | VOffset16 | 0x0005 (5) | offset to field `optional` (id: 11) table (reflection.Field): - +0x3C58 | 1C 00 00 00 | SOffset32 | 0x0000001C (28) Loc: +0x3C3C | offset to vtable - +0x3C5C | 00 | uint8_t[1] | . | padding - +0x3C5D | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x3C5E | 04 00 | uint16_t | 0x0004 (4) | table field `offset` (UShort) - +0x3C60 | 30 00 00 00 | UOffset32 | 0x00000030 (48) Loc: +0x3C90 | offset to field `name` (string) - +0x3C64 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: +0x3C80 | offset to field `type` (table) - +0x3C68 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3C6C | offset to field `documentation` (vector) - -vector (reflection.Field.documentation): - +0x3C6C | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x3808 | 1C 00 00 00 | SOffset32 | 0x0000001C (28) Loc: +0x37EC | offset to vtable + +0x380C | 00 | uint8_t[1] | . | padding + +0x380D | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x380E | 04 00 | uint16_t | 0x0004 (4) | table field `offset` (UShort) + +0x3810 | 28 00 00 00 | UOffset32 | 0x00000028 (40) Loc: +0x3838 | offset to field `name` (string) + +0x3814 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x3828 | offset to field `type` (table) vtable (reflection.Type): - +0x3C70 | 10 00 | uint16_t | 0x0010 (16) | size of this vtable - +0x3C72 | 10 00 | uint16_t | 0x0010 (16) | size of referring table - +0x3C74 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `base_type` (id: 0) - +0x3C76 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `element` (id: 1) (Byte) - +0x3C78 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `index` (id: 2) - +0x3C7A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `fixed_length` (id: 3) (UShort) - +0x3C7C | 00 00 | VOffset16 | 0x0000 (0) | offset to field `base_size` (id: 4) (UInt) - +0x3C7E | 0C 00 | VOffset16 | 0x000C (12) | offset to field `element_size` (id: 5) + +0x3818 | 10 00 | uint16_t | 0x0010 (16) | size of this vtable + +0x381A | 10 00 | uint16_t | 0x0010 (16) | size of referring table + +0x381C | 07 00 | VOffset16 | 0x0007 (7) | offset to field `base_type` (id: 0) + +0x381E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `element` (id: 1) (Byte) + +0x3820 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `index` (id: 2) + +0x3822 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `fixed_length` (id: 3) (UShort) + +0x3824 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `base_size` (id: 4) (UInt) + +0x3826 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `element_size` (id: 5) table (reflection.Type): - +0x3C80 | 10 00 00 00 | SOffset32 | 0x00000010 (16) Loc: +0x3C70 | offset to vtable - +0x3C84 | 00 00 00 | uint8_t[3] | ... | padding - +0x3C87 | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) - +0x3C88 | 0E 00 00 00 | uint32_t | 0x0000000E (14) | table field `index` (Int) - +0x3C8C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x3828 | 10 00 00 00 | SOffset32 | 0x00000010 (16) Loc: +0x3818 | offset to vtable + +0x382C | 00 00 00 | uint8_t[3] | ... | padding + +0x382F | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) + +0x3830 | 0E 00 00 00 | uint32_t | 0x0000000E (14) | table field `index` (Int) + +0x3834 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x3C90 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x3C94 | 61 | char[1] | a | string literal - +0x3C95 | 00 | char | 0x00 (0) | string terminator + +0x3838 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x383C | 61 | char[1] | a | string literal + +0x383D | 00 | char | 0x00 (0) | string terminator padding: - +0x3C96 | 00 00 | uint8_t[2] | .. | padding + +0x383E | 00 00 | uint8_t[2] | .. | padding vtable (reflection.Object): - +0x3C98 | 14 00 | uint16_t | 0x0014 (20) | size of this vtable - +0x3C9A | 20 00 | uint16_t | 0x0020 (32) | size of referring table - +0x3C9C | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0) - +0x3C9E | 0C 00 | VOffset16 | 0x000C (12) | offset to field `fields` (id: 1) - +0x3CA0 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `is_struct` (id: 2) - +0x3CA2 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `minalign` (id: 3) - +0x3CA4 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `bytesize` (id: 4) - +0x3CA6 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `attributes` (id: 5) (Vector) - +0x3CA8 | 18 00 | VOffset16 | 0x0018 (24) | offset to field `documentation` (id: 6) - +0x3CAA | 1C 00 | VOffset16 | 0x001C (28) | offset to field `declaration_file` (id: 7) + +0x3840 | 14 00 | uint16_t | 0x0014 (20) | size of this vtable + +0x3842 | 1C 00 | uint16_t | 0x001C (28) | size of referring table + +0x3844 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0) + +0x3846 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `fields` (id: 1) + +0x3848 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `is_struct` (id: 2) + +0x384A | 10 00 | VOffset16 | 0x0010 (16) | offset to field `minalign` (id: 3) + +0x384C | 14 00 | VOffset16 | 0x0014 (20) | offset to field `bytesize` (id: 4) + +0x384E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `attributes` (id: 5) (Vector) + +0x3850 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `documentation` (id: 6) (Vector) + +0x3852 | 18 00 | VOffset16 | 0x0018 (24) | offset to field `declaration_file` (id: 7) table (reflection.Object): - +0x3CAC | 14 00 00 00 | SOffset32 | 0x00000014 (20) Loc: +0x3C98 | offset to vtable - +0x3CB0 | 00 00 00 | uint8_t[3] | ... | padding - +0x3CB3 | 01 | uint8_t | 0x01 (1) | table field `is_struct` (Bool) - +0x3CB4 | 50 00 00 00 | UOffset32 | 0x00000050 (80) Loc: +0x3D04 | offset to field `name` (string) - +0x3CB8 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x3CFC | offset to field `fields` (vector) - +0x3CBC | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `minalign` (Int) - +0x3CC0 | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `bytesize` (Int) - +0x3CC4 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x3CF8 | offset to field `documentation` (vector) - +0x3CC8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3CCC | offset to field `declaration_file` (string) + +0x3854 | 14 00 00 00 | SOffset32 | 0x00000014 (20) Loc: +0x3840 | offset to vtable + +0x3858 | 00 00 00 | uint8_t[3] | ... | padding + +0x385B | 01 | uint8_t | 0x01 (1) | table field `is_struct` (Bool) + +0x385C | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: +0x38A4 | offset to field `name` (string) + +0x3860 | 3C 00 00 00 | UOffset32 | 0x0000003C (60) Loc: +0x389C | offset to field `fields` (vector) + +0x3864 | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `minalign` (Int) + +0x3868 | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `bytesize` (Int) + +0x386C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3870 | offset to field `declaration_file` (string) string (reflection.Object.declaration_file): - +0x3CCC | 24 00 00 00 | uint32_t | 0x00000024 (36) | length of string - +0x3CD0 | 2F 2F 69 6E 63 6C 75 64 | char[36] | //includ | string literal - +0x3CD8 | 65 5F 74 65 73 74 2F 73 | | e_test/s - +0x3CE0 | 75 62 2F 69 6E 63 6C 75 | | ub/inclu - +0x3CE8 | 64 65 5F 74 65 73 74 32 | | de_test2 - +0x3CF0 | 2E 66 62 73 | | .fbs - +0x3CF4 | 00 | char | 0x00 (0) | string terminator + +0x3870 | 24 00 00 00 | uint32_t | 0x00000024 (36) | length of string + +0x3874 | 2F 2F 69 6E 63 6C 75 64 | char[36] | //includ | string literal + +0x387C | 65 5F 74 65 73 74 2F 73 | | e_test/s + +0x3884 | 75 62 2F 69 6E 63 6C 75 | | ub/inclu + +0x388C | 64 65 5F 74 65 73 74 32 | | de_test2 + +0x3894 | 2E 66 62 73 | | .fbs + +0x3898 | 00 | char | 0x00 (0) | string terminator padding: - +0x3CF5 | 00 00 00 | uint8_t[3] | ... | padding - -vector (reflection.Object.documentation): - +0x3CF8 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x3899 | 00 00 00 | uint8_t[3] | ... | padding vector (reflection.Object.fields): - +0x3CFC | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x3D00 | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: +0x3D40 | offset to table[0] + +0x389C | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x38A0 | 30 00 00 00 | UOffset32 | 0x00000030 (48) Loc: +0x38D0 | offset to table[0] string (reflection.Object.name): - +0x3D04 | 1C 00 00 00 | uint32_t | 0x0000001C (28) | length of string - +0x3D08 | 4D 79 47 61 6D 65 2E 4F | char[28] | MyGame.O | string literal - +0x3D10 | 74 68 65 72 4E 61 6D 65 | | therName - +0x3D18 | 53 70 61 63 65 2E 55 6E | | Space.Un - +0x3D20 | 75 73 65 64 | | used - +0x3D24 | 00 | char | 0x00 (0) | string terminator + +0x38A4 | 1C 00 00 00 | uint32_t | 0x0000001C (28) | length of string + +0x38A8 | 4D 79 47 61 6D 65 2E 4F | char[28] | MyGame.O | string literal + +0x38B0 | 74 68 65 72 4E 61 6D 65 | | therName + +0x38B8 | 53 70 61 63 65 2E 55 6E | | Space.Un + +0x38C0 | 75 73 65 64 | | used + +0x38C4 | 00 | char | 0x00 (0) | string terminator -vtable (reflection.Field): - +0x3D26 | 1A 00 | uint16_t | 0x001A (26) | size of this vtable - +0x3D28 | 10 00 | uint16_t | 0x0010 (16) | size of referring table - +0x3D2A | 04 00 | VOffset16 | 0x0004 (4) | offset to field `name` (id: 0) - +0x3D2C | 08 00 | VOffset16 | 0x0008 (8) | offset to field `type` (id: 1) - +0x3D2E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `id` (id: 2) (UShort) - +0x3D30 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `offset` (id: 3) (UShort) - +0x3D32 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) (Long) - +0x3D34 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) (Double) - +0x3D36 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) - +0x3D38 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) (Bool) - +0x3D3A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 8) (Bool) - +0x3D3C | 00 00 | VOffset16 | 0x0000 (0) | offset to field `attributes` (id: 9) (Vector) - +0x3D3E | 0C 00 | VOffset16 | 0x000C (12) | offset to field `documentation` (id: 10) +padding: + +0x38C5 | 00 00 00 | uint8_t[3] | ... | padding -table (reflection.Field): - +0x3D40 | 1A 00 00 00 | SOffset32 | 0x0000001A (26) Loc: +0x3D26 | offset to vtable - +0x3D44 | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: +0x3D70 | offset to field `name` (string) - +0x3D48 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: +0x3D64 | offset to field `type` (table) - +0x3D4C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3D50 | offset to field `documentation` (vector) +vtable (reflection.KeyValue): + +0x38C8 | 08 00 | uint16_t | 0x0008 (8) | size of this vtable + +0x38CA | 0C 00 | uint16_t | 0x000C (12) | size of referring table + +0x38CC | 04 00 | VOffset16 | 0x0004 (4) | offset to field `key` (id: 0) + +0x38CE | 08 00 | VOffset16 | 0x0008 (8) | offset to field `value` (id: 1) -vector (reflection.Field.documentation): - +0x3D50 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) +table (reflection.Field): + +0x38D0 | 08 00 00 00 | SOffset32 | 0x00000008 (8) Loc: +0x38C8 | offset to vtable + +0x38D4 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x38F8 | offset to field `key` (string) + +0x38D8 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x38EC | offset to field `value` (string) vtable (reflection.Type): - +0x3D54 | 10 00 | uint16_t | 0x0010 (16) | size of this vtable - +0x3D56 | 0C 00 | uint16_t | 0x000C (12) | size of referring table - +0x3D58 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `base_type` (id: 0) - +0x3D5A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `element` (id: 1) (Byte) - +0x3D5C | 00 00 | VOffset16 | 0x0000 (0) | offset to field `index` (id: 2) (Int) - +0x3D5E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `fixed_length` (id: 3) (UShort) - +0x3D60 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `base_size` (id: 4) (UInt) - +0x3D62 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `element_size` (id: 5) + +0x38DC | 10 00 | uint16_t | 0x0010 (16) | size of this vtable + +0x38DE | 0C 00 | uint16_t | 0x000C (12) | size of referring table + +0x38E0 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `base_type` (id: 0) + +0x38E2 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `element` (id: 1) (Byte) + +0x38E4 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `index` (id: 2) (Int) + +0x38E6 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `fixed_length` (id: 3) (UShort) + +0x38E8 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `base_size` (id: 4) (UInt) + +0x38EA | 08 00 | VOffset16 | 0x0008 (8) | offset to field `element_size` (id: 5) + +string (reflection.Field.value): + +0x38EC | 10 00 00 00 | uint32_t | 0x00000010 (16) | ERROR: length of string. Longer than the binary. -table (reflection.Type): - +0x3D64 | 10 00 00 00 | SOffset32 | 0x00000010 (16) Loc: +0x3D54 | offset to vtable - +0x3D68 | 00 00 00 | uint8_t[3] | ... | padding - +0x3D6B | 07 | uint8_t | 0x07 (7) | table field `base_type` (Byte) - +0x3D6C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) +unknown (no known references): + +0x38F0 | 00 00 00 07 01 00 00 00 | ?uint8_t[8] | ........ | WARN: nothing refers to this section. -string (reflection.Field.name): - +0x3D70 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x3D74 | 61 | char[1] | a | string literal - +0x3D75 | 00 | char | 0x00 (0) | string terminator +string (reflection.Field.key): + +0x38F8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x38FC | 61 | char[1] | a | string literal + +0x38FD | 00 | char | 0x00 (0) | string terminator padding: - +0x3D76 | 00 00 | uint8_t[2] | .. | padding + +0x38FE | 00 00 | uint8_t[2] | .. | padding diff --git a/tests/monster_test.bfbs b/tests/monster_test.bfbs index 04a6d16d863531bf675137a232f9a1da2c9696a3..cbf6335dbbd10d9ae97d1e1cf22dd26d79694450 100644 GIT binary patch literal 14592 zcmb80PjFmEUdMYJId&4o(mL9#vhgM_K_tqq)|MT|(FQ{)UMKNVvZIQ%!9}T%Mw*c{ zo6(GRX5>FxDprRSrGpPXxVCceK?fJ*gAY3R;DZl7_+SbH2Fzl>um%hm2#bIK%C2{Z z&$s*ao1Ulf$~@I?Ucc^N|Ni%{|GcNj7<1s=14p@;E)$tHv(>blPRiZX?BH(9F<>vy z1E_ZRX#DLFyKG?x%hr##MbEFdq3yMM1i z8`GP~Vj*9ut*0$LMY};5+e3GT`ekU2LR+%QR=CHOYbn~*eC2q)vYz%i@H*o@@{9W8 zR#V93XXnZ_E065`LB3WgcV0JU{105cWb`1K*MYOZIM4^Y45a-1cInjHvlE5s`SN`A?P4KY z&EuE$pVsR=;7WJJs=r2m-}343JY>_u@ZTTctIl7iTj4V%iUGc8`Rht6e8yS(=Z#n} zls$jxc;x*f@2LNeiBoP(wz&$gg+Fxlk}K?YmFF|SD9{VM2&}iww@ZcZ&gZ>hdLFd4 zOYMfUi(*4OtX<$e65xk+IUnOI&v^WiqxkA4^?F2|;zsqlZpOG?cHIvH5x9Qrby4>1 z4V!Ey=P3@iSU)ODZWlpFhw*a``!4^Hvyp8S0w6lKf%CvPpj@T?>uqGr5dMs4liWUD zmRwABc$<7F={pwZnmuE2vN5NF{@za4OYdN){YjGr$(|9#r$s+YBTSY=4Z`~ zpuc3-wbl7OiB-|@{6@j|wi~A0+IB9NYEJRC%TXEzWIv6)@&1ObB(E@KH_@ZX=D~?V zZEUKTon}~>t$%Fo{G@QyUwE?D5-N9i1AnqVC<;};}|Rcsg1EV*~;5Og(tn(ZBQEN_qBMrOD!a4r3upyS0I{mRrNhZ=F_3 z3S5dh+0)Zku8k>tm@VROV&NclUays}x$+I_mVpa&JO*q9)&Q*!dw`p?UE)5%y$AR* zkcyX)Q*+6*Xzu)ln?IfcQ!>hT<3Cc}wsz^S=i^iRzj#S&vV7`lo_pD^YH8eNAcxxZaJJS9;X1#A#fgJ zMd|sC|Iq6AxW<6To8P_9%z?KFUwgbIhqpPzD}eV2co{Y-9&g3rwTYHM`11pbfljC? zDjv7Lvas)S&-Jms@O=vOQC{;|j*d`pHXjCQm}lY2PD5k>mF07mh9=6EqP*K&M7i?h z{46;xTPu`HN_l#CD|&g>Z91az#CP(OwU^DW(eDBiSsMg%z!l&V#681?VyRBDnKBIMBbSGLzLBz25jngI7Oopjcj*zKK`B#*8yBy=6|e((C(lOY}OM=7kZw4bKI_H$21ww z2jM01ubc0{(VdHlpXBccR9*^rN)FYNj<8caYKsMXK(P|wss9^6ep&b{%cn!$6OC5= zZ^p9hF*9ZmoV4zp&}h;fLA;$8|5^06btt7vX4$wpnJs23V;|*DjaAE)T0S>c)84R3 zli7dY>Al-bC2LKuxAL0Gi||vO{C1qKi2F0Cf5{q3^9B8Scr(N&>nk(Ty*S5R==kGmSVeF zm@Xl=BF_w3o0-fmGttuCi)s2n?pgg8Ywu()p>xmU%+Te^Sb55lubSnU{!TOAlD@`9 zll(#6x#(iKQ@Z+i$(BxyW&Md1^^)Q1=C@joll}B>q8;R!+Fj>+Pg{4*cTM!iYAj=! z1FfDW)5mGhAUNrmJfG$hXIe3h)$fALJPu6%D%)+i!AiF1D;OcLRRvt4sWaGgqrvys_zg zP4(@>vmc9+zm)yR?z-Aj_`~qwwm372# z2K#W!^s?)-`#~P$bNS&Cum}tTJ%H*j2Qn*0_x3mP^ex&R#YPVTyp3$s%Xsj5Ykt{D z%=EI?c$l4zfggbk<)G+UscWZ?DbiOV>{z!+ z$j~u@XmrRUQ3}X`x8{r!k+G%)9pdHLXt{w3_@DtQT(DzV5tDYuAP@ zZilZyF=TZ%nTXZMexB3xPp9bzYlD7gFMAf&ybjdPqiQb1v|ls_TH5G-nszX!9{X?S z3*~i^u%TDZ<_4V-?0C9&?fuSWY=g@#r#RXsBgDC z+`3(~)yB;%#Js=4iPRv^X?tA>XiJ_wK~C@cAEy)5c1^@_kku*6Lg`d_%I#H1UGtMQ zb1&wz1Fy95OAq^sP`^C`4gIb=*`Jo&THnfUo(FHGOVjvpFS0yu-fBsEF-<$jeM@ft zWcSSSjc891a~JCM`j(3JXMastj@ejw)68xI%7mWS$k0^`ICn1}hmxr=c16i&i%NNZ~a}DH6u`H5j z0T>2);<_EI@tb4{a>f8{>+Qp#dfeCVRmQ>VitEJVD5uZD(f%gfrz{0{8?Bd?!4(Pl zKGczO|HR%GJ{R9UyGCkd?=@&N>DJ#E(_Q%VQFQBdzPIlbLOH5|9Q{A3*Pk(8wQ`Ig zuWS(deGwX=9J_-Yc8)f0JDrUvmb4ud4R7BrwPe{ zgO3f#a19wciSiufR<`J357K0dAb0lDw$2tQ83yeh#@M(BW$TWGOYM(Q~&jPeT4 zzN?n6#OnsSG}$u9*ZWyB=#b<3Ik}(sYvR%0h@V@w?>4&@ zO3`Pf<-SE6{<)*Ccgw@bEFO~G%XKE8uR7A9&6j$A*2&-F*j_QORgdJ5PU&?kA#E>{yR<39q zcBf>}TX0AypmpO8G>5BE}XFf6Q{<|>79g;$|GnyswkLs=C=Ue=ye zTR&~e2)X=RB|oW=$op+)$ELhI#aB9|T+z}`>!5f4TZpA@=n(xGeTOhgNpedE@$QMs z=UecXj=Xd+S5s}I&qQvwH!)B9IM9ZdX1jmT_Y8+9OV4%y73}44yNS!t9$MIWdn~c8 z<}vyHLG?3p&HIORoa(!Xklzn1x5l_%O7WAAJioORKiP+`#)IUW4TFqDo{s@(-!CIe=m*K^eSd{E$)i3R_YZqtFu+=v=46fN_3UFG5YgcE z=|msVmOht()4(%8N-w*FUmwrP2tJ-oM)5UB-#$R{dArYH!-wf}*U6cDf8+AdygoZO zpRuk9zpZI!Jxg`6-jv*YlV&cWlkBPZ6W<#ycI+7NdM^kEk#_LoWf6WS6N%)Mjb8=U z>8;a(_ot59Q-f+!FkNA+H zABmXnCOqhQFUGv-ZgmmwNkHRdeI6H9BadhBnWu9-rlYx4Gz1gC4kUNujfbYILC4dG zeWc^6gof1M)97G({AF+%O>3w6Y`OAuD<=IXnFaV(*MB7E~4v3f%_jA z@G|543<8oXitpzkCc3C>K2Gr(pibwNQ{@VWli4D#lgXZLufD+j5YR_wEsSqaZZSqb z%ui}2cp>)sG}*Hw+3S0Ni(_|A)y{Jm z2Uk+~ntbn3=i}r~s{JJG@>k>AI(glFTQ^5ZaVWm>-6{q7yBCly``LG-V?=8c))mKD z6`0W$?b;7aR%fymUcY85wE`*2(jTP$6(AMwBbc$(C--1(!v}um>$Lj}Nu}6{0Lkeu zMWp1C4zitO=33`7zvep^?*Sr^gezLocQq~}vYjJZ#GT}&_2F@+m6MG-wB7`042t$0 zm&=mx9%b_hU>R9tZ~0G>OAlSrJk}#whp0~$XoHsUU2M3uF^?_2?cd}7;mQoqrw^PS zKy)P2c3{`8`0Ggfl3?f5M3qV|$sPOZTcu(9LP4Jr+xH1-UxMBs_q~9p7g64|tKhyd zw)C1Fc6;i=mu?#K_CGD&cK=hQdCl8v#@VaG>!?1mmm;?j%Tz!~wopHhdx^5}4+5G4 zV?9#eLtD-VXa>jUd`T2ujWt%6NB#ORro@ zZ~OVqyt6y|uD$l4hxgr?XXg1a&-2VP^Nu$dV|Ko}^FXhOOo!<-U8cwMn)TFf;AzZ3 zU;yX?RJ*X&fMv`vAO&0l?geHGdHNf(_w{`Tc$oWvJ@*-N?jB?AfY9-PF(=m;bDoA< z4;s@=`^XE%3^U%sR%4ECgCc}ZJ`c?=88bL&Oz|OO`nMYsy+j?b`^(1M1y1uWnxMcX zV*?-jL9MojdcBLUcX_`+-7WA{2OH)%b=UZPmHPP@SM@pGFH&#JT4a_MjMW3InN2_s zpt@V|rK0iPfyiy1CjsGn0oZ%wwe)Oe%PaHg*o6S%2z7BXTQ`wu%?@iC| z&Q^vC*?gsJ%*L9dafiV-EkomKK!YhU6S-_AUumTw`9-5az?iogzexS%eq&BSBa}h9 zq}uYm;}08hh(= zkJ4!;j11B_li(`Q=3DVyH^jWv5HMhvO~s`z#=P6m5;us!Qx4Ax~(3XPvFrb@#dY7-Mm) z+cp*lJF^|X3H1`{^KLwj*QLf8$&@PxvWk}@>G53Vm$Q|bSMt?a^LAn!$>hr}XE$|U z(0HEyy8ms}aR+swPP~178yY$K9t4H}@8cZ<{Gh0h=A`p`tuadRcsyGfo64o9abI)d zkFEY6wD|m1U+M5&U=)aehTiIH#GXQa+Q}R1-}^u4ZV>xo%%wmE$*Yb#v(x4~iGHHr zRA~3I`+g&b3+5AivkydXzu`O$EYat6Lgpvb579^S>veS%A5uAij(FUw80zVXmrH5` zh5^~%BS6Cb_NON@CeOOE96uKWex%b^a#QBR*gm|zL^CXRfOKpEDn?Y@eIK5eezf%c}SF{5UR} zfMiR|%~wQ;YMWPR4u=4z6JFxtd6!V?9Xq1upB4H^?9S7d zyuwhu@`?)2NkHR=_Ney(pst_SN|{VP%9bPVfze^&Ml_cW$ZdVr+FCO|wxj8Vmghn9 z?P}NB`Es(k`Ien8XI}?{F{H=+8F9WY&Q08!piElvR=jI0ueXEDx5|Y-wR7@-@*~-S z=V_4lCxLh_Ua!n#O8dwx4;1l~Ew7devtP|myMg1Mmo9U-{kgimE?CRv+ zWsTy&)6rTOkMu^GKqwp8L!InEIO6Hf7XG7j0XKk;fJGWl0{y@tCg&rbBfuhU9sC~U z*#|rhB;=AB?qJiYtSN_D}KUBwkew+Ce-20i~ z+)!QTh|eavx^mqX5%J3TK|czFxl4kS$C zo^ZJLd)zFzzYXraWZ6kRihpipTqA$;_|>i3&G*5-2Wv>;FF5@BLi{ZFYrZf4TGN96 zvBU4s*aG#d%GjCzUTeXIUSa96HY5v(s1E0E1G=Zm&b1#a%UFx(a+r!?8dWcy4s3Ss zvLjMv6Q%P}#%1GJZ& z1P-x}>wkhhDQ!DY{2iRVKVlE}BtF5UpGClTX);4Ek)~_t8fgm%2Utz6t)v&^gFHy9fG<&@1YRj1hsNf_!}}d~`|ru}`!Mttty#qYO4$YG*i@&BPB3d6F#&;RkzH9EcZ*?}1on&u~jZsziN5##_LY0(o zESsMio6Jn5tGNns_ExR7!yL8rhQL8I8`F4D7Bz+~p610Q&He_>GtM5ZPoo->&rD+m zbCzN@pRF8ekTvhKZhhIjW%hu#gq)VHr#X1FSE_hZ)x0y2 z3AH|MBJ1}Z*6%f!Dq1(Sb_|-za{9LNdwrit^1%Mm%YGu@LHZ755B2^2r?uLPrnG9g zH~b(WH~TP8(-8k4W#z`TBzK+Ex__(Hwv+u0Q$GYW+wYy0c|D$_Gti(jlc1AN=j(LF z@yi!X-i$yav{&)yi`U=HBn^V3mt~SR@SFBE;yK6uV=Ti?Z7g3X&8Bm8!nBS5uvQx| zIXic-+Z4Aw&C$P3=x#%RR3e>LCxFPeedRFIbF;o>A;ZJ|KLrH zv9_CK!SXKMmnYJ>bZP9(%#pEjp;XCCj#adGF4JUg$27N^DWZql_lN7I#vKG$j?8uF z_Qvnw9-1Y9xWw7zq_($}@#@r+j_ynk`BhJhuW<%~xYqSgmQTC3vmBWU{Y#l|RI{bb zq#G+7D)f6vum#Vpf>GC<%{L)bRM~6xhAr@ zHL2&!c-#5u{3IcF5aX`?vy)r%BffO5Jx9h+D2)}SESa)-C#JInt88Zn#Uz~|jtye7 z4BaCd-rmyrBV%cQl1Tjz;N|DdueSBOD@htb+#04$!+RQfY8`H(GgcvmCl9f5o785q z{dO|#`rCx=Z~{L^UDzMP_vp81X+I)bReQ2$%=j~L{7`B5pS+?*~ntxUn|L-M{K`|Vlmb@d#-?<`l`qug;T7QEZ*33rlR`u;CkN{ z|M~Qrc84mtLVV#~vhuIB`;{m7-LPLy%Et^M;YLuU1!k z{w|@bAePS1wi;cX4DeRc)%k#)WK>yBS2w|3t*%a?SB9$Z?bL56Es5SS^u!~ziD>2> zH)&UAg$IOoHUIYsUG+D7<`iwK(bf3?ZzWyb1lP;2^=u0^w29N2<@B}wA8NG-JlU~u z;zhV_gH&1nN!nRIxg~3v)g9ZIz|JNLOPHBaPWFu1Z?1rQAs$mSRrEXtgnIi3zQm8( z(gc0R-?Du0p3b_i*7XZwvvxsM#r#Jw;Q%+W(ldyS!AXu^)!+l=cNdQHY2(E z0Li!j{U&(_8+LM@wkXCE&T8lA%%Yv6ZqX49t>uk)z?!bS&&C29q-@SHLrx1?>SxV9 z^D!?MfRJa6a|{>;`T+eNC0}deJy=ucX}?bm8oF*avdb~Or=Zp@-#DA3H_-5jqxb|Q zx}`Ja0-{$;v#3?Z@*J<0b-X&J#FhFT|Ka3&(!6SR@ta|qY+C(g$9?2>P4b2LhaJP6 zVJfF?$mUKqoX7o^m#h$*hcN60#$ODYw@m1Xd?1 zX4LA#q&BciX*X}X$gM(ow*@hJ$m#T9$)P-3`t-E8?U0{ljz5H_&zqOp(m0c(5ya9H z_&-D2vk1+dXiQ5^@A_YjG(W@UC;+J~Y{d z#fY|OsQ7)}V`h5`{ropSzxb0U9~iQT{O9SPNYW4DNYU;+os8Ztr!>Hioe!_ad)v*? z&E(iY%(&rf;vVrK{RDF~UMS@3`nUhTYqigrZOfiJ^wCdqJWM{=WD7y8$k8VK2v4@R z+V61MkK#d!Wru*}{P9MTry#Bv^0n3QbjI;i|9%nj zR1SE0>rSoqS+m7lhM)5Zo+S5CK=$bMbqxAV`U>LFdrR`h#|?_c^82fc;Pu9Jsz1O< zKM$+paBp=hz*{LlxbF78_WMgHE8k)2`k&%nM=v*kiqJX)ET{iT^1UV*`y27_7;UZk zZ;79jd9x-3E{IrYDw-fwq4dP=Dd6Czp&WmJg+R}#lK8qe{s@tbz zOWG$@=9~XhtF7a!sPxm0pX1OB^|N)bp`V3S@UzS1({z9xILk@osbuAJL2Wr@X~`9xmT0yK}?S< z-L*DX(U_9E^(>Tcb}@hYdfQIVCzG^-Sbfmxxqc@~F)WkM%v$;R79jcco&78?3&1=e zyHpOeA%52#muQyHY*`(EN0mZ>`vIz3`Fm+)hT9m2v${;AWS?hzb>hG>QH+|%hNpYt-Qj?h^@>+B(WSi^lj*}r-V zPckO+X~}Rdrl)%d?d)M8L66W_r#IvFOO}l1PxhyrY&~4~oJ?G(_?%4l8TRmdIbHUW z4}~%k{^~SO#yPRZ6HS5lMSqC76MgFrg!DKBtOqon(+e+g@jM?-&?Cgv=^2}wHQ#BH z-P`L?JU8%9n(nl_hM_-*R=gMswk90x+%(su>T$7Y}dIF;ZBx3Rh_ma>Hs zpRD<5&Lwa(m!9V)bnZTxDV8!5@>F7j(`!@Ap5j(lelo}SNm+Df<9@4ECrc`& zyCn=`^%}||9{K>uF-m?K>Q#J5Rz7N(`9vEbwa&ld20tJ6_MweCzwLfTcT_Z&Lx8s{ z@evl^?^=R}5=XD2d340j`n?v_&lELExStUPSG@1&&P$U1Z+N8m>FJM>3y1P+9zFd# z3Hs6(HxkntVgr)Ndz){{h=co_O=C&zV#bvOUFqG^eb3E%w`^B@YCia0Zg#;>#CtEG zdim=0*kSd12k;n>xa-yUl!4w_xxNqoao_o6{T2Ej0+zFv6XdUiSVR=?0+!Gu08``k_c0U(r9 zIu!3ka^mG=>_SFR>UXnToU7{3Hq0D3)Kd4YhFqU|?kiciBWcbduXL^$81kXGL6!9_ zubX#-%e43LpVzVUBt2i#;zbevnvZ9I7TxHy zX|4pDWi%Act>!ZaJPIUq^zu0QpH`CZu~w(B%%q)McXHT0jK-bJa&Ec|X0aNRSU(sXhrBxN8*vvGXFjw9&z)W+60nfgT|5` zxCe-M3vK&~i?{WAyPBhM0laBmH1Fa`MH0D8Sv>kZQzI`^-!yOoyH`JHPj!-K2=GPc z_|5aN&Hr(xiQs2|_RWC$Mu6zA1D<;>z6ESQ3T>GhFH;#8=`SAhtNCI35lL6{?KdQ$ z%rmZHh4iR#z0F0uKlfbL-QTz4HvQNdQc*w6sp60Q>!_EpYw3@*JEAVs>p`d2Zq=!u zKzfx=G<-zk^;$hew$0&5Ul#!t_1gtVpRs(2zdx{??4%hSzix@cM(GK1(dFh;G$n!L zqjbxkJl|>F_4mk)*e-i@e~&D*Vg3`3nkRwgPtQIeq1$qGyh*>?lKLH@&+@W Date: Thu, 17 Nov 2022 23:24:48 -0500 Subject: [PATCH 021/571] Fix schema to binary test, when build and run from all directories. specially when add to other projects. (#7650) --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 395ac59e7c..85356ca65a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -585,7 +585,7 @@ function(compile_flatbuffers_schema_to_binary SRC_FBS) OUTPUT ${GEN_BINARY_SCHEMA} COMMAND "${FLATBUFFERS_FLATC_EXECUTABLE}" -b --schema --bfbs-comments --bfbs-builtins - --bfbs-filenames ${SRC_FBS_DIR} + --bfbs-filenames "${CMAKE_CURRENT_SOURCE_DIR}/${SRC_FBS_DIR}" -I "${CMAKE_CURRENT_SOURCE_DIR}/tests/include_test" -o "${SRC_FBS_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}/${SRC_FBS}" From eb1abb51ea856a7b118c0d6a47624470caec0463 Mon Sep 17 00:00:00 2001 From: Wen Sun <30698014+sunwen18@users.noreply.github.com> Date: Fri, 18 Nov 2022 11:04:46 -0800 Subject: [PATCH 022/571] Add support for using array of scalar as key field in Cpp (#7623) * add support for using array of scalar as key field * update cmakelist and test.cpp to include the tests * update bazel rule * address comments * clang format * delete comment * delete comment * address the rest of the commnets * address comments * update naming in test file * format build file * buildifier * make keycomparelessthan call keycomparewithvalue * update to use flatbuffer array instead of raw pointer * clang * format * revert format * revert format * update * run generate_code.py * run code generator * revert changes by generate_code.py * fist run make flatc and then run generate_code.py Co-authored-by: Wen Sun --- CMakeLists.txt | 41 +-- include/flatbuffers/reflection_generated.h | 16 +- src/idl_gen_cpp.cpp | 35 ++- src/idl_parser.cpp | 20 +- tests/BUILD.bazel | 4 + .../generated_cpp17/monster_test_generated.h | 8 +- tests/key_field/key_field_sample.fbs | 21 ++ tests/key_field/key_field_sample_generated.h | 260 ++++++++++++++++++ tests/key_field_test.cpp | 72 +++++ tests/key_field_test.h | 12 + tests/monster_test_generated.h | 8 +- .../ext_only/monster_test_generated.hpp | 8 +- .../filesuffix_only/monster_test_suffix.h | 8 +- .../monster_test_suffix.hpp | 8 +- tests/test.cpp | 12 +- 15 files changed, 471 insertions(+), 62 deletions(-) create mode 100644 tests/key_field/key_field_sample.fbs create mode 100644 tests/key_field/key_field_sample_generated.h create mode 100644 tests/key_field_test.cpp create mode 100644 tests/key_field_test.h diff --git a/CMakeLists.txt b/CMakeLists.txt index 85356ca65a..34b3612e85 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -71,10 +71,10 @@ option(FLATBUFFERS_ENABLE_PCH Only work if CMake supports 'target_precompile_headers'. \" This can speed up compilation time." OFF) -option(FLATBUFFERS_SKIP_MONSTER_EXTRA +option(FLATBUFFERS_SKIP_MONSTER_EXTRA "Skip generating monster_extra.fbs that contains non-supported numerical\" types." OFF) -option(FLATBUFFERS_STRICT_MODE +option(FLATBUFFERS_STRICT_MODE "Build flatbuffers with all warnings as errors (-Werror or /WX)." OFF) @@ -226,6 +226,7 @@ set(FlatBuffers_Tests_SRCS tests/flexbuffers_test.cpp tests/fuzz_test.cpp tests/json_test.cpp + tests/key_field_test.cpp tests/monster_test.cpp tests/optional_scalars_test.cpp tests/parser_test.cpp @@ -264,6 +265,8 @@ set(FlatBuffers_Tests_SRCS ${CMAKE_CURRENT_BINARY_DIR}/tests/native_inline_table_test_generated.h # file generate by running compiler on tests/alignment_test.fbs ${CMAKE_CURRENT_BINARY_DIR}/tests/alignment_test_generated.h + # file generate by running compiler on tests/key_field/key_field_sample.fbs + ${CMAKE_CURRENT_BINARY_DIR}/tests/key_field/key_field_sample_generated.h ) set(FlatBuffers_Tests_CPP17_SRCS @@ -365,8 +368,8 @@ include_directories(grpc) # Creates an interface library that stores the configuration settings that each # target links too. This is a compromise between setting configuration globally -# with add_compile_options() and the more targetted target_compile_options(). -# This way each target in this file can share settings and override them if +# with add_compile_options() and the more targetted target_compile_options(). +# This way each target in this file can share settings and override them if # needed. add_library(ProjectConfig INTERFACE) target_compile_features(ProjectConfig @@ -382,7 +385,7 @@ set(CMAKE_CXX_EXTENSIONS OFF) if(MSVC_LIKE) target_compile_options(ProjectConfig - INTERFACE + INTERFACE /W4 $<$: /WX # Treat all compiler warnings as errors @@ -414,8 +417,8 @@ else() -Wno-error=stringop-overflow > > - -pedantic - -Wextra + -pedantic + -Wextra -Wno-unused-parameter -Wold-style-cast -fsigned-char @@ -429,7 +432,7 @@ else() $<$,3.8>: -Wimplicit-fallthrough -Wextra-semi - $<$: + $<$: -Werror=unused-private-field > > @@ -438,7 +441,7 @@ else() $<$: $<$,4.4>: -Wunused-result - -Wunused-parameter + -Wunused-parameter -Werror=unused-parameter -Wmissing-declarations > @@ -446,7 +449,7 @@ else() -Wzero-as-null-pointer-constant > $<$,7.0>: - -faligned-new + -faligned-new $<$: -Werror=implicit-fallthrough=2 > @@ -476,7 +479,7 @@ if(FLATBUFFERS_BUILD_FLATLIB) add_library(flatbuffers STATIC ${FlatBuffers_Library_SRCS}) # Attach header directory for when build via add_subdirectory(). - target_include_directories(flatbuffers + target_include_directories(flatbuffers INTERFACE $ ) @@ -494,7 +497,7 @@ if(FLATBUFFERS_BUILD_FLATC) endif() target_link_libraries(flatc PRIVATE $) - target_compile_options(flatc + target_compile_options(flatc PUBLIC $<$,$>: /MT @@ -696,13 +699,13 @@ if(FLATBUFFERS_BUILD_GRPCTEST) find_package(gRPC CONFIG REQUIRED) add_executable(grpctest ${FlatBuffers_GRPCTest_SRCS}) add_dependencies(grpctest generated_code) - target_link_libraries(grpctext - PRIVATE + target_link_libraries(grpctext + PRIVATE $ - gRPC::grpc++_unsecure - gRPC::gpr + gRPC::grpc++_unsecure + gRPC::gpr pthread - dl + dl ) endif() @@ -715,8 +718,8 @@ if(FLATBUFFERS_INSTALL) configure_file(CMake/flatbuffers-config-version.cmake.in flatbuffers-config-version.cmake @ONLY) install( - FILES - "CMake/flatbuffers-config.cmake" + FILES + "CMake/flatbuffers-config.cmake" "CMake/BuildFlatBuffers.cmake" "${CMAKE_CURRENT_BINARY_DIR}/flatbuffers-config-version.cmake" DESTINATION ${FB_CMAKE_DIR} diff --git a/include/flatbuffers/reflection_generated.h b/include/flatbuffers/reflection_generated.h index ca16429efc..555396baed 100644 --- a/include/flatbuffers/reflection_generated.h +++ b/include/flatbuffers/reflection_generated.h @@ -265,7 +265,7 @@ struct KeyValue FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { const flatbuffers::String *key() const { return GetPointer(VT_KEY); } - bool KeyCompareLessThan(const KeyValue *o) const { + bool KeyCompareLessThan(const KeyValue * const o) const { return *key() < *o->key(); } int KeyCompareWithValue(const char *_key) const { @@ -343,7 +343,7 @@ struct EnumVal FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { int64_t value() const { return GetField(VT_VALUE, 0); } - bool KeyCompareLessThan(const EnumVal *o) const { + bool KeyCompareLessThan(const EnumVal * const o) const { return value() < o->value(); } int KeyCompareWithValue(int64_t _value) const { @@ -455,7 +455,7 @@ struct Enum FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { const flatbuffers::String *name() const { return GetPointer(VT_NAME); } - bool KeyCompareLessThan(const Enum *o) const { + bool KeyCompareLessThan(const Enum * const o) const { return *name() < *o->name(); } int KeyCompareWithValue(const char *_name) const { @@ -606,7 +606,7 @@ struct Field FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { const flatbuffers::String *name() const { return GetPointer(VT_NAME); } - bool KeyCompareLessThan(const Field *o) const { + bool KeyCompareLessThan(const Field * const o) const { return *name() < *o->name(); } int KeyCompareWithValue(const char *_name) const { @@ -812,7 +812,7 @@ struct Object FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { const flatbuffers::String *name() const { return GetPointer(VT_NAME); } - bool KeyCompareLessThan(const Object *o) const { + bool KeyCompareLessThan(const Object * const o) const { return *name() < *o->name(); } int KeyCompareWithValue(const char *_name) const { @@ -964,7 +964,7 @@ struct RPCCall FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { const flatbuffers::String *name() const { return GetPointer(VT_NAME); } - bool KeyCompareLessThan(const RPCCall *o) const { + bool KeyCompareLessThan(const RPCCall * const o) const { return *name() < *o->name(); } int KeyCompareWithValue(const char *_name) const { @@ -1080,7 +1080,7 @@ struct Service FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { const flatbuffers::String *name() const { return GetPointer(VT_NAME); } - bool KeyCompareLessThan(const Service *o) const { + bool KeyCompareLessThan(const Service * const o) const { return *name() < *o->name(); } int KeyCompareWithValue(const char *_name) const { @@ -1199,7 +1199,7 @@ struct SchemaFile FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { const flatbuffers::String *filename() const { return GetPointer(VT_FILENAME); } - bool KeyCompareLessThan(const SchemaFile *o) const { + bool KeyCompareLessThan(const SchemaFile * const o) const { return *filename() < *o->filename(); } int KeyCompareWithValue(const char *_filename) const { diff --git a/src/idl_gen_cpp.cpp b/src/idl_gen_cpp.cpp index 5cffc18a3b..e3d1ff35b4 100644 --- a/src/idl_gen_cpp.cpp +++ b/src/idl_gen_cpp.cpp @@ -2278,12 +2278,19 @@ class CppGenerator : public BaseGenerator { // Generate CompareWithValue method for a key field. void GenKeyFieldMethods(const FieldDef &field) { FLATBUFFERS_ASSERT(field.key); - const bool is_string = (IsString(field.value.type)); + const bool is_string = IsString(field.value.type); + const bool is_array = IsArray(field.value.type); - code_ += " bool KeyCompareLessThan(const {{STRUCT_NAME}} *o) const {"; + code_ += + " bool KeyCompareLessThan(const {{STRUCT_NAME}} * const o) const {"; if (is_string) { // use operator< of flatbuffers::String code_ += " return *{{FIELD_NAME}}() < *o->{{FIELD_NAME}}();"; + } else if (is_array) { + const auto &elem_type = field.value.type.VectorType(); + if (IsScalar(elem_type.base_type)) { + code_ += " return KeyCompareWithValue(o->{{FIELD_NAME}}()) < 0;"; + } } else { code_ += " return {{FIELD_NAME}}() < o->{{FIELD_NAME}}();"; } @@ -2292,7 +2299,27 @@ class CppGenerator : public BaseGenerator { if (is_string) { code_ += " int KeyCompareWithValue(const char *_{{FIELD_NAME}}) const {"; code_ += " return strcmp({{FIELD_NAME}}()->c_str(), _{{FIELD_NAME}});"; - code_ += " }"; + } else if (is_array) { + const auto &elem_type = field.value.type.VectorType(); + if (IsScalar(elem_type.base_type)) { + std::string input_type = "flatbuffers::Array<" + + GenTypeBasic(elem_type, false) + ", " + + NumToString(elem_type.fixed_length) + ">"; + code_.SetValue("INPUT_TYPE", input_type); + code_ += + " int KeyCompareWithValue(const {{INPUT_TYPE}} *_{{FIELD_NAME}}" + ") const { "; + code_ += " for (auto i = 0; i < {{FIELD_NAME}}()->size(); i++) {"; + code_ += " const auto {{FIELD_NAME}}_l = {{FIELD_NAME}}_[i];"; + code_ += " const auto {{FIELD_NAME}}_r = _{{FIELD_NAME}}->Get(i);"; + code_ += " if({{FIELD_NAME}}_l != {{FIELD_NAME}}_r) "; + code_ += + " return static_cast({{FIELD_NAME}}_l > " + "{{FIELD_NAME}}_r)" + " - static_cast({{FIELD_NAME}}_l < {{FIELD_NAME}}_r);"; + code_ += " }"; + code_ += " return 0;"; + } } else { FLATBUFFERS_ASSERT(IsScalar(field.value.type.base_type)); auto type = GenTypeBasic(field.value.type, false); @@ -2307,8 +2334,8 @@ class CppGenerator : public BaseGenerator { code_ += " return static_cast({{FIELD_NAME}}() > _{{FIELD_NAME}}) - " "static_cast({{FIELD_NAME}}() < _{{FIELD_NAME}});"; - code_ += " }"; } + code_ += " }"; } void GenTableUnionAsGetters(const FieldDef &field) { diff --git a/src/idl_parser.cpp b/src/idl_parser.cpp index c63793bad1..bd9780f37f 100644 --- a/src/idl_parser.cpp +++ b/src/idl_parser.cpp @@ -1057,8 +1057,12 @@ CheckedError Parser::ParseField(StructDef &struct_def) { if (field->key) { if (struct_def.has_key) return Error("only one field may be set as 'key'"); struct_def.has_key = true; - if (!IsScalar(type.base_type) && !IsString(type)) { - return Error("'key' field must be string or scalar type"); + auto is_valid = IsScalar(type.base_type) || IsString(type); + if (IsArray(type)) { is_valid |= IsScalar(type.VectorType().base_type); } + if (!is_valid) { + return Error( + "'key' field must be string, scalar type or fixed size array of " + "scalars"); } } @@ -1502,7 +1506,7 @@ CheckedError Parser::ParseTable(const StructDef &struct_def, std::string *value, if (!struct_def.sortbysize || size == SizeOf(field_value.type.base_type)) { switch (field_value.type.base_type) { - // clang-format off +// clang-format off #define FLATBUFFERS_TD(ENUM, IDLTYPE, CTYPE, ...) \ case BASE_TYPE_ ## ENUM: \ builder_.Pad(field->padding); \ @@ -1631,7 +1635,7 @@ CheckedError Parser::ParseVector(const Type &type, uoffset_t *ovalue, // start at the back, since we're building the data backwards. auto &val = field_stack_.back().first; switch (val.type.base_type) { - // clang-format off +// clang-format off #define FLATBUFFERS_TD(ENUM, IDLTYPE, CTYPE,...) \ case BASE_TYPE_ ## ENUM: \ if (IsStruct(val.type)) SerializeStruct(*val.type.struct_def, val); \ @@ -2267,8 +2271,12 @@ template void EnumDef::ChangeEnumValue(EnumVal *ev, T new_value) { } namespace EnumHelper { -template struct EnumValType { typedef int64_t type; }; -template<> struct EnumValType { typedef uint64_t type; }; +template struct EnumValType { + typedef int64_t type; +}; +template<> struct EnumValType { + typedef uint64_t type; +}; } // namespace EnumHelper struct EnumValBuilder { diff --git a/tests/BUILD.bazel b/tests/BUILD.bazel index d9048ea291..90930e6cef 100644 --- a/tests/BUILD.bazel +++ b/tests/BUILD.bazel @@ -22,6 +22,9 @@ cc_test( "is_quiet_nan.h", "json_test.cpp", "json_test.h", + "key_field/key_field_sample_generated.h", + "key_field_test.cpp", + "key_field_test.h", "monster_test.cpp", "monster_test.h", "monster_test_bfbs_generated.h", @@ -63,6 +66,7 @@ cc_test( ":evolution_test/evolution_v2.json", ":include_test/include_test1.fbs", ":include_test/sub/include_test2.fbs", + ":key_field/key_field_sample.fbs", ":monster_extra.fbs", ":monster_test.bfbs", ":monster_test.fbs", diff --git a/tests/cpp17/generated_cpp17/monster_test_generated.h b/tests/cpp17/generated_cpp17/monster_test_generated.h index 2fdeeac128..a8bd4c4084 100644 --- a/tests/cpp17/generated_cpp17/monster_test_generated.h +++ b/tests/cpp17/generated_cpp17/monster_test_generated.h @@ -730,7 +730,7 @@ FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(4) Ability FLATBUFFERS_FINAL_CLASS { void mutate_id(uint32_t _id) { flatbuffers::WriteScalar(&id_, _id); } - bool KeyCompareLessThan(const Ability *o) const { + bool KeyCompareLessThan(const Ability * const o) const { return id() < o->id(); } int KeyCompareWithValue(uint32_t _id) const { @@ -1094,7 +1094,7 @@ struct Stat FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { bool mutate_count(uint16_t _count = 0) { return SetField(VT_COUNT, _count, 0); } - bool KeyCompareLessThan(const Stat *o) const { + bool KeyCompareLessThan(const Stat * const o) const { return count() < o->count(); } int KeyCompareWithValue(uint16_t _count) const { @@ -1207,7 +1207,7 @@ struct Referrable FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { bool mutate_id(uint64_t _id = 0) { return SetField(VT_ID, _id, 0); } - bool KeyCompareLessThan(const Referrable *o) const { + bool KeyCompareLessThan(const Referrable * const o) const { return id() < o->id(); } int KeyCompareWithValue(uint64_t _id) const { @@ -1430,7 +1430,7 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { flatbuffers::String *mutable_name() { return GetPointer(VT_NAME); } - bool KeyCompareLessThan(const Monster *o) const { + bool KeyCompareLessThan(const Monster * const o) const { return *name() < *o->name(); } int KeyCompareWithValue(const char *_name) const { diff --git a/tests/key_field/key_field_sample.fbs b/tests/key_field/key_field_sample.fbs new file mode 100644 index 0000000000..028920d2c3 --- /dev/null +++ b/tests/key_field/key_field_sample.fbs @@ -0,0 +1,21 @@ +namespace keyfield.sample; + +struct Baz { + a: [uint8:4] (key); // A fixed-sized array of uint8 as a Key + b: uint8 ; +} + +struct Bar { + a: [float:3] (key); // A fixed-sized array of float as a Key + b: uint8; +} + +table FooTable { + a: int; + b: int; + c: string (key); + d: [Baz]; + e: [Bar]; +} +root_type FooTable; + diff --git a/tests/key_field/key_field_sample_generated.h b/tests/key_field/key_field_sample_generated.h new file mode 100644 index 0000000000..714de753a0 --- /dev/null +++ b/tests/key_field/key_field_sample_generated.h @@ -0,0 +1,260 @@ +// automatically generated by the FlatBuffers compiler, do not modify + + +#ifndef FLATBUFFERS_GENERATED_KEYFIELDSAMPLE_KEYFIELD_SAMPLE_H_ +#define FLATBUFFERS_GENERATED_KEYFIELDSAMPLE_KEYFIELD_SAMPLE_H_ + +#include "flatbuffers/flatbuffers.h" + +// Ensure the included flatbuffers.h is the same version as when this file was +// generated, otherwise it may not be compatible. +static_assert(FLATBUFFERS_VERSION_MAJOR == 22 && + FLATBUFFERS_VERSION_MINOR == 10 && + FLATBUFFERS_VERSION_REVISION == 26, + "Non-compatible flatbuffers version included"); + +namespace keyfield { +namespace sample { + +struct Baz; + +struct Bar; + +struct FooTable; +struct FooTableBuilder; + +FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(1) Baz FLATBUFFERS_FINAL_CLASS { + private: + uint8_t a_[4]; + uint8_t b_; + + public: + Baz() + : a_(), + b_(0) { + } + Baz(uint8_t _b) + : a_(), + b_(flatbuffers::EndianScalar(_b)) { + } + Baz(flatbuffers::span _a, uint8_t _b) + : b_(flatbuffers::EndianScalar(_b)) { + flatbuffers::CastToArray(a_).CopyFromSpan(_a); + } + const flatbuffers::Array *a() const { + return &flatbuffers::CastToArray(a_); + } + bool KeyCompareLessThan(const Baz * const o) const { + return KeyCompareWithValue(o->a()) < 0; + } + int KeyCompareWithValue(const flatbuffers::Array *_a) const { + for (auto i = 0; i < a()->size(); i++) { + const auto a_l = a_[i]; + const auto a_r = _a->Get(i); + if(a_l != a_r) + return static_cast(a_l > a_r) - static_cast(a_l < a_r); + } + return 0; + } + uint8_t b() const { + return flatbuffers::EndianScalar(b_); + } +}; +FLATBUFFERS_STRUCT_END(Baz, 5); + +FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(4) Bar FLATBUFFERS_FINAL_CLASS { + private: + float a_[3]; + uint8_t b_; + int8_t padding0__; int16_t padding1__; + + public: + Bar() + : a_(), + b_(0), + padding0__(0), + padding1__(0) { + (void)padding0__; + (void)padding1__; + } + Bar(uint8_t _b) + : a_(), + b_(flatbuffers::EndianScalar(_b)), + padding0__(0), + padding1__(0) { + (void)padding0__; + (void)padding1__; + } + Bar(flatbuffers::span _a, uint8_t _b) + : b_(flatbuffers::EndianScalar(_b)), + padding0__(0), + padding1__(0) { + flatbuffers::CastToArray(a_).CopyFromSpan(_a); + (void)padding0__; + (void)padding1__; + } + const flatbuffers::Array *a() const { + return &flatbuffers::CastToArray(a_); + } + bool KeyCompareLessThan(const Bar * const o) const { + return KeyCompareWithValue(o->a()) < 0; + } + int KeyCompareWithValue(const flatbuffers::Array *_a) const { + for (auto i = 0; i < a()->size(); i++) { + const auto a_l = a_[i]; + const auto a_r = _a->Get(i); + if(a_l != a_r) + return static_cast(a_l > a_r) - static_cast(a_l < a_r); + } + return 0; + } + uint8_t b() const { + return flatbuffers::EndianScalar(b_); + } +}; +FLATBUFFERS_STRUCT_END(Bar, 16); + +struct FooTable FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef FooTableBuilder Builder; + enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { + VT_A = 4, + VT_B = 6, + VT_C = 8, + VT_D = 10, + VT_E = 12 + }; + int32_t a() const { + return GetField(VT_A, 0); + } + int32_t b() const { + return GetField(VT_B, 0); + } + const flatbuffers::String *c() const { + return GetPointer(VT_C); + } + bool KeyCompareLessThan(const FooTable * const o) const { + return *c() < *o->c(); + } + int KeyCompareWithValue(const char *_c) const { + return strcmp(c()->c_str(), _c); + } + const flatbuffers::Vector *d() const { + return GetPointer *>(VT_D); + } + const flatbuffers::Vector *e() const { + return GetPointer *>(VT_E); + } + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && + VerifyField(verifier, VT_A, 4) && + VerifyField(verifier, VT_B, 4) && + VerifyOffsetRequired(verifier, VT_C) && + verifier.VerifyString(c()) && + VerifyOffset(verifier, VT_D) && + verifier.VerifyVector(d()) && + VerifyOffset(verifier, VT_E) && + verifier.VerifyVector(e()) && + verifier.EndTable(); + } +}; + +struct FooTableBuilder { + typedef FooTable Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + void add_a(int32_t a) { + fbb_.AddElement(FooTable::VT_A, a, 0); + } + void add_b(int32_t b) { + fbb_.AddElement(FooTable::VT_B, b, 0); + } + void add_c(flatbuffers::Offset c) { + fbb_.AddOffset(FooTable::VT_C, c); + } + void add_d(flatbuffers::Offset> d) { + fbb_.AddOffset(FooTable::VT_D, d); + } + void add_e(flatbuffers::Offset> e) { + fbb_.AddOffset(FooTable::VT_E, e); + } + explicit FooTableBuilder(flatbuffers::FlatBufferBuilder &_fbb) + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); + fbb_.Required(o, FooTable::VT_C); + return o; + } +}; + +inline flatbuffers::Offset CreateFooTable( + flatbuffers::FlatBufferBuilder &_fbb, + int32_t a = 0, + int32_t b = 0, + flatbuffers::Offset c = 0, + flatbuffers::Offset> d = 0, + flatbuffers::Offset> e = 0) { + FooTableBuilder builder_(_fbb); + builder_.add_e(e); + builder_.add_d(d); + builder_.add_c(c); + builder_.add_b(b); + builder_.add_a(a); + return builder_.Finish(); +} + +inline flatbuffers::Offset CreateFooTableDirect( + flatbuffers::FlatBufferBuilder &_fbb, + int32_t a = 0, + int32_t b = 0, + const char *c = nullptr, + std::vector *d = nullptr, + std::vector *e = nullptr) { + auto c__ = c ? _fbb.CreateString(c) : 0; + auto d__ = d ? _fbb.CreateVectorOfSortedStructs(d) : 0; + auto e__ = e ? _fbb.CreateVectorOfSortedStructs(e) : 0; + return keyfield::sample::CreateFooTable( + _fbb, + a, + b, + c__, + d__, + e__); +} + +inline const keyfield::sample::FooTable *GetFooTable(const void *buf) { + return flatbuffers::GetRoot(buf); +} + +inline const keyfield::sample::FooTable *GetSizePrefixedFooTable(const void *buf) { + return flatbuffers::GetSizePrefixedRoot(buf); +} + +inline bool VerifyFooTableBuffer( + flatbuffers::Verifier &verifier) { + return verifier.VerifyBuffer(nullptr); +} + +inline bool VerifySizePrefixedFooTableBuffer( + flatbuffers::Verifier &verifier) { + return verifier.VerifySizePrefixedBuffer(nullptr); +} + +inline void FinishFooTableBuffer( + flatbuffers::FlatBufferBuilder &fbb, + flatbuffers::Offset root) { + fbb.Finish(root); +} + +inline void FinishSizePrefixedFooTableBuffer( + flatbuffers::FlatBufferBuilder &fbb, + flatbuffers::Offset root) { + fbb.FinishSizePrefixed(root); +} + +} // namespace sample +} // namespace keyfield + +#endif // FLATBUFFERS_GENERATED_KEYFIELDSAMPLE_KEYFIELD_SAMPLE_H_ diff --git a/tests/key_field_test.cpp b/tests/key_field_test.cpp new file mode 100644 index 0000000000..b2bf0af91e --- /dev/null +++ b/tests/key_field_test.cpp @@ -0,0 +1,72 @@ +#include "key_field_test.h" + +#include + +#include "flatbuffers/flatbuffers.h" +#include "flatbuffers/idl.h" +#include "key_field/key_field_sample_generated.h" +#include "test_assert.h" + +namespace flatbuffers { +namespace tests { + +using namespace keyfield::sample; + +void FixedSizedScalarKeyInStructTest() { + flatbuffers::FlatBufferBuilder fbb; + std::vector bazs; + uint8_t test_array1[4] = { 8, 2, 3, 0 }; + uint8_t test_array2[4] = { 1, 2, 3, 4 }; + uint8_t test_array3[4] = { 2, 2, 3, 4 }; + uint8_t test_array4[4] = { 3, 2, 3, 4 }; + bazs.push_back(Baz(flatbuffers::make_span(test_array1), 4)); + bazs.push_back(Baz(flatbuffers::make_span(test_array2), 1)); + bazs.push_back(Baz(flatbuffers::make_span(test_array3), 2)); + bazs.push_back(Baz(flatbuffers::make_span(test_array4), 3)); + auto baz_vec = fbb.CreateVectorOfSortedStructs(&bazs); + auto test_string = fbb.CreateString("TEST"); + float test_float_array1[3] = { 1.5, 2.5, 0 }; + float test_float_array2[3] = { 7.5, 2.5, 0 }; + float test_float_array3[3] = { 1.5, 2.5, -1 }; + float test_float_array4[3] = { -1.5, 2.5, 0 }; + std::vector bars; + bars.push_back(Bar(flatbuffers::make_span(test_float_array1), 3)); + bars.push_back(Bar(flatbuffers::make_span(test_float_array2), 4)); + bars.push_back(Bar(flatbuffers::make_span(test_float_array3), 2)); + bars.push_back(Bar(flatbuffers::make_span(test_float_array4), 1)); + auto bar_vec = fbb.CreateVectorOfSortedStructs(&bars); + + auto t = CreateFooTable(fbb, 1, 2, test_string, baz_vec, bar_vec); + fbb.Finish(t); + + uint8_t *buf = fbb.GetBufferPointer(); + auto foo_table = GetFooTable(buf); + + auto sorted_baz_vec = foo_table->d(); + TEST_EQ(sorted_baz_vec->Get(0)->b(), 1); + TEST_EQ(sorted_baz_vec->Get(3)->b(), 4); + TEST_NOTNULL( + sorted_baz_vec->LookupByKey(&flatbuffers::CastToArray(test_array1))); + TEST_EQ( + sorted_baz_vec->LookupByKey(&flatbuffers::CastToArray(test_array1))->b(), + 4); + uint8_t array_int[4] = { 7, 2, 3, 0 }; + TEST_EQ(sorted_baz_vec->LookupByKey(&flatbuffers::CastToArray(array_int)), + static_cast(nullptr)); + + auto sorted_bar_vec = foo_table->e(); + TEST_EQ(sorted_bar_vec->Get(0)->b(), 1); + TEST_EQ(sorted_bar_vec->Get(3)->b(), 4); + TEST_NOTNULL(sorted_bar_vec->LookupByKey( + &flatbuffers::CastToArray(test_float_array1))); + TEST_EQ( + sorted_bar_vec->LookupByKey(&flatbuffers::CastToArray(test_float_array1)) + ->b(), + 3); + float array_float[3] = { -1, -2, -3 }; + TEST_EQ(sorted_bar_vec->LookupByKey(&flatbuffers::CastToArray(array_float)), + static_cast(nullptr)); +} + +} // namespace tests +} // namespace flatbuffers diff --git a/tests/key_field_test.h b/tests/key_field_test.h new file mode 100644 index 0000000000..4cc4ddcca6 --- /dev/null +++ b/tests/key_field_test.h @@ -0,0 +1,12 @@ +#ifndef TESTS_KEY_FIELD_TEST_H +#define TESTS_KEY_FIELD_TEST_H + +namespace flatbuffers { +namespace tests { + +void FixedSizedScalarKeyInStructTest(); + +} // namespace tests +} // namespace flatbuffers + +#endif diff --git a/tests/monster_test_generated.h b/tests/monster_test_generated.h index ce5acf8357..9326385325 100644 --- a/tests/monster_test_generated.h +++ b/tests/monster_test_generated.h @@ -825,7 +825,7 @@ FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(4) Ability FLATBUFFERS_FINAL_CLASS { void mutate_id(uint32_t _id) { flatbuffers::WriteScalar(&id_, _id); } - bool KeyCompareLessThan(const Ability *o) const { + bool KeyCompareLessThan(const Ability * const o) const { return id() < o->id(); } int KeyCompareWithValue(uint32_t _id) const { @@ -1123,7 +1123,7 @@ struct Stat FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { bool mutate_count(uint16_t _count = 0) { return SetField(VT_COUNT, _count, 0); } - bool KeyCompareLessThan(const Stat *o) const { + bool KeyCompareLessThan(const Stat * const o) const { return count() < o->count(); } int KeyCompareWithValue(uint16_t _count) const { @@ -1213,7 +1213,7 @@ struct Referrable FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { bool mutate_id(uint64_t _id = 0) { return SetField(VT_ID, _id, 0); } - bool KeyCompareLessThan(const Referrable *o) const { + bool KeyCompareLessThan(const Referrable * const o) const { return id() < o->id(); } int KeyCompareWithValue(uint64_t _id) const { @@ -1417,7 +1417,7 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { flatbuffers::String *mutable_name() { return GetPointer(VT_NAME); } - bool KeyCompareLessThan(const Monster *o) const { + bool KeyCompareLessThan(const Monster * const o) const { return *name() < *o->name(); } int KeyCompareWithValue(const char *_name) const { diff --git a/tests/monster_test_suffix/ext_only/monster_test_generated.hpp b/tests/monster_test_suffix/ext_only/monster_test_generated.hpp index ce5acf8357..9326385325 100644 --- a/tests/monster_test_suffix/ext_only/monster_test_generated.hpp +++ b/tests/monster_test_suffix/ext_only/monster_test_generated.hpp @@ -825,7 +825,7 @@ FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(4) Ability FLATBUFFERS_FINAL_CLASS { void mutate_id(uint32_t _id) { flatbuffers::WriteScalar(&id_, _id); } - bool KeyCompareLessThan(const Ability *o) const { + bool KeyCompareLessThan(const Ability * const o) const { return id() < o->id(); } int KeyCompareWithValue(uint32_t _id) const { @@ -1123,7 +1123,7 @@ struct Stat FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { bool mutate_count(uint16_t _count = 0) { return SetField(VT_COUNT, _count, 0); } - bool KeyCompareLessThan(const Stat *o) const { + bool KeyCompareLessThan(const Stat * const o) const { return count() < o->count(); } int KeyCompareWithValue(uint16_t _count) const { @@ -1213,7 +1213,7 @@ struct Referrable FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { bool mutate_id(uint64_t _id = 0) { return SetField(VT_ID, _id, 0); } - bool KeyCompareLessThan(const Referrable *o) const { + bool KeyCompareLessThan(const Referrable * const o) const { return id() < o->id(); } int KeyCompareWithValue(uint64_t _id) const { @@ -1417,7 +1417,7 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { flatbuffers::String *mutable_name() { return GetPointer(VT_NAME); } - bool KeyCompareLessThan(const Monster *o) const { + bool KeyCompareLessThan(const Monster * const o) const { return *name() < *o->name(); } int KeyCompareWithValue(const char *_name) const { diff --git a/tests/monster_test_suffix/filesuffix_only/monster_test_suffix.h b/tests/monster_test_suffix/filesuffix_only/monster_test_suffix.h index ce5acf8357..9326385325 100644 --- a/tests/monster_test_suffix/filesuffix_only/monster_test_suffix.h +++ b/tests/monster_test_suffix/filesuffix_only/monster_test_suffix.h @@ -825,7 +825,7 @@ FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(4) Ability FLATBUFFERS_FINAL_CLASS { void mutate_id(uint32_t _id) { flatbuffers::WriteScalar(&id_, _id); } - bool KeyCompareLessThan(const Ability *o) const { + bool KeyCompareLessThan(const Ability * const o) const { return id() < o->id(); } int KeyCompareWithValue(uint32_t _id) const { @@ -1123,7 +1123,7 @@ struct Stat FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { bool mutate_count(uint16_t _count = 0) { return SetField(VT_COUNT, _count, 0); } - bool KeyCompareLessThan(const Stat *o) const { + bool KeyCompareLessThan(const Stat * const o) const { return count() < o->count(); } int KeyCompareWithValue(uint16_t _count) const { @@ -1213,7 +1213,7 @@ struct Referrable FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { bool mutate_id(uint64_t _id = 0) { return SetField(VT_ID, _id, 0); } - bool KeyCompareLessThan(const Referrable *o) const { + bool KeyCompareLessThan(const Referrable * const o) const { return id() < o->id(); } int KeyCompareWithValue(uint64_t _id) const { @@ -1417,7 +1417,7 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { flatbuffers::String *mutable_name() { return GetPointer(VT_NAME); } - bool KeyCompareLessThan(const Monster *o) const { + bool KeyCompareLessThan(const Monster * const o) const { return *name() < *o->name(); } int KeyCompareWithValue(const char *_name) const { diff --git a/tests/monster_test_suffix/monster_test_suffix.hpp b/tests/monster_test_suffix/monster_test_suffix.hpp index ce5acf8357..9326385325 100644 --- a/tests/monster_test_suffix/monster_test_suffix.hpp +++ b/tests/monster_test_suffix/monster_test_suffix.hpp @@ -825,7 +825,7 @@ FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(4) Ability FLATBUFFERS_FINAL_CLASS { void mutate_id(uint32_t _id) { flatbuffers::WriteScalar(&id_, _id); } - bool KeyCompareLessThan(const Ability *o) const { + bool KeyCompareLessThan(const Ability * const o) const { return id() < o->id(); } int KeyCompareWithValue(uint32_t _id) const { @@ -1123,7 +1123,7 @@ struct Stat FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { bool mutate_count(uint16_t _count = 0) { return SetField(VT_COUNT, _count, 0); } - bool KeyCompareLessThan(const Stat *o) const { + bool KeyCompareLessThan(const Stat * const o) const { return count() < o->count(); } int KeyCompareWithValue(uint16_t _count) const { @@ -1213,7 +1213,7 @@ struct Referrable FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { bool mutate_id(uint64_t _id = 0) { return SetField(VT_ID, _id, 0); } - bool KeyCompareLessThan(const Referrable *o) const { + bool KeyCompareLessThan(const Referrable * const o) const { return id() < o->id(); } int KeyCompareWithValue(uint64_t _id) const { @@ -1417,7 +1417,7 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { flatbuffers::String *mutable_name() { return GetPointer(VT_NAME); } - bool KeyCompareLessThan(const Monster *o) const { + bool KeyCompareLessThan(const Monster * const o) const { return *name() < *o->name(); } int KeyCompareWithValue(const char *_name) const { diff --git a/tests/test.cpp b/tests/test.cpp index 65198a67a4..db29162761 100644 --- a/tests/test.cpp +++ b/tests/test.cpp @@ -20,8 +20,8 @@ #include #include -#include "evolution_test.h" #include "alignment_test.h" +#include "evolution_test.h" #include "flatbuffers/flatbuffers.h" #include "flatbuffers/idl.h" #include "flatbuffers/minireflect.h" @@ -29,10 +29,11 @@ #include "flatbuffers/util.h" #include "fuzz_test.h" #include "json_test.h" +#include "key_field_test.h" #include "monster_test.h" #include "monster_test_generated.h" -#include "optional_scalars_test.h" #include "native_inline_table_test_generated.h" +#include "optional_scalars_test.h" #include "parser_test.h" #include "proto_test.h" #include "reflection_test.h" @@ -1418,7 +1419,7 @@ void NativeInlineTableVectorTest() { TEST_ASSERT(unpacked.t == test.t); } -void DoNotRequireEofTest(const std::string& tests_data_path) { +void DoNotRequireEofTest(const std::string &tests_data_path) { std::string schemafile; bool ok = flatbuffers::LoadFile( (tests_data_path + "monster_test.fbs").c_str(), false, &schemafile); @@ -1432,7 +1433,7 @@ void DoNotRequireEofTest(const std::string& tests_data_path) { flatbuffers::Parser parser(opt); ok = parser.Parse(schemafile.c_str(), include_directories); TEST_EQ(ok, true); - + const char *str = R"(This string contains two monsters, the first one is { "name": "Blob", "hp": 5 @@ -1449,7 +1450,7 @@ void DoNotRequireEofTest(const std::string& tests_data_path) { const Monster *monster = GetMonster(parser.builder_.GetBufferPointer()); TEST_EQ_STR(monster->name()->c_str(), "Blob"); TEST_EQ(monster->hp(), 5); - + tableStart += parser.BytesConsumed(); tableStart = std::strchr(tableStart + 1, '{'); @@ -1564,6 +1565,7 @@ int FlatBufferTests(const std::string &tests_data_path) { JsonUnsortedArrayTest(); VectorSpanTest(); NativeInlineTableVectorTest(); + FixedSizedScalarKeyInStructTest(); return 0; } } // namespace From ade9e19be026e2e66587cdea8b07d8597bc58651 Mon Sep 17 00:00:00 2001 From: tira-misu Date: Tue, 22 Nov 2022 21:00:13 +0100 Subject: [PATCH 023/571] [C#] Fix collision of member if union name is "Value" (#7648) * Fix C/C++ CreateDirect with sorted vectors If a struct has a key the vector has to be sorted. To sort the vector you can't use "const". * Changes due to code review * Improve code readability * Add generate of JSON schema to string to lib * option indent_step is supported * Remove unused variables * Fix break in test * Fix style to be consistent with rest of the code * [TS] Fix reserved words as arguments (#6955) * [TS] Fix generation of reserved words in object api (#7106) * [TS] Fix generation of object api * [TS] Fix MakeCamel -> ConvertCase * [C#] Fix collision of field name and type name * [TS] Add test for struct of struct of struct * Update generated files * Add missing files * [TS] Fix query of null/undefined fields in object api * [C#] Fix collision of member if enum name is "Value" * Fix due to style guide Co-authored-by: Derek Bailey --- src/idl_gen_csharp.cpp | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/src/idl_gen_csharp.cpp b/src/idl_gen_csharp.cpp index ab36bd9c2a..1224fb5a9e 100644 --- a/src/idl_gen_csharp.cpp +++ b/src/idl_gen_csharp.cpp @@ -1425,20 +1425,23 @@ class CSharpGenerator : public BaseGenerator { code += "public "; } auto union_name = enum_def.name + "Union"; + auto class_member = std::string("Value"); + if (class_member == enum_def.name) { class_member += "_"; }; code += "class " + union_name + " {\n"; // Type code += " public " + enum_def.name + " Type { get; set; }\n"; // Value - code += " public object Value { get; set; }\n"; + code += " public object " + class_member + " { get; set; }\n"; code += "\n"; // Constructor code += " public " + union_name + "() {\n"; code += " this.Type = " + enum_def.name + "." + enum_def.Vals()[0]->name + ";\n"; - code += " this.Value = null;\n"; + code += " this." + class_member + " = null;\n"; code += " }\n\n"; // As - code += " public T As() where T : class { return this.Value as T; }\n"; + code += " public T As() where T : class { return this." + class_member + + " as T; }\n"; // As, From for (auto it = enum_def.Vals().begin(); it != enum_def.Vals().end(); ++it) { auto &ev = **it; @@ -1459,7 +1462,8 @@ class CSharpGenerator : public BaseGenerator { code += " " + accessibility + " static " + union_name + " From" + ev.name + "(" + type_name + " _" + lower_ev_name + ") { return new " + union_name + "{ Type = " + Name(enum_def) + - "." + Name(ev) + ", Value = _" + lower_ev_name + " }; }\n"; + "." + Name(ev) + ", " + class_member + " = _" + lower_ev_name + + " }; }\n"; } code += "\n"; // Pack() @@ -1581,6 +1585,8 @@ class CSharpGenerator : public BaseGenerator { bool is_vector) const { auto &code = *code_ptr; std::string varialbe_name = "_o." + camel_name; + std::string class_member = "Value"; + if (class_member == camel_name) class_member += "_"; std::string type_suffix = ""; std::string func_suffix = "()"; std::string indent = " "; @@ -1608,7 +1614,8 @@ class CSharpGenerator : public BaseGenerator { } else { code += indent + " case " + NamespacedName(enum_def) + "." + ev.name + ":\n"; - code += indent + " " + varialbe_name + ".Value = this." + camel_name; + code += indent + " " + varialbe_name + "." + class_member + + " = this." + camel_name; if (IsString(ev.union_type)) { code += "AsString" + func_suffix + ";\n"; } else { From bb9b9dad5f5a00adaa867aece30de5e0695c2942 Mon Sep 17 00:00:00 2001 From: Alex Ames Date: Tue, 22 Nov 2022 12:11:14 -0800 Subject: [PATCH 024/571] Fixed the BytesConsumed function, which was pointing slightly ahead. (#7657) The BytesConsumed function uses the `cursor_` to determine how many bytes have been consumed by the parser, in case the user of the Parser object wants to step over the parsed flatbuffer that is embedded in some larger string. However, the `cursor_` is always one token ahead, so that it can determine how to consume it. It points at the token that is about to be consumed, which is ahead of the last byte consumed. For example, if you had a string containing these two json objects and parsed them... "{\"key\":\"value\"},{\"key\":\"value\"}" ...then the `cursor_` would be pointing at the comma between the two tables. If you were to hold a pointer to the beginning of the string and add `BytesConsumed()` to it like so: const char* json = // ... parser.ParseJson(json); json += parser.BytesConsumed(); then the pointer would skip over the comma, which is not the expected behavior. It should only consume the table itself. The solution is simple: Just hold onto a previous cursor location and use that for the `BytesConsumed()` call. The previous cursor location just needs to be set to the cursor_ location each time the cursor_ is about to be updated. This will result in `BytesConsumed()` returning the correct number of bytes without the off-by-one-token error. Co-authored-by: Derek Bailey --- include/flatbuffers/idl.h | 7 +++++-- src/idl_parser.cpp | 3 ++- tests/test.cpp | 7 +++---- 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/include/flatbuffers/idl.h b/include/flatbuffers/idl.h index 4044828128..19260e77bd 100644 --- a/include/flatbuffers/idl.h +++ b/include/flatbuffers/idl.h @@ -760,7 +760,8 @@ struct IDLOptions { // This encapsulates where the parser is in the current source file. struct ParserState { ParserState() - : cursor_(nullptr), + : prev_cursor_(nullptr), + cursor_(nullptr), line_start_(nullptr), line_(0), token_(-1), @@ -768,6 +769,7 @@ struct ParserState { protected: void ResetState(const char *source) { + prev_cursor_ = source; cursor_ = source; line_ = 0; MarkNewLine(); @@ -782,7 +784,8 @@ struct ParserState { FLATBUFFERS_ASSERT(cursor_ && line_start_ && cursor_ >= line_start_); return static_cast(cursor_ - line_start_); } - + + const char *prev_cursor_; const char *cursor_; const char *line_start_; int line_; // the current line being parsed diff --git a/src/idl_parser.cpp b/src/idl_parser.cpp index bd9780f37f..b16c3bec8a 100644 --- a/src/idl_parser.cpp +++ b/src/idl_parser.cpp @@ -483,6 +483,7 @@ CheckedError Parser::SkipByteOrderMark() { CheckedError Parser::Next() { doc_comment_.clear(); + prev_cursor_ = cursor_; bool seen_newline = cursor_ == source_; attribute_.clear(); attr_is_trivial_ascii_string_ = true; @@ -3312,7 +3313,7 @@ bool Parser::ParseJson(const char *json, const char *json_filename) { } std::ptrdiff_t Parser::BytesConsumed() const { - return std::distance(source_, cursor_); + return std::distance(source_, prev_cursor_); } CheckedError Parser::StartParseFile(const char *source, diff --git a/tests/test.cpp b/tests/test.cpp index db29162761..15d0d4fc80 100644 --- a/tests/test.cpp +++ b/tests/test.cpp @@ -1434,14 +1434,14 @@ void DoNotRequireEofTest(const std::string &tests_data_path) { ok = parser.Parse(schemafile.c_str(), include_directories); TEST_EQ(ok, true); - const char *str = R"(This string contains two monsters, the first one is { + const char *str = R"(Some text at the beginning. { "name": "Blob", "hp": 5 - } - and the second one is { + }{ "name": "Imp", "hp": 10 } + Some extra text at the end too. )"; const char *tableStart = std::strchr(str, '{'); ok = parser.ParseJson(tableStart); @@ -1453,7 +1453,6 @@ void DoNotRequireEofTest(const std::string &tests_data_path) { tableStart += parser.BytesConsumed(); - tableStart = std::strchr(tableStart + 1, '{'); ok = parser.ParseJson(tableStart); TEST_EQ(ok, true); From eead6c62193aef3fb6643ad95adcc73a796f8002 Mon Sep 17 00:00:00 2001 From: TJKoury Date: Tue, 22 Nov 2022 16:01:32 -0500 Subject: [PATCH 025/571] updated method call (#7642) --- src/idl_gen_ts.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/idl_gen_ts.cpp b/src/idl_gen_ts.cpp index 9fd1203f58..d37a407906 100644 --- a/src/idl_gen_ts.cpp +++ b/src/idl_gen_ts.cpp @@ -387,8 +387,7 @@ class TsGenerator : public BaseGenerator { return GenBBAccess() + ".__union_with_string" + arguments; case BASE_TYPE_VECTOR: return GenGetter(type.VectorType(), arguments); default: { - auto getter = GenBBAccess() + "." + - namer_.Method("read_" + GenType(type)) + arguments; + auto getter = GenBBAccess() + "." + "read" + GenType(type) + arguments; if (type.base_type == BASE_TYPE_BOOL) { getter = "!!" + getter; } return getter; } From 1cba8b2b49a808a6b1bbd72fb0b3cbc27fb79f46 Mon Sep 17 00:00:00 2001 From: Saman <100295082+enum-class@users.noreply.github.com> Date: Tue, 22 Nov 2022 16:21:25 -0500 Subject: [PATCH 026/571] Fix go generator undefined Package name, also throwing exception (#7632) * Fix go generator undefined Package, also throw exception in specific examples. * Add test for go generator import problem * Add new version of generated go file. Fix conflict. * Add executable permission to generate_code.py script. * Improve test quality, remove unwanted generated files, better naming * Fix comments * clang format Co-authored-by: Derek Bailey --- scripts/generate_code.py | 14 ++++ src/idl_gen_go.cpp | 57 +++++++------ src/namer.h | 2 +- tests/GoTest.sh | 16 +--- tests/Pizza.go | 78 ++++++++++++++++++ tests/go_test.go | 23 ++++++ tests/include_test/order.fbs | 8 ++ tests/include_test/sub/no_namespace.fbs | 3 + tests/order/Food.go | 102 ++++++++++++++++++++++++ 9 files changed, 264 insertions(+), 39 deletions(-) create mode 100644 tests/Pizza.go create mode 100644 tests/include_test/order.fbs create mode 100644 tests/include_test/sub/no_namespace.fbs create mode 100644 tests/order/Food.go diff --git a/scripts/generate_code.py b/scripts/generate_code.py index 1a8d2f1e8c..c981693299 100755 --- a/scripts/generate_code.py +++ b/scripts/generate_code.py @@ -193,6 +193,20 @@ def glob(path, pattern): include="include_test", ) +flatc( + NO_INCL_OPTS + + ["--go"], + schema="include_test/foo.fbs", + include="include_test/sub", +) + +flatc( + NO_INCL_OPTS + + ["--go"], + schema="include_test/sub/header.fbs", + include="include_test", +) + flatc( NO_INCL_OPTS + TS_OPTS, diff --git a/src/idl_gen_go.cpp b/src/idl_gen_go.cpp index d5d3c43d04..a5e0c364f5 100644 --- a/src/idl_gen_go.cpp +++ b/src/idl_gen_go.cpp @@ -79,7 +79,7 @@ static Namer::Config GoDefaultConfig() { /*filename_extension=*/".go" }; } -} // namespace +} // namespace class GoGenerator : public BaseGenerator { public: @@ -152,11 +152,11 @@ class GoGenerator : public BaseGenerator { const IdlNamer namer_; struct NamespacePtrLess { - bool operator()(const Namespace *a, const Namespace *b) const { - return *a < *b; + bool operator()(const Definition *a, const Definition *b) const { + return *a->defined_namespace < *b->defined_namespace; } }; - std::set tracked_imported_namespaces_; + std::set tracked_imported_namespaces_; bool needs_math_import_ = false; // Most field accessors need to retrieve and test the field offset first, @@ -180,8 +180,7 @@ class GoGenerator : public BaseGenerator { // Construct the name of the type for this enum. std::string GetEnumTypeName(const EnumDef &enum_def) { - return WrapInNameSpaceAndTrack(enum_def.defined_namespace, - namer_.Type(enum_def)); + return WrapInNameSpaceAndTrack(&enum_def, namer_.Type(enum_def)); } // Create a type for the enum values. @@ -907,13 +906,13 @@ class GoGenerator : public BaseGenerator { if (ev.IsZero()) continue; code += "\tcase " + namer_.EnumVariant(enum_def, ev) + ":\n"; code += "\t\tvar x " + - WrapInNameSpaceAndTrack(*ev.union_type.struct_def) + + WrapInNameSpaceAndTrack(ev.union_type.struct_def, + ev.union_type.struct_def->name) + "\n"; code += "\t\tx.Init(table.Bytes, table.Pos)\n"; code += "\t\treturn &" + - WrapInNameSpaceAndTrack(enum_def.defined_namespace, - NativeName(enum_def)) + + WrapInNameSpaceAndTrack(&enum_def, NativeName(enum_def)) + "{ Type: " + namer_.EnumVariant(enum_def, ev) + ", Value: x.UnPack() }\n"; } @@ -1074,7 +1073,8 @@ class GoGenerator : public BaseGenerator { code += "\tfor j := 0; j < " + length + "; j++ {\n"; if (field.value.type.element == BASE_TYPE_STRUCT) { code += "\t\tx := " + - WrapInNameSpaceAndTrack(*field.value.type.struct_def) + + WrapInNameSpaceAndTrack(field.value.type.struct_def, + field.value.type.struct_def->name) + "{}\n"; code += "\t\trcv." + field_field + "(&x, j)\n"; } @@ -1241,7 +1241,8 @@ class GoGenerator : public BaseGenerator { switch (type.base_type) { case BASE_TYPE_STRING: return "[]byte"; case BASE_TYPE_VECTOR: return GenTypeGet(type.VectorType()); - case BASE_TYPE_STRUCT: return WrapInNameSpaceAndTrack(*type.struct_def); + case BASE_TYPE_STRUCT: + return WrapInNameSpaceAndTrack(type.struct_def, type.struct_def->name); case BASE_TYPE_UNION: // fall through default: return "*flatbuffers.Table"; @@ -1325,11 +1326,11 @@ class GoGenerator : public BaseGenerator { } else if (IsVector(type)) { return "[]" + NativeType(type.VectorType()); } else if (type.base_type == BASE_TYPE_STRUCT) { - return "*" + WrapInNameSpaceAndTrack(type.struct_def->defined_namespace, + return "*" + WrapInNameSpaceAndTrack(type.struct_def, NativeName(*type.struct_def)); } else if (type.base_type == BASE_TYPE_UNION) { - return "*" + WrapInNameSpaceAndTrack(type.enum_def->defined_namespace, - NativeName(*type.enum_def)); + return "*" + + WrapInNameSpaceAndTrack(type.enum_def, NativeName(*type.enum_def)); } FLATBUFFERS_ASSERT(0); return std::string(); @@ -1365,8 +1366,13 @@ class GoGenerator : public BaseGenerator { code += "\n"; for (auto it = tracked_imported_namespaces_.begin(); it != tracked_imported_namespaces_.end(); ++it) { - code += "\t" + NamespaceImportName(*it) + " \"" + - NamespaceImportPath(*it) + "\"\n"; + if ((*it)->defined_namespace->components.empty()) { + code += "\t" + (*it)->name + " \"" + (*it)->name + "\"\n"; + } else { + code += "\t" + NamespaceImportName((*it)->defined_namespace) + + " \"" + NamespaceImportPath((*it)->defined_namespace) + + "\"\n"; + } } } code += ")\n\n"; @@ -1387,7 +1393,8 @@ class GoGenerator : public BaseGenerator { Namespace &ns = go_namespace_.components.empty() ? *def.defined_namespace : go_namespace_; std::string code = ""; - BeginFile(LastNamespacePart(ns), needs_imports, is_enum, &code); + BeginFile(ns.components.empty() ? def.name : LastNamespacePart(ns), + needs_imports, is_enum, &code); code += classcode; // Strip extra newlines at end of file to make it gofmt-clean. while (code.length() > 2 && code.substr(code.length() - 2) == "\n\n") { @@ -1412,16 +1419,14 @@ class GoGenerator : public BaseGenerator { // Ensure that a type is prefixed with its go package import name if it is // used outside of its namespace. - std::string WrapInNameSpaceAndTrack(const Namespace *ns, + std::string WrapInNameSpaceAndTrack(const Definition *def, const std::string &name) { - if (CurrentNameSpace() == ns) return name; - - tracked_imported_namespaces_.insert(ns); - return NamespaceImportName(ns) + "." + name; - } - - std::string WrapInNameSpaceAndTrack(const Definition &def) { - return WrapInNameSpaceAndTrack(def.defined_namespace, def.name); + if (CurrentNameSpace() == def->defined_namespace) return name; + tracked_imported_namespaces_.insert(def); + if (def->defined_namespace->components.empty()) + return def->name + "." + name; + else + return NamespaceImportName(def->defined_namespace) + "." + name; } const Namespace *CurrentNameSpace() const { return cur_name_space_; } diff --git a/src/namer.h b/src/namer.h index 8fd8354e1a..6a7fadcd14 100644 --- a/src/namer.h +++ b/src/namer.h @@ -196,7 +196,7 @@ class Namer { result += ConvertCase(*d, config_.directories, Case::kUpperCamel); result.push_back(kPathSeparator); } - if (skip_trailing_seperator) result.pop_back(); + if (skip_trailing_seperator && !result.empty()) result.pop_back(); return result; } diff --git a/tests/GoTest.sh b/tests/GoTest.sh index 85253c177f..8e73af2417 100755 --- a/tests/GoTest.sh +++ b/tests/GoTest.sh @@ -20,26 +20,18 @@ go_path=${test_dir}/go_gen go_src=${go_path}/src # Emit Go code for the example schemas in the test dir: -../flatc -g --gen-object-api -I include_test monster_test.fbs optional_scalars.fbs +../flatc -g --gen-object-api -I include_test -o ${go_src} monster_test.fbs optional_scalars.fbs +../flatc -g --gen-object-api -I include_test/sub -o ${go_src} include_test/order.fbs +../flatc -g --gen-object-api -o ${go_src}/Pizza include_test/sub/no_namespace.fbs # Go requires a particular layout of files in order to link multiple packages. # Copy flatbuffer Go files to their own package directories to compile the # test binary: -mkdir -p ${go_src}/MyGame/Example -mkdir -p ${go_src}/MyGame/Example2 mkdir -p ${go_src}/github.com/google/flatbuffers/go mkdir -p ${go_src}/flatbuffers_test -mkdir -p ${go_src}/optional_scalars -cp -a MyGame/*.go ./go_gen/src/MyGame/ -cp -a MyGame/Example/*.go ./go_gen/src/MyGame/Example/ -cp -a MyGame/Example2/*.go ./go_gen/src/MyGame/Example2/ -# do not compile the gRPC generated files, which are not tested by go_test.go -# below, but have their own test. -rm ./go_gen/src/MyGame/Example/*_grpc.go cp -a ../go/* ./go_gen/src/github.com/google/flatbuffers/go cp -a ./go_test.go ./go_gen/src/flatbuffers_test/ -cp -a optional_scalars/*.go ./go_gen/src/optional_scalars # https://stackoverflow.com/a/63545857/7024978 # We need to turn off go modules for this script @@ -72,7 +64,7 @@ else exit 1 fi -NOT_FMT_FILES=$(gofmt -l MyGame) +NOT_FMT_FILES=$(gofmt -l .) if [[ ${NOT_FMT_FILES} != "" ]]; then echo "These files are not well gofmt'ed:" echo diff --git a/tests/Pizza.go b/tests/Pizza.go new file mode 100644 index 0000000000..08df9e16b1 --- /dev/null +++ b/tests/Pizza.go @@ -0,0 +1,78 @@ +// Code generated by the FlatBuffers compiler. DO NOT EDIT. + +package Pizza + +import ( + flatbuffers "github.com/google/flatbuffers/go" +) + +type PizzaT struct { + Size int32 `json:"size"` +} + +func (t *PizzaT) Pack(builder *flatbuffers.Builder) flatbuffers.UOffsetT { + if t == nil { return 0 } + PizzaStart(builder) + PizzaAddSize(builder, t.Size) + return PizzaEnd(builder) +} + +func (rcv *Pizza) UnPackTo(t *PizzaT) { + t.Size = rcv.Size() +} + +func (rcv *Pizza) UnPack() *PizzaT { + if rcv == nil { return nil } + t := &PizzaT{} + rcv.UnPackTo(t) + return t +} + +type Pizza struct { + _tab flatbuffers.Table +} + +func GetRootAsPizza(buf []byte, offset flatbuffers.UOffsetT) *Pizza { + n := flatbuffers.GetUOffsetT(buf[offset:]) + x := &Pizza{} + x.Init(buf, n+offset) + return x +} + +func GetSizePrefixedRootAsPizza(buf []byte, offset flatbuffers.UOffsetT) *Pizza { + n := flatbuffers.GetUOffsetT(buf[offset+flatbuffers.SizeUint32:]) + x := &Pizza{} + x.Init(buf, n+offset+flatbuffers.SizeUint32) + return x +} + +func (rcv *Pizza) Init(buf []byte, i flatbuffers.UOffsetT) { + rcv._tab.Bytes = buf + rcv._tab.Pos = i +} + +func (rcv *Pizza) Table() flatbuffers.Table { + return rcv._tab +} + +func (rcv *Pizza) Size() int32 { + o := flatbuffers.UOffsetT(rcv._tab.Offset(4)) + if o != 0 { + return rcv._tab.GetInt32(o + rcv._tab.Pos) + } + return 0 +} + +func (rcv *Pizza) MutateSize(n int32) bool { + return rcv._tab.MutateInt32Slot(4, n) +} + +func PizzaStart(builder *flatbuffers.Builder) { + builder.StartObject(1) +} +func PizzaAddSize(builder *flatbuffers.Builder, size int32) { + builder.PrependInt32Slot(0, size, 0) +} +func PizzaEnd(builder *flatbuffers.Builder) flatbuffers.UOffsetT { + return builder.EndObject() +} diff --git a/tests/go_test.go b/tests/go_test.go index a04ef2c9b1..d454b56475 100644 --- a/tests/go_test.go +++ b/tests/go_test.go @@ -17,6 +17,8 @@ package main import ( + order "order" + pizza "Pizza" mygame "MyGame" // refers to generated code example "MyGame/Example" // refers to generated code "encoding/json" @@ -98,6 +100,24 @@ func TestTextParsing(t *testing.T) { } } +func CheckNoNamespaceImport(fail func(string, ...interface{})) { + const size = 13 + // Order a pizza with specific size + builder := flatbuffers.NewBuilder(0) + ordered_pizza := pizza.PizzaT{Size: size} + food := order.FoodT{Pizza: &ordered_pizza} + builder.Finish(food.Pack(builder)) + + // Receive order + received_food := order.GetRootAsFood(builder.FinishedBytes(), 0) + received_pizza := received_food.Pizza(nil).UnPack() + + // Check if received pizza is equal to ordered pizza + if !reflect.DeepEqual(ordered_pizza, *received_pizza) { + fail(FailString("no namespace import", ordered_pizza, received_pizza)) + } +} + // TestAll runs all checks, failing if any errors occur. func TestAll(t *testing.T) { // Verify that the Go FlatBuffers runtime library generates the @@ -160,6 +180,9 @@ func TestAll(t *testing.T) { // Check a parent namespace import CheckParentNamespace(t.Fatalf) + // Check a no namespace import + CheckNoNamespaceImport(t.Fatalf) + // Check size-prefixed flatbuffers CheckSizePrefixedBuffer(t.Fatalf) diff --git a/tests/include_test/order.fbs b/tests/include_test/order.fbs new file mode 100644 index 0000000000..4588d5fd1b --- /dev/null +++ b/tests/include_test/order.fbs @@ -0,0 +1,8 @@ +include "no_namespace.fbs"; + +namespace order; + +table Food { + pizza: Pizza (id: 0); + pizza_test:Pizza(id:1); +} diff --git a/tests/include_test/sub/no_namespace.fbs b/tests/include_test/sub/no_namespace.fbs new file mode 100644 index 0000000000..5f1052d179 --- /dev/null +++ b/tests/include_test/sub/no_namespace.fbs @@ -0,0 +1,3 @@ +table Pizza { + size: int; +} diff --git a/tests/order/Food.go b/tests/order/Food.go new file mode 100644 index 0000000000..298d631202 --- /dev/null +++ b/tests/order/Food.go @@ -0,0 +1,102 @@ +// Code generated by the FlatBuffers compiler. DO NOT EDIT. + +package order + +import ( + flatbuffers "github.com/google/flatbuffers/go" + + Pizza "Pizza" +) + +type FoodT struct { + Pizza *Pizza.PizzaT `json:"pizza"` + PizzaTest *Pizza.PizzaT `json:"pizza_test"` +} + +func (t *FoodT) Pack(builder *flatbuffers.Builder) flatbuffers.UOffsetT { + if t == nil { return 0 } + pizzaOffset := t.Pizza.Pack(builder) + pizzaTestOffset := t.PizzaTest.Pack(builder) + FoodStart(builder) + FoodAddPizza(builder, pizzaOffset) + FoodAddPizzaTest(builder, pizzaTestOffset) + return FoodEnd(builder) +} + +func (rcv *Food) UnPackTo(t *FoodT) { + t.Pizza = rcv.Pizza(nil).UnPack() + t.PizzaTest = rcv.PizzaTest(nil).UnPack() +} + +func (rcv *Food) UnPack() *FoodT { + if rcv == nil { return nil } + t := &FoodT{} + rcv.UnPackTo(t) + return t +} + +type Food struct { + _tab flatbuffers.Table +} + +func GetRootAsFood(buf []byte, offset flatbuffers.UOffsetT) *Food { + n := flatbuffers.GetUOffsetT(buf[offset:]) + x := &Food{} + x.Init(buf, n+offset) + return x +} + +func GetSizePrefixedRootAsFood(buf []byte, offset flatbuffers.UOffsetT) *Food { + n := flatbuffers.GetUOffsetT(buf[offset+flatbuffers.SizeUint32:]) + x := &Food{} + x.Init(buf, n+offset+flatbuffers.SizeUint32) + return x +} + +func (rcv *Food) Init(buf []byte, i flatbuffers.UOffsetT) { + rcv._tab.Bytes = buf + rcv._tab.Pos = i +} + +func (rcv *Food) Table() flatbuffers.Table { + return rcv._tab +} + +func (rcv *Food) Pizza(obj *Pizza.Pizza) *Pizza.Pizza { + o := flatbuffers.UOffsetT(rcv._tab.Offset(4)) + if o != 0 { + x := rcv._tab.Indirect(o + rcv._tab.Pos) + if obj == nil { + obj = new(Pizza.Pizza) + } + obj.Init(rcv._tab.Bytes, x) + return obj + } + return nil +} + +func (rcv *Food) PizzaTest(obj *Pizza.Pizza) *Pizza.Pizza { + o := flatbuffers.UOffsetT(rcv._tab.Offset(6)) + if o != 0 { + x := rcv._tab.Indirect(o + rcv._tab.Pos) + if obj == nil { + obj = new(Pizza.Pizza) + } + obj.Init(rcv._tab.Bytes, x) + return obj + } + return nil +} + +func FoodStart(builder *flatbuffers.Builder) { + builder.StartObject(2) +} +func FoodAddPizza(builder *flatbuffers.Builder, pizza flatbuffers.UOffsetT) { + builder.PrependUOffsetTSlot(0, flatbuffers.UOffsetT(pizza), 0) +} +func FoodAddPizzaTest(builder *flatbuffers.Builder, pizzaTest flatbuffers.UOffsetT) { + builder.PrependUOffsetTSlot(1, flatbuffers.UOffsetT(pizzaTest), 0) +} +func FoodEnd(builder *flatbuffers.Builder) flatbuffers.UOffsetT { + return builder.EndObject() +} From 60975d6f7e528f56282564c7fa63b21b4df524af Mon Sep 17 00:00:00 2001 From: Michael Le Date: Tue, 22 Nov 2022 14:08:19 -0800 Subject: [PATCH 027/571] Add key lookup support for tables in Go (#7644) * Add support for key lookup for tables in Go * Run clang format * Run go fmt on tests * Remove TODO in tests * Update LookupByKey API * Update LookupByKey API * Don't use resolvePointer in expectEq * Use generated getters instead of reading values directly from buffer * Fix typo Co-authored-by: Derek Bailey --- go/builder.go | 21 ++++ go/lib.go | 5 + src/idl_gen_go.cpp | 122 +++++++++++++++++++- tests/MyGame/Example/Any.go | 1 - tests/MyGame/Example/AnyAmbiguousAliases.go | 1 - tests/MyGame/Example/AnyUniqueAliases.go | 1 - tests/MyGame/Example/Monster.go | 70 ++++++++++- tests/MyGame/Example/Referrable.go | 37 ++++++ tests/MyGame/Example/Stat.go | 37 ++++++ tests/go_test.go | 77 +++++++++++- 10 files changed, 365 insertions(+), 7 deletions(-) diff --git a/go/builder.go b/go/builder.go index d99b590bb2..5d90e8ef98 100644 --- a/go/builder.go +++ b/go/builder.go @@ -1,5 +1,7 @@ package flatbuffers +import "sort" + // Builder is a state machine for creating FlatBuffer objects. // Use a Builder to construct object(s) starting from leaf nodes. // @@ -315,6 +317,25 @@ func (b *Builder) EndVector(vectorNumElems int) UOffsetT { return b.Offset() } +// CreateVectorOfTables serializes slice of table offsets into a vector. +func (b *Builder) CreateVectorOfTables(offsets []UOffsetT) UOffsetT { + b.assertNotNested() + b.StartVector(4, len(offsets), 4) + for i := len(offsets) - 1; i >= 0; i-- { + b.PrependUOffsetT(offsets[i]) + } + return b.EndVector(len(offsets)) +} + +type KeyCompare func(o1, o2 UOffsetT, buf []byte) bool + +func (b *Builder) CreateVectorOfSortedTables(offsets []UOffsetT, keyCompare KeyCompare) UOffsetT { + sort.Slice(offsets, func(i, j int) bool { + return keyCompare(offsets[i], offsets[j], b.Bytes) + }) + return b.CreateVectorOfTables(offsets) +} + // CreateSharedString Checks if the string is already written // to the buffer before calling CreateString func (b *Builder) CreateSharedString(s string) UOffsetT { diff --git a/go/lib.go b/go/lib.go index 9a333ff04d..9333d8bd3f 100644 --- a/go/lib.go +++ b/go/lib.go @@ -23,3 +23,8 @@ func GetSizePrefixedRootAs(buf []byte, offset UOffsetT, fb FlatBuffer) { func GetSizePrefix(buf []byte, offset UOffsetT) uint32 { return GetUint32(buf[offset:]) } + +// GetIndirectOffset retrives the relative offset in the provided buffer stored at `offset`. +func GetIndirectOffset(buf []byte, offset UOffsetT) UOffsetT { + return offset + GetUOffsetT(buf[offset:]) +} diff --git a/src/idl_gen_go.cpp b/src/idl_gen_go.cpp index a5e0c364f5..54e886458c 100644 --- a/src/idl_gen_go.cpp +++ b/src/idl_gen_go.cpp @@ -21,6 +21,7 @@ #include #include +#include "flatbuffers/base.h" #include "flatbuffers/code_generators.h" #include "flatbuffers/flatbuffers.h" #include "flatbuffers/idl.h" @@ -104,6 +105,7 @@ class GoGenerator : public BaseGenerator { ++it) { tracked_imported_namespaces_.clear(); needs_math_import_ = false; + needs_bytes_import_ = false; needs_imports = false; std::string enumcode; GenEnum(**it, &enumcode); @@ -124,6 +126,7 @@ class GoGenerator : public BaseGenerator { it != parser_.structs_.vec.end(); ++it) { tracked_imported_namespaces_.clear(); needs_math_import_ = false; + needs_bytes_import_ = false; std::string declcode; GenStruct(**it, &declcode); if (parser_.opts.one_file) { @@ -158,6 +161,7 @@ class GoGenerator : public BaseGenerator { }; std::set tracked_imported_namespaces_; bool needs_math_import_ = false; + bool needs_bytes_import_ = false; // Most field accessors need to retrieve and test the field offset first, // this is the prefix code for that. @@ -489,6 +493,34 @@ class GoGenerator : public BaseGenerator { code += "}\n\n"; } + void GetMemberOfVectorOfStructByKey(const StructDef &struct_def, + const FieldDef &field, + std::string *code_ptr) { + std::string &code = *code_ptr; + auto vectortype = field.value.type.VectorType(); + FLATBUFFERS_ASSERT(vectortype.struct_def->has_key); + + auto &vector_struct_fields = vectortype.struct_def->fields.vec; + auto kit = + std::find_if(vector_struct_fields.begin(), vector_struct_fields.end(), + [&](FieldDef *field) { return field->key; }); + + auto &key_field = **kit; + FLATBUFFERS_ASSERT(key_field.key); + + GenReceiver(struct_def, code_ptr); + code += " " + namer_.Field(field) + "ByKey"; + code += "(obj *" + TypeName(field); + code += ", key " + NativeType(key_field.value.type) + ") bool" + + OffsetPrefix(field); + code += "\t\tx := rcv._tab.Vector(o)\n"; + code += "\t\treturn "; + code += "obj.LookupByKey(key, x, rcv._tab.Bytes)\n"; + code += "\t}\n"; + code += "\treturn false\n"; + code += "}\n\n"; + } + // Get the value of a vector's non-struct member. void GetMemberOfVectorOfNonStruct(const StructDef &struct_def, const FieldDef &field, @@ -690,6 +722,12 @@ class GoGenerator : public BaseGenerator { auto vectortype = field.value.type.VectorType(); if (vectortype.base_type == BASE_TYPE_STRUCT) { GetMemberOfVectorOfStruct(struct_def, field, code_ptr); + // TODO(michaeltle): Support querying fixed struct by key. + // Currently, we only support keyed tables. + if (!vectortype.struct_def->fixed && + vectortype.struct_def->has_key) { + GetMemberOfVectorOfStructByKey(struct_def, field, code_ptr); + } } else { GetMemberOfVectorOfNonStruct(struct_def, field, code_ptr); } @@ -824,6 +862,12 @@ class GoGenerator : public BaseGenerator { GenStructAccessor(struct_def, field, code_ptr); GenStructMutator(struct_def, field, code_ptr); + // TODO(michaeltle): Support querying fixed struct by key. Currently, + // we only support keyed tables. + if (!struct_def.fixed && field.key) { + GenKeyCompare(struct_def, field, code_ptr); + GenLookupByKey(struct_def, field, code_ptr); + } } // Generate builders @@ -836,6 +880,79 @@ class GoGenerator : public BaseGenerator { } } + void GenKeyCompare(const StructDef &struct_def, const FieldDef &field, + std::string *code_ptr) { + FLATBUFFERS_ASSERT(struct_def.has_key); + FLATBUFFERS_ASSERT(field.key); + std::string &code = *code_ptr; + + code += "func " + namer_.Type(struct_def) + "KeyCompare("; + code += "o1, o2 flatbuffers.UOffsetT, buf []byte) bool {\n"; + code += "\tobj1 := &" + namer_.Type(struct_def) + "{}\n"; + code += "\tobj2 := &" + namer_.Type(struct_def) + "{}\n"; + code += "\tobj1.Init(buf, flatbuffers.UOffsetT(len(buf)) - o1)\n"; + code += "\tobj2.Init(buf, flatbuffers.UOffsetT(len(buf)) - o2)\n"; + if (IsString(field.value.type)) { + code += "\treturn string(obj1." + namer_.Function(field.name) + "()) < "; + code += "string(obj2." + namer_.Function(field.name) + "())\n"; + } else { + code += "\treturn obj1." + namer_.Function(field.name) + "() < "; + code += "obj2." + namer_.Function(field.name) + "()\n"; + } + code += "}\n\n"; + } + + void GenLookupByKey(const StructDef &struct_def, const FieldDef &field, + std::string *code_ptr) { + FLATBUFFERS_ASSERT(struct_def.has_key); + FLATBUFFERS_ASSERT(field.key); + std::string &code = *code_ptr; + + GenReceiver(struct_def, code_ptr); + code += " LookupByKey("; + code += "key " + NativeType(field.value.type) + ", "; + code += "vectorLocation flatbuffers.UOffsetT, "; + code += "buf []byte) bool {\n"; + code += "\tspan := flatbuffers.GetUOffsetT(buf[vectorLocation - 4:])\n"; + code += "\tstart := flatbuffers.UOffsetT(0)\n"; + code += "\tfor span != 0 {\n"; + code += "\t\tmiddle := span / 2\n"; + code += "\t\ttableOffset := flatbuffers.GetIndirectOffset(buf, "; + code += "vectorLocation+ 4 * (start + middle))\n"; + + code += "\t\tobj := &" + namer_.Type(struct_def) + "{}\n"; + code += "\t\tobj.Init(buf, tableOffset)\n"; + + if (IsString(field.value.type)) { + code += "\t\tbKey := []byte(key)\n"; + needs_bytes_import_ = true; + code += + "\t\tcomp := bytes.Compare(obj." + namer_.Function(field.name) + "()"; + code += ", bKey)\n"; + } else { + code += "\t\tval := obj." + namer_.Function(field.name) + "()\n"; + code += "\t\tcomp := 0\n"; + code += "\t\tif val > key {\n"; + code += "\t\t\tcomp = 1\n"; + code += "\t\t} else if val < key {\n"; + code += "\t\t\tcomp = -1\n"; + code += "\t\t}\n"; + } + code += "\t\tif comp > 0 {\n"; + code += "\t\t\tspan = middle\n"; + code += "\t\t} else if comp < 0 {\n"; + code += "\t\t\tmiddle += 1\n"; + code += "\t\t\tstart += middle\n"; + code += "\t\t\tspan -= middle\n"; + code += "\t\t} else {\n"; + code += "\t\t\trcv.Init(buf, tableOffset)\n"; + code += "\t\t\treturn true\n"; + code += "\t\t}\n"; + code += "\t}\n"; + code += "\treturn false\n"; + code += "}\n\n"; + } + void GenNativeStruct(const StructDef &struct_def, std::string *code_ptr) { std::string &code = *code_ptr; @@ -1354,9 +1471,10 @@ class GoGenerator : public BaseGenerator { code += "package " + name_space_name + "\n\n"; if (needs_imports) { code += "import (\n"; - if (is_enum) { code += "\t\"strconv\"\n\n"; } + if (needs_bytes_import_) code += "\t\"bytes\"\n"; // math is needed to support non-finite scalar default values. - if (needs_math_import_) { code += "\t\"math\"\n\n"; } + if (needs_math_import_) { code += "\t\"math\"\n"; } + if (is_enum) { code += "\t\"strconv\"\n"; } if (!parser_.opts.go_import.empty()) { code += "\tflatbuffers \"" + parser_.opts.go_import + "\"\n"; } else { diff --git a/tests/MyGame/Example/Any.go b/tests/MyGame/Example/Any.go index 62664185bb..3b7f6295d1 100644 --- a/tests/MyGame/Example/Any.go +++ b/tests/MyGame/Example/Any.go @@ -4,7 +4,6 @@ package Example import ( "strconv" - flatbuffers "github.com/google/flatbuffers/go" MyGame__Example2 "MyGame/Example2" diff --git a/tests/MyGame/Example/AnyAmbiguousAliases.go b/tests/MyGame/Example/AnyAmbiguousAliases.go index cdb65c9b23..83e5f7d82a 100644 --- a/tests/MyGame/Example/AnyAmbiguousAliases.go +++ b/tests/MyGame/Example/AnyAmbiguousAliases.go @@ -4,7 +4,6 @@ package Example import ( "strconv" - flatbuffers "github.com/google/flatbuffers/go" ) diff --git a/tests/MyGame/Example/AnyUniqueAliases.go b/tests/MyGame/Example/AnyUniqueAliases.go index 32cbe08b91..b36e61d9b1 100644 --- a/tests/MyGame/Example/AnyUniqueAliases.go +++ b/tests/MyGame/Example/AnyUniqueAliases.go @@ -4,7 +4,6 @@ package Example import ( "strconv" - flatbuffers "github.com/google/flatbuffers/go" MyGame__Example2 "MyGame/Example2" diff --git a/tests/MyGame/Example/Monster.go b/tests/MyGame/Example/Monster.go index b64ced7dab..6f8fae39b4 100644 --- a/tests/MyGame/Example/Monster.go +++ b/tests/MyGame/Example/Monster.go @@ -3,8 +3,8 @@ package Example import ( + "bytes" "math" - flatbuffers "github.com/google/flatbuffers/go" MyGame "MyGame" @@ -568,6 +568,38 @@ func (rcv *Monster) Name() []byte { return nil } +func MonsterKeyCompare(o1, o2 flatbuffers.UOffsetT, buf []byte) bool { + obj1 := &Monster{} + obj2 := &Monster{} + obj1.Init(buf, flatbuffers.UOffsetT(len(buf)) - o1) + obj2.Init(buf, flatbuffers.UOffsetT(len(buf)) - o2) + return string(obj1.Name()) < string(obj2.Name()) +} + +func (rcv *Monster) LookupByKey(key string, vectorLocation flatbuffers.UOffsetT, buf []byte) bool { + span := flatbuffers.GetUOffsetT(buf[vectorLocation - 4:]) + start := flatbuffers.UOffsetT(0) + for span != 0 { + middle := span / 2 + tableOffset := flatbuffers.GetIndirectOffset(buf, vectorLocation+ 4 * (start + middle)) + obj := &Monster{} + obj.Init(buf, tableOffset) + bKey := []byte(key) + comp := bytes.Compare(obj.Name(), bKey) + if comp > 0 { + span = middle + } else if comp < 0 { + middle += 1 + start += middle + span -= middle + } else { + rcv.Init(buf, tableOffset) + return true + } + } + return false +} + func (rcv *Monster) Inventory(j int) byte { o := flatbuffers.UOffsetT(rcv._tab.Offset(14)) if o != 0 { @@ -685,6 +717,15 @@ func (rcv *Monster) Testarrayoftables(obj *Monster, j int) bool { return false } +func (rcv *Monster) TestarrayoftablesByKey(obj *Monster, key string) bool{ + o := flatbuffers.UOffsetT(rcv._tab.Offset(26)) + if o != 0 { + x := rcv._tab.Vector(o) + return obj.LookupByKey(key, x, rcv._tab.Bytes) + } + return false +} + func (rcv *Monster) TestarrayoftablesLength() int { o := flatbuffers.UOffsetT(rcv._tab.Offset(26)) if o != 0 { @@ -1091,6 +1132,15 @@ func (rcv *Monster) VectorOfReferrables(obj *Referrable, j int) bool { return false } +func (rcv *Monster) VectorOfReferrablesByKey(obj *Referrable, key uint64) bool{ + o := flatbuffers.UOffsetT(rcv._tab.Offset(74)) + if o != 0 { + x := rcv._tab.Vector(o) + return obj.LookupByKey(key, x, rcv._tab.Bytes) + } + return false +} + func (rcv *Monster) VectorOfReferrablesLength() int { o := flatbuffers.UOffsetT(rcv._tab.Offset(74)) if o != 0 { @@ -1149,6 +1199,15 @@ func (rcv *Monster) VectorOfStrongReferrables(obj *Referrable, j int) bool { return false } +func (rcv *Monster) VectorOfStrongReferrablesByKey(obj *Referrable, key uint64) bool{ + o := flatbuffers.UOffsetT(rcv._tab.Offset(80)) + if o != 0 { + x := rcv._tab.Vector(o) + return obj.LookupByKey(key, x, rcv._tab.Bytes) + } + return false +} + func (rcv *Monster) VectorOfStrongReferrablesLength() int { o := flatbuffers.UOffsetT(rcv._tab.Offset(80)) if o != 0 { @@ -1367,6 +1426,15 @@ func (rcv *Monster) ScalarKeySortedTables(obj *Stat, j int) bool { return false } +func (rcv *Monster) ScalarKeySortedTablesByKey(obj *Stat, key uint16) bool{ + o := flatbuffers.UOffsetT(rcv._tab.Offset(104)) + if o != 0 { + x := rcv._tab.Vector(o) + return obj.LookupByKey(key, x, rcv._tab.Bytes) + } + return false +} + func (rcv *Monster) ScalarKeySortedTablesLength() int { o := flatbuffers.UOffsetT(rcv._tab.Offset(104)) if o != 0 { diff --git a/tests/MyGame/Example/Referrable.go b/tests/MyGame/Example/Referrable.go index aa27079842..0b14beb2e9 100644 --- a/tests/MyGame/Example/Referrable.go +++ b/tests/MyGame/Example/Referrable.go @@ -67,6 +67,43 @@ func (rcv *Referrable) MutateId(n uint64) bool { return rcv._tab.MutateUint64Slot(4, n) } +func ReferrableKeyCompare(o1, o2 flatbuffers.UOffsetT, buf []byte) bool { + obj1 := &Referrable{} + obj2 := &Referrable{} + obj1.Init(buf, flatbuffers.UOffsetT(len(buf)) - o1) + obj2.Init(buf, flatbuffers.UOffsetT(len(buf)) - o2) + return obj1.Id() < obj2.Id() +} + +func (rcv *Referrable) LookupByKey(key uint64, vectorLocation flatbuffers.UOffsetT, buf []byte) bool { + span := flatbuffers.GetUOffsetT(buf[vectorLocation - 4:]) + start := flatbuffers.UOffsetT(0) + for span != 0 { + middle := span / 2 + tableOffset := flatbuffers.GetIndirectOffset(buf, vectorLocation+ 4 * (start + middle)) + obj := &Referrable{} + obj.Init(buf, tableOffset) + val := obj.Id() + comp := 0 + if val > key { + comp = 1 + } else if val < key { + comp = -1 + } + if comp > 0 { + span = middle + } else if comp < 0 { + middle += 1 + start += middle + span -= middle + } else { + rcv.Init(buf, tableOffset) + return true + } + } + return false +} + func ReferrableStart(builder *flatbuffers.Builder) { builder.StartObject(1) } diff --git a/tests/MyGame/Example/Stat.go b/tests/MyGame/Example/Stat.go index 7149640984..d7976cd7b1 100644 --- a/tests/MyGame/Example/Stat.go +++ b/tests/MyGame/Example/Stat.go @@ -94,6 +94,43 @@ func (rcv *Stat) MutateCount(n uint16) bool { return rcv._tab.MutateUint16Slot(8, n) } +func StatKeyCompare(o1, o2 flatbuffers.UOffsetT, buf []byte) bool { + obj1 := &Stat{} + obj2 := &Stat{} + obj1.Init(buf, flatbuffers.UOffsetT(len(buf)) - o1) + obj2.Init(buf, flatbuffers.UOffsetT(len(buf)) - o2) + return obj1.Count() < obj2.Count() +} + +func (rcv *Stat) LookupByKey(key uint16, vectorLocation flatbuffers.UOffsetT, buf []byte) bool { + span := flatbuffers.GetUOffsetT(buf[vectorLocation - 4:]) + start := flatbuffers.UOffsetT(0) + for span != 0 { + middle := span / 2 + tableOffset := flatbuffers.GetIndirectOffset(buf, vectorLocation+ 4 * (start + middle)) + obj := &Stat{} + obj.Init(buf, tableOffset) + val := obj.Count() + comp := 0 + if val > key { + comp = 1 + } else if val < key { + comp = -1 + } + if comp > 0 { + span = middle + } else if comp < 0 { + middle += 1 + start += middle + span -= middle + } else { + rcv.Init(buf, tableOffset) + return true + } + } + return false +} + func StatStart(builder *flatbuffers.Builder) { builder.StartObject(3) } diff --git a/tests/go_test.go b/tests/go_test.go index d454b56475..7cbac1e5e8 100644 --- a/tests/go_test.go +++ b/tests/go_test.go @@ -186,9 +186,12 @@ func TestAll(t *testing.T) { // Check size-prefixed flatbuffers CheckSizePrefixedBuffer(t.Fatalf) - // Check that optional scalars work + // Check that optional scalars works CheckOptionalScalars(t.Fatalf) + // Check that getting vector element by key works + CheckByKey(t.Fatalf) + // If the filename of the FlatBuffers file generated by the Java test // is given, check that Go code can read it, and that Go code // generates an identical buffer when used to create the example data: @@ -2215,6 +2218,78 @@ func CheckOptionalScalars(fail func(string, ...interface{})) { expectEq("defaultEnum", obj.DefaultEnum, optional_scalars.OptionalByteTwo) } +func CheckByKey(fail func(string, ...interface{})) { + expectEq := func(what string, a, b interface{}) { + if a != b { + fail(FailString("Lookup by key: "+what, b, a)) + } + } + + b := flatbuffers.NewBuilder(0) + name := b.CreateString("Boss") + + slime := &example.MonsterT{Name: "Slime"} + pig := &example.MonsterT{Name: "Pig"} + slimeBoss := &example.MonsterT{Name: "SlimeBoss"} + mushroom := &example.MonsterT{Name: "Mushroom"} + ironPig := &example.MonsterT{Name: "Iron Pig"} + + monsterOffsets := make([]flatbuffers.UOffsetT, 5) + monsterOffsets[0] = slime.Pack(b) + monsterOffsets[1] = pig.Pack(b) + monsterOffsets[2] = slimeBoss.Pack(b) + monsterOffsets[3] = mushroom.Pack(b) + monsterOffsets[4] = ironPig.Pack(b) + testarrayoftables := b.CreateVectorOfSortedTables(monsterOffsets, example.MonsterKeyCompare) + + str := &example.StatT{Id: "Strength", Count: 42} + luk := &example.StatT{Id: "Luck", Count: 51} + hp := &example.StatT{Id: "Health", Count: 12} + // Test default count value of 0 + mp := &example.StatT{Id: "Mana"} + + statOffsets := make([]flatbuffers.UOffsetT, 4) + statOffsets[0] = str.Pack(b) + statOffsets[1] = luk.Pack(b) + statOffsets[2] = hp.Pack(b) + statOffsets[3] = mp.Pack(b) + scalarKeySortedTablesOffset := b.CreateVectorOfSortedTables(statOffsets, example.StatKeyCompare) + + example.MonsterStart(b) + example.MonsterAddName(b, name) + example.MonsterAddTestarrayoftables(b, testarrayoftables) + example.MonsterAddScalarKeySortedTables(b, scalarKeySortedTablesOffset) + moff := example.MonsterEnd(b) + b.Finish(moff) + + monster := example.GetRootAsMonster(b.Bytes, b.Head()) + slimeMon := &example.Monster{} + monster.TestarrayoftablesByKey(slimeMon, slime.Name) + mushroomMon := &example.Monster{} + monster.TestarrayoftablesByKey(mushroomMon, mushroom.Name) + slimeBossMon := &example.Monster{} + monster.TestarrayoftablesByKey(slimeBossMon, slimeBoss.Name) + + strStat := &example.Stat{} + monster.ScalarKeySortedTablesByKey(strStat, str.Count) + lukStat := &example.Stat{} + monster.ScalarKeySortedTablesByKey(lukStat, luk.Count) + mpStat := &example.Stat{} + monster.ScalarKeySortedTablesByKey(mpStat, mp.Count) + + expectEq("Boss name", string(monster.Name()), "Boss") + expectEq("Slime name", string(slimeMon.Name()), slime.Name) + expectEq("Mushroom name", string(mushroomMon.Name()), mushroom.Name) + expectEq("SlimeBoss name", string(slimeBossMon.Name()), slimeBoss.Name) + expectEq("Strength Id", string(strStat.Id()), str.Id) + expectEq("Strength Count", strStat.Count(), str.Count) + expectEq("Luck Id", string(lukStat.Id()), luk.Id) + expectEq("Luck Count", lukStat.Count(), luk.Count) + expectEq("Mana Id", string(mpStat.Id()), mp.Id) + // Use default count value as key + expectEq("Mana Count", mpStat.Count(), uint16(0)) +} + // BenchmarkVtableDeduplication measures the speed of vtable deduplication // by creating prePop vtables, then populating b.N objects with a // different single vtable. From e000458bb1bdb25993ec19b04c70c1949c18c8fa Mon Sep 17 00:00:00 2001 From: Michael Le Date: Tue, 22 Nov 2022 14:28:01 -0800 Subject: [PATCH 028/571] Add --go-module-name flag to support generating Go module compatible code (#7651) * Add --go-module-name flag to support generating code for go modules * Rename echo example folder * Grammar * Update readme for go-echo example * Update readme for go-echo example * Re-enable go modules after test is done --- examples/go-echo/README.md | 27 +++++++++ examples/go-echo/client/client.go | 62 +++++++++++++++++++++ examples/go-echo/go.mod | 5 ++ examples/go-echo/hero.fbs | 6 ++ examples/go-echo/hero/Warrior.go | 93 +++++++++++++++++++++++++++++++ examples/go-echo/net.fbs | 11 ++++ examples/go-echo/net/Request.go | 82 +++++++++++++++++++++++++++ examples/go-echo/net/Response.go | 82 +++++++++++++++++++++++++++ examples/go-echo/server/server.go | 35 ++++++++++++ include/flatbuffers/idl.h | 3 +- src/flatc.cpp | 5 ++ src/idl_gen_go.cpp | 7 ++- tests/GoTest.sh | 3 + 13 files changed, 419 insertions(+), 2 deletions(-) create mode 100644 examples/go-echo/README.md create mode 100644 examples/go-echo/client/client.go create mode 100644 examples/go-echo/go.mod create mode 100644 examples/go-echo/hero.fbs create mode 100644 examples/go-echo/hero/Warrior.go create mode 100644 examples/go-echo/net.fbs create mode 100644 examples/go-echo/net/Request.go create mode 100644 examples/go-echo/net/Response.go create mode 100644 examples/go-echo/server/server.go diff --git a/examples/go-echo/README.md b/examples/go-echo/README.md new file mode 100644 index 0000000000..acecee7e42 --- /dev/null +++ b/examples/go-echo/README.md @@ -0,0 +1,27 @@ +# Go Echo Example + +A simple example demonstrating how to send flatbuffers over the network in Go. + +## Generate flatbuffer code + +``` +flatc -g --gen-object-api --go-module-name echo hero.fbs net.fbs +``` + +## Running example + +1. Run go mod tidy to get dependencies +``` +go mod tidy +``` + +2. Start a server +``` +go run server/server.go +``` + +3. Run the client in another terminal +``` +go run client/client.go +``` + diff --git a/examples/go-echo/client/client.go b/examples/go-echo/client/client.go new file mode 100644 index 0000000000..5d2c130825 --- /dev/null +++ b/examples/go-echo/client/client.go @@ -0,0 +1,62 @@ +package main + +import ( + "bytes" + "fmt" + "io/ioutil" + "net/http" + + "echo/hero" + "echo/net" + + flatbuffers "github.com/google/flatbuffers/go" +) + +func RequestBody() *bytes.Reader { + b := flatbuffers.NewBuilder(0) + r := net.RequestT{Player: &hero.WarriorT{Name: "Krull", Hp: 100}} + b.Finish(r.Pack(b)) + + // Encode builder head in last 4 bytes of request body + buf := make([]byte, 4) + flatbuffers.WriteUOffsetT(buf, b.Head()) + buf = append(b.Bytes, buf...) + + return bytes.NewReader(buf) +} + +func ReadResponse(r *http.Response) { + body, err := ioutil.ReadAll(r.Body) + if err != nil { + fmt.Printf("Unable to read request body: %v\n", err) + return + } + + // Last 4 bytes is offset. + off := flatbuffers.GetUOffsetT(body[len(body)-4:]) + buf := body[:len(body) - 4] + + res := net.GetRootAsResponse(buf, off) + player := res.Player(nil) + + fmt.Printf("Got response (name: %v, hp: %v)\n", string(player.Name()), player.Hp()) +} + +func main() { + + body := RequestBody() + req, err := http.NewRequest("POST", "http://localhost:8080/echo", body) + if err != nil { + fmt.Println(err) + return + } + + client := http.DefaultClient + resp, err := client.Do(req) + if err != nil { + fmt.Println(err) + return + } + + ReadResponse(resp) +} diff --git a/examples/go-echo/go.mod b/examples/go-echo/go.mod new file mode 100644 index 0000000000..81abc9b5b3 --- /dev/null +++ b/examples/go-echo/go.mod @@ -0,0 +1,5 @@ +module echo + +go 1.19 + +require github.com/google/flatbuffers v22.10.26+incompatible diff --git a/examples/go-echo/hero.fbs b/examples/go-echo/hero.fbs new file mode 100644 index 0000000000..91b9dcaaf4 --- /dev/null +++ b/examples/go-echo/hero.fbs @@ -0,0 +1,6 @@ +namespace hero; + +table Warrior { + name: string; + hp: uint32; +} diff --git a/examples/go-echo/hero/Warrior.go b/examples/go-echo/hero/Warrior.go new file mode 100644 index 0000000000..857697e16d --- /dev/null +++ b/examples/go-echo/hero/Warrior.go @@ -0,0 +1,93 @@ +// Code generated by the FlatBuffers compiler. DO NOT EDIT. + +package hero + +import ( + flatbuffers "github.com/google/flatbuffers/go" +) + +type WarriorT struct { + Name string `json:"name"` + Hp uint32 `json:"hp"` +} + +func (t *WarriorT) Pack(builder *flatbuffers.Builder) flatbuffers.UOffsetT { + if t == nil { return 0 } + nameOffset := builder.CreateString(t.Name) + WarriorStart(builder) + WarriorAddName(builder, nameOffset) + WarriorAddHp(builder, t.Hp) + return WarriorEnd(builder) +} + +func (rcv *Warrior) UnPackTo(t *WarriorT) { + t.Name = string(rcv.Name()) + t.Hp = rcv.Hp() +} + +func (rcv *Warrior) UnPack() *WarriorT { + if rcv == nil { return nil } + t := &WarriorT{} + rcv.UnPackTo(t) + return t +} + +type Warrior struct { + _tab flatbuffers.Table +} + +func GetRootAsWarrior(buf []byte, offset flatbuffers.UOffsetT) *Warrior { + n := flatbuffers.GetUOffsetT(buf[offset:]) + x := &Warrior{} + x.Init(buf, n+offset) + return x +} + +func GetSizePrefixedRootAsWarrior(buf []byte, offset flatbuffers.UOffsetT) *Warrior { + n := flatbuffers.GetUOffsetT(buf[offset+flatbuffers.SizeUint32:]) + x := &Warrior{} + x.Init(buf, n+offset+flatbuffers.SizeUint32) + return x +} + +func (rcv *Warrior) Init(buf []byte, i flatbuffers.UOffsetT) { + rcv._tab.Bytes = buf + rcv._tab.Pos = i +} + +func (rcv *Warrior) Table() flatbuffers.Table { + return rcv._tab +} + +func (rcv *Warrior) Name() []byte { + o := flatbuffers.UOffsetT(rcv._tab.Offset(4)) + if o != 0 { + return rcv._tab.ByteVector(o + rcv._tab.Pos) + } + return nil +} + +func (rcv *Warrior) Hp() uint32 { + o := flatbuffers.UOffsetT(rcv._tab.Offset(6)) + if o != 0 { + return rcv._tab.GetUint32(o + rcv._tab.Pos) + } + return 0 +} + +func (rcv *Warrior) MutateHp(n uint32) bool { + return rcv._tab.MutateUint32Slot(6, n) +} + +func WarriorStart(builder *flatbuffers.Builder) { + builder.StartObject(2) +} +func WarriorAddName(builder *flatbuffers.Builder, name flatbuffers.UOffsetT) { + builder.PrependUOffsetTSlot(0, flatbuffers.UOffsetT(name), 0) +} +func WarriorAddHp(builder *flatbuffers.Builder, hp uint32) { + builder.PrependUint32Slot(1, hp, 0) +} +func WarriorEnd(builder *flatbuffers.Builder) flatbuffers.UOffsetT { + return builder.EndObject() +} diff --git a/examples/go-echo/net.fbs b/examples/go-echo/net.fbs new file mode 100644 index 0000000000..7293bb699d --- /dev/null +++ b/examples/go-echo/net.fbs @@ -0,0 +1,11 @@ +include "hero.fbs"; + +namespace net; + +table Request { + player: hero.Warrior; +} + +table Response { + player: hero.Warrior; +} diff --git a/examples/go-echo/net/Request.go b/examples/go-echo/net/Request.go new file mode 100644 index 0000000000..b2449c1ca8 --- /dev/null +++ b/examples/go-echo/net/Request.go @@ -0,0 +1,82 @@ +// Code generated by the FlatBuffers compiler. DO NOT EDIT. + +package net + +import ( + flatbuffers "github.com/google/flatbuffers/go" + + hero "echo/hero" +) + +type RequestT struct { + Player *hero.WarriorT `json:"player"` +} + +func (t *RequestT) Pack(builder *flatbuffers.Builder) flatbuffers.UOffsetT { + if t == nil { return 0 } + playerOffset := t.Player.Pack(builder) + RequestStart(builder) + RequestAddPlayer(builder, playerOffset) + return RequestEnd(builder) +} + +func (rcv *Request) UnPackTo(t *RequestT) { + t.Player = rcv.Player(nil).UnPack() +} + +func (rcv *Request) UnPack() *RequestT { + if rcv == nil { return nil } + t := &RequestT{} + rcv.UnPackTo(t) + return t +} + +type Request struct { + _tab flatbuffers.Table +} + +func GetRootAsRequest(buf []byte, offset flatbuffers.UOffsetT) *Request { + n := flatbuffers.GetUOffsetT(buf[offset:]) + x := &Request{} + x.Init(buf, n+offset) + return x +} + +func GetSizePrefixedRootAsRequest(buf []byte, offset flatbuffers.UOffsetT) *Request { + n := flatbuffers.GetUOffsetT(buf[offset+flatbuffers.SizeUint32:]) + x := &Request{} + x.Init(buf, n+offset+flatbuffers.SizeUint32) + return x +} + +func (rcv *Request) Init(buf []byte, i flatbuffers.UOffsetT) { + rcv._tab.Bytes = buf + rcv._tab.Pos = i +} + +func (rcv *Request) Table() flatbuffers.Table { + return rcv._tab +} + +func (rcv *Request) Player(obj *hero.Warrior) *hero.Warrior { + o := flatbuffers.UOffsetT(rcv._tab.Offset(4)) + if o != 0 { + x := rcv._tab.Indirect(o + rcv._tab.Pos) + if obj == nil { + obj = new(hero.Warrior) + } + obj.Init(rcv._tab.Bytes, x) + return obj + } + return nil +} + +func RequestStart(builder *flatbuffers.Builder) { + builder.StartObject(1) +} +func RequestAddPlayer(builder *flatbuffers.Builder, player flatbuffers.UOffsetT) { + builder.PrependUOffsetTSlot(0, flatbuffers.UOffsetT(player), 0) +} +func RequestEnd(builder *flatbuffers.Builder) flatbuffers.UOffsetT { + return builder.EndObject() +} diff --git a/examples/go-echo/net/Response.go b/examples/go-echo/net/Response.go new file mode 100644 index 0000000000..57e6b35358 --- /dev/null +++ b/examples/go-echo/net/Response.go @@ -0,0 +1,82 @@ +// Code generated by the FlatBuffers compiler. DO NOT EDIT. + +package net + +import ( + flatbuffers "github.com/google/flatbuffers/go" + + hero "echo/hero" +) + +type ResponseT struct { + Player *hero.WarriorT `json:"player"` +} + +func (t *ResponseT) Pack(builder *flatbuffers.Builder) flatbuffers.UOffsetT { + if t == nil { return 0 } + playerOffset := t.Player.Pack(builder) + ResponseStart(builder) + ResponseAddPlayer(builder, playerOffset) + return ResponseEnd(builder) +} + +func (rcv *Response) UnPackTo(t *ResponseT) { + t.Player = rcv.Player(nil).UnPack() +} + +func (rcv *Response) UnPack() *ResponseT { + if rcv == nil { return nil } + t := &ResponseT{} + rcv.UnPackTo(t) + return t +} + +type Response struct { + _tab flatbuffers.Table +} + +func GetRootAsResponse(buf []byte, offset flatbuffers.UOffsetT) *Response { + n := flatbuffers.GetUOffsetT(buf[offset:]) + x := &Response{} + x.Init(buf, n+offset) + return x +} + +func GetSizePrefixedRootAsResponse(buf []byte, offset flatbuffers.UOffsetT) *Response { + n := flatbuffers.GetUOffsetT(buf[offset+flatbuffers.SizeUint32:]) + x := &Response{} + x.Init(buf, n+offset+flatbuffers.SizeUint32) + return x +} + +func (rcv *Response) Init(buf []byte, i flatbuffers.UOffsetT) { + rcv._tab.Bytes = buf + rcv._tab.Pos = i +} + +func (rcv *Response) Table() flatbuffers.Table { + return rcv._tab +} + +func (rcv *Response) Player(obj *hero.Warrior) *hero.Warrior { + o := flatbuffers.UOffsetT(rcv._tab.Offset(4)) + if o != 0 { + x := rcv._tab.Indirect(o + rcv._tab.Pos) + if obj == nil { + obj = new(hero.Warrior) + } + obj.Init(rcv._tab.Bytes, x) + return obj + } + return nil +} + +func ResponseStart(builder *flatbuffers.Builder) { + builder.StartObject(1) +} +func ResponseAddPlayer(builder *flatbuffers.Builder, player flatbuffers.UOffsetT) { + builder.PrependUOffsetTSlot(0, flatbuffers.UOffsetT(player), 0) +} +func ResponseEnd(builder *flatbuffers.Builder) flatbuffers.UOffsetT { + return builder.EndObject() +} diff --git a/examples/go-echo/server/server.go b/examples/go-echo/server/server.go new file mode 100644 index 0000000000..46ff9e108b --- /dev/null +++ b/examples/go-echo/server/server.go @@ -0,0 +1,35 @@ +package main + +import ( + "echo/net" + "fmt" + "io/ioutil" + "net/http" + + flatbuffers "github.com/google/flatbuffers/go" +) + +func echo(w http.ResponseWriter, r *http.Request) { + body, err := ioutil.ReadAll(r.Body) + if err != nil { + fmt.Printf("Unable to read request body: %v\n", err) + return + } + + // Last 4 bytes is offset. See client.go. + off := flatbuffers.GetUOffsetT(body[len(body)-4:]) + buf := body[:len(body) - 4] + + req := net.GetRootAsRequest(buf, off) + player := req.Player(nil) + + fmt.Printf("Got request (name: %v, hp: %v)\n", string(player.Name()), player.Hp()) + w.Write(body) +} + +func main() { + http.HandleFunc("/echo", echo) + + fmt.Println("Listening on port :8080") + http.ListenAndServe(":8080", nil) +} diff --git a/include/flatbuffers/idl.h b/include/flatbuffers/idl.h index 19260e77bd..a07f62a30b 100644 --- a/include/flatbuffers/idl.h +++ b/include/flatbuffers/idl.h @@ -623,6 +623,7 @@ struct IDLOptions { bool binary_schema_gen_embed; std::string go_import; std::string go_namespace; + std::string go_module_name; bool protobuf_ascii_alike; bool size_prefixed; std::string root_type; @@ -915,7 +916,7 @@ class Parser : public ParserState { // Returns the number of characters were consumed when parsing a JSON string. std::ptrdiff_t BytesConsumed() const; - + // Set the root type. May override the one set in the schema. bool SetRootType(const char *name); diff --git a/src/flatc.cpp b/src/flatc.cpp index deb45ec88f..998d77b8fc 100644 --- a/src/flatc.cpp +++ b/src/flatc.cpp @@ -152,6 +152,8 @@ const static FlatCOption options[] = { { "", "go-import", "IMPORT", "Generate the overriding import for flatbuffers in Golang (default is " "\"github.com/google/flatbuffers/go\")." }, + { "", "go-module-name", "", + "Prefix local import paths of generated go code with the module name" }, { "", "raw-binary", "", "Allow binaries without file_identifier to be read. This may crash flatc " "given a mismatched schema." }, @@ -448,6 +450,9 @@ int FlatCompiler::Compile(int argc, const char **argv) { } else if (arg == "--go-import") { if (++argi >= argc) Error("missing golang import" + arg, true); opts.go_import = argv[argi]; + } else if (arg == "--go-module-name") { + if (++argi >= argc) Error("missing golang module name" + arg, true); + opts.go_module_name = argv[argi]; } else if (arg == "--defaults-json") { opts.output_default_scalars_in_json = true; } else if (arg == "--unknown-json") { diff --git a/src/idl_gen_go.cpp b/src/idl_gen_go.cpp index 54e886458c..650450fb6f 100644 --- a/src/idl_gen_go.cpp +++ b/src/idl_gen_go.cpp @@ -1532,7 +1532,12 @@ class GoGenerator : public BaseGenerator { // Create the full path for the imported namespace (format: A/B/C). std::string NamespaceImportPath(const Namespace *ns) const { - return namer_.Directories(*ns, SkipDir::OutputPathAndTrailingPathSeparator); + std::string path = + namer_.Directories(*ns, SkipDir::OutputPathAndTrailingPathSeparator); + if (!parser_.opts.go_module_name.empty()) { + path = parser_.opts.go_module_name + "/" + path; + } + return path; } // Ensure that a type is prefixed with its go package import name if it is diff --git a/tests/GoTest.sh b/tests/GoTest.sh index 8e73af2417..b55cad5770 100755 --- a/tests/GoTest.sh +++ b/tests/GoTest.sh @@ -72,3 +72,6 @@ if [[ ${NOT_FMT_FILES} != "" ]]; then # enable this when enums are properly formated # exit 1 fi + +# Re-enable go modules when done tests +go env -w GO111MODULE=on From 9d2c04d62917847c3eb7c8ed49d63572aef5733a Mon Sep 17 00:00:00 2001 From: Derek Bailey Date: Tue, 22 Nov 2022 14:40:01 -0800 Subject: [PATCH 029/571] FlatBuffers Version 22.11.22 --- CMake/Version.cmake | 4 +- CMakeLists.txt | 1 + FlatBuffers.podspec | 2 +- .../main/java/generated/com/fbs/app/Animal.kt | 2 +- dart/pubspec.yaml | 2 +- .../Sources/Model/greeter_generated.swift | 4 +- include/flatbuffers/base.h | 4 +- include/flatbuffers/reflection_generated.h | 4 +- java/pom.xml | 2 +- .../com/google/flatbuffers/Constants.java | 2 +- net/FlatBuffers/FlatBufferConstants.cs | 2 +- net/FlatBuffers/Google.FlatBuffers.csproj | 2 +- package.json | 2 +- python/flatbuffers/_version.py | 2 +- python/setup.py | 2 +- samples/monster_generated.h | 4 +- samples/monster_generated.swift | 8 +- scripts/generate_code.py | 14 -- src/idl_gen_csharp.cpp | 2 +- src/idl_gen_java.cpp | 2 +- src/idl_gen_kotlin.cpp | 2 +- src/idl_gen_swift.cpp | 2 +- swift/Sources/FlatBuffers/Constants.swift | 2 +- tests/Abc.nim | 2 +- tests/DictionaryLookup/LongFloatEntry.java | 2 +- tests/DictionaryLookup/LongFloatEntry.kt | 2 +- tests/DictionaryLookup/LongFloatMap.java | 2 +- tests/DictionaryLookup/LongFloatMap.kt | 2 +- tests/KeywordTest/KeywordsInTable.cs | 2 +- tests/MoreDefaults.nim | 2 +- tests/MyGame/Example/Ability.lua | 2 +- tests/MyGame/Example/Ability.nim | 2 +- tests/MyGame/Example/Any.lua | 2 +- tests/MyGame/Example/Any.nim | 2 +- tests/MyGame/Example/AnyAmbiguousAliases.lua | 2 +- tests/MyGame/Example/AnyAmbiguousAliases.nim | 2 +- tests/MyGame/Example/AnyUniqueAliases.lua | 2 +- tests/MyGame/Example/AnyUniqueAliases.nim | 2 +- tests/MyGame/Example/ArrayTable.cs | 2 +- tests/MyGame/Example/ArrayTable.java | 2 +- tests/MyGame/Example/Color.lua | 2 +- tests/MyGame/Example/Color.nim | 2 +- tests/MyGame/Example/LongEnum.lua | 2 +- tests/MyGame/Example/LongEnum.nim | 2 +- tests/MyGame/Example/Monster.cs | 2 +- tests/MyGame/Example/Monster.java | 2 +- tests/MyGame/Example/Monster.kt | 2 +- tests/MyGame/Example/Monster.lua | 2 +- tests/MyGame/Example/Monster.nim | 2 +- tests/MyGame/Example/Race.lua | 2 +- tests/MyGame/Example/Race.nim | 2 +- tests/MyGame/Example/Referrable.cs | 2 +- tests/MyGame/Example/Referrable.java | 2 +- tests/MyGame/Example/Referrable.kt | 2 +- tests/MyGame/Example/Referrable.lua | 2 +- tests/MyGame/Example/Referrable.nim | 2 +- tests/MyGame/Example/Stat.cs | 2 +- tests/MyGame/Example/Stat.java | 2 +- tests/MyGame/Example/Stat.kt | 2 +- tests/MyGame/Example/Stat.lua | 2 +- tests/MyGame/Example/Stat.nim | 2 +- tests/MyGame/Example/StructOfStructs.lua | 2 +- tests/MyGame/Example/StructOfStructs.nim | 2 +- .../Example/StructOfStructsOfStructs.lua | 2 +- .../Example/StructOfStructsOfStructs.nim | 2 +- tests/MyGame/Example/Test.lua | 2 +- tests/MyGame/Example/Test.nim | 2 +- .../MyGame/Example/TestSimpleTableWithEnum.cs | 2 +- .../Example/TestSimpleTableWithEnum.java | 2 +- .../MyGame/Example/TestSimpleTableWithEnum.kt | 2 +- .../Example/TestSimpleTableWithEnum.lua | 2 +- .../Example/TestSimpleTableWithEnum.nim | 2 +- tests/MyGame/Example/TypeAliases.cs | 2 +- tests/MyGame/Example/TypeAliases.java | 2 +- tests/MyGame/Example/TypeAliases.kt | 2 +- tests/MyGame/Example/TypeAliases.lua | 2 +- tests/MyGame/Example/TypeAliases.nim | 2 +- tests/MyGame/Example/Vec3.lua | 2 +- tests/MyGame/Example/Vec3.nim | 2 +- tests/MyGame/Example2/Monster.cs | 2 +- tests/MyGame/Example2/Monster.java | 2 +- tests/MyGame/Example2/Monster.kt | 2 +- tests/MyGame/Example2/Monster.lua | 2 +- tests/MyGame/Example2/Monster.nim | 2 +- tests/MyGame/InParentNamespace.cs | 2 +- tests/MyGame/InParentNamespace.java | 2 +- tests/MyGame/InParentNamespace.kt | 2 +- tests/MyGame/InParentNamespace.lua | 2 +- tests/MyGame/InParentNamespace.nim | 2 +- tests/MyGame/MonsterExtra.cs | 2 +- tests/MyGame/MonsterExtra.java | 2 +- tests/MyGame/MonsterExtra.kt | 2 +- tests/MyGame/OtherNameSpace/FromInclude.lua | 2 +- tests/MyGame/OtherNameSpace/FromInclude.nim | 2 +- tests/MyGame/OtherNameSpace/TableB.lua | 2 +- tests/MyGame/OtherNameSpace/TableB.nim | 2 +- tests/MyGame/OtherNameSpace/Unused.lua | 2 +- tests/MyGame/OtherNameSpace/Unused.nim | 2 +- tests/Property.nim | 2 +- tests/TableA.lua | 2 +- tests/TableA.nim | 2 +- tests/TestMutatingBool.nim | 2 +- tests/alignment_test_generated.h | 4 +- tests/arrays_test_generated.h | 4 +- .../generated_cpp17/monster_test_generated.h | 4 +- .../optional_scalars_generated.h | 4 +- .../generated_cpp17/union_vector_generated.h | 4 +- tests/evolution_test/evolution_v1_generated.h | 4 +- tests/evolution_test/evolution_v2_generated.h | 4 +- tests/key_field/key_field_sample_generated.h | 223 +++++++++++++++++- tests/monster_extra_generated.h | 4 +- tests/monster_test_bfbs_generated.h | 4 +- tests/monster_test_generated.h | 4 +- .../ext_only/monster_test_generated.hpp | 4 +- .../filesuffix_only/monster_test_suffix.h | 4 +- .../monster_test_suffix.hpp | 4 +- .../NamespaceA/NamespaceB/TableInNestedNS.cs | 2 +- .../NamespaceB/TableInNestedNS.java | 2 +- .../NamespaceA/NamespaceB/TableInNestedNS.kt | 2 +- .../NamespaceA/SecondTableInA.cs | 2 +- .../NamespaceA/SecondTableInA.java | 2 +- .../NamespaceA/SecondTableInA.kt | 2 +- .../NamespaceA/TableInFirstNS.cs | 2 +- .../NamespaceA/TableInFirstNS.java | 2 +- .../NamespaceA/TableInFirstNS.kt | 2 +- tests/namespace_test/NamespaceC/TableInC.cs | 2 +- tests/namespace_test/NamespaceC/TableInC.java | 2 +- tests/namespace_test/NamespaceC/TableInC.kt | 2 +- .../namespace_test1_generated.h | 4 +- .../namespace_test2_generated.h | 4 +- tests/native_inline_table_test_generated.h | 4 +- tests/native_type_test_generated.h | 4 +- .../nested_namespace_test3_generated.cs | 2 +- tests/optional_scalars/OptionalByte.nim | 2 +- tests/optional_scalars/ScalarStuff.cs | 2 +- tests/optional_scalars/ScalarStuff.java | 2 +- tests/optional_scalars/ScalarStuff.kt | 2 +- tests/optional_scalars/ScalarStuff.nim | 2 +- tests/optional_scalars_generated.h | 4 +- .../monster_test_generated.swift | 34 +-- .../test_import_generated.swift | 2 +- .../test_no_include_generated.swift | 8 +- .../SwiftFlatBuffers/fuzzer_generated.swift | 10 +- .../MutatingBool_generated.swift | 6 +- .../monster_test_generated.swift | 34 +-- .../more_defaults_generated.swift | 2 +- .../nan_inf_test_generated.swift | 2 +- .../optional_scalars_generated.swift | 2 +- .../union_vector_generated.swift | 18 +- .../vector_has_test_generated.swift | 2 +- tests/type_field_collsion/Collision.cs | 2 +- tests/union_vector/Attacker.cs | 2 +- tests/union_vector/Attacker.java | 2 +- tests/union_vector/Attacker.kt | 2 +- tests/union_vector/HandFan.cs | 2 +- tests/union_vector/HandFan.java | 2 +- tests/union_vector/HandFan.kt | 2 +- tests/union_vector/Movie.cs | 2 +- tests/union_vector/Movie.java | 2 +- tests/union_vector/Movie.kt | 2 +- tests/union_vector/union_vector_generated.h | 4 +- 161 files changed, 456 insertions(+), 250 deletions(-) diff --git a/CMake/Version.cmake b/CMake/Version.cmake index e3db9cc608..bdd8bcb6a0 100644 --- a/CMake/Version.cmake +++ b/CMake/Version.cmake @@ -1,6 +1,6 @@ set(VERSION_MAJOR 22) -set(VERSION_MINOR 10) -set(VERSION_PATCH 26) +set(VERSION_MINOR 11) +set(VERSION_PATCH 22) set(VERSION_COMMIT 0) if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/.git") diff --git a/CMakeLists.txt b/CMakeLists.txt index 34b3612e85..c4a0af5801 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -640,6 +640,7 @@ if(FLATBUFFERS_BUILD_TESTS) compile_flatbuffers_schema_to_embedded_binary(tests/monster_test.fbs "--no-includes;--gen-compare") compile_flatbuffers_schema_to_cpp(tests/native_inline_table_test.fbs "--gen-compare") compile_flatbuffers_schema_to_cpp(tests/alignment_test.fbs "--gen-compare") + compile_flatbuffers_schema_to_cpp(tests/key_field/key_field_sample.fbs) if(NOT (MSVC AND (MSVC_VERSION LESS 1900))) compile_flatbuffers_schema_to_cpp(tests/monster_extra.fbs) # Test floating-point NAN/INF. endif() diff --git a/FlatBuffers.podspec b/FlatBuffers.podspec index 2a39138fee..aae634f3a1 100644 --- a/FlatBuffers.podspec +++ b/FlatBuffers.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = 'FlatBuffers' - s.version = '22.10.26' + s.version = '22.11.22' s.summary = 'FlatBuffers: Memory Efficient Serialization Library' s.description = "FlatBuffers is a cross platform serialization library architected for diff --git a/android/app/src/main/java/generated/com/fbs/app/Animal.kt b/android/app/src/main/java/generated/com/fbs/app/Animal.kt index 6ecac60409..5cf975764f 100644 --- a/android/app/src/main/java/generated/com/fbs/app/Animal.kt +++ b/android/app/src/main/java/generated/com/fbs/app/Animal.kt @@ -36,7 +36,7 @@ class Animal : Table() { return if(o != 0) bb.getShort(o + bb_pos).toUShort() else 0u } companion object { - fun validateVersion() = Constants.FLATBUFFERS_22_10_26() + fun validateVersion() = Constants.FLATBUFFERS_22_11_22() fun getRootAsAnimal(_bb: ByteBuffer): Animal = getRootAsAnimal(_bb, Animal()) fun getRootAsAnimal(_bb: ByteBuffer, obj: Animal): Animal { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/dart/pubspec.yaml b/dart/pubspec.yaml index 2bd448d2fc..d2f6412661 100644 --- a/dart/pubspec.yaml +++ b/dart/pubspec.yaml @@ -1,5 +1,5 @@ name: flat_buffers -version: 22.10.26 +version: 22.11.22 description: FlatBuffers reading and writing library for Dart. Based on original work by Konstantin Scheglov and Paul Berry of the Dart SDK team. homepage: https://github.com/google/flatbuffers documentation: https://google.github.io/flatbuffers/index.html diff --git a/grpc/examples/swift/Greeter/Sources/Model/greeter_generated.swift b/grpc/examples/swift/Greeter/Sources/Model/greeter_generated.swift index 6c5640e691..9632b02678 100644 --- a/grpc/examples/swift/Greeter/Sources/Model/greeter_generated.swift +++ b/grpc/examples/swift/Greeter/Sources/Model/greeter_generated.swift @@ -6,7 +6,7 @@ import FlatBuffers public struct models_HelloReply: FlatBufferObject, Verifiable { - static func validateVersion() { FlatBuffersVersion_22_10_26() } + static func validateVersion() { FlatBuffersVersion_22_11_22() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -55,7 +55,7 @@ extension models_HelloReply: Encodable { public struct models_HelloRequest: FlatBufferObject, Verifiable { - static func validateVersion() { FlatBuffersVersion_22_10_26() } + static func validateVersion() { FlatBuffersVersion_22_11_22() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table diff --git a/include/flatbuffers/base.h b/include/flatbuffers/base.h index 1a5ae76772..b7282be2c9 100644 --- a/include/flatbuffers/base.h +++ b/include/flatbuffers/base.h @@ -139,8 +139,8 @@ #endif // !defined(FLATBUFFERS_LITTLEENDIAN) #define FLATBUFFERS_VERSION_MAJOR 22 -#define FLATBUFFERS_VERSION_MINOR 10 -#define FLATBUFFERS_VERSION_REVISION 26 +#define FLATBUFFERS_VERSION_MINOR 11 +#define FLATBUFFERS_VERSION_REVISION 22 #define FLATBUFFERS_STRING_EXPAND(X) #X #define FLATBUFFERS_STRING(X) FLATBUFFERS_STRING_EXPAND(X) namespace flatbuffers { diff --git a/include/flatbuffers/reflection_generated.h b/include/flatbuffers/reflection_generated.h index 555396baed..f72ff36a2b 100644 --- a/include/flatbuffers/reflection_generated.h +++ b/include/flatbuffers/reflection_generated.h @@ -9,8 +9,8 @@ // Ensure the included flatbuffers.h is the same version as when this file was // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 22 && - FLATBUFFERS_VERSION_MINOR == 10 && - FLATBUFFERS_VERSION_REVISION == 26, + FLATBUFFERS_VERSION_MINOR == 11 && + FLATBUFFERS_VERSION_REVISION == 22, "Non-compatible flatbuffers version included"); namespace reflection { diff --git a/java/pom.xml b/java/pom.xml index ca81c823e8..93cfe90fbc 100644 --- a/java/pom.xml +++ b/java/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.flatbuffers flatbuffers-java - 22.10.26 + 22.11.22 bundle FlatBuffers Java API diff --git a/java/src/main/java/com/google/flatbuffers/Constants.java b/java/src/main/java/com/google/flatbuffers/Constants.java index 5bbc343d74..877dfc46db 100644 --- a/java/src/main/java/com/google/flatbuffers/Constants.java +++ b/java/src/main/java/com/google/flatbuffers/Constants.java @@ -46,7 +46,7 @@ public class Constants { Changes to the Java implementation need to be sure to change the version here and in the code generator on every possible incompatible change */ - public static void FLATBUFFERS_22_10_26() {} + public static void FLATBUFFERS_22_11_22() {} } /// @endcond diff --git a/net/FlatBuffers/FlatBufferConstants.cs b/net/FlatBuffers/FlatBufferConstants.cs index 77deb99c61..c3083e034f 100644 --- a/net/FlatBuffers/FlatBufferConstants.cs +++ b/net/FlatBuffers/FlatBufferConstants.cs @@ -32,6 +32,6 @@ the runtime and generated code are modified in sync. Changes to the C# implementation need to be sure to change the version here and in the code generator on every possible incompatible change */ - public static void FLATBUFFERS_22_10_26() {} + public static void FLATBUFFERS_22_11_22() {} } } diff --git a/net/FlatBuffers/Google.FlatBuffers.csproj b/net/FlatBuffers/Google.FlatBuffers.csproj index 3e07aa1670..e52fbe4133 100644 --- a/net/FlatBuffers/Google.FlatBuffers.csproj +++ b/net/FlatBuffers/Google.FlatBuffers.csproj @@ -3,7 +3,7 @@ netstandard2.1;netstandard2.0;net46 A cross-platform memory efficient serialization library - 22.10.26 + 22.11.22 Google LLC https://github.com/google/flatbuffers https://github.com/google/flatbuffers diff --git a/package.json b/package.json index 3f811324e9..22c272ccc9 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "flatbuffers", - "version": "22.10.26", + "version": "22.11.22", "description": "Memory Efficient Serialization Library", "files": [ "js/**/*.js", diff --git a/python/flatbuffers/_version.py b/python/flatbuffers/_version.py index bcc6af3023..43ec896e78 100644 --- a/python/flatbuffers/_version.py +++ b/python/flatbuffers/_version.py @@ -14,4 +14,4 @@ # Placeholder, to be updated during the release process # by the setup.py -__version__ = u"22.10.26" +__version__ = u"22.11.22" diff --git a/python/setup.py b/python/setup.py index c351b01d82..56cbbfa067 100644 --- a/python/setup.py +++ b/python/setup.py @@ -16,7 +16,7 @@ setup( name='flatbuffers', - version='22.10.26', + version='22.11.22', license='Apache 2.0', author='Derek Bailey', author_email='derekbailey@google.com', diff --git a/samples/monster_generated.h b/samples/monster_generated.h index 31db6a1450..e6897fc375 100644 --- a/samples/monster_generated.h +++ b/samples/monster_generated.h @@ -9,8 +9,8 @@ // Ensure the included flatbuffers.h is the same version as when this file was // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 22 && - FLATBUFFERS_VERSION_MINOR == 10 && - FLATBUFFERS_VERSION_REVISION == 26, + FLATBUFFERS_VERSION_MINOR == 11 && + FLATBUFFERS_VERSION_REVISION == 22, "Non-compatible flatbuffers version included"); namespace MyGame { diff --git a/samples/monster_generated.swift b/samples/monster_generated.swift index 72e0e71423..5f00ebddc8 100644 --- a/samples/monster_generated.swift +++ b/samples/monster_generated.swift @@ -31,7 +31,7 @@ public enum MyGame_Sample_Equipment: UInt8, Enum { public struct MyGame_Sample_Vec3: NativeStruct { - static func validateVersion() { FlatBuffersVersion_22_10_26() } + static func validateVersion() { FlatBuffersVersion_22_11_22() } private var _x: Float32 private var _y: Float32 @@ -56,7 +56,7 @@ public struct MyGame_Sample_Vec3: NativeStruct { public struct MyGame_Sample_Vec3_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_22_10_26() } + static func validateVersion() { FlatBuffersVersion_22_11_22() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -72,7 +72,7 @@ public struct MyGame_Sample_Vec3_Mutable: FlatBufferObject { public struct MyGame_Sample_Monster: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_22_10_26() } + static func validateVersion() { FlatBuffersVersion_22_11_22() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -162,7 +162,7 @@ public struct MyGame_Sample_Monster: FlatBufferObject { public struct MyGame_Sample_Weapon: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_22_10_26() } + static func validateVersion() { FlatBuffersVersion_22_11_22() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table diff --git a/scripts/generate_code.py b/scripts/generate_code.py index c981693299..1a8d2f1e8c 100755 --- a/scripts/generate_code.py +++ b/scripts/generate_code.py @@ -193,20 +193,6 @@ def glob(path, pattern): include="include_test", ) -flatc( - NO_INCL_OPTS - + ["--go"], - schema="include_test/foo.fbs", - include="include_test/sub", -) - -flatc( - NO_INCL_OPTS - + ["--go"], - schema="include_test/sub/header.fbs", - include="include_test", -) - flatc( NO_INCL_OPTS + TS_OPTS, diff --git a/src/idl_gen_csharp.cpp b/src/idl_gen_csharp.cpp index 1224fb5a9e..a770b2c395 100644 --- a/src/idl_gen_csharp.cpp +++ b/src/idl_gen_csharp.cpp @@ -655,7 +655,7 @@ class CSharpGenerator : public BaseGenerator { // Force compile time error if not using the same version runtime. code += " public static void ValidateVersion() {"; code += " FlatBufferConstants."; - code += "FLATBUFFERS_22_10_26(); "; + code += "FLATBUFFERS_22_11_22(); "; code += "}\n"; // Generate a special accessor for the table that when used as the root diff --git a/src/idl_gen_java.cpp b/src/idl_gen_java.cpp index a35950f5b0..15269924b3 100644 --- a/src/idl_gen_java.cpp +++ b/src/idl_gen_java.cpp @@ -669,7 +669,7 @@ class JavaGenerator : public BaseGenerator { // Force compile time error if not using the same version runtime. code += " public static void ValidateVersion() {"; code += " Constants."; - code += "FLATBUFFERS_22_10_26(); "; + code += "FLATBUFFERS_22_11_22(); "; code += "}\n"; // Generate a special accessor for the table that when used as the root diff --git a/src/idl_gen_kotlin.cpp b/src/idl_gen_kotlin.cpp index 57ec7b736e..3bc1aceb17 100644 --- a/src/idl_gen_kotlin.cpp +++ b/src/idl_gen_kotlin.cpp @@ -505,7 +505,7 @@ class KotlinGenerator : public BaseGenerator { // runtime. GenerateFunOneLine( writer, "validateVersion", "", "", - [&]() { writer += "Constants.FLATBUFFERS_22_10_26()"; }, + [&]() { writer += "Constants.FLATBUFFERS_22_11_22()"; }, options.gen_jvmstatic); GenerateGetRootAsAccessors(namer_.Type(struct_def), writer, options); diff --git a/src/idl_gen_swift.cpp b/src/idl_gen_swift.cpp index 0424f7db83..f7253acd16 100644 --- a/src/idl_gen_swift.cpp +++ b/src/idl_gen_swift.cpp @@ -1846,7 +1846,7 @@ class SwiftGenerator : public BaseGenerator { } std::string ValidateFunc() { - return "static func validateVersion() { FlatBuffersVersion_22_10_26() }"; + return "static func validateVersion() { FlatBuffersVersion_22_11_22() }"; } std::string GenType(const Type &type, diff --git a/swift/Sources/FlatBuffers/Constants.swift b/swift/Sources/FlatBuffers/Constants.swift index cf5935c752..fa414c966f 100644 --- a/swift/Sources/FlatBuffers/Constants.swift +++ b/swift/Sources/FlatBuffers/Constants.swift @@ -119,4 +119,4 @@ extension UInt64: Scalar, Verifiable { public typealias NumericValue = UInt64 } -public func FlatBuffersVersion_22_10_26() {} +public func FlatBuffersVersion_22_11_22() {} diff --git a/tests/Abc.nim b/tests/Abc.nim index be4e6675f1..d9696dc501 100644 --- a/tests/Abc.nim +++ b/tests/Abc.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.10.26 + flatc version: 22.11.22 Declared by : ]# diff --git a/tests/DictionaryLookup/LongFloatEntry.java b/tests/DictionaryLookup/LongFloatEntry.java index 58d676db4b..8d12b596bb 100644 --- a/tests/DictionaryLookup/LongFloatEntry.java +++ b/tests/DictionaryLookup/LongFloatEntry.java @@ -9,7 +9,7 @@ @SuppressWarnings("unused") public final class LongFloatEntry extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_22_10_26(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_22_11_22(); } public static LongFloatEntry getRootAsLongFloatEntry(ByteBuffer _bb) { return getRootAsLongFloatEntry(_bb, new LongFloatEntry()); } public static LongFloatEntry getRootAsLongFloatEntry(ByteBuffer _bb, LongFloatEntry obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/tests/DictionaryLookup/LongFloatEntry.kt b/tests/DictionaryLookup/LongFloatEntry.kt index dfb2ecbae6..38e4618be2 100644 --- a/tests/DictionaryLookup/LongFloatEntry.kt +++ b/tests/DictionaryLookup/LongFloatEntry.kt @@ -32,7 +32,7 @@ class LongFloatEntry : Table() { return (val_1 - val_2).sign } companion object { - fun validateVersion() = Constants.FLATBUFFERS_22_10_26() + fun validateVersion() = Constants.FLATBUFFERS_22_11_22() fun getRootAsLongFloatEntry(_bb: ByteBuffer): LongFloatEntry = getRootAsLongFloatEntry(_bb, LongFloatEntry()) fun getRootAsLongFloatEntry(_bb: ByteBuffer, obj: LongFloatEntry): LongFloatEntry { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/DictionaryLookup/LongFloatMap.java b/tests/DictionaryLookup/LongFloatMap.java index 761439d1db..78cc904cf1 100644 --- a/tests/DictionaryLookup/LongFloatMap.java +++ b/tests/DictionaryLookup/LongFloatMap.java @@ -9,7 +9,7 @@ @SuppressWarnings("unused") public final class LongFloatMap extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_22_10_26(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_22_11_22(); } public static LongFloatMap getRootAsLongFloatMap(ByteBuffer _bb) { return getRootAsLongFloatMap(_bb, new LongFloatMap()); } public static LongFloatMap getRootAsLongFloatMap(ByteBuffer _bb, LongFloatMap obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/tests/DictionaryLookup/LongFloatMap.kt b/tests/DictionaryLookup/LongFloatMap.kt index 9458608e6c..b1a50ff77c 100644 --- a/tests/DictionaryLookup/LongFloatMap.kt +++ b/tests/DictionaryLookup/LongFloatMap.kt @@ -46,7 +46,7 @@ class LongFloatMap : Table() { } } companion object { - fun validateVersion() = Constants.FLATBUFFERS_22_10_26() + fun validateVersion() = Constants.FLATBUFFERS_22_11_22() fun getRootAsLongFloatMap(_bb: ByteBuffer): LongFloatMap = getRootAsLongFloatMap(_bb, LongFloatMap()) fun getRootAsLongFloatMap(_bb: ByteBuffer, obj: LongFloatMap): LongFloatMap { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/KeywordTest/KeywordsInTable.cs b/tests/KeywordTest/KeywordsInTable.cs index 271b21b3f8..de20c81547 100644 --- a/tests/KeywordTest/KeywordsInTable.cs +++ b/tests/KeywordTest/KeywordsInTable.cs @@ -13,7 +13,7 @@ public struct KeywordsInTable : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_10_26(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_11_22(); } public static KeywordsInTable GetRootAsKeywordsInTable(ByteBuffer _bb) { return GetRootAsKeywordsInTable(_bb, new KeywordsInTable()); } public static KeywordsInTable GetRootAsKeywordsInTable(ByteBuffer _bb, KeywordsInTable obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/MoreDefaults.nim b/tests/MoreDefaults.nim index 0376f5541d..756db2a0bd 100644 --- a/tests/MoreDefaults.nim +++ b/tests/MoreDefaults.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.10.26 + flatc version: 22.11.22 Declared by : ]# diff --git a/tests/MyGame/Example/Ability.lua b/tests/MyGame/Example/Ability.lua index 223c6f0312..01652d2b19 100644 --- a/tests/MyGame/Example/Ability.lua +++ b/tests/MyGame/Example/Ability.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.10.26 + flatc version: 22.11.22 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/Ability.nim b/tests/MyGame/Example/Ability.nim index 987a0bc5af..2488e28855 100644 --- a/tests/MyGame/Example/Ability.nim +++ b/tests/MyGame/Example/Ability.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.10.26 + flatc version: 22.11.22 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example/Any.lua b/tests/MyGame/Example/Any.lua index 8aa73eed89..994f5f00d8 100644 --- a/tests/MyGame/Example/Any.lua +++ b/tests/MyGame/Example/Any.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.10.26 + flatc version: 22.11.22 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/Any.nim b/tests/MyGame/Example/Any.nim index 977d419967..33eb255164 100644 --- a/tests/MyGame/Example/Any.nim +++ b/tests/MyGame/Example/Any.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.10.26 + flatc version: 22.11.22 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example/AnyAmbiguousAliases.lua b/tests/MyGame/Example/AnyAmbiguousAliases.lua index 226055c553..1cb2c6d637 100644 --- a/tests/MyGame/Example/AnyAmbiguousAliases.lua +++ b/tests/MyGame/Example/AnyAmbiguousAliases.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.10.26 + flatc version: 22.11.22 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/AnyAmbiguousAliases.nim b/tests/MyGame/Example/AnyAmbiguousAliases.nim index e8fd6c99a2..31830714ed 100644 --- a/tests/MyGame/Example/AnyAmbiguousAliases.nim +++ b/tests/MyGame/Example/AnyAmbiguousAliases.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.10.26 + flatc version: 22.11.22 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example/AnyUniqueAliases.lua b/tests/MyGame/Example/AnyUniqueAliases.lua index 159028b58a..cd6b443445 100644 --- a/tests/MyGame/Example/AnyUniqueAliases.lua +++ b/tests/MyGame/Example/AnyUniqueAliases.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.10.26 + flatc version: 22.11.22 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/AnyUniqueAliases.nim b/tests/MyGame/Example/AnyUniqueAliases.nim index b31caf12d2..59c5c3db15 100644 --- a/tests/MyGame/Example/AnyUniqueAliases.nim +++ b/tests/MyGame/Example/AnyUniqueAliases.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.10.26 + flatc version: 22.11.22 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example/ArrayTable.cs b/tests/MyGame/Example/ArrayTable.cs index 1af6c282d5..aaad26c144 100644 --- a/tests/MyGame/Example/ArrayTable.cs +++ b/tests/MyGame/Example/ArrayTable.cs @@ -13,7 +13,7 @@ public struct ArrayTable : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_10_26(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_11_22(); } public static ArrayTable GetRootAsArrayTable(ByteBuffer _bb) { return GetRootAsArrayTable(_bb, new ArrayTable()); } public static ArrayTable GetRootAsArrayTable(ByteBuffer _bb, ArrayTable obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public static bool ArrayTableBufferHasIdentifier(ByteBuffer _bb) { return Table.__has_identifier(_bb, "ARRT"); } diff --git a/tests/MyGame/Example/ArrayTable.java b/tests/MyGame/Example/ArrayTable.java index 1291eaf8dc..6ea8429ab0 100644 --- a/tests/MyGame/Example/ArrayTable.java +++ b/tests/MyGame/Example/ArrayTable.java @@ -9,7 +9,7 @@ @SuppressWarnings("unused") public final class ArrayTable extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_22_10_26(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_22_11_22(); } public static ArrayTable getRootAsArrayTable(ByteBuffer _bb) { return getRootAsArrayTable(_bb, new ArrayTable()); } public static ArrayTable getRootAsArrayTable(ByteBuffer _bb, ArrayTable obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public static boolean ArrayTableBufferHasIdentifier(ByteBuffer _bb) { return __has_identifier(_bb, "ARRT"); } diff --git a/tests/MyGame/Example/Color.lua b/tests/MyGame/Example/Color.lua index 35a58dc249..349405158c 100644 --- a/tests/MyGame/Example/Color.lua +++ b/tests/MyGame/Example/Color.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.10.26 + flatc version: 22.11.22 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/Color.nim b/tests/MyGame/Example/Color.nim index 3c94beb47e..403d092afb 100644 --- a/tests/MyGame/Example/Color.nim +++ b/tests/MyGame/Example/Color.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.10.26 + flatc version: 22.11.22 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example/LongEnum.lua b/tests/MyGame/Example/LongEnum.lua index b7d3367caa..8537ba386c 100644 --- a/tests/MyGame/Example/LongEnum.lua +++ b/tests/MyGame/Example/LongEnum.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.10.26 + flatc version: 22.11.22 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/LongEnum.nim b/tests/MyGame/Example/LongEnum.nim index 2ff5b0829e..81bf740dbc 100644 --- a/tests/MyGame/Example/LongEnum.nim +++ b/tests/MyGame/Example/LongEnum.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.10.26 + flatc version: 22.11.22 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example/Monster.cs b/tests/MyGame/Example/Monster.cs index c0f310c0e8..b09fca78fd 100644 --- a/tests/MyGame/Example/Monster.cs +++ b/tests/MyGame/Example/Monster.cs @@ -14,7 +14,7 @@ public struct Monster : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_10_26(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_11_22(); } public static Monster GetRootAsMonster(ByteBuffer _bb) { return GetRootAsMonster(_bb, new Monster()); } public static Monster GetRootAsMonster(ByteBuffer _bb, Monster obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public static bool MonsterBufferHasIdentifier(ByteBuffer _bb) { return Table.__has_identifier(_bb, "MONS"); } diff --git a/tests/MyGame/Example/Monster.java b/tests/MyGame/Example/Monster.java index ad958aae31..3feaabaddd 100644 --- a/tests/MyGame/Example/Monster.java +++ b/tests/MyGame/Example/Monster.java @@ -12,7 +12,7 @@ */ @SuppressWarnings("unused") public final class Monster extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_22_10_26(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_22_11_22(); } public static Monster getRootAsMonster(ByteBuffer _bb) { return getRootAsMonster(_bb, new Monster()); } public static Monster getRootAsMonster(ByteBuffer _bb, Monster obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public static boolean MonsterBufferHasIdentifier(ByteBuffer _bb) { return __has_identifier(_bb, "MONS"); } diff --git a/tests/MyGame/Example/Monster.kt b/tests/MyGame/Example/Monster.kt index 12ee70ac4a..c597b049b2 100644 --- a/tests/MyGame/Example/Monster.kt +++ b/tests/MyGame/Example/Monster.kt @@ -986,7 +986,7 @@ class Monster : Table() { return compareStrings(__offset(10, o1, _bb), __offset(10, o2, _bb), _bb) } companion object { - fun validateVersion() = Constants.FLATBUFFERS_22_10_26() + fun validateVersion() = Constants.FLATBUFFERS_22_11_22() fun getRootAsMonster(_bb: ByteBuffer): Monster = getRootAsMonster(_bb, Monster()) fun getRootAsMonster(_bb: ByteBuffer, obj: Monster): Monster { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/MyGame/Example/Monster.lua b/tests/MyGame/Example/Monster.lua index 34073627c0..7f2cd9a8a9 100644 --- a/tests/MyGame/Example/Monster.lua +++ b/tests/MyGame/Example/Monster.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.10.26 + flatc version: 22.11.22 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/Monster.nim b/tests/MyGame/Example/Monster.nim index 283e01a656..dad9f5f4c0 100644 --- a/tests/MyGame/Example/Monster.nim +++ b/tests/MyGame/Example/Monster.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.10.26 + flatc version: 22.11.22 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example/Race.lua b/tests/MyGame/Example/Race.lua index b4f27d68e2..0410c316cf 100644 --- a/tests/MyGame/Example/Race.lua +++ b/tests/MyGame/Example/Race.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.10.26 + flatc version: 22.11.22 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/Race.nim b/tests/MyGame/Example/Race.nim index de77e1cbae..8d85e74be3 100644 --- a/tests/MyGame/Example/Race.nim +++ b/tests/MyGame/Example/Race.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.10.26 + flatc version: 22.11.22 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example/Referrable.cs b/tests/MyGame/Example/Referrable.cs index 3d6f8a6c58..72949de85a 100644 --- a/tests/MyGame/Example/Referrable.cs +++ b/tests/MyGame/Example/Referrable.cs @@ -13,7 +13,7 @@ public struct Referrable : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_10_26(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_11_22(); } public static Referrable GetRootAsReferrable(ByteBuffer _bb) { return GetRootAsReferrable(_bb, new Referrable()); } public static Referrable GetRootAsReferrable(ByteBuffer _bb, Referrable obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/MyGame/Example/Referrable.java b/tests/MyGame/Example/Referrable.java index 552aa9699e..3490d3f393 100644 --- a/tests/MyGame/Example/Referrable.java +++ b/tests/MyGame/Example/Referrable.java @@ -9,7 +9,7 @@ @SuppressWarnings("unused") public final class Referrable extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_22_10_26(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_22_11_22(); } public static Referrable getRootAsReferrable(ByteBuffer _bb) { return getRootAsReferrable(_bb, new Referrable()); } public static Referrable getRootAsReferrable(ByteBuffer _bb, Referrable obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/tests/MyGame/Example/Referrable.kt b/tests/MyGame/Example/Referrable.kt index 92078ac015..a3f15c2732 100644 --- a/tests/MyGame/Example/Referrable.kt +++ b/tests/MyGame/Example/Referrable.kt @@ -36,7 +36,7 @@ class Referrable : Table() { return (val_1 - val_2).sign } companion object { - fun validateVersion() = Constants.FLATBUFFERS_22_10_26() + fun validateVersion() = Constants.FLATBUFFERS_22_11_22() fun getRootAsReferrable(_bb: ByteBuffer): Referrable = getRootAsReferrable(_bb, Referrable()) fun getRootAsReferrable(_bb: ByteBuffer, obj: Referrable): Referrable { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/MyGame/Example/Referrable.lua b/tests/MyGame/Example/Referrable.lua index f3f8396bb2..97d5570af0 100644 --- a/tests/MyGame/Example/Referrable.lua +++ b/tests/MyGame/Example/Referrable.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.10.26 + flatc version: 22.11.22 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/Referrable.nim b/tests/MyGame/Example/Referrable.nim index 0abc4946a2..3d98060ad0 100644 --- a/tests/MyGame/Example/Referrable.nim +++ b/tests/MyGame/Example/Referrable.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.10.26 + flatc version: 22.11.22 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example/Stat.cs b/tests/MyGame/Example/Stat.cs index 9ad234fc6d..7f1e1a5e77 100644 --- a/tests/MyGame/Example/Stat.cs +++ b/tests/MyGame/Example/Stat.cs @@ -13,7 +13,7 @@ public struct Stat : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_10_26(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_11_22(); } public static Stat GetRootAsStat(ByteBuffer _bb) { return GetRootAsStat(_bb, new Stat()); } public static Stat GetRootAsStat(ByteBuffer _bb, Stat obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/MyGame/Example/Stat.java b/tests/MyGame/Example/Stat.java index b4cd21731f..c641115929 100644 --- a/tests/MyGame/Example/Stat.java +++ b/tests/MyGame/Example/Stat.java @@ -9,7 +9,7 @@ @SuppressWarnings("unused") public final class Stat extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_22_10_26(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_22_11_22(); } public static Stat getRootAsStat(ByteBuffer _bb) { return getRootAsStat(_bb, new Stat()); } public static Stat getRootAsStat(ByteBuffer _bb, Stat obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/tests/MyGame/Example/Stat.kt b/tests/MyGame/Example/Stat.kt index fe0a1d7705..244dcdec9e 100644 --- a/tests/MyGame/Example/Stat.kt +++ b/tests/MyGame/Example/Stat.kt @@ -57,7 +57,7 @@ class Stat : Table() { return (val_1 - val_2).sign } companion object { - fun validateVersion() = Constants.FLATBUFFERS_22_10_26() + fun validateVersion() = Constants.FLATBUFFERS_22_11_22() fun getRootAsStat(_bb: ByteBuffer): Stat = getRootAsStat(_bb, Stat()) fun getRootAsStat(_bb: ByteBuffer, obj: Stat): Stat { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/MyGame/Example/Stat.lua b/tests/MyGame/Example/Stat.lua index a9848aa41c..f967054e0f 100644 --- a/tests/MyGame/Example/Stat.lua +++ b/tests/MyGame/Example/Stat.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.10.26 + flatc version: 22.11.22 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/Stat.nim b/tests/MyGame/Example/Stat.nim index 09cda131cf..8b565e4b4c 100644 --- a/tests/MyGame/Example/Stat.nim +++ b/tests/MyGame/Example/Stat.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.10.26 + flatc version: 22.11.22 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example/StructOfStructs.lua b/tests/MyGame/Example/StructOfStructs.lua index 1f3b1db478..b1db3d75d1 100644 --- a/tests/MyGame/Example/StructOfStructs.lua +++ b/tests/MyGame/Example/StructOfStructs.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.10.26 + flatc version: 22.11.22 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/StructOfStructs.nim b/tests/MyGame/Example/StructOfStructs.nim index 6cd979eba9..e452dbec3e 100644 --- a/tests/MyGame/Example/StructOfStructs.nim +++ b/tests/MyGame/Example/StructOfStructs.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.10.26 + flatc version: 22.11.22 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example/StructOfStructsOfStructs.lua b/tests/MyGame/Example/StructOfStructsOfStructs.lua index 87a23a5468..f63825fe61 100644 --- a/tests/MyGame/Example/StructOfStructsOfStructs.lua +++ b/tests/MyGame/Example/StructOfStructsOfStructs.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.10.26 + flatc version: 22.11.22 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/StructOfStructsOfStructs.nim b/tests/MyGame/Example/StructOfStructsOfStructs.nim index de039e97f8..2a03f2901d 100644 --- a/tests/MyGame/Example/StructOfStructsOfStructs.nim +++ b/tests/MyGame/Example/StructOfStructsOfStructs.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.10.26 + flatc version: 22.11.22 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example/Test.lua b/tests/MyGame/Example/Test.lua index b912df0c9f..d4b5e995a5 100644 --- a/tests/MyGame/Example/Test.lua +++ b/tests/MyGame/Example/Test.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.10.26 + flatc version: 22.11.22 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/Test.nim b/tests/MyGame/Example/Test.nim index c7ea8cc8f4..7440b220db 100644 --- a/tests/MyGame/Example/Test.nim +++ b/tests/MyGame/Example/Test.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.10.26 + flatc version: 22.11.22 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example/TestSimpleTableWithEnum.cs b/tests/MyGame/Example/TestSimpleTableWithEnum.cs index cf8c5556c1..b803a02dbe 100644 --- a/tests/MyGame/Example/TestSimpleTableWithEnum.cs +++ b/tests/MyGame/Example/TestSimpleTableWithEnum.cs @@ -13,7 +13,7 @@ internal partial struct TestSimpleTableWithEnum : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_10_26(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_11_22(); } public static TestSimpleTableWithEnum GetRootAsTestSimpleTableWithEnum(ByteBuffer _bb) { return GetRootAsTestSimpleTableWithEnum(_bb, new TestSimpleTableWithEnum()); } public static TestSimpleTableWithEnum GetRootAsTestSimpleTableWithEnum(ByteBuffer _bb, TestSimpleTableWithEnum obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/MyGame/Example/TestSimpleTableWithEnum.java b/tests/MyGame/Example/TestSimpleTableWithEnum.java index 067d37a6a1..249192c4d9 100644 --- a/tests/MyGame/Example/TestSimpleTableWithEnum.java +++ b/tests/MyGame/Example/TestSimpleTableWithEnum.java @@ -9,7 +9,7 @@ @SuppressWarnings("unused") final class TestSimpleTableWithEnum extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_22_10_26(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_22_11_22(); } public static TestSimpleTableWithEnum getRootAsTestSimpleTableWithEnum(ByteBuffer _bb) { return getRootAsTestSimpleTableWithEnum(_bb, new TestSimpleTableWithEnum()); } public static TestSimpleTableWithEnum getRootAsTestSimpleTableWithEnum(ByteBuffer _bb, TestSimpleTableWithEnum obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/tests/MyGame/Example/TestSimpleTableWithEnum.kt b/tests/MyGame/Example/TestSimpleTableWithEnum.kt index 8268c8cb74..b0305a74b4 100644 --- a/tests/MyGame/Example/TestSimpleTableWithEnum.kt +++ b/tests/MyGame/Example/TestSimpleTableWithEnum.kt @@ -31,7 +31,7 @@ class TestSimpleTableWithEnum : Table() { } } companion object { - fun validateVersion() = Constants.FLATBUFFERS_22_10_26() + fun validateVersion() = Constants.FLATBUFFERS_22_11_22() fun getRootAsTestSimpleTableWithEnum(_bb: ByteBuffer): TestSimpleTableWithEnum = getRootAsTestSimpleTableWithEnum(_bb, TestSimpleTableWithEnum()) fun getRootAsTestSimpleTableWithEnum(_bb: ByteBuffer, obj: TestSimpleTableWithEnum): TestSimpleTableWithEnum { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/MyGame/Example/TestSimpleTableWithEnum.lua b/tests/MyGame/Example/TestSimpleTableWithEnum.lua index ee809608e6..c2e20d2372 100644 --- a/tests/MyGame/Example/TestSimpleTableWithEnum.lua +++ b/tests/MyGame/Example/TestSimpleTableWithEnum.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.10.26 + flatc version: 22.11.22 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/TestSimpleTableWithEnum.nim b/tests/MyGame/Example/TestSimpleTableWithEnum.nim index 873527bae6..dfc30bb287 100644 --- a/tests/MyGame/Example/TestSimpleTableWithEnum.nim +++ b/tests/MyGame/Example/TestSimpleTableWithEnum.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.10.26 + flatc version: 22.11.22 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example/TypeAliases.cs b/tests/MyGame/Example/TypeAliases.cs index 00b8c709bb..f21f896b14 100644 --- a/tests/MyGame/Example/TypeAliases.cs +++ b/tests/MyGame/Example/TypeAliases.cs @@ -13,7 +13,7 @@ public struct TypeAliases : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_10_26(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_11_22(); } public static TypeAliases GetRootAsTypeAliases(ByteBuffer _bb) { return GetRootAsTypeAliases(_bb, new TypeAliases()); } public static TypeAliases GetRootAsTypeAliases(ByteBuffer _bb, TypeAliases obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/MyGame/Example/TypeAliases.java b/tests/MyGame/Example/TypeAliases.java index c8e183a6d7..cd6711b1c0 100644 --- a/tests/MyGame/Example/TypeAliases.java +++ b/tests/MyGame/Example/TypeAliases.java @@ -9,7 +9,7 @@ @SuppressWarnings("unused") public final class TypeAliases extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_22_10_26(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_22_11_22(); } public static TypeAliases getRootAsTypeAliases(ByteBuffer _bb) { return getRootAsTypeAliases(_bb, new TypeAliases()); } public static TypeAliases getRootAsTypeAliases(ByteBuffer _bb, TypeAliases obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/tests/MyGame/Example/TypeAliases.kt b/tests/MyGame/Example/TypeAliases.kt index c5ca774e2c..5af788d3dd 100644 --- a/tests/MyGame/Example/TypeAliases.kt +++ b/tests/MyGame/Example/TypeAliases.kt @@ -203,7 +203,7 @@ class TypeAliases : Table() { } } companion object { - fun validateVersion() = Constants.FLATBUFFERS_22_10_26() + fun validateVersion() = Constants.FLATBUFFERS_22_11_22() fun getRootAsTypeAliases(_bb: ByteBuffer): TypeAliases = getRootAsTypeAliases(_bb, TypeAliases()) fun getRootAsTypeAliases(_bb: ByteBuffer, obj: TypeAliases): TypeAliases { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/MyGame/Example/TypeAliases.lua b/tests/MyGame/Example/TypeAliases.lua index e6d926c4c4..eb956d838d 100644 --- a/tests/MyGame/Example/TypeAliases.lua +++ b/tests/MyGame/Example/TypeAliases.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.10.26 + flatc version: 22.11.22 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/TypeAliases.nim b/tests/MyGame/Example/TypeAliases.nim index d675949aaa..21ca212996 100644 --- a/tests/MyGame/Example/TypeAliases.nim +++ b/tests/MyGame/Example/TypeAliases.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.10.26 + flatc version: 22.11.22 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example/Vec3.lua b/tests/MyGame/Example/Vec3.lua index 89b2bfbee6..1c964bc123 100644 --- a/tests/MyGame/Example/Vec3.lua +++ b/tests/MyGame/Example/Vec3.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.10.26 + flatc version: 22.11.22 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/Vec3.nim b/tests/MyGame/Example/Vec3.nim index 9131fe8339..8fa4ba0052 100644 --- a/tests/MyGame/Example/Vec3.nim +++ b/tests/MyGame/Example/Vec3.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.10.26 + flatc version: 22.11.22 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example2/Monster.cs b/tests/MyGame/Example2/Monster.cs index 575d77e666..425a333580 100644 --- a/tests/MyGame/Example2/Monster.cs +++ b/tests/MyGame/Example2/Monster.cs @@ -13,7 +13,7 @@ public struct Monster : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_10_26(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_11_22(); } public static Monster GetRootAsMonster(ByteBuffer _bb) { return GetRootAsMonster(_bb, new Monster()); } public static Monster GetRootAsMonster(ByteBuffer _bb, Monster obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/MyGame/Example2/Monster.java b/tests/MyGame/Example2/Monster.java index 4697f4dd06..1c3fec852b 100644 --- a/tests/MyGame/Example2/Monster.java +++ b/tests/MyGame/Example2/Monster.java @@ -9,7 +9,7 @@ @SuppressWarnings("unused") public final class Monster extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_22_10_26(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_22_11_22(); } public static Monster getRootAsMonster(ByteBuffer _bb) { return getRootAsMonster(_bb, new Monster()); } public static Monster getRootAsMonster(ByteBuffer _bb, Monster obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/tests/MyGame/Example2/Monster.kt b/tests/MyGame/Example2/Monster.kt index 01f60a63dc..3b2ab6293f 100644 --- a/tests/MyGame/Example2/Monster.kt +++ b/tests/MyGame/Example2/Monster.kt @@ -17,7 +17,7 @@ class Monster : Table() { return this } companion object { - fun validateVersion() = Constants.FLATBUFFERS_22_10_26() + fun validateVersion() = Constants.FLATBUFFERS_22_11_22() fun getRootAsMonster(_bb: ByteBuffer): Monster = getRootAsMonster(_bb, Monster()) fun getRootAsMonster(_bb: ByteBuffer, obj: Monster): Monster { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/MyGame/Example2/Monster.lua b/tests/MyGame/Example2/Monster.lua index db43d8e518..991949bb79 100644 --- a/tests/MyGame/Example2/Monster.lua +++ b/tests/MyGame/Example2/Monster.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.10.26 + flatc version: 22.11.22 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example2/Monster.nim b/tests/MyGame/Example2/Monster.nim index 1a1a7e3193..b72e2b44f6 100644 --- a/tests/MyGame/Example2/Monster.nim +++ b/tests/MyGame/Example2/Monster.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.10.26 + flatc version: 22.11.22 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/InParentNamespace.cs b/tests/MyGame/InParentNamespace.cs index 43fb0748a9..0c36adc905 100644 --- a/tests/MyGame/InParentNamespace.cs +++ b/tests/MyGame/InParentNamespace.cs @@ -13,7 +13,7 @@ public struct InParentNamespace : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_10_26(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_11_22(); } public static InParentNamespace GetRootAsInParentNamespace(ByteBuffer _bb) { return GetRootAsInParentNamespace(_bb, new InParentNamespace()); } public static InParentNamespace GetRootAsInParentNamespace(ByteBuffer _bb, InParentNamespace obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/MyGame/InParentNamespace.java b/tests/MyGame/InParentNamespace.java index 26e5aa11b4..5c715e18bf 100644 --- a/tests/MyGame/InParentNamespace.java +++ b/tests/MyGame/InParentNamespace.java @@ -9,7 +9,7 @@ @SuppressWarnings("unused") public final class InParentNamespace extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_22_10_26(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_22_11_22(); } public static InParentNamespace getRootAsInParentNamespace(ByteBuffer _bb) { return getRootAsInParentNamespace(_bb, new InParentNamespace()); } public static InParentNamespace getRootAsInParentNamespace(ByteBuffer _bb, InParentNamespace obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/tests/MyGame/InParentNamespace.kt b/tests/MyGame/InParentNamespace.kt index 5be2ca44d9..f20f08fdaf 100644 --- a/tests/MyGame/InParentNamespace.kt +++ b/tests/MyGame/InParentNamespace.kt @@ -17,7 +17,7 @@ class InParentNamespace : Table() { return this } companion object { - fun validateVersion() = Constants.FLATBUFFERS_22_10_26() + fun validateVersion() = Constants.FLATBUFFERS_22_11_22() fun getRootAsInParentNamespace(_bb: ByteBuffer): InParentNamespace = getRootAsInParentNamespace(_bb, InParentNamespace()) fun getRootAsInParentNamespace(_bb: ByteBuffer, obj: InParentNamespace): InParentNamespace { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/MyGame/InParentNamespace.lua b/tests/MyGame/InParentNamespace.lua index 9d7f498f21..56ac74e2e1 100644 --- a/tests/MyGame/InParentNamespace.lua +++ b/tests/MyGame/InParentNamespace.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.10.26 + flatc version: 22.11.22 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/InParentNamespace.nim b/tests/MyGame/InParentNamespace.nim index cd1397fc0a..29e72b317e 100644 --- a/tests/MyGame/InParentNamespace.nim +++ b/tests/MyGame/InParentNamespace.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.10.26 + flatc version: 22.11.22 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/MonsterExtra.cs b/tests/MyGame/MonsterExtra.cs index c964dd7e3e..1321ddb2b0 100644 --- a/tests/MyGame/MonsterExtra.cs +++ b/tests/MyGame/MonsterExtra.cs @@ -13,7 +13,7 @@ public struct MonsterExtra : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_10_26(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_11_22(); } public static MonsterExtra GetRootAsMonsterExtra(ByteBuffer _bb) { return GetRootAsMonsterExtra(_bb, new MonsterExtra()); } public static MonsterExtra GetRootAsMonsterExtra(ByteBuffer _bb, MonsterExtra obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public static bool MonsterExtraBufferHasIdentifier(ByteBuffer _bb) { return Table.__has_identifier(_bb, "MONE"); } diff --git a/tests/MyGame/MonsterExtra.java b/tests/MyGame/MonsterExtra.java index 3e5fbcde32..9af57b524a 100644 --- a/tests/MyGame/MonsterExtra.java +++ b/tests/MyGame/MonsterExtra.java @@ -9,7 +9,7 @@ @SuppressWarnings("unused") public final class MonsterExtra extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_22_10_26(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_22_11_22(); } public static MonsterExtra getRootAsMonsterExtra(ByteBuffer _bb) { return getRootAsMonsterExtra(_bb, new MonsterExtra()); } public static MonsterExtra getRootAsMonsterExtra(ByteBuffer _bb, MonsterExtra obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public static boolean MonsterExtraBufferHasIdentifier(ByteBuffer _bb) { return __has_identifier(_bb, "MONE"); } diff --git a/tests/MyGame/MonsterExtra.kt b/tests/MyGame/MonsterExtra.kt index d999e46766..80ed12daf6 100644 --- a/tests/MyGame/MonsterExtra.kt +++ b/tests/MyGame/MonsterExtra.kt @@ -175,7 +175,7 @@ class MonsterExtra : Table() { } } companion object { - fun validateVersion() = Constants.FLATBUFFERS_22_10_26() + fun validateVersion() = Constants.FLATBUFFERS_22_11_22() fun getRootAsMonsterExtra(_bb: ByteBuffer): MonsterExtra = getRootAsMonsterExtra(_bb, MonsterExtra()) fun getRootAsMonsterExtra(_bb: ByteBuffer, obj: MonsterExtra): MonsterExtra { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/MyGame/OtherNameSpace/FromInclude.lua b/tests/MyGame/OtherNameSpace/FromInclude.lua index a98cec98fe..5dd525a9a9 100644 --- a/tests/MyGame/OtherNameSpace/FromInclude.lua +++ b/tests/MyGame/OtherNameSpace/FromInclude.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.10.26 + flatc version: 22.11.22 Declared by : //include_test/sub/include_test2.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/OtherNameSpace/FromInclude.nim b/tests/MyGame/OtherNameSpace/FromInclude.nim index 36efea6156..dd6e0a68dc 100644 --- a/tests/MyGame/OtherNameSpace/FromInclude.nim +++ b/tests/MyGame/OtherNameSpace/FromInclude.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.10.26 + flatc version: 22.11.22 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/OtherNameSpace/TableB.lua b/tests/MyGame/OtherNameSpace/TableB.lua index 6e24cdf839..80e5424d47 100644 --- a/tests/MyGame/OtherNameSpace/TableB.lua +++ b/tests/MyGame/OtherNameSpace/TableB.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.10.26 + flatc version: 22.11.22 Declared by : //include_test/sub/include_test2.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/OtherNameSpace/TableB.nim b/tests/MyGame/OtherNameSpace/TableB.nim index 8026fb0f8b..5cc5f3faab 100644 --- a/tests/MyGame/OtherNameSpace/TableB.nim +++ b/tests/MyGame/OtherNameSpace/TableB.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.10.26 + flatc version: 22.11.22 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/OtherNameSpace/Unused.lua b/tests/MyGame/OtherNameSpace/Unused.lua index 9745a24b44..45baad0b8c 100644 --- a/tests/MyGame/OtherNameSpace/Unused.lua +++ b/tests/MyGame/OtherNameSpace/Unused.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.10.26 + flatc version: 22.11.22 Declared by : //include_test/sub/include_test2.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/OtherNameSpace/Unused.nim b/tests/MyGame/OtherNameSpace/Unused.nim index fd3b6242fd..86aba51262 100644 --- a/tests/MyGame/OtherNameSpace/Unused.nim +++ b/tests/MyGame/OtherNameSpace/Unused.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.10.26 + flatc version: 22.11.22 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/Property.nim b/tests/Property.nim index ae47ccd91c..ad1671ea26 100644 --- a/tests/Property.nim +++ b/tests/Property.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.10.26 + flatc version: 22.11.22 Declared by : ]# diff --git a/tests/TableA.lua b/tests/TableA.lua index 472f7ea1d3..20abe4f40b 100644 --- a/tests/TableA.lua +++ b/tests/TableA.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.10.26 + flatc version: 22.11.22 Declared by : //include_test/include_test1.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/TableA.nim b/tests/TableA.nim index 2c4e283b36..b8d8711cdd 100644 --- a/tests/TableA.nim +++ b/tests/TableA.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.10.26 + flatc version: 22.11.22 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/TestMutatingBool.nim b/tests/TestMutatingBool.nim index 0b0ac158e7..efe96ef361 100644 --- a/tests/TestMutatingBool.nim +++ b/tests/TestMutatingBool.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.10.26 + flatc version: 22.11.22 Declared by : ]# diff --git a/tests/alignment_test_generated.h b/tests/alignment_test_generated.h index 44f615795d..15b164cea2 100644 --- a/tests/alignment_test_generated.h +++ b/tests/alignment_test_generated.h @@ -9,8 +9,8 @@ // Ensure the included flatbuffers.h is the same version as when this file was // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 22 && - FLATBUFFERS_VERSION_MINOR == 10 && - FLATBUFFERS_VERSION_REVISION == 26, + FLATBUFFERS_VERSION_MINOR == 11 && + FLATBUFFERS_VERSION_REVISION == 22, "Non-compatible flatbuffers version included"); struct BadAlignmentSmall; diff --git a/tests/arrays_test_generated.h b/tests/arrays_test_generated.h index 5ba5a9879a..2d96e8b108 100644 --- a/tests/arrays_test_generated.h +++ b/tests/arrays_test_generated.h @@ -9,8 +9,8 @@ // Ensure the included flatbuffers.h is the same version as when this file was // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 22 && - FLATBUFFERS_VERSION_MINOR == 10 && - FLATBUFFERS_VERSION_REVISION == 26, + FLATBUFFERS_VERSION_MINOR == 11 && + FLATBUFFERS_VERSION_REVISION == 22, "Non-compatible flatbuffers version included"); namespace MyGame { diff --git a/tests/cpp17/generated_cpp17/monster_test_generated.h b/tests/cpp17/generated_cpp17/monster_test_generated.h index a8bd4c4084..07f337b778 100644 --- a/tests/cpp17/generated_cpp17/monster_test_generated.h +++ b/tests/cpp17/generated_cpp17/monster_test_generated.h @@ -11,8 +11,8 @@ // Ensure the included flatbuffers.h is the same version as when this file was // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 22 && - FLATBUFFERS_VERSION_MINOR == 10 && - FLATBUFFERS_VERSION_REVISION == 26, + FLATBUFFERS_VERSION_MINOR == 11 && + FLATBUFFERS_VERSION_REVISION == 22, "Non-compatible flatbuffers version included"); namespace MyGame { diff --git a/tests/cpp17/generated_cpp17/optional_scalars_generated.h b/tests/cpp17/generated_cpp17/optional_scalars_generated.h index 09711d3992..0c04a63978 100644 --- a/tests/cpp17/generated_cpp17/optional_scalars_generated.h +++ b/tests/cpp17/generated_cpp17/optional_scalars_generated.h @@ -9,8 +9,8 @@ // Ensure the included flatbuffers.h is the same version as when this file was // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 22 && - FLATBUFFERS_VERSION_MINOR == 10 && - FLATBUFFERS_VERSION_REVISION == 26, + FLATBUFFERS_VERSION_MINOR == 11 && + FLATBUFFERS_VERSION_REVISION == 22, "Non-compatible flatbuffers version included"); namespace optional_scalars { diff --git a/tests/cpp17/generated_cpp17/union_vector_generated.h b/tests/cpp17/generated_cpp17/union_vector_generated.h index 07d866921d..dca9493d06 100644 --- a/tests/cpp17/generated_cpp17/union_vector_generated.h +++ b/tests/cpp17/generated_cpp17/union_vector_generated.h @@ -9,8 +9,8 @@ // Ensure the included flatbuffers.h is the same version as when this file was // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 22 && - FLATBUFFERS_VERSION_MINOR == 10 && - FLATBUFFERS_VERSION_REVISION == 26, + FLATBUFFERS_VERSION_MINOR == 11 && + FLATBUFFERS_VERSION_REVISION == 22, "Non-compatible flatbuffers version included"); struct Attacker; diff --git a/tests/evolution_test/evolution_v1_generated.h b/tests/evolution_test/evolution_v1_generated.h index 560fc40618..e1524a451c 100644 --- a/tests/evolution_test/evolution_v1_generated.h +++ b/tests/evolution_test/evolution_v1_generated.h @@ -9,8 +9,8 @@ // Ensure the included flatbuffers.h is the same version as when this file was // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 22 && - FLATBUFFERS_VERSION_MINOR == 10 && - FLATBUFFERS_VERSION_REVISION == 26, + FLATBUFFERS_VERSION_MINOR == 11 && + FLATBUFFERS_VERSION_REVISION == 22, "Non-compatible flatbuffers version included"); namespace Evolution { diff --git a/tests/evolution_test/evolution_v2_generated.h b/tests/evolution_test/evolution_v2_generated.h index 881596ffc3..d61417b61d 100644 --- a/tests/evolution_test/evolution_v2_generated.h +++ b/tests/evolution_test/evolution_v2_generated.h @@ -9,8 +9,8 @@ // Ensure the included flatbuffers.h is the same version as when this file was // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 22 && - FLATBUFFERS_VERSION_MINOR == 10 && - FLATBUFFERS_VERSION_REVISION == 26, + FLATBUFFERS_VERSION_MINOR == 11 && + FLATBUFFERS_VERSION_REVISION == 22, "Non-compatible flatbuffers version included"); namespace Evolution { diff --git a/tests/key_field/key_field_sample_generated.h b/tests/key_field/key_field_sample_generated.h index 714de753a0..cbcd0e9b6d 100644 --- a/tests/key_field/key_field_sample_generated.h +++ b/tests/key_field/key_field_sample_generated.h @@ -9,8 +9,8 @@ // Ensure the included flatbuffers.h is the same version as when this file was // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 22 && - FLATBUFFERS_VERSION_MINOR == 10 && - FLATBUFFERS_VERSION_REVISION == 26, + FLATBUFFERS_VERSION_MINOR == 11 && + FLATBUFFERS_VERSION_REVISION == 22, "Non-compatible flatbuffers version included"); namespace keyfield { @@ -22,6 +22,20 @@ struct Bar; struct FooTable; struct FooTableBuilder; +struct FooTableT; + +bool operator==(const Baz &lhs, const Baz &rhs); +bool operator!=(const Baz &lhs, const Baz &rhs); +bool operator==(const Bar &lhs, const Bar &rhs); +bool operator!=(const Bar &lhs, const Bar &rhs); +bool operator==(const FooTableT &lhs, const FooTableT &rhs); +bool operator!=(const FooTableT &lhs, const FooTableT &rhs); + +inline const flatbuffers::TypeTable *BazTypeTable(); + +inline const flatbuffers::TypeTable *BarTypeTable(); + +inline const flatbuffers::TypeTable *FooTableTypeTable(); FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(1) Baz FLATBUFFERS_FINAL_CLASS { private: @@ -29,6 +43,9 @@ FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(1) Baz FLATBUFFERS_FINAL_CLASS { uint8_t b_; public: + static const flatbuffers::TypeTable *MiniReflectTypeTable() { + return BazTypeTable(); + } Baz() : a_(), b_(0) { @@ -44,6 +61,9 @@ FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(1) Baz FLATBUFFERS_FINAL_CLASS { const flatbuffers::Array *a() const { return &flatbuffers::CastToArray(a_); } + flatbuffers::Array *mutable_a() { + return &flatbuffers::CastToArray(a_); + } bool KeyCompareLessThan(const Baz * const o) const { return KeyCompareWithValue(o->a()) < 0; } @@ -59,9 +79,23 @@ FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(1) Baz FLATBUFFERS_FINAL_CLASS { uint8_t b() const { return flatbuffers::EndianScalar(b_); } + void mutate_b(uint8_t _b) { + flatbuffers::WriteScalar(&b_, _b); + } }; FLATBUFFERS_STRUCT_END(Baz, 5); +inline bool operator==(const Baz &lhs, const Baz &rhs) { + return + (lhs.a() == rhs.a()) && + (lhs.b() == rhs.b()); +} + +inline bool operator!=(const Baz &lhs, const Baz &rhs) { + return !(lhs == rhs); +} + + FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(4) Bar FLATBUFFERS_FINAL_CLASS { private: float a_[3]; @@ -69,6 +103,9 @@ FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(4) Bar FLATBUFFERS_FINAL_CLASS { int8_t padding0__; int16_t padding1__; public: + static const flatbuffers::TypeTable *MiniReflectTypeTable() { + return BarTypeTable(); + } Bar() : a_(), b_(0), @@ -96,6 +133,9 @@ FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(4) Bar FLATBUFFERS_FINAL_CLASS { const flatbuffers::Array *a() const { return &flatbuffers::CastToArray(a_); } + flatbuffers::Array *mutable_a() { + return &flatbuffers::CastToArray(a_); + } bool KeyCompareLessThan(const Bar * const o) const { return KeyCompareWithValue(o->a()) < 0; } @@ -111,11 +151,38 @@ FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(4) Bar FLATBUFFERS_FINAL_CLASS { uint8_t b() const { return flatbuffers::EndianScalar(b_); } + void mutate_b(uint8_t _b) { + flatbuffers::WriteScalar(&b_, _b); + } }; FLATBUFFERS_STRUCT_END(Bar, 16); +inline bool operator==(const Bar &lhs, const Bar &rhs) { + return + (lhs.a() == rhs.a()) && + (lhs.b() == rhs.b()); +} + +inline bool operator!=(const Bar &lhs, const Bar &rhs) { + return !(lhs == rhs); +} + + +struct FooTableT : public flatbuffers::NativeTable { + typedef FooTable TableType; + int32_t a = 0; + int32_t b = 0; + std::string c{}; + std::vector d{}; + std::vector e{}; +}; + struct FooTable FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef FooTableT NativeTableType; typedef FooTableBuilder Builder; + static const flatbuffers::TypeTable *MiniReflectTypeTable() { + return FooTableTypeTable(); + } enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { VT_A = 4, VT_B = 6, @@ -126,12 +193,21 @@ struct FooTable FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { int32_t a() const { return GetField(VT_A, 0); } + bool mutate_a(int32_t _a = 0) { + return SetField(VT_A, _a, 0); + } int32_t b() const { return GetField(VT_B, 0); } + bool mutate_b(int32_t _b = 0) { + return SetField(VT_B, _b, 0); + } const flatbuffers::String *c() const { return GetPointer(VT_C); } + flatbuffers::String *mutable_c() { + return GetPointer(VT_C); + } bool KeyCompareLessThan(const FooTable * const o) const { return *c() < *o->c(); } @@ -141,9 +217,15 @@ struct FooTable FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { const flatbuffers::Vector *d() const { return GetPointer *>(VT_D); } + flatbuffers::Vector *mutable_d() { + return GetPointer *>(VT_D); + } const flatbuffers::Vector *e() const { return GetPointer *>(VT_E); } + flatbuffers::Vector *mutable_e() { + return GetPointer *>(VT_E); + } bool Verify(flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_A, 4) && @@ -156,6 +238,9 @@ struct FooTable FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { verifier.VerifyVector(e()) && verifier.EndTable(); } + FooTableT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; + void UnPackTo(FooTableT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const; + static flatbuffers::Offset Pack(flatbuffers::FlatBufferBuilder &_fbb, const FooTableT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); }; struct FooTableBuilder { @@ -224,6 +309,120 @@ inline flatbuffers::Offset CreateFooTableDirect( e__); } +flatbuffers::Offset CreateFooTable(flatbuffers::FlatBufferBuilder &_fbb, const FooTableT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); + + +inline bool operator==(const FooTableT &lhs, const FooTableT &rhs) { + return + (lhs.a == rhs.a) && + (lhs.b == rhs.b) && + (lhs.c == rhs.c) && + (lhs.d == rhs.d) && + (lhs.e == rhs.e); +} + +inline bool operator!=(const FooTableT &lhs, const FooTableT &rhs) { + return !(lhs == rhs); +} + + +inline FooTableT *FooTable::UnPack(const flatbuffers::resolver_function_t *_resolver) const { + auto _o = std::unique_ptr(new FooTableT()); + UnPackTo(_o.get(), _resolver); + return _o.release(); +} + +inline void FooTable::UnPackTo(FooTableT *_o, const flatbuffers::resolver_function_t *_resolver) const { + (void)_o; + (void)_resolver; + { auto _e = a(); _o->a = _e; } + { auto _e = b(); _o->b = _e; } + { auto _e = c(); if (_e) _o->c = _e->str(); } + { auto _e = d(); if (_e) { _o->d.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->d[_i] = *_e->Get(_i); } } else { _o->d.resize(0); } } + { auto _e = e(); if (_e) { _o->e.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->e[_i] = *_e->Get(_i); } } else { _o->e.resize(0); } } +} + +inline flatbuffers::Offset FooTable::Pack(flatbuffers::FlatBufferBuilder &_fbb, const FooTableT* _o, const flatbuffers::rehasher_function_t *_rehasher) { + return CreateFooTable(_fbb, _o, _rehasher); +} + +inline flatbuffers::Offset CreateFooTable(flatbuffers::FlatBufferBuilder &_fbb, const FooTableT *_o, const flatbuffers::rehasher_function_t *_rehasher) { + (void)_rehasher; + (void)_o; + struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const FooTableT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; + auto _a = _o->a; + auto _b = _o->b; + auto _c = _fbb.CreateString(_o->c); + auto _d = _o->d.size() ? _fbb.CreateVectorOfStructs(_o->d) : 0; + auto _e = _o->e.size() ? _fbb.CreateVectorOfStructs(_o->e) : 0; + return keyfield::sample::CreateFooTable( + _fbb, + _a, + _b, + _c, + _d, + _e); +} + +inline const flatbuffers::TypeTable *BazTypeTable() { + static const flatbuffers::TypeCode type_codes[] = { + { flatbuffers::ET_UCHAR, 1, -1 }, + { flatbuffers::ET_UCHAR, 0, -1 } + }; + static const int16_t array_sizes[] = { 4, }; + static const int64_t values[] = { 0, 4, 5 }; + static const char * const names[] = { + "a", + "b" + }; + static const flatbuffers::TypeTable tt = { + flatbuffers::ST_STRUCT, 2, type_codes, nullptr, array_sizes, values, names + }; + return &tt; +} + +inline const flatbuffers::TypeTable *BarTypeTable() { + static const flatbuffers::TypeCode type_codes[] = { + { flatbuffers::ET_FLOAT, 1, -1 }, + { flatbuffers::ET_UCHAR, 0, -1 } + }; + static const int16_t array_sizes[] = { 3, }; + static const int64_t values[] = { 0, 12, 16 }; + static const char * const names[] = { + "a", + "b" + }; + static const flatbuffers::TypeTable tt = { + flatbuffers::ST_STRUCT, 2, type_codes, nullptr, array_sizes, values, names + }; + return &tt; +} + +inline const flatbuffers::TypeTable *FooTableTypeTable() { + static const flatbuffers::TypeCode type_codes[] = { + { flatbuffers::ET_INT, 0, -1 }, + { flatbuffers::ET_INT, 0, -1 }, + { flatbuffers::ET_STRING, 0, -1 }, + { flatbuffers::ET_SEQUENCE, 1, 0 }, + { flatbuffers::ET_SEQUENCE, 1, 1 } + }; + static const flatbuffers::TypeFunction type_refs[] = { + keyfield::sample::BazTypeTable, + keyfield::sample::BarTypeTable + }; + static const char * const names[] = { + "a", + "b", + "c", + "d", + "e" + }; + static const flatbuffers::TypeTable tt = { + flatbuffers::ST_TABLE, 5, type_codes, type_refs, nullptr, nullptr, names + }; + return &tt; +} + inline const keyfield::sample::FooTable *GetFooTable(const void *buf) { return flatbuffers::GetRoot(buf); } @@ -232,6 +431,14 @@ inline const keyfield::sample::FooTable *GetSizePrefixedFooTable(const void *buf return flatbuffers::GetSizePrefixedRoot(buf); } +inline FooTable *GetMutableFooTable(void *buf) { + return flatbuffers::GetMutableRoot(buf); +} + +inline keyfield::sample::FooTable *GetMutableSizePrefixedFooTable(void *buf) { + return flatbuffers::GetMutableSizePrefixedRoot(buf); +} + inline bool VerifyFooTableBuffer( flatbuffers::Verifier &verifier) { return verifier.VerifyBuffer(nullptr); @@ -254,6 +461,18 @@ inline void FinishSizePrefixedFooTableBuffer( fbb.FinishSizePrefixed(root); } +inline flatbuffers::unique_ptr UnPackFooTable( + const void *buf, + const flatbuffers::resolver_function_t *res = nullptr) { + return flatbuffers::unique_ptr(GetFooTable(buf)->UnPack(res)); +} + +inline flatbuffers::unique_ptr UnPackSizePrefixedFooTable( + const void *buf, + const flatbuffers::resolver_function_t *res = nullptr) { + return flatbuffers::unique_ptr(GetSizePrefixedFooTable(buf)->UnPack(res)); +} + } // namespace sample } // namespace keyfield diff --git a/tests/monster_extra_generated.h b/tests/monster_extra_generated.h index 895249e79d..3f7db899ff 100644 --- a/tests/monster_extra_generated.h +++ b/tests/monster_extra_generated.h @@ -9,8 +9,8 @@ // Ensure the included flatbuffers.h is the same version as when this file was // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 22 && - FLATBUFFERS_VERSION_MINOR == 10 && - FLATBUFFERS_VERSION_REVISION == 26, + FLATBUFFERS_VERSION_MINOR == 11 && + FLATBUFFERS_VERSION_REVISION == 22, "Non-compatible flatbuffers version included"); namespace MyGame { diff --git a/tests/monster_test_bfbs_generated.h b/tests/monster_test_bfbs_generated.h index 1df6fe9091..35d72a5ff4 100644 --- a/tests/monster_test_bfbs_generated.h +++ b/tests/monster_test_bfbs_generated.h @@ -9,8 +9,8 @@ // Ensure the included flatbuffers.h is the same version as when this file was // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 22 && - FLATBUFFERS_VERSION_MINOR == 10 && - FLATBUFFERS_VERSION_REVISION == 26, + FLATBUFFERS_VERSION_MINOR == 11 && + FLATBUFFERS_VERSION_REVISION == 22, "Non-compatible flatbuffers version included"); namespace MyGame { diff --git a/tests/monster_test_generated.h b/tests/monster_test_generated.h index 9326385325..47d253f83a 100644 --- a/tests/monster_test_generated.h +++ b/tests/monster_test_generated.h @@ -11,8 +11,8 @@ // Ensure the included flatbuffers.h is the same version as when this file was // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 22 && - FLATBUFFERS_VERSION_MINOR == 10 && - FLATBUFFERS_VERSION_REVISION == 26, + FLATBUFFERS_VERSION_MINOR == 11 && + FLATBUFFERS_VERSION_REVISION == 22, "Non-compatible flatbuffers version included"); namespace MyGame { diff --git a/tests/monster_test_suffix/ext_only/monster_test_generated.hpp b/tests/monster_test_suffix/ext_only/monster_test_generated.hpp index 9326385325..47d253f83a 100644 --- a/tests/monster_test_suffix/ext_only/monster_test_generated.hpp +++ b/tests/monster_test_suffix/ext_only/monster_test_generated.hpp @@ -11,8 +11,8 @@ // Ensure the included flatbuffers.h is the same version as when this file was // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 22 && - FLATBUFFERS_VERSION_MINOR == 10 && - FLATBUFFERS_VERSION_REVISION == 26, + FLATBUFFERS_VERSION_MINOR == 11 && + FLATBUFFERS_VERSION_REVISION == 22, "Non-compatible flatbuffers version included"); namespace MyGame { diff --git a/tests/monster_test_suffix/filesuffix_only/monster_test_suffix.h b/tests/monster_test_suffix/filesuffix_only/monster_test_suffix.h index 9326385325..47d253f83a 100644 --- a/tests/monster_test_suffix/filesuffix_only/monster_test_suffix.h +++ b/tests/monster_test_suffix/filesuffix_only/monster_test_suffix.h @@ -11,8 +11,8 @@ // Ensure the included flatbuffers.h is the same version as when this file was // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 22 && - FLATBUFFERS_VERSION_MINOR == 10 && - FLATBUFFERS_VERSION_REVISION == 26, + FLATBUFFERS_VERSION_MINOR == 11 && + FLATBUFFERS_VERSION_REVISION == 22, "Non-compatible flatbuffers version included"); namespace MyGame { diff --git a/tests/monster_test_suffix/monster_test_suffix.hpp b/tests/monster_test_suffix/monster_test_suffix.hpp index 9326385325..47d253f83a 100644 --- a/tests/monster_test_suffix/monster_test_suffix.hpp +++ b/tests/monster_test_suffix/monster_test_suffix.hpp @@ -11,8 +11,8 @@ // Ensure the included flatbuffers.h is the same version as when this file was // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 22 && - FLATBUFFERS_VERSION_MINOR == 10 && - FLATBUFFERS_VERSION_REVISION == 26, + FLATBUFFERS_VERSION_MINOR == 11 && + FLATBUFFERS_VERSION_REVISION == 22, "Non-compatible flatbuffers version included"); namespace MyGame { diff --git a/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.cs b/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.cs index 00cd478d37..1802b1e30d 100644 --- a/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.cs +++ b/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.cs @@ -13,7 +13,7 @@ public struct TableInNestedNS : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_10_26(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_11_22(); } public static TableInNestedNS GetRootAsTableInNestedNS(ByteBuffer _bb) { return GetRootAsTableInNestedNS(_bb, new TableInNestedNS()); } public static TableInNestedNS GetRootAsTableInNestedNS(ByteBuffer _bb, TableInNestedNS obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.java b/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.java index 211d1c4985..afdebfecba 100644 --- a/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.java +++ b/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.java @@ -9,7 +9,7 @@ @SuppressWarnings("unused") public final class TableInNestedNS extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_22_10_26(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_22_11_22(); } public static TableInNestedNS getRootAsTableInNestedNS(ByteBuffer _bb) { return getRootAsTableInNestedNS(_bb, new TableInNestedNS()); } public static TableInNestedNS getRootAsTableInNestedNS(ByteBuffer _bb, TableInNestedNS obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.kt b/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.kt index 4d9c9feaa5..d881c1f3fb 100644 --- a/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.kt +++ b/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.kt @@ -32,7 +32,7 @@ class TableInNestedNS : Table() { } } companion object { - fun validateVersion() = Constants.FLATBUFFERS_22_10_26() + fun validateVersion() = Constants.FLATBUFFERS_22_11_22() fun getRootAsTableInNestedNS(_bb: ByteBuffer): TableInNestedNS = getRootAsTableInNestedNS(_bb, TableInNestedNS()) fun getRootAsTableInNestedNS(_bb: ByteBuffer, obj: TableInNestedNS): TableInNestedNS { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/namespace_test/NamespaceA/SecondTableInA.cs b/tests/namespace_test/NamespaceA/SecondTableInA.cs index 894c29cdb4..547259032c 100644 --- a/tests/namespace_test/NamespaceA/SecondTableInA.cs +++ b/tests/namespace_test/NamespaceA/SecondTableInA.cs @@ -13,7 +13,7 @@ public struct SecondTableInA : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_10_26(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_11_22(); } public static SecondTableInA GetRootAsSecondTableInA(ByteBuffer _bb) { return GetRootAsSecondTableInA(_bb, new SecondTableInA()); } public static SecondTableInA GetRootAsSecondTableInA(ByteBuffer _bb, SecondTableInA obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/namespace_test/NamespaceA/SecondTableInA.java b/tests/namespace_test/NamespaceA/SecondTableInA.java index 0294af85f0..309b84a0ae 100644 --- a/tests/namespace_test/NamespaceA/SecondTableInA.java +++ b/tests/namespace_test/NamespaceA/SecondTableInA.java @@ -9,7 +9,7 @@ @SuppressWarnings("unused") public final class SecondTableInA extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_22_10_26(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_22_11_22(); } public static SecondTableInA getRootAsSecondTableInA(ByteBuffer _bb) { return getRootAsSecondTableInA(_bb, new SecondTableInA()); } public static SecondTableInA getRootAsSecondTableInA(ByteBuffer _bb, SecondTableInA obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/tests/namespace_test/NamespaceA/SecondTableInA.kt b/tests/namespace_test/NamespaceA/SecondTableInA.kt index 4bcea93c13..8daf096f1e 100644 --- a/tests/namespace_test/NamespaceA/SecondTableInA.kt +++ b/tests/namespace_test/NamespaceA/SecondTableInA.kt @@ -27,7 +27,7 @@ class SecondTableInA : Table() { } } companion object { - fun validateVersion() = Constants.FLATBUFFERS_22_10_26() + fun validateVersion() = Constants.FLATBUFFERS_22_11_22() fun getRootAsSecondTableInA(_bb: ByteBuffer): SecondTableInA = getRootAsSecondTableInA(_bb, SecondTableInA()) fun getRootAsSecondTableInA(_bb: ByteBuffer, obj: SecondTableInA): SecondTableInA { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/namespace_test/NamespaceA/TableInFirstNS.cs b/tests/namespace_test/NamespaceA/TableInFirstNS.cs index d3ab94d456..cd3e8e8441 100644 --- a/tests/namespace_test/NamespaceA/TableInFirstNS.cs +++ b/tests/namespace_test/NamespaceA/TableInFirstNS.cs @@ -13,7 +13,7 @@ public struct TableInFirstNS : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_10_26(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_11_22(); } public static TableInFirstNS GetRootAsTableInFirstNS(ByteBuffer _bb) { return GetRootAsTableInFirstNS(_bb, new TableInFirstNS()); } public static TableInFirstNS GetRootAsTableInFirstNS(ByteBuffer _bb, TableInFirstNS obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/namespace_test/NamespaceA/TableInFirstNS.java b/tests/namespace_test/NamespaceA/TableInFirstNS.java index 415f083709..a69e30ddf0 100644 --- a/tests/namespace_test/NamespaceA/TableInFirstNS.java +++ b/tests/namespace_test/NamespaceA/TableInFirstNS.java @@ -9,7 +9,7 @@ @SuppressWarnings("unused") public final class TableInFirstNS extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_22_10_26(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_22_11_22(); } public static TableInFirstNS getRootAsTableInFirstNS(ByteBuffer _bb) { return getRootAsTableInFirstNS(_bb, new TableInFirstNS()); } public static TableInFirstNS getRootAsTableInFirstNS(ByteBuffer _bb, TableInFirstNS obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/tests/namespace_test/NamespaceA/TableInFirstNS.kt b/tests/namespace_test/NamespaceA/TableInFirstNS.kt index a5cb7528d2..c307f67aae 100644 --- a/tests/namespace_test/NamespaceA/TableInFirstNS.kt +++ b/tests/namespace_test/NamespaceA/TableInFirstNS.kt @@ -67,7 +67,7 @@ class TableInFirstNS : Table() { } } companion object { - fun validateVersion() = Constants.FLATBUFFERS_22_10_26() + fun validateVersion() = Constants.FLATBUFFERS_22_11_22() fun getRootAsTableInFirstNS(_bb: ByteBuffer): TableInFirstNS = getRootAsTableInFirstNS(_bb, TableInFirstNS()) fun getRootAsTableInFirstNS(_bb: ByteBuffer, obj: TableInFirstNS): TableInFirstNS { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/namespace_test/NamespaceC/TableInC.cs b/tests/namespace_test/NamespaceC/TableInC.cs index 4ad9eafde2..de5b32a28e 100644 --- a/tests/namespace_test/NamespaceC/TableInC.cs +++ b/tests/namespace_test/NamespaceC/TableInC.cs @@ -13,7 +13,7 @@ public struct TableInC : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_10_26(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_11_22(); } public static TableInC GetRootAsTableInC(ByteBuffer _bb) { return GetRootAsTableInC(_bb, new TableInC()); } public static TableInC GetRootAsTableInC(ByteBuffer _bb, TableInC obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/namespace_test/NamespaceC/TableInC.java b/tests/namespace_test/NamespaceC/TableInC.java index e139cbbcda..401d33a9ae 100644 --- a/tests/namespace_test/NamespaceC/TableInC.java +++ b/tests/namespace_test/NamespaceC/TableInC.java @@ -9,7 +9,7 @@ @SuppressWarnings("unused") public final class TableInC extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_22_10_26(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_22_11_22(); } public static TableInC getRootAsTableInC(ByteBuffer _bb) { return getRootAsTableInC(_bb, new TableInC()); } public static TableInC getRootAsTableInC(ByteBuffer _bb, TableInC obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/tests/namespace_test/NamespaceC/TableInC.kt b/tests/namespace_test/NamespaceC/TableInC.kt index cc90e58fc4..be5d1e06c0 100644 --- a/tests/namespace_test/NamespaceC/TableInC.kt +++ b/tests/namespace_test/NamespaceC/TableInC.kt @@ -36,7 +36,7 @@ class TableInC : Table() { } } companion object { - fun validateVersion() = Constants.FLATBUFFERS_22_10_26() + fun validateVersion() = Constants.FLATBUFFERS_22_11_22() fun getRootAsTableInC(_bb: ByteBuffer): TableInC = getRootAsTableInC(_bb, TableInC()) fun getRootAsTableInC(_bb: ByteBuffer, obj: TableInC): TableInC { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/namespace_test/namespace_test1_generated.h b/tests/namespace_test/namespace_test1_generated.h index da40591a7e..ffa5e47da1 100644 --- a/tests/namespace_test/namespace_test1_generated.h +++ b/tests/namespace_test/namespace_test1_generated.h @@ -9,8 +9,8 @@ // Ensure the included flatbuffers.h is the same version as when this file was // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 22 && - FLATBUFFERS_VERSION_MINOR == 10 && - FLATBUFFERS_VERSION_REVISION == 26, + FLATBUFFERS_VERSION_MINOR == 11 && + FLATBUFFERS_VERSION_REVISION == 22, "Non-compatible flatbuffers version included"); namespace NamespaceA { diff --git a/tests/namespace_test/namespace_test2_generated.h b/tests/namespace_test/namespace_test2_generated.h index 3d55c5e3cd..f0310d6cbe 100644 --- a/tests/namespace_test/namespace_test2_generated.h +++ b/tests/namespace_test/namespace_test2_generated.h @@ -9,8 +9,8 @@ // Ensure the included flatbuffers.h is the same version as when this file was // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 22 && - FLATBUFFERS_VERSION_MINOR == 10 && - FLATBUFFERS_VERSION_REVISION == 26, + FLATBUFFERS_VERSION_MINOR == 11 && + FLATBUFFERS_VERSION_REVISION == 22, "Non-compatible flatbuffers version included"); namespace NamespaceA { diff --git a/tests/native_inline_table_test_generated.h b/tests/native_inline_table_test_generated.h index 80626b888d..e2c413ebd6 100644 --- a/tests/native_inline_table_test_generated.h +++ b/tests/native_inline_table_test_generated.h @@ -9,8 +9,8 @@ // Ensure the included flatbuffers.h is the same version as when this file was // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 22 && - FLATBUFFERS_VERSION_MINOR == 10 && - FLATBUFFERS_VERSION_REVISION == 26, + FLATBUFFERS_VERSION_MINOR == 11 && + FLATBUFFERS_VERSION_REVISION == 22, "Non-compatible flatbuffers version included"); struct NativeInlineTable; diff --git a/tests/native_type_test_generated.h b/tests/native_type_test_generated.h index 766286210f..f0ccb4caef 100644 --- a/tests/native_type_test_generated.h +++ b/tests/native_type_test_generated.h @@ -9,8 +9,8 @@ // Ensure the included flatbuffers.h is the same version as when this file was // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 22 && - FLATBUFFERS_VERSION_MINOR == 10 && - FLATBUFFERS_VERSION_REVISION == 26, + FLATBUFFERS_VERSION_MINOR == 11 && + FLATBUFFERS_VERSION_REVISION == 22, "Non-compatible flatbuffers version included"); #include "native_type_test_impl.h" diff --git a/tests/nested_namespace_test/nested_namespace_test3_generated.cs b/tests/nested_namespace_test/nested_namespace_test3_generated.cs index b59013c2d0..83158bc952 100644 --- a/tests/nested_namespace_test/nested_namespace_test3_generated.cs +++ b/tests/nested_namespace_test/nested_namespace_test3_generated.cs @@ -13,7 +13,7 @@ public struct ColorTestTable : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_10_26(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_11_22(); } public static ColorTestTable GetRootAsColorTestTable(ByteBuffer _bb) { return GetRootAsColorTestTable(_bb, new ColorTestTable()); } public static ColorTestTable GetRootAsColorTestTable(ByteBuffer _bb, ColorTestTable obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/optional_scalars/OptionalByte.nim b/tests/optional_scalars/OptionalByte.nim index 8a4e23c8dd..972e35f897 100644 --- a/tests/optional_scalars/OptionalByte.nim +++ b/tests/optional_scalars/OptionalByte.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.10.26 + flatc version: 22.11.22 Declared by : Rooting type : optional_scalars.ScalarStuff () diff --git a/tests/optional_scalars/ScalarStuff.cs b/tests/optional_scalars/ScalarStuff.cs index f1a6517480..f3d4ca4f81 100644 --- a/tests/optional_scalars/ScalarStuff.cs +++ b/tests/optional_scalars/ScalarStuff.cs @@ -13,7 +13,7 @@ public struct ScalarStuff : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_10_26(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_11_22(); } public static ScalarStuff GetRootAsScalarStuff(ByteBuffer _bb) { return GetRootAsScalarStuff(_bb, new ScalarStuff()); } public static ScalarStuff GetRootAsScalarStuff(ByteBuffer _bb, ScalarStuff obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public static bool ScalarStuffBufferHasIdentifier(ByteBuffer _bb) { return Table.__has_identifier(_bb, "NULL"); } diff --git a/tests/optional_scalars/ScalarStuff.java b/tests/optional_scalars/ScalarStuff.java index f8adf64dd0..624c374c5b 100644 --- a/tests/optional_scalars/ScalarStuff.java +++ b/tests/optional_scalars/ScalarStuff.java @@ -9,7 +9,7 @@ @SuppressWarnings("unused") public final class ScalarStuff extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_22_10_26(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_22_11_22(); } public static ScalarStuff getRootAsScalarStuff(ByteBuffer _bb) { return getRootAsScalarStuff(_bb, new ScalarStuff()); } public static ScalarStuff getRootAsScalarStuff(ByteBuffer _bb, ScalarStuff obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public static boolean ScalarStuffBufferHasIdentifier(ByteBuffer _bb) { return __has_identifier(_bb, "NULL"); } diff --git a/tests/optional_scalars/ScalarStuff.kt b/tests/optional_scalars/ScalarStuff.kt index 22d179614e..fc8b2ff559 100644 --- a/tests/optional_scalars/ScalarStuff.kt +++ b/tests/optional_scalars/ScalarStuff.kt @@ -197,7 +197,7 @@ class ScalarStuff : Table() { return if(o != 0) bb.get(o + bb_pos) else 1 } companion object { - fun validateVersion() = Constants.FLATBUFFERS_22_10_26() + fun validateVersion() = Constants.FLATBUFFERS_22_11_22() fun getRootAsScalarStuff(_bb: ByteBuffer): ScalarStuff = getRootAsScalarStuff(_bb, ScalarStuff()) fun getRootAsScalarStuff(_bb: ByteBuffer, obj: ScalarStuff): ScalarStuff { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/optional_scalars/ScalarStuff.nim b/tests/optional_scalars/ScalarStuff.nim index 6df14036ce..62d46253ca 100644 --- a/tests/optional_scalars/ScalarStuff.nim +++ b/tests/optional_scalars/ScalarStuff.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.10.26 + flatc version: 22.11.22 Declared by : Rooting type : optional_scalars.ScalarStuff () diff --git a/tests/optional_scalars_generated.h b/tests/optional_scalars_generated.h index 0beb7927b1..acc0ca8b54 100644 --- a/tests/optional_scalars_generated.h +++ b/tests/optional_scalars_generated.h @@ -9,8 +9,8 @@ // Ensure the included flatbuffers.h is the same version as when this file was // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 22 && - FLATBUFFERS_VERSION_MINOR == 10 && - FLATBUFFERS_VERSION_REVISION == 26, + FLATBUFFERS_VERSION_MINOR == 11 && + FLATBUFFERS_VERSION_REVISION == 22, "Non-compatible flatbuffers version included"); namespace optional_scalars { diff --git a/tests/swift/Wasm.tests/Tests/FlatBuffers.Test.Swift.WasmTests/monster_test_generated.swift b/tests/swift/Wasm.tests/Tests/FlatBuffers.Test.Swift.WasmTests/monster_test_generated.swift index 1924068736..3a7c042301 100644 --- a/tests/swift/Wasm.tests/Tests/FlatBuffers.Test.Swift.WasmTests/monster_test_generated.swift +++ b/tests/swift/Wasm.tests/Tests/FlatBuffers.Test.Swift.WasmTests/monster_test_generated.swift @@ -237,7 +237,7 @@ public struct MyGame_Example_AnyAmbiguousAliasesUnion { } public struct MyGame_Example_Test: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject { - static func validateVersion() { FlatBuffersVersion_22_10_26() } + static func validateVersion() { FlatBuffersVersion_22_11_22() } private var _a: Int16 private var _b: Int8 @@ -291,7 +291,7 @@ extension MyGame_Example_Test: Encodable { public struct MyGame_Example_Test_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_22_10_26() } + static func validateVersion() { FlatBuffersVersion_22_11_22() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -318,7 +318,7 @@ public struct MyGame_Example_Test_Mutable: FlatBufferObject { public struct MyGame_Example_Vec3: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject { - static func validateVersion() { FlatBuffersVersion_22_10_26() } + static func validateVersion() { FlatBuffersVersion_22_11_22() } private var _x: Float32 private var _y: Float32 @@ -413,7 +413,7 @@ extension MyGame_Example_Vec3: Encodable { public struct MyGame_Example_Vec3_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_22_10_26() } + static func validateVersion() { FlatBuffersVersion_22_11_22() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -447,7 +447,7 @@ public struct MyGame_Example_Vec3_Mutable: FlatBufferObject { public struct MyGame_Example_Ability: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject { - static func validateVersion() { FlatBuffersVersion_22_10_26() } + static func validateVersion() { FlatBuffersVersion_22_11_22() } private var _id: UInt32 private var _distance: UInt32 @@ -500,7 +500,7 @@ extension MyGame_Example_Ability: Encodable { public struct MyGame_Example_Ability_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_22_10_26() } + static func validateVersion() { FlatBuffersVersion_22_11_22() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -527,7 +527,7 @@ public struct MyGame_Example_Ability_Mutable: FlatBufferObject { public struct MyGame_Example_StructOfStructs: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject { - static func validateVersion() { FlatBuffersVersion_22_10_26() } + static func validateVersion() { FlatBuffersVersion_22_11_22() } private var _a: MyGame_Example_Ability private var _b: MyGame_Example_Test @@ -587,7 +587,7 @@ extension MyGame_Example_StructOfStructs: Encodable { public struct MyGame_Example_StructOfStructs_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_22_10_26() } + static func validateVersion() { FlatBuffersVersion_22_11_22() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -613,7 +613,7 @@ public struct MyGame_Example_StructOfStructs_Mutable: FlatBufferObject { public struct MyGame_Example_StructOfStructsOfStructs: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject { - static func validateVersion() { FlatBuffersVersion_22_10_26() } + static func validateVersion() { FlatBuffersVersion_22_11_22() } private var _a: MyGame_Example_StructOfStructs @@ -655,7 +655,7 @@ extension MyGame_Example_StructOfStructsOfStructs: Encodable { public struct MyGame_Example_StructOfStructsOfStructs_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_22_10_26() } + static func validateVersion() { FlatBuffersVersion_22_11_22() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -679,7 +679,7 @@ public struct MyGame_Example_StructOfStructsOfStructs_Mutable: FlatBufferObject public struct MyGame_InParentNamespace: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_22_10_26() } + static func validateVersion() { FlatBuffersVersion_22_11_22() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -733,7 +733,7 @@ public class MyGame_InParentNamespaceT: NativeObject { } public struct MyGame_Example2_Monster: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_22_10_26() } + static func validateVersion() { FlatBuffersVersion_22_11_22() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -787,7 +787,7 @@ public class MyGame_Example2_MonsterT: NativeObject { } internal struct MyGame_Example_TestSimpleTableWithEnum: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_22_10_26() } + static func validateVersion() { FlatBuffersVersion_22_11_22() } internal var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -870,7 +870,7 @@ internal class MyGame_Example_TestSimpleTableWithEnumT: NativeObject { } public struct MyGame_Example_Stat: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_22_10_26() } + static func validateVersion() { FlatBuffersVersion_22_11_22() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -1011,7 +1011,7 @@ public class MyGame_Example_StatT: NativeObject { } public struct MyGame_Example_Referrable: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_22_10_26() } + static func validateVersion() { FlatBuffersVersion_22_11_22() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -1119,7 +1119,7 @@ public class MyGame_Example_ReferrableT: NativeObject { /// an example documentation comment: "monster object" public struct MyGame_Example_Monster: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_22_10_26() } + static func validateVersion() { FlatBuffersVersion_22_11_22() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -2417,7 +2417,7 @@ public class MyGame_Example_MonsterT: NativeObject { } public struct MyGame_Example_TypeAliases: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_22_10_26() } + static func validateVersion() { FlatBuffersVersion_22_11_22() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table diff --git a/tests/swift/tests/CodeGenerationTests/test_import_generated.swift b/tests/swift/tests/CodeGenerationTests/test_import_generated.swift index dbc4cf7854..5f629eb47d 100644 --- a/tests/swift/tests/CodeGenerationTests/test_import_generated.swift +++ b/tests/swift/tests/CodeGenerationTests/test_import_generated.swift @@ -6,7 +6,7 @@ internal struct Message: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_22_10_26() } + static func validateVersion() { FlatBuffersVersion_22_11_22() } internal var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table diff --git a/tests/swift/tests/CodeGenerationTests/test_no_include_generated.swift b/tests/swift/tests/CodeGenerationTests/test_no_include_generated.swift index 3b52d1adb9..8a4e8d8113 100644 --- a/tests/swift/tests/CodeGenerationTests/test_no_include_generated.swift +++ b/tests/swift/tests/CodeGenerationTests/test_no_include_generated.swift @@ -4,7 +4,7 @@ public struct BytesCount: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject { - static func validateVersion() { FlatBuffersVersion_22_10_26() } + static func validateVersion() { FlatBuffersVersion_22_11_22() } private var _x: Int64 @@ -47,7 +47,7 @@ extension BytesCount: Encodable { public struct BytesCount_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_22_10_26() } + static func validateVersion() { FlatBuffersVersion_22_11_22() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -72,7 +72,7 @@ public struct BytesCount_Mutable: FlatBufferObject { public struct InternalMessage: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_22_10_26() } + static func validateVersion() { FlatBuffersVersion_22_11_22() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -157,7 +157,7 @@ public class InternalMessageT: NativeObject { } public struct Message: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_22_10_26() } + static func validateVersion() { FlatBuffersVersion_22_11_22() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table diff --git a/tests/swift/tests/Sources/SwiftFlatBuffers/fuzzer_generated.swift b/tests/swift/tests/Sources/SwiftFlatBuffers/fuzzer_generated.swift index a0338642c1..7f538f87a7 100644 --- a/tests/swift/tests/Sources/SwiftFlatBuffers/fuzzer_generated.swift +++ b/tests/swift/tests/Sources/SwiftFlatBuffers/fuzzer_generated.swift @@ -32,7 +32,7 @@ extension Color: Encodable { public struct Test: NativeStruct, Verifiable, FlatbuffersInitializable { - static func validateVersion() { FlatBuffersVersion_22_10_26() } + static func validateVersion() { FlatBuffersVersion_22_11_22() } private var _a: Int16 private var _b: Int8 @@ -81,7 +81,7 @@ extension Test: Encodable { public struct Test_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_22_10_26() } + static func validateVersion() { FlatBuffersVersion_22_11_22() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -93,7 +93,7 @@ public struct Test_Mutable: FlatBufferObject { public struct Vec3: NativeStruct, Verifiable, FlatbuffersInitializable { - static func validateVersion() { FlatBuffersVersion_22_10_26() } + static func validateVersion() { FlatBuffersVersion_22_11_22() } private var _x: Float32 private var _y: Float32 @@ -178,7 +178,7 @@ extension Vec3: Encodable { public struct Vec3_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_22_10_26() } + static func validateVersion() { FlatBuffersVersion_22_11_22() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -195,7 +195,7 @@ public struct Vec3_Mutable: FlatBufferObject { /// an example documentation comment: "monster object" public struct Monster: FlatBufferObject, Verifiable { - static func validateVersion() { FlatBuffersVersion_22_10_26() } + static func validateVersion() { FlatBuffersVersion_22_11_22() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table diff --git a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/MutatingBool_generated.swift b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/MutatingBool_generated.swift index ff37e3b4ae..83b21d0862 100644 --- a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/MutatingBool_generated.swift +++ b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/MutatingBool_generated.swift @@ -6,7 +6,7 @@ import FlatBuffers public struct Property: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject { - static func validateVersion() { FlatBuffersVersion_22_10_26() } + static func validateVersion() { FlatBuffersVersion_22_11_22() } private var _property: Bool @@ -49,7 +49,7 @@ extension Property: Encodable { public struct Property_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_22_10_26() } + static func validateVersion() { FlatBuffersVersion_22_11_22() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -74,7 +74,7 @@ public struct Property_Mutable: FlatBufferObject { public struct TestMutatingBool: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_22_10_26() } + static func validateVersion() { FlatBuffersVersion_22_11_22() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table diff --git a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/monster_test_generated.swift b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/monster_test_generated.swift index 67399e1c73..346a62081a 100644 --- a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/monster_test_generated.swift +++ b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/monster_test_generated.swift @@ -237,7 +237,7 @@ public struct MyGame_Example_AnyAmbiguousAliasesUnion { } public struct MyGame_Example_Test: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject { - static func validateVersion() { FlatBuffersVersion_22_10_26() } + static func validateVersion() { FlatBuffersVersion_22_11_22() } private var _a: Int16 private var _b: Int8 @@ -291,7 +291,7 @@ extension MyGame_Example_Test: Encodable { public struct MyGame_Example_Test_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_22_10_26() } + static func validateVersion() { FlatBuffersVersion_22_11_22() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -318,7 +318,7 @@ public struct MyGame_Example_Test_Mutable: FlatBufferObject { public struct MyGame_Example_Vec3: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject { - static func validateVersion() { FlatBuffersVersion_22_10_26() } + static func validateVersion() { FlatBuffersVersion_22_11_22() } private var _x: Float32 private var _y: Float32 @@ -413,7 +413,7 @@ extension MyGame_Example_Vec3: Encodable { public struct MyGame_Example_Vec3_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_22_10_26() } + static func validateVersion() { FlatBuffersVersion_22_11_22() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -447,7 +447,7 @@ public struct MyGame_Example_Vec3_Mutable: FlatBufferObject { public struct MyGame_Example_Ability: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject { - static func validateVersion() { FlatBuffersVersion_22_10_26() } + static func validateVersion() { FlatBuffersVersion_22_11_22() } private var _id: UInt32 private var _distance: UInt32 @@ -500,7 +500,7 @@ extension MyGame_Example_Ability: Encodable { public struct MyGame_Example_Ability_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_22_10_26() } + static func validateVersion() { FlatBuffersVersion_22_11_22() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -527,7 +527,7 @@ public struct MyGame_Example_Ability_Mutable: FlatBufferObject { public struct MyGame_Example_StructOfStructs: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject { - static func validateVersion() { FlatBuffersVersion_22_10_26() } + static func validateVersion() { FlatBuffersVersion_22_11_22() } private var _a: MyGame_Example_Ability private var _b: MyGame_Example_Test @@ -587,7 +587,7 @@ extension MyGame_Example_StructOfStructs: Encodable { public struct MyGame_Example_StructOfStructs_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_22_10_26() } + static func validateVersion() { FlatBuffersVersion_22_11_22() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -613,7 +613,7 @@ public struct MyGame_Example_StructOfStructs_Mutable: FlatBufferObject { public struct MyGame_Example_StructOfStructsOfStructs: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject { - static func validateVersion() { FlatBuffersVersion_22_10_26() } + static func validateVersion() { FlatBuffersVersion_22_11_22() } private var _a: MyGame_Example_StructOfStructs @@ -655,7 +655,7 @@ extension MyGame_Example_StructOfStructsOfStructs: Encodable { public struct MyGame_Example_StructOfStructsOfStructs_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_22_10_26() } + static func validateVersion() { FlatBuffersVersion_22_11_22() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -679,7 +679,7 @@ public struct MyGame_Example_StructOfStructsOfStructs_Mutable: FlatBufferObject public struct MyGame_InParentNamespace: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_22_10_26() } + static func validateVersion() { FlatBuffersVersion_22_11_22() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -733,7 +733,7 @@ public class MyGame_InParentNamespaceT: NativeObject { } public struct MyGame_Example2_Monster: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_22_10_26() } + static func validateVersion() { FlatBuffersVersion_22_11_22() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -787,7 +787,7 @@ public class MyGame_Example2_MonsterT: NativeObject { } internal struct MyGame_Example_TestSimpleTableWithEnum: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_22_10_26() } + static func validateVersion() { FlatBuffersVersion_22_11_22() } internal var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -870,7 +870,7 @@ internal class MyGame_Example_TestSimpleTableWithEnumT: NativeObject { } public struct MyGame_Example_Stat: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_22_10_26() } + static func validateVersion() { FlatBuffersVersion_22_11_22() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -1011,7 +1011,7 @@ public class MyGame_Example_StatT: NativeObject { } public struct MyGame_Example_Referrable: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_22_10_26() } + static func validateVersion() { FlatBuffersVersion_22_11_22() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -1119,7 +1119,7 @@ public class MyGame_Example_ReferrableT: NativeObject { /// an example documentation comment: "monster object" public struct MyGame_Example_Monster: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_22_10_26() } + static func validateVersion() { FlatBuffersVersion_22_11_22() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -2417,7 +2417,7 @@ public class MyGame_Example_MonsterT: NativeObject { } public struct MyGame_Example_TypeAliases: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_22_10_26() } + static func validateVersion() { FlatBuffersVersion_22_11_22() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table diff --git a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/more_defaults_generated.swift b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/more_defaults_generated.swift index d5885fbb00..3763e19186 100644 --- a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/more_defaults_generated.swift +++ b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/more_defaults_generated.swift @@ -29,7 +29,7 @@ extension ABC: Encodable { public struct MoreDefaults: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_22_10_26() } + static func validateVersion() { FlatBuffersVersion_22_11_22() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table diff --git a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/nan_inf_test_generated.swift b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/nan_inf_test_generated.swift index 0e41c7a6b4..8023987677 100644 --- a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/nan_inf_test_generated.swift +++ b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/nan_inf_test_generated.swift @@ -6,7 +6,7 @@ import FlatBuffers public struct Swift_Tests_NanInfTable: FlatBufferObject, Verifiable { - static func validateVersion() { FlatBuffersVersion_22_10_26() } + static func validateVersion() { FlatBuffersVersion_22_11_22() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table diff --git a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/optional_scalars_generated.swift b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/optional_scalars_generated.swift index c82904b729..025726d304 100644 --- a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/optional_scalars_generated.swift +++ b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/optional_scalars_generated.swift @@ -29,7 +29,7 @@ extension optional_scalars_OptionalByte: Encodable { public struct optional_scalars_ScalarStuff: FlatBufferObject, Verifiable { - static func validateVersion() { FlatBuffersVersion_22_10_26() } + static func validateVersion() { FlatBuffersVersion_22_11_22() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table diff --git a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/union_vector_generated.swift b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/union_vector_generated.swift index 801ea13fe3..7cb68e296a 100644 --- a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/union_vector_generated.swift +++ b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/union_vector_generated.swift @@ -120,7 +120,7 @@ public struct GadgetUnion { } public struct Rapunzel: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject { - static func validateVersion() { FlatBuffersVersion_22_10_26() } + static func validateVersion() { FlatBuffersVersion_22_11_22() } private var _hairLength: Int32 @@ -163,7 +163,7 @@ extension Rapunzel: Encodable { public struct Rapunzel_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_22_10_26() } + static func validateVersion() { FlatBuffersVersion_22_11_22() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -188,7 +188,7 @@ public struct Rapunzel_Mutable: FlatBufferObject { public struct BookReader: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject { - static func validateVersion() { FlatBuffersVersion_22_10_26() } + static func validateVersion() { FlatBuffersVersion_22_11_22() } private var _booksRead: Int32 @@ -231,7 +231,7 @@ extension BookReader: Encodable { public struct BookReader_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_22_10_26() } + static func validateVersion() { FlatBuffersVersion_22_11_22() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -256,7 +256,7 @@ public struct BookReader_Mutable: FlatBufferObject { public struct FallingTub: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject { - static func validateVersion() { FlatBuffersVersion_22_10_26() } + static func validateVersion() { FlatBuffersVersion_22_11_22() } private var _weight: Int32 @@ -299,7 +299,7 @@ extension FallingTub: Encodable { public struct FallingTub_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_22_10_26() } + static func validateVersion() { FlatBuffersVersion_22_11_22() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -324,7 +324,7 @@ public struct FallingTub_Mutable: FlatBufferObject { public struct Attacker: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_22_10_26() } + static func validateVersion() { FlatBuffersVersion_22_11_22() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -407,7 +407,7 @@ public class AttackerT: NativeObject { } public struct HandFan: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_22_10_26() } + static func validateVersion() { FlatBuffersVersion_22_11_22() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -490,7 +490,7 @@ public class HandFanT: NativeObject { } public struct Movie: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_22_10_26() } + static func validateVersion() { FlatBuffersVersion_22_11_22() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table diff --git a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/vector_has_test_generated.swift b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/vector_has_test_generated.swift index c065b9f435..39dd7c7475 100644 --- a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/vector_has_test_generated.swift +++ b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/vector_has_test_generated.swift @@ -6,7 +6,7 @@ import FlatBuffers public struct Swift_Tests_Vectors: FlatBufferObject, Verifiable { - static func validateVersion() { FlatBuffersVersion_22_10_26() } + static func validateVersion() { FlatBuffersVersion_22_11_22() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table diff --git a/tests/type_field_collsion/Collision.cs b/tests/type_field_collsion/Collision.cs index a0a4df7bcc..30eee1fd2c 100644 --- a/tests/type_field_collsion/Collision.cs +++ b/tests/type_field_collsion/Collision.cs @@ -13,7 +13,7 @@ public struct Collision : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_10_26(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_11_22(); } public static Collision GetRootAsCollision(ByteBuffer _bb) { return GetRootAsCollision(_bb, new Collision()); } public static Collision GetRootAsCollision(ByteBuffer _bb, Collision obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/union_vector/Attacker.cs b/tests/union_vector/Attacker.cs index c7337473d8..ffa4c594db 100644 --- a/tests/union_vector/Attacker.cs +++ b/tests/union_vector/Attacker.cs @@ -10,7 +10,7 @@ public struct Attacker : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_10_26(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_11_22(); } public static Attacker GetRootAsAttacker(ByteBuffer _bb) { return GetRootAsAttacker(_bb, new Attacker()); } public static Attacker GetRootAsAttacker(ByteBuffer _bb, Attacker obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/union_vector/Attacker.java b/tests/union_vector/Attacker.java index 0f9c28e75a..f794efcbef 100644 --- a/tests/union_vector/Attacker.java +++ b/tests/union_vector/Attacker.java @@ -7,7 +7,7 @@ @SuppressWarnings("unused") public final class Attacker extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_22_10_26(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_22_11_22(); } public static Attacker getRootAsAttacker(ByteBuffer _bb) { return getRootAsAttacker(_bb, new Attacker()); } public static Attacker getRootAsAttacker(ByteBuffer _bb, Attacker obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/tests/union_vector/Attacker.kt b/tests/union_vector/Attacker.kt index 94042aa1ca..487e83d19a 100644 --- a/tests/union_vector/Attacker.kt +++ b/tests/union_vector/Attacker.kt @@ -29,7 +29,7 @@ class Attacker : Table() { } } companion object { - fun validateVersion() = Constants.FLATBUFFERS_22_10_26() + fun validateVersion() = Constants.FLATBUFFERS_22_11_22() fun getRootAsAttacker(_bb: ByteBuffer): Attacker = getRootAsAttacker(_bb, Attacker()) fun getRootAsAttacker(_bb: ByteBuffer, obj: Attacker): Attacker { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/union_vector/HandFan.cs b/tests/union_vector/HandFan.cs index b57a20479a..1845b281dc 100644 --- a/tests/union_vector/HandFan.cs +++ b/tests/union_vector/HandFan.cs @@ -10,7 +10,7 @@ public struct HandFan : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_10_26(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_11_22(); } public static HandFan GetRootAsHandFan(ByteBuffer _bb) { return GetRootAsHandFan(_bb, new HandFan()); } public static HandFan GetRootAsHandFan(ByteBuffer _bb, HandFan obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/union_vector/HandFan.java b/tests/union_vector/HandFan.java index 5184b4cef6..2757246da6 100644 --- a/tests/union_vector/HandFan.java +++ b/tests/union_vector/HandFan.java @@ -7,7 +7,7 @@ @SuppressWarnings("unused") public final class HandFan extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_22_10_26(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_22_11_22(); } public static HandFan getRootAsHandFan(ByteBuffer _bb) { return getRootAsHandFan(_bb, new HandFan()); } public static HandFan getRootAsHandFan(ByteBuffer _bb, HandFan obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/tests/union_vector/HandFan.kt b/tests/union_vector/HandFan.kt index 4c3a44817e..26d376540f 100644 --- a/tests/union_vector/HandFan.kt +++ b/tests/union_vector/HandFan.kt @@ -29,7 +29,7 @@ class HandFan : Table() { } } companion object { - fun validateVersion() = Constants.FLATBUFFERS_22_10_26() + fun validateVersion() = Constants.FLATBUFFERS_22_11_22() fun getRootAsHandFan(_bb: ByteBuffer): HandFan = getRootAsHandFan(_bb, HandFan()) fun getRootAsHandFan(_bb: ByteBuffer, obj: HandFan): HandFan { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/union_vector/Movie.cs b/tests/union_vector/Movie.cs index 6411645b8b..ff556ff134 100644 --- a/tests/union_vector/Movie.cs +++ b/tests/union_vector/Movie.cs @@ -10,7 +10,7 @@ public struct Movie : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_10_26(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_11_22(); } public static Movie GetRootAsMovie(ByteBuffer _bb) { return GetRootAsMovie(_bb, new Movie()); } public static Movie GetRootAsMovie(ByteBuffer _bb, Movie obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public static bool MovieBufferHasIdentifier(ByteBuffer _bb) { return Table.__has_identifier(_bb, "MOVI"); } diff --git a/tests/union_vector/Movie.java b/tests/union_vector/Movie.java index 63797ddcfc..879ea74ee6 100644 --- a/tests/union_vector/Movie.java +++ b/tests/union_vector/Movie.java @@ -7,7 +7,7 @@ @SuppressWarnings("unused") public final class Movie extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_22_10_26(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_22_11_22(); } public static Movie getRootAsMovie(ByteBuffer _bb) { return getRootAsMovie(_bb, new Movie()); } public static Movie getRootAsMovie(ByteBuffer _bb, Movie obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public static boolean MovieBufferHasIdentifier(ByteBuffer _bb) { return __has_identifier(_bb, "MOVI"); } diff --git a/tests/union_vector/Movie.kt b/tests/union_vector/Movie.kt index faec8e40c1..1d189d9c5e 100644 --- a/tests/union_vector/Movie.kt +++ b/tests/union_vector/Movie.kt @@ -67,7 +67,7 @@ class Movie : Table() { val o = __offset(10); return if (o != 0) __vector_len(o) else 0 } companion object { - fun validateVersion() = Constants.FLATBUFFERS_22_10_26() + fun validateVersion() = Constants.FLATBUFFERS_22_11_22() fun getRootAsMovie(_bb: ByteBuffer): Movie = getRootAsMovie(_bb, Movie()) fun getRootAsMovie(_bb: ByteBuffer, obj: Movie): Movie { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/union_vector/union_vector_generated.h b/tests/union_vector/union_vector_generated.h index 920c13a4f2..aaca899d02 100644 --- a/tests/union_vector/union_vector_generated.h +++ b/tests/union_vector/union_vector_generated.h @@ -9,8 +9,8 @@ // Ensure the included flatbuffers.h is the same version as when this file was // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 22 && - FLATBUFFERS_VERSION_MINOR == 10 && - FLATBUFFERS_VERSION_REVISION == 26, + FLATBUFFERS_VERSION_MINOR == 11 && + FLATBUFFERS_VERSION_REVISION == 22, "Non-compatible flatbuffers version included"); struct Attacker; From 8f625561d053d232897790ad5fdcc9a6a1832133 Mon Sep 17 00:00:00 2001 From: Derek Bailey Date: Wed, 23 Nov 2022 11:32:19 -0800 Subject: [PATCH 030/571] FlatBuffers Version 22.11.23 (#7662) --- CMake/Version.cmake | 2 +- FlatBuffers.podspec | 2 +- .../main/java/generated/com/fbs/app/Animal.kt | 2 +- dart/pubspec.yaml | 2 +- .../Sources/Model/greeter_generated.swift | 4 +-- include/flatbuffers/base.h | 2 +- include/flatbuffers/reflection_generated.h | 2 +- java/pom.xml | 2 +- .../com/google/flatbuffers/Constants.java | 2 +- net/FlatBuffers/FlatBufferConstants.cs | 2 +- net/FlatBuffers/Google.FlatBuffers.csproj | 2 +- package.json | 2 +- python/flatbuffers/_version.py | 2 +- python/setup.py | 2 +- samples/monster_generated.h | 2 +- samples/monster_generated.swift | 8 ++--- src/idl_gen_csharp.cpp | 2 +- src/idl_gen_java.cpp | 2 +- src/idl_gen_kotlin.cpp | 2 +- src/idl_gen_swift.cpp | 2 +- swift/Sources/FlatBuffers/Constants.swift | 2 +- tests/Abc.nim | 2 +- tests/DictionaryLookup/LongFloatEntry.java | 2 +- tests/DictionaryLookup/LongFloatEntry.kt | 2 +- tests/DictionaryLookup/LongFloatMap.java | 2 +- tests/DictionaryLookup/LongFloatMap.kt | 2 +- tests/KeywordTest/KeywordsInTable.cs | 2 +- tests/MoreDefaults.nim | 2 +- tests/MyGame/Example/Ability.lua | 2 +- tests/MyGame/Example/Ability.nim | 2 +- tests/MyGame/Example/Any.lua | 2 +- tests/MyGame/Example/Any.nim | 2 +- tests/MyGame/Example/AnyAmbiguousAliases.lua | 2 +- tests/MyGame/Example/AnyAmbiguousAliases.nim | 2 +- tests/MyGame/Example/AnyUniqueAliases.lua | 2 +- tests/MyGame/Example/AnyUniqueAliases.nim | 2 +- tests/MyGame/Example/ArrayTable.cs | 2 +- tests/MyGame/Example/ArrayTable.java | 2 +- tests/MyGame/Example/Color.lua | 2 +- tests/MyGame/Example/Color.nim | 2 +- tests/MyGame/Example/LongEnum.lua | 2 +- tests/MyGame/Example/LongEnum.nim | 2 +- tests/MyGame/Example/Monster.cs | 2 +- tests/MyGame/Example/Monster.java | 2 +- tests/MyGame/Example/Monster.kt | 2 +- tests/MyGame/Example/Monster.lua | 2 +- tests/MyGame/Example/Monster.nim | 2 +- tests/MyGame/Example/Race.lua | 2 +- tests/MyGame/Example/Race.nim | 2 +- tests/MyGame/Example/Referrable.cs | 2 +- tests/MyGame/Example/Referrable.java | 2 +- tests/MyGame/Example/Referrable.kt | 2 +- tests/MyGame/Example/Referrable.lua | 2 +- tests/MyGame/Example/Referrable.nim | 2 +- tests/MyGame/Example/Stat.cs | 2 +- tests/MyGame/Example/Stat.java | 2 +- tests/MyGame/Example/Stat.kt | 2 +- tests/MyGame/Example/Stat.lua | 2 +- tests/MyGame/Example/Stat.nim | 2 +- tests/MyGame/Example/StructOfStructs.lua | 2 +- tests/MyGame/Example/StructOfStructs.nim | 2 +- .../Example/StructOfStructsOfStructs.lua | 2 +- .../Example/StructOfStructsOfStructs.nim | 2 +- tests/MyGame/Example/Test.lua | 2 +- tests/MyGame/Example/Test.nim | 2 +- .../MyGame/Example/TestSimpleTableWithEnum.cs | 2 +- .../Example/TestSimpleTableWithEnum.java | 2 +- .../MyGame/Example/TestSimpleTableWithEnum.kt | 2 +- .../Example/TestSimpleTableWithEnum.lua | 2 +- .../Example/TestSimpleTableWithEnum.nim | 2 +- tests/MyGame/Example/TypeAliases.cs | 2 +- tests/MyGame/Example/TypeAliases.java | 2 +- tests/MyGame/Example/TypeAliases.kt | 2 +- tests/MyGame/Example/TypeAliases.lua | 2 +- tests/MyGame/Example/TypeAliases.nim | 2 +- tests/MyGame/Example/Vec3.lua | 2 +- tests/MyGame/Example/Vec3.nim | 2 +- tests/MyGame/Example2/Monster.cs | 2 +- tests/MyGame/Example2/Monster.java | 2 +- tests/MyGame/Example2/Monster.kt | 2 +- tests/MyGame/Example2/Monster.lua | 2 +- tests/MyGame/Example2/Monster.nim | 2 +- tests/MyGame/InParentNamespace.cs | 2 +- tests/MyGame/InParentNamespace.java | 2 +- tests/MyGame/InParentNamespace.kt | 2 +- tests/MyGame/InParentNamespace.lua | 2 +- tests/MyGame/InParentNamespace.nim | 2 +- tests/MyGame/MonsterExtra.cs | 2 +- tests/MyGame/MonsterExtra.java | 2 +- tests/MyGame/MonsterExtra.kt | 2 +- tests/MyGame/OtherNameSpace/FromInclude.lua | 2 +- tests/MyGame/OtherNameSpace/FromInclude.nim | 2 +- tests/MyGame/OtherNameSpace/TableB.lua | 2 +- tests/MyGame/OtherNameSpace/TableB.nim | 2 +- tests/MyGame/OtherNameSpace/Unused.lua | 2 +- tests/MyGame/OtherNameSpace/Unused.nim | 2 +- tests/Property.nim | 2 +- tests/TableA.lua | 2 +- tests/TableA.nim | 2 +- tests/TestMutatingBool.nim | 2 +- tests/alignment_test_generated.h | 2 +- tests/arrays_test_generated.h | 2 +- .../generated_cpp17/monster_test_generated.h | 2 +- .../optional_scalars_generated.h | 2 +- .../generated_cpp17/union_vector_generated.h | 2 +- tests/evolution_test/evolution_v1_generated.h | 2 +- tests/evolution_test/evolution_v2_generated.h | 2 +- tests/key_field/key_field_sample_generated.h | 2 +- tests/monster_extra_generated.h | 2 +- tests/monster_test_bfbs_generated.h | 2 +- tests/monster_test_generated.h | 2 +- .../ext_only/monster_test_generated.hpp | 2 +- .../filesuffix_only/monster_test_suffix.h | 2 +- .../monster_test_suffix.hpp | 2 +- .../NamespaceA/NamespaceB/TableInNestedNS.cs | 2 +- .../NamespaceB/TableInNestedNS.java | 2 +- .../NamespaceA/NamespaceB/TableInNestedNS.kt | 2 +- .../NamespaceA/SecondTableInA.cs | 2 +- .../NamespaceA/SecondTableInA.java | 2 +- .../NamespaceA/SecondTableInA.kt | 2 +- .../NamespaceA/TableInFirstNS.cs | 2 +- .../NamespaceA/TableInFirstNS.java | 2 +- .../NamespaceA/TableInFirstNS.kt | 2 +- tests/namespace_test/NamespaceC/TableInC.cs | 2 +- tests/namespace_test/NamespaceC/TableInC.java | 2 +- tests/namespace_test/NamespaceC/TableInC.kt | 2 +- .../namespace_test1_generated.h | 2 +- .../namespace_test2_generated.h | 2 +- tests/native_inline_table_test_generated.h | 2 +- tests/native_type_test_generated.h | 2 +- .../nested_namespace_test3_generated.cs | 2 +- tests/optional_scalars/OptionalByte.nim | 2 +- tests/optional_scalars/ScalarStuff.cs | 2 +- tests/optional_scalars/ScalarStuff.java | 2 +- tests/optional_scalars/ScalarStuff.kt | 2 +- tests/optional_scalars/ScalarStuff.nim | 2 +- tests/optional_scalars_generated.h | 2 +- .../monster_test_generated.swift | 34 +++++++++---------- .../test_import_generated.swift | 2 +- .../test_no_include_generated.swift | 8 ++--- .../SwiftFlatBuffers/fuzzer_generated.swift | 10 +++--- .../MutatingBool_generated.swift | 6 ++-- .../monster_test_generated.swift | 34 +++++++++---------- .../more_defaults_generated.swift | 2 +- .../nan_inf_test_generated.swift | 2 +- .../optional_scalars_generated.swift | 2 +- .../union_vector_generated.swift | 18 +++++----- .../vector_has_test_generated.swift | 2 +- tests/type_field_collsion/Collision.cs | 2 +- tests/union_vector/Attacker.cs | 2 +- tests/union_vector/Attacker.java | 2 +- tests/union_vector/Attacker.kt | 2 +- tests/union_vector/HandFan.cs | 2 +- tests/union_vector/HandFan.java | 2 +- tests/union_vector/HandFan.kt | 2 +- tests/union_vector/Movie.cs | 2 +- tests/union_vector/Movie.java | 2 +- tests/union_vector/Movie.kt | 2 +- tests/union_vector/union_vector_generated.h | 2 +- 159 files changed, 212 insertions(+), 212 deletions(-) diff --git a/CMake/Version.cmake b/CMake/Version.cmake index bdd8bcb6a0..a0eef8462d 100644 --- a/CMake/Version.cmake +++ b/CMake/Version.cmake @@ -1,6 +1,6 @@ set(VERSION_MAJOR 22) set(VERSION_MINOR 11) -set(VERSION_PATCH 22) +set(VERSION_PATCH 23) set(VERSION_COMMIT 0) if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/.git") diff --git a/FlatBuffers.podspec b/FlatBuffers.podspec index aae634f3a1..830a46270a 100644 --- a/FlatBuffers.podspec +++ b/FlatBuffers.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = 'FlatBuffers' - s.version = '22.11.22' + s.version = '22.11.23' s.summary = 'FlatBuffers: Memory Efficient Serialization Library' s.description = "FlatBuffers is a cross platform serialization library architected for diff --git a/android/app/src/main/java/generated/com/fbs/app/Animal.kt b/android/app/src/main/java/generated/com/fbs/app/Animal.kt index 5cf975764f..ede9296aa3 100644 --- a/android/app/src/main/java/generated/com/fbs/app/Animal.kt +++ b/android/app/src/main/java/generated/com/fbs/app/Animal.kt @@ -36,7 +36,7 @@ class Animal : Table() { return if(o != 0) bb.getShort(o + bb_pos).toUShort() else 0u } companion object { - fun validateVersion() = Constants.FLATBUFFERS_22_11_22() + fun validateVersion() = Constants.FLATBUFFERS_22_11_23() fun getRootAsAnimal(_bb: ByteBuffer): Animal = getRootAsAnimal(_bb, Animal()) fun getRootAsAnimal(_bb: ByteBuffer, obj: Animal): Animal { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/dart/pubspec.yaml b/dart/pubspec.yaml index d2f6412661..4dfa4092e3 100644 --- a/dart/pubspec.yaml +++ b/dart/pubspec.yaml @@ -1,5 +1,5 @@ name: flat_buffers -version: 22.11.22 +version: 22.11.23 description: FlatBuffers reading and writing library for Dart. Based on original work by Konstantin Scheglov and Paul Berry of the Dart SDK team. homepage: https://github.com/google/flatbuffers documentation: https://google.github.io/flatbuffers/index.html diff --git a/grpc/examples/swift/Greeter/Sources/Model/greeter_generated.swift b/grpc/examples/swift/Greeter/Sources/Model/greeter_generated.swift index 9632b02678..36f046c268 100644 --- a/grpc/examples/swift/Greeter/Sources/Model/greeter_generated.swift +++ b/grpc/examples/swift/Greeter/Sources/Model/greeter_generated.swift @@ -6,7 +6,7 @@ import FlatBuffers public struct models_HelloReply: FlatBufferObject, Verifiable { - static func validateVersion() { FlatBuffersVersion_22_11_22() } + static func validateVersion() { FlatBuffersVersion_22_11_23() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -55,7 +55,7 @@ extension models_HelloReply: Encodable { public struct models_HelloRequest: FlatBufferObject, Verifiable { - static func validateVersion() { FlatBuffersVersion_22_11_22() } + static func validateVersion() { FlatBuffersVersion_22_11_23() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table diff --git a/include/flatbuffers/base.h b/include/flatbuffers/base.h index b7282be2c9..25f40b2510 100644 --- a/include/flatbuffers/base.h +++ b/include/flatbuffers/base.h @@ -140,7 +140,7 @@ #define FLATBUFFERS_VERSION_MAJOR 22 #define FLATBUFFERS_VERSION_MINOR 11 -#define FLATBUFFERS_VERSION_REVISION 22 +#define FLATBUFFERS_VERSION_REVISION 23 #define FLATBUFFERS_STRING_EXPAND(X) #X #define FLATBUFFERS_STRING(X) FLATBUFFERS_STRING_EXPAND(X) namespace flatbuffers { diff --git a/include/flatbuffers/reflection_generated.h b/include/flatbuffers/reflection_generated.h index f72ff36a2b..76b62cd2e1 100644 --- a/include/flatbuffers/reflection_generated.h +++ b/include/flatbuffers/reflection_generated.h @@ -10,7 +10,7 @@ // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 22 && FLATBUFFERS_VERSION_MINOR == 11 && - FLATBUFFERS_VERSION_REVISION == 22, + FLATBUFFERS_VERSION_REVISION == 23, "Non-compatible flatbuffers version included"); namespace reflection { diff --git a/java/pom.xml b/java/pom.xml index 93cfe90fbc..6f2f133d9e 100644 --- a/java/pom.xml +++ b/java/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.flatbuffers flatbuffers-java - 22.11.22 + 22.11.23 bundle FlatBuffers Java API diff --git a/java/src/main/java/com/google/flatbuffers/Constants.java b/java/src/main/java/com/google/flatbuffers/Constants.java index 877dfc46db..0120a728c2 100644 --- a/java/src/main/java/com/google/flatbuffers/Constants.java +++ b/java/src/main/java/com/google/flatbuffers/Constants.java @@ -46,7 +46,7 @@ public class Constants { Changes to the Java implementation need to be sure to change the version here and in the code generator on every possible incompatible change */ - public static void FLATBUFFERS_22_11_22() {} + public static void FLATBUFFERS_22_11_23() {} } /// @endcond diff --git a/net/FlatBuffers/FlatBufferConstants.cs b/net/FlatBuffers/FlatBufferConstants.cs index c3083e034f..cb625d4d47 100644 --- a/net/FlatBuffers/FlatBufferConstants.cs +++ b/net/FlatBuffers/FlatBufferConstants.cs @@ -32,6 +32,6 @@ the runtime and generated code are modified in sync. Changes to the C# implementation need to be sure to change the version here and in the code generator on every possible incompatible change */ - public static void FLATBUFFERS_22_11_22() {} + public static void FLATBUFFERS_22_11_23() {} } } diff --git a/net/FlatBuffers/Google.FlatBuffers.csproj b/net/FlatBuffers/Google.FlatBuffers.csproj index e52fbe4133..ad6e6d1a7e 100644 --- a/net/FlatBuffers/Google.FlatBuffers.csproj +++ b/net/FlatBuffers/Google.FlatBuffers.csproj @@ -3,7 +3,7 @@ netstandard2.1;netstandard2.0;net46 A cross-platform memory efficient serialization library - 22.11.22 + 22.11.23 Google LLC https://github.com/google/flatbuffers https://github.com/google/flatbuffers diff --git a/package.json b/package.json index 22c272ccc9..fa696dad7e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "flatbuffers", - "version": "22.11.22", + "version": "22.11.23", "description": "Memory Efficient Serialization Library", "files": [ "js/**/*.js", diff --git a/python/flatbuffers/_version.py b/python/flatbuffers/_version.py index 43ec896e78..f2ea9676ba 100644 --- a/python/flatbuffers/_version.py +++ b/python/flatbuffers/_version.py @@ -14,4 +14,4 @@ # Placeholder, to be updated during the release process # by the setup.py -__version__ = u"22.11.22" +__version__ = u"22.11.23" diff --git a/python/setup.py b/python/setup.py index 56cbbfa067..80cf925085 100644 --- a/python/setup.py +++ b/python/setup.py @@ -16,7 +16,7 @@ setup( name='flatbuffers', - version='22.11.22', + version='22.11.23', license='Apache 2.0', author='Derek Bailey', author_email='derekbailey@google.com', diff --git a/samples/monster_generated.h b/samples/monster_generated.h index e6897fc375..28151d8cba 100644 --- a/samples/monster_generated.h +++ b/samples/monster_generated.h @@ -10,7 +10,7 @@ // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 22 && FLATBUFFERS_VERSION_MINOR == 11 && - FLATBUFFERS_VERSION_REVISION == 22, + FLATBUFFERS_VERSION_REVISION == 23, "Non-compatible flatbuffers version included"); namespace MyGame { diff --git a/samples/monster_generated.swift b/samples/monster_generated.swift index 5f00ebddc8..3c0b3affd3 100644 --- a/samples/monster_generated.swift +++ b/samples/monster_generated.swift @@ -31,7 +31,7 @@ public enum MyGame_Sample_Equipment: UInt8, Enum { public struct MyGame_Sample_Vec3: NativeStruct { - static func validateVersion() { FlatBuffersVersion_22_11_22() } + static func validateVersion() { FlatBuffersVersion_22_11_23() } private var _x: Float32 private var _y: Float32 @@ -56,7 +56,7 @@ public struct MyGame_Sample_Vec3: NativeStruct { public struct MyGame_Sample_Vec3_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_22_11_22() } + static func validateVersion() { FlatBuffersVersion_22_11_23() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -72,7 +72,7 @@ public struct MyGame_Sample_Vec3_Mutable: FlatBufferObject { public struct MyGame_Sample_Monster: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_22_11_22() } + static func validateVersion() { FlatBuffersVersion_22_11_23() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -162,7 +162,7 @@ public struct MyGame_Sample_Monster: FlatBufferObject { public struct MyGame_Sample_Weapon: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_22_11_22() } + static func validateVersion() { FlatBuffersVersion_22_11_23() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table diff --git a/src/idl_gen_csharp.cpp b/src/idl_gen_csharp.cpp index a770b2c395..149b215428 100644 --- a/src/idl_gen_csharp.cpp +++ b/src/idl_gen_csharp.cpp @@ -655,7 +655,7 @@ class CSharpGenerator : public BaseGenerator { // Force compile time error if not using the same version runtime. code += " public static void ValidateVersion() {"; code += " FlatBufferConstants."; - code += "FLATBUFFERS_22_11_22(); "; + code += "FLATBUFFERS_22_11_23(); "; code += "}\n"; // Generate a special accessor for the table that when used as the root diff --git a/src/idl_gen_java.cpp b/src/idl_gen_java.cpp index 15269924b3..909d30759b 100644 --- a/src/idl_gen_java.cpp +++ b/src/idl_gen_java.cpp @@ -669,7 +669,7 @@ class JavaGenerator : public BaseGenerator { // Force compile time error if not using the same version runtime. code += " public static void ValidateVersion() {"; code += " Constants."; - code += "FLATBUFFERS_22_11_22(); "; + code += "FLATBUFFERS_22_11_23(); "; code += "}\n"; // Generate a special accessor for the table that when used as the root diff --git a/src/idl_gen_kotlin.cpp b/src/idl_gen_kotlin.cpp index 3bc1aceb17..972d9c2562 100644 --- a/src/idl_gen_kotlin.cpp +++ b/src/idl_gen_kotlin.cpp @@ -505,7 +505,7 @@ class KotlinGenerator : public BaseGenerator { // runtime. GenerateFunOneLine( writer, "validateVersion", "", "", - [&]() { writer += "Constants.FLATBUFFERS_22_11_22()"; }, + [&]() { writer += "Constants.FLATBUFFERS_22_11_23()"; }, options.gen_jvmstatic); GenerateGetRootAsAccessors(namer_.Type(struct_def), writer, options); diff --git a/src/idl_gen_swift.cpp b/src/idl_gen_swift.cpp index f7253acd16..5da28d7076 100644 --- a/src/idl_gen_swift.cpp +++ b/src/idl_gen_swift.cpp @@ -1846,7 +1846,7 @@ class SwiftGenerator : public BaseGenerator { } std::string ValidateFunc() { - return "static func validateVersion() { FlatBuffersVersion_22_11_22() }"; + return "static func validateVersion() { FlatBuffersVersion_22_11_23() }"; } std::string GenType(const Type &type, diff --git a/swift/Sources/FlatBuffers/Constants.swift b/swift/Sources/FlatBuffers/Constants.swift index fa414c966f..5fcb1080fb 100644 --- a/swift/Sources/FlatBuffers/Constants.swift +++ b/swift/Sources/FlatBuffers/Constants.swift @@ -119,4 +119,4 @@ extension UInt64: Scalar, Verifiable { public typealias NumericValue = UInt64 } -public func FlatBuffersVersion_22_11_22() {} +public func FlatBuffersVersion_22_11_23() {} diff --git a/tests/Abc.nim b/tests/Abc.nim index d9696dc501..6c62f7d8a0 100644 --- a/tests/Abc.nim +++ b/tests/Abc.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.11.22 + flatc version: 22.11.23 Declared by : ]# diff --git a/tests/DictionaryLookup/LongFloatEntry.java b/tests/DictionaryLookup/LongFloatEntry.java index 8d12b596bb..b0286dc457 100644 --- a/tests/DictionaryLookup/LongFloatEntry.java +++ b/tests/DictionaryLookup/LongFloatEntry.java @@ -9,7 +9,7 @@ @SuppressWarnings("unused") public final class LongFloatEntry extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_22_11_22(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_22_11_23(); } public static LongFloatEntry getRootAsLongFloatEntry(ByteBuffer _bb) { return getRootAsLongFloatEntry(_bb, new LongFloatEntry()); } public static LongFloatEntry getRootAsLongFloatEntry(ByteBuffer _bb, LongFloatEntry obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/tests/DictionaryLookup/LongFloatEntry.kt b/tests/DictionaryLookup/LongFloatEntry.kt index 38e4618be2..a6a431d1c6 100644 --- a/tests/DictionaryLookup/LongFloatEntry.kt +++ b/tests/DictionaryLookup/LongFloatEntry.kt @@ -32,7 +32,7 @@ class LongFloatEntry : Table() { return (val_1 - val_2).sign } companion object { - fun validateVersion() = Constants.FLATBUFFERS_22_11_22() + fun validateVersion() = Constants.FLATBUFFERS_22_11_23() fun getRootAsLongFloatEntry(_bb: ByteBuffer): LongFloatEntry = getRootAsLongFloatEntry(_bb, LongFloatEntry()) fun getRootAsLongFloatEntry(_bb: ByteBuffer, obj: LongFloatEntry): LongFloatEntry { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/DictionaryLookup/LongFloatMap.java b/tests/DictionaryLookup/LongFloatMap.java index 78cc904cf1..f840d846cc 100644 --- a/tests/DictionaryLookup/LongFloatMap.java +++ b/tests/DictionaryLookup/LongFloatMap.java @@ -9,7 +9,7 @@ @SuppressWarnings("unused") public final class LongFloatMap extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_22_11_22(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_22_11_23(); } public static LongFloatMap getRootAsLongFloatMap(ByteBuffer _bb) { return getRootAsLongFloatMap(_bb, new LongFloatMap()); } public static LongFloatMap getRootAsLongFloatMap(ByteBuffer _bb, LongFloatMap obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/tests/DictionaryLookup/LongFloatMap.kt b/tests/DictionaryLookup/LongFloatMap.kt index b1a50ff77c..1757de76b3 100644 --- a/tests/DictionaryLookup/LongFloatMap.kt +++ b/tests/DictionaryLookup/LongFloatMap.kt @@ -46,7 +46,7 @@ class LongFloatMap : Table() { } } companion object { - fun validateVersion() = Constants.FLATBUFFERS_22_11_22() + fun validateVersion() = Constants.FLATBUFFERS_22_11_23() fun getRootAsLongFloatMap(_bb: ByteBuffer): LongFloatMap = getRootAsLongFloatMap(_bb, LongFloatMap()) fun getRootAsLongFloatMap(_bb: ByteBuffer, obj: LongFloatMap): LongFloatMap { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/KeywordTest/KeywordsInTable.cs b/tests/KeywordTest/KeywordsInTable.cs index de20c81547..d56ce3ab38 100644 --- a/tests/KeywordTest/KeywordsInTable.cs +++ b/tests/KeywordTest/KeywordsInTable.cs @@ -13,7 +13,7 @@ public struct KeywordsInTable : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_11_22(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_11_23(); } public static KeywordsInTable GetRootAsKeywordsInTable(ByteBuffer _bb) { return GetRootAsKeywordsInTable(_bb, new KeywordsInTable()); } public static KeywordsInTable GetRootAsKeywordsInTable(ByteBuffer _bb, KeywordsInTable obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/MoreDefaults.nim b/tests/MoreDefaults.nim index 756db2a0bd..e7fd7f9d52 100644 --- a/tests/MoreDefaults.nim +++ b/tests/MoreDefaults.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.11.22 + flatc version: 22.11.23 Declared by : ]# diff --git a/tests/MyGame/Example/Ability.lua b/tests/MyGame/Example/Ability.lua index 01652d2b19..56deed7b94 100644 --- a/tests/MyGame/Example/Ability.lua +++ b/tests/MyGame/Example/Ability.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.11.22 + flatc version: 22.11.23 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/Ability.nim b/tests/MyGame/Example/Ability.nim index 2488e28855..93e73320f3 100644 --- a/tests/MyGame/Example/Ability.nim +++ b/tests/MyGame/Example/Ability.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.11.22 + flatc version: 22.11.23 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example/Any.lua b/tests/MyGame/Example/Any.lua index 994f5f00d8..26a66c4387 100644 --- a/tests/MyGame/Example/Any.lua +++ b/tests/MyGame/Example/Any.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.11.22 + flatc version: 22.11.23 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/Any.nim b/tests/MyGame/Example/Any.nim index 33eb255164..1ca7a0f608 100644 --- a/tests/MyGame/Example/Any.nim +++ b/tests/MyGame/Example/Any.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.11.22 + flatc version: 22.11.23 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example/AnyAmbiguousAliases.lua b/tests/MyGame/Example/AnyAmbiguousAliases.lua index 1cb2c6d637..bb090554e7 100644 --- a/tests/MyGame/Example/AnyAmbiguousAliases.lua +++ b/tests/MyGame/Example/AnyAmbiguousAliases.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.11.22 + flatc version: 22.11.23 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/AnyAmbiguousAliases.nim b/tests/MyGame/Example/AnyAmbiguousAliases.nim index 31830714ed..43af0fccab 100644 --- a/tests/MyGame/Example/AnyAmbiguousAliases.nim +++ b/tests/MyGame/Example/AnyAmbiguousAliases.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.11.22 + flatc version: 22.11.23 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example/AnyUniqueAliases.lua b/tests/MyGame/Example/AnyUniqueAliases.lua index cd6b443445..4d4d548e79 100644 --- a/tests/MyGame/Example/AnyUniqueAliases.lua +++ b/tests/MyGame/Example/AnyUniqueAliases.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.11.22 + flatc version: 22.11.23 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/AnyUniqueAliases.nim b/tests/MyGame/Example/AnyUniqueAliases.nim index 59c5c3db15..5fce5011cf 100644 --- a/tests/MyGame/Example/AnyUniqueAliases.nim +++ b/tests/MyGame/Example/AnyUniqueAliases.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.11.22 + flatc version: 22.11.23 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example/ArrayTable.cs b/tests/MyGame/Example/ArrayTable.cs index aaad26c144..61748dbe4d 100644 --- a/tests/MyGame/Example/ArrayTable.cs +++ b/tests/MyGame/Example/ArrayTable.cs @@ -13,7 +13,7 @@ public struct ArrayTable : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_11_22(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_11_23(); } public static ArrayTable GetRootAsArrayTable(ByteBuffer _bb) { return GetRootAsArrayTable(_bb, new ArrayTable()); } public static ArrayTable GetRootAsArrayTable(ByteBuffer _bb, ArrayTable obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public static bool ArrayTableBufferHasIdentifier(ByteBuffer _bb) { return Table.__has_identifier(_bb, "ARRT"); } diff --git a/tests/MyGame/Example/ArrayTable.java b/tests/MyGame/Example/ArrayTable.java index 6ea8429ab0..8d33fabeb1 100644 --- a/tests/MyGame/Example/ArrayTable.java +++ b/tests/MyGame/Example/ArrayTable.java @@ -9,7 +9,7 @@ @SuppressWarnings("unused") public final class ArrayTable extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_22_11_22(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_22_11_23(); } public static ArrayTable getRootAsArrayTable(ByteBuffer _bb) { return getRootAsArrayTable(_bb, new ArrayTable()); } public static ArrayTable getRootAsArrayTable(ByteBuffer _bb, ArrayTable obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public static boolean ArrayTableBufferHasIdentifier(ByteBuffer _bb) { return __has_identifier(_bb, "ARRT"); } diff --git a/tests/MyGame/Example/Color.lua b/tests/MyGame/Example/Color.lua index 349405158c..1b824e77a8 100644 --- a/tests/MyGame/Example/Color.lua +++ b/tests/MyGame/Example/Color.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.11.22 + flatc version: 22.11.23 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/Color.nim b/tests/MyGame/Example/Color.nim index 403d092afb..21ef208724 100644 --- a/tests/MyGame/Example/Color.nim +++ b/tests/MyGame/Example/Color.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.11.22 + flatc version: 22.11.23 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example/LongEnum.lua b/tests/MyGame/Example/LongEnum.lua index 8537ba386c..04817819af 100644 --- a/tests/MyGame/Example/LongEnum.lua +++ b/tests/MyGame/Example/LongEnum.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.11.22 + flatc version: 22.11.23 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/LongEnum.nim b/tests/MyGame/Example/LongEnum.nim index 81bf740dbc..41ec369a10 100644 --- a/tests/MyGame/Example/LongEnum.nim +++ b/tests/MyGame/Example/LongEnum.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.11.22 + flatc version: 22.11.23 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example/Monster.cs b/tests/MyGame/Example/Monster.cs index b09fca78fd..0c5a013298 100644 --- a/tests/MyGame/Example/Monster.cs +++ b/tests/MyGame/Example/Monster.cs @@ -14,7 +14,7 @@ public struct Monster : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_11_22(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_11_23(); } public static Monster GetRootAsMonster(ByteBuffer _bb) { return GetRootAsMonster(_bb, new Monster()); } public static Monster GetRootAsMonster(ByteBuffer _bb, Monster obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public static bool MonsterBufferHasIdentifier(ByteBuffer _bb) { return Table.__has_identifier(_bb, "MONS"); } diff --git a/tests/MyGame/Example/Monster.java b/tests/MyGame/Example/Monster.java index 3feaabaddd..c216c4750e 100644 --- a/tests/MyGame/Example/Monster.java +++ b/tests/MyGame/Example/Monster.java @@ -12,7 +12,7 @@ */ @SuppressWarnings("unused") public final class Monster extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_22_11_22(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_22_11_23(); } public static Monster getRootAsMonster(ByteBuffer _bb) { return getRootAsMonster(_bb, new Monster()); } public static Monster getRootAsMonster(ByteBuffer _bb, Monster obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public static boolean MonsterBufferHasIdentifier(ByteBuffer _bb) { return __has_identifier(_bb, "MONS"); } diff --git a/tests/MyGame/Example/Monster.kt b/tests/MyGame/Example/Monster.kt index c597b049b2..6d8394ec42 100644 --- a/tests/MyGame/Example/Monster.kt +++ b/tests/MyGame/Example/Monster.kt @@ -986,7 +986,7 @@ class Monster : Table() { return compareStrings(__offset(10, o1, _bb), __offset(10, o2, _bb), _bb) } companion object { - fun validateVersion() = Constants.FLATBUFFERS_22_11_22() + fun validateVersion() = Constants.FLATBUFFERS_22_11_23() fun getRootAsMonster(_bb: ByteBuffer): Monster = getRootAsMonster(_bb, Monster()) fun getRootAsMonster(_bb: ByteBuffer, obj: Monster): Monster { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/MyGame/Example/Monster.lua b/tests/MyGame/Example/Monster.lua index 7f2cd9a8a9..53adc4f133 100644 --- a/tests/MyGame/Example/Monster.lua +++ b/tests/MyGame/Example/Monster.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.11.22 + flatc version: 22.11.23 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/Monster.nim b/tests/MyGame/Example/Monster.nim index dad9f5f4c0..c33374e6f5 100644 --- a/tests/MyGame/Example/Monster.nim +++ b/tests/MyGame/Example/Monster.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.11.22 + flatc version: 22.11.23 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example/Race.lua b/tests/MyGame/Example/Race.lua index 0410c316cf..0b77df3c55 100644 --- a/tests/MyGame/Example/Race.lua +++ b/tests/MyGame/Example/Race.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.11.22 + flatc version: 22.11.23 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/Race.nim b/tests/MyGame/Example/Race.nim index 8d85e74be3..2d736d4459 100644 --- a/tests/MyGame/Example/Race.nim +++ b/tests/MyGame/Example/Race.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.11.22 + flatc version: 22.11.23 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example/Referrable.cs b/tests/MyGame/Example/Referrable.cs index 72949de85a..6894602045 100644 --- a/tests/MyGame/Example/Referrable.cs +++ b/tests/MyGame/Example/Referrable.cs @@ -13,7 +13,7 @@ public struct Referrable : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_11_22(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_11_23(); } public static Referrable GetRootAsReferrable(ByteBuffer _bb) { return GetRootAsReferrable(_bb, new Referrable()); } public static Referrable GetRootAsReferrable(ByteBuffer _bb, Referrable obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/MyGame/Example/Referrable.java b/tests/MyGame/Example/Referrable.java index 3490d3f393..b84cd87840 100644 --- a/tests/MyGame/Example/Referrable.java +++ b/tests/MyGame/Example/Referrable.java @@ -9,7 +9,7 @@ @SuppressWarnings("unused") public final class Referrable extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_22_11_22(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_22_11_23(); } public static Referrable getRootAsReferrable(ByteBuffer _bb) { return getRootAsReferrable(_bb, new Referrable()); } public static Referrable getRootAsReferrable(ByteBuffer _bb, Referrable obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/tests/MyGame/Example/Referrable.kt b/tests/MyGame/Example/Referrable.kt index a3f15c2732..4f2c2d9bbd 100644 --- a/tests/MyGame/Example/Referrable.kt +++ b/tests/MyGame/Example/Referrable.kt @@ -36,7 +36,7 @@ class Referrable : Table() { return (val_1 - val_2).sign } companion object { - fun validateVersion() = Constants.FLATBUFFERS_22_11_22() + fun validateVersion() = Constants.FLATBUFFERS_22_11_23() fun getRootAsReferrable(_bb: ByteBuffer): Referrable = getRootAsReferrable(_bb, Referrable()) fun getRootAsReferrable(_bb: ByteBuffer, obj: Referrable): Referrable { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/MyGame/Example/Referrable.lua b/tests/MyGame/Example/Referrable.lua index 97d5570af0..a2b1d5abbb 100644 --- a/tests/MyGame/Example/Referrable.lua +++ b/tests/MyGame/Example/Referrable.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.11.22 + flatc version: 22.11.23 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/Referrable.nim b/tests/MyGame/Example/Referrable.nim index 3d98060ad0..e3c050a999 100644 --- a/tests/MyGame/Example/Referrable.nim +++ b/tests/MyGame/Example/Referrable.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.11.22 + flatc version: 22.11.23 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example/Stat.cs b/tests/MyGame/Example/Stat.cs index 7f1e1a5e77..47c9975128 100644 --- a/tests/MyGame/Example/Stat.cs +++ b/tests/MyGame/Example/Stat.cs @@ -13,7 +13,7 @@ public struct Stat : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_11_22(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_11_23(); } public static Stat GetRootAsStat(ByteBuffer _bb) { return GetRootAsStat(_bb, new Stat()); } public static Stat GetRootAsStat(ByteBuffer _bb, Stat obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/MyGame/Example/Stat.java b/tests/MyGame/Example/Stat.java index c641115929..9863e9fe48 100644 --- a/tests/MyGame/Example/Stat.java +++ b/tests/MyGame/Example/Stat.java @@ -9,7 +9,7 @@ @SuppressWarnings("unused") public final class Stat extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_22_11_22(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_22_11_23(); } public static Stat getRootAsStat(ByteBuffer _bb) { return getRootAsStat(_bb, new Stat()); } public static Stat getRootAsStat(ByteBuffer _bb, Stat obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/tests/MyGame/Example/Stat.kt b/tests/MyGame/Example/Stat.kt index 244dcdec9e..e06e62a609 100644 --- a/tests/MyGame/Example/Stat.kt +++ b/tests/MyGame/Example/Stat.kt @@ -57,7 +57,7 @@ class Stat : Table() { return (val_1 - val_2).sign } companion object { - fun validateVersion() = Constants.FLATBUFFERS_22_11_22() + fun validateVersion() = Constants.FLATBUFFERS_22_11_23() fun getRootAsStat(_bb: ByteBuffer): Stat = getRootAsStat(_bb, Stat()) fun getRootAsStat(_bb: ByteBuffer, obj: Stat): Stat { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/MyGame/Example/Stat.lua b/tests/MyGame/Example/Stat.lua index f967054e0f..a502145973 100644 --- a/tests/MyGame/Example/Stat.lua +++ b/tests/MyGame/Example/Stat.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.11.22 + flatc version: 22.11.23 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/Stat.nim b/tests/MyGame/Example/Stat.nim index 8b565e4b4c..a3e1811200 100644 --- a/tests/MyGame/Example/Stat.nim +++ b/tests/MyGame/Example/Stat.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.11.22 + flatc version: 22.11.23 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example/StructOfStructs.lua b/tests/MyGame/Example/StructOfStructs.lua index b1db3d75d1..afa6138e26 100644 --- a/tests/MyGame/Example/StructOfStructs.lua +++ b/tests/MyGame/Example/StructOfStructs.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.11.22 + flatc version: 22.11.23 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/StructOfStructs.nim b/tests/MyGame/Example/StructOfStructs.nim index e452dbec3e..eab3ed68aa 100644 --- a/tests/MyGame/Example/StructOfStructs.nim +++ b/tests/MyGame/Example/StructOfStructs.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.11.22 + flatc version: 22.11.23 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example/StructOfStructsOfStructs.lua b/tests/MyGame/Example/StructOfStructsOfStructs.lua index f63825fe61..828b1145b3 100644 --- a/tests/MyGame/Example/StructOfStructsOfStructs.lua +++ b/tests/MyGame/Example/StructOfStructsOfStructs.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.11.22 + flatc version: 22.11.23 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/StructOfStructsOfStructs.nim b/tests/MyGame/Example/StructOfStructsOfStructs.nim index 2a03f2901d..bbc09f5ad7 100644 --- a/tests/MyGame/Example/StructOfStructsOfStructs.nim +++ b/tests/MyGame/Example/StructOfStructsOfStructs.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.11.22 + flatc version: 22.11.23 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example/Test.lua b/tests/MyGame/Example/Test.lua index d4b5e995a5..5a56b6f578 100644 --- a/tests/MyGame/Example/Test.lua +++ b/tests/MyGame/Example/Test.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.11.22 + flatc version: 22.11.23 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/Test.nim b/tests/MyGame/Example/Test.nim index 7440b220db..63a2e1a155 100644 --- a/tests/MyGame/Example/Test.nim +++ b/tests/MyGame/Example/Test.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.11.22 + flatc version: 22.11.23 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example/TestSimpleTableWithEnum.cs b/tests/MyGame/Example/TestSimpleTableWithEnum.cs index b803a02dbe..9bc421c192 100644 --- a/tests/MyGame/Example/TestSimpleTableWithEnum.cs +++ b/tests/MyGame/Example/TestSimpleTableWithEnum.cs @@ -13,7 +13,7 @@ internal partial struct TestSimpleTableWithEnum : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_11_22(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_11_23(); } public static TestSimpleTableWithEnum GetRootAsTestSimpleTableWithEnum(ByteBuffer _bb) { return GetRootAsTestSimpleTableWithEnum(_bb, new TestSimpleTableWithEnum()); } public static TestSimpleTableWithEnum GetRootAsTestSimpleTableWithEnum(ByteBuffer _bb, TestSimpleTableWithEnum obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/MyGame/Example/TestSimpleTableWithEnum.java b/tests/MyGame/Example/TestSimpleTableWithEnum.java index 249192c4d9..7c26cd5bb2 100644 --- a/tests/MyGame/Example/TestSimpleTableWithEnum.java +++ b/tests/MyGame/Example/TestSimpleTableWithEnum.java @@ -9,7 +9,7 @@ @SuppressWarnings("unused") final class TestSimpleTableWithEnum extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_22_11_22(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_22_11_23(); } public static TestSimpleTableWithEnum getRootAsTestSimpleTableWithEnum(ByteBuffer _bb) { return getRootAsTestSimpleTableWithEnum(_bb, new TestSimpleTableWithEnum()); } public static TestSimpleTableWithEnum getRootAsTestSimpleTableWithEnum(ByteBuffer _bb, TestSimpleTableWithEnum obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/tests/MyGame/Example/TestSimpleTableWithEnum.kt b/tests/MyGame/Example/TestSimpleTableWithEnum.kt index b0305a74b4..180cbd9709 100644 --- a/tests/MyGame/Example/TestSimpleTableWithEnum.kt +++ b/tests/MyGame/Example/TestSimpleTableWithEnum.kt @@ -31,7 +31,7 @@ class TestSimpleTableWithEnum : Table() { } } companion object { - fun validateVersion() = Constants.FLATBUFFERS_22_11_22() + fun validateVersion() = Constants.FLATBUFFERS_22_11_23() fun getRootAsTestSimpleTableWithEnum(_bb: ByteBuffer): TestSimpleTableWithEnum = getRootAsTestSimpleTableWithEnum(_bb, TestSimpleTableWithEnum()) fun getRootAsTestSimpleTableWithEnum(_bb: ByteBuffer, obj: TestSimpleTableWithEnum): TestSimpleTableWithEnum { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/MyGame/Example/TestSimpleTableWithEnum.lua b/tests/MyGame/Example/TestSimpleTableWithEnum.lua index c2e20d2372..de676afaab 100644 --- a/tests/MyGame/Example/TestSimpleTableWithEnum.lua +++ b/tests/MyGame/Example/TestSimpleTableWithEnum.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.11.22 + flatc version: 22.11.23 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/TestSimpleTableWithEnum.nim b/tests/MyGame/Example/TestSimpleTableWithEnum.nim index dfc30bb287..4e0c049d44 100644 --- a/tests/MyGame/Example/TestSimpleTableWithEnum.nim +++ b/tests/MyGame/Example/TestSimpleTableWithEnum.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.11.22 + flatc version: 22.11.23 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example/TypeAliases.cs b/tests/MyGame/Example/TypeAliases.cs index f21f896b14..cf58f86ac9 100644 --- a/tests/MyGame/Example/TypeAliases.cs +++ b/tests/MyGame/Example/TypeAliases.cs @@ -13,7 +13,7 @@ public struct TypeAliases : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_11_22(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_11_23(); } public static TypeAliases GetRootAsTypeAliases(ByteBuffer _bb) { return GetRootAsTypeAliases(_bb, new TypeAliases()); } public static TypeAliases GetRootAsTypeAliases(ByteBuffer _bb, TypeAliases obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/MyGame/Example/TypeAliases.java b/tests/MyGame/Example/TypeAliases.java index cd6711b1c0..6d8626db8b 100644 --- a/tests/MyGame/Example/TypeAliases.java +++ b/tests/MyGame/Example/TypeAliases.java @@ -9,7 +9,7 @@ @SuppressWarnings("unused") public final class TypeAliases extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_22_11_22(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_22_11_23(); } public static TypeAliases getRootAsTypeAliases(ByteBuffer _bb) { return getRootAsTypeAliases(_bb, new TypeAliases()); } public static TypeAliases getRootAsTypeAliases(ByteBuffer _bb, TypeAliases obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/tests/MyGame/Example/TypeAliases.kt b/tests/MyGame/Example/TypeAliases.kt index 5af788d3dd..bc857c35b9 100644 --- a/tests/MyGame/Example/TypeAliases.kt +++ b/tests/MyGame/Example/TypeAliases.kt @@ -203,7 +203,7 @@ class TypeAliases : Table() { } } companion object { - fun validateVersion() = Constants.FLATBUFFERS_22_11_22() + fun validateVersion() = Constants.FLATBUFFERS_22_11_23() fun getRootAsTypeAliases(_bb: ByteBuffer): TypeAliases = getRootAsTypeAliases(_bb, TypeAliases()) fun getRootAsTypeAliases(_bb: ByteBuffer, obj: TypeAliases): TypeAliases { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/MyGame/Example/TypeAliases.lua b/tests/MyGame/Example/TypeAliases.lua index eb956d838d..49398e1f32 100644 --- a/tests/MyGame/Example/TypeAliases.lua +++ b/tests/MyGame/Example/TypeAliases.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.11.22 + flatc version: 22.11.23 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/TypeAliases.nim b/tests/MyGame/Example/TypeAliases.nim index 21ca212996..a76987a07e 100644 --- a/tests/MyGame/Example/TypeAliases.nim +++ b/tests/MyGame/Example/TypeAliases.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.11.22 + flatc version: 22.11.23 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example/Vec3.lua b/tests/MyGame/Example/Vec3.lua index 1c964bc123..7eade3d4c5 100644 --- a/tests/MyGame/Example/Vec3.lua +++ b/tests/MyGame/Example/Vec3.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.11.22 + flatc version: 22.11.23 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/Vec3.nim b/tests/MyGame/Example/Vec3.nim index 8fa4ba0052..9de4dafe78 100644 --- a/tests/MyGame/Example/Vec3.nim +++ b/tests/MyGame/Example/Vec3.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.11.22 + flatc version: 22.11.23 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example2/Monster.cs b/tests/MyGame/Example2/Monster.cs index 425a333580..5758609f55 100644 --- a/tests/MyGame/Example2/Monster.cs +++ b/tests/MyGame/Example2/Monster.cs @@ -13,7 +13,7 @@ public struct Monster : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_11_22(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_11_23(); } public static Monster GetRootAsMonster(ByteBuffer _bb) { return GetRootAsMonster(_bb, new Monster()); } public static Monster GetRootAsMonster(ByteBuffer _bb, Monster obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/MyGame/Example2/Monster.java b/tests/MyGame/Example2/Monster.java index 1c3fec852b..9fe22f71cb 100644 --- a/tests/MyGame/Example2/Monster.java +++ b/tests/MyGame/Example2/Monster.java @@ -9,7 +9,7 @@ @SuppressWarnings("unused") public final class Monster extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_22_11_22(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_22_11_23(); } public static Monster getRootAsMonster(ByteBuffer _bb) { return getRootAsMonster(_bb, new Monster()); } public static Monster getRootAsMonster(ByteBuffer _bb, Monster obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/tests/MyGame/Example2/Monster.kt b/tests/MyGame/Example2/Monster.kt index 3b2ab6293f..39ae14fa28 100644 --- a/tests/MyGame/Example2/Monster.kt +++ b/tests/MyGame/Example2/Monster.kt @@ -17,7 +17,7 @@ class Monster : Table() { return this } companion object { - fun validateVersion() = Constants.FLATBUFFERS_22_11_22() + fun validateVersion() = Constants.FLATBUFFERS_22_11_23() fun getRootAsMonster(_bb: ByteBuffer): Monster = getRootAsMonster(_bb, Monster()) fun getRootAsMonster(_bb: ByteBuffer, obj: Monster): Monster { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/MyGame/Example2/Monster.lua b/tests/MyGame/Example2/Monster.lua index 991949bb79..98ec25aed7 100644 --- a/tests/MyGame/Example2/Monster.lua +++ b/tests/MyGame/Example2/Monster.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.11.22 + flatc version: 22.11.23 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example2/Monster.nim b/tests/MyGame/Example2/Monster.nim index b72e2b44f6..856a35182f 100644 --- a/tests/MyGame/Example2/Monster.nim +++ b/tests/MyGame/Example2/Monster.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.11.22 + flatc version: 22.11.23 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/InParentNamespace.cs b/tests/MyGame/InParentNamespace.cs index 0c36adc905..d30faa5bc5 100644 --- a/tests/MyGame/InParentNamespace.cs +++ b/tests/MyGame/InParentNamespace.cs @@ -13,7 +13,7 @@ public struct InParentNamespace : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_11_22(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_11_23(); } public static InParentNamespace GetRootAsInParentNamespace(ByteBuffer _bb) { return GetRootAsInParentNamespace(_bb, new InParentNamespace()); } public static InParentNamespace GetRootAsInParentNamespace(ByteBuffer _bb, InParentNamespace obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/MyGame/InParentNamespace.java b/tests/MyGame/InParentNamespace.java index 5c715e18bf..35e26c27a8 100644 --- a/tests/MyGame/InParentNamespace.java +++ b/tests/MyGame/InParentNamespace.java @@ -9,7 +9,7 @@ @SuppressWarnings("unused") public final class InParentNamespace extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_22_11_22(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_22_11_23(); } public static InParentNamespace getRootAsInParentNamespace(ByteBuffer _bb) { return getRootAsInParentNamespace(_bb, new InParentNamespace()); } public static InParentNamespace getRootAsInParentNamespace(ByteBuffer _bb, InParentNamespace obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/tests/MyGame/InParentNamespace.kt b/tests/MyGame/InParentNamespace.kt index f20f08fdaf..b946d663a1 100644 --- a/tests/MyGame/InParentNamespace.kt +++ b/tests/MyGame/InParentNamespace.kt @@ -17,7 +17,7 @@ class InParentNamespace : Table() { return this } companion object { - fun validateVersion() = Constants.FLATBUFFERS_22_11_22() + fun validateVersion() = Constants.FLATBUFFERS_22_11_23() fun getRootAsInParentNamespace(_bb: ByteBuffer): InParentNamespace = getRootAsInParentNamespace(_bb, InParentNamespace()) fun getRootAsInParentNamespace(_bb: ByteBuffer, obj: InParentNamespace): InParentNamespace { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/MyGame/InParentNamespace.lua b/tests/MyGame/InParentNamespace.lua index 56ac74e2e1..b531c1adbc 100644 --- a/tests/MyGame/InParentNamespace.lua +++ b/tests/MyGame/InParentNamespace.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.11.22 + flatc version: 22.11.23 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/InParentNamespace.nim b/tests/MyGame/InParentNamespace.nim index 29e72b317e..cdb6e9e700 100644 --- a/tests/MyGame/InParentNamespace.nim +++ b/tests/MyGame/InParentNamespace.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.11.22 + flatc version: 22.11.23 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/MonsterExtra.cs b/tests/MyGame/MonsterExtra.cs index 1321ddb2b0..dcc7637695 100644 --- a/tests/MyGame/MonsterExtra.cs +++ b/tests/MyGame/MonsterExtra.cs @@ -13,7 +13,7 @@ public struct MonsterExtra : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_11_22(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_11_23(); } public static MonsterExtra GetRootAsMonsterExtra(ByteBuffer _bb) { return GetRootAsMonsterExtra(_bb, new MonsterExtra()); } public static MonsterExtra GetRootAsMonsterExtra(ByteBuffer _bb, MonsterExtra obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public static bool MonsterExtraBufferHasIdentifier(ByteBuffer _bb) { return Table.__has_identifier(_bb, "MONE"); } diff --git a/tests/MyGame/MonsterExtra.java b/tests/MyGame/MonsterExtra.java index 9af57b524a..5699076f47 100644 --- a/tests/MyGame/MonsterExtra.java +++ b/tests/MyGame/MonsterExtra.java @@ -9,7 +9,7 @@ @SuppressWarnings("unused") public final class MonsterExtra extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_22_11_22(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_22_11_23(); } public static MonsterExtra getRootAsMonsterExtra(ByteBuffer _bb) { return getRootAsMonsterExtra(_bb, new MonsterExtra()); } public static MonsterExtra getRootAsMonsterExtra(ByteBuffer _bb, MonsterExtra obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public static boolean MonsterExtraBufferHasIdentifier(ByteBuffer _bb) { return __has_identifier(_bb, "MONE"); } diff --git a/tests/MyGame/MonsterExtra.kt b/tests/MyGame/MonsterExtra.kt index 80ed12daf6..bd5e306202 100644 --- a/tests/MyGame/MonsterExtra.kt +++ b/tests/MyGame/MonsterExtra.kt @@ -175,7 +175,7 @@ class MonsterExtra : Table() { } } companion object { - fun validateVersion() = Constants.FLATBUFFERS_22_11_22() + fun validateVersion() = Constants.FLATBUFFERS_22_11_23() fun getRootAsMonsterExtra(_bb: ByteBuffer): MonsterExtra = getRootAsMonsterExtra(_bb, MonsterExtra()) fun getRootAsMonsterExtra(_bb: ByteBuffer, obj: MonsterExtra): MonsterExtra { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/MyGame/OtherNameSpace/FromInclude.lua b/tests/MyGame/OtherNameSpace/FromInclude.lua index 5dd525a9a9..184355993f 100644 --- a/tests/MyGame/OtherNameSpace/FromInclude.lua +++ b/tests/MyGame/OtherNameSpace/FromInclude.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.11.22 + flatc version: 22.11.23 Declared by : //include_test/sub/include_test2.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/OtherNameSpace/FromInclude.nim b/tests/MyGame/OtherNameSpace/FromInclude.nim index dd6e0a68dc..cf1429696d 100644 --- a/tests/MyGame/OtherNameSpace/FromInclude.nim +++ b/tests/MyGame/OtherNameSpace/FromInclude.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.11.22 + flatc version: 22.11.23 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/OtherNameSpace/TableB.lua b/tests/MyGame/OtherNameSpace/TableB.lua index 80e5424d47..d23cb9ad8c 100644 --- a/tests/MyGame/OtherNameSpace/TableB.lua +++ b/tests/MyGame/OtherNameSpace/TableB.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.11.22 + flatc version: 22.11.23 Declared by : //include_test/sub/include_test2.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/OtherNameSpace/TableB.nim b/tests/MyGame/OtherNameSpace/TableB.nim index 5cc5f3faab..0288d346a6 100644 --- a/tests/MyGame/OtherNameSpace/TableB.nim +++ b/tests/MyGame/OtherNameSpace/TableB.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.11.22 + flatc version: 22.11.23 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/OtherNameSpace/Unused.lua b/tests/MyGame/OtherNameSpace/Unused.lua index 45baad0b8c..6e4065f3bc 100644 --- a/tests/MyGame/OtherNameSpace/Unused.lua +++ b/tests/MyGame/OtherNameSpace/Unused.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.11.22 + flatc version: 22.11.23 Declared by : //include_test/sub/include_test2.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/OtherNameSpace/Unused.nim b/tests/MyGame/OtherNameSpace/Unused.nim index 86aba51262..8beee41bcc 100644 --- a/tests/MyGame/OtherNameSpace/Unused.nim +++ b/tests/MyGame/OtherNameSpace/Unused.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.11.22 + flatc version: 22.11.23 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/Property.nim b/tests/Property.nim index ad1671ea26..0524e39149 100644 --- a/tests/Property.nim +++ b/tests/Property.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.11.22 + flatc version: 22.11.23 Declared by : ]# diff --git a/tests/TableA.lua b/tests/TableA.lua index 20abe4f40b..ed0741e1a9 100644 --- a/tests/TableA.lua +++ b/tests/TableA.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.11.22 + flatc version: 22.11.23 Declared by : //include_test/include_test1.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/TableA.nim b/tests/TableA.nim index b8d8711cdd..17252c671a 100644 --- a/tests/TableA.nim +++ b/tests/TableA.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.11.22 + flatc version: 22.11.23 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/TestMutatingBool.nim b/tests/TestMutatingBool.nim index efe96ef361..ed4e2a50bc 100644 --- a/tests/TestMutatingBool.nim +++ b/tests/TestMutatingBool.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.11.22 + flatc version: 22.11.23 Declared by : ]# diff --git a/tests/alignment_test_generated.h b/tests/alignment_test_generated.h index 15b164cea2..aeaa2efee6 100644 --- a/tests/alignment_test_generated.h +++ b/tests/alignment_test_generated.h @@ -10,7 +10,7 @@ // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 22 && FLATBUFFERS_VERSION_MINOR == 11 && - FLATBUFFERS_VERSION_REVISION == 22, + FLATBUFFERS_VERSION_REVISION == 23, "Non-compatible flatbuffers version included"); struct BadAlignmentSmall; diff --git a/tests/arrays_test_generated.h b/tests/arrays_test_generated.h index 2d96e8b108..84c94c1441 100644 --- a/tests/arrays_test_generated.h +++ b/tests/arrays_test_generated.h @@ -10,7 +10,7 @@ // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 22 && FLATBUFFERS_VERSION_MINOR == 11 && - FLATBUFFERS_VERSION_REVISION == 22, + FLATBUFFERS_VERSION_REVISION == 23, "Non-compatible flatbuffers version included"); namespace MyGame { diff --git a/tests/cpp17/generated_cpp17/monster_test_generated.h b/tests/cpp17/generated_cpp17/monster_test_generated.h index 07f337b778..7880a01d8c 100644 --- a/tests/cpp17/generated_cpp17/monster_test_generated.h +++ b/tests/cpp17/generated_cpp17/monster_test_generated.h @@ -12,7 +12,7 @@ // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 22 && FLATBUFFERS_VERSION_MINOR == 11 && - FLATBUFFERS_VERSION_REVISION == 22, + FLATBUFFERS_VERSION_REVISION == 23, "Non-compatible flatbuffers version included"); namespace MyGame { diff --git a/tests/cpp17/generated_cpp17/optional_scalars_generated.h b/tests/cpp17/generated_cpp17/optional_scalars_generated.h index 0c04a63978..5f1e35434f 100644 --- a/tests/cpp17/generated_cpp17/optional_scalars_generated.h +++ b/tests/cpp17/generated_cpp17/optional_scalars_generated.h @@ -10,7 +10,7 @@ // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 22 && FLATBUFFERS_VERSION_MINOR == 11 && - FLATBUFFERS_VERSION_REVISION == 22, + FLATBUFFERS_VERSION_REVISION == 23, "Non-compatible flatbuffers version included"); namespace optional_scalars { diff --git a/tests/cpp17/generated_cpp17/union_vector_generated.h b/tests/cpp17/generated_cpp17/union_vector_generated.h index dca9493d06..09c2562bbf 100644 --- a/tests/cpp17/generated_cpp17/union_vector_generated.h +++ b/tests/cpp17/generated_cpp17/union_vector_generated.h @@ -10,7 +10,7 @@ // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 22 && FLATBUFFERS_VERSION_MINOR == 11 && - FLATBUFFERS_VERSION_REVISION == 22, + FLATBUFFERS_VERSION_REVISION == 23, "Non-compatible flatbuffers version included"); struct Attacker; diff --git a/tests/evolution_test/evolution_v1_generated.h b/tests/evolution_test/evolution_v1_generated.h index e1524a451c..0cdc201f82 100644 --- a/tests/evolution_test/evolution_v1_generated.h +++ b/tests/evolution_test/evolution_v1_generated.h @@ -10,7 +10,7 @@ // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 22 && FLATBUFFERS_VERSION_MINOR == 11 && - FLATBUFFERS_VERSION_REVISION == 22, + FLATBUFFERS_VERSION_REVISION == 23, "Non-compatible flatbuffers version included"); namespace Evolution { diff --git a/tests/evolution_test/evolution_v2_generated.h b/tests/evolution_test/evolution_v2_generated.h index d61417b61d..0f075016bd 100644 --- a/tests/evolution_test/evolution_v2_generated.h +++ b/tests/evolution_test/evolution_v2_generated.h @@ -10,7 +10,7 @@ // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 22 && FLATBUFFERS_VERSION_MINOR == 11 && - FLATBUFFERS_VERSION_REVISION == 22, + FLATBUFFERS_VERSION_REVISION == 23, "Non-compatible flatbuffers version included"); namespace Evolution { diff --git a/tests/key_field/key_field_sample_generated.h b/tests/key_field/key_field_sample_generated.h index cbcd0e9b6d..1bcb897624 100644 --- a/tests/key_field/key_field_sample_generated.h +++ b/tests/key_field/key_field_sample_generated.h @@ -10,7 +10,7 @@ // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 22 && FLATBUFFERS_VERSION_MINOR == 11 && - FLATBUFFERS_VERSION_REVISION == 22, + FLATBUFFERS_VERSION_REVISION == 23, "Non-compatible flatbuffers version included"); namespace keyfield { diff --git a/tests/monster_extra_generated.h b/tests/monster_extra_generated.h index 3f7db899ff..822baef0a2 100644 --- a/tests/monster_extra_generated.h +++ b/tests/monster_extra_generated.h @@ -10,7 +10,7 @@ // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 22 && FLATBUFFERS_VERSION_MINOR == 11 && - FLATBUFFERS_VERSION_REVISION == 22, + FLATBUFFERS_VERSION_REVISION == 23, "Non-compatible flatbuffers version included"); namespace MyGame { diff --git a/tests/monster_test_bfbs_generated.h b/tests/monster_test_bfbs_generated.h index 35d72a5ff4..b450913897 100644 --- a/tests/monster_test_bfbs_generated.h +++ b/tests/monster_test_bfbs_generated.h @@ -10,7 +10,7 @@ // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 22 && FLATBUFFERS_VERSION_MINOR == 11 && - FLATBUFFERS_VERSION_REVISION == 22, + FLATBUFFERS_VERSION_REVISION == 23, "Non-compatible flatbuffers version included"); namespace MyGame { diff --git a/tests/monster_test_generated.h b/tests/monster_test_generated.h index 47d253f83a..f6553f5fd6 100644 --- a/tests/monster_test_generated.h +++ b/tests/monster_test_generated.h @@ -12,7 +12,7 @@ // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 22 && FLATBUFFERS_VERSION_MINOR == 11 && - FLATBUFFERS_VERSION_REVISION == 22, + FLATBUFFERS_VERSION_REVISION == 23, "Non-compatible flatbuffers version included"); namespace MyGame { diff --git a/tests/monster_test_suffix/ext_only/monster_test_generated.hpp b/tests/monster_test_suffix/ext_only/monster_test_generated.hpp index 47d253f83a..f6553f5fd6 100644 --- a/tests/monster_test_suffix/ext_only/monster_test_generated.hpp +++ b/tests/monster_test_suffix/ext_only/monster_test_generated.hpp @@ -12,7 +12,7 @@ // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 22 && FLATBUFFERS_VERSION_MINOR == 11 && - FLATBUFFERS_VERSION_REVISION == 22, + FLATBUFFERS_VERSION_REVISION == 23, "Non-compatible flatbuffers version included"); namespace MyGame { diff --git a/tests/monster_test_suffix/filesuffix_only/monster_test_suffix.h b/tests/monster_test_suffix/filesuffix_only/monster_test_suffix.h index 47d253f83a..f6553f5fd6 100644 --- a/tests/monster_test_suffix/filesuffix_only/monster_test_suffix.h +++ b/tests/monster_test_suffix/filesuffix_only/monster_test_suffix.h @@ -12,7 +12,7 @@ // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 22 && FLATBUFFERS_VERSION_MINOR == 11 && - FLATBUFFERS_VERSION_REVISION == 22, + FLATBUFFERS_VERSION_REVISION == 23, "Non-compatible flatbuffers version included"); namespace MyGame { diff --git a/tests/monster_test_suffix/monster_test_suffix.hpp b/tests/monster_test_suffix/monster_test_suffix.hpp index 47d253f83a..f6553f5fd6 100644 --- a/tests/monster_test_suffix/monster_test_suffix.hpp +++ b/tests/monster_test_suffix/monster_test_suffix.hpp @@ -12,7 +12,7 @@ // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 22 && FLATBUFFERS_VERSION_MINOR == 11 && - FLATBUFFERS_VERSION_REVISION == 22, + FLATBUFFERS_VERSION_REVISION == 23, "Non-compatible flatbuffers version included"); namespace MyGame { diff --git a/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.cs b/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.cs index 1802b1e30d..5a0e7bded7 100644 --- a/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.cs +++ b/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.cs @@ -13,7 +13,7 @@ public struct TableInNestedNS : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_11_22(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_11_23(); } public static TableInNestedNS GetRootAsTableInNestedNS(ByteBuffer _bb) { return GetRootAsTableInNestedNS(_bb, new TableInNestedNS()); } public static TableInNestedNS GetRootAsTableInNestedNS(ByteBuffer _bb, TableInNestedNS obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.java b/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.java index afdebfecba..591d542240 100644 --- a/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.java +++ b/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.java @@ -9,7 +9,7 @@ @SuppressWarnings("unused") public final class TableInNestedNS extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_22_11_22(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_22_11_23(); } public static TableInNestedNS getRootAsTableInNestedNS(ByteBuffer _bb) { return getRootAsTableInNestedNS(_bb, new TableInNestedNS()); } public static TableInNestedNS getRootAsTableInNestedNS(ByteBuffer _bb, TableInNestedNS obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.kt b/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.kt index d881c1f3fb..a3c53df6e8 100644 --- a/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.kt +++ b/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.kt @@ -32,7 +32,7 @@ class TableInNestedNS : Table() { } } companion object { - fun validateVersion() = Constants.FLATBUFFERS_22_11_22() + fun validateVersion() = Constants.FLATBUFFERS_22_11_23() fun getRootAsTableInNestedNS(_bb: ByteBuffer): TableInNestedNS = getRootAsTableInNestedNS(_bb, TableInNestedNS()) fun getRootAsTableInNestedNS(_bb: ByteBuffer, obj: TableInNestedNS): TableInNestedNS { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/namespace_test/NamespaceA/SecondTableInA.cs b/tests/namespace_test/NamespaceA/SecondTableInA.cs index 547259032c..1b49c96455 100644 --- a/tests/namespace_test/NamespaceA/SecondTableInA.cs +++ b/tests/namespace_test/NamespaceA/SecondTableInA.cs @@ -13,7 +13,7 @@ public struct SecondTableInA : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_11_22(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_11_23(); } public static SecondTableInA GetRootAsSecondTableInA(ByteBuffer _bb) { return GetRootAsSecondTableInA(_bb, new SecondTableInA()); } public static SecondTableInA GetRootAsSecondTableInA(ByteBuffer _bb, SecondTableInA obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/namespace_test/NamespaceA/SecondTableInA.java b/tests/namespace_test/NamespaceA/SecondTableInA.java index 309b84a0ae..c9a9187611 100644 --- a/tests/namespace_test/NamespaceA/SecondTableInA.java +++ b/tests/namespace_test/NamespaceA/SecondTableInA.java @@ -9,7 +9,7 @@ @SuppressWarnings("unused") public final class SecondTableInA extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_22_11_22(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_22_11_23(); } public static SecondTableInA getRootAsSecondTableInA(ByteBuffer _bb) { return getRootAsSecondTableInA(_bb, new SecondTableInA()); } public static SecondTableInA getRootAsSecondTableInA(ByteBuffer _bb, SecondTableInA obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/tests/namespace_test/NamespaceA/SecondTableInA.kt b/tests/namespace_test/NamespaceA/SecondTableInA.kt index 8daf096f1e..b289d179ab 100644 --- a/tests/namespace_test/NamespaceA/SecondTableInA.kt +++ b/tests/namespace_test/NamespaceA/SecondTableInA.kt @@ -27,7 +27,7 @@ class SecondTableInA : Table() { } } companion object { - fun validateVersion() = Constants.FLATBUFFERS_22_11_22() + fun validateVersion() = Constants.FLATBUFFERS_22_11_23() fun getRootAsSecondTableInA(_bb: ByteBuffer): SecondTableInA = getRootAsSecondTableInA(_bb, SecondTableInA()) fun getRootAsSecondTableInA(_bb: ByteBuffer, obj: SecondTableInA): SecondTableInA { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/namespace_test/NamespaceA/TableInFirstNS.cs b/tests/namespace_test/NamespaceA/TableInFirstNS.cs index cd3e8e8441..710fca16df 100644 --- a/tests/namespace_test/NamespaceA/TableInFirstNS.cs +++ b/tests/namespace_test/NamespaceA/TableInFirstNS.cs @@ -13,7 +13,7 @@ public struct TableInFirstNS : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_11_22(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_11_23(); } public static TableInFirstNS GetRootAsTableInFirstNS(ByteBuffer _bb) { return GetRootAsTableInFirstNS(_bb, new TableInFirstNS()); } public static TableInFirstNS GetRootAsTableInFirstNS(ByteBuffer _bb, TableInFirstNS obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/namespace_test/NamespaceA/TableInFirstNS.java b/tests/namespace_test/NamespaceA/TableInFirstNS.java index a69e30ddf0..6adae86582 100644 --- a/tests/namespace_test/NamespaceA/TableInFirstNS.java +++ b/tests/namespace_test/NamespaceA/TableInFirstNS.java @@ -9,7 +9,7 @@ @SuppressWarnings("unused") public final class TableInFirstNS extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_22_11_22(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_22_11_23(); } public static TableInFirstNS getRootAsTableInFirstNS(ByteBuffer _bb) { return getRootAsTableInFirstNS(_bb, new TableInFirstNS()); } public static TableInFirstNS getRootAsTableInFirstNS(ByteBuffer _bb, TableInFirstNS obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/tests/namespace_test/NamespaceA/TableInFirstNS.kt b/tests/namespace_test/NamespaceA/TableInFirstNS.kt index c307f67aae..81d9f8a511 100644 --- a/tests/namespace_test/NamespaceA/TableInFirstNS.kt +++ b/tests/namespace_test/NamespaceA/TableInFirstNS.kt @@ -67,7 +67,7 @@ class TableInFirstNS : Table() { } } companion object { - fun validateVersion() = Constants.FLATBUFFERS_22_11_22() + fun validateVersion() = Constants.FLATBUFFERS_22_11_23() fun getRootAsTableInFirstNS(_bb: ByteBuffer): TableInFirstNS = getRootAsTableInFirstNS(_bb, TableInFirstNS()) fun getRootAsTableInFirstNS(_bb: ByteBuffer, obj: TableInFirstNS): TableInFirstNS { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/namespace_test/NamespaceC/TableInC.cs b/tests/namespace_test/NamespaceC/TableInC.cs index de5b32a28e..0851abdd2c 100644 --- a/tests/namespace_test/NamespaceC/TableInC.cs +++ b/tests/namespace_test/NamespaceC/TableInC.cs @@ -13,7 +13,7 @@ public struct TableInC : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_11_22(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_11_23(); } public static TableInC GetRootAsTableInC(ByteBuffer _bb) { return GetRootAsTableInC(_bb, new TableInC()); } public static TableInC GetRootAsTableInC(ByteBuffer _bb, TableInC obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/namespace_test/NamespaceC/TableInC.java b/tests/namespace_test/NamespaceC/TableInC.java index 401d33a9ae..15fc5f4759 100644 --- a/tests/namespace_test/NamespaceC/TableInC.java +++ b/tests/namespace_test/NamespaceC/TableInC.java @@ -9,7 +9,7 @@ @SuppressWarnings("unused") public final class TableInC extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_22_11_22(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_22_11_23(); } public static TableInC getRootAsTableInC(ByteBuffer _bb) { return getRootAsTableInC(_bb, new TableInC()); } public static TableInC getRootAsTableInC(ByteBuffer _bb, TableInC obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/tests/namespace_test/NamespaceC/TableInC.kt b/tests/namespace_test/NamespaceC/TableInC.kt index be5d1e06c0..bdca51d7b0 100644 --- a/tests/namespace_test/NamespaceC/TableInC.kt +++ b/tests/namespace_test/NamespaceC/TableInC.kt @@ -36,7 +36,7 @@ class TableInC : Table() { } } companion object { - fun validateVersion() = Constants.FLATBUFFERS_22_11_22() + fun validateVersion() = Constants.FLATBUFFERS_22_11_23() fun getRootAsTableInC(_bb: ByteBuffer): TableInC = getRootAsTableInC(_bb, TableInC()) fun getRootAsTableInC(_bb: ByteBuffer, obj: TableInC): TableInC { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/namespace_test/namespace_test1_generated.h b/tests/namespace_test/namespace_test1_generated.h index ffa5e47da1..8f0fd18e1e 100644 --- a/tests/namespace_test/namespace_test1_generated.h +++ b/tests/namespace_test/namespace_test1_generated.h @@ -10,7 +10,7 @@ // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 22 && FLATBUFFERS_VERSION_MINOR == 11 && - FLATBUFFERS_VERSION_REVISION == 22, + FLATBUFFERS_VERSION_REVISION == 23, "Non-compatible flatbuffers version included"); namespace NamespaceA { diff --git a/tests/namespace_test/namespace_test2_generated.h b/tests/namespace_test/namespace_test2_generated.h index f0310d6cbe..cf0f1d5758 100644 --- a/tests/namespace_test/namespace_test2_generated.h +++ b/tests/namespace_test/namespace_test2_generated.h @@ -10,7 +10,7 @@ // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 22 && FLATBUFFERS_VERSION_MINOR == 11 && - FLATBUFFERS_VERSION_REVISION == 22, + FLATBUFFERS_VERSION_REVISION == 23, "Non-compatible flatbuffers version included"); namespace NamespaceA { diff --git a/tests/native_inline_table_test_generated.h b/tests/native_inline_table_test_generated.h index e2c413ebd6..b5123ed2b2 100644 --- a/tests/native_inline_table_test_generated.h +++ b/tests/native_inline_table_test_generated.h @@ -10,7 +10,7 @@ // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 22 && FLATBUFFERS_VERSION_MINOR == 11 && - FLATBUFFERS_VERSION_REVISION == 22, + FLATBUFFERS_VERSION_REVISION == 23, "Non-compatible flatbuffers version included"); struct NativeInlineTable; diff --git a/tests/native_type_test_generated.h b/tests/native_type_test_generated.h index f0ccb4caef..d80b059fdf 100644 --- a/tests/native_type_test_generated.h +++ b/tests/native_type_test_generated.h @@ -10,7 +10,7 @@ // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 22 && FLATBUFFERS_VERSION_MINOR == 11 && - FLATBUFFERS_VERSION_REVISION == 22, + FLATBUFFERS_VERSION_REVISION == 23, "Non-compatible flatbuffers version included"); #include "native_type_test_impl.h" diff --git a/tests/nested_namespace_test/nested_namespace_test3_generated.cs b/tests/nested_namespace_test/nested_namespace_test3_generated.cs index 83158bc952..5bc452ab8a 100644 --- a/tests/nested_namespace_test/nested_namespace_test3_generated.cs +++ b/tests/nested_namespace_test/nested_namespace_test3_generated.cs @@ -13,7 +13,7 @@ public struct ColorTestTable : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_11_22(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_11_23(); } public static ColorTestTable GetRootAsColorTestTable(ByteBuffer _bb) { return GetRootAsColorTestTable(_bb, new ColorTestTable()); } public static ColorTestTable GetRootAsColorTestTable(ByteBuffer _bb, ColorTestTable obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/optional_scalars/OptionalByte.nim b/tests/optional_scalars/OptionalByte.nim index 972e35f897..e709c1cca5 100644 --- a/tests/optional_scalars/OptionalByte.nim +++ b/tests/optional_scalars/OptionalByte.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.11.22 + flatc version: 22.11.23 Declared by : Rooting type : optional_scalars.ScalarStuff () diff --git a/tests/optional_scalars/ScalarStuff.cs b/tests/optional_scalars/ScalarStuff.cs index f3d4ca4f81..f86ea5f73f 100644 --- a/tests/optional_scalars/ScalarStuff.cs +++ b/tests/optional_scalars/ScalarStuff.cs @@ -13,7 +13,7 @@ public struct ScalarStuff : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_11_22(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_11_23(); } public static ScalarStuff GetRootAsScalarStuff(ByteBuffer _bb) { return GetRootAsScalarStuff(_bb, new ScalarStuff()); } public static ScalarStuff GetRootAsScalarStuff(ByteBuffer _bb, ScalarStuff obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public static bool ScalarStuffBufferHasIdentifier(ByteBuffer _bb) { return Table.__has_identifier(_bb, "NULL"); } diff --git a/tests/optional_scalars/ScalarStuff.java b/tests/optional_scalars/ScalarStuff.java index 624c374c5b..d654a0b15f 100644 --- a/tests/optional_scalars/ScalarStuff.java +++ b/tests/optional_scalars/ScalarStuff.java @@ -9,7 +9,7 @@ @SuppressWarnings("unused") public final class ScalarStuff extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_22_11_22(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_22_11_23(); } public static ScalarStuff getRootAsScalarStuff(ByteBuffer _bb) { return getRootAsScalarStuff(_bb, new ScalarStuff()); } public static ScalarStuff getRootAsScalarStuff(ByteBuffer _bb, ScalarStuff obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public static boolean ScalarStuffBufferHasIdentifier(ByteBuffer _bb) { return __has_identifier(_bb, "NULL"); } diff --git a/tests/optional_scalars/ScalarStuff.kt b/tests/optional_scalars/ScalarStuff.kt index fc8b2ff559..2ee5533896 100644 --- a/tests/optional_scalars/ScalarStuff.kt +++ b/tests/optional_scalars/ScalarStuff.kt @@ -197,7 +197,7 @@ class ScalarStuff : Table() { return if(o != 0) bb.get(o + bb_pos) else 1 } companion object { - fun validateVersion() = Constants.FLATBUFFERS_22_11_22() + fun validateVersion() = Constants.FLATBUFFERS_22_11_23() fun getRootAsScalarStuff(_bb: ByteBuffer): ScalarStuff = getRootAsScalarStuff(_bb, ScalarStuff()) fun getRootAsScalarStuff(_bb: ByteBuffer, obj: ScalarStuff): ScalarStuff { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/optional_scalars/ScalarStuff.nim b/tests/optional_scalars/ScalarStuff.nim index 62d46253ca..c2ee74b806 100644 --- a/tests/optional_scalars/ScalarStuff.nim +++ b/tests/optional_scalars/ScalarStuff.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.11.22 + flatc version: 22.11.23 Declared by : Rooting type : optional_scalars.ScalarStuff () diff --git a/tests/optional_scalars_generated.h b/tests/optional_scalars_generated.h index acc0ca8b54..eccae0479e 100644 --- a/tests/optional_scalars_generated.h +++ b/tests/optional_scalars_generated.h @@ -10,7 +10,7 @@ // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 22 && FLATBUFFERS_VERSION_MINOR == 11 && - FLATBUFFERS_VERSION_REVISION == 22, + FLATBUFFERS_VERSION_REVISION == 23, "Non-compatible flatbuffers version included"); namespace optional_scalars { diff --git a/tests/swift/Wasm.tests/Tests/FlatBuffers.Test.Swift.WasmTests/monster_test_generated.swift b/tests/swift/Wasm.tests/Tests/FlatBuffers.Test.Swift.WasmTests/monster_test_generated.swift index 3a7c042301..e9ccb1e751 100644 --- a/tests/swift/Wasm.tests/Tests/FlatBuffers.Test.Swift.WasmTests/monster_test_generated.swift +++ b/tests/swift/Wasm.tests/Tests/FlatBuffers.Test.Swift.WasmTests/monster_test_generated.swift @@ -237,7 +237,7 @@ public struct MyGame_Example_AnyAmbiguousAliasesUnion { } public struct MyGame_Example_Test: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject { - static func validateVersion() { FlatBuffersVersion_22_11_22() } + static func validateVersion() { FlatBuffersVersion_22_11_23() } private var _a: Int16 private var _b: Int8 @@ -291,7 +291,7 @@ extension MyGame_Example_Test: Encodable { public struct MyGame_Example_Test_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_22_11_22() } + static func validateVersion() { FlatBuffersVersion_22_11_23() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -318,7 +318,7 @@ public struct MyGame_Example_Test_Mutable: FlatBufferObject { public struct MyGame_Example_Vec3: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject { - static func validateVersion() { FlatBuffersVersion_22_11_22() } + static func validateVersion() { FlatBuffersVersion_22_11_23() } private var _x: Float32 private var _y: Float32 @@ -413,7 +413,7 @@ extension MyGame_Example_Vec3: Encodable { public struct MyGame_Example_Vec3_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_22_11_22() } + static func validateVersion() { FlatBuffersVersion_22_11_23() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -447,7 +447,7 @@ public struct MyGame_Example_Vec3_Mutable: FlatBufferObject { public struct MyGame_Example_Ability: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject { - static func validateVersion() { FlatBuffersVersion_22_11_22() } + static func validateVersion() { FlatBuffersVersion_22_11_23() } private var _id: UInt32 private var _distance: UInt32 @@ -500,7 +500,7 @@ extension MyGame_Example_Ability: Encodable { public struct MyGame_Example_Ability_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_22_11_22() } + static func validateVersion() { FlatBuffersVersion_22_11_23() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -527,7 +527,7 @@ public struct MyGame_Example_Ability_Mutable: FlatBufferObject { public struct MyGame_Example_StructOfStructs: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject { - static func validateVersion() { FlatBuffersVersion_22_11_22() } + static func validateVersion() { FlatBuffersVersion_22_11_23() } private var _a: MyGame_Example_Ability private var _b: MyGame_Example_Test @@ -587,7 +587,7 @@ extension MyGame_Example_StructOfStructs: Encodable { public struct MyGame_Example_StructOfStructs_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_22_11_22() } + static func validateVersion() { FlatBuffersVersion_22_11_23() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -613,7 +613,7 @@ public struct MyGame_Example_StructOfStructs_Mutable: FlatBufferObject { public struct MyGame_Example_StructOfStructsOfStructs: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject { - static func validateVersion() { FlatBuffersVersion_22_11_22() } + static func validateVersion() { FlatBuffersVersion_22_11_23() } private var _a: MyGame_Example_StructOfStructs @@ -655,7 +655,7 @@ extension MyGame_Example_StructOfStructsOfStructs: Encodable { public struct MyGame_Example_StructOfStructsOfStructs_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_22_11_22() } + static func validateVersion() { FlatBuffersVersion_22_11_23() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -679,7 +679,7 @@ public struct MyGame_Example_StructOfStructsOfStructs_Mutable: FlatBufferObject public struct MyGame_InParentNamespace: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_22_11_22() } + static func validateVersion() { FlatBuffersVersion_22_11_23() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -733,7 +733,7 @@ public class MyGame_InParentNamespaceT: NativeObject { } public struct MyGame_Example2_Monster: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_22_11_22() } + static func validateVersion() { FlatBuffersVersion_22_11_23() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -787,7 +787,7 @@ public class MyGame_Example2_MonsterT: NativeObject { } internal struct MyGame_Example_TestSimpleTableWithEnum: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_22_11_22() } + static func validateVersion() { FlatBuffersVersion_22_11_23() } internal var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -870,7 +870,7 @@ internal class MyGame_Example_TestSimpleTableWithEnumT: NativeObject { } public struct MyGame_Example_Stat: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_22_11_22() } + static func validateVersion() { FlatBuffersVersion_22_11_23() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -1011,7 +1011,7 @@ public class MyGame_Example_StatT: NativeObject { } public struct MyGame_Example_Referrable: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_22_11_22() } + static func validateVersion() { FlatBuffersVersion_22_11_23() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -1119,7 +1119,7 @@ public class MyGame_Example_ReferrableT: NativeObject { /// an example documentation comment: "monster object" public struct MyGame_Example_Monster: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_22_11_22() } + static func validateVersion() { FlatBuffersVersion_22_11_23() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -2417,7 +2417,7 @@ public class MyGame_Example_MonsterT: NativeObject { } public struct MyGame_Example_TypeAliases: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_22_11_22() } + static func validateVersion() { FlatBuffersVersion_22_11_23() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table diff --git a/tests/swift/tests/CodeGenerationTests/test_import_generated.swift b/tests/swift/tests/CodeGenerationTests/test_import_generated.swift index 5f629eb47d..5455d8a64d 100644 --- a/tests/swift/tests/CodeGenerationTests/test_import_generated.swift +++ b/tests/swift/tests/CodeGenerationTests/test_import_generated.swift @@ -6,7 +6,7 @@ internal struct Message: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_22_11_22() } + static func validateVersion() { FlatBuffersVersion_22_11_23() } internal var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table diff --git a/tests/swift/tests/CodeGenerationTests/test_no_include_generated.swift b/tests/swift/tests/CodeGenerationTests/test_no_include_generated.swift index 8a4e8d8113..6890201750 100644 --- a/tests/swift/tests/CodeGenerationTests/test_no_include_generated.swift +++ b/tests/swift/tests/CodeGenerationTests/test_no_include_generated.swift @@ -4,7 +4,7 @@ public struct BytesCount: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject { - static func validateVersion() { FlatBuffersVersion_22_11_22() } + static func validateVersion() { FlatBuffersVersion_22_11_23() } private var _x: Int64 @@ -47,7 +47,7 @@ extension BytesCount: Encodable { public struct BytesCount_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_22_11_22() } + static func validateVersion() { FlatBuffersVersion_22_11_23() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -72,7 +72,7 @@ public struct BytesCount_Mutable: FlatBufferObject { public struct InternalMessage: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_22_11_22() } + static func validateVersion() { FlatBuffersVersion_22_11_23() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -157,7 +157,7 @@ public class InternalMessageT: NativeObject { } public struct Message: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_22_11_22() } + static func validateVersion() { FlatBuffersVersion_22_11_23() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table diff --git a/tests/swift/tests/Sources/SwiftFlatBuffers/fuzzer_generated.swift b/tests/swift/tests/Sources/SwiftFlatBuffers/fuzzer_generated.swift index 7f538f87a7..711367d5e5 100644 --- a/tests/swift/tests/Sources/SwiftFlatBuffers/fuzzer_generated.swift +++ b/tests/swift/tests/Sources/SwiftFlatBuffers/fuzzer_generated.swift @@ -32,7 +32,7 @@ extension Color: Encodable { public struct Test: NativeStruct, Verifiable, FlatbuffersInitializable { - static func validateVersion() { FlatBuffersVersion_22_11_22() } + static func validateVersion() { FlatBuffersVersion_22_11_23() } private var _a: Int16 private var _b: Int8 @@ -81,7 +81,7 @@ extension Test: Encodable { public struct Test_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_22_11_22() } + static func validateVersion() { FlatBuffersVersion_22_11_23() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -93,7 +93,7 @@ public struct Test_Mutable: FlatBufferObject { public struct Vec3: NativeStruct, Verifiable, FlatbuffersInitializable { - static func validateVersion() { FlatBuffersVersion_22_11_22() } + static func validateVersion() { FlatBuffersVersion_22_11_23() } private var _x: Float32 private var _y: Float32 @@ -178,7 +178,7 @@ extension Vec3: Encodable { public struct Vec3_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_22_11_22() } + static func validateVersion() { FlatBuffersVersion_22_11_23() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -195,7 +195,7 @@ public struct Vec3_Mutable: FlatBufferObject { /// an example documentation comment: "monster object" public struct Monster: FlatBufferObject, Verifiable { - static func validateVersion() { FlatBuffersVersion_22_11_22() } + static func validateVersion() { FlatBuffersVersion_22_11_23() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table diff --git a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/MutatingBool_generated.swift b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/MutatingBool_generated.swift index 83b21d0862..6b296fd211 100644 --- a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/MutatingBool_generated.swift +++ b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/MutatingBool_generated.swift @@ -6,7 +6,7 @@ import FlatBuffers public struct Property: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject { - static func validateVersion() { FlatBuffersVersion_22_11_22() } + static func validateVersion() { FlatBuffersVersion_22_11_23() } private var _property: Bool @@ -49,7 +49,7 @@ extension Property: Encodable { public struct Property_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_22_11_22() } + static func validateVersion() { FlatBuffersVersion_22_11_23() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -74,7 +74,7 @@ public struct Property_Mutable: FlatBufferObject { public struct TestMutatingBool: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_22_11_22() } + static func validateVersion() { FlatBuffersVersion_22_11_23() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table diff --git a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/monster_test_generated.swift b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/monster_test_generated.swift index 346a62081a..dad52b1e28 100644 --- a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/monster_test_generated.swift +++ b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/monster_test_generated.swift @@ -237,7 +237,7 @@ public struct MyGame_Example_AnyAmbiguousAliasesUnion { } public struct MyGame_Example_Test: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject { - static func validateVersion() { FlatBuffersVersion_22_11_22() } + static func validateVersion() { FlatBuffersVersion_22_11_23() } private var _a: Int16 private var _b: Int8 @@ -291,7 +291,7 @@ extension MyGame_Example_Test: Encodable { public struct MyGame_Example_Test_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_22_11_22() } + static func validateVersion() { FlatBuffersVersion_22_11_23() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -318,7 +318,7 @@ public struct MyGame_Example_Test_Mutable: FlatBufferObject { public struct MyGame_Example_Vec3: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject { - static func validateVersion() { FlatBuffersVersion_22_11_22() } + static func validateVersion() { FlatBuffersVersion_22_11_23() } private var _x: Float32 private var _y: Float32 @@ -413,7 +413,7 @@ extension MyGame_Example_Vec3: Encodable { public struct MyGame_Example_Vec3_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_22_11_22() } + static func validateVersion() { FlatBuffersVersion_22_11_23() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -447,7 +447,7 @@ public struct MyGame_Example_Vec3_Mutable: FlatBufferObject { public struct MyGame_Example_Ability: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject { - static func validateVersion() { FlatBuffersVersion_22_11_22() } + static func validateVersion() { FlatBuffersVersion_22_11_23() } private var _id: UInt32 private var _distance: UInt32 @@ -500,7 +500,7 @@ extension MyGame_Example_Ability: Encodable { public struct MyGame_Example_Ability_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_22_11_22() } + static func validateVersion() { FlatBuffersVersion_22_11_23() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -527,7 +527,7 @@ public struct MyGame_Example_Ability_Mutable: FlatBufferObject { public struct MyGame_Example_StructOfStructs: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject { - static func validateVersion() { FlatBuffersVersion_22_11_22() } + static func validateVersion() { FlatBuffersVersion_22_11_23() } private var _a: MyGame_Example_Ability private var _b: MyGame_Example_Test @@ -587,7 +587,7 @@ extension MyGame_Example_StructOfStructs: Encodable { public struct MyGame_Example_StructOfStructs_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_22_11_22() } + static func validateVersion() { FlatBuffersVersion_22_11_23() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -613,7 +613,7 @@ public struct MyGame_Example_StructOfStructs_Mutable: FlatBufferObject { public struct MyGame_Example_StructOfStructsOfStructs: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject { - static func validateVersion() { FlatBuffersVersion_22_11_22() } + static func validateVersion() { FlatBuffersVersion_22_11_23() } private var _a: MyGame_Example_StructOfStructs @@ -655,7 +655,7 @@ extension MyGame_Example_StructOfStructsOfStructs: Encodable { public struct MyGame_Example_StructOfStructsOfStructs_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_22_11_22() } + static func validateVersion() { FlatBuffersVersion_22_11_23() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -679,7 +679,7 @@ public struct MyGame_Example_StructOfStructsOfStructs_Mutable: FlatBufferObject public struct MyGame_InParentNamespace: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_22_11_22() } + static func validateVersion() { FlatBuffersVersion_22_11_23() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -733,7 +733,7 @@ public class MyGame_InParentNamespaceT: NativeObject { } public struct MyGame_Example2_Monster: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_22_11_22() } + static func validateVersion() { FlatBuffersVersion_22_11_23() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -787,7 +787,7 @@ public class MyGame_Example2_MonsterT: NativeObject { } internal struct MyGame_Example_TestSimpleTableWithEnum: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_22_11_22() } + static func validateVersion() { FlatBuffersVersion_22_11_23() } internal var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -870,7 +870,7 @@ internal class MyGame_Example_TestSimpleTableWithEnumT: NativeObject { } public struct MyGame_Example_Stat: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_22_11_22() } + static func validateVersion() { FlatBuffersVersion_22_11_23() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -1011,7 +1011,7 @@ public class MyGame_Example_StatT: NativeObject { } public struct MyGame_Example_Referrable: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_22_11_22() } + static func validateVersion() { FlatBuffersVersion_22_11_23() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -1119,7 +1119,7 @@ public class MyGame_Example_ReferrableT: NativeObject { /// an example documentation comment: "monster object" public struct MyGame_Example_Monster: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_22_11_22() } + static func validateVersion() { FlatBuffersVersion_22_11_23() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -2417,7 +2417,7 @@ public class MyGame_Example_MonsterT: NativeObject { } public struct MyGame_Example_TypeAliases: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_22_11_22() } + static func validateVersion() { FlatBuffersVersion_22_11_23() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table diff --git a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/more_defaults_generated.swift b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/more_defaults_generated.swift index 3763e19186..213d703f0c 100644 --- a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/more_defaults_generated.swift +++ b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/more_defaults_generated.swift @@ -29,7 +29,7 @@ extension ABC: Encodable { public struct MoreDefaults: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_22_11_22() } + static func validateVersion() { FlatBuffersVersion_22_11_23() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table diff --git a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/nan_inf_test_generated.swift b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/nan_inf_test_generated.swift index 8023987677..0643f359ad 100644 --- a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/nan_inf_test_generated.swift +++ b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/nan_inf_test_generated.swift @@ -6,7 +6,7 @@ import FlatBuffers public struct Swift_Tests_NanInfTable: FlatBufferObject, Verifiable { - static func validateVersion() { FlatBuffersVersion_22_11_22() } + static func validateVersion() { FlatBuffersVersion_22_11_23() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table diff --git a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/optional_scalars_generated.swift b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/optional_scalars_generated.swift index 025726d304..5fa59034ad 100644 --- a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/optional_scalars_generated.swift +++ b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/optional_scalars_generated.swift @@ -29,7 +29,7 @@ extension optional_scalars_OptionalByte: Encodable { public struct optional_scalars_ScalarStuff: FlatBufferObject, Verifiable { - static func validateVersion() { FlatBuffersVersion_22_11_22() } + static func validateVersion() { FlatBuffersVersion_22_11_23() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table diff --git a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/union_vector_generated.swift b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/union_vector_generated.swift index 7cb68e296a..8e939bf526 100644 --- a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/union_vector_generated.swift +++ b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/union_vector_generated.swift @@ -120,7 +120,7 @@ public struct GadgetUnion { } public struct Rapunzel: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject { - static func validateVersion() { FlatBuffersVersion_22_11_22() } + static func validateVersion() { FlatBuffersVersion_22_11_23() } private var _hairLength: Int32 @@ -163,7 +163,7 @@ extension Rapunzel: Encodable { public struct Rapunzel_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_22_11_22() } + static func validateVersion() { FlatBuffersVersion_22_11_23() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -188,7 +188,7 @@ public struct Rapunzel_Mutable: FlatBufferObject { public struct BookReader: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject { - static func validateVersion() { FlatBuffersVersion_22_11_22() } + static func validateVersion() { FlatBuffersVersion_22_11_23() } private var _booksRead: Int32 @@ -231,7 +231,7 @@ extension BookReader: Encodable { public struct BookReader_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_22_11_22() } + static func validateVersion() { FlatBuffersVersion_22_11_23() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -256,7 +256,7 @@ public struct BookReader_Mutable: FlatBufferObject { public struct FallingTub: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject { - static func validateVersion() { FlatBuffersVersion_22_11_22() } + static func validateVersion() { FlatBuffersVersion_22_11_23() } private var _weight: Int32 @@ -299,7 +299,7 @@ extension FallingTub: Encodable { public struct FallingTub_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_22_11_22() } + static func validateVersion() { FlatBuffersVersion_22_11_23() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -324,7 +324,7 @@ public struct FallingTub_Mutable: FlatBufferObject { public struct Attacker: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_22_11_22() } + static func validateVersion() { FlatBuffersVersion_22_11_23() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -407,7 +407,7 @@ public class AttackerT: NativeObject { } public struct HandFan: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_22_11_22() } + static func validateVersion() { FlatBuffersVersion_22_11_23() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -490,7 +490,7 @@ public class HandFanT: NativeObject { } public struct Movie: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_22_11_22() } + static func validateVersion() { FlatBuffersVersion_22_11_23() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table diff --git a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/vector_has_test_generated.swift b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/vector_has_test_generated.swift index 39dd7c7475..c3a5c990d1 100644 --- a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/vector_has_test_generated.swift +++ b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/vector_has_test_generated.swift @@ -6,7 +6,7 @@ import FlatBuffers public struct Swift_Tests_Vectors: FlatBufferObject, Verifiable { - static func validateVersion() { FlatBuffersVersion_22_11_22() } + static func validateVersion() { FlatBuffersVersion_22_11_23() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table diff --git a/tests/type_field_collsion/Collision.cs b/tests/type_field_collsion/Collision.cs index 30eee1fd2c..6a6f96efbd 100644 --- a/tests/type_field_collsion/Collision.cs +++ b/tests/type_field_collsion/Collision.cs @@ -13,7 +13,7 @@ public struct Collision : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_11_22(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_11_23(); } public static Collision GetRootAsCollision(ByteBuffer _bb) { return GetRootAsCollision(_bb, new Collision()); } public static Collision GetRootAsCollision(ByteBuffer _bb, Collision obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/union_vector/Attacker.cs b/tests/union_vector/Attacker.cs index ffa4c594db..fe0f3345d0 100644 --- a/tests/union_vector/Attacker.cs +++ b/tests/union_vector/Attacker.cs @@ -10,7 +10,7 @@ public struct Attacker : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_11_22(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_11_23(); } public static Attacker GetRootAsAttacker(ByteBuffer _bb) { return GetRootAsAttacker(_bb, new Attacker()); } public static Attacker GetRootAsAttacker(ByteBuffer _bb, Attacker obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/union_vector/Attacker.java b/tests/union_vector/Attacker.java index f794efcbef..f1aef533a2 100644 --- a/tests/union_vector/Attacker.java +++ b/tests/union_vector/Attacker.java @@ -7,7 +7,7 @@ @SuppressWarnings("unused") public final class Attacker extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_22_11_22(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_22_11_23(); } public static Attacker getRootAsAttacker(ByteBuffer _bb) { return getRootAsAttacker(_bb, new Attacker()); } public static Attacker getRootAsAttacker(ByteBuffer _bb, Attacker obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/tests/union_vector/Attacker.kt b/tests/union_vector/Attacker.kt index 487e83d19a..df1a1118d4 100644 --- a/tests/union_vector/Attacker.kt +++ b/tests/union_vector/Attacker.kt @@ -29,7 +29,7 @@ class Attacker : Table() { } } companion object { - fun validateVersion() = Constants.FLATBUFFERS_22_11_22() + fun validateVersion() = Constants.FLATBUFFERS_22_11_23() fun getRootAsAttacker(_bb: ByteBuffer): Attacker = getRootAsAttacker(_bb, Attacker()) fun getRootAsAttacker(_bb: ByteBuffer, obj: Attacker): Attacker { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/union_vector/HandFan.cs b/tests/union_vector/HandFan.cs index 1845b281dc..f922282e12 100644 --- a/tests/union_vector/HandFan.cs +++ b/tests/union_vector/HandFan.cs @@ -10,7 +10,7 @@ public struct HandFan : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_11_22(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_11_23(); } public static HandFan GetRootAsHandFan(ByteBuffer _bb) { return GetRootAsHandFan(_bb, new HandFan()); } public static HandFan GetRootAsHandFan(ByteBuffer _bb, HandFan obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/union_vector/HandFan.java b/tests/union_vector/HandFan.java index 2757246da6..c29b7ec462 100644 --- a/tests/union_vector/HandFan.java +++ b/tests/union_vector/HandFan.java @@ -7,7 +7,7 @@ @SuppressWarnings("unused") public final class HandFan extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_22_11_22(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_22_11_23(); } public static HandFan getRootAsHandFan(ByteBuffer _bb) { return getRootAsHandFan(_bb, new HandFan()); } public static HandFan getRootAsHandFan(ByteBuffer _bb, HandFan obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/tests/union_vector/HandFan.kt b/tests/union_vector/HandFan.kt index 26d376540f..ecb3c12930 100644 --- a/tests/union_vector/HandFan.kt +++ b/tests/union_vector/HandFan.kt @@ -29,7 +29,7 @@ class HandFan : Table() { } } companion object { - fun validateVersion() = Constants.FLATBUFFERS_22_11_22() + fun validateVersion() = Constants.FLATBUFFERS_22_11_23() fun getRootAsHandFan(_bb: ByteBuffer): HandFan = getRootAsHandFan(_bb, HandFan()) fun getRootAsHandFan(_bb: ByteBuffer, obj: HandFan): HandFan { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/union_vector/Movie.cs b/tests/union_vector/Movie.cs index ff556ff134..498064aa9c 100644 --- a/tests/union_vector/Movie.cs +++ b/tests/union_vector/Movie.cs @@ -10,7 +10,7 @@ public struct Movie : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_11_22(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_11_23(); } public static Movie GetRootAsMovie(ByteBuffer _bb) { return GetRootAsMovie(_bb, new Movie()); } public static Movie GetRootAsMovie(ByteBuffer _bb, Movie obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public static bool MovieBufferHasIdentifier(ByteBuffer _bb) { return Table.__has_identifier(_bb, "MOVI"); } diff --git a/tests/union_vector/Movie.java b/tests/union_vector/Movie.java index 879ea74ee6..16af5d554d 100644 --- a/tests/union_vector/Movie.java +++ b/tests/union_vector/Movie.java @@ -7,7 +7,7 @@ @SuppressWarnings("unused") public final class Movie extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_22_11_22(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_22_11_23(); } public static Movie getRootAsMovie(ByteBuffer _bb) { return getRootAsMovie(_bb, new Movie()); } public static Movie getRootAsMovie(ByteBuffer _bb, Movie obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public static boolean MovieBufferHasIdentifier(ByteBuffer _bb) { return __has_identifier(_bb, "MOVI"); } diff --git a/tests/union_vector/Movie.kt b/tests/union_vector/Movie.kt index 1d189d9c5e..a6ddabf886 100644 --- a/tests/union_vector/Movie.kt +++ b/tests/union_vector/Movie.kt @@ -67,7 +67,7 @@ class Movie : Table() { val o = __offset(10); return if (o != 0) __vector_len(o) else 0 } companion object { - fun validateVersion() = Constants.FLATBUFFERS_22_11_22() + fun validateVersion() = Constants.FLATBUFFERS_22_11_23() fun getRootAsMovie(_bb: ByteBuffer): Movie = getRootAsMovie(_bb, Movie()) fun getRootAsMovie(_bb: ByteBuffer, obj: Movie): Movie { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/union_vector/union_vector_generated.h b/tests/union_vector/union_vector_generated.h index aaca899d02..c9c20badd2 100644 --- a/tests/union_vector/union_vector_generated.h +++ b/tests/union_vector/union_vector_generated.h @@ -10,7 +10,7 @@ // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 22 && FLATBUFFERS_VERSION_MINOR == 11 && - FLATBUFFERS_VERSION_REVISION == 22, + FLATBUFFERS_VERSION_REVISION == 23, "Non-compatible flatbuffers version included"); struct Attacker; From 5a42b2c76c28c4872f8d75c8768ad20f4677f117 Mon Sep 17 00:00:00 2001 From: Derek Bailey Date: Wed, 23 Nov 2022 11:54:36 -0800 Subject: [PATCH 031/571] Specify min android SDK version of 14 --- android/AndroidManifest.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/android/AndroidManifest.xml b/android/AndroidManifest.xml index 65ce643095..a6c97492b1 100644 --- a/android/AndroidManifest.xml +++ b/android/AndroidManifest.xml @@ -3,6 +3,7 @@ + From 7b6c9f4a3c6089dd31c12939498f60580b1b86c2 Mon Sep 17 00:00:00 2001 From: Casper Date: Wed, 23 Nov 2022 15:03:54 -0500 Subject: [PATCH 032/571] Rurel (#7663) * Update release script to update Rust version (it still needs to be published after) * Also update rust while I'm at it Co-authored-by: Casper Neo --- rust/flatbuffers/Cargo.toml | 2 +- scripts/release.sh | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/rust/flatbuffers/Cargo.toml b/rust/flatbuffers/Cargo.toml index 2cba5b7279..8c01f2ee49 100644 --- a/rust/flatbuffers/Cargo.toml +++ b/rust/flatbuffers/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "flatbuffers" -version = "22.10.26" +version = "22.11.23" edition = "2018" authors = ["Robert Winslow ", "FlatBuffers Maintainers"] license = "Apache-2.0" diff --git a/scripts/release.sh b/scripts/release.sh index 80a93c0034..ba37e578b8 100755 --- a/scripts/release.sh +++ b/scripts/release.sh @@ -63,6 +63,11 @@ sed -i \ -e "s/\(version='\).*/\1$version',/" \ python/setup.py +echo "Updating rust/flatbuffers/Cargo.toml..." +sed -i \ + "s/^version = \".*\"$/version = \"$version\"/g" \ + rust/flatbuffers/Cargo.toml + echo "Updating FlatBuffers.podspec..." sed -i \ -e "s/\(s.version\s*= \).*/\1'$version'/" \ @@ -78,4 +83,4 @@ echo "Updating FLATBUFFERS_X_X_X() version check...." grep -rl 'FLATBUFFERS_\d*' * --exclude=release.sh | xargs -i@ \ sed -i \ -e "s/\(FLATBUFFERS_\)[0-9]\{2\}.*()/\1$version_underscore()/g" \ - @ \ No newline at end of file + @ From ae6662374d9dd1dd297ab83f2946cafd4af8572f Mon Sep 17 00:00:00 2001 From: Derek Bailey Date: Wed, 23 Nov 2022 13:11:56 -0800 Subject: [PATCH 033/571] add buildkite badge --- readme.md | 1 + 1 file changed, 1 insertion(+) diff --git a/readme.md b/readme.md index bc2db1919f..9949ba66f0 100644 --- a/readme.md +++ b/readme.md @@ -2,6 +2,7 @@ =========== ![Build status](https://github.com/google/flatbuffers/actions/workflows/build.yml/badge.svg?branch=master) +[![BuildKite status](https://badge.buildkite.com/7979d93bc6279aa539971f271253c65d5e8fe2fe43c90bbb25.svg)](https://buildkite.com/bazel/flatbuffers) [![Fuzzing Status](https://oss-fuzz-build-logs.storage.googleapis.com/badges/flatbuffers.svg)](https://bugs.chromium.org/p/oss-fuzz/issues/list?sort=-opened&can=1&q=proj:flatbuffers) [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/google/flatbuffers/badge)](https://api.securityscorecards.dev/projects/github.com/google/flatbuffers) [![Join the chat at https://gitter.im/google/flatbuffers](https://badges.gitter.im/google/flatbuffers.svg)](https://gitter.im/google/flatbuffers?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) From 5d2d0b92b14208e59f7b4e8a15e0c8136d031ae1 Mon Sep 17 00:00:00 2001 From: Derek Bailey Date: Mon, 28 Nov 2022 15:34:32 -0800 Subject: [PATCH 034/571] `build.yml` Update dependencies (#7674) * `build.yml` Update dependencies * Update build.yml * Update build.yml * `build.yml`: Use macos-11 * Update build.yml --- .github/workflows/build.yml | 69 +++++++++++++++++++------------------ 1 file changed, 35 insertions(+), 34 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index ae700e2b61..1869249498 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -27,7 +27,7 @@ jobs: cxx: [g++-10, clang++-12] fail-fast: false steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: cmake run: CXX=${{ matrix.cxx }} cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release -DFLATBUFFERS_STRICT_MODE=ON . - name: build @@ -76,7 +76,7 @@ jobs: - cxx: g++-10 std: 23 steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: cmake run: > CXX=${{ matrix.cxx }} cmake -G "Unix Makefiles" @@ -99,7 +99,7 @@ jobs: std: [11, 14, 17, 20, 23] fail-fast: false steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: Add msbuild to PATH uses: microsoft/setup-msbuild@v1.1 - name: cmake @@ -124,7 +124,7 @@ jobs: name: Build Windows 2019 runs-on: windows-2019 steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: Add msbuild to PATH uses: microsoft/setup-msbuild@v1.1 - name: cmake @@ -159,7 +159,7 @@ jobs: name: Build Windows 2017 runs-on: windows-2019 steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: Add msbuild to PATH uses: microsoft/setup-msbuild@v1.1 - name: cmake @@ -173,7 +173,7 @@ jobs: name: Build Windows 2015 runs-on: windows-2019 steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: Add msbuild to PATH uses: microsoft/setup-msbuild@v1.1 - name: cmake @@ -195,9 +195,9 @@ jobs: #'-p:EnableSpanT=true,UnsafeByteBuffer=true' ] steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: Setup .NET Core SDK - uses: actions/setup-dotnet@v1.9.0 + uses: actions/setup-dotnet@v3 with: dotnet-version: '3.1.x' - name: Build @@ -219,9 +219,9 @@ jobs: name: Build Mac (for Intel) runs-on: macos-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: cmake - run: cmake -G "Xcode" -DCMAKE_BUILD_TYPE=Release -DFLATBUFFERS_FLATC_EXECUTABLE=_build/Release/flatc -DFLATBUFFERS_STRICT_MODE=ON . + run: cmake -G "Xcode" -DCMAKE_BUILD_TYPE=Release -DFLATBUFFERS_FLATC_EXECUTABLE=$(PWD)/_build/Release/flatc -DFLATBUFFERS_STRICT_MODE=ON . - name: build # NOTE: we need this _build dir to not have xcodebuild's default ./build dir clash with the BUILD file. run: xcodebuild -toolchain clang -configuration Release -target flattests SYMROOT=$(PWD)/_build @@ -265,9 +265,9 @@ jobs: name: Build Mac (universal build) runs-on: macos-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: cmake - run: cmake -G "Xcode" -DCMAKE_OSX_ARCHITECTURES="arm64;x86_64" -DCMAKE_BUILD_TYPE=Release -DFLATBUFFERS_FLATC_EXECUTABLE=_build/Release/flatc -DFLATBUFFERS_STRICT_MODE=ON . + run: cmake -G "Xcode" -DCMAKE_OSX_ARCHITECTURES="arm64;x86_64" -DCMAKE_BUILD_TYPE=Release -DFLATBUFFERS_FLATC_EXECUTABLE=$(PWD)/_build/Release/flatc -DFLATBUFFERS_STRICT_MODE=ON . - name: build # NOTE: we need this _build dir to not have xcodebuild's default ./build dir clash with the BUILD file. run: xcodebuild -toolchain clang -configuration Release -target flattests SYMROOT=$(PWD)/_build @@ -305,11 +305,12 @@ jobs: name: Build Android (on Linux) runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 - - name: set up JDK 1.8 - uses: actions/setup-java@v1 + - uses: actions/checkout@v3 + - name: set up Java + uses: actions/setup-java@v3 with: - java-version: 1.8 + distribution: 'temurin' + java-version: '11' - name: set up flatc run: | cmake -DFLATBUFFERS_BUILD_TESTS=OFF -DFLATBUFFERS_BUILD_FLATLIB=OFF -DFLATBUFFERS_BUILD_FLATHASH=OFF -DFLATBUFFERS_STRICT_MODE=ON . @@ -326,7 +327,7 @@ jobs: matrix: cxx: [g++-10, clang++-12] steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: cmake run: CXX=${{ matrix.cxx }} cmake -G "Unix Makefiles" -DFLATBUFFERS_BUILD_TESTS=OFF -DCMAKE_BUILD_TYPE=Release -DFLATBUFFERS_STRICT_MODE=ON . && make -j - name: Generate @@ -341,7 +342,7 @@ jobs: matrix: cxx: [g++-10] steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: cmake run: CXX=${{ matrix.cxx }} cmake -G "Unix Makefiles" -DFLATBUFFERS_CXX_FLAGS="-Wno-unused-parameter -fno-aligned-new" -DFLATBUFFERS_BUILD_BENCHMARKS=ON -DCMAKE_BUILD_TYPE=Release -DFLATBUFFERS_STRICT_MODE=ON . && make -j - name: Run benchmarks @@ -356,7 +357,7 @@ jobs: name: Build Java runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: test working-directory: java run: mvn test @@ -366,11 +367,11 @@ jobs: runs-on: macos-latest steps: - name: Checkout - uses: actions/checkout@v2 + uses: actions/checkout@v3 - uses: gradle/wrapper-validation-action@v1.0.5 - - uses: actions/setup-java@v2 + - uses: actions/setup-java@v3 with: - distribution: 'adopt-hotspot' + distribution: 'temurin' java-version: '11' - name: Build working-directory: kotlin @@ -381,10 +382,10 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v2 - - uses: actions/setup-java@v2 + uses: actions/checkout@v3 + - uses: actions/setup-java@v3 with: - distribution: 'adopt-hotspot' + distribution: 'temurin' java-version: '11' - uses: gradle/wrapper-validation-action@v1.0.5 - name: Build @@ -398,7 +399,7 @@ jobs: name: Build Rust runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: test working-directory: tests run: bash RustTest.sh @@ -407,7 +408,7 @@ jobs: name: Build Python runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: test working-directory: tests run: bash PythonTest.sh @@ -416,7 +417,7 @@ jobs: name: Build Go runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: flatc # FIXME: make test script not rely on flatc run: cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release -DFLATBUFFERS_BUILD_TESTS=OFF -DFLATBUFFERS_INSTALL=OFF -DFLATBUFFERS_BUILD_FLATLIB=OFF -DFLATBUFFERS_BUILD_FLATHASH=OFF -DFLATBUFFERS_STRICT_MODE=ON . && make -j @@ -428,7 +429,7 @@ jobs: name: Build Swift runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: test working-directory: tests/swift/tests run: | @@ -441,9 +442,9 @@ jobs: container: image: ghcr.io/swiftwasm/carton:0.15.3 steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: Setup Wasmer - uses: wasmerio/setup-wasmer@v1 + uses: wasmerio/setup-wasmer@v2 - name: Test working-directory: tests/swift/Wasm.tests run: carton test @@ -452,7 +453,7 @@ jobs: name: Build TS runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: flatc # FIXME: make test script not rely on flatc run: cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release -DFLATBUFFERS_BUILD_TESTS=OFF -DFLATBUFFERS_INSTALL=OFF -DFLATBUFFERS_BUILD_FLATLIB=OFF -DFLATBUFFERS_BUILD_FLATHASH=OFF . && make -j @@ -468,7 +469,7 @@ jobs: name: Build Dart runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - uses: dart-lang/setup-dart@v1 with: sdk: stable @@ -483,7 +484,7 @@ jobs: name: Build Nim runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: flatc # FIXME: make test script not rely on flatc run: cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release -DFLATBUFFERS_BUILD_TESTS=OFF -DFLATBUFFERS_INSTALL=OFF -DFLATBUFFERS_BUILD_FLATLIB=OFF -DFLATBUFFERS_BUILD_FLATHASH=OFF . && make -j From fcab80f1bb5321790fc50e6fedddbeaf08df75a2 Mon Sep 17 00:00:00 2001 From: Derek Bailey Date: Mon, 28 Nov 2022 16:38:56 -0800 Subject: [PATCH 035/571] `build.yml`: MacOs Build Inplace (#7677) * `build.yml`: MacOs Build Inplace * Update build.yml --- .github/workflows/build.yml | 36 +++++++++++++++++------------------- 1 file changed, 17 insertions(+), 19 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 1869249498..69be55b362 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -221,32 +221,31 @@ jobs: steps: - uses: actions/checkout@v3 - name: cmake - run: cmake -G "Xcode" -DCMAKE_BUILD_TYPE=Release -DFLATBUFFERS_FLATC_EXECUTABLE=$(PWD)/_build/Release/flatc -DFLATBUFFERS_STRICT_MODE=ON . + run: cmake -G "Xcode" -DCMAKE_BUILD_TYPE=Release -DFLATBUFFERS_STRICT_MODE=ON . - name: build - # NOTE: we need this _build dir to not have xcodebuild's default ./build dir clash with the BUILD file. - run: xcodebuild -toolchain clang -configuration Release -target flattests SYMROOT=$(PWD)/_build + run: xcodebuild -toolchain clang -configuration Release -target flattests - name: check that the binary is x86_64 run: | - info=$(file _build/Release/flatc) + info=$(file Release/flatc) echo $info echo $info | grep "Mach-O 64-bit executable x86_64" - name: test - run: _build/Release/flattests + run: Release/flattests - name: make flatc executable run: | - chmod +x _build/Release/flatc - ./_build/Release/flatc --version + chmod +x Release/flatc + Release/flatc --version - name: flatc tests - run: python3 tests/flatc/main.py --flatc ./_build/Release/flatc + run: python3 tests/flatc/main.py --flatc Release/flatc - name: upload build artifacts uses: actions/upload-artifact@v1 with: name: Mac flatc binary - path: _build/Release/flatc + path: Release/flatc # Below if only for release. - name: Zip file if: startsWith(github.ref, 'refs/tags/') - run: mv _build/Release/flatc . && zip MacIntel.flatc.binary.zip flatc + run: mv Release/flatc . && zip MacIntel.flatc.binary.zip flatc - name: Release binary uses: softprops/action-gh-release@v1 if: startsWith(github.ref, 'refs/tags/') @@ -267,30 +266,29 @@ jobs: steps: - uses: actions/checkout@v3 - name: cmake - run: cmake -G "Xcode" -DCMAKE_OSX_ARCHITECTURES="arm64;x86_64" -DCMAKE_BUILD_TYPE=Release -DFLATBUFFERS_FLATC_EXECUTABLE=$(PWD)/_build/Release/flatc -DFLATBUFFERS_STRICT_MODE=ON . + run: cmake -G "Xcode" -DCMAKE_OSX_ARCHITECTURES="arm64;x86_64" -DCMAKE_BUILD_TYPE=Release -DFLATBUFFERS_STRICT_MODE=ON . - name: build - # NOTE: we need this _build dir to not have xcodebuild's default ./build dir clash with the BUILD file. - run: xcodebuild -toolchain clang -configuration Release -target flattests SYMROOT=$(PWD)/_build + run: xcodebuild -toolchain clang -configuration Release -target flattests - name: check that the binary is "universal" run: | - info=$(file _build/Release/flatc) + info=$(file Release/flatc) echo $info echo $info | grep "Mach-O universal binary with 2 architectures" - name: test - run: _build/Release/flattests + run: Release/flattests - name: make flatc executable run: | - chmod +x _build/Release/flatc - ./_build/Release/flatc --version + chmod +x Release/flatc + Release/flatc --version - name: upload build artifacts uses: actions/upload-artifact@v1 with: name: Mac flatc binary - path: _build/Release/flatc + path: Release/flatc # Below if only for release. - name: Zip file if: startsWith(github.ref, 'refs/tags/') - run: mv _build/Release/flatc . && zip Mac.flatc.binary.zip flatc + run: mv Release/flatc . && zip Mac.flatc.binary.zip flatc - name: Release binary uses: softprops/action-gh-release@v1 if: startsWith(github.ref, 'refs/tags/') From 533f75d91b36e9948c2ea0bcff93732b51868291 Mon Sep 17 00:00:00 2001 From: Saman <100295082+enum-class@users.noreply.github.com> Date: Mon, 28 Nov 2022 20:27:55 -0500 Subject: [PATCH 036/571] Fix java import wild card (#7672) * Fix java import wild card * fix java include * Fix some import problems * clang-format * Sort imports Co-authored-by: Derek Bailey --- src/idl_gen_java.cpp | 16 ++++++++++++++-- tests/DictionaryLookup/LongFloatEntry.java | 18 ++++++++++++++---- tests/DictionaryLookup/LongFloatMap.java | 18 ++++++++++++++---- tests/MyGame/Example/Ability.java | 18 ++++++++++++++---- tests/MyGame/Example/AbilityT.java | 18 ++++++++++++++---- tests/MyGame/Example/ArrayStruct.java | 18 ++++++++++++++---- tests/MyGame/Example/ArrayStructT.java | 18 ++++++++++++++---- tests/MyGame/Example/ArrayTable.java | 18 ++++++++++++++---- tests/MyGame/Example/ArrayTableT.java | 18 ++++++++++++++---- tests/MyGame/Example/Monster.java | 18 ++++++++++++++---- tests/MyGame/Example/MonsterT.java | 18 ++++++++++++++---- tests/MyGame/Example/NestedStruct.java | 18 ++++++++++++++---- tests/MyGame/Example/NestedStructT.java | 18 ++++++++++++++---- tests/MyGame/Example/Referrable.java | 18 ++++++++++++++---- tests/MyGame/Example/ReferrableT.java | 18 ++++++++++++++---- tests/MyGame/Example/Stat.java | 18 ++++++++++++++---- tests/MyGame/Example/StatT.java | 18 ++++++++++++++---- tests/MyGame/Example/StructOfStructs.java | 18 ++++++++++++++---- .../Example/StructOfStructsOfStructs.java | 18 ++++++++++++++---- .../Example/StructOfStructsOfStructsT.java | 18 ++++++++++++++---- tests/MyGame/Example/StructOfStructsT.java | 18 ++++++++++++++---- tests/MyGame/Example/Test.java | 18 ++++++++++++++---- .../Example/TestSimpleTableWithEnum.java | 18 ++++++++++++++---- .../Example/TestSimpleTableWithEnumT.java | 18 ++++++++++++++---- tests/MyGame/Example/TestT.java | 18 ++++++++++++++---- tests/MyGame/Example/TypeAliases.java | 18 ++++++++++++++---- tests/MyGame/Example/TypeAliasesT.java | 18 ++++++++++++++---- tests/MyGame/Example/Vec3.java | 18 ++++++++++++++---- tests/MyGame/Example/Vec3T.java | 18 ++++++++++++++---- tests/MyGame/Example2/Monster.java | 18 ++++++++++++++---- tests/MyGame/Example2/MonsterT.java | 18 ++++++++++++++---- tests/MyGame/InParentNamespace.java | 18 ++++++++++++++---- tests/MyGame/InParentNamespaceT.java | 18 ++++++++++++++---- tests/MyGame/MonsterExtra.java | 18 ++++++++++++++---- tests/MyGame/MonsterExtraT.java | 18 ++++++++++++++---- tests/optional_scalars/ScalarStuff.java | 18 ++++++++++++++---- tests/union_vector/Attacker.java | 18 ++++++++++++++---- tests/union_vector/AttackerT.java | 18 ++++++++++++++---- tests/union_vector/BookReader.java | 18 ++++++++++++++---- tests/union_vector/BookReaderT.java | 18 ++++++++++++++---- tests/union_vector/FallingTub.java | 18 ++++++++++++++---- tests/union_vector/FallingTubT.java | 18 ++++++++++++++---- tests/union_vector/HandFan.java | 18 ++++++++++++++---- tests/union_vector/HandFanT.java | 18 ++++++++++++++---- tests/union_vector/Movie.java | 18 ++++++++++++++---- tests/union_vector/MovieT.java | 18 ++++++++++++++---- tests/union_vector/Rapunzel.java | 18 ++++++++++++++---- tests/union_vector/RapunzelT.java | 18 ++++++++++++++---- 48 files changed, 672 insertions(+), 190 deletions(-) diff --git a/src/idl_gen_java.cpp b/src/idl_gen_java.cpp index 909d30759b..46977034e7 100644 --- a/src/idl_gen_java.cpp +++ b/src/idl_gen_java.cpp @@ -178,8 +178,20 @@ class JavaGenerator : public BaseGenerator { } if (needs_includes) { code += - "import java.nio.*;\nimport java.lang.*;\nimport " - "java.util.*;\nimport com.google.flatbuffers.*;\n"; + "import com.google.flatbuffers.BaseVector;\n" + "import com.google.flatbuffers.BooleanVector;\n" + "import com.google.flatbuffers.ByteVector;\n" + "import com.google.flatbuffers.Constants;\n" + "import com.google.flatbuffers.DoubleVector;\n" + "import com.google.flatbuffers.FlatBufferBuilder;\n" + "import com.google.flatbuffers.FloatVector;\n" + "import com.google.flatbuffers.LongVector;\n" + "import com.google.flatbuffers.StringVector;\n" + "import com.google.flatbuffers.Struct;\n" + "import com.google.flatbuffers.Table;\n" + "import com.google.flatbuffers.UnionVector;\n" + "import java.nio.ByteBuffer;\n" + "import java.nio.ByteOrder;\n"; if (parser_.opts.gen_nullable) { code += "\nimport javax.annotation.Nullable;\n"; } diff --git a/tests/DictionaryLookup/LongFloatEntry.java b/tests/DictionaryLookup/LongFloatEntry.java index b0286dc457..4f8559f7be 100644 --- a/tests/DictionaryLookup/LongFloatEntry.java +++ b/tests/DictionaryLookup/LongFloatEntry.java @@ -2,10 +2,20 @@ package DictionaryLookup; -import java.nio.*; -import java.lang.*; -import java.util.*; -import com.google.flatbuffers.*; +import com.google.flatbuffers.BaseVector; +import com.google.flatbuffers.BooleanVector; +import com.google.flatbuffers.ByteVector; +import com.google.flatbuffers.Constants; +import com.google.flatbuffers.DoubleVector; +import com.google.flatbuffers.FlatBufferBuilder; +import com.google.flatbuffers.FloatVector; +import com.google.flatbuffers.LongVector; +import com.google.flatbuffers.StringVector; +import com.google.flatbuffers.Struct; +import com.google.flatbuffers.Table; +import com.google.flatbuffers.UnionVector; +import java.nio.ByteBuffer; +import java.nio.ByteOrder; @SuppressWarnings("unused") public final class LongFloatEntry extends Table { diff --git a/tests/DictionaryLookup/LongFloatMap.java b/tests/DictionaryLookup/LongFloatMap.java index f840d846cc..9bc4bb7ebe 100644 --- a/tests/DictionaryLookup/LongFloatMap.java +++ b/tests/DictionaryLookup/LongFloatMap.java @@ -2,10 +2,20 @@ package DictionaryLookup; -import java.nio.*; -import java.lang.*; -import java.util.*; -import com.google.flatbuffers.*; +import com.google.flatbuffers.BaseVector; +import com.google.flatbuffers.BooleanVector; +import com.google.flatbuffers.ByteVector; +import com.google.flatbuffers.Constants; +import com.google.flatbuffers.DoubleVector; +import com.google.flatbuffers.FlatBufferBuilder; +import com.google.flatbuffers.FloatVector; +import com.google.flatbuffers.LongVector; +import com.google.flatbuffers.StringVector; +import com.google.flatbuffers.Struct; +import com.google.flatbuffers.Table; +import com.google.flatbuffers.UnionVector; +import java.nio.ByteBuffer; +import java.nio.ByteOrder; @SuppressWarnings("unused") public final class LongFloatMap extends Table { diff --git a/tests/MyGame/Example/Ability.java b/tests/MyGame/Example/Ability.java index 4eb5ac4eeb..06af95c3db 100644 --- a/tests/MyGame/Example/Ability.java +++ b/tests/MyGame/Example/Ability.java @@ -2,10 +2,20 @@ package MyGame.Example; -import java.nio.*; -import java.lang.*; -import java.util.*; -import com.google.flatbuffers.*; +import com.google.flatbuffers.BaseVector; +import com.google.flatbuffers.BooleanVector; +import com.google.flatbuffers.ByteVector; +import com.google.flatbuffers.Constants; +import com.google.flatbuffers.DoubleVector; +import com.google.flatbuffers.FlatBufferBuilder; +import com.google.flatbuffers.FloatVector; +import com.google.flatbuffers.LongVector; +import com.google.flatbuffers.StringVector; +import com.google.flatbuffers.Struct; +import com.google.flatbuffers.Table; +import com.google.flatbuffers.UnionVector; +import java.nio.ByteBuffer; +import java.nio.ByteOrder; @SuppressWarnings("unused") public final class Ability extends Struct { diff --git a/tests/MyGame/Example/AbilityT.java b/tests/MyGame/Example/AbilityT.java index 211b7bb42d..4e0bd79a83 100644 --- a/tests/MyGame/Example/AbilityT.java +++ b/tests/MyGame/Example/AbilityT.java @@ -2,10 +2,20 @@ package MyGame.Example; -import java.nio.*; -import java.lang.*; -import java.util.*; -import com.google.flatbuffers.*; +import com.google.flatbuffers.BaseVector; +import com.google.flatbuffers.BooleanVector; +import com.google.flatbuffers.ByteVector; +import com.google.flatbuffers.Constants; +import com.google.flatbuffers.DoubleVector; +import com.google.flatbuffers.FlatBufferBuilder; +import com.google.flatbuffers.FloatVector; +import com.google.flatbuffers.LongVector; +import com.google.flatbuffers.StringVector; +import com.google.flatbuffers.Struct; +import com.google.flatbuffers.Table; +import com.google.flatbuffers.UnionVector; +import java.nio.ByteBuffer; +import java.nio.ByteOrder; public class AbilityT { private long id; diff --git a/tests/MyGame/Example/ArrayStruct.java b/tests/MyGame/Example/ArrayStruct.java index 00535b0b72..54b17540ad 100644 --- a/tests/MyGame/Example/ArrayStruct.java +++ b/tests/MyGame/Example/ArrayStruct.java @@ -2,10 +2,20 @@ package MyGame.Example; -import java.nio.*; -import java.lang.*; -import java.util.*; -import com.google.flatbuffers.*; +import com.google.flatbuffers.BaseVector; +import com.google.flatbuffers.BooleanVector; +import com.google.flatbuffers.ByteVector; +import com.google.flatbuffers.Constants; +import com.google.flatbuffers.DoubleVector; +import com.google.flatbuffers.FlatBufferBuilder; +import com.google.flatbuffers.FloatVector; +import com.google.flatbuffers.LongVector; +import com.google.flatbuffers.StringVector; +import com.google.flatbuffers.Struct; +import com.google.flatbuffers.Table; +import com.google.flatbuffers.UnionVector; +import java.nio.ByteBuffer; +import java.nio.ByteOrder; @SuppressWarnings("unused") public final class ArrayStruct extends Struct { diff --git a/tests/MyGame/Example/ArrayStructT.java b/tests/MyGame/Example/ArrayStructT.java index bec1394768..409acc8a1c 100644 --- a/tests/MyGame/Example/ArrayStructT.java +++ b/tests/MyGame/Example/ArrayStructT.java @@ -2,10 +2,20 @@ package MyGame.Example; -import java.nio.*; -import java.lang.*; -import java.util.*; -import com.google.flatbuffers.*; +import com.google.flatbuffers.BaseVector; +import com.google.flatbuffers.BooleanVector; +import com.google.flatbuffers.ByteVector; +import com.google.flatbuffers.Constants; +import com.google.flatbuffers.DoubleVector; +import com.google.flatbuffers.FlatBufferBuilder; +import com.google.flatbuffers.FloatVector; +import com.google.flatbuffers.LongVector; +import com.google.flatbuffers.StringVector; +import com.google.flatbuffers.Struct; +import com.google.flatbuffers.Table; +import com.google.flatbuffers.UnionVector; +import java.nio.ByteBuffer; +import java.nio.ByteOrder; public class ArrayStructT { private float a; diff --git a/tests/MyGame/Example/ArrayTable.java b/tests/MyGame/Example/ArrayTable.java index 8d33fabeb1..25199e6ac6 100644 --- a/tests/MyGame/Example/ArrayTable.java +++ b/tests/MyGame/Example/ArrayTable.java @@ -2,10 +2,20 @@ package MyGame.Example; -import java.nio.*; -import java.lang.*; -import java.util.*; -import com.google.flatbuffers.*; +import com.google.flatbuffers.BaseVector; +import com.google.flatbuffers.BooleanVector; +import com.google.flatbuffers.ByteVector; +import com.google.flatbuffers.Constants; +import com.google.flatbuffers.DoubleVector; +import com.google.flatbuffers.FlatBufferBuilder; +import com.google.flatbuffers.FloatVector; +import com.google.flatbuffers.LongVector; +import com.google.flatbuffers.StringVector; +import com.google.flatbuffers.Struct; +import com.google.flatbuffers.Table; +import com.google.flatbuffers.UnionVector; +import java.nio.ByteBuffer; +import java.nio.ByteOrder; @SuppressWarnings("unused") public final class ArrayTable extends Table { diff --git a/tests/MyGame/Example/ArrayTableT.java b/tests/MyGame/Example/ArrayTableT.java index 3840b356c3..f87e005b80 100644 --- a/tests/MyGame/Example/ArrayTableT.java +++ b/tests/MyGame/Example/ArrayTableT.java @@ -2,10 +2,20 @@ package MyGame.Example; -import java.nio.*; -import java.lang.*; -import java.util.*; -import com.google.flatbuffers.*; +import com.google.flatbuffers.BaseVector; +import com.google.flatbuffers.BooleanVector; +import com.google.flatbuffers.ByteVector; +import com.google.flatbuffers.Constants; +import com.google.flatbuffers.DoubleVector; +import com.google.flatbuffers.FlatBufferBuilder; +import com.google.flatbuffers.FloatVector; +import com.google.flatbuffers.LongVector; +import com.google.flatbuffers.StringVector; +import com.google.flatbuffers.Struct; +import com.google.flatbuffers.Table; +import com.google.flatbuffers.UnionVector; +import java.nio.ByteBuffer; +import java.nio.ByteOrder; public class ArrayTableT { private MyGame.Example.ArrayStructT a; diff --git a/tests/MyGame/Example/Monster.java b/tests/MyGame/Example/Monster.java index c216c4750e..d5fd1f055e 100644 --- a/tests/MyGame/Example/Monster.java +++ b/tests/MyGame/Example/Monster.java @@ -2,10 +2,20 @@ package MyGame.Example; -import java.nio.*; -import java.lang.*; -import java.util.*; -import com.google.flatbuffers.*; +import com.google.flatbuffers.BaseVector; +import com.google.flatbuffers.BooleanVector; +import com.google.flatbuffers.ByteVector; +import com.google.flatbuffers.Constants; +import com.google.flatbuffers.DoubleVector; +import com.google.flatbuffers.FlatBufferBuilder; +import com.google.flatbuffers.FloatVector; +import com.google.flatbuffers.LongVector; +import com.google.flatbuffers.StringVector; +import com.google.flatbuffers.Struct; +import com.google.flatbuffers.Table; +import com.google.flatbuffers.UnionVector; +import java.nio.ByteBuffer; +import java.nio.ByteOrder; /** * an example documentation comment: "monster object" diff --git a/tests/MyGame/Example/MonsterT.java b/tests/MyGame/Example/MonsterT.java index d4a65259a5..c74ea64d09 100644 --- a/tests/MyGame/Example/MonsterT.java +++ b/tests/MyGame/Example/MonsterT.java @@ -2,10 +2,20 @@ package MyGame.Example; -import java.nio.*; -import java.lang.*; -import java.util.*; -import com.google.flatbuffers.*; +import com.google.flatbuffers.BaseVector; +import com.google.flatbuffers.BooleanVector; +import com.google.flatbuffers.ByteVector; +import com.google.flatbuffers.Constants; +import com.google.flatbuffers.DoubleVector; +import com.google.flatbuffers.FlatBufferBuilder; +import com.google.flatbuffers.FloatVector; +import com.google.flatbuffers.LongVector; +import com.google.flatbuffers.StringVector; +import com.google.flatbuffers.Struct; +import com.google.flatbuffers.Table; +import com.google.flatbuffers.UnionVector; +import java.nio.ByteBuffer; +import java.nio.ByteOrder; public class MonsterT { private MyGame.Example.Vec3T pos; diff --git a/tests/MyGame/Example/NestedStruct.java b/tests/MyGame/Example/NestedStruct.java index d3081e6192..a0fe37c2c9 100644 --- a/tests/MyGame/Example/NestedStruct.java +++ b/tests/MyGame/Example/NestedStruct.java @@ -2,10 +2,20 @@ package MyGame.Example; -import java.nio.*; -import java.lang.*; -import java.util.*; -import com.google.flatbuffers.*; +import com.google.flatbuffers.BaseVector; +import com.google.flatbuffers.BooleanVector; +import com.google.flatbuffers.ByteVector; +import com.google.flatbuffers.Constants; +import com.google.flatbuffers.DoubleVector; +import com.google.flatbuffers.FlatBufferBuilder; +import com.google.flatbuffers.FloatVector; +import com.google.flatbuffers.LongVector; +import com.google.flatbuffers.StringVector; +import com.google.flatbuffers.Struct; +import com.google.flatbuffers.Table; +import com.google.flatbuffers.UnionVector; +import java.nio.ByteBuffer; +import java.nio.ByteOrder; @SuppressWarnings("unused") public final class NestedStruct extends Struct { diff --git a/tests/MyGame/Example/NestedStructT.java b/tests/MyGame/Example/NestedStructT.java index 7892462b95..b4021991c2 100644 --- a/tests/MyGame/Example/NestedStructT.java +++ b/tests/MyGame/Example/NestedStructT.java @@ -2,10 +2,20 @@ package MyGame.Example; -import java.nio.*; -import java.lang.*; -import java.util.*; -import com.google.flatbuffers.*; +import com.google.flatbuffers.BaseVector; +import com.google.flatbuffers.BooleanVector; +import com.google.flatbuffers.ByteVector; +import com.google.flatbuffers.Constants; +import com.google.flatbuffers.DoubleVector; +import com.google.flatbuffers.FlatBufferBuilder; +import com.google.flatbuffers.FloatVector; +import com.google.flatbuffers.LongVector; +import com.google.flatbuffers.StringVector; +import com.google.flatbuffers.Struct; +import com.google.flatbuffers.Table; +import com.google.flatbuffers.UnionVector; +import java.nio.ByteBuffer; +import java.nio.ByteOrder; public class NestedStructT { private int[] a; diff --git a/tests/MyGame/Example/Referrable.java b/tests/MyGame/Example/Referrable.java index b84cd87840..2d142953ae 100644 --- a/tests/MyGame/Example/Referrable.java +++ b/tests/MyGame/Example/Referrable.java @@ -2,10 +2,20 @@ package MyGame.Example; -import java.nio.*; -import java.lang.*; -import java.util.*; -import com.google.flatbuffers.*; +import com.google.flatbuffers.BaseVector; +import com.google.flatbuffers.BooleanVector; +import com.google.flatbuffers.ByteVector; +import com.google.flatbuffers.Constants; +import com.google.flatbuffers.DoubleVector; +import com.google.flatbuffers.FlatBufferBuilder; +import com.google.flatbuffers.FloatVector; +import com.google.flatbuffers.LongVector; +import com.google.flatbuffers.StringVector; +import com.google.flatbuffers.Struct; +import com.google.flatbuffers.Table; +import com.google.flatbuffers.UnionVector; +import java.nio.ByteBuffer; +import java.nio.ByteOrder; @SuppressWarnings("unused") public final class Referrable extends Table { diff --git a/tests/MyGame/Example/ReferrableT.java b/tests/MyGame/Example/ReferrableT.java index 3014f04d10..e5ac1d5f4f 100644 --- a/tests/MyGame/Example/ReferrableT.java +++ b/tests/MyGame/Example/ReferrableT.java @@ -2,10 +2,20 @@ package MyGame.Example; -import java.nio.*; -import java.lang.*; -import java.util.*; -import com.google.flatbuffers.*; +import com.google.flatbuffers.BaseVector; +import com.google.flatbuffers.BooleanVector; +import com.google.flatbuffers.ByteVector; +import com.google.flatbuffers.Constants; +import com.google.flatbuffers.DoubleVector; +import com.google.flatbuffers.FlatBufferBuilder; +import com.google.flatbuffers.FloatVector; +import com.google.flatbuffers.LongVector; +import com.google.flatbuffers.StringVector; +import com.google.flatbuffers.Struct; +import com.google.flatbuffers.Table; +import com.google.flatbuffers.UnionVector; +import java.nio.ByteBuffer; +import java.nio.ByteOrder; public class ReferrableT { private long id; diff --git a/tests/MyGame/Example/Stat.java b/tests/MyGame/Example/Stat.java index 9863e9fe48..a9adc20f74 100644 --- a/tests/MyGame/Example/Stat.java +++ b/tests/MyGame/Example/Stat.java @@ -2,10 +2,20 @@ package MyGame.Example; -import java.nio.*; -import java.lang.*; -import java.util.*; -import com.google.flatbuffers.*; +import com.google.flatbuffers.BaseVector; +import com.google.flatbuffers.BooleanVector; +import com.google.flatbuffers.ByteVector; +import com.google.flatbuffers.Constants; +import com.google.flatbuffers.DoubleVector; +import com.google.flatbuffers.FlatBufferBuilder; +import com.google.flatbuffers.FloatVector; +import com.google.flatbuffers.LongVector; +import com.google.flatbuffers.StringVector; +import com.google.flatbuffers.Struct; +import com.google.flatbuffers.Table; +import com.google.flatbuffers.UnionVector; +import java.nio.ByteBuffer; +import java.nio.ByteOrder; @SuppressWarnings("unused") public final class Stat extends Table { diff --git a/tests/MyGame/Example/StatT.java b/tests/MyGame/Example/StatT.java index 67ad13eb3d..c108d9ca36 100644 --- a/tests/MyGame/Example/StatT.java +++ b/tests/MyGame/Example/StatT.java @@ -2,10 +2,20 @@ package MyGame.Example; -import java.nio.*; -import java.lang.*; -import java.util.*; -import com.google.flatbuffers.*; +import com.google.flatbuffers.BaseVector; +import com.google.flatbuffers.BooleanVector; +import com.google.flatbuffers.ByteVector; +import com.google.flatbuffers.Constants; +import com.google.flatbuffers.DoubleVector; +import com.google.flatbuffers.FlatBufferBuilder; +import com.google.flatbuffers.FloatVector; +import com.google.flatbuffers.LongVector; +import com.google.flatbuffers.StringVector; +import com.google.flatbuffers.Struct; +import com.google.flatbuffers.Table; +import com.google.flatbuffers.UnionVector; +import java.nio.ByteBuffer; +import java.nio.ByteOrder; public class StatT { private String id; diff --git a/tests/MyGame/Example/StructOfStructs.java b/tests/MyGame/Example/StructOfStructs.java index 32c6e1f463..5ec5b9a60f 100644 --- a/tests/MyGame/Example/StructOfStructs.java +++ b/tests/MyGame/Example/StructOfStructs.java @@ -2,10 +2,20 @@ package MyGame.Example; -import java.nio.*; -import java.lang.*; -import java.util.*; -import com.google.flatbuffers.*; +import com.google.flatbuffers.BaseVector; +import com.google.flatbuffers.BooleanVector; +import com.google.flatbuffers.ByteVector; +import com.google.flatbuffers.Constants; +import com.google.flatbuffers.DoubleVector; +import com.google.flatbuffers.FlatBufferBuilder; +import com.google.flatbuffers.FloatVector; +import com.google.flatbuffers.LongVector; +import com.google.flatbuffers.StringVector; +import com.google.flatbuffers.Struct; +import com.google.flatbuffers.Table; +import com.google.flatbuffers.UnionVector; +import java.nio.ByteBuffer; +import java.nio.ByteOrder; @SuppressWarnings("unused") public final class StructOfStructs extends Struct { diff --git a/tests/MyGame/Example/StructOfStructsOfStructs.java b/tests/MyGame/Example/StructOfStructsOfStructs.java index ae1f50de90..8bab48e918 100644 --- a/tests/MyGame/Example/StructOfStructsOfStructs.java +++ b/tests/MyGame/Example/StructOfStructsOfStructs.java @@ -2,10 +2,20 @@ package MyGame.Example; -import java.nio.*; -import java.lang.*; -import java.util.*; -import com.google.flatbuffers.*; +import com.google.flatbuffers.BaseVector; +import com.google.flatbuffers.BooleanVector; +import com.google.flatbuffers.ByteVector; +import com.google.flatbuffers.Constants; +import com.google.flatbuffers.DoubleVector; +import com.google.flatbuffers.FlatBufferBuilder; +import com.google.flatbuffers.FloatVector; +import com.google.flatbuffers.LongVector; +import com.google.flatbuffers.StringVector; +import com.google.flatbuffers.Struct; +import com.google.flatbuffers.Table; +import com.google.flatbuffers.UnionVector; +import java.nio.ByteBuffer; +import java.nio.ByteOrder; @SuppressWarnings("unused") public final class StructOfStructsOfStructs extends Struct { diff --git a/tests/MyGame/Example/StructOfStructsOfStructsT.java b/tests/MyGame/Example/StructOfStructsOfStructsT.java index 3f23040126..7839ec6fd8 100644 --- a/tests/MyGame/Example/StructOfStructsOfStructsT.java +++ b/tests/MyGame/Example/StructOfStructsOfStructsT.java @@ -2,10 +2,20 @@ package MyGame.Example; -import java.nio.*; -import java.lang.*; -import java.util.*; -import com.google.flatbuffers.*; +import com.google.flatbuffers.BaseVector; +import com.google.flatbuffers.BooleanVector; +import com.google.flatbuffers.ByteVector; +import com.google.flatbuffers.Constants; +import com.google.flatbuffers.DoubleVector; +import com.google.flatbuffers.FlatBufferBuilder; +import com.google.flatbuffers.FloatVector; +import com.google.flatbuffers.LongVector; +import com.google.flatbuffers.StringVector; +import com.google.flatbuffers.Struct; +import com.google.flatbuffers.Table; +import com.google.flatbuffers.UnionVector; +import java.nio.ByteBuffer; +import java.nio.ByteOrder; public class StructOfStructsOfStructsT { private MyGame.Example.StructOfStructsT a; diff --git a/tests/MyGame/Example/StructOfStructsT.java b/tests/MyGame/Example/StructOfStructsT.java index 47e337a348..0919fc2d53 100644 --- a/tests/MyGame/Example/StructOfStructsT.java +++ b/tests/MyGame/Example/StructOfStructsT.java @@ -2,10 +2,20 @@ package MyGame.Example; -import java.nio.*; -import java.lang.*; -import java.util.*; -import com.google.flatbuffers.*; +import com.google.flatbuffers.BaseVector; +import com.google.flatbuffers.BooleanVector; +import com.google.flatbuffers.ByteVector; +import com.google.flatbuffers.Constants; +import com.google.flatbuffers.DoubleVector; +import com.google.flatbuffers.FlatBufferBuilder; +import com.google.flatbuffers.FloatVector; +import com.google.flatbuffers.LongVector; +import com.google.flatbuffers.StringVector; +import com.google.flatbuffers.Struct; +import com.google.flatbuffers.Table; +import com.google.flatbuffers.UnionVector; +import java.nio.ByteBuffer; +import java.nio.ByteOrder; public class StructOfStructsT { private MyGame.Example.AbilityT a; diff --git a/tests/MyGame/Example/Test.java b/tests/MyGame/Example/Test.java index ce8f903661..62767187da 100644 --- a/tests/MyGame/Example/Test.java +++ b/tests/MyGame/Example/Test.java @@ -2,10 +2,20 @@ package MyGame.Example; -import java.nio.*; -import java.lang.*; -import java.util.*; -import com.google.flatbuffers.*; +import com.google.flatbuffers.BaseVector; +import com.google.flatbuffers.BooleanVector; +import com.google.flatbuffers.ByteVector; +import com.google.flatbuffers.Constants; +import com.google.flatbuffers.DoubleVector; +import com.google.flatbuffers.FlatBufferBuilder; +import com.google.flatbuffers.FloatVector; +import com.google.flatbuffers.LongVector; +import com.google.flatbuffers.StringVector; +import com.google.flatbuffers.Struct; +import com.google.flatbuffers.Table; +import com.google.flatbuffers.UnionVector; +import java.nio.ByteBuffer; +import java.nio.ByteOrder; @SuppressWarnings("unused") public final class Test extends Struct { diff --git a/tests/MyGame/Example/TestSimpleTableWithEnum.java b/tests/MyGame/Example/TestSimpleTableWithEnum.java index 7c26cd5bb2..8c685e7fde 100644 --- a/tests/MyGame/Example/TestSimpleTableWithEnum.java +++ b/tests/MyGame/Example/TestSimpleTableWithEnum.java @@ -2,10 +2,20 @@ package MyGame.Example; -import java.nio.*; -import java.lang.*; -import java.util.*; -import com.google.flatbuffers.*; +import com.google.flatbuffers.BaseVector; +import com.google.flatbuffers.BooleanVector; +import com.google.flatbuffers.ByteVector; +import com.google.flatbuffers.Constants; +import com.google.flatbuffers.DoubleVector; +import com.google.flatbuffers.FlatBufferBuilder; +import com.google.flatbuffers.FloatVector; +import com.google.flatbuffers.LongVector; +import com.google.flatbuffers.StringVector; +import com.google.flatbuffers.Struct; +import com.google.flatbuffers.Table; +import com.google.flatbuffers.UnionVector; +import java.nio.ByteBuffer; +import java.nio.ByteOrder; @SuppressWarnings("unused") final class TestSimpleTableWithEnum extends Table { diff --git a/tests/MyGame/Example/TestSimpleTableWithEnumT.java b/tests/MyGame/Example/TestSimpleTableWithEnumT.java index 4bfa90e89d..b441384517 100644 --- a/tests/MyGame/Example/TestSimpleTableWithEnumT.java +++ b/tests/MyGame/Example/TestSimpleTableWithEnumT.java @@ -2,10 +2,20 @@ package MyGame.Example; -import java.nio.*; -import java.lang.*; -import java.util.*; -import com.google.flatbuffers.*; +import com.google.flatbuffers.BaseVector; +import com.google.flatbuffers.BooleanVector; +import com.google.flatbuffers.ByteVector; +import com.google.flatbuffers.Constants; +import com.google.flatbuffers.DoubleVector; +import com.google.flatbuffers.FlatBufferBuilder; +import com.google.flatbuffers.FloatVector; +import com.google.flatbuffers.LongVector; +import com.google.flatbuffers.StringVector; +import com.google.flatbuffers.Struct; +import com.google.flatbuffers.Table; +import com.google.flatbuffers.UnionVector; +import java.nio.ByteBuffer; +import java.nio.ByteOrder; class TestSimpleTableWithEnumT { private int color; diff --git a/tests/MyGame/Example/TestT.java b/tests/MyGame/Example/TestT.java index e100a4c2b5..6a017c6cb2 100644 --- a/tests/MyGame/Example/TestT.java +++ b/tests/MyGame/Example/TestT.java @@ -2,10 +2,20 @@ package MyGame.Example; -import java.nio.*; -import java.lang.*; -import java.util.*; -import com.google.flatbuffers.*; +import com.google.flatbuffers.BaseVector; +import com.google.flatbuffers.BooleanVector; +import com.google.flatbuffers.ByteVector; +import com.google.flatbuffers.Constants; +import com.google.flatbuffers.DoubleVector; +import com.google.flatbuffers.FlatBufferBuilder; +import com.google.flatbuffers.FloatVector; +import com.google.flatbuffers.LongVector; +import com.google.flatbuffers.StringVector; +import com.google.flatbuffers.Struct; +import com.google.flatbuffers.Table; +import com.google.flatbuffers.UnionVector; +import java.nio.ByteBuffer; +import java.nio.ByteOrder; public class TestT { private short a; diff --git a/tests/MyGame/Example/TypeAliases.java b/tests/MyGame/Example/TypeAliases.java index 6d8626db8b..b5e2a16032 100644 --- a/tests/MyGame/Example/TypeAliases.java +++ b/tests/MyGame/Example/TypeAliases.java @@ -2,10 +2,20 @@ package MyGame.Example; -import java.nio.*; -import java.lang.*; -import java.util.*; -import com.google.flatbuffers.*; +import com.google.flatbuffers.BaseVector; +import com.google.flatbuffers.BooleanVector; +import com.google.flatbuffers.ByteVector; +import com.google.flatbuffers.Constants; +import com.google.flatbuffers.DoubleVector; +import com.google.flatbuffers.FlatBufferBuilder; +import com.google.flatbuffers.FloatVector; +import com.google.flatbuffers.LongVector; +import com.google.flatbuffers.StringVector; +import com.google.flatbuffers.Struct; +import com.google.flatbuffers.Table; +import com.google.flatbuffers.UnionVector; +import java.nio.ByteBuffer; +import java.nio.ByteOrder; @SuppressWarnings("unused") public final class TypeAliases extends Table { diff --git a/tests/MyGame/Example/TypeAliasesT.java b/tests/MyGame/Example/TypeAliasesT.java index 3b07956e09..9a5f68bab7 100644 --- a/tests/MyGame/Example/TypeAliasesT.java +++ b/tests/MyGame/Example/TypeAliasesT.java @@ -2,10 +2,20 @@ package MyGame.Example; -import java.nio.*; -import java.lang.*; -import java.util.*; -import com.google.flatbuffers.*; +import com.google.flatbuffers.BaseVector; +import com.google.flatbuffers.BooleanVector; +import com.google.flatbuffers.ByteVector; +import com.google.flatbuffers.Constants; +import com.google.flatbuffers.DoubleVector; +import com.google.flatbuffers.FlatBufferBuilder; +import com.google.flatbuffers.FloatVector; +import com.google.flatbuffers.LongVector; +import com.google.flatbuffers.StringVector; +import com.google.flatbuffers.Struct; +import com.google.flatbuffers.Table; +import com.google.flatbuffers.UnionVector; +import java.nio.ByteBuffer; +import java.nio.ByteOrder; public class TypeAliasesT { private byte i8; diff --git a/tests/MyGame/Example/Vec3.java b/tests/MyGame/Example/Vec3.java index 62ef33187c..4d500b3816 100644 --- a/tests/MyGame/Example/Vec3.java +++ b/tests/MyGame/Example/Vec3.java @@ -2,10 +2,20 @@ package MyGame.Example; -import java.nio.*; -import java.lang.*; -import java.util.*; -import com.google.flatbuffers.*; +import com.google.flatbuffers.BaseVector; +import com.google.flatbuffers.BooleanVector; +import com.google.flatbuffers.ByteVector; +import com.google.flatbuffers.Constants; +import com.google.flatbuffers.DoubleVector; +import com.google.flatbuffers.FlatBufferBuilder; +import com.google.flatbuffers.FloatVector; +import com.google.flatbuffers.LongVector; +import com.google.flatbuffers.StringVector; +import com.google.flatbuffers.Struct; +import com.google.flatbuffers.Table; +import com.google.flatbuffers.UnionVector; +import java.nio.ByteBuffer; +import java.nio.ByteOrder; @SuppressWarnings("unused") public final class Vec3 extends Struct { diff --git a/tests/MyGame/Example/Vec3T.java b/tests/MyGame/Example/Vec3T.java index 8728e3a295..28488de66f 100644 --- a/tests/MyGame/Example/Vec3T.java +++ b/tests/MyGame/Example/Vec3T.java @@ -2,10 +2,20 @@ package MyGame.Example; -import java.nio.*; -import java.lang.*; -import java.util.*; -import com.google.flatbuffers.*; +import com.google.flatbuffers.BaseVector; +import com.google.flatbuffers.BooleanVector; +import com.google.flatbuffers.ByteVector; +import com.google.flatbuffers.Constants; +import com.google.flatbuffers.DoubleVector; +import com.google.flatbuffers.FlatBufferBuilder; +import com.google.flatbuffers.FloatVector; +import com.google.flatbuffers.LongVector; +import com.google.flatbuffers.StringVector; +import com.google.flatbuffers.Struct; +import com.google.flatbuffers.Table; +import com.google.flatbuffers.UnionVector; +import java.nio.ByteBuffer; +import java.nio.ByteOrder; public class Vec3T { private float x; diff --git a/tests/MyGame/Example2/Monster.java b/tests/MyGame/Example2/Monster.java index 9fe22f71cb..a58a5ea7b7 100644 --- a/tests/MyGame/Example2/Monster.java +++ b/tests/MyGame/Example2/Monster.java @@ -2,10 +2,20 @@ package MyGame.Example2; -import java.nio.*; -import java.lang.*; -import java.util.*; -import com.google.flatbuffers.*; +import com.google.flatbuffers.BaseVector; +import com.google.flatbuffers.BooleanVector; +import com.google.flatbuffers.ByteVector; +import com.google.flatbuffers.Constants; +import com.google.flatbuffers.DoubleVector; +import com.google.flatbuffers.FlatBufferBuilder; +import com.google.flatbuffers.FloatVector; +import com.google.flatbuffers.LongVector; +import com.google.flatbuffers.StringVector; +import com.google.flatbuffers.Struct; +import com.google.flatbuffers.Table; +import com.google.flatbuffers.UnionVector; +import java.nio.ByteBuffer; +import java.nio.ByteOrder; @SuppressWarnings("unused") public final class Monster extends Table { diff --git a/tests/MyGame/Example2/MonsterT.java b/tests/MyGame/Example2/MonsterT.java index 2939f9b178..e26608422c 100644 --- a/tests/MyGame/Example2/MonsterT.java +++ b/tests/MyGame/Example2/MonsterT.java @@ -2,10 +2,20 @@ package MyGame.Example2; -import java.nio.*; -import java.lang.*; -import java.util.*; -import com.google.flatbuffers.*; +import com.google.flatbuffers.BaseVector; +import com.google.flatbuffers.BooleanVector; +import com.google.flatbuffers.ByteVector; +import com.google.flatbuffers.Constants; +import com.google.flatbuffers.DoubleVector; +import com.google.flatbuffers.FlatBufferBuilder; +import com.google.flatbuffers.FloatVector; +import com.google.flatbuffers.LongVector; +import com.google.flatbuffers.StringVector; +import com.google.flatbuffers.Struct; +import com.google.flatbuffers.Table; +import com.google.flatbuffers.UnionVector; +import java.nio.ByteBuffer; +import java.nio.ByteOrder; public class MonsterT { diff --git a/tests/MyGame/InParentNamespace.java b/tests/MyGame/InParentNamespace.java index 35e26c27a8..27ddbe8577 100644 --- a/tests/MyGame/InParentNamespace.java +++ b/tests/MyGame/InParentNamespace.java @@ -2,10 +2,20 @@ package MyGame; -import java.nio.*; -import java.lang.*; -import java.util.*; -import com.google.flatbuffers.*; +import com.google.flatbuffers.BaseVector; +import com.google.flatbuffers.BooleanVector; +import com.google.flatbuffers.ByteVector; +import com.google.flatbuffers.Constants; +import com.google.flatbuffers.DoubleVector; +import com.google.flatbuffers.FlatBufferBuilder; +import com.google.flatbuffers.FloatVector; +import com.google.flatbuffers.LongVector; +import com.google.flatbuffers.StringVector; +import com.google.flatbuffers.Struct; +import com.google.flatbuffers.Table; +import com.google.flatbuffers.UnionVector; +import java.nio.ByteBuffer; +import java.nio.ByteOrder; @SuppressWarnings("unused") public final class InParentNamespace extends Table { diff --git a/tests/MyGame/InParentNamespaceT.java b/tests/MyGame/InParentNamespaceT.java index 36d4485d9c..bba62ec280 100644 --- a/tests/MyGame/InParentNamespaceT.java +++ b/tests/MyGame/InParentNamespaceT.java @@ -2,10 +2,20 @@ package MyGame; -import java.nio.*; -import java.lang.*; -import java.util.*; -import com.google.flatbuffers.*; +import com.google.flatbuffers.BaseVector; +import com.google.flatbuffers.BooleanVector; +import com.google.flatbuffers.ByteVector; +import com.google.flatbuffers.Constants; +import com.google.flatbuffers.DoubleVector; +import com.google.flatbuffers.FlatBufferBuilder; +import com.google.flatbuffers.FloatVector; +import com.google.flatbuffers.LongVector; +import com.google.flatbuffers.StringVector; +import com.google.flatbuffers.Struct; +import com.google.flatbuffers.Table; +import com.google.flatbuffers.UnionVector; +import java.nio.ByteBuffer; +import java.nio.ByteOrder; public class InParentNamespaceT { diff --git a/tests/MyGame/MonsterExtra.java b/tests/MyGame/MonsterExtra.java index 5699076f47..728f16ebbb 100644 --- a/tests/MyGame/MonsterExtra.java +++ b/tests/MyGame/MonsterExtra.java @@ -2,10 +2,20 @@ package MyGame; -import java.nio.*; -import java.lang.*; -import java.util.*; -import com.google.flatbuffers.*; +import com.google.flatbuffers.BaseVector; +import com.google.flatbuffers.BooleanVector; +import com.google.flatbuffers.ByteVector; +import com.google.flatbuffers.Constants; +import com.google.flatbuffers.DoubleVector; +import com.google.flatbuffers.FlatBufferBuilder; +import com.google.flatbuffers.FloatVector; +import com.google.flatbuffers.LongVector; +import com.google.flatbuffers.StringVector; +import com.google.flatbuffers.Struct; +import com.google.flatbuffers.Table; +import com.google.flatbuffers.UnionVector; +import java.nio.ByteBuffer; +import java.nio.ByteOrder; @SuppressWarnings("unused") public final class MonsterExtra extends Table { diff --git a/tests/MyGame/MonsterExtraT.java b/tests/MyGame/MonsterExtraT.java index 4ec1932470..9f3c8b19d9 100644 --- a/tests/MyGame/MonsterExtraT.java +++ b/tests/MyGame/MonsterExtraT.java @@ -2,10 +2,20 @@ package MyGame; -import java.nio.*; -import java.lang.*; -import java.util.*; -import com.google.flatbuffers.*; +import com.google.flatbuffers.BaseVector; +import com.google.flatbuffers.BooleanVector; +import com.google.flatbuffers.ByteVector; +import com.google.flatbuffers.Constants; +import com.google.flatbuffers.DoubleVector; +import com.google.flatbuffers.FlatBufferBuilder; +import com.google.flatbuffers.FloatVector; +import com.google.flatbuffers.LongVector; +import com.google.flatbuffers.StringVector; +import com.google.flatbuffers.Struct; +import com.google.flatbuffers.Table; +import com.google.flatbuffers.UnionVector; +import java.nio.ByteBuffer; +import java.nio.ByteOrder; public class MonsterExtraT { private double d0; diff --git a/tests/optional_scalars/ScalarStuff.java b/tests/optional_scalars/ScalarStuff.java index d654a0b15f..7752d89fbe 100644 --- a/tests/optional_scalars/ScalarStuff.java +++ b/tests/optional_scalars/ScalarStuff.java @@ -2,10 +2,20 @@ package optional_scalars; -import java.nio.*; -import java.lang.*; -import java.util.*; -import com.google.flatbuffers.*; +import com.google.flatbuffers.BaseVector; +import com.google.flatbuffers.BooleanVector; +import com.google.flatbuffers.ByteVector; +import com.google.flatbuffers.Constants; +import com.google.flatbuffers.DoubleVector; +import com.google.flatbuffers.FlatBufferBuilder; +import com.google.flatbuffers.FloatVector; +import com.google.flatbuffers.LongVector; +import com.google.flatbuffers.StringVector; +import com.google.flatbuffers.Struct; +import com.google.flatbuffers.Table; +import com.google.flatbuffers.UnionVector; +import java.nio.ByteBuffer; +import java.nio.ByteOrder; @SuppressWarnings("unused") public final class ScalarStuff extends Table { diff --git a/tests/union_vector/Attacker.java b/tests/union_vector/Attacker.java index f1aef533a2..8a0e3dfc85 100644 --- a/tests/union_vector/Attacker.java +++ b/tests/union_vector/Attacker.java @@ -1,9 +1,19 @@ // automatically generated by the FlatBuffers compiler, do not modify -import java.nio.*; -import java.lang.*; -import java.util.*; -import com.google.flatbuffers.*; +import com.google.flatbuffers.BaseVector; +import com.google.flatbuffers.BooleanVector; +import com.google.flatbuffers.ByteVector; +import com.google.flatbuffers.Constants; +import com.google.flatbuffers.DoubleVector; +import com.google.flatbuffers.FlatBufferBuilder; +import com.google.flatbuffers.FloatVector; +import com.google.flatbuffers.LongVector; +import com.google.flatbuffers.StringVector; +import com.google.flatbuffers.Struct; +import com.google.flatbuffers.Table; +import com.google.flatbuffers.UnionVector; +import java.nio.ByteBuffer; +import java.nio.ByteOrder; @SuppressWarnings("unused") public final class Attacker extends Table { diff --git a/tests/union_vector/AttackerT.java b/tests/union_vector/AttackerT.java index c5ca2f1c32..0fa46a7606 100644 --- a/tests/union_vector/AttackerT.java +++ b/tests/union_vector/AttackerT.java @@ -1,9 +1,19 @@ // automatically generated by the FlatBuffers compiler, do not modify -import java.nio.*; -import java.lang.*; -import java.util.*; -import com.google.flatbuffers.*; +import com.google.flatbuffers.BaseVector; +import com.google.flatbuffers.BooleanVector; +import com.google.flatbuffers.ByteVector; +import com.google.flatbuffers.Constants; +import com.google.flatbuffers.DoubleVector; +import com.google.flatbuffers.FlatBufferBuilder; +import com.google.flatbuffers.FloatVector; +import com.google.flatbuffers.LongVector; +import com.google.flatbuffers.StringVector; +import com.google.flatbuffers.Struct; +import com.google.flatbuffers.Table; +import com.google.flatbuffers.UnionVector; +import java.nio.ByteBuffer; +import java.nio.ByteOrder; public class AttackerT { private int swordAttackDamage; diff --git a/tests/union_vector/BookReader.java b/tests/union_vector/BookReader.java index e90fadd223..f2e15741a8 100644 --- a/tests/union_vector/BookReader.java +++ b/tests/union_vector/BookReader.java @@ -1,9 +1,19 @@ // automatically generated by the FlatBuffers compiler, do not modify -import java.nio.*; -import java.lang.*; -import java.util.*; -import com.google.flatbuffers.*; +import com.google.flatbuffers.BaseVector; +import com.google.flatbuffers.BooleanVector; +import com.google.flatbuffers.ByteVector; +import com.google.flatbuffers.Constants; +import com.google.flatbuffers.DoubleVector; +import com.google.flatbuffers.FlatBufferBuilder; +import com.google.flatbuffers.FloatVector; +import com.google.flatbuffers.LongVector; +import com.google.flatbuffers.StringVector; +import com.google.flatbuffers.Struct; +import com.google.flatbuffers.Table; +import com.google.flatbuffers.UnionVector; +import java.nio.ByteBuffer; +import java.nio.ByteOrder; @SuppressWarnings("unused") public final class BookReader extends Struct { diff --git a/tests/union_vector/BookReaderT.java b/tests/union_vector/BookReaderT.java index 6a5d02649c..9000d60028 100644 --- a/tests/union_vector/BookReaderT.java +++ b/tests/union_vector/BookReaderT.java @@ -1,9 +1,19 @@ // automatically generated by the FlatBuffers compiler, do not modify -import java.nio.*; -import java.lang.*; -import java.util.*; -import com.google.flatbuffers.*; +import com.google.flatbuffers.BaseVector; +import com.google.flatbuffers.BooleanVector; +import com.google.flatbuffers.ByteVector; +import com.google.flatbuffers.Constants; +import com.google.flatbuffers.DoubleVector; +import com.google.flatbuffers.FlatBufferBuilder; +import com.google.flatbuffers.FloatVector; +import com.google.flatbuffers.LongVector; +import com.google.flatbuffers.StringVector; +import com.google.flatbuffers.Struct; +import com.google.flatbuffers.Table; +import com.google.flatbuffers.UnionVector; +import java.nio.ByteBuffer; +import java.nio.ByteOrder; public class BookReaderT { private int booksRead; diff --git a/tests/union_vector/FallingTub.java b/tests/union_vector/FallingTub.java index 5c2fae3e87..272f18f896 100644 --- a/tests/union_vector/FallingTub.java +++ b/tests/union_vector/FallingTub.java @@ -1,9 +1,19 @@ // automatically generated by the FlatBuffers compiler, do not modify -import java.nio.*; -import java.lang.*; -import java.util.*; -import com.google.flatbuffers.*; +import com.google.flatbuffers.BaseVector; +import com.google.flatbuffers.BooleanVector; +import com.google.flatbuffers.ByteVector; +import com.google.flatbuffers.Constants; +import com.google.flatbuffers.DoubleVector; +import com.google.flatbuffers.FlatBufferBuilder; +import com.google.flatbuffers.FloatVector; +import com.google.flatbuffers.LongVector; +import com.google.flatbuffers.StringVector; +import com.google.flatbuffers.Struct; +import com.google.flatbuffers.Table; +import com.google.flatbuffers.UnionVector; +import java.nio.ByteBuffer; +import java.nio.ByteOrder; @SuppressWarnings("unused") public final class FallingTub extends Struct { diff --git a/tests/union_vector/FallingTubT.java b/tests/union_vector/FallingTubT.java index 0b986993f6..23275354f9 100644 --- a/tests/union_vector/FallingTubT.java +++ b/tests/union_vector/FallingTubT.java @@ -1,9 +1,19 @@ // automatically generated by the FlatBuffers compiler, do not modify -import java.nio.*; -import java.lang.*; -import java.util.*; -import com.google.flatbuffers.*; +import com.google.flatbuffers.BaseVector; +import com.google.flatbuffers.BooleanVector; +import com.google.flatbuffers.ByteVector; +import com.google.flatbuffers.Constants; +import com.google.flatbuffers.DoubleVector; +import com.google.flatbuffers.FlatBufferBuilder; +import com.google.flatbuffers.FloatVector; +import com.google.flatbuffers.LongVector; +import com.google.flatbuffers.StringVector; +import com.google.flatbuffers.Struct; +import com.google.flatbuffers.Table; +import com.google.flatbuffers.UnionVector; +import java.nio.ByteBuffer; +import java.nio.ByteOrder; public class FallingTubT { private int weight; diff --git a/tests/union_vector/HandFan.java b/tests/union_vector/HandFan.java index c29b7ec462..e536efda5e 100644 --- a/tests/union_vector/HandFan.java +++ b/tests/union_vector/HandFan.java @@ -1,9 +1,19 @@ // automatically generated by the FlatBuffers compiler, do not modify -import java.nio.*; -import java.lang.*; -import java.util.*; -import com.google.flatbuffers.*; +import com.google.flatbuffers.BaseVector; +import com.google.flatbuffers.BooleanVector; +import com.google.flatbuffers.ByteVector; +import com.google.flatbuffers.Constants; +import com.google.flatbuffers.DoubleVector; +import com.google.flatbuffers.FlatBufferBuilder; +import com.google.flatbuffers.FloatVector; +import com.google.flatbuffers.LongVector; +import com.google.flatbuffers.StringVector; +import com.google.flatbuffers.Struct; +import com.google.flatbuffers.Table; +import com.google.flatbuffers.UnionVector; +import java.nio.ByteBuffer; +import java.nio.ByteOrder; @SuppressWarnings("unused") public final class HandFan extends Table { diff --git a/tests/union_vector/HandFanT.java b/tests/union_vector/HandFanT.java index d3b202be2c..b3500a9508 100644 --- a/tests/union_vector/HandFanT.java +++ b/tests/union_vector/HandFanT.java @@ -1,9 +1,19 @@ // automatically generated by the FlatBuffers compiler, do not modify -import java.nio.*; -import java.lang.*; -import java.util.*; -import com.google.flatbuffers.*; +import com.google.flatbuffers.BaseVector; +import com.google.flatbuffers.BooleanVector; +import com.google.flatbuffers.ByteVector; +import com.google.flatbuffers.Constants; +import com.google.flatbuffers.DoubleVector; +import com.google.flatbuffers.FlatBufferBuilder; +import com.google.flatbuffers.FloatVector; +import com.google.flatbuffers.LongVector; +import com.google.flatbuffers.StringVector; +import com.google.flatbuffers.Struct; +import com.google.flatbuffers.Table; +import com.google.flatbuffers.UnionVector; +import java.nio.ByteBuffer; +import java.nio.ByteOrder; public class HandFanT { private int length; diff --git a/tests/union_vector/Movie.java b/tests/union_vector/Movie.java index 16af5d554d..5fb77017d7 100644 --- a/tests/union_vector/Movie.java +++ b/tests/union_vector/Movie.java @@ -1,9 +1,19 @@ // automatically generated by the FlatBuffers compiler, do not modify -import java.nio.*; -import java.lang.*; -import java.util.*; -import com.google.flatbuffers.*; +import com.google.flatbuffers.BaseVector; +import com.google.flatbuffers.BooleanVector; +import com.google.flatbuffers.ByteVector; +import com.google.flatbuffers.Constants; +import com.google.flatbuffers.DoubleVector; +import com.google.flatbuffers.FlatBufferBuilder; +import com.google.flatbuffers.FloatVector; +import com.google.flatbuffers.LongVector; +import com.google.flatbuffers.StringVector; +import com.google.flatbuffers.Struct; +import com.google.flatbuffers.Table; +import com.google.flatbuffers.UnionVector; +import java.nio.ByteBuffer; +import java.nio.ByteOrder; @SuppressWarnings("unused") public final class Movie extends Table { diff --git a/tests/union_vector/MovieT.java b/tests/union_vector/MovieT.java index 122d4eae59..a9551629c7 100644 --- a/tests/union_vector/MovieT.java +++ b/tests/union_vector/MovieT.java @@ -1,9 +1,19 @@ // automatically generated by the FlatBuffers compiler, do not modify -import java.nio.*; -import java.lang.*; -import java.util.*; -import com.google.flatbuffers.*; +import com.google.flatbuffers.BaseVector; +import com.google.flatbuffers.BooleanVector; +import com.google.flatbuffers.ByteVector; +import com.google.flatbuffers.Constants; +import com.google.flatbuffers.DoubleVector; +import com.google.flatbuffers.FlatBufferBuilder; +import com.google.flatbuffers.FloatVector; +import com.google.flatbuffers.LongVector; +import com.google.flatbuffers.StringVector; +import com.google.flatbuffers.Struct; +import com.google.flatbuffers.Table; +import com.google.flatbuffers.UnionVector; +import java.nio.ByteBuffer; +import java.nio.ByteOrder; public class MovieT { private CharacterUnion mainCharacter; diff --git a/tests/union_vector/Rapunzel.java b/tests/union_vector/Rapunzel.java index ad6d9c186c..f348ae13d1 100644 --- a/tests/union_vector/Rapunzel.java +++ b/tests/union_vector/Rapunzel.java @@ -1,9 +1,19 @@ // automatically generated by the FlatBuffers compiler, do not modify -import java.nio.*; -import java.lang.*; -import java.util.*; -import com.google.flatbuffers.*; +import com.google.flatbuffers.BaseVector; +import com.google.flatbuffers.BooleanVector; +import com.google.flatbuffers.ByteVector; +import com.google.flatbuffers.Constants; +import com.google.flatbuffers.DoubleVector; +import com.google.flatbuffers.FlatBufferBuilder; +import com.google.flatbuffers.FloatVector; +import com.google.flatbuffers.LongVector; +import com.google.flatbuffers.StringVector; +import com.google.flatbuffers.Struct; +import com.google.flatbuffers.Table; +import com.google.flatbuffers.UnionVector; +import java.nio.ByteBuffer; +import java.nio.ByteOrder; @SuppressWarnings("unused") public final class Rapunzel extends Struct { diff --git a/tests/union_vector/RapunzelT.java b/tests/union_vector/RapunzelT.java index b58732c860..6a9808177c 100644 --- a/tests/union_vector/RapunzelT.java +++ b/tests/union_vector/RapunzelT.java @@ -1,9 +1,19 @@ // automatically generated by the FlatBuffers compiler, do not modify -import java.nio.*; -import java.lang.*; -import java.util.*; -import com.google.flatbuffers.*; +import com.google.flatbuffers.BaseVector; +import com.google.flatbuffers.BooleanVector; +import com.google.flatbuffers.ByteVector; +import com.google.flatbuffers.Constants; +import com.google.flatbuffers.DoubleVector; +import com.google.flatbuffers.FlatBufferBuilder; +import com.google.flatbuffers.FloatVector; +import com.google.flatbuffers.LongVector; +import com.google.flatbuffers.StringVector; +import com.google.flatbuffers.Struct; +import com.google.flatbuffers.Table; +import com.google.flatbuffers.UnionVector; +import java.nio.ByteBuffer; +import java.nio.ByteOrder; public class RapunzelT { private int hairLength; From c3a01c7228b491ef391a56aabeac85b15826a459 Mon Sep 17 00:00:00 2001 From: Michael Le Date: Mon, 28 Nov 2022 18:29:48 -0800 Subject: [PATCH 037/571] Use FinshedBytes() in go-echo example instead of manually encoding offset (#7660) Co-authored-by: Derek Bailey --- examples/go-echo/client/client.go | 15 ++------------- examples/go-echo/server/server.go | 8 +------- 2 files changed, 3 insertions(+), 20 deletions(-) diff --git a/examples/go-echo/client/client.go b/examples/go-echo/client/client.go index 5d2c130825..be8fd7e852 100644 --- a/examples/go-echo/client/client.go +++ b/examples/go-echo/client/client.go @@ -16,13 +16,7 @@ func RequestBody() *bytes.Reader { b := flatbuffers.NewBuilder(0) r := net.RequestT{Player: &hero.WarriorT{Name: "Krull", Hp: 100}} b.Finish(r.Pack(b)) - - // Encode builder head in last 4 bytes of request body - buf := make([]byte, 4) - flatbuffers.WriteUOffsetT(buf, b.Head()) - buf = append(b.Bytes, buf...) - - return bytes.NewReader(buf) + return bytes.NewReader(b.FinishedBytes()) } func ReadResponse(r *http.Response) { @@ -32,18 +26,13 @@ func ReadResponse(r *http.Response) { return } - // Last 4 bytes is offset. - off := flatbuffers.GetUOffsetT(body[len(body)-4:]) - buf := body[:len(body) - 4] - - res := net.GetRootAsResponse(buf, off) + res := net.GetRootAsResponse(body, 0) player := res.Player(nil) fmt.Printf("Got response (name: %v, hp: %v)\n", string(player.Name()), player.Hp()) } func main() { - body := RequestBody() req, err := http.NewRequest("POST", "http://localhost:8080/echo", body) if err != nil { diff --git a/examples/go-echo/server/server.go b/examples/go-echo/server/server.go index 46ff9e108b..c9885b899d 100644 --- a/examples/go-echo/server/server.go +++ b/examples/go-echo/server/server.go @@ -5,8 +5,6 @@ import ( "fmt" "io/ioutil" "net/http" - - flatbuffers "github.com/google/flatbuffers/go" ) func echo(w http.ResponseWriter, r *http.Request) { @@ -16,11 +14,7 @@ func echo(w http.ResponseWriter, r *http.Request) { return } - // Last 4 bytes is offset. See client.go. - off := flatbuffers.GetUOffsetT(body[len(body)-4:]) - buf := body[:len(body) - 4] - - req := net.GetRootAsRequest(buf, off) + req := net.GetRootAsRequest(body, 0) player := req.Player(nil) fmt.Printf("Got request (name: %v, hp: %v)\n", string(player.Name()), player.Hp()) From ad6054c60079c0b813f3354a822ffbf1b4a70ad0 Mon Sep 17 00:00:00 2001 From: sssooonnnggg Date: Tue, 29 Nov 2022 12:59:53 +0800 Subject: [PATCH 038/571] chore: emit more reasonable error message when using incomplete type in struct (#7678) Co-authored-by: Derek Bailey --- include/flatbuffers/idl.h | 4 ++++ src/idl_parser.cpp | 6 ++++++ 2 files changed, 10 insertions(+) diff --git a/include/flatbuffers/idl.h b/include/flatbuffers/idl.h index a07f62a30b..f638489453 100644 --- a/include/flatbuffers/idl.h +++ b/include/flatbuffers/idl.h @@ -473,6 +473,10 @@ inline bool IsStruct(const Type &type) { return type.base_type == BASE_TYPE_STRUCT && type.struct_def->fixed; } +inline bool IsIncompleteStruct(const Type &type) { + return type.base_type == BASE_TYPE_STRUCT && type.struct_def->predecl; +} + inline bool IsTable(const Type &type) { return type.base_type == BASE_TYPE_STRUCT && !type.struct_def->fixed; } diff --git a/src/idl_parser.cpp b/src/idl_parser.cpp index b16c3bec8a..854d2a7cfd 100644 --- a/src/idl_parser.cpp +++ b/src/idl_parser.cpp @@ -918,6 +918,12 @@ CheckedError Parser::ParseField(StructDef &struct_def) { ECHECK(ParseType(type)); if (struct_def.fixed) { + if (IsIncompleteStruct(type) || + (IsArray(type) && IsIncompleteStruct(type.VectorType()))) { + std::string type_name = IsArray(type) ? type.VectorType().struct_def->name : type.struct_def->name; + return Error(std::string("Incomplete type in struct is not allowed, type name: ") + type_name); + } + auto valid = IsScalar(type.base_type) || IsStruct(type); if (!valid && IsArray(type)) { const auto &elem_type = type.VectorType(); From cf89d1e75625ed46fdf365b1d691ddfaf586f0c0 Mon Sep 17 00:00:00 2001 From: Louis Laugesen Date: Wed, 30 Nov 2022 03:12:28 +1100 Subject: [PATCH 039/571] Fix PHP byte validation and reenable builds (#7670) * Fix PHP byte validation and reenable builds * Use checkout@v3 Co-authored-by: Derek Bailey --- .github/workflows/build.yml | 14 ++++++++++++++ php/ByteBuffer.php | 7 ++++++- tests/phpTest.php | 8 ++++---- 3 files changed, 24 insertions(+), 5 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 69be55b362..40a9e3edef 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -423,6 +423,20 @@ jobs: working-directory: tests run: bash GoTest.sh + build-php: + name: Build PHP + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: flatc + # FIXME: make test script not rely on flatc + run: cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release -DFLATBUFFERS_BUILD_TESTS=OFF -DFLATBUFFERS_INSTALL=OFF -DFLATBUFFERS_BUILD_FLATLIB=OFF -DFLATBUFFERS_BUILD_FLATHASH=OFF -DFLATBUFFERS_STRICT_MODE=ON . && make -j + - name: test + working-directory: tests + run: | + php phpTest.php + sh phpUnionVectorTest.sh + build-swift: name: Build Swift runs-on: ubuntu-latest diff --git a/php/ByteBuffer.php b/php/ByteBuffer.php index 9929a7df19..bb438001bf 100644 --- a/php/ByteBuffer.php +++ b/php/ByteBuffer.php @@ -486,7 +486,12 @@ private static function convertHelper($type, $value, $value2 = null) { } private static function validateValue($min, $max, $value, $type, $additional_notes = "") { - if(!($min <= $value && $value <= $max)) { + if ( + !( + ($type === "byte" && $min <= ord($value) && ord($value) <= $max) || + ($min <= $value && $value <= $max) + ) + ) { throw new \InvalidArgumentException(sprintf("bad number %s for type %s.%s", $value, $type, $additional_notes)); } } diff --git a/tests/phpTest.php b/tests/phpTest.php index c1447c2d3c..a854e783e3 100644 --- a/tests/phpTest.php +++ b/tests/phpTest.php @@ -371,21 +371,21 @@ function testByteBuffer(Assert $assert) { $buffer = "\0"; $uut = Google\FlatBuffers\ByteBuffer::wrap($buffer); $assert->Throws(new OutOfRangeException(), function() use ($uut) { - $uut->putShort(2, "\x63"); // 99 + $uut->putShort(2, 2); // 99 }); //Test: ByteBuffer_PutShortChecksLength $buffer = "\0"; $uut = Google\FlatBuffers\ByteBuffer::wrap($buffer); $assert->Throws(new OutOfRangeException(), function() use ($uut) { - $uut->putShort(0, "\x63"); // 99 + $uut->putShort(0, 2); // 99 }); //Test: ByteBuffer_PutShortChecksLengthAndOffset $buffer = str_repeat("\0", 2); $uut = Google\FlatBuffers\ByteBuffer::wrap($buffer); $assert->Throws(new OutOfRangeException(), function() use ($uut) { - $uut->putShort(1, "\x63"); // 99 + $uut->putShort(1, 2); // 99 }); //Test: ByteBuffer_PutIntPopulatesBufferCorrectly @@ -625,7 +625,7 @@ public function Throws($class, Callable $callback) { throw new \Exception("passed statement don't throw an exception."); } catch (\Exception $e) { if (get_class($e) != get_class($class)) { - throw new Exception("passed statement doesn't throw " . get_class($class) . ". throwws " . get_class($e)); + throw new Exception("passed statement doesn't throw " . get_class($class) . ". throws " . get_class($e) . ": {$e->getMessage()}"); } } } From 7e00b754f0c15dc0b847675852e3c76eceff803a Mon Sep 17 00:00:00 2001 From: Sergei Trofimovich Date: Thu, 1 Dec 2022 02:47:10 +0000 Subject: [PATCH 040/571] tests/reflection_test.h: add missing include (#7680) Without the change build fails on weekly `gcc-13` snapshots as: In file included from /build/flatbuffers/tests/reflection_test.cpp:1: tests/reflection_test.h:9:57: error: 'uint8_t' has not been declared 9 | void ReflectionTest(const std::string& tests_data_path, uint8_t *flatbuf, size_t length); | ^~~~~~~ --- tests/reflection_test.h | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/reflection_test.h b/tests/reflection_test.h index d5148679d1..090871963a 100644 --- a/tests/reflection_test.h +++ b/tests/reflection_test.h @@ -1,6 +1,7 @@ #ifndef TESTS_REFLECTION_TEST_H #define TESTS_REFLECTION_TEST_H +#include #include namespace flatbuffers { From 00af4e23b30e1e368e6082869b15d4a1d81bd425 Mon Sep 17 00:00:00 2001 From: Michael Le Date: Wed, 30 Nov 2022 20:57:06 -0800 Subject: [PATCH 041/571] Remove --gen-name-strings flag from cmake command for generating union_vector_generated.h (#7684) * Sync make outputs with master * Remove --gen-name-string flag from CMAKE --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index c4a0af5801..d3495b849c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -632,7 +632,7 @@ if(FLATBUFFERS_BUILD_TESTS) compile_flatbuffers_schema_to_binary(tests/monster_test.fbs) compile_flatbuffers_schema_to_cpp_opt(tests/namespace_test/namespace_test1.fbs "--no-includes;--gen-compare;--gen-name-strings") compile_flatbuffers_schema_to_cpp_opt(tests/namespace_test/namespace_test2.fbs "--no-includes;--gen-compare;--gen-name-strings") - compile_flatbuffers_schema_to_cpp_opt(tests/union_vector/union_vector.fbs "--no-includes;--gen-compare;--gen-name-strings") + compile_flatbuffers_schema_to_cpp_opt(tests/union_vector/union_vector.fbs "--no-includes;--gen-compare;") compile_flatbuffers_schema_to_cpp(tests/optional_scalars.fbs) compile_flatbuffers_schema_to_cpp_opt(tests/native_type_test.fbs "") compile_flatbuffers_schema_to_cpp_opt(tests/arrays_test.fbs "--scoped-enums;--gen-compare") From 3b2ced0131d4d19e966b5c840d067cafcccb4a3c Mon Sep 17 00:00:00 2001 From: Derek Bailey Date: Thu, 1 Dec 2022 20:04:49 -0800 Subject: [PATCH 042/571] Update missing C# namespace to Google.FlatBuffers --- docs/source/CsharpUsage.md | 2 +- docs/source/Tutorial.md | 6 +++--- samples/SampleBinary.cs | 2 +- tests/namespace_test/NamespaceA/TableInC.cs | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/source/CsharpUsage.md b/docs/source/CsharpUsage.md index abfcbf6554..da36fa8b51 100644 --- a/docs/source/CsharpUsage.md +++ b/docs/source/CsharpUsage.md @@ -82,7 +82,7 @@ pass to the `GetRootAsMyRootType` function: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cs} using MyGame.Example; - using FlatBuffers; + using Google.FlatBuffers; // This snippet ignores exceptions for brevity. byte[] data = File.ReadAllBytes("monsterdata_test.mon"); diff --git a/docs/source/Tutorial.md b/docs/source/Tutorial.md index f633425035..1069316418 100644 --- a/docs/source/Tutorial.md +++ b/docs/source/Tutorial.md @@ -415,7 +415,7 @@ The first step is to import/include the library, generated files, etc.
~~~{.cs} - using FlatBuffers; + using Google.FlatBuffers; using MyGame.Sample; // The `flatc` generated files. (Monster, Vec3, etc.) ~~~
@@ -2200,7 +2200,7 @@ before:
~~~{.cs} - using FlatBuffers; + using Google.FlatBuffers; using MyGame.Sample; // The `flatc` generated files. (Monster, Vec3, etc.) ~~~
@@ -3449,7 +3449,7 @@ Java supports vectors of unions, but it isn't currently documented.
~~~{.cs} -using FlatBuffers; +using Google.FlatBuffers; using Example.VectorOfUnions; var fbb = new FlatBufferBuilder(100); diff --git a/samples/SampleBinary.cs b/samples/SampleBinary.cs index d07caf790f..a7e5214f6b 100644 --- a/samples/SampleBinary.cs +++ b/samples/SampleBinary.cs @@ -17,7 +17,7 @@ // To run, use the `csharp_sample.sh` script. using System; -using FlatBuffers; +using Google.FlatBuffers; using MyGame.Sample; class SampleBinary diff --git a/tests/namespace_test/NamespaceA/TableInC.cs b/tests/namespace_test/NamespaceA/TableInC.cs index 98f4e13831..638fb4b7c6 100644 --- a/tests/namespace_test/NamespaceA/TableInC.cs +++ b/tests/namespace_test/NamespaceA/TableInC.cs @@ -4,7 +4,7 @@ namespace NamespaceA { using System; -using FlatBuffers; +using Google.FlatBuffers; public sealed class TableInC : Table { public static TableInC GetRootAsTableInC(ByteBuffer _bb) { return GetRootAsTableInC(_bb, new TableInC()); } From 2eaf790638019defff3728b7d952c4e6f33e9c05 Mon Sep 17 00:00:00 2001 From: Derek Bailey Date: Thu, 1 Dec 2022 20:21:48 -0800 Subject: [PATCH 043/571] Fix confrom failure for nullptr dereference. (#7688) --- include/flatbuffers/idl.h | 7 +++++-- src/idl_parser.cpp | 9 +++++++-- tests/evolution_test.cpp | 37 ++++++++++++++++++++++++------------- 3 files changed, 36 insertions(+), 17 deletions(-) diff --git a/include/flatbuffers/idl.h b/include/flatbuffers/idl.h index f638489453..b564b1b271 100644 --- a/include/flatbuffers/idl.h +++ b/include/flatbuffers/idl.h @@ -541,8 +541,11 @@ inline bool operator!=(const EnumVal &lhs, const EnumVal &rhs) { inline bool EqualByName(const Type &a, const Type &b) { return a.base_type == b.base_type && a.element == b.element && (a.struct_def == b.struct_def || - a.struct_def->name == b.struct_def->name) && - (a.enum_def == b.enum_def || a.enum_def->name == b.enum_def->name); + (a.struct_def != nullptr && b.struct_def != nullptr && + a.struct_def->name == b.struct_def->name)) && + (a.enum_def == b.enum_def || + (a.enum_def != nullptr && b.enum_def != nullptr && + a.enum_def->name == b.enum_def->name)); } struct RPCCall : public Definition { diff --git a/src/idl_parser.cpp b/src/idl_parser.cpp index 854d2a7cfd..9650cc9dd5 100644 --- a/src/idl_parser.cpp +++ b/src/idl_parser.cpp @@ -4239,8 +4239,13 @@ std::string Parser::ConformTo(const Parser &base) { field_base = *fbit; if (field.value.offset == field_base->value.offset) { renamed_fields.insert(field_base); - if (!EqualByName(field.value.type, field_base->value.type)) - return "field renamed to different type: " + qualified_field_name; + if (!EqualByName(field.value.type, field_base->value.type)) { + const auto qualified_field_base = + qualified_name + "." + field_base->name; + return "field renamed to different type: " + + qualified_field_name + " (renamed from " + + qualified_field_base + ")"; + } break; } } diff --git a/tests/evolution_test.cpp b/tests/evolution_test.cpp index e7404d4218..6c23d3fe13 100644 --- a/tests/evolution_test.cpp +++ b/tests/evolution_test.cpp @@ -80,26 +80,37 @@ void EvolutionTest(const std::string &tests_data_path) { #endif } + void ConformTest() { - flatbuffers::Parser parser; - TEST_EQ(parser.Parse("table T { A:int; } enum E:byte { A }"), true); + const char ref[] = "table T { A:int; } enum E:byte { A }"; - auto test_conform = [](flatbuffers::Parser &parser1, const char *test, + auto test_conform = [](const char *ref, const char *test, const char *expected_err) { + flatbuffers::Parser parser1; + TEST_EQ(parser1.Parse(ref), true); flatbuffers::Parser parser2; TEST_EQ(parser2.Parse(test), true); auto err = parser2.ConformTo(parser1); - TEST_NOTNULL(strstr(err.c_str(), expected_err)); + if (*expected_err == '\0') { + TEST_EQ_STR(err.c_str(), expected_err); + } else { + TEST_NOTNULL(strstr(err.c_str(), expected_err)); + } }; - test_conform(parser, "table T { A:byte; }", "types differ for field"); - test_conform(parser, "table T { B:int; A:int; }", "offsets differ for field"); - test_conform(parser, "table T { A:int = 1; }", "defaults differ for field"); - test_conform(parser, "table T { B:float; }", - "field renamed to different type"); - test_conform(parser, "enum E:byte { B, A }", "values differ for enum"); - test_conform(parser, "table T { }", "field deleted"); - test_conform(parser, "table T { B:int; }", ""); //renaming a field is allowed + test_conform(ref, "table T { A:byte; }", "types differ for field: T.A"); + test_conform(ref, "table T { B:int; A:int; }", + "offsets differ for field: T.A"); + test_conform(ref, "table T { A:int = 1; }", "defaults differ for field: T.A"); + test_conform(ref, "table T { B:float; }", + "field renamed to different type: T.B (renamed from T.A)"); + test_conform(ref, "enum E:byte { B, A }", "values differ for enum: A"); + test_conform(ref, "table T { }", "field deleted: T.A"); + test_conform(ref, "table T { B:int; }", ""); // renaming a field is allowed + + const char ref2[] = "enum E:byte { A } table T2 { f:E; } "; + test_conform(ref2, "enum E:int32 { A } table T2 { df:byte; f:E; }", + "field renamed to different type: T2.df (renamed from T2.f)"); } void UnionDeprecationTest(const std::string& tests_data_path) { @@ -138,4 +149,4 @@ void UnionDeprecationTest(const std::string& tests_data_path) { } } // namespace tests -} // namespace flatbuffers \ No newline at end of file +} // namespace flatbuffers From 6d95867a8faead1324a80f08da253a0f6cb326e9 Mon Sep 17 00:00:00 2001 From: Derek Bailey Date: Fri, 2 Dec 2022 20:49:03 -0800 Subject: [PATCH 044/571] Move Nim to completed language --- readme.md | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/readme.md b/readme.md index 9949ba66f0..b7a67ca4b8 100644 --- a/readme.md +++ b/readme.md @@ -42,10 +42,7 @@ Code generation and runtime libraries for many popular languages. 1. Rust - [crates.io](https://crates.io/crates/flatbuffers) 1. Swift 1. TypeScript - [NPM](https://www.npmjs.com/package/flatbuffers) - -*and more in progress...* - -1. [Nim](https://github.com/google/flatbuffers/pull/7362) +1. Nim ## Contribution From 416c6020eb0b8c97474b20f81d2d435c7065429c Mon Sep 17 00:00:00 2001 From: Derek Bailey Date: Fri, 2 Dec 2022 20:52:20 -0800 Subject: [PATCH 045/571] Add swift link --- readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/readme.md b/readme.md index b7a67ca4b8..83fa84adb2 100644 --- a/readme.md +++ b/readme.md @@ -40,7 +40,7 @@ Code generation and runtime libraries for many popular languages. 1. PHP 1. Python - [PyPi](https://pypi.org/project/flatbuffers/) 1. Rust - [crates.io](https://crates.io/crates/flatbuffers) -1. Swift +1. Swift - [swiftpackageindex](https://swiftpackageindex.com/google/flatbuffers) 1. TypeScript - [NPM](https://www.npmjs.com/package/flatbuffers) 1. Nim From a8d49f2972245f70d7d302b5a8bd39db779fb861 Mon Sep 17 00:00:00 2001 From: RishabhDeep Singh Date: Tue, 6 Dec 2022 06:07:21 +0530 Subject: [PATCH 046/571] Add LICENSE.txt to python (#7692) * Add LICENSE.txt to python * Remove LICENSE.txt from python path and used the root LICENSE.txt file --- python/setup.cfg | 4 ++++ python/setup.py | 1 + 2 files changed, 5 insertions(+) diff --git a/python/setup.cfg b/python/setup.cfg index 3c6e79cf31..bb0feff994 100644 --- a/python/setup.cfg +++ b/python/setup.cfg @@ -1,2 +1,6 @@ [bdist_wheel] universal=1 + +[metadata] +license_files = + ../license.txt \ No newline at end of file diff --git a/python/setup.py b/python/setup.py index 80cf925085..bb5e71ae46 100644 --- a/python/setup.py +++ b/python/setup.py @@ -18,6 +18,7 @@ name='flatbuffers', version='22.11.23', license='Apache 2.0', + license_files='../LICENSE.txt', author='Derek Bailey', author_email='derekbailey@google.com', url='https://google.github.io/flatbuffers/', From c0230d839b8773711147ae7a972385c093a8bffb Mon Sep 17 00:00:00 2001 From: RishabhDeep Singh Date: Tue, 6 Dec 2022 06:13:38 +0530 Subject: [PATCH 047/571] Refactor src/idl_gen_cpp.cpp (#7693) * Refactor for loops and simplify code * Refactor for loops and simplify code * Fix for loop and reformat * reformat code --- src/idl_gen_cpp.cpp | 439 +++++++++++++++++++------------------------- 1 file changed, 186 insertions(+), 253 deletions(-) diff --git a/src/idl_gen_cpp.cpp b/src/idl_gen_cpp.cpp index e3d1ff35b4..52e4136b4d 100644 --- a/src/idl_gen_cpp.cpp +++ b/src/idl_gen_cpp.cpp @@ -60,9 +60,8 @@ static std::string GenIncludeGuard(const std::string &file_name, guard = "FLATBUFFERS_GENERATED_" + guard; guard += "_"; // For further uniqueness, also add the namespace. - for (auto it = name_space.components.begin(); - it != name_space.components.end(); ++it) { - guard += *it + "_"; + for (const std::string &component : name_space.components) { + guard += component + "_"; } // Anything extra to add to the guard? if (!postfix.empty()) { guard += postfix + "_"; } @@ -236,9 +235,9 @@ class CppGenerator : public BaseGenerator { void GenIncludeDependencies() { if (opts_.generate_object_based_api) { - for (auto it = parser_.native_included_files_.begin(); - it != parser_.native_included_files_.end(); ++it) { - code_ += "#include \"" + *it + "\""; + for (const std::string &native_included_file : + parser_.native_included_files_) { + code_ += "#include \"" + native_included_file + "\""; } } @@ -272,8 +271,8 @@ class CppGenerator : public BaseGenerator { } void GenExtraIncludes() { - for (std::size_t i = 0; i < opts_.cpp_includes.size(); ++i) { - code_ += "#include \"" + opts_.cpp_includes[i] + "\""; + for (const std::string &cpp_include : opts_.cpp_includes) { + code_ += "#include \"" + cpp_include + "\""; } if (!opts_.cpp_includes.empty()) { code_ += ""; } } @@ -411,18 +410,16 @@ class CppGenerator : public BaseGenerator { // Generate forward declarations for all structs/tables, since they may // have circular references. - for (auto it = parser_.structs_.vec.begin(); - it != parser_.structs_.vec.end(); ++it) { - const auto &struct_def = **it; - if (!struct_def.generated) { - SetNameSpace(struct_def.defined_namespace); - code_ += "struct " + Name(struct_def) + ";"; - if (!struct_def.fixed) { - code_ += "struct " + Name(struct_def) + "Builder;"; + for (const auto &struct_def : parser_.structs_.vec) { + if (!struct_def->generated) { + SetNameSpace(struct_def->defined_namespace); + code_ += "struct " + Name(*struct_def) + ";"; + if (!struct_def->fixed) { + code_ += "struct " + Name(*struct_def) + "Builder;"; } if (opts_.generate_object_based_api) { - auto nativeName = NativeName(Name(struct_def), &struct_def, opts_); - if (!struct_def.fixed) { code_ += "struct " + nativeName + ";"; } + auto nativeName = NativeName(Name(*struct_def), struct_def, opts_); + if (!struct_def->fixed) { code_ += "struct " + nativeName + ";"; } } code_ += ""; } @@ -430,12 +427,10 @@ class CppGenerator : public BaseGenerator { // Generate forward declarations for all equal operators if (opts_.generate_object_based_api && opts_.gen_compare) { - for (auto it = parser_.structs_.vec.begin(); - it != parser_.structs_.vec.end(); ++it) { - const auto &struct_def = **it; - if (!struct_def.generated) { - SetNameSpace(struct_def.defined_namespace); - auto nativeName = NativeName(Name(struct_def), &struct_def, opts_); + for (const auto &struct_def : parser_.structs_.vec) { + if (!struct_def->generated) { + SetNameSpace(struct_def->defined_namespace); + auto nativeName = NativeName(Name(*struct_def), struct_def, opts_); code_ += "bool operator==(const " + nativeName + " &lhs, const " + nativeName + " &rhs);"; code_ += "bool operator!=(const " + nativeName + " &lhs, const " + @@ -448,18 +443,16 @@ class CppGenerator : public BaseGenerator { // Generate preablmle code for mini reflection. if (opts_.mini_reflect != IDLOptions::kNone) { // To break cyclic dependencies, first pre-declare all tables/structs. - for (auto it = parser_.structs_.vec.begin(); - it != parser_.structs_.vec.end(); ++it) { - const auto &struct_def = **it; - if (!struct_def.generated) { - SetNameSpace(struct_def.defined_namespace); - GenMiniReflectPre(&struct_def); + for (const auto &struct_def : parser_.structs_.vec) { + if (!struct_def->generated) { + SetNameSpace(struct_def->defined_namespace); + GenMiniReflectPre(struct_def); } } } // Generate code for all the enum declarations. - for (const auto enum_def : parser_.enums_.vec) { + for (const auto &enum_def : parser_.enums_.vec) { if (!enum_def->generated) { SetNameSpace(enum_def->defined_namespace); GenEnum(*enum_def); @@ -467,59 +460,47 @@ class CppGenerator : public BaseGenerator { } // Generate code for all structs, then all tables. - for (auto it = parser_.structs_.vec.begin(); - it != parser_.structs_.vec.end(); ++it) { - const auto &struct_def = **it; - if (struct_def.fixed && !struct_def.generated) { - SetNameSpace(struct_def.defined_namespace); - GenStruct(struct_def); + for (const auto &struct_def : parser_.structs_.vec) { + if (struct_def->fixed && !struct_def->generated) { + SetNameSpace(struct_def->defined_namespace); + GenStruct(*struct_def); } } - for (auto it = parser_.structs_.vec.begin(); - it != parser_.structs_.vec.end(); ++it) { - const auto &struct_def = **it; - if (!struct_def.fixed && !struct_def.generated) { - SetNameSpace(struct_def.defined_namespace); - GenTable(struct_def); + for (const auto &struct_def : parser_.structs_.vec) { + if (!struct_def->fixed && !struct_def->generated) { + SetNameSpace(struct_def->defined_namespace); + GenTable(*struct_def); } } - for (auto it = parser_.structs_.vec.begin(); - it != parser_.structs_.vec.end(); ++it) { - const auto &struct_def = **it; - if (!struct_def.fixed && !struct_def.generated) { - SetNameSpace(struct_def.defined_namespace); - GenTablePost(struct_def); + for (const auto &struct_def : parser_.structs_.vec) { + if (!struct_def->fixed && !struct_def->generated) { + SetNameSpace(struct_def->defined_namespace); + GenTablePost(*struct_def); } } // Generate code for union verifiers. - for (auto it = parser_.enums_.vec.begin(); it != parser_.enums_.vec.end(); - ++it) { - const auto &enum_def = **it; - if (enum_def.is_union && !enum_def.generated) { - SetNameSpace(enum_def.defined_namespace); - GenUnionPost(enum_def); + for (const auto &enum_def : parser_.enums_.vec) { + if (enum_def->is_union && !enum_def->generated) { + SetNameSpace(enum_def->defined_namespace); + GenUnionPost(*enum_def); } } // Generate code for mini reflection. if (opts_.mini_reflect != IDLOptions::kNone) { // Then the unions/enums that may refer to them. - for (auto it = parser_.enums_.vec.begin(); it != parser_.enums_.vec.end(); - ++it) { - const auto &enum_def = **it; - if (!enum_def.generated) { - SetNameSpace(enum_def.defined_namespace); - GenMiniReflect(nullptr, &enum_def); + for (const auto &enum_def : parser_.enums_.vec) { + if (!enum_def->generated) { + SetNameSpace(enum_def->defined_namespace); + GenMiniReflect(nullptr, enum_def); } } // Then the full tables/structs. - for (auto it = parser_.structs_.vec.begin(); - it != parser_.structs_.vec.end(); ++it) { - const auto &struct_def = **it; - if (!struct_def.generated) { - SetNameSpace(struct_def.defined_namespace); - GenMiniReflect(&struct_def, nullptr); + for (const auto &struct_def : parser_.structs_.vec) { + if (!struct_def->generated) { + SetNameSpace(struct_def->defined_namespace); + GenMiniReflect(struct_def, nullptr); } } } @@ -714,10 +695,8 @@ class CppGenerator : public BaseGenerator { bool TypeHasKey(const Type &type) { if (type.base_type != BASE_TYPE_STRUCT) { return false; } - for (auto it = type.struct_def->fields.vec.begin(); - it != type.struct_def->fields.vec.end(); ++it) { - const auto &field = **it; - if (field.key) { return true; } + for (auto &field : type.struct_def->fields.vec) { + if (field->key) { return true; } } return false; } @@ -828,9 +807,7 @@ class CppGenerator : public BaseGenerator { } bool FlexibleStringConstructor(const FieldDef *field) { - auto attr = field - ? (field->attributes.Lookup("cpp_str_flex_ctor") != nullptr) - : false; + auto attr = field != nullptr && (field->attributes.Lookup("cpp_str_flex_ctor") != nullptr); auto ret = attr ? attr : opts_.cpp_object_api_string_flexible_constructor; return ret && NativeString(field) != "std::string"; // Only for custom string types. @@ -1085,11 +1062,9 @@ class CppGenerator : public BaseGenerator { std::vector types; if (struct_def) { - for (auto it = struct_def->fields.vec.begin(); - it != struct_def->fields.vec.end(); ++it) { - const auto &field = **it; - names.push_back(Name(field)); - types.push_back(field.value.type); + for (const auto &field : struct_def->fields.vec) { + names.push_back(Name(*field)); + types.push_back(field->value.type); } } else { for (auto it = enum_def->Vals().begin(); it != enum_def->Vals().end(); @@ -1103,8 +1078,7 @@ class CppGenerator : public BaseGenerator { std::string ts; std::vector type_refs; std::vector array_sizes; - for (auto it = types.begin(); it != types.end(); ++it) { - auto &type = *it; + for (auto &type : types) { if (!ts.empty()) ts += ",\n "; auto is_vector = IsVector(type); auto is_array = IsArray(type); @@ -1135,19 +1109,19 @@ class CppGenerator : public BaseGenerator { " }"; } std::string rs; - for (auto it = type_refs.begin(); it != type_refs.end(); ++it) { + for (auto &type_ref : type_refs) { if (!rs.empty()) rs += ",\n "; - rs += *it + "TypeTable"; + rs += type_ref + "TypeTable"; } std::string as; - for (auto it = array_sizes.begin(); it != array_sizes.end(); ++it) { - as += NumToString(*it); + for (auto &array_size : array_sizes) { + as += NumToString(array_size); as += ", "; } std::string ns; - for (auto it = names.begin(); it != names.end(); ++it) { + for (auto &name : names) { if (!ns.empty()) ns += ",\n "; - ns += "\"" + *it + "\""; + ns += "\"" + name + "\""; } std::string vs; const auto consecutive_enum_from_zero = @@ -1162,10 +1136,8 @@ class CppGenerator : public BaseGenerator { enum_def->underlying_type.base_type); } } else if (struct_def && struct_def->fixed) { - for (auto it = struct_def->fields.vec.begin(); - it != struct_def->fields.vec.end(); ++it) { - const auto &field = **it; - vs += NumToString(field.value.offset); + for (const auto field : struct_def->fields.vec) { + vs += NumToString(field->value.offset); vs += ", "; } vs += NumToString(struct_def->bytesize); @@ -1409,12 +1381,10 @@ class CppGenerator : public BaseGenerator { code_ += " if (lhs.type != rhs.type) return false;"; code_ += " switch (lhs.type) {"; - for (auto it = enum_def.Vals().begin(); it != enum_def.Vals().end(); - ++it) { - const auto &ev = **it; - code_.SetValue("NATIVE_ID", GetEnumValUse(enum_def, ev)); - if (ev.IsNonZero()) { - const auto native_type = GetUnionElement(ev, true, opts_); + for (const auto &ev: enum_def.Vals()) { + code_.SetValue("NATIVE_ID", GetEnumValUse(enum_def, *ev)); + if (ev->IsNonZero()) { + const auto native_type = GetUnionElement(*ev, true, opts_); code_.SetValue("NATIVE_TYPE", native_type); code_ += " case {{NATIVE_ID}}: {"; code_ += @@ -1479,12 +1449,12 @@ class CppGenerator : public BaseGenerator { NumToString(range + 1 + 1) + "] = {"; auto val = enum_def.Vals().front(); - for (const auto &ev : enum_def.Vals()) { - for (auto k = enum_def.Distance(val, ev); k > 1; --k) { + for (const auto &enum_value : enum_def.Vals()) { + for (auto k = enum_def.Distance(val, enum_value); k > 1; --k) { code_ += " \"\","; } - val = ev; - code_ += " \"" + Name(*ev) + "\","; + val = enum_value; + code_ += " \"" + Name(*enum_value) + "\","; } code_ += " nullptr"; code_ += " };"; @@ -1656,24 +1626,20 @@ class CppGenerator : public BaseGenerator { "inline {{ENUM_NAME}}Union::{{ENUM_NAME}}Union(const " "{{ENUM_NAME}}Union &u) : type(u.type), value(nullptr) {"; code_ += " switch (type) {"; - for (auto it = enum_def.Vals().begin(); it != enum_def.Vals().end(); - ++it) { - const auto &ev = **it; - if (ev.IsZero()) { continue; } - code_.SetValue("LABEL", GetEnumValUse(enum_def, ev)); - code_.SetValue("TYPE", GetUnionElement(ev, true, opts_)); + for (const auto &ev: enum_def.Vals()) { + if (ev->IsZero()) { continue; } + code_.SetValue("LABEL", GetEnumValUse(enum_def, *ev)); + code_.SetValue("TYPE", GetUnionElement(*ev, true, opts_)); code_ += " case {{LABEL}}: {"; bool copyable = true; if (opts_.g_cpp_std < cpp::CPP_STD_11 && - ev.union_type.base_type == BASE_TYPE_STRUCT && - !ev.union_type.struct_def->fixed) { + ev->union_type.base_type == BASE_TYPE_STRUCT && + !ev->union_type.struct_def->fixed) { // Don't generate code to copy if table is not copyable. // TODO(wvo): make tables copyable instead. - for (auto fit = ev.union_type.struct_def->fields.vec.begin(); - fit != ev.union_type.struct_def->fields.vec.end(); ++fit) { - const auto &field = **fit; - if (!field.deprecated && field.value.type.struct_def && - !field.native_inline) { + for (const auto &field : ev->union_type.struct_def->fields.vec) { + if (!field->deprecated && field->value.type.struct_def && + !field->native_inline) { copyable = false; break; } @@ -1846,7 +1812,7 @@ class CppGenerator : public BaseGenerator { : GenTypeNativePtr(cpp_type->constant, &field, false)) : type + " "); // Generate default member initializers for >= C++11. - std::string field_di = ""; + std::string field_di; if (opts_.g_cpp_std >= cpp::CPP_STD_11) { field_di = "{}"; auto native_default = field.attributes.Lookup("native_default"); @@ -1872,23 +1838,21 @@ class CppGenerator : public BaseGenerator { // operator because it has one or more table members, struct members with a // custom cpp_type and non-naked pointer type, or vector members of those. bool NeedsCopyCtorAssignOp(const StructDef &struct_def) { - for (auto it = struct_def.fields.vec.begin(); - it != struct_def.fields.vec.end(); ++it) { - const auto &field = **it; - const auto &type = field.value.type; - if (field.deprecated) continue; + for (const auto &field : struct_def.fields.vec) { + const auto &type = field->value.type; + if (field->deprecated) continue; if (type.base_type == BASE_TYPE_STRUCT) { - const auto cpp_type = field.attributes.Lookup("cpp_type"); - const auto cpp_ptr_type = field.attributes.Lookup("cpp_ptr_type"); - const bool is_ptr = !(IsStruct(type) && field.native_inline) || + const auto cpp_type = field->attributes.Lookup("cpp_type"); + const auto cpp_ptr_type = field->attributes.Lookup("cpp_ptr_type"); + const bool is_ptr = !(IsStruct(type) && field->native_inline) || (cpp_type && cpp_ptr_type->constant != "naked"); if (is_ptr) { return true; } } else if (IsVector(type)) { const auto vec_type = type.VectorType(); if (vec_type.base_type == BASE_TYPE_UTYPE) continue; - const auto cpp_type = field.attributes.Lookup("cpp_type"); - const auto cpp_ptr_type = field.attributes.Lookup("cpp_ptr_type"); - const bool is_ptr = IsVectorOfPointers(field) || + const auto cpp_type = field->attributes.Lookup("cpp_type"); + const auto cpp_ptr_type = field->attributes.Lookup("cpp_ptr_type"); + const bool is_ptr = IsVectorOfPointers(*field) || (cpp_type && cpp_ptr_type->constant != "naked"); if (is_ptr) { return true; } } @@ -1978,22 +1942,20 @@ class CppGenerator : public BaseGenerator { std::string initializer_list; std::string vector_copies; std::string swaps; - for (auto it = struct_def.fields.vec.begin(); - it != struct_def.fields.vec.end(); ++it) { - const auto &field = **it; - const auto &type = field.value.type; - if (field.deprecated || type.base_type == BASE_TYPE_UTYPE) continue; + for (const auto &field: struct_def.fields.vec) { + const auto &type = field->value.type; + if (field->deprecated || type.base_type == BASE_TYPE_UTYPE) continue; if (type.base_type == BASE_TYPE_STRUCT) { if (!initializer_list.empty()) { initializer_list += ",\n "; } - const auto cpp_type = field.attributes.Lookup("cpp_type"); - const auto cpp_ptr_type = field.attributes.Lookup("cpp_ptr_type"); + const auto cpp_type = field->attributes.Lookup("cpp_type"); + const auto cpp_ptr_type = field->attributes.Lookup("cpp_ptr_type"); auto type_name = (cpp_type) ? cpp_type->constant : GenTypeNative(type, /*invector*/ false, - field, /*forcopy*/ true); - const bool is_ptr = !(IsStruct(type) && field.native_inline) || + *field, /*forcopy*/ true); + const bool is_ptr = !(IsStruct(type) && field->native_inline) || (cpp_type && cpp_ptr_type->constant != "naked"); CodeWriter cw; - cw.SetValue("FIELD", Name(field)); + cw.SetValue("FIELD", Name(*field)); cw.SetValue("TYPE", type_name); if (is_ptr) { cw += @@ -2007,16 +1969,16 @@ class CppGenerator : public BaseGenerator { } else if (IsVector(type)) { const auto vec_type = type.VectorType(); if (vec_type.base_type == BASE_TYPE_UTYPE) continue; - const auto cpp_type = field.attributes.Lookup("cpp_type"); - const auto cpp_ptr_type = field.attributes.Lookup("cpp_ptr_type"); + const auto cpp_type = field->attributes.Lookup("cpp_type"); + const auto cpp_ptr_type = field->attributes.Lookup("cpp_ptr_type"); const auto type_name = (cpp_type) ? cpp_type->constant : GenTypeNative(vec_type, /*invector*/ true, - field, /*forcopy*/ true); - const bool is_ptr = IsVectorOfPointers(field) || + *field, /*forcopy*/ true); + const bool is_ptr = IsVectorOfPointers(*field) || (cpp_type && cpp_ptr_type->constant != "naked"); CodeWriter cw(" "); - cw.SetValue("FIELD", Name(field)); + cw.SetValue("FIELD", Name(*field)); cw.SetValue("TYPE", type_name); if (is_ptr) { // Use emplace_back to construct the potentially-smart pointer element @@ -2039,14 +2001,14 @@ class CppGenerator : public BaseGenerator { } else { if (!initializer_list.empty()) { initializer_list += ",\n "; } CodeWriter cw; - cw.SetValue("FIELD", Name(field)); + cw.SetValue("FIELD", Name(*field)); cw += "{{FIELD}}(o.{{FIELD}})\\"; initializer_list += cw.ToString(); } { if (!swaps.empty()) { swaps += "\n "; } CodeWriter cw; - cw.SetValue("FIELD", Name(field)); + cw.SetValue("FIELD", Name(*field)); cw += "std::swap({{FIELD}}, o.{{FIELD}});\\"; swaps += cw.ToString(); } @@ -2074,7 +2036,7 @@ class CppGenerator : public BaseGenerator { } void GenCompareOperator(const StructDef &struct_def, - std::string accessSuffix = "") { + const std::string& accessSuffix = "") { std::string compare_op; for (auto it = struct_def.fields.vec.begin(); it != struct_def.fields.vec.end(); ++it) { @@ -2175,9 +2137,8 @@ class CppGenerator : public BaseGenerator { code_ += "struct {{NATIVE_NAME}} : public flatbuffers::NativeTable {"; code_ += " typedef {{STRUCT_NAME}} TableType;"; GenFullyQualifiedNameGetter(struct_def, native_name); - for (auto it = struct_def.fields.vec.begin(); - it != struct_def.fields.vec.end(); ++it) { - GenMember(**it); + for (const auto field : struct_def.fields.vec) { + GenMember(*field); } GenOperatorNewDelete(struct_def); GenDefaultConstructor(struct_def); @@ -2377,7 +2338,7 @@ class CppGenerator : public BaseGenerator { GenComment(field.doc_comment, " "); // Call a different accessor for pointers, that indirects. - if (false == field.IsScalarOptional()) { + if (!field.IsScalarOptional()) { const bool is_scalar = IsScalar(type.base_type); std::string accessor; if (is_scalar) @@ -2452,14 +2413,12 @@ class CppGenerator : public BaseGenerator { size_t index = 0; bool need_else = false; // Generate one index-based getter for each field. - for (auto it = struct_def.fields.vec.begin(); - it != struct_def.fields.vec.end(); ++it) { - const auto &field = **it; - if (field.deprecated) { + for (const auto &field : struct_def.fields.vec) { + if (field->deprecated) { // Deprecated fields won't be accessible. continue; } - code_.SetValue("FIELD_NAME", Name(field)); + code_.SetValue("FIELD_NAME", Name(*field)); code_.SetValue("FIELD_INDEX", std::to_string(static_cast(index++))); if (need_else) { @@ -2500,7 +2459,7 @@ class CppGenerator : public BaseGenerator { continue; } code_.SetValue("FIELD_NAME", Name(field)); - code_ += " \"{{FIELD_NAME}}\"\\"; + code_ += R"( "{{FIELD_NAME}}"\)"; if (it + 1 != struct_def.fields.vec.end()) { code_ += ","; } } code_ += "\n };"; @@ -2555,7 +2514,7 @@ class CppGenerator : public BaseGenerator { GenUnderlyingCast(field, false, "_" + Name(field))); code_ += " bool mutate_{{FIELD_NAME}}({{FIELD_TYPE}} _{{FIELD_NAME}}\\"; - if (false == field.IsScalarOptional()) { + if (!field.IsScalarOptional()) { code_.SetValue("DEFAULT_VALUE", GenDefaultConstant(field)); code_.SetValue( "INTERFACE_DEFAULT_VALUE", @@ -2632,22 +2591,20 @@ class CppGenerator : public BaseGenerator { GenFullyQualifiedNameGetter(struct_def, Name(struct_def)); // Generate field id constants. - if (struct_def.fields.vec.size() > 0) { + if (!struct_def.fields.vec.empty()) { // We need to add a trailing comma to all elements except the last one as // older versions of gcc complain about this. code_.SetValue("SEP", ""); code_ += " enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {"; - for (auto it = struct_def.fields.vec.begin(); - it != struct_def.fields.vec.end(); ++it) { - const auto &field = **it; - if (field.deprecated) { + for (const auto &field : struct_def.fields.vec) { + if (field->deprecated) { // Deprecated fields won't be accessible. continue; } - code_.SetValue("OFFSET_NAME", GenFieldOffsetName(field)); - code_.SetValue("OFFSET_VALUE", NumToString(field.value.offset)); + code_.SetValue("OFFSET_NAME", GenFieldOffsetName(*field)); + code_.SetValue("OFFSET_VALUE", NumToString(field->value.offset)); code_ += "{{SEP}} {{OFFSET_NAME}} = {{OFFSET_VALUE}}\\"; code_.SetValue("SEP", ",\n"); } @@ -2656,19 +2613,17 @@ class CppGenerator : public BaseGenerator { } // Generate the accessors. - for (auto it = struct_def.fields.vec.begin(); - it != struct_def.fields.vec.end(); ++it) { - const auto &field = **it; - if (field.deprecated) { + for (const auto &field : struct_def.fields.vec) { + if (field->deprecated) { // Deprecated fields won't be accessible. continue; } - code_.SetValue("FIELD_NAME", Name(field)); - GenTableFieldGetter(field); - if (opts_.mutable_buffer) { GenTableFieldSetter(field); } + code_.SetValue("FIELD_NAME", Name(*field)); + GenTableFieldGetter(*field); + if (opts_.mutable_buffer) { GenTableFieldSetter(*field); } - auto nfn = GetNestedFlatBufferName(field); + auto nfn = GetNestedFlatBufferName(*field); if (!nfn.empty()) { code_.SetValue("CPP_NAME", nfn); code_ += " const {{CPP_NAME}} *{{FIELD_NAME}}_nested_root() const {"; @@ -2678,7 +2633,7 @@ class CppGenerator : public BaseGenerator { code_ += " }"; } - if (field.flexbuffer) { + if (field->flexbuffer) { code_ += " flexbuffers::Reference {{FIELD_NAME}}_flexbuffer_root()" " const {"; @@ -2691,7 +2646,7 @@ class CppGenerator : public BaseGenerator { } // Generate a comparison function for this field if it is a key. - if (field.key) { GenKeyFieldMethods(field); } + if (field->key) { GenKeyFieldMethods(*field); } } if (opts_.cpp_static_reflection) { GenIndexBasedFieldGetter(struct_def); } @@ -2700,11 +2655,9 @@ class CppGenerator : public BaseGenerator { // source will never cause reads outside the buffer. code_ += " bool Verify(flatbuffers::Verifier &verifier) const {"; code_ += " return VerifyTableStart(verifier)\\"; - for (auto it = struct_def.fields.vec.begin(); - it != struct_def.fields.vec.end(); ++it) { - const auto &field = **it; - if (field.deprecated) { continue; } - GenVerifyCall(field, " &&\n "); + for (const auto &field : struct_def.fields.vec) { + if (field->deprecated) { continue; } + GenVerifyCall(*field, " &&\n "); } code_ += " &&\n verifier.EndTable();"; @@ -2721,17 +2674,15 @@ class CppGenerator : public BaseGenerator { code_ += ""; // Explicit specializations for union accessors - for (auto it = struct_def.fields.vec.begin(); - it != struct_def.fields.vec.end(); ++it) { - const auto &field = **it; - if (field.deprecated || field.value.type.base_type != BASE_TYPE_UNION) { + for (const auto &field : struct_def.fields.vec) { + if (field->deprecated || field->value.type.base_type != BASE_TYPE_UNION) { continue; } - auto u = field.value.type.enum_def; + auto u = field->value.type.enum_def; if (u->uses_multiple_type_instances) continue; - code_.SetValue("FIELD_NAME", Name(field)); + code_.SetValue("FIELD_NAME", Name(*field)); for (auto u_it = u->Vals().begin(); u_it != u->Vals().end(); ++u_it) { auto &ev = **u_it; @@ -2744,7 +2695,7 @@ class CppGenerator : public BaseGenerator { WrapInNameSpace(u->defined_namespace, GetEnumValUse(*u, ev))); code_.SetValue("U_FIELD_TYPE", "const " + full_struct_name + " *"); code_.SetValue("U_ELEMENT_NAME", full_struct_name); - code_.SetValue("U_FIELD_NAME", Name(field) + "_as_" + Name(ev)); + code_.SetValue("U_FIELD_NAME", Name(*field) + "_as_" + Name(ev)); // `template<> const T *union_name_as() const` accessor. code_ += @@ -2851,12 +2802,10 @@ class CppGenerator : public BaseGenerator { code_ += " const auto end = fbb_.EndTable(start_);"; code_ += " auto o = flatbuffers::Offset<{{STRUCT_NAME}}>(end);"; - for (auto it = struct_def.fields.vec.begin(); - it != struct_def.fields.vec.end(); ++it) { - const auto &field = **it; - if (!field.deprecated && field.IsRequired()) { - code_.SetValue("FIELD_NAME", Name(field)); - code_.SetValue("OFFSET_NAME", GenFieldOffsetName(field)); + for (const auto &field: struct_def.fields.vec) { + if (!field->deprecated && field->IsRequired()) { + code_.SetValue("FIELD_NAME", Name(*field)); + code_.SetValue("OFFSET_NAME", GenFieldOffsetName(*field)); code_ += " fbb_.Required(o, {{STRUCT_NAME}}::{{OFFSET_NAME}});"; } } @@ -2871,10 +2820,10 @@ class CppGenerator : public BaseGenerator { "inline flatbuffers::Offset<{{STRUCT_NAME}}> " "Create{{STRUCT_NAME}}("; code_ += " flatbuffers::FlatBufferBuilder &_fbb\\"; - for (auto it = struct_def.fields.vec.begin(); - it != struct_def.fields.vec.end(); ++it) { - const auto &field = **it; - if (!field.deprecated) { GenParam(field, false, ",\n "); } + for (const auto &field : struct_def.fields.vec) { + if (!field->deprecated) { + GenParam(*field, false, ",\n "); + } } code_ += ") {"; @@ -2911,23 +2860,19 @@ class CppGenerator : public BaseGenerator { "inline flatbuffers::Offset<{{STRUCT_NAME}}> " "Create{{STRUCT_NAME}}Direct("; code_ += " flatbuffers::FlatBufferBuilder &_fbb\\"; - for (auto it = struct_def.fields.vec.begin(); - it != struct_def.fields.vec.end(); ++it) { - const auto &field = **it; - if (!field.deprecated) { GenParam(field, true, ",\n "); } + for (const auto &field : struct_def.fields.vec) { + if (!field->deprecated) { GenParam(*field, true, ",\n "); } } // Need to call "Create" with the struct namespace. const auto qualified_create_name = struct_def.defined_namespace->GetFullyQualifiedName("Create"); code_.SetValue("CREATE_NAME", TranslateNameSpace(qualified_create_name)); code_ += ") {"; - for (auto it = struct_def.fields.vec.begin(); - it != struct_def.fields.vec.end(); ++it) { - const auto &field = **it; - if (!field.deprecated) { - code_.SetValue("FIELD_NAME", Name(field)); - if (IsString(field.value.type)) { - if (!field.shared) { + for (const auto &field : struct_def.fields.vec) { + if (!field->deprecated) { + code_.SetValue("FIELD_NAME", Name(*field)); + if (IsString(field->value.type)) { + if (!field->shared) { code_.SetValue("CREATE_STRING", "CreateString"); } else { code_.SetValue("CREATE_STRING", "CreateSharedString"); @@ -2935,14 +2880,14 @@ class CppGenerator : public BaseGenerator { code_ += " auto {{FIELD_NAME}}__ = {{FIELD_NAME}} ? " "_fbb.{{CREATE_STRING}}({{FIELD_NAME}}) : 0;"; - } else if (IsVector(field.value.type)) { + } else if (IsVector(field->value.type)) { const std::string force_align_code = - GenVectorForceAlign(field, Name(field) + "->size()"); + GenVectorForceAlign(*field, Name(*field) + "->size()"); if (!force_align_code.empty()) { code_ += " if ({{FIELD_NAME}}) { " + force_align_code + " }"; } code_ += " auto {{FIELD_NAME}}__ = {{FIELD_NAME}} ? \\"; - const auto vtype = field.value.type.VectorType(); + const auto vtype = field->value.type.VectorType(); const auto has_key = TypeHasKey(vtype); if (IsStruct(vtype)) { const auto type = WrapInNameSpace(*vtype.struct_def); @@ -2964,13 +2909,11 @@ class CppGenerator : public BaseGenerator { } code_ += " return {{CREATE_NAME}}{{STRUCT_NAME}}("; code_ += " _fbb\\"; - for (auto it = struct_def.fields.vec.begin(); - it != struct_def.fields.vec.end(); ++it) { - const auto &field = **it; - if (!field.deprecated) { - code_.SetValue("FIELD_NAME", Name(field)); + for (const auto &field : struct_def.fields.vec) { + if (!field->deprecated) { + code_.SetValue("FIELD_NAME", Name(*field)); code_ += ",\n {{FIELD_NAME}}\\"; - if (IsString(field.value.type) || IsVector(field.value.type)) { + if (IsString(field->value.type) || IsVector(field->value.type)) { code_ += "__\\"; } } @@ -3491,25 +3434,23 @@ class CppGenerator : public BaseGenerator { code_ += " return {{CREATE_NAME}}{{STRUCT_NAME}}("; code_ += " _fbb\\"; - for (auto it = struct_def.fields.vec.begin(); - it != struct_def.fields.vec.end(); ++it) { - auto &field = **it; - if (field.deprecated) { continue; } + for (const auto &field : struct_def.fields.vec) { + if (field->deprecated) { continue; } bool pass_by_address = false; - if (field.value.type.base_type == BASE_TYPE_STRUCT) { - if (IsStruct(field.value.type)) { + if (field->value.type.base_type == BASE_TYPE_STRUCT) { + if (IsStruct(field->value.type)) { auto native_type = - field.value.type.struct_def->attributes.Lookup("native_type"); + field->value.type.struct_def->attributes.Lookup("native_type"); if (native_type) { pass_by_address = true; } } } // Call the CreateX function using values from |_o|. if (pass_by_address) { - code_ += ",\n &_" + Name(field) + "\\"; + code_ += ",\n &_" + Name(*field) + "\\"; } else { - code_ += ",\n _" + Name(field) + "\\"; + code_ += ",\n _" + Name(*field) + "\\"; } } code_ += ");"; @@ -3554,9 +3495,7 @@ class CppGenerator : public BaseGenerator { bool first_in_init_list = true; int padding_initializer_id = 0; int padding_body_id = 0; - for (auto it = struct_def.fields.vec.begin(); - it != struct_def.fields.vec.end(); ++it) { - const auto field = *it; + for (const auto &field : struct_def.fields.vec) { const auto field_name = Name(*field) + "_"; if (first_in_init_list) { @@ -3646,10 +3585,8 @@ class CppGenerator : public BaseGenerator { code_ += " {{STRUCT_NAME}}({{ARG_LIST}}) {"; } padding_id = 0; - for (auto it = struct_def.fields.vec.begin(); - it != struct_def.fields.vec.end(); ++it) { - const auto &field = **it; - const auto &type = field.value.type; + for (const auto &field : struct_def.fields.vec) { + const auto &type = field->value.type; if (IsArray(type) && init_arrays) { const auto &element_type = type.VectorType(); const auto is_enum = IsEnum(element_type); @@ -3659,14 +3596,14 @@ class CppGenerator : public BaseGenerator { const auto face_type = GenTypeGet(type, " ", "", "", is_enum); std::string get_array = is_enum ? "CastToArrayOfEnum<" + face_type + ">" : "CastToArray"; - const auto field_name = Name(field) + "_"; - const auto arg_name = "_" + Name(field); + const auto field_name = Name(*field) + "_"; + const auto arg_name = "_" + Name(*field); code_ += " flatbuffers::" + get_array + "(" + field_name + ").CopyFromSpan(" + arg_name + ");"; } - if (field.padding) { + if (field->padding) { std::string padding; - GenPadding(field, &padding, &padding_id, PaddingNoop); + GenPadding(*field, &padding, &padding_id, PaddingNoop); code_ += padding; } } @@ -3711,21 +3648,19 @@ class CppGenerator : public BaseGenerator { code_ += " private:"; int padding_id = 0; - for (auto it = struct_def.fields.vec.begin(); - it != struct_def.fields.vec.end(); ++it) { - const auto &field = **it; - const auto &field_type = field.value.type; + for (const auto &field: struct_def.fields.vec) { + const auto &field_type = field->value.type; code_.SetValue("FIELD_TYPE", GenTypeGet(field_type, " ", "", " ", false)); - code_.SetValue("FIELD_NAME", Name(field)); + code_.SetValue("FIELD_NAME", Name(*field)); code_.SetValue("ARRAY", IsArray(field_type) ? "[" + NumToString(field_type.fixed_length) + "]" : ""); code_ += (" {{FIELD_TYPE}}{{FIELD_NAME}}_{{ARRAY}};"); - if (field.padding) { + if (field->padding) { std::string padding; - GenPadding(field, &padding, &padding_id, PaddingDefinition); + GenPadding(*field, &padding, &padding_id, PaddingDefinition); code_ += padding; } } @@ -3764,24 +3699,22 @@ class CppGenerator : public BaseGenerator { // Generate accessor methods of the form: // type name() const { return flatbuffers::EndianScalar(name_); } - for (auto it = struct_def.fields.vec.begin(); - it != struct_def.fields.vec.end(); ++it) { - const auto &field = **it; - const auto &type = field.value.type; + for (const auto &field : struct_def.fields.vec) { + const auto &type = field->value.type; const auto is_scalar = IsScalar(type.base_type); const auto is_array = IsArray(type); const auto field_type = GenTypeGet(type, " ", is_array ? "" : "const ", is_array ? "" : " &", true); - auto member = Name(field) + "_"; + auto member = Name(*field) + "_"; auto value = is_scalar ? "flatbuffers::EndianScalar(" + member + ")" : member; - code_.SetValue("FIELD_NAME", Name(field)); + code_.SetValue("FIELD_NAME", Name(*field)); code_.SetValue("FIELD_TYPE", field_type); - code_.SetValue("FIELD_VALUE", GenUnderlyingCast(field, true, value)); + code_.SetValue("FIELD_VALUE", GenUnderlyingCast(*field, true, value)); - GenComment(field.doc_comment, " "); + GenComment(field->doc_comment, " "); // Generate a const accessor function. if (is_array) { @@ -3800,7 +3733,7 @@ class CppGenerator : public BaseGenerator { if (is_scalar) { code_.SetValue("ARG", GenTypeBasic(type, true)); code_.SetValue("FIELD_VALUE", - GenUnderlyingCast(field, false, "_" + Name(field))); + GenUnderlyingCast(*field, false, "_" + Name(*field))); code_ += " void mutate_{{FIELD_NAME}}({{ARG}} _{{FIELD_NAME}}) {"; code_ += @@ -3817,7 +3750,7 @@ class CppGenerator : public BaseGenerator { } // Generate a comparison function for this field if it is a key. - if (field.key) { GenKeyFieldMethods(field); } + if (field->key) { GenKeyFieldMethods(*field); } } code_.SetValue("NATIVE_NAME", Name(struct_def)); GenOperatorNewDelete(struct_def); @@ -3925,8 +3858,8 @@ std::string CPPMakeRule(const Parser &parser, const std::string &path, const auto included_files = parser.GetIncludedFilesRecursive(file_name); std::string make_rule = geneartor.GeneratedFileName(path, filebase, parser.opts) + ": "; - for (auto it = included_files.begin(); it != included_files.end(); ++it) { - make_rule += " " + *it; + for (const std::string &included_file : included_files) { + make_rule += " " + included_file; } return make_rule; } From 5b7b36e8be52868526bc81c7dfdd9b418bfdc118 Mon Sep 17 00:00:00 2001 From: James Kuszmaul Date: Mon, 5 Dec 2022 16:56:02 -0800 Subject: [PATCH 048/571] Upgrade rules_go for Bazel 7.0 support (#7691) Fixes: #7664 (hopefully) Co-authored-by: Derek Bailey --- WORKSPACE | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/WORKSPACE b/WORKSPACE index 5b364e0989..d0c387107d 100644 --- a/WORKSPACE +++ b/WORKSPACE @@ -33,10 +33,10 @@ swift_rules_extra_dependencies() http_archive( name = "io_bazel_rules_go", - sha256 = "16e9fca53ed6bd4ff4ad76facc9b7b651a89db1689a2877d6fd7b82aa824e366", + sha256 = "ae013bf35bd23234d1dea46b079f1e05ba74ac0321423830119d3e787ec73483", urls = [ - "https://mirror.bazel.build/github.com/bazelbuild/rules_go/releases/download/v0.34.0/rules_go-v0.34.0.zip", - "https://github.com/bazelbuild/rules_go/releases/download/v0.34.0/rules_go-v0.34.0.zip", + "https://mirror.bazel.build/github.com/bazelbuild/rules_go/releases/download/v0.36.0/rules_go-v0.36.0.zip", + "https://github.com/bazelbuild/rules_go/releases/download/v0.36.0/rules_go-v0.36.0.zip", ], ) From 11394575bca7060ac49b3bdf803c343a34a00637 Mon Sep 17 00:00:00 2001 From: Michael Mickelson Date: Tue, 6 Dec 2022 15:01:12 -0700 Subject: [PATCH 049/571] Fix "Download Doxygen" URL (#7699) --- docs/source/README_TO_GENERATE_DOCS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/README_TO_GENERATE_DOCS.md b/docs/source/README_TO_GENERATE_DOCS.md index 5df0b6a8b9..92db87c342 100644 --- a/docs/source/README_TO_GENERATE_DOCS.md +++ b/docs/source/README_TO_GENERATE_DOCS.md @@ -4,7 +4,7 @@ To generate the docs for FlatBuffers from the source files, you will first need to install two programs. 1. You will need to install `doxygen`. See - [Download Doxygen](http://www.stack.nl/~dimitri/doxygen/download.html). + [Download Doxygen](https://doxygen.nl/download.html). 2. You will need to install `doxypypy` to format python comments appropriately. Install it from [here](https://github.com/Feneric/doxypypy). From b5ebd3fd783e4d2f12820aff5a2b12a976c7048c Mon Sep 17 00:00:00 2001 From: Wen Sun <30698014+sunwen18@users.noreply.github.com> Date: Tue, 6 Dec 2022 14:02:16 -0800 Subject: [PATCH 050/571] [C++] Update to address comparator failure in big endian (#7681) * update unit test and generated file to test is extra endianswap can help resolve issue * remove EndianScalar wrapper from Get method * remove endianscalar wrapper * update * update * use Array instead * clang format * address error * clang * update * manually generate * Move Nim to completed language * Add swift link * address comments * update unit test * address comment * address comment * regenerate file * use auto instead of size_t * use uint32_t instead * update * format * delete extra whitespace Co-authored-by: Wen Sun Co-authored-by: Derek Bailey --- src/idl_gen_cpp.cpp | 19 +++++++----- tests/key_field/key_field_sample_generated.h | 26 ++++++++-------- tests/key_field_test.cpp | 31 +++++++++++++------- 3 files changed, 46 insertions(+), 30 deletions(-) diff --git a/src/idl_gen_cpp.cpp b/src/idl_gen_cpp.cpp index 52e4136b4d..5b9e181eb1 100644 --- a/src/idl_gen_cpp.cpp +++ b/src/idl_gen_cpp.cpp @@ -2269,15 +2269,18 @@ class CppGenerator : public BaseGenerator { code_.SetValue("INPUT_TYPE", input_type); code_ += " int KeyCompareWithValue(const {{INPUT_TYPE}} *_{{FIELD_NAME}}" - ") const { "; - code_ += " for (auto i = 0; i < {{FIELD_NAME}}()->size(); i++) {"; - code_ += " const auto {{FIELD_NAME}}_l = {{FIELD_NAME}}_[i];"; - code_ += " const auto {{FIELD_NAME}}_r = _{{FIELD_NAME}}->Get(i);"; - code_ += " if({{FIELD_NAME}}_l != {{FIELD_NAME}}_r) "; + ") const {"; code_ += - " return static_cast({{FIELD_NAME}}_l > " - "{{FIELD_NAME}}_r)" - " - static_cast({{FIELD_NAME}}_l < {{FIELD_NAME}}_r);"; + " const {{INPUT_TYPE}} *curr_{{FIELD_NAME}} = {{FIELD_NAME}}();"; + code_ += + " for (flatbuffers::uoffset_t i = 0; i < " + "curr_{{FIELD_NAME}}->size(); i++) {"; + code_ += " const auto lhs = curr_{{FIELD_NAME}}->Get(i);"; + code_ += " const auto rhs = _{{FIELD_NAME}}->Get(i);"; + code_ += " if(lhs != rhs)"; + code_ += + " return static_cast(lhs > rhs)" + " - static_cast(lhs < rhs);"; code_ += " }"; code_ += " return 0;"; } diff --git a/tests/key_field/key_field_sample_generated.h b/tests/key_field/key_field_sample_generated.h index 1bcb897624..bcbd2d2218 100644 --- a/tests/key_field/key_field_sample_generated.h +++ b/tests/key_field/key_field_sample_generated.h @@ -67,12 +67,13 @@ FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(1) Baz FLATBUFFERS_FINAL_CLASS { bool KeyCompareLessThan(const Baz * const o) const { return KeyCompareWithValue(o->a()) < 0; } - int KeyCompareWithValue(const flatbuffers::Array *_a) const { - for (auto i = 0; i < a()->size(); i++) { - const auto a_l = a_[i]; - const auto a_r = _a->Get(i); - if(a_l != a_r) - return static_cast(a_l > a_r) - static_cast(a_l < a_r); + int KeyCompareWithValue(const flatbuffers::Array *_a) const { + const flatbuffers::Array *curr_a = a(); + for (flatbuffers::uoffset_t i = 0; i < curr_a->size(); i++) { + const auto lhs = curr_a->Get(i); + const auto rhs = _a->Get(i); + if(lhs != rhs) + return static_cast(lhs > rhs) - static_cast(lhs < rhs); } return 0; } @@ -139,12 +140,13 @@ FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(4) Bar FLATBUFFERS_FINAL_CLASS { bool KeyCompareLessThan(const Bar * const o) const { return KeyCompareWithValue(o->a()) < 0; } - int KeyCompareWithValue(const flatbuffers::Array *_a) const { - for (auto i = 0; i < a()->size(); i++) { - const auto a_l = a_[i]; - const auto a_r = _a->Get(i); - if(a_l != a_r) - return static_cast(a_l > a_r) - static_cast(a_l < a_r); + int KeyCompareWithValue(const flatbuffers::Array *_a) const { + const flatbuffers::Array *curr_a = a(); + for (flatbuffers::uoffset_t i = 0; i < curr_a->size(); i++) { + const auto lhs = curr_a->Get(i); + const auto rhs = _a->Get(i); + if(lhs != rhs) + return static_cast(lhs > rhs) - static_cast(lhs < rhs); } return 0; } diff --git a/tests/key_field_test.cpp b/tests/key_field_test.cpp index b2bf0af91e..da762d20a5 100644 --- a/tests/key_field_test.cpp +++ b/tests/key_field_test.cpp @@ -24,7 +24,9 @@ void FixedSizedScalarKeyInStructTest() { bazs.push_back(Baz(flatbuffers::make_span(test_array3), 2)); bazs.push_back(Baz(flatbuffers::make_span(test_array4), 3)); auto baz_vec = fbb.CreateVectorOfSortedStructs(&bazs); + auto test_string = fbb.CreateString("TEST"); + float test_float_array1[3] = { 1.5, 2.5, 0 }; float test_float_array2[3] = { 7.5, 2.5, 0 }; float test_float_array3[3] = { 1.5, 2.5, -1 }; @@ -36,6 +38,7 @@ void FixedSizedScalarKeyInStructTest() { bars.push_back(Bar(flatbuffers::make_span(test_float_array4), 1)); auto bar_vec = fbb.CreateVectorOfSortedStructs(&bars); + auto t = CreateFooTable(fbb, 1, 2, test_string, baz_vec, bar_vec); fbb.Finish(t); @@ -45,26 +48,34 @@ void FixedSizedScalarKeyInStructTest() { auto sorted_baz_vec = foo_table->d(); TEST_EQ(sorted_baz_vec->Get(0)->b(), 1); TEST_EQ(sorted_baz_vec->Get(3)->b(), 4); + + uint8_t test_array[4]; + auto* key_array = &flatbuffers::CastToArray(test_array); + key_array->CopyFromSpan(flatbuffers::make_span(test_array1)); + + TEST_NOTNULL( - sorted_baz_vec->LookupByKey(&flatbuffers::CastToArray(test_array1))); + sorted_baz_vec->LookupByKey(key_array)); TEST_EQ( - sorted_baz_vec->LookupByKey(&flatbuffers::CastToArray(test_array1))->b(), + sorted_baz_vec->LookupByKey(key_array)->b(), 4); uint8_t array_int[4] = { 7, 2, 3, 0 }; - TEST_EQ(sorted_baz_vec->LookupByKey(&flatbuffers::CastToArray(array_int)), + key_array->CopyFromSpan(flatbuffers::make_span(array_int)); + TEST_EQ(sorted_baz_vec->LookupByKey(key_array), static_cast(nullptr)); auto sorted_bar_vec = foo_table->e(); TEST_EQ(sorted_bar_vec->Get(0)->b(), 1); TEST_EQ(sorted_bar_vec->Get(3)->b(), 4); - TEST_NOTNULL(sorted_bar_vec->LookupByKey( - &flatbuffers::CastToArray(test_float_array1))); - TEST_EQ( - sorted_bar_vec->LookupByKey(&flatbuffers::CastToArray(test_float_array1)) - ->b(), - 3); + + float test_float_array[3]; + auto* key_float_array = &flatbuffers::CastToArray(test_float_array); + key_float_array->CopyFromSpan(flatbuffers::make_span(test_float_array1)); + TEST_NOTNULL(sorted_bar_vec->LookupByKey(key_float_array)); + TEST_EQ(sorted_bar_vec->LookupByKey(key_float_array)->b(), 3); float array_float[3] = { -1, -2, -3 }; - TEST_EQ(sorted_bar_vec->LookupByKey(&flatbuffers::CastToArray(array_float)), + key_float_array->CopyFromSpan(flatbuffers::make_span(array_float)); + TEST_EQ(sorted_bar_vec->LookupByKey(key_float_array), static_cast(nullptr)); } From aadc4cb8be9c2804e80a5b83013a372c5b59f115 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=AD=E6=B5=A9=E4=BC=9F?= <444347292@qq.com> Date: Wed, 7 Dec 2022 13:19:54 +0800 Subject: [PATCH 051/571] fix: byte_width_ = 1U << static_cast(packed_type & 3) implicit conversion loses integer precision: 'unsigned int' to 'uint8_t' (aka 'unsigned char') [-Werror,-Wimplicit-int-conversion] (#7697) Co-authored-by: Derek Bailey --- include/flatbuffers/flexbuffers.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/flatbuffers/flexbuffers.h b/include/flatbuffers/flexbuffers.h index 79cdd9c5d6..838f94be53 100644 --- a/include/flatbuffers/flexbuffers.h +++ b/include/flatbuffers/flexbuffers.h @@ -384,7 +384,7 @@ class Reference { Reference(const uint8_t *data, uint8_t parent_width, uint8_t packed_type) : data_(data), parent_width_(parent_width) { - byte_width_ = 1U << static_cast(packed_type & 3); + byte_width_ = static_cast(1U << (packed_type & 3)); type_ = static_cast(packed_type >> 2); } From 0e79e56427964bb20130eb393a8ce321d94bad76 Mon Sep 17 00:00:00 2001 From: Derek Bailey Date: Tue, 6 Dec 2022 22:18:11 -0800 Subject: [PATCH 052/571] inline initialize byte_width --- include/flatbuffers/flexbuffers.h | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/include/flatbuffers/flexbuffers.h b/include/flatbuffers/flexbuffers.h index 838f94be53..3ab7b5ab61 100644 --- a/include/flatbuffers/flexbuffers.h +++ b/include/flatbuffers/flexbuffers.h @@ -383,9 +383,10 @@ class Reference { type_(type) {} Reference(const uint8_t *data, uint8_t parent_width, uint8_t packed_type) - : data_(data), parent_width_(parent_width) { - byte_width_ = static_cast(1U << (packed_type & 3)); - type_ = static_cast(packed_type >> 2); + : data_(data), + parent_width_(parent_width), + byte_width_(1 << (packed_type & 3)), + type_(static_cast(packed_type >> 2)) { } Type GetType() const { return type_; } From acf39ff056df8c9e5bfa32cf6f7b5e6b87a90544 Mon Sep 17 00:00:00 2001 From: Derek Bailey Date: Tue, 6 Dec 2022 22:54:49 -0800 Subject: [PATCH 053/571] FlatBuffers Version 22.12.06 (#7702) --- CHANGELOG.md | 6 +++- CMake/Version.cmake | 4 +-- FlatBuffers.podspec | 2 +- .../main/java/generated/com/fbs/app/Animal.kt | 2 +- dart/pubspec.yaml | 2 +- .../Sources/Model/greeter_generated.swift | 4 +-- include/flatbuffers/base.h | 4 +-- include/flatbuffers/reflection_generated.h | 4 +-- java/pom.xml | 2 +- .../com/google/flatbuffers/Constants.java | 2 +- net/FlatBuffers/FlatBufferConstants.cs | 2 +- net/FlatBuffers/Google.FlatBuffers.csproj | 2 +- package.json | 2 +- python/flatbuffers/_version.py | 2 +- python/setup.py | 2 +- rust/flatbuffers/Cargo.toml | 2 +- samples/monster_generated.h | 4 +-- samples/monster_generated.swift | 8 ++--- src/idl_gen_csharp.cpp | 2 +- src/idl_gen_java.cpp | 2 +- src/idl_gen_kotlin.cpp | 2 +- src/idl_gen_swift.cpp | 2 +- swift/Sources/FlatBuffers/Constants.swift | 2 +- tests/Abc.nim | 2 +- tests/DictionaryLookup/LongFloatEntry.java | 2 +- tests/DictionaryLookup/LongFloatEntry.kt | 2 +- tests/DictionaryLookup/LongFloatMap.java | 2 +- tests/DictionaryLookup/LongFloatMap.kt | 2 +- tests/KeywordTest/KeywordsInTable.cs | 2 +- tests/MoreDefaults.nim | 2 +- tests/MyGame/Example/Ability.lua | 2 +- tests/MyGame/Example/Ability.nim | 2 +- tests/MyGame/Example/Any.lua | 2 +- tests/MyGame/Example/Any.nim | 2 +- tests/MyGame/Example/AnyAmbiguousAliases.lua | 2 +- tests/MyGame/Example/AnyAmbiguousAliases.nim | 2 +- tests/MyGame/Example/AnyUniqueAliases.lua | 2 +- tests/MyGame/Example/AnyUniqueAliases.nim | 2 +- tests/MyGame/Example/ArrayTable.cs | 2 +- tests/MyGame/Example/ArrayTable.java | 2 +- tests/MyGame/Example/Color.lua | 2 +- tests/MyGame/Example/Color.nim | 2 +- tests/MyGame/Example/LongEnum.lua | 2 +- tests/MyGame/Example/LongEnum.nim | 2 +- tests/MyGame/Example/Monster.cs | 2 +- tests/MyGame/Example/Monster.java | 2 +- tests/MyGame/Example/Monster.kt | 2 +- tests/MyGame/Example/Monster.lua | 2 +- tests/MyGame/Example/Monster.nim | 2 +- tests/MyGame/Example/Race.lua | 2 +- tests/MyGame/Example/Race.nim | 2 +- tests/MyGame/Example/Referrable.cs | 2 +- tests/MyGame/Example/Referrable.java | 2 +- tests/MyGame/Example/Referrable.kt | 2 +- tests/MyGame/Example/Referrable.lua | 2 +- tests/MyGame/Example/Referrable.nim | 2 +- tests/MyGame/Example/Stat.cs | 2 +- tests/MyGame/Example/Stat.java | 2 +- tests/MyGame/Example/Stat.kt | 2 +- tests/MyGame/Example/Stat.lua | 2 +- tests/MyGame/Example/Stat.nim | 2 +- tests/MyGame/Example/StructOfStructs.lua | 2 +- tests/MyGame/Example/StructOfStructs.nim | 2 +- .../Example/StructOfStructsOfStructs.lua | 2 +- .../Example/StructOfStructsOfStructs.nim | 2 +- tests/MyGame/Example/Test.lua | 2 +- tests/MyGame/Example/Test.nim | 2 +- .../MyGame/Example/TestSimpleTableWithEnum.cs | 2 +- .../Example/TestSimpleTableWithEnum.java | 2 +- .../MyGame/Example/TestSimpleTableWithEnum.kt | 2 +- .../Example/TestSimpleTableWithEnum.lua | 2 +- .../Example/TestSimpleTableWithEnum.nim | 2 +- tests/MyGame/Example/TypeAliases.cs | 2 +- tests/MyGame/Example/TypeAliases.java | 2 +- tests/MyGame/Example/TypeAliases.kt | 2 +- tests/MyGame/Example/TypeAliases.lua | 2 +- tests/MyGame/Example/TypeAliases.nim | 2 +- tests/MyGame/Example/Vec3.lua | 2 +- tests/MyGame/Example/Vec3.nim | 2 +- tests/MyGame/Example2/Monster.cs | 2 +- tests/MyGame/Example2/Monster.java | 2 +- tests/MyGame/Example2/Monster.kt | 2 +- tests/MyGame/Example2/Monster.lua | 2 +- tests/MyGame/Example2/Monster.nim | 2 +- tests/MyGame/InParentNamespace.cs | 2 +- tests/MyGame/InParentNamespace.java | 2 +- tests/MyGame/InParentNamespace.kt | 2 +- tests/MyGame/InParentNamespace.lua | 2 +- tests/MyGame/InParentNamespace.nim | 2 +- tests/MyGame/MonsterExtra.cs | 2 +- tests/MyGame/MonsterExtra.java | 2 +- tests/MyGame/MonsterExtra.kt | 2 +- tests/MyGame/OtherNameSpace/FromInclude.lua | 2 +- tests/MyGame/OtherNameSpace/FromInclude.nim | 2 +- tests/MyGame/OtherNameSpace/TableB.lua | 2 +- tests/MyGame/OtherNameSpace/TableB.nim | 2 +- tests/MyGame/OtherNameSpace/Unused.lua | 2 +- tests/MyGame/OtherNameSpace/Unused.nim | 2 +- tests/Property.nim | 2 +- tests/TableA.lua | 2 +- tests/TableA.nim | 2 +- tests/TestMutatingBool.nim | 2 +- tests/alignment_test_generated.h | 4 +-- tests/arrays_test_generated.h | 4 +-- .../generated_cpp17/monster_test_generated.h | 4 +-- .../optional_scalars_generated.h | 4 +-- .../generated_cpp17/union_vector_generated.h | 4 +-- tests/evolution_test/evolution_v1_generated.h | 4 +-- tests/evolution_test/evolution_v2_generated.h | 4 +-- tests/key_field/key_field_sample_generated.h | 4 +-- tests/monster_extra_generated.h | 4 +-- tests/monster_test_bfbs_generated.h | 4 +-- tests/monster_test_generated.h | 4 +-- .../ext_only/monster_test_generated.hpp | 4 +-- .../filesuffix_only/monster_test_suffix.h | 4 +-- .../monster_test_suffix.hpp | 4 +-- .../NamespaceA/NamespaceB/TableInNestedNS.cs | 2 +- .../NamespaceB/TableInNestedNS.java | 2 +- .../NamespaceA/NamespaceB/TableInNestedNS.kt | 2 +- .../NamespaceA/SecondTableInA.cs | 2 +- .../NamespaceA/SecondTableInA.java | 2 +- .../NamespaceA/SecondTableInA.kt | 2 +- .../NamespaceA/TableInFirstNS.cs | 2 +- .../NamespaceA/TableInFirstNS.java | 2 +- .../NamespaceA/TableInFirstNS.kt | 2 +- tests/namespace_test/NamespaceC/TableInC.cs | 2 +- tests/namespace_test/NamespaceC/TableInC.java | 2 +- tests/namespace_test/NamespaceC/TableInC.kt | 2 +- .../namespace_test1_generated.h | 4 +-- .../namespace_test2_generated.h | 4 +-- tests/native_inline_table_test_generated.h | 4 +-- tests/native_type_test_generated.h | 4 +-- .../nested_namespace_test3_generated.cs | 2 +- tests/optional_scalars/OptionalByte.nim | 2 +- tests/optional_scalars/ScalarStuff.cs | 2 +- tests/optional_scalars/ScalarStuff.java | 2 +- tests/optional_scalars/ScalarStuff.kt | 2 +- tests/optional_scalars/ScalarStuff.nim | 2 +- tests/optional_scalars_generated.h | 4 +-- .../monster_test_generated.swift | 34 +++++++++---------- .../test_import_generated.swift | 2 +- .../test_no_include_generated.swift | 8 ++--- .../SwiftFlatBuffers/fuzzer_generated.swift | 10 +++--- .../MutatingBool_generated.swift | 6 ++-- .../monster_test_generated.swift | 34 +++++++++---------- .../more_defaults_generated.swift | 2 +- .../nan_inf_test_generated.swift | 2 +- .../optional_scalars_generated.swift | 2 +- .../union_vector_generated.swift | 18 +++++----- .../vector_has_test_generated.swift | 2 +- tests/type_field_collsion/Collision.cs | 2 +- tests/union_vector/Attacker.cs | 2 +- tests/union_vector/Attacker.java | 2 +- tests/union_vector/Attacker.kt | 2 +- tests/union_vector/HandFan.cs | 2 +- tests/union_vector/HandFan.java | 2 +- tests/union_vector/HandFan.kt | 2 +- tests/union_vector/Movie.cs | 2 +- tests/union_vector/Movie.java | 2 +- tests/union_vector/Movie.kt | 2 +- tests/union_vector/union_vector_generated.h | 4 +-- 161 files changed, 242 insertions(+), 238 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 05c153095c..648d32bbdd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,7 +4,11 @@ All major or breaking changes will be documented in this file, as well as any new features that should be highlighted. Minor fixes or improvements are not necessarily listed. -## 22.10.25 (Oct 25 2002) +## 22.12.06 (Dec 06 2022) + +* Bug fixing release, no major changes. + +## 22.10.25 (Oct 25 2022) * Added Nim language support with generator and runtime libraries (#7534). diff --git a/CMake/Version.cmake b/CMake/Version.cmake index a0eef8462d..075ff3fa5b 100644 --- a/CMake/Version.cmake +++ b/CMake/Version.cmake @@ -1,6 +1,6 @@ set(VERSION_MAJOR 22) -set(VERSION_MINOR 11) -set(VERSION_PATCH 23) +set(VERSION_MINOR 12) +set(VERSION_PATCH 06) set(VERSION_COMMIT 0) if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/.git") diff --git a/FlatBuffers.podspec b/FlatBuffers.podspec index 830a46270a..5d5fcb895e 100644 --- a/FlatBuffers.podspec +++ b/FlatBuffers.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = 'FlatBuffers' - s.version = '22.11.23' + s.version = '22.12.06' s.summary = 'FlatBuffers: Memory Efficient Serialization Library' s.description = "FlatBuffers is a cross platform serialization library architected for diff --git a/android/app/src/main/java/generated/com/fbs/app/Animal.kt b/android/app/src/main/java/generated/com/fbs/app/Animal.kt index ede9296aa3..342f2b3c8e 100644 --- a/android/app/src/main/java/generated/com/fbs/app/Animal.kt +++ b/android/app/src/main/java/generated/com/fbs/app/Animal.kt @@ -36,7 +36,7 @@ class Animal : Table() { return if(o != 0) bb.getShort(o + bb_pos).toUShort() else 0u } companion object { - fun validateVersion() = Constants.FLATBUFFERS_22_11_23() + fun validateVersion() = Constants.FLATBUFFERS_22_12_06() fun getRootAsAnimal(_bb: ByteBuffer): Animal = getRootAsAnimal(_bb, Animal()) fun getRootAsAnimal(_bb: ByteBuffer, obj: Animal): Animal { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/dart/pubspec.yaml b/dart/pubspec.yaml index 4dfa4092e3..56bb31422f 100644 --- a/dart/pubspec.yaml +++ b/dart/pubspec.yaml @@ -1,5 +1,5 @@ name: flat_buffers -version: 22.11.23 +version: 22.12.06 description: FlatBuffers reading and writing library for Dart. Based on original work by Konstantin Scheglov and Paul Berry of the Dart SDK team. homepage: https://github.com/google/flatbuffers documentation: https://google.github.io/flatbuffers/index.html diff --git a/grpc/examples/swift/Greeter/Sources/Model/greeter_generated.swift b/grpc/examples/swift/Greeter/Sources/Model/greeter_generated.swift index 36f046c268..b6b7e4136d 100644 --- a/grpc/examples/swift/Greeter/Sources/Model/greeter_generated.swift +++ b/grpc/examples/swift/Greeter/Sources/Model/greeter_generated.swift @@ -6,7 +6,7 @@ import FlatBuffers public struct models_HelloReply: FlatBufferObject, Verifiable { - static func validateVersion() { FlatBuffersVersion_22_11_23() } + static func validateVersion() { FlatBuffersVersion_22_12_06() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -55,7 +55,7 @@ extension models_HelloReply: Encodable { public struct models_HelloRequest: FlatBufferObject, Verifiable { - static func validateVersion() { FlatBuffersVersion_22_11_23() } + static func validateVersion() { FlatBuffersVersion_22_12_06() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table diff --git a/include/flatbuffers/base.h b/include/flatbuffers/base.h index 25f40b2510..69f13bcaa0 100644 --- a/include/flatbuffers/base.h +++ b/include/flatbuffers/base.h @@ -139,8 +139,8 @@ #endif // !defined(FLATBUFFERS_LITTLEENDIAN) #define FLATBUFFERS_VERSION_MAJOR 22 -#define FLATBUFFERS_VERSION_MINOR 11 -#define FLATBUFFERS_VERSION_REVISION 23 +#define FLATBUFFERS_VERSION_MINOR 12 +#define FLATBUFFERS_VERSION_REVISION 06 #define FLATBUFFERS_STRING_EXPAND(X) #X #define FLATBUFFERS_STRING(X) FLATBUFFERS_STRING_EXPAND(X) namespace flatbuffers { diff --git a/include/flatbuffers/reflection_generated.h b/include/flatbuffers/reflection_generated.h index 76b62cd2e1..88005f11ee 100644 --- a/include/flatbuffers/reflection_generated.h +++ b/include/flatbuffers/reflection_generated.h @@ -9,8 +9,8 @@ // Ensure the included flatbuffers.h is the same version as when this file was // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 22 && - FLATBUFFERS_VERSION_MINOR == 11 && - FLATBUFFERS_VERSION_REVISION == 23, + FLATBUFFERS_VERSION_MINOR == 12 && + FLATBUFFERS_VERSION_REVISION == 6, "Non-compatible flatbuffers version included"); namespace reflection { diff --git a/java/pom.xml b/java/pom.xml index 6f2f133d9e..fd62488cb4 100644 --- a/java/pom.xml +++ b/java/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.flatbuffers flatbuffers-java - 22.11.23 + 22.12.06 bundle FlatBuffers Java API diff --git a/java/src/main/java/com/google/flatbuffers/Constants.java b/java/src/main/java/com/google/flatbuffers/Constants.java index 0120a728c2..1ee75db43d 100644 --- a/java/src/main/java/com/google/flatbuffers/Constants.java +++ b/java/src/main/java/com/google/flatbuffers/Constants.java @@ -46,7 +46,7 @@ public class Constants { Changes to the Java implementation need to be sure to change the version here and in the code generator on every possible incompatible change */ - public static void FLATBUFFERS_22_11_23() {} + public static void FLATBUFFERS_22_12_06() {} } /// @endcond diff --git a/net/FlatBuffers/FlatBufferConstants.cs b/net/FlatBuffers/FlatBufferConstants.cs index cb625d4d47..0aedb3a1b9 100644 --- a/net/FlatBuffers/FlatBufferConstants.cs +++ b/net/FlatBuffers/FlatBufferConstants.cs @@ -32,6 +32,6 @@ the runtime and generated code are modified in sync. Changes to the C# implementation need to be sure to change the version here and in the code generator on every possible incompatible change */ - public static void FLATBUFFERS_22_11_23() {} + public static void FLATBUFFERS_22_12_06() {} } } diff --git a/net/FlatBuffers/Google.FlatBuffers.csproj b/net/FlatBuffers/Google.FlatBuffers.csproj index ad6e6d1a7e..5a24f8eae3 100644 --- a/net/FlatBuffers/Google.FlatBuffers.csproj +++ b/net/FlatBuffers/Google.FlatBuffers.csproj @@ -3,7 +3,7 @@ netstandard2.1;netstandard2.0;net46 A cross-platform memory efficient serialization library - 22.11.23 + 22.12.06 Google LLC https://github.com/google/flatbuffers https://github.com/google/flatbuffers diff --git a/package.json b/package.json index fa696dad7e..fbab3a1cbd 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "flatbuffers", - "version": "22.11.23", + "version": "22.12.06", "description": "Memory Efficient Serialization Library", "files": [ "js/**/*.js", diff --git a/python/flatbuffers/_version.py b/python/flatbuffers/_version.py index f2ea9676ba..c2dd9512eb 100644 --- a/python/flatbuffers/_version.py +++ b/python/flatbuffers/_version.py @@ -14,4 +14,4 @@ # Placeholder, to be updated during the release process # by the setup.py -__version__ = u"22.11.23" +__version__ = u"22.12.06" diff --git a/python/setup.py b/python/setup.py index bb5e71ae46..240bdba565 100644 --- a/python/setup.py +++ b/python/setup.py @@ -16,7 +16,7 @@ setup( name='flatbuffers', - version='22.11.23', + version='22.12.06', license='Apache 2.0', license_files='../LICENSE.txt', author='Derek Bailey', diff --git a/rust/flatbuffers/Cargo.toml b/rust/flatbuffers/Cargo.toml index 8c01f2ee49..62251aba5f 100644 --- a/rust/flatbuffers/Cargo.toml +++ b/rust/flatbuffers/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "flatbuffers" -version = "22.11.23" +version = "22.12.6" edition = "2018" authors = ["Robert Winslow ", "FlatBuffers Maintainers"] license = "Apache-2.0" diff --git a/samples/monster_generated.h b/samples/monster_generated.h index 28151d8cba..137b346be0 100644 --- a/samples/monster_generated.h +++ b/samples/monster_generated.h @@ -9,8 +9,8 @@ // Ensure the included flatbuffers.h is the same version as when this file was // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 22 && - FLATBUFFERS_VERSION_MINOR == 11 && - FLATBUFFERS_VERSION_REVISION == 23, + FLATBUFFERS_VERSION_MINOR == 12 && + FLATBUFFERS_VERSION_REVISION == 6, "Non-compatible flatbuffers version included"); namespace MyGame { diff --git a/samples/monster_generated.swift b/samples/monster_generated.swift index 3c0b3affd3..e89256f8b3 100644 --- a/samples/monster_generated.swift +++ b/samples/monster_generated.swift @@ -31,7 +31,7 @@ public enum MyGame_Sample_Equipment: UInt8, Enum { public struct MyGame_Sample_Vec3: NativeStruct { - static func validateVersion() { FlatBuffersVersion_22_11_23() } + static func validateVersion() { FlatBuffersVersion_22_12_06() } private var _x: Float32 private var _y: Float32 @@ -56,7 +56,7 @@ public struct MyGame_Sample_Vec3: NativeStruct { public struct MyGame_Sample_Vec3_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_22_11_23() } + static func validateVersion() { FlatBuffersVersion_22_12_06() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -72,7 +72,7 @@ public struct MyGame_Sample_Vec3_Mutable: FlatBufferObject { public struct MyGame_Sample_Monster: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_22_11_23() } + static func validateVersion() { FlatBuffersVersion_22_12_06() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -162,7 +162,7 @@ public struct MyGame_Sample_Monster: FlatBufferObject { public struct MyGame_Sample_Weapon: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_22_11_23() } + static func validateVersion() { FlatBuffersVersion_22_12_06() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table diff --git a/src/idl_gen_csharp.cpp b/src/idl_gen_csharp.cpp index 149b215428..664a2e43a6 100644 --- a/src/idl_gen_csharp.cpp +++ b/src/idl_gen_csharp.cpp @@ -655,7 +655,7 @@ class CSharpGenerator : public BaseGenerator { // Force compile time error if not using the same version runtime. code += " public static void ValidateVersion() {"; code += " FlatBufferConstants."; - code += "FLATBUFFERS_22_11_23(); "; + code += "FLATBUFFERS_22_12_06(); "; code += "}\n"; // Generate a special accessor for the table that when used as the root diff --git a/src/idl_gen_java.cpp b/src/idl_gen_java.cpp index 46977034e7..44f57c5a49 100644 --- a/src/idl_gen_java.cpp +++ b/src/idl_gen_java.cpp @@ -681,7 +681,7 @@ class JavaGenerator : public BaseGenerator { // Force compile time error if not using the same version runtime. code += " public static void ValidateVersion() {"; code += " Constants."; - code += "FLATBUFFERS_22_11_23(); "; + code += "FLATBUFFERS_22_12_06(); "; code += "}\n"; // Generate a special accessor for the table that when used as the root diff --git a/src/idl_gen_kotlin.cpp b/src/idl_gen_kotlin.cpp index 972d9c2562..212aba948d 100644 --- a/src/idl_gen_kotlin.cpp +++ b/src/idl_gen_kotlin.cpp @@ -505,7 +505,7 @@ class KotlinGenerator : public BaseGenerator { // runtime. GenerateFunOneLine( writer, "validateVersion", "", "", - [&]() { writer += "Constants.FLATBUFFERS_22_11_23()"; }, + [&]() { writer += "Constants.FLATBUFFERS_22_12_06()"; }, options.gen_jvmstatic); GenerateGetRootAsAccessors(namer_.Type(struct_def), writer, options); diff --git a/src/idl_gen_swift.cpp b/src/idl_gen_swift.cpp index 5da28d7076..bc47cd736d 100644 --- a/src/idl_gen_swift.cpp +++ b/src/idl_gen_swift.cpp @@ -1846,7 +1846,7 @@ class SwiftGenerator : public BaseGenerator { } std::string ValidateFunc() { - return "static func validateVersion() { FlatBuffersVersion_22_11_23() }"; + return "static func validateVersion() { FlatBuffersVersion_22_12_06() }"; } std::string GenType(const Type &type, diff --git a/swift/Sources/FlatBuffers/Constants.swift b/swift/Sources/FlatBuffers/Constants.swift index 5fcb1080fb..f2abe60c10 100644 --- a/swift/Sources/FlatBuffers/Constants.swift +++ b/swift/Sources/FlatBuffers/Constants.swift @@ -119,4 +119,4 @@ extension UInt64: Scalar, Verifiable { public typealias NumericValue = UInt64 } -public func FlatBuffersVersion_22_11_23() {} +public func FlatBuffersVersion_22_12_06() {} diff --git a/tests/Abc.nim b/tests/Abc.nim index 6c62f7d8a0..083afd6cbb 100644 --- a/tests/Abc.nim +++ b/tests/Abc.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.11.23 + flatc version: 22.12.06 Declared by : ]# diff --git a/tests/DictionaryLookup/LongFloatEntry.java b/tests/DictionaryLookup/LongFloatEntry.java index 4f8559f7be..211690599f 100644 --- a/tests/DictionaryLookup/LongFloatEntry.java +++ b/tests/DictionaryLookup/LongFloatEntry.java @@ -19,7 +19,7 @@ @SuppressWarnings("unused") public final class LongFloatEntry extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_22_11_23(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_22_12_06(); } public static LongFloatEntry getRootAsLongFloatEntry(ByteBuffer _bb) { return getRootAsLongFloatEntry(_bb, new LongFloatEntry()); } public static LongFloatEntry getRootAsLongFloatEntry(ByteBuffer _bb, LongFloatEntry obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/tests/DictionaryLookup/LongFloatEntry.kt b/tests/DictionaryLookup/LongFloatEntry.kt index a6a431d1c6..13dc0e8e98 100644 --- a/tests/DictionaryLookup/LongFloatEntry.kt +++ b/tests/DictionaryLookup/LongFloatEntry.kt @@ -32,7 +32,7 @@ class LongFloatEntry : Table() { return (val_1 - val_2).sign } companion object { - fun validateVersion() = Constants.FLATBUFFERS_22_11_23() + fun validateVersion() = Constants.FLATBUFFERS_22_12_06() fun getRootAsLongFloatEntry(_bb: ByteBuffer): LongFloatEntry = getRootAsLongFloatEntry(_bb, LongFloatEntry()) fun getRootAsLongFloatEntry(_bb: ByteBuffer, obj: LongFloatEntry): LongFloatEntry { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/DictionaryLookup/LongFloatMap.java b/tests/DictionaryLookup/LongFloatMap.java index 9bc4bb7ebe..2af8e40040 100644 --- a/tests/DictionaryLookup/LongFloatMap.java +++ b/tests/DictionaryLookup/LongFloatMap.java @@ -19,7 +19,7 @@ @SuppressWarnings("unused") public final class LongFloatMap extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_22_11_23(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_22_12_06(); } public static LongFloatMap getRootAsLongFloatMap(ByteBuffer _bb) { return getRootAsLongFloatMap(_bb, new LongFloatMap()); } public static LongFloatMap getRootAsLongFloatMap(ByteBuffer _bb, LongFloatMap obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/tests/DictionaryLookup/LongFloatMap.kt b/tests/DictionaryLookup/LongFloatMap.kt index 1757de76b3..9679d96de6 100644 --- a/tests/DictionaryLookup/LongFloatMap.kt +++ b/tests/DictionaryLookup/LongFloatMap.kt @@ -46,7 +46,7 @@ class LongFloatMap : Table() { } } companion object { - fun validateVersion() = Constants.FLATBUFFERS_22_11_23() + fun validateVersion() = Constants.FLATBUFFERS_22_12_06() fun getRootAsLongFloatMap(_bb: ByteBuffer): LongFloatMap = getRootAsLongFloatMap(_bb, LongFloatMap()) fun getRootAsLongFloatMap(_bb: ByteBuffer, obj: LongFloatMap): LongFloatMap { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/KeywordTest/KeywordsInTable.cs b/tests/KeywordTest/KeywordsInTable.cs index d56ce3ab38..355dafe584 100644 --- a/tests/KeywordTest/KeywordsInTable.cs +++ b/tests/KeywordTest/KeywordsInTable.cs @@ -13,7 +13,7 @@ public struct KeywordsInTable : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_11_23(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_12_06(); } public static KeywordsInTable GetRootAsKeywordsInTable(ByteBuffer _bb) { return GetRootAsKeywordsInTable(_bb, new KeywordsInTable()); } public static KeywordsInTable GetRootAsKeywordsInTable(ByteBuffer _bb, KeywordsInTable obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/MoreDefaults.nim b/tests/MoreDefaults.nim index e7fd7f9d52..46ee801bd5 100644 --- a/tests/MoreDefaults.nim +++ b/tests/MoreDefaults.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.11.23 + flatc version: 22.12.06 Declared by : ]# diff --git a/tests/MyGame/Example/Ability.lua b/tests/MyGame/Example/Ability.lua index 56deed7b94..72b4610224 100644 --- a/tests/MyGame/Example/Ability.lua +++ b/tests/MyGame/Example/Ability.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.11.23 + flatc version: 22.12.06 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/Ability.nim b/tests/MyGame/Example/Ability.nim index 93e73320f3..f6e9b982ee 100644 --- a/tests/MyGame/Example/Ability.nim +++ b/tests/MyGame/Example/Ability.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.11.23 + flatc version: 22.12.06 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example/Any.lua b/tests/MyGame/Example/Any.lua index 26a66c4387..d5e6ac941f 100644 --- a/tests/MyGame/Example/Any.lua +++ b/tests/MyGame/Example/Any.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.11.23 + flatc version: 22.12.06 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/Any.nim b/tests/MyGame/Example/Any.nim index 1ca7a0f608..2bbe165c23 100644 --- a/tests/MyGame/Example/Any.nim +++ b/tests/MyGame/Example/Any.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.11.23 + flatc version: 22.12.06 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example/AnyAmbiguousAliases.lua b/tests/MyGame/Example/AnyAmbiguousAliases.lua index bb090554e7..975e8c374a 100644 --- a/tests/MyGame/Example/AnyAmbiguousAliases.lua +++ b/tests/MyGame/Example/AnyAmbiguousAliases.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.11.23 + flatc version: 22.12.06 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/AnyAmbiguousAliases.nim b/tests/MyGame/Example/AnyAmbiguousAliases.nim index 43af0fccab..18fa0635ec 100644 --- a/tests/MyGame/Example/AnyAmbiguousAliases.nim +++ b/tests/MyGame/Example/AnyAmbiguousAliases.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.11.23 + flatc version: 22.12.06 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example/AnyUniqueAliases.lua b/tests/MyGame/Example/AnyUniqueAliases.lua index 4d4d548e79..c35a9c7ee7 100644 --- a/tests/MyGame/Example/AnyUniqueAliases.lua +++ b/tests/MyGame/Example/AnyUniqueAliases.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.11.23 + flatc version: 22.12.06 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/AnyUniqueAliases.nim b/tests/MyGame/Example/AnyUniqueAliases.nim index 5fce5011cf..6bbdd0f296 100644 --- a/tests/MyGame/Example/AnyUniqueAliases.nim +++ b/tests/MyGame/Example/AnyUniqueAliases.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.11.23 + flatc version: 22.12.06 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example/ArrayTable.cs b/tests/MyGame/Example/ArrayTable.cs index 61748dbe4d..e2e2524d8e 100644 --- a/tests/MyGame/Example/ArrayTable.cs +++ b/tests/MyGame/Example/ArrayTable.cs @@ -13,7 +13,7 @@ public struct ArrayTable : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_11_23(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_12_06(); } public static ArrayTable GetRootAsArrayTable(ByteBuffer _bb) { return GetRootAsArrayTable(_bb, new ArrayTable()); } public static ArrayTable GetRootAsArrayTable(ByteBuffer _bb, ArrayTable obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public static bool ArrayTableBufferHasIdentifier(ByteBuffer _bb) { return Table.__has_identifier(_bb, "ARRT"); } diff --git a/tests/MyGame/Example/ArrayTable.java b/tests/MyGame/Example/ArrayTable.java index 25199e6ac6..0d937daa84 100644 --- a/tests/MyGame/Example/ArrayTable.java +++ b/tests/MyGame/Example/ArrayTable.java @@ -19,7 +19,7 @@ @SuppressWarnings("unused") public final class ArrayTable extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_22_11_23(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_22_12_06(); } public static ArrayTable getRootAsArrayTable(ByteBuffer _bb) { return getRootAsArrayTable(_bb, new ArrayTable()); } public static ArrayTable getRootAsArrayTable(ByteBuffer _bb, ArrayTable obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public static boolean ArrayTableBufferHasIdentifier(ByteBuffer _bb) { return __has_identifier(_bb, "ARRT"); } diff --git a/tests/MyGame/Example/Color.lua b/tests/MyGame/Example/Color.lua index 1b824e77a8..e20496b40a 100644 --- a/tests/MyGame/Example/Color.lua +++ b/tests/MyGame/Example/Color.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.11.23 + flatc version: 22.12.06 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/Color.nim b/tests/MyGame/Example/Color.nim index 21ef208724..fb7a3ccd2e 100644 --- a/tests/MyGame/Example/Color.nim +++ b/tests/MyGame/Example/Color.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.11.23 + flatc version: 22.12.06 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example/LongEnum.lua b/tests/MyGame/Example/LongEnum.lua index 04817819af..fc91e8ef74 100644 --- a/tests/MyGame/Example/LongEnum.lua +++ b/tests/MyGame/Example/LongEnum.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.11.23 + flatc version: 22.12.06 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/LongEnum.nim b/tests/MyGame/Example/LongEnum.nim index 41ec369a10..ddaa9bfd04 100644 --- a/tests/MyGame/Example/LongEnum.nim +++ b/tests/MyGame/Example/LongEnum.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.11.23 + flatc version: 22.12.06 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example/Monster.cs b/tests/MyGame/Example/Monster.cs index 0c5a013298..be7282d35a 100644 --- a/tests/MyGame/Example/Monster.cs +++ b/tests/MyGame/Example/Monster.cs @@ -14,7 +14,7 @@ public struct Monster : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_11_23(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_12_06(); } public static Monster GetRootAsMonster(ByteBuffer _bb) { return GetRootAsMonster(_bb, new Monster()); } public static Monster GetRootAsMonster(ByteBuffer _bb, Monster obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public static bool MonsterBufferHasIdentifier(ByteBuffer _bb) { return Table.__has_identifier(_bb, "MONS"); } diff --git a/tests/MyGame/Example/Monster.java b/tests/MyGame/Example/Monster.java index d5fd1f055e..6c1dac36db 100644 --- a/tests/MyGame/Example/Monster.java +++ b/tests/MyGame/Example/Monster.java @@ -22,7 +22,7 @@ */ @SuppressWarnings("unused") public final class Monster extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_22_11_23(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_22_12_06(); } public static Monster getRootAsMonster(ByteBuffer _bb) { return getRootAsMonster(_bb, new Monster()); } public static Monster getRootAsMonster(ByteBuffer _bb, Monster obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public static boolean MonsterBufferHasIdentifier(ByteBuffer _bb) { return __has_identifier(_bb, "MONS"); } diff --git a/tests/MyGame/Example/Monster.kt b/tests/MyGame/Example/Monster.kt index 6d8394ec42..34d66e1524 100644 --- a/tests/MyGame/Example/Monster.kt +++ b/tests/MyGame/Example/Monster.kt @@ -986,7 +986,7 @@ class Monster : Table() { return compareStrings(__offset(10, o1, _bb), __offset(10, o2, _bb), _bb) } companion object { - fun validateVersion() = Constants.FLATBUFFERS_22_11_23() + fun validateVersion() = Constants.FLATBUFFERS_22_12_06() fun getRootAsMonster(_bb: ByteBuffer): Monster = getRootAsMonster(_bb, Monster()) fun getRootAsMonster(_bb: ByteBuffer, obj: Monster): Monster { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/MyGame/Example/Monster.lua b/tests/MyGame/Example/Monster.lua index 53adc4f133..a8d7978168 100644 --- a/tests/MyGame/Example/Monster.lua +++ b/tests/MyGame/Example/Monster.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.11.23 + flatc version: 22.12.06 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/Monster.nim b/tests/MyGame/Example/Monster.nim index c33374e6f5..d81a647b20 100644 --- a/tests/MyGame/Example/Monster.nim +++ b/tests/MyGame/Example/Monster.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.11.23 + flatc version: 22.12.06 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example/Race.lua b/tests/MyGame/Example/Race.lua index 0b77df3c55..689e9691f9 100644 --- a/tests/MyGame/Example/Race.lua +++ b/tests/MyGame/Example/Race.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.11.23 + flatc version: 22.12.06 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/Race.nim b/tests/MyGame/Example/Race.nim index 2d736d4459..9ea87631a6 100644 --- a/tests/MyGame/Example/Race.nim +++ b/tests/MyGame/Example/Race.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.11.23 + flatc version: 22.12.06 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example/Referrable.cs b/tests/MyGame/Example/Referrable.cs index 6894602045..9d9821bfd6 100644 --- a/tests/MyGame/Example/Referrable.cs +++ b/tests/MyGame/Example/Referrable.cs @@ -13,7 +13,7 @@ public struct Referrable : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_11_23(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_12_06(); } public static Referrable GetRootAsReferrable(ByteBuffer _bb) { return GetRootAsReferrable(_bb, new Referrable()); } public static Referrable GetRootAsReferrable(ByteBuffer _bb, Referrable obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/MyGame/Example/Referrable.java b/tests/MyGame/Example/Referrable.java index 2d142953ae..211fe929bf 100644 --- a/tests/MyGame/Example/Referrable.java +++ b/tests/MyGame/Example/Referrable.java @@ -19,7 +19,7 @@ @SuppressWarnings("unused") public final class Referrable extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_22_11_23(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_22_12_06(); } public static Referrable getRootAsReferrable(ByteBuffer _bb) { return getRootAsReferrable(_bb, new Referrable()); } public static Referrable getRootAsReferrable(ByteBuffer _bb, Referrable obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/tests/MyGame/Example/Referrable.kt b/tests/MyGame/Example/Referrable.kt index 4f2c2d9bbd..f34628bc66 100644 --- a/tests/MyGame/Example/Referrable.kt +++ b/tests/MyGame/Example/Referrable.kt @@ -36,7 +36,7 @@ class Referrable : Table() { return (val_1 - val_2).sign } companion object { - fun validateVersion() = Constants.FLATBUFFERS_22_11_23() + fun validateVersion() = Constants.FLATBUFFERS_22_12_06() fun getRootAsReferrable(_bb: ByteBuffer): Referrable = getRootAsReferrable(_bb, Referrable()) fun getRootAsReferrable(_bb: ByteBuffer, obj: Referrable): Referrable { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/MyGame/Example/Referrable.lua b/tests/MyGame/Example/Referrable.lua index a2b1d5abbb..7cebe69a72 100644 --- a/tests/MyGame/Example/Referrable.lua +++ b/tests/MyGame/Example/Referrable.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.11.23 + flatc version: 22.12.06 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/Referrable.nim b/tests/MyGame/Example/Referrable.nim index e3c050a999..5893fffdf3 100644 --- a/tests/MyGame/Example/Referrable.nim +++ b/tests/MyGame/Example/Referrable.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.11.23 + flatc version: 22.12.06 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example/Stat.cs b/tests/MyGame/Example/Stat.cs index 47c9975128..efbc1eeb48 100644 --- a/tests/MyGame/Example/Stat.cs +++ b/tests/MyGame/Example/Stat.cs @@ -13,7 +13,7 @@ public struct Stat : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_11_23(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_12_06(); } public static Stat GetRootAsStat(ByteBuffer _bb) { return GetRootAsStat(_bb, new Stat()); } public static Stat GetRootAsStat(ByteBuffer _bb, Stat obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/MyGame/Example/Stat.java b/tests/MyGame/Example/Stat.java index a9adc20f74..27c3fa7204 100644 --- a/tests/MyGame/Example/Stat.java +++ b/tests/MyGame/Example/Stat.java @@ -19,7 +19,7 @@ @SuppressWarnings("unused") public final class Stat extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_22_11_23(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_22_12_06(); } public static Stat getRootAsStat(ByteBuffer _bb) { return getRootAsStat(_bb, new Stat()); } public static Stat getRootAsStat(ByteBuffer _bb, Stat obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/tests/MyGame/Example/Stat.kt b/tests/MyGame/Example/Stat.kt index e06e62a609..1fd853aaa9 100644 --- a/tests/MyGame/Example/Stat.kt +++ b/tests/MyGame/Example/Stat.kt @@ -57,7 +57,7 @@ class Stat : Table() { return (val_1 - val_2).sign } companion object { - fun validateVersion() = Constants.FLATBUFFERS_22_11_23() + fun validateVersion() = Constants.FLATBUFFERS_22_12_06() fun getRootAsStat(_bb: ByteBuffer): Stat = getRootAsStat(_bb, Stat()) fun getRootAsStat(_bb: ByteBuffer, obj: Stat): Stat { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/MyGame/Example/Stat.lua b/tests/MyGame/Example/Stat.lua index a502145973..5ae392152f 100644 --- a/tests/MyGame/Example/Stat.lua +++ b/tests/MyGame/Example/Stat.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.11.23 + flatc version: 22.12.06 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/Stat.nim b/tests/MyGame/Example/Stat.nim index a3e1811200..cb037219d7 100644 --- a/tests/MyGame/Example/Stat.nim +++ b/tests/MyGame/Example/Stat.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.11.23 + flatc version: 22.12.06 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example/StructOfStructs.lua b/tests/MyGame/Example/StructOfStructs.lua index afa6138e26..2b2ad5373b 100644 --- a/tests/MyGame/Example/StructOfStructs.lua +++ b/tests/MyGame/Example/StructOfStructs.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.11.23 + flatc version: 22.12.06 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/StructOfStructs.nim b/tests/MyGame/Example/StructOfStructs.nim index eab3ed68aa..3c6416e508 100644 --- a/tests/MyGame/Example/StructOfStructs.nim +++ b/tests/MyGame/Example/StructOfStructs.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.11.23 + flatc version: 22.12.06 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example/StructOfStructsOfStructs.lua b/tests/MyGame/Example/StructOfStructsOfStructs.lua index 828b1145b3..f712197ce0 100644 --- a/tests/MyGame/Example/StructOfStructsOfStructs.lua +++ b/tests/MyGame/Example/StructOfStructsOfStructs.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.11.23 + flatc version: 22.12.06 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/StructOfStructsOfStructs.nim b/tests/MyGame/Example/StructOfStructsOfStructs.nim index bbc09f5ad7..054864e614 100644 --- a/tests/MyGame/Example/StructOfStructsOfStructs.nim +++ b/tests/MyGame/Example/StructOfStructsOfStructs.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.11.23 + flatc version: 22.12.06 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example/Test.lua b/tests/MyGame/Example/Test.lua index 5a56b6f578..2a363095f9 100644 --- a/tests/MyGame/Example/Test.lua +++ b/tests/MyGame/Example/Test.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.11.23 + flatc version: 22.12.06 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/Test.nim b/tests/MyGame/Example/Test.nim index 63a2e1a155..2d3a6f370e 100644 --- a/tests/MyGame/Example/Test.nim +++ b/tests/MyGame/Example/Test.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.11.23 + flatc version: 22.12.06 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example/TestSimpleTableWithEnum.cs b/tests/MyGame/Example/TestSimpleTableWithEnum.cs index 9bc421c192..4a63c4eede 100644 --- a/tests/MyGame/Example/TestSimpleTableWithEnum.cs +++ b/tests/MyGame/Example/TestSimpleTableWithEnum.cs @@ -13,7 +13,7 @@ internal partial struct TestSimpleTableWithEnum : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_11_23(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_12_06(); } public static TestSimpleTableWithEnum GetRootAsTestSimpleTableWithEnum(ByteBuffer _bb) { return GetRootAsTestSimpleTableWithEnum(_bb, new TestSimpleTableWithEnum()); } public static TestSimpleTableWithEnum GetRootAsTestSimpleTableWithEnum(ByteBuffer _bb, TestSimpleTableWithEnum obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/MyGame/Example/TestSimpleTableWithEnum.java b/tests/MyGame/Example/TestSimpleTableWithEnum.java index 8c685e7fde..23fb1f1b87 100644 --- a/tests/MyGame/Example/TestSimpleTableWithEnum.java +++ b/tests/MyGame/Example/TestSimpleTableWithEnum.java @@ -19,7 +19,7 @@ @SuppressWarnings("unused") final class TestSimpleTableWithEnum extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_22_11_23(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_22_12_06(); } public static TestSimpleTableWithEnum getRootAsTestSimpleTableWithEnum(ByteBuffer _bb) { return getRootAsTestSimpleTableWithEnum(_bb, new TestSimpleTableWithEnum()); } public static TestSimpleTableWithEnum getRootAsTestSimpleTableWithEnum(ByteBuffer _bb, TestSimpleTableWithEnum obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/tests/MyGame/Example/TestSimpleTableWithEnum.kt b/tests/MyGame/Example/TestSimpleTableWithEnum.kt index 180cbd9709..3f6027f56f 100644 --- a/tests/MyGame/Example/TestSimpleTableWithEnum.kt +++ b/tests/MyGame/Example/TestSimpleTableWithEnum.kt @@ -31,7 +31,7 @@ class TestSimpleTableWithEnum : Table() { } } companion object { - fun validateVersion() = Constants.FLATBUFFERS_22_11_23() + fun validateVersion() = Constants.FLATBUFFERS_22_12_06() fun getRootAsTestSimpleTableWithEnum(_bb: ByteBuffer): TestSimpleTableWithEnum = getRootAsTestSimpleTableWithEnum(_bb, TestSimpleTableWithEnum()) fun getRootAsTestSimpleTableWithEnum(_bb: ByteBuffer, obj: TestSimpleTableWithEnum): TestSimpleTableWithEnum { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/MyGame/Example/TestSimpleTableWithEnum.lua b/tests/MyGame/Example/TestSimpleTableWithEnum.lua index de676afaab..694917276b 100644 --- a/tests/MyGame/Example/TestSimpleTableWithEnum.lua +++ b/tests/MyGame/Example/TestSimpleTableWithEnum.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.11.23 + flatc version: 22.12.06 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/TestSimpleTableWithEnum.nim b/tests/MyGame/Example/TestSimpleTableWithEnum.nim index 4e0c049d44..c5e23f23d5 100644 --- a/tests/MyGame/Example/TestSimpleTableWithEnum.nim +++ b/tests/MyGame/Example/TestSimpleTableWithEnum.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.11.23 + flatc version: 22.12.06 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example/TypeAliases.cs b/tests/MyGame/Example/TypeAliases.cs index cf58f86ac9..841860726e 100644 --- a/tests/MyGame/Example/TypeAliases.cs +++ b/tests/MyGame/Example/TypeAliases.cs @@ -13,7 +13,7 @@ public struct TypeAliases : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_11_23(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_12_06(); } public static TypeAliases GetRootAsTypeAliases(ByteBuffer _bb) { return GetRootAsTypeAliases(_bb, new TypeAliases()); } public static TypeAliases GetRootAsTypeAliases(ByteBuffer _bb, TypeAliases obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/MyGame/Example/TypeAliases.java b/tests/MyGame/Example/TypeAliases.java index b5e2a16032..fb74ba67f1 100644 --- a/tests/MyGame/Example/TypeAliases.java +++ b/tests/MyGame/Example/TypeAliases.java @@ -19,7 +19,7 @@ @SuppressWarnings("unused") public final class TypeAliases extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_22_11_23(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_22_12_06(); } public static TypeAliases getRootAsTypeAliases(ByteBuffer _bb) { return getRootAsTypeAliases(_bb, new TypeAliases()); } public static TypeAliases getRootAsTypeAliases(ByteBuffer _bb, TypeAliases obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/tests/MyGame/Example/TypeAliases.kt b/tests/MyGame/Example/TypeAliases.kt index bc857c35b9..65a09e1130 100644 --- a/tests/MyGame/Example/TypeAliases.kt +++ b/tests/MyGame/Example/TypeAliases.kt @@ -203,7 +203,7 @@ class TypeAliases : Table() { } } companion object { - fun validateVersion() = Constants.FLATBUFFERS_22_11_23() + fun validateVersion() = Constants.FLATBUFFERS_22_12_06() fun getRootAsTypeAliases(_bb: ByteBuffer): TypeAliases = getRootAsTypeAliases(_bb, TypeAliases()) fun getRootAsTypeAliases(_bb: ByteBuffer, obj: TypeAliases): TypeAliases { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/MyGame/Example/TypeAliases.lua b/tests/MyGame/Example/TypeAliases.lua index 49398e1f32..c0326e33b1 100644 --- a/tests/MyGame/Example/TypeAliases.lua +++ b/tests/MyGame/Example/TypeAliases.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.11.23 + flatc version: 22.12.06 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/TypeAliases.nim b/tests/MyGame/Example/TypeAliases.nim index a76987a07e..5f6d8e34ce 100644 --- a/tests/MyGame/Example/TypeAliases.nim +++ b/tests/MyGame/Example/TypeAliases.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.11.23 + flatc version: 22.12.06 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example/Vec3.lua b/tests/MyGame/Example/Vec3.lua index 7eade3d4c5..2182db2921 100644 --- a/tests/MyGame/Example/Vec3.lua +++ b/tests/MyGame/Example/Vec3.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.11.23 + flatc version: 22.12.06 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/Vec3.nim b/tests/MyGame/Example/Vec3.nim index 9de4dafe78..87952dab60 100644 --- a/tests/MyGame/Example/Vec3.nim +++ b/tests/MyGame/Example/Vec3.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.11.23 + flatc version: 22.12.06 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example2/Monster.cs b/tests/MyGame/Example2/Monster.cs index 5758609f55..e8d5be266c 100644 --- a/tests/MyGame/Example2/Monster.cs +++ b/tests/MyGame/Example2/Monster.cs @@ -13,7 +13,7 @@ public struct Monster : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_11_23(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_12_06(); } public static Monster GetRootAsMonster(ByteBuffer _bb) { return GetRootAsMonster(_bb, new Monster()); } public static Monster GetRootAsMonster(ByteBuffer _bb, Monster obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/MyGame/Example2/Monster.java b/tests/MyGame/Example2/Monster.java index a58a5ea7b7..d701d97c51 100644 --- a/tests/MyGame/Example2/Monster.java +++ b/tests/MyGame/Example2/Monster.java @@ -19,7 +19,7 @@ @SuppressWarnings("unused") public final class Monster extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_22_11_23(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_22_12_06(); } public static Monster getRootAsMonster(ByteBuffer _bb) { return getRootAsMonster(_bb, new Monster()); } public static Monster getRootAsMonster(ByteBuffer _bb, Monster obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/tests/MyGame/Example2/Monster.kt b/tests/MyGame/Example2/Monster.kt index 39ae14fa28..252b684fd9 100644 --- a/tests/MyGame/Example2/Monster.kt +++ b/tests/MyGame/Example2/Monster.kt @@ -17,7 +17,7 @@ class Monster : Table() { return this } companion object { - fun validateVersion() = Constants.FLATBUFFERS_22_11_23() + fun validateVersion() = Constants.FLATBUFFERS_22_12_06() fun getRootAsMonster(_bb: ByteBuffer): Monster = getRootAsMonster(_bb, Monster()) fun getRootAsMonster(_bb: ByteBuffer, obj: Monster): Monster { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/MyGame/Example2/Monster.lua b/tests/MyGame/Example2/Monster.lua index 98ec25aed7..d3a6c007bb 100644 --- a/tests/MyGame/Example2/Monster.lua +++ b/tests/MyGame/Example2/Monster.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.11.23 + flatc version: 22.12.06 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example2/Monster.nim b/tests/MyGame/Example2/Monster.nim index 856a35182f..deded314fd 100644 --- a/tests/MyGame/Example2/Monster.nim +++ b/tests/MyGame/Example2/Monster.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.11.23 + flatc version: 22.12.06 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/InParentNamespace.cs b/tests/MyGame/InParentNamespace.cs index d30faa5bc5..faafd25e32 100644 --- a/tests/MyGame/InParentNamespace.cs +++ b/tests/MyGame/InParentNamespace.cs @@ -13,7 +13,7 @@ public struct InParentNamespace : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_11_23(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_12_06(); } public static InParentNamespace GetRootAsInParentNamespace(ByteBuffer _bb) { return GetRootAsInParentNamespace(_bb, new InParentNamespace()); } public static InParentNamespace GetRootAsInParentNamespace(ByteBuffer _bb, InParentNamespace obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/MyGame/InParentNamespace.java b/tests/MyGame/InParentNamespace.java index 27ddbe8577..15651390bd 100644 --- a/tests/MyGame/InParentNamespace.java +++ b/tests/MyGame/InParentNamespace.java @@ -19,7 +19,7 @@ @SuppressWarnings("unused") public final class InParentNamespace extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_22_11_23(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_22_12_06(); } public static InParentNamespace getRootAsInParentNamespace(ByteBuffer _bb) { return getRootAsInParentNamespace(_bb, new InParentNamespace()); } public static InParentNamespace getRootAsInParentNamespace(ByteBuffer _bb, InParentNamespace obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/tests/MyGame/InParentNamespace.kt b/tests/MyGame/InParentNamespace.kt index b946d663a1..3c8bd6e482 100644 --- a/tests/MyGame/InParentNamespace.kt +++ b/tests/MyGame/InParentNamespace.kt @@ -17,7 +17,7 @@ class InParentNamespace : Table() { return this } companion object { - fun validateVersion() = Constants.FLATBUFFERS_22_11_23() + fun validateVersion() = Constants.FLATBUFFERS_22_12_06() fun getRootAsInParentNamespace(_bb: ByteBuffer): InParentNamespace = getRootAsInParentNamespace(_bb, InParentNamespace()) fun getRootAsInParentNamespace(_bb: ByteBuffer, obj: InParentNamespace): InParentNamespace { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/MyGame/InParentNamespace.lua b/tests/MyGame/InParentNamespace.lua index b531c1adbc..26da89e199 100644 --- a/tests/MyGame/InParentNamespace.lua +++ b/tests/MyGame/InParentNamespace.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.11.23 + flatc version: 22.12.06 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/InParentNamespace.nim b/tests/MyGame/InParentNamespace.nim index cdb6e9e700..6d31210bc5 100644 --- a/tests/MyGame/InParentNamespace.nim +++ b/tests/MyGame/InParentNamespace.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.11.23 + flatc version: 22.12.06 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/MonsterExtra.cs b/tests/MyGame/MonsterExtra.cs index dcc7637695..b11da90081 100644 --- a/tests/MyGame/MonsterExtra.cs +++ b/tests/MyGame/MonsterExtra.cs @@ -13,7 +13,7 @@ public struct MonsterExtra : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_11_23(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_12_06(); } public static MonsterExtra GetRootAsMonsterExtra(ByteBuffer _bb) { return GetRootAsMonsterExtra(_bb, new MonsterExtra()); } public static MonsterExtra GetRootAsMonsterExtra(ByteBuffer _bb, MonsterExtra obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public static bool MonsterExtraBufferHasIdentifier(ByteBuffer _bb) { return Table.__has_identifier(_bb, "MONE"); } diff --git a/tests/MyGame/MonsterExtra.java b/tests/MyGame/MonsterExtra.java index 728f16ebbb..bbc06691d3 100644 --- a/tests/MyGame/MonsterExtra.java +++ b/tests/MyGame/MonsterExtra.java @@ -19,7 +19,7 @@ @SuppressWarnings("unused") public final class MonsterExtra extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_22_11_23(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_22_12_06(); } public static MonsterExtra getRootAsMonsterExtra(ByteBuffer _bb) { return getRootAsMonsterExtra(_bb, new MonsterExtra()); } public static MonsterExtra getRootAsMonsterExtra(ByteBuffer _bb, MonsterExtra obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public static boolean MonsterExtraBufferHasIdentifier(ByteBuffer _bb) { return __has_identifier(_bb, "MONE"); } diff --git a/tests/MyGame/MonsterExtra.kt b/tests/MyGame/MonsterExtra.kt index bd5e306202..0028b74242 100644 --- a/tests/MyGame/MonsterExtra.kt +++ b/tests/MyGame/MonsterExtra.kt @@ -175,7 +175,7 @@ class MonsterExtra : Table() { } } companion object { - fun validateVersion() = Constants.FLATBUFFERS_22_11_23() + fun validateVersion() = Constants.FLATBUFFERS_22_12_06() fun getRootAsMonsterExtra(_bb: ByteBuffer): MonsterExtra = getRootAsMonsterExtra(_bb, MonsterExtra()) fun getRootAsMonsterExtra(_bb: ByteBuffer, obj: MonsterExtra): MonsterExtra { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/MyGame/OtherNameSpace/FromInclude.lua b/tests/MyGame/OtherNameSpace/FromInclude.lua index 184355993f..278b34f252 100644 --- a/tests/MyGame/OtherNameSpace/FromInclude.lua +++ b/tests/MyGame/OtherNameSpace/FromInclude.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.11.23 + flatc version: 22.12.06 Declared by : //include_test/sub/include_test2.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/OtherNameSpace/FromInclude.nim b/tests/MyGame/OtherNameSpace/FromInclude.nim index cf1429696d..2861afb9bd 100644 --- a/tests/MyGame/OtherNameSpace/FromInclude.nim +++ b/tests/MyGame/OtherNameSpace/FromInclude.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.11.23 + flatc version: 22.12.06 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/OtherNameSpace/TableB.lua b/tests/MyGame/OtherNameSpace/TableB.lua index d23cb9ad8c..57072329c1 100644 --- a/tests/MyGame/OtherNameSpace/TableB.lua +++ b/tests/MyGame/OtherNameSpace/TableB.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.11.23 + flatc version: 22.12.06 Declared by : //include_test/sub/include_test2.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/OtherNameSpace/TableB.nim b/tests/MyGame/OtherNameSpace/TableB.nim index 0288d346a6..b8dc5ded5f 100644 --- a/tests/MyGame/OtherNameSpace/TableB.nim +++ b/tests/MyGame/OtherNameSpace/TableB.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.11.23 + flatc version: 22.12.06 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/OtherNameSpace/Unused.lua b/tests/MyGame/OtherNameSpace/Unused.lua index 6e4065f3bc..449eb99ea1 100644 --- a/tests/MyGame/OtherNameSpace/Unused.lua +++ b/tests/MyGame/OtherNameSpace/Unused.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.11.23 + flatc version: 22.12.06 Declared by : //include_test/sub/include_test2.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/OtherNameSpace/Unused.nim b/tests/MyGame/OtherNameSpace/Unused.nim index 8beee41bcc..872678cb3c 100644 --- a/tests/MyGame/OtherNameSpace/Unused.nim +++ b/tests/MyGame/OtherNameSpace/Unused.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.11.23 + flatc version: 22.12.06 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/Property.nim b/tests/Property.nim index 0524e39149..48650320d6 100644 --- a/tests/Property.nim +++ b/tests/Property.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.11.23 + flatc version: 22.12.06 Declared by : ]# diff --git a/tests/TableA.lua b/tests/TableA.lua index ed0741e1a9..bc8c788a74 100644 --- a/tests/TableA.lua +++ b/tests/TableA.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.11.23 + flatc version: 22.12.06 Declared by : //include_test/include_test1.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/TableA.nim b/tests/TableA.nim index 17252c671a..7416349191 100644 --- a/tests/TableA.nim +++ b/tests/TableA.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.11.23 + flatc version: 22.12.06 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/TestMutatingBool.nim b/tests/TestMutatingBool.nim index ed4e2a50bc..6ab9578f54 100644 --- a/tests/TestMutatingBool.nim +++ b/tests/TestMutatingBool.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.11.23 + flatc version: 22.12.06 Declared by : ]# diff --git a/tests/alignment_test_generated.h b/tests/alignment_test_generated.h index aeaa2efee6..d7f876a113 100644 --- a/tests/alignment_test_generated.h +++ b/tests/alignment_test_generated.h @@ -9,8 +9,8 @@ // Ensure the included flatbuffers.h is the same version as when this file was // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 22 && - FLATBUFFERS_VERSION_MINOR == 11 && - FLATBUFFERS_VERSION_REVISION == 23, + FLATBUFFERS_VERSION_MINOR == 12 && + FLATBUFFERS_VERSION_REVISION == 6, "Non-compatible flatbuffers version included"); struct BadAlignmentSmall; diff --git a/tests/arrays_test_generated.h b/tests/arrays_test_generated.h index 84c94c1441..c89af369a0 100644 --- a/tests/arrays_test_generated.h +++ b/tests/arrays_test_generated.h @@ -9,8 +9,8 @@ // Ensure the included flatbuffers.h is the same version as when this file was // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 22 && - FLATBUFFERS_VERSION_MINOR == 11 && - FLATBUFFERS_VERSION_REVISION == 23, + FLATBUFFERS_VERSION_MINOR == 12 && + FLATBUFFERS_VERSION_REVISION == 6, "Non-compatible flatbuffers version included"); namespace MyGame { diff --git a/tests/cpp17/generated_cpp17/monster_test_generated.h b/tests/cpp17/generated_cpp17/monster_test_generated.h index 7880a01d8c..44d45eecdb 100644 --- a/tests/cpp17/generated_cpp17/monster_test_generated.h +++ b/tests/cpp17/generated_cpp17/monster_test_generated.h @@ -11,8 +11,8 @@ // Ensure the included flatbuffers.h is the same version as when this file was // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 22 && - FLATBUFFERS_VERSION_MINOR == 11 && - FLATBUFFERS_VERSION_REVISION == 23, + FLATBUFFERS_VERSION_MINOR == 12 && + FLATBUFFERS_VERSION_REVISION == 6, "Non-compatible flatbuffers version included"); namespace MyGame { diff --git a/tests/cpp17/generated_cpp17/optional_scalars_generated.h b/tests/cpp17/generated_cpp17/optional_scalars_generated.h index 5f1e35434f..9a2c70d3a0 100644 --- a/tests/cpp17/generated_cpp17/optional_scalars_generated.h +++ b/tests/cpp17/generated_cpp17/optional_scalars_generated.h @@ -9,8 +9,8 @@ // Ensure the included flatbuffers.h is the same version as when this file was // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 22 && - FLATBUFFERS_VERSION_MINOR == 11 && - FLATBUFFERS_VERSION_REVISION == 23, + FLATBUFFERS_VERSION_MINOR == 12 && + FLATBUFFERS_VERSION_REVISION == 6, "Non-compatible flatbuffers version included"); namespace optional_scalars { diff --git a/tests/cpp17/generated_cpp17/union_vector_generated.h b/tests/cpp17/generated_cpp17/union_vector_generated.h index 09c2562bbf..93197d666a 100644 --- a/tests/cpp17/generated_cpp17/union_vector_generated.h +++ b/tests/cpp17/generated_cpp17/union_vector_generated.h @@ -9,8 +9,8 @@ // Ensure the included flatbuffers.h is the same version as when this file was // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 22 && - FLATBUFFERS_VERSION_MINOR == 11 && - FLATBUFFERS_VERSION_REVISION == 23, + FLATBUFFERS_VERSION_MINOR == 12 && + FLATBUFFERS_VERSION_REVISION == 6, "Non-compatible flatbuffers version included"); struct Attacker; diff --git a/tests/evolution_test/evolution_v1_generated.h b/tests/evolution_test/evolution_v1_generated.h index 0cdc201f82..923297ae29 100644 --- a/tests/evolution_test/evolution_v1_generated.h +++ b/tests/evolution_test/evolution_v1_generated.h @@ -9,8 +9,8 @@ // Ensure the included flatbuffers.h is the same version as when this file was // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 22 && - FLATBUFFERS_VERSION_MINOR == 11 && - FLATBUFFERS_VERSION_REVISION == 23, + FLATBUFFERS_VERSION_MINOR == 12 && + FLATBUFFERS_VERSION_REVISION == 6, "Non-compatible flatbuffers version included"); namespace Evolution { diff --git a/tests/evolution_test/evolution_v2_generated.h b/tests/evolution_test/evolution_v2_generated.h index 0f075016bd..5a9e1d5168 100644 --- a/tests/evolution_test/evolution_v2_generated.h +++ b/tests/evolution_test/evolution_v2_generated.h @@ -9,8 +9,8 @@ // Ensure the included flatbuffers.h is the same version as when this file was // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 22 && - FLATBUFFERS_VERSION_MINOR == 11 && - FLATBUFFERS_VERSION_REVISION == 23, + FLATBUFFERS_VERSION_MINOR == 12 && + FLATBUFFERS_VERSION_REVISION == 6, "Non-compatible flatbuffers version included"); namespace Evolution { diff --git a/tests/key_field/key_field_sample_generated.h b/tests/key_field/key_field_sample_generated.h index bcbd2d2218..be16f65581 100644 --- a/tests/key_field/key_field_sample_generated.h +++ b/tests/key_field/key_field_sample_generated.h @@ -9,8 +9,8 @@ // Ensure the included flatbuffers.h is the same version as when this file was // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 22 && - FLATBUFFERS_VERSION_MINOR == 11 && - FLATBUFFERS_VERSION_REVISION == 23, + FLATBUFFERS_VERSION_MINOR == 12 && + FLATBUFFERS_VERSION_REVISION == 6, "Non-compatible flatbuffers version included"); namespace keyfield { diff --git a/tests/monster_extra_generated.h b/tests/monster_extra_generated.h index 822baef0a2..18a1e5feae 100644 --- a/tests/monster_extra_generated.h +++ b/tests/monster_extra_generated.h @@ -9,8 +9,8 @@ // Ensure the included flatbuffers.h is the same version as when this file was // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 22 && - FLATBUFFERS_VERSION_MINOR == 11 && - FLATBUFFERS_VERSION_REVISION == 23, + FLATBUFFERS_VERSION_MINOR == 12 && + FLATBUFFERS_VERSION_REVISION == 6, "Non-compatible flatbuffers version included"); namespace MyGame { diff --git a/tests/monster_test_bfbs_generated.h b/tests/monster_test_bfbs_generated.h index b450913897..ea5cf343d4 100644 --- a/tests/monster_test_bfbs_generated.h +++ b/tests/monster_test_bfbs_generated.h @@ -9,8 +9,8 @@ // Ensure the included flatbuffers.h is the same version as when this file was // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 22 && - FLATBUFFERS_VERSION_MINOR == 11 && - FLATBUFFERS_VERSION_REVISION == 23, + FLATBUFFERS_VERSION_MINOR == 12 && + FLATBUFFERS_VERSION_REVISION == 6, "Non-compatible flatbuffers version included"); namespace MyGame { diff --git a/tests/monster_test_generated.h b/tests/monster_test_generated.h index f6553f5fd6..3e95c4b330 100644 --- a/tests/monster_test_generated.h +++ b/tests/monster_test_generated.h @@ -11,8 +11,8 @@ // Ensure the included flatbuffers.h is the same version as when this file was // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 22 && - FLATBUFFERS_VERSION_MINOR == 11 && - FLATBUFFERS_VERSION_REVISION == 23, + FLATBUFFERS_VERSION_MINOR == 12 && + FLATBUFFERS_VERSION_REVISION == 6, "Non-compatible flatbuffers version included"); namespace MyGame { diff --git a/tests/monster_test_suffix/ext_only/monster_test_generated.hpp b/tests/monster_test_suffix/ext_only/monster_test_generated.hpp index f6553f5fd6..3e95c4b330 100644 --- a/tests/monster_test_suffix/ext_only/monster_test_generated.hpp +++ b/tests/monster_test_suffix/ext_only/monster_test_generated.hpp @@ -11,8 +11,8 @@ // Ensure the included flatbuffers.h is the same version as when this file was // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 22 && - FLATBUFFERS_VERSION_MINOR == 11 && - FLATBUFFERS_VERSION_REVISION == 23, + FLATBUFFERS_VERSION_MINOR == 12 && + FLATBUFFERS_VERSION_REVISION == 6, "Non-compatible flatbuffers version included"); namespace MyGame { diff --git a/tests/monster_test_suffix/filesuffix_only/monster_test_suffix.h b/tests/monster_test_suffix/filesuffix_only/monster_test_suffix.h index f6553f5fd6..3e95c4b330 100644 --- a/tests/monster_test_suffix/filesuffix_only/monster_test_suffix.h +++ b/tests/monster_test_suffix/filesuffix_only/monster_test_suffix.h @@ -11,8 +11,8 @@ // Ensure the included flatbuffers.h is the same version as when this file was // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 22 && - FLATBUFFERS_VERSION_MINOR == 11 && - FLATBUFFERS_VERSION_REVISION == 23, + FLATBUFFERS_VERSION_MINOR == 12 && + FLATBUFFERS_VERSION_REVISION == 6, "Non-compatible flatbuffers version included"); namespace MyGame { diff --git a/tests/monster_test_suffix/monster_test_suffix.hpp b/tests/monster_test_suffix/monster_test_suffix.hpp index f6553f5fd6..3e95c4b330 100644 --- a/tests/monster_test_suffix/monster_test_suffix.hpp +++ b/tests/monster_test_suffix/monster_test_suffix.hpp @@ -11,8 +11,8 @@ // Ensure the included flatbuffers.h is the same version as when this file was // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 22 && - FLATBUFFERS_VERSION_MINOR == 11 && - FLATBUFFERS_VERSION_REVISION == 23, + FLATBUFFERS_VERSION_MINOR == 12 && + FLATBUFFERS_VERSION_REVISION == 6, "Non-compatible flatbuffers version included"); namespace MyGame { diff --git a/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.cs b/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.cs index 5a0e7bded7..292f7d9e45 100644 --- a/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.cs +++ b/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.cs @@ -13,7 +13,7 @@ public struct TableInNestedNS : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_11_23(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_12_06(); } public static TableInNestedNS GetRootAsTableInNestedNS(ByteBuffer _bb) { return GetRootAsTableInNestedNS(_bb, new TableInNestedNS()); } public static TableInNestedNS GetRootAsTableInNestedNS(ByteBuffer _bb, TableInNestedNS obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.java b/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.java index 591d542240..3f398e9b76 100644 --- a/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.java +++ b/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.java @@ -9,7 +9,7 @@ @SuppressWarnings("unused") public final class TableInNestedNS extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_22_11_23(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_22_12_06(); } public static TableInNestedNS getRootAsTableInNestedNS(ByteBuffer _bb) { return getRootAsTableInNestedNS(_bb, new TableInNestedNS()); } public static TableInNestedNS getRootAsTableInNestedNS(ByteBuffer _bb, TableInNestedNS obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.kt b/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.kt index a3c53df6e8..2b5cafdb38 100644 --- a/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.kt +++ b/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.kt @@ -32,7 +32,7 @@ class TableInNestedNS : Table() { } } companion object { - fun validateVersion() = Constants.FLATBUFFERS_22_11_23() + fun validateVersion() = Constants.FLATBUFFERS_22_12_06() fun getRootAsTableInNestedNS(_bb: ByteBuffer): TableInNestedNS = getRootAsTableInNestedNS(_bb, TableInNestedNS()) fun getRootAsTableInNestedNS(_bb: ByteBuffer, obj: TableInNestedNS): TableInNestedNS { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/namespace_test/NamespaceA/SecondTableInA.cs b/tests/namespace_test/NamespaceA/SecondTableInA.cs index 1b49c96455..6feb0cbf6b 100644 --- a/tests/namespace_test/NamespaceA/SecondTableInA.cs +++ b/tests/namespace_test/NamespaceA/SecondTableInA.cs @@ -13,7 +13,7 @@ public struct SecondTableInA : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_11_23(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_12_06(); } public static SecondTableInA GetRootAsSecondTableInA(ByteBuffer _bb) { return GetRootAsSecondTableInA(_bb, new SecondTableInA()); } public static SecondTableInA GetRootAsSecondTableInA(ByteBuffer _bb, SecondTableInA obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/namespace_test/NamespaceA/SecondTableInA.java b/tests/namespace_test/NamespaceA/SecondTableInA.java index c9a9187611..8515126ca8 100644 --- a/tests/namespace_test/NamespaceA/SecondTableInA.java +++ b/tests/namespace_test/NamespaceA/SecondTableInA.java @@ -9,7 +9,7 @@ @SuppressWarnings("unused") public final class SecondTableInA extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_22_11_23(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_22_12_06(); } public static SecondTableInA getRootAsSecondTableInA(ByteBuffer _bb) { return getRootAsSecondTableInA(_bb, new SecondTableInA()); } public static SecondTableInA getRootAsSecondTableInA(ByteBuffer _bb, SecondTableInA obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/tests/namespace_test/NamespaceA/SecondTableInA.kt b/tests/namespace_test/NamespaceA/SecondTableInA.kt index b289d179ab..40cb32b2d0 100644 --- a/tests/namespace_test/NamespaceA/SecondTableInA.kt +++ b/tests/namespace_test/NamespaceA/SecondTableInA.kt @@ -27,7 +27,7 @@ class SecondTableInA : Table() { } } companion object { - fun validateVersion() = Constants.FLATBUFFERS_22_11_23() + fun validateVersion() = Constants.FLATBUFFERS_22_12_06() fun getRootAsSecondTableInA(_bb: ByteBuffer): SecondTableInA = getRootAsSecondTableInA(_bb, SecondTableInA()) fun getRootAsSecondTableInA(_bb: ByteBuffer, obj: SecondTableInA): SecondTableInA { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/namespace_test/NamespaceA/TableInFirstNS.cs b/tests/namespace_test/NamespaceA/TableInFirstNS.cs index 710fca16df..eaa93897ec 100644 --- a/tests/namespace_test/NamespaceA/TableInFirstNS.cs +++ b/tests/namespace_test/NamespaceA/TableInFirstNS.cs @@ -13,7 +13,7 @@ public struct TableInFirstNS : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_11_23(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_12_06(); } public static TableInFirstNS GetRootAsTableInFirstNS(ByteBuffer _bb) { return GetRootAsTableInFirstNS(_bb, new TableInFirstNS()); } public static TableInFirstNS GetRootAsTableInFirstNS(ByteBuffer _bb, TableInFirstNS obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/namespace_test/NamespaceA/TableInFirstNS.java b/tests/namespace_test/NamespaceA/TableInFirstNS.java index 6adae86582..a593c3c99a 100644 --- a/tests/namespace_test/NamespaceA/TableInFirstNS.java +++ b/tests/namespace_test/NamespaceA/TableInFirstNS.java @@ -9,7 +9,7 @@ @SuppressWarnings("unused") public final class TableInFirstNS extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_22_11_23(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_22_12_06(); } public static TableInFirstNS getRootAsTableInFirstNS(ByteBuffer _bb) { return getRootAsTableInFirstNS(_bb, new TableInFirstNS()); } public static TableInFirstNS getRootAsTableInFirstNS(ByteBuffer _bb, TableInFirstNS obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/tests/namespace_test/NamespaceA/TableInFirstNS.kt b/tests/namespace_test/NamespaceA/TableInFirstNS.kt index 81d9f8a511..e4e9264c0c 100644 --- a/tests/namespace_test/NamespaceA/TableInFirstNS.kt +++ b/tests/namespace_test/NamespaceA/TableInFirstNS.kt @@ -67,7 +67,7 @@ class TableInFirstNS : Table() { } } companion object { - fun validateVersion() = Constants.FLATBUFFERS_22_11_23() + fun validateVersion() = Constants.FLATBUFFERS_22_12_06() fun getRootAsTableInFirstNS(_bb: ByteBuffer): TableInFirstNS = getRootAsTableInFirstNS(_bb, TableInFirstNS()) fun getRootAsTableInFirstNS(_bb: ByteBuffer, obj: TableInFirstNS): TableInFirstNS { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/namespace_test/NamespaceC/TableInC.cs b/tests/namespace_test/NamespaceC/TableInC.cs index 0851abdd2c..d419911cad 100644 --- a/tests/namespace_test/NamespaceC/TableInC.cs +++ b/tests/namespace_test/NamespaceC/TableInC.cs @@ -13,7 +13,7 @@ public struct TableInC : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_11_23(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_12_06(); } public static TableInC GetRootAsTableInC(ByteBuffer _bb) { return GetRootAsTableInC(_bb, new TableInC()); } public static TableInC GetRootAsTableInC(ByteBuffer _bb, TableInC obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/namespace_test/NamespaceC/TableInC.java b/tests/namespace_test/NamespaceC/TableInC.java index 15fc5f4759..f7acc57127 100644 --- a/tests/namespace_test/NamespaceC/TableInC.java +++ b/tests/namespace_test/NamespaceC/TableInC.java @@ -9,7 +9,7 @@ @SuppressWarnings("unused") public final class TableInC extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_22_11_23(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_22_12_06(); } public static TableInC getRootAsTableInC(ByteBuffer _bb) { return getRootAsTableInC(_bb, new TableInC()); } public static TableInC getRootAsTableInC(ByteBuffer _bb, TableInC obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/tests/namespace_test/NamespaceC/TableInC.kt b/tests/namespace_test/NamespaceC/TableInC.kt index bdca51d7b0..fafab7ea0a 100644 --- a/tests/namespace_test/NamespaceC/TableInC.kt +++ b/tests/namespace_test/NamespaceC/TableInC.kt @@ -36,7 +36,7 @@ class TableInC : Table() { } } companion object { - fun validateVersion() = Constants.FLATBUFFERS_22_11_23() + fun validateVersion() = Constants.FLATBUFFERS_22_12_06() fun getRootAsTableInC(_bb: ByteBuffer): TableInC = getRootAsTableInC(_bb, TableInC()) fun getRootAsTableInC(_bb: ByteBuffer, obj: TableInC): TableInC { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/namespace_test/namespace_test1_generated.h b/tests/namespace_test/namespace_test1_generated.h index 8f0fd18e1e..460281fc50 100644 --- a/tests/namespace_test/namespace_test1_generated.h +++ b/tests/namespace_test/namespace_test1_generated.h @@ -9,8 +9,8 @@ // Ensure the included flatbuffers.h is the same version as when this file was // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 22 && - FLATBUFFERS_VERSION_MINOR == 11 && - FLATBUFFERS_VERSION_REVISION == 23, + FLATBUFFERS_VERSION_MINOR == 12 && + FLATBUFFERS_VERSION_REVISION == 6, "Non-compatible flatbuffers version included"); namespace NamespaceA { diff --git a/tests/namespace_test/namespace_test2_generated.h b/tests/namespace_test/namespace_test2_generated.h index cf0f1d5758..fc4fc2b64c 100644 --- a/tests/namespace_test/namespace_test2_generated.h +++ b/tests/namespace_test/namespace_test2_generated.h @@ -9,8 +9,8 @@ // Ensure the included flatbuffers.h is the same version as when this file was // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 22 && - FLATBUFFERS_VERSION_MINOR == 11 && - FLATBUFFERS_VERSION_REVISION == 23, + FLATBUFFERS_VERSION_MINOR == 12 && + FLATBUFFERS_VERSION_REVISION == 6, "Non-compatible flatbuffers version included"); namespace NamespaceA { diff --git a/tests/native_inline_table_test_generated.h b/tests/native_inline_table_test_generated.h index b5123ed2b2..d1711fafb8 100644 --- a/tests/native_inline_table_test_generated.h +++ b/tests/native_inline_table_test_generated.h @@ -9,8 +9,8 @@ // Ensure the included flatbuffers.h is the same version as when this file was // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 22 && - FLATBUFFERS_VERSION_MINOR == 11 && - FLATBUFFERS_VERSION_REVISION == 23, + FLATBUFFERS_VERSION_MINOR == 12 && + FLATBUFFERS_VERSION_REVISION == 6, "Non-compatible flatbuffers version included"); struct NativeInlineTable; diff --git a/tests/native_type_test_generated.h b/tests/native_type_test_generated.h index d80b059fdf..dcf5dea7ee 100644 --- a/tests/native_type_test_generated.h +++ b/tests/native_type_test_generated.h @@ -9,8 +9,8 @@ // Ensure the included flatbuffers.h is the same version as when this file was // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 22 && - FLATBUFFERS_VERSION_MINOR == 11 && - FLATBUFFERS_VERSION_REVISION == 23, + FLATBUFFERS_VERSION_MINOR == 12 && + FLATBUFFERS_VERSION_REVISION == 6, "Non-compatible flatbuffers version included"); #include "native_type_test_impl.h" diff --git a/tests/nested_namespace_test/nested_namespace_test3_generated.cs b/tests/nested_namespace_test/nested_namespace_test3_generated.cs index 5bc452ab8a..0154b48b18 100644 --- a/tests/nested_namespace_test/nested_namespace_test3_generated.cs +++ b/tests/nested_namespace_test/nested_namespace_test3_generated.cs @@ -13,7 +13,7 @@ public struct ColorTestTable : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_11_23(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_12_06(); } public static ColorTestTable GetRootAsColorTestTable(ByteBuffer _bb) { return GetRootAsColorTestTable(_bb, new ColorTestTable()); } public static ColorTestTable GetRootAsColorTestTable(ByteBuffer _bb, ColorTestTable obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/optional_scalars/OptionalByte.nim b/tests/optional_scalars/OptionalByte.nim index e709c1cca5..1643be79c8 100644 --- a/tests/optional_scalars/OptionalByte.nim +++ b/tests/optional_scalars/OptionalByte.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.11.23 + flatc version: 22.12.06 Declared by : Rooting type : optional_scalars.ScalarStuff () diff --git a/tests/optional_scalars/ScalarStuff.cs b/tests/optional_scalars/ScalarStuff.cs index f86ea5f73f..10cda55469 100644 --- a/tests/optional_scalars/ScalarStuff.cs +++ b/tests/optional_scalars/ScalarStuff.cs @@ -13,7 +13,7 @@ public struct ScalarStuff : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_11_23(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_12_06(); } public static ScalarStuff GetRootAsScalarStuff(ByteBuffer _bb) { return GetRootAsScalarStuff(_bb, new ScalarStuff()); } public static ScalarStuff GetRootAsScalarStuff(ByteBuffer _bb, ScalarStuff obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public static bool ScalarStuffBufferHasIdentifier(ByteBuffer _bb) { return Table.__has_identifier(_bb, "NULL"); } diff --git a/tests/optional_scalars/ScalarStuff.java b/tests/optional_scalars/ScalarStuff.java index 7752d89fbe..c7d9831ac8 100644 --- a/tests/optional_scalars/ScalarStuff.java +++ b/tests/optional_scalars/ScalarStuff.java @@ -19,7 +19,7 @@ @SuppressWarnings("unused") public final class ScalarStuff extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_22_11_23(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_22_12_06(); } public static ScalarStuff getRootAsScalarStuff(ByteBuffer _bb) { return getRootAsScalarStuff(_bb, new ScalarStuff()); } public static ScalarStuff getRootAsScalarStuff(ByteBuffer _bb, ScalarStuff obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public static boolean ScalarStuffBufferHasIdentifier(ByteBuffer _bb) { return __has_identifier(_bb, "NULL"); } diff --git a/tests/optional_scalars/ScalarStuff.kt b/tests/optional_scalars/ScalarStuff.kt index 2ee5533896..a0d66eca6c 100644 --- a/tests/optional_scalars/ScalarStuff.kt +++ b/tests/optional_scalars/ScalarStuff.kt @@ -197,7 +197,7 @@ class ScalarStuff : Table() { return if(o != 0) bb.get(o + bb_pos) else 1 } companion object { - fun validateVersion() = Constants.FLATBUFFERS_22_11_23() + fun validateVersion() = Constants.FLATBUFFERS_22_12_06() fun getRootAsScalarStuff(_bb: ByteBuffer): ScalarStuff = getRootAsScalarStuff(_bb, ScalarStuff()) fun getRootAsScalarStuff(_bb: ByteBuffer, obj: ScalarStuff): ScalarStuff { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/optional_scalars/ScalarStuff.nim b/tests/optional_scalars/ScalarStuff.nim index c2ee74b806..ef95dc8150 100644 --- a/tests/optional_scalars/ScalarStuff.nim +++ b/tests/optional_scalars/ScalarStuff.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.11.23 + flatc version: 22.12.06 Declared by : Rooting type : optional_scalars.ScalarStuff () diff --git a/tests/optional_scalars_generated.h b/tests/optional_scalars_generated.h index eccae0479e..5cc779bc17 100644 --- a/tests/optional_scalars_generated.h +++ b/tests/optional_scalars_generated.h @@ -9,8 +9,8 @@ // Ensure the included flatbuffers.h is the same version as when this file was // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 22 && - FLATBUFFERS_VERSION_MINOR == 11 && - FLATBUFFERS_VERSION_REVISION == 23, + FLATBUFFERS_VERSION_MINOR == 12 && + FLATBUFFERS_VERSION_REVISION == 6, "Non-compatible flatbuffers version included"); namespace optional_scalars { diff --git a/tests/swift/Wasm.tests/Tests/FlatBuffers.Test.Swift.WasmTests/monster_test_generated.swift b/tests/swift/Wasm.tests/Tests/FlatBuffers.Test.Swift.WasmTests/monster_test_generated.swift index e9ccb1e751..6fb2f9baa1 100644 --- a/tests/swift/Wasm.tests/Tests/FlatBuffers.Test.Swift.WasmTests/monster_test_generated.swift +++ b/tests/swift/Wasm.tests/Tests/FlatBuffers.Test.Swift.WasmTests/monster_test_generated.swift @@ -237,7 +237,7 @@ public struct MyGame_Example_AnyAmbiguousAliasesUnion { } public struct MyGame_Example_Test: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject { - static func validateVersion() { FlatBuffersVersion_22_11_23() } + static func validateVersion() { FlatBuffersVersion_22_12_06() } private var _a: Int16 private var _b: Int8 @@ -291,7 +291,7 @@ extension MyGame_Example_Test: Encodable { public struct MyGame_Example_Test_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_22_11_23() } + static func validateVersion() { FlatBuffersVersion_22_12_06() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -318,7 +318,7 @@ public struct MyGame_Example_Test_Mutable: FlatBufferObject { public struct MyGame_Example_Vec3: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject { - static func validateVersion() { FlatBuffersVersion_22_11_23() } + static func validateVersion() { FlatBuffersVersion_22_12_06() } private var _x: Float32 private var _y: Float32 @@ -413,7 +413,7 @@ extension MyGame_Example_Vec3: Encodable { public struct MyGame_Example_Vec3_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_22_11_23() } + static func validateVersion() { FlatBuffersVersion_22_12_06() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -447,7 +447,7 @@ public struct MyGame_Example_Vec3_Mutable: FlatBufferObject { public struct MyGame_Example_Ability: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject { - static func validateVersion() { FlatBuffersVersion_22_11_23() } + static func validateVersion() { FlatBuffersVersion_22_12_06() } private var _id: UInt32 private var _distance: UInt32 @@ -500,7 +500,7 @@ extension MyGame_Example_Ability: Encodable { public struct MyGame_Example_Ability_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_22_11_23() } + static func validateVersion() { FlatBuffersVersion_22_12_06() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -527,7 +527,7 @@ public struct MyGame_Example_Ability_Mutable: FlatBufferObject { public struct MyGame_Example_StructOfStructs: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject { - static func validateVersion() { FlatBuffersVersion_22_11_23() } + static func validateVersion() { FlatBuffersVersion_22_12_06() } private var _a: MyGame_Example_Ability private var _b: MyGame_Example_Test @@ -587,7 +587,7 @@ extension MyGame_Example_StructOfStructs: Encodable { public struct MyGame_Example_StructOfStructs_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_22_11_23() } + static func validateVersion() { FlatBuffersVersion_22_12_06() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -613,7 +613,7 @@ public struct MyGame_Example_StructOfStructs_Mutable: FlatBufferObject { public struct MyGame_Example_StructOfStructsOfStructs: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject { - static func validateVersion() { FlatBuffersVersion_22_11_23() } + static func validateVersion() { FlatBuffersVersion_22_12_06() } private var _a: MyGame_Example_StructOfStructs @@ -655,7 +655,7 @@ extension MyGame_Example_StructOfStructsOfStructs: Encodable { public struct MyGame_Example_StructOfStructsOfStructs_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_22_11_23() } + static func validateVersion() { FlatBuffersVersion_22_12_06() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -679,7 +679,7 @@ public struct MyGame_Example_StructOfStructsOfStructs_Mutable: FlatBufferObject public struct MyGame_InParentNamespace: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_22_11_23() } + static func validateVersion() { FlatBuffersVersion_22_12_06() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -733,7 +733,7 @@ public class MyGame_InParentNamespaceT: NativeObject { } public struct MyGame_Example2_Monster: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_22_11_23() } + static func validateVersion() { FlatBuffersVersion_22_12_06() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -787,7 +787,7 @@ public class MyGame_Example2_MonsterT: NativeObject { } internal struct MyGame_Example_TestSimpleTableWithEnum: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_22_11_23() } + static func validateVersion() { FlatBuffersVersion_22_12_06() } internal var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -870,7 +870,7 @@ internal class MyGame_Example_TestSimpleTableWithEnumT: NativeObject { } public struct MyGame_Example_Stat: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_22_11_23() } + static func validateVersion() { FlatBuffersVersion_22_12_06() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -1011,7 +1011,7 @@ public class MyGame_Example_StatT: NativeObject { } public struct MyGame_Example_Referrable: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_22_11_23() } + static func validateVersion() { FlatBuffersVersion_22_12_06() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -1119,7 +1119,7 @@ public class MyGame_Example_ReferrableT: NativeObject { /// an example documentation comment: "monster object" public struct MyGame_Example_Monster: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_22_11_23() } + static func validateVersion() { FlatBuffersVersion_22_12_06() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -2417,7 +2417,7 @@ public class MyGame_Example_MonsterT: NativeObject { } public struct MyGame_Example_TypeAliases: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_22_11_23() } + static func validateVersion() { FlatBuffersVersion_22_12_06() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table diff --git a/tests/swift/tests/CodeGenerationTests/test_import_generated.swift b/tests/swift/tests/CodeGenerationTests/test_import_generated.swift index 5455d8a64d..d6919081a4 100644 --- a/tests/swift/tests/CodeGenerationTests/test_import_generated.swift +++ b/tests/swift/tests/CodeGenerationTests/test_import_generated.swift @@ -6,7 +6,7 @@ internal struct Message: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_22_11_23() } + static func validateVersion() { FlatBuffersVersion_22_12_06() } internal var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table diff --git a/tests/swift/tests/CodeGenerationTests/test_no_include_generated.swift b/tests/swift/tests/CodeGenerationTests/test_no_include_generated.swift index 6890201750..f247dcc89a 100644 --- a/tests/swift/tests/CodeGenerationTests/test_no_include_generated.swift +++ b/tests/swift/tests/CodeGenerationTests/test_no_include_generated.swift @@ -4,7 +4,7 @@ public struct BytesCount: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject { - static func validateVersion() { FlatBuffersVersion_22_11_23() } + static func validateVersion() { FlatBuffersVersion_22_12_06() } private var _x: Int64 @@ -47,7 +47,7 @@ extension BytesCount: Encodable { public struct BytesCount_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_22_11_23() } + static func validateVersion() { FlatBuffersVersion_22_12_06() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -72,7 +72,7 @@ public struct BytesCount_Mutable: FlatBufferObject { public struct InternalMessage: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_22_11_23() } + static func validateVersion() { FlatBuffersVersion_22_12_06() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -157,7 +157,7 @@ public class InternalMessageT: NativeObject { } public struct Message: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_22_11_23() } + static func validateVersion() { FlatBuffersVersion_22_12_06() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table diff --git a/tests/swift/tests/Sources/SwiftFlatBuffers/fuzzer_generated.swift b/tests/swift/tests/Sources/SwiftFlatBuffers/fuzzer_generated.swift index 711367d5e5..36a0a6d70e 100644 --- a/tests/swift/tests/Sources/SwiftFlatBuffers/fuzzer_generated.swift +++ b/tests/swift/tests/Sources/SwiftFlatBuffers/fuzzer_generated.swift @@ -32,7 +32,7 @@ extension Color: Encodable { public struct Test: NativeStruct, Verifiable, FlatbuffersInitializable { - static func validateVersion() { FlatBuffersVersion_22_11_23() } + static func validateVersion() { FlatBuffersVersion_22_12_06() } private var _a: Int16 private var _b: Int8 @@ -81,7 +81,7 @@ extension Test: Encodable { public struct Test_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_22_11_23() } + static func validateVersion() { FlatBuffersVersion_22_12_06() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -93,7 +93,7 @@ public struct Test_Mutable: FlatBufferObject { public struct Vec3: NativeStruct, Verifiable, FlatbuffersInitializable { - static func validateVersion() { FlatBuffersVersion_22_11_23() } + static func validateVersion() { FlatBuffersVersion_22_12_06() } private var _x: Float32 private var _y: Float32 @@ -178,7 +178,7 @@ extension Vec3: Encodable { public struct Vec3_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_22_11_23() } + static func validateVersion() { FlatBuffersVersion_22_12_06() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -195,7 +195,7 @@ public struct Vec3_Mutable: FlatBufferObject { /// an example documentation comment: "monster object" public struct Monster: FlatBufferObject, Verifiable { - static func validateVersion() { FlatBuffersVersion_22_11_23() } + static func validateVersion() { FlatBuffersVersion_22_12_06() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table diff --git a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/MutatingBool_generated.swift b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/MutatingBool_generated.swift index 6b296fd211..7c8b89e400 100644 --- a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/MutatingBool_generated.swift +++ b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/MutatingBool_generated.swift @@ -6,7 +6,7 @@ import FlatBuffers public struct Property: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject { - static func validateVersion() { FlatBuffersVersion_22_11_23() } + static func validateVersion() { FlatBuffersVersion_22_12_06() } private var _property: Bool @@ -49,7 +49,7 @@ extension Property: Encodable { public struct Property_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_22_11_23() } + static func validateVersion() { FlatBuffersVersion_22_12_06() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -74,7 +74,7 @@ public struct Property_Mutable: FlatBufferObject { public struct TestMutatingBool: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_22_11_23() } + static func validateVersion() { FlatBuffersVersion_22_12_06() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table diff --git a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/monster_test_generated.swift b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/monster_test_generated.swift index dad52b1e28..45acd4a637 100644 --- a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/monster_test_generated.swift +++ b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/monster_test_generated.swift @@ -237,7 +237,7 @@ public struct MyGame_Example_AnyAmbiguousAliasesUnion { } public struct MyGame_Example_Test: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject { - static func validateVersion() { FlatBuffersVersion_22_11_23() } + static func validateVersion() { FlatBuffersVersion_22_12_06() } private var _a: Int16 private var _b: Int8 @@ -291,7 +291,7 @@ extension MyGame_Example_Test: Encodable { public struct MyGame_Example_Test_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_22_11_23() } + static func validateVersion() { FlatBuffersVersion_22_12_06() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -318,7 +318,7 @@ public struct MyGame_Example_Test_Mutable: FlatBufferObject { public struct MyGame_Example_Vec3: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject { - static func validateVersion() { FlatBuffersVersion_22_11_23() } + static func validateVersion() { FlatBuffersVersion_22_12_06() } private var _x: Float32 private var _y: Float32 @@ -413,7 +413,7 @@ extension MyGame_Example_Vec3: Encodable { public struct MyGame_Example_Vec3_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_22_11_23() } + static func validateVersion() { FlatBuffersVersion_22_12_06() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -447,7 +447,7 @@ public struct MyGame_Example_Vec3_Mutable: FlatBufferObject { public struct MyGame_Example_Ability: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject { - static func validateVersion() { FlatBuffersVersion_22_11_23() } + static func validateVersion() { FlatBuffersVersion_22_12_06() } private var _id: UInt32 private var _distance: UInt32 @@ -500,7 +500,7 @@ extension MyGame_Example_Ability: Encodable { public struct MyGame_Example_Ability_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_22_11_23() } + static func validateVersion() { FlatBuffersVersion_22_12_06() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -527,7 +527,7 @@ public struct MyGame_Example_Ability_Mutable: FlatBufferObject { public struct MyGame_Example_StructOfStructs: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject { - static func validateVersion() { FlatBuffersVersion_22_11_23() } + static func validateVersion() { FlatBuffersVersion_22_12_06() } private var _a: MyGame_Example_Ability private var _b: MyGame_Example_Test @@ -587,7 +587,7 @@ extension MyGame_Example_StructOfStructs: Encodable { public struct MyGame_Example_StructOfStructs_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_22_11_23() } + static func validateVersion() { FlatBuffersVersion_22_12_06() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -613,7 +613,7 @@ public struct MyGame_Example_StructOfStructs_Mutable: FlatBufferObject { public struct MyGame_Example_StructOfStructsOfStructs: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject { - static func validateVersion() { FlatBuffersVersion_22_11_23() } + static func validateVersion() { FlatBuffersVersion_22_12_06() } private var _a: MyGame_Example_StructOfStructs @@ -655,7 +655,7 @@ extension MyGame_Example_StructOfStructsOfStructs: Encodable { public struct MyGame_Example_StructOfStructsOfStructs_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_22_11_23() } + static func validateVersion() { FlatBuffersVersion_22_12_06() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -679,7 +679,7 @@ public struct MyGame_Example_StructOfStructsOfStructs_Mutable: FlatBufferObject public struct MyGame_InParentNamespace: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_22_11_23() } + static func validateVersion() { FlatBuffersVersion_22_12_06() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -733,7 +733,7 @@ public class MyGame_InParentNamespaceT: NativeObject { } public struct MyGame_Example2_Monster: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_22_11_23() } + static func validateVersion() { FlatBuffersVersion_22_12_06() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -787,7 +787,7 @@ public class MyGame_Example2_MonsterT: NativeObject { } internal struct MyGame_Example_TestSimpleTableWithEnum: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_22_11_23() } + static func validateVersion() { FlatBuffersVersion_22_12_06() } internal var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -870,7 +870,7 @@ internal class MyGame_Example_TestSimpleTableWithEnumT: NativeObject { } public struct MyGame_Example_Stat: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_22_11_23() } + static func validateVersion() { FlatBuffersVersion_22_12_06() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -1011,7 +1011,7 @@ public class MyGame_Example_StatT: NativeObject { } public struct MyGame_Example_Referrable: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_22_11_23() } + static func validateVersion() { FlatBuffersVersion_22_12_06() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -1119,7 +1119,7 @@ public class MyGame_Example_ReferrableT: NativeObject { /// an example documentation comment: "monster object" public struct MyGame_Example_Monster: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_22_11_23() } + static func validateVersion() { FlatBuffersVersion_22_12_06() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -2417,7 +2417,7 @@ public class MyGame_Example_MonsterT: NativeObject { } public struct MyGame_Example_TypeAliases: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_22_11_23() } + static func validateVersion() { FlatBuffersVersion_22_12_06() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table diff --git a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/more_defaults_generated.swift b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/more_defaults_generated.swift index 213d703f0c..166f0c10b7 100644 --- a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/more_defaults_generated.swift +++ b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/more_defaults_generated.swift @@ -29,7 +29,7 @@ extension ABC: Encodable { public struct MoreDefaults: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_22_11_23() } + static func validateVersion() { FlatBuffersVersion_22_12_06() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table diff --git a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/nan_inf_test_generated.swift b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/nan_inf_test_generated.swift index 0643f359ad..6bbbb2b847 100644 --- a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/nan_inf_test_generated.swift +++ b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/nan_inf_test_generated.swift @@ -6,7 +6,7 @@ import FlatBuffers public struct Swift_Tests_NanInfTable: FlatBufferObject, Verifiable { - static func validateVersion() { FlatBuffersVersion_22_11_23() } + static func validateVersion() { FlatBuffersVersion_22_12_06() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table diff --git a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/optional_scalars_generated.swift b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/optional_scalars_generated.swift index 5fa59034ad..4006c1379c 100644 --- a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/optional_scalars_generated.swift +++ b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/optional_scalars_generated.swift @@ -29,7 +29,7 @@ extension optional_scalars_OptionalByte: Encodable { public struct optional_scalars_ScalarStuff: FlatBufferObject, Verifiable { - static func validateVersion() { FlatBuffersVersion_22_11_23() } + static func validateVersion() { FlatBuffersVersion_22_12_06() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table diff --git a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/union_vector_generated.swift b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/union_vector_generated.swift index 8e939bf526..f566c9a439 100644 --- a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/union_vector_generated.swift +++ b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/union_vector_generated.swift @@ -120,7 +120,7 @@ public struct GadgetUnion { } public struct Rapunzel: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject { - static func validateVersion() { FlatBuffersVersion_22_11_23() } + static func validateVersion() { FlatBuffersVersion_22_12_06() } private var _hairLength: Int32 @@ -163,7 +163,7 @@ extension Rapunzel: Encodable { public struct Rapunzel_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_22_11_23() } + static func validateVersion() { FlatBuffersVersion_22_12_06() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -188,7 +188,7 @@ public struct Rapunzel_Mutable: FlatBufferObject { public struct BookReader: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject { - static func validateVersion() { FlatBuffersVersion_22_11_23() } + static func validateVersion() { FlatBuffersVersion_22_12_06() } private var _booksRead: Int32 @@ -231,7 +231,7 @@ extension BookReader: Encodable { public struct BookReader_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_22_11_23() } + static func validateVersion() { FlatBuffersVersion_22_12_06() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -256,7 +256,7 @@ public struct BookReader_Mutable: FlatBufferObject { public struct FallingTub: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject { - static func validateVersion() { FlatBuffersVersion_22_11_23() } + static func validateVersion() { FlatBuffersVersion_22_12_06() } private var _weight: Int32 @@ -299,7 +299,7 @@ extension FallingTub: Encodable { public struct FallingTub_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_22_11_23() } + static func validateVersion() { FlatBuffersVersion_22_12_06() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -324,7 +324,7 @@ public struct FallingTub_Mutable: FlatBufferObject { public struct Attacker: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_22_11_23() } + static func validateVersion() { FlatBuffersVersion_22_12_06() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -407,7 +407,7 @@ public class AttackerT: NativeObject { } public struct HandFan: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_22_11_23() } + static func validateVersion() { FlatBuffersVersion_22_12_06() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -490,7 +490,7 @@ public class HandFanT: NativeObject { } public struct Movie: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_22_11_23() } + static func validateVersion() { FlatBuffersVersion_22_12_06() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table diff --git a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/vector_has_test_generated.swift b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/vector_has_test_generated.swift index c3a5c990d1..4533abf4e0 100644 --- a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/vector_has_test_generated.swift +++ b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/vector_has_test_generated.swift @@ -6,7 +6,7 @@ import FlatBuffers public struct Swift_Tests_Vectors: FlatBufferObject, Verifiable { - static func validateVersion() { FlatBuffersVersion_22_11_23() } + static func validateVersion() { FlatBuffersVersion_22_12_06() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table diff --git a/tests/type_field_collsion/Collision.cs b/tests/type_field_collsion/Collision.cs index 6a6f96efbd..c825901f9e 100644 --- a/tests/type_field_collsion/Collision.cs +++ b/tests/type_field_collsion/Collision.cs @@ -13,7 +13,7 @@ public struct Collision : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_11_23(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_12_06(); } public static Collision GetRootAsCollision(ByteBuffer _bb) { return GetRootAsCollision(_bb, new Collision()); } public static Collision GetRootAsCollision(ByteBuffer _bb, Collision obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/union_vector/Attacker.cs b/tests/union_vector/Attacker.cs index fe0f3345d0..87405152fc 100644 --- a/tests/union_vector/Attacker.cs +++ b/tests/union_vector/Attacker.cs @@ -10,7 +10,7 @@ public struct Attacker : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_11_23(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_12_06(); } public static Attacker GetRootAsAttacker(ByteBuffer _bb) { return GetRootAsAttacker(_bb, new Attacker()); } public static Attacker GetRootAsAttacker(ByteBuffer _bb, Attacker obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/union_vector/Attacker.java b/tests/union_vector/Attacker.java index 8a0e3dfc85..78a4691ee4 100644 --- a/tests/union_vector/Attacker.java +++ b/tests/union_vector/Attacker.java @@ -17,7 +17,7 @@ @SuppressWarnings("unused") public final class Attacker extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_22_11_23(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_22_12_06(); } public static Attacker getRootAsAttacker(ByteBuffer _bb) { return getRootAsAttacker(_bb, new Attacker()); } public static Attacker getRootAsAttacker(ByteBuffer _bb, Attacker obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/tests/union_vector/Attacker.kt b/tests/union_vector/Attacker.kt index df1a1118d4..35ba0d7191 100644 --- a/tests/union_vector/Attacker.kt +++ b/tests/union_vector/Attacker.kt @@ -29,7 +29,7 @@ class Attacker : Table() { } } companion object { - fun validateVersion() = Constants.FLATBUFFERS_22_11_23() + fun validateVersion() = Constants.FLATBUFFERS_22_12_06() fun getRootAsAttacker(_bb: ByteBuffer): Attacker = getRootAsAttacker(_bb, Attacker()) fun getRootAsAttacker(_bb: ByteBuffer, obj: Attacker): Attacker { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/union_vector/HandFan.cs b/tests/union_vector/HandFan.cs index f922282e12..f39c70a1c8 100644 --- a/tests/union_vector/HandFan.cs +++ b/tests/union_vector/HandFan.cs @@ -10,7 +10,7 @@ public struct HandFan : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_11_23(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_12_06(); } public static HandFan GetRootAsHandFan(ByteBuffer _bb) { return GetRootAsHandFan(_bb, new HandFan()); } public static HandFan GetRootAsHandFan(ByteBuffer _bb, HandFan obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/union_vector/HandFan.java b/tests/union_vector/HandFan.java index e536efda5e..74103caed3 100644 --- a/tests/union_vector/HandFan.java +++ b/tests/union_vector/HandFan.java @@ -17,7 +17,7 @@ @SuppressWarnings("unused") public final class HandFan extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_22_11_23(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_22_12_06(); } public static HandFan getRootAsHandFan(ByteBuffer _bb) { return getRootAsHandFan(_bb, new HandFan()); } public static HandFan getRootAsHandFan(ByteBuffer _bb, HandFan obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/tests/union_vector/HandFan.kt b/tests/union_vector/HandFan.kt index ecb3c12930..301fdb4234 100644 --- a/tests/union_vector/HandFan.kt +++ b/tests/union_vector/HandFan.kt @@ -29,7 +29,7 @@ class HandFan : Table() { } } companion object { - fun validateVersion() = Constants.FLATBUFFERS_22_11_23() + fun validateVersion() = Constants.FLATBUFFERS_22_12_06() fun getRootAsHandFan(_bb: ByteBuffer): HandFan = getRootAsHandFan(_bb, HandFan()) fun getRootAsHandFan(_bb: ByteBuffer, obj: HandFan): HandFan { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/union_vector/Movie.cs b/tests/union_vector/Movie.cs index 498064aa9c..ee6b7534e1 100644 --- a/tests/union_vector/Movie.cs +++ b/tests/union_vector/Movie.cs @@ -10,7 +10,7 @@ public struct Movie : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_11_23(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_12_06(); } public static Movie GetRootAsMovie(ByteBuffer _bb) { return GetRootAsMovie(_bb, new Movie()); } public static Movie GetRootAsMovie(ByteBuffer _bb, Movie obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public static bool MovieBufferHasIdentifier(ByteBuffer _bb) { return Table.__has_identifier(_bb, "MOVI"); } diff --git a/tests/union_vector/Movie.java b/tests/union_vector/Movie.java index 5fb77017d7..bf1455c5fe 100644 --- a/tests/union_vector/Movie.java +++ b/tests/union_vector/Movie.java @@ -17,7 +17,7 @@ @SuppressWarnings("unused") public final class Movie extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_22_11_23(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_22_12_06(); } public static Movie getRootAsMovie(ByteBuffer _bb) { return getRootAsMovie(_bb, new Movie()); } public static Movie getRootAsMovie(ByteBuffer _bb, Movie obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public static boolean MovieBufferHasIdentifier(ByteBuffer _bb) { return __has_identifier(_bb, "MOVI"); } diff --git a/tests/union_vector/Movie.kt b/tests/union_vector/Movie.kt index a6ddabf886..cadc846ac7 100644 --- a/tests/union_vector/Movie.kt +++ b/tests/union_vector/Movie.kt @@ -67,7 +67,7 @@ class Movie : Table() { val o = __offset(10); return if (o != 0) __vector_len(o) else 0 } companion object { - fun validateVersion() = Constants.FLATBUFFERS_22_11_23() + fun validateVersion() = Constants.FLATBUFFERS_22_12_06() fun getRootAsMovie(_bb: ByteBuffer): Movie = getRootAsMovie(_bb, Movie()) fun getRootAsMovie(_bb: ByteBuffer, obj: Movie): Movie { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/union_vector/union_vector_generated.h b/tests/union_vector/union_vector_generated.h index c9c20badd2..8aa3cc2d98 100644 --- a/tests/union_vector/union_vector_generated.h +++ b/tests/union_vector/union_vector_generated.h @@ -9,8 +9,8 @@ // Ensure the included flatbuffers.h is the same version as when this file was // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 22 && - FLATBUFFERS_VERSION_MINOR == 11 && - FLATBUFFERS_VERSION_REVISION == 23, + FLATBUFFERS_VERSION_MINOR == 12 && + FLATBUFFERS_VERSION_REVISION == 6, "Non-compatible flatbuffers version included"); struct Attacker; From 3be296ec8aaa4feabbe405d12e7571371dab3f66 Mon Sep 17 00:00:00 2001 From: Max Burke Date: Thu, 8 Dec 2022 15:20:14 -0800 Subject: [PATCH 054/571] [Rust] Restore public visibility of previously-public fields (#7700) * Restore public visibility of previously-public fields * code review feedback --- rust/flatbuffers/src/table.rs | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/rust/flatbuffers/src/table.rs b/rust/flatbuffers/src/table.rs index f5001f6d1c..d3c296bb31 100644 --- a/rust/flatbuffers/src/table.rs +++ b/rust/flatbuffers/src/table.rs @@ -25,6 +25,16 @@ pub struct Table<'a> { } impl<'a> Table<'a> { + #[inline] + pub fn buf(&self) -> &'a [u8] { + self.buf + } + + #[inline] + pub fn loc(&self) -> usize { + self.loc + } + /// # Safety /// /// `buf` must contain a `soffset_t` at `loc`, which points to a valid vtable From 97ee2108260ef816d66486f68800550276a56ffc Mon Sep 17 00:00:00 2001 From: Maxim Zaks Date: Tue, 13 Dec 2022 06:20:26 +0100 Subject: [PATCH 055/571] Fix a bug where a floating point number was cast to int and the value was stored incorrectly because of low byte width. (#7703) Reported in https://github.com/google/flatbuffers/issues/7690 --- dart/lib/src/types.dart | 2 +- dart/test/flex_builder_test.dart | 4 ++++ dart/test/flex_reader_test.dart | 1 + 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/dart/lib/src/types.dart b/dart/lib/src/types.dart index f9eefd8bc0..b4d006072d 100644 --- a/dart/lib/src/types.dart +++ b/dart/lib/src/types.dart @@ -9,7 +9,7 @@ class BitWidthUtil { } static BitWidth width(num value) { - if (value.toInt() == value) { + if (value is int) { var v = value.toInt().abs(); if (v >> 7 == 0) return BitWidth.width8; if (v >> 15 == 0) return BitWidth.width16; diff --git a/dart/test/flex_builder_test.dart b/dart/test/flex_builder_test.dart index 66e66384b5..0c4a18e61d 100644 --- a/dart/test/flex_builder_test.dart +++ b/dart/test/flex_builder_test.dart @@ -40,6 +40,10 @@ void main() { flx.addInt(-1025); expect(flx.finish(), [255, 251, 5, 2]); } + { + var builder = Builder()..addDouble(1.0); + expect(builder.finish(), [0, 0, 128, 63, 14, 4]); + } { var flx = Builder(); flx.addDouble(0.1); diff --git a/dart/test/flex_reader_test.dart b/dart/test/flex_reader_test.dart index 875b1c1614..6e0855fc2b 100644 --- a/dart/test/flex_reader_test.dart +++ b/dart/test/flex_reader_test.dart @@ -37,6 +37,7 @@ void main() { // expect(FlxValue.fromBuffer(b([255, 255, 255, 255, 255, 255, 255, 255, 11, 8])).intValue, 18446744073709551615); }); test('double value', () { + expect(Reference.fromBuffer(b([0, 0, 128, 63, 14, 4])).doubleValue, 1.0); expect(Reference.fromBuffer(b([0, 0, 144, 64, 14, 4])).doubleValue, 4.5); expect(Reference.fromBuffer(b([205, 204, 204, 61, 14, 4])).doubleValue, closeTo(.1, .001)); From c0797b22ae2448bcad082d7af676b2465b60d9cd Mon Sep 17 00:00:00 2001 From: Saman <100295082+enum-class@users.noreply.github.com> Date: Tue, 13 Dec 2022 13:22:24 +0800 Subject: [PATCH 056/571] fix clang format plus implicit cast error. (#7704) --- include/flatbuffers/flexbuffers.h | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/include/flatbuffers/flexbuffers.h b/include/flatbuffers/flexbuffers.h index 3ab7b5ab61..dd35b87dc9 100644 --- a/include/flatbuffers/flexbuffers.h +++ b/include/flatbuffers/flexbuffers.h @@ -385,9 +385,8 @@ class Reference { Reference(const uint8_t *data, uint8_t parent_width, uint8_t packed_type) : data_(data), parent_width_(parent_width), - byte_width_(1 << (packed_type & 3)), - type_(static_cast(packed_type >> 2)) { - } + byte_width_(static_cast(1 << (packed_type & 3))), + type_(static_cast(packed_type >> 2)) {} Type GetType() const { return type_; } From e1a2f688e0d12385fd977cb45d58453d88d7c0e2 Mon Sep 17 00:00:00 2001 From: Michael Le Date: Tue, 13 Dec 2022 02:06:48 -0500 Subject: [PATCH 057/571] [Go] Fix bug where `bytes` wasn't being imported when using --gen-onefile flag (#7706) * Fix bug one file import bug * Create reset import function and add braces --- src/idl_gen_go.cpp | 22 ++++++++++++++-------- tests/MyGame/Example/Monster.go | 2 +- 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/src/idl_gen_go.cpp b/src/idl_gen_go.cpp index 650450fb6f..0a04f19c49 100644 --- a/src/idl_gen_go.cpp +++ b/src/idl_gen_go.cpp @@ -103,10 +103,10 @@ class GoGenerator : public BaseGenerator { bool needs_imports = false; for (auto it = parser_.enums_.vec.begin(); it != parser_.enums_.vec.end(); ++it) { - tracked_imported_namespaces_.clear(); - needs_math_import_ = false; - needs_bytes_import_ = false; - needs_imports = false; + if (!parser_.opts.one_file) { + needs_imports = false; + ResetImports(); + } std::string enumcode; GenEnum(**it, &enumcode); if ((*it)->is_union && parser_.opts.generate_object_based_api) { @@ -124,9 +124,7 @@ class GoGenerator : public BaseGenerator { for (auto it = parser_.structs_.vec.begin(); it != parser_.structs_.vec.end(); ++it) { - tracked_imported_namespaces_.clear(); - needs_math_import_ = false; - needs_bytes_import_ = false; + if (!parser_.opts.one_file) { ResetImports(); } std::string declcode; GenStruct(**it, &declcode); if (parser_.opts.one_file) { @@ -915,6 +913,7 @@ class GoGenerator : public BaseGenerator { code += "buf []byte) bool {\n"; code += "\tspan := flatbuffers.GetUOffsetT(buf[vectorLocation - 4:])\n"; code += "\tstart := flatbuffers.UOffsetT(0)\n"; + if (IsString(field.value.type)) { code += "\tbKey := []byte(key)\n"; } code += "\tfor span != 0 {\n"; code += "\t\tmiddle := span / 2\n"; code += "\t\ttableOffset := flatbuffers.GetIndirectOffset(buf, "; @@ -924,7 +923,6 @@ class GoGenerator : public BaseGenerator { code += "\t\tobj.Init(buf, tableOffset)\n"; if (IsString(field.value.type)) { - code += "\t\tbKey := []byte(key)\n"; needs_bytes_import_ = true; code += "\t\tcomp := bytes.Compare(obj." + namer_.Function(field.name) + "()"; @@ -1462,6 +1460,7 @@ class GoGenerator : public BaseGenerator { StructBuilderBody(struct_def, "", code_ptr); EndBuilderBody(code_ptr); } + // Begin by declaring namespace and imports. void BeginFile(const std::string &name_space_name, const bool needs_imports, const bool is_enum, std::string *code_ptr) { @@ -1503,6 +1502,13 @@ class GoGenerator : public BaseGenerator { } } + // Resets the needed imports before generating a new file. + void ResetImports() { + tracked_imported_namespaces_.clear(); + needs_bytes_import_ = false; + needs_math_import_ = false; + } + // Save out the generated code for a Go Table type. bool SaveType(const Definition &def, const std::string &classcode, const bool needs_imports, const bool is_enum) { diff --git a/tests/MyGame/Example/Monster.go b/tests/MyGame/Example/Monster.go index 6f8fae39b4..0717aa6760 100644 --- a/tests/MyGame/Example/Monster.go +++ b/tests/MyGame/Example/Monster.go @@ -579,12 +579,12 @@ func MonsterKeyCompare(o1, o2 flatbuffers.UOffsetT, buf []byte) bool { func (rcv *Monster) LookupByKey(key string, vectorLocation flatbuffers.UOffsetT, buf []byte) bool { span := flatbuffers.GetUOffsetT(buf[vectorLocation - 4:]) start := flatbuffers.UOffsetT(0) + bKey := []byte(key) for span != 0 { middle := span / 2 tableOffset := flatbuffers.GetIndirectOffset(buf, vectorLocation+ 4 * (start + middle)) obj := &Monster{} obj.Init(buf, tableOffset) - bKey := []byte(key) comp := bytes.Compare(obj.Name(), bKey) if comp > 0 { span = middle From 40aa964057746c0e8f913228de95973a46ee3c0e Mon Sep 17 00:00:00 2001 From: Jared Junyoung Lim Date: Wed, 14 Dec 2022 14:42:56 -0800 Subject: [PATCH 058/571] Add Ref.AsStringBytes to flatbuffers.flexbuffers Python API (#7713) * Add Ref.AsStringBytes to flatbuffers.flexbuffers Python API * Append Bytes to AsStringBytes return value Co-authored-by: Jared Junyoung Lim --- python/flatbuffers/flexbuffers.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/python/flatbuffers/flexbuffers.py b/python/flatbuffers/flexbuffers.py index da10668a45..aaa02fdaf3 100644 --- a/python/flatbuffers/flexbuffers.py +++ b/python/flatbuffers/flexbuffers.py @@ -727,6 +727,15 @@ def AsKey(self): def IsString(self): return self._type is Type.STRING + @property + def AsStringBytes(self): + if self.IsString: + return String(self._Indirect(), self._byte_width).Bytes + elif self.IsKey: + return self.AsKeyBytes + else: + raise self._ConvertError(Type.STRING) + @property def AsString(self): if self.IsString: From 52d1b7794151ecba4f54502bb6fb71f338becef1 Mon Sep 17 00:00:00 2001 From: Wen Sun <30698014+sunwen18@users.noreply.github.com> Date: Wed, 14 Dec 2022 14:56:31 -0800 Subject: [PATCH 059/571] Add CI job to build linux and run unit test on s390x (#7707) * create job to build linux and run unit test on s390x * update * update * update * update * update * print out machine type * create regression test to build a big endian arch and run unit tests daily * rename and schedule run on pr merged and on request * udpate Co-authored-by: Wen Sun Co-authored-by: Derek Bailey --- .github/workflows/extrabuild.yml | 35 ++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 .github/workflows/extrabuild.yml diff --git a/.github/workflows/extrabuild.yml b/.github/workflows/extrabuild.yml new file mode 100644 index 0000000000..5246435ae7 --- /dev/null +++ b/.github/workflows/extrabuild.yml @@ -0,0 +1,35 @@ +name: Build and unit tests that are more time consuming +permissions: read-all + +on: + # For manual tests. + workflow_dispatch: + pull_request: + types: + - closed + schedule: + - cron: "30 20 * * *" + +jobs: + build-linux-s390x: + name: Build Linux on s390x arch and run unit tests + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - uses: uraimo/run-on-arch-action@v2 + name: Run commands + id: runcmd + with: + arch: s390x + distro: ubuntu_latest + install: | + apt-get update -q -y + apt-get -y install cmake + apt-get -y install make + apt-get -y install g++ + run: | + lscpu | grep Endian + cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release + make -j + ./flattests + From 9927747d4ea26ee873d5fa57d01408f6b6f1221b Mon Sep 17 00:00:00 2001 From: mogemimi Date: Thu, 15 Dec 2022 14:35:54 +0900 Subject: [PATCH 060/571] [C++] Fix clang `-Wnewline-eof` warning (#7711) * Fix clang -Wnewline-eof warning * Enable -Wnewline-eof warning Co-authored-by: Derek Bailey --- CMakeLists.txt | 1 + include/flatbuffers/allocator.h | 2 +- include/flatbuffers/buffer_ref.h | 2 +- include/flatbuffers/default_allocator.h | 2 +- include/flatbuffers/string.h | 2 +- include/flatbuffers/struct.h | 2 +- src/bfbs_gen_lua.cpp | 2 +- src/bfbs_gen_lua.h | 2 +- src/bfbs_namer.h | 2 +- src/binary_annotator.h | 2 +- tests/flexbuffers_test.h | 2 +- tests/json_test.cpp | 2 +- tests/json_test.h | 2 +- tests/monster_test.h | 2 +- tests/optional_scalars_test.cpp | 2 +- tests/parser_test.h | 2 +- tests/proto_test.h | 2 +- 17 files changed, 17 insertions(+), 16 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index d3495b849c..525075a318 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -426,6 +426,7 @@ else() # This isn't working for some reason: $<$: $<$: + -Wnewline-eof -Wno-unknown-warning-option -Wmissing-declarations -Wzero-as-null-pointer-constant diff --git a/include/flatbuffers/allocator.h b/include/flatbuffers/allocator.h index f4ef22db45..30427190b6 100644 --- a/include/flatbuffers/allocator.h +++ b/include/flatbuffers/allocator.h @@ -65,4 +65,4 @@ class Allocator { } // namespace flatbuffers -#endif // FLATBUFFERS_ALLOCATOR_H_ \ No newline at end of file +#endif // FLATBUFFERS_ALLOCATOR_H_ diff --git a/include/flatbuffers/buffer_ref.h b/include/flatbuffers/buffer_ref.h index ce30207330..f70941fc64 100644 --- a/include/flatbuffers/buffer_ref.h +++ b/include/flatbuffers/buffer_ref.h @@ -50,4 +50,4 @@ template struct BufferRef : BufferRefBase { } // namespace flatbuffers -#endif // FLATBUFFERS_BUFFER_REF_H_ \ No newline at end of file +#endif // FLATBUFFERS_BUFFER_REF_H_ diff --git a/include/flatbuffers/default_allocator.h b/include/flatbuffers/default_allocator.h index 8b173af11b..d4724122cb 100644 --- a/include/flatbuffers/default_allocator.h +++ b/include/flatbuffers/default_allocator.h @@ -61,4 +61,4 @@ inline uint8_t *ReallocateDownward(Allocator *allocator, uint8_t *old_p, } // namespace flatbuffers -#endif // FLATBUFFERS_DEFAULT_ALLOCATOR_H_ \ No newline at end of file +#endif // FLATBUFFERS_DEFAULT_ALLOCATOR_H_ diff --git a/include/flatbuffers/string.h b/include/flatbuffers/string.h index 3db95fce1b..97e399fd64 100644 --- a/include/flatbuffers/string.h +++ b/include/flatbuffers/string.h @@ -61,4 +61,4 @@ static inline flatbuffers::string_view GetStringView(const String *str) { } // namespace flatbuffers -#endif // FLATBUFFERS_STRING_H_ \ No newline at end of file +#endif // FLATBUFFERS_STRING_H_ diff --git a/include/flatbuffers/struct.h b/include/flatbuffers/struct.h index d8753c84f0..abacc8a9a6 100644 --- a/include/flatbuffers/struct.h +++ b/include/flatbuffers/struct.h @@ -50,4 +50,4 @@ class Struct FLATBUFFERS_FINAL_CLASS { } // namespace flatbuffers -#endif // FLATBUFFERS_STRUCT_H_ \ No newline at end of file +#endif // FLATBUFFERS_STRUCT_H_ diff --git a/src/bfbs_gen_lua.cpp b/src/bfbs_gen_lua.cpp index 1d829c7587..2c140bb15c 100644 --- a/src/bfbs_gen_lua.cpp +++ b/src/bfbs_gen_lua.cpp @@ -630,4 +630,4 @@ std::unique_ptr NewLuaBfbsGenerator( return std::unique_ptr(new LuaBfbsGenerator(flatc_version)); } -} // namespace flatbuffers \ No newline at end of file +} // namespace flatbuffers diff --git a/src/bfbs_gen_lua.h b/src/bfbs_gen_lua.h index 6861282fdd..9aa3801154 100644 --- a/src/bfbs_gen_lua.h +++ b/src/bfbs_gen_lua.h @@ -30,4 +30,4 @@ std::unique_ptr NewLuaBfbsGenerator( } // namespace flatbuffers -#endif // FLATBUFFERS_BFBS_GEN_LUA_H_ \ No newline at end of file +#endif // FLATBUFFERS_BFBS_GEN_LUA_H_ diff --git a/src/bfbs_namer.h b/src/bfbs_namer.h index ef6c6c5d86..d197574cf7 100644 --- a/src/bfbs_namer.h +++ b/src/bfbs_namer.h @@ -48,4 +48,4 @@ class BfbsNamer : public Namer { } // namespace flatbuffers -#endif // FLATBUFFERS_BFBS_NAMER \ No newline at end of file +#endif // FLATBUFFERS_BFBS_NAMER diff --git a/src/binary_annotator.h b/src/binary_annotator.h index f89d0a9aee..7cf820e0f3 100644 --- a/src/binary_annotator.h +++ b/src/binary_annotator.h @@ -389,4 +389,4 @@ class BinaryAnnotator { } // namespace flatbuffers -#endif // FLATBUFFERS_BINARY_ANNOTATOR_H_ \ No newline at end of file +#endif // FLATBUFFERS_BINARY_ANNOTATOR_H_ diff --git a/tests/flexbuffers_test.h b/tests/flexbuffers_test.h index 02a10b62ef..132098fb37 100644 --- a/tests/flexbuffers_test.h +++ b/tests/flexbuffers_test.h @@ -13,4 +13,4 @@ void ParseFlexbuffersFromJsonWithNullTest(); } // namespace tests } // namespace flatbuffers -#endif // TESTS_FLEXBUFFERS_TEST_H \ No newline at end of file +#endif // TESTS_FLEXBUFFERS_TEST_H diff --git a/tests/json_test.cpp b/tests/json_test.cpp index 6d4064ffc7..2224b1a172 100644 --- a/tests/json_test.cpp +++ b/tests/json_test.cpp @@ -171,4 +171,4 @@ void JsonUnsortedArrayTest() { } } // namespace tests -} // namespace flatbuffers \ No newline at end of file +} // namespace flatbuffers diff --git a/tests/json_test.h b/tests/json_test.h index fe6efd45e3..a2aa6fba5f 100644 --- a/tests/json_test.h +++ b/tests/json_test.h @@ -15,4 +15,4 @@ void JsonUnsortedArrayTest(); } // namespace tests } // namespace flatbuffers -#endif \ No newline at end of file +#endif diff --git a/tests/monster_test.h b/tests/monster_test.h index 5ab968bb5b..9a2110a8bf 100644 --- a/tests/monster_test.h +++ b/tests/monster_test.h @@ -35,4 +35,4 @@ void UnPackTo(const uint8_t *flatbuf); } // namespace tests } // namespace flatbuffers -#endif \ No newline at end of file +#endif diff --git a/tests/optional_scalars_test.cpp b/tests/optional_scalars_test.cpp index 7d4a87d3db..5dada02910 100644 --- a/tests/optional_scalars_test.cpp +++ b/tests/optional_scalars_test.cpp @@ -98,4 +98,4 @@ void OptionalScalarsTest() { } } -} \ No newline at end of file +} diff --git a/tests/parser_test.h b/tests/parser_test.h index ce6b5e235c..d790849129 100644 --- a/tests/parser_test.h +++ b/tests/parser_test.h @@ -30,4 +30,4 @@ void FieldIdentifierTest(); } // namespace tests } // namespace flatbuffers -#endif // TESTS_PARSER_TEST_H \ No newline at end of file +#endif // TESTS_PARSER_TEST_H diff --git a/tests/proto_test.h b/tests/proto_test.h index 9f6137d887..f8c3a727b6 100644 --- a/tests/proto_test.h +++ b/tests/proto_test.h @@ -15,4 +15,4 @@ void ParseProtoBufAsciiTest(); } // namespace tests } // namespace flatbuffers -#endif \ No newline at end of file +#endif From 9ed76559dfd266e79e2770c69d5236a211a52bee Mon Sep 17 00:00:00 2001 From: Saman <100295082+enum-class@users.noreply.github.com> Date: Thu, 15 Dec 2022 13:58:55 +0800 Subject: [PATCH 061/571] Add clang-tidy, fix some bugpron problems. (#7708) * Add clang-tidy, fix some bugpron problems. * Fix more issues * Fix some more issues :)) * Minimal pr to just add clang-tidy Co-authored-by: Derek Bailey --- .clang-tidy | 347 ++++++++++++++++++++++++++++++++++++++ scripts/clang-tidy-git.sh | 1 + 2 files changed, 348 insertions(+) create mode 100644 .clang-tidy create mode 100755 scripts/clang-tidy-git.sh diff --git a/.clang-tidy b/.clang-tidy new file mode 100644 index 0000000000..7e9c1b7c7d --- /dev/null +++ b/.clang-tidy @@ -0,0 +1,347 @@ +--- +FormatStyle: "file" +WarningsAsErrors: "*" +HeaderFilterRegex: ".*" +Checks: "google-build-explicit-make-pair, + google-build-namespaces, + google-build-using-namespace, + google-default-arguments, + google-explicit-constructor, + google-global-names-in-headers, + google-objc-avoid-nsobject-new, + google-objc-avoid-throwing-exception, + google-objc-function-naming, + google-objc-global-variable-declaration, + google-readability-avoid-underscore-in-googletest-name, + google-readability-braces-around-statements, + google-readability-casting, + google-readability-function-size, + google-readability-namespace-comments, + google-runtime-int, + google-runtime-operator, + google-upgrade-googletest-case, + clang-analyzer-apiModeling.StdCLibraryFunctions, + clang-analyzer-apiModeling.TrustNonnull, + clang-analyzer-apiModeling.google.GTest, + clang-analyzer-apiModeling.llvm.CastValue, + clang-analyzer-apiModeling.llvm.ReturnValue, + clang-analyzer-core.CallAndMessage, + clang-analyzer-core.CallAndMessageModeling, + clang-analyzer-core.DivideZero, + clang-analyzer-core.DynamicTypePropagation, + clang-analyzer-core.NonNullParamChecker, + clang-analyzer-core.NonnilStringConstants, + clang-analyzer-core.NullDereference, + clang-analyzer-core.StackAddrEscapeBase, + clang-analyzer-core.StackAddressEscape, + clang-analyzer-core.UndefinedBinaryOperatorResult, + clang-analyzer-core.VLASize, + clang-analyzer-core.builtin.BuiltinFunctions, + clang-analyzer-core.builtin.NoReturnFunctions, + clang-analyzer-core.uninitialized.ArraySubscript, + clang-analyzer-core.uninitialized.Assign, + clang-analyzer-core.uninitialized.Branch, + clang-analyzer-core.uninitialized.CapturedBlockVariable, + clang-analyzer-core.uninitialized.UndefReturn, + clang-analyzer-cplusplus.InnerPointer, + clang-analyzer-cplusplus.Move, + clang-analyzer-cplusplus.NewDelete, + clang-analyzer-cplusplus.NewDeleteLeaks, + clang-analyzer-cplusplus.PlacementNew, + clang-analyzer-cplusplus.PureVirtualCall, + clang-analyzer-cplusplus.SelfAssignment, + clang-analyzer-cplusplus.SmartPtrModeling, + clang-analyzer-cplusplus.StringChecker, + clang-analyzer-cplusplus.VirtualCallModeling, + clang-analyzer-deadcode.DeadStores, + clang-analyzer-fuchsia.HandleChecker, + clang-analyzer-nullability.NullPassedToNonnull, + clang-analyzer-nullability.NullReturnedFromNonnull, + clang-analyzer-nullability.NullabilityBase, + clang-analyzer-nullability.NullableDereferenced, + clang-analyzer-nullability.NullablePassedToNonnull, + clang-analyzer-nullability.NullableReturnedFromNonnull, + clang-analyzer-optin.cplusplus.UninitializedObject, + clang-analyzer-optin.cplusplus.VirtualCall, + clang-analyzer-optin.mpi.MPI-Checker, + clang-analyzer-optin.osx.OSObjectCStyleCast, + clang-analyzer-optin.osx.cocoa.localizability.EmptyLocalizationContextChecker, + clang-analyzer-optin.osx.cocoa.localizability.NonLocalizedStringChecker, + clang-analyzer-optin.performance.GCDAntipattern, + clang-analyzer-optin.performance.Padding, + clang-analyzer-optin.portability.UnixAPI, + clang-analyzer-osx.API, + clang-analyzer-osx.MIG, + clang-analyzer-osx.NSOrCFErrorDerefChecker, + clang-analyzer-osx.NumberObjectConversion, + clang-analyzer-osx.OSObjectRetainCount, + clang-analyzer-osx.ObjCProperty, + clang-analyzer-osx.SecKeychainAPI, + clang-analyzer-osx.cocoa.AtSync, + clang-analyzer-osx.cocoa.AutoreleaseWrite, + clang-analyzer-osx.cocoa.ClassRelease, + clang-analyzer-osx.cocoa.Dealloc, + clang-analyzer-osx.cocoa.IncompatibleMethodTypes, + clang-analyzer-osx.cocoa.Loops, + clang-analyzer-osx.cocoa.MissingSuperCall, + clang-analyzer-osx.cocoa.NSAutoreleasePool, + clang-analyzer-osx.cocoa.NSError, + clang-analyzer-osx.cocoa.NilArg, + clang-analyzer-osx.cocoa.NonNilReturnValue, + clang-analyzer-osx.cocoa.ObjCGenerics, + clang-analyzer-osx.cocoa.RetainCount, + clang-analyzer-osx.cocoa.RetainCountBase, + clang-analyzer-osx.cocoa.RunLoopAutoreleaseLeak, + clang-analyzer-osx.cocoa.SelfInit, + clang-analyzer-osx.cocoa.SuperDealloc, + clang-analyzer-osx.cocoa.UnusedIvars, + clang-analyzer-osx.cocoa.VariadicMethodTypes, + clang-analyzer-osx.coreFoundation.CFError, + clang-analyzer-osx.coreFoundation.CFNumber, + clang-analyzer-osx.coreFoundation.CFRetainRelease, + clang-analyzer-osx.coreFoundation.containers.OutOfBounds, + clang-analyzer-osx.coreFoundation.containers.PointerSizedValues, + clang-analyzer-security.FloatLoopCounter, + clang-analyzer-security.insecureAPI.DeprecatedOrUnsafeBufferHandling, + clang-analyzer-security.insecureAPI.SecuritySyntaxChecker, + clang-analyzer-security.insecureAPI.UncheckedReturn, + clang-analyzer-security.insecureAPI.bcmp, + clang-analyzer-security.insecureAPI.bcopy, + clang-analyzer-security.insecureAPI.bzero, + clang-analyzer-security.insecureAPI.decodeValueOfObjCType, + clang-analyzer-security.insecureAPI.getpw, + clang-analyzer-security.insecureAPI.gets, + clang-analyzer-security.insecureAPI.mkstemp, + clang-analyzer-security.insecureAPI.mktemp, + clang-analyzer-security.insecureAPI.rand, + clang-analyzer-security.insecureAPI.strcpy, + clang-analyzer-security.insecureAPI.vfork, + clang-analyzer-unix.API, + clang-analyzer-unix.DynamicMemoryModeling, + clang-analyzer-unix.Malloc, + clang-analyzer-unix.MallocSizeof, + clang-analyzer-unix.MismatchedDeallocator, + clang-analyzer-unix.Vfork, + clang-analyzer-unix.cstring.BadSizeArg, + clang-analyzer-unix.cstring.CStringModeling, + clang-analyzer-unix.cstring.NullArg, + clang-analyzer-valist.CopyToSelf, + clang-analyzer-valist.Uninitialized, + clang-analyzer-valist.Unterminated, + clang-analyzer-valist.ValistBase, + clang-analyzer-webkit.NoUncountedMemberChecker, + clang-analyzer-webkit.RefCntblBaseVirtualDtor, + clang-analyzer-webkit.UncountedLambdaCapturesChecker, + +################################################ Optional checks ################################################ + + #google-readability-todo, + #bugprone-argument-comment, + #bugprone-assert-side-effect, + #bugprone-bad-signal-to-kill-thread, + #bugprone-bool-pointer-implicit-conversion, + #bugprone-branch-clone, + #bugprone-copy-constructor-init, + #bugprone-dangling-handle, + #bugprone-dynamic-static-initializers, + #bugprone-easily-swappable-parameters, + #bugprone-exception-escape, + #bugprone-fold-init-type, + #bugprone-forward-declaration-namespace, + #bugprone-forwarding-reference-overload, + #bugprone-implicit-widening-of-multiplication-result, + #bugprone-inaccurate-erase, + #bugprone-incorrect-roundings, + #bugprone-infinite-loop, + #bugprone-integer-division, + #bugprone-lambda-function-name, + #bugprone-macro-parentheses, + #bugprone-macro-repeated-side-effects, + #bugprone-misplaced-operator-in-strlen-in-alloc, + #bugprone-misplaced-pointer-arithmetic-in-alloc, + #bugprone-misplaced-widening-cast, + #bugprone-move-forwarding-reference, + #bugprone-multiple-statement-macro, + #bugprone-narrowing-conversions, + #bugprone-no-escape, + #bugprone-not-null-terminated-result, + #bugprone-parent-virtual-call, + #bugprone-posix-return, + #bugprone-redundant-branch-condition, + #bugprone-reserved-identifier, + #bugprone-signal-handler, + #bugprone-signed-char-misuse, + #bugprone-sizeof-container, + #bugprone-sizeof-expression, + #bugprone-spuriously-wake-up-functions, + #bugprone-string-constructor, + #bugprone-string-integer-assignment, + #bugprone-string-literal-with-embedded-nul, + #bugprone-stringview-nullptr, + #bugprone-suspicious-enum-usage, + #bugprone-suspicious-include, + #bugprone-suspicious-memory-comparison, + #bugprone-suspicious-memset-usage, + #bugprone-suspicious-missing-comma, + #bugprone-suspicious-semicolon, + #bugprone-suspicious-string-compare, + #bugprone-swapped-arguments, + #bugprone-terminating-continue, + #bugprone-throw-keyword-missing, + #bugprone-too-small-loop-variable, + #bugprone-undefined-memory-manipulation, + #bugprone-undelegated-constructor, + #bugprone-unhandled-exception-at-new, + #bugprone-unhandled-self-assignment, + #bugprone-unused-raii, + #bugprone-unused-return-value, + #bugprone-use-after-move, + #bugprone-virtual-near-miss, + #cppcoreguidelines-avoid-c-arrays, + #cppcoreguidelines-avoid-goto, + #cppcoreguidelines-avoid-magic-numbers, + #cppcoreguidelines-avoid-non-const-global-variables, + #cppcoreguidelines-c-copy-assignment-signature, + #cppcoreguidelines-explicit-virtual-functions, + #cppcoreguidelines-init-variables, + #cppcoreguidelines-interfaces-global-init, + #cppcoreguidelines-macro-usage, + #cppcoreguidelines-narrowing-conversions, + #cppcoreguidelines-no-malloc, + #cppcoreguidelines-non-private-member-variables-in-classes, + #cppcoreguidelines-owning-memory, + #cppcoreguidelines-prefer-member-initializer, + #cppcoreguidelines-pro-bounds-array-to-pointer-decay, + #cppcoreguidelines-pro-bounds-constant-array-index, + #cppcoreguidelines-pro-bounds-pointer-arithmetic, + #cppcoreguidelines-pro-type-const-cast, + #cppcoreguidelines-pro-type-cstyle-cast, + #cppcoreguidelines-pro-type-member-init, + #cppcoreguidelines-pro-type-reinterpret-cast, + #cppcoreguidelines-pro-type-static-cast-downcast, + #cppcoreguidelines-pro-type-union-access, + #cppcoreguidelines-pro-type-vararg, + #cppcoreguidelines-slicing, + #cppcoreguidelines-special-member-functions, + #cppcoreguidelines-virtual-class-destructor, + #hicpp-avoid-c-arrays, + #hicpp-avoid-goto, + #hicpp-braces-around-statements, + #hicpp-deprecated-headers, + #hicpp-exception-baseclass, + #hicpp-explicit-conversions, + #hicpp-function-size, + #hicpp-invalid-access-moved, + #hicpp-member-init, + #hicpp-move-const-arg, + #hicpp-multiway-paths-covered, + #hicpp-named-parameter, + #hicpp-new-delete-operators, + #hicpp-no-array-decay, + #hicpp-no-assembler, + #hicpp-no-malloc, + #hicpp-noexcept-move, + #hicpp-signed-bitwise, + #hicpp-special-member-functions, + #hicpp-static-assert, + #hicpp-undelegated-constructor, + #hicpp-uppercase-literal-suffix, + #hicpp-use-auto, + #hicpp-use-emplace, + #hicpp-use-equals-default, + #hicpp-use-equals-delete, + #hicpp-use-noexcept, + #hicpp-use-nullptr, + #hicpp-use-override, + #hicpp-vararg, + #modernize-avoid-bind, + #modernize-avoid-c-arrays, + #modernize-concat-nested-namespaces, + #modernize-deprecated-headers, + #modernize-deprecated-ios-base-aliases, + #modernize-loop-convert, + #modernize-make-shared, + #modernize-make-unique, + #modernize-pass-by-value, + #modernize-raw-string-literal, + #modernize-redundant-void-arg, + #modernize-replace-auto-ptr, + #modernize-replace-disallow-copy-and-assign-macro, + #modernize-replace-random-shuffle, + #modernize-return-braced-init-list, + #modernize-shrink-to-fit, + #modernize-unary-static-assert, + #modernize-use-auto, + #modernize-use-bool-literals, + #modernize-use-default-member-init, + #modernize-use-emplace, + #modernize-use-equals-default, + #modernize-use-equals-delete, + #modernize-use-nodiscard, + #modernize-use-noexcept, + #modernize-use-nullptr, + #modernize-use-override, + #modernize-use-trailing-return-type, + #modernize-use-transparent-functors, + #modernize-use-uncaught-exceptions, + #modernize-use-using, + #performance-faster-string-find, + #performance-for-range-copy, + #performance-implicit-conversion-in-loop, + #performance-inefficient-algorithm, + #performance-inefficient-string-concatenation, + #performance-inefficient-vector-operation, + #performance-move-const-arg, + #performance-move-constructor-init, + #performance-no-automatic-move, + #performance-no-int-to-ptr, + #performance-noexcept-move-constructor, + #performance-trivially-destructible, + #performance-type-promotion-in-math-fn, + #performance-unnecessary-copy-initialization, + #performance-unnecessary-value-param, + #portability-restrict-system-includes, + #portability-simd-intrinsics, + #readability-avoid-const-params-in-decls, + #readability-braces-around-statements, + #readability-const-return-type, + #readability-container-contains, + #readability-container-data-pointer, + #readability-container-size-empty, + #readability-convert-member-functions-to-static, + #readability-delete-null-pointer, + #readability-duplicate-include, + #readability-else-after-return, + #readability-function-cognitive-complexity, + #readability-function-size, + #readability-identifier-length, + #readability-identifier-naming, + #readability-implicit-bool-conversion, + #readability-inconsistent-declaration-parameter-name, + #readability-isolate-declaration, + #readability-magic-numbers, + #readability-make-member-function-const, + #readability-misleading-indentation, + #readability-misplaced-array-index, + #readability-named-parameter, + #readability-non-const-parameter, + #readability-qualified-auto, + #readability-redundant-access-specifiers, + #readability-redundant-control-flow, + #readability-redundant-declaration, + #readability-redundant-function-ptr-dereference, + #readability-redundant-member-init, + #readability-redundant-preprocessor, + #readability-redundant-smartptr-get, + #readability-redundant-string-cstr, + #readability-redundant-string-init, + #readability-simplify-boolean-expr, + #readability-simplify-subscript-expr, + #readability-static-accessed-through-instance, + #readability-static-definition-in-anonymous-namespace, + #readability-string-compare, + #readability-suspicious-call-argument, + #readability-uniqueptr-delete-release, + #readability-uppercase-literal-suffix, + #readability-use-anyofallof + " diff --git a/scripts/clang-tidy-git.sh b/scripts/clang-tidy-git.sh new file mode 100755 index 0000000000..65b5466058 --- /dev/null +++ b/scripts/clang-tidy-git.sh @@ -0,0 +1 @@ +run-clang-tidy -fix -extra-arg=-std=c++11 -extra-arg=-Wno-unknown-warning-option `git diff --name-only origin/HEAD` From a078130c878b0f997af24d532c6ade903ea7f65b Mon Sep 17 00:00:00 2001 From: Casper Date: Thu, 15 Dec 2022 01:04:57 -0500 Subject: [PATCH 062/571] Fix Rust codegen escaping field in tables. (#7659) * Fix Rust codegen escaping field in tables. * other gencode * gencode * removed a debug print * regen code Co-authored-by: Casper Neo Co-authored-by: Derek Bailey --- .../keyword_test_keyword_test_generated.dart | 119 +++++++++ src/idl_gen_rust.cpp | 20 +- src/idl_namer.h | 9 + tests/KeywordTest/Table2.cs | 94 ++++++++ tests/keyword_test.fbs | 4 + .../keyword_test/table_2_generated.rs | 227 ++++++++++++++++++ tests/keyword_test/mod.rs | 2 + 7 files changed, 469 insertions(+), 6 deletions(-) create mode 100644 tests/KeywordTest/Table2.cs create mode 100644 tests/keyword_test/keyword_test/table_2_generated.rs diff --git a/dart/test/keyword_test_keyword_test_generated.dart b/dart/test/keyword_test_keyword_test_generated.dart index 6cfc2337c4..3dd5bea394 100644 --- a/dart/test/keyword_test_keyword_test_generated.dart +++ b/dart/test/keyword_test_keyword_test_generated.dart @@ -278,3 +278,122 @@ class KeywordsInTableObjectBuilder extends fb.ObjectBuilder { return fbBuilder.buffer; } } +class Table2 { + Table2._(this._bc, this._bcOffset); + factory Table2(List bytes) { + final rootRef = fb.BufferContext.fromBytes(bytes); + return reader.read(rootRef, 0); + } + + static const fb.Reader reader = _Table2Reader(); + + final fb.BufferContext _bc; + final int _bcOffset; + + KeywordsInUnionTypeId? get typeType => KeywordsInUnionTypeId._createOrNull(const fb.Uint8Reader().vTableGetNullable(_bc, _bcOffset, 4)); + dynamic get type { + switch (typeType?.value) { + case 1: return KeywordsInTable.reader.vTableGetNullable(_bc, _bcOffset, 6); + case 2: return KeywordsInTable.reader.vTableGetNullable(_bc, _bcOffset, 6); + default: return null; + } + } + + @override + String toString() { + return 'Table2{typeType: ${typeType}, type: ${type}}'; + } + + Table2T unpack() => Table2T( + typeType: typeType, + type: type); + + static int pack(fb.Builder fbBuilder, Table2T? object) { + if (object == null) return 0; + return object.pack(fbBuilder); + } +} + +class Table2T implements fb.Packable { + KeywordsInUnionTypeId? typeType; + dynamic type; + + Table2T({ + this.typeType, + this.type}); + + @override + int pack(fb.Builder fbBuilder) { + final int? typeOffset = type?.pack(fbBuilder); + fbBuilder.startTable(2); + fbBuilder.addUint8(0, typeType?.value); + fbBuilder.addOffset(1, typeOffset); + return fbBuilder.endTable(); + } + + @override + String toString() { + return 'Table2T{typeType: ${typeType}, type: ${type}}'; + } +} + +class _Table2Reader extends fb.TableReader { + const _Table2Reader(); + + @override + Table2 createObject(fb.BufferContext bc, int offset) => + Table2._(bc, offset); +} + +class Table2Builder { + Table2Builder(this.fbBuilder); + + final fb.Builder fbBuilder; + + void begin() { + fbBuilder.startTable(2); + } + + int addTypeType(KeywordsInUnionTypeId? typeType) { + fbBuilder.addUint8(0, typeType?.value); + return fbBuilder.offset; + } + int addTypeOffset(int? offset) { + fbBuilder.addOffset(1, offset); + return fbBuilder.offset; + } + + int finish() { + return fbBuilder.endTable(); + } +} + +class Table2ObjectBuilder extends fb.ObjectBuilder { + final KeywordsInUnionTypeId? _typeType; + final dynamic _type; + + Table2ObjectBuilder({ + KeywordsInUnionTypeId? typeType, + dynamic type, + }) + : _typeType = typeType, + _type = type; + + /// Finish building, and store into the [fbBuilder]. + @override + int finish(fb.Builder fbBuilder) { + final int? typeOffset = _type?.getOrCreateOffset(fbBuilder); + fbBuilder.startTable(2); + fbBuilder.addUint8(0, _typeType?.value); + fbBuilder.addOffset(1, typeOffset); + return fbBuilder.endTable(); + } + + /// Convenience method to serialize to byte list. + @override + Uint8List toBytes([String? fileIdentifier]) { + final fbBuilder = fb.Builder(deduplicateTables: false); + fbBuilder.finish(finish(fbBuilder), fileIdentifier); + return fbBuilder.buffer; + } +} diff --git a/src/idl_gen_rust.cpp b/src/idl_gen_rust.cpp index c01410a649..4ea9122ee8 100644 --- a/src/idl_gen_rust.cpp +++ b/src/idl_gen_rust.cpp @@ -1629,7 +1629,7 @@ class RustGenerator : public BaseGenerator { code_.SetValue("OFFSET_VALUE", NumToString(field.value.offset)); code_.SetValue("FIELD", namer_.Field(field)); code_.SetValue("BLDR_DEF_VAL", GetDefaultValue(field, kBuilder)); - code_.SetValue("DISCRIMINANT", namer_.Field(field) + "_type"); + code_.SetValue("DISCRIMINANT", namer_.LegacyRustUnionTypeMethod(field)); code_.IncrementIdentLevel(); cb(field); code_.DecrementIdentLevel(); @@ -1747,7 +1747,10 @@ class RustGenerator : public BaseGenerator { const auto &enum_def = *type.enum_def; code_.SetValue("ENUM_TY", WrapInNameSpace(enum_def)); code_.SetValue("NATIVE_ENUM_NAME", NamespacedNativeName(enum_def)); - code_ += " let {{FIELD}} = match self.{{FIELD}}_type() {"; + code_.SetValue("UNION_TYPE_METHOD", + namer_.LegacyRustUnionTypeMethod(field)); + + code_ += " let {{FIELD}} = match self.{{UNION_TYPE_METHOD}}() {"; code_ += " {{ENUM_TY}}::NONE => {{NATIVE_ENUM_NAME}}::NONE,"; ForAllUnionObjectVariantsBesidesNone(enum_def, [&] { code_ += @@ -1973,10 +1976,12 @@ class RustGenerator : public BaseGenerator { const EnumDef &union_def = *field.value.type.enum_def; code_.SetValue("UNION_TYPE", WrapInNameSpace(union_def)); code_.SetValue("UNION_TYPE_OFFSET_NAME", - namer_.LegacyRustFieldOffsetName(field) + "_TYPE"); + namer_.LegacyRustUnionTypeOffsetName(field)); + code_.SetValue("UNION_TYPE_METHOD", + namer_.LegacyRustUnionTypeMethod(field)); code_ += "\n .visit_union::<{{UNION_TYPE}}, _>(" - "\"{{FIELD}}_type\", Self::{{UNION_TYPE_OFFSET_NAME}}, " + "\"{{UNION_TYPE_METHOD}}\", Self::{{UNION_TYPE_OFFSET_NAME}}, " "\"{{FIELD}}\", Self::{{OFFSET_NAME}}, {{IS_REQ}}, " "|key, v, pos| {"; code_ += " match key {"; @@ -2045,8 +2050,10 @@ class RustGenerator : public BaseGenerator { const auto &enum_def = *type.enum_def; code_.SetValue("ENUM_TY", WrapInNameSpace(enum_def)); code_.SetValue("FIELD", namer_.Field(field)); + code_.SetValue("UNION_TYPE_METHOD", + namer_.LegacyRustUnionTypeMethod(field)); - code_ += " match self.{{FIELD}}_type() {"; + code_ += " match self.{{UNION_TYPE_METHOD}}() {"; code_ += " {{ENUM_TY}}::NONE => (),"; ForAllUnionObjectVariantsBesidesNone(enum_def, [&] { code_.SetValue("FIELD", namer_.Field(field)); @@ -2255,8 +2262,9 @@ class RustGenerator : public BaseGenerator { case ftUnionValue: { code_.SetValue("ENUM_METHOD", namer_.Method(*field.value.type.enum_def)); + code_.SetValue("DISCRIMINANT", namer_.LegacyRustUnionTypeMethod(field)); code_ += - " let {{FIELD}}_type = " + " let {{DISCRIMINANT}} = " "self.{{FIELD}}.{{ENUM_METHOD}}_type();"; code_ += " let {{FIELD}} = self.{{FIELD}}.pack(_fbb);"; return; diff --git a/src/idl_namer.h b/src/idl_namer.h index f60e30c3f5..7f89433da6 100644 --- a/src/idl_namer.h +++ b/src/idl_namer.h @@ -102,6 +102,10 @@ class IdlNamer : public Namer { std::string LegacyRustFieldOffsetName(const FieldDef &field) const { return "VT_" + ConvertCase(EscapeKeyword(field.name), Case::kAllUpper); } + std::string LegacyRustUnionTypeOffsetName(const FieldDef &field) const { + return "VT_" + ConvertCase(EscapeKeyword(field.name + "_type"), Case::kAllUpper); + } + std::string LegacySwiftVariant(const EnumVal &ev) const { auto name = ev.name; @@ -140,6 +144,11 @@ class IdlNamer : public Namer { return "mutate_" + d.name; } + std::string LegacyRustUnionTypeMethod(const FieldDef &d) { + // assert d is a union + return Method(d.name + "_type"); + } + private: std::string NamespacedString(const struct Namespace *ns, const std::string &str) const { diff --git a/tests/KeywordTest/Table2.cs b/tests/KeywordTest/Table2.cs new file mode 100644 index 0000000000..4e16274644 --- /dev/null +++ b/tests/KeywordTest/Table2.cs @@ -0,0 +1,94 @@ +// +// automatically generated by the FlatBuffers compiler, do not modify +// + +namespace KeywordTest +{ + +using global::System; +using global::System.Collections.Generic; +using global::Google.FlatBuffers; + +public struct Table2 : IFlatbufferObject +{ + private Table __p; + public ByteBuffer ByteBuffer { get { return __p.bb; } } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_12_06(); } + public static Table2 GetRootAsTable2(ByteBuffer _bb) { return GetRootAsTable2(_bb, new Table2()); } + public static Table2 GetRootAsTable2(ByteBuffer _bb, Table2 obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } + public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } + public Table2 __assign(int _i, ByteBuffer _bb) { __init(_i, _bb); return this; } + + public KeywordTest.KeywordsInUnion TypeType { get { int o = __p.__offset(4); return o != 0 ? (KeywordTest.KeywordsInUnion)__p.bb.Get(o + __p.bb_pos) : KeywordTest.KeywordsInUnion.NONE; } } + public TTable? Type() where TTable : struct, IFlatbufferObject { int o = __p.__offset(6); return o != 0 ? (TTable?)__p.__union(o + __p.bb_pos) : null; } + public KeywordTest.KeywordsInTable TypeAsstatic() { return Type().Value; } + public KeywordTest.KeywordsInTable TypeAsinternal() { return Type().Value; } + + public static Offset CreateTable2(FlatBufferBuilder builder, + KeywordTest.KeywordsInUnion type_type = KeywordTest.KeywordsInUnion.NONE, + int typeOffset = 0) { + builder.StartTable(2); + Table2.AddType(builder, typeOffset); + Table2.AddTypeType(builder, type_type); + return Table2.EndTable2(builder); + } + + public static void StartTable2(FlatBufferBuilder builder) { builder.StartTable(2); } + public static void AddTypeType(FlatBufferBuilder builder, KeywordTest.KeywordsInUnion typeType) { builder.AddByte(0, (byte)typeType, 0); } + public static void AddType(FlatBufferBuilder builder, int typeOffset) { builder.AddOffset(1, typeOffset, 0); } + public static Offset EndTable2(FlatBufferBuilder builder) { + int o = builder.EndTable(); + return new Offset(o); + } + public Table2T UnPack() { + var _o = new Table2T(); + this.UnPackTo(_o); + return _o; + } + public void UnPackTo(Table2T _o) { + _o.Type = new KeywordTest.KeywordsInUnionUnion(); + _o.Type.Type = this.TypeType; + switch (this.TypeType) { + default: break; + case KeywordTest.KeywordsInUnion.static: + _o.Type.Value = this.Type().HasValue ? this.Type().Value.UnPack() : null; + break; + case KeywordTest.KeywordsInUnion.internal: + _o.Type.Value = this.Type().HasValue ? this.Type().Value.UnPack() : null; + break; + } + } + public static Offset Pack(FlatBufferBuilder builder, Table2T _o) { + if (_o == null) return default(Offset); + var _type_type = _o.Type == null ? KeywordTest.KeywordsInUnion.NONE : _o.Type.Type; + var _type = _o.Type == null ? 0 : KeywordTest.KeywordsInUnionUnion.Pack(builder, _o.Type); + return CreateTable2( + builder, + _type_type, + _type); + } +} + +public class Table2T +{ + [Newtonsoft.Json.JsonProperty("type_type")] + private KeywordTest.KeywordsInUnion TypeType { + get { + return this.Type != null ? this.Type.Type : KeywordTest.KeywordsInUnion.NONE; + } + set { + this.Type = new KeywordTest.KeywordsInUnionUnion(); + this.Type.Type = value; + } + } + [Newtonsoft.Json.JsonProperty("type")] + [Newtonsoft.Json.JsonConverter(typeof(KeywordTest.KeywordsInUnionUnion_JsonConverter))] + public KeywordTest.KeywordsInUnionUnion Type { get; set; } + + public Table2T() { + this.Type = null; + } +} + + +} diff --git a/tests/keyword_test.fbs b/tests/keyword_test.fbs index 77fc42bccf..b5955cbfd2 100644 --- a/tests/keyword_test.fbs +++ b/tests/keyword_test.fbs @@ -15,3 +15,7 @@ union KeywordsInUnion { static: KeywordsInTable, internal: KeywordsInTable, } + +table Table2 { + type: KeywordsInUnion; +} diff --git a/tests/keyword_test/keyword_test/table_2_generated.rs b/tests/keyword_test/keyword_test/table_2_generated.rs new file mode 100644 index 0000000000..65c5541e69 --- /dev/null +++ b/tests/keyword_test/keyword_test/table_2_generated.rs @@ -0,0 +1,227 @@ +// automatically generated by the FlatBuffers compiler, do not modify +// @generated +extern crate alloc; +extern crate flatbuffers; +use alloc::boxed::Box; +use alloc::string::{String, ToString}; +use alloc::vec::Vec; +use core::mem; +use core::cmp::Ordering; +use self::flatbuffers::{EndianScalar, Follow}; +use super::*; +pub enum Table2Offset {} +#[derive(Copy, Clone, PartialEq)] + +pub struct Table2<'a> { + pub _tab: flatbuffers::Table<'a>, +} + +impl<'a> flatbuffers::Follow<'a> for Table2<'a> { + type Inner = Table2<'a>; + #[inline] + unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + Self { _tab: flatbuffers::Table::new(buf, loc) } + } +} + +impl<'a> Table2<'a> { + pub const VT_TYPE_TYPE: flatbuffers::VOffsetT = 4; + pub const VT_TYPE_: flatbuffers::VOffsetT = 6; + + pub const fn get_fully_qualified_name() -> &'static str { + "KeywordTest.Table2" + } + + #[inline] + pub unsafe fn init_from_table(table: flatbuffers::Table<'a>) -> Self { + Table2 { _tab: table } + } + #[allow(unused_mut)] + pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( + _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, + args: &'args Table2Args + ) -> flatbuffers::WIPOffset> { + let mut builder = Table2Builder::new(_fbb); + if let Some(x) = args.type_ { builder.add_type_(x); } + builder.add_type_type(args.type_type); + builder.finish() + } + + pub fn unpack(&self) -> Table2T { + let type_ = match self.type_type() { + KeywordsInUnion::NONE => KeywordsInUnionT::NONE, + KeywordsInUnion::static_ => KeywordsInUnionT::Static_(Box::new( + self.type__as_static_() + .expect("Invalid union table, expected `KeywordsInUnion::static_`.") + .unpack() + )), + KeywordsInUnion::internal => KeywordsInUnionT::Internal(Box::new( + self.type__as_internal() + .expect("Invalid union table, expected `KeywordsInUnion::internal`.") + .unpack() + )), + _ => KeywordsInUnionT::NONE, + }; + Table2T { + type_, + } + } + + #[inline] + pub fn type_type(&self) -> KeywordsInUnion { + // Safety: + // Created from valid Table for this object + // which contains a valid value in this slot + unsafe { self._tab.get::(Table2::VT_TYPE_TYPE, Some(KeywordsInUnion::NONE)).unwrap()} + } + #[inline] + pub fn type_(&self) -> Option> { + // Safety: + // Created from valid Table for this object + // which contains a valid value in this slot + unsafe { self._tab.get::>>(Table2::VT_TYPE_, None)} + } + #[inline] + #[allow(non_snake_case)] + pub fn type__as_static_(&self) -> Option> { + if self.type_type() == KeywordsInUnion::static_ { + self.type_().map(|t| { + // Safety: + // Created from a valid Table for this object + // Which contains a valid union in this slot + unsafe { KeywordsInTable::init_from_table(t) } + }) + } else { + None + } + } + + #[inline] + #[allow(non_snake_case)] + pub fn type__as_internal(&self) -> Option> { + if self.type_type() == KeywordsInUnion::internal { + self.type_().map(|t| { + // Safety: + // Created from a valid Table for this object + // Which contains a valid union in this slot + unsafe { KeywordsInTable::init_from_table(t) } + }) + } else { + None + } + } + +} + +impl flatbuffers::Verifiable for Table2<'_> { + #[inline] + fn run_verifier( + v: &mut flatbuffers::Verifier, pos: usize + ) -> Result<(), flatbuffers::InvalidFlatbuffer> { + use self::flatbuffers::Verifiable; + v.visit_table(pos)? + .visit_union::("type_type", Self::VT_TYPE_TYPE, "type_", Self::VT_TYPE_, false, |key, v, pos| { + match key { + KeywordsInUnion::static_ => v.verify_union_variant::>("KeywordsInUnion::static_", pos), + KeywordsInUnion::internal => v.verify_union_variant::>("KeywordsInUnion::internal", pos), + _ => Ok(()), + } + })? + .finish(); + Ok(()) + } +} +pub struct Table2Args { + pub type_type: KeywordsInUnion, + pub type_: Option>, +} +impl<'a> Default for Table2Args { + #[inline] + fn default() -> Self { + Table2Args { + type_type: KeywordsInUnion::NONE, + type_: None, + } + } +} + +pub struct Table2Builder<'a: 'b, 'b> { + fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, + start_: flatbuffers::WIPOffset, +} +impl<'a: 'b, 'b> Table2Builder<'a, 'b> { + #[inline] + pub fn add_type_type(&mut self, type_type: KeywordsInUnion) { + self.fbb_.push_slot::(Table2::VT_TYPE_TYPE, type_type, KeywordsInUnion::NONE); + } + #[inline] + pub fn add_type_(&mut self, type_: flatbuffers::WIPOffset) { + self.fbb_.push_slot_always::>(Table2::VT_TYPE_, type_); + } + #[inline] + pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> Table2Builder<'a, 'b> { + let start = _fbb.start_table(); + Table2Builder { + fbb_: _fbb, + start_: start, + } + } + #[inline] + pub fn finish(self) -> flatbuffers::WIPOffset> { + let o = self.fbb_.end_table(self.start_); + flatbuffers::WIPOffset::new(o.value()) + } +} + +impl core::fmt::Debug for Table2<'_> { + fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result { + let mut ds = f.debug_struct("Table2"); + ds.field("type_type", &self.type_type()); + match self.type_type() { + KeywordsInUnion::static_ => { + if let Some(x) = self.type__as_static_() { + ds.field("type_", &x) + } else { + ds.field("type_", &"InvalidFlatbuffer: Union discriminant does not match value.") + } + }, + KeywordsInUnion::internal => { + if let Some(x) = self.type__as_internal() { + ds.field("type_", &x) + } else { + ds.field("type_", &"InvalidFlatbuffer: Union discriminant does not match value.") + } + }, + _ => { + let x: Option<()> = None; + ds.field("type_", &x) + }, + }; + ds.finish() + } +} +#[non_exhaustive] +#[derive(Debug, Clone, PartialEq)] +pub struct Table2T { + pub type_: KeywordsInUnionT, +} +impl Default for Table2T { + fn default() -> Self { + Self { + type_: KeywordsInUnionT::NONE, + } + } +} +impl Table2T { + pub fn pack<'b>( + &self, + _fbb: &mut flatbuffers::FlatBufferBuilder<'b> + ) -> flatbuffers::WIPOffset> { + let type_type = self.type_.keywords_in_union_type(); + let type_ = self.type_.pack(_fbb); + Table2::create(_fbb, &Table2Args{ + type_type, + type_, + }) + } +} diff --git a/tests/keyword_test/mod.rs b/tests/keyword_test/mod.rs index d87e5d1c76..56f68c40d5 100644 --- a/tests/keyword_test/mod.rs +++ b/tests/keyword_test/mod.rs @@ -10,4 +10,6 @@ pub mod keyword_test { pub use self::keywords_in_union_generated::*; mod keywords_in_table_generated; pub use self::keywords_in_table_generated::*; + mod table_2_generated; + pub use self::table_2_generated::*; } // keyword_test From b47ba1d5ffae3bd4d5eaad615e33d7cc5c1e3d4a Mon Sep 17 00:00:00 2001 From: engedy Date: Wed, 21 Dec 2022 23:59:34 +0100 Subject: [PATCH 063/571] Add include guards around DoNotRequireEofTest (#7728) Guard DoNotRequireEofTest against -Wunused-function on platforms without file tests. --- tests/test.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tests/test.cpp b/tests/test.cpp index 15d0d4fc80..96a076401a 100644 --- a/tests/test.cpp +++ b/tests/test.cpp @@ -1419,6 +1419,8 @@ void NativeInlineTableVectorTest() { TEST_ASSERT(unpacked.t == test.t); } +// Guard against -Wunused-function on platforms without file tests. +#ifndef FLATBUFFERS_NO_FILE_TESTS void DoNotRequireEofTest(const std::string &tests_data_path) { std::string schemafile; bool ok = flatbuffers::LoadFile( @@ -1460,6 +1462,7 @@ void DoNotRequireEofTest(const std::string &tests_data_path) { TEST_EQ_STR(monster->name()->c_str(), "Imp"); TEST_EQ(monster->hp(), 10); } +#endif int FlatBufferTests(const std::string &tests_data_path) { // Run our various test suites: From 4e396d47bc5200309977c0b8942e74415b3a812e Mon Sep 17 00:00:00 2001 From: engedy Date: Thu, 22 Dec 2022 17:48:48 +0100 Subject: [PATCH 064/571] Add CI step to build with -DFLATBUFFERS_NO_FILE_TESTS. (#7729) * Add CI step to build with -DFLATBUFFERS_NO_FILE_TESTS * Fix cmake syntax * Further fix cmake argumetns * Add workaround for unused-parameter. * Remove build matrix Co-authored-by: Derek Bailey --- .github/workflows/build.yml | 10 ++++++++++ tests/test.cpp | 3 +++ 2 files changed, 13 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 40a9e3edef..60832d1289 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -62,6 +62,16 @@ jobs: if: matrix.cxx == 'g++-10' && startsWith(github.ref, 'refs/tags/') id: hash-gcc run: echo "::set-output name=hashes::$(sha256sum Linux.flatc.binary.${{ matrix.cxx }}.zip | base64 -w0)" + + build-linux-no-file-tests: + name: Build Linux with -DFLATBUFFERS_NO_FILE_TESTS + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: cmake + run: CXX=clang++-12 cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release -DFLATBUFFERS_STRICT_MODE=ON -DFLATBUFFERS_CXX_FLAGS="-DFLATBUFFERS_NO_FILE_TESTS" . + - name: build + run: make -j build-linux-cpp-std: name: Build Linux C++ diff --git a/tests/test.cpp b/tests/test.cpp index 96a076401a..e13bc6ee2e 100644 --- a/tests/test.cpp +++ b/tests/test.cpp @@ -1511,6 +1511,9 @@ int FlatBufferTests(const std::string &tests_data_path) { ParseIncorrectMonsterJsonTest(tests_data_path); FixedLengthArraySpanTest(tests_data_path); DoNotRequireEofTest(tests_data_path); +#else + // Guard against -Wunused-parameter. + (void)tests_data_path; #endif UtilConvertCase(); From 96d438df47d29cf16ddbeca67b2ddd12b2b7bf2b Mon Sep 17 00:00:00 2001 From: Michael Le Date: Thu, 22 Dec 2022 15:28:00 -0500 Subject: [PATCH 065/571] Perform nil check on string fields when packing (#7719) Co-authored-by: Derek Bailey --- src/idl_gen_go.cpp | 7 +++++-- tests/MyGame/Example/Monster.go | 5 ++++- tests/MyGame/Example/Stat.go | 5 ++++- 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/src/idl_gen_go.cpp b/src/idl_gen_go.cpp index 0a04f19c49..15d0a1c948 100644 --- a/src/idl_gen_go.cpp +++ b/src/idl_gen_go.cpp @@ -1054,8 +1054,11 @@ class GoGenerator : public BaseGenerator { const std::string offset = field_var + "Offset"; if (IsString(field.value.type)) { - code += - "\t" + offset + " := builder.CreateString(t." + field_field + ")\n"; + code += "\t" + offset + " := flatbuffers.UOffsetT(0)\n"; + code += "\tif t." + field_field + " != \"\" {\n"; + code += "\t\t" + offset + " = builder.CreateString(t." + field_field + + ")\n"; + code += "\t}\n"; } else if (IsVector(field.value.type) && field.value.type.element == BASE_TYPE_UCHAR && field.value.type.enum_def == nullptr) { diff --git a/tests/MyGame/Example/Monster.go b/tests/MyGame/Example/Monster.go index 0717aa6760..5380e13508 100644 --- a/tests/MyGame/Example/Monster.go +++ b/tests/MyGame/Example/Monster.go @@ -74,7 +74,10 @@ type MonsterT struct { func (t *MonsterT) Pack(builder *flatbuffers.Builder) flatbuffers.UOffsetT { if t == nil { return 0 } - nameOffset := builder.CreateString(t.Name) + nameOffset := flatbuffers.UOffsetT(0) + if t.Name != "" { + nameOffset = builder.CreateString(t.Name) + } inventoryOffset := flatbuffers.UOffsetT(0) if t.Inventory != nil { inventoryOffset = builder.CreateByteString(t.Inventory) diff --git a/tests/MyGame/Example/Stat.go b/tests/MyGame/Example/Stat.go index d7976cd7b1..9c0821419f 100644 --- a/tests/MyGame/Example/Stat.go +++ b/tests/MyGame/Example/Stat.go @@ -14,7 +14,10 @@ type StatT struct { func (t *StatT) Pack(builder *flatbuffers.Builder) flatbuffers.UOffsetT { if t == nil { return 0 } - idOffset := builder.CreateString(t.Id) + idOffset := flatbuffers.UOffsetT(0) + if t.Id != "" { + idOffset = builder.CreateString(t.Id) + } StatStart(builder) StatAddId(builder, idOffset) StatAddVal(builder, t.Val) From 449d5649d6ab2c1d2bfed340a32ed15de58c0371 Mon Sep 17 00:00:00 2001 From: RishabhDeep Singh Date: Fri, 23 Dec 2022 02:21:39 +0530 Subject: [PATCH 066/571] Fixed test cases (#7732) * Fix Cannot find symbol and test case * Add generated tests Co-authored-by: Derek Bailey --- src/idl_gen_java.cpp | 2 ++ tests/DictionaryLookup/LongFloatEntry.java | 2 ++ tests/DictionaryLookup/LongFloatMap.java | 2 ++ tests/MyGame/Example/Ability.java | 2 ++ tests/MyGame/Example/AbilityT.java | 2 ++ tests/MyGame/Example/ArrayStruct.java | 2 ++ tests/MyGame/Example/ArrayStructT.java | 2 ++ tests/MyGame/Example/ArrayTable.java | 2 ++ tests/MyGame/Example/ArrayTableT.java | 2 ++ tests/MyGame/Example/Monster.java | 2 ++ tests/MyGame/Example/MonsterT.java | 2 ++ tests/MyGame/Example/NestedStruct.java | 2 ++ tests/MyGame/Example/NestedStructT.java | 2 ++ tests/MyGame/Example/Referrable.java | 2 ++ tests/MyGame/Example/ReferrableT.java | 2 ++ tests/MyGame/Example/Stat.java | 2 ++ tests/MyGame/Example/StatT.java | 2 ++ tests/MyGame/Example/StructOfStructs.java | 2 ++ tests/MyGame/Example/StructOfStructsOfStructs.java | 2 ++ tests/MyGame/Example/StructOfStructsOfStructsT.java | 2 ++ tests/MyGame/Example/StructOfStructsT.java | 2 ++ tests/MyGame/Example/Test.java | 2 ++ tests/MyGame/Example/TestSimpleTableWithEnum.java | 2 ++ tests/MyGame/Example/TestSimpleTableWithEnumT.java | 2 ++ tests/MyGame/Example/TestT.java | 2 ++ tests/MyGame/Example/TypeAliases.java | 2 ++ tests/MyGame/Example/TypeAliasesT.java | 2 ++ tests/MyGame/Example/Vec3.java | 2 ++ tests/MyGame/Example/Vec3T.java | 2 ++ tests/MyGame/Example2/Monster.java | 2 ++ tests/MyGame/Example2/MonsterT.java | 2 ++ tests/MyGame/InParentNamespace.java | 2 ++ tests/MyGame/InParentNamespaceT.java | 2 ++ tests/MyGame/MonsterExtra.java | 2 ++ tests/MyGame/MonsterExtraT.java | 2 ++ tests/optional_scalars/ScalarStuff.java | 2 ++ tests/py_test.py | 2 +- tests/union_vector/Attacker.java | 2 ++ tests/union_vector/AttackerT.java | 2 ++ tests/union_vector/BookReader.java | 2 ++ tests/union_vector/BookReaderT.java | 2 ++ tests/union_vector/FallingTub.java | 2 ++ tests/union_vector/FallingTubT.java | 2 ++ tests/union_vector/HandFan.java | 2 ++ tests/union_vector/HandFanT.java | 2 ++ tests/union_vector/Movie.java | 2 ++ tests/union_vector/MovieT.java | 2 ++ tests/union_vector/Rapunzel.java | 2 ++ tests/union_vector/RapunzelT.java | 2 ++ 49 files changed, 97 insertions(+), 1 deletion(-) diff --git a/src/idl_gen_java.cpp b/src/idl_gen_java.cpp index 44f57c5a49..c3bc9c144e 100644 --- a/src/idl_gen_java.cpp +++ b/src/idl_gen_java.cpp @@ -185,7 +185,9 @@ class JavaGenerator : public BaseGenerator { "import com.google.flatbuffers.DoubleVector;\n" "import com.google.flatbuffers.FlatBufferBuilder;\n" "import com.google.flatbuffers.FloatVector;\n" + "import com.google.flatbuffers.IntVector;\n" "import com.google.flatbuffers.LongVector;\n" + "import com.google.flatbuffers.ShortVector;\n" "import com.google.flatbuffers.StringVector;\n" "import com.google.flatbuffers.Struct;\n" "import com.google.flatbuffers.Table;\n" diff --git a/tests/DictionaryLookup/LongFloatEntry.java b/tests/DictionaryLookup/LongFloatEntry.java index 211690599f..8b85c8268d 100644 --- a/tests/DictionaryLookup/LongFloatEntry.java +++ b/tests/DictionaryLookup/LongFloatEntry.java @@ -9,7 +9,9 @@ import com.google.flatbuffers.DoubleVector; import com.google.flatbuffers.FlatBufferBuilder; import com.google.flatbuffers.FloatVector; +import com.google.flatbuffers.IntVector; import com.google.flatbuffers.LongVector; +import com.google.flatbuffers.ShortVector; import com.google.flatbuffers.StringVector; import com.google.flatbuffers.Struct; import com.google.flatbuffers.Table; diff --git a/tests/DictionaryLookup/LongFloatMap.java b/tests/DictionaryLookup/LongFloatMap.java index 2af8e40040..13e2e79155 100644 --- a/tests/DictionaryLookup/LongFloatMap.java +++ b/tests/DictionaryLookup/LongFloatMap.java @@ -9,7 +9,9 @@ import com.google.flatbuffers.DoubleVector; import com.google.flatbuffers.FlatBufferBuilder; import com.google.flatbuffers.FloatVector; +import com.google.flatbuffers.IntVector; import com.google.flatbuffers.LongVector; +import com.google.flatbuffers.ShortVector; import com.google.flatbuffers.StringVector; import com.google.flatbuffers.Struct; import com.google.flatbuffers.Table; diff --git a/tests/MyGame/Example/Ability.java b/tests/MyGame/Example/Ability.java index 06af95c3db..8b8c38f114 100644 --- a/tests/MyGame/Example/Ability.java +++ b/tests/MyGame/Example/Ability.java @@ -9,7 +9,9 @@ import com.google.flatbuffers.DoubleVector; import com.google.flatbuffers.FlatBufferBuilder; import com.google.flatbuffers.FloatVector; +import com.google.flatbuffers.IntVector; import com.google.flatbuffers.LongVector; +import com.google.flatbuffers.ShortVector; import com.google.flatbuffers.StringVector; import com.google.flatbuffers.Struct; import com.google.flatbuffers.Table; diff --git a/tests/MyGame/Example/AbilityT.java b/tests/MyGame/Example/AbilityT.java index 4e0bd79a83..73c2362240 100644 --- a/tests/MyGame/Example/AbilityT.java +++ b/tests/MyGame/Example/AbilityT.java @@ -9,7 +9,9 @@ import com.google.flatbuffers.DoubleVector; import com.google.flatbuffers.FlatBufferBuilder; import com.google.flatbuffers.FloatVector; +import com.google.flatbuffers.IntVector; import com.google.flatbuffers.LongVector; +import com.google.flatbuffers.ShortVector; import com.google.flatbuffers.StringVector; import com.google.flatbuffers.Struct; import com.google.flatbuffers.Table; diff --git a/tests/MyGame/Example/ArrayStruct.java b/tests/MyGame/Example/ArrayStruct.java index 54b17540ad..b859560bdc 100644 --- a/tests/MyGame/Example/ArrayStruct.java +++ b/tests/MyGame/Example/ArrayStruct.java @@ -9,7 +9,9 @@ import com.google.flatbuffers.DoubleVector; import com.google.flatbuffers.FlatBufferBuilder; import com.google.flatbuffers.FloatVector; +import com.google.flatbuffers.IntVector; import com.google.flatbuffers.LongVector; +import com.google.flatbuffers.ShortVector; import com.google.flatbuffers.StringVector; import com.google.flatbuffers.Struct; import com.google.flatbuffers.Table; diff --git a/tests/MyGame/Example/ArrayStructT.java b/tests/MyGame/Example/ArrayStructT.java index 409acc8a1c..99922be98a 100644 --- a/tests/MyGame/Example/ArrayStructT.java +++ b/tests/MyGame/Example/ArrayStructT.java @@ -9,7 +9,9 @@ import com.google.flatbuffers.DoubleVector; import com.google.flatbuffers.FlatBufferBuilder; import com.google.flatbuffers.FloatVector; +import com.google.flatbuffers.IntVector; import com.google.flatbuffers.LongVector; +import com.google.flatbuffers.ShortVector; import com.google.flatbuffers.StringVector; import com.google.flatbuffers.Struct; import com.google.flatbuffers.Table; diff --git a/tests/MyGame/Example/ArrayTable.java b/tests/MyGame/Example/ArrayTable.java index 0d937daa84..a5149ecd2e 100644 --- a/tests/MyGame/Example/ArrayTable.java +++ b/tests/MyGame/Example/ArrayTable.java @@ -9,7 +9,9 @@ import com.google.flatbuffers.DoubleVector; import com.google.flatbuffers.FlatBufferBuilder; import com.google.flatbuffers.FloatVector; +import com.google.flatbuffers.IntVector; import com.google.flatbuffers.LongVector; +import com.google.flatbuffers.ShortVector; import com.google.flatbuffers.StringVector; import com.google.flatbuffers.Struct; import com.google.flatbuffers.Table; diff --git a/tests/MyGame/Example/ArrayTableT.java b/tests/MyGame/Example/ArrayTableT.java index f87e005b80..645538148d 100644 --- a/tests/MyGame/Example/ArrayTableT.java +++ b/tests/MyGame/Example/ArrayTableT.java @@ -9,7 +9,9 @@ import com.google.flatbuffers.DoubleVector; import com.google.flatbuffers.FlatBufferBuilder; import com.google.flatbuffers.FloatVector; +import com.google.flatbuffers.IntVector; import com.google.flatbuffers.LongVector; +import com.google.flatbuffers.ShortVector; import com.google.flatbuffers.StringVector; import com.google.flatbuffers.Struct; import com.google.flatbuffers.Table; diff --git a/tests/MyGame/Example/Monster.java b/tests/MyGame/Example/Monster.java index 6c1dac36db..5194c07577 100644 --- a/tests/MyGame/Example/Monster.java +++ b/tests/MyGame/Example/Monster.java @@ -9,7 +9,9 @@ import com.google.flatbuffers.DoubleVector; import com.google.flatbuffers.FlatBufferBuilder; import com.google.flatbuffers.FloatVector; +import com.google.flatbuffers.IntVector; import com.google.flatbuffers.LongVector; +import com.google.flatbuffers.ShortVector; import com.google.flatbuffers.StringVector; import com.google.flatbuffers.Struct; import com.google.flatbuffers.Table; diff --git a/tests/MyGame/Example/MonsterT.java b/tests/MyGame/Example/MonsterT.java index c74ea64d09..622a4fa806 100644 --- a/tests/MyGame/Example/MonsterT.java +++ b/tests/MyGame/Example/MonsterT.java @@ -9,7 +9,9 @@ import com.google.flatbuffers.DoubleVector; import com.google.flatbuffers.FlatBufferBuilder; import com.google.flatbuffers.FloatVector; +import com.google.flatbuffers.IntVector; import com.google.flatbuffers.LongVector; +import com.google.flatbuffers.ShortVector; import com.google.flatbuffers.StringVector; import com.google.flatbuffers.Struct; import com.google.flatbuffers.Table; diff --git a/tests/MyGame/Example/NestedStruct.java b/tests/MyGame/Example/NestedStruct.java index a0fe37c2c9..0d33f71332 100644 --- a/tests/MyGame/Example/NestedStruct.java +++ b/tests/MyGame/Example/NestedStruct.java @@ -9,7 +9,9 @@ import com.google.flatbuffers.DoubleVector; import com.google.flatbuffers.FlatBufferBuilder; import com.google.flatbuffers.FloatVector; +import com.google.flatbuffers.IntVector; import com.google.flatbuffers.LongVector; +import com.google.flatbuffers.ShortVector; import com.google.flatbuffers.StringVector; import com.google.flatbuffers.Struct; import com.google.flatbuffers.Table; diff --git a/tests/MyGame/Example/NestedStructT.java b/tests/MyGame/Example/NestedStructT.java index b4021991c2..396522a914 100644 --- a/tests/MyGame/Example/NestedStructT.java +++ b/tests/MyGame/Example/NestedStructT.java @@ -9,7 +9,9 @@ import com.google.flatbuffers.DoubleVector; import com.google.flatbuffers.FlatBufferBuilder; import com.google.flatbuffers.FloatVector; +import com.google.flatbuffers.IntVector; import com.google.flatbuffers.LongVector; +import com.google.flatbuffers.ShortVector; import com.google.flatbuffers.StringVector; import com.google.flatbuffers.Struct; import com.google.flatbuffers.Table; diff --git a/tests/MyGame/Example/Referrable.java b/tests/MyGame/Example/Referrable.java index 211fe929bf..df55f7a3d7 100644 --- a/tests/MyGame/Example/Referrable.java +++ b/tests/MyGame/Example/Referrable.java @@ -9,7 +9,9 @@ import com.google.flatbuffers.DoubleVector; import com.google.flatbuffers.FlatBufferBuilder; import com.google.flatbuffers.FloatVector; +import com.google.flatbuffers.IntVector; import com.google.flatbuffers.LongVector; +import com.google.flatbuffers.ShortVector; import com.google.flatbuffers.StringVector; import com.google.flatbuffers.Struct; import com.google.flatbuffers.Table; diff --git a/tests/MyGame/Example/ReferrableT.java b/tests/MyGame/Example/ReferrableT.java index e5ac1d5f4f..5efd363f8c 100644 --- a/tests/MyGame/Example/ReferrableT.java +++ b/tests/MyGame/Example/ReferrableT.java @@ -9,7 +9,9 @@ import com.google.flatbuffers.DoubleVector; import com.google.flatbuffers.FlatBufferBuilder; import com.google.flatbuffers.FloatVector; +import com.google.flatbuffers.IntVector; import com.google.flatbuffers.LongVector; +import com.google.flatbuffers.ShortVector; import com.google.flatbuffers.StringVector; import com.google.flatbuffers.Struct; import com.google.flatbuffers.Table; diff --git a/tests/MyGame/Example/Stat.java b/tests/MyGame/Example/Stat.java index 27c3fa7204..8dbf2c0bd6 100644 --- a/tests/MyGame/Example/Stat.java +++ b/tests/MyGame/Example/Stat.java @@ -9,7 +9,9 @@ import com.google.flatbuffers.DoubleVector; import com.google.flatbuffers.FlatBufferBuilder; import com.google.flatbuffers.FloatVector; +import com.google.flatbuffers.IntVector; import com.google.flatbuffers.LongVector; +import com.google.flatbuffers.ShortVector; import com.google.flatbuffers.StringVector; import com.google.flatbuffers.Struct; import com.google.flatbuffers.Table; diff --git a/tests/MyGame/Example/StatT.java b/tests/MyGame/Example/StatT.java index c108d9ca36..82939a6c65 100644 --- a/tests/MyGame/Example/StatT.java +++ b/tests/MyGame/Example/StatT.java @@ -9,7 +9,9 @@ import com.google.flatbuffers.DoubleVector; import com.google.flatbuffers.FlatBufferBuilder; import com.google.flatbuffers.FloatVector; +import com.google.flatbuffers.IntVector; import com.google.flatbuffers.LongVector; +import com.google.flatbuffers.ShortVector; import com.google.flatbuffers.StringVector; import com.google.flatbuffers.Struct; import com.google.flatbuffers.Table; diff --git a/tests/MyGame/Example/StructOfStructs.java b/tests/MyGame/Example/StructOfStructs.java index 5ec5b9a60f..befd335905 100644 --- a/tests/MyGame/Example/StructOfStructs.java +++ b/tests/MyGame/Example/StructOfStructs.java @@ -9,7 +9,9 @@ import com.google.flatbuffers.DoubleVector; import com.google.flatbuffers.FlatBufferBuilder; import com.google.flatbuffers.FloatVector; +import com.google.flatbuffers.IntVector; import com.google.flatbuffers.LongVector; +import com.google.flatbuffers.ShortVector; import com.google.flatbuffers.StringVector; import com.google.flatbuffers.Struct; import com.google.flatbuffers.Table; diff --git a/tests/MyGame/Example/StructOfStructsOfStructs.java b/tests/MyGame/Example/StructOfStructsOfStructs.java index 8bab48e918..fb14a5a0cf 100644 --- a/tests/MyGame/Example/StructOfStructsOfStructs.java +++ b/tests/MyGame/Example/StructOfStructsOfStructs.java @@ -9,7 +9,9 @@ import com.google.flatbuffers.DoubleVector; import com.google.flatbuffers.FlatBufferBuilder; import com.google.flatbuffers.FloatVector; +import com.google.flatbuffers.IntVector; import com.google.flatbuffers.LongVector; +import com.google.flatbuffers.ShortVector; import com.google.flatbuffers.StringVector; import com.google.flatbuffers.Struct; import com.google.flatbuffers.Table; diff --git a/tests/MyGame/Example/StructOfStructsOfStructsT.java b/tests/MyGame/Example/StructOfStructsOfStructsT.java index 7839ec6fd8..60afd7384b 100644 --- a/tests/MyGame/Example/StructOfStructsOfStructsT.java +++ b/tests/MyGame/Example/StructOfStructsOfStructsT.java @@ -9,7 +9,9 @@ import com.google.flatbuffers.DoubleVector; import com.google.flatbuffers.FlatBufferBuilder; import com.google.flatbuffers.FloatVector; +import com.google.flatbuffers.IntVector; import com.google.flatbuffers.LongVector; +import com.google.flatbuffers.ShortVector; import com.google.flatbuffers.StringVector; import com.google.flatbuffers.Struct; import com.google.flatbuffers.Table; diff --git a/tests/MyGame/Example/StructOfStructsT.java b/tests/MyGame/Example/StructOfStructsT.java index 0919fc2d53..8d5034af54 100644 --- a/tests/MyGame/Example/StructOfStructsT.java +++ b/tests/MyGame/Example/StructOfStructsT.java @@ -9,7 +9,9 @@ import com.google.flatbuffers.DoubleVector; import com.google.flatbuffers.FlatBufferBuilder; import com.google.flatbuffers.FloatVector; +import com.google.flatbuffers.IntVector; import com.google.flatbuffers.LongVector; +import com.google.flatbuffers.ShortVector; import com.google.flatbuffers.StringVector; import com.google.flatbuffers.Struct; import com.google.flatbuffers.Table; diff --git a/tests/MyGame/Example/Test.java b/tests/MyGame/Example/Test.java index 62767187da..cff5a6503d 100644 --- a/tests/MyGame/Example/Test.java +++ b/tests/MyGame/Example/Test.java @@ -9,7 +9,9 @@ import com.google.flatbuffers.DoubleVector; import com.google.flatbuffers.FlatBufferBuilder; import com.google.flatbuffers.FloatVector; +import com.google.flatbuffers.IntVector; import com.google.flatbuffers.LongVector; +import com.google.flatbuffers.ShortVector; import com.google.flatbuffers.StringVector; import com.google.flatbuffers.Struct; import com.google.flatbuffers.Table; diff --git a/tests/MyGame/Example/TestSimpleTableWithEnum.java b/tests/MyGame/Example/TestSimpleTableWithEnum.java index 23fb1f1b87..677b705de5 100644 --- a/tests/MyGame/Example/TestSimpleTableWithEnum.java +++ b/tests/MyGame/Example/TestSimpleTableWithEnum.java @@ -9,7 +9,9 @@ import com.google.flatbuffers.DoubleVector; import com.google.flatbuffers.FlatBufferBuilder; import com.google.flatbuffers.FloatVector; +import com.google.flatbuffers.IntVector; import com.google.flatbuffers.LongVector; +import com.google.flatbuffers.ShortVector; import com.google.flatbuffers.StringVector; import com.google.flatbuffers.Struct; import com.google.flatbuffers.Table; diff --git a/tests/MyGame/Example/TestSimpleTableWithEnumT.java b/tests/MyGame/Example/TestSimpleTableWithEnumT.java index b441384517..7641550c41 100644 --- a/tests/MyGame/Example/TestSimpleTableWithEnumT.java +++ b/tests/MyGame/Example/TestSimpleTableWithEnumT.java @@ -9,7 +9,9 @@ import com.google.flatbuffers.DoubleVector; import com.google.flatbuffers.FlatBufferBuilder; import com.google.flatbuffers.FloatVector; +import com.google.flatbuffers.IntVector; import com.google.flatbuffers.LongVector; +import com.google.flatbuffers.ShortVector; import com.google.flatbuffers.StringVector; import com.google.flatbuffers.Struct; import com.google.flatbuffers.Table; diff --git a/tests/MyGame/Example/TestT.java b/tests/MyGame/Example/TestT.java index 6a017c6cb2..38103172b7 100644 --- a/tests/MyGame/Example/TestT.java +++ b/tests/MyGame/Example/TestT.java @@ -9,7 +9,9 @@ import com.google.flatbuffers.DoubleVector; import com.google.flatbuffers.FlatBufferBuilder; import com.google.flatbuffers.FloatVector; +import com.google.flatbuffers.IntVector; import com.google.flatbuffers.LongVector; +import com.google.flatbuffers.ShortVector; import com.google.flatbuffers.StringVector; import com.google.flatbuffers.Struct; import com.google.flatbuffers.Table; diff --git a/tests/MyGame/Example/TypeAliases.java b/tests/MyGame/Example/TypeAliases.java index fb74ba67f1..54df0ec206 100644 --- a/tests/MyGame/Example/TypeAliases.java +++ b/tests/MyGame/Example/TypeAliases.java @@ -9,7 +9,9 @@ import com.google.flatbuffers.DoubleVector; import com.google.flatbuffers.FlatBufferBuilder; import com.google.flatbuffers.FloatVector; +import com.google.flatbuffers.IntVector; import com.google.flatbuffers.LongVector; +import com.google.flatbuffers.ShortVector; import com.google.flatbuffers.StringVector; import com.google.flatbuffers.Struct; import com.google.flatbuffers.Table; diff --git a/tests/MyGame/Example/TypeAliasesT.java b/tests/MyGame/Example/TypeAliasesT.java index 9a5f68bab7..2e056843ce 100644 --- a/tests/MyGame/Example/TypeAliasesT.java +++ b/tests/MyGame/Example/TypeAliasesT.java @@ -9,7 +9,9 @@ import com.google.flatbuffers.DoubleVector; import com.google.flatbuffers.FlatBufferBuilder; import com.google.flatbuffers.FloatVector; +import com.google.flatbuffers.IntVector; import com.google.flatbuffers.LongVector; +import com.google.flatbuffers.ShortVector; import com.google.flatbuffers.StringVector; import com.google.flatbuffers.Struct; import com.google.flatbuffers.Table; diff --git a/tests/MyGame/Example/Vec3.java b/tests/MyGame/Example/Vec3.java index 4d500b3816..c1f2ce63c0 100644 --- a/tests/MyGame/Example/Vec3.java +++ b/tests/MyGame/Example/Vec3.java @@ -9,7 +9,9 @@ import com.google.flatbuffers.DoubleVector; import com.google.flatbuffers.FlatBufferBuilder; import com.google.flatbuffers.FloatVector; +import com.google.flatbuffers.IntVector; import com.google.flatbuffers.LongVector; +import com.google.flatbuffers.ShortVector; import com.google.flatbuffers.StringVector; import com.google.flatbuffers.Struct; import com.google.flatbuffers.Table; diff --git a/tests/MyGame/Example/Vec3T.java b/tests/MyGame/Example/Vec3T.java index 28488de66f..78fb1dd775 100644 --- a/tests/MyGame/Example/Vec3T.java +++ b/tests/MyGame/Example/Vec3T.java @@ -9,7 +9,9 @@ import com.google.flatbuffers.DoubleVector; import com.google.flatbuffers.FlatBufferBuilder; import com.google.flatbuffers.FloatVector; +import com.google.flatbuffers.IntVector; import com.google.flatbuffers.LongVector; +import com.google.flatbuffers.ShortVector; import com.google.flatbuffers.StringVector; import com.google.flatbuffers.Struct; import com.google.flatbuffers.Table; diff --git a/tests/MyGame/Example2/Monster.java b/tests/MyGame/Example2/Monster.java index d701d97c51..5ba6d76387 100644 --- a/tests/MyGame/Example2/Monster.java +++ b/tests/MyGame/Example2/Monster.java @@ -9,7 +9,9 @@ import com.google.flatbuffers.DoubleVector; import com.google.flatbuffers.FlatBufferBuilder; import com.google.flatbuffers.FloatVector; +import com.google.flatbuffers.IntVector; import com.google.flatbuffers.LongVector; +import com.google.flatbuffers.ShortVector; import com.google.flatbuffers.StringVector; import com.google.flatbuffers.Struct; import com.google.flatbuffers.Table; diff --git a/tests/MyGame/Example2/MonsterT.java b/tests/MyGame/Example2/MonsterT.java index e26608422c..699d6c6daa 100644 --- a/tests/MyGame/Example2/MonsterT.java +++ b/tests/MyGame/Example2/MonsterT.java @@ -9,7 +9,9 @@ import com.google.flatbuffers.DoubleVector; import com.google.flatbuffers.FlatBufferBuilder; import com.google.flatbuffers.FloatVector; +import com.google.flatbuffers.IntVector; import com.google.flatbuffers.LongVector; +import com.google.flatbuffers.ShortVector; import com.google.flatbuffers.StringVector; import com.google.flatbuffers.Struct; import com.google.flatbuffers.Table; diff --git a/tests/MyGame/InParentNamespace.java b/tests/MyGame/InParentNamespace.java index 15651390bd..bc4da5e6d4 100644 --- a/tests/MyGame/InParentNamespace.java +++ b/tests/MyGame/InParentNamespace.java @@ -9,7 +9,9 @@ import com.google.flatbuffers.DoubleVector; import com.google.flatbuffers.FlatBufferBuilder; import com.google.flatbuffers.FloatVector; +import com.google.flatbuffers.IntVector; import com.google.flatbuffers.LongVector; +import com.google.flatbuffers.ShortVector; import com.google.flatbuffers.StringVector; import com.google.flatbuffers.Struct; import com.google.flatbuffers.Table; diff --git a/tests/MyGame/InParentNamespaceT.java b/tests/MyGame/InParentNamespaceT.java index bba62ec280..9180ce19ac 100644 --- a/tests/MyGame/InParentNamespaceT.java +++ b/tests/MyGame/InParentNamespaceT.java @@ -9,7 +9,9 @@ import com.google.flatbuffers.DoubleVector; import com.google.flatbuffers.FlatBufferBuilder; import com.google.flatbuffers.FloatVector; +import com.google.flatbuffers.IntVector; import com.google.flatbuffers.LongVector; +import com.google.flatbuffers.ShortVector; import com.google.flatbuffers.StringVector; import com.google.flatbuffers.Struct; import com.google.flatbuffers.Table; diff --git a/tests/MyGame/MonsterExtra.java b/tests/MyGame/MonsterExtra.java index bbc06691d3..85b243c98a 100644 --- a/tests/MyGame/MonsterExtra.java +++ b/tests/MyGame/MonsterExtra.java @@ -9,7 +9,9 @@ import com.google.flatbuffers.DoubleVector; import com.google.flatbuffers.FlatBufferBuilder; import com.google.flatbuffers.FloatVector; +import com.google.flatbuffers.IntVector; import com.google.flatbuffers.LongVector; +import com.google.flatbuffers.ShortVector; import com.google.flatbuffers.StringVector; import com.google.flatbuffers.Struct; import com.google.flatbuffers.Table; diff --git a/tests/MyGame/MonsterExtraT.java b/tests/MyGame/MonsterExtraT.java index 9f3c8b19d9..8872c1ce2d 100644 --- a/tests/MyGame/MonsterExtraT.java +++ b/tests/MyGame/MonsterExtraT.java @@ -9,7 +9,9 @@ import com.google.flatbuffers.DoubleVector; import com.google.flatbuffers.FlatBufferBuilder; import com.google.flatbuffers.FloatVector; +import com.google.flatbuffers.IntVector; import com.google.flatbuffers.LongVector; +import com.google.flatbuffers.ShortVector; import com.google.flatbuffers.StringVector; import com.google.flatbuffers.Struct; import com.google.flatbuffers.Table; diff --git a/tests/optional_scalars/ScalarStuff.java b/tests/optional_scalars/ScalarStuff.java index c7d9831ac8..10b29242bd 100644 --- a/tests/optional_scalars/ScalarStuff.java +++ b/tests/optional_scalars/ScalarStuff.java @@ -9,7 +9,9 @@ import com.google.flatbuffers.DoubleVector; import com.google.flatbuffers.FlatBufferBuilder; import com.google.flatbuffers.FloatVector; +import com.google.flatbuffers.IntVector; import com.google.flatbuffers.LongVector; +import com.google.flatbuffers.ShortVector; import com.google.flatbuffers.StringVector; import com.google.flatbuffers.Struct; import com.google.flatbuffers.Table; diff --git a/tests/py_test.py b/tests/py_test.py index fe3d10e553..204a96dd4b 100644 --- a/tests/py_test.py +++ b/tests/py_test.py @@ -1418,7 +1418,7 @@ def test_create_numpy_vector_bool(self): # Systems endian: b = flatbuffers.Builder(0) - x = np.array([True, False, True], dtype=np.bool) + x = np.array([True, False, True], dtype=bool) b.CreateNumpyVector(x) self.assertBuilderEquals( b, diff --git a/tests/union_vector/Attacker.java b/tests/union_vector/Attacker.java index 78a4691ee4..9723140cae 100644 --- a/tests/union_vector/Attacker.java +++ b/tests/union_vector/Attacker.java @@ -7,7 +7,9 @@ import com.google.flatbuffers.DoubleVector; import com.google.flatbuffers.FlatBufferBuilder; import com.google.flatbuffers.FloatVector; +import com.google.flatbuffers.IntVector; import com.google.flatbuffers.LongVector; +import com.google.flatbuffers.ShortVector; import com.google.flatbuffers.StringVector; import com.google.flatbuffers.Struct; import com.google.flatbuffers.Table; diff --git a/tests/union_vector/AttackerT.java b/tests/union_vector/AttackerT.java index 0fa46a7606..39e9b67574 100644 --- a/tests/union_vector/AttackerT.java +++ b/tests/union_vector/AttackerT.java @@ -7,7 +7,9 @@ import com.google.flatbuffers.DoubleVector; import com.google.flatbuffers.FlatBufferBuilder; import com.google.flatbuffers.FloatVector; +import com.google.flatbuffers.IntVector; import com.google.flatbuffers.LongVector; +import com.google.flatbuffers.ShortVector; import com.google.flatbuffers.StringVector; import com.google.flatbuffers.Struct; import com.google.flatbuffers.Table; diff --git a/tests/union_vector/BookReader.java b/tests/union_vector/BookReader.java index f2e15741a8..3ff0df5402 100644 --- a/tests/union_vector/BookReader.java +++ b/tests/union_vector/BookReader.java @@ -7,7 +7,9 @@ import com.google.flatbuffers.DoubleVector; import com.google.flatbuffers.FlatBufferBuilder; import com.google.flatbuffers.FloatVector; +import com.google.flatbuffers.IntVector; import com.google.flatbuffers.LongVector; +import com.google.flatbuffers.ShortVector; import com.google.flatbuffers.StringVector; import com.google.flatbuffers.Struct; import com.google.flatbuffers.Table; diff --git a/tests/union_vector/BookReaderT.java b/tests/union_vector/BookReaderT.java index 9000d60028..f07d7c558c 100644 --- a/tests/union_vector/BookReaderT.java +++ b/tests/union_vector/BookReaderT.java @@ -7,7 +7,9 @@ import com.google.flatbuffers.DoubleVector; import com.google.flatbuffers.FlatBufferBuilder; import com.google.flatbuffers.FloatVector; +import com.google.flatbuffers.IntVector; import com.google.flatbuffers.LongVector; +import com.google.flatbuffers.ShortVector; import com.google.flatbuffers.StringVector; import com.google.flatbuffers.Struct; import com.google.flatbuffers.Table; diff --git a/tests/union_vector/FallingTub.java b/tests/union_vector/FallingTub.java index 272f18f896..70eabbf0f2 100644 --- a/tests/union_vector/FallingTub.java +++ b/tests/union_vector/FallingTub.java @@ -7,7 +7,9 @@ import com.google.flatbuffers.DoubleVector; import com.google.flatbuffers.FlatBufferBuilder; import com.google.flatbuffers.FloatVector; +import com.google.flatbuffers.IntVector; import com.google.flatbuffers.LongVector; +import com.google.flatbuffers.ShortVector; import com.google.flatbuffers.StringVector; import com.google.flatbuffers.Struct; import com.google.flatbuffers.Table; diff --git a/tests/union_vector/FallingTubT.java b/tests/union_vector/FallingTubT.java index 23275354f9..0f373fd796 100644 --- a/tests/union_vector/FallingTubT.java +++ b/tests/union_vector/FallingTubT.java @@ -7,7 +7,9 @@ import com.google.flatbuffers.DoubleVector; import com.google.flatbuffers.FlatBufferBuilder; import com.google.flatbuffers.FloatVector; +import com.google.flatbuffers.IntVector; import com.google.flatbuffers.LongVector; +import com.google.flatbuffers.ShortVector; import com.google.flatbuffers.StringVector; import com.google.flatbuffers.Struct; import com.google.flatbuffers.Table; diff --git a/tests/union_vector/HandFan.java b/tests/union_vector/HandFan.java index 74103caed3..df347e1917 100644 --- a/tests/union_vector/HandFan.java +++ b/tests/union_vector/HandFan.java @@ -7,7 +7,9 @@ import com.google.flatbuffers.DoubleVector; import com.google.flatbuffers.FlatBufferBuilder; import com.google.flatbuffers.FloatVector; +import com.google.flatbuffers.IntVector; import com.google.flatbuffers.LongVector; +import com.google.flatbuffers.ShortVector; import com.google.flatbuffers.StringVector; import com.google.flatbuffers.Struct; import com.google.flatbuffers.Table; diff --git a/tests/union_vector/HandFanT.java b/tests/union_vector/HandFanT.java index b3500a9508..d1ad4cf44b 100644 --- a/tests/union_vector/HandFanT.java +++ b/tests/union_vector/HandFanT.java @@ -7,7 +7,9 @@ import com.google.flatbuffers.DoubleVector; import com.google.flatbuffers.FlatBufferBuilder; import com.google.flatbuffers.FloatVector; +import com.google.flatbuffers.IntVector; import com.google.flatbuffers.LongVector; +import com.google.flatbuffers.ShortVector; import com.google.flatbuffers.StringVector; import com.google.flatbuffers.Struct; import com.google.flatbuffers.Table; diff --git a/tests/union_vector/Movie.java b/tests/union_vector/Movie.java index bf1455c5fe..af2be44711 100644 --- a/tests/union_vector/Movie.java +++ b/tests/union_vector/Movie.java @@ -7,7 +7,9 @@ import com.google.flatbuffers.DoubleVector; import com.google.flatbuffers.FlatBufferBuilder; import com.google.flatbuffers.FloatVector; +import com.google.flatbuffers.IntVector; import com.google.flatbuffers.LongVector; +import com.google.flatbuffers.ShortVector; import com.google.flatbuffers.StringVector; import com.google.flatbuffers.Struct; import com.google.flatbuffers.Table; diff --git a/tests/union_vector/MovieT.java b/tests/union_vector/MovieT.java index a9551629c7..0a3bb59a31 100644 --- a/tests/union_vector/MovieT.java +++ b/tests/union_vector/MovieT.java @@ -7,7 +7,9 @@ import com.google.flatbuffers.DoubleVector; import com.google.flatbuffers.FlatBufferBuilder; import com.google.flatbuffers.FloatVector; +import com.google.flatbuffers.IntVector; import com.google.flatbuffers.LongVector; +import com.google.flatbuffers.ShortVector; import com.google.flatbuffers.StringVector; import com.google.flatbuffers.Struct; import com.google.flatbuffers.Table; diff --git a/tests/union_vector/Rapunzel.java b/tests/union_vector/Rapunzel.java index f348ae13d1..422b4bf2e0 100644 --- a/tests/union_vector/Rapunzel.java +++ b/tests/union_vector/Rapunzel.java @@ -7,7 +7,9 @@ import com.google.flatbuffers.DoubleVector; import com.google.flatbuffers.FlatBufferBuilder; import com.google.flatbuffers.FloatVector; +import com.google.flatbuffers.IntVector; import com.google.flatbuffers.LongVector; +import com.google.flatbuffers.ShortVector; import com.google.flatbuffers.StringVector; import com.google.flatbuffers.Struct; import com.google.flatbuffers.Table; diff --git a/tests/union_vector/RapunzelT.java b/tests/union_vector/RapunzelT.java index 6a9808177c..5adbcc67ee 100644 --- a/tests/union_vector/RapunzelT.java +++ b/tests/union_vector/RapunzelT.java @@ -7,7 +7,9 @@ import com.google.flatbuffers.DoubleVector; import com.google.flatbuffers.FlatBufferBuilder; import com.google.flatbuffers.FloatVector; +import com.google.flatbuffers.IntVector; import com.google.flatbuffers.LongVector; +import com.google.flatbuffers.ShortVector; import com.google.flatbuffers.StringVector; import com.google.flatbuffers.Struct; import com.google.flatbuffers.Table; From e43a80c32229e7b1acadfba44b626366eeff5951 Mon Sep 17 00:00:00 2001 From: James Kuszmaul Date: Thu, 22 Dec 2022 12:59:40 -0800 Subject: [PATCH 067/571] [TS] Fix getFullyQualifiedName codegen for typescript (#7730) #7451 caused getFullyQualifiedName to return a name with underscores, not periods. Because the fully qualified name is a property of FlatBuffers, not the language being codegen'd for, it should use periods. Fixes #7564. Co-authored-by: Derek Bailey --- src/idl_gen_ts.cpp | 5 +++- .../arrays_test_complex_generated.js | 10 +++---- .../arrays_test_complex_generated.ts | 10 +++---- tests/ts/my-game/example/ability.js | 2 +- tests/ts/my-game/example/ability.ts | 2 +- tests/ts/my-game/example/monster.js | 26 ++++++++++++++++--- tests/ts/my-game/example/monster.ts | 2 +- tests/ts/my-game/example/referrable.js | 2 +- tests/ts/my-game/example/referrable.ts | 2 +- tests/ts/my-game/example/stat.js | 2 +- tests/ts/my-game/example/stat.ts | 2 +- .../example/struct-of-structs-of-structs.js | 2 +- .../example/struct-of-structs-of-structs.ts | 2 +- tests/ts/my-game/example/struct-of-structs.js | 2 +- tests/ts/my-game/example/struct-of-structs.ts | 2 +- .../example/test-simple-table-with-enum.js | 2 +- .../example/test-simple-table-with-enum.ts | 2 +- tests/ts/my-game/example/test.js | 2 +- tests/ts/my-game/example/test.ts | 2 +- tests/ts/my-game/example/type-aliases.js | 2 +- tests/ts/my-game/example/type-aliases.ts | 2 +- tests/ts/my-game/example/vec3.js | 2 +- tests/ts/my-game/example/vec3.ts | 2 +- tests/ts/my-game/example2/monster.js | 2 +- tests/ts/my-game/example2/monster.ts | 2 +- tests/ts/my-game/in-parent-namespace.js | 2 +- tests/ts/my-game/in-parent-namespace.ts | 2 +- tests/ts/optional-scalars/scalar-stuff.ts | 2 +- tests/ts/reflection/enum-val.js | 2 +- tests/ts/reflection/enum-val.ts | 2 +- tests/ts/reflection/enum.js | 2 +- tests/ts/reflection/enum.ts | 2 +- tests/ts/reflection/field.js | 2 +- tests/ts/reflection/field.ts | 2 +- tests/ts/reflection/key-value.js | 2 +- tests/ts/reflection/key-value.ts | 2 +- tests/ts/reflection/object.js | 2 +- tests/ts/reflection/object.ts | 2 +- tests/ts/reflection/rpccall.js | 2 +- tests/ts/reflection/rpccall.ts | 2 +- tests/ts/reflection/schema-file.js | 2 +- tests/ts/reflection/schema-file.ts | 2 +- tests/ts/reflection/schema.js | 2 +- tests/ts/reflection/schema.ts | 2 +- tests/ts/reflection/service.js | 2 +- tests/ts/reflection/service.ts | 2 +- tests/ts/reflection/type.js | 2 +- tests/ts/reflection/type.ts | 2 +- tests/ts/reflection_generated.js | 20 +++++++------- tests/ts/reflection_generated.ts | 20 +++++++------- tests/ts/typescript/object.js | 2 +- tests/ts/typescript/object.ts | 2 +- tests/ts/typescript_keywords_generated.js | 2 +- tests/ts/typescript_keywords_generated.ts | 2 +- 54 files changed, 104 insertions(+), 83 deletions(-) diff --git a/src/idl_gen_ts.cpp b/src/idl_gen_ts.cpp index d37a407906..ce3404bde7 100644 --- a/src/idl_gen_ts.cpp +++ b/src/idl_gen_ts.cpp @@ -1898,7 +1898,10 @@ class TsGenerator : public BaseGenerator { if (parser_.opts.generate_name_strings) { GenDocComment(code_ptr); code += "static getFullyQualifiedName():string {\n"; - code += " return '" + WrapInNameSpace(struct_def) + "';\n"; + code += + " return '" + + struct_def.defined_namespace->GetFullyQualifiedName(struct_def.name) + + "';\n"; code += "}\n\n"; } diff --git a/tests/ts/arrays_test_complex/arrays_test_complex_generated.js b/tests/ts/arrays_test_complex/arrays_test_complex_generated.js index 7530e84633..f2811a1349 100644 --- a/tests/ts/arrays_test_complex/arrays_test_complex_generated.js +++ b/tests/ts/arrays_test_complex/arrays_test_complex_generated.js @@ -29,7 +29,7 @@ export class InnerStruct { return this.bb.readInt64(this.bb_pos + 24); } static getFullyQualifiedName() { - return 'MyGame_Example_InnerStruct'; + return 'MyGame.Example.InnerStruct'; } static sizeOf() { return 32; @@ -96,7 +96,7 @@ export class OuterStruct { return this.bb.readFloat64(this.bb_pos + 176 + index * 8); } static getFullyQualifiedName() { - return 'MyGame_Example_OuterStruct'; + return 'MyGame.Example.OuterStruct'; } static sizeOf() { return 208; @@ -188,7 +188,7 @@ export class NestedStruct { return this.bb.readInt64(this.bb_pos + 1056 + index * 8); } static getFullyQualifiedName() { - return 'MyGame_Example_NestedStruct'; + return 'MyGame.Example.NestedStruct'; } static sizeOf() { return 1072; @@ -272,7 +272,7 @@ export class ArrayStruct { return this.bb.readInt64(this.bb_pos + 2640 + index * 8); } static getFullyQualifiedName() { - return 'MyGame_Example_ArrayStruct'; + return 'MyGame.Example.ArrayStruct'; } static sizeOf() { return 2656; @@ -365,7 +365,7 @@ export class ArrayTable { return offset ? (obj || new ArrayStruct()).__init(this.bb_pos + offset, this.bb) : null; } static getFullyQualifiedName() { - return 'MyGame_Example_ArrayTable'; + return 'MyGame.Example.ArrayTable'; } static startArrayTable(builder) { builder.startObject(2); diff --git a/tests/ts/arrays_test_complex/arrays_test_complex_generated.ts b/tests/ts/arrays_test_complex/arrays_test_complex_generated.ts index eea0ed996d..4686a56281 100644 --- a/tests/ts/arrays_test_complex/arrays_test_complex_generated.ts +++ b/tests/ts/arrays_test_complex/arrays_test_complex_generated.ts @@ -35,7 +35,7 @@ dUnderscore():bigint { } static getFullyQualifiedName():string { - return 'MyGame_Example_InnerStruct'; + return 'MyGame.Example.InnerStruct'; } static sizeOf():number { @@ -129,7 +129,7 @@ f(index: number):number|null { } static getFullyQualifiedName():string { - return 'MyGame_Example_OuterStruct'; + return 'MyGame.Example.OuterStruct'; } static sizeOf():number { @@ -271,7 +271,7 @@ e(index: number):bigint|null { } static getFullyQualifiedName():string { - return 'MyGame_Example_NestedStruct'; + return 'MyGame.Example.NestedStruct'; } static sizeOf():number { @@ -407,7 +407,7 @@ g(index: number):bigint|null { } static getFullyQualifiedName():string { - return 'MyGame_Example_ArrayStruct'; + return 'MyGame.Example.ArrayStruct'; } static sizeOf():number { @@ -563,7 +563,7 @@ cUnderscore(obj?:ArrayStruct):ArrayStruct|null { } static getFullyQualifiedName():string { - return 'MyGame_Example_ArrayTable'; + return 'MyGame.Example.ArrayTable'; } static startArrayTable(builder:flatbuffers.Builder) { diff --git a/tests/ts/my-game/example/ability.js b/tests/ts/my-game/example/ability.js index 4d7d3db729..9fea3d6b4e 100644 --- a/tests/ts/my-game/example/ability.js +++ b/tests/ts/my-game/example/ability.js @@ -24,7 +24,7 @@ export class Ability { return true; } static getFullyQualifiedName() { - return 'MyGame_Example_Ability'; + return 'MyGame.Example.Ability'; } static sizeOf() { return 8; diff --git a/tests/ts/my-game/example/ability.ts b/tests/ts/my-game/example/ability.ts index b0bea8fe84..86604ad11f 100644 --- a/tests/ts/my-game/example/ability.ts +++ b/tests/ts/my-game/example/ability.ts @@ -32,7 +32,7 @@ mutate_distance(value:number):boolean { } static getFullyQualifiedName():string { - return 'MyGame_Example_Ability'; + return 'MyGame.Example.Ability'; } static sizeOf():number { diff --git a/tests/ts/my-game/example/monster.js b/tests/ts/my-game/example/monster.js index 97c93991c8..6d71945dfe 100644 --- a/tests/ts/my-game/example/monster.js +++ b/tests/ts/my-game/example/monster.js @@ -610,11 +610,23 @@ export class Monster { this.bb.writeFloat32(this.bb_pos + offset, value); return true; } + doubleInfDefault() { + const offset = this.bb.__offset(this.bb_pos, 126); + return offset ? this.bb.readFloat64(this.bb_pos + offset) : Infinity; + } + mutate_double_inf_default(value) { + const offset = this.bb.__offset(this.bb_pos, 126); + if (offset === 0) { + return false; + } + this.bb.writeFloat64(this.bb_pos + offset, value); + return true; + } static getFullyQualifiedName() { - return 'MyGame_Example_Monster'; + return 'MyGame.Example.Monster'; } static startMonster(builder) { - builder.startObject(61); + builder.startObject(62); } static addPos(builder, posOffset) { builder.addFieldStruct(0, posOffset, 0); @@ -975,6 +987,9 @@ export class Monster { static addNegativeInfinityDefault(builder, negativeInfinityDefault) { builder.addFieldFloat32(60, negativeInfinityDefault, -Infinity); } + static addDoubleInfDefault(builder, doubleInfDefault) { + builder.addFieldFloat64(61, doubleInfDefault, Infinity); + } static endMonster(builder) { const offset = builder.endObject(); builder.requiredField(offset, 10); // name @@ -1011,7 +1026,7 @@ export class Monster { return null; } return temp.unpack(); - })(), this.bb.createScalarList(this.vectorOfEnums.bind(this), this.vectorOfEnumsLength()), this.signedEnum(), this.bb.createScalarList(this.testrequirednestedflatbuffer.bind(this), this.testrequirednestedflatbufferLength()), this.bb.createObjList(this.scalarKeySortedTables.bind(this), this.scalarKeySortedTablesLength()), (this.nativeInline() !== null ? this.nativeInline().unpack() : null), this.longEnumNonEnumDefault(), this.longEnumNormalDefault(), this.nanDefault(), this.infDefault(), this.positiveInfDefault(), this.infinityDefault(), this.positiveInfinityDefault(), this.negativeInfDefault(), this.negativeInfinityDefault()); + })(), this.bb.createScalarList(this.vectorOfEnums.bind(this), this.vectorOfEnumsLength()), this.signedEnum(), this.bb.createScalarList(this.testrequirednestedflatbuffer.bind(this), this.testrequirednestedflatbufferLength()), this.bb.createObjList(this.scalarKeySortedTables.bind(this), this.scalarKeySortedTablesLength()), (this.nativeInline() !== null ? this.nativeInline().unpack() : null), this.longEnumNonEnumDefault(), this.longEnumNormalDefault(), this.nanDefault(), this.infDefault(), this.positiveInfDefault(), this.infinityDefault(), this.positiveInfinityDefault(), this.negativeInfDefault(), this.negativeInfinityDefault(), this.doubleInfDefault()); } unpackTo(_o) { _o.pos = (this.pos() !== null ? this.pos().unpack() : null); @@ -1092,10 +1107,11 @@ export class Monster { _o.positiveInfinityDefault = this.positiveInfinityDefault(); _o.negativeInfDefault = this.negativeInfDefault(); _o.negativeInfinityDefault = this.negativeInfinityDefault(); + _o.doubleInfDefault = this.doubleInfDefault(); } } export class MonsterT { - constructor(pos = null, mana = 150, hp = 100, name = null, inventory = [], color = Color.Blue, testType = Any.NONE, test = null, test4 = [], testarrayofstring = [], testarrayoftables = [], enemy = null, testnestedflatbuffer = [], testempty = null, testbool = false, testhashs32Fnv1 = 0, testhashu32Fnv1 = 0, testhashs64Fnv1 = BigInt('0'), testhashu64Fnv1 = BigInt('0'), testhashs32Fnv1a = 0, testhashu32Fnv1a = 0, testhashs64Fnv1a = BigInt('0'), testhashu64Fnv1a = BigInt('0'), testarrayofbools = [], testf = 3.14159, testf2 = 3.0, testf3 = 0.0, testarrayofstring2 = [], testarrayofsortedstruct = [], flex = [], test5 = [], vectorOfLongs = [], vectorOfDoubles = [], parentNamespaceTest = null, vectorOfReferrables = [], singleWeakReference = BigInt('0'), vectorOfWeakReferences = [], vectorOfStrongReferrables = [], coOwningReference = BigInt('0'), vectorOfCoOwningReferences = [], nonOwningReference = BigInt('0'), vectorOfNonOwningReferences = [], anyUniqueType = AnyUniqueAliases.NONE, anyUnique = null, anyAmbiguousType = AnyAmbiguousAliases.NONE, anyAmbiguous = null, vectorOfEnums = [], signedEnum = Race.None, testrequirednestedflatbuffer = [], scalarKeySortedTables = [], nativeInline = null, longEnumNonEnumDefault = BigInt('0'), longEnumNormalDefault = BigInt('2'), nanDefault = NaN, infDefault = Infinity, positiveInfDefault = Infinity, infinityDefault = Infinity, positiveInfinityDefault = Infinity, negativeInfDefault = -Infinity, negativeInfinityDefault = -Infinity) { + constructor(pos = null, mana = 150, hp = 100, name = null, inventory = [], color = Color.Blue, testType = Any.NONE, test = null, test4 = [], testarrayofstring = [], testarrayoftables = [], enemy = null, testnestedflatbuffer = [], testempty = null, testbool = false, testhashs32Fnv1 = 0, testhashu32Fnv1 = 0, testhashs64Fnv1 = BigInt('0'), testhashu64Fnv1 = BigInt('0'), testhashs32Fnv1a = 0, testhashu32Fnv1a = 0, testhashs64Fnv1a = BigInt('0'), testhashu64Fnv1a = BigInt('0'), testarrayofbools = [], testf = 3.14159, testf2 = 3.0, testf3 = 0.0, testarrayofstring2 = [], testarrayofsortedstruct = [], flex = [], test5 = [], vectorOfLongs = [], vectorOfDoubles = [], parentNamespaceTest = null, vectorOfReferrables = [], singleWeakReference = BigInt('0'), vectorOfWeakReferences = [], vectorOfStrongReferrables = [], coOwningReference = BigInt('0'), vectorOfCoOwningReferences = [], nonOwningReference = BigInt('0'), vectorOfNonOwningReferences = [], anyUniqueType = AnyUniqueAliases.NONE, anyUnique = null, anyAmbiguousType = AnyAmbiguousAliases.NONE, anyAmbiguous = null, vectorOfEnums = [], signedEnum = Race.None, testrequirednestedflatbuffer = [], scalarKeySortedTables = [], nativeInline = null, longEnumNonEnumDefault = BigInt('0'), longEnumNormalDefault = BigInt('2'), nanDefault = NaN, infDefault = Infinity, positiveInfDefault = Infinity, infinityDefault = Infinity, positiveInfinityDefault = Infinity, negativeInfDefault = -Infinity, negativeInfinityDefault = -Infinity, doubleInfDefault = Infinity) { this.pos = pos; this.mana = mana; this.hp = hp; @@ -1156,6 +1172,7 @@ export class MonsterT { this.positiveInfinityDefault = positiveInfinityDefault; this.negativeInfDefault = negativeInfDefault; this.negativeInfinityDefault = negativeInfinityDefault; + this.doubleInfDefault = doubleInfDefault; } pack(builder) { const name = (this.name !== null ? builder.createString(this.name) : 0); @@ -1246,6 +1263,7 @@ export class MonsterT { Monster.addPositiveInfinityDefault(builder, this.positiveInfinityDefault); Monster.addNegativeInfDefault(builder, this.negativeInfDefault); Monster.addNegativeInfinityDefault(builder, this.negativeInfinityDefault); + Monster.addDoubleInfDefault(builder, this.doubleInfDefault); return Monster.endMonster(builder); } } diff --git a/tests/ts/my-game/example/monster.ts b/tests/ts/my-game/example/monster.ts index 7e205ee195..78590c6686 100644 --- a/tests/ts/my-game/example/monster.ts +++ b/tests/ts/my-game/example/monster.ts @@ -812,7 +812,7 @@ mutate_double_inf_default(value:number):boolean { } static getFullyQualifiedName():string { - return 'MyGame_Example_Monster'; + return 'MyGame.Example.Monster'; } static startMonster(builder:flatbuffers.Builder) { diff --git a/tests/ts/my-game/example/referrable.js b/tests/ts/my-game/example/referrable.js index 367034b064..0370768dd6 100644 --- a/tests/ts/my-game/example/referrable.js +++ b/tests/ts/my-game/example/referrable.js @@ -30,7 +30,7 @@ export class Referrable { return true; } static getFullyQualifiedName() { - return 'MyGame_Example_Referrable'; + return 'MyGame.Example.Referrable'; } static startReferrable(builder) { builder.startObject(1); diff --git a/tests/ts/my-game/example/referrable.ts b/tests/ts/my-game/example/referrable.ts index 52603629aa..8e199bb62a 100644 --- a/tests/ts/my-game/example/referrable.ts +++ b/tests/ts/my-game/example/referrable.ts @@ -39,7 +39,7 @@ mutate_id(value:bigint):boolean { } static getFullyQualifiedName():string { - return 'MyGame_Example_Referrable'; + return 'MyGame.Example.Referrable'; } static startReferrable(builder:flatbuffers.Builder) { diff --git a/tests/ts/my-game/example/stat.js b/tests/ts/my-game/example/stat.js index 43b569f4e3..46eec43441 100644 --- a/tests/ts/my-game/example/stat.js +++ b/tests/ts/my-game/example/stat.js @@ -46,7 +46,7 @@ export class Stat { return true; } static getFullyQualifiedName() { - return 'MyGame_Example_Stat'; + return 'MyGame.Example.Stat'; } static startStat(builder) { builder.startObject(3); diff --git a/tests/ts/my-game/example/stat.ts b/tests/ts/my-game/example/stat.ts index c1597b2a91..b5d87ff3e2 100644 --- a/tests/ts/my-game/example/stat.ts +++ b/tests/ts/my-game/example/stat.ts @@ -62,7 +62,7 @@ mutate_count(value:number):boolean { } static getFullyQualifiedName():string { - return 'MyGame_Example_Stat'; + return 'MyGame.Example.Stat'; } static startStat(builder:flatbuffers.Builder) { diff --git a/tests/ts/my-game/example/struct-of-structs-of-structs.js b/tests/ts/my-game/example/struct-of-structs-of-structs.js index a5fbc66dce..97f65877dd 100644 --- a/tests/ts/my-game/example/struct-of-structs-of-structs.js +++ b/tests/ts/my-game/example/struct-of-structs-of-structs.js @@ -14,7 +14,7 @@ export class StructOfStructsOfStructs { return (obj || new StructOfStructs()).__init(this.bb_pos, this.bb); } static getFullyQualifiedName() { - return 'MyGame_Example_StructOfStructsOfStructs'; + return 'MyGame.Example.StructOfStructsOfStructs'; } static sizeOf() { return 20; diff --git a/tests/ts/my-game/example/struct-of-structs-of-structs.ts b/tests/ts/my-game/example/struct-of-structs-of-structs.ts index fa17939b87..2464e56f99 100644 --- a/tests/ts/my-game/example/struct-of-structs-of-structs.ts +++ b/tests/ts/my-game/example/struct-of-structs-of-structs.ts @@ -19,7 +19,7 @@ a(obj?:StructOfStructs):StructOfStructs|null { } static getFullyQualifiedName():string { - return 'MyGame_Example_StructOfStructsOfStructs'; + return 'MyGame.Example.StructOfStructsOfStructs'; } static sizeOf():number { diff --git a/tests/ts/my-game/example/struct-of-structs.js b/tests/ts/my-game/example/struct-of-structs.js index 66aadc8e54..3d79d39471 100644 --- a/tests/ts/my-game/example/struct-of-structs.js +++ b/tests/ts/my-game/example/struct-of-structs.js @@ -21,7 +21,7 @@ export class StructOfStructs { return (obj || new Ability()).__init(this.bb_pos + 12, this.bb); } static getFullyQualifiedName() { - return 'MyGame_Example_StructOfStructs'; + return 'MyGame.Example.StructOfStructs'; } static sizeOf() { return 20; diff --git a/tests/ts/my-game/example/struct-of-structs.ts b/tests/ts/my-game/example/struct-of-structs.ts index 10d3607f15..f1e3146fb6 100644 --- a/tests/ts/my-game/example/struct-of-structs.ts +++ b/tests/ts/my-game/example/struct-of-structs.ts @@ -28,7 +28,7 @@ c(obj?:Ability):Ability|null { } static getFullyQualifiedName():string { - return 'MyGame_Example_StructOfStructs'; + return 'MyGame.Example.StructOfStructs'; } static sizeOf():number { diff --git a/tests/ts/my-game/example/test-simple-table-with-enum.js b/tests/ts/my-game/example/test-simple-table-with-enum.js index 3690feeb76..821cca9926 100644 --- a/tests/ts/my-game/example/test-simple-table-with-enum.js +++ b/tests/ts/my-game/example/test-simple-table-with-enum.js @@ -31,7 +31,7 @@ export class TestSimpleTableWithEnum { return true; } static getFullyQualifiedName() { - return 'MyGame_Example_TestSimpleTableWithEnum'; + return 'MyGame.Example.TestSimpleTableWithEnum'; } static startTestSimpleTableWithEnum(builder) { builder.startObject(1); diff --git a/tests/ts/my-game/example/test-simple-table-with-enum.ts b/tests/ts/my-game/example/test-simple-table-with-enum.ts index 903ab99cbf..e28c80f01b 100644 --- a/tests/ts/my-game/example/test-simple-table-with-enum.ts +++ b/tests/ts/my-game/example/test-simple-table-with-enum.ts @@ -40,7 +40,7 @@ mutate_color(value:Color):boolean { } static getFullyQualifiedName():string { - return 'MyGame_Example_TestSimpleTableWithEnum'; + return 'MyGame.Example.TestSimpleTableWithEnum'; } static startTestSimpleTableWithEnum(builder:flatbuffers.Builder) { diff --git a/tests/ts/my-game/example/test.js b/tests/ts/my-game/example/test.js index 9c43619e21..ba6ebfb7af 100644 --- a/tests/ts/my-game/example/test.js +++ b/tests/ts/my-game/example/test.js @@ -24,7 +24,7 @@ export class Test { return true; } static getFullyQualifiedName() { - return 'MyGame_Example_Test'; + return 'MyGame.Example.Test'; } static sizeOf() { return 4; diff --git a/tests/ts/my-game/example/test.ts b/tests/ts/my-game/example/test.ts index 7484f2c158..0bad68292d 100644 --- a/tests/ts/my-game/example/test.ts +++ b/tests/ts/my-game/example/test.ts @@ -32,7 +32,7 @@ mutate_b(value:number):boolean { } static getFullyQualifiedName():string { - return 'MyGame_Example_Test'; + return 'MyGame.Example.Test'; } static sizeOf():number { diff --git a/tests/ts/my-game/example/type-aliases.js b/tests/ts/my-game/example/type-aliases.js index a4b5f89e3f..f26f226c8b 100644 --- a/tests/ts/my-game/example/type-aliases.js +++ b/tests/ts/my-game/example/type-aliases.js @@ -162,7 +162,7 @@ export class TypeAliases { return offset ? new Float64Array(this.bb.bytes().buffer, this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + offset), this.bb.__vector_len(this.bb_pos + offset)) : null; } static getFullyQualifiedName() { - return 'MyGame_Example_TypeAliases'; + return 'MyGame.Example.TypeAliases'; } static startTypeAliases(builder) { builder.startObject(12); diff --git a/tests/ts/my-game/example/type-aliases.ts b/tests/ts/my-game/example/type-aliases.ts index 93262d702f..3c727356cb 100644 --- a/tests/ts/my-game/example/type-aliases.ts +++ b/tests/ts/my-game/example/type-aliases.ts @@ -213,7 +213,7 @@ vf64Array():Float64Array|null { } static getFullyQualifiedName():string { - return 'MyGame_Example_TypeAliases'; + return 'MyGame.Example.TypeAliases'; } static startTypeAliases(builder:flatbuffers.Builder) { diff --git a/tests/ts/my-game/example/vec3.js b/tests/ts/my-game/example/vec3.js index cae64eb555..f880f118e3 100644 --- a/tests/ts/my-game/example/vec3.js +++ b/tests/ts/my-game/example/vec3.js @@ -49,7 +49,7 @@ export class Vec3 { return (obj || new Test()).__init(this.bb_pos + 26, this.bb); } static getFullyQualifiedName() { - return 'MyGame_Example_Vec3'; + return 'MyGame.Example.Vec3'; } static sizeOf() { return 32; diff --git a/tests/ts/my-game/example/vec3.ts b/tests/ts/my-game/example/vec3.ts index 84516e09cc..ad6cafaa73 100644 --- a/tests/ts/my-game/example/vec3.ts +++ b/tests/ts/my-game/example/vec3.ts @@ -65,7 +65,7 @@ test3(obj?:Test):Test|null { } static getFullyQualifiedName():string { - return 'MyGame_Example_Vec3'; + return 'MyGame.Example.Vec3'; } static sizeOf():number { diff --git a/tests/ts/my-game/example2/monster.js b/tests/ts/my-game/example2/monster.js index f50a2c85af..17f02b11ec 100644 --- a/tests/ts/my-game/example2/monster.js +++ b/tests/ts/my-game/example2/monster.js @@ -18,7 +18,7 @@ export class Monster { return (obj || new Monster()).__init(bb.readInt32(bb.position()) + bb.position(), bb); } static getFullyQualifiedName() { - return 'MyGame_Example2_Monster'; + return 'MyGame.Example2.Monster'; } static startMonster(builder) { builder.startObject(0); diff --git a/tests/ts/my-game/example2/monster.ts b/tests/ts/my-game/example2/monster.ts index 071448699b..66c555dded 100644 --- a/tests/ts/my-game/example2/monster.ts +++ b/tests/ts/my-game/example2/monster.ts @@ -23,7 +23,7 @@ static getSizePrefixedRootAsMonster(bb:flatbuffers.ByteBuffer, obj?:Monster):Mon } static getFullyQualifiedName():string { - return 'MyGame_Example2_Monster'; + return 'MyGame.Example2.Monster'; } static startMonster(builder:flatbuffers.Builder) { diff --git a/tests/ts/my-game/in-parent-namespace.js b/tests/ts/my-game/in-parent-namespace.js index 24b0ed7878..48817411bc 100644 --- a/tests/ts/my-game/in-parent-namespace.js +++ b/tests/ts/my-game/in-parent-namespace.js @@ -18,7 +18,7 @@ export class InParentNamespace { return (obj || new InParentNamespace()).__init(bb.readInt32(bb.position()) + bb.position(), bb); } static getFullyQualifiedName() { - return 'MyGame_InParentNamespace'; + return 'MyGame.InParentNamespace'; } static startInParentNamespace(builder) { builder.startObject(0); diff --git a/tests/ts/my-game/in-parent-namespace.ts b/tests/ts/my-game/in-parent-namespace.ts index 0e2f412876..4c0e4163de 100644 --- a/tests/ts/my-game/in-parent-namespace.ts +++ b/tests/ts/my-game/in-parent-namespace.ts @@ -23,7 +23,7 @@ static getSizePrefixedRootAsInParentNamespace(bb:flatbuffers.ByteBuffer, obj?:In } static getFullyQualifiedName():string { - return 'MyGame_InParentNamespace'; + return 'MyGame.InParentNamespace'; } static startInParentNamespace(builder:flatbuffers.Builder) { diff --git a/tests/ts/optional-scalars/scalar-stuff.ts b/tests/ts/optional-scalars/scalar-stuff.ts index 2adf31b339..fe74b2cb47 100644 --- a/tests/ts/optional-scalars/scalar-stuff.ts +++ b/tests/ts/optional-scalars/scalar-stuff.ts @@ -208,7 +208,7 @@ defaultEnum():OptionalByte { } static getFullyQualifiedName():string { - return 'optional_scalars_ScalarStuff'; + return 'optional_scalars.ScalarStuff'; } static startScalarStuff(builder:flatbuffers.Builder) { diff --git a/tests/ts/reflection/enum-val.js b/tests/ts/reflection/enum-val.js index 93926a61ae..b4d0769d54 100644 --- a/tests/ts/reflection/enum-val.js +++ b/tests/ts/reflection/enum-val.js @@ -56,7 +56,7 @@ export class EnumVal { return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; } static getFullyQualifiedName() { - return 'reflection_EnumVal'; + return 'reflection.EnumVal'; } static startEnumVal(builder) { builder.startObject(6); diff --git a/tests/ts/reflection/enum-val.ts b/tests/ts/reflection/enum-val.ts index 3119a20638..2576e7026c 100644 --- a/tests/ts/reflection/enum-val.ts +++ b/tests/ts/reflection/enum-val.ts @@ -75,7 +75,7 @@ attributesLength():number { } static getFullyQualifiedName():string { - return 'reflection_EnumVal'; + return 'reflection.EnumVal'; } static startEnumVal(builder:flatbuffers.Builder) { diff --git a/tests/ts/reflection/enum.js b/tests/ts/reflection/enum.js index 49393072b3..a08a8cbfa6 100644 --- a/tests/ts/reflection/enum.js +++ b/tests/ts/reflection/enum.js @@ -69,7 +69,7 @@ export class Enum { return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; } static getFullyQualifiedName() { - return 'reflection_Enum'; + return 'reflection.Enum'; } static startEnum(builder) { builder.startObject(7); diff --git a/tests/ts/reflection/enum.ts b/tests/ts/reflection/enum.ts index 34d137757e..edf29f65bd 100644 --- a/tests/ts/reflection/enum.ts +++ b/tests/ts/reflection/enum.ts @@ -96,7 +96,7 @@ declarationFile(optionalEncoding?:any):string|Uint8Array|null { } static getFullyQualifiedName():string { - return 'reflection_Enum'; + return 'reflection.Enum'; } static startEnum(builder:flatbuffers.Builder) { diff --git a/tests/ts/reflection/field.js b/tests/ts/reflection/field.js index 107b77bf0d..5d7e2f88c4 100644 --- a/tests/ts/reflection/field.js +++ b/tests/ts/reflection/field.js @@ -155,7 +155,7 @@ export class Field { return true; } static getFullyQualifiedName() { - return 'reflection_Field'; + return 'reflection.Field'; } static startField(builder) { builder.startObject(13); diff --git a/tests/ts/reflection/field.ts b/tests/ts/reflection/field.ts index 9734fbab5e..653611710e 100644 --- a/tests/ts/reflection/field.ts +++ b/tests/ts/reflection/field.ts @@ -206,7 +206,7 @@ mutate_padding(value:number):boolean { } static getFullyQualifiedName():string { - return 'reflection_Field'; + return 'reflection.Field'; } static startField(builder:flatbuffers.Builder) { diff --git a/tests/ts/reflection/key-value.js b/tests/ts/reflection/key-value.js index 622b4f2a88..f8c6b856fb 100644 --- a/tests/ts/reflection/key-value.js +++ b/tests/ts/reflection/key-value.js @@ -26,7 +26,7 @@ export class KeyValue { return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; } static getFullyQualifiedName() { - return 'reflection_KeyValue'; + return 'reflection.KeyValue'; } static startKeyValue(builder) { builder.startObject(2); diff --git a/tests/ts/reflection/key-value.ts b/tests/ts/reflection/key-value.ts index 93262f42f6..8a1e4a09be 100644 --- a/tests/ts/reflection/key-value.ts +++ b/tests/ts/reflection/key-value.ts @@ -37,7 +37,7 @@ value(optionalEncoding?:any):string|Uint8Array|null { } static getFullyQualifiedName():string { - return 'reflection_KeyValue'; + return 'reflection.KeyValue'; } static startKeyValue(builder:flatbuffers.Builder) { diff --git a/tests/ts/reflection/object.js b/tests/ts/reflection/object.js index d2885455a7..e3d15ecdef 100644 --- a/tests/ts/reflection/object.js +++ b/tests/ts/reflection/object.js @@ -88,7 +88,7 @@ export class Object_ { return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; } static getFullyQualifiedName() { - return 'reflection_Object'; + return 'reflection.Object'; } static startObject(builder) { builder.startObject(8); diff --git a/tests/ts/reflection/object.ts b/tests/ts/reflection/object.ts index fbe7006158..3a05effce1 100644 --- a/tests/ts/reflection/object.ts +++ b/tests/ts/reflection/object.ts @@ -122,7 +122,7 @@ declarationFile(optionalEncoding?:any):string|Uint8Array|null { } static getFullyQualifiedName():string { - return 'reflection_Object'; + return 'reflection.Object'; } static startObject(builder:flatbuffers.Builder) { diff --git a/tests/ts/reflection/rpccall.js b/tests/ts/reflection/rpccall.js index 96e92eb3f5..9dd1541a0a 100644 --- a/tests/ts/reflection/rpccall.js +++ b/tests/ts/reflection/rpccall.js @@ -48,7 +48,7 @@ export class RPCCall { return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; } static getFullyQualifiedName() { - return 'reflection_RPCCall'; + return 'reflection.RPCCall'; } static startRPCCall(builder) { builder.startObject(5); diff --git a/tests/ts/reflection/rpccall.ts b/tests/ts/reflection/rpccall.ts index 320de51695..61a862fc9b 100644 --- a/tests/ts/reflection/rpccall.ts +++ b/tests/ts/reflection/rpccall.ts @@ -64,7 +64,7 @@ documentationLength():number { } static getFullyQualifiedName():string { - return 'reflection_RPCCall'; + return 'reflection.RPCCall'; } static startRPCCall(builder:flatbuffers.Builder) { diff --git a/tests/ts/reflection/schema-file.js b/tests/ts/reflection/schema-file.js index 31c6145ddf..1aeeac8486 100644 --- a/tests/ts/reflection/schema-file.js +++ b/tests/ts/reflection/schema-file.js @@ -35,7 +35,7 @@ export class SchemaFile { return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; } static getFullyQualifiedName() { - return 'reflection_SchemaFile'; + return 'reflection.SchemaFile'; } static startSchemaFile(builder) { builder.startObject(2); diff --git a/tests/ts/reflection/schema-file.ts b/tests/ts/reflection/schema-file.ts index eda23dede0..6060b800d4 100644 --- a/tests/ts/reflection/schema-file.ts +++ b/tests/ts/reflection/schema-file.ts @@ -53,7 +53,7 @@ includedFilenamesLength():number { } static getFullyQualifiedName():string { - return 'reflection_SchemaFile'; + return 'reflection.SchemaFile'; } static startSchemaFile(builder:flatbuffers.Builder) { diff --git a/tests/ts/reflection/schema.js b/tests/ts/reflection/schema.js index d502297152..8cdb0c68ab 100644 --- a/tests/ts/reflection/schema.js +++ b/tests/ts/reflection/schema.js @@ -85,7 +85,7 @@ export class Schema { return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; } static getFullyQualifiedName() { - return 'reflection_Schema'; + return 'reflection.Schema'; } static startSchema(builder) { builder.startObject(8); diff --git a/tests/ts/reflection/schema.ts b/tests/ts/reflection/schema.ts index c99652226d..21e0e2cee1 100644 --- a/tests/ts/reflection/schema.ts +++ b/tests/ts/reflection/schema.ts @@ -110,7 +110,7 @@ fbsFilesLength():number { } static getFullyQualifiedName():string { - return 'reflection_Schema'; + return 'reflection.Schema'; } static startSchema(builder:flatbuffers.Builder) { diff --git a/tests/ts/reflection/service.js b/tests/ts/reflection/service.js index 8c66ef774a..3ce83f44fd 100644 --- a/tests/ts/reflection/service.js +++ b/tests/ts/reflection/service.js @@ -52,7 +52,7 @@ export class Service { return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; } static getFullyQualifiedName() { - return 'reflection_Service'; + return 'reflection.Service'; } static startService(builder) { builder.startObject(5); diff --git a/tests/ts/reflection/service.ts b/tests/ts/reflection/service.ts index c0ad8adbe6..7fd396f0ef 100644 --- a/tests/ts/reflection/service.ts +++ b/tests/ts/reflection/service.ts @@ -74,7 +74,7 @@ declarationFile(optionalEncoding?:any):string|Uint8Array|null { } static getFullyQualifiedName():string { - return 'reflection_Service'; + return 'reflection.Service'; } static startService(builder:flatbuffers.Builder) { diff --git a/tests/ts/reflection/type.js b/tests/ts/reflection/type.js index f3ccbdfe68..8deec2f8b0 100644 --- a/tests/ts/reflection/type.js +++ b/tests/ts/reflection/type.js @@ -97,7 +97,7 @@ export class Type { return true; } static getFullyQualifiedName() { - return 'reflection_Type'; + return 'reflection.Type'; } static startType(builder) { builder.startObject(6); diff --git a/tests/ts/reflection/type.ts b/tests/ts/reflection/type.ts index 37316959d5..118aee848a 100644 --- a/tests/ts/reflection/type.ts +++ b/tests/ts/reflection/type.ts @@ -126,7 +126,7 @@ mutate_element_size(value:number):boolean { } static getFullyQualifiedName():string { - return 'reflection_Type'; + return 'reflection.Type'; } static startType(builder:flatbuffers.Builder) { diff --git a/tests/ts/reflection_generated.js b/tests/ts/reflection_generated.js index e0ed0076a8..7e27373bb5 100644 --- a/tests/ts/reflection_generated.js +++ b/tests/ts/reflection_generated.js @@ -128,7 +128,7 @@ export class Type { return true; } static getFullyQualifiedName() { - return 'reflection_Type'; + return 'reflection.Type'; } static startType(builder) { builder.startObject(6); @@ -216,7 +216,7 @@ export class KeyValue { return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; } static getFullyQualifiedName() { - return 'reflection_KeyValue'; + return 'reflection.KeyValue'; } static startKeyValue(builder) { builder.startObject(2); @@ -311,7 +311,7 @@ export class EnumVal { return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; } static getFullyQualifiedName() { - return 'reflection_EnumVal'; + return 'reflection.EnumVal'; } static startEnumVal(builder) { builder.startObject(6); @@ -455,7 +455,7 @@ export class Enum { return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; } static getFullyQualifiedName() { - return 'reflection_Enum'; + return 'reflection.Enum'; } static startEnum(builder) { builder.startObject(7); @@ -712,7 +712,7 @@ export class Field { return true; } static getFullyQualifiedName() { - return 'reflection_Field'; + return 'reflection.Field'; } static startField(builder) { builder.startObject(13); @@ -925,7 +925,7 @@ export class Object_ { return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; } static getFullyQualifiedName() { - return 'reflection_Object'; + return 'reflection.Object'; } static startObject(builder) { builder.startObject(8); @@ -1082,7 +1082,7 @@ export class RPCCall { return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; } static getFullyQualifiedName() { - return 'reflection_RPCCall'; + return 'reflection.RPCCall'; } static startRPCCall(builder) { builder.startObject(5); @@ -1213,7 +1213,7 @@ export class Service { return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; } static getFullyQualifiedName() { - return 'reflection_Service'; + return 'reflection.Service'; } static startService(builder) { builder.startObject(5); @@ -1340,7 +1340,7 @@ export class SchemaFile { return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; } static getFullyQualifiedName() { - return 'reflection_SchemaFile'; + return 'reflection.SchemaFile'; } static startSchemaFile(builder) { builder.startObject(2); @@ -1472,7 +1472,7 @@ export class Schema { return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; } static getFullyQualifiedName() { - return 'reflection_Schema'; + return 'reflection.Schema'; } static startSchema(builder) { builder.startObject(8); diff --git a/tests/ts/reflection_generated.ts b/tests/ts/reflection_generated.ts index 6b553b1a06..63d6228790 100644 --- a/tests/ts/reflection_generated.ts +++ b/tests/ts/reflection_generated.ts @@ -156,7 +156,7 @@ mutate_element_size(value:number):boolean { } static getFullyQualifiedName():string { - return 'reflection_Type'; + return 'reflection.Type'; } static startType(builder:flatbuffers.Builder) { @@ -281,7 +281,7 @@ value(optionalEncoding?:any):string|Uint8Array|null { } static getFullyQualifiedName():string { - return 'reflection_KeyValue'; + return 'reflection.KeyValue'; } static startKeyValue(builder:flatbuffers.Builder) { @@ -410,7 +410,7 @@ attributesLength():number { } static getFullyQualifiedName():string { - return 'reflection_EnumVal'; + return 'reflection.EnumVal'; } static startEnumVal(builder:flatbuffers.Builder) { @@ -604,7 +604,7 @@ declarationFile(optionalEncoding?:any):string|Uint8Array|null { } static getFullyQualifiedName():string { - return 'reflection_Enum'; + return 'reflection.Enum'; } static startEnum(builder:flatbuffers.Builder) { @@ -941,7 +941,7 @@ mutate_padding(value:number):boolean { } static getFullyQualifiedName():string { - return 'reflection_Field'; + return 'reflection.Field'; } static startField(builder:flatbuffers.Builder) { @@ -1227,7 +1227,7 @@ declarationFile(optionalEncoding?:any):string|Uint8Array|null { } static getFullyQualifiedName():string { - return 'reflection_Object'; + return 'reflection.Object'; } static startObject(builder:flatbuffers.Builder) { @@ -1439,7 +1439,7 @@ documentationLength():number { } static getFullyQualifiedName():string { - return 'reflection_RPCCall'; + return 'reflection.RPCCall'; } static startRPCCall(builder:flatbuffers.Builder) { @@ -1615,7 +1615,7 @@ declarationFile(optionalEncoding?:any):string|Uint8Array|null { } static getFullyQualifiedName():string { - return 'reflection_Service'; + return 'reflection.Service'; } static startService(builder:flatbuffers.Builder) { @@ -1790,7 +1790,7 @@ includedFilenamesLength():number { } static getFullyQualifiedName():string { - return 'reflection_SchemaFile'; + return 'reflection.SchemaFile'; } static startSchemaFile(builder:flatbuffers.Builder) { @@ -1964,7 +1964,7 @@ fbsFilesLength():number { } static getFullyQualifiedName():string { - return 'reflection_Schema'; + return 'reflection.Schema'; } static startSchema(builder:flatbuffers.Builder) { diff --git a/tests/ts/typescript/object.js b/tests/ts/typescript/object.js index 05ffb1a569..bde535ca22 100644 --- a/tests/ts/typescript/object.js +++ b/tests/ts/typescript/object.js @@ -98,7 +98,7 @@ export class Object_ { return offset ? (obj || new Schema()).__init(this.bb.__indirect(this.bb_pos + offset), this.bb) : null; } static getFullyQualifiedName() { - return 'typescript_Object'; + return 'typescript.Object'; } static startObject(builder) { builder.startObject(7); diff --git a/tests/ts/typescript/object.ts b/tests/ts/typescript/object.ts index 5baf6ed3b8..f9cbc4881b 100644 --- a/tests/ts/typescript/object.ts +++ b/tests/ts/typescript/object.ts @@ -128,7 +128,7 @@ reflect(obj?:Schema):Schema|null { } static getFullyQualifiedName():string { - return 'typescript_Object'; + return 'typescript.Object'; } static startObject(builder:flatbuffers.Builder) { diff --git a/tests/ts/typescript_keywords_generated.js b/tests/ts/typescript_keywords_generated.js index 4525da7de4..3ada0d6126 100644 --- a/tests/ts/typescript_keywords_generated.js +++ b/tests/ts/typescript_keywords_generated.js @@ -102,7 +102,7 @@ export class Object_ { return offset ? (obj || new Schema()).__init(this.bb.__indirect(this.bb_pos + offset), this.bb) : null; } static getFullyQualifiedName() { - return 'typescript_Object'; + return 'typescript.Object'; } static startObject(builder) { builder.startObject(7); diff --git a/tests/ts/typescript_keywords_generated.ts b/tests/ts/typescript_keywords_generated.ts index bcc61102dd..8ea31944a7 100644 --- a/tests/ts/typescript_keywords_generated.ts +++ b/tests/ts/typescript_keywords_generated.ts @@ -131,7 +131,7 @@ reflect(obj?:Schema):Schema|null { } static getFullyQualifiedName():string { - return 'typescript_Object'; + return 'typescript.Object'; } static startObject(builder:flatbuffers.Builder) { From e0d68bdda2f66ffde77c219ea40a64bf945a7f32 Mon Sep 17 00:00:00 2001 From: RishabhDeep Singh Date: Fri, 23 Dec 2022 03:36:57 +0530 Subject: [PATCH 068/571] Add link to building guide (#7733) --- .github/PULL_REQUEST_TEMPLATE.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 0f05239861..b8cc0ce1db 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -3,7 +3,7 @@ Thank you for submitting a PR! Please delete this standard text once you've created your own description. If you make changes to any of the code generators (`src/idl_gen*`) be sure to -build your project, as it will generate code based on the changes. If necessary +[build](https://google.github.io/flatbuffers/flatbuffers_guide_building.html) your project, as it will generate code based on the changes. If necessary the code generation script can be directly run (`scripts/generate_code.py`), requires Python3. This allows us to better see the effect of the PR. From 01589630baa125745f203676f850984200281289 Mon Sep 17 00:00:00 2001 From: Robin Giese Date: Tue, 3 Jan 2023 20:00:54 -0800 Subject: [PATCH 069/571] Fix "'flatbuffers::FieldDef* field' shadows a parameter" (#7740) --- src/idl_gen_go.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/idl_gen_go.cpp b/src/idl_gen_go.cpp index 15d0a1c948..cec065e25c 100644 --- a/src/idl_gen_go.cpp +++ b/src/idl_gen_go.cpp @@ -501,7 +501,9 @@ class GoGenerator : public BaseGenerator { auto &vector_struct_fields = vectortype.struct_def->fields.vec; auto kit = std::find_if(vector_struct_fields.begin(), vector_struct_fields.end(), - [&](FieldDef *field) { return field->key; }); + [&](FieldDef *vector_struct_field) { + return vector_struct_field->key; + }); auto &key_field = **kit; FLATBUFFERS_ASSERT(key_field.key); From 6420fa5c8856272609c67a440faca63635d70a2a Mon Sep 17 00:00:00 2001 From: Michael Le Date: Tue, 3 Jan 2023 23:56:11 -0500 Subject: [PATCH 070/571] [Go]Add go.mod (#7720) Co-authored-by: Derek Bailey --- go/go.mod | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 go/go.mod diff --git a/go/go.mod b/go/go.mod new file mode 100644 index 0000000000..b63eb23862 --- /dev/null +++ b/go/go.mod @@ -0,0 +1,3 @@ +module github.com/google/flatbuffers + +go 1.19 From 3b2eb775954e6d90f05e0aa5afaa2fb0acafec61 Mon Sep 17 00:00:00 2001 From: Michael Le Date: Wed, 4 Jan 2023 12:27:44 -0500 Subject: [PATCH 071/571] Fix go.mod name (#7756) --- go/go.mod | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/go/go.mod b/go/go.mod index b63eb23862..ac07b0db4a 100644 --- a/go/go.mod +++ b/go/go.mod @@ -1,3 +1,3 @@ -module github.com/google/flatbuffers +module github.com/google/flatbuffers/go go 1.19 From af9ceabeef1a10c1004e2741f8c0c090ca59e5af Mon Sep 17 00:00:00 2001 From: Derek Bailey Date: Wed, 4 Jan 2023 15:22:46 -0800 Subject: [PATCH 072/571] FlatBuffers Version 23.1.4 (#7758) --- CHANGELOG.md | 28 ++++++++++++--- CMake/Version.cmake | 6 ++-- FlatBuffers.podspec | 2 +- .../main/java/generated/com/fbs/app/Animal.kt | 2 +- dart/pubspec.yaml | 2 +- .../Sources/Model/greeter_generated.swift | 4 +-- include/flatbuffers/base.h | 6 ++-- include/flatbuffers/reflection_generated.h | 6 ++-- java/pom.xml | 2 +- .../com/google/flatbuffers/Constants.java | 2 +- net/FlatBuffers/FlatBufferConstants.cs | 2 +- net/FlatBuffers/Google.FlatBuffers.csproj | 2 +- package.json | 2 +- python/flatbuffers/_version.py | 2 +- python/setup.py | 2 +- rust/flatbuffers/Cargo.toml | 2 +- samples/monster_generated.h | 6 ++-- samples/monster_generated.swift | 8 ++--- scripts/release.sh | 4 +-- src/idl_gen_csharp.cpp | 2 +- src/idl_gen_java.cpp | 2 +- src/idl_gen_kotlin.cpp | 2 +- src/idl_gen_swift.cpp | 2 +- swift/Sources/FlatBuffers/Constants.swift | 2 +- tests/Abc.nim | 2 +- tests/DictionaryLookup/LongFloatEntry.java | 2 +- tests/DictionaryLookup/LongFloatEntry.kt | 2 +- tests/DictionaryLookup/LongFloatMap.java | 2 +- tests/DictionaryLookup/LongFloatMap.kt | 2 +- tests/KeywordTest/KeywordsInTable.cs | 2 +- tests/KeywordTest/Table2.cs | 2 +- tests/MoreDefaults.nim | 2 +- tests/MyGame/Example/Ability.lua | 2 +- tests/MyGame/Example/Ability.nim | 2 +- tests/MyGame/Example/Any.lua | 2 +- tests/MyGame/Example/Any.nim | 2 +- tests/MyGame/Example/AnyAmbiguousAliases.lua | 2 +- tests/MyGame/Example/AnyAmbiguousAliases.nim | 2 +- tests/MyGame/Example/AnyUniqueAliases.lua | 2 +- tests/MyGame/Example/AnyUniqueAliases.nim | 2 +- tests/MyGame/Example/ArrayTable.cs | 2 +- tests/MyGame/Example/ArrayTable.java | 2 +- tests/MyGame/Example/Color.lua | 2 +- tests/MyGame/Example/Color.nim | 2 +- tests/MyGame/Example/LongEnum.lua | 2 +- tests/MyGame/Example/LongEnum.nim | 2 +- tests/MyGame/Example/Monster.cs | 2 +- tests/MyGame/Example/Monster.java | 2 +- tests/MyGame/Example/Monster.kt | 2 +- tests/MyGame/Example/Monster.lua | 2 +- tests/MyGame/Example/Monster.nim | 2 +- tests/MyGame/Example/Race.lua | 2 +- tests/MyGame/Example/Race.nim | 2 +- tests/MyGame/Example/Referrable.cs | 2 +- tests/MyGame/Example/Referrable.java | 2 +- tests/MyGame/Example/Referrable.kt | 2 +- tests/MyGame/Example/Referrable.lua | 2 +- tests/MyGame/Example/Referrable.nim | 2 +- tests/MyGame/Example/Stat.cs | 2 +- tests/MyGame/Example/Stat.java | 2 +- tests/MyGame/Example/Stat.kt | 2 +- tests/MyGame/Example/Stat.lua | 2 +- tests/MyGame/Example/Stat.nim | 2 +- tests/MyGame/Example/StructOfStructs.lua | 2 +- tests/MyGame/Example/StructOfStructs.nim | 2 +- .../Example/StructOfStructsOfStructs.lua | 2 +- .../Example/StructOfStructsOfStructs.nim | 2 +- tests/MyGame/Example/Test.lua | 2 +- tests/MyGame/Example/Test.nim | 2 +- .../MyGame/Example/TestSimpleTableWithEnum.cs | 2 +- .../Example/TestSimpleTableWithEnum.java | 2 +- .../MyGame/Example/TestSimpleTableWithEnum.kt | 2 +- .../Example/TestSimpleTableWithEnum.lua | 2 +- .../Example/TestSimpleTableWithEnum.nim | 2 +- tests/MyGame/Example/TypeAliases.cs | 2 +- tests/MyGame/Example/TypeAliases.java | 2 +- tests/MyGame/Example/TypeAliases.kt | 2 +- tests/MyGame/Example/TypeAliases.lua | 2 +- tests/MyGame/Example/TypeAliases.nim | 2 +- tests/MyGame/Example/Vec3.lua | 2 +- tests/MyGame/Example/Vec3.nim | 2 +- tests/MyGame/Example2/Monster.cs | 2 +- tests/MyGame/Example2/Monster.java | 2 +- tests/MyGame/Example2/Monster.kt | 2 +- tests/MyGame/Example2/Monster.lua | 2 +- tests/MyGame/Example2/Monster.nim | 2 +- tests/MyGame/InParentNamespace.cs | 2 +- tests/MyGame/InParentNamespace.java | 2 +- tests/MyGame/InParentNamespace.kt | 2 +- tests/MyGame/InParentNamespace.lua | 2 +- tests/MyGame/InParentNamespace.nim | 2 +- tests/MyGame/MonsterExtra.cs | 2 +- tests/MyGame/MonsterExtra.java | 2 +- tests/MyGame/MonsterExtra.kt | 2 +- tests/MyGame/OtherNameSpace/FromInclude.lua | 2 +- tests/MyGame/OtherNameSpace/FromInclude.nim | 2 +- tests/MyGame/OtherNameSpace/TableB.lua | 2 +- tests/MyGame/OtherNameSpace/TableB.nim | 2 +- tests/MyGame/OtherNameSpace/Unused.lua | 2 +- tests/MyGame/OtherNameSpace/Unused.nim | 2 +- tests/Property.nim | 2 +- tests/TableA.lua | 2 +- tests/TableA.nim | 2 +- tests/TestMutatingBool.nim | 2 +- tests/alignment_test_generated.h | 6 ++-- tests/arrays_test_generated.h | 6 ++-- .../generated_cpp17/monster_test_generated.h | 6 ++-- .../optional_scalars_generated.h | 6 ++-- .../generated_cpp17/union_vector_generated.h | 6 ++-- tests/evolution_test/evolution_v1_generated.h | 6 ++-- tests/evolution_test/evolution_v2_generated.h | 6 ++-- tests/key_field/key_field_sample_generated.h | 6 ++-- tests/monster_extra_generated.h | 6 ++-- tests/monster_test_bfbs_generated.h | 6 ++-- tests/monster_test_generated.h | 6 ++-- .../ext_only/monster_test_generated.hpp | 6 ++-- .../filesuffix_only/monster_test_suffix.h | 6 ++-- .../monster_test_suffix.hpp | 6 ++-- .../NamespaceA/NamespaceB/TableInNestedNS.cs | 2 +- .../NamespaceB/TableInNestedNS.java | 2 +- .../NamespaceA/NamespaceB/TableInNestedNS.kt | 2 +- .../NamespaceA/SecondTableInA.cs | 2 +- .../NamespaceA/SecondTableInA.java | 2 +- .../NamespaceA/SecondTableInA.kt | 2 +- .../NamespaceA/TableInFirstNS.cs | 2 +- .../NamespaceA/TableInFirstNS.java | 2 +- .../NamespaceA/TableInFirstNS.kt | 2 +- tests/namespace_test/NamespaceC/TableInC.cs | 2 +- tests/namespace_test/NamespaceC/TableInC.java | 2 +- tests/namespace_test/NamespaceC/TableInC.kt | 2 +- .../namespace_test1_generated.h | 6 ++-- .../namespace_test2_generated.h | 6 ++-- tests/native_inline_table_test_generated.h | 6 ++-- tests/native_type_test_generated.h | 6 ++-- .../nested_namespace_test3_generated.cs | 2 +- tests/optional_scalars/OptionalByte.nim | 2 +- tests/optional_scalars/ScalarStuff.cs | 2 +- tests/optional_scalars/ScalarStuff.java | 2 +- tests/optional_scalars/ScalarStuff.kt | 2 +- tests/optional_scalars/ScalarStuff.nim | 2 +- tests/optional_scalars_generated.h | 6 ++-- .../monster_test_generated.swift | 34 +++++++++---------- .../test_import_generated.swift | 2 +- .../test_no_include_generated.swift | 8 ++--- .../SwiftFlatBuffers/fuzzer_generated.swift | 10 +++--- .../MutatingBool_generated.swift | 6 ++-- .../monster_test_generated.swift | 34 +++++++++---------- .../more_defaults_generated.swift | 2 +- .../nan_inf_test_generated.swift | 2 +- .../optional_scalars_generated.swift | 2 +- .../union_vector_generated.swift | 18 +++++----- .../vector_has_test_generated.swift | 2 +- tests/type_field_collsion/Collision.cs | 2 +- tests/union_vector/Attacker.cs | 2 +- tests/union_vector/Attacker.java | 2 +- tests/union_vector/Attacker.kt | 2 +- tests/union_vector/HandFan.cs | 2 +- tests/union_vector/HandFan.java | 2 +- tests/union_vector/HandFan.kt | 2 +- tests/union_vector/Movie.cs | 2 +- tests/union_vector/Movie.java | 2 +- tests/union_vector/Movie.kt | 2 +- tests/union_vector/union_vector_generated.h | 6 ++-- 163 files changed, 287 insertions(+), 269 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 648d32bbdd..612af432e6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,19 +4,37 @@ All major or breaking changes will be documented in this file, as well as any new features that should be highlighted. Minor fixes or improvements are not necessarily listed. -## 22.12.06 (Dec 06 2022) +## [23.1.4 (Jan 4 2023)](https://github.com/google/flatbuffers/releases/tag/v23.1.4) + +* Major release! Just kidding, we are continuing the + [versioning scheme](https://github.com/google/flatbuffers/wiki/Versioning) of + using a date to signify releases. This results in the first release of the new + year to bump the tradition major version field. + +* Go minimum version is now 1.19 (#7720) with the addition of Go modules. + +* Added CI support for Big Endian regression testing (#7707). + +* Fixed `getFullyQualifiedName` in typescript to return name delimited by '.' + instead of '_' (#7730). + +* Fixed the versioning scheme to not include leading zeros which are not + consistently handled by every package manager. Only the last release + (12.12.06) should have suffered from this. + +## [22.12.06 (Dec 06 2022)](https://github.com/google/flatbuffers/releases/tag/v22.12.06) * Bug fixing release, no major changes. -## 22.10.25 (Oct 25 2022) +## [22.10.25 (Oct 25 2022)](https://github.com/google/flatbuffers/releases/tag/v22.10.25) * Added Nim language support with generator and runtime libraries (#7534). -## 22.9.29 (Sept 29 2022) +## [22.9.29 (Sept 29 2022)](https://github.com/google/flatbuffers/releases/tag/v22.9.29) * Rust soundness fixes to avoid the crate from bing labelled unsafe (#7518). -## 22.9.24 (Sept 24 2022) +## [22.9.24 (Sept 24 2022)](https://github.com/google/flatbuffers/releases/tag/v22.9.24) * 20 Major releases in a row? Nope, we switched to a new [versioning scheme](https://github.com/google/flatbuffers/wiki/Versioning) @@ -67,4 +85,4 @@ necessarily listed. * First binary schema generator (Lua) to generate Lua code via a .bfbs file. This is mostly an implementation detail of flatc internals, but will be slowly - applied to the other language generators. \ No newline at end of file + applied to the other language generators. diff --git a/CMake/Version.cmake b/CMake/Version.cmake index 075ff3fa5b..d0295379b0 100644 --- a/CMake/Version.cmake +++ b/CMake/Version.cmake @@ -1,6 +1,6 @@ -set(VERSION_MAJOR 22) -set(VERSION_MINOR 12) -set(VERSION_PATCH 06) +set(VERSION_MAJOR 23) +set(VERSION_MINOR 1) +set(VERSION_PATCH 4) set(VERSION_COMMIT 0) if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/.git") diff --git a/FlatBuffers.podspec b/FlatBuffers.podspec index 5d5fcb895e..d2b4be20a3 100644 --- a/FlatBuffers.podspec +++ b/FlatBuffers.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = 'FlatBuffers' - s.version = '22.12.06' + s.version = '23.1.4' s.summary = 'FlatBuffers: Memory Efficient Serialization Library' s.description = "FlatBuffers is a cross platform serialization library architected for diff --git a/android/app/src/main/java/generated/com/fbs/app/Animal.kt b/android/app/src/main/java/generated/com/fbs/app/Animal.kt index 342f2b3c8e..481616f493 100644 --- a/android/app/src/main/java/generated/com/fbs/app/Animal.kt +++ b/android/app/src/main/java/generated/com/fbs/app/Animal.kt @@ -36,7 +36,7 @@ class Animal : Table() { return if(o != 0) bb.getShort(o + bb_pos).toUShort() else 0u } companion object { - fun validateVersion() = Constants.FLATBUFFERS_22_12_06() + fun validateVersion() = Constants.FLATBUFFERS_23_1_4() fun getRootAsAnimal(_bb: ByteBuffer): Animal = getRootAsAnimal(_bb, Animal()) fun getRootAsAnimal(_bb: ByteBuffer, obj: Animal): Animal { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/dart/pubspec.yaml b/dart/pubspec.yaml index 56bb31422f..04a5e68d00 100644 --- a/dart/pubspec.yaml +++ b/dart/pubspec.yaml @@ -1,5 +1,5 @@ name: flat_buffers -version: 22.12.06 +version: 23.1.4 description: FlatBuffers reading and writing library for Dart. Based on original work by Konstantin Scheglov and Paul Berry of the Dart SDK team. homepage: https://github.com/google/flatbuffers documentation: https://google.github.io/flatbuffers/index.html diff --git a/grpc/examples/swift/Greeter/Sources/Model/greeter_generated.swift b/grpc/examples/swift/Greeter/Sources/Model/greeter_generated.swift index b6b7e4136d..cd0bc2338e 100644 --- a/grpc/examples/swift/Greeter/Sources/Model/greeter_generated.swift +++ b/grpc/examples/swift/Greeter/Sources/Model/greeter_generated.swift @@ -6,7 +6,7 @@ import FlatBuffers public struct models_HelloReply: FlatBufferObject, Verifiable { - static func validateVersion() { FlatBuffersVersion_22_12_06() } + static func validateVersion() { FlatBuffersVersion_23_1_4() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -55,7 +55,7 @@ extension models_HelloReply: Encodable { public struct models_HelloRequest: FlatBufferObject, Verifiable { - static func validateVersion() { FlatBuffersVersion_22_12_06() } + static func validateVersion() { FlatBuffersVersion_23_1_4() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table diff --git a/include/flatbuffers/base.h b/include/flatbuffers/base.h index 69f13bcaa0..816a26d702 100644 --- a/include/flatbuffers/base.h +++ b/include/flatbuffers/base.h @@ -138,9 +138,9 @@ #endif #endif // !defined(FLATBUFFERS_LITTLEENDIAN) -#define FLATBUFFERS_VERSION_MAJOR 22 -#define FLATBUFFERS_VERSION_MINOR 12 -#define FLATBUFFERS_VERSION_REVISION 06 +#define FLATBUFFERS_VERSION_MAJOR 23 +#define FLATBUFFERS_VERSION_MINOR 1 +#define FLATBUFFERS_VERSION_REVISION 4 #define FLATBUFFERS_STRING_EXPAND(X) #X #define FLATBUFFERS_STRING(X) FLATBUFFERS_STRING_EXPAND(X) namespace flatbuffers { diff --git a/include/flatbuffers/reflection_generated.h b/include/flatbuffers/reflection_generated.h index 88005f11ee..1d83caa727 100644 --- a/include/flatbuffers/reflection_generated.h +++ b/include/flatbuffers/reflection_generated.h @@ -8,9 +8,9 @@ // Ensure the included flatbuffers.h is the same version as when this file was // generated, otherwise it may not be compatible. -static_assert(FLATBUFFERS_VERSION_MAJOR == 22 && - FLATBUFFERS_VERSION_MINOR == 12 && - FLATBUFFERS_VERSION_REVISION == 6, +static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && + FLATBUFFERS_VERSION_MINOR == 1 && + FLATBUFFERS_VERSION_REVISION == 4, "Non-compatible flatbuffers version included"); namespace reflection { diff --git a/java/pom.xml b/java/pom.xml index fd62488cb4..6734f56a41 100644 --- a/java/pom.xml +++ b/java/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.flatbuffers flatbuffers-java - 22.12.06 + 23.1.4 bundle FlatBuffers Java API diff --git a/java/src/main/java/com/google/flatbuffers/Constants.java b/java/src/main/java/com/google/flatbuffers/Constants.java index 1ee75db43d..988e664159 100644 --- a/java/src/main/java/com/google/flatbuffers/Constants.java +++ b/java/src/main/java/com/google/flatbuffers/Constants.java @@ -46,7 +46,7 @@ public class Constants { Changes to the Java implementation need to be sure to change the version here and in the code generator on every possible incompatible change */ - public static void FLATBUFFERS_22_12_06() {} + public static void FLATBUFFERS_23_1_4() {} } /// @endcond diff --git a/net/FlatBuffers/FlatBufferConstants.cs b/net/FlatBuffers/FlatBufferConstants.cs index 0aedb3a1b9..aa7312e1a5 100644 --- a/net/FlatBuffers/FlatBufferConstants.cs +++ b/net/FlatBuffers/FlatBufferConstants.cs @@ -32,6 +32,6 @@ the runtime and generated code are modified in sync. Changes to the C# implementation need to be sure to change the version here and in the code generator on every possible incompatible change */ - public static void FLATBUFFERS_22_12_06() {} + public static void FLATBUFFERS_23_1_4() {} } } diff --git a/net/FlatBuffers/Google.FlatBuffers.csproj b/net/FlatBuffers/Google.FlatBuffers.csproj index 5a24f8eae3..957b3cca03 100644 --- a/net/FlatBuffers/Google.FlatBuffers.csproj +++ b/net/FlatBuffers/Google.FlatBuffers.csproj @@ -3,7 +3,7 @@ netstandard2.1;netstandard2.0;net46 A cross-platform memory efficient serialization library - 22.12.06 + 23.1.4 Google LLC https://github.com/google/flatbuffers https://github.com/google/flatbuffers diff --git a/package.json b/package.json index fbab3a1cbd..a642fbd53d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "flatbuffers", - "version": "22.12.06", + "version": "23.1.4", "description": "Memory Efficient Serialization Library", "files": [ "js/**/*.js", diff --git a/python/flatbuffers/_version.py b/python/flatbuffers/_version.py index c2dd9512eb..05edb88818 100644 --- a/python/flatbuffers/_version.py +++ b/python/flatbuffers/_version.py @@ -14,4 +14,4 @@ # Placeholder, to be updated during the release process # by the setup.py -__version__ = u"22.12.06" +__version__ = u"23.1.4" diff --git a/python/setup.py b/python/setup.py index 240bdba565..890ef749e7 100644 --- a/python/setup.py +++ b/python/setup.py @@ -16,7 +16,7 @@ setup( name='flatbuffers', - version='22.12.06', + version='23.1.4', license='Apache 2.0', license_files='../LICENSE.txt', author='Derek Bailey', diff --git a/rust/flatbuffers/Cargo.toml b/rust/flatbuffers/Cargo.toml index 62251aba5f..fd363fcb57 100644 --- a/rust/flatbuffers/Cargo.toml +++ b/rust/flatbuffers/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "flatbuffers" -version = "22.12.6" +version = "23.1.4" edition = "2018" authors = ["Robert Winslow ", "FlatBuffers Maintainers"] license = "Apache-2.0" diff --git a/samples/monster_generated.h b/samples/monster_generated.h index 137b346be0..2d1e17b1cd 100644 --- a/samples/monster_generated.h +++ b/samples/monster_generated.h @@ -8,9 +8,9 @@ // Ensure the included flatbuffers.h is the same version as when this file was // generated, otherwise it may not be compatible. -static_assert(FLATBUFFERS_VERSION_MAJOR == 22 && - FLATBUFFERS_VERSION_MINOR == 12 && - FLATBUFFERS_VERSION_REVISION == 6, +static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && + FLATBUFFERS_VERSION_MINOR == 1 && + FLATBUFFERS_VERSION_REVISION == 4, "Non-compatible flatbuffers version included"); namespace MyGame { diff --git a/samples/monster_generated.swift b/samples/monster_generated.swift index e89256f8b3..79a6b384fc 100644 --- a/samples/monster_generated.swift +++ b/samples/monster_generated.swift @@ -31,7 +31,7 @@ public enum MyGame_Sample_Equipment: UInt8, Enum { public struct MyGame_Sample_Vec3: NativeStruct { - static func validateVersion() { FlatBuffersVersion_22_12_06() } + static func validateVersion() { FlatBuffersVersion_23_1_4() } private var _x: Float32 private var _y: Float32 @@ -56,7 +56,7 @@ public struct MyGame_Sample_Vec3: NativeStruct { public struct MyGame_Sample_Vec3_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_22_12_06() } + static func validateVersion() { FlatBuffersVersion_23_1_4() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -72,7 +72,7 @@ public struct MyGame_Sample_Vec3_Mutable: FlatBufferObject { public struct MyGame_Sample_Monster: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_22_12_06() } + static func validateVersion() { FlatBuffersVersion_23_1_4() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -162,7 +162,7 @@ public struct MyGame_Sample_Monster: FlatBufferObject { public struct MyGame_Sample_Weapon: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_22_12_06() } + static func validateVersion() { FlatBuffersVersion_23_1_4() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table diff --git a/scripts/release.sh b/scripts/release.sh index ba37e578b8..1450cc91f3 100755 --- a/scripts/release.sh +++ b/scripts/release.sh @@ -1,7 +1,7 @@ printf -v year '%(%y)T' -1 -printf -v month '%(%m)T' -1 -printf -v day '%(%d)T' -1 +printf -v month '%(%-m)T' -1 +printf -v day '%(%-d)T' -1 version="$year.$month.$day" version_underscore="$year\_$month\_$day" diff --git a/src/idl_gen_csharp.cpp b/src/idl_gen_csharp.cpp index 664a2e43a6..813ad0a650 100644 --- a/src/idl_gen_csharp.cpp +++ b/src/idl_gen_csharp.cpp @@ -655,7 +655,7 @@ class CSharpGenerator : public BaseGenerator { // Force compile time error if not using the same version runtime. code += " public static void ValidateVersion() {"; code += " FlatBufferConstants."; - code += "FLATBUFFERS_22_12_06(); "; + code += "FLATBUFFERS_23_1_4(); "; code += "}\n"; // Generate a special accessor for the table that when used as the root diff --git a/src/idl_gen_java.cpp b/src/idl_gen_java.cpp index c3bc9c144e..eb56e098b5 100644 --- a/src/idl_gen_java.cpp +++ b/src/idl_gen_java.cpp @@ -683,7 +683,7 @@ class JavaGenerator : public BaseGenerator { // Force compile time error if not using the same version runtime. code += " public static void ValidateVersion() {"; code += " Constants."; - code += "FLATBUFFERS_22_12_06(); "; + code += "FLATBUFFERS_23_1_4(); "; code += "}\n"; // Generate a special accessor for the table that when used as the root diff --git a/src/idl_gen_kotlin.cpp b/src/idl_gen_kotlin.cpp index 212aba948d..49ed423e8b 100644 --- a/src/idl_gen_kotlin.cpp +++ b/src/idl_gen_kotlin.cpp @@ -505,7 +505,7 @@ class KotlinGenerator : public BaseGenerator { // runtime. GenerateFunOneLine( writer, "validateVersion", "", "", - [&]() { writer += "Constants.FLATBUFFERS_22_12_06()"; }, + [&]() { writer += "Constants.FLATBUFFERS_23_1_4()"; }, options.gen_jvmstatic); GenerateGetRootAsAccessors(namer_.Type(struct_def), writer, options); diff --git a/src/idl_gen_swift.cpp b/src/idl_gen_swift.cpp index bc47cd736d..f2ff5e9604 100644 --- a/src/idl_gen_swift.cpp +++ b/src/idl_gen_swift.cpp @@ -1846,7 +1846,7 @@ class SwiftGenerator : public BaseGenerator { } std::string ValidateFunc() { - return "static func validateVersion() { FlatBuffersVersion_22_12_06() }"; + return "static func validateVersion() { FlatBuffersVersion_23_1_4() }"; } std::string GenType(const Type &type, diff --git a/swift/Sources/FlatBuffers/Constants.swift b/swift/Sources/FlatBuffers/Constants.swift index f2abe60c10..00614f1eb0 100644 --- a/swift/Sources/FlatBuffers/Constants.swift +++ b/swift/Sources/FlatBuffers/Constants.swift @@ -119,4 +119,4 @@ extension UInt64: Scalar, Verifiable { public typealias NumericValue = UInt64 } -public func FlatBuffersVersion_22_12_06() {} +public func FlatBuffersVersion_23_1_4() {} diff --git a/tests/Abc.nim b/tests/Abc.nim index 083afd6cbb..feef3e1fc5 100644 --- a/tests/Abc.nim +++ b/tests/Abc.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.12.06 + flatc version: 23.1.4 Declared by : ]# diff --git a/tests/DictionaryLookup/LongFloatEntry.java b/tests/DictionaryLookup/LongFloatEntry.java index 8b85c8268d..eed8961571 100644 --- a/tests/DictionaryLookup/LongFloatEntry.java +++ b/tests/DictionaryLookup/LongFloatEntry.java @@ -21,7 +21,7 @@ @SuppressWarnings("unused") public final class LongFloatEntry extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_22_12_06(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_1_4(); } public static LongFloatEntry getRootAsLongFloatEntry(ByteBuffer _bb) { return getRootAsLongFloatEntry(_bb, new LongFloatEntry()); } public static LongFloatEntry getRootAsLongFloatEntry(ByteBuffer _bb, LongFloatEntry obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/tests/DictionaryLookup/LongFloatEntry.kt b/tests/DictionaryLookup/LongFloatEntry.kt index 13dc0e8e98..4f035be1af 100644 --- a/tests/DictionaryLookup/LongFloatEntry.kt +++ b/tests/DictionaryLookup/LongFloatEntry.kt @@ -32,7 +32,7 @@ class LongFloatEntry : Table() { return (val_1 - val_2).sign } companion object { - fun validateVersion() = Constants.FLATBUFFERS_22_12_06() + fun validateVersion() = Constants.FLATBUFFERS_23_1_4() fun getRootAsLongFloatEntry(_bb: ByteBuffer): LongFloatEntry = getRootAsLongFloatEntry(_bb, LongFloatEntry()) fun getRootAsLongFloatEntry(_bb: ByteBuffer, obj: LongFloatEntry): LongFloatEntry { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/DictionaryLookup/LongFloatMap.java b/tests/DictionaryLookup/LongFloatMap.java index 13e2e79155..40e2dba708 100644 --- a/tests/DictionaryLookup/LongFloatMap.java +++ b/tests/DictionaryLookup/LongFloatMap.java @@ -21,7 +21,7 @@ @SuppressWarnings("unused") public final class LongFloatMap extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_22_12_06(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_1_4(); } public static LongFloatMap getRootAsLongFloatMap(ByteBuffer _bb) { return getRootAsLongFloatMap(_bb, new LongFloatMap()); } public static LongFloatMap getRootAsLongFloatMap(ByteBuffer _bb, LongFloatMap obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/tests/DictionaryLookup/LongFloatMap.kt b/tests/DictionaryLookup/LongFloatMap.kt index 9679d96de6..272658a7eb 100644 --- a/tests/DictionaryLookup/LongFloatMap.kt +++ b/tests/DictionaryLookup/LongFloatMap.kt @@ -46,7 +46,7 @@ class LongFloatMap : Table() { } } companion object { - fun validateVersion() = Constants.FLATBUFFERS_22_12_06() + fun validateVersion() = Constants.FLATBUFFERS_23_1_4() fun getRootAsLongFloatMap(_bb: ByteBuffer): LongFloatMap = getRootAsLongFloatMap(_bb, LongFloatMap()) fun getRootAsLongFloatMap(_bb: ByteBuffer, obj: LongFloatMap): LongFloatMap { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/KeywordTest/KeywordsInTable.cs b/tests/KeywordTest/KeywordsInTable.cs index 355dafe584..7229671baf 100644 --- a/tests/KeywordTest/KeywordsInTable.cs +++ b/tests/KeywordTest/KeywordsInTable.cs @@ -13,7 +13,7 @@ public struct KeywordsInTable : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_12_06(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_4(); } public static KeywordsInTable GetRootAsKeywordsInTable(ByteBuffer _bb) { return GetRootAsKeywordsInTable(_bb, new KeywordsInTable()); } public static KeywordsInTable GetRootAsKeywordsInTable(ByteBuffer _bb, KeywordsInTable obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/KeywordTest/Table2.cs b/tests/KeywordTest/Table2.cs index 4e16274644..0daa1d54a5 100644 --- a/tests/KeywordTest/Table2.cs +++ b/tests/KeywordTest/Table2.cs @@ -13,7 +13,7 @@ public struct Table2 : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_12_06(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_4(); } public static Table2 GetRootAsTable2(ByteBuffer _bb) { return GetRootAsTable2(_bb, new Table2()); } public static Table2 GetRootAsTable2(ByteBuffer _bb, Table2 obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/MoreDefaults.nim b/tests/MoreDefaults.nim index 46ee801bd5..b8eef46106 100644 --- a/tests/MoreDefaults.nim +++ b/tests/MoreDefaults.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.12.06 + flatc version: 23.1.4 Declared by : ]# diff --git a/tests/MyGame/Example/Ability.lua b/tests/MyGame/Example/Ability.lua index 72b4610224..597f98fd4d 100644 --- a/tests/MyGame/Example/Ability.lua +++ b/tests/MyGame/Example/Ability.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.12.06 + flatc version: 23.1.4 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/Ability.nim b/tests/MyGame/Example/Ability.nim index f6e9b982ee..8055913a43 100644 --- a/tests/MyGame/Example/Ability.nim +++ b/tests/MyGame/Example/Ability.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.12.06 + flatc version: 23.1.4 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example/Any.lua b/tests/MyGame/Example/Any.lua index d5e6ac941f..48c33e0aaa 100644 --- a/tests/MyGame/Example/Any.lua +++ b/tests/MyGame/Example/Any.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.12.06 + flatc version: 23.1.4 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/Any.nim b/tests/MyGame/Example/Any.nim index 2bbe165c23..6ee2758962 100644 --- a/tests/MyGame/Example/Any.nim +++ b/tests/MyGame/Example/Any.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.12.06 + flatc version: 23.1.4 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example/AnyAmbiguousAliases.lua b/tests/MyGame/Example/AnyAmbiguousAliases.lua index 975e8c374a..8ea3ea134c 100644 --- a/tests/MyGame/Example/AnyAmbiguousAliases.lua +++ b/tests/MyGame/Example/AnyAmbiguousAliases.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.12.06 + flatc version: 23.1.4 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/AnyAmbiguousAliases.nim b/tests/MyGame/Example/AnyAmbiguousAliases.nim index 18fa0635ec..3a77474fc6 100644 --- a/tests/MyGame/Example/AnyAmbiguousAliases.nim +++ b/tests/MyGame/Example/AnyAmbiguousAliases.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.12.06 + flatc version: 23.1.4 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example/AnyUniqueAliases.lua b/tests/MyGame/Example/AnyUniqueAliases.lua index c35a9c7ee7..bb6d59f2bd 100644 --- a/tests/MyGame/Example/AnyUniqueAliases.lua +++ b/tests/MyGame/Example/AnyUniqueAliases.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.12.06 + flatc version: 23.1.4 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/AnyUniqueAliases.nim b/tests/MyGame/Example/AnyUniqueAliases.nim index 6bbdd0f296..4c11a1cd9b 100644 --- a/tests/MyGame/Example/AnyUniqueAliases.nim +++ b/tests/MyGame/Example/AnyUniqueAliases.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.12.06 + flatc version: 23.1.4 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example/ArrayTable.cs b/tests/MyGame/Example/ArrayTable.cs index e2e2524d8e..98668c2c35 100644 --- a/tests/MyGame/Example/ArrayTable.cs +++ b/tests/MyGame/Example/ArrayTable.cs @@ -13,7 +13,7 @@ public struct ArrayTable : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_12_06(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_4(); } public static ArrayTable GetRootAsArrayTable(ByteBuffer _bb) { return GetRootAsArrayTable(_bb, new ArrayTable()); } public static ArrayTable GetRootAsArrayTable(ByteBuffer _bb, ArrayTable obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public static bool ArrayTableBufferHasIdentifier(ByteBuffer _bb) { return Table.__has_identifier(_bb, "ARRT"); } diff --git a/tests/MyGame/Example/ArrayTable.java b/tests/MyGame/Example/ArrayTable.java index a5149ecd2e..3bc791e25e 100644 --- a/tests/MyGame/Example/ArrayTable.java +++ b/tests/MyGame/Example/ArrayTable.java @@ -21,7 +21,7 @@ @SuppressWarnings("unused") public final class ArrayTable extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_22_12_06(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_1_4(); } public static ArrayTable getRootAsArrayTable(ByteBuffer _bb) { return getRootAsArrayTable(_bb, new ArrayTable()); } public static ArrayTable getRootAsArrayTable(ByteBuffer _bb, ArrayTable obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public static boolean ArrayTableBufferHasIdentifier(ByteBuffer _bb) { return __has_identifier(_bb, "ARRT"); } diff --git a/tests/MyGame/Example/Color.lua b/tests/MyGame/Example/Color.lua index e20496b40a..c44e4fd172 100644 --- a/tests/MyGame/Example/Color.lua +++ b/tests/MyGame/Example/Color.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.12.06 + flatc version: 23.1.4 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/Color.nim b/tests/MyGame/Example/Color.nim index fb7a3ccd2e..8f17105f55 100644 --- a/tests/MyGame/Example/Color.nim +++ b/tests/MyGame/Example/Color.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.12.06 + flatc version: 23.1.4 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example/LongEnum.lua b/tests/MyGame/Example/LongEnum.lua index fc91e8ef74..393c22b384 100644 --- a/tests/MyGame/Example/LongEnum.lua +++ b/tests/MyGame/Example/LongEnum.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.12.06 + flatc version: 23.1.4 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/LongEnum.nim b/tests/MyGame/Example/LongEnum.nim index ddaa9bfd04..6ebeceab18 100644 --- a/tests/MyGame/Example/LongEnum.nim +++ b/tests/MyGame/Example/LongEnum.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.12.06 + flatc version: 23.1.4 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example/Monster.cs b/tests/MyGame/Example/Monster.cs index be7282d35a..f103b29e71 100644 --- a/tests/MyGame/Example/Monster.cs +++ b/tests/MyGame/Example/Monster.cs @@ -14,7 +14,7 @@ public struct Monster : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_12_06(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_4(); } public static Monster GetRootAsMonster(ByteBuffer _bb) { return GetRootAsMonster(_bb, new Monster()); } public static Monster GetRootAsMonster(ByteBuffer _bb, Monster obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public static bool MonsterBufferHasIdentifier(ByteBuffer _bb) { return Table.__has_identifier(_bb, "MONS"); } diff --git a/tests/MyGame/Example/Monster.java b/tests/MyGame/Example/Monster.java index 5194c07577..82f472eb90 100644 --- a/tests/MyGame/Example/Monster.java +++ b/tests/MyGame/Example/Monster.java @@ -24,7 +24,7 @@ */ @SuppressWarnings("unused") public final class Monster extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_22_12_06(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_1_4(); } public static Monster getRootAsMonster(ByteBuffer _bb) { return getRootAsMonster(_bb, new Monster()); } public static Monster getRootAsMonster(ByteBuffer _bb, Monster obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public static boolean MonsterBufferHasIdentifier(ByteBuffer _bb) { return __has_identifier(_bb, "MONS"); } diff --git a/tests/MyGame/Example/Monster.kt b/tests/MyGame/Example/Monster.kt index 34d66e1524..ef2d2a435d 100644 --- a/tests/MyGame/Example/Monster.kt +++ b/tests/MyGame/Example/Monster.kt @@ -986,7 +986,7 @@ class Monster : Table() { return compareStrings(__offset(10, o1, _bb), __offset(10, o2, _bb), _bb) } companion object { - fun validateVersion() = Constants.FLATBUFFERS_22_12_06() + fun validateVersion() = Constants.FLATBUFFERS_23_1_4() fun getRootAsMonster(_bb: ByteBuffer): Monster = getRootAsMonster(_bb, Monster()) fun getRootAsMonster(_bb: ByteBuffer, obj: Monster): Monster { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/MyGame/Example/Monster.lua b/tests/MyGame/Example/Monster.lua index a8d7978168..266bbf44de 100644 --- a/tests/MyGame/Example/Monster.lua +++ b/tests/MyGame/Example/Monster.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.12.06 + flatc version: 23.1.4 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/Monster.nim b/tests/MyGame/Example/Monster.nim index d81a647b20..78b62de167 100644 --- a/tests/MyGame/Example/Monster.nim +++ b/tests/MyGame/Example/Monster.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.12.06 + flatc version: 23.1.4 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example/Race.lua b/tests/MyGame/Example/Race.lua index 689e9691f9..c3898b39a9 100644 --- a/tests/MyGame/Example/Race.lua +++ b/tests/MyGame/Example/Race.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.12.06 + flatc version: 23.1.4 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/Race.nim b/tests/MyGame/Example/Race.nim index 9ea87631a6..09be510eb9 100644 --- a/tests/MyGame/Example/Race.nim +++ b/tests/MyGame/Example/Race.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.12.06 + flatc version: 23.1.4 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example/Referrable.cs b/tests/MyGame/Example/Referrable.cs index 9d9821bfd6..7e558d2ef0 100644 --- a/tests/MyGame/Example/Referrable.cs +++ b/tests/MyGame/Example/Referrable.cs @@ -13,7 +13,7 @@ public struct Referrable : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_12_06(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_4(); } public static Referrable GetRootAsReferrable(ByteBuffer _bb) { return GetRootAsReferrable(_bb, new Referrable()); } public static Referrable GetRootAsReferrable(ByteBuffer _bb, Referrable obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/MyGame/Example/Referrable.java b/tests/MyGame/Example/Referrable.java index df55f7a3d7..32a71932bc 100644 --- a/tests/MyGame/Example/Referrable.java +++ b/tests/MyGame/Example/Referrable.java @@ -21,7 +21,7 @@ @SuppressWarnings("unused") public final class Referrable extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_22_12_06(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_1_4(); } public static Referrable getRootAsReferrable(ByteBuffer _bb) { return getRootAsReferrable(_bb, new Referrable()); } public static Referrable getRootAsReferrable(ByteBuffer _bb, Referrable obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/tests/MyGame/Example/Referrable.kt b/tests/MyGame/Example/Referrable.kt index f34628bc66..216f741a94 100644 --- a/tests/MyGame/Example/Referrable.kt +++ b/tests/MyGame/Example/Referrable.kt @@ -36,7 +36,7 @@ class Referrable : Table() { return (val_1 - val_2).sign } companion object { - fun validateVersion() = Constants.FLATBUFFERS_22_12_06() + fun validateVersion() = Constants.FLATBUFFERS_23_1_4() fun getRootAsReferrable(_bb: ByteBuffer): Referrable = getRootAsReferrable(_bb, Referrable()) fun getRootAsReferrable(_bb: ByteBuffer, obj: Referrable): Referrable { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/MyGame/Example/Referrable.lua b/tests/MyGame/Example/Referrable.lua index 7cebe69a72..85441cec6c 100644 --- a/tests/MyGame/Example/Referrable.lua +++ b/tests/MyGame/Example/Referrable.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.12.06 + flatc version: 23.1.4 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/Referrable.nim b/tests/MyGame/Example/Referrable.nim index 5893fffdf3..ade809b92b 100644 --- a/tests/MyGame/Example/Referrable.nim +++ b/tests/MyGame/Example/Referrable.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.12.06 + flatc version: 23.1.4 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example/Stat.cs b/tests/MyGame/Example/Stat.cs index efbc1eeb48..8ce5429217 100644 --- a/tests/MyGame/Example/Stat.cs +++ b/tests/MyGame/Example/Stat.cs @@ -13,7 +13,7 @@ public struct Stat : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_12_06(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_4(); } public static Stat GetRootAsStat(ByteBuffer _bb) { return GetRootAsStat(_bb, new Stat()); } public static Stat GetRootAsStat(ByteBuffer _bb, Stat obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/MyGame/Example/Stat.java b/tests/MyGame/Example/Stat.java index 8dbf2c0bd6..0705ff0b99 100644 --- a/tests/MyGame/Example/Stat.java +++ b/tests/MyGame/Example/Stat.java @@ -21,7 +21,7 @@ @SuppressWarnings("unused") public final class Stat extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_22_12_06(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_1_4(); } public static Stat getRootAsStat(ByteBuffer _bb) { return getRootAsStat(_bb, new Stat()); } public static Stat getRootAsStat(ByteBuffer _bb, Stat obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/tests/MyGame/Example/Stat.kt b/tests/MyGame/Example/Stat.kt index 1fd853aaa9..67b474e10f 100644 --- a/tests/MyGame/Example/Stat.kt +++ b/tests/MyGame/Example/Stat.kt @@ -57,7 +57,7 @@ class Stat : Table() { return (val_1 - val_2).sign } companion object { - fun validateVersion() = Constants.FLATBUFFERS_22_12_06() + fun validateVersion() = Constants.FLATBUFFERS_23_1_4() fun getRootAsStat(_bb: ByteBuffer): Stat = getRootAsStat(_bb, Stat()) fun getRootAsStat(_bb: ByteBuffer, obj: Stat): Stat { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/MyGame/Example/Stat.lua b/tests/MyGame/Example/Stat.lua index 5ae392152f..e8bef4915d 100644 --- a/tests/MyGame/Example/Stat.lua +++ b/tests/MyGame/Example/Stat.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.12.06 + flatc version: 23.1.4 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/Stat.nim b/tests/MyGame/Example/Stat.nim index cb037219d7..38f4a21797 100644 --- a/tests/MyGame/Example/Stat.nim +++ b/tests/MyGame/Example/Stat.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.12.06 + flatc version: 23.1.4 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example/StructOfStructs.lua b/tests/MyGame/Example/StructOfStructs.lua index 2b2ad5373b..a8eb665453 100644 --- a/tests/MyGame/Example/StructOfStructs.lua +++ b/tests/MyGame/Example/StructOfStructs.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.12.06 + flatc version: 23.1.4 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/StructOfStructs.nim b/tests/MyGame/Example/StructOfStructs.nim index 3c6416e508..426e2a351e 100644 --- a/tests/MyGame/Example/StructOfStructs.nim +++ b/tests/MyGame/Example/StructOfStructs.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.12.06 + flatc version: 23.1.4 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example/StructOfStructsOfStructs.lua b/tests/MyGame/Example/StructOfStructsOfStructs.lua index f712197ce0..82247b2b3d 100644 --- a/tests/MyGame/Example/StructOfStructsOfStructs.lua +++ b/tests/MyGame/Example/StructOfStructsOfStructs.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.12.06 + flatc version: 23.1.4 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/StructOfStructsOfStructs.nim b/tests/MyGame/Example/StructOfStructsOfStructs.nim index 054864e614..98286d9e8c 100644 --- a/tests/MyGame/Example/StructOfStructsOfStructs.nim +++ b/tests/MyGame/Example/StructOfStructsOfStructs.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.12.06 + flatc version: 23.1.4 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example/Test.lua b/tests/MyGame/Example/Test.lua index 2a363095f9..0d175561a3 100644 --- a/tests/MyGame/Example/Test.lua +++ b/tests/MyGame/Example/Test.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.12.06 + flatc version: 23.1.4 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/Test.nim b/tests/MyGame/Example/Test.nim index 2d3a6f370e..a5006e529f 100644 --- a/tests/MyGame/Example/Test.nim +++ b/tests/MyGame/Example/Test.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.12.06 + flatc version: 23.1.4 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example/TestSimpleTableWithEnum.cs b/tests/MyGame/Example/TestSimpleTableWithEnum.cs index 4a63c4eede..bc96886416 100644 --- a/tests/MyGame/Example/TestSimpleTableWithEnum.cs +++ b/tests/MyGame/Example/TestSimpleTableWithEnum.cs @@ -13,7 +13,7 @@ internal partial struct TestSimpleTableWithEnum : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_12_06(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_4(); } public static TestSimpleTableWithEnum GetRootAsTestSimpleTableWithEnum(ByteBuffer _bb) { return GetRootAsTestSimpleTableWithEnum(_bb, new TestSimpleTableWithEnum()); } public static TestSimpleTableWithEnum GetRootAsTestSimpleTableWithEnum(ByteBuffer _bb, TestSimpleTableWithEnum obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/MyGame/Example/TestSimpleTableWithEnum.java b/tests/MyGame/Example/TestSimpleTableWithEnum.java index 677b705de5..2585e03828 100644 --- a/tests/MyGame/Example/TestSimpleTableWithEnum.java +++ b/tests/MyGame/Example/TestSimpleTableWithEnum.java @@ -21,7 +21,7 @@ @SuppressWarnings("unused") final class TestSimpleTableWithEnum extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_22_12_06(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_1_4(); } public static TestSimpleTableWithEnum getRootAsTestSimpleTableWithEnum(ByteBuffer _bb) { return getRootAsTestSimpleTableWithEnum(_bb, new TestSimpleTableWithEnum()); } public static TestSimpleTableWithEnum getRootAsTestSimpleTableWithEnum(ByteBuffer _bb, TestSimpleTableWithEnum obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/tests/MyGame/Example/TestSimpleTableWithEnum.kt b/tests/MyGame/Example/TestSimpleTableWithEnum.kt index 3f6027f56f..ef7b2f9012 100644 --- a/tests/MyGame/Example/TestSimpleTableWithEnum.kt +++ b/tests/MyGame/Example/TestSimpleTableWithEnum.kt @@ -31,7 +31,7 @@ class TestSimpleTableWithEnum : Table() { } } companion object { - fun validateVersion() = Constants.FLATBUFFERS_22_12_06() + fun validateVersion() = Constants.FLATBUFFERS_23_1_4() fun getRootAsTestSimpleTableWithEnum(_bb: ByteBuffer): TestSimpleTableWithEnum = getRootAsTestSimpleTableWithEnum(_bb, TestSimpleTableWithEnum()) fun getRootAsTestSimpleTableWithEnum(_bb: ByteBuffer, obj: TestSimpleTableWithEnum): TestSimpleTableWithEnum { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/MyGame/Example/TestSimpleTableWithEnum.lua b/tests/MyGame/Example/TestSimpleTableWithEnum.lua index 694917276b..7b81714a6b 100644 --- a/tests/MyGame/Example/TestSimpleTableWithEnum.lua +++ b/tests/MyGame/Example/TestSimpleTableWithEnum.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.12.06 + flatc version: 23.1.4 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/TestSimpleTableWithEnum.nim b/tests/MyGame/Example/TestSimpleTableWithEnum.nim index c5e23f23d5..396e539da1 100644 --- a/tests/MyGame/Example/TestSimpleTableWithEnum.nim +++ b/tests/MyGame/Example/TestSimpleTableWithEnum.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.12.06 + flatc version: 23.1.4 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example/TypeAliases.cs b/tests/MyGame/Example/TypeAliases.cs index 841860726e..a1f09d1e50 100644 --- a/tests/MyGame/Example/TypeAliases.cs +++ b/tests/MyGame/Example/TypeAliases.cs @@ -13,7 +13,7 @@ public struct TypeAliases : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_12_06(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_4(); } public static TypeAliases GetRootAsTypeAliases(ByteBuffer _bb) { return GetRootAsTypeAliases(_bb, new TypeAliases()); } public static TypeAliases GetRootAsTypeAliases(ByteBuffer _bb, TypeAliases obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/MyGame/Example/TypeAliases.java b/tests/MyGame/Example/TypeAliases.java index 54df0ec206..2810f88b9d 100644 --- a/tests/MyGame/Example/TypeAliases.java +++ b/tests/MyGame/Example/TypeAliases.java @@ -21,7 +21,7 @@ @SuppressWarnings("unused") public final class TypeAliases extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_22_12_06(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_1_4(); } public static TypeAliases getRootAsTypeAliases(ByteBuffer _bb) { return getRootAsTypeAliases(_bb, new TypeAliases()); } public static TypeAliases getRootAsTypeAliases(ByteBuffer _bb, TypeAliases obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/tests/MyGame/Example/TypeAliases.kt b/tests/MyGame/Example/TypeAliases.kt index 65a09e1130..9a9d4d1ef2 100644 --- a/tests/MyGame/Example/TypeAliases.kt +++ b/tests/MyGame/Example/TypeAliases.kt @@ -203,7 +203,7 @@ class TypeAliases : Table() { } } companion object { - fun validateVersion() = Constants.FLATBUFFERS_22_12_06() + fun validateVersion() = Constants.FLATBUFFERS_23_1_4() fun getRootAsTypeAliases(_bb: ByteBuffer): TypeAliases = getRootAsTypeAliases(_bb, TypeAliases()) fun getRootAsTypeAliases(_bb: ByteBuffer, obj: TypeAliases): TypeAliases { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/MyGame/Example/TypeAliases.lua b/tests/MyGame/Example/TypeAliases.lua index c0326e33b1..bdb7b0d923 100644 --- a/tests/MyGame/Example/TypeAliases.lua +++ b/tests/MyGame/Example/TypeAliases.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.12.06 + flatc version: 23.1.4 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/TypeAliases.nim b/tests/MyGame/Example/TypeAliases.nim index 5f6d8e34ce..4fbb2714f3 100644 --- a/tests/MyGame/Example/TypeAliases.nim +++ b/tests/MyGame/Example/TypeAliases.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.12.06 + flatc version: 23.1.4 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example/Vec3.lua b/tests/MyGame/Example/Vec3.lua index 2182db2921..de447c4849 100644 --- a/tests/MyGame/Example/Vec3.lua +++ b/tests/MyGame/Example/Vec3.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.12.06 + flatc version: 23.1.4 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/Vec3.nim b/tests/MyGame/Example/Vec3.nim index 87952dab60..1590f3d15f 100644 --- a/tests/MyGame/Example/Vec3.nim +++ b/tests/MyGame/Example/Vec3.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.12.06 + flatc version: 23.1.4 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example2/Monster.cs b/tests/MyGame/Example2/Monster.cs index e8d5be266c..e97eac35ca 100644 --- a/tests/MyGame/Example2/Monster.cs +++ b/tests/MyGame/Example2/Monster.cs @@ -13,7 +13,7 @@ public struct Monster : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_12_06(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_4(); } public static Monster GetRootAsMonster(ByteBuffer _bb) { return GetRootAsMonster(_bb, new Monster()); } public static Monster GetRootAsMonster(ByteBuffer _bb, Monster obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/MyGame/Example2/Monster.java b/tests/MyGame/Example2/Monster.java index 5ba6d76387..631f63dbdd 100644 --- a/tests/MyGame/Example2/Monster.java +++ b/tests/MyGame/Example2/Monster.java @@ -21,7 +21,7 @@ @SuppressWarnings("unused") public final class Monster extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_22_12_06(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_1_4(); } public static Monster getRootAsMonster(ByteBuffer _bb) { return getRootAsMonster(_bb, new Monster()); } public static Monster getRootAsMonster(ByteBuffer _bb, Monster obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/tests/MyGame/Example2/Monster.kt b/tests/MyGame/Example2/Monster.kt index 252b684fd9..9c6c353eea 100644 --- a/tests/MyGame/Example2/Monster.kt +++ b/tests/MyGame/Example2/Monster.kt @@ -17,7 +17,7 @@ class Monster : Table() { return this } companion object { - fun validateVersion() = Constants.FLATBUFFERS_22_12_06() + fun validateVersion() = Constants.FLATBUFFERS_23_1_4() fun getRootAsMonster(_bb: ByteBuffer): Monster = getRootAsMonster(_bb, Monster()) fun getRootAsMonster(_bb: ByteBuffer, obj: Monster): Monster { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/MyGame/Example2/Monster.lua b/tests/MyGame/Example2/Monster.lua index d3a6c007bb..9a5dac7084 100644 --- a/tests/MyGame/Example2/Monster.lua +++ b/tests/MyGame/Example2/Monster.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.12.06 + flatc version: 23.1.4 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example2/Monster.nim b/tests/MyGame/Example2/Monster.nim index deded314fd..8307a2ea14 100644 --- a/tests/MyGame/Example2/Monster.nim +++ b/tests/MyGame/Example2/Monster.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.12.06 + flatc version: 23.1.4 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/InParentNamespace.cs b/tests/MyGame/InParentNamespace.cs index faafd25e32..c35209e085 100644 --- a/tests/MyGame/InParentNamespace.cs +++ b/tests/MyGame/InParentNamespace.cs @@ -13,7 +13,7 @@ public struct InParentNamespace : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_12_06(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_4(); } public static InParentNamespace GetRootAsInParentNamespace(ByteBuffer _bb) { return GetRootAsInParentNamespace(_bb, new InParentNamespace()); } public static InParentNamespace GetRootAsInParentNamespace(ByteBuffer _bb, InParentNamespace obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/MyGame/InParentNamespace.java b/tests/MyGame/InParentNamespace.java index bc4da5e6d4..4402e55d3b 100644 --- a/tests/MyGame/InParentNamespace.java +++ b/tests/MyGame/InParentNamespace.java @@ -21,7 +21,7 @@ @SuppressWarnings("unused") public final class InParentNamespace extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_22_12_06(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_1_4(); } public static InParentNamespace getRootAsInParentNamespace(ByteBuffer _bb) { return getRootAsInParentNamespace(_bb, new InParentNamespace()); } public static InParentNamespace getRootAsInParentNamespace(ByteBuffer _bb, InParentNamespace obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/tests/MyGame/InParentNamespace.kt b/tests/MyGame/InParentNamespace.kt index 3c8bd6e482..bb53b904f2 100644 --- a/tests/MyGame/InParentNamespace.kt +++ b/tests/MyGame/InParentNamespace.kt @@ -17,7 +17,7 @@ class InParentNamespace : Table() { return this } companion object { - fun validateVersion() = Constants.FLATBUFFERS_22_12_06() + fun validateVersion() = Constants.FLATBUFFERS_23_1_4() fun getRootAsInParentNamespace(_bb: ByteBuffer): InParentNamespace = getRootAsInParentNamespace(_bb, InParentNamespace()) fun getRootAsInParentNamespace(_bb: ByteBuffer, obj: InParentNamespace): InParentNamespace { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/MyGame/InParentNamespace.lua b/tests/MyGame/InParentNamespace.lua index 26da89e199..e16903f449 100644 --- a/tests/MyGame/InParentNamespace.lua +++ b/tests/MyGame/InParentNamespace.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.12.06 + flatc version: 23.1.4 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/InParentNamespace.nim b/tests/MyGame/InParentNamespace.nim index 6d31210bc5..771991a041 100644 --- a/tests/MyGame/InParentNamespace.nim +++ b/tests/MyGame/InParentNamespace.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.12.06 + flatc version: 23.1.4 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/MonsterExtra.cs b/tests/MyGame/MonsterExtra.cs index b11da90081..d74115df24 100644 --- a/tests/MyGame/MonsterExtra.cs +++ b/tests/MyGame/MonsterExtra.cs @@ -13,7 +13,7 @@ public struct MonsterExtra : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_12_06(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_4(); } public static MonsterExtra GetRootAsMonsterExtra(ByteBuffer _bb) { return GetRootAsMonsterExtra(_bb, new MonsterExtra()); } public static MonsterExtra GetRootAsMonsterExtra(ByteBuffer _bb, MonsterExtra obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public static bool MonsterExtraBufferHasIdentifier(ByteBuffer _bb) { return Table.__has_identifier(_bb, "MONE"); } diff --git a/tests/MyGame/MonsterExtra.java b/tests/MyGame/MonsterExtra.java index 85b243c98a..da9883f103 100644 --- a/tests/MyGame/MonsterExtra.java +++ b/tests/MyGame/MonsterExtra.java @@ -21,7 +21,7 @@ @SuppressWarnings("unused") public final class MonsterExtra extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_22_12_06(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_1_4(); } public static MonsterExtra getRootAsMonsterExtra(ByteBuffer _bb) { return getRootAsMonsterExtra(_bb, new MonsterExtra()); } public static MonsterExtra getRootAsMonsterExtra(ByteBuffer _bb, MonsterExtra obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public static boolean MonsterExtraBufferHasIdentifier(ByteBuffer _bb) { return __has_identifier(_bb, "MONE"); } diff --git a/tests/MyGame/MonsterExtra.kt b/tests/MyGame/MonsterExtra.kt index 0028b74242..9347d08d85 100644 --- a/tests/MyGame/MonsterExtra.kt +++ b/tests/MyGame/MonsterExtra.kt @@ -175,7 +175,7 @@ class MonsterExtra : Table() { } } companion object { - fun validateVersion() = Constants.FLATBUFFERS_22_12_06() + fun validateVersion() = Constants.FLATBUFFERS_23_1_4() fun getRootAsMonsterExtra(_bb: ByteBuffer): MonsterExtra = getRootAsMonsterExtra(_bb, MonsterExtra()) fun getRootAsMonsterExtra(_bb: ByteBuffer, obj: MonsterExtra): MonsterExtra { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/MyGame/OtherNameSpace/FromInclude.lua b/tests/MyGame/OtherNameSpace/FromInclude.lua index 278b34f252..ac6828d3b2 100644 --- a/tests/MyGame/OtherNameSpace/FromInclude.lua +++ b/tests/MyGame/OtherNameSpace/FromInclude.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.12.06 + flatc version: 23.1.4 Declared by : //include_test/sub/include_test2.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/OtherNameSpace/FromInclude.nim b/tests/MyGame/OtherNameSpace/FromInclude.nim index 2861afb9bd..3df2b2c0a7 100644 --- a/tests/MyGame/OtherNameSpace/FromInclude.nim +++ b/tests/MyGame/OtherNameSpace/FromInclude.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.12.06 + flatc version: 23.1.4 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/OtherNameSpace/TableB.lua b/tests/MyGame/OtherNameSpace/TableB.lua index 57072329c1..541eeaed86 100644 --- a/tests/MyGame/OtherNameSpace/TableB.lua +++ b/tests/MyGame/OtherNameSpace/TableB.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.12.06 + flatc version: 23.1.4 Declared by : //include_test/sub/include_test2.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/OtherNameSpace/TableB.nim b/tests/MyGame/OtherNameSpace/TableB.nim index b8dc5ded5f..2b45b5f936 100644 --- a/tests/MyGame/OtherNameSpace/TableB.nim +++ b/tests/MyGame/OtherNameSpace/TableB.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.12.06 + flatc version: 23.1.4 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/OtherNameSpace/Unused.lua b/tests/MyGame/OtherNameSpace/Unused.lua index 449eb99ea1..77400d69dd 100644 --- a/tests/MyGame/OtherNameSpace/Unused.lua +++ b/tests/MyGame/OtherNameSpace/Unused.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.12.06 + flatc version: 23.1.4 Declared by : //include_test/sub/include_test2.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/OtherNameSpace/Unused.nim b/tests/MyGame/OtherNameSpace/Unused.nim index 872678cb3c..9459a0d78a 100644 --- a/tests/MyGame/OtherNameSpace/Unused.nim +++ b/tests/MyGame/OtherNameSpace/Unused.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.12.06 + flatc version: 23.1.4 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/Property.nim b/tests/Property.nim index 48650320d6..3790fa8d8a 100644 --- a/tests/Property.nim +++ b/tests/Property.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.12.06 + flatc version: 23.1.4 Declared by : ]# diff --git a/tests/TableA.lua b/tests/TableA.lua index bc8c788a74..a21d8f8e8b 100644 --- a/tests/TableA.lua +++ b/tests/TableA.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.12.06 + flatc version: 23.1.4 Declared by : //include_test/include_test1.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/TableA.nim b/tests/TableA.nim index 7416349191..cd69f9b844 100644 --- a/tests/TableA.nim +++ b/tests/TableA.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.12.06 + flatc version: 23.1.4 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/TestMutatingBool.nim b/tests/TestMutatingBool.nim index 6ab9578f54..a54b8c71a9 100644 --- a/tests/TestMutatingBool.nim +++ b/tests/TestMutatingBool.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.12.06 + flatc version: 23.1.4 Declared by : ]# diff --git a/tests/alignment_test_generated.h b/tests/alignment_test_generated.h index d7f876a113..0a13fe60d2 100644 --- a/tests/alignment_test_generated.h +++ b/tests/alignment_test_generated.h @@ -8,9 +8,9 @@ // Ensure the included flatbuffers.h is the same version as when this file was // generated, otherwise it may not be compatible. -static_assert(FLATBUFFERS_VERSION_MAJOR == 22 && - FLATBUFFERS_VERSION_MINOR == 12 && - FLATBUFFERS_VERSION_REVISION == 6, +static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && + FLATBUFFERS_VERSION_MINOR == 1 && + FLATBUFFERS_VERSION_REVISION == 4, "Non-compatible flatbuffers version included"); struct BadAlignmentSmall; diff --git a/tests/arrays_test_generated.h b/tests/arrays_test_generated.h index c89af369a0..cbe838996b 100644 --- a/tests/arrays_test_generated.h +++ b/tests/arrays_test_generated.h @@ -8,9 +8,9 @@ // Ensure the included flatbuffers.h is the same version as when this file was // generated, otherwise it may not be compatible. -static_assert(FLATBUFFERS_VERSION_MAJOR == 22 && - FLATBUFFERS_VERSION_MINOR == 12 && - FLATBUFFERS_VERSION_REVISION == 6, +static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && + FLATBUFFERS_VERSION_MINOR == 1 && + FLATBUFFERS_VERSION_REVISION == 4, "Non-compatible flatbuffers version included"); namespace MyGame { diff --git a/tests/cpp17/generated_cpp17/monster_test_generated.h b/tests/cpp17/generated_cpp17/monster_test_generated.h index 44d45eecdb..691ecbf46e 100644 --- a/tests/cpp17/generated_cpp17/monster_test_generated.h +++ b/tests/cpp17/generated_cpp17/monster_test_generated.h @@ -10,9 +10,9 @@ // Ensure the included flatbuffers.h is the same version as when this file was // generated, otherwise it may not be compatible. -static_assert(FLATBUFFERS_VERSION_MAJOR == 22 && - FLATBUFFERS_VERSION_MINOR == 12 && - FLATBUFFERS_VERSION_REVISION == 6, +static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && + FLATBUFFERS_VERSION_MINOR == 1 && + FLATBUFFERS_VERSION_REVISION == 4, "Non-compatible flatbuffers version included"); namespace MyGame { diff --git a/tests/cpp17/generated_cpp17/optional_scalars_generated.h b/tests/cpp17/generated_cpp17/optional_scalars_generated.h index 9a2c70d3a0..da101aa136 100644 --- a/tests/cpp17/generated_cpp17/optional_scalars_generated.h +++ b/tests/cpp17/generated_cpp17/optional_scalars_generated.h @@ -8,9 +8,9 @@ // Ensure the included flatbuffers.h is the same version as when this file was // generated, otherwise it may not be compatible. -static_assert(FLATBUFFERS_VERSION_MAJOR == 22 && - FLATBUFFERS_VERSION_MINOR == 12 && - FLATBUFFERS_VERSION_REVISION == 6, +static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && + FLATBUFFERS_VERSION_MINOR == 1 && + FLATBUFFERS_VERSION_REVISION == 4, "Non-compatible flatbuffers version included"); namespace optional_scalars { diff --git a/tests/cpp17/generated_cpp17/union_vector_generated.h b/tests/cpp17/generated_cpp17/union_vector_generated.h index 93197d666a..6c772414fd 100644 --- a/tests/cpp17/generated_cpp17/union_vector_generated.h +++ b/tests/cpp17/generated_cpp17/union_vector_generated.h @@ -8,9 +8,9 @@ // Ensure the included flatbuffers.h is the same version as when this file was // generated, otherwise it may not be compatible. -static_assert(FLATBUFFERS_VERSION_MAJOR == 22 && - FLATBUFFERS_VERSION_MINOR == 12 && - FLATBUFFERS_VERSION_REVISION == 6, +static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && + FLATBUFFERS_VERSION_MINOR == 1 && + FLATBUFFERS_VERSION_REVISION == 4, "Non-compatible flatbuffers version included"); struct Attacker; diff --git a/tests/evolution_test/evolution_v1_generated.h b/tests/evolution_test/evolution_v1_generated.h index 923297ae29..6f5e0642a3 100644 --- a/tests/evolution_test/evolution_v1_generated.h +++ b/tests/evolution_test/evolution_v1_generated.h @@ -8,9 +8,9 @@ // Ensure the included flatbuffers.h is the same version as when this file was // generated, otherwise it may not be compatible. -static_assert(FLATBUFFERS_VERSION_MAJOR == 22 && - FLATBUFFERS_VERSION_MINOR == 12 && - FLATBUFFERS_VERSION_REVISION == 6, +static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && + FLATBUFFERS_VERSION_MINOR == 1 && + FLATBUFFERS_VERSION_REVISION == 4, "Non-compatible flatbuffers version included"); namespace Evolution { diff --git a/tests/evolution_test/evolution_v2_generated.h b/tests/evolution_test/evolution_v2_generated.h index 5a9e1d5168..490e754e63 100644 --- a/tests/evolution_test/evolution_v2_generated.h +++ b/tests/evolution_test/evolution_v2_generated.h @@ -8,9 +8,9 @@ // Ensure the included flatbuffers.h is the same version as when this file was // generated, otherwise it may not be compatible. -static_assert(FLATBUFFERS_VERSION_MAJOR == 22 && - FLATBUFFERS_VERSION_MINOR == 12 && - FLATBUFFERS_VERSION_REVISION == 6, +static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && + FLATBUFFERS_VERSION_MINOR == 1 && + FLATBUFFERS_VERSION_REVISION == 4, "Non-compatible flatbuffers version included"); namespace Evolution { diff --git a/tests/key_field/key_field_sample_generated.h b/tests/key_field/key_field_sample_generated.h index be16f65581..31cc40016e 100644 --- a/tests/key_field/key_field_sample_generated.h +++ b/tests/key_field/key_field_sample_generated.h @@ -8,9 +8,9 @@ // Ensure the included flatbuffers.h is the same version as when this file was // generated, otherwise it may not be compatible. -static_assert(FLATBUFFERS_VERSION_MAJOR == 22 && - FLATBUFFERS_VERSION_MINOR == 12 && - FLATBUFFERS_VERSION_REVISION == 6, +static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && + FLATBUFFERS_VERSION_MINOR == 1 && + FLATBUFFERS_VERSION_REVISION == 4, "Non-compatible flatbuffers version included"); namespace keyfield { diff --git a/tests/monster_extra_generated.h b/tests/monster_extra_generated.h index 18a1e5feae..970c86360a 100644 --- a/tests/monster_extra_generated.h +++ b/tests/monster_extra_generated.h @@ -8,9 +8,9 @@ // Ensure the included flatbuffers.h is the same version as when this file was // generated, otherwise it may not be compatible. -static_assert(FLATBUFFERS_VERSION_MAJOR == 22 && - FLATBUFFERS_VERSION_MINOR == 12 && - FLATBUFFERS_VERSION_REVISION == 6, +static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && + FLATBUFFERS_VERSION_MINOR == 1 && + FLATBUFFERS_VERSION_REVISION == 4, "Non-compatible flatbuffers version included"); namespace MyGame { diff --git a/tests/monster_test_bfbs_generated.h b/tests/monster_test_bfbs_generated.h index ea5cf343d4..0bc7301321 100644 --- a/tests/monster_test_bfbs_generated.h +++ b/tests/monster_test_bfbs_generated.h @@ -8,9 +8,9 @@ // Ensure the included flatbuffers.h is the same version as when this file was // generated, otherwise it may not be compatible. -static_assert(FLATBUFFERS_VERSION_MAJOR == 22 && - FLATBUFFERS_VERSION_MINOR == 12 && - FLATBUFFERS_VERSION_REVISION == 6, +static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && + FLATBUFFERS_VERSION_MINOR == 1 && + FLATBUFFERS_VERSION_REVISION == 4, "Non-compatible flatbuffers version included"); namespace MyGame { diff --git a/tests/monster_test_generated.h b/tests/monster_test_generated.h index 3e95c4b330..9401897ffd 100644 --- a/tests/monster_test_generated.h +++ b/tests/monster_test_generated.h @@ -10,9 +10,9 @@ // Ensure the included flatbuffers.h is the same version as when this file was // generated, otherwise it may not be compatible. -static_assert(FLATBUFFERS_VERSION_MAJOR == 22 && - FLATBUFFERS_VERSION_MINOR == 12 && - FLATBUFFERS_VERSION_REVISION == 6, +static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && + FLATBUFFERS_VERSION_MINOR == 1 && + FLATBUFFERS_VERSION_REVISION == 4, "Non-compatible flatbuffers version included"); namespace MyGame { diff --git a/tests/monster_test_suffix/ext_only/monster_test_generated.hpp b/tests/monster_test_suffix/ext_only/monster_test_generated.hpp index 3e95c4b330..9401897ffd 100644 --- a/tests/monster_test_suffix/ext_only/monster_test_generated.hpp +++ b/tests/monster_test_suffix/ext_only/monster_test_generated.hpp @@ -10,9 +10,9 @@ // Ensure the included flatbuffers.h is the same version as when this file was // generated, otherwise it may not be compatible. -static_assert(FLATBUFFERS_VERSION_MAJOR == 22 && - FLATBUFFERS_VERSION_MINOR == 12 && - FLATBUFFERS_VERSION_REVISION == 6, +static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && + FLATBUFFERS_VERSION_MINOR == 1 && + FLATBUFFERS_VERSION_REVISION == 4, "Non-compatible flatbuffers version included"); namespace MyGame { diff --git a/tests/monster_test_suffix/filesuffix_only/monster_test_suffix.h b/tests/monster_test_suffix/filesuffix_only/monster_test_suffix.h index 3e95c4b330..9401897ffd 100644 --- a/tests/monster_test_suffix/filesuffix_only/monster_test_suffix.h +++ b/tests/monster_test_suffix/filesuffix_only/monster_test_suffix.h @@ -10,9 +10,9 @@ // Ensure the included flatbuffers.h is the same version as when this file was // generated, otherwise it may not be compatible. -static_assert(FLATBUFFERS_VERSION_MAJOR == 22 && - FLATBUFFERS_VERSION_MINOR == 12 && - FLATBUFFERS_VERSION_REVISION == 6, +static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && + FLATBUFFERS_VERSION_MINOR == 1 && + FLATBUFFERS_VERSION_REVISION == 4, "Non-compatible flatbuffers version included"); namespace MyGame { diff --git a/tests/monster_test_suffix/monster_test_suffix.hpp b/tests/monster_test_suffix/monster_test_suffix.hpp index 3e95c4b330..9401897ffd 100644 --- a/tests/monster_test_suffix/monster_test_suffix.hpp +++ b/tests/monster_test_suffix/monster_test_suffix.hpp @@ -10,9 +10,9 @@ // Ensure the included flatbuffers.h is the same version as when this file was // generated, otherwise it may not be compatible. -static_assert(FLATBUFFERS_VERSION_MAJOR == 22 && - FLATBUFFERS_VERSION_MINOR == 12 && - FLATBUFFERS_VERSION_REVISION == 6, +static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && + FLATBUFFERS_VERSION_MINOR == 1 && + FLATBUFFERS_VERSION_REVISION == 4, "Non-compatible flatbuffers version included"); namespace MyGame { diff --git a/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.cs b/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.cs index 292f7d9e45..bed405121c 100644 --- a/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.cs +++ b/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.cs @@ -13,7 +13,7 @@ public struct TableInNestedNS : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_12_06(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_4(); } public static TableInNestedNS GetRootAsTableInNestedNS(ByteBuffer _bb) { return GetRootAsTableInNestedNS(_bb, new TableInNestedNS()); } public static TableInNestedNS GetRootAsTableInNestedNS(ByteBuffer _bb, TableInNestedNS obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.java b/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.java index 3f398e9b76..e38df6b91d 100644 --- a/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.java +++ b/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.java @@ -9,7 +9,7 @@ @SuppressWarnings("unused") public final class TableInNestedNS extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_22_12_06(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_1_4(); } public static TableInNestedNS getRootAsTableInNestedNS(ByteBuffer _bb) { return getRootAsTableInNestedNS(_bb, new TableInNestedNS()); } public static TableInNestedNS getRootAsTableInNestedNS(ByteBuffer _bb, TableInNestedNS obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.kt b/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.kt index 2b5cafdb38..846e9984d9 100644 --- a/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.kt +++ b/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.kt @@ -32,7 +32,7 @@ class TableInNestedNS : Table() { } } companion object { - fun validateVersion() = Constants.FLATBUFFERS_22_12_06() + fun validateVersion() = Constants.FLATBUFFERS_23_1_4() fun getRootAsTableInNestedNS(_bb: ByteBuffer): TableInNestedNS = getRootAsTableInNestedNS(_bb, TableInNestedNS()) fun getRootAsTableInNestedNS(_bb: ByteBuffer, obj: TableInNestedNS): TableInNestedNS { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/namespace_test/NamespaceA/SecondTableInA.cs b/tests/namespace_test/NamespaceA/SecondTableInA.cs index 6feb0cbf6b..8540bcd512 100644 --- a/tests/namespace_test/NamespaceA/SecondTableInA.cs +++ b/tests/namespace_test/NamespaceA/SecondTableInA.cs @@ -13,7 +13,7 @@ public struct SecondTableInA : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_12_06(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_4(); } public static SecondTableInA GetRootAsSecondTableInA(ByteBuffer _bb) { return GetRootAsSecondTableInA(_bb, new SecondTableInA()); } public static SecondTableInA GetRootAsSecondTableInA(ByteBuffer _bb, SecondTableInA obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/namespace_test/NamespaceA/SecondTableInA.java b/tests/namespace_test/NamespaceA/SecondTableInA.java index 8515126ca8..3680f74f82 100644 --- a/tests/namespace_test/NamespaceA/SecondTableInA.java +++ b/tests/namespace_test/NamespaceA/SecondTableInA.java @@ -9,7 +9,7 @@ @SuppressWarnings("unused") public final class SecondTableInA extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_22_12_06(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_1_4(); } public static SecondTableInA getRootAsSecondTableInA(ByteBuffer _bb) { return getRootAsSecondTableInA(_bb, new SecondTableInA()); } public static SecondTableInA getRootAsSecondTableInA(ByteBuffer _bb, SecondTableInA obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/tests/namespace_test/NamespaceA/SecondTableInA.kt b/tests/namespace_test/NamespaceA/SecondTableInA.kt index 40cb32b2d0..d6ad1e1376 100644 --- a/tests/namespace_test/NamespaceA/SecondTableInA.kt +++ b/tests/namespace_test/NamespaceA/SecondTableInA.kt @@ -27,7 +27,7 @@ class SecondTableInA : Table() { } } companion object { - fun validateVersion() = Constants.FLATBUFFERS_22_12_06() + fun validateVersion() = Constants.FLATBUFFERS_23_1_4() fun getRootAsSecondTableInA(_bb: ByteBuffer): SecondTableInA = getRootAsSecondTableInA(_bb, SecondTableInA()) fun getRootAsSecondTableInA(_bb: ByteBuffer, obj: SecondTableInA): SecondTableInA { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/namespace_test/NamespaceA/TableInFirstNS.cs b/tests/namespace_test/NamespaceA/TableInFirstNS.cs index eaa93897ec..07151f9b29 100644 --- a/tests/namespace_test/NamespaceA/TableInFirstNS.cs +++ b/tests/namespace_test/NamespaceA/TableInFirstNS.cs @@ -13,7 +13,7 @@ public struct TableInFirstNS : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_12_06(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_4(); } public static TableInFirstNS GetRootAsTableInFirstNS(ByteBuffer _bb) { return GetRootAsTableInFirstNS(_bb, new TableInFirstNS()); } public static TableInFirstNS GetRootAsTableInFirstNS(ByteBuffer _bb, TableInFirstNS obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/namespace_test/NamespaceA/TableInFirstNS.java b/tests/namespace_test/NamespaceA/TableInFirstNS.java index a593c3c99a..62d2331d75 100644 --- a/tests/namespace_test/NamespaceA/TableInFirstNS.java +++ b/tests/namespace_test/NamespaceA/TableInFirstNS.java @@ -9,7 +9,7 @@ @SuppressWarnings("unused") public final class TableInFirstNS extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_22_12_06(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_1_4(); } public static TableInFirstNS getRootAsTableInFirstNS(ByteBuffer _bb) { return getRootAsTableInFirstNS(_bb, new TableInFirstNS()); } public static TableInFirstNS getRootAsTableInFirstNS(ByteBuffer _bb, TableInFirstNS obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/tests/namespace_test/NamespaceA/TableInFirstNS.kt b/tests/namespace_test/NamespaceA/TableInFirstNS.kt index e4e9264c0c..efeac26bb8 100644 --- a/tests/namespace_test/NamespaceA/TableInFirstNS.kt +++ b/tests/namespace_test/NamespaceA/TableInFirstNS.kt @@ -67,7 +67,7 @@ class TableInFirstNS : Table() { } } companion object { - fun validateVersion() = Constants.FLATBUFFERS_22_12_06() + fun validateVersion() = Constants.FLATBUFFERS_23_1_4() fun getRootAsTableInFirstNS(_bb: ByteBuffer): TableInFirstNS = getRootAsTableInFirstNS(_bb, TableInFirstNS()) fun getRootAsTableInFirstNS(_bb: ByteBuffer, obj: TableInFirstNS): TableInFirstNS { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/namespace_test/NamespaceC/TableInC.cs b/tests/namespace_test/NamespaceC/TableInC.cs index d419911cad..657c87f1da 100644 --- a/tests/namespace_test/NamespaceC/TableInC.cs +++ b/tests/namespace_test/NamespaceC/TableInC.cs @@ -13,7 +13,7 @@ public struct TableInC : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_12_06(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_4(); } public static TableInC GetRootAsTableInC(ByteBuffer _bb) { return GetRootAsTableInC(_bb, new TableInC()); } public static TableInC GetRootAsTableInC(ByteBuffer _bb, TableInC obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/namespace_test/NamespaceC/TableInC.java b/tests/namespace_test/NamespaceC/TableInC.java index f7acc57127..e3a94b0ec0 100644 --- a/tests/namespace_test/NamespaceC/TableInC.java +++ b/tests/namespace_test/NamespaceC/TableInC.java @@ -9,7 +9,7 @@ @SuppressWarnings("unused") public final class TableInC extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_22_12_06(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_1_4(); } public static TableInC getRootAsTableInC(ByteBuffer _bb) { return getRootAsTableInC(_bb, new TableInC()); } public static TableInC getRootAsTableInC(ByteBuffer _bb, TableInC obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/tests/namespace_test/NamespaceC/TableInC.kt b/tests/namespace_test/NamespaceC/TableInC.kt index fafab7ea0a..ea7490cdca 100644 --- a/tests/namespace_test/NamespaceC/TableInC.kt +++ b/tests/namespace_test/NamespaceC/TableInC.kt @@ -36,7 +36,7 @@ class TableInC : Table() { } } companion object { - fun validateVersion() = Constants.FLATBUFFERS_22_12_06() + fun validateVersion() = Constants.FLATBUFFERS_23_1_4() fun getRootAsTableInC(_bb: ByteBuffer): TableInC = getRootAsTableInC(_bb, TableInC()) fun getRootAsTableInC(_bb: ByteBuffer, obj: TableInC): TableInC { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/namespace_test/namespace_test1_generated.h b/tests/namespace_test/namespace_test1_generated.h index 460281fc50..bf6ddc6a25 100644 --- a/tests/namespace_test/namespace_test1_generated.h +++ b/tests/namespace_test/namespace_test1_generated.h @@ -8,9 +8,9 @@ // Ensure the included flatbuffers.h is the same version as when this file was // generated, otherwise it may not be compatible. -static_assert(FLATBUFFERS_VERSION_MAJOR == 22 && - FLATBUFFERS_VERSION_MINOR == 12 && - FLATBUFFERS_VERSION_REVISION == 6, +static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && + FLATBUFFERS_VERSION_MINOR == 1 && + FLATBUFFERS_VERSION_REVISION == 4, "Non-compatible flatbuffers version included"); namespace NamespaceA { diff --git a/tests/namespace_test/namespace_test2_generated.h b/tests/namespace_test/namespace_test2_generated.h index fc4fc2b64c..f5de097e4e 100644 --- a/tests/namespace_test/namespace_test2_generated.h +++ b/tests/namespace_test/namespace_test2_generated.h @@ -8,9 +8,9 @@ // Ensure the included flatbuffers.h is the same version as when this file was // generated, otherwise it may not be compatible. -static_assert(FLATBUFFERS_VERSION_MAJOR == 22 && - FLATBUFFERS_VERSION_MINOR == 12 && - FLATBUFFERS_VERSION_REVISION == 6, +static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && + FLATBUFFERS_VERSION_MINOR == 1 && + FLATBUFFERS_VERSION_REVISION == 4, "Non-compatible flatbuffers version included"); namespace NamespaceA { diff --git a/tests/native_inline_table_test_generated.h b/tests/native_inline_table_test_generated.h index d1711fafb8..4db1c8361b 100644 --- a/tests/native_inline_table_test_generated.h +++ b/tests/native_inline_table_test_generated.h @@ -8,9 +8,9 @@ // Ensure the included flatbuffers.h is the same version as when this file was // generated, otherwise it may not be compatible. -static_assert(FLATBUFFERS_VERSION_MAJOR == 22 && - FLATBUFFERS_VERSION_MINOR == 12 && - FLATBUFFERS_VERSION_REVISION == 6, +static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && + FLATBUFFERS_VERSION_MINOR == 1 && + FLATBUFFERS_VERSION_REVISION == 4, "Non-compatible flatbuffers version included"); struct NativeInlineTable; diff --git a/tests/native_type_test_generated.h b/tests/native_type_test_generated.h index dcf5dea7ee..a4117d5f8c 100644 --- a/tests/native_type_test_generated.h +++ b/tests/native_type_test_generated.h @@ -8,9 +8,9 @@ // Ensure the included flatbuffers.h is the same version as when this file was // generated, otherwise it may not be compatible. -static_assert(FLATBUFFERS_VERSION_MAJOR == 22 && - FLATBUFFERS_VERSION_MINOR == 12 && - FLATBUFFERS_VERSION_REVISION == 6, +static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && + FLATBUFFERS_VERSION_MINOR == 1 && + FLATBUFFERS_VERSION_REVISION == 4, "Non-compatible flatbuffers version included"); #include "native_type_test_impl.h" diff --git a/tests/nested_namespace_test/nested_namespace_test3_generated.cs b/tests/nested_namespace_test/nested_namespace_test3_generated.cs index 0154b48b18..7993bf3f91 100644 --- a/tests/nested_namespace_test/nested_namespace_test3_generated.cs +++ b/tests/nested_namespace_test/nested_namespace_test3_generated.cs @@ -13,7 +13,7 @@ public struct ColorTestTable : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_12_06(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_4(); } public static ColorTestTable GetRootAsColorTestTable(ByteBuffer _bb) { return GetRootAsColorTestTable(_bb, new ColorTestTable()); } public static ColorTestTable GetRootAsColorTestTable(ByteBuffer _bb, ColorTestTable obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/optional_scalars/OptionalByte.nim b/tests/optional_scalars/OptionalByte.nim index 1643be79c8..ccd94711d6 100644 --- a/tests/optional_scalars/OptionalByte.nim +++ b/tests/optional_scalars/OptionalByte.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.12.06 + flatc version: 23.1.4 Declared by : Rooting type : optional_scalars.ScalarStuff () diff --git a/tests/optional_scalars/ScalarStuff.cs b/tests/optional_scalars/ScalarStuff.cs index 10cda55469..619b620739 100644 --- a/tests/optional_scalars/ScalarStuff.cs +++ b/tests/optional_scalars/ScalarStuff.cs @@ -13,7 +13,7 @@ public struct ScalarStuff : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_12_06(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_4(); } public static ScalarStuff GetRootAsScalarStuff(ByteBuffer _bb) { return GetRootAsScalarStuff(_bb, new ScalarStuff()); } public static ScalarStuff GetRootAsScalarStuff(ByteBuffer _bb, ScalarStuff obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public static bool ScalarStuffBufferHasIdentifier(ByteBuffer _bb) { return Table.__has_identifier(_bb, "NULL"); } diff --git a/tests/optional_scalars/ScalarStuff.java b/tests/optional_scalars/ScalarStuff.java index 10b29242bd..c077204a98 100644 --- a/tests/optional_scalars/ScalarStuff.java +++ b/tests/optional_scalars/ScalarStuff.java @@ -21,7 +21,7 @@ @SuppressWarnings("unused") public final class ScalarStuff extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_22_12_06(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_1_4(); } public static ScalarStuff getRootAsScalarStuff(ByteBuffer _bb) { return getRootAsScalarStuff(_bb, new ScalarStuff()); } public static ScalarStuff getRootAsScalarStuff(ByteBuffer _bb, ScalarStuff obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public static boolean ScalarStuffBufferHasIdentifier(ByteBuffer _bb) { return __has_identifier(_bb, "NULL"); } diff --git a/tests/optional_scalars/ScalarStuff.kt b/tests/optional_scalars/ScalarStuff.kt index a0d66eca6c..103e0ce929 100644 --- a/tests/optional_scalars/ScalarStuff.kt +++ b/tests/optional_scalars/ScalarStuff.kt @@ -197,7 +197,7 @@ class ScalarStuff : Table() { return if(o != 0) bb.get(o + bb_pos) else 1 } companion object { - fun validateVersion() = Constants.FLATBUFFERS_22_12_06() + fun validateVersion() = Constants.FLATBUFFERS_23_1_4() fun getRootAsScalarStuff(_bb: ByteBuffer): ScalarStuff = getRootAsScalarStuff(_bb, ScalarStuff()) fun getRootAsScalarStuff(_bb: ByteBuffer, obj: ScalarStuff): ScalarStuff { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/optional_scalars/ScalarStuff.nim b/tests/optional_scalars/ScalarStuff.nim index ef95dc8150..9446063ddb 100644 --- a/tests/optional_scalars/ScalarStuff.nim +++ b/tests/optional_scalars/ScalarStuff.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 22.12.06 + flatc version: 23.1.4 Declared by : Rooting type : optional_scalars.ScalarStuff () diff --git a/tests/optional_scalars_generated.h b/tests/optional_scalars_generated.h index 5cc779bc17..5971aaddb1 100644 --- a/tests/optional_scalars_generated.h +++ b/tests/optional_scalars_generated.h @@ -8,9 +8,9 @@ // Ensure the included flatbuffers.h is the same version as when this file was // generated, otherwise it may not be compatible. -static_assert(FLATBUFFERS_VERSION_MAJOR == 22 && - FLATBUFFERS_VERSION_MINOR == 12 && - FLATBUFFERS_VERSION_REVISION == 6, +static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && + FLATBUFFERS_VERSION_MINOR == 1 && + FLATBUFFERS_VERSION_REVISION == 4, "Non-compatible flatbuffers version included"); namespace optional_scalars { diff --git a/tests/swift/Wasm.tests/Tests/FlatBuffers.Test.Swift.WasmTests/monster_test_generated.swift b/tests/swift/Wasm.tests/Tests/FlatBuffers.Test.Swift.WasmTests/monster_test_generated.swift index 6fb2f9baa1..d23df87869 100644 --- a/tests/swift/Wasm.tests/Tests/FlatBuffers.Test.Swift.WasmTests/monster_test_generated.swift +++ b/tests/swift/Wasm.tests/Tests/FlatBuffers.Test.Swift.WasmTests/monster_test_generated.swift @@ -237,7 +237,7 @@ public struct MyGame_Example_AnyAmbiguousAliasesUnion { } public struct MyGame_Example_Test: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject { - static func validateVersion() { FlatBuffersVersion_22_12_06() } + static func validateVersion() { FlatBuffersVersion_23_1_4() } private var _a: Int16 private var _b: Int8 @@ -291,7 +291,7 @@ extension MyGame_Example_Test: Encodable { public struct MyGame_Example_Test_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_22_12_06() } + static func validateVersion() { FlatBuffersVersion_23_1_4() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -318,7 +318,7 @@ public struct MyGame_Example_Test_Mutable: FlatBufferObject { public struct MyGame_Example_Vec3: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject { - static func validateVersion() { FlatBuffersVersion_22_12_06() } + static func validateVersion() { FlatBuffersVersion_23_1_4() } private var _x: Float32 private var _y: Float32 @@ -413,7 +413,7 @@ extension MyGame_Example_Vec3: Encodable { public struct MyGame_Example_Vec3_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_22_12_06() } + static func validateVersion() { FlatBuffersVersion_23_1_4() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -447,7 +447,7 @@ public struct MyGame_Example_Vec3_Mutable: FlatBufferObject { public struct MyGame_Example_Ability: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject { - static func validateVersion() { FlatBuffersVersion_22_12_06() } + static func validateVersion() { FlatBuffersVersion_23_1_4() } private var _id: UInt32 private var _distance: UInt32 @@ -500,7 +500,7 @@ extension MyGame_Example_Ability: Encodable { public struct MyGame_Example_Ability_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_22_12_06() } + static func validateVersion() { FlatBuffersVersion_23_1_4() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -527,7 +527,7 @@ public struct MyGame_Example_Ability_Mutable: FlatBufferObject { public struct MyGame_Example_StructOfStructs: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject { - static func validateVersion() { FlatBuffersVersion_22_12_06() } + static func validateVersion() { FlatBuffersVersion_23_1_4() } private var _a: MyGame_Example_Ability private var _b: MyGame_Example_Test @@ -587,7 +587,7 @@ extension MyGame_Example_StructOfStructs: Encodable { public struct MyGame_Example_StructOfStructs_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_22_12_06() } + static func validateVersion() { FlatBuffersVersion_23_1_4() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -613,7 +613,7 @@ public struct MyGame_Example_StructOfStructs_Mutable: FlatBufferObject { public struct MyGame_Example_StructOfStructsOfStructs: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject { - static func validateVersion() { FlatBuffersVersion_22_12_06() } + static func validateVersion() { FlatBuffersVersion_23_1_4() } private var _a: MyGame_Example_StructOfStructs @@ -655,7 +655,7 @@ extension MyGame_Example_StructOfStructsOfStructs: Encodable { public struct MyGame_Example_StructOfStructsOfStructs_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_22_12_06() } + static func validateVersion() { FlatBuffersVersion_23_1_4() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -679,7 +679,7 @@ public struct MyGame_Example_StructOfStructsOfStructs_Mutable: FlatBufferObject public struct MyGame_InParentNamespace: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_22_12_06() } + static func validateVersion() { FlatBuffersVersion_23_1_4() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -733,7 +733,7 @@ public class MyGame_InParentNamespaceT: NativeObject { } public struct MyGame_Example2_Monster: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_22_12_06() } + static func validateVersion() { FlatBuffersVersion_23_1_4() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -787,7 +787,7 @@ public class MyGame_Example2_MonsterT: NativeObject { } internal struct MyGame_Example_TestSimpleTableWithEnum: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_22_12_06() } + static func validateVersion() { FlatBuffersVersion_23_1_4() } internal var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -870,7 +870,7 @@ internal class MyGame_Example_TestSimpleTableWithEnumT: NativeObject { } public struct MyGame_Example_Stat: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_22_12_06() } + static func validateVersion() { FlatBuffersVersion_23_1_4() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -1011,7 +1011,7 @@ public class MyGame_Example_StatT: NativeObject { } public struct MyGame_Example_Referrable: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_22_12_06() } + static func validateVersion() { FlatBuffersVersion_23_1_4() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -1119,7 +1119,7 @@ public class MyGame_Example_ReferrableT: NativeObject { /// an example documentation comment: "monster object" public struct MyGame_Example_Monster: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_22_12_06() } + static func validateVersion() { FlatBuffersVersion_23_1_4() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -2417,7 +2417,7 @@ public class MyGame_Example_MonsterT: NativeObject { } public struct MyGame_Example_TypeAliases: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_22_12_06() } + static func validateVersion() { FlatBuffersVersion_23_1_4() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table diff --git a/tests/swift/tests/CodeGenerationTests/test_import_generated.swift b/tests/swift/tests/CodeGenerationTests/test_import_generated.swift index d6919081a4..c0af7d297c 100644 --- a/tests/swift/tests/CodeGenerationTests/test_import_generated.swift +++ b/tests/swift/tests/CodeGenerationTests/test_import_generated.swift @@ -6,7 +6,7 @@ internal struct Message: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_22_12_06() } + static func validateVersion() { FlatBuffersVersion_23_1_4() } internal var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table diff --git a/tests/swift/tests/CodeGenerationTests/test_no_include_generated.swift b/tests/swift/tests/CodeGenerationTests/test_no_include_generated.swift index f247dcc89a..143496607b 100644 --- a/tests/swift/tests/CodeGenerationTests/test_no_include_generated.swift +++ b/tests/swift/tests/CodeGenerationTests/test_no_include_generated.swift @@ -4,7 +4,7 @@ public struct BytesCount: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject { - static func validateVersion() { FlatBuffersVersion_22_12_06() } + static func validateVersion() { FlatBuffersVersion_23_1_4() } private var _x: Int64 @@ -47,7 +47,7 @@ extension BytesCount: Encodable { public struct BytesCount_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_22_12_06() } + static func validateVersion() { FlatBuffersVersion_23_1_4() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -72,7 +72,7 @@ public struct BytesCount_Mutable: FlatBufferObject { public struct InternalMessage: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_22_12_06() } + static func validateVersion() { FlatBuffersVersion_23_1_4() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -157,7 +157,7 @@ public class InternalMessageT: NativeObject { } public struct Message: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_22_12_06() } + static func validateVersion() { FlatBuffersVersion_23_1_4() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table diff --git a/tests/swift/tests/Sources/SwiftFlatBuffers/fuzzer_generated.swift b/tests/swift/tests/Sources/SwiftFlatBuffers/fuzzer_generated.swift index 36a0a6d70e..d4a3053109 100644 --- a/tests/swift/tests/Sources/SwiftFlatBuffers/fuzzer_generated.swift +++ b/tests/swift/tests/Sources/SwiftFlatBuffers/fuzzer_generated.swift @@ -32,7 +32,7 @@ extension Color: Encodable { public struct Test: NativeStruct, Verifiable, FlatbuffersInitializable { - static func validateVersion() { FlatBuffersVersion_22_12_06() } + static func validateVersion() { FlatBuffersVersion_23_1_4() } private var _a: Int16 private var _b: Int8 @@ -81,7 +81,7 @@ extension Test: Encodable { public struct Test_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_22_12_06() } + static func validateVersion() { FlatBuffersVersion_23_1_4() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -93,7 +93,7 @@ public struct Test_Mutable: FlatBufferObject { public struct Vec3: NativeStruct, Verifiable, FlatbuffersInitializable { - static func validateVersion() { FlatBuffersVersion_22_12_06() } + static func validateVersion() { FlatBuffersVersion_23_1_4() } private var _x: Float32 private var _y: Float32 @@ -178,7 +178,7 @@ extension Vec3: Encodable { public struct Vec3_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_22_12_06() } + static func validateVersion() { FlatBuffersVersion_23_1_4() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -195,7 +195,7 @@ public struct Vec3_Mutable: FlatBufferObject { /// an example documentation comment: "monster object" public struct Monster: FlatBufferObject, Verifiable { - static func validateVersion() { FlatBuffersVersion_22_12_06() } + static func validateVersion() { FlatBuffersVersion_23_1_4() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table diff --git a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/MutatingBool_generated.swift b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/MutatingBool_generated.swift index 7c8b89e400..446a8add2f 100644 --- a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/MutatingBool_generated.swift +++ b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/MutatingBool_generated.swift @@ -6,7 +6,7 @@ import FlatBuffers public struct Property: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject { - static func validateVersion() { FlatBuffersVersion_22_12_06() } + static func validateVersion() { FlatBuffersVersion_23_1_4() } private var _property: Bool @@ -49,7 +49,7 @@ extension Property: Encodable { public struct Property_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_22_12_06() } + static func validateVersion() { FlatBuffersVersion_23_1_4() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -74,7 +74,7 @@ public struct Property_Mutable: FlatBufferObject { public struct TestMutatingBool: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_22_12_06() } + static func validateVersion() { FlatBuffersVersion_23_1_4() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table diff --git a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/monster_test_generated.swift b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/monster_test_generated.swift index 45acd4a637..bde189f46a 100644 --- a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/monster_test_generated.swift +++ b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/monster_test_generated.swift @@ -237,7 +237,7 @@ public struct MyGame_Example_AnyAmbiguousAliasesUnion { } public struct MyGame_Example_Test: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject { - static func validateVersion() { FlatBuffersVersion_22_12_06() } + static func validateVersion() { FlatBuffersVersion_23_1_4() } private var _a: Int16 private var _b: Int8 @@ -291,7 +291,7 @@ extension MyGame_Example_Test: Encodable { public struct MyGame_Example_Test_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_22_12_06() } + static func validateVersion() { FlatBuffersVersion_23_1_4() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -318,7 +318,7 @@ public struct MyGame_Example_Test_Mutable: FlatBufferObject { public struct MyGame_Example_Vec3: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject { - static func validateVersion() { FlatBuffersVersion_22_12_06() } + static func validateVersion() { FlatBuffersVersion_23_1_4() } private var _x: Float32 private var _y: Float32 @@ -413,7 +413,7 @@ extension MyGame_Example_Vec3: Encodable { public struct MyGame_Example_Vec3_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_22_12_06() } + static func validateVersion() { FlatBuffersVersion_23_1_4() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -447,7 +447,7 @@ public struct MyGame_Example_Vec3_Mutable: FlatBufferObject { public struct MyGame_Example_Ability: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject { - static func validateVersion() { FlatBuffersVersion_22_12_06() } + static func validateVersion() { FlatBuffersVersion_23_1_4() } private var _id: UInt32 private var _distance: UInt32 @@ -500,7 +500,7 @@ extension MyGame_Example_Ability: Encodable { public struct MyGame_Example_Ability_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_22_12_06() } + static func validateVersion() { FlatBuffersVersion_23_1_4() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -527,7 +527,7 @@ public struct MyGame_Example_Ability_Mutable: FlatBufferObject { public struct MyGame_Example_StructOfStructs: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject { - static func validateVersion() { FlatBuffersVersion_22_12_06() } + static func validateVersion() { FlatBuffersVersion_23_1_4() } private var _a: MyGame_Example_Ability private var _b: MyGame_Example_Test @@ -587,7 +587,7 @@ extension MyGame_Example_StructOfStructs: Encodable { public struct MyGame_Example_StructOfStructs_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_22_12_06() } + static func validateVersion() { FlatBuffersVersion_23_1_4() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -613,7 +613,7 @@ public struct MyGame_Example_StructOfStructs_Mutable: FlatBufferObject { public struct MyGame_Example_StructOfStructsOfStructs: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject { - static func validateVersion() { FlatBuffersVersion_22_12_06() } + static func validateVersion() { FlatBuffersVersion_23_1_4() } private var _a: MyGame_Example_StructOfStructs @@ -655,7 +655,7 @@ extension MyGame_Example_StructOfStructsOfStructs: Encodable { public struct MyGame_Example_StructOfStructsOfStructs_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_22_12_06() } + static func validateVersion() { FlatBuffersVersion_23_1_4() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -679,7 +679,7 @@ public struct MyGame_Example_StructOfStructsOfStructs_Mutable: FlatBufferObject public struct MyGame_InParentNamespace: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_22_12_06() } + static func validateVersion() { FlatBuffersVersion_23_1_4() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -733,7 +733,7 @@ public class MyGame_InParentNamespaceT: NativeObject { } public struct MyGame_Example2_Monster: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_22_12_06() } + static func validateVersion() { FlatBuffersVersion_23_1_4() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -787,7 +787,7 @@ public class MyGame_Example2_MonsterT: NativeObject { } internal struct MyGame_Example_TestSimpleTableWithEnum: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_22_12_06() } + static func validateVersion() { FlatBuffersVersion_23_1_4() } internal var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -870,7 +870,7 @@ internal class MyGame_Example_TestSimpleTableWithEnumT: NativeObject { } public struct MyGame_Example_Stat: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_22_12_06() } + static func validateVersion() { FlatBuffersVersion_23_1_4() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -1011,7 +1011,7 @@ public class MyGame_Example_StatT: NativeObject { } public struct MyGame_Example_Referrable: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_22_12_06() } + static func validateVersion() { FlatBuffersVersion_23_1_4() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -1119,7 +1119,7 @@ public class MyGame_Example_ReferrableT: NativeObject { /// an example documentation comment: "monster object" public struct MyGame_Example_Monster: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_22_12_06() } + static func validateVersion() { FlatBuffersVersion_23_1_4() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -2417,7 +2417,7 @@ public class MyGame_Example_MonsterT: NativeObject { } public struct MyGame_Example_TypeAliases: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_22_12_06() } + static func validateVersion() { FlatBuffersVersion_23_1_4() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table diff --git a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/more_defaults_generated.swift b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/more_defaults_generated.swift index 166f0c10b7..c9edf77e4f 100644 --- a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/more_defaults_generated.swift +++ b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/more_defaults_generated.swift @@ -29,7 +29,7 @@ extension ABC: Encodable { public struct MoreDefaults: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_22_12_06() } + static func validateVersion() { FlatBuffersVersion_23_1_4() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table diff --git a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/nan_inf_test_generated.swift b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/nan_inf_test_generated.swift index 6bbbb2b847..ef2cae560b 100644 --- a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/nan_inf_test_generated.swift +++ b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/nan_inf_test_generated.swift @@ -6,7 +6,7 @@ import FlatBuffers public struct Swift_Tests_NanInfTable: FlatBufferObject, Verifiable { - static func validateVersion() { FlatBuffersVersion_22_12_06() } + static func validateVersion() { FlatBuffersVersion_23_1_4() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table diff --git a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/optional_scalars_generated.swift b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/optional_scalars_generated.swift index 4006c1379c..099fe66275 100644 --- a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/optional_scalars_generated.swift +++ b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/optional_scalars_generated.swift @@ -29,7 +29,7 @@ extension optional_scalars_OptionalByte: Encodable { public struct optional_scalars_ScalarStuff: FlatBufferObject, Verifiable { - static func validateVersion() { FlatBuffersVersion_22_12_06() } + static func validateVersion() { FlatBuffersVersion_23_1_4() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table diff --git a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/union_vector_generated.swift b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/union_vector_generated.swift index f566c9a439..40db53faf2 100644 --- a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/union_vector_generated.swift +++ b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/union_vector_generated.swift @@ -120,7 +120,7 @@ public struct GadgetUnion { } public struct Rapunzel: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject { - static func validateVersion() { FlatBuffersVersion_22_12_06() } + static func validateVersion() { FlatBuffersVersion_23_1_4() } private var _hairLength: Int32 @@ -163,7 +163,7 @@ extension Rapunzel: Encodable { public struct Rapunzel_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_22_12_06() } + static func validateVersion() { FlatBuffersVersion_23_1_4() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -188,7 +188,7 @@ public struct Rapunzel_Mutable: FlatBufferObject { public struct BookReader: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject { - static func validateVersion() { FlatBuffersVersion_22_12_06() } + static func validateVersion() { FlatBuffersVersion_23_1_4() } private var _booksRead: Int32 @@ -231,7 +231,7 @@ extension BookReader: Encodable { public struct BookReader_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_22_12_06() } + static func validateVersion() { FlatBuffersVersion_23_1_4() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -256,7 +256,7 @@ public struct BookReader_Mutable: FlatBufferObject { public struct FallingTub: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject { - static func validateVersion() { FlatBuffersVersion_22_12_06() } + static func validateVersion() { FlatBuffersVersion_23_1_4() } private var _weight: Int32 @@ -299,7 +299,7 @@ extension FallingTub: Encodable { public struct FallingTub_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_22_12_06() } + static func validateVersion() { FlatBuffersVersion_23_1_4() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -324,7 +324,7 @@ public struct FallingTub_Mutable: FlatBufferObject { public struct Attacker: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_22_12_06() } + static func validateVersion() { FlatBuffersVersion_23_1_4() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -407,7 +407,7 @@ public class AttackerT: NativeObject { } public struct HandFan: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_22_12_06() } + static func validateVersion() { FlatBuffersVersion_23_1_4() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -490,7 +490,7 @@ public class HandFanT: NativeObject { } public struct Movie: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_22_12_06() } + static func validateVersion() { FlatBuffersVersion_23_1_4() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table diff --git a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/vector_has_test_generated.swift b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/vector_has_test_generated.swift index 4533abf4e0..c4a0b43681 100644 --- a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/vector_has_test_generated.swift +++ b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/vector_has_test_generated.swift @@ -6,7 +6,7 @@ import FlatBuffers public struct Swift_Tests_Vectors: FlatBufferObject, Verifiable { - static func validateVersion() { FlatBuffersVersion_22_12_06() } + static func validateVersion() { FlatBuffersVersion_23_1_4() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table diff --git a/tests/type_field_collsion/Collision.cs b/tests/type_field_collsion/Collision.cs index c825901f9e..cb46dac280 100644 --- a/tests/type_field_collsion/Collision.cs +++ b/tests/type_field_collsion/Collision.cs @@ -13,7 +13,7 @@ public struct Collision : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_12_06(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_4(); } public static Collision GetRootAsCollision(ByteBuffer _bb) { return GetRootAsCollision(_bb, new Collision()); } public static Collision GetRootAsCollision(ByteBuffer _bb, Collision obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/union_vector/Attacker.cs b/tests/union_vector/Attacker.cs index 87405152fc..0fc8a08be5 100644 --- a/tests/union_vector/Attacker.cs +++ b/tests/union_vector/Attacker.cs @@ -10,7 +10,7 @@ public struct Attacker : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_12_06(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_4(); } public static Attacker GetRootAsAttacker(ByteBuffer _bb) { return GetRootAsAttacker(_bb, new Attacker()); } public static Attacker GetRootAsAttacker(ByteBuffer _bb, Attacker obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/union_vector/Attacker.java b/tests/union_vector/Attacker.java index 9723140cae..6e672dd6a0 100644 --- a/tests/union_vector/Attacker.java +++ b/tests/union_vector/Attacker.java @@ -19,7 +19,7 @@ @SuppressWarnings("unused") public final class Attacker extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_22_12_06(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_1_4(); } public static Attacker getRootAsAttacker(ByteBuffer _bb) { return getRootAsAttacker(_bb, new Attacker()); } public static Attacker getRootAsAttacker(ByteBuffer _bb, Attacker obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/tests/union_vector/Attacker.kt b/tests/union_vector/Attacker.kt index 35ba0d7191..b1f9447ca8 100644 --- a/tests/union_vector/Attacker.kt +++ b/tests/union_vector/Attacker.kt @@ -29,7 +29,7 @@ class Attacker : Table() { } } companion object { - fun validateVersion() = Constants.FLATBUFFERS_22_12_06() + fun validateVersion() = Constants.FLATBUFFERS_23_1_4() fun getRootAsAttacker(_bb: ByteBuffer): Attacker = getRootAsAttacker(_bb, Attacker()) fun getRootAsAttacker(_bb: ByteBuffer, obj: Attacker): Attacker { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/union_vector/HandFan.cs b/tests/union_vector/HandFan.cs index f39c70a1c8..f848c01c93 100644 --- a/tests/union_vector/HandFan.cs +++ b/tests/union_vector/HandFan.cs @@ -10,7 +10,7 @@ public struct HandFan : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_12_06(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_4(); } public static HandFan GetRootAsHandFan(ByteBuffer _bb) { return GetRootAsHandFan(_bb, new HandFan()); } public static HandFan GetRootAsHandFan(ByteBuffer _bb, HandFan obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/union_vector/HandFan.java b/tests/union_vector/HandFan.java index df347e1917..26478ba466 100644 --- a/tests/union_vector/HandFan.java +++ b/tests/union_vector/HandFan.java @@ -19,7 +19,7 @@ @SuppressWarnings("unused") public final class HandFan extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_22_12_06(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_1_4(); } public static HandFan getRootAsHandFan(ByteBuffer _bb) { return getRootAsHandFan(_bb, new HandFan()); } public static HandFan getRootAsHandFan(ByteBuffer _bb, HandFan obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/tests/union_vector/HandFan.kt b/tests/union_vector/HandFan.kt index 301fdb4234..8aace8f7db 100644 --- a/tests/union_vector/HandFan.kt +++ b/tests/union_vector/HandFan.kt @@ -29,7 +29,7 @@ class HandFan : Table() { } } companion object { - fun validateVersion() = Constants.FLATBUFFERS_22_12_06() + fun validateVersion() = Constants.FLATBUFFERS_23_1_4() fun getRootAsHandFan(_bb: ByteBuffer): HandFan = getRootAsHandFan(_bb, HandFan()) fun getRootAsHandFan(_bb: ByteBuffer, obj: HandFan): HandFan { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/union_vector/Movie.cs b/tests/union_vector/Movie.cs index ee6b7534e1..dea01607e4 100644 --- a/tests/union_vector/Movie.cs +++ b/tests/union_vector/Movie.cs @@ -10,7 +10,7 @@ public struct Movie : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_22_12_06(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_4(); } public static Movie GetRootAsMovie(ByteBuffer _bb) { return GetRootAsMovie(_bb, new Movie()); } public static Movie GetRootAsMovie(ByteBuffer _bb, Movie obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public static bool MovieBufferHasIdentifier(ByteBuffer _bb) { return Table.__has_identifier(_bb, "MOVI"); } diff --git a/tests/union_vector/Movie.java b/tests/union_vector/Movie.java index af2be44711..56e8bf9341 100644 --- a/tests/union_vector/Movie.java +++ b/tests/union_vector/Movie.java @@ -19,7 +19,7 @@ @SuppressWarnings("unused") public final class Movie extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_22_12_06(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_1_4(); } public static Movie getRootAsMovie(ByteBuffer _bb) { return getRootAsMovie(_bb, new Movie()); } public static Movie getRootAsMovie(ByteBuffer _bb, Movie obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public static boolean MovieBufferHasIdentifier(ByteBuffer _bb) { return __has_identifier(_bb, "MOVI"); } diff --git a/tests/union_vector/Movie.kt b/tests/union_vector/Movie.kt index cadc846ac7..4a8517b8a8 100644 --- a/tests/union_vector/Movie.kt +++ b/tests/union_vector/Movie.kt @@ -67,7 +67,7 @@ class Movie : Table() { val o = __offset(10); return if (o != 0) __vector_len(o) else 0 } companion object { - fun validateVersion() = Constants.FLATBUFFERS_22_12_06() + fun validateVersion() = Constants.FLATBUFFERS_23_1_4() fun getRootAsMovie(_bb: ByteBuffer): Movie = getRootAsMovie(_bb, Movie()) fun getRootAsMovie(_bb: ByteBuffer, obj: Movie): Movie { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/union_vector/union_vector_generated.h b/tests/union_vector/union_vector_generated.h index 8aa3cc2d98..56823ce931 100644 --- a/tests/union_vector/union_vector_generated.h +++ b/tests/union_vector/union_vector_generated.h @@ -8,9 +8,9 @@ // Ensure the included flatbuffers.h is the same version as when this file was // generated, otherwise it may not be compatible. -static_assert(FLATBUFFERS_VERSION_MAJOR == 22 && - FLATBUFFERS_VERSION_MINOR == 12 && - FLATBUFFERS_VERSION_REVISION == 6, +static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && + FLATBUFFERS_VERSION_MINOR == 1 && + FLATBUFFERS_VERSION_REVISION == 4, "Non-compatible flatbuffers version included"); struct Attacker; From a809a2d3f7c9b4e1c0289c613be7008a637acf9c Mon Sep 17 00:00:00 2001 From: Paulo Pinheiro Date: Thu, 5 Jan 2023 23:21:23 +0100 Subject: [PATCH 073/571] Add pointer reference to sibling union field on FieldDef (#7755) To make it simple to map between a union field and its union type field we are adding a pointer to FieldDef to point to each other. For all other types the pointer will be nullptr. Co-authored-by: Derek Bailey --- include/flatbuffers/idl.h | 9 ++++++++- src/idl_parser.cpp | 8 ++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/include/flatbuffers/idl.h b/include/flatbuffers/idl.h index b564b1b271..cd70cb6128 100644 --- a/include/flatbuffers/idl.h +++ b/include/flatbuffers/idl.h @@ -297,7 +297,8 @@ struct FieldDef : public Definition { flexbuffer(false), presence(kDefault), nested_flatbuffer(nullptr), - padding(0) {} + padding(0), + sibling_union_field(nullptr){} Offset Serialize(FlatBufferBuilder *builder, uint16_t id, const Parser &parser) const; @@ -342,6 +343,12 @@ struct FieldDef : public Definition { StructDef *nested_flatbuffer; // This field contains nested FlatBuffer data. size_t padding; // Bytes to always pad after this field. + + // sibling_union_field is always set to nullptr. The only exception is + // when FieldDef is a union field or an union type field. Therefore, + // sibling_union_field on a union field points to the union type field + // and vice-versa. + FieldDef *sibling_union_field; }; struct StructDef : public Definition { diff --git a/src/idl_parser.cpp b/src/idl_parser.cpp index 9650cc9dd5..360f0c744a 100644 --- a/src/idl_parser.cpp +++ b/src/idl_parser.cpp @@ -970,6 +970,14 @@ CheckedError Parser::ParseField(StructDef &struct_def) { FieldDef *field; ECHECK(AddField(struct_def, name, type, &field)); + if (typefield) { + // We preserve the relation between the typefield + // and field, so we can easily map it in the code + // generators. + typefield->sibling_union_field = field; + field->sibling_union_field = typefield; + } + if (token_ == '=') { NEXT(); ECHECK(ParseSingleValue(&field->name, field->value, true)); From 82da3da3f6daea31826be8affd35f404ead1c968 Mon Sep 17 00:00:00 2001 From: Derek Bailey Date: Thu, 5 Jan 2023 14:24:56 -0800 Subject: [PATCH 074/571] Update Readme.md for versioning Updated the front readme doc about the non-semver versioning so that the rationale is more apparent to users. --- readme.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/readme.md b/readme.md index 83fa84adb2..0f38c8eb70 100644 --- a/readme.md +++ b/readme.md @@ -44,6 +44,10 @@ Code generation and runtime libraries for many popular languages. 1. TypeScript - [NPM](https://www.npmjs.com/package/flatbuffers) 1. Nim +## Versioning + +FlatBuffers does not follow traditional Semver versioning (see [rationale](https://github.com/google/flatbuffers/wiki/Versioning)) but rather uses a format of the date of the release. + ## Contribution * [FlatBuffers Issues Tracker][] to submit an issue. From 07d94851462b2dc45d0ae9be09e79c64c315da1b Mon Sep 17 00:00:00 2001 From: Anton Bobukh Date: Thu, 5 Jan 2023 14:34:44 -0800 Subject: [PATCH 075/571] Expand wildcard imports in the generated Kotlin files. (#7757) Tested: ``` $ cmake -G "Unix Makefiles" && make && ./flattests ... [ 99%] Linking CXX executable flatsamplebinary [100%] Built target flatsamplebinary ALL TESTS PASSED ``` Co-authored-by: Derek Bailey --- .../main/java/generated/com/fbs/app/Animal.kt | 16 ++++++++++++++-- src/idl_gen_kotlin.cpp | 19 ++++++++++++++++--- tests/DictionaryLookup/LongFloatEntry.kt | 16 ++++++++++++++-- tests/DictionaryLookup/LongFloatMap.kt | 16 ++++++++++++++-- tests/MyGame/Example/Ability.kt | 16 ++++++++++++++-- tests/MyGame/Example/Monster.kt | 16 ++++++++++++++-- tests/MyGame/Example/Referrable.kt | 16 ++++++++++++++-- tests/MyGame/Example/Stat.kt | 16 ++++++++++++++-- tests/MyGame/Example/StructOfStructs.kt | 16 ++++++++++++++-- .../Example/StructOfStructsOfStructs.kt | 16 ++++++++++++++-- tests/MyGame/Example/Test.kt | 16 ++++++++++++++-- .../MyGame/Example/TestSimpleTableWithEnum.kt | 16 ++++++++++++++-- tests/MyGame/Example/TypeAliases.kt | 16 ++++++++++++++-- tests/MyGame/Example/Vec3.kt | 16 ++++++++++++++-- tests/MyGame/Example2/Monster.kt | 16 ++++++++++++++-- tests/MyGame/InParentNamespace.kt | 16 ++++++++++++++-- tests/MyGame/MonsterExtra.kt | 16 ++++++++++++++-- .../NamespaceA/NamespaceB/StructInNestedNS.kt | 16 ++++++++++++++-- .../NamespaceA/NamespaceB/TableInNestedNS.kt | 16 ++++++++++++++-- .../NamespaceA/SecondTableInA.kt | 16 ++++++++++++++-- .../NamespaceA/TableInFirstNS.kt | 16 ++++++++++++++-- tests/namespace_test/NamespaceC/TableInC.kt | 16 ++++++++++++++-- tests/optional_scalars/ScalarStuff.kt | 16 ++++++++++++++-- tests/union_vector/Attacker.kt | 16 ++++++++++++++-- tests/union_vector/BookReader.kt | 16 ++++++++++++++-- tests/union_vector/FallingTub.kt | 16 ++++++++++++++-- tests/union_vector/HandFan.kt | 16 ++++++++++++++-- tests/union_vector/Movie.kt | 16 ++++++++++++++-- tests/union_vector/Rapunzel.kt | 16 ++++++++++++++-- 29 files changed, 408 insertions(+), 59 deletions(-) diff --git a/android/app/src/main/java/generated/com/fbs/app/Animal.kt b/android/app/src/main/java/generated/com/fbs/app/Animal.kt index 481616f493..7e5db153e5 100644 --- a/android/app/src/main/java/generated/com/fbs/app/Animal.kt +++ b/android/app/src/main/java/generated/com/fbs/app/Animal.kt @@ -2,9 +2,21 @@ package com.fbs.app -import java.nio.* +import com.google.flatbuffers.BaseVector +import com.google.flatbuffers.BooleanVector +import com.google.flatbuffers.ByteVector +import com.google.flatbuffers.Constants +import com.google.flatbuffers.DoubleVector +import com.google.flatbuffers.FlatBufferBuilder +import com.google.flatbuffers.FloatVector +import com.google.flatbuffers.LongVector +import com.google.flatbuffers.StringVector +import com.google.flatbuffers.Struct +import com.google.flatbuffers.Table +import com.google.flatbuffers.UnionVector +import java.nio.ByteBuffer +import java.nio.ByteOrder import kotlin.math.sign -import com.google.flatbuffers.* @Suppress("unused") class Animal : Table() { diff --git a/src/idl_gen_kotlin.cpp b/src/idl_gen_kotlin.cpp index 49ed423e8b..58c7b17f6c 100644 --- a/src/idl_gen_kotlin.cpp +++ b/src/idl_gen_kotlin.cpp @@ -132,9 +132,22 @@ class KotlinGenerator : public BaseGenerator { code += "\n\n"; } if (needs_includes) { - code += "import java.nio.*\n"; - code += "import kotlin.math.sign\n"; - code += "import com.google.flatbuffers.*\n\n"; + code += + "import com.google.flatbuffers.BaseVector\n" + "import com.google.flatbuffers.BooleanVector\n" + "import com.google.flatbuffers.ByteVector\n" + "import com.google.flatbuffers.Constants\n" + "import com.google.flatbuffers.DoubleVector\n" + "import com.google.flatbuffers.FlatBufferBuilder\n" + "import com.google.flatbuffers.FloatVector\n" + "import com.google.flatbuffers.LongVector\n" + "import com.google.flatbuffers.StringVector\n" + "import com.google.flatbuffers.Struct\n" + "import com.google.flatbuffers.Table\n" + "import com.google.flatbuffers.UnionVector\n" + "import java.nio.ByteBuffer\n" + "import java.nio.ByteOrder\n" + "import kotlin.math.sign\n\n"; } code += classcode; const std::string dirs = namer_.Directories(ns); diff --git a/tests/DictionaryLookup/LongFloatEntry.kt b/tests/DictionaryLookup/LongFloatEntry.kt index 4f035be1af..d49afa4500 100644 --- a/tests/DictionaryLookup/LongFloatEntry.kt +++ b/tests/DictionaryLookup/LongFloatEntry.kt @@ -2,9 +2,21 @@ package DictionaryLookup -import java.nio.* +import com.google.flatbuffers.BaseVector +import com.google.flatbuffers.BooleanVector +import com.google.flatbuffers.ByteVector +import com.google.flatbuffers.Constants +import com.google.flatbuffers.DoubleVector +import com.google.flatbuffers.FlatBufferBuilder +import com.google.flatbuffers.FloatVector +import com.google.flatbuffers.LongVector +import com.google.flatbuffers.StringVector +import com.google.flatbuffers.Struct +import com.google.flatbuffers.Table +import com.google.flatbuffers.UnionVector +import java.nio.ByteBuffer +import java.nio.ByteOrder import kotlin.math.sign -import com.google.flatbuffers.* @Suppress("unused") class LongFloatEntry : Table() { diff --git a/tests/DictionaryLookup/LongFloatMap.kt b/tests/DictionaryLookup/LongFloatMap.kt index 272658a7eb..bc1541f478 100644 --- a/tests/DictionaryLookup/LongFloatMap.kt +++ b/tests/DictionaryLookup/LongFloatMap.kt @@ -2,9 +2,21 @@ package DictionaryLookup -import java.nio.* +import com.google.flatbuffers.BaseVector +import com.google.flatbuffers.BooleanVector +import com.google.flatbuffers.ByteVector +import com.google.flatbuffers.Constants +import com.google.flatbuffers.DoubleVector +import com.google.flatbuffers.FlatBufferBuilder +import com.google.flatbuffers.FloatVector +import com.google.flatbuffers.LongVector +import com.google.flatbuffers.StringVector +import com.google.flatbuffers.Struct +import com.google.flatbuffers.Table +import com.google.flatbuffers.UnionVector +import java.nio.ByteBuffer +import java.nio.ByteOrder import kotlin.math.sign -import com.google.flatbuffers.* @Suppress("unused") class LongFloatMap : Table() { diff --git a/tests/MyGame/Example/Ability.kt b/tests/MyGame/Example/Ability.kt index 19a2f56611..dc2b0b8640 100644 --- a/tests/MyGame/Example/Ability.kt +++ b/tests/MyGame/Example/Ability.kt @@ -2,9 +2,21 @@ package MyGame.Example -import java.nio.* +import com.google.flatbuffers.BaseVector +import com.google.flatbuffers.BooleanVector +import com.google.flatbuffers.ByteVector +import com.google.flatbuffers.Constants +import com.google.flatbuffers.DoubleVector +import com.google.flatbuffers.FlatBufferBuilder +import com.google.flatbuffers.FloatVector +import com.google.flatbuffers.LongVector +import com.google.flatbuffers.StringVector +import com.google.flatbuffers.Struct +import com.google.flatbuffers.Table +import com.google.flatbuffers.UnionVector +import java.nio.ByteBuffer +import java.nio.ByteOrder import kotlin.math.sign -import com.google.flatbuffers.* @Suppress("unused") class Ability : Struct() { diff --git a/tests/MyGame/Example/Monster.kt b/tests/MyGame/Example/Monster.kt index ef2d2a435d..eecc68ad82 100644 --- a/tests/MyGame/Example/Monster.kt +++ b/tests/MyGame/Example/Monster.kt @@ -2,9 +2,21 @@ package MyGame.Example -import java.nio.* +import com.google.flatbuffers.BaseVector +import com.google.flatbuffers.BooleanVector +import com.google.flatbuffers.ByteVector +import com.google.flatbuffers.Constants +import com.google.flatbuffers.DoubleVector +import com.google.flatbuffers.FlatBufferBuilder +import com.google.flatbuffers.FloatVector +import com.google.flatbuffers.LongVector +import com.google.flatbuffers.StringVector +import com.google.flatbuffers.Struct +import com.google.flatbuffers.Table +import com.google.flatbuffers.UnionVector +import java.nio.ByteBuffer +import java.nio.ByteOrder import kotlin.math.sign -import com.google.flatbuffers.* /** * an example documentation comment: "monster object" diff --git a/tests/MyGame/Example/Referrable.kt b/tests/MyGame/Example/Referrable.kt index 216f741a94..819af37073 100644 --- a/tests/MyGame/Example/Referrable.kt +++ b/tests/MyGame/Example/Referrable.kt @@ -2,9 +2,21 @@ package MyGame.Example -import java.nio.* +import com.google.flatbuffers.BaseVector +import com.google.flatbuffers.BooleanVector +import com.google.flatbuffers.ByteVector +import com.google.flatbuffers.Constants +import com.google.flatbuffers.DoubleVector +import com.google.flatbuffers.FlatBufferBuilder +import com.google.flatbuffers.FloatVector +import com.google.flatbuffers.LongVector +import com.google.flatbuffers.StringVector +import com.google.flatbuffers.Struct +import com.google.flatbuffers.Table +import com.google.flatbuffers.UnionVector +import java.nio.ByteBuffer +import java.nio.ByteOrder import kotlin.math.sign -import com.google.flatbuffers.* @Suppress("unused") class Referrable : Table() { diff --git a/tests/MyGame/Example/Stat.kt b/tests/MyGame/Example/Stat.kt index 67b474e10f..133582ec84 100644 --- a/tests/MyGame/Example/Stat.kt +++ b/tests/MyGame/Example/Stat.kt @@ -2,9 +2,21 @@ package MyGame.Example -import java.nio.* +import com.google.flatbuffers.BaseVector +import com.google.flatbuffers.BooleanVector +import com.google.flatbuffers.ByteVector +import com.google.flatbuffers.Constants +import com.google.flatbuffers.DoubleVector +import com.google.flatbuffers.FlatBufferBuilder +import com.google.flatbuffers.FloatVector +import com.google.flatbuffers.LongVector +import com.google.flatbuffers.StringVector +import com.google.flatbuffers.Struct +import com.google.flatbuffers.Table +import com.google.flatbuffers.UnionVector +import java.nio.ByteBuffer +import java.nio.ByteOrder import kotlin.math.sign -import com.google.flatbuffers.* @Suppress("unused") class Stat : Table() { diff --git a/tests/MyGame/Example/StructOfStructs.kt b/tests/MyGame/Example/StructOfStructs.kt index 56ab9af039..e7a27a2315 100644 --- a/tests/MyGame/Example/StructOfStructs.kt +++ b/tests/MyGame/Example/StructOfStructs.kt @@ -2,9 +2,21 @@ package MyGame.Example -import java.nio.* +import com.google.flatbuffers.BaseVector +import com.google.flatbuffers.BooleanVector +import com.google.flatbuffers.ByteVector +import com.google.flatbuffers.Constants +import com.google.flatbuffers.DoubleVector +import com.google.flatbuffers.FlatBufferBuilder +import com.google.flatbuffers.FloatVector +import com.google.flatbuffers.LongVector +import com.google.flatbuffers.StringVector +import com.google.flatbuffers.Struct +import com.google.flatbuffers.Table +import com.google.flatbuffers.UnionVector +import java.nio.ByteBuffer +import java.nio.ByteOrder import kotlin.math.sign -import com.google.flatbuffers.* @Suppress("unused") class StructOfStructs : Struct() { diff --git a/tests/MyGame/Example/StructOfStructsOfStructs.kt b/tests/MyGame/Example/StructOfStructsOfStructs.kt index 955b600db3..5fb1a1ef55 100644 --- a/tests/MyGame/Example/StructOfStructsOfStructs.kt +++ b/tests/MyGame/Example/StructOfStructsOfStructs.kt @@ -2,9 +2,21 @@ package MyGame.Example -import java.nio.* +import com.google.flatbuffers.BaseVector +import com.google.flatbuffers.BooleanVector +import com.google.flatbuffers.ByteVector +import com.google.flatbuffers.Constants +import com.google.flatbuffers.DoubleVector +import com.google.flatbuffers.FlatBufferBuilder +import com.google.flatbuffers.FloatVector +import com.google.flatbuffers.LongVector +import com.google.flatbuffers.StringVector +import com.google.flatbuffers.Struct +import com.google.flatbuffers.Table +import com.google.flatbuffers.UnionVector +import java.nio.ByteBuffer +import java.nio.ByteOrder import kotlin.math.sign -import com.google.flatbuffers.* @Suppress("unused") class StructOfStructsOfStructs : Struct() { diff --git a/tests/MyGame/Example/Test.kt b/tests/MyGame/Example/Test.kt index eda574217f..c2ce96e9b4 100644 --- a/tests/MyGame/Example/Test.kt +++ b/tests/MyGame/Example/Test.kt @@ -2,9 +2,21 @@ package MyGame.Example -import java.nio.* +import com.google.flatbuffers.BaseVector +import com.google.flatbuffers.BooleanVector +import com.google.flatbuffers.ByteVector +import com.google.flatbuffers.Constants +import com.google.flatbuffers.DoubleVector +import com.google.flatbuffers.FlatBufferBuilder +import com.google.flatbuffers.FloatVector +import com.google.flatbuffers.LongVector +import com.google.flatbuffers.StringVector +import com.google.flatbuffers.Struct +import com.google.flatbuffers.Table +import com.google.flatbuffers.UnionVector +import java.nio.ByteBuffer +import java.nio.ByteOrder import kotlin.math.sign -import com.google.flatbuffers.* @Suppress("unused") class Test : Struct() { diff --git a/tests/MyGame/Example/TestSimpleTableWithEnum.kt b/tests/MyGame/Example/TestSimpleTableWithEnum.kt index ef7b2f9012..fec981f1e1 100644 --- a/tests/MyGame/Example/TestSimpleTableWithEnum.kt +++ b/tests/MyGame/Example/TestSimpleTableWithEnum.kt @@ -2,9 +2,21 @@ package MyGame.Example -import java.nio.* +import com.google.flatbuffers.BaseVector +import com.google.flatbuffers.BooleanVector +import com.google.flatbuffers.ByteVector +import com.google.flatbuffers.Constants +import com.google.flatbuffers.DoubleVector +import com.google.flatbuffers.FlatBufferBuilder +import com.google.flatbuffers.FloatVector +import com.google.flatbuffers.LongVector +import com.google.flatbuffers.StringVector +import com.google.flatbuffers.Struct +import com.google.flatbuffers.Table +import com.google.flatbuffers.UnionVector +import java.nio.ByteBuffer +import java.nio.ByteOrder import kotlin.math.sign -import com.google.flatbuffers.* @Suppress("unused") class TestSimpleTableWithEnum : Table() { diff --git a/tests/MyGame/Example/TypeAliases.kt b/tests/MyGame/Example/TypeAliases.kt index 9a9d4d1ef2..6d77d95950 100644 --- a/tests/MyGame/Example/TypeAliases.kt +++ b/tests/MyGame/Example/TypeAliases.kt @@ -2,9 +2,21 @@ package MyGame.Example -import java.nio.* +import com.google.flatbuffers.BaseVector +import com.google.flatbuffers.BooleanVector +import com.google.flatbuffers.ByteVector +import com.google.flatbuffers.Constants +import com.google.flatbuffers.DoubleVector +import com.google.flatbuffers.FlatBufferBuilder +import com.google.flatbuffers.FloatVector +import com.google.flatbuffers.LongVector +import com.google.flatbuffers.StringVector +import com.google.flatbuffers.Struct +import com.google.flatbuffers.Table +import com.google.flatbuffers.UnionVector +import java.nio.ByteBuffer +import java.nio.ByteOrder import kotlin.math.sign -import com.google.flatbuffers.* @Suppress("unused") class TypeAliases : Table() { diff --git a/tests/MyGame/Example/Vec3.kt b/tests/MyGame/Example/Vec3.kt index 445601c703..9e1f89ed88 100644 --- a/tests/MyGame/Example/Vec3.kt +++ b/tests/MyGame/Example/Vec3.kt @@ -2,9 +2,21 @@ package MyGame.Example -import java.nio.* +import com.google.flatbuffers.BaseVector +import com.google.flatbuffers.BooleanVector +import com.google.flatbuffers.ByteVector +import com.google.flatbuffers.Constants +import com.google.flatbuffers.DoubleVector +import com.google.flatbuffers.FlatBufferBuilder +import com.google.flatbuffers.FloatVector +import com.google.flatbuffers.LongVector +import com.google.flatbuffers.StringVector +import com.google.flatbuffers.Struct +import com.google.flatbuffers.Table +import com.google.flatbuffers.UnionVector +import java.nio.ByteBuffer +import java.nio.ByteOrder import kotlin.math.sign -import com.google.flatbuffers.* @Suppress("unused") class Vec3 : Struct() { diff --git a/tests/MyGame/Example2/Monster.kt b/tests/MyGame/Example2/Monster.kt index 9c6c353eea..8455c0a223 100644 --- a/tests/MyGame/Example2/Monster.kt +++ b/tests/MyGame/Example2/Monster.kt @@ -2,9 +2,21 @@ package MyGame.Example2 -import java.nio.* +import com.google.flatbuffers.BaseVector +import com.google.flatbuffers.BooleanVector +import com.google.flatbuffers.ByteVector +import com.google.flatbuffers.Constants +import com.google.flatbuffers.DoubleVector +import com.google.flatbuffers.FlatBufferBuilder +import com.google.flatbuffers.FloatVector +import com.google.flatbuffers.LongVector +import com.google.flatbuffers.StringVector +import com.google.flatbuffers.Struct +import com.google.flatbuffers.Table +import com.google.flatbuffers.UnionVector +import java.nio.ByteBuffer +import java.nio.ByteOrder import kotlin.math.sign -import com.google.flatbuffers.* @Suppress("unused") class Monster : Table() { diff --git a/tests/MyGame/InParentNamespace.kt b/tests/MyGame/InParentNamespace.kt index bb53b904f2..84a8cff4c2 100644 --- a/tests/MyGame/InParentNamespace.kt +++ b/tests/MyGame/InParentNamespace.kt @@ -2,9 +2,21 @@ package MyGame -import java.nio.* +import com.google.flatbuffers.BaseVector +import com.google.flatbuffers.BooleanVector +import com.google.flatbuffers.ByteVector +import com.google.flatbuffers.Constants +import com.google.flatbuffers.DoubleVector +import com.google.flatbuffers.FlatBufferBuilder +import com.google.flatbuffers.FloatVector +import com.google.flatbuffers.LongVector +import com.google.flatbuffers.StringVector +import com.google.flatbuffers.Struct +import com.google.flatbuffers.Table +import com.google.flatbuffers.UnionVector +import java.nio.ByteBuffer +import java.nio.ByteOrder import kotlin.math.sign -import com.google.flatbuffers.* @Suppress("unused") class InParentNamespace : Table() { diff --git a/tests/MyGame/MonsterExtra.kt b/tests/MyGame/MonsterExtra.kt index 9347d08d85..d1e75a2894 100644 --- a/tests/MyGame/MonsterExtra.kt +++ b/tests/MyGame/MonsterExtra.kt @@ -2,9 +2,21 @@ package MyGame -import java.nio.* +import com.google.flatbuffers.BaseVector +import com.google.flatbuffers.BooleanVector +import com.google.flatbuffers.ByteVector +import com.google.flatbuffers.Constants +import com.google.flatbuffers.DoubleVector +import com.google.flatbuffers.FlatBufferBuilder +import com.google.flatbuffers.FloatVector +import com.google.flatbuffers.LongVector +import com.google.flatbuffers.StringVector +import com.google.flatbuffers.Struct +import com.google.flatbuffers.Table +import com.google.flatbuffers.UnionVector +import java.nio.ByteBuffer +import java.nio.ByteOrder import kotlin.math.sign -import com.google.flatbuffers.* @Suppress("unused") class MonsterExtra : Table() { diff --git a/tests/namespace_test/NamespaceA/NamespaceB/StructInNestedNS.kt b/tests/namespace_test/NamespaceA/NamespaceB/StructInNestedNS.kt index 0273bb1183..7aad3c4599 100644 --- a/tests/namespace_test/NamespaceA/NamespaceB/StructInNestedNS.kt +++ b/tests/namespace_test/NamespaceA/NamespaceB/StructInNestedNS.kt @@ -2,9 +2,21 @@ package NamespaceA.NamespaceB -import java.nio.* +import com.google.flatbuffers.BaseVector +import com.google.flatbuffers.BooleanVector +import com.google.flatbuffers.ByteVector +import com.google.flatbuffers.Constants +import com.google.flatbuffers.DoubleVector +import com.google.flatbuffers.FlatBufferBuilder +import com.google.flatbuffers.FloatVector +import com.google.flatbuffers.LongVector +import com.google.flatbuffers.StringVector +import com.google.flatbuffers.Struct +import com.google.flatbuffers.Table +import com.google.flatbuffers.UnionVector +import java.nio.ByteBuffer +import java.nio.ByteOrder import kotlin.math.sign -import com.google.flatbuffers.* @Suppress("unused") @ExperimentalUnsignedTypes diff --git a/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.kt b/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.kt index 846e9984d9..6a96c23d09 100644 --- a/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.kt +++ b/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.kt @@ -2,9 +2,21 @@ package NamespaceA.NamespaceB -import java.nio.* +import com.google.flatbuffers.BaseVector +import com.google.flatbuffers.BooleanVector +import com.google.flatbuffers.ByteVector +import com.google.flatbuffers.Constants +import com.google.flatbuffers.DoubleVector +import com.google.flatbuffers.FlatBufferBuilder +import com.google.flatbuffers.FloatVector +import com.google.flatbuffers.LongVector +import com.google.flatbuffers.StringVector +import com.google.flatbuffers.Struct +import com.google.flatbuffers.Table +import com.google.flatbuffers.UnionVector +import java.nio.ByteBuffer +import java.nio.ByteOrder import kotlin.math.sign -import com.google.flatbuffers.* @Suppress("unused") @ExperimentalUnsignedTypes diff --git a/tests/namespace_test/NamespaceA/SecondTableInA.kt b/tests/namespace_test/NamespaceA/SecondTableInA.kt index d6ad1e1376..68e4b59385 100644 --- a/tests/namespace_test/NamespaceA/SecondTableInA.kt +++ b/tests/namespace_test/NamespaceA/SecondTableInA.kt @@ -2,9 +2,21 @@ package NamespaceA -import java.nio.* +import com.google.flatbuffers.BaseVector +import com.google.flatbuffers.BooleanVector +import com.google.flatbuffers.ByteVector +import com.google.flatbuffers.Constants +import com.google.flatbuffers.DoubleVector +import com.google.flatbuffers.FlatBufferBuilder +import com.google.flatbuffers.FloatVector +import com.google.flatbuffers.LongVector +import com.google.flatbuffers.StringVector +import com.google.flatbuffers.Struct +import com.google.flatbuffers.Table +import com.google.flatbuffers.UnionVector +import java.nio.ByteBuffer +import java.nio.ByteOrder import kotlin.math.sign -import com.google.flatbuffers.* @Suppress("unused") @ExperimentalUnsignedTypes diff --git a/tests/namespace_test/NamespaceA/TableInFirstNS.kt b/tests/namespace_test/NamespaceA/TableInFirstNS.kt index efeac26bb8..b4a8ff58e8 100644 --- a/tests/namespace_test/NamespaceA/TableInFirstNS.kt +++ b/tests/namespace_test/NamespaceA/TableInFirstNS.kt @@ -2,9 +2,21 @@ package NamespaceA -import java.nio.* +import com.google.flatbuffers.BaseVector +import com.google.flatbuffers.BooleanVector +import com.google.flatbuffers.ByteVector +import com.google.flatbuffers.Constants +import com.google.flatbuffers.DoubleVector +import com.google.flatbuffers.FlatBufferBuilder +import com.google.flatbuffers.FloatVector +import com.google.flatbuffers.LongVector +import com.google.flatbuffers.StringVector +import com.google.flatbuffers.Struct +import com.google.flatbuffers.Table +import com.google.flatbuffers.UnionVector +import java.nio.ByteBuffer +import java.nio.ByteOrder import kotlin.math.sign -import com.google.flatbuffers.* @Suppress("unused") @ExperimentalUnsignedTypes diff --git a/tests/namespace_test/NamespaceC/TableInC.kt b/tests/namespace_test/NamespaceC/TableInC.kt index ea7490cdca..a3365d4fed 100644 --- a/tests/namespace_test/NamespaceC/TableInC.kt +++ b/tests/namespace_test/NamespaceC/TableInC.kt @@ -2,9 +2,21 @@ package NamespaceC -import java.nio.* +import com.google.flatbuffers.BaseVector +import com.google.flatbuffers.BooleanVector +import com.google.flatbuffers.ByteVector +import com.google.flatbuffers.Constants +import com.google.flatbuffers.DoubleVector +import com.google.flatbuffers.FlatBufferBuilder +import com.google.flatbuffers.FloatVector +import com.google.flatbuffers.LongVector +import com.google.flatbuffers.StringVector +import com.google.flatbuffers.Struct +import com.google.flatbuffers.Table +import com.google.flatbuffers.UnionVector +import java.nio.ByteBuffer +import java.nio.ByteOrder import kotlin.math.sign -import com.google.flatbuffers.* @Suppress("unused") @ExperimentalUnsignedTypes diff --git a/tests/optional_scalars/ScalarStuff.kt b/tests/optional_scalars/ScalarStuff.kt index 103e0ce929..bc3ef4bb56 100644 --- a/tests/optional_scalars/ScalarStuff.kt +++ b/tests/optional_scalars/ScalarStuff.kt @@ -2,9 +2,21 @@ package optional_scalars -import java.nio.* +import com.google.flatbuffers.BaseVector +import com.google.flatbuffers.BooleanVector +import com.google.flatbuffers.ByteVector +import com.google.flatbuffers.Constants +import com.google.flatbuffers.DoubleVector +import com.google.flatbuffers.FlatBufferBuilder +import com.google.flatbuffers.FloatVector +import com.google.flatbuffers.LongVector +import com.google.flatbuffers.StringVector +import com.google.flatbuffers.Struct +import com.google.flatbuffers.Table +import com.google.flatbuffers.UnionVector +import java.nio.ByteBuffer +import java.nio.ByteOrder import kotlin.math.sign -import com.google.flatbuffers.* @Suppress("unused") class ScalarStuff : Table() { diff --git a/tests/union_vector/Attacker.kt b/tests/union_vector/Attacker.kt index b1f9447ca8..6823eed158 100644 --- a/tests/union_vector/Attacker.kt +++ b/tests/union_vector/Attacker.kt @@ -1,8 +1,20 @@ // automatically generated by the FlatBuffers compiler, do not modify -import java.nio.* +import com.google.flatbuffers.BaseVector +import com.google.flatbuffers.BooleanVector +import com.google.flatbuffers.ByteVector +import com.google.flatbuffers.Constants +import com.google.flatbuffers.DoubleVector +import com.google.flatbuffers.FlatBufferBuilder +import com.google.flatbuffers.FloatVector +import com.google.flatbuffers.LongVector +import com.google.flatbuffers.StringVector +import com.google.flatbuffers.Struct +import com.google.flatbuffers.Table +import com.google.flatbuffers.UnionVector +import java.nio.ByteBuffer +import java.nio.ByteOrder import kotlin.math.sign -import com.google.flatbuffers.* @Suppress("unused") class Attacker : Table() { diff --git a/tests/union_vector/BookReader.kt b/tests/union_vector/BookReader.kt index 558606e035..87dff73286 100644 --- a/tests/union_vector/BookReader.kt +++ b/tests/union_vector/BookReader.kt @@ -1,8 +1,20 @@ // automatically generated by the FlatBuffers compiler, do not modify -import java.nio.* +import com.google.flatbuffers.BaseVector +import com.google.flatbuffers.BooleanVector +import com.google.flatbuffers.ByteVector +import com.google.flatbuffers.Constants +import com.google.flatbuffers.DoubleVector +import com.google.flatbuffers.FlatBufferBuilder +import com.google.flatbuffers.FloatVector +import com.google.flatbuffers.LongVector +import com.google.flatbuffers.StringVector +import com.google.flatbuffers.Struct +import com.google.flatbuffers.Table +import com.google.flatbuffers.UnionVector +import java.nio.ByteBuffer +import java.nio.ByteOrder import kotlin.math.sign -import com.google.flatbuffers.* @Suppress("unused") class BookReader : Struct() { diff --git a/tests/union_vector/FallingTub.kt b/tests/union_vector/FallingTub.kt index 0a823e2502..43e477a393 100644 --- a/tests/union_vector/FallingTub.kt +++ b/tests/union_vector/FallingTub.kt @@ -1,8 +1,20 @@ // automatically generated by the FlatBuffers compiler, do not modify -import java.nio.* +import com.google.flatbuffers.BaseVector +import com.google.flatbuffers.BooleanVector +import com.google.flatbuffers.ByteVector +import com.google.flatbuffers.Constants +import com.google.flatbuffers.DoubleVector +import com.google.flatbuffers.FlatBufferBuilder +import com.google.flatbuffers.FloatVector +import com.google.flatbuffers.LongVector +import com.google.flatbuffers.StringVector +import com.google.flatbuffers.Struct +import com.google.flatbuffers.Table +import com.google.flatbuffers.UnionVector +import java.nio.ByteBuffer +import java.nio.ByteOrder import kotlin.math.sign -import com.google.flatbuffers.* @Suppress("unused") class FallingTub : Struct() { diff --git a/tests/union_vector/HandFan.kt b/tests/union_vector/HandFan.kt index 8aace8f7db..debcb4c5cd 100644 --- a/tests/union_vector/HandFan.kt +++ b/tests/union_vector/HandFan.kt @@ -1,8 +1,20 @@ // automatically generated by the FlatBuffers compiler, do not modify -import java.nio.* +import com.google.flatbuffers.BaseVector +import com.google.flatbuffers.BooleanVector +import com.google.flatbuffers.ByteVector +import com.google.flatbuffers.Constants +import com.google.flatbuffers.DoubleVector +import com.google.flatbuffers.FlatBufferBuilder +import com.google.flatbuffers.FloatVector +import com.google.flatbuffers.LongVector +import com.google.flatbuffers.StringVector +import com.google.flatbuffers.Struct +import com.google.flatbuffers.Table +import com.google.flatbuffers.UnionVector +import java.nio.ByteBuffer +import java.nio.ByteOrder import kotlin.math.sign -import com.google.flatbuffers.* @Suppress("unused") class HandFan : Table() { diff --git a/tests/union_vector/Movie.kt b/tests/union_vector/Movie.kt index 4a8517b8a8..ee07eef6a8 100644 --- a/tests/union_vector/Movie.kt +++ b/tests/union_vector/Movie.kt @@ -1,8 +1,20 @@ // automatically generated by the FlatBuffers compiler, do not modify -import java.nio.* +import com.google.flatbuffers.BaseVector +import com.google.flatbuffers.BooleanVector +import com.google.flatbuffers.ByteVector +import com.google.flatbuffers.Constants +import com.google.flatbuffers.DoubleVector +import com.google.flatbuffers.FlatBufferBuilder +import com.google.flatbuffers.FloatVector +import com.google.flatbuffers.LongVector +import com.google.flatbuffers.StringVector +import com.google.flatbuffers.Struct +import com.google.flatbuffers.Table +import com.google.flatbuffers.UnionVector +import java.nio.ByteBuffer +import java.nio.ByteOrder import kotlin.math.sign -import com.google.flatbuffers.* @Suppress("unused") class Movie : Table() { diff --git a/tests/union_vector/Rapunzel.kt b/tests/union_vector/Rapunzel.kt index 72261d4716..e3296e1933 100644 --- a/tests/union_vector/Rapunzel.kt +++ b/tests/union_vector/Rapunzel.kt @@ -1,8 +1,20 @@ // automatically generated by the FlatBuffers compiler, do not modify -import java.nio.* +import com.google.flatbuffers.BaseVector +import com.google.flatbuffers.BooleanVector +import com.google.flatbuffers.ByteVector +import com.google.flatbuffers.Constants +import com.google.flatbuffers.DoubleVector +import com.google.flatbuffers.FlatBufferBuilder +import com.google.flatbuffers.FloatVector +import com.google.flatbuffers.LongVector +import com.google.flatbuffers.StringVector +import com.google.flatbuffers.Struct +import com.google.flatbuffers.Table +import com.google.flatbuffers.UnionVector +import java.nio.ByteBuffer +import java.nio.ByteOrder import kotlin.math.sign -import com.google.flatbuffers.* @Suppress("unused") class Rapunzel : Struct() { From 74b51950894ee361e456fcd2b8b411fe2bb75b08 Mon Sep 17 00:00:00 2001 From: Saman <100295082+enum-class@users.noreply.github.com> Date: Fri, 6 Jan 2023 12:11:11 +0800 Subject: [PATCH 076/571] Fix operator==() generated for field of fixed sized array (#7749) * Fix operator==() generated for field of fixed sized array * Compare address * noexcept * Grammer Co-authored-by: Derek Bailey --- include/flatbuffers/array.h | 10 ++++ src/idl_gen_cpp.cpp | 3 +- tests/arrays_test_generated.h | 12 ++--- tests/key_field/key_field_sample_generated.h | 4 +- tests/test.cpp | 49 ++++++++++++++++++++ 5 files changed, 69 insertions(+), 9 deletions(-) diff --git a/include/flatbuffers/array.h b/include/flatbuffers/array.h index ec34deea5a..2ff58c6fb5 100644 --- a/include/flatbuffers/array.h +++ b/include/flatbuffers/array.h @@ -17,6 +17,8 @@ #ifndef FLATBUFFERS_ARRAY_H_ #define FLATBUFFERS_ARRAY_H_ +#include + #include "flatbuffers/base.h" #include "flatbuffers/stl_emulation.h" #include "flatbuffers/vector.h" @@ -238,6 +240,14 @@ const Array &CastToArrayOfEnum(const T (&arr)[length]) { return *reinterpret_cast *>(arr); } +template +bool operator==(const Array &lhs, + const Array &rhs) noexcept { + return std::addressof(lhs) == std::addressof(rhs) || + (lhs.size() == rhs.size() && + std::memcmp(lhs.Data(), rhs.Data(), rhs.size() * sizeof(T)) == 0); +} + } // namespace flatbuffers #endif // FLATBUFFERS_ARRAY_H_ diff --git a/src/idl_gen_cpp.cpp b/src/idl_gen_cpp.cpp index 5b9e181eb1..4f6236fbc1 100644 --- a/src/idl_gen_cpp.cpp +++ b/src/idl_gen_cpp.cpp @@ -2044,7 +2044,6 @@ class CppGenerator : public BaseGenerator { const auto accessor = Name(field) + accessSuffix; const auto lhs_accessor = "lhs." + accessor; const auto rhs_accessor = "rhs." + accessor; - if (!field.deprecated && // Deprecated fields won't be accessible. field.value.type.base_type != BASE_TYPE_UTYPE && (field.value.type.base_type != BASE_TYPE_VECTOR || @@ -2067,6 +2066,8 @@ class CppGenerator : public BaseGenerator { " const &b) { return (a == b) || (a && b && *a == *b); })"; compare_op += "(" + equal_length + " && " + elements_equal + ")"; + } else if (field.value.type.base_type == BASE_TYPE_ARRAY) { + compare_op += "(*" + lhs_accessor + " == *" + rhs_accessor + ")"; } else { compare_op += "(" + lhs_accessor + " == " + rhs_accessor + ")"; } diff --git a/tests/arrays_test_generated.h b/tests/arrays_test_generated.h index cbe838996b..147d16fe99 100644 --- a/tests/arrays_test_generated.h +++ b/tests/arrays_test_generated.h @@ -141,10 +141,10 @@ FLATBUFFERS_STRUCT_END(NestedStruct, 32); inline bool operator==(const NestedStruct &lhs, const NestedStruct &rhs) { return - (lhs.a() == rhs.a()) && + (*lhs.a() == *rhs.a()) && (lhs.b() == rhs.b()) && - (lhs.c() == rhs.c()) && - (lhs.d() == rhs.d()); + (*lhs.c() == *rhs.c()) && + (*lhs.d() == *rhs.d()); } inline bool operator!=(const NestedStruct &lhs, const NestedStruct &rhs) { @@ -257,11 +257,11 @@ FLATBUFFERS_STRUCT_END(ArrayStruct, 160); inline bool operator==(const ArrayStruct &lhs, const ArrayStruct &rhs) { return (lhs.a() == rhs.a()) && - (lhs.b() == rhs.b()) && + (*lhs.b() == *rhs.b()) && (lhs.c() == rhs.c()) && - (lhs.d() == rhs.d()) && + (*lhs.d() == *rhs.d()) && (lhs.e() == rhs.e()) && - (lhs.f() == rhs.f()); + (*lhs.f() == *rhs.f()); } inline bool operator!=(const ArrayStruct &lhs, const ArrayStruct &rhs) { diff --git a/tests/key_field/key_field_sample_generated.h b/tests/key_field/key_field_sample_generated.h index 31cc40016e..d4574ce5d2 100644 --- a/tests/key_field/key_field_sample_generated.h +++ b/tests/key_field/key_field_sample_generated.h @@ -88,7 +88,7 @@ FLATBUFFERS_STRUCT_END(Baz, 5); inline bool operator==(const Baz &lhs, const Baz &rhs) { return - (lhs.a() == rhs.a()) && + (*lhs.a() == *rhs.a()) && (lhs.b() == rhs.b()); } @@ -161,7 +161,7 @@ FLATBUFFERS_STRUCT_END(Bar, 16); inline bool operator==(const Bar &lhs, const Bar &rhs) { return - (lhs.a() == rhs.a()) && + (*lhs.a() == *rhs.a()) && (lhs.b() == rhs.b()); } diff --git a/tests/test.cpp b/tests/test.cpp index e13bc6ee2e..0ad755a329 100644 --- a/tests/test.cpp +++ b/tests/test.cpp @@ -829,6 +829,54 @@ void FixedLengthArrayConstructorTest() { void FixedLengthArrayConstructorTest() {} #endif +void FixedLengthArrayOperatorEqualTest() { + const int32_t nested_a[2] = { 1, 2 }; + MyGame::Example::TestEnum nested_c[2] = { MyGame::Example::TestEnum::A, + MyGame::Example::TestEnum::B }; + + MyGame::Example::TestEnum nested_cc[2] = { MyGame::Example::TestEnum::A, + MyGame::Example::TestEnum::C }; + const int64_t int64_2[2] = { -2, -1 }; + + std::array init_d = { + { MyGame::Example::NestedStruct(nested_a, MyGame::Example::TestEnum::B, + nested_c, int64_2), + MyGame::Example::NestedStruct(nested_a, MyGame::Example::TestEnum::B, + nested_c, + std::array{ { -2, -1 } }) } + }; + + auto different = MyGame::Example::NestedStruct( + nested_a, MyGame::Example::TestEnum::B, nested_cc, + std::array{ { -2, -1 } }); + + TEST_ASSERT(init_d[0] == init_d[1]); + TEST_ASSERT(init_d[0] != different); + + std::array arr_struct = { + MyGame::Example::ArrayStruct( + 8.125, + std::array{ + { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 } }, + -17, init_d, 10, int64_2), + + MyGame::Example::ArrayStruct( + 8.125, + std::array{ + { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 } }, + -17, init_d, 10, int64_2), + + MyGame::Example::ArrayStruct( + 8.125, + std::array{ + { 1000, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 } }, + -17, init_d, 10, int64_2) + }; + + TEST_ASSERT(arr_struct[0] == arr_struct[1]); + TEST_ASSERT(arr_struct[1] != arr_struct[2]); +} + void NativeTypeTest() { const int N = 3; @@ -1560,6 +1608,7 @@ int FlatBufferTests(const std::string &tests_data_path) { ParseFlexbuffersFromJsonWithNullTest(); FlatbuffersSpanTest(); FixedLengthArrayConstructorTest(); + FixedLengthArrayOperatorEqualTest(); FieldIdentifierTest(); StringVectorDefaultsTest(); FlexBuffersFloatingPointTest(); From e61b00359b1809bfdb1b217048318745a091456f Mon Sep 17 00:00:00 2001 From: Florian Wagner Date: Fri, 6 Jan 2023 05:16:31 +0100 Subject: [PATCH 077/571] [Kotlin] Improve field nullability based on (required) (#7658) * [Kotlin] Only generate nullable return types if the field is not required * [Kotlin] Fix generated code formatting according to kotlin style guide Co-authored-by: Derek Bailey Co-authored-by: Paulo Pinheiro --- src/idl_gen_kotlin.cpp | 45 ++++++++++++++++++++++++++++----- tests/MyGame/Example/Monster.kt | 8 ++++-- tests/MyGame/Example/Stat.kt | 6 ++++- 3 files changed, 49 insertions(+), 10 deletions(-) diff --git a/src/idl_gen_kotlin.cpp b/src/idl_gen_kotlin.cpp index 58c7b17f6c..b19f2a3d51 100644 --- a/src/idl_gen_kotlin.cpp +++ b/src/idl_gen_kotlin.cpp @@ -191,10 +191,11 @@ class KotlinGenerator : public BaseGenerator { auto r_type = GenTypeGet(field.value.type); if (field.IsScalarOptional() || // string, structs and unions - (base_type == BASE_TYPE_STRING || base_type == BASE_TYPE_STRUCT || - base_type == BASE_TYPE_UNION) || + (!field.IsRequired() && + (base_type == BASE_TYPE_STRING || base_type == BASE_TYPE_STRUCT || + base_type == BASE_TYPE_UNION)) || // vector of anything not scalar - (base_type == BASE_TYPE_VECTOR && + (base_type == BASE_TYPE_VECTOR && !field.IsRequired() && !IsScalar(field.value.type.VectorType().base_type))) { r_type += "?"; } @@ -998,7 +999,15 @@ class KotlinGenerator : public BaseGenerator { OffsetWrapper( writer, offset_val, [&]() { writer += "obj.__assign({{seek}}, bb)"; }, - [&]() { writer += "null"; }); + [&]() { + if (field.IsRequired()) { + writer += + "throw AssertionError(\"No value for " + "(required) field {{field_name}}\")"; + } else { + writer += "null"; + } + }); }); } break; @@ -1008,12 +1017,30 @@ class KotlinGenerator : public BaseGenerator { // val Name : String? // get() = { // val o = __offset(10) - // return if (o != 0) __string(o + bb_pos) else null + // return if (o != 0) { + // __string(o + bb_pos) + // } else { + // null + // } // } // ? adds nullability annotation GenerateGetter(writer, field_name, return_type, [&]() { writer += "val o = __offset({{offset}})"; - writer += "return if (o != 0) __string(o + bb_pos) else null"; + writer += "return if (o != 0) {"; + writer.IncrementIdentLevel(); + writer += "__string(o + bb_pos)"; + writer.DecrementIdentLevel(); + writer += "} else {"; + writer.IncrementIdentLevel(); + if (field.IsRequired()) { + writer += + "throw AssertionError(\"No value for (required) field " + "{{field_name}}\")"; + } else { + writer += "null"; + } + writer.DecrementIdentLevel(); + writer += "}"; }); break; case BASE_TYPE_VECTOR: { @@ -1038,7 +1065,11 @@ class KotlinGenerator : public BaseGenerator { GenerateFun(writer, field_name, params, return_type, [&]() { auto inline_size = NumToString(InlineSize(vectortype)); auto index = "__vector(o) + j * " + inline_size; - auto not_found = NotFoundReturn(field.value.type.element); + auto not_found = + field.IsRequired() + ? "throw IndexOutOfBoundsException(\"Index out of range: " + "$j, vector {{field_name}} is empty\")" + : NotFoundReturn(field.value.type.element); auto found = ""; writer.SetValue("index", index); switch (vectortype.base_type) { diff --git a/tests/MyGame/Example/Monster.kt b/tests/MyGame/Example/Monster.kt index eecc68ad82..be60c702f4 100644 --- a/tests/MyGame/Example/Monster.kt +++ b/tests/MyGame/Example/Monster.kt @@ -68,10 +68,14 @@ class Monster : Table() { false } } - val name : String? + val name : String get() { val o = __offset(10) - return if (o != 0) __string(o + bb_pos) else null + return if (o != 0) { + __string(o + bb_pos) + } else { + throw AssertionError("No value for (required) field name") + } } val nameAsByteBuffer : ByteBuffer get() = __vector_as_bytebuffer(10, 1) fun nameInByteBuffer(_bb: ByteBuffer) : ByteBuffer = __vector_in_bytebuffer(_bb, 10, 1) diff --git a/tests/MyGame/Example/Stat.kt b/tests/MyGame/Example/Stat.kt index 133582ec84..7968681684 100644 --- a/tests/MyGame/Example/Stat.kt +++ b/tests/MyGame/Example/Stat.kt @@ -31,7 +31,11 @@ class Stat : Table() { val id : String? get() { val o = __offset(4) - return if (o != 0) __string(o + bb_pos) else null + return if (o != 0) { + __string(o + bb_pos) + } else { + null + } } val idAsByteBuffer : ByteBuffer get() = __vector_as_bytebuffer(4, 1) fun idInByteBuffer(_bb: ByteBuffer) : ByteBuffer = __vector_in_bytebuffer(_bb, 4, 1) From 4d6a7aa8b7c7b72dea8c6d6e6a6a8210fda753b9 Mon Sep 17 00:00:00 2001 From: mustiikhalil <26250654+mustiikhalil@users.noreply.github.com> Date: Sat, 7 Jan 2023 01:40:40 +0100 Subject: [PATCH 078/571] Removes Dead code & regenerate code (#7744) Formats the swift project Update Sample files Update docc documentation Updates swift docs in the website Updates code for Wasm --- Package@swift-5.5.swift | 2 +- docs/source/SwiftUsage.md | 5 +- docs/source/Tutorial.md | 6 +- .../Sources/Model/greeter_generated.swift | 4 - .../swift/Greeter/Sources/client/main.swift | 2 +- .../swift/Greeter/Sources/server/main.swift | 2 +- samples/monster_generated.swift | 65 ++++++++++--- samples/sample_binary.swift | 6 +- scripts/generate_code.py | 9 ++ src/idl_gen_swift.cpp | 6 -- swift.swiftformat | 2 +- swift/Sources/FlatBuffers/ByteBuffer.swift | 14 +-- swift/Sources/FlatBuffers/Constants.swift | 12 +-- .../Resources/code/swift/swift_code_11.swift | 6 +- .../Resources/code/swift/swift_code_12.swift | 6 +- .../Resources/code/swift/swift_code_13.swift | 6 +- swift/Sources/FlatBuffers/Enum.swift | 2 +- .../FlatBuffers/FlatBufferBuilder.swift | 2 +- .../FlatBuffers/FlatBufferObject.swift | 2 +- .../FlatBuffers/FlatBuffersUtils.swift | 2 +- .../FlatBuffers/FlatbuffersErrors.swift | 14 +-- swift/Sources/FlatBuffers/Int+extension.swift | 2 +- swift/Sources/FlatBuffers/Message.swift | 2 +- swift/Sources/FlatBuffers/Mutable.swift | 2 +- swift/Sources/FlatBuffers/NativeObject.swift | 2 +- swift/Sources/FlatBuffers/Offset.swift | 2 +- swift/Sources/FlatBuffers/Root.swift | 2 +- .../FlatBuffers/String+extension.swift | 2 +- swift/Sources/FlatBuffers/Struct.swift | 2 +- swift/Sources/FlatBuffers/Table.swift | 2 +- swift/Sources/FlatBuffers/TableVerifier.swift | 2 +- .../Sources/FlatBuffers/VeriferOptions.swift | 2 +- swift/Sources/FlatBuffers/Verifiable.swift | 2 +- swift/Sources/FlatBuffers/Verifier.swift | 2 +- tests/swift/Wasm.tests/.swift-version | 1 + tests/swift/Wasm.tests/Package.swift | 2 +- .../swift/Wasm.tests/Sources/Wasm/Wasm.swift | 16 ++++ .../FlatBuffersMonsterWriterTests.swift | 22 +++-- .../monster_test_generated.swift | 64 +++++-------- .../benchmarks/Sources/benchmarks/main.swift | 2 +- .../test_import_generated.swift | 2 - .../test_no_include_generated.swift | 4 - .../tests/Sources/SwiftFlatBuffers/main.swift | 2 +- .../FlatBuffersMonsterWriterTests.swift | 28 +++--- .../FlatBuffersNanInfTests.swift | 94 ++++++++++--------- .../FlatBuffersStructsTests.swift | 6 +- .../FlatBuffersTests.swift | 6 +- .../FlatBuffersUnionTests.swift | 14 ++- .../FlatBuffersVectorsTests.swift | 5 +- .../FlatbuffersDoubleTests.swift | 2 +- .../FlatbuffersMoreDefaults.swift | 9 +- .../FlatbuffersVerifierTests.swift | 6 +- .../MutatingBool_generated.swift | 2 - .../XCTestManifests.swift | 2 +- .../monster_test_generated.swift | 14 --- .../more_defaults_generated.swift | 2 - .../nan_inf_test_generated.swift | 2 - .../optional_scalars_generated.swift | 2 - .../union_vector_generated.swift | 6 -- .../vector_has_test_generated.swift | 2 - tests/swift/tests/Tests/LinuxMain.swift | 2 +- 61 files changed, 277 insertions(+), 243 deletions(-) create mode 100644 tests/swift/Wasm.tests/.swift-version diff --git a/Package@swift-5.5.swift b/Package@swift-5.5.swift index 3c2e13092a..13313560ee 100644 --- a/Package@swift-5.5.swift +++ b/Package@swift-5.5.swift @@ -32,6 +32,6 @@ let package = Package( .target( name: "FlatBuffers", dependencies: [], - path: "swift/Sources") + path: "swift/Sources"), ]) diff --git a/docs/source/SwiftUsage.md b/docs/source/SwiftUsage.md index b10375e0be..c6116f6ae9 100644 --- a/docs/source/SwiftUsage.md +++ b/docs/source/SwiftUsage.md @@ -72,7 +72,10 @@ Now you can access values like this: In some cases it's necessary to modify values in an existing FlatBuffer in place (without creating a copy). For this reason, scalar fields of a Flatbuffer table or struct can be mutated. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.swift} - let monster = Monster.getRootAsMonster(bb: ByteBuffer(data: data)) + var byteBuffer = ByteBuffer(bytes: data) + // Get an accessor to the root object inside the buffer. + let monster: Monster = try! getCheckedRoot(byteBuffer: &byteBuffer) + // let monster: Monster = getRoot(byteBuffer: &byteBuffer) if !monster.mutate(hp: 10) { fatalError("couldn't mutate") diff --git a/docs/source/Tutorial.md b/docs/source/Tutorial.md index 1069316418..df08c1cae0 100644 --- a/docs/source/Tutorial.md +++ b/docs/source/Tutorial.md @@ -2472,10 +2472,10 @@ myGame.Monster monster = new myGame.Monster(data);
~~~{.swift} // create a ByteBuffer(:) from an [UInt8] or Data() - let buf = // Get your data - + var buf = // Get your data // Get an accessor to the root object inside the buffer. - let monster = Monster.getRootAsMonster(bb: ByteBuffer(bytes: buf)) + let monster: Monster = try! getCheckedRoot(byteBuffer: &byteBuffer) + // let monster: Monster = getRoot(byteBuffer: &byteBuffer) ~~~
diff --git a/grpc/examples/swift/Greeter/Sources/Model/greeter_generated.swift b/grpc/examples/swift/Greeter/Sources/Model/greeter_generated.swift index cd0bc2338e..4097defca1 100644 --- a/grpc/examples/swift/Greeter/Sources/Model/greeter_generated.swift +++ b/grpc/examples/swift/Greeter/Sources/Model/greeter_generated.swift @@ -10,8 +10,6 @@ public struct models_HelloReply: FlatBufferObject, Verifiable { public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table - public static func getRootAsHelloReply(bb: ByteBuffer) -> models_HelloReply { return models_HelloReply(Table(bb: bb, position: Int32(bb.read(def: UOffset.self, position: bb.reader)) + Int32(bb.reader))) } - private init(_ t: Table) { _accessor = t } public init(_ bb: ByteBuffer, o: Int32) { _accessor = Table(bb: bb, position: o) } @@ -59,8 +57,6 @@ public struct models_HelloRequest: FlatBufferObject, Verifiable { public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table - public static func getRootAsHelloRequest(bb: ByteBuffer) -> models_HelloRequest { return models_HelloRequest(Table(bb: bb, position: Int32(bb.read(def: UOffset.self, position: bb.reader)) + Int32(bb.reader))) } - private init(_ t: Table) { _accessor = t } public init(_ bb: ByteBuffer, o: Int32) { _accessor = Table(bb: bb, position: o) } diff --git a/grpc/examples/swift/Greeter/Sources/client/main.swift b/grpc/examples/swift/Greeter/Sources/client/main.swift index 168b0713c8..a4b2a675c7 100644 --- a/grpc/examples/swift/Greeter/Sources/client/main.swift +++ b/grpc/examples/swift/Greeter/Sources/client/main.swift @@ -1,5 +1,5 @@ /* - * Copyright 2021 Google Inc. All rights reserved. + * Copyright 2023 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. diff --git a/grpc/examples/swift/Greeter/Sources/server/main.swift b/grpc/examples/swift/Greeter/Sources/server/main.swift index fca623f5a3..62286c4759 100644 --- a/grpc/examples/swift/Greeter/Sources/server/main.swift +++ b/grpc/examples/swift/Greeter/Sources/server/main.swift @@ -1,5 +1,5 @@ /* - * Copyright 2021 Google Inc. All rights reserved. + * Copyright 2023 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. diff --git a/samples/monster_generated.swift b/samples/monster_generated.swift index 79a6b384fc..3be230371e 100644 --- a/samples/monster_generated.swift +++ b/samples/monster_generated.swift @@ -4,7 +4,7 @@ import FlatBuffers -public enum MyGame_Sample_Color: Int8, Enum { +public enum MyGame_Sample_Color: Int8, Enum, Verifiable { public typealias T = Int8 public static var byteSize: Int { return MemoryLayout.size } public var value: Int8 { return self.rawValue } @@ -12,24 +12,29 @@ public enum MyGame_Sample_Color: Int8, Enum { case green = 1 case blue = 2 - public static var max: MyGame_Sample_Color { return .blue } public static var min: MyGame_Sample_Color { return .red } } -public enum MyGame_Sample_Equipment: UInt8, Enum { + +public enum MyGame_Sample_Equipment: UInt8, UnionEnum { public typealias T = UInt8 + + public init?(value: T) { + self.init(rawValue: value) + } + public static var byteSize: Int { return MemoryLayout.size } public var value: UInt8 { return self.rawValue } case none_ = 0 case weapon = 1 - public static var max: MyGame_Sample_Equipment { return .weapon } public static var min: MyGame_Sample_Equipment { return .none_ } } -public struct MyGame_Sample_Vec3: NativeStruct { + +public struct MyGame_Sample_Vec3: NativeStruct, Verifiable, FlatbuffersInitializable { static func validateVersion() { FlatBuffersVersion_23_1_4() } @@ -37,6 +42,13 @@ public struct MyGame_Sample_Vec3: NativeStruct { private var _y: Float32 private var _z: Float32 + public init(_ bb: ByteBuffer, o: Int32) { + let _accessor = Struct(bb: bb, position: o) + _x = _accessor.readBuffer(of: Float32.self, at: 0) + _y = _accessor.readBuffer(of: Float32.self, at: 4) + _z = _accessor.readBuffer(of: Float32.self, at: 8) + } + public init(x: Float32, y: Float32, z: Float32) { _x = x _y = y @@ -52,6 +64,10 @@ public struct MyGame_Sample_Vec3: NativeStruct { public var x: Float32 { _x } public var y: Float32 { _y } public var z: Float32 { _z } + + public static func verify(_ verifier: inout Verifier, at position: Int, of type: T.Type) throws where T: Verifiable { + try verifier.inBuffer(position: position, of: MyGame_Sample_Vec3.self) + } } public struct MyGame_Sample_Vec3_Mutable: FlatBufferObject { @@ -70,14 +86,12 @@ public struct MyGame_Sample_Vec3_Mutable: FlatBufferObject { @discardableResult public func mutate(z: Float32) -> Bool { return _accessor.mutate(z, index: 8) } } -public struct MyGame_Sample_Monster: FlatBufferObject { +public struct MyGame_Sample_Monster: FlatBufferObject, Verifiable { static func validateVersion() { FlatBuffersVersion_23_1_4() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table - public static func getRootAsMonster(bb: ByteBuffer) -> MyGame_Sample_Monster { return MyGame_Sample_Monster(Table(bb: bb, position: Int32(bb.read(def: UOffset.self, position: bb.reader)) + Int32(bb.reader))) } - private init(_ t: Table) { _accessor = t } public init(_ bb: ByteBuffer, o: Int32) { _accessor = Table(bb: bb, position: o) } @@ -104,16 +118,19 @@ public struct MyGame_Sample_Monster: FlatBufferObject { @discardableResult public func mutate(hp: Int16) -> Bool {let o = _accessor.offset(VTOFFSET.hp.v); return _accessor.mutate(hp, index: o) } public var name: String? { let o = _accessor.offset(VTOFFSET.name.v); return o == 0 ? nil : _accessor.string(at: o) } public var nameSegmentArray: [UInt8]? { return _accessor.getVector(at: VTOFFSET.name.v) } + public var hasInventory: Bool { let o = _accessor.offset(VTOFFSET.inventory.v); return o == 0 ? false : true } public var inventoryCount: Int32 { let o = _accessor.offset(VTOFFSET.inventory.v); return o == 0 ? 0 : _accessor.vector(count: o) } public func inventory(at index: Int32) -> UInt8 { let o = _accessor.offset(VTOFFSET.inventory.v); return o == 0 ? 0 : _accessor.directRead(of: UInt8.self, offset: _accessor.vector(at: o) + index * 1) } public var inventory: [UInt8] { return _accessor.getVector(at: VTOFFSET.inventory.v) ?? [] } public func mutate(inventory: UInt8, at index: Int32) -> Bool { let o = _accessor.offset(VTOFFSET.inventory.v); return _accessor.directMutate(inventory, index: _accessor.vector(at: o) + index * 1) } public var color: MyGame_Sample_Color { let o = _accessor.offset(VTOFFSET.color.v); return o == 0 ? .blue : MyGame_Sample_Color(rawValue: _accessor.readBuffer(of: Int8.self, at: o)) ?? .blue } @discardableResult public func mutate(color: MyGame_Sample_Color) -> Bool {let o = _accessor.offset(VTOFFSET.color.v); return _accessor.mutate(color.rawValue, index: o) } + public var hasWeapons: Bool { let o = _accessor.offset(VTOFFSET.weapons.v); return o == 0 ? false : true } public var weaponsCount: Int32 { let o = _accessor.offset(VTOFFSET.weapons.v); return o == 0 ? 0 : _accessor.vector(count: o) } public func weapons(at index: Int32) -> MyGame_Sample_Weapon? { let o = _accessor.offset(VTOFFSET.weapons.v); return o == 0 ? nil : MyGame_Sample_Weapon(_accessor.bb, o: _accessor.indirect(_accessor.vector(at: o) + index * 4)) } public var equippedType: MyGame_Sample_Equipment { let o = _accessor.offset(VTOFFSET.equippedType.v); return o == 0 ? .none_ : MyGame_Sample_Equipment(rawValue: _accessor.readBuffer(of: UInt8.self, at: o)) ?? .none_ } public func equipped(type: T.Type) -> T? { let o = _accessor.offset(VTOFFSET.equipped.v); return o == 0 ? nil : _accessor.union(o) } + public var hasPath: Bool { let o = _accessor.offset(VTOFFSET.path.v); return o == 0 ? false : true } public var pathCount: Int32 { let o = _accessor.offset(VTOFFSET.path.v); return o == 0 ? 0 : _accessor.vector(count: o) } public func path(at index: Int32) -> MyGame_Sample_Vec3? { let o = _accessor.offset(VTOFFSET.path.v); return o == 0 ? nil : _accessor.directRead(of: MyGame_Sample_Vec3.self, offset: _accessor.vector(at: o) + index * 12) } public func mutablePath(at index: Int32) -> MyGame_Sample_Vec3_Mutable? { let o = _accessor.offset(VTOFFSET.path.v); return o == 0 ? nil : MyGame_Sample_Vec3_Mutable(_accessor.bb, o: _accessor.vector(at: o) + index * 12) } @@ -158,16 +175,35 @@ public struct MyGame_Sample_Monster: FlatBufferObject { MyGame_Sample_Monster.addVectorOf(path: path, &fbb) return MyGame_Sample_Monster.endMonster(&fbb, start: __start) } + + public static func verify(_ verifier: inout Verifier, at position: Int, of type: T.Type) throws where T: Verifiable { + var _v = try verifier.visitTable(at: position) + try _v.visit(field: VTOFFSET.pos.p, fieldName: "pos", required: false, type: MyGame_Sample_Vec3.self) + try _v.visit(field: VTOFFSET.mana.p, fieldName: "mana", required: false, type: Int16.self) + try _v.visit(field: VTOFFSET.hp.p, fieldName: "hp", required: false, type: Int16.self) + try _v.visit(field: VTOFFSET.name.p, fieldName: "name", required: false, type: ForwardOffset.self) + try _v.visit(field: VTOFFSET.inventory.p, fieldName: "inventory", required: false, type: ForwardOffset>.self) + try _v.visit(field: VTOFFSET.color.p, fieldName: "color", required: false, type: MyGame_Sample_Color.self) + try _v.visit(field: VTOFFSET.weapons.p, fieldName: "weapons", required: false, type: ForwardOffset, MyGame_Sample_Weapon>>.self) + try _v.visit(unionKey: VTOFFSET.equippedType.p, unionField: VTOFFSET.equipped.p, unionKeyName: "equippedType", fieldName: "equipped", required: false, completion: { (verifier, key: MyGame_Sample_Equipment, pos) in + switch key { + case .none_: + break // NOTE - SWIFT doesnt support none + case .weapon: + try ForwardOffset.verify(&verifier, at: pos, of: MyGame_Sample_Weapon.self) + } + }) + try _v.visit(field: VTOFFSET.path.p, fieldName: "path", required: false, type: ForwardOffset>.self) + _v.finish() + } } -public struct MyGame_Sample_Weapon: FlatBufferObject { +public struct MyGame_Sample_Weapon: FlatBufferObject, Verifiable { static func validateVersion() { FlatBuffersVersion_23_1_4() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table - public static func getRootAsWeapon(bb: ByteBuffer) -> MyGame_Sample_Weapon { return MyGame_Sample_Weapon(Table(bb: bb, position: Int32(bb.read(def: UOffset.self, position: bb.reader)) + Int32(bb.reader))) } - private init(_ t: Table) { _accessor = t } public init(_ bb: ByteBuffer, o: Int32) { _accessor = Table(bb: bb, position: o) } @@ -196,5 +232,12 @@ public struct MyGame_Sample_Weapon: FlatBufferObject { MyGame_Sample_Weapon.add(damage: damage, &fbb) return MyGame_Sample_Weapon.endWeapon(&fbb, start: __start) } + + public static func verify(_ verifier: inout Verifier, at position: Int, of type: T.Type) throws where T: Verifiable { + var _v = try verifier.visitTable(at: position) + try _v.visit(field: VTOFFSET.name.p, fieldName: "name", required: false, type: ForwardOffset.self) + try _v.visit(field: VTOFFSET.damage.p, fieldName: "damage", required: false, type: Int16.self) + _v.finish() + } } diff --git a/samples/sample_binary.swift b/samples/sample_binary.swift index 889bc980a9..4df546fca2 100644 --- a/samples/sample_binary.swift +++ b/samples/sample_binary.swift @@ -1,5 +1,5 @@ /* - * Copyright 2021 Google Inc. All rights reserved. + * Copyright 2023 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. @@ -56,8 +56,8 @@ func main() { equippedOffset: axe) builder.finish(offset: orc) - let buf = builder.sizedByteArray - let monster = Monster.getRootAsMonster(bb: ByteBuffer(bytes: buf)) + var buf = ByteBuffer(bytes: builder.sizedByteArray) + let monster: Monster = try! getCheckedRoot(byteBuffer: &buffer) assert(monster.mana == 150) assert(monster.hp == 300) diff --git a/scripts/generate_code.py b/scripts/generate_code.py index 1a8d2f1e8c..c72d18a2a1 100755 --- a/scripts/generate_code.py +++ b/scripts/generate_code.py @@ -470,6 +470,15 @@ def glob(path, pattern): cwd=swift_code_gen ) +# Swift Wasm Tests +swift_Wasm_prefix = "swift/Wasm.tests/Tests/FlatBuffers.Test.Swift.WasmTests" +flatc( + SWIFT_OPTS + BASE_OPTS, + schema="monster_test.fbs", + include="include_test", + prefix=swift_Wasm_prefix, +) + # Nim Tests NIM_OPTS = BASE_OPTS + ["--nim"] flatc(NIM_OPTS, schema="monster_test.fbs", include="include_test") diff --git a/src/idl_gen_swift.cpp b/src/idl_gen_swift.cpp index f2ff5e9604..d7d254567a 100644 --- a/src/idl_gen_swift.cpp +++ b/src/idl_gen_swift.cpp @@ -483,12 +483,6 @@ class SwiftGenerator : public BaseGenerator { "fileId: " "{{STRUCTNAME}}.id, addPrefix: prefix) }"; } - code_ += - "{{ACCESS_TYPE}} static func getRootAs{{SHORT_STRUCTNAME}}(bb: " - "ByteBuffer) -> " - "{{STRUCTNAME}} { return {{STRUCTNAME}}(Table(bb: bb, position: " - "Int32(bb.read(def: UOffset.self, position: bb.reader)) + " - "Int32(bb.reader))) }\n"; code_ += "private init(_ t: Table) { {{ACCESS}} = t }"; } code_ += diff --git a/swift.swiftformat b/swift.swiftformat index b198b9292a..80e475a51f 100644 --- a/swift.swiftformat +++ b/swift.swiftformat @@ -1,4 +1,4 @@ ---swiftversion 5.1 +--swiftversion 5.7 # format --indent 2 diff --git a/swift/Sources/FlatBuffers/ByteBuffer.swift b/swift/Sources/FlatBuffers/ByteBuffer.swift index fead65efdf..f5c681ac65 100644 --- a/swift/Sources/FlatBuffers/ByteBuffer.swift +++ b/swift/Sources/FlatBuffers/ByteBuffer.swift @@ -1,5 +1,5 @@ /* - * Copyright 2021 Google Inc. All rights reserved. + * Copyright 2023 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. @@ -429,13 +429,13 @@ public struct ByteBuffer { } /// Returns the written bytes into the ``ByteBuffer`` - public var underlyingBytes: [UInt8] { - let cp = capacity &- writerIndex - let start = memory.advanced(by: writerIndex) - .bindMemory(to: UInt8.self, capacity: cp) + public var underlyingBytes: [UInt8] { + let cp = capacity &- writerIndex + let start = memory.advanced(by: writerIndex) + .bindMemory(to: UInt8.self, capacity: cp) - let ptr = UnsafeBufferPointer(start: start, count: cp) - return Array(ptr) + let ptr = UnsafeBufferPointer(start: start, count: cp) + return Array(ptr) } /// SkipPrefix Skips the first 4 bytes in case one of the following diff --git a/swift/Sources/FlatBuffers/Constants.swift b/swift/Sources/FlatBuffers/Constants.swift index 00614f1eb0..d7436dd484 100644 --- a/swift/Sources/FlatBuffers/Constants.swift +++ b/swift/Sources/FlatBuffers/Constants.swift @@ -1,5 +1,5 @@ /* - * Copyright 2021 Google Inc. All rights reserved. + * Copyright 2023 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. @@ -15,11 +15,11 @@ */ #if !os(WASI) - #if os(Linux) - import CoreFoundation - #else - import Foundation - #endif +#if os(Linux) +import CoreFoundation +#else +import Foundation +#endif #else import SwiftOverlayShims #endif diff --git a/swift/Sources/FlatBuffers/Documentation.docc/Resources/code/swift/swift_code_11.swift b/swift/Sources/FlatBuffers/Documentation.docc/Resources/code/swift/swift_code_11.swift index 3ed7ea2425..07d2d8d2b0 100644 --- a/swift/Sources/FlatBuffers/Documentation.docc/Resources/code/swift/swift_code_11.swift +++ b/swift/Sources/FlatBuffers/Documentation.docc/Resources/code/swift/swift_code_11.swift @@ -4,8 +4,8 @@ import Foundation func run() { // create a ByteBuffer(:) from an [UInt8] or Data() let buf = [] // Get your data - + var byteBuffer = ByteBuffer(bytes: buf) // Get an accessor to the root object inside the buffer. - let monster: Monster = try! getCheckedRoot(byteBuffer: ByteBuffer(bytes: buf)) - // let monster: Monster = getRoot(byteBuffer: ByteBuffer(bytes: buf)) + let monster: Monster = try! getCheckedRoot(byteBuffer: &byteBuffer) + // let monster: Monster = getRoot(byteBuffer: &byteBuffer) } diff --git a/swift/Sources/FlatBuffers/Documentation.docc/Resources/code/swift/swift_code_12.swift b/swift/Sources/FlatBuffers/Documentation.docc/Resources/code/swift/swift_code_12.swift index 895653ebf3..0d9ff69432 100644 --- a/swift/Sources/FlatBuffers/Documentation.docc/Resources/code/swift/swift_code_12.swift +++ b/swift/Sources/FlatBuffers/Documentation.docc/Resources/code/swift/swift_code_12.swift @@ -4,10 +4,10 @@ import Foundation func run() { // create a ByteBuffer(:) from an [UInt8] or Data() let buf = [] // Get your data - + var byteBuffer = ByteBuffer(bytes: buf) // Get an accessor to the root object inside the buffer. - let monster: Monster = try! getCheckedRoot(byteBuffer: ByteBuffer(bytes: buf)) - // let monster: Monster = getRoot(byteBuffer: ByteBuffer(bytes: buf)) + let monster: Monster = try! getCheckedRoot(byteBuffer: &byteBuffer) + // let monster: Monster = getRoot(byteBuffer: &byteBuffer) let hp = monster.hp let mana = monster.mana diff --git a/swift/Sources/FlatBuffers/Documentation.docc/Resources/code/swift/swift_code_13.swift b/swift/Sources/FlatBuffers/Documentation.docc/Resources/code/swift/swift_code_13.swift index 7aac982cf8..1372d6fc08 100644 --- a/swift/Sources/FlatBuffers/Documentation.docc/Resources/code/swift/swift_code_13.swift +++ b/swift/Sources/FlatBuffers/Documentation.docc/Resources/code/swift/swift_code_13.swift @@ -4,10 +4,10 @@ import Foundation func run() { // create a ByteBuffer(:) from an [UInt8] or Data() let buf = [] // Get your data - + var byteBuffer = ByteBuffer(bytes: buf) // Get an accessor to the root object inside the buffer. - let monster: Monster = try! getCheckedRoot(byteBuffer: ByteBuffer(bytes: buf)) - // let monster: Monster = getRoot(byteBuffer: ByteBuffer(bytes: buf)) + let monster: Monster = try! getCheckedRoot(byteBuffer: &byteBuffer) + // let monster: Monster = getRoot(byteBuffer: &byteBuffer) let hp = monster.hp let mana = monster.mana diff --git a/swift/Sources/FlatBuffers/Enum.swift b/swift/Sources/FlatBuffers/Enum.swift index f0e99f399d..ab5db06c9b 100644 --- a/swift/Sources/FlatBuffers/Enum.swift +++ b/swift/Sources/FlatBuffers/Enum.swift @@ -1,5 +1,5 @@ /* - * Copyright 2021 Google Inc. All rights reserved. + * Copyright 2023 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. diff --git a/swift/Sources/FlatBuffers/FlatBufferBuilder.swift b/swift/Sources/FlatBuffers/FlatBufferBuilder.swift index bfe36157f4..f96ad61141 100644 --- a/swift/Sources/FlatBuffers/FlatBufferBuilder.swift +++ b/swift/Sources/FlatBuffers/FlatBufferBuilder.swift @@ -1,5 +1,5 @@ /* - * Copyright 2021 Google Inc. All rights reserved. + * Copyright 2023 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. diff --git a/swift/Sources/FlatBuffers/FlatBufferObject.swift b/swift/Sources/FlatBuffers/FlatBufferObject.swift index 520cb1d968..705c934638 100644 --- a/swift/Sources/FlatBuffers/FlatBufferObject.swift +++ b/swift/Sources/FlatBuffers/FlatBufferObject.swift @@ -1,5 +1,5 @@ /* - * Copyright 2021 Google Inc. All rights reserved. + * Copyright 2023 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. diff --git a/swift/Sources/FlatBuffers/FlatBuffersUtils.swift b/swift/Sources/FlatBuffers/FlatBuffersUtils.swift index 9941bd2d30..338988df75 100644 --- a/swift/Sources/FlatBuffers/FlatBuffersUtils.swift +++ b/swift/Sources/FlatBuffers/FlatBuffersUtils.swift @@ -1,5 +1,5 @@ /* - * Copyright 2021 Google Inc. All rights reserved. + * Copyright 2023 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. diff --git a/swift/Sources/FlatBuffers/FlatbuffersErrors.swift b/swift/Sources/FlatBuffers/FlatbuffersErrors.swift index 77e2f2b282..1a9284ebac 100644 --- a/swift/Sources/FlatBuffers/FlatbuffersErrors.swift +++ b/swift/Sources/FlatBuffers/FlatbuffersErrors.swift @@ -1,5 +1,5 @@ /* - * Copyright 2021 Google Inc. All rights reserved. + * Copyright 2023 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. @@ -66,12 +66,12 @@ public enum FlatbuffersErrors: Error, Equatable { #if !os(WASI) extension FlatbuffersErrors { - public static func == ( - lhs: FlatbuffersErrors, - rhs: FlatbuffersErrors) -> Bool - { - lhs.localizedDescription == rhs.localizedDescription - } + public static func == ( + lhs: FlatbuffersErrors, + rhs: FlatbuffersErrors) -> Bool + { + lhs.localizedDescription == rhs.localizedDescription + } } #endif diff --git a/swift/Sources/FlatBuffers/Int+extension.swift b/swift/Sources/FlatBuffers/Int+extension.swift index f1c261e170..c8cd0e3641 100644 --- a/swift/Sources/FlatBuffers/Int+extension.swift +++ b/swift/Sources/FlatBuffers/Int+extension.swift @@ -1,5 +1,5 @@ /* - * Copyright 2021 Google Inc. All rights reserved. + * Copyright 2023 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. diff --git a/swift/Sources/FlatBuffers/Message.swift b/swift/Sources/FlatBuffers/Message.swift index e9739deec3..172a339db6 100644 --- a/swift/Sources/FlatBuffers/Message.swift +++ b/swift/Sources/FlatBuffers/Message.swift @@ -1,5 +1,5 @@ /* - * Copyright 2021 Google Inc. All rights reserved. + * Copyright 2023 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. diff --git a/swift/Sources/FlatBuffers/Mutable.swift b/swift/Sources/FlatBuffers/Mutable.swift index 9763c3fd23..7a1a3d5bca 100644 --- a/swift/Sources/FlatBuffers/Mutable.swift +++ b/swift/Sources/FlatBuffers/Mutable.swift @@ -1,5 +1,5 @@ /* - * Copyright 2021 Google Inc. All rights reserved. + * Copyright 2023 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. diff --git a/swift/Sources/FlatBuffers/NativeObject.swift b/swift/Sources/FlatBuffers/NativeObject.swift index 5829338519..9c72b50b7a 100644 --- a/swift/Sources/FlatBuffers/NativeObject.swift +++ b/swift/Sources/FlatBuffers/NativeObject.swift @@ -1,5 +1,5 @@ /* - * Copyright 2021 Google Inc. All rights reserved. + * Copyright 2023 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. diff --git a/swift/Sources/FlatBuffers/Offset.swift b/swift/Sources/FlatBuffers/Offset.swift index 5adb5728f8..e433f35a26 100644 --- a/swift/Sources/FlatBuffers/Offset.swift +++ b/swift/Sources/FlatBuffers/Offset.swift @@ -1,5 +1,5 @@ /* - * Copyright 2021 Google Inc. All rights reserved. + * Copyright 2023 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. diff --git a/swift/Sources/FlatBuffers/Root.swift b/swift/Sources/FlatBuffers/Root.swift index 0c593dcb44..6269148bb6 100644 --- a/swift/Sources/FlatBuffers/Root.swift +++ b/swift/Sources/FlatBuffers/Root.swift @@ -1,5 +1,5 @@ /* - * Copyright 2021 Google Inc. All rights reserved. + * Copyright 2023 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. diff --git a/swift/Sources/FlatBuffers/String+extension.swift b/swift/Sources/FlatBuffers/String+extension.swift index cd92f7fd8c..35c83cbdbe 100644 --- a/swift/Sources/FlatBuffers/String+extension.swift +++ b/swift/Sources/FlatBuffers/String+extension.swift @@ -1,5 +1,5 @@ /* - * Copyright 2021 Google Inc. All rights reserved. + * Copyright 2023 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. diff --git a/swift/Sources/FlatBuffers/Struct.swift b/swift/Sources/FlatBuffers/Struct.swift index 9996f4493c..04cfba0928 100644 --- a/swift/Sources/FlatBuffers/Struct.swift +++ b/swift/Sources/FlatBuffers/Struct.swift @@ -1,5 +1,5 @@ /* - * Copyright 2021 Google Inc. All rights reserved. + * Copyright 2023 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. diff --git a/swift/Sources/FlatBuffers/Table.swift b/swift/Sources/FlatBuffers/Table.swift index 5c78224893..0da5919a84 100644 --- a/swift/Sources/FlatBuffers/Table.swift +++ b/swift/Sources/FlatBuffers/Table.swift @@ -1,5 +1,5 @@ /* - * Copyright 2021 Google Inc. All rights reserved. + * Copyright 2023 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. diff --git a/swift/Sources/FlatBuffers/TableVerifier.swift b/swift/Sources/FlatBuffers/TableVerifier.swift index 0338f0d325..45f0a5aba4 100644 --- a/swift/Sources/FlatBuffers/TableVerifier.swift +++ b/swift/Sources/FlatBuffers/TableVerifier.swift @@ -1,5 +1,5 @@ /* - * Copyright 2021 Google Inc. All rights reserved. + * Copyright 2023 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. diff --git a/swift/Sources/FlatBuffers/VeriferOptions.swift b/swift/Sources/FlatBuffers/VeriferOptions.swift index bd88ba6b60..a760ffbab0 100644 --- a/swift/Sources/FlatBuffers/VeriferOptions.swift +++ b/swift/Sources/FlatBuffers/VeriferOptions.swift @@ -1,5 +1,5 @@ /* - * Copyright 2021 Google Inc. All rights reserved. + * Copyright 2023 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. diff --git a/swift/Sources/FlatBuffers/Verifiable.swift b/swift/Sources/FlatBuffers/Verifiable.swift index 7ecb454612..b445c4ce13 100644 --- a/swift/Sources/FlatBuffers/Verifiable.swift +++ b/swift/Sources/FlatBuffers/Verifiable.swift @@ -1,5 +1,5 @@ /* - * Copyright 2021 Google Inc. All rights reserved. + * Copyright 2023 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. diff --git a/swift/Sources/FlatBuffers/Verifier.swift b/swift/Sources/FlatBuffers/Verifier.swift index 9ac3974302..6daf6f50ce 100644 --- a/swift/Sources/FlatBuffers/Verifier.swift +++ b/swift/Sources/FlatBuffers/Verifier.swift @@ -1,5 +1,5 @@ /* - * Copyright 2021 Google Inc. All rights reserved. + * Copyright 2023 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. diff --git a/tests/swift/Wasm.tests/.swift-version b/tests/swift/Wasm.tests/.swift-version new file mode 100644 index 0000000000..d9bd01e0a3 --- /dev/null +++ b/tests/swift/Wasm.tests/.swift-version @@ -0,0 +1 @@ +wasm-5.7-SNAPSHOT-2022-09-24-a \ No newline at end of file diff --git a/tests/swift/Wasm.tests/Package.swift b/tests/swift/Wasm.tests/Package.swift index bd32307ef1..e45db6ffd1 100644 --- a/tests/swift/Wasm.tests/Package.swift +++ b/tests/swift/Wasm.tests/Package.swift @@ -30,5 +30,5 @@ let package = Package( name: "Wasm"), .testTarget( name: "FlatBuffers.Test.Swift.WasmTests", - dependencies: ["FlatBuffers"]) + dependencies: ["FlatBuffers"]), ]) diff --git a/tests/swift/Wasm.tests/Sources/Wasm/Wasm.swift b/tests/swift/Wasm.tests/Sources/Wasm/Wasm.swift index c14abeb4f6..1b0952bc04 100644 --- a/tests/swift/Wasm.tests/Sources/Wasm/Wasm.swift +++ b/tests/swift/Wasm.tests/Sources/Wasm/Wasm.swift @@ -1 +1,17 @@ +/* + * Copyright 2023 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. + */ + public struct Wasm {} \ No newline at end of file diff --git a/tests/swift/Wasm.tests/Tests/FlatBuffers.Test.Swift.WasmTests/FlatBuffersMonsterWriterTests.swift b/tests/swift/Wasm.tests/Tests/FlatBuffers.Test.Swift.WasmTests/FlatBuffersMonsterWriterTests.swift index 614791e0a0..adc918a5d9 100644 --- a/tests/swift/Wasm.tests/Tests/FlatBuffers.Test.Swift.WasmTests/FlatBuffersMonsterWriterTests.swift +++ b/tests/swift/Wasm.tests/Tests/FlatBuffers.Test.Swift.WasmTests/FlatBuffersMonsterWriterTests.swift @@ -1,5 +1,5 @@ /* - * Copyright 2021 Google Inc. All rights reserved. + * Copyright 2023 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. @@ -38,7 +38,8 @@ class FlatBuffersMonsterWriterTests: XCTestCase { // swiftformat:disable all XCTAssertEqual(bytes.sizedByteArray, [48, 0, 0, 0, 77, 79, 78, 83, 0, 0, 0, 0, 36, 0, 72, 0, 40, 0, 0, 0, 38, 0, 32, 0, 0, 0, 28, 0, 0, 0, 27, 0, 20, 0, 16, 0, 12, 0, 4, 0, 0, 0, 0, 0, 0, 0, 11, 0, 36, 0, 0, 0, 164, 0, 0, 0, 0, 0, 0, 1, 60, 0, 0, 0, 68, 0, 0, 0, 76, 0, 0, 0, 0, 0, 0, 1, 88, 0, 0, 0, 120, 0, 0, 0, 0, 0, 80, 0, 0, 0, 128, 63, 0, 0, 0, 64, 0, 0, 64, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 64, 2, 0, 5, 0, 6, 0, 0, 0, 2, 0, 0, 0, 64, 0, 0, 0, 48, 0, 0, 0, 2, 0, 0, 0, 30, 0, 40, 0, 10, 0, 20, 0, 152, 255, 255, 255, 4, 0, 0, 0, 4, 0, 0, 0, 70, 114, 101, 100, 0, 0, 0, 0, 5, 0, 0, 0, 0, 1, 2, 3, 4, 0, 0, 0, 5, 0, 0, 0, 116, 101, 115, 116, 50, 0, 0, 0, 5, 0, 0, 0, 116, 101, 115, 116, 49, 0, 0, 0, 9, 0, 0, 0, 77, 121, 77, 111, 110, 115, 116, 101, 114, 0, 0, 0, 3, 0, 0, 0, 20, 0, 0, 0, 36, 0, 0, 0, 4, 0, 0, 0, 240, 255, 255, 255, 32, 0, 0, 0, 248, 255, 255, 255, 36, 0, 0, 0, 12, 0, 8, 0, 0, 0, 0, 0, 0, 0, 4, 0, 12, 0, 0, 0, 28, 0, 0, 0, 5, 0, 0, 0, 87, 105, 108, 109, 97, 0, 0, 0, 6, 0, 0, 0, 66, 97, 114, 110, 101, 121, 0, 0, 5, 0, 0, 0, 70, 114, 111, 100, 111, 0, 0, 0]) // swiftformat:enable all - let monster = MyGame_Example_Monster.getRootAsMonster(bb: bytes.buffer) + var buffer = bytes.buffer + let monster: MyGame_Example_Monster = getRoot(byteBuffer: &buffer) readMonster(monster: monster) mutateMonster(fb: bytes.buffer) readMonster(monster: monster) @@ -69,7 +70,8 @@ class FlatBuffersMonsterWriterTests: XCTestCase { Monster.add(name: name, &fbb) let root = Monster.endMonster(&fbb, start: mStart) fbb.finish(offset: root) - let newMonster = Monster.getRootAsMonster(bb: fbb.sizedBuffer) + var buffer = fbb.sizedBuffer + let newMonster: MyGame_Example_Monster = getRoot(byteBuffer: &buffer) XCTAssertNil(newMonster.pos) XCTAssertEqual(newMonster.name, "Frodo") } @@ -91,7 +93,8 @@ class FlatBuffersMonsterWriterTests: XCTestCase { let root = Monster.endMonster(&fbb, start: mStart) fbb.finish(offset: root) - let newMonster = Monster.getRootAsMonster(bb: fbb.sizedBuffer) + var buffer = fbb.sizedBuffer + let newMonster: MyGame_Example_Monster = getRoot(byteBuffer: &buffer) XCTAssertEqual(newMonster.pos!.x, 10) XCTAssertEqual(newMonster.name, "Barney") } @@ -106,7 +109,8 @@ class FlatBuffersMonsterWriterTests: XCTestCase { nameOffset: name, testarrayofboolsVectorOffset: bools) fbb.finish(offset: root) - let monster = Monster.getRootAsMonster(bb: fbb.sizedBuffer) + var buffer = fbb.sizedBuffer + let monster: MyGame_Example_Monster = getRoot(byteBuffer: &buffer) let values = monster.testarrayofbools @@ -130,9 +134,9 @@ class FlatBuffersMonsterWriterTests: XCTestCase { readFlatbufferMonster(monster: &monster) let unpacked: MyGame_Example_MonsterT? = monster.unpack() readObjectApi(monster: unpacked!) - guard let buffer = unpacked?.serialize() + guard var buffer = unpacked?.serialize() else { fatalError("Couldnt generate bytebuffer") } - var newMonster = Monster.getRootAsMonster(bb: buffer) + var newMonster: MyGame_Example_Monster = getRoot(byteBuffer: &buffer) readFlatbufferMonster(monster: &newMonster) } @@ -198,7 +202,9 @@ class FlatBuffersMonsterWriterTests: XCTestCase { } func mutateMonster(fb: ByteBuffer) { - let monster = Monster.getRootAsMonster(bb: fb) + var fb = fb + + let monster: Monster = getRoot(byteBuffer: &fb) XCTAssertFalse(monster.mutate(mana: 10)) XCTAssertEqual(monster.testarrayoftables(at: 0)?.name, "Barney") XCTAssertEqual(monster.testarrayoftables(at: 1)?.name, "Frodo") diff --git a/tests/swift/Wasm.tests/Tests/FlatBuffers.Test.Swift.WasmTests/monster_test_generated.swift b/tests/swift/Wasm.tests/Tests/FlatBuffers.Test.Swift.WasmTests/monster_test_generated.swift index d23df87869..974c5d48b5 100644 --- a/tests/swift/Wasm.tests/Tests/FlatBuffers.Test.Swift.WasmTests/monster_test_generated.swift +++ b/tests/swift/Wasm.tests/Tests/FlatBuffers.Test.Swift.WasmTests/monster_test_generated.swift @@ -685,8 +685,6 @@ public struct MyGame_InParentNamespace: FlatBufferObject, Verifiable, ObjectAPIP public static var id: String { "MONS" } public static func finish(_ fbb: inout FlatBufferBuilder, end: Offset, prefix: Bool = false) { fbb.finish(offset: end, fileId: MyGame_InParentNamespace.id, addPrefix: prefix) } - public static func getRootAsInParentNamespace(bb: ByteBuffer) -> MyGame_InParentNamespace { return MyGame_InParentNamespace(Table(bb: bb, position: Int32(bb.read(def: UOffset.self, position: bb.reader)) + Int32(bb.reader))) } - private init(_ t: Table) { _accessor = t } public init(_ bb: ByteBuffer, o: Int32) { _accessor = Table(bb: bb, position: o) } @@ -739,8 +737,6 @@ public struct MyGame_Example2_Monster: FlatBufferObject, Verifiable, ObjectAPIPa public static var id: String { "MONS" } public static func finish(_ fbb: inout FlatBufferBuilder, end: Offset, prefix: Bool = false) { fbb.finish(offset: end, fileId: MyGame_Example2_Monster.id, addPrefix: prefix) } - public static func getRootAsMonster(bb: ByteBuffer) -> MyGame_Example2_Monster { return MyGame_Example2_Monster(Table(bb: bb, position: Int32(bb.read(def: UOffset.self, position: bb.reader)) + Int32(bb.reader))) } - private init(_ t: Table) { _accessor = t } public init(_ bb: ByteBuffer, o: Int32) { _accessor = Table(bb: bb, position: o) } @@ -793,8 +789,6 @@ internal struct MyGame_Example_TestSimpleTableWithEnum: FlatBufferObject, Verifi internal static var id: String { "MONS" } internal static func finish(_ fbb: inout FlatBufferBuilder, end: Offset, prefix: Bool = false) { fbb.finish(offset: end, fileId: MyGame_Example_TestSimpleTableWithEnum.id, addPrefix: prefix) } - internal static func getRootAsTestSimpleTableWithEnum(bb: ByteBuffer) -> MyGame_Example_TestSimpleTableWithEnum { return MyGame_Example_TestSimpleTableWithEnum(Table(bb: bb, position: Int32(bb.read(def: UOffset.self, position: bb.reader)) + Int32(bb.reader))) } - private init(_ t: Table) { _accessor = t } internal init(_ bb: ByteBuffer, o: Int32) { _accessor = Table(bb: bb, position: o) } @@ -876,8 +870,6 @@ public struct MyGame_Example_Stat: FlatBufferObject, Verifiable, ObjectAPIPacker public static var id: String { "MONS" } public static func finish(_ fbb: inout FlatBufferBuilder, end: Offset, prefix: Bool = false) { fbb.finish(offset: end, fileId: MyGame_Example_Stat.id, addPrefix: prefix) } - public static func getRootAsStat(bb: ByteBuffer) -> MyGame_Example_Stat { return MyGame_Example_Stat(Table(bb: bb, position: Int32(bb.read(def: UOffset.self, position: bb.reader)) + Int32(bb.reader))) } - private init(_ t: Table) { _accessor = t } public init(_ bb: ByteBuffer, o: Int32) { _accessor = Table(bb: bb, position: o) } @@ -1017,8 +1009,6 @@ public struct MyGame_Example_Referrable: FlatBufferObject, Verifiable, ObjectAPI public static var id: String { "MONS" } public static func finish(_ fbb: inout FlatBufferBuilder, end: Offset, prefix: Bool = false) { fbb.finish(offset: end, fileId: MyGame_Example_Referrable.id, addPrefix: prefix) } - public static func getRootAsReferrable(bb: ByteBuffer) -> MyGame_Example_Referrable { return MyGame_Example_Referrable(Table(bb: bb, position: Int32(bb.read(def: UOffset.self, position: bb.reader)) + Int32(bb.reader))) } - private init(_ t: Table) { _accessor = t } public init(_ bb: ByteBuffer, o: Int32) { _accessor = Table(bb: bb, position: o) } @@ -1125,8 +1115,6 @@ public struct MyGame_Example_Monster: FlatBufferObject, Verifiable, ObjectAPIPac public static var id: String { "MONS" } public static func finish(_ fbb: inout FlatBufferBuilder, end: Offset, prefix: Bool = false) { fbb.finish(offset: end, fileId: MyGame_Example_Monster.id, addPrefix: prefix) } - public static func getRootAsMonster(bb: ByteBuffer) -> MyGame_Example_Monster { return MyGame_Example_Monster(Table(bb: bb, position: Int32(bb.read(def: UOffset.self, position: bb.reader)) + Int32(bb.reader))) } - private init(_ t: Table) { _accessor = t } public init(_ bb: ByteBuffer, o: Int32) { _accessor = Table(bb: bb, position: o) } @@ -1344,19 +1332,19 @@ public struct MyGame_Example_Monster: FlatBufferObject, Verifiable, ObjectAPIPac @discardableResult public func mutate(longEnumNormalDefault: MyGame_Example_LongEnum) -> Bool {let o = _accessor.offset(VTOFFSET.longEnumNormalDefault.v); return _accessor.mutate(longEnumNormalDefault.rawValue, index: o) } public var nanDefault: Float32 { let o = _accessor.offset(VTOFFSET.nanDefault.v); return o == 0 ? .nan : _accessor.readBuffer(of: Float32.self, at: o) } @discardableResult public func mutate(nanDefault: Float32) -> Bool {let o = _accessor.offset(VTOFFSET.nanDefault.v); return _accessor.mutate(nanDefault, index: o) } - public var infDefault: Float32 { let o = _accessor.offset(VTOFFSET.infDefault.v); return o == 0 ? +.infinity : _accessor.readBuffer(of: Float32.self, at: o) } + public var infDefault: Float32 { let o = _accessor.offset(VTOFFSET.infDefault.v); return o == 0 ? .infinity : _accessor.readBuffer(of: Float32.self, at: o) } @discardableResult public func mutate(infDefault: Float32) -> Bool {let o = _accessor.offset(VTOFFSET.infDefault.v); return _accessor.mutate(infDefault, index: o) } - public var positiveInfDefault: Float32 { let o = _accessor.offset(VTOFFSET.positiveInfDefault.v); return o == 0 ? +.infinity : _accessor.readBuffer(of: Float32.self, at: o) } + public var positiveInfDefault: Float32 { let o = _accessor.offset(VTOFFSET.positiveInfDefault.v); return o == 0 ? .infinity : _accessor.readBuffer(of: Float32.self, at: o) } @discardableResult public func mutate(positiveInfDefault: Float32) -> Bool {let o = _accessor.offset(VTOFFSET.positiveInfDefault.v); return _accessor.mutate(positiveInfDefault, index: o) } - public var infinityDefault: Float32 { let o = _accessor.offset(VTOFFSET.infinityDefault.v); return o == 0 ? +.infinity : _accessor.readBuffer(of: Float32.self, at: o) } + public var infinityDefault: Float32 { let o = _accessor.offset(VTOFFSET.infinityDefault.v); return o == 0 ? .infinity : _accessor.readBuffer(of: Float32.self, at: o) } @discardableResult public func mutate(infinityDefault: Float32) -> Bool {let o = _accessor.offset(VTOFFSET.infinityDefault.v); return _accessor.mutate(infinityDefault, index: o) } - public var positiveInfinityDefault: Float32 { let o = _accessor.offset(VTOFFSET.positiveInfinityDefault.v); return o == 0 ? +.infinity : _accessor.readBuffer(of: Float32.self, at: o) } + public var positiveInfinityDefault: Float32 { let o = _accessor.offset(VTOFFSET.positiveInfinityDefault.v); return o == 0 ? .infinity : _accessor.readBuffer(of: Float32.self, at: o) } @discardableResult public func mutate(positiveInfinityDefault: Float32) -> Bool {let o = _accessor.offset(VTOFFSET.positiveInfinityDefault.v); return _accessor.mutate(positiveInfinityDefault, index: o) } public var negativeInfDefault: Float32 { let o = _accessor.offset(VTOFFSET.negativeInfDefault.v); return o == 0 ? -.infinity : _accessor.readBuffer(of: Float32.self, at: o) } @discardableResult public func mutate(negativeInfDefault: Float32) -> Bool {let o = _accessor.offset(VTOFFSET.negativeInfDefault.v); return _accessor.mutate(negativeInfDefault, index: o) } public var negativeInfinityDefault: Float32 { let o = _accessor.offset(VTOFFSET.negativeInfinityDefault.v); return o == 0 ? -.infinity : _accessor.readBuffer(of: Float32.self, at: o) } @discardableResult public func mutate(negativeInfinityDefault: Float32) -> Bool {let o = _accessor.offset(VTOFFSET.negativeInfinityDefault.v); return _accessor.mutate(negativeInfinityDefault, index: o) } - public var doubleInfDefault: Double { let o = _accessor.offset(VTOFFSET.doubleInfDefault.v); return o == 0 ? +.infinity : _accessor.readBuffer(of: Double.self, at: o) } + public var doubleInfDefault: Double { let o = _accessor.offset(VTOFFSET.doubleInfDefault.v); return o == 0 ? .infinity : _accessor.readBuffer(of: Double.self, at: o) } @discardableResult public func mutate(doubleInfDefault: Double) -> Bool {let o = _accessor.offset(VTOFFSET.doubleInfDefault.v); return _accessor.mutate(doubleInfDefault, index: o) } public static func startMonster(_ fbb: inout FlatBufferBuilder) -> UOffset { fbb.startTable(with: 62) } public static func add(pos: MyGame_Example_Vec3?, _ fbb: inout FlatBufferBuilder) { guard let pos = pos else { return }; fbb.create(struct: pos, position: VTOFFSET.pos.p) } @@ -1423,13 +1411,13 @@ public struct MyGame_Example_Monster: FlatBufferObject, Verifiable, ObjectAPIPac public static func add(longEnumNonEnumDefault: MyGame_Example_LongEnum, _ fbb: inout FlatBufferBuilder) { fbb.add(element: longEnumNonEnumDefault.rawValue, def: 0, at: VTOFFSET.longEnumNonEnumDefault.p) } public static func add(longEnumNormalDefault: MyGame_Example_LongEnum, _ fbb: inout FlatBufferBuilder) { fbb.add(element: longEnumNormalDefault.rawValue, def: 2, at: VTOFFSET.longEnumNormalDefault.p) } public static func add(nanDefault: Float32, _ fbb: inout FlatBufferBuilder) { fbb.add(element: nanDefault, def: .nan, at: VTOFFSET.nanDefault.p) } - public static func add(infDefault: Float32, _ fbb: inout FlatBufferBuilder) { fbb.add(element: infDefault, def: +.infinity, at: VTOFFSET.infDefault.p) } - public static func add(positiveInfDefault: Float32, _ fbb: inout FlatBufferBuilder) { fbb.add(element: positiveInfDefault, def: +.infinity, at: VTOFFSET.positiveInfDefault.p) } - public static func add(infinityDefault: Float32, _ fbb: inout FlatBufferBuilder) { fbb.add(element: infinityDefault, def: +.infinity, at: VTOFFSET.infinityDefault.p) } - public static func add(positiveInfinityDefault: Float32, _ fbb: inout FlatBufferBuilder) { fbb.add(element: positiveInfinityDefault, def: +.infinity, at: VTOFFSET.positiveInfinityDefault.p) } + public static func add(infDefault: Float32, _ fbb: inout FlatBufferBuilder) { fbb.add(element: infDefault, def: .infinity, at: VTOFFSET.infDefault.p) } + public static func add(positiveInfDefault: Float32, _ fbb: inout FlatBufferBuilder) { fbb.add(element: positiveInfDefault, def: .infinity, at: VTOFFSET.positiveInfDefault.p) } + public static func add(infinityDefault: Float32, _ fbb: inout FlatBufferBuilder) { fbb.add(element: infinityDefault, def: .infinity, at: VTOFFSET.infinityDefault.p) } + public static func add(positiveInfinityDefault: Float32, _ fbb: inout FlatBufferBuilder) { fbb.add(element: positiveInfinityDefault, def: .infinity, at: VTOFFSET.positiveInfinityDefault.p) } public static func add(negativeInfDefault: Float32, _ fbb: inout FlatBufferBuilder) { fbb.add(element: negativeInfDefault, def: -.infinity, at: VTOFFSET.negativeInfDefault.p) } public static func add(negativeInfinityDefault: Float32, _ fbb: inout FlatBufferBuilder) { fbb.add(element: negativeInfinityDefault, def: -.infinity, at: VTOFFSET.negativeInfinityDefault.p) } - public static func add(doubleInfDefault: Double, _ fbb: inout FlatBufferBuilder) { fbb.add(element: doubleInfDefault, def: +.infinity, at: VTOFFSET.doubleInfDefault.p) } + public static func add(doubleInfDefault: Double, _ fbb: inout FlatBufferBuilder) { fbb.add(element: doubleInfDefault, def: .infinity, at: VTOFFSET.doubleInfDefault.p) } public static func endMonster(_ fbb: inout FlatBufferBuilder, start: UOffset) -> Offset { let end = Offset(offset: fbb.endTable(at: start)); fbb.require(table: end, fields: [10]); return end } public static func createMonster( _ fbb: inout FlatBufferBuilder, @@ -1487,13 +1475,13 @@ public struct MyGame_Example_Monster: FlatBufferObject, Verifiable, ObjectAPIPac longEnumNonEnumDefault: MyGame_Example_LongEnum = .longone, longEnumNormalDefault: MyGame_Example_LongEnum = .longone, nanDefault: Float32 = .nan, - infDefault: Float32 = +.infinity, - positiveInfDefault: Float32 = +.infinity, - infinityDefault: Float32 = +.infinity, - positiveInfinityDefault: Float32 = +.infinity, + infDefault: Float32 = .infinity, + positiveInfDefault: Float32 = .infinity, + infinityDefault: Float32 = .infinity, + positiveInfinityDefault: Float32 = .infinity, negativeInfDefault: Float32 = -.infinity, negativeInfinityDefault: Float32 = -.infinity, - doubleInfDefault: Double = +.infinity + doubleInfDefault: Double = .infinity ) -> Offset { let __start = MyGame_Example_Monster.startMonster(&fbb) MyGame_Example_Monster.add(pos: pos, &fbb) @@ -2108,16 +2096,16 @@ extension MyGame_Example_Monster: Encodable { if !nanDefault.isNaN { try container.encodeIfPresent(nanDefault, forKey: .nanDefault) } - if infDefault != +.infinity { + if infDefault != .infinity { try container.encodeIfPresent(infDefault, forKey: .infDefault) } - if positiveInfDefault != +.infinity { + if positiveInfDefault != .infinity { try container.encodeIfPresent(positiveInfDefault, forKey: .positiveInfDefault) } - if infinityDefault != +.infinity { + if infinityDefault != .infinity { try container.encodeIfPresent(infinityDefault, forKey: .infinityDefault) } - if positiveInfinityDefault != +.infinity { + if positiveInfinityDefault != .infinity { try container.encodeIfPresent(positiveInfinityDefault, forKey: .positiveInfinityDefault) } if negativeInfDefault != -.infinity { @@ -2126,7 +2114,7 @@ extension MyGame_Example_Monster: Encodable { if negativeInfinityDefault != -.infinity { try container.encodeIfPresent(negativeInfinityDefault, forKey: .negativeInfinityDefault) } - if doubleInfDefault != +.infinity { + if doubleInfDefault != .infinity { try container.encodeIfPresent(doubleInfDefault, forKey: .doubleInfDefault) } } @@ -2403,13 +2391,13 @@ public class MyGame_Example_MonsterT: NativeObject { longEnumNonEnumDefault = .longone longEnumNormalDefault = .longone nanDefault = .nan - infDefault = +.infinity - positiveInfDefault = +.infinity - infinityDefault = +.infinity - positiveInfinityDefault = +.infinity + infDefault = .infinity + positiveInfDefault = .infinity + infinityDefault = .infinity + positiveInfinityDefault = .infinity negativeInfDefault = -.infinity negativeInfinityDefault = -.infinity - doubleInfDefault = +.infinity + doubleInfDefault = .infinity } public func serialize() -> ByteBuffer { return serialize(type: MyGame_Example_Monster.self) } @@ -2423,8 +2411,6 @@ public struct MyGame_Example_TypeAliases: FlatBufferObject, Verifiable, ObjectAP public static var id: String { "MONS" } public static func finish(_ fbb: inout FlatBufferBuilder, end: Offset, prefix: Bool = false) { fbb.finish(offset: end, fileId: MyGame_Example_TypeAliases.id, addPrefix: prefix) } - public static func getRootAsTypeAliases(bb: ByteBuffer) -> MyGame_Example_TypeAliases { return MyGame_Example_TypeAliases(Table(bb: bb, position: Int32(bb.read(def: UOffset.self, position: bb.reader)) + Int32(bb.reader))) } - private init(_ t: Table) { _accessor = t } public init(_ bb: ByteBuffer, o: Int32) { _accessor = Table(bb: bb, position: o) } diff --git a/tests/swift/benchmarks/Sources/benchmarks/main.swift b/tests/swift/benchmarks/Sources/benchmarks/main.swift index a25a646e0e..e41d5ce575 100644 --- a/tests/swift/benchmarks/Sources/benchmarks/main.swift +++ b/tests/swift/benchmarks/Sources/benchmarks/main.swift @@ -1,5 +1,5 @@ /* - * Copyright 2021 Google Inc. All rights reserved. + * Copyright 2023 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. diff --git a/tests/swift/tests/CodeGenerationTests/test_import_generated.swift b/tests/swift/tests/CodeGenerationTests/test_import_generated.swift index c0af7d297c..aaeb0c0428 100644 --- a/tests/swift/tests/CodeGenerationTests/test_import_generated.swift +++ b/tests/swift/tests/CodeGenerationTests/test_import_generated.swift @@ -10,8 +10,6 @@ internal struct Message: FlatBufferObject, Verifiable, ObjectAPIPacker { internal var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table - internal static func getRootAsMessage(bb: ByteBuffer) -> Message { return Message(Table(bb: bb, position: Int32(bb.read(def: UOffset.self, position: bb.reader)) + Int32(bb.reader))) } - private init(_ t: Table) { _accessor = t } internal init(_ bb: ByteBuffer, o: Int32) { _accessor = Table(bb: bb, position: o) } diff --git a/tests/swift/tests/CodeGenerationTests/test_no_include_generated.swift b/tests/swift/tests/CodeGenerationTests/test_no_include_generated.swift index 143496607b..608424fa90 100644 --- a/tests/swift/tests/CodeGenerationTests/test_no_include_generated.swift +++ b/tests/swift/tests/CodeGenerationTests/test_no_include_generated.swift @@ -76,8 +76,6 @@ public struct InternalMessage: FlatBufferObject, Verifiable, ObjectAPIPacker { public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table - public static func getRootAsInternalMessage(bb: ByteBuffer) -> InternalMessage { return InternalMessage(Table(bb: bb, position: Int32(bb.read(def: UOffset.self, position: bb.reader)) + Int32(bb.reader))) } - private init(_ t: Table) { _accessor = t } public init(_ bb: ByteBuffer, o: Int32) { _accessor = Table(bb: bb, position: o) } @@ -161,8 +159,6 @@ public struct Message: FlatBufferObject, Verifiable, ObjectAPIPacker { public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table - public static func getRootAsMessage(bb: ByteBuffer) -> Message { return Message(Table(bb: bb, position: Int32(bb.read(def: UOffset.self, position: bb.reader)) + Int32(bb.reader))) } - private init(_ t: Table) { _accessor = t } public init(_ bb: ByteBuffer, o: Int32) { _accessor = Table(bb: bb, position: o) } diff --git a/tests/swift/tests/Sources/SwiftFlatBuffers/main.swift b/tests/swift/tests/Sources/SwiftFlatBuffers/main.swift index 86e422c67b..cfd3009e53 100644 --- a/tests/swift/tests/Sources/SwiftFlatBuffers/main.swift +++ b/tests/swift/tests/Sources/SwiftFlatBuffers/main.swift @@ -1,5 +1,5 @@ /* - * Copyright 2021 Google Inc. All rights reserved. + * Copyright 2023 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. diff --git a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/FlatBuffersMonsterWriterTests.swift b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/FlatBuffersMonsterWriterTests.swift index 9f02d8d948..1fec4becfc 100644 --- a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/FlatBuffersMonsterWriterTests.swift +++ b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/FlatBuffersMonsterWriterTests.swift @@ -1,5 +1,5 @@ /* - * Copyright 2021 Google Inc. All rights reserved. + * Copyright 2023 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. @@ -47,7 +47,8 @@ class FlatBuffersMonsterWriterTests: XCTestCase { // swiftformat:disable all XCTAssertEqual(bytes.sizedByteArray, [48, 0, 0, 0, 77, 79, 78, 83, 0, 0, 0, 0, 36, 0, 72, 0, 40, 0, 0, 0, 38, 0, 32, 0, 0, 0, 28, 0, 0, 0, 27, 0, 20, 0, 16, 0, 12, 0, 4, 0, 0, 0, 0, 0, 0, 0, 11, 0, 36, 0, 0, 0, 164, 0, 0, 0, 0, 0, 0, 1, 60, 0, 0, 0, 68, 0, 0, 0, 76, 0, 0, 0, 0, 0, 0, 1, 88, 0, 0, 0, 120, 0, 0, 0, 0, 0, 80, 0, 0, 0, 128, 63, 0, 0, 0, 64, 0, 0, 64, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 64, 2, 0, 5, 0, 6, 0, 0, 0, 2, 0, 0, 0, 64, 0, 0, 0, 48, 0, 0, 0, 2, 0, 0, 0, 30, 0, 40, 0, 10, 0, 20, 0, 152, 255, 255, 255, 4, 0, 0, 0, 4, 0, 0, 0, 70, 114, 101, 100, 0, 0, 0, 0, 5, 0, 0, 0, 0, 1, 2, 3, 4, 0, 0, 0, 5, 0, 0, 0, 116, 101, 115, 116, 50, 0, 0, 0, 5, 0, 0, 0, 116, 101, 115, 116, 49, 0, 0, 0, 9, 0, 0, 0, 77, 121, 77, 111, 110, 115, 116, 101, 114, 0, 0, 0, 3, 0, 0, 0, 20, 0, 0, 0, 36, 0, 0, 0, 4, 0, 0, 0, 240, 255, 255, 255, 32, 0, 0, 0, 248, 255, 255, 255, 36, 0, 0, 0, 12, 0, 8, 0, 0, 0, 0, 0, 0, 0, 4, 0, 12, 0, 0, 0, 28, 0, 0, 0, 5, 0, 0, 0, 87, 105, 108, 109, 97, 0, 0, 0, 6, 0, 0, 0, 66, 97, 114, 110, 101, 121, 0, 0, 5, 0, 0, 0, 70, 114, 111, 100, 111, 0, 0, 0]) // swiftformat:enable all - let monster = MyGame_Example_Monster.getRootAsMonster(bb: bytes.buffer) + var buffer = bytes.buffer + let monster: MyGame_Example_Monster = getRoot(byteBuffer: &buffer) readMonster(monster: monster) mutateMonster(fb: bytes.buffer) readMonster(monster: monster) @@ -78,7 +79,8 @@ class FlatBuffersMonsterWriterTests: XCTestCase { Monster.add(name: name, &fbb) let root = Monster.endMonster(&fbb, start: mStart) fbb.finish(offset: root) - let newMonster = Monster.getRootAsMonster(bb: fbb.sizedBuffer) + var buffer = fbb.sizedBuffer + let newMonster: Monster = getRoot(byteBuffer: &buffer) XCTAssertNil(newMonster.pos) XCTAssertEqual(newMonster.name, "Frodo") } @@ -100,7 +102,8 @@ class FlatBuffersMonsterWriterTests: XCTestCase { let root = Monster.endMonster(&fbb, start: mStart) fbb.finish(offset: root) - let newMonster = Monster.getRootAsMonster(bb: fbb.sizedBuffer) + var buffer = fbb.sizedBuffer + let newMonster: Monster = getRoot(byteBuffer: &buffer) XCTAssertEqual(newMonster.pos!.x, 10) XCTAssertEqual(newMonster.name, "Barney") } @@ -110,11 +113,11 @@ class FlatBuffersMonsterWriterTests: XCTestCase { var array: [UInt8] = [48, 0, 0, 0, 77, 79, 78, 83, 0, 0, 0, 0, 36, 0, 72, 0, 40, 0, 0, 0, 38, 0, 32, 0, 0, 0, 28, 0, 0, 0, 27, 0, 20, 0, 16, 0, 12, 0, 4, 0, 0, 0, 0, 0, 0, 0, 11, 0, 36, 0, 0, 0, 164, 0, 0, 0, 0, 0, 0, 1, 60, 0, 0, 0, 68, 0, 0, 0, 76, 0, 0, 0, 0, 0, 0, 1, 88, 0, 0, 0, 120, 0, 0, 0, 0, 0, 80, 0, 0, 0, 128, 63, 0, 0, 0, 64, 0, 0, 64, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 64, 2, 0, 5, 0, 6, 0, 0, 0, 2, 0, 0, 0, 64, 0, 0, 0, 48, 0, 0, 0, 2, 0, 0, 0, 30, 0, 40, 0, 10, 0, 20, 0, 152, 255, 255, 255, 4, 0, 0, 0, 4, 0, 0, 0, 70, 114, 101, 100, 0, 0, 0, 0, 5, 0, 0, 0, 0, 1, 2, 3, 4, 0, 0, 0, 5, 0, 0, 0, 116, 101, 115, 116, 50, 0, 0, 0, 5, 0, 0, 0, 116, 101, 115, 116, 49, 0, 0, 0, 9, 0, 0, 0, 77, 121, 77, 111, 110, 115, 116, 101, 114, 0, 0, 0, 3, 0, 0, 0, 20, 0, 0, 0, 36, 0, 0, 0, 4, 0, 0, 0, 240, 255, 255, 255, 32, 0, 0, 0, 248, 255, 255, 255, 36, 0, 0, 0, 12, 0, 8, 0, 0, 0, 0, 0, 0, 0, 4, 0, 12, 0, 0, 0, 28, 0, 0, 0, 5, 0, 0, 0, 87, 105, 108, 109, 97, 0, 0, 0, 6, 0, 0, 0, 66, 97, 114, 110, 101, 121, 0, 0, 5, 0, 0, 0, 70, 114, 111, 100, 111, 0, 0, 0] // swiftformat:enable all let unpacked = array - .withUnsafeMutableBytes { (memory) -> MyGame_Example_MonsterT in - let bytes = ByteBuffer( + .withUnsafeMutableBytes { memory -> MyGame_Example_MonsterT in + var bytes = ByteBuffer( assumingMemoryBound: memory.baseAddress!, capacity: memory.count) - var monster = Monster.getRootAsMonster(bb: bytes) + var monster: Monster = getRoot(byteBuffer: &bytes) readFlatbufferMonster(monster: &monster) let unpacked = monster.unpack() return unpacked @@ -132,8 +135,8 @@ class FlatBuffersMonsterWriterTests: XCTestCase { nameOffset: name, testarrayofboolsVectorOffset: bools) fbb.finish(offset: root) - let monster = Monster.getRootAsMonster(bb: fbb.sizedBuffer) - + var buffer = fbb.sizedBuffer + let monster: Monster = getRoot(byteBuffer: &buffer) let values = monster.testarrayofbools XCTAssertEqual(boolArray, values) @@ -156,9 +159,9 @@ class FlatBuffersMonsterWriterTests: XCTestCase { readFlatbufferMonster(monster: &monster) let unpacked: MyGame_Example_MonsterT? = monster.unpack() readObjectApi(monster: unpacked!) - guard let buffer = unpacked?.serialize() + guard var buffer = unpacked?.serialize() else { fatalError("Couldnt generate bytebuffer") } - var newMonster = Monster.getRootAsMonster(bb: buffer) + var newMonster: Monster = getRoot(byteBuffer: &buffer) readFlatbufferMonster(monster: &newMonster) } @@ -224,7 +227,8 @@ class FlatBuffersMonsterWriterTests: XCTestCase { } func mutateMonster(fb: ByteBuffer) { - let monster = Monster.getRootAsMonster(bb: fb) + var fb = fb + let monster: Monster = getRoot(byteBuffer: &fb) XCTAssertFalse(monster.mutate(mana: 10)) XCTAssertEqual(monster.testarrayoftables(at: 0)?.name, "Barney") XCTAssertEqual(monster.testarrayoftables(at: 1)?.name, "Frodo") diff --git a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/FlatBuffersNanInfTests.swift b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/FlatBuffersNanInfTests.swift index e6ee5a5abe..30d16b199b 100644 --- a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/FlatBuffersNanInfTests.swift +++ b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/FlatBuffersNanInfTests.swift @@ -1,5 +1,5 @@ /* - * Copyright 2022 Google Inc. All rights reserved. + * Copyright 2023 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. @@ -19,50 +19,54 @@ import XCTest final class FlatBuffersNanInfTests: XCTestCase { - func createTestTable() -> FlatBufferBuilder { - var fbb = FlatBufferBuilder() - let msg = Swift_Tests_NanInfTable.createNanInfTable(&fbb, - valueNan: .nan, - valueInf: .infinity, - valueNinf: -.infinity, - value: 100.0 - ) - fbb.finish(offset: msg) - return fbb - } + func createTestTable() -> FlatBufferBuilder { + var fbb = FlatBufferBuilder() + let msg = Swift_Tests_NanInfTable.createNanInfTable( + &fbb, + valueNan: .nan, + valueInf: .infinity, + valueNinf: -.infinity, + value: 100.0) + fbb.finish(offset: msg) + return fbb + } - func testInfNanBinary() { - let fbb = createTestTable() - let data = fbb.sizedByteArray - - let table = Swift_Tests_NanInfTable.getRootAsNanInfTable(bb: ByteBuffer(bytes: data)) - XCTAssert(table.defaultNan.isNaN) - XCTAssertEqual(table.defaultInf, .infinity) - XCTAssertEqual(table.defaultNinf, -.infinity) - XCTAssert(table.valueNan.isNaN) - XCTAssertEqual(table.valueInf, .infinity) - XCTAssertEqual(table.valueNinf, -.infinity) - XCTAssertEqual(table.value, 100.0) - } - - func testInfNanJSON() { - let fbb = createTestTable() - var bb = fbb.sizedBuffer - do { - let reader: Swift_Tests_NanInfTable = try getCheckedRoot(byteBuffer: &bb) - let encoder = JSONEncoder() - encoder.keyEncodingStrategy = .convertToSnakeCase - encoder.nonConformingFloatEncodingStrategy = - .convertToString(positiveInfinity: "inf", negativeInfinity: "-inf", nan: "nan") - let data = try encoder.encode(reader) - XCTAssertEqual(data, jsonData.data(using: .utf8)) - } catch { - XCTFail(error.localizedDescription) - } - } - - var jsonData: String { - "{\"value_inf\":\"inf\",\"value\":100,\"value_nan\":\"nan\",\"value_ninf\":\"-inf\"}" + func testInfNanBinary() { + let fbb = createTestTable() + let data = fbb.sizedByteArray + + var buffer = ByteBuffer(bytes: data) + let table: Swift_Tests_NanInfTable = getRoot(byteBuffer: &buffer) + XCTAssert(table.defaultNan.isNaN) + XCTAssertEqual(table.defaultInf, .infinity) + XCTAssertEqual(table.defaultNinf, -.infinity) + XCTAssert(table.valueNan.isNaN) + XCTAssertEqual(table.valueInf, .infinity) + XCTAssertEqual(table.valueNinf, -.infinity) + XCTAssertEqual(table.value, 100.0) + } + + func testInfNanJSON() { + let fbb = createTestTable() + var bb = fbb.sizedBuffer + do { + let reader: Swift_Tests_NanInfTable = try getCheckedRoot(byteBuffer: &bb) + let encoder = JSONEncoder() + encoder.keyEncodingStrategy = .convertToSnakeCase + encoder.nonConformingFloatEncodingStrategy = + .convertToString( + positiveInfinity: "inf", + negativeInfinity: "-inf", + nan: "nan") + let data = try encoder.encode(reader) + XCTAssertEqual(data, jsonData.data(using: .utf8)) + } catch { + XCTFail(error.localizedDescription) } - + } + + var jsonData: String { + "{\"value_inf\":\"inf\",\"value\":100,\"value_nan\":\"nan\",\"value_ninf\":\"-inf\"}" + } + } diff --git a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/FlatBuffersStructsTests.swift b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/FlatBuffersStructsTests.swift index 203258978f..21b4d4b5e5 100644 --- a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/FlatBuffersStructsTests.swift +++ b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/FlatBuffersStructsTests.swift @@ -1,5 +1,5 @@ /* - * Copyright 2021 Google Inc. All rights reserved. + * Copyright 2023 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. @@ -26,8 +26,8 @@ final class FlatBuffersStructsTests: XCTestCase { let root = TestMutatingBool.endTestMutatingBool(&fbb, start: start) fbb.finish(offset: root) - let testMutatingBool = TestMutatingBool - .getRootAsTestMutatingBool(bb: fbb.sizedBuffer) + var buffer = fbb.sizedBuffer + let testMutatingBool: TestMutatingBool = getRoot(byteBuffer: &buffer) let property = testMutatingBool.mutableB XCTAssertEqual(property?.property, false) property?.mutate(property: false) diff --git a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/FlatBuffersTests.swift b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/FlatBuffersTests.swift index 379e733183..5f49168470 100644 --- a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/FlatBuffersTests.swift +++ b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/FlatBuffersTests.swift @@ -1,5 +1,5 @@ /* - * Copyright 2021 Google Inc. All rights reserved. + * Copyright 2023 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. @@ -108,8 +108,8 @@ final class FlatBuffersTests: XCTestCase { justEnum: .one, maybeEnum: nil) b.finish(offset: root) - let scalarTable = optional_scalars_ScalarStuff - .getRootAsScalarStuff(bb: b.sizedBuffer) + var buffer = b.sizedBuffer + let scalarTable: optional_scalars_ScalarStuff = getRoot(byteBuffer: &buffer) XCTAssertEqual(scalarTable.justI8, 80) XCTAssertNil(scalarTable.maybeI8) XCTAssertEqual(scalarTable.maybeBool, true) diff --git a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/FlatBuffersUnionTests.swift b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/FlatBuffersUnionTests.swift index eb8a10c5c9..ee6110257d 100644 --- a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/FlatBuffersUnionTests.swift +++ b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/FlatBuffersUnionTests.swift @@ -1,5 +1,5 @@ /* - * Copyright 2021 Google Inc. All rights reserved. + * Copyright 2023 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. @@ -122,7 +122,8 @@ final class FlatBuffersUnionTests: XCTestCase { charactersVectorOffset: characterVector) Movie.finish(&fb, end: end) - var movie = Movie.getRootAsMovie(bb: fb.buffer) + var buffer = fb.buffer + var movie: Movie = getRoot(byteBuffer: &buffer) XCTAssertEqual(movie.charactersTypeCount, Int32(characterType.count)) XCTAssertEqual(movie.charactersCount, Int32(characters.count)) @@ -151,7 +152,8 @@ final class FlatBuffersUnionTests: XCTestCase { let newMovie = Movie.pack(&fb, obj: &objc) fb.finish(offset: newMovie) - let packedMovie = Movie.getRootAsMovie(bb: fb.buffer) + var _buffer = fb.buffer + let packedMovie: Movie = getRoot(byteBuffer: &_buffer) XCTAssertEqual( packedMovie.characters(at: 0, type: BookReader_Mutable.self)?.booksRead, @@ -185,7 +187,8 @@ final class FlatBuffersUnionTests: XCTestCase { charactersVectorOffset: characterVector) Movie.finish(&fb, end: end) - var movie = Movie.getRootAsMovie(bb: fb.sizedBuffer) + var buffer = fb.sizedBuffer + var movie: Movie = getRoot(byteBuffer: &buffer) XCTAssertEqual(movie.mainCharacter(type: String.self), string) XCTAssertEqual( movie.characters(at: 0, type: BookReader_Mutable.self)?.booksRead, @@ -200,7 +203,8 @@ final class FlatBuffersUnionTests: XCTestCase { let newMovie = Movie.pack(&fb, obj: &objc) fb.finish(offset: newMovie) - let packedMovie = Movie.getRootAsMovie(bb: fb.buffer) + var _buffer = fb.buffer + let packedMovie: Movie = getRoot(byteBuffer: &_buffer) XCTAssertEqual(packedMovie.mainCharacter(type: String.self), string) XCTAssertEqual( packedMovie.characters(at: 0, type: BookReader_Mutable.self)?.booksRead, diff --git a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/FlatBuffersVectorsTests.swift b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/FlatBuffersVectorsTests.swift index 122facb356..61dbe50ab7 100644 --- a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/FlatBuffersVectorsTests.swift +++ b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/FlatBuffersVectorsTests.swift @@ -1,5 +1,5 @@ /* - * Copyright 2021 Google Inc. All rights reserved. + * Copyright 2023 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. @@ -118,7 +118,8 @@ final class FlatBuffersVectors: XCTestCase { let finish = Swift_Tests_Vectors.endVectors(&builder, start: start) builder.finish(offset: finish) - let msg = Swift_Tests_Vectors.getRootAsVectors(bb: ByteBuffer(bytes: builder.sizedByteArray)) + var byteBuffer = ByteBuffer(bytes: builder.sizedByteArray) + let msg: Swift_Tests_Vectors = getRoot(byteBuffer: &byteBuffer) XCTAssertEqual(msg.hasNone, false) XCTAssertEqual(msg.hasEmpty, true) XCTAssertEqual(msg.emptyCount, 0) diff --git a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/FlatbuffersDoubleTests.swift b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/FlatbuffersDoubleTests.swift index a6e1cb09bf..f85abf63d9 100644 --- a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/FlatbuffersDoubleTests.swift +++ b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/FlatbuffersDoubleTests.swift @@ -1,5 +1,5 @@ /* - * Copyright 2021 Google Inc. All rights reserved. + * Copyright 2023 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. diff --git a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/FlatbuffersMoreDefaults.swift b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/FlatbuffersMoreDefaults.swift index cd97f25a2c..39e13b115d 100644 --- a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/FlatbuffersMoreDefaults.swift +++ b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/FlatbuffersMoreDefaults.swift @@ -1,5 +1,5 @@ /* - * Copyright 2021 Google Inc. All rights reserved. + * Copyright 2023 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. @@ -24,7 +24,8 @@ class FlatBuffersMoreDefaults: XCTestCase { var fbb = FlatBufferBuilder() let root = MoreDefaults.createMoreDefaults(&fbb) fbb.finish(offset: root) - let defaults = MoreDefaults.getRootAsMoreDefaults(bb: fbb.sizedBuffer) + var byteBuffer = fbb.sizedBuffer + let defaults: MoreDefaults = getRoot(byteBuffer: &byteBuffer) XCTAssertEqual(defaults.emptyString, "") XCTAssertEqual(defaults.someString, "some") XCTAssertEqual(defaults.ints, []) @@ -46,8 +47,8 @@ class FlatBuffersMoreDefaults: XCTestCase { XCTAssertEqual(defaults.abcs, []) XCTAssertEqual(defaults.bools, []) - let buffer = defaults.serialize(builder: &fbb, type: MoreDefaults.self) - let fDefaults = MoreDefaults.getRootAsMoreDefaults(bb: buffer) + var buffer = defaults.serialize(builder: &fbb, type: MoreDefaults.self) + let fDefaults: MoreDefaults = getRoot(byteBuffer: &buffer) XCTAssertEqual(fDefaults.emptyString, "") XCTAssertEqual(fDefaults.someString, "some") XCTAssertEqual(fDefaults.ints, []) diff --git a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/FlatbuffersVerifierTests.swift b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/FlatbuffersVerifierTests.swift index cb26c27d42..d7f949b183 100644 --- a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/FlatbuffersVerifierTests.swift +++ b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/FlatbuffersVerifierTests.swift @@ -1,5 +1,5 @@ /* - * Copyright 2021 Google Inc. All rights reserved. + * Copyright 2023 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. @@ -205,7 +205,9 @@ final class FlatbuffersVerifierTests: XCTestCase { // swiftformat:disable all var byteBuffer = ByteBuffer(bytes: [20, 0, 0, 0, 77, 79, 86, 73, 12, 0, 12, 0, 0, 0, 0, 0, 8, 0, 4, 0, 12, 0, 0, 0, 8, 0, 0, 0, 20, 0, 0, 0, 3, 0, 0, 0, 24, 0, 0, 0, 32, 0, 0, 0, 12, 0, 0, 0, 3, 0, 0, 0, 3, 1, 4, 0, 2, 0, 0, 0, 7, 0, 0, 0, 0, 0, 6, 0, 8, 0, 4, 0, 6, 0, 0, 0, 8, 0, 0, 0]) // swiftformat:enable all - XCTAssertThrowsError(try getCheckedRoot(byteBuffer: &byteBuffer, fileId: "FLEX") as Movie) + XCTAssertThrowsError(try getCheckedRoot( + byteBuffer: &byteBuffer, + fileId: "FLEX") as Movie) } func testVerifyPrefixedBuffer() { diff --git a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/MutatingBool_generated.swift b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/MutatingBool_generated.swift index 446a8add2f..0b4f39e48c 100644 --- a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/MutatingBool_generated.swift +++ b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/MutatingBool_generated.swift @@ -78,8 +78,6 @@ public struct TestMutatingBool: FlatBufferObject, Verifiable, ObjectAPIPacker { public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table - public static func getRootAsTestMutatingBool(bb: ByteBuffer) -> TestMutatingBool { return TestMutatingBool(Table(bb: bb, position: Int32(bb.read(def: UOffset.self, position: bb.reader)) + Int32(bb.reader))) } - private init(_ t: Table) { _accessor = t } public init(_ bb: ByteBuffer, o: Int32) { _accessor = Table(bb: bb, position: o) } diff --git a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/XCTestManifests.swift b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/XCTestManifests.swift index e15ea83c91..e164fc3be6 100644 --- a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/XCTestManifests.swift +++ b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/XCTestManifests.swift @@ -1,5 +1,5 @@ /* - * Copyright 2021 Google Inc. All rights reserved. + * Copyright 2023 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. diff --git a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/monster_test_generated.swift b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/monster_test_generated.swift index bde189f46a..974c5d48b5 100644 --- a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/monster_test_generated.swift +++ b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/monster_test_generated.swift @@ -685,8 +685,6 @@ public struct MyGame_InParentNamespace: FlatBufferObject, Verifiable, ObjectAPIP public static var id: String { "MONS" } public static func finish(_ fbb: inout FlatBufferBuilder, end: Offset, prefix: Bool = false) { fbb.finish(offset: end, fileId: MyGame_InParentNamespace.id, addPrefix: prefix) } - public static func getRootAsInParentNamespace(bb: ByteBuffer) -> MyGame_InParentNamespace { return MyGame_InParentNamespace(Table(bb: bb, position: Int32(bb.read(def: UOffset.self, position: bb.reader)) + Int32(bb.reader))) } - private init(_ t: Table) { _accessor = t } public init(_ bb: ByteBuffer, o: Int32) { _accessor = Table(bb: bb, position: o) } @@ -739,8 +737,6 @@ public struct MyGame_Example2_Monster: FlatBufferObject, Verifiable, ObjectAPIPa public static var id: String { "MONS" } public static func finish(_ fbb: inout FlatBufferBuilder, end: Offset, prefix: Bool = false) { fbb.finish(offset: end, fileId: MyGame_Example2_Monster.id, addPrefix: prefix) } - public static func getRootAsMonster(bb: ByteBuffer) -> MyGame_Example2_Monster { return MyGame_Example2_Monster(Table(bb: bb, position: Int32(bb.read(def: UOffset.self, position: bb.reader)) + Int32(bb.reader))) } - private init(_ t: Table) { _accessor = t } public init(_ bb: ByteBuffer, o: Int32) { _accessor = Table(bb: bb, position: o) } @@ -793,8 +789,6 @@ internal struct MyGame_Example_TestSimpleTableWithEnum: FlatBufferObject, Verifi internal static var id: String { "MONS" } internal static func finish(_ fbb: inout FlatBufferBuilder, end: Offset, prefix: Bool = false) { fbb.finish(offset: end, fileId: MyGame_Example_TestSimpleTableWithEnum.id, addPrefix: prefix) } - internal static func getRootAsTestSimpleTableWithEnum(bb: ByteBuffer) -> MyGame_Example_TestSimpleTableWithEnum { return MyGame_Example_TestSimpleTableWithEnum(Table(bb: bb, position: Int32(bb.read(def: UOffset.self, position: bb.reader)) + Int32(bb.reader))) } - private init(_ t: Table) { _accessor = t } internal init(_ bb: ByteBuffer, o: Int32) { _accessor = Table(bb: bb, position: o) } @@ -876,8 +870,6 @@ public struct MyGame_Example_Stat: FlatBufferObject, Verifiable, ObjectAPIPacker public static var id: String { "MONS" } public static func finish(_ fbb: inout FlatBufferBuilder, end: Offset, prefix: Bool = false) { fbb.finish(offset: end, fileId: MyGame_Example_Stat.id, addPrefix: prefix) } - public static func getRootAsStat(bb: ByteBuffer) -> MyGame_Example_Stat { return MyGame_Example_Stat(Table(bb: bb, position: Int32(bb.read(def: UOffset.self, position: bb.reader)) + Int32(bb.reader))) } - private init(_ t: Table) { _accessor = t } public init(_ bb: ByteBuffer, o: Int32) { _accessor = Table(bb: bb, position: o) } @@ -1017,8 +1009,6 @@ public struct MyGame_Example_Referrable: FlatBufferObject, Verifiable, ObjectAPI public static var id: String { "MONS" } public static func finish(_ fbb: inout FlatBufferBuilder, end: Offset, prefix: Bool = false) { fbb.finish(offset: end, fileId: MyGame_Example_Referrable.id, addPrefix: prefix) } - public static func getRootAsReferrable(bb: ByteBuffer) -> MyGame_Example_Referrable { return MyGame_Example_Referrable(Table(bb: bb, position: Int32(bb.read(def: UOffset.self, position: bb.reader)) + Int32(bb.reader))) } - private init(_ t: Table) { _accessor = t } public init(_ bb: ByteBuffer, o: Int32) { _accessor = Table(bb: bb, position: o) } @@ -1125,8 +1115,6 @@ public struct MyGame_Example_Monster: FlatBufferObject, Verifiable, ObjectAPIPac public static var id: String { "MONS" } public static func finish(_ fbb: inout FlatBufferBuilder, end: Offset, prefix: Bool = false) { fbb.finish(offset: end, fileId: MyGame_Example_Monster.id, addPrefix: prefix) } - public static func getRootAsMonster(bb: ByteBuffer) -> MyGame_Example_Monster { return MyGame_Example_Monster(Table(bb: bb, position: Int32(bb.read(def: UOffset.self, position: bb.reader)) + Int32(bb.reader))) } - private init(_ t: Table) { _accessor = t } public init(_ bb: ByteBuffer, o: Int32) { _accessor = Table(bb: bb, position: o) } @@ -2423,8 +2411,6 @@ public struct MyGame_Example_TypeAliases: FlatBufferObject, Verifiable, ObjectAP public static var id: String { "MONS" } public static func finish(_ fbb: inout FlatBufferBuilder, end: Offset, prefix: Bool = false) { fbb.finish(offset: end, fileId: MyGame_Example_TypeAliases.id, addPrefix: prefix) } - public static func getRootAsTypeAliases(bb: ByteBuffer) -> MyGame_Example_TypeAliases { return MyGame_Example_TypeAliases(Table(bb: bb, position: Int32(bb.read(def: UOffset.self, position: bb.reader)) + Int32(bb.reader))) } - private init(_ t: Table) { _accessor = t } public init(_ bb: ByteBuffer, o: Int32) { _accessor = Table(bb: bb, position: o) } diff --git a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/more_defaults_generated.swift b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/more_defaults_generated.swift index c9edf77e4f..d18f40911e 100644 --- a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/more_defaults_generated.swift +++ b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/more_defaults_generated.swift @@ -33,8 +33,6 @@ public struct MoreDefaults: FlatBufferObject, Verifiable, ObjectAPIPacker { public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table - public static func getRootAsMoreDefaults(bb: ByteBuffer) -> MoreDefaults { return MoreDefaults(Table(bb: bb, position: Int32(bb.read(def: UOffset.self, position: bb.reader)) + Int32(bb.reader))) } - private init(_ t: Table) { _accessor = t } public init(_ bb: ByteBuffer, o: Int32) { _accessor = Table(bb: bb, position: o) } diff --git a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/nan_inf_test_generated.swift b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/nan_inf_test_generated.swift index ef2cae560b..1c2faac4d5 100644 --- a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/nan_inf_test_generated.swift +++ b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/nan_inf_test_generated.swift @@ -10,8 +10,6 @@ public struct Swift_Tests_NanInfTable: FlatBufferObject, Verifiable { public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table - public static func getRootAsNanInfTable(bb: ByteBuffer) -> Swift_Tests_NanInfTable { return Swift_Tests_NanInfTable(Table(bb: bb, position: Int32(bb.read(def: UOffset.self, position: bb.reader)) + Int32(bb.reader))) } - private init(_ t: Table) { _accessor = t } public init(_ bb: ByteBuffer, o: Int32) { _accessor = Table(bb: bb, position: o) } diff --git a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/optional_scalars_generated.swift b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/optional_scalars_generated.swift index 099fe66275..dfbfa9d4af 100644 --- a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/optional_scalars_generated.swift +++ b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/optional_scalars_generated.swift @@ -35,8 +35,6 @@ public struct optional_scalars_ScalarStuff: FlatBufferObject, Verifiable { public static var id: String { "NULL" } public static func finish(_ fbb: inout FlatBufferBuilder, end: Offset, prefix: Bool = false) { fbb.finish(offset: end, fileId: optional_scalars_ScalarStuff.id, addPrefix: prefix) } - public static func getRootAsScalarStuff(bb: ByteBuffer) -> optional_scalars_ScalarStuff { return optional_scalars_ScalarStuff(Table(bb: bb, position: Int32(bb.read(def: UOffset.self, position: bb.reader)) + Int32(bb.reader))) } - private init(_ t: Table) { _accessor = t } public init(_ bb: ByteBuffer, o: Int32) { _accessor = Table(bb: bb, position: o) } diff --git a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/union_vector_generated.swift b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/union_vector_generated.swift index 40db53faf2..b80cc12dc1 100644 --- a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/union_vector_generated.swift +++ b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/union_vector_generated.swift @@ -330,8 +330,6 @@ public struct Attacker: FlatBufferObject, Verifiable, ObjectAPIPacker { public static var id: String { "MOVI" } public static func finish(_ fbb: inout FlatBufferBuilder, end: Offset, prefix: Bool = false) { fbb.finish(offset: end, fileId: Attacker.id, addPrefix: prefix) } - public static func getRootAsAttacker(bb: ByteBuffer) -> Attacker { return Attacker(Table(bb: bb, position: Int32(bb.read(def: UOffset.self, position: bb.reader)) + Int32(bb.reader))) } - private init(_ t: Table) { _accessor = t } public init(_ bb: ByteBuffer, o: Int32) { _accessor = Table(bb: bb, position: o) } @@ -413,8 +411,6 @@ public struct HandFan: FlatBufferObject, Verifiable, ObjectAPIPacker { public static var id: String { "MOVI" } public static func finish(_ fbb: inout FlatBufferBuilder, end: Offset, prefix: Bool = false) { fbb.finish(offset: end, fileId: HandFan.id, addPrefix: prefix) } - public static func getRootAsHandFan(bb: ByteBuffer) -> HandFan { return HandFan(Table(bb: bb, position: Int32(bb.read(def: UOffset.self, position: bb.reader)) + Int32(bb.reader))) } - private init(_ t: Table) { _accessor = t } public init(_ bb: ByteBuffer, o: Int32) { _accessor = Table(bb: bb, position: o) } @@ -496,8 +492,6 @@ public struct Movie: FlatBufferObject, Verifiable, ObjectAPIPacker { public static var id: String { "MOVI" } public static func finish(_ fbb: inout FlatBufferBuilder, end: Offset, prefix: Bool = false) { fbb.finish(offset: end, fileId: Movie.id, addPrefix: prefix) } - public static func getRootAsMovie(bb: ByteBuffer) -> Movie { return Movie(Table(bb: bb, position: Int32(bb.read(def: UOffset.self, position: bb.reader)) + Int32(bb.reader))) } - private init(_ t: Table) { _accessor = t } public init(_ bb: ByteBuffer, o: Int32) { _accessor = Table(bb: bb, position: o) } diff --git a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/vector_has_test_generated.swift b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/vector_has_test_generated.swift index c4a0b43681..0e07c65a11 100644 --- a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/vector_has_test_generated.swift +++ b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/vector_has_test_generated.swift @@ -10,8 +10,6 @@ public struct Swift_Tests_Vectors: FlatBufferObject, Verifiable { public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table - public static func getRootAsVectors(bb: ByteBuffer) -> Swift_Tests_Vectors { return Swift_Tests_Vectors(Table(bb: bb, position: Int32(bb.read(def: UOffset.self, position: bb.reader)) + Int32(bb.reader))) } - private init(_ t: Table) { _accessor = t } public init(_ bb: ByteBuffer, o: Int32) { _accessor = Table(bb: bb, position: o) } diff --git a/tests/swift/tests/Tests/LinuxMain.swift b/tests/swift/tests/Tests/LinuxMain.swift index d909d07936..a959fc7698 100644 --- a/tests/swift/tests/Tests/LinuxMain.swift +++ b/tests/swift/tests/Tests/LinuxMain.swift @@ -1,5 +1,5 @@ /* - * Copyright 2021 Google Inc. All rights reserved. + * Copyright 2023 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. From 81724e5b2030a6f9f4d38893a4aeb4ad5e1f7fc8 Mon Sep 17 00:00:00 2001 From: Max Burke Date: Fri, 6 Jan 2023 16:42:26 -0800 Subject: [PATCH 079/571] Ensure that empty modules can build in TypeScript isolatedModules mode (#7726) --- src/idl_gen_ts.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/idl_gen_ts.cpp b/src/idl_gen_ts.cpp index ce3404bde7..ca95e4a382 100644 --- a/src/idl_gen_ts.cpp +++ b/src/idl_gen_ts.cpp @@ -277,6 +277,13 @@ class TsGenerator : public BaseGenerator { for (auto it = imports_all_.begin(); it != imports_all_.end(); it++) { code += it->second.export_statement + "\n"; } + + if (imports_all_.empty()) { + // if the file is empty, add an empty export so that tsc doesn't + // complain when running under `--isolatedModules` mode + code += "export {}"; + } + const std::string path = GeneratedFileName(path_, file_name_, parser_.opts); SaveFile(path.c_str(), code, false); From 920f3827a03e050cc686ed5387d541b1d336bd4f Mon Sep 17 00:00:00 2001 From: jalitriver <44458290+jalitriver@users.noreply.github.com> Date: Sat, 7 Jan 2023 12:33:11 -0600 Subject: [PATCH 080/571] [C++] Add Command-Line Flag to Suppress MIN and MAX Enums (#7705) Add the --no-minmax-values flag to prevent flatc from generating C++ enums with MIN and MAX enumerated values that otherwise would be set to the inclusive lower and upper bound respectively of the enum. This command-line flag is needed to avoid collisions when an enum that is being ported to FlatBuffers already has a MIN or MAX enumerated value. It is also needed to work around a long-standing problem with magic_enum that causes magic_enum to not see enumerated values that are not unique. For example, if FlatBuffers sets MIN = FOO and MAX = BAR, MIN and FOO share the same underlying value so they are not unique. The same is true of MAX and BAR. This prevents magic_enum from converting FOO and BAR to and from strings as well as causing magic_enum to return a count of enumerated values that is two fewer than it should be. Co-authored-by: Paul Serice --- docs/source/Compiler.md | 5 ++++- include/flatbuffers/idl.h | 2 ++ src/flatc.cpp | 5 +++++ src/idl_gen_cpp.cpp | 4 +++- 4 files changed, 14 insertions(+), 2 deletions(-) diff --git a/docs/source/Compiler.md b/docs/source/Compiler.md index 242506a5b0..7571a4252a 100644 --- a/docs/source/Compiler.md +++ b/docs/source/Compiler.md @@ -90,7 +90,10 @@ Additional options: - `--scoped-enums` : Use C++11 style scoped and strongly typed enums in generated C++. This also implies `--no-prefix`. - + +- `--no-emit-min-max-enum-values` : Disable generation of MIN and MAX + enumerated values for scoped enums and prefixed enums. + - `--gen-includes` : (deprecated), this is the default behavior. If the original behavior is required (no include statements) use `--no-includes.` diff --git a/include/flatbuffers/idl.h b/include/flatbuffers/idl.h index cd70cb6128..c4460b3db6 100644 --- a/include/flatbuffers/idl.h +++ b/include/flatbuffers/idl.h @@ -605,6 +605,7 @@ struct IDLOptions { bool output_enum_identifiers; bool prefixed_enums; bool scoped_enums; + bool emit_min_max_enum_values; bool swift_implementation_only; bool include_dependence_headers; bool mutable_buffer; @@ -718,6 +719,7 @@ struct IDLOptions { output_enum_identifiers(true), prefixed_enums(true), scoped_enums(false), + emit_min_max_enum_values(true), swift_implementation_only(false), include_dependence_headers(true), mutable_buffer(false), diff --git a/src/flatc.cpp b/src/flatc.cpp index 998d77b8fc..02119dd63a 100644 --- a/src/flatc.cpp +++ b/src/flatc.cpp @@ -88,6 +88,9 @@ const static FlatCOption options[] = { { "", "scoped-enums", "", "Use C++11 style scoped and strongly typed enums. Also implies " "--no-prefix." }, + { "", "no-emit-min-max-enum-values", "", + "Disable generation of MIN and MAX enumerated values for scoped enums " + "and prefixed enums." }, { "", "swift-implementation-only", "", "Adds a @_implementationOnly to swift imports" }, { "", "gen-includes", "", @@ -464,6 +467,8 @@ int FlatCompiler::Compile(int argc, const char **argv) { } else if (arg == "--scoped-enums") { opts.prefixed_enums = false; opts.scoped_enums = true; + } else if (arg == "--no-emit-min-max-enum-values") { + opts.emit_min_max_enum_values = false; } else if (arg == "--no-union-value-namespacing") { opts.union_value_namespacing = false; } else if (arg == "--gen-mutable") { diff --git a/src/idl_gen_cpp.cpp b/src/idl_gen_cpp.cpp index 4f6236fbc1..80f2d42b32 100644 --- a/src/idl_gen_cpp.cpp +++ b/src/idl_gen_cpp.cpp @@ -1223,6 +1223,8 @@ class CppGenerator : public BaseGenerator { FLATBUFFERS_ASSERT(minv && maxv); code_.SetValue("SEP", ",\n"); + + // MIN & MAX are useless for bit_flags if (enum_def.attributes.Lookup("bit_flags")) { code_.SetValue("KEY", GenEnumValDecl(enum_def, "NONE")); code_.SetValue("VALUE", "0"); @@ -1233,7 +1235,7 @@ class CppGenerator : public BaseGenerator { NumToStringCpp(enum_def.AllFlags(), enum_def.underlying_type.base_type)); code_ += "{{SEP}} {{KEY}} = {{VALUE}}\\"; - } else { // MIN & MAX are useless for bit_flags + } else if (opts_.emit_min_max_enum_values) { code_.SetValue("KEY", GenEnumValDecl(enum_def, "MIN")); code_.SetValue("VALUE", GenEnumValDecl(enum_def, Name(*minv))); code_ += "{{SEP}} {{KEY}} = {{VALUE}}\\"; From c95cf661afb0cf4bf0c887cf6dceb31c22de1312 Mon Sep 17 00:00:00 2001 From: Derek Bailey Date: Sat, 7 Jan 2023 12:01:00 -0800 Subject: [PATCH 081/571] Annotated Binaries emit field names instead of type names (#7763) --- src/binary_annotator.cpp | 28 ++++++----- src/binary_annotator.h | 1 + tests/annotated_binary/annotated_binary.afb | 32 ++++++------- .../tests/invalid_string_length.afb | 32 ++++++------- .../tests/invalid_string_length_cut_short.afb | 18 ++++---- .../invalid_struct_array_field_cut_short.afb | 10 ++-- .../tests/invalid_struct_field_cut_short.afb | 4 +- .../tests/invalid_table_field_offset.afb | 18 ++++---- .../tests/invalid_union_type_value.afb | 32 ++++++------- .../tests/invalid_vector_length_cut_short.afb | 20 ++++---- .../invalid_vector_scalars_cut_short.afb | 32 ++++++------- .../invalid_vector_strings_cut_short.afb | 32 ++++++------- .../invalid_vector_structs_cut_short.afb | 20 ++++---- .../tests/invalid_vector_tables_cut_short.afb | 32 ++++++------- .../tests/invalid_vector_union_type_value.afb | 32 ++++++------- .../tests/invalid_vector_unions_cut_short.afb | 32 ++++++------- .../tests/invalid_vtable_field_offset.afb | 32 ++++++------- .../tests/invalid_vtable_ref_table_size.afb | 32 ++++++------- .../invalid_vtable_ref_table_size_short.afb | 32 ++++++------- tests/monsterdata_test.afb | 46 +++++++++---------- 20 files changed, 262 insertions(+), 255 deletions(-) diff --git a/src/binary_annotator.cpp b/src/binary_annotator.cpp index 274c629bc3..817b478d3c 100644 --- a/src/binary_annotator.cpp +++ b/src/binary_annotator.cpp @@ -6,6 +6,7 @@ #include #include "flatbuffers/reflection.h" +#include "flatbuffers/util.h" #include "flatbuffers/verifier.h" namespace flatbuffers { @@ -679,7 +680,8 @@ void BinaryAnnotator::BuildTable(const uint64_t table_offset, if (next_object->is_struct()) { // Structs are stored inline. - BuildStruct(field_offset, regions, next_object); + BuildStruct(field_offset, regions, field->name()->c_str(), + next_object); } else { offset_field_comment.default_value = "(table)"; @@ -780,6 +782,7 @@ void BinaryAnnotator::BuildTable(const uint64_t table_offset, uint64_t BinaryAnnotator::BuildStruct(const uint64_t struct_offset, std::vector ®ions, + const std::string referring_field_name, const reflection::Object *const object) { if (!object->is_struct()) { return struct_offset; } uint64_t offset = struct_offset; @@ -794,9 +797,8 @@ uint64_t BinaryAnnotator::BuildStruct(const uint64_t struct_offset, BinaryRegionComment comment; comment.type = BinaryRegionCommentType::StructField; - comment.name = - std::string(object->name()->c_str()) + "." + field->name()->c_str(); - comment.default_value = "(" + + comment.name = referring_field_name + "." + field->name()->str(); + comment.default_value = "of '" + object->name()->str() + "' (" + std::string(reflection::EnumNameBaseType( field->type()->base_type())) + ")"; @@ -821,6 +823,7 @@ uint64_t BinaryAnnotator::BuildStruct(const uint64_t struct_offset, } else if (field->type()->base_type() == reflection::BaseType::Obj) { // Structs are stored inline, even when nested. offset = BuildStruct(offset, regions, + referring_field_name + "." + field->name()->str(), schema_->objects()->Get(field->type()->index())); } else if (field->type()->base_type() == reflection::BaseType::Array) { const bool is_scalar = IsScalar(field->type()->element()); @@ -833,11 +836,11 @@ uint64_t BinaryAnnotator::BuildStruct(const uint64_t struct_offset, if (is_scalar) { BinaryRegionComment array_comment; array_comment.type = BinaryRegionCommentType::ArrayField; - array_comment.name = std::string(object->name()->c_str()) + "." + - field->name()->c_str(); + array_comment.name = + referring_field_name + "." + field->name()->str(); array_comment.index = i; array_comment.default_value = - "(" + + "of '" + object->name()->str() + "' (" + std::string( reflection::EnumNameBaseType(field->type()->element())) + ")"; @@ -869,8 +872,10 @@ uint64_t BinaryAnnotator::BuildStruct(const uint64_t struct_offset, // TODO(dbaileychess): This works, but the comments on the fields lose // some context. Need to figure a way how to plumb the nested arrays // comments together that isn't too confusing. - offset = BuildStruct(offset, regions, - schema_->objects()->Get(field->type()->index())); + offset = + BuildStruct(offset, regions, + referring_field_name + "." + field->name()->str(), + schema_->objects()->Get(field->type()->index())); } } } @@ -1018,7 +1023,8 @@ void BinaryAnnotator::BuildVector(const uint64_t vector_offset, // Vector of structs for (size_t i = 0; i < vector_length.value(); ++i) { // Structs are inline to the vector. - const uint64_t next_offset = BuildStruct(offset, regions, object); + const uint64_t next_offset = + BuildStruct(offset, regions, "[" + NumToString(i) + "]", object); if (next_offset == offset) { break; } offset = next_offset; } @@ -1301,7 +1307,7 @@ std::string BinaryAnnotator::BuildUnion(const uint64_t union_offset, // Union of vectors point to a new Binary section std::vector regions; - BuildStruct(union_offset, regions, object); + BuildStruct(union_offset, regions, field->name()->c_str(), object); AddSection( union_offset, diff --git a/src/binary_annotator.h b/src/binary_annotator.h index 7cf820e0f3..bcf7dfcb12 100644 --- a/src/binary_annotator.h +++ b/src/binary_annotator.h @@ -273,6 +273,7 @@ class BinaryAnnotator { const reflection::Object *table); uint64_t BuildStruct(uint64_t offset, std::vector ®ions, + const std::string referring_field_name, const reflection::Object *structure); void BuildString(uint64_t offset, const reflection::Object *table, diff --git a/tests/annotated_binary/annotated_binary.afb b/tests/annotated_binary/annotated_binary.afb index 6bd84d70ce..9303a2822a 100644 --- a/tests/annotated_binary/annotated_binary.afb +++ b/tests/annotated_binary/annotated_binary.afb @@ -51,15 +51,15 @@ root_table (AnnotatedBinary.Foo): +0x004F | 01 | UType8 | 0x01 (1) | table field `anything_type` (UType) +0x0050 | D2 04 00 00 | uint32_t | 0x000004D2 (1234) | table field `counter` (Int) +0x0054 | 28 02 00 00 | UOffset32 | 0x00000228 (552) Loc: +0x027C | offset to field `bar` (table) - +0x0058 | 01 00 00 00 | uint32_t | 0x00000001 (1) | struct field `AnnotatedBinary.Building.floors` (Int) - +0x005C | 02 00 00 00 | uint32_t | 0x00000002 (2) | struct field `AnnotatedBinary.Building.doors` (Int) - +0x0060 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | struct field `AnnotatedBinary.Building.windows` (Int) - +0x0064 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | array field `AnnotatedBinary.Dimension.values`[0] (Int) - +0x0068 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | array field `AnnotatedBinary.Dimension.values`[1] (Int) - +0x006C | 14 00 00 00 | uint32_t | 0x00000014 (20) | array field `AnnotatedBinary.Dimension.values`[2] (Int) - +0x0070 | 01 | uint8_t | 0x01 (1) | struct field `AnnotatedBinary.Tolerance.width` (UByte) - +0x0071 | 02 | uint8_t | 0x02 (2) | struct field `AnnotatedBinary.Tolerance.width` (UByte) - +0x0072 | 03 | uint8_t | 0x03 (3) | struct field `AnnotatedBinary.Tolerance.width` (UByte) + +0x0058 | 01 00 00 00 | uint32_t | 0x00000001 (1) | struct field `home.floors` of 'AnnotatedBinary.Building' (Int) + +0x005C | 02 00 00 00 | uint32_t | 0x00000002 (2) | struct field `home.doors` of 'AnnotatedBinary.Building' (Int) + +0x0060 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | struct field `home.windows` of 'AnnotatedBinary.Building' (Int) + +0x0064 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | array field `home.dimensions.values`[0] of 'AnnotatedBinary.Dimension' (Int) + +0x0068 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | array field `home.dimensions.values`[1] of 'AnnotatedBinary.Dimension' (Int) + +0x006C | 14 00 00 00 | uint32_t | 0x00000014 (20) | array field `home.dimensions.values`[2] of 'AnnotatedBinary.Dimension' (Int) + +0x0070 | 01 | uint8_t | 0x01 (1) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte) + +0x0071 | 02 | uint8_t | 0x02 (2) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte) + +0x0072 | 03 | uint8_t | 0x03 (3) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte) +0x0073 | 00 | uint8_t[1] | . | padding +0x0074 | C8 01 00 00 | UOffset32 | 0x000001C8 (456) Loc: +0x023C | offset to field `name` (string) +0x0078 | 5C 01 00 00 | UOffset32 | 0x0000015C (348) Loc: +0x01D4 | offset to field `bars` (vector) @@ -97,7 +97,7 @@ table (AnnotatedBinary.Bar): +0x00D0 | 00 00 00 | uint8_t[3] | ... | padding union (AnnotatedBinary.Tolerance.measurement): - +0x00D3 | 05 | uint8_t | 0x05 (5) | struct field `AnnotatedBinary.Tolerance.width` (UByte) + +0x00D3 | 05 | uint8_t | 0x05 (5) | struct field `measurement.width` of 'AnnotatedBinary.Tolerance' (UByte) vector (AnnotatedBinary.Foo.foobars): +0x00D4 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) @@ -144,12 +144,12 @@ vector (AnnotatedBinary.Foo.foobars_type): vector (AnnotatedBinary.Foo.points_of_interest): +0x0134 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) - +0x0138 | 33 33 33 33 33 A3 45 40 | double | 0x4045A33333333333 (43.275) | struct field `AnnotatedBinary.Location.latitude` (Double) - +0x0140 | 7E 57 04 FF 5B 87 53 C0 | double | 0xC053875BFF04577E (-78.115) | struct field `AnnotatedBinary.Location.longitude` (Double) - +0x0148 | 8D F0 F6 20 04 B6 42 40 | double | 0x4042B60420F6F08D (37.422) | struct field `AnnotatedBinary.Location.latitude` (Double) - +0x0150 | 9F 77 63 41 61 85 5E C0 | double | 0xC05E85614163779F (-122.084) | struct field `AnnotatedBinary.Location.longitude` (Double) - +0x0158 | 8F 35 23 83 DC 35 4B C0 | double | 0xC04B35DC8323358F (-54.4208) | struct field `AnnotatedBinary.Location.latitude` (Double) - +0x0160 | F6 97 DD 93 87 C5 0A 40 | double | 0x400AC58793DD97F6 (3.34645) | struct field `AnnotatedBinary.Location.longitude` (Double) + +0x0138 | 33 33 33 33 33 A3 45 40 | double | 0x4045A33333333333 (43.275) | struct field `[0].latitude` of 'AnnotatedBinary.Location' (Double) + +0x0140 | 7E 57 04 FF 5B 87 53 C0 | double | 0xC053875BFF04577E (-78.115) | struct field `[0].longitude` of 'AnnotatedBinary.Location' (Double) + +0x0148 | 8D F0 F6 20 04 B6 42 40 | double | 0x4042B60420F6F08D (37.422) | struct field `[1].latitude` of 'AnnotatedBinary.Location' (Double) + +0x0150 | 9F 77 63 41 61 85 5E C0 | double | 0xC05E85614163779F (-122.084) | struct field `[1].longitude` of 'AnnotatedBinary.Location' (Double) + +0x0158 | 8F 35 23 83 DC 35 4B C0 | double | 0xC04B35DC8323358F (-54.4208) | struct field `[2].latitude` of 'AnnotatedBinary.Location' (Double) + +0x0160 | F6 97 DD 93 87 C5 0A 40 | double | 0x400AC58793DD97F6 (3.34645) | struct field `[2].longitude` of 'AnnotatedBinary.Location' (Double) padding: +0x0168 | 00 00 00 00 | uint8_t[4] | .... | padding diff --git a/tests/annotated_binary/tests/invalid_string_length.afb b/tests/annotated_binary/tests/invalid_string_length.afb index 332cbaf190..5ac9631404 100644 --- a/tests/annotated_binary/tests/invalid_string_length.afb +++ b/tests/annotated_binary/tests/invalid_string_length.afb @@ -51,15 +51,15 @@ root_table (AnnotatedBinary.Foo): +0x004F | 01 | UType8 | 0x01 (1) | table field `anything_type` (UType) +0x0050 | D2 04 00 00 | uint32_t | 0x000004D2 (1234) | table field `counter` (Int) +0x0054 | 28 02 00 00 | UOffset32 | 0x00000228 (552) Loc: +0x027C | offset to field `bar` (table) - +0x0058 | 01 00 00 00 | uint32_t | 0x00000001 (1) | struct field `AnnotatedBinary.Building.floors` (Int) - +0x005C | 02 00 00 00 | uint32_t | 0x00000002 (2) | struct field `AnnotatedBinary.Building.doors` (Int) - +0x0060 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | struct field `AnnotatedBinary.Building.windows` (Int) - +0x0064 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | array field `AnnotatedBinary.Dimension.values`[0] (Int) - +0x0068 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | array field `AnnotatedBinary.Dimension.values`[1] (Int) - +0x006C | 14 00 00 00 | uint32_t | 0x00000014 (20) | array field `AnnotatedBinary.Dimension.values`[2] (Int) - +0x0070 | 01 | uint8_t | 0x01 (1) | struct field `AnnotatedBinary.Tolerance.width` (UByte) - +0x0071 | 02 | uint8_t | 0x02 (2) | struct field `AnnotatedBinary.Tolerance.width` (UByte) - +0x0072 | 03 | uint8_t | 0x03 (3) | struct field `AnnotatedBinary.Tolerance.width` (UByte) + +0x0058 | 01 00 00 00 | uint32_t | 0x00000001 (1) | struct field `home.floors` of 'AnnotatedBinary.Building' (Int) + +0x005C | 02 00 00 00 | uint32_t | 0x00000002 (2) | struct field `home.doors` of 'AnnotatedBinary.Building' (Int) + +0x0060 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | struct field `home.windows` of 'AnnotatedBinary.Building' (Int) + +0x0064 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | array field `home.dimensions.values`[0] of 'AnnotatedBinary.Dimension' (Int) + +0x0068 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | array field `home.dimensions.values`[1] of 'AnnotatedBinary.Dimension' (Int) + +0x006C | 14 00 00 00 | uint32_t | 0x00000014 (20) | array field `home.dimensions.values`[2] of 'AnnotatedBinary.Dimension' (Int) + +0x0070 | 01 | uint8_t | 0x01 (1) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte) + +0x0071 | 02 | uint8_t | 0x02 (2) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte) + +0x0072 | 03 | uint8_t | 0x03 (3) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte) +0x0073 | 00 | uint8_t[1] | . | padding +0x0074 | C8 01 00 00 | UOffset32 | 0x000001C8 (456) Loc: +0x023C | offset to field `name` (string) +0x0078 | 5C 01 00 00 | UOffset32 | 0x0000015C (348) Loc: +0x01D4 | offset to field `bars` (vector) @@ -95,7 +95,7 @@ table (AnnotatedBinary.Bar): +0x00D0 | 00 00 00 | uint8_t[3] | ... | padding union (AnnotatedBinary.Tolerance.measurement): - +0x00D3 | 05 | uint8_t | 0x05 (5) | struct field `AnnotatedBinary.Tolerance.width` (UByte) + +0x00D3 | 05 | uint8_t | 0x05 (5) | struct field `measurement.width` of 'AnnotatedBinary.Tolerance' (UByte) vector (AnnotatedBinary.Foo.foobars): +0x00D4 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) @@ -142,12 +142,12 @@ vector (AnnotatedBinary.Foo.foobars_type): vector (AnnotatedBinary.Foo.points_of_interest): +0x0134 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) - +0x0138 | 33 33 33 33 33 A3 45 40 | double | 0x4045A33333333333 (43.275) | struct field `AnnotatedBinary.Location.latitude` (Double) - +0x0140 | 7E 57 04 FF 5B 87 53 C0 | double | 0xC053875BFF04577E (-78.115) | struct field `AnnotatedBinary.Location.longitude` (Double) - +0x0148 | 8D F0 F6 20 04 B6 42 40 | double | 0x4042B60420F6F08D (37.422) | struct field `AnnotatedBinary.Location.latitude` (Double) - +0x0150 | 9F 77 63 41 61 85 5E C0 | double | 0xC05E85614163779F (-122.084) | struct field `AnnotatedBinary.Location.longitude` (Double) - +0x0158 | 8F 35 23 83 DC 35 4B C0 | double | 0xC04B35DC8323358F (-54.4208) | struct field `AnnotatedBinary.Location.latitude` (Double) - +0x0160 | F6 97 DD 93 87 C5 0A 40 | double | 0x400AC58793DD97F6 (3.34645) | struct field `AnnotatedBinary.Location.longitude` (Double) + +0x0138 | 33 33 33 33 33 A3 45 40 | double | 0x4045A33333333333 (43.275) | struct field `[0].latitude` of 'AnnotatedBinary.Location' (Double) + +0x0140 | 7E 57 04 FF 5B 87 53 C0 | double | 0xC053875BFF04577E (-78.115) | struct field `[0].longitude` of 'AnnotatedBinary.Location' (Double) + +0x0148 | 8D F0 F6 20 04 B6 42 40 | double | 0x4042B60420F6F08D (37.422) | struct field `[1].latitude` of 'AnnotatedBinary.Location' (Double) + +0x0150 | 9F 77 63 41 61 85 5E C0 | double | 0xC05E85614163779F (-122.084) | struct field `[1].longitude` of 'AnnotatedBinary.Location' (Double) + +0x0158 | 8F 35 23 83 DC 35 4B C0 | double | 0xC04B35DC8323358F (-54.4208) | struct field `[2].latitude` of 'AnnotatedBinary.Location' (Double) + +0x0160 | F6 97 DD 93 87 C5 0A 40 | double | 0x400AC58793DD97F6 (3.34645) | struct field `[2].longitude` of 'AnnotatedBinary.Location' (Double) padding: +0x0168 | 00 00 00 00 | uint8_t[4] | .... | padding diff --git a/tests/annotated_binary/tests/invalid_string_length_cut_short.afb b/tests/annotated_binary/tests/invalid_string_length_cut_short.afb index 66f397a448..fec1134318 100644 --- a/tests/annotated_binary/tests/invalid_string_length_cut_short.afb +++ b/tests/annotated_binary/tests/invalid_string_length_cut_short.afb @@ -51,15 +51,15 @@ root_table (AnnotatedBinary.Foo): +0x4F | 01 | UType8 | 0x01 (1) | table field `anything_type` (UType) +0x50 | D2 04 00 00 | uint32_t | 0x000004D2 (1234) | table field `counter` (Int) +0x54 | 28 02 00 00 | UOffset32 | 0x00000228 (552) Loc: +0x27C | ERROR: offset to field `bar`. Invalid offset, points outside the binary. - +0x58 | 01 00 00 00 | uint32_t | 0x00000001 (1) | struct field `AnnotatedBinary.Building.floors` (Int) - +0x5C | 02 00 00 00 | uint32_t | 0x00000002 (2) | struct field `AnnotatedBinary.Building.doors` (Int) - +0x60 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | struct field `AnnotatedBinary.Building.windows` (Int) - +0x64 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | array field `AnnotatedBinary.Dimension.values`[0] (Int) - +0x68 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | array field `AnnotatedBinary.Dimension.values`[1] (Int) - +0x6C | 14 00 00 00 | uint32_t | 0x00000014 (20) | array field `AnnotatedBinary.Dimension.values`[2] (Int) - +0x70 | 01 | uint8_t | 0x01 (1) | struct field `AnnotatedBinary.Tolerance.width` (UByte) - +0x71 | 02 | uint8_t | 0x02 (2) | struct field `AnnotatedBinary.Tolerance.width` (UByte) - +0x72 | 03 | uint8_t | 0x03 (3) | struct field `AnnotatedBinary.Tolerance.width` (UByte) + +0x58 | 01 00 00 00 | uint32_t | 0x00000001 (1) | struct field `home.floors` of 'AnnotatedBinary.Building' (Int) + +0x5C | 02 00 00 00 | uint32_t | 0x00000002 (2) | struct field `home.doors` of 'AnnotatedBinary.Building' (Int) + +0x60 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | struct field `home.windows` of 'AnnotatedBinary.Building' (Int) + +0x64 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | array field `home.dimensions.values`[0] of 'AnnotatedBinary.Dimension' (Int) + +0x68 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | array field `home.dimensions.values`[1] of 'AnnotatedBinary.Dimension' (Int) + +0x6C | 14 00 00 00 | uint32_t | 0x00000014 (20) | array field `home.dimensions.values`[2] of 'AnnotatedBinary.Dimension' (Int) + +0x70 | 01 | uint8_t | 0x01 (1) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte) + +0x71 | 02 | uint8_t | 0x02 (2) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte) + +0x72 | 03 | uint8_t | 0x03 (3) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte) +0x73 | 00 | uint8_t[1] | . | padding +0x74 | C8 01 00 00 | UOffset32 | 0x000001C8 (456) Loc: +0x23C | ERROR: offset to field `name`. Invalid offset, points outside the binary. +0x78 | 5C 01 00 00 | UOffset32 | 0x0000015C (348) Loc: +0x1D4 | ERROR: offset to field `bars`. Invalid offset, points outside the binary. diff --git a/tests/annotated_binary/tests/invalid_struct_array_field_cut_short.afb b/tests/annotated_binary/tests/invalid_struct_array_field_cut_short.afb index 75be69a24c..b141ba1401 100644 --- a/tests/annotated_binary/tests/invalid_struct_array_field_cut_short.afb +++ b/tests/annotated_binary/tests/invalid_struct_array_field_cut_short.afb @@ -65,8 +65,8 @@ root_table (AnnotatedBinary.Foo): +0x4F | 01 | UType8 | 0x01 (1) | table field `anything_type` (UType) +0x50 | D2 04 00 00 | uint32_t | 0x000004D2 (1234) | table field `counter` (Int) +0x54 | 28 02 00 00 | UOffset32 | 0x00000228 (552) Loc: +0x27C | ERROR: offset to field `bar`. Invalid offset, points outside the binary. - +0x58 | 01 00 00 00 | uint32_t | 0x00000001 (1) | struct field `AnnotatedBinary.Building.floors` (Int) - +0x5C | 02 00 00 00 | uint32_t | 0x00000002 (2) | struct field `AnnotatedBinary.Building.doors` (Int) - +0x60 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | struct field `AnnotatedBinary.Building.windows` (Int) - +0x64 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | array field `AnnotatedBinary.Dimension.values`[0] (Int) - +0x68 | 0C 00 | ?uint8_t[2] | .. | ERROR: array field `AnnotatedBinary.Dimension.values`[1] (Int). Incomplete binary, expected to read 4 bytes. + +0x58 | 01 00 00 00 | uint32_t | 0x00000001 (1) | struct field `home.floors` of 'AnnotatedBinary.Building' (Int) + +0x5C | 02 00 00 00 | uint32_t | 0x00000002 (2) | struct field `home.doors` of 'AnnotatedBinary.Building' (Int) + +0x60 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | struct field `home.windows` of 'AnnotatedBinary.Building' (Int) + +0x64 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | array field `home.dimensions.values`[0] of 'AnnotatedBinary.Dimension' (Int) + +0x68 | 0C 00 | ?uint8_t[2] | .. | ERROR: array field `home.dimensions.values`[1] of 'AnnotatedBinary.Dimension' (Int). Incomplete binary, expected to read 4 bytes. diff --git a/tests/annotated_binary/tests/invalid_struct_field_cut_short.afb b/tests/annotated_binary/tests/invalid_struct_field_cut_short.afb index 59f646c29d..d274035b46 100644 --- a/tests/annotated_binary/tests/invalid_struct_field_cut_short.afb +++ b/tests/annotated_binary/tests/invalid_struct_field_cut_short.afb @@ -65,5 +65,5 @@ root_table (AnnotatedBinary.Foo): +0x4F | 01 | UType8 | 0x01 (1) | table field `anything_type` (UType) +0x50 | D2 04 00 00 | uint32_t | 0x000004D2 (1234) | table field `counter` (Int) +0x54 | 28 02 00 00 | UOffset32 | 0x00000228 (552) Loc: +0x27C | ERROR: offset to field `bar`. Invalid offset, points outside the binary. - +0x58 | 01 00 00 00 | uint32_t | 0x00000001 (1) | struct field `AnnotatedBinary.Building.floors` (Int) - +0x5C | 02 00 | ?uint8_t[2] | .. | ERROR: struct field `AnnotatedBinary.Building.doors` (Int). Incomplete binary, expected to read 4 bytes. + +0x58 | 01 00 00 00 | uint32_t | 0x00000001 (1) | struct field `home.floors` of 'AnnotatedBinary.Building' (Int) + +0x5C | 02 00 | ?uint8_t[2] | .. | ERROR: struct field `home.doors` of 'AnnotatedBinary.Building' (Int). Incomplete binary, expected to read 4 bytes. diff --git a/tests/annotated_binary/tests/invalid_table_field_offset.afb b/tests/annotated_binary/tests/invalid_table_field_offset.afb index 4ccd3a7f34..b1db363718 100644 --- a/tests/annotated_binary/tests/invalid_table_field_offset.afb +++ b/tests/annotated_binary/tests/invalid_table_field_offset.afb @@ -56,15 +56,15 @@ root_table (AnnotatedBinary.Foo): +0x4F | 01 | UType8 | 0x01 (1) | table field `anything_type` (UType) +0x50 | D2 04 00 00 | uint32_t | 0x000004D2 (1234) | table field `counter` (Int) +0x54 | 28 02 00 00 | UOffset32 | 0x00000228 (552) Loc: +0x27C | ERROR: offset to field `bar`. Invalid offset, points outside the binary. - +0x58 | 01 00 00 00 | uint32_t | 0x00000001 (1) | struct field `AnnotatedBinary.Building.floors` (Int) - +0x5C | 02 00 00 00 | uint32_t | 0x00000002 (2) | struct field `AnnotatedBinary.Building.doors` (Int) - +0x60 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | struct field `AnnotatedBinary.Building.windows` (Int) - +0x64 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | array field `AnnotatedBinary.Dimension.values`[0] (Int) - +0x68 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | array field `AnnotatedBinary.Dimension.values`[1] (Int) - +0x6C | 14 00 00 00 | uint32_t | 0x00000014 (20) | array field `AnnotatedBinary.Dimension.values`[2] (Int) - +0x70 | 01 | uint8_t | 0x01 (1) | struct field `AnnotatedBinary.Tolerance.width` (UByte) - +0x71 | 02 | uint8_t | 0x02 (2) | struct field `AnnotatedBinary.Tolerance.width` (UByte) - +0x72 | 03 | uint8_t | 0x03 (3) | struct field `AnnotatedBinary.Tolerance.width` (UByte) + +0x58 | 01 00 00 00 | uint32_t | 0x00000001 (1) | struct field `home.floors` of 'AnnotatedBinary.Building' (Int) + +0x5C | 02 00 00 00 | uint32_t | 0x00000002 (2) | struct field `home.doors` of 'AnnotatedBinary.Building' (Int) + +0x60 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | struct field `home.windows` of 'AnnotatedBinary.Building' (Int) + +0x64 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | array field `home.dimensions.values`[0] of 'AnnotatedBinary.Dimension' (Int) + +0x68 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | array field `home.dimensions.values`[1] of 'AnnotatedBinary.Dimension' (Int) + +0x6C | 14 00 00 00 | uint32_t | 0x00000014 (20) | array field `home.dimensions.values`[2] of 'AnnotatedBinary.Dimension' (Int) + +0x70 | 01 | uint8_t | 0x01 (1) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte) + +0x71 | 02 | uint8_t | 0x02 (2) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte) + +0x72 | 03 | uint8_t | 0x03 (3) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte) +0x73 | 00 | uint8_t[1] | . | padding +0x74 | C8 01 00 00 | UOffset32 | 0x000001C8 (456) Loc: +0x23C | ERROR: offset to field `name`. Invalid offset, points outside the binary. +0x78 | 5C 01 00 00 | UOffset32 | 0x0000015C (348) Loc: +0x1D4 | ERROR: offset to field `bars`. Invalid offset, points outside the binary. diff --git a/tests/annotated_binary/tests/invalid_union_type_value.afb b/tests/annotated_binary/tests/invalid_union_type_value.afb index 8e6385290b..ce5b3659bf 100644 --- a/tests/annotated_binary/tests/invalid_union_type_value.afb +++ b/tests/annotated_binary/tests/invalid_union_type_value.afb @@ -51,15 +51,15 @@ root_table (AnnotatedBinary.Foo): +0x004F | 01 | UType8 | 0x01 (1) | table field `anything_type` (UType) +0x0050 | D2 04 00 00 | uint32_t | 0x000004D2 (1234) | table field `counter` (Int) +0x0054 | 28 02 00 00 | UOffset32 | 0x00000228 (552) Loc: +0x027C | offset to field `bar` (table) - +0x0058 | 01 00 00 00 | uint32_t | 0x00000001 (1) | struct field `AnnotatedBinary.Building.floors` (Int) - +0x005C | 02 00 00 00 | uint32_t | 0x00000002 (2) | struct field `AnnotatedBinary.Building.doors` (Int) - +0x0060 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | struct field `AnnotatedBinary.Building.windows` (Int) - +0x0064 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | array field `AnnotatedBinary.Dimension.values`[0] (Int) - +0x0068 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | array field `AnnotatedBinary.Dimension.values`[1] (Int) - +0x006C | 14 00 00 00 | uint32_t | 0x00000014 (20) | array field `AnnotatedBinary.Dimension.values`[2] (Int) - +0x0070 | 01 | uint8_t | 0x01 (1) | struct field `AnnotatedBinary.Tolerance.width` (UByte) - +0x0071 | 02 | uint8_t | 0x02 (2) | struct field `AnnotatedBinary.Tolerance.width` (UByte) - +0x0072 | 03 | uint8_t | 0x03 (3) | struct field `AnnotatedBinary.Tolerance.width` (UByte) + +0x0058 | 01 00 00 00 | uint32_t | 0x00000001 (1) | struct field `home.floors` of 'AnnotatedBinary.Building' (Int) + +0x005C | 02 00 00 00 | uint32_t | 0x00000002 (2) | struct field `home.doors` of 'AnnotatedBinary.Building' (Int) + +0x0060 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | struct field `home.windows` of 'AnnotatedBinary.Building' (Int) + +0x0064 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | array field `home.dimensions.values`[0] of 'AnnotatedBinary.Dimension' (Int) + +0x0068 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | array field `home.dimensions.values`[1] of 'AnnotatedBinary.Dimension' (Int) + +0x006C | 14 00 00 00 | uint32_t | 0x00000014 (20) | array field `home.dimensions.values`[2] of 'AnnotatedBinary.Dimension' (Int) + +0x0070 | 01 | uint8_t | 0x01 (1) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte) + +0x0071 | 02 | uint8_t | 0x02 (2) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte) + +0x0072 | 03 | uint8_t | 0x03 (3) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte) +0x0073 | 00 | uint8_t[1] | . | padding +0x0074 | C8 01 00 00 | UOffset32 | 0x000001C8 (456) Loc: +0x023C | offset to field `name` (string) +0x0078 | 5C 01 00 00 | UOffset32 | 0x0000015C (348) Loc: +0x01D4 | offset to field `bars` (vector) @@ -97,7 +97,7 @@ table (AnnotatedBinary.Bar): +0x00D0 | 00 00 00 | uint8_t[3] | ... | padding union (AnnotatedBinary.Tolerance.measurement): - +0x00D3 | 05 | uint8_t | 0x05 (5) | struct field `AnnotatedBinary.Tolerance.width` (UByte) + +0x00D3 | 05 | uint8_t | 0x05 (5) | struct field `measurement.width` of 'AnnotatedBinary.Tolerance' (UByte) vector (AnnotatedBinary.Foo.foobars): +0x00D4 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) @@ -144,12 +144,12 @@ vector (AnnotatedBinary.Foo.foobars_type): vector (AnnotatedBinary.Foo.points_of_interest): +0x0134 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) - +0x0138 | 33 33 33 33 33 A3 45 40 | double | 0x4045A33333333333 (43.275) | struct field `AnnotatedBinary.Location.latitude` (Double) - +0x0140 | 7E 57 04 FF 5B 87 53 C0 | double | 0xC053875BFF04577E (-78.115) | struct field `AnnotatedBinary.Location.longitude` (Double) - +0x0148 | 8D F0 F6 20 04 B6 42 40 | double | 0x4042B60420F6F08D (37.422) | struct field `AnnotatedBinary.Location.latitude` (Double) - +0x0150 | 9F 77 63 41 61 85 5E C0 | double | 0xC05E85614163779F (-122.084) | struct field `AnnotatedBinary.Location.longitude` (Double) - +0x0158 | 8F 35 23 83 DC 35 4B C0 | double | 0xC04B35DC8323358F (-54.4208) | struct field `AnnotatedBinary.Location.latitude` (Double) - +0x0160 | F6 97 DD 93 87 C5 0A 40 | double | 0x400AC58793DD97F6 (3.34645) | struct field `AnnotatedBinary.Location.longitude` (Double) + +0x0138 | 33 33 33 33 33 A3 45 40 | double | 0x4045A33333333333 (43.275) | struct field `[0].latitude` of 'AnnotatedBinary.Location' (Double) + +0x0140 | 7E 57 04 FF 5B 87 53 C0 | double | 0xC053875BFF04577E (-78.115) | struct field `[0].longitude` of 'AnnotatedBinary.Location' (Double) + +0x0148 | 8D F0 F6 20 04 B6 42 40 | double | 0x4042B60420F6F08D (37.422) | struct field `[1].latitude` of 'AnnotatedBinary.Location' (Double) + +0x0150 | 9F 77 63 41 61 85 5E C0 | double | 0xC05E85614163779F (-122.084) | struct field `[1].longitude` of 'AnnotatedBinary.Location' (Double) + +0x0158 | 8F 35 23 83 DC 35 4B C0 | double | 0xC04B35DC8323358F (-54.4208) | struct field `[2].latitude` of 'AnnotatedBinary.Location' (Double) + +0x0160 | F6 97 DD 93 87 C5 0A 40 | double | 0x400AC58793DD97F6 (3.34645) | struct field `[2].longitude` of 'AnnotatedBinary.Location' (Double) padding: +0x0168 | 00 00 00 00 | uint8_t[4] | .... | padding diff --git a/tests/annotated_binary/tests/invalid_vector_length_cut_short.afb b/tests/annotated_binary/tests/invalid_vector_length_cut_short.afb index 7d11d2b721..7b31ffdb88 100644 --- a/tests/annotated_binary/tests/invalid_vector_length_cut_short.afb +++ b/tests/annotated_binary/tests/invalid_vector_length_cut_short.afb @@ -51,15 +51,15 @@ root_table (AnnotatedBinary.Foo): +0x004F | 01 | UType8 | 0x01 (1) | table field `anything_type` (UType) +0x0050 | D2 04 00 00 | uint32_t | 0x000004D2 (1234) | table field `counter` (Int) +0x0054 | 28 02 00 00 | UOffset32 | 0x00000228 (552) Loc: +0x027C | ERROR: offset to field `bar`. Invalid offset, points outside the binary. - +0x0058 | 01 00 00 00 | uint32_t | 0x00000001 (1) | struct field `AnnotatedBinary.Building.floors` (Int) - +0x005C | 02 00 00 00 | uint32_t | 0x00000002 (2) | struct field `AnnotatedBinary.Building.doors` (Int) - +0x0060 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | struct field `AnnotatedBinary.Building.windows` (Int) - +0x0064 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | array field `AnnotatedBinary.Dimension.values`[0] (Int) - +0x0068 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | array field `AnnotatedBinary.Dimension.values`[1] (Int) - +0x006C | 14 00 00 00 | uint32_t | 0x00000014 (20) | array field `AnnotatedBinary.Dimension.values`[2] (Int) - +0x0070 | 01 | uint8_t | 0x01 (1) | struct field `AnnotatedBinary.Tolerance.width` (UByte) - +0x0071 | 02 | uint8_t | 0x02 (2) | struct field `AnnotatedBinary.Tolerance.width` (UByte) - +0x0072 | 03 | uint8_t | 0x03 (3) | struct field `AnnotatedBinary.Tolerance.width` (UByte) + +0x0058 | 01 00 00 00 | uint32_t | 0x00000001 (1) | struct field `home.floors` of 'AnnotatedBinary.Building' (Int) + +0x005C | 02 00 00 00 | uint32_t | 0x00000002 (2) | struct field `home.doors` of 'AnnotatedBinary.Building' (Int) + +0x0060 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | struct field `home.windows` of 'AnnotatedBinary.Building' (Int) + +0x0064 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | array field `home.dimensions.values`[0] of 'AnnotatedBinary.Dimension' (Int) + +0x0068 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | array field `home.dimensions.values`[1] of 'AnnotatedBinary.Dimension' (Int) + +0x006C | 14 00 00 00 | uint32_t | 0x00000014 (20) | array field `home.dimensions.values`[2] of 'AnnotatedBinary.Dimension' (Int) + +0x0070 | 01 | uint8_t | 0x01 (1) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte) + +0x0071 | 02 | uint8_t | 0x02 (2) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte) + +0x0072 | 03 | uint8_t | 0x03 (3) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte) +0x0073 | 00 | uint8_t[1] | . | padding +0x0074 | C8 01 00 00 | UOffset32 | 0x000001C8 (456) Loc: +0x023C | ERROR: offset to field `name`. Invalid offset, points outside the binary. +0x0078 | 5C 01 00 00 | UOffset32 | 0x0000015C (348) Loc: +0x01D4 | ERROR: offset to field `bars`. Invalid offset, points outside the binary. @@ -97,7 +97,7 @@ table (AnnotatedBinary.Bar): +0x00D0 | 00 00 00 | uint8_t[3] | ... | padding union (AnnotatedBinary.Tolerance.measurement): - +0x00D3 | 05 | uint8_t | 0x05 (5) | struct field `AnnotatedBinary.Tolerance.width` (UByte) + +0x00D3 | 05 | uint8_t | 0x05 (5) | struct field `measurement.width` of 'AnnotatedBinary.Tolerance' (UByte) vector (AnnotatedBinary.Foo.foobars): +0x00D4 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) diff --git a/tests/annotated_binary/tests/invalid_vector_scalars_cut_short.afb b/tests/annotated_binary/tests/invalid_vector_scalars_cut_short.afb index c61987a8d8..ccb4aaa50d 100644 --- a/tests/annotated_binary/tests/invalid_vector_scalars_cut_short.afb +++ b/tests/annotated_binary/tests/invalid_vector_scalars_cut_short.afb @@ -51,15 +51,15 @@ root_table (AnnotatedBinary.Foo): +0x004F | 01 | UType8 | 0x01 (1) | table field `anything_type` (UType) +0x0050 | D2 04 00 00 | uint32_t | 0x000004D2 (1234) | table field `counter` (Int) +0x0054 | 28 02 00 00 | UOffset32 | 0x00000228 (552) Loc: +0x027C | ERROR: offset to field `bar`. Invalid offset, points outside the binary. - +0x0058 | 01 00 00 00 | uint32_t | 0x00000001 (1) | struct field `AnnotatedBinary.Building.floors` (Int) - +0x005C | 02 00 00 00 | uint32_t | 0x00000002 (2) | struct field `AnnotatedBinary.Building.doors` (Int) - +0x0060 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | struct field `AnnotatedBinary.Building.windows` (Int) - +0x0064 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | array field `AnnotatedBinary.Dimension.values`[0] (Int) - +0x0068 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | array field `AnnotatedBinary.Dimension.values`[1] (Int) - +0x006C | 14 00 00 00 | uint32_t | 0x00000014 (20) | array field `AnnotatedBinary.Dimension.values`[2] (Int) - +0x0070 | 01 | uint8_t | 0x01 (1) | struct field `AnnotatedBinary.Tolerance.width` (UByte) - +0x0071 | 02 | uint8_t | 0x02 (2) | struct field `AnnotatedBinary.Tolerance.width` (UByte) - +0x0072 | 03 | uint8_t | 0x03 (3) | struct field `AnnotatedBinary.Tolerance.width` (UByte) + +0x0058 | 01 00 00 00 | uint32_t | 0x00000001 (1) | struct field `home.floors` of 'AnnotatedBinary.Building' (Int) + +0x005C | 02 00 00 00 | uint32_t | 0x00000002 (2) | struct field `home.doors` of 'AnnotatedBinary.Building' (Int) + +0x0060 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | struct field `home.windows` of 'AnnotatedBinary.Building' (Int) + +0x0064 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | array field `home.dimensions.values`[0] of 'AnnotatedBinary.Dimension' (Int) + +0x0068 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | array field `home.dimensions.values`[1] of 'AnnotatedBinary.Dimension' (Int) + +0x006C | 14 00 00 00 | uint32_t | 0x00000014 (20) | array field `home.dimensions.values`[2] of 'AnnotatedBinary.Dimension' (Int) + +0x0070 | 01 | uint8_t | 0x01 (1) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte) + +0x0071 | 02 | uint8_t | 0x02 (2) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte) + +0x0072 | 03 | uint8_t | 0x03 (3) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte) +0x0073 | 00 | uint8_t[1] | . | padding +0x0074 | C8 01 00 00 | UOffset32 | 0x000001C8 (456) Loc: +0x023C | ERROR: offset to field `name`. Invalid offset, points outside the binary. +0x0078 | 5C 01 00 00 | UOffset32 | 0x0000015C (348) Loc: +0x01D4 | ERROR: offset to field `bars`. Invalid offset, points outside the binary. @@ -97,7 +97,7 @@ table (AnnotatedBinary.Bar): +0x00D0 | 00 00 00 | uint8_t[3] | ... | padding union (AnnotatedBinary.Tolerance.measurement): - +0x00D3 | 05 | uint8_t | 0x05 (5) | struct field `AnnotatedBinary.Tolerance.width` (UByte) + +0x00D3 | 05 | uint8_t | 0x05 (5) | struct field `measurement.width` of 'AnnotatedBinary.Tolerance' (UByte) vector (AnnotatedBinary.Foo.foobars): +0x00D4 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) @@ -138,12 +138,12 @@ vector (AnnotatedBinary.Foo.foobars_type): vector (AnnotatedBinary.Foo.points_of_interest): +0x0134 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) - +0x0138 | 33 33 33 33 33 A3 45 40 | double | 0x4045A33333333333 (43.275) | struct field `AnnotatedBinary.Location.latitude` (Double) - +0x0140 | 7E 57 04 FF 5B 87 53 C0 | double | 0xC053875BFF04577E (-78.115) | struct field `AnnotatedBinary.Location.longitude` (Double) - +0x0148 | 8D F0 F6 20 04 B6 42 40 | double | 0x4042B60420F6F08D (37.422) | struct field `AnnotatedBinary.Location.latitude` (Double) - +0x0150 | 9F 77 63 41 61 85 5E C0 | double | 0xC05E85614163779F (-122.084) | struct field `AnnotatedBinary.Location.longitude` (Double) - +0x0158 | 8F 35 23 83 DC 35 4B C0 | double | 0xC04B35DC8323358F (-54.4208) | struct field `AnnotatedBinary.Location.latitude` (Double) - +0x0160 | F6 97 DD 93 87 C5 0A 40 | double | 0x400AC58793DD97F6 (3.34645) | struct field `AnnotatedBinary.Location.longitude` (Double) + +0x0138 | 33 33 33 33 33 A3 45 40 | double | 0x4045A33333333333 (43.275) | struct field `[0].latitude` of 'AnnotatedBinary.Location' (Double) + +0x0140 | 7E 57 04 FF 5B 87 53 C0 | double | 0xC053875BFF04577E (-78.115) | struct field `[0].longitude` of 'AnnotatedBinary.Location' (Double) + +0x0148 | 8D F0 F6 20 04 B6 42 40 | double | 0x4042B60420F6F08D (37.422) | struct field `[1].latitude` of 'AnnotatedBinary.Location' (Double) + +0x0150 | 9F 77 63 41 61 85 5E C0 | double | 0xC05E85614163779F (-122.084) | struct field `[1].longitude` of 'AnnotatedBinary.Location' (Double) + +0x0158 | 8F 35 23 83 DC 35 4B C0 | double | 0xC04B35DC8323358F (-54.4208) | struct field `[2].latitude` of 'AnnotatedBinary.Location' (Double) + +0x0160 | F6 97 DD 93 87 C5 0A 40 | double | 0x400AC58793DD97F6 (3.34645) | struct field `[2].longitude` of 'AnnotatedBinary.Location' (Double) padding: +0x0168 | 00 00 00 00 | uint8_t[4] | .... | padding diff --git a/tests/annotated_binary/tests/invalid_vector_strings_cut_short.afb b/tests/annotated_binary/tests/invalid_vector_strings_cut_short.afb index 8f17f4ea58..d7cd8d8dd8 100644 --- a/tests/annotated_binary/tests/invalid_vector_strings_cut_short.afb +++ b/tests/annotated_binary/tests/invalid_vector_strings_cut_short.afb @@ -51,15 +51,15 @@ root_table (AnnotatedBinary.Foo): +0x004F | 01 | UType8 | 0x01 (1) | table field `anything_type` (UType) +0x0050 | D2 04 00 00 | uint32_t | 0x000004D2 (1234) | table field `counter` (Int) +0x0054 | 28 02 00 00 | UOffset32 | 0x00000228 (552) Loc: +0x027C | ERROR: offset to field `bar`. Invalid offset, points outside the binary. - +0x0058 | 01 00 00 00 | uint32_t | 0x00000001 (1) | struct field `AnnotatedBinary.Building.floors` (Int) - +0x005C | 02 00 00 00 | uint32_t | 0x00000002 (2) | struct field `AnnotatedBinary.Building.doors` (Int) - +0x0060 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | struct field `AnnotatedBinary.Building.windows` (Int) - +0x0064 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | array field `AnnotatedBinary.Dimension.values`[0] (Int) - +0x0068 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | array field `AnnotatedBinary.Dimension.values`[1] (Int) - +0x006C | 14 00 00 00 | uint32_t | 0x00000014 (20) | array field `AnnotatedBinary.Dimension.values`[2] (Int) - +0x0070 | 01 | uint8_t | 0x01 (1) | struct field `AnnotatedBinary.Tolerance.width` (UByte) - +0x0071 | 02 | uint8_t | 0x02 (2) | struct field `AnnotatedBinary.Tolerance.width` (UByte) - +0x0072 | 03 | uint8_t | 0x03 (3) | struct field `AnnotatedBinary.Tolerance.width` (UByte) + +0x0058 | 01 00 00 00 | uint32_t | 0x00000001 (1) | struct field `home.floors` of 'AnnotatedBinary.Building' (Int) + +0x005C | 02 00 00 00 | uint32_t | 0x00000002 (2) | struct field `home.doors` of 'AnnotatedBinary.Building' (Int) + +0x0060 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | struct field `home.windows` of 'AnnotatedBinary.Building' (Int) + +0x0064 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | array field `home.dimensions.values`[0] of 'AnnotatedBinary.Dimension' (Int) + +0x0068 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | array field `home.dimensions.values`[1] of 'AnnotatedBinary.Dimension' (Int) + +0x006C | 14 00 00 00 | uint32_t | 0x00000014 (20) | array field `home.dimensions.values`[2] of 'AnnotatedBinary.Dimension' (Int) + +0x0070 | 01 | uint8_t | 0x01 (1) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte) + +0x0071 | 02 | uint8_t | 0x02 (2) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte) + +0x0072 | 03 | uint8_t | 0x03 (3) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte) +0x0073 | 00 | uint8_t[1] | . | padding +0x0074 | C8 01 00 00 | UOffset32 | 0x000001C8 (456) Loc: +0x023C | ERROR: offset to field `name`. Invalid offset, points outside the binary. +0x0078 | 5C 01 00 00 | UOffset32 | 0x0000015C (348) Loc: +0x01D4 | ERROR: offset to field `bars`. Invalid offset, points outside the binary. @@ -97,7 +97,7 @@ table (AnnotatedBinary.Bar): +0x00D0 | 00 00 00 | uint8_t[3] | ... | padding union (AnnotatedBinary.Tolerance.measurement): - +0x00D3 | 05 | uint8_t | 0x05 (5) | struct field `AnnotatedBinary.Tolerance.width` (UByte) + +0x00D3 | 05 | uint8_t | 0x05 (5) | struct field `measurement.width` of 'AnnotatedBinary.Tolerance' (UByte) vector (AnnotatedBinary.Foo.foobars): +0x00D4 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) @@ -138,12 +138,12 @@ vector (AnnotatedBinary.Foo.foobars_type): vector (AnnotatedBinary.Foo.points_of_interest): +0x0134 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) - +0x0138 | 33 33 33 33 33 A3 45 40 | double | 0x4045A33333333333 (43.275) | struct field `AnnotatedBinary.Location.latitude` (Double) - +0x0140 | 7E 57 04 FF 5B 87 53 C0 | double | 0xC053875BFF04577E (-78.115) | struct field `AnnotatedBinary.Location.longitude` (Double) - +0x0148 | 8D F0 F6 20 04 B6 42 40 | double | 0x4042B60420F6F08D (37.422) | struct field `AnnotatedBinary.Location.latitude` (Double) - +0x0150 | 9F 77 63 41 61 85 5E C0 | double | 0xC05E85614163779F (-122.084) | struct field `AnnotatedBinary.Location.longitude` (Double) - +0x0158 | 8F 35 23 83 DC 35 4B C0 | double | 0xC04B35DC8323358F (-54.4208) | struct field `AnnotatedBinary.Location.latitude` (Double) - +0x0160 | F6 97 DD 93 87 C5 0A 40 | double | 0x400AC58793DD97F6 (3.34645) | struct field `AnnotatedBinary.Location.longitude` (Double) + +0x0138 | 33 33 33 33 33 A3 45 40 | double | 0x4045A33333333333 (43.275) | struct field `[0].latitude` of 'AnnotatedBinary.Location' (Double) + +0x0140 | 7E 57 04 FF 5B 87 53 C0 | double | 0xC053875BFF04577E (-78.115) | struct field `[0].longitude` of 'AnnotatedBinary.Location' (Double) + +0x0148 | 8D F0 F6 20 04 B6 42 40 | double | 0x4042B60420F6F08D (37.422) | struct field `[1].latitude` of 'AnnotatedBinary.Location' (Double) + +0x0150 | 9F 77 63 41 61 85 5E C0 | double | 0xC05E85614163779F (-122.084) | struct field `[1].longitude` of 'AnnotatedBinary.Location' (Double) + +0x0158 | 8F 35 23 83 DC 35 4B C0 | double | 0xC04B35DC8323358F (-54.4208) | struct field `[2].latitude` of 'AnnotatedBinary.Location' (Double) + +0x0160 | F6 97 DD 93 87 C5 0A 40 | double | 0x400AC58793DD97F6 (3.34645) | struct field `[2].longitude` of 'AnnotatedBinary.Location' (Double) padding: +0x0168 | 00 00 00 00 | uint8_t[4] | .... | padding diff --git a/tests/annotated_binary/tests/invalid_vector_structs_cut_short.afb b/tests/annotated_binary/tests/invalid_vector_structs_cut_short.afb index b62c4dbca3..801e855bae 100644 --- a/tests/annotated_binary/tests/invalid_vector_structs_cut_short.afb +++ b/tests/annotated_binary/tests/invalid_vector_structs_cut_short.afb @@ -51,15 +51,15 @@ root_table (AnnotatedBinary.Foo): +0x004F | 01 | UType8 | 0x01 (1) | table field `anything_type` (UType) +0x0050 | D2 04 00 00 | uint32_t | 0x000004D2 (1234) | table field `counter` (Int) +0x0054 | 28 02 00 00 | UOffset32 | 0x00000228 (552) Loc: +0x027C | ERROR: offset to field `bar`. Invalid offset, points outside the binary. - +0x0058 | 01 00 00 00 | uint32_t | 0x00000001 (1) | struct field `AnnotatedBinary.Building.floors` (Int) - +0x005C | 02 00 00 00 | uint32_t | 0x00000002 (2) | struct field `AnnotatedBinary.Building.doors` (Int) - +0x0060 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | struct field `AnnotatedBinary.Building.windows` (Int) - +0x0064 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | array field `AnnotatedBinary.Dimension.values`[0] (Int) - +0x0068 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | array field `AnnotatedBinary.Dimension.values`[1] (Int) - +0x006C | 14 00 00 00 | uint32_t | 0x00000014 (20) | array field `AnnotatedBinary.Dimension.values`[2] (Int) - +0x0070 | 01 | uint8_t | 0x01 (1) | struct field `AnnotatedBinary.Tolerance.width` (UByte) - +0x0071 | 02 | uint8_t | 0x02 (2) | struct field `AnnotatedBinary.Tolerance.width` (UByte) - +0x0072 | 03 | uint8_t | 0x03 (3) | struct field `AnnotatedBinary.Tolerance.width` (UByte) + +0x0058 | 01 00 00 00 | uint32_t | 0x00000001 (1) | struct field `home.floors` of 'AnnotatedBinary.Building' (Int) + +0x005C | 02 00 00 00 | uint32_t | 0x00000002 (2) | struct field `home.doors` of 'AnnotatedBinary.Building' (Int) + +0x0060 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | struct field `home.windows` of 'AnnotatedBinary.Building' (Int) + +0x0064 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | array field `home.dimensions.values`[0] of 'AnnotatedBinary.Dimension' (Int) + +0x0068 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | array field `home.dimensions.values`[1] of 'AnnotatedBinary.Dimension' (Int) + +0x006C | 14 00 00 00 | uint32_t | 0x00000014 (20) | array field `home.dimensions.values`[2] of 'AnnotatedBinary.Dimension' (Int) + +0x0070 | 01 | uint8_t | 0x01 (1) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte) + +0x0071 | 02 | uint8_t | 0x02 (2) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte) + +0x0072 | 03 | uint8_t | 0x03 (3) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte) +0x0073 | 00 | uint8_t[1] | . | padding +0x0074 | C8 01 00 00 | UOffset32 | 0x000001C8 (456) Loc: +0x023C | ERROR: offset to field `name`. Invalid offset, points outside the binary. +0x0078 | 5C 01 00 00 | UOffset32 | 0x0000015C (348) Loc: +0x01D4 | ERROR: offset to field `bars`. Invalid offset, points outside the binary. @@ -97,7 +97,7 @@ table (AnnotatedBinary.Bar): +0x00D0 | 00 00 00 | uint8_t[3] | ... | padding union (AnnotatedBinary.Tolerance.measurement): - +0x00D3 | 05 | uint8_t | 0x05 (5) | struct field `AnnotatedBinary.Tolerance.width` (UByte) + +0x00D3 | 05 | uint8_t | 0x05 (5) | struct field `measurement.width` of 'AnnotatedBinary.Tolerance' (UByte) vector (AnnotatedBinary.Foo.foobars): +0x00D4 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) diff --git a/tests/annotated_binary/tests/invalid_vector_tables_cut_short.afb b/tests/annotated_binary/tests/invalid_vector_tables_cut_short.afb index fa8b18f7a7..7f5ef35d06 100644 --- a/tests/annotated_binary/tests/invalid_vector_tables_cut_short.afb +++ b/tests/annotated_binary/tests/invalid_vector_tables_cut_short.afb @@ -51,15 +51,15 @@ root_table (AnnotatedBinary.Foo): +0x004F | 01 | UType8 | 0x01 (1) | table field `anything_type` (UType) +0x0050 | D2 04 00 00 | uint32_t | 0x000004D2 (1234) | table field `counter` (Int) +0x0054 | 28 02 00 00 | UOffset32 | 0x00000228 (552) Loc: +0x027C | ERROR: offset to field `bar`. Invalid offset, points outside the binary. - +0x0058 | 01 00 00 00 | uint32_t | 0x00000001 (1) | struct field `AnnotatedBinary.Building.floors` (Int) - +0x005C | 02 00 00 00 | uint32_t | 0x00000002 (2) | struct field `AnnotatedBinary.Building.doors` (Int) - +0x0060 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | struct field `AnnotatedBinary.Building.windows` (Int) - +0x0064 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | array field `AnnotatedBinary.Dimension.values`[0] (Int) - +0x0068 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | array field `AnnotatedBinary.Dimension.values`[1] (Int) - +0x006C | 14 00 00 00 | uint32_t | 0x00000014 (20) | array field `AnnotatedBinary.Dimension.values`[2] (Int) - +0x0070 | 01 | uint8_t | 0x01 (1) | struct field `AnnotatedBinary.Tolerance.width` (UByte) - +0x0071 | 02 | uint8_t | 0x02 (2) | struct field `AnnotatedBinary.Tolerance.width` (UByte) - +0x0072 | 03 | uint8_t | 0x03 (3) | struct field `AnnotatedBinary.Tolerance.width` (UByte) + +0x0058 | 01 00 00 00 | uint32_t | 0x00000001 (1) | struct field `home.floors` of 'AnnotatedBinary.Building' (Int) + +0x005C | 02 00 00 00 | uint32_t | 0x00000002 (2) | struct field `home.doors` of 'AnnotatedBinary.Building' (Int) + +0x0060 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | struct field `home.windows` of 'AnnotatedBinary.Building' (Int) + +0x0064 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | array field `home.dimensions.values`[0] of 'AnnotatedBinary.Dimension' (Int) + +0x0068 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | array field `home.dimensions.values`[1] of 'AnnotatedBinary.Dimension' (Int) + +0x006C | 14 00 00 00 | uint32_t | 0x00000014 (20) | array field `home.dimensions.values`[2] of 'AnnotatedBinary.Dimension' (Int) + +0x0070 | 01 | uint8_t | 0x01 (1) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte) + +0x0071 | 02 | uint8_t | 0x02 (2) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte) + +0x0072 | 03 | uint8_t | 0x03 (3) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte) +0x0073 | 00 | uint8_t[1] | . | padding +0x0074 | C8 01 00 00 | UOffset32 | 0x000001C8 (456) Loc: +0x023C | ERROR: offset to field `name`. Invalid offset, points outside the binary. +0x0078 | 5C 01 00 00 | UOffset32 | 0x0000015C (348) Loc: +0x01D4 | offset to field `bars` (vector) @@ -97,7 +97,7 @@ table (AnnotatedBinary.Bar): +0x00D0 | 00 00 00 | uint8_t[3] | ... | padding union (AnnotatedBinary.Tolerance.measurement): - +0x00D3 | 05 | uint8_t | 0x05 (5) | struct field `AnnotatedBinary.Tolerance.width` (UByte) + +0x00D3 | 05 | uint8_t | 0x05 (5) | struct field `measurement.width` of 'AnnotatedBinary.Tolerance' (UByte) vector (AnnotatedBinary.Foo.foobars): +0x00D4 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) @@ -138,12 +138,12 @@ vector (AnnotatedBinary.Foo.foobars_type): vector (AnnotatedBinary.Foo.points_of_interest): +0x0134 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) - +0x0138 | 33 33 33 33 33 A3 45 40 | double | 0x4045A33333333333 (43.275) | struct field `AnnotatedBinary.Location.latitude` (Double) - +0x0140 | 7E 57 04 FF 5B 87 53 C0 | double | 0xC053875BFF04577E (-78.115) | struct field `AnnotatedBinary.Location.longitude` (Double) - +0x0148 | 8D F0 F6 20 04 B6 42 40 | double | 0x4042B60420F6F08D (37.422) | struct field `AnnotatedBinary.Location.latitude` (Double) - +0x0150 | 9F 77 63 41 61 85 5E C0 | double | 0xC05E85614163779F (-122.084) | struct field `AnnotatedBinary.Location.longitude` (Double) - +0x0158 | 8F 35 23 83 DC 35 4B C0 | double | 0xC04B35DC8323358F (-54.4208) | struct field `AnnotatedBinary.Location.latitude` (Double) - +0x0160 | F6 97 DD 93 87 C5 0A 40 | double | 0x400AC58793DD97F6 (3.34645) | struct field `AnnotatedBinary.Location.longitude` (Double) + +0x0138 | 33 33 33 33 33 A3 45 40 | double | 0x4045A33333333333 (43.275) | struct field `[0].latitude` of 'AnnotatedBinary.Location' (Double) + +0x0140 | 7E 57 04 FF 5B 87 53 C0 | double | 0xC053875BFF04577E (-78.115) | struct field `[0].longitude` of 'AnnotatedBinary.Location' (Double) + +0x0148 | 8D F0 F6 20 04 B6 42 40 | double | 0x4042B60420F6F08D (37.422) | struct field `[1].latitude` of 'AnnotatedBinary.Location' (Double) + +0x0150 | 9F 77 63 41 61 85 5E C0 | double | 0xC05E85614163779F (-122.084) | struct field `[1].longitude` of 'AnnotatedBinary.Location' (Double) + +0x0158 | 8F 35 23 83 DC 35 4B C0 | double | 0xC04B35DC8323358F (-54.4208) | struct field `[2].latitude` of 'AnnotatedBinary.Location' (Double) + +0x0160 | F6 97 DD 93 87 C5 0A 40 | double | 0x400AC58793DD97F6 (3.34645) | struct field `[2].longitude` of 'AnnotatedBinary.Location' (Double) padding: +0x0168 | 00 00 00 00 | uint8_t[4] | .... | padding diff --git a/tests/annotated_binary/tests/invalid_vector_union_type_value.afb b/tests/annotated_binary/tests/invalid_vector_union_type_value.afb index ffa67287bc..4a0a109bb3 100644 --- a/tests/annotated_binary/tests/invalid_vector_union_type_value.afb +++ b/tests/annotated_binary/tests/invalid_vector_union_type_value.afb @@ -51,15 +51,15 @@ root_table (AnnotatedBinary.Foo): +0x004F | 01 | UType8 | 0x01 (1) | table field `anything_type` (UType) +0x0050 | D2 04 00 00 | uint32_t | 0x000004D2 (1234) | table field `counter` (Int) +0x0054 | 28 02 00 00 | UOffset32 | 0x00000228 (552) Loc: +0x027C | offset to field `bar` (table) - +0x0058 | 01 00 00 00 | uint32_t | 0x00000001 (1) | struct field `AnnotatedBinary.Building.floors` (Int) - +0x005C | 02 00 00 00 | uint32_t | 0x00000002 (2) | struct field `AnnotatedBinary.Building.doors` (Int) - +0x0060 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | struct field `AnnotatedBinary.Building.windows` (Int) - +0x0064 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | array field `AnnotatedBinary.Dimension.values`[0] (Int) - +0x0068 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | array field `AnnotatedBinary.Dimension.values`[1] (Int) - +0x006C | 14 00 00 00 | uint32_t | 0x00000014 (20) | array field `AnnotatedBinary.Dimension.values`[2] (Int) - +0x0070 | 01 | uint8_t | 0x01 (1) | struct field `AnnotatedBinary.Tolerance.width` (UByte) - +0x0071 | 02 | uint8_t | 0x02 (2) | struct field `AnnotatedBinary.Tolerance.width` (UByte) - +0x0072 | 03 | uint8_t | 0x03 (3) | struct field `AnnotatedBinary.Tolerance.width` (UByte) + +0x0058 | 01 00 00 00 | uint32_t | 0x00000001 (1) | struct field `home.floors` of 'AnnotatedBinary.Building' (Int) + +0x005C | 02 00 00 00 | uint32_t | 0x00000002 (2) | struct field `home.doors` of 'AnnotatedBinary.Building' (Int) + +0x0060 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | struct field `home.windows` of 'AnnotatedBinary.Building' (Int) + +0x0064 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | array field `home.dimensions.values`[0] of 'AnnotatedBinary.Dimension' (Int) + +0x0068 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | array field `home.dimensions.values`[1] of 'AnnotatedBinary.Dimension' (Int) + +0x006C | 14 00 00 00 | uint32_t | 0x00000014 (20) | array field `home.dimensions.values`[2] of 'AnnotatedBinary.Dimension' (Int) + +0x0070 | 01 | uint8_t | 0x01 (1) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte) + +0x0071 | 02 | uint8_t | 0x02 (2) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte) + +0x0072 | 03 | uint8_t | 0x03 (3) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte) +0x0073 | 00 | uint8_t[1] | . | padding +0x0074 | C8 01 00 00 | UOffset32 | 0x000001C8 (456) Loc: +0x023C | offset to field `name` (string) +0x0078 | 5C 01 00 00 | UOffset32 | 0x0000015C (348) Loc: +0x01D4 | offset to field `bars` (vector) @@ -97,7 +97,7 @@ table (AnnotatedBinary.Bar): +0x00D0 | 00 00 00 | uint8_t[3] | ... | padding union (AnnotatedBinary.Tolerance.measurement): - +0x00D3 | 05 | uint8_t | 0x05 (5) | struct field `AnnotatedBinary.Tolerance.width` (UByte) + +0x00D3 | 05 | uint8_t | 0x05 (5) | struct field `measurement.width` of 'AnnotatedBinary.Tolerance' (UByte) vector (AnnotatedBinary.Foo.foobars): +0x00D4 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) @@ -140,12 +140,12 @@ vector (AnnotatedBinary.Foo.foobars_type): vector (AnnotatedBinary.Foo.points_of_interest): +0x0134 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) - +0x0138 | 33 33 33 33 33 A3 45 40 | double | 0x4045A33333333333 (43.275) | struct field `AnnotatedBinary.Location.latitude` (Double) - +0x0140 | 7E 57 04 FF 5B 87 53 C0 | double | 0xC053875BFF04577E (-78.115) | struct field `AnnotatedBinary.Location.longitude` (Double) - +0x0148 | 8D F0 F6 20 04 B6 42 40 | double | 0x4042B60420F6F08D (37.422) | struct field `AnnotatedBinary.Location.latitude` (Double) - +0x0150 | 9F 77 63 41 61 85 5E C0 | double | 0xC05E85614163779F (-122.084) | struct field `AnnotatedBinary.Location.longitude` (Double) - +0x0158 | 8F 35 23 83 DC 35 4B C0 | double | 0xC04B35DC8323358F (-54.4208) | struct field `AnnotatedBinary.Location.latitude` (Double) - +0x0160 | F6 97 DD 93 87 C5 0A 40 | double | 0x400AC58793DD97F6 (3.34645) | struct field `AnnotatedBinary.Location.longitude` (Double) + +0x0138 | 33 33 33 33 33 A3 45 40 | double | 0x4045A33333333333 (43.275) | struct field `[0].latitude` of 'AnnotatedBinary.Location' (Double) + +0x0140 | 7E 57 04 FF 5B 87 53 C0 | double | 0xC053875BFF04577E (-78.115) | struct field `[0].longitude` of 'AnnotatedBinary.Location' (Double) + +0x0148 | 8D F0 F6 20 04 B6 42 40 | double | 0x4042B60420F6F08D (37.422) | struct field `[1].latitude` of 'AnnotatedBinary.Location' (Double) + +0x0150 | 9F 77 63 41 61 85 5E C0 | double | 0xC05E85614163779F (-122.084) | struct field `[1].longitude` of 'AnnotatedBinary.Location' (Double) + +0x0158 | 8F 35 23 83 DC 35 4B C0 | double | 0xC04B35DC8323358F (-54.4208) | struct field `[2].latitude` of 'AnnotatedBinary.Location' (Double) + +0x0160 | F6 97 DD 93 87 C5 0A 40 | double | 0x400AC58793DD97F6 (3.34645) | struct field `[2].longitude` of 'AnnotatedBinary.Location' (Double) padding: +0x0168 | 00 00 00 00 | uint8_t[4] | .... | padding diff --git a/tests/annotated_binary/tests/invalid_vector_unions_cut_short.afb b/tests/annotated_binary/tests/invalid_vector_unions_cut_short.afb index 7267c766c0..e3519c0c2f 100644 --- a/tests/annotated_binary/tests/invalid_vector_unions_cut_short.afb +++ b/tests/annotated_binary/tests/invalid_vector_unions_cut_short.afb @@ -51,15 +51,15 @@ root_table (AnnotatedBinary.Foo): +0x004F | 01 | UType8 | 0x01 (1) | table field `anything_type` (UType) +0x0050 | D2 04 00 00 | uint32_t | 0x000004D2 (1234) | table field `counter` (Int) +0x0054 | 28 02 00 00 | UOffset32 | 0x00000228 (552) Loc: +0x027C | ERROR: offset to field `bar`. Invalid offset, points outside the binary. - +0x0058 | 01 00 00 00 | uint32_t | 0x00000001 (1) | struct field `AnnotatedBinary.Building.floors` (Int) - +0x005C | 02 00 00 00 | uint32_t | 0x00000002 (2) | struct field `AnnotatedBinary.Building.doors` (Int) - +0x0060 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | struct field `AnnotatedBinary.Building.windows` (Int) - +0x0064 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | array field `AnnotatedBinary.Dimension.values`[0] (Int) - +0x0068 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | array field `AnnotatedBinary.Dimension.values`[1] (Int) - +0x006C | 14 00 00 00 | uint32_t | 0x00000014 (20) | array field `AnnotatedBinary.Dimension.values`[2] (Int) - +0x0070 | 01 | uint8_t | 0x01 (1) | struct field `AnnotatedBinary.Tolerance.width` (UByte) - +0x0071 | 02 | uint8_t | 0x02 (2) | struct field `AnnotatedBinary.Tolerance.width` (UByte) - +0x0072 | 03 | uint8_t | 0x03 (3) | struct field `AnnotatedBinary.Tolerance.width` (UByte) + +0x0058 | 01 00 00 00 | uint32_t | 0x00000001 (1) | struct field `home.floors` of 'AnnotatedBinary.Building' (Int) + +0x005C | 02 00 00 00 | uint32_t | 0x00000002 (2) | struct field `home.doors` of 'AnnotatedBinary.Building' (Int) + +0x0060 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | struct field `home.windows` of 'AnnotatedBinary.Building' (Int) + +0x0064 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | array field `home.dimensions.values`[0] of 'AnnotatedBinary.Dimension' (Int) + +0x0068 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | array field `home.dimensions.values`[1] of 'AnnotatedBinary.Dimension' (Int) + +0x006C | 14 00 00 00 | uint32_t | 0x00000014 (20) | array field `home.dimensions.values`[2] of 'AnnotatedBinary.Dimension' (Int) + +0x0070 | 01 | uint8_t | 0x01 (1) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte) + +0x0071 | 02 | uint8_t | 0x02 (2) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte) + +0x0072 | 03 | uint8_t | 0x03 (3) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte) +0x0073 | 00 | uint8_t[1] | . | padding +0x0074 | C8 01 00 00 | UOffset32 | 0x000001C8 (456) Loc: +0x023C | ERROR: offset to field `name`. Invalid offset, points outside the binary. +0x0078 | 5C 01 00 00 | UOffset32 | 0x0000015C (348) Loc: +0x01D4 | offset to field `bars` (vector) @@ -97,7 +97,7 @@ table (AnnotatedBinary.Bar): +0x00D0 | 00 00 00 | uint8_t[3] | ... | padding union (AnnotatedBinary.Tolerance.measurement): - +0x00D3 | 05 | uint8_t | 0x05 (5) | struct field `AnnotatedBinary.Tolerance.width` (UByte) + +0x00D3 | 05 | uint8_t | 0x05 (5) | struct field `measurement.width` of 'AnnotatedBinary.Tolerance' (UByte) vector (AnnotatedBinary.Foo.foobars): +0x00D4 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) @@ -138,12 +138,12 @@ vector (AnnotatedBinary.Foo.foobars_type): vector (AnnotatedBinary.Foo.points_of_interest): +0x0134 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) - +0x0138 | 33 33 33 33 33 A3 45 40 | double | 0x4045A33333333333 (43.275) | struct field `AnnotatedBinary.Location.latitude` (Double) - +0x0140 | 7E 57 04 FF 5B 87 53 C0 | double | 0xC053875BFF04577E (-78.115) | struct field `AnnotatedBinary.Location.longitude` (Double) - +0x0148 | 8D F0 F6 20 04 B6 42 40 | double | 0x4042B60420F6F08D (37.422) | struct field `AnnotatedBinary.Location.latitude` (Double) - +0x0150 | 9F 77 63 41 61 85 5E C0 | double | 0xC05E85614163779F (-122.084) | struct field `AnnotatedBinary.Location.longitude` (Double) - +0x0158 | 8F 35 23 83 DC 35 4B C0 | double | 0xC04B35DC8323358F (-54.4208) | struct field `AnnotatedBinary.Location.latitude` (Double) - +0x0160 | F6 97 DD 93 87 C5 0A 40 | double | 0x400AC58793DD97F6 (3.34645) | struct field `AnnotatedBinary.Location.longitude` (Double) + +0x0138 | 33 33 33 33 33 A3 45 40 | double | 0x4045A33333333333 (43.275) | struct field `[0].latitude` of 'AnnotatedBinary.Location' (Double) + +0x0140 | 7E 57 04 FF 5B 87 53 C0 | double | 0xC053875BFF04577E (-78.115) | struct field `[0].longitude` of 'AnnotatedBinary.Location' (Double) + +0x0148 | 8D F0 F6 20 04 B6 42 40 | double | 0x4042B60420F6F08D (37.422) | struct field `[1].latitude` of 'AnnotatedBinary.Location' (Double) + +0x0150 | 9F 77 63 41 61 85 5E C0 | double | 0xC05E85614163779F (-122.084) | struct field `[1].longitude` of 'AnnotatedBinary.Location' (Double) + +0x0158 | 8F 35 23 83 DC 35 4B C0 | double | 0xC04B35DC8323358F (-54.4208) | struct field `[2].latitude` of 'AnnotatedBinary.Location' (Double) + +0x0160 | F6 97 DD 93 87 C5 0A 40 | double | 0x400AC58793DD97F6 (3.34645) | struct field `[2].longitude` of 'AnnotatedBinary.Location' (Double) padding: +0x0168 | 00 00 00 00 | uint8_t[4] | .... | padding diff --git a/tests/annotated_binary/tests/invalid_vtable_field_offset.afb b/tests/annotated_binary/tests/invalid_vtable_field_offset.afb index 8b786be465..ccfabc993a 100644 --- a/tests/annotated_binary/tests/invalid_vtable_field_offset.afb +++ b/tests/annotated_binary/tests/invalid_vtable_field_offset.afb @@ -52,15 +52,15 @@ root_table (AnnotatedBinary.Foo): +0x004F | 01 | UType8 | 0x01 (1) | table field `anything_type` (UType) +0x0050 | D2 04 00 00 | uint32_t | 0x000004D2 (1234) | table field `counter` (Int) +0x0054 | 28 02 00 00 | ?uint8_t[4] | (... | WARN: nothing refers to this section. - +0x0058 | 01 00 00 00 | uint32_t | 0x00000001 (1) | struct field `AnnotatedBinary.Building.floors` (Int) - +0x005C | 02 00 00 00 | uint32_t | 0x00000002 (2) | struct field `AnnotatedBinary.Building.doors` (Int) - +0x0060 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | struct field `AnnotatedBinary.Building.windows` (Int) - +0x0064 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | array field `AnnotatedBinary.Dimension.values`[0] (Int) - +0x0068 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | array field `AnnotatedBinary.Dimension.values`[1] (Int) - +0x006C | 14 00 00 00 | uint32_t | 0x00000014 (20) | array field `AnnotatedBinary.Dimension.values`[2] (Int) - +0x0070 | 01 | uint8_t | 0x01 (1) | struct field `AnnotatedBinary.Tolerance.width` (UByte) - +0x0071 | 02 | uint8_t | 0x02 (2) | struct field `AnnotatedBinary.Tolerance.width` (UByte) - +0x0072 | 03 | uint8_t | 0x03 (3) | struct field `AnnotatedBinary.Tolerance.width` (UByte) + +0x0058 | 01 00 00 00 | uint32_t | 0x00000001 (1) | struct field `home.floors` of 'AnnotatedBinary.Building' (Int) + +0x005C | 02 00 00 00 | uint32_t | 0x00000002 (2) | struct field `home.doors` of 'AnnotatedBinary.Building' (Int) + +0x0060 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | struct field `home.windows` of 'AnnotatedBinary.Building' (Int) + +0x0064 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | array field `home.dimensions.values`[0] of 'AnnotatedBinary.Dimension' (Int) + +0x0068 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | array field `home.dimensions.values`[1] of 'AnnotatedBinary.Dimension' (Int) + +0x006C | 14 00 00 00 | uint32_t | 0x00000014 (20) | array field `home.dimensions.values`[2] of 'AnnotatedBinary.Dimension' (Int) + +0x0070 | 01 | uint8_t | 0x01 (1) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte) + +0x0071 | 02 | uint8_t | 0x02 (2) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte) + +0x0072 | 03 | uint8_t | 0x03 (3) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte) +0x0073 | 00 | uint8_t[1] | . | padding +0x0074 | C8 01 00 00 | UOffset32 | 0x000001C8 (456) Loc: +0x023C | offset to field `name` (string) +0x0078 | 5C 01 00 00 | UOffset32 | 0x0000015C (348) Loc: +0x01D4 | offset to field `bars` (vector) @@ -98,7 +98,7 @@ table (AnnotatedBinary.Bar): +0x00D0 | 00 00 00 | uint8_t[3] | ... | padding union (AnnotatedBinary.Tolerance.measurement): - +0x00D3 | 05 | uint8_t | 0x05 (5) | struct field `AnnotatedBinary.Tolerance.width` (UByte) + +0x00D3 | 05 | uint8_t | 0x05 (5) | struct field `measurement.width` of 'AnnotatedBinary.Tolerance' (UByte) vector (AnnotatedBinary.Foo.foobars): +0x00D4 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) @@ -145,12 +145,12 @@ vector (AnnotatedBinary.Foo.foobars_type): vector (AnnotatedBinary.Foo.points_of_interest): +0x0134 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) - +0x0138 | 33 33 33 33 33 A3 45 40 | double | 0x4045A33333333333 (43.275) | struct field `AnnotatedBinary.Location.latitude` (Double) - +0x0140 | 7E 57 04 FF 5B 87 53 C0 | double | 0xC053875BFF04577E (-78.115) | struct field `AnnotatedBinary.Location.longitude` (Double) - +0x0148 | 8D F0 F6 20 04 B6 42 40 | double | 0x4042B60420F6F08D (37.422) | struct field `AnnotatedBinary.Location.latitude` (Double) - +0x0150 | 9F 77 63 41 61 85 5E C0 | double | 0xC05E85614163779F (-122.084) | struct field `AnnotatedBinary.Location.longitude` (Double) - +0x0158 | 8F 35 23 83 DC 35 4B C0 | double | 0xC04B35DC8323358F (-54.4208) | struct field `AnnotatedBinary.Location.latitude` (Double) - +0x0160 | F6 97 DD 93 87 C5 0A 40 | double | 0x400AC58793DD97F6 (3.34645) | struct field `AnnotatedBinary.Location.longitude` (Double) + +0x0138 | 33 33 33 33 33 A3 45 40 | double | 0x4045A33333333333 (43.275) | struct field `[0].latitude` of 'AnnotatedBinary.Location' (Double) + +0x0140 | 7E 57 04 FF 5B 87 53 C0 | double | 0xC053875BFF04577E (-78.115) | struct field `[0].longitude` of 'AnnotatedBinary.Location' (Double) + +0x0148 | 8D F0 F6 20 04 B6 42 40 | double | 0x4042B60420F6F08D (37.422) | struct field `[1].latitude` of 'AnnotatedBinary.Location' (Double) + +0x0150 | 9F 77 63 41 61 85 5E C0 | double | 0xC05E85614163779F (-122.084) | struct field `[1].longitude` of 'AnnotatedBinary.Location' (Double) + +0x0158 | 8F 35 23 83 DC 35 4B C0 | double | 0xC04B35DC8323358F (-54.4208) | struct field `[2].latitude` of 'AnnotatedBinary.Location' (Double) + +0x0160 | F6 97 DD 93 87 C5 0A 40 | double | 0x400AC58793DD97F6 (3.34645) | struct field `[2].longitude` of 'AnnotatedBinary.Location' (Double) padding: +0x0168 | 00 00 00 00 | uint8_t[4] | .... | padding diff --git a/tests/annotated_binary/tests/invalid_vtable_ref_table_size.afb b/tests/annotated_binary/tests/invalid_vtable_ref_table_size.afb index 5238e9db1a..72a272cbda 100644 --- a/tests/annotated_binary/tests/invalid_vtable_ref_table_size.afb +++ b/tests/annotated_binary/tests/invalid_vtable_ref_table_size.afb @@ -51,15 +51,15 @@ root_table (AnnotatedBinary.Foo): +0x004F | 01 | UType8 | 0x01 (1) | table field `anything_type` (UType) +0x0050 | D2 04 00 00 | uint32_t | 0x000004D2 (1234) | table field `counter` (Int) +0x0054 | 28 02 00 00 | UOffset32 | 0x00000228 (552) Loc: +0x027C | offset to field `bar` (table) - +0x0058 | 01 00 00 00 | uint32_t | 0x00000001 (1) | struct field `AnnotatedBinary.Building.floors` (Int) - +0x005C | 02 00 00 00 | uint32_t | 0x00000002 (2) | struct field `AnnotatedBinary.Building.doors` (Int) - +0x0060 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | struct field `AnnotatedBinary.Building.windows` (Int) - +0x0064 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | array field `AnnotatedBinary.Dimension.values`[0] (Int) - +0x0068 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | array field `AnnotatedBinary.Dimension.values`[1] (Int) - +0x006C | 14 00 00 00 | uint32_t | 0x00000014 (20) | array field `AnnotatedBinary.Dimension.values`[2] (Int) - +0x0070 | 01 | uint8_t | 0x01 (1) | struct field `AnnotatedBinary.Tolerance.width` (UByte) - +0x0071 | 02 | uint8_t | 0x02 (2) | struct field `AnnotatedBinary.Tolerance.width` (UByte) - +0x0072 | 03 | uint8_t | 0x03 (3) | struct field `AnnotatedBinary.Tolerance.width` (UByte) + +0x0058 | 01 00 00 00 | uint32_t | 0x00000001 (1) | struct field `home.floors` of 'AnnotatedBinary.Building' (Int) + +0x005C | 02 00 00 00 | uint32_t | 0x00000002 (2) | struct field `home.doors` of 'AnnotatedBinary.Building' (Int) + +0x0060 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | struct field `home.windows` of 'AnnotatedBinary.Building' (Int) + +0x0064 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | array field `home.dimensions.values`[0] of 'AnnotatedBinary.Dimension' (Int) + +0x0068 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | array field `home.dimensions.values`[1] of 'AnnotatedBinary.Dimension' (Int) + +0x006C | 14 00 00 00 | uint32_t | 0x00000014 (20) | array field `home.dimensions.values`[2] of 'AnnotatedBinary.Dimension' (Int) + +0x0070 | 01 | uint8_t | 0x01 (1) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte) + +0x0071 | 02 | uint8_t | 0x02 (2) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte) + +0x0072 | 03 | uint8_t | 0x03 (3) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte) +0x0073 | 00 | uint8_t[1] | . | padding +0x0074 | C8 01 00 00 | UOffset32 | 0x000001C8 (456) Loc: +0x023C | offset to field `name` (string) +0x0078 | 5C 01 00 00 | UOffset32 | 0x0000015C (348) Loc: +0x01D4 | offset to field `bars` (vector) @@ -160,7 +160,7 @@ table (AnnotatedBinary.Bar): +0x00D0 | 00 00 00 | uint8_t[3] | ... | padding union (AnnotatedBinary.Tolerance.measurement): - +0x00D3 | 05 | uint8_t | 0x05 (5) | struct field `AnnotatedBinary.Tolerance.width` (UByte) + +0x00D3 | 05 | uint8_t | 0x05 (5) | struct field `measurement.width` of 'AnnotatedBinary.Tolerance' (UByte) vector (AnnotatedBinary.Foo.foobars): +0x00D4 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) @@ -207,12 +207,12 @@ vector (AnnotatedBinary.Foo.foobars_type): vector (AnnotatedBinary.Foo.points_of_interest): +0x0134 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) - +0x0138 | 33 33 33 33 33 A3 45 40 | double | 0x4045A33333333333 (43.275) | struct field `AnnotatedBinary.Location.latitude` (Double) - +0x0140 | 7E 57 04 FF 5B 87 53 C0 | double | 0xC053875BFF04577E (-78.115) | struct field `AnnotatedBinary.Location.longitude` (Double) - +0x0148 | 8D F0 F6 20 04 B6 42 40 | double | 0x4042B60420F6F08D (37.422) | struct field `AnnotatedBinary.Location.latitude` (Double) - +0x0150 | 9F 77 63 41 61 85 5E C0 | double | 0xC05E85614163779F (-122.084) | struct field `AnnotatedBinary.Location.longitude` (Double) - +0x0158 | 8F 35 23 83 DC 35 4B C0 | double | 0xC04B35DC8323358F (-54.4208) | struct field `AnnotatedBinary.Location.latitude` (Double) - +0x0160 | F6 97 DD 93 87 C5 0A 40 | double | 0x400AC58793DD97F6 (3.34645) | struct field `AnnotatedBinary.Location.longitude` (Double) + +0x0138 | 33 33 33 33 33 A3 45 40 | double | 0x4045A33333333333 (43.275) | struct field `[0].latitude` of 'AnnotatedBinary.Location' (Double) + +0x0140 | 7E 57 04 FF 5B 87 53 C0 | double | 0xC053875BFF04577E (-78.115) | struct field `[0].longitude` of 'AnnotatedBinary.Location' (Double) + +0x0148 | 8D F0 F6 20 04 B6 42 40 | double | 0x4042B60420F6F08D (37.422) | struct field `[1].latitude` of 'AnnotatedBinary.Location' (Double) + +0x0150 | 9F 77 63 41 61 85 5E C0 | double | 0xC05E85614163779F (-122.084) | struct field `[1].longitude` of 'AnnotatedBinary.Location' (Double) + +0x0158 | 8F 35 23 83 DC 35 4B C0 | double | 0xC04B35DC8323358F (-54.4208) | struct field `[2].latitude` of 'AnnotatedBinary.Location' (Double) + +0x0160 | F6 97 DD 93 87 C5 0A 40 | double | 0x400AC58793DD97F6 (3.34645) | struct field `[2].longitude` of 'AnnotatedBinary.Location' (Double) padding: +0x0168 | 00 00 00 00 | uint8_t[4] | .... | padding diff --git a/tests/annotated_binary/tests/invalid_vtable_ref_table_size_short.afb b/tests/annotated_binary/tests/invalid_vtable_ref_table_size_short.afb index 35eb6a8a14..ab0bfd5dfc 100644 --- a/tests/annotated_binary/tests/invalid_vtable_ref_table_size_short.afb +++ b/tests/annotated_binary/tests/invalid_vtable_ref_table_size_short.afb @@ -51,15 +51,15 @@ root_table (AnnotatedBinary.Foo): +0x004F | 01 | UType8 | 0x01 (1) | table field `anything_type` (UType) +0x0050 | D2 04 00 00 | uint32_t | 0x000004D2 (1234) | table field `counter` (Int) +0x0054 | 28 02 00 00 | UOffset32 | 0x00000228 (552) Loc: +0x027C | offset to field `bar` (table) - +0x0058 | 01 00 00 00 | uint32_t | 0x00000001 (1) | struct field `AnnotatedBinary.Building.floors` (Int) - +0x005C | 02 00 00 00 | uint32_t | 0x00000002 (2) | struct field `AnnotatedBinary.Building.doors` (Int) - +0x0060 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | struct field `AnnotatedBinary.Building.windows` (Int) - +0x0064 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | array field `AnnotatedBinary.Dimension.values`[0] (Int) - +0x0068 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | array field `AnnotatedBinary.Dimension.values`[1] (Int) - +0x006C | 14 00 00 00 | uint32_t | 0x00000014 (20) | array field `AnnotatedBinary.Dimension.values`[2] (Int) - +0x0070 | 01 | uint8_t | 0x01 (1) | struct field `AnnotatedBinary.Tolerance.width` (UByte) - +0x0071 | 02 | uint8_t | 0x02 (2) | struct field `AnnotatedBinary.Tolerance.width` (UByte) - +0x0072 | 03 | uint8_t | 0x03 (3) | struct field `AnnotatedBinary.Tolerance.width` (UByte) + +0x0058 | 01 00 00 00 | uint32_t | 0x00000001 (1) | struct field `home.floors` of 'AnnotatedBinary.Building' (Int) + +0x005C | 02 00 00 00 | uint32_t | 0x00000002 (2) | struct field `home.doors` of 'AnnotatedBinary.Building' (Int) + +0x0060 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | struct field `home.windows` of 'AnnotatedBinary.Building' (Int) + +0x0064 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | array field `home.dimensions.values`[0] of 'AnnotatedBinary.Dimension' (Int) + +0x0068 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | array field `home.dimensions.values`[1] of 'AnnotatedBinary.Dimension' (Int) + +0x006C | 14 00 00 00 | uint32_t | 0x00000014 (20) | array field `home.dimensions.values`[2] of 'AnnotatedBinary.Dimension' (Int) + +0x0070 | 01 | uint8_t | 0x01 (1) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte) + +0x0071 | 02 | uint8_t | 0x02 (2) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte) + +0x0072 | 03 | uint8_t | 0x03 (3) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte) +0x0073 | 00 | uint8_t[1] | . | padding +0x0074 | C8 01 00 00 | UOffset32 | 0x000001C8 (456) Loc: +0x023C | offset to field `name` (string) +0x0078 | 5C 01 00 00 | UOffset32 | 0x0000015C (348) Loc: +0x01D4 | offset to field `bars` (vector) @@ -97,7 +97,7 @@ table (AnnotatedBinary.Bar): +0x00D0 | 00 00 00 | uint8_t[3] | ... | padding union (AnnotatedBinary.Tolerance.measurement): - +0x00D3 | 05 | uint8_t | 0x05 (5) | struct field `AnnotatedBinary.Tolerance.width` (UByte) + +0x00D3 | 05 | uint8_t | 0x05 (5) | struct field `measurement.width` of 'AnnotatedBinary.Tolerance' (UByte) vector (AnnotatedBinary.Foo.foobars): +0x00D4 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) @@ -144,12 +144,12 @@ vector (AnnotatedBinary.Foo.foobars_type): vector (AnnotatedBinary.Foo.points_of_interest): +0x0134 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) - +0x0138 | 33 33 33 33 33 A3 45 40 | double | 0x4045A33333333333 (43.275) | struct field `AnnotatedBinary.Location.latitude` (Double) - +0x0140 | 7E 57 04 FF 5B 87 53 C0 | double | 0xC053875BFF04577E (-78.115) | struct field `AnnotatedBinary.Location.longitude` (Double) - +0x0148 | 8D F0 F6 20 04 B6 42 40 | double | 0x4042B60420F6F08D (37.422) | struct field `AnnotatedBinary.Location.latitude` (Double) - +0x0150 | 9F 77 63 41 61 85 5E C0 | double | 0xC05E85614163779F (-122.084) | struct field `AnnotatedBinary.Location.longitude` (Double) - +0x0158 | 8F 35 23 83 DC 35 4B C0 | double | 0xC04B35DC8323358F (-54.4208) | struct field `AnnotatedBinary.Location.latitude` (Double) - +0x0160 | F6 97 DD 93 87 C5 0A 40 | double | 0x400AC58793DD97F6 (3.34645) | struct field `AnnotatedBinary.Location.longitude` (Double) + +0x0138 | 33 33 33 33 33 A3 45 40 | double | 0x4045A33333333333 (43.275) | struct field `[0].latitude` of 'AnnotatedBinary.Location' (Double) + +0x0140 | 7E 57 04 FF 5B 87 53 C0 | double | 0xC053875BFF04577E (-78.115) | struct field `[0].longitude` of 'AnnotatedBinary.Location' (Double) + +0x0148 | 8D F0 F6 20 04 B6 42 40 | double | 0x4042B60420F6F08D (37.422) | struct field `[1].latitude` of 'AnnotatedBinary.Location' (Double) + +0x0150 | 9F 77 63 41 61 85 5E C0 | double | 0xC05E85614163779F (-122.084) | struct field `[1].longitude` of 'AnnotatedBinary.Location' (Double) + +0x0158 | 8F 35 23 83 DC 35 4B C0 | double | 0xC04B35DC8323358F (-54.4208) | struct field `[2].latitude` of 'AnnotatedBinary.Location' (Double) + +0x0160 | F6 97 DD 93 87 C5 0A 40 | double | 0x400AC58793DD97F6 (3.34645) | struct field `[2].longitude` of 'AnnotatedBinary.Location' (Double) padding: +0x0168 | 00 00 00 00 | uint8_t[4] | .... | padding diff --git a/tests/monsterdata_test.afb b/tests/monsterdata_test.afb index 8e3c00fdd4..dab9191ec3 100644 --- a/tests/monsterdata_test.afb +++ b/tests/monsterdata_test.afb @@ -71,15 +71,15 @@ root_table (MyGame.Example.Monster): +0x007C | 01 | UType8 | 0x01 (1) | table field `test_type` (UType) +0x007D | 01 | uint8_t | 0x01 (1) | table field `testbool` (Bool) +0x007E | 50 00 | int16_t | 0x0050 (80) | table field `hp` (Short) - +0x0080 | 00 00 80 3F | float | 0x3F800000 (1) | struct field `MyGame.Example.Vec3.x` (Float) - +0x0084 | 00 00 00 40 | float | 0x40000000 (2) | struct field `MyGame.Example.Vec3.y` (Float) - +0x0088 | 00 00 40 40 | float | 0x40400000 (3) | struct field `MyGame.Example.Vec3.z` (Float) + +0x0080 | 00 00 80 3F | float | 0x3F800000 (1) | struct field `pos.x` of 'MyGame.Example.Vec3' (Float) + +0x0084 | 00 00 00 40 | float | 0x40000000 (2) | struct field `pos.y` of 'MyGame.Example.Vec3' (Float) + +0x0088 | 00 00 40 40 | float | 0x40400000 (3) | struct field `pos.z` of 'MyGame.Example.Vec3' (Float) +0x008C | 00 00 00 00 | uint8_t[4] | .... | padding - +0x0090 | 00 00 00 00 00 00 08 40 | double | 0x4008000000000000 (3) | struct field `MyGame.Example.Vec3.test1` (Double) - +0x0098 | 02 | uint8_t | 0x02 (2) | struct field `MyGame.Example.Vec3.test2` (UByte) + +0x0090 | 00 00 00 00 00 00 08 40 | double | 0x4008000000000000 (3) | struct field `pos.test1` of 'MyGame.Example.Vec3' (Double) + +0x0098 | 02 | uint8_t | 0x02 (2) | struct field `pos.test2` of 'MyGame.Example.Vec3' (UByte) +0x0099 | 00 | uint8_t[1] | . | padding - +0x009A | 05 00 | int16_t | 0x0005 (5) | struct field `MyGame.Example.Test.a` (Short) - +0x009C | 06 | uint8_t | 0x06 (6) | struct field `MyGame.Example.Test.b` (Byte) + +0x009A | 05 00 | int16_t | 0x0005 (5) | struct field `pos.test3.a` of 'MyGame.Example.Test' (Short) + +0x009C | 06 | uint8_t | 0x06 (6) | struct field `pos.test3.b` of 'MyGame.Example.Test' (Byte) +0x009D | 00 | uint8_t[1] | . | padding +0x009E | 00 00 | uint8_t[2] | .. | padding +0x00A0 | 00 00 00 00 | uint8_t[4] | .... | padding @@ -99,8 +99,8 @@ root_table (MyGame.Example.Monster): +0x00D8 | 34 01 00 00 | UOffset32 | 0x00000134 (308) Loc: +0x020C | offset to field `vector_of_longs` (vector) +0x00DC | 10 01 00 00 | UOffset32 | 0x00000110 (272) Loc: +0x01EC | offset to field `vector_of_doubles` (vector) +0x00E0 | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: +0x010C | offset to field `scalar_key_sorted_tables` (vector) - +0x00E4 | 01 00 | int16_t | 0x0001 (1) | struct field `MyGame.Example.Test.a` (Short) - +0x00E6 | 02 | uint8_t | 0x02 (2) | struct field `MyGame.Example.Test.b` (Byte) + +0x00E4 | 01 00 | int16_t | 0x0001 (1) | struct field `native_inline.a` of 'MyGame.Example.Test' (Short) + +0x00E6 | 02 | uint8_t | 0x02 (2) | struct field `native_inline.b` of 'MyGame.Example.Test' (Byte) +0x00E7 | 00 | uint8_t[1] | . | padding +0x00E8 | 81 91 7B F2 CD 80 0F 6E | int64_t | 0x6E0F80CDF27B9181 (7930699090847568257) | table field `testhashs64_fnv1` (Long) +0x00F0 | 81 91 7B F2 CD 80 0F 6E | uint64_t | 0x6E0F80CDF27B9181 (7930699090847568257) | table field `testhashu64_fnv1` (ULong) @@ -151,12 +151,12 @@ string (MyGame.Example.Stat.id): vector (MyGame.Example.Monster.testarrayofsortedstruct): +0x0158 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) - +0x015C | 00 00 00 00 | uint32_t | 0x00000000 (0) | struct field `MyGame.Example.Ability.id` (UInt) - +0x0160 | 2D 00 00 00 | uint32_t | 0x0000002D (45) | struct field `MyGame.Example.Ability.distance` (UInt) - +0x0164 | 01 00 00 00 | uint32_t | 0x00000001 (1) | struct field `MyGame.Example.Ability.id` (UInt) - +0x0168 | 15 00 00 00 | uint32_t | 0x00000015 (21) | struct field `MyGame.Example.Ability.distance` (UInt) - +0x016C | 05 00 00 00 | uint32_t | 0x00000005 (5) | struct field `MyGame.Example.Ability.id` (UInt) - +0x0170 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | struct field `MyGame.Example.Ability.distance` (UInt) + +0x015C | 00 00 00 00 | uint32_t | 0x00000000 (0) | struct field `[0].id` of 'MyGame.Example.Ability' (UInt) + +0x0160 | 2D 00 00 00 | uint32_t | 0x0000002D (45) | struct field `[0].distance` of 'MyGame.Example.Ability' (UInt) + +0x0164 | 01 00 00 00 | uint32_t | 0x00000001 (1) | struct field `[1].id` of 'MyGame.Example.Ability' (UInt) + +0x0168 | 15 00 00 00 | uint32_t | 0x00000015 (21) | struct field `[1].distance` of 'MyGame.Example.Ability' (UInt) + +0x016C | 05 00 00 00 | uint32_t | 0x00000005 (5) | struct field `[2].id` of 'MyGame.Example.Ability' (UInt) + +0x0170 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | struct field `[2].distance` of 'MyGame.Example.Ability' (UInt) vector (MyGame.Example.Monster.testarrayofbools): +0x0174 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) @@ -199,20 +199,20 @@ padding: vector (MyGame.Example.Monster.test5): +0x01B4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) - +0x01B8 | 0A 00 | int16_t | 0x000A (10) | struct field `MyGame.Example.Test.a` (Short) - +0x01BA | 14 | uint8_t | 0x14 (20) | struct field `MyGame.Example.Test.b` (Byte) + +0x01B8 | 0A 00 | int16_t | 0x000A (10) | struct field `[0].a` of 'MyGame.Example.Test' (Short) + +0x01BA | 14 | uint8_t | 0x14 (20) | struct field `[0].b` of 'MyGame.Example.Test' (Byte) +0x01BB | 00 | uint8_t[1] | . | padding - +0x01BC | 1E 00 | int16_t | 0x001E (30) | struct field `MyGame.Example.Test.a` (Short) - +0x01BE | 28 | uint8_t | 0x28 (40) | struct field `MyGame.Example.Test.b` (Byte) + +0x01BC | 1E 00 | int16_t | 0x001E (30) | struct field `[1].a` of 'MyGame.Example.Test' (Short) + +0x01BE | 28 | uint8_t | 0x28 (40) | struct field `[1].b` of 'MyGame.Example.Test' (Byte) +0x01BF | 00 | uint8_t[1] | . | padding vector (MyGame.Example.Monster.test4): +0x01C0 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) - +0x01C4 | 0A 00 | int16_t | 0x000A (10) | struct field `MyGame.Example.Test.a` (Short) - +0x01C6 | 14 | uint8_t | 0x14 (20) | struct field `MyGame.Example.Test.b` (Byte) + +0x01C4 | 0A 00 | int16_t | 0x000A (10) | struct field `[0].a` of 'MyGame.Example.Test' (Short) + +0x01C6 | 14 | uint8_t | 0x14 (20) | struct field `[0].b` of 'MyGame.Example.Test' (Byte) +0x01C7 | 00 | uint8_t[1] | . | padding - +0x01C8 | 1E 00 | int16_t | 0x001E (30) | struct field `MyGame.Example.Test.a` (Short) - +0x01CA | 28 | uint8_t | 0x28 (40) | struct field `MyGame.Example.Test.b` (Byte) + +0x01C8 | 1E 00 | int16_t | 0x001E (30) | struct field `[1].a` of 'MyGame.Example.Test' (Short) + +0x01CA | 28 | uint8_t | 0x28 (40) | struct field `[1].b` of 'MyGame.Example.Test' (Byte) +0x01CB | 00 | uint8_t[1] | . | padding vtable (MyGame.Example.Monster): From 75af533e95c085830d786268b59dc5bd8627d2eb Mon Sep 17 00:00:00 2001 From: Derek Bailey Date: Sat, 7 Jan 2023 12:17:07 -0800 Subject: [PATCH 082/571] emit global scoped ::flatbuffers in c++ (#7764) --- include/flatbuffers/reflection_generated.h | 602 ++++---- samples/monster_generated.h | 324 ++--- src/idl_gen_cpp.cpp | 225 +-- tests/alignment_test_generated.h | 214 +-- tests/arrays_test_generated.h | 244 ++-- .../generated_cpp17/monster_test_generated.h | 1258 ++++++++-------- .../optional_scalars_generated.h | 242 ++-- .../generated_cpp17/union_vector_generated.h | 392 ++--- tests/evolution_test/evolution_v1_generated.h | 134 +- tests/evolution_test/evolution_v2_generated.h | 176 +-- tests/key_field/key_field_sample_generated.h | 214 +-- tests/monster_extra_generated.h | 132 +- tests/monster_test_generated.h | 1260 ++++++++--------- .../ext_only/monster_test_generated.hpp | 1260 ++++++++--------- .../filesuffix_only/monster_test_suffix.h | 1260 ++++++++--------- .../monster_test_suffix.hpp | 1260 ++++++++--------- .../namespace_test1_generated.h | 132 +- .../namespace_test2_generated.h | 192 +-- tests/native_inline_table_test_generated.h | 130 +- tests/native_type_test_generated.h | 186 +-- tests/optional_scalars_generated.h | 242 ++-- tests/union_vector/union_vector_generated.h | 392 ++--- 22 files changed, 5236 insertions(+), 5235 deletions(-) diff --git a/include/flatbuffers/reflection_generated.h b/include/flatbuffers/reflection_generated.h index 1d83caa727..6581c865c7 100644 --- a/include/flatbuffers/reflection_generated.h +++ b/include/flatbuffers/reflection_generated.h @@ -119,7 +119,7 @@ inline const char * const *EnumNamesBaseType() { } inline const char *EnumNameBaseType(BaseType e) { - if (flatbuffers::IsOutRange(e, None, MaxBaseType)) return ""; + if (::flatbuffers::IsOutRange(e, None, MaxBaseType)) return ""; const size_t index = static_cast(e); return EnumNamesBaseType()[index]; } @@ -158,12 +158,12 @@ inline const char * const *EnumNamesAdvancedFeatures() { } inline const char *EnumNameAdvancedFeatures(AdvancedFeatures e) { - if (flatbuffers::IsOutRange(e, AdvancedArrayFeatures, DefaultVectorsAndStrings)) return ""; + if (::flatbuffers::IsOutRange(e, AdvancedArrayFeatures, DefaultVectorsAndStrings)) return ""; const size_t index = static_cast(e) - static_cast(AdvancedArrayFeatures); return EnumNamesAdvancedFeatures()[index]; } -struct Type FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { +struct Type FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { typedef TypeBuilder Builder; enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { VT_BASE_TYPE = 4, @@ -193,7 +193,7 @@ struct Type FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { uint32_t element_size() const { return GetField(VT_ELEMENT_SIZE, 0); } - bool Verify(flatbuffers::Verifier &verifier) const { + bool Verify(::flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_BASE_TYPE, 1) && VerifyField(verifier, VT_ELEMENT, 1) && @@ -207,8 +207,8 @@ struct Type FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { struct TypeBuilder { typedef Type Table; - flatbuffers::FlatBufferBuilder &fbb_; - flatbuffers::uoffset_t start_; + ::flatbuffers::FlatBufferBuilder &fbb_; + ::flatbuffers::uoffset_t start_; void add_base_type(reflection::BaseType base_type) { fbb_.AddElement(Type::VT_BASE_TYPE, static_cast(base_type), 0); } @@ -227,19 +227,19 @@ struct TypeBuilder { void add_element_size(uint32_t element_size) { fbb_.AddElement(Type::VT_ELEMENT_SIZE, element_size, 0); } - explicit TypeBuilder(flatbuffers::FlatBufferBuilder &_fbb) + explicit TypeBuilder(::flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); } - flatbuffers::Offset Finish() { + ::flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); - auto o = flatbuffers::Offset(end); + auto o = ::flatbuffers::Offset(end); return o; } }; -inline flatbuffers::Offset CreateType( - flatbuffers::FlatBufferBuilder &_fbb, +inline ::flatbuffers::Offset CreateType( + ::flatbuffers::FlatBufferBuilder &_fbb, reflection::BaseType base_type = reflection::None, reflection::BaseType element = reflection::None, int32_t index = -1, @@ -256,14 +256,14 @@ inline flatbuffers::Offset CreateType( return builder_.Finish(); } -struct KeyValue FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { +struct KeyValue FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { typedef KeyValueBuilder Builder; enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { VT_KEY = 4, VT_VALUE = 6 }; - const flatbuffers::String *key() const { - return GetPointer(VT_KEY); + const ::flatbuffers::String *key() const { + return GetPointer(VT_KEY); } bool KeyCompareLessThan(const KeyValue * const o) const { return *key() < *o->key(); @@ -271,10 +271,10 @@ struct KeyValue FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { int KeyCompareWithValue(const char *_key) const { return strcmp(key()->c_str(), _key); } - const flatbuffers::String *value() const { - return GetPointer(VT_VALUE); + const ::flatbuffers::String *value() const { + return GetPointer(VT_VALUE); } - bool Verify(flatbuffers::Verifier &verifier) const { + bool Verify(::flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && VerifyOffsetRequired(verifier, VT_KEY) && verifier.VerifyString(key()) && @@ -286,38 +286,38 @@ struct KeyValue FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { struct KeyValueBuilder { typedef KeyValue Table; - flatbuffers::FlatBufferBuilder &fbb_; - flatbuffers::uoffset_t start_; - void add_key(flatbuffers::Offset key) { + ::flatbuffers::FlatBufferBuilder &fbb_; + ::flatbuffers::uoffset_t start_; + void add_key(::flatbuffers::Offset<::flatbuffers::String> key) { fbb_.AddOffset(KeyValue::VT_KEY, key); } - void add_value(flatbuffers::Offset value) { + void add_value(::flatbuffers::Offset<::flatbuffers::String> value) { fbb_.AddOffset(KeyValue::VT_VALUE, value); } - explicit KeyValueBuilder(flatbuffers::FlatBufferBuilder &_fbb) + explicit KeyValueBuilder(::flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); } - flatbuffers::Offset Finish() { + ::flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); - auto o = flatbuffers::Offset(end); + auto o = ::flatbuffers::Offset(end); fbb_.Required(o, KeyValue::VT_KEY); return o; } }; -inline flatbuffers::Offset CreateKeyValue( - flatbuffers::FlatBufferBuilder &_fbb, - flatbuffers::Offset key = 0, - flatbuffers::Offset value = 0) { +inline ::flatbuffers::Offset CreateKeyValue( + ::flatbuffers::FlatBufferBuilder &_fbb, + ::flatbuffers::Offset<::flatbuffers::String> key = 0, + ::flatbuffers::Offset<::flatbuffers::String> value = 0) { KeyValueBuilder builder_(_fbb); builder_.add_value(value); builder_.add_key(key); return builder_.Finish(); } -inline flatbuffers::Offset CreateKeyValueDirect( - flatbuffers::FlatBufferBuilder &_fbb, +inline ::flatbuffers::Offset CreateKeyValueDirect( + ::flatbuffers::FlatBufferBuilder &_fbb, const char *key = nullptr, const char *value = nullptr) { auto key__ = key ? _fbb.CreateString(key) : 0; @@ -328,7 +328,7 @@ inline flatbuffers::Offset CreateKeyValueDirect( value__); } -struct EnumVal FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { +struct EnumVal FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { typedef EnumValBuilder Builder; enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { VT_NAME = 4, @@ -337,8 +337,8 @@ struct EnumVal FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { VT_DOCUMENTATION = 12, VT_ATTRIBUTES = 14 }; - const flatbuffers::String *name() const { - return GetPointer(VT_NAME); + const ::flatbuffers::String *name() const { + return GetPointer(VT_NAME); } int64_t value() const { return GetField(VT_VALUE, 0); @@ -352,13 +352,13 @@ struct EnumVal FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { const reflection::Type *union_type() const { return GetPointer(VT_UNION_TYPE); } - const flatbuffers::Vector> *documentation() const { - return GetPointer> *>(VT_DOCUMENTATION); + const ::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>> *documentation() const { + return GetPointer> *>(VT_DOCUMENTATION); } - const flatbuffers::Vector> *attributes() const { - return GetPointer> *>(VT_ATTRIBUTES); + const ::flatbuffers::Vector<::flatbuffers::Offset> *attributes() const { + return GetPointer> *>(VT_ATTRIBUTES); } - bool Verify(flatbuffers::Verifier &verifier) const { + bool Verify(::flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && VerifyOffsetRequired(verifier, VT_NAME) && verifier.VerifyString(name()) && @@ -377,42 +377,42 @@ struct EnumVal FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { struct EnumValBuilder { typedef EnumVal Table; - flatbuffers::FlatBufferBuilder &fbb_; - flatbuffers::uoffset_t start_; - void add_name(flatbuffers::Offset name) { + ::flatbuffers::FlatBufferBuilder &fbb_; + ::flatbuffers::uoffset_t start_; + void add_name(::flatbuffers::Offset<::flatbuffers::String> name) { fbb_.AddOffset(EnumVal::VT_NAME, name); } void add_value(int64_t value) { fbb_.AddElement(EnumVal::VT_VALUE, value, 0); } - void add_union_type(flatbuffers::Offset union_type) { + void add_union_type(::flatbuffers::Offset union_type) { fbb_.AddOffset(EnumVal::VT_UNION_TYPE, union_type); } - void add_documentation(flatbuffers::Offset>> documentation) { + void add_documentation(::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>>> documentation) { fbb_.AddOffset(EnumVal::VT_DOCUMENTATION, documentation); } - void add_attributes(flatbuffers::Offset>> attributes) { + void add_attributes(::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset>> attributes) { fbb_.AddOffset(EnumVal::VT_ATTRIBUTES, attributes); } - explicit EnumValBuilder(flatbuffers::FlatBufferBuilder &_fbb) + explicit EnumValBuilder(::flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); } - flatbuffers::Offset Finish() { + ::flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); - auto o = flatbuffers::Offset(end); + auto o = ::flatbuffers::Offset(end); fbb_.Required(o, EnumVal::VT_NAME); return o; } }; -inline flatbuffers::Offset CreateEnumVal( - flatbuffers::FlatBufferBuilder &_fbb, - flatbuffers::Offset name = 0, +inline ::flatbuffers::Offset CreateEnumVal( + ::flatbuffers::FlatBufferBuilder &_fbb, + ::flatbuffers::Offset<::flatbuffers::String> name = 0, int64_t value = 0, - flatbuffers::Offset union_type = 0, - flatbuffers::Offset>> documentation = 0, - flatbuffers::Offset>> attributes = 0) { + ::flatbuffers::Offset union_type = 0, + ::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>>> documentation = 0, + ::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset>> attributes = 0) { EnumValBuilder builder_(_fbb); builder_.add_value(value); builder_.add_attributes(attributes); @@ -422,15 +422,15 @@ inline flatbuffers::Offset CreateEnumVal( return builder_.Finish(); } -inline flatbuffers::Offset CreateEnumValDirect( - flatbuffers::FlatBufferBuilder &_fbb, +inline ::flatbuffers::Offset CreateEnumValDirect( + ::flatbuffers::FlatBufferBuilder &_fbb, const char *name = nullptr, int64_t value = 0, - flatbuffers::Offset union_type = 0, - const std::vector> *documentation = nullptr, - std::vector> *attributes = nullptr) { + ::flatbuffers::Offset union_type = 0, + const std::vector<::flatbuffers::Offset<::flatbuffers::String>> *documentation = nullptr, + std::vector<::flatbuffers::Offset> *attributes = nullptr) { auto name__ = name ? _fbb.CreateString(name) : 0; - auto documentation__ = documentation ? _fbb.CreateVector>(*documentation) : 0; + auto documentation__ = documentation ? _fbb.CreateVector<::flatbuffers::Offset<::flatbuffers::String>>(*documentation) : 0; auto attributes__ = attributes ? _fbb.CreateVectorOfSortedTables(attributes) : 0; return reflection::CreateEnumVal( _fbb, @@ -441,7 +441,7 @@ inline flatbuffers::Offset CreateEnumValDirect( attributes__); } -struct Enum FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { +struct Enum FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { typedef EnumBuilder Builder; enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { VT_NAME = 4, @@ -452,8 +452,8 @@ struct Enum FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { VT_DOCUMENTATION = 14, VT_DECLARATION_FILE = 16 }; - const flatbuffers::String *name() const { - return GetPointer(VT_NAME); + const ::flatbuffers::String *name() const { + return GetPointer(VT_NAME); } bool KeyCompareLessThan(const Enum * const o) const { return *name() < *o->name(); @@ -461,8 +461,8 @@ struct Enum FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { int KeyCompareWithValue(const char *_name) const { return strcmp(name()->c_str(), _name); } - const flatbuffers::Vector> *values() const { - return GetPointer> *>(VT_VALUES); + const ::flatbuffers::Vector<::flatbuffers::Offset> *values() const { + return GetPointer> *>(VT_VALUES); } bool is_union() const { return GetField(VT_IS_UNION, 0) != 0; @@ -470,17 +470,17 @@ struct Enum FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { const reflection::Type *underlying_type() const { return GetPointer(VT_UNDERLYING_TYPE); } - const flatbuffers::Vector> *attributes() const { - return GetPointer> *>(VT_ATTRIBUTES); + const ::flatbuffers::Vector<::flatbuffers::Offset> *attributes() const { + return GetPointer> *>(VT_ATTRIBUTES); } - const flatbuffers::Vector> *documentation() const { - return GetPointer> *>(VT_DOCUMENTATION); + const ::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>> *documentation() const { + return GetPointer> *>(VT_DOCUMENTATION); } /// File that this Enum is declared in. - const flatbuffers::String *declaration_file() const { - return GetPointer(VT_DECLARATION_FILE); + const ::flatbuffers::String *declaration_file() const { + return GetPointer(VT_DECLARATION_FILE); } - bool Verify(flatbuffers::Verifier &verifier) const { + bool Verify(::flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && VerifyOffsetRequired(verifier, VT_NAME) && verifier.VerifyString(name()) && @@ -504,36 +504,36 @@ struct Enum FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { struct EnumBuilder { typedef Enum Table; - flatbuffers::FlatBufferBuilder &fbb_; - flatbuffers::uoffset_t start_; - void add_name(flatbuffers::Offset name) { + ::flatbuffers::FlatBufferBuilder &fbb_; + ::flatbuffers::uoffset_t start_; + void add_name(::flatbuffers::Offset<::flatbuffers::String> name) { fbb_.AddOffset(Enum::VT_NAME, name); } - void add_values(flatbuffers::Offset>> values) { + void add_values(::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset>> values) { fbb_.AddOffset(Enum::VT_VALUES, values); } void add_is_union(bool is_union) { fbb_.AddElement(Enum::VT_IS_UNION, static_cast(is_union), 0); } - void add_underlying_type(flatbuffers::Offset underlying_type) { + void add_underlying_type(::flatbuffers::Offset underlying_type) { fbb_.AddOffset(Enum::VT_UNDERLYING_TYPE, underlying_type); } - void add_attributes(flatbuffers::Offset>> attributes) { + void add_attributes(::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset>> attributes) { fbb_.AddOffset(Enum::VT_ATTRIBUTES, attributes); } - void add_documentation(flatbuffers::Offset>> documentation) { + void add_documentation(::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>>> documentation) { fbb_.AddOffset(Enum::VT_DOCUMENTATION, documentation); } - void add_declaration_file(flatbuffers::Offset declaration_file) { + void add_declaration_file(::flatbuffers::Offset<::flatbuffers::String> declaration_file) { fbb_.AddOffset(Enum::VT_DECLARATION_FILE, declaration_file); } - explicit EnumBuilder(flatbuffers::FlatBufferBuilder &_fbb) + explicit EnumBuilder(::flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); } - flatbuffers::Offset Finish() { + ::flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); - auto o = flatbuffers::Offset(end); + auto o = ::flatbuffers::Offset(end); fbb_.Required(o, Enum::VT_NAME); fbb_.Required(o, Enum::VT_VALUES); fbb_.Required(o, Enum::VT_UNDERLYING_TYPE); @@ -541,15 +541,15 @@ struct EnumBuilder { } }; -inline flatbuffers::Offset CreateEnum( - flatbuffers::FlatBufferBuilder &_fbb, - flatbuffers::Offset name = 0, - flatbuffers::Offset>> values = 0, +inline ::flatbuffers::Offset CreateEnum( + ::flatbuffers::FlatBufferBuilder &_fbb, + ::flatbuffers::Offset<::flatbuffers::String> name = 0, + ::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset>> values = 0, bool is_union = false, - flatbuffers::Offset underlying_type = 0, - flatbuffers::Offset>> attributes = 0, - flatbuffers::Offset>> documentation = 0, - flatbuffers::Offset declaration_file = 0) { + ::flatbuffers::Offset underlying_type = 0, + ::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset>> attributes = 0, + ::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>>> documentation = 0, + ::flatbuffers::Offset<::flatbuffers::String> declaration_file = 0) { EnumBuilder builder_(_fbb); builder_.add_declaration_file(declaration_file); builder_.add_documentation(documentation); @@ -561,19 +561,19 @@ inline flatbuffers::Offset CreateEnum( return builder_.Finish(); } -inline flatbuffers::Offset CreateEnumDirect( - flatbuffers::FlatBufferBuilder &_fbb, +inline ::flatbuffers::Offset CreateEnumDirect( + ::flatbuffers::FlatBufferBuilder &_fbb, const char *name = nullptr, - std::vector> *values = nullptr, + std::vector<::flatbuffers::Offset> *values = nullptr, bool is_union = false, - flatbuffers::Offset underlying_type = 0, - std::vector> *attributes = nullptr, - const std::vector> *documentation = nullptr, + ::flatbuffers::Offset underlying_type = 0, + std::vector<::flatbuffers::Offset> *attributes = nullptr, + const std::vector<::flatbuffers::Offset<::flatbuffers::String>> *documentation = nullptr, const char *declaration_file = nullptr) { auto name__ = name ? _fbb.CreateString(name) : 0; auto values__ = values ? _fbb.CreateVectorOfSortedTables(values) : 0; auto attributes__ = attributes ? _fbb.CreateVectorOfSortedTables(attributes) : 0; - auto documentation__ = documentation ? _fbb.CreateVector>(*documentation) : 0; + auto documentation__ = documentation ? _fbb.CreateVector<::flatbuffers::Offset<::flatbuffers::String>>(*documentation) : 0; auto declaration_file__ = declaration_file ? _fbb.CreateString(declaration_file) : 0; return reflection::CreateEnum( _fbb, @@ -586,7 +586,7 @@ inline flatbuffers::Offset CreateEnumDirect( declaration_file__); } -struct Field FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { +struct Field FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { typedef FieldBuilder Builder; enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { VT_NAME = 4, @@ -603,8 +603,8 @@ struct Field FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { VT_OPTIONAL = 26, VT_PADDING = 28 }; - const flatbuffers::String *name() const { - return GetPointer(VT_NAME); + const ::flatbuffers::String *name() const { + return GetPointer(VT_NAME); } bool KeyCompareLessThan(const Field * const o) const { return *name() < *o->name(); @@ -636,11 +636,11 @@ struct Field FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { bool key() const { return GetField(VT_KEY, 0) != 0; } - const flatbuffers::Vector> *attributes() const { - return GetPointer> *>(VT_ATTRIBUTES); + const ::flatbuffers::Vector<::flatbuffers::Offset> *attributes() const { + return GetPointer> *>(VT_ATTRIBUTES); } - const flatbuffers::Vector> *documentation() const { - return GetPointer> *>(VT_DOCUMENTATION); + const ::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>> *documentation() const { + return GetPointer> *>(VT_DOCUMENTATION); } bool optional() const { return GetField(VT_OPTIONAL, 0) != 0; @@ -649,7 +649,7 @@ struct Field FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { uint16_t padding() const { return GetField(VT_PADDING, 0); } - bool Verify(flatbuffers::Verifier &verifier) const { + bool Verify(::flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && VerifyOffsetRequired(verifier, VT_NAME) && verifier.VerifyString(name()) && @@ -676,12 +676,12 @@ struct Field FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { struct FieldBuilder { typedef Field Table; - flatbuffers::FlatBufferBuilder &fbb_; - flatbuffers::uoffset_t start_; - void add_name(flatbuffers::Offset name) { + ::flatbuffers::FlatBufferBuilder &fbb_; + ::flatbuffers::uoffset_t start_; + void add_name(::flatbuffers::Offset<::flatbuffers::String> name) { fbb_.AddOffset(Field::VT_NAME, name); } - void add_type(flatbuffers::Offset type) { + void add_type(::flatbuffers::Offset type) { fbb_.AddOffset(Field::VT_TYPE, type); } void add_id(uint16_t id) { @@ -705,10 +705,10 @@ struct FieldBuilder { void add_key(bool key) { fbb_.AddElement(Field::VT_KEY, static_cast(key), 0); } - void add_attributes(flatbuffers::Offset>> attributes) { + void add_attributes(::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset>> attributes) { fbb_.AddOffset(Field::VT_ATTRIBUTES, attributes); } - void add_documentation(flatbuffers::Offset>> documentation) { + void add_documentation(::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>>> documentation) { fbb_.AddOffset(Field::VT_DOCUMENTATION, documentation); } void add_optional(bool optional) { @@ -717,23 +717,23 @@ struct FieldBuilder { void add_padding(uint16_t padding) { fbb_.AddElement(Field::VT_PADDING, padding, 0); } - explicit FieldBuilder(flatbuffers::FlatBufferBuilder &_fbb) + explicit FieldBuilder(::flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); } - flatbuffers::Offset Finish() { + ::flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); - auto o = flatbuffers::Offset(end); + auto o = ::flatbuffers::Offset(end); fbb_.Required(o, Field::VT_NAME); fbb_.Required(o, Field::VT_TYPE); return o; } }; -inline flatbuffers::Offset CreateField( - flatbuffers::FlatBufferBuilder &_fbb, - flatbuffers::Offset name = 0, - flatbuffers::Offset type = 0, +inline ::flatbuffers::Offset CreateField( + ::flatbuffers::FlatBufferBuilder &_fbb, + ::flatbuffers::Offset<::flatbuffers::String> name = 0, + ::flatbuffers::Offset type = 0, uint16_t id = 0, uint16_t offset = 0, int64_t default_integer = 0, @@ -741,8 +741,8 @@ inline flatbuffers::Offset CreateField( bool deprecated = false, bool required = false, bool key = false, - flatbuffers::Offset>> attributes = 0, - flatbuffers::Offset>> documentation = 0, + ::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset>> attributes = 0, + ::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>>> documentation = 0, bool optional = false, uint16_t padding = 0) { FieldBuilder builder_(_fbb); @@ -762,10 +762,10 @@ inline flatbuffers::Offset CreateField( return builder_.Finish(); } -inline flatbuffers::Offset CreateFieldDirect( - flatbuffers::FlatBufferBuilder &_fbb, +inline ::flatbuffers::Offset CreateFieldDirect( + ::flatbuffers::FlatBufferBuilder &_fbb, const char *name = nullptr, - flatbuffers::Offset type = 0, + ::flatbuffers::Offset type = 0, uint16_t id = 0, uint16_t offset = 0, int64_t default_integer = 0, @@ -773,13 +773,13 @@ inline flatbuffers::Offset CreateFieldDirect( bool deprecated = false, bool required = false, bool key = false, - std::vector> *attributes = nullptr, - const std::vector> *documentation = nullptr, + std::vector<::flatbuffers::Offset> *attributes = nullptr, + const std::vector<::flatbuffers::Offset<::flatbuffers::String>> *documentation = nullptr, bool optional = false, uint16_t padding = 0) { auto name__ = name ? _fbb.CreateString(name) : 0; auto attributes__ = attributes ? _fbb.CreateVectorOfSortedTables(attributes) : 0; - auto documentation__ = documentation ? _fbb.CreateVector>(*documentation) : 0; + auto documentation__ = documentation ? _fbb.CreateVector<::flatbuffers::Offset<::flatbuffers::String>>(*documentation) : 0; return reflection::CreateField( _fbb, name__, @@ -797,7 +797,7 @@ inline flatbuffers::Offset CreateFieldDirect( padding); } -struct Object FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { +struct Object FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { typedef ObjectBuilder Builder; enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { VT_NAME = 4, @@ -809,8 +809,8 @@ struct Object FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { VT_DOCUMENTATION = 16, VT_DECLARATION_FILE = 18 }; - const flatbuffers::String *name() const { - return GetPointer(VT_NAME); + const ::flatbuffers::String *name() const { + return GetPointer(VT_NAME); } bool KeyCompareLessThan(const Object * const o) const { return *name() < *o->name(); @@ -818,8 +818,8 @@ struct Object FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { int KeyCompareWithValue(const char *_name) const { return strcmp(name()->c_str(), _name); } - const flatbuffers::Vector> *fields() const { - return GetPointer> *>(VT_FIELDS); + const ::flatbuffers::Vector<::flatbuffers::Offset> *fields() const { + return GetPointer> *>(VT_FIELDS); } bool is_struct() const { return GetField(VT_IS_STRUCT, 0) != 0; @@ -830,17 +830,17 @@ struct Object FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { int32_t bytesize() const { return GetField(VT_BYTESIZE, 0); } - const flatbuffers::Vector> *attributes() const { - return GetPointer> *>(VT_ATTRIBUTES); + const ::flatbuffers::Vector<::flatbuffers::Offset> *attributes() const { + return GetPointer> *>(VT_ATTRIBUTES); } - const flatbuffers::Vector> *documentation() const { - return GetPointer> *>(VT_DOCUMENTATION); + const ::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>> *documentation() const { + return GetPointer> *>(VT_DOCUMENTATION); } /// File that this Object is declared in. - const flatbuffers::String *declaration_file() const { - return GetPointer(VT_DECLARATION_FILE); + const ::flatbuffers::String *declaration_file() const { + return GetPointer(VT_DECLARATION_FILE); } - bool Verify(flatbuffers::Verifier &verifier) const { + bool Verify(::flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && VerifyOffsetRequired(verifier, VT_NAME) && verifier.VerifyString(name()) && @@ -864,12 +864,12 @@ struct Object FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { struct ObjectBuilder { typedef Object Table; - flatbuffers::FlatBufferBuilder &fbb_; - flatbuffers::uoffset_t start_; - void add_name(flatbuffers::Offset name) { + ::flatbuffers::FlatBufferBuilder &fbb_; + ::flatbuffers::uoffset_t start_; + void add_name(::flatbuffers::Offset<::flatbuffers::String> name) { fbb_.AddOffset(Object::VT_NAME, name); } - void add_fields(flatbuffers::Offset>> fields) { + void add_fields(::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset>> fields) { fbb_.AddOffset(Object::VT_FIELDS, fields); } void add_is_struct(bool is_struct) { @@ -881,38 +881,38 @@ struct ObjectBuilder { void add_bytesize(int32_t bytesize) { fbb_.AddElement(Object::VT_BYTESIZE, bytesize, 0); } - void add_attributes(flatbuffers::Offset>> attributes) { + void add_attributes(::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset>> attributes) { fbb_.AddOffset(Object::VT_ATTRIBUTES, attributes); } - void add_documentation(flatbuffers::Offset>> documentation) { + void add_documentation(::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>>> documentation) { fbb_.AddOffset(Object::VT_DOCUMENTATION, documentation); } - void add_declaration_file(flatbuffers::Offset declaration_file) { + void add_declaration_file(::flatbuffers::Offset<::flatbuffers::String> declaration_file) { fbb_.AddOffset(Object::VT_DECLARATION_FILE, declaration_file); } - explicit ObjectBuilder(flatbuffers::FlatBufferBuilder &_fbb) + explicit ObjectBuilder(::flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); } - flatbuffers::Offset Finish() { + ::flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); - auto o = flatbuffers::Offset(end); + auto o = ::flatbuffers::Offset(end); fbb_.Required(o, Object::VT_NAME); fbb_.Required(o, Object::VT_FIELDS); return o; } }; -inline flatbuffers::Offset CreateObject( - flatbuffers::FlatBufferBuilder &_fbb, - flatbuffers::Offset name = 0, - flatbuffers::Offset>> fields = 0, +inline ::flatbuffers::Offset CreateObject( + ::flatbuffers::FlatBufferBuilder &_fbb, + ::flatbuffers::Offset<::flatbuffers::String> name = 0, + ::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset>> fields = 0, bool is_struct = false, int32_t minalign = 0, int32_t bytesize = 0, - flatbuffers::Offset>> attributes = 0, - flatbuffers::Offset>> documentation = 0, - flatbuffers::Offset declaration_file = 0) { + ::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset>> attributes = 0, + ::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>>> documentation = 0, + ::flatbuffers::Offset<::flatbuffers::String> declaration_file = 0) { ObjectBuilder builder_(_fbb); builder_.add_declaration_file(declaration_file); builder_.add_documentation(documentation); @@ -925,20 +925,20 @@ inline flatbuffers::Offset CreateObject( return builder_.Finish(); } -inline flatbuffers::Offset CreateObjectDirect( - flatbuffers::FlatBufferBuilder &_fbb, +inline ::flatbuffers::Offset CreateObjectDirect( + ::flatbuffers::FlatBufferBuilder &_fbb, const char *name = nullptr, - std::vector> *fields = nullptr, + std::vector<::flatbuffers::Offset> *fields = nullptr, bool is_struct = false, int32_t minalign = 0, int32_t bytesize = 0, - std::vector> *attributes = nullptr, - const std::vector> *documentation = nullptr, + std::vector<::flatbuffers::Offset> *attributes = nullptr, + const std::vector<::flatbuffers::Offset<::flatbuffers::String>> *documentation = nullptr, const char *declaration_file = nullptr) { auto name__ = name ? _fbb.CreateString(name) : 0; auto fields__ = fields ? _fbb.CreateVectorOfSortedTables(fields) : 0; auto attributes__ = attributes ? _fbb.CreateVectorOfSortedTables(attributes) : 0; - auto documentation__ = documentation ? _fbb.CreateVector>(*documentation) : 0; + auto documentation__ = documentation ? _fbb.CreateVector<::flatbuffers::Offset<::flatbuffers::String>>(*documentation) : 0; auto declaration_file__ = declaration_file ? _fbb.CreateString(declaration_file) : 0; return reflection::CreateObject( _fbb, @@ -952,7 +952,7 @@ inline flatbuffers::Offset CreateObjectDirect( declaration_file__); } -struct RPCCall FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { +struct RPCCall FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { typedef RPCCallBuilder Builder; enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { VT_NAME = 4, @@ -961,8 +961,8 @@ struct RPCCall FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { VT_ATTRIBUTES = 10, VT_DOCUMENTATION = 12 }; - const flatbuffers::String *name() const { - return GetPointer(VT_NAME); + const ::flatbuffers::String *name() const { + return GetPointer(VT_NAME); } bool KeyCompareLessThan(const RPCCall * const o) const { return *name() < *o->name(); @@ -976,13 +976,13 @@ struct RPCCall FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { const reflection::Object *response() const { return GetPointer(VT_RESPONSE); } - const flatbuffers::Vector> *attributes() const { - return GetPointer> *>(VT_ATTRIBUTES); + const ::flatbuffers::Vector<::flatbuffers::Offset> *attributes() const { + return GetPointer> *>(VT_ATTRIBUTES); } - const flatbuffers::Vector> *documentation() const { - return GetPointer> *>(VT_DOCUMENTATION); + const ::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>> *documentation() const { + return GetPointer> *>(VT_DOCUMENTATION); } - bool Verify(flatbuffers::Verifier &verifier) const { + bool Verify(::flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && VerifyOffsetRequired(verifier, VT_NAME) && verifier.VerifyString(name()) && @@ -1002,30 +1002,30 @@ struct RPCCall FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { struct RPCCallBuilder { typedef RPCCall Table; - flatbuffers::FlatBufferBuilder &fbb_; - flatbuffers::uoffset_t start_; - void add_name(flatbuffers::Offset name) { + ::flatbuffers::FlatBufferBuilder &fbb_; + ::flatbuffers::uoffset_t start_; + void add_name(::flatbuffers::Offset<::flatbuffers::String> name) { fbb_.AddOffset(RPCCall::VT_NAME, name); } - void add_request(flatbuffers::Offset request) { + void add_request(::flatbuffers::Offset request) { fbb_.AddOffset(RPCCall::VT_REQUEST, request); } - void add_response(flatbuffers::Offset response) { + void add_response(::flatbuffers::Offset response) { fbb_.AddOffset(RPCCall::VT_RESPONSE, response); } - void add_attributes(flatbuffers::Offset>> attributes) { + void add_attributes(::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset>> attributes) { fbb_.AddOffset(RPCCall::VT_ATTRIBUTES, attributes); } - void add_documentation(flatbuffers::Offset>> documentation) { + void add_documentation(::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>>> documentation) { fbb_.AddOffset(RPCCall::VT_DOCUMENTATION, documentation); } - explicit RPCCallBuilder(flatbuffers::FlatBufferBuilder &_fbb) + explicit RPCCallBuilder(::flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); } - flatbuffers::Offset Finish() { + ::flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); - auto o = flatbuffers::Offset(end); + auto o = ::flatbuffers::Offset(end); fbb_.Required(o, RPCCall::VT_NAME); fbb_.Required(o, RPCCall::VT_REQUEST); fbb_.Required(o, RPCCall::VT_RESPONSE); @@ -1033,13 +1033,13 @@ struct RPCCallBuilder { } }; -inline flatbuffers::Offset CreateRPCCall( - flatbuffers::FlatBufferBuilder &_fbb, - flatbuffers::Offset name = 0, - flatbuffers::Offset request = 0, - flatbuffers::Offset response = 0, - flatbuffers::Offset>> attributes = 0, - flatbuffers::Offset>> documentation = 0) { +inline ::flatbuffers::Offset CreateRPCCall( + ::flatbuffers::FlatBufferBuilder &_fbb, + ::flatbuffers::Offset<::flatbuffers::String> name = 0, + ::flatbuffers::Offset request = 0, + ::flatbuffers::Offset response = 0, + ::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset>> attributes = 0, + ::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>>> documentation = 0) { RPCCallBuilder builder_(_fbb); builder_.add_documentation(documentation); builder_.add_attributes(attributes); @@ -1049,16 +1049,16 @@ inline flatbuffers::Offset CreateRPCCall( return builder_.Finish(); } -inline flatbuffers::Offset CreateRPCCallDirect( - flatbuffers::FlatBufferBuilder &_fbb, +inline ::flatbuffers::Offset CreateRPCCallDirect( + ::flatbuffers::FlatBufferBuilder &_fbb, const char *name = nullptr, - flatbuffers::Offset request = 0, - flatbuffers::Offset response = 0, - std::vector> *attributes = nullptr, - const std::vector> *documentation = nullptr) { + ::flatbuffers::Offset request = 0, + ::flatbuffers::Offset response = 0, + std::vector<::flatbuffers::Offset> *attributes = nullptr, + const std::vector<::flatbuffers::Offset<::flatbuffers::String>> *documentation = nullptr) { auto name__ = name ? _fbb.CreateString(name) : 0; auto attributes__ = attributes ? _fbb.CreateVectorOfSortedTables(attributes) : 0; - auto documentation__ = documentation ? _fbb.CreateVector>(*documentation) : 0; + auto documentation__ = documentation ? _fbb.CreateVector<::flatbuffers::Offset<::flatbuffers::String>>(*documentation) : 0; return reflection::CreateRPCCall( _fbb, name__, @@ -1068,7 +1068,7 @@ inline flatbuffers::Offset CreateRPCCallDirect( documentation__); } -struct Service FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { +struct Service FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { typedef ServiceBuilder Builder; enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { VT_NAME = 4, @@ -1077,8 +1077,8 @@ struct Service FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { VT_DOCUMENTATION = 10, VT_DECLARATION_FILE = 12 }; - const flatbuffers::String *name() const { - return GetPointer(VT_NAME); + const ::flatbuffers::String *name() const { + return GetPointer(VT_NAME); } bool KeyCompareLessThan(const Service * const o) const { return *name() < *o->name(); @@ -1086,20 +1086,20 @@ struct Service FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { int KeyCompareWithValue(const char *_name) const { return strcmp(name()->c_str(), _name); } - const flatbuffers::Vector> *calls() const { - return GetPointer> *>(VT_CALLS); + const ::flatbuffers::Vector<::flatbuffers::Offset> *calls() const { + return GetPointer> *>(VT_CALLS); } - const flatbuffers::Vector> *attributes() const { - return GetPointer> *>(VT_ATTRIBUTES); + const ::flatbuffers::Vector<::flatbuffers::Offset> *attributes() const { + return GetPointer> *>(VT_ATTRIBUTES); } - const flatbuffers::Vector> *documentation() const { - return GetPointer> *>(VT_DOCUMENTATION); + const ::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>> *documentation() const { + return GetPointer> *>(VT_DOCUMENTATION); } /// File that this Service is declared in. - const flatbuffers::String *declaration_file() const { - return GetPointer(VT_DECLARATION_FILE); + const ::flatbuffers::String *declaration_file() const { + return GetPointer(VT_DECLARATION_FILE); } - bool Verify(flatbuffers::Verifier &verifier) const { + bool Verify(::flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && VerifyOffsetRequired(verifier, VT_NAME) && verifier.VerifyString(name()) && @@ -1120,42 +1120,42 @@ struct Service FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { struct ServiceBuilder { typedef Service Table; - flatbuffers::FlatBufferBuilder &fbb_; - flatbuffers::uoffset_t start_; - void add_name(flatbuffers::Offset name) { + ::flatbuffers::FlatBufferBuilder &fbb_; + ::flatbuffers::uoffset_t start_; + void add_name(::flatbuffers::Offset<::flatbuffers::String> name) { fbb_.AddOffset(Service::VT_NAME, name); } - void add_calls(flatbuffers::Offset>> calls) { + void add_calls(::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset>> calls) { fbb_.AddOffset(Service::VT_CALLS, calls); } - void add_attributes(flatbuffers::Offset>> attributes) { + void add_attributes(::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset>> attributes) { fbb_.AddOffset(Service::VT_ATTRIBUTES, attributes); } - void add_documentation(flatbuffers::Offset>> documentation) { + void add_documentation(::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>>> documentation) { fbb_.AddOffset(Service::VT_DOCUMENTATION, documentation); } - void add_declaration_file(flatbuffers::Offset declaration_file) { + void add_declaration_file(::flatbuffers::Offset<::flatbuffers::String> declaration_file) { fbb_.AddOffset(Service::VT_DECLARATION_FILE, declaration_file); } - explicit ServiceBuilder(flatbuffers::FlatBufferBuilder &_fbb) + explicit ServiceBuilder(::flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); } - flatbuffers::Offset Finish() { + ::flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); - auto o = flatbuffers::Offset(end); + auto o = ::flatbuffers::Offset(end); fbb_.Required(o, Service::VT_NAME); return o; } }; -inline flatbuffers::Offset CreateService( - flatbuffers::FlatBufferBuilder &_fbb, - flatbuffers::Offset name = 0, - flatbuffers::Offset>> calls = 0, - flatbuffers::Offset>> attributes = 0, - flatbuffers::Offset>> documentation = 0, - flatbuffers::Offset declaration_file = 0) { +inline ::flatbuffers::Offset CreateService( + ::flatbuffers::FlatBufferBuilder &_fbb, + ::flatbuffers::Offset<::flatbuffers::String> name = 0, + ::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset>> calls = 0, + ::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset>> attributes = 0, + ::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>>> documentation = 0, + ::flatbuffers::Offset<::flatbuffers::String> declaration_file = 0) { ServiceBuilder builder_(_fbb); builder_.add_declaration_file(declaration_file); builder_.add_documentation(documentation); @@ -1165,17 +1165,17 @@ inline flatbuffers::Offset CreateService( return builder_.Finish(); } -inline flatbuffers::Offset CreateServiceDirect( - flatbuffers::FlatBufferBuilder &_fbb, +inline ::flatbuffers::Offset CreateServiceDirect( + ::flatbuffers::FlatBufferBuilder &_fbb, const char *name = nullptr, - std::vector> *calls = nullptr, - std::vector> *attributes = nullptr, - const std::vector> *documentation = nullptr, + std::vector<::flatbuffers::Offset> *calls = nullptr, + std::vector<::flatbuffers::Offset> *attributes = nullptr, + const std::vector<::flatbuffers::Offset<::flatbuffers::String>> *documentation = nullptr, const char *declaration_file = nullptr) { auto name__ = name ? _fbb.CreateString(name) : 0; auto calls__ = calls ? _fbb.CreateVectorOfSortedTables(calls) : 0; auto attributes__ = attributes ? _fbb.CreateVectorOfSortedTables(attributes) : 0; - auto documentation__ = documentation ? _fbb.CreateVector>(*documentation) : 0; + auto documentation__ = documentation ? _fbb.CreateVector<::flatbuffers::Offset<::flatbuffers::String>>(*documentation) : 0; auto declaration_file__ = declaration_file ? _fbb.CreateString(declaration_file) : 0; return reflection::CreateService( _fbb, @@ -1189,15 +1189,15 @@ inline flatbuffers::Offset CreateServiceDirect( /// File specific information. /// Symbols declared within a file may be recovered by iterating over all /// symbols and examining the `declaration_file` field. -struct SchemaFile FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { +struct SchemaFile FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { typedef SchemaFileBuilder Builder; enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { VT_FILENAME = 4, VT_INCLUDED_FILENAMES = 6 }; /// Filename, relative to project root. - const flatbuffers::String *filename() const { - return GetPointer(VT_FILENAME); + const ::flatbuffers::String *filename() const { + return GetPointer(VT_FILENAME); } bool KeyCompareLessThan(const SchemaFile * const o) const { return *filename() < *o->filename(); @@ -1206,10 +1206,10 @@ struct SchemaFile FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { return strcmp(filename()->c_str(), _filename); } /// Names of included files, relative to project root. - const flatbuffers::Vector> *included_filenames() const { - return GetPointer> *>(VT_INCLUDED_FILENAMES); + const ::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>> *included_filenames() const { + return GetPointer> *>(VT_INCLUDED_FILENAMES); } - bool Verify(flatbuffers::Verifier &verifier) const { + bool Verify(::flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && VerifyOffsetRequired(verifier, VT_FILENAME) && verifier.VerifyString(filename()) && @@ -1222,49 +1222,49 @@ struct SchemaFile FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { struct SchemaFileBuilder { typedef SchemaFile Table; - flatbuffers::FlatBufferBuilder &fbb_; - flatbuffers::uoffset_t start_; - void add_filename(flatbuffers::Offset filename) { + ::flatbuffers::FlatBufferBuilder &fbb_; + ::flatbuffers::uoffset_t start_; + void add_filename(::flatbuffers::Offset<::flatbuffers::String> filename) { fbb_.AddOffset(SchemaFile::VT_FILENAME, filename); } - void add_included_filenames(flatbuffers::Offset>> included_filenames) { + void add_included_filenames(::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>>> included_filenames) { fbb_.AddOffset(SchemaFile::VT_INCLUDED_FILENAMES, included_filenames); } - explicit SchemaFileBuilder(flatbuffers::FlatBufferBuilder &_fbb) + explicit SchemaFileBuilder(::flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); } - flatbuffers::Offset Finish() { + ::flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); - auto o = flatbuffers::Offset(end); + auto o = ::flatbuffers::Offset(end); fbb_.Required(o, SchemaFile::VT_FILENAME); return o; } }; -inline flatbuffers::Offset CreateSchemaFile( - flatbuffers::FlatBufferBuilder &_fbb, - flatbuffers::Offset filename = 0, - flatbuffers::Offset>> included_filenames = 0) { +inline ::flatbuffers::Offset CreateSchemaFile( + ::flatbuffers::FlatBufferBuilder &_fbb, + ::flatbuffers::Offset<::flatbuffers::String> filename = 0, + ::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>>> included_filenames = 0) { SchemaFileBuilder builder_(_fbb); builder_.add_included_filenames(included_filenames); builder_.add_filename(filename); return builder_.Finish(); } -inline flatbuffers::Offset CreateSchemaFileDirect( - flatbuffers::FlatBufferBuilder &_fbb, +inline ::flatbuffers::Offset CreateSchemaFileDirect( + ::flatbuffers::FlatBufferBuilder &_fbb, const char *filename = nullptr, - const std::vector> *included_filenames = nullptr) { + const std::vector<::flatbuffers::Offset<::flatbuffers::String>> *included_filenames = nullptr) { auto filename__ = filename ? _fbb.CreateString(filename) : 0; - auto included_filenames__ = included_filenames ? _fbb.CreateVector>(*included_filenames) : 0; + auto included_filenames__ = included_filenames ? _fbb.CreateVector<::flatbuffers::Offset<::flatbuffers::String>>(*included_filenames) : 0; return reflection::CreateSchemaFile( _fbb, filename__, included_filenames__); } -struct Schema FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { +struct Schema FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { typedef SchemaBuilder Builder; enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { VT_OBJECTS = 4, @@ -1276,33 +1276,33 @@ struct Schema FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { VT_ADVANCED_FEATURES = 16, VT_FBS_FILES = 18 }; - const flatbuffers::Vector> *objects() const { - return GetPointer> *>(VT_OBJECTS); + const ::flatbuffers::Vector<::flatbuffers::Offset> *objects() const { + return GetPointer> *>(VT_OBJECTS); } - const flatbuffers::Vector> *enums() const { - return GetPointer> *>(VT_ENUMS); + const ::flatbuffers::Vector<::flatbuffers::Offset> *enums() const { + return GetPointer> *>(VT_ENUMS); } - const flatbuffers::String *file_ident() const { - return GetPointer(VT_FILE_IDENT); + const ::flatbuffers::String *file_ident() const { + return GetPointer(VT_FILE_IDENT); } - const flatbuffers::String *file_ext() const { - return GetPointer(VT_FILE_EXT); + const ::flatbuffers::String *file_ext() const { + return GetPointer(VT_FILE_EXT); } const reflection::Object *root_table() const { return GetPointer(VT_ROOT_TABLE); } - const flatbuffers::Vector> *services() const { - return GetPointer> *>(VT_SERVICES); + const ::flatbuffers::Vector<::flatbuffers::Offset> *services() const { + return GetPointer> *>(VT_SERVICES); } reflection::AdvancedFeatures advanced_features() const { return static_cast(GetField(VT_ADVANCED_FEATURES, 0)); } /// All the files used in this compilation. Files are relative to where /// flatc was invoked. - const flatbuffers::Vector> *fbs_files() const { - return GetPointer> *>(VT_FBS_FILES); + const ::flatbuffers::Vector<::flatbuffers::Offset> *fbs_files() const { + return GetPointer> *>(VT_FBS_FILES); } - bool Verify(flatbuffers::Verifier &verifier) const { + bool Verify(::flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && VerifyOffsetRequired(verifier, VT_OBJECTS) && verifier.VerifyVector(objects()) && @@ -1329,55 +1329,55 @@ struct Schema FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { struct SchemaBuilder { typedef Schema Table; - flatbuffers::FlatBufferBuilder &fbb_; - flatbuffers::uoffset_t start_; - void add_objects(flatbuffers::Offset>> objects) { + ::flatbuffers::FlatBufferBuilder &fbb_; + ::flatbuffers::uoffset_t start_; + void add_objects(::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset>> objects) { fbb_.AddOffset(Schema::VT_OBJECTS, objects); } - void add_enums(flatbuffers::Offset>> enums) { + void add_enums(::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset>> enums) { fbb_.AddOffset(Schema::VT_ENUMS, enums); } - void add_file_ident(flatbuffers::Offset file_ident) { + void add_file_ident(::flatbuffers::Offset<::flatbuffers::String> file_ident) { fbb_.AddOffset(Schema::VT_FILE_IDENT, file_ident); } - void add_file_ext(flatbuffers::Offset file_ext) { + void add_file_ext(::flatbuffers::Offset<::flatbuffers::String> file_ext) { fbb_.AddOffset(Schema::VT_FILE_EXT, file_ext); } - void add_root_table(flatbuffers::Offset root_table) { + void add_root_table(::flatbuffers::Offset root_table) { fbb_.AddOffset(Schema::VT_ROOT_TABLE, root_table); } - void add_services(flatbuffers::Offset>> services) { + void add_services(::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset>> services) { fbb_.AddOffset(Schema::VT_SERVICES, services); } void add_advanced_features(reflection::AdvancedFeatures advanced_features) { fbb_.AddElement(Schema::VT_ADVANCED_FEATURES, static_cast(advanced_features), 0); } - void add_fbs_files(flatbuffers::Offset>> fbs_files) { + void add_fbs_files(::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset>> fbs_files) { fbb_.AddOffset(Schema::VT_FBS_FILES, fbs_files); } - explicit SchemaBuilder(flatbuffers::FlatBufferBuilder &_fbb) + explicit SchemaBuilder(::flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); } - flatbuffers::Offset Finish() { + ::flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); - auto o = flatbuffers::Offset(end); + auto o = ::flatbuffers::Offset(end); fbb_.Required(o, Schema::VT_OBJECTS); fbb_.Required(o, Schema::VT_ENUMS); return o; } }; -inline flatbuffers::Offset CreateSchema( - flatbuffers::FlatBufferBuilder &_fbb, - flatbuffers::Offset>> objects = 0, - flatbuffers::Offset>> enums = 0, - flatbuffers::Offset file_ident = 0, - flatbuffers::Offset file_ext = 0, - flatbuffers::Offset root_table = 0, - flatbuffers::Offset>> services = 0, +inline ::flatbuffers::Offset CreateSchema( + ::flatbuffers::FlatBufferBuilder &_fbb, + ::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset>> objects = 0, + ::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset>> enums = 0, + ::flatbuffers::Offset<::flatbuffers::String> file_ident = 0, + ::flatbuffers::Offset<::flatbuffers::String> file_ext = 0, + ::flatbuffers::Offset root_table = 0, + ::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset>> services = 0, reflection::AdvancedFeatures advanced_features = static_cast(0), - flatbuffers::Offset>> fbs_files = 0) { + ::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset>> fbs_files = 0) { SchemaBuilder builder_(_fbb); builder_.add_advanced_features(advanced_features); builder_.add_fbs_files(fbs_files); @@ -1390,16 +1390,16 @@ inline flatbuffers::Offset CreateSchema( return builder_.Finish(); } -inline flatbuffers::Offset CreateSchemaDirect( - flatbuffers::FlatBufferBuilder &_fbb, - std::vector> *objects = nullptr, - std::vector> *enums = nullptr, +inline ::flatbuffers::Offset CreateSchemaDirect( + ::flatbuffers::FlatBufferBuilder &_fbb, + std::vector<::flatbuffers::Offset> *objects = nullptr, + std::vector<::flatbuffers::Offset> *enums = nullptr, const char *file_ident = nullptr, const char *file_ext = nullptr, - flatbuffers::Offset root_table = 0, - std::vector> *services = nullptr, + ::flatbuffers::Offset root_table = 0, + std::vector<::flatbuffers::Offset> *services = nullptr, reflection::AdvancedFeatures advanced_features = static_cast(0), - std::vector> *fbs_files = nullptr) { + std::vector<::flatbuffers::Offset> *fbs_files = nullptr) { auto objects__ = objects ? _fbb.CreateVectorOfSortedTables(objects) : 0; auto enums__ = enums ? _fbb.CreateVectorOfSortedTables(enums) : 0; auto file_ident__ = file_ident ? _fbb.CreateString(file_ident) : 0; @@ -1419,11 +1419,11 @@ inline flatbuffers::Offset CreateSchemaDirect( } inline const reflection::Schema *GetSchema(const void *buf) { - return flatbuffers::GetRoot(buf); + return ::flatbuffers::GetRoot(buf); } inline const reflection::Schema *GetSizePrefixedSchema(const void *buf) { - return flatbuffers::GetSizePrefixedRoot(buf); + return ::flatbuffers::GetSizePrefixedRoot(buf); } inline const char *SchemaIdentifier() { @@ -1431,22 +1431,22 @@ inline const char *SchemaIdentifier() { } inline bool SchemaBufferHasIdentifier(const void *buf) { - return flatbuffers::BufferHasIdentifier( + return ::flatbuffers::BufferHasIdentifier( buf, SchemaIdentifier()); } inline bool SizePrefixedSchemaBufferHasIdentifier(const void *buf) { - return flatbuffers::BufferHasIdentifier( + return ::flatbuffers::BufferHasIdentifier( buf, SchemaIdentifier(), true); } inline bool VerifySchemaBuffer( - flatbuffers::Verifier &verifier) { + ::flatbuffers::Verifier &verifier) { return verifier.VerifyBuffer(SchemaIdentifier()); } inline bool VerifySizePrefixedSchemaBuffer( - flatbuffers::Verifier &verifier) { + ::flatbuffers::Verifier &verifier) { return verifier.VerifySizePrefixedBuffer(SchemaIdentifier()); } @@ -1455,14 +1455,14 @@ inline const char *SchemaExtension() { } inline void FinishSchemaBuffer( - flatbuffers::FlatBufferBuilder &fbb, - flatbuffers::Offset root) { + ::flatbuffers::FlatBufferBuilder &fbb, + ::flatbuffers::Offset root) { fbb.Finish(root, SchemaIdentifier()); } inline void FinishSizePrefixedSchemaBuffer( - flatbuffers::FlatBufferBuilder &fbb, - flatbuffers::Offset root) { + ::flatbuffers::FlatBufferBuilder &fbb, + ::flatbuffers::Offset root) { fbb.FinishSizePrefixed(root, SchemaIdentifier()); } diff --git a/samples/monster_generated.h b/samples/monster_generated.h index 2d1e17b1cd..1cf8e7a1b5 100644 --- a/samples/monster_generated.h +++ b/samples/monster_generated.h @@ -33,11 +33,11 @@ bool operator!=(const MonsterT &lhs, const MonsterT &rhs); bool operator==(const WeaponT &lhs, const WeaponT &rhs); bool operator!=(const WeaponT &lhs, const WeaponT &rhs); -inline const flatbuffers::TypeTable *Vec3TypeTable(); +inline const ::flatbuffers::TypeTable *Vec3TypeTable(); -inline const flatbuffers::TypeTable *MonsterTypeTable(); +inline const ::flatbuffers::TypeTable *MonsterTypeTable(); -inline const flatbuffers::TypeTable *WeaponTypeTable(); +inline const ::flatbuffers::TypeTable *WeaponTypeTable(); enum Color : int8_t { Color_Red = 0, @@ -67,7 +67,7 @@ inline const char * const *EnumNamesColor() { } inline const char *EnumNameColor(Color e) { - if (flatbuffers::IsOutRange(e, Color_Red, Color_Blue)) return ""; + if (::flatbuffers::IsOutRange(e, Color_Red, Color_Blue)) return ""; const size_t index = static_cast(e); return EnumNamesColor()[index]; } @@ -97,7 +97,7 @@ inline const char * const *EnumNamesEquipment() { } inline const char *EnumNameEquipment(Equipment e) { - if (flatbuffers::IsOutRange(e, Equipment_NONE, Equipment_Weapon)) return ""; + if (::flatbuffers::IsOutRange(e, Equipment_NONE, Equipment_Weapon)) return ""; const size_t index = static_cast(e); return EnumNamesEquipment()[index]; } @@ -145,8 +145,8 @@ struct EquipmentUnion { } } - static void *UnPack(const void *obj, Equipment type, const flatbuffers::resolver_function_t *resolver); - flatbuffers::Offset Pack(flatbuffers::FlatBufferBuilder &_fbb, const flatbuffers::rehasher_function_t *_rehasher = nullptr) const; + static void *UnPack(const void *obj, Equipment type, const ::flatbuffers::resolver_function_t *resolver); + ::flatbuffers::Offset Pack(::flatbuffers::FlatBufferBuilder &_fbb, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr) const; MyGame::Sample::WeaponT *AsWeapon() { return type == Equipment_Weapon ? @@ -179,8 +179,8 @@ inline bool operator!=(const EquipmentUnion &lhs, const EquipmentUnion &rhs) { return !(lhs == rhs); } -bool VerifyEquipment(flatbuffers::Verifier &verifier, const void *obj, Equipment type); -bool VerifyEquipmentVector(flatbuffers::Verifier &verifier, const flatbuffers::Vector> *values, const flatbuffers::Vector *types); +bool VerifyEquipment(::flatbuffers::Verifier &verifier, const void *obj, Equipment type); +bool VerifyEquipmentVector(::flatbuffers::Verifier &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types); FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(4) Vec3 FLATBUFFERS_FINAL_CLASS { private: @@ -189,7 +189,7 @@ FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(4) Vec3 FLATBUFFERS_FINAL_CLASS { float z_; public: - static const flatbuffers::TypeTable *MiniReflectTypeTable() { + static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { return Vec3TypeTable(); } Vec3() @@ -198,27 +198,27 @@ FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(4) Vec3 FLATBUFFERS_FINAL_CLASS { z_(0) { } Vec3(float _x, float _y, float _z) - : x_(flatbuffers::EndianScalar(_x)), - y_(flatbuffers::EndianScalar(_y)), - z_(flatbuffers::EndianScalar(_z)) { + : x_(::flatbuffers::EndianScalar(_x)), + y_(::flatbuffers::EndianScalar(_y)), + z_(::flatbuffers::EndianScalar(_z)) { } float x() const { - return flatbuffers::EndianScalar(x_); + return ::flatbuffers::EndianScalar(x_); } void mutate_x(float _x) { - flatbuffers::WriteScalar(&x_, _x); + ::flatbuffers::WriteScalar(&x_, _x); } float y() const { - return flatbuffers::EndianScalar(y_); + return ::flatbuffers::EndianScalar(y_); } void mutate_y(float _y) { - flatbuffers::WriteScalar(&y_, _y); + ::flatbuffers::WriteScalar(&y_, _y); } float z() const { - return flatbuffers::EndianScalar(z_); + return ::flatbuffers::EndianScalar(z_); } void mutate_z(float _z) { - flatbuffers::WriteScalar(&z_, _z); + ::flatbuffers::WriteScalar(&z_, _z); } }; FLATBUFFERS_STRUCT_END(Vec3, 12); @@ -235,7 +235,7 @@ inline bool operator!=(const Vec3 &lhs, const Vec3 &rhs) { } -struct MonsterT : public flatbuffers::NativeTable { +struct MonsterT : public ::flatbuffers::NativeTable { typedef Monster TableType; flatbuffers::unique_ptr pos{}; int16_t mana = 150; @@ -252,10 +252,10 @@ struct MonsterT : public flatbuffers::NativeTable { MonsterT &operator=(MonsterT o) FLATBUFFERS_NOEXCEPT; }; -struct Monster FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { +struct Monster FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { typedef MonsterT NativeTableType; typedef MonsterBuilder Builder; - static const flatbuffers::TypeTable *MiniReflectTypeTable() { + static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { return MonsterTypeTable(); } enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { @@ -288,17 +288,17 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { bool mutate_hp(int16_t _hp = 100) { return SetField(VT_HP, _hp, 100); } - const flatbuffers::String *name() const { - return GetPointer(VT_NAME); + const ::flatbuffers::String *name() const { + return GetPointer(VT_NAME); } - flatbuffers::String *mutable_name() { - return GetPointer(VT_NAME); + ::flatbuffers::String *mutable_name() { + return GetPointer<::flatbuffers::String *>(VT_NAME); } - const flatbuffers::Vector *inventory() const { - return GetPointer *>(VT_INVENTORY); + const ::flatbuffers::Vector *inventory() const { + return GetPointer *>(VT_INVENTORY); } - flatbuffers::Vector *mutable_inventory() { - return GetPointer *>(VT_INVENTORY); + ::flatbuffers::Vector *mutable_inventory() { + return GetPointer<::flatbuffers::Vector *>(VT_INVENTORY); } MyGame::Sample::Color color() const { return static_cast(GetField(VT_COLOR, 2)); @@ -306,11 +306,11 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { bool mutate_color(MyGame::Sample::Color _color = static_cast(2)) { return SetField(VT_COLOR, static_cast(_color), 2); } - const flatbuffers::Vector> *weapons() const { - return GetPointer> *>(VT_WEAPONS); + const ::flatbuffers::Vector<::flatbuffers::Offset> *weapons() const { + return GetPointer> *>(VT_WEAPONS); } - flatbuffers::Vector> *mutable_weapons() { - return GetPointer> *>(VT_WEAPONS); + ::flatbuffers::Vector<::flatbuffers::Offset> *mutable_weapons() { + return GetPointer<::flatbuffers::Vector<::flatbuffers::Offset> *>(VT_WEAPONS); } MyGame::Sample::Equipment equipped_type() const { return static_cast(GetField(VT_EQUIPPED_TYPE, 0)); @@ -325,13 +325,13 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { void *mutable_equipped() { return GetPointer(VT_EQUIPPED); } - const flatbuffers::Vector *path() const { - return GetPointer *>(VT_PATH); + const ::flatbuffers::Vector *path() const { + return GetPointer *>(VT_PATH); } - flatbuffers::Vector *mutable_path() { - return GetPointer *>(VT_PATH); + ::flatbuffers::Vector *mutable_path() { + return GetPointer<::flatbuffers::Vector *>(VT_PATH); } - bool Verify(flatbuffers::Verifier &verifier) const { + bool Verify(::flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_POS, 4) && VerifyField(verifier, VT_MANA, 2) && @@ -351,9 +351,9 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { verifier.VerifyVector(path()) && verifier.EndTable(); } - MonsterT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; - void UnPackTo(MonsterT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const; - static flatbuffers::Offset Pack(flatbuffers::FlatBufferBuilder &_fbb, const MonsterT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); + MonsterT *UnPack(const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; + void UnPackTo(MonsterT *_o, const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; + static ::flatbuffers::Offset Pack(::flatbuffers::FlatBufferBuilder &_fbb, const MonsterT* _o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); }; template<> inline const MyGame::Sample::Weapon *Monster::equipped_as() const { @@ -362,8 +362,8 @@ template<> inline const MyGame::Sample::Weapon *Monster::equipped_as(Monster::VT_HP, hp, 100); } - void add_name(flatbuffers::Offset name) { + void add_name(::flatbuffers::Offset<::flatbuffers::String> name) { fbb_.AddOffset(Monster::VT_NAME, name); } - void add_inventory(flatbuffers::Offset> inventory) { + void add_inventory(::flatbuffers::Offset<::flatbuffers::Vector> inventory) { fbb_.AddOffset(Monster::VT_INVENTORY, inventory); } void add_color(MyGame::Sample::Color color) { fbb_.AddElement(Monster::VT_COLOR, static_cast(color), 2); } - void add_weapons(flatbuffers::Offset>> weapons) { + void add_weapons(::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset>> weapons) { fbb_.AddOffset(Monster::VT_WEAPONS, weapons); } void add_equipped_type(MyGame::Sample::Equipment equipped_type) { fbb_.AddElement(Monster::VT_EQUIPPED_TYPE, static_cast(equipped_type), 0); } - void add_equipped(flatbuffers::Offset equipped) { + void add_equipped(::flatbuffers::Offset equipped) { fbb_.AddOffset(Monster::VT_EQUIPPED, equipped); } - void add_path(flatbuffers::Offset> path) { + void add_path(::flatbuffers::Offset<::flatbuffers::Vector> path) { fbb_.AddOffset(Monster::VT_PATH, path); } - explicit MonsterBuilder(flatbuffers::FlatBufferBuilder &_fbb) + explicit MonsterBuilder(::flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); } - flatbuffers::Offset Finish() { + ::flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); - auto o = flatbuffers::Offset(end); + auto o = ::flatbuffers::Offset(end); return o; } }; -inline flatbuffers::Offset CreateMonster( - flatbuffers::FlatBufferBuilder &_fbb, +inline ::flatbuffers::Offset CreateMonster( + ::flatbuffers::FlatBufferBuilder &_fbb, const MyGame::Sample::Vec3 *pos = nullptr, int16_t mana = 150, int16_t hp = 100, - flatbuffers::Offset name = 0, - flatbuffers::Offset> inventory = 0, + ::flatbuffers::Offset<::flatbuffers::String> name = 0, + ::flatbuffers::Offset<::flatbuffers::Vector> inventory = 0, MyGame::Sample::Color color = MyGame::Sample::Color_Blue, - flatbuffers::Offset>> weapons = 0, + ::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset>> weapons = 0, MyGame::Sample::Equipment equipped_type = MyGame::Sample::Equipment_NONE, - flatbuffers::Offset equipped = 0, - flatbuffers::Offset> path = 0) { + ::flatbuffers::Offset equipped = 0, + ::flatbuffers::Offset<::flatbuffers::Vector> path = 0) { MonsterBuilder builder_(_fbb); builder_.add_path(path); builder_.add_equipped(equipped); @@ -431,21 +431,21 @@ inline flatbuffers::Offset CreateMonster( return builder_.Finish(); } -inline flatbuffers::Offset CreateMonsterDirect( - flatbuffers::FlatBufferBuilder &_fbb, +inline ::flatbuffers::Offset CreateMonsterDirect( + ::flatbuffers::FlatBufferBuilder &_fbb, const MyGame::Sample::Vec3 *pos = nullptr, int16_t mana = 150, int16_t hp = 100, const char *name = nullptr, const std::vector *inventory = nullptr, MyGame::Sample::Color color = MyGame::Sample::Color_Blue, - const std::vector> *weapons = nullptr, + const std::vector<::flatbuffers::Offset> *weapons = nullptr, MyGame::Sample::Equipment equipped_type = MyGame::Sample::Equipment_NONE, - flatbuffers::Offset equipped = 0, + ::flatbuffers::Offset equipped = 0, const std::vector *path = nullptr) { auto name__ = name ? _fbb.CreateString(name) : 0; auto inventory__ = inventory ? _fbb.CreateVector(*inventory) : 0; - auto weapons__ = weapons ? _fbb.CreateVector>(*weapons) : 0; + auto weapons__ = weapons ? _fbb.CreateVector<::flatbuffers::Offset>(*weapons) : 0; auto path__ = path ? _fbb.CreateVectorOfStructs(*path) : 0; return MyGame::Sample::CreateMonster( _fbb, @@ -461,29 +461,29 @@ inline flatbuffers::Offset CreateMonsterDirect( path__); } -flatbuffers::Offset CreateMonster(flatbuffers::FlatBufferBuilder &_fbb, const MonsterT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); +::flatbuffers::Offset CreateMonster(::flatbuffers::FlatBufferBuilder &_fbb, const MonsterT *_o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); -struct WeaponT : public flatbuffers::NativeTable { +struct WeaponT : public ::flatbuffers::NativeTable { typedef Weapon TableType; std::string name{}; int16_t damage = 0; }; -struct Weapon FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { +struct Weapon FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { typedef WeaponT NativeTableType; typedef WeaponBuilder Builder; - static const flatbuffers::TypeTable *MiniReflectTypeTable() { + static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { return WeaponTypeTable(); } enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { VT_NAME = 4, VT_DAMAGE = 6 }; - const flatbuffers::String *name() const { - return GetPointer(VT_NAME); + const ::flatbuffers::String *name() const { + return GetPointer(VT_NAME); } - flatbuffers::String *mutable_name() { - return GetPointer(VT_NAME); + ::flatbuffers::String *mutable_name() { + return GetPointer<::flatbuffers::String *>(VT_NAME); } int16_t damage() const { return GetField(VT_DAMAGE, 0); @@ -491,42 +491,42 @@ struct Weapon FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { bool mutate_damage(int16_t _damage = 0) { return SetField(VT_DAMAGE, _damage, 0); } - bool Verify(flatbuffers::Verifier &verifier) const { + bool Verify(::flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && VerifyOffset(verifier, VT_NAME) && verifier.VerifyString(name()) && VerifyField(verifier, VT_DAMAGE, 2) && verifier.EndTable(); } - WeaponT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; - void UnPackTo(WeaponT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const; - static flatbuffers::Offset Pack(flatbuffers::FlatBufferBuilder &_fbb, const WeaponT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); + WeaponT *UnPack(const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; + void UnPackTo(WeaponT *_o, const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; + static ::flatbuffers::Offset Pack(::flatbuffers::FlatBufferBuilder &_fbb, const WeaponT* _o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); }; struct WeaponBuilder { typedef Weapon Table; - flatbuffers::FlatBufferBuilder &fbb_; - flatbuffers::uoffset_t start_; - void add_name(flatbuffers::Offset name) { + ::flatbuffers::FlatBufferBuilder &fbb_; + ::flatbuffers::uoffset_t start_; + void add_name(::flatbuffers::Offset<::flatbuffers::String> name) { fbb_.AddOffset(Weapon::VT_NAME, name); } void add_damage(int16_t damage) { fbb_.AddElement(Weapon::VT_DAMAGE, damage, 0); } - explicit WeaponBuilder(flatbuffers::FlatBufferBuilder &_fbb) + explicit WeaponBuilder(::flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); } - flatbuffers::Offset Finish() { + ::flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); - auto o = flatbuffers::Offset(end); + auto o = ::flatbuffers::Offset(end); return o; } }; -inline flatbuffers::Offset CreateWeapon( - flatbuffers::FlatBufferBuilder &_fbb, - flatbuffers::Offset name = 0, +inline ::flatbuffers::Offset CreateWeapon( + ::flatbuffers::FlatBufferBuilder &_fbb, + ::flatbuffers::Offset<::flatbuffers::String> name = 0, int16_t damage = 0) { WeaponBuilder builder_(_fbb); builder_.add_name(name); @@ -534,8 +534,8 @@ inline flatbuffers::Offset CreateWeapon( return builder_.Finish(); } -inline flatbuffers::Offset CreateWeaponDirect( - flatbuffers::FlatBufferBuilder &_fbb, +inline ::flatbuffers::Offset CreateWeaponDirect( + ::flatbuffers::FlatBufferBuilder &_fbb, const char *name = nullptr, int16_t damage = 0) { auto name__ = name ? _fbb.CreateString(name) : 0; @@ -545,7 +545,7 @@ inline flatbuffers::Offset CreateWeaponDirect( damage); } -flatbuffers::Offset CreateWeapon(flatbuffers::FlatBufferBuilder &_fbb, const WeaponT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); +::flatbuffers::Offset CreateWeapon(::flatbuffers::FlatBufferBuilder &_fbb, const WeaponT *_o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); inline bool operator==(const MonsterT &lhs, const MonsterT &rhs) { @@ -592,13 +592,13 @@ inline MonsterT &MonsterT::operator=(MonsterT o) FLATBUFFERS_NOEXCEPT { return *this; } -inline MonsterT *Monster::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +inline MonsterT *Monster::UnPack(const ::flatbuffers::resolver_function_t *_resolver) const { auto _o = std::unique_ptr(new MonsterT()); UnPackTo(_o.get(), _resolver); return _o.release(); } -inline void Monster::UnPackTo(MonsterT *_o, const flatbuffers::resolver_function_t *_resolver) const { +inline void Monster::UnPackTo(MonsterT *_o, const ::flatbuffers::resolver_function_t *_resolver) const { (void)_o; (void)_resolver; { auto _e = pos(); if (_e) _o->pos = flatbuffers::unique_ptr(new MyGame::Sample::Vec3(*_e)); } @@ -607,27 +607,27 @@ inline void Monster::UnPackTo(MonsterT *_o, const flatbuffers::resolver_function { auto _e = name(); if (_e) _o->name = _e->str(); } { auto _e = inventory(); if (_e) { _o->inventory.resize(_e->size()); std::copy(_e->begin(), _e->end(), _o->inventory.begin()); } } { auto _e = color(); _o->color = _e; } - { auto _e = weapons(); if (_e) { _o->weapons.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { if(_o->weapons[_i]) { _e->Get(_i)->UnPackTo(_o->weapons[_i].get(), _resolver); } else { _o->weapons[_i] = flatbuffers::unique_ptr(_e->Get(_i)->UnPack(_resolver)); }; } } else { _o->weapons.resize(0); } } + { auto _e = weapons(); if (_e) { _o->weapons.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { if(_o->weapons[_i]) { _e->Get(_i)->UnPackTo(_o->weapons[_i].get(), _resolver); } else { _o->weapons[_i] = flatbuffers::unique_ptr(_e->Get(_i)->UnPack(_resolver)); }; } } else { _o->weapons.resize(0); } } { auto _e = equipped_type(); _o->equipped.type = _e; } { auto _e = equipped(); if (_e) _o->equipped.value = MyGame::Sample::EquipmentUnion::UnPack(_e, equipped_type(), _resolver); } - { auto _e = path(); if (_e) { _o->path.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->path[_i] = *_e->Get(_i); } } else { _o->path.resize(0); } } + { auto _e = path(); if (_e) { _o->path.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->path[_i] = *_e->Get(_i); } } else { _o->path.resize(0); } } } -inline flatbuffers::Offset Monster::Pack(flatbuffers::FlatBufferBuilder &_fbb, const MonsterT* _o, const flatbuffers::rehasher_function_t *_rehasher) { +inline ::flatbuffers::Offset Monster::Pack(::flatbuffers::FlatBufferBuilder &_fbb, const MonsterT* _o, const ::flatbuffers::rehasher_function_t *_rehasher) { return CreateMonster(_fbb, _o, _rehasher); } -inline flatbuffers::Offset CreateMonster(flatbuffers::FlatBufferBuilder &_fbb, const MonsterT *_o, const flatbuffers::rehasher_function_t *_rehasher) { +inline ::flatbuffers::Offset CreateMonster(::flatbuffers::FlatBufferBuilder &_fbb, const MonsterT *_o, const ::flatbuffers::rehasher_function_t *_rehasher) { (void)_rehasher; (void)_o; - struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const MonsterT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; + struct _VectorArgs { ::flatbuffers::FlatBufferBuilder *__fbb; const MonsterT* __o; const ::flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; auto _pos = _o->pos ? _o->pos.get() : nullptr; auto _mana = _o->mana; auto _hp = _o->hp; auto _name = _o->name.empty() ? 0 : _fbb.CreateString(_o->name); auto _inventory = _o->inventory.size() ? _fbb.CreateVector(_o->inventory) : 0; auto _color = _o->color; - auto _weapons = _o->weapons.size() ? _fbb.CreateVector> (_o->weapons.size(), [](size_t i, _VectorArgs *__va) { return CreateWeapon(*__va->__fbb, __va->__o->weapons[i].get(), __va->__rehasher); }, &_va ) : 0; + auto _weapons = _o->weapons.size() ? _fbb.CreateVector<::flatbuffers::Offset> (_o->weapons.size(), [](size_t i, _VectorArgs *__va) { return CreateWeapon(*__va->__fbb, __va->__o->weapons[i].get(), __va->__rehasher); }, &_va ) : 0; auto _equipped_type = _o->equipped.type; auto _equipped = _o->equipped.Pack(_fbb); auto _path = _o->path.size() ? _fbb.CreateVectorOfStructs(_o->path) : 0; @@ -657,27 +657,27 @@ inline bool operator!=(const WeaponT &lhs, const WeaponT &rhs) { } -inline WeaponT *Weapon::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +inline WeaponT *Weapon::UnPack(const ::flatbuffers::resolver_function_t *_resolver) const { auto _o = std::unique_ptr(new WeaponT()); UnPackTo(_o.get(), _resolver); return _o.release(); } -inline void Weapon::UnPackTo(WeaponT *_o, const flatbuffers::resolver_function_t *_resolver) const { +inline void Weapon::UnPackTo(WeaponT *_o, const ::flatbuffers::resolver_function_t *_resolver) const { (void)_o; (void)_resolver; { auto _e = name(); if (_e) _o->name = _e->str(); } { auto _e = damage(); _o->damage = _e; } } -inline flatbuffers::Offset Weapon::Pack(flatbuffers::FlatBufferBuilder &_fbb, const WeaponT* _o, const flatbuffers::rehasher_function_t *_rehasher) { +inline ::flatbuffers::Offset Weapon::Pack(::flatbuffers::FlatBufferBuilder &_fbb, const WeaponT* _o, const ::flatbuffers::rehasher_function_t *_rehasher) { return CreateWeapon(_fbb, _o, _rehasher); } -inline flatbuffers::Offset CreateWeapon(flatbuffers::FlatBufferBuilder &_fbb, const WeaponT *_o, const flatbuffers::rehasher_function_t *_rehasher) { +inline ::flatbuffers::Offset CreateWeapon(::flatbuffers::FlatBufferBuilder &_fbb, const WeaponT *_o, const ::flatbuffers::rehasher_function_t *_rehasher) { (void)_rehasher; (void)_o; - struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const WeaponT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; + struct _VectorArgs { ::flatbuffers::FlatBufferBuilder *__fbb; const WeaponT* __o; const ::flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; auto _name = _o->name.empty() ? 0 : _fbb.CreateString(_o->name); auto _damage = _o->damage; return MyGame::Sample::CreateWeapon( @@ -686,7 +686,7 @@ inline flatbuffers::Offset CreateWeapon(flatbuffers::FlatBufferBuilder & _damage); } -inline bool VerifyEquipment(flatbuffers::Verifier &verifier, const void *obj, Equipment type) { +inline bool VerifyEquipment(::flatbuffers::Verifier &verifier, const void *obj, Equipment type) { switch (type) { case Equipment_NONE: { return true; @@ -699,10 +699,10 @@ inline bool VerifyEquipment(flatbuffers::Verifier &verifier, const void *obj, Eq } } -inline bool VerifyEquipmentVector(flatbuffers::Verifier &verifier, const flatbuffers::Vector> *values, const flatbuffers::Vector *types) { +inline bool VerifyEquipmentVector(::flatbuffers::Verifier &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types) { if (!values || !types) return !values && !types; if (values->size() != types->size()) return false; - for (flatbuffers::uoffset_t i = 0; i < values->size(); ++i) { + for (::flatbuffers::uoffset_t i = 0; i < values->size(); ++i) { if (!VerifyEquipment( verifier, values->Get(i), types->GetEnum(i))) { return false; @@ -711,7 +711,7 @@ inline bool VerifyEquipmentVector(flatbuffers::Verifier &verifier, const flatbuf return true; } -inline void *EquipmentUnion::UnPack(const void *obj, Equipment type, const flatbuffers::resolver_function_t *resolver) { +inline void *EquipmentUnion::UnPack(const void *obj, Equipment type, const ::flatbuffers::resolver_function_t *resolver) { (void)resolver; switch (type) { case Equipment_Weapon: { @@ -722,7 +722,7 @@ inline void *EquipmentUnion::UnPack(const void *obj, Equipment type, const flatb } } -inline flatbuffers::Offset EquipmentUnion::Pack(flatbuffers::FlatBufferBuilder &_fbb, const flatbuffers::rehasher_function_t *_rehasher) const { +inline ::flatbuffers::Offset EquipmentUnion::Pack(::flatbuffers::FlatBufferBuilder &_fbb, const ::flatbuffers::rehasher_function_t *_rehasher) const { (void)_rehasher; switch (type) { case Equipment_Weapon: { @@ -757,13 +757,13 @@ inline void EquipmentUnion::Reset() { type = Equipment_NONE; } -inline const flatbuffers::TypeTable *ColorTypeTable() { - static const flatbuffers::TypeCode type_codes[] = { - { flatbuffers::ET_CHAR, 0, 0 }, - { flatbuffers::ET_CHAR, 0, 0 }, - { flatbuffers::ET_CHAR, 0, 0 } +inline const ::flatbuffers::TypeTable *ColorTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_CHAR, 0, 0 }, + { ::flatbuffers::ET_CHAR, 0, 0 }, + { ::flatbuffers::ET_CHAR, 0, 0 } }; - static const flatbuffers::TypeFunction type_refs[] = { + static const ::flatbuffers::TypeFunction type_refs[] = { MyGame::Sample::ColorTypeTable }; static const char * const names[] = { @@ -771,35 +771,35 @@ inline const flatbuffers::TypeTable *ColorTypeTable() { "Green", "Blue" }; - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_ENUM, 3, type_codes, type_refs, nullptr, nullptr, names + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_ENUM, 3, type_codes, type_refs, nullptr, nullptr, names }; return &tt; } -inline const flatbuffers::TypeTable *EquipmentTypeTable() { - static const flatbuffers::TypeCode type_codes[] = { - { flatbuffers::ET_SEQUENCE, 0, -1 }, - { flatbuffers::ET_SEQUENCE, 0, 0 } +inline const ::flatbuffers::TypeTable *EquipmentTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_SEQUENCE, 0, -1 }, + { ::flatbuffers::ET_SEQUENCE, 0, 0 } }; - static const flatbuffers::TypeFunction type_refs[] = { + static const ::flatbuffers::TypeFunction type_refs[] = { MyGame::Sample::WeaponTypeTable }; static const char * const names[] = { "NONE", "Weapon" }; - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_UNION, 2, type_codes, type_refs, nullptr, nullptr, names + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_UNION, 2, type_codes, type_refs, nullptr, nullptr, names }; return &tt; } -inline const flatbuffers::TypeTable *Vec3TypeTable() { - static const flatbuffers::TypeCode type_codes[] = { - { flatbuffers::ET_FLOAT, 0, -1 }, - { flatbuffers::ET_FLOAT, 0, -1 }, - { flatbuffers::ET_FLOAT, 0, -1 } +inline const ::flatbuffers::TypeTable *Vec3TypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_FLOAT, 0, -1 }, + { ::flatbuffers::ET_FLOAT, 0, -1 }, + { ::flatbuffers::ET_FLOAT, 0, -1 } }; static const int64_t values[] = { 0, 4, 8, 12 }; static const char * const names[] = { @@ -807,27 +807,27 @@ inline const flatbuffers::TypeTable *Vec3TypeTable() { "y", "z" }; - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_STRUCT, 3, type_codes, nullptr, nullptr, values, names + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_STRUCT, 3, type_codes, nullptr, nullptr, values, names }; return &tt; } -inline const flatbuffers::TypeTable *MonsterTypeTable() { - static const flatbuffers::TypeCode type_codes[] = { - { flatbuffers::ET_SEQUENCE, 0, 0 }, - { flatbuffers::ET_SHORT, 0, -1 }, - { flatbuffers::ET_SHORT, 0, -1 }, - { flatbuffers::ET_STRING, 0, -1 }, - { flatbuffers::ET_BOOL, 0, -1 }, - { flatbuffers::ET_UCHAR, 1, -1 }, - { flatbuffers::ET_CHAR, 0, 1 }, - { flatbuffers::ET_SEQUENCE, 1, 2 }, - { flatbuffers::ET_UTYPE, 0, 3 }, - { flatbuffers::ET_SEQUENCE, 0, 3 }, - { flatbuffers::ET_SEQUENCE, 1, 0 } +inline const ::flatbuffers::TypeTable *MonsterTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_SEQUENCE, 0, 0 }, + { ::flatbuffers::ET_SHORT, 0, -1 }, + { ::flatbuffers::ET_SHORT, 0, -1 }, + { ::flatbuffers::ET_STRING, 0, -1 }, + { ::flatbuffers::ET_BOOL, 0, -1 }, + { ::flatbuffers::ET_UCHAR, 1, -1 }, + { ::flatbuffers::ET_CHAR, 0, 1 }, + { ::flatbuffers::ET_SEQUENCE, 1, 2 }, + { ::flatbuffers::ET_UTYPE, 0, 3 }, + { ::flatbuffers::ET_SEQUENCE, 0, 3 }, + { ::flatbuffers::ET_SEQUENCE, 1, 0 } }; - static const flatbuffers::TypeFunction type_refs[] = { + static const ::flatbuffers::TypeFunction type_refs[] = { MyGame::Sample::Vec3TypeTable, MyGame::Sample::ColorTypeTable, MyGame::Sample::WeaponTypeTable, @@ -846,74 +846,74 @@ inline const flatbuffers::TypeTable *MonsterTypeTable() { "equipped", "path" }; - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_TABLE, 11, type_codes, type_refs, nullptr, nullptr, names + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_TABLE, 11, type_codes, type_refs, nullptr, nullptr, names }; return &tt; } -inline const flatbuffers::TypeTable *WeaponTypeTable() { - static const flatbuffers::TypeCode type_codes[] = { - { flatbuffers::ET_STRING, 0, -1 }, - { flatbuffers::ET_SHORT, 0, -1 } +inline const ::flatbuffers::TypeTable *WeaponTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_STRING, 0, -1 }, + { ::flatbuffers::ET_SHORT, 0, -1 } }; static const char * const names[] = { "name", "damage" }; - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_TABLE, 2, type_codes, nullptr, nullptr, nullptr, names + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_TABLE, 2, type_codes, nullptr, nullptr, nullptr, names }; return &tt; } inline const MyGame::Sample::Monster *GetMonster(const void *buf) { - return flatbuffers::GetRoot(buf); + return ::flatbuffers::GetRoot(buf); } inline const MyGame::Sample::Monster *GetSizePrefixedMonster(const void *buf) { - return flatbuffers::GetSizePrefixedRoot(buf); + return ::flatbuffers::GetSizePrefixedRoot(buf); } inline Monster *GetMutableMonster(void *buf) { - return flatbuffers::GetMutableRoot(buf); + return ::flatbuffers::GetMutableRoot(buf); } inline MyGame::Sample::Monster *GetMutableSizePrefixedMonster(void *buf) { - return flatbuffers::GetMutableSizePrefixedRoot(buf); + return ::flatbuffers::GetMutableSizePrefixedRoot(buf); } inline bool VerifyMonsterBuffer( - flatbuffers::Verifier &verifier) { + ::flatbuffers::Verifier &verifier) { return verifier.VerifyBuffer(nullptr); } inline bool VerifySizePrefixedMonsterBuffer( - flatbuffers::Verifier &verifier) { + ::flatbuffers::Verifier &verifier) { return verifier.VerifySizePrefixedBuffer(nullptr); } inline void FinishMonsterBuffer( - flatbuffers::FlatBufferBuilder &fbb, - flatbuffers::Offset root) { + ::flatbuffers::FlatBufferBuilder &fbb, + ::flatbuffers::Offset root) { fbb.Finish(root); } inline void FinishSizePrefixedMonsterBuffer( - flatbuffers::FlatBufferBuilder &fbb, - flatbuffers::Offset root) { + ::flatbuffers::FlatBufferBuilder &fbb, + ::flatbuffers::Offset root) { fbb.FinishSizePrefixed(root); } inline flatbuffers::unique_ptr UnPackMonster( const void *buf, - const flatbuffers::resolver_function_t *res = nullptr) { + const ::flatbuffers::resolver_function_t *res = nullptr) { return flatbuffers::unique_ptr(GetMonster(buf)->UnPack(res)); } inline flatbuffers::unique_ptr UnPackSizePrefixedMonster( const void *buf, - const flatbuffers::resolver_function_t *res = nullptr) { + const ::flatbuffers::resolver_function_t *res = nullptr) { return flatbuffers::unique_ptr(GetSizePrefixedMonster(buf)->UnPack(res)); } diff --git a/src/idl_gen_cpp.cpp b/src/idl_gen_cpp.cpp index 80f2d42b32..262eb1ab07 100644 --- a/src/idl_gen_cpp.cpp +++ b/src/idl_gen_cpp.cpp @@ -90,7 +90,7 @@ enum CppStandard { CPP_STD_X0 = 0, CPP_STD_11, CPP_STD_17 }; // Define a style of 'struct' constructor if it has 'Array' fields. enum GenArrayArgMode { kArrayArgModeNone, // don't generate initialization args - kArrayArgModeSpanStatic, // generate flatbuffers::span + kArrayArgModeSpanStatic, // generate ::flatbuffers::span }; // Extension of IDLOptions for cpp-generator. @@ -252,14 +252,13 @@ class CppGenerator : public BaseGenerator { // Get the name of the included file as defined by the schema, and strip // the .fbs extension. const std::string name_without_ext = - flatbuffers::StripExtension(included_file.schema_name); + StripExtension(included_file.schema_name); // If we are told to keep the prefix of the included schema, leave it // unchanged, otherwise strip the leading path off so just the "basename" // of the include is retained. const std::string basename = - opts_.keep_prefix ? name_without_ext - : flatbuffers::StripPath(name_without_ext); + opts_.keep_prefix ? name_without_ext : StripPath(name_without_ext); code_ += "#include \"" + GeneratedFileName(opts_.include_prefix, basename, opts_) + "\""; @@ -522,7 +521,7 @@ class CppGenerator : public BaseGenerator { code_ += "const {{CPP_NAME}} *{{NULLABLE_EXT}}Get{{STRUCT_NAME}}(const void " "*buf) {"; - code_ += " return flatbuffers::GetRoot<{{CPP_NAME}}>(buf);"; + code_ += " return ::flatbuffers::GetRoot<{{CPP_NAME}}>(buf);"; code_ += "}"; code_ += ""; @@ -531,14 +530,16 @@ class CppGenerator : public BaseGenerator { "const {{CPP_NAME}} " "*{{NULLABLE_EXT}}GetSizePrefixed{{STRUCT_NAME}}(const void " "*buf) {"; - code_ += " return flatbuffers::GetSizePrefixedRoot<{{CPP_NAME}}>(buf);"; + code_ += + " return ::flatbuffers::GetSizePrefixedRoot<{{CPP_NAME}}>(buf);"; code_ += "}"; code_ += ""; if (opts_.mutable_buffer) { code_ += "inline \\"; code_ += "{{STRUCT_NAME}} *GetMutable{{STRUCT_NAME}}(void *buf) {"; - code_ += " return flatbuffers::GetMutableRoot<{{STRUCT_NAME}}>(buf);"; + code_ += + " return ::flatbuffers::GetMutableRoot<{{STRUCT_NAME}}>(buf);"; code_ += "}"; code_ += ""; @@ -549,7 +550,7 @@ class CppGenerator : public BaseGenerator { "*buf) {"; code_ += " return " - "flatbuffers::GetMutableSizePrefixedRoot<{{CPP_NAME}}>(buf);"; + "::flatbuffers::GetMutableSizePrefixedRoot<{{CPP_NAME}}>(buf);"; code_ += "}"; code_ += ""; } @@ -564,7 +565,7 @@ class CppGenerator : public BaseGenerator { // Check if a buffer has the identifier. code_ += "inline \\"; code_ += "bool {{STRUCT_NAME}}BufferHasIdentifier(const void *buf) {"; - code_ += " return flatbuffers::BufferHasIdentifier("; + code_ += " return ::flatbuffers::BufferHasIdentifier("; code_ += " buf, {{STRUCT_NAME}}Identifier());"; code_ += "}"; code_ += ""; @@ -574,7 +575,7 @@ class CppGenerator : public BaseGenerator { code_ += "bool SizePrefixed{{STRUCT_NAME}}BufferHasIdentifier(const void " "*buf) {"; - code_ += " return flatbuffers::BufferHasIdentifier("; + code_ += " return ::flatbuffers::BufferHasIdentifier("; code_ += " buf, {{STRUCT_NAME}}Identifier(), true);"; code_ += "}"; code_ += ""; @@ -588,13 +589,13 @@ class CppGenerator : public BaseGenerator { } code_ += "inline bool Verify{{STRUCT_NAME}}Buffer("; - code_ += " flatbuffers::Verifier &verifier) {"; + code_ += " ::flatbuffers::Verifier &verifier) {"; code_ += " return verifier.VerifyBuffer<{{CPP_NAME}}>({{ID}});"; code_ += "}"; code_ += ""; code_ += "inline bool VerifySizePrefixed{{STRUCT_NAME}}Buffer("; - code_ += " flatbuffers::Verifier &verifier) {"; + code_ += " ::flatbuffers::Verifier &verifier) {"; code_ += " return verifier.VerifySizePrefixedBuffer<{{CPP_NAME}}>({{ID}});"; code_ += "}"; @@ -610,8 +611,8 @@ class CppGenerator : public BaseGenerator { // Finish a buffer with a given root object: code_ += "inline void Finish{{STRUCT_NAME}}Buffer("; - code_ += " flatbuffers::FlatBufferBuilder &fbb,"; - code_ += " flatbuffers::Offset<{{CPP_NAME}}> root) {"; + code_ += " ::flatbuffers::FlatBufferBuilder &fbb,"; + code_ += " ::flatbuffers::Offset<{{CPP_NAME}}> root) {"; if (parser_.file_identifier_.length()) code_ += " fbb.Finish(root, {{STRUCT_NAME}}Identifier());"; else @@ -620,8 +621,8 @@ class CppGenerator : public BaseGenerator { code_ += ""; code_ += "inline void FinishSizePrefixed{{STRUCT_NAME}}Buffer("; - code_ += " flatbuffers::FlatBufferBuilder &fbb,"; - code_ += " flatbuffers::Offset<{{CPP_NAME}}> root) {"; + code_ += " ::flatbuffers::FlatBufferBuilder &fbb,"; + code_ += " ::flatbuffers::Offset<{{CPP_NAME}}> root) {"; if (parser_.file_identifier_.length()) code_ += " fbb.FinishSizePrefixed(root, {{STRUCT_NAME}}Identifier());"; else @@ -639,7 +640,8 @@ class CppGenerator : public BaseGenerator { code_ += "inline {{UNPACK_RETURN}} UnPack{{STRUCT_NAME}}("; code_ += " const void *buf,"; - code_ += " const flatbuffers::resolver_function_t *res = nullptr) {"; + code_ += + " const ::flatbuffers::resolver_function_t *res = nullptr) {"; code_ += " return {{UNPACK_TYPE}}\\"; code_ += "(Get{{STRUCT_NAME}}(buf)->UnPack(res));"; code_ += "}"; @@ -647,7 +649,8 @@ class CppGenerator : public BaseGenerator { code_ += "inline {{UNPACK_RETURN}} UnPackSizePrefixed{{STRUCT_NAME}}("; code_ += " const void *buf,"; - code_ += " const flatbuffers::resolver_function_t *res = nullptr) {"; + code_ += + " const ::flatbuffers::resolver_function_t *res = nullptr) {"; code_ += " return {{UNPACK_TYPE}}\\"; code_ += "(GetSizePrefixed{{STRUCT_NAME}}(buf)->UnPack(res));"; code_ += "}"; @@ -735,12 +738,12 @@ class CppGenerator : public BaseGenerator { std::string GenTypePointer(const Type &type) const { switch (type.base_type) { case BASE_TYPE_STRING: { - return "flatbuffers::String"; + return "::flatbuffers::String"; } case BASE_TYPE_VECTOR: { const auto type_name = GenTypeWire( type.VectorType(), "", VectorElementUserFacing(type.VectorType())); - return "flatbuffers::Vector<" + type_name + ">"; + return "::flatbuffers::Vector<" + type_name + ">"; } case BASE_TYPE_STRUCT: { return WrapInNameSpace(*type.struct_def); @@ -762,7 +765,7 @@ class CppGenerator : public BaseGenerator { } else if (IsStruct(type)) { return "const " + GenTypePointer(type) + " *"; } else { - return "flatbuffers::Offset<" + GenTypePointer(type) + ">" + postfix; + return "::flatbuffers::Offset<" + GenTypePointer(type) + ">" + postfix; } } @@ -774,7 +777,7 @@ class CppGenerator : public BaseGenerator { } else if (IsStruct(type)) { return GenTypePointer(type); } else { - return "flatbuffers::uoffset_t"; + return "::flatbuffers::uoffset_t"; } } @@ -807,7 +810,8 @@ class CppGenerator : public BaseGenerator { } bool FlexibleStringConstructor(const FieldDef *field) { - auto attr = field != nullptr && (field->attributes.Lookup("cpp_str_flex_ctor") != nullptr); + auto attr = field != nullptr && + (field->attributes.Lookup("cpp_str_flex_ctor") != nullptr); auto ret = attr ? attr : opts_.cpp_object_api_string_flexible_constructor; return ret && NativeString(field) != "std::string"; // Only for custom string types. @@ -835,10 +839,10 @@ class CppGenerator : public BaseGenerator { return ptr_type == "naked" ? "" : ".get()"; } - std::string GenOptionalNull() { return "flatbuffers::nullopt"; } + std::string GenOptionalNull() { return "::flatbuffers::nullopt"; } std::string GenOptionalDecl(const Type &type) { - return "flatbuffers::Optional<" + GenTypeBasic(type, true) + ">"; + return "::flatbuffers::Optional<" + GenTypeBasic(type, true) + ">"; } std::string GenTypeNative(const Type &type, bool invector, @@ -912,10 +916,10 @@ class CppGenerator : public BaseGenerator { } std::string GenTypeSpan(const Type &type, bool immutable, size_t extent) { - // Generate "flatbuffers::span". + // Generate "::flatbuffers::span". FLATBUFFERS_ASSERT(IsSeries(type) && "unexpected type"); auto element_type = type.VectorType(); - std::string text = "flatbuffers::span<"; + std::string text = "::flatbuffers::span<"; text += immutable ? "const " : ""; if (IsScalar(element_type.base_type)) { text += GenTypeBasic(element_type, IsEnum(element_type)); @@ -935,7 +939,7 @@ class CppGenerator : public BaseGenerator { break; } } - if (extent != flatbuffers::dynamic_extent) { + if (extent != dynamic_extent) { text += ", "; text += NumToString(extent); } @@ -972,7 +976,7 @@ class CppGenerator : public BaseGenerator { } return WrapInNameSpace(ev.union_type.struct_def->defined_namespace, name); } else if (IsString(ev.union_type)) { - return native_type ? "std::string" : "flatbuffers::String"; + return native_type ? "std::string" : "::flatbuffers::String"; } else { FLATBUFFERS_ASSERT(false); return Name(ev); @@ -981,7 +985,7 @@ class CppGenerator : public BaseGenerator { std::string UnionVerifySignature(const EnumDef &enum_def) { return "bool Verify" + Name(enum_def) + - "(flatbuffers::Verifier &verifier, const void *obj, " + + "(::flatbuffers::Verifier &verifier, const void *obj, " + Name(enum_def) + " type)"; } @@ -989,42 +993,44 @@ class CppGenerator : public BaseGenerator { auto name = Name(enum_def); auto type = opts_.scoped_enums ? name : "uint8_t"; return "bool Verify" + name + "Vector" + - "(flatbuffers::Verifier &verifier, " + - "const flatbuffers::Vector> *values, " + - "const flatbuffers::Vector<" + type + "> *types)"; + "(::flatbuffers::Verifier &verifier, " + + "const ::flatbuffers::Vector<::flatbuffers::Offset> " + "*values, " + + "const ::flatbuffers::Vector<" + type + "> *types)"; } std::string UnionUnPackSignature(const EnumDef &enum_def, bool inclass) { return (inclass ? "static " : "") + std::string("void *") + (inclass ? "" : Name(enum_def) + "Union::") + "UnPack(const void *obj, " + Name(enum_def) + - " type, const flatbuffers::resolver_function_t *resolver)"; + " type, const ::flatbuffers::resolver_function_t *resolver)"; } std::string UnionPackSignature(const EnumDef &enum_def, bool inclass) { - return "flatbuffers::Offset " + + return "::flatbuffers::Offset " + (inclass ? "" : Name(enum_def) + "Union::") + - "Pack(flatbuffers::FlatBufferBuilder &_fbb, " + - "const flatbuffers::rehasher_function_t *_rehasher" + + "Pack(::flatbuffers::FlatBufferBuilder &_fbb, " + + "const ::flatbuffers::rehasher_function_t *_rehasher" + (inclass ? " = nullptr" : "") + ") const"; } std::string TableCreateSignature(const StructDef &struct_def, bool predecl, const IDLOptions &opts) { - return "flatbuffers::Offset<" + Name(struct_def) + "> Create" + - Name(struct_def) + "(flatbuffers::FlatBufferBuilder &_fbb, const " + + return "::flatbuffers::Offset<" + Name(struct_def) + "> Create" + + Name(struct_def) + + "(::flatbuffers::FlatBufferBuilder &_fbb, const " + NativeName(Name(struct_def), &struct_def, opts) + - " *_o, const flatbuffers::rehasher_function_t *_rehasher" + + " *_o, const ::flatbuffers::rehasher_function_t *_rehasher" + (predecl ? " = nullptr" : "") + ")"; } std::string TablePackSignature(const StructDef &struct_def, bool inclass, const IDLOptions &opts) { - return std::string(inclass ? "static " : "") + "flatbuffers::Offset<" + + return std::string(inclass ? "static " : "") + "::flatbuffers::Offset<" + Name(struct_def) + "> " + (inclass ? "" : Name(struct_def) + "::") + - "Pack(flatbuffers::FlatBufferBuilder &_fbb, " + "const " + + "Pack(::flatbuffers::FlatBufferBuilder &_fbb, " + "const " + NativeName(Name(struct_def), &struct_def, opts) + "* _o, " + - "const flatbuffers::rehasher_function_t *_rehasher" + + "const ::flatbuffers::rehasher_function_t *_rehasher" + (inclass ? " = nullptr" : "") + ")"; } @@ -1032,7 +1038,7 @@ class CppGenerator : public BaseGenerator { const IDLOptions &opts) { return NativeName(Name(struct_def), &struct_def, opts) + " *" + (inclass ? "" : Name(struct_def) + "::") + - "UnPack(const flatbuffers::resolver_function_t *_resolver" + + "UnPack(const ::flatbuffers::resolver_function_t *_resolver" + (inclass ? " = nullptr" : "") + ") const"; } @@ -1040,13 +1046,13 @@ class CppGenerator : public BaseGenerator { const IDLOptions &opts) { return "void " + (inclass ? "" : Name(struct_def) + "::") + "UnPackTo(" + NativeName(Name(struct_def), &struct_def, opts) + " *" + - "_o, const flatbuffers::resolver_function_t *_resolver" + + "_o, const ::flatbuffers::resolver_function_t *_resolver" + (inclass ? " = nullptr" : "") + ") const"; } void GenMiniReflectPre(const StructDef *struct_def) { code_.SetValue("NAME", struct_def->name); - code_ += "inline const flatbuffers::TypeTable *{{NAME}}TypeTable();"; + code_ += "inline const ::flatbuffers::TypeTable *{{NAME}}TypeTable();"; code_ += ""; } @@ -1104,9 +1110,9 @@ class CppGenerator : public BaseGenerator { } } if (is_array) { array_sizes.push_back(type.fixed_length); } - ts += "{ flatbuffers::" + std::string(ElementaryTypeNames()[et]) + ", " + - NumToString(is_vector || is_array) + ", " + NumToString(ref_idx) + - " }"; + ts += "{ ::flatbuffers::" + std::string(ElementaryTypeNames()[et]) + + ", " + NumToString(is_vector || is_array) + ", " + + NumToString(ref_idx) + " }"; } std::string rs; for (auto &type_ref : type_refs) { @@ -1147,14 +1153,14 @@ class CppGenerator : public BaseGenerator { code_.SetValue("ARRAYSIZES", as); code_.SetValue("NAMES", ns); code_.SetValue("VALUES", vs); - code_ += "inline const flatbuffers::TypeTable *{{NAME}}TypeTable() {"; + code_ += "inline const ::flatbuffers::TypeTable *{{NAME}}TypeTable() {"; if (num_fields) { - code_ += " static const flatbuffers::TypeCode type_codes[] = {"; + code_ += " static const ::flatbuffers::TypeCode type_codes[] = {"; code_ += " {{TYPES}}"; code_ += " };"; } if (!type_refs.empty()) { - code_ += " static const flatbuffers::TypeFunction type_refs[] = {"; + code_ += " static const ::flatbuffers::TypeFunction type_refs[] = {"; code_ += " {{REFS}}"; code_ += " };"; } @@ -1172,8 +1178,8 @@ class CppGenerator : public BaseGenerator { code_ += " {{NAMES}}"; code_ += " };"; } - code_ += " static const flatbuffers::TypeTable tt = {"; - code_ += std::string(" flatbuffers::{{SEQ_TYPE}}, {{NUM_FIELDS}}, ") + + code_ += " static const ::flatbuffers::TypeTable tt = {"; + code_ += std::string(" ::flatbuffers::{{SEQ_TYPE}}, {{NUM_FIELDS}}, ") + (num_fields ? "type_codes, " : "nullptr, ") + (!type_refs.empty() ? "type_refs, " : "nullptr, ") + (!as.empty() ? "array_sizes, " : "nullptr, ") + @@ -1383,7 +1389,7 @@ class CppGenerator : public BaseGenerator { code_ += " if (lhs.type != rhs.type) return false;"; code_ += " switch (lhs.type) {"; - for (const auto &ev: enum_def.Vals()) { + for (const auto &ev : enum_def.Vals()) { code_.SetValue("NATIVE_ID", GetEnumValUse(enum_def, *ev)); if (ev->IsNonZero()) { const auto native_type = GetUnionElement(*ev, true, opts_); @@ -1467,7 +1473,7 @@ class CppGenerator : public BaseGenerator { code_ += "inline const char *EnumName{{ENUM_NAME}}({{ENUM_NAME}} e) {"; - code_ += " if (flatbuffers::IsOutRange(e, " + + code_ += " if (::flatbuffers::IsOutRange(e, " + GetEnumValUse(enum_def, *enum_def.MinValue()) + ", " + GetEnumValUse(enum_def, *enum_def.MaxValue()) + ")) return \"\";"; @@ -1547,7 +1553,8 @@ class CppGenerator : public BaseGenerator { code_ += "inline " + UnionVectorVerifySignature(enum_def) + " {"; code_ += " if (!values || !types) return !values && !types;"; code_ += " if (values->size() != types->size()) return false;"; - code_ += " for (flatbuffers::uoffset_t i = 0; i < values->size(); ++i) {"; + code_ += + " for (::flatbuffers::uoffset_t i = 0; i < values->size(); ++i) {"; code_ += " if (!Verify" + Name(enum_def) + "("; code_ += " verifier, values->Get(i), types->GetEnum<" + Name(enum_def) + ">(i))) {"; @@ -1628,7 +1635,7 @@ class CppGenerator : public BaseGenerator { "inline {{ENUM_NAME}}Union::{{ENUM_NAME}}Union(const " "{{ENUM_NAME}}Union &u) : type(u.type), value(nullptr) {"; code_ += " switch (type) {"; - for (const auto &ev: enum_def.Vals()) { + for (const auto &ev : enum_def.Vals()) { if (ev->IsZero()) { continue; } code_.SetValue("LABEL", GetEnumValUse(enum_def, *ev)); code_.SetValue("TYPE", GetUnionElement(*ev, true, opts_)); @@ -1944,7 +1951,7 @@ class CppGenerator : public BaseGenerator { std::string initializer_list; std::string vector_copies; std::string swaps; - for (const auto &field: struct_def.fields.vec) { + for (const auto &field : struct_def.fields.vec) { const auto &type = field->value.type; if (field->deprecated || type.base_type == BASE_TYPE_UTYPE) continue; if (type.base_type == BASE_TYPE_STRUCT) { @@ -2038,7 +2045,7 @@ class CppGenerator : public BaseGenerator { } void GenCompareOperator(const StructDef &struct_def, - const std::string& accessSuffix = "") { + const std::string &accessSuffix = "") { std::string compare_op; for (auto it = struct_def.fields.vec.begin(); it != struct_def.fields.vec.end(); ++it) { @@ -2137,12 +2144,10 @@ class CppGenerator : public BaseGenerator { code_.SetValue("NATIVE_NAME", native_name); // Generate a C++ object that can hold an unpacked version of this table. - code_ += "struct {{NATIVE_NAME}} : public flatbuffers::NativeTable {"; + code_ += "struct {{NATIVE_NAME}} : public ::flatbuffers::NativeTable {"; code_ += " typedef {{STRUCT_NAME}} TableType;"; GenFullyQualifiedNameGetter(struct_def, native_name); - for (const auto field : struct_def.fields.vec) { - GenMember(*field); - } + for (const auto field : struct_def.fields.vec) { GenMember(*field); } GenOperatorNewDelete(struct_def); GenDefaultConstructor(struct_def); GenCopyMoveCtorAndAssigOpDecls(struct_def); @@ -2248,7 +2253,7 @@ class CppGenerator : public BaseGenerator { code_ += " bool KeyCompareLessThan(const {{STRUCT_NAME}} * const o) const {"; if (is_string) { - // use operator< of flatbuffers::String + // use operator< of ::flatbuffers::String code_ += " return *{{FIELD_NAME}}() < *o->{{FIELD_NAME}}();"; } else if (is_array) { const auto &elem_type = field.value.type.VectorType(); @@ -2266,7 +2271,7 @@ class CppGenerator : public BaseGenerator { } else if (is_array) { const auto &elem_type = field.value.type.VectorType(); if (IsScalar(elem_type.base_type)) { - std::string input_type = "flatbuffers::Array<" + + std::string input_type = "::flatbuffers::Array<" + GenTypeBasic(elem_type, false) + ", " + NumToString(elem_type.fixed_length) + ">"; code_.SetValue("INPUT_TYPE", input_type); @@ -2276,7 +2281,7 @@ class CppGenerator : public BaseGenerator { code_ += " const {{INPUT_TYPE}} *curr_{{FIELD_NAME}} = {{FIELD_NAME}}();"; code_ += - " for (flatbuffers::uoffset_t i = 0; i < " + " for (::flatbuffers::uoffset_t i = 0; i < " "curr_{{FIELD_NAME}}->size(); i++) {"; code_ += " const auto lhs = curr_{{FIELD_NAME}}->Get(i);"; code_ += " const auto rhs = _{{FIELD_NAME}}->Get(i);"; @@ -2581,7 +2586,7 @@ class CppGenerator : public BaseGenerator { code_.SetValue("STRUCT_NAME", Name(struct_def)); code_ += "struct {{STRUCT_NAME}} FLATBUFFERS_FINAL_CLASS" - " : private flatbuffers::Table {"; + " : private ::flatbuffers::Table {"; if (opts_.generate_object_based_api) { code_ += " typedef {{NATIVE_NAME}} NativeTableType;"; } @@ -2589,7 +2594,7 @@ class CppGenerator : public BaseGenerator { if (opts_.g_cpp_std >= cpp::CPP_STD_17) { code_ += " struct Traits;"; } if (opts_.mini_reflect != IDLOptions::kNone) { code_ += - " static const flatbuffers::TypeTable *MiniReflectTypeTable() {"; + " static const ::flatbuffers::TypeTable *MiniReflectTypeTable() {"; code_ += " return {{STRUCT_NAME}}TypeTable();"; code_ += " }"; } @@ -2635,7 +2640,7 @@ class CppGenerator : public BaseGenerator { code_ += " const {{CPP_NAME}} *{{FIELD_NAME}}_nested_root() const {"; code_ += " return " - "flatbuffers::GetRoot<{{CPP_NAME}}>({{FIELD_NAME}}()->Data());"; + "::flatbuffers::GetRoot<{{CPP_NAME}}>({{FIELD_NAME}}()->Data());"; code_ += " }"; } @@ -2659,7 +2664,7 @@ class CppGenerator : public BaseGenerator { // Generate a verifier function that can check a buffer from an untrusted // source will never cause reads outside the buffer. - code_ += " bool Verify(flatbuffers::Verifier &verifier) const {"; + code_ += " bool Verify(::flatbuffers::Verifier &verifier) const {"; code_ += " return VerifyTableStart(verifier)\\"; for (const auto &field : struct_def.fields.vec) { if (field->deprecated) { continue; } @@ -2749,8 +2754,8 @@ class CppGenerator : public BaseGenerator { // Generate a builder struct: code_ += "struct {{STRUCT_NAME}}Builder {"; code_ += " typedef {{STRUCT_NAME}} Table;"; - code_ += " flatbuffers::FlatBufferBuilder &fbb_;"; - code_ += " flatbuffers::uoffset_t start_;"; + code_ += " ::flatbuffers::FlatBufferBuilder &fbb_;"; + code_ += " ::flatbuffers::uoffset_t start_;"; bool has_string_or_vector_fields = false; for (auto it = struct_def.fields.vec.begin(); @@ -2797,18 +2802,18 @@ class CppGenerator : public BaseGenerator { // Builder constructor code_ += - " explicit {{STRUCT_NAME}}Builder(flatbuffers::FlatBufferBuilder " + " explicit {{STRUCT_NAME}}Builder(::flatbuffers::FlatBufferBuilder " "&_fbb)"; code_ += " : fbb_(_fbb) {"; code_ += " start_ = fbb_.StartTable();"; code_ += " }"; // Finish() function. - code_ += " flatbuffers::Offset<{{STRUCT_NAME}}> Finish() {"; + code_ += " ::flatbuffers::Offset<{{STRUCT_NAME}}> Finish() {"; code_ += " const auto end = fbb_.EndTable(start_);"; - code_ += " auto o = flatbuffers::Offset<{{STRUCT_NAME}}>(end);"; + code_ += " auto o = ::flatbuffers::Offset<{{STRUCT_NAME}}>(end);"; - for (const auto &field: struct_def.fields.vec) { + for (const auto &field : struct_def.fields.vec) { if (!field->deprecated && field->IsRequired()) { code_.SetValue("FIELD_NAME", Name(*field)); code_.SetValue("OFFSET_NAME", GenFieldOffsetName(*field)); @@ -2823,13 +2828,11 @@ class CppGenerator : public BaseGenerator { // Generate a convenient CreateX function that uses the above builder // to create a table in one go. code_ += - "inline flatbuffers::Offset<{{STRUCT_NAME}}> " + "inline ::flatbuffers::Offset<{{STRUCT_NAME}}> " "Create{{STRUCT_NAME}}("; - code_ += " flatbuffers::FlatBufferBuilder &_fbb\\"; + code_ += " ::flatbuffers::FlatBufferBuilder &_fbb\\"; for (const auto &field : struct_def.fields.vec) { - if (!field->deprecated) { - GenParam(*field, false, ",\n "); - } + if (!field->deprecated) { GenParam(*field, false, ",\n "); } } code_ += ") {"; @@ -2863,9 +2866,9 @@ class CppGenerator : public BaseGenerator { // Generate a CreateXDirect function with vector types as parameters if (opts_.cpp_direct_copy && has_string_or_vector_fields) { code_ += - "inline flatbuffers::Offset<{{STRUCT_NAME}}> " + "inline ::flatbuffers::Offset<{{STRUCT_NAME}}> " "Create{{STRUCT_NAME}}Direct("; - code_ += " flatbuffers::FlatBufferBuilder &_fbb\\"; + code_ += " ::flatbuffers::FlatBufferBuilder &_fbb\\"; for (const auto &field : struct_def.fields.vec) { if (!field->deprecated) { GenParam(*field, true, ",\n "); } } @@ -2955,7 +2958,7 @@ class CppGenerator : public BaseGenerator { const auto &struct_attrs = type.struct_def->attributes; const auto native_type = struct_attrs.Lookup("native_type"); if (native_type) { - std::string unpack_call = "flatbuffers::UnPack"; + std::string unpack_call = "::flatbuffers::UnPack"; const auto pack_name = struct_attrs.Lookup("native_type_pack_name"); if (pack_name) { unpack_call += pack_name->constant; } unpack_call += "(*" + val + ")"; @@ -3029,7 +3032,7 @@ class CppGenerator : public BaseGenerator { : (field.value.type.element == BASE_TYPE_UNION ? ".value" : ""); - code += "for (flatbuffers::uoffset_t _i = 0;"; + code += "for (::flatbuffers::uoffset_t _i = 0;"; code += " _i < _e->size(); _i++) { "; auto cpp_type = field.attributes.Lookup("cpp_type"); if (cpp_type) { @@ -3044,7 +3047,7 @@ class CppGenerator : public BaseGenerator { code += "(reinterpret_cast(&_o->" + name + "[_i]" + access + "), "; code += - "static_cast(" + indexing + "));"; + "static_cast<::flatbuffers::hash_value_t>(" + indexing + "));"; if (PtrType(&field) == "naked") { code += " else "; code += "_o->" + name + "[_i]" + access + " = nullptr"; @@ -3099,7 +3102,7 @@ class CppGenerator : public BaseGenerator { code += "if (_resolver) "; code += "(*_resolver)"; code += "(reinterpret_cast(&_o->" + Name(field) + "), "; - code += "static_cast(_e));"; + code += "static_cast<::flatbuffers::hash_value_t>(_e));"; if (PtrType(&field) == "naked") { code += " else "; code += "_o->" + Name(field) + " = nullptr;"; @@ -3196,7 +3199,8 @@ class CppGenerator : public BaseGenerator { // Use by-function serialization to emulate // CreateVectorOfStrings(); this works also with non-std strings. code += - "_fbb.CreateVector>" + "_fbb.CreateVector<::flatbuffers::Offset<::flatbuffers::" + "String>>" " "; code += "(" + value + ".size(), "; code += "[](size_t i, _VectorArgs *__va) { "; @@ -3219,7 +3223,7 @@ class CppGenerator : public BaseGenerator { const auto pack_name = struct_attrs.Lookup("native_type_pack_name"); if (pack_name) { - code += ", flatbuffers::Pack" + pack_name->constant; + code += ", ::flatbuffers::Pack" + pack_name->constant; } code += ")"; } else { @@ -3227,7 +3231,7 @@ class CppGenerator : public BaseGenerator { code += "(" + value + ")"; } } else { - code += "_fbb.CreateVector> "; code += "(" + value + ".size(), "; code += "[](size_t i, _VectorArgs *__va) { "; @@ -3248,7 +3252,7 @@ class CppGenerator : public BaseGenerator { } case BASE_TYPE_UNION: { code += - "_fbb.CreateVector>(" + value + ".size(), [](size_t i, _VectorArgs *__va) { " @@ -3277,7 +3281,7 @@ class CppGenerator : public BaseGenerator { const auto basetype = GenTypeBasic( field.value.type.enum_def->underlying_type, false); code += "_fbb.CreateVectorScalarCast<" + basetype + - ">(flatbuffers::data(" + value + "), " + value + + ">(::flatbuffers::data(" + value + "), " + value + ".size())"; } else if (field.attributes.Lookup("cpp_type")) { auto type = GenTypeBasic(vector_type, false); @@ -3313,7 +3317,7 @@ class CppGenerator : public BaseGenerator { const auto &struct_attribs = field.value.type.struct_def->attributes; const auto native_type = struct_attribs.Lookup("native_type"); if (native_type) { - code += "flatbuffers::Pack"; + code += "::flatbuffers::Pack"; const auto pack_name = struct_attribs.Lookup("native_type_pack_name"); if (pack_name) { code += pack_name->constant; } @@ -3415,11 +3419,11 @@ class CppGenerator : public BaseGenerator { code_ += " struct _VectorArgs " - "{ flatbuffers::FlatBufferBuilder *__fbb; " + "{ ::flatbuffers::FlatBufferBuilder *__fbb; " "const " + NativeName(Name(struct_def), &struct_def, opts_) + "* __o; " - "const flatbuffers::rehasher_function_t *__rehasher; } _va = { " + "const ::flatbuffers::rehasher_function_t *__rehasher; } _va = { " "&_fbb, _o, _rehasher}; (void)_va;"; for (auto it = struct_def.fields.vec.begin(); @@ -3568,7 +3572,7 @@ class CppGenerator : public BaseGenerator { init_list += Name(field) + "_"; if (IsScalar(type.base_type)) { auto scalar_type = GenUnderlyingCast(field, false, arg_name); - init_list += "(flatbuffers::EndianScalar(" + scalar_type + "))"; + init_list += "(::flatbuffers::EndianScalar(" + scalar_type + "))"; } else { FLATBUFFERS_ASSERT((is_array && !init_arrays) || IsStruct(type)); if (!is_array) @@ -3604,7 +3608,7 @@ class CppGenerator : public BaseGenerator { is_enum ? "CastToArrayOfEnum<" + face_type + ">" : "CastToArray"; const auto field_name = Name(*field) + "_"; const auto arg_name = "_" + Name(*field); - code_ += " flatbuffers::" + get_array + "(" + field_name + + code_ += " ::flatbuffers::" + get_array + "(" + field_name + ").CopyFromSpan(" + arg_name + ");"; } if (field->padding) { @@ -3624,7 +3628,7 @@ class CppGenerator : public BaseGenerator { // It requires a specialization of Array class. // Generate Array for Array. const auto face_type = GenTypeGet(type, " ", "", "", is_enum); - std::string ret_type = "flatbuffers::Array<" + face_type + ", " + + std::string ret_type = "::flatbuffers::Array<" + face_type + ", " + NumToString(type.fixed_length) + ">"; if (mutable_accessor) code_ += " " + ret_type + " *mutable_{{FIELD_NAME}}() {"; @@ -3633,7 +3637,7 @@ class CppGenerator : public BaseGenerator { std::string get_array = is_enum ? "CastToArrayOfEnum<" + face_type + ">" : "CastToArray"; - code_ += " return &flatbuffers::" + get_array + "({{FIELD_VALUE}});"; + code_ += " return &::flatbuffers::" + get_array + "({{FIELD_VALUE}});"; code_ += " }"; } @@ -3654,7 +3658,7 @@ class CppGenerator : public BaseGenerator { code_ += " private:"; int padding_id = 0; - for (const auto &field: struct_def.fields.vec) { + for (const auto &field : struct_def.fields.vec) { const auto &field_type = field->value.type; code_.SetValue("FIELD_TYPE", GenTypeGet(field_type, " ", "", " ", false)); code_.SetValue("FIELD_NAME", Name(*field)); @@ -3680,7 +3684,7 @@ class CppGenerator : public BaseGenerator { // Make TypeTable accessible via the generated struct. if (opts_.mini_reflect != IDLOptions::kNone) { code_ += - " static const flatbuffers::TypeTable *MiniReflectTypeTable() {"; + " static const ::flatbuffers::TypeTable *MiniReflectTypeTable() {"; code_ += " return {{STRUCT_NAME}}TypeTable();"; code_ += " }"; } @@ -3694,17 +3698,15 @@ class CppGenerator : public BaseGenerator { // excluding arrays. GenStructConstructor(struct_def, kArrayArgModeNone); - auto arrays_num = std::count_if(struct_def.fields.vec.begin(), - struct_def.fields.vec.end(), - [](const flatbuffers::FieldDef *fd) { - return IsArray(fd->value.type); - }); + auto arrays_num = std::count_if( + struct_def.fields.vec.begin(), struct_def.fields.vec.end(), + [](const FieldDef *fd) { return IsArray(fd->value.type); }); if (arrays_num > 0) { GenStructConstructor(struct_def, kArrayArgModeSpanStatic); } // Generate accessor methods of the form: - // type name() const { return flatbuffers::EndianScalar(name_); } + // type name() const { return ::flatbuffers::EndianScalar(name_); } for (const auto &field : struct_def.fields.vec) { const auto &type = field->value.type; const auto is_scalar = IsScalar(type.base_type); @@ -3714,7 +3716,7 @@ class CppGenerator : public BaseGenerator { is_array ? "" : " &", true); auto member = Name(*field) + "_"; auto value = - is_scalar ? "flatbuffers::EndianScalar(" + member + ")" : member; + is_scalar ? "::flatbuffers::EndianScalar(" + member + ")" : member; code_.SetValue("FIELD_NAME", Name(*field)); code_.SetValue("FIELD_TYPE", field_type); @@ -3743,7 +3745,7 @@ class CppGenerator : public BaseGenerator { code_ += " void mutate_{{FIELD_NAME}}({{ARG}} _{{FIELD_NAME}}) {"; code_ += - " flatbuffers::WriteScalar(&{{FIELD_NAME}}_, " + " ::flatbuffers::WriteScalar(&{{FIELD_NAME}}_, " "{{FIELD_VALUE}});"; code_ += " }"; } else if (is_array) { @@ -3858,8 +3860,7 @@ bool GenerateCPP(const Parser &parser, const std::string &path, std::string CPPMakeRule(const Parser &parser, const std::string &path, const std::string &file_name) { - const auto filebase = - flatbuffers::StripPath(flatbuffers::StripExtension(file_name)); + const auto filebase = StripPath(StripExtension(file_name)); cpp::CppGenerator geneartor(parser, path, file_name, parser.opts); const auto included_files = parser.GetIncludedFilesRecursive(file_name); std::string make_rule = diff --git a/tests/alignment_test_generated.h b/tests/alignment_test_generated.h index 0a13fe60d2..e4dd301ead 100644 --- a/tests/alignment_test_generated.h +++ b/tests/alignment_test_generated.h @@ -34,13 +34,13 @@ bool operator!=(const OuterLargeT &lhs, const OuterLargeT &rhs); bool operator==(const BadAlignmentRootT &lhs, const BadAlignmentRootT &rhs); bool operator!=(const BadAlignmentRootT &lhs, const BadAlignmentRootT &rhs); -inline const flatbuffers::TypeTable *BadAlignmentSmallTypeTable(); +inline const ::flatbuffers::TypeTable *BadAlignmentSmallTypeTable(); -inline const flatbuffers::TypeTable *BadAlignmentLargeTypeTable(); +inline const ::flatbuffers::TypeTable *BadAlignmentLargeTypeTable(); -inline const flatbuffers::TypeTable *OuterLargeTypeTable(); +inline const ::flatbuffers::TypeTable *OuterLargeTypeTable(); -inline const flatbuffers::TypeTable *BadAlignmentRootTypeTable(); +inline const ::flatbuffers::TypeTable *BadAlignmentRootTypeTable(); FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(4) BadAlignmentSmall FLATBUFFERS_FINAL_CLASS { private: @@ -49,7 +49,7 @@ FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(4) BadAlignmentSmall FLATBUFFERS_FINAL_CLASS uint32_t var_2_; public: - static const flatbuffers::TypeTable *MiniReflectTypeTable() { + static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { return BadAlignmentSmallTypeTable(); } BadAlignmentSmall() @@ -58,27 +58,27 @@ FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(4) BadAlignmentSmall FLATBUFFERS_FINAL_CLASS var_2_(0) { } BadAlignmentSmall(uint32_t _var_0, uint32_t _var_1, uint32_t _var_2) - : var_0_(flatbuffers::EndianScalar(_var_0)), - var_1_(flatbuffers::EndianScalar(_var_1)), - var_2_(flatbuffers::EndianScalar(_var_2)) { + : var_0_(::flatbuffers::EndianScalar(_var_0)), + var_1_(::flatbuffers::EndianScalar(_var_1)), + var_2_(::flatbuffers::EndianScalar(_var_2)) { } uint32_t var_0() const { - return flatbuffers::EndianScalar(var_0_); + return ::flatbuffers::EndianScalar(var_0_); } void mutate_var_0(uint32_t _var_0) { - flatbuffers::WriteScalar(&var_0_, _var_0); + ::flatbuffers::WriteScalar(&var_0_, _var_0); } uint32_t var_1() const { - return flatbuffers::EndianScalar(var_1_); + return ::flatbuffers::EndianScalar(var_1_); } void mutate_var_1(uint32_t _var_1) { - flatbuffers::WriteScalar(&var_1_, _var_1); + ::flatbuffers::WriteScalar(&var_1_, _var_1); } uint32_t var_2() const { - return flatbuffers::EndianScalar(var_2_); + return ::flatbuffers::EndianScalar(var_2_); } void mutate_var_2(uint32_t _var_2) { - flatbuffers::WriteScalar(&var_2_, _var_2); + ::flatbuffers::WriteScalar(&var_2_, _var_2); } }; FLATBUFFERS_STRUCT_END(BadAlignmentSmall, 12); @@ -100,20 +100,20 @@ FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(8) BadAlignmentLarge FLATBUFFERS_FINAL_CLASS uint64_t var_0_; public: - static const flatbuffers::TypeTable *MiniReflectTypeTable() { + static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { return BadAlignmentLargeTypeTable(); } BadAlignmentLarge() : var_0_(0) { } BadAlignmentLarge(uint64_t _var_0) - : var_0_(flatbuffers::EndianScalar(_var_0)) { + : var_0_(::flatbuffers::EndianScalar(_var_0)) { } uint64_t var_0() const { - return flatbuffers::EndianScalar(var_0_); + return ::flatbuffers::EndianScalar(var_0_); } void mutate_var_0(uint64_t _var_0) { - flatbuffers::WriteScalar(&var_0_, _var_0); + ::flatbuffers::WriteScalar(&var_0_, _var_0); } }; FLATBUFFERS_STRUCT_END(BadAlignmentLarge, 8); @@ -128,7 +128,7 @@ inline bool operator!=(const BadAlignmentLarge &lhs, const BadAlignmentLarge &rh } -struct OuterLargeT : public flatbuffers::NativeTable { +struct OuterLargeT : public ::flatbuffers::NativeTable { typedef OuterLarge TableType; flatbuffers::unique_ptr large{}; OuterLargeT() = default; @@ -137,10 +137,10 @@ struct OuterLargeT : public flatbuffers::NativeTable { OuterLargeT &operator=(OuterLargeT o) FLATBUFFERS_NOEXCEPT; }; -struct OuterLarge FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { +struct OuterLarge FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { typedef OuterLargeT NativeTableType; typedef OuterLargeBuilder Builder; - static const flatbuffers::TypeTable *MiniReflectTypeTable() { + static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { return OuterLargeTypeTable(); } enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { @@ -152,45 +152,45 @@ struct OuterLarge FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { BadAlignmentLarge *mutable_large() { return GetStruct(VT_LARGE); } - bool Verify(flatbuffers::Verifier &verifier) const { + bool Verify(::flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_LARGE, 8) && verifier.EndTable(); } - OuterLargeT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; - void UnPackTo(OuterLargeT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const; - static flatbuffers::Offset Pack(flatbuffers::FlatBufferBuilder &_fbb, const OuterLargeT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); + OuterLargeT *UnPack(const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; + void UnPackTo(OuterLargeT *_o, const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; + static ::flatbuffers::Offset Pack(::flatbuffers::FlatBufferBuilder &_fbb, const OuterLargeT* _o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); }; struct OuterLargeBuilder { typedef OuterLarge Table; - flatbuffers::FlatBufferBuilder &fbb_; - flatbuffers::uoffset_t start_; + ::flatbuffers::FlatBufferBuilder &fbb_; + ::flatbuffers::uoffset_t start_; void add_large(const BadAlignmentLarge *large) { fbb_.AddStruct(OuterLarge::VT_LARGE, large); } - explicit OuterLargeBuilder(flatbuffers::FlatBufferBuilder &_fbb) + explicit OuterLargeBuilder(::flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); } - flatbuffers::Offset Finish() { + ::flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); - auto o = flatbuffers::Offset(end); + auto o = ::flatbuffers::Offset(end); return o; } }; -inline flatbuffers::Offset CreateOuterLarge( - flatbuffers::FlatBufferBuilder &_fbb, +inline ::flatbuffers::Offset CreateOuterLarge( + ::flatbuffers::FlatBufferBuilder &_fbb, const BadAlignmentLarge *large = nullptr) { OuterLargeBuilder builder_(_fbb); builder_.add_large(large); return builder_.Finish(); } -flatbuffers::Offset CreateOuterLarge(flatbuffers::FlatBufferBuilder &_fbb, const OuterLargeT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); +::flatbuffers::Offset CreateOuterLarge(::flatbuffers::FlatBufferBuilder &_fbb, const OuterLargeT *_o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); -struct BadAlignmentRootT : public flatbuffers::NativeTable { +struct BadAlignmentRootT : public ::flatbuffers::NativeTable { typedef BadAlignmentRoot TableType; flatbuffers::unique_ptr large{}; std::vector small{}; @@ -200,10 +200,10 @@ struct BadAlignmentRootT : public flatbuffers::NativeTable { BadAlignmentRootT &operator=(BadAlignmentRootT o) FLATBUFFERS_NOEXCEPT; }; -struct BadAlignmentRoot FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { +struct BadAlignmentRoot FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { typedef BadAlignmentRootT NativeTableType; typedef BadAlignmentRootBuilder Builder; - static const flatbuffers::TypeTable *MiniReflectTypeTable() { + static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { return BadAlignmentRootTypeTable(); } enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { @@ -216,13 +216,13 @@ struct BadAlignmentRoot FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { OuterLarge *mutable_large() { return GetPointer(VT_LARGE); } - const flatbuffers::Vector *small() const { - return GetPointer *>(VT_SMALL); + const ::flatbuffers::Vector *small() const { + return GetPointer *>(VT_SMALL); } - flatbuffers::Vector *mutable_small() { - return GetPointer *>(VT_SMALL); + ::flatbuffers::Vector *mutable_small() { + return GetPointer<::flatbuffers::Vector *>(VT_SMALL); } - bool Verify(flatbuffers::Verifier &verifier) const { + bool Verify(::flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && VerifyOffset(verifier, VT_LARGE) && verifier.VerifyTable(large()) && @@ -230,45 +230,45 @@ struct BadAlignmentRoot FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { verifier.VerifyVector(small()) && verifier.EndTable(); } - BadAlignmentRootT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; - void UnPackTo(BadAlignmentRootT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const; - static flatbuffers::Offset Pack(flatbuffers::FlatBufferBuilder &_fbb, const BadAlignmentRootT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); + BadAlignmentRootT *UnPack(const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; + void UnPackTo(BadAlignmentRootT *_o, const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; + static ::flatbuffers::Offset Pack(::flatbuffers::FlatBufferBuilder &_fbb, const BadAlignmentRootT* _o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); }; struct BadAlignmentRootBuilder { typedef BadAlignmentRoot Table; - flatbuffers::FlatBufferBuilder &fbb_; - flatbuffers::uoffset_t start_; - void add_large(flatbuffers::Offset large) { + ::flatbuffers::FlatBufferBuilder &fbb_; + ::flatbuffers::uoffset_t start_; + void add_large(::flatbuffers::Offset large) { fbb_.AddOffset(BadAlignmentRoot::VT_LARGE, large); } - void add_small(flatbuffers::Offset> small) { + void add_small(::flatbuffers::Offset<::flatbuffers::Vector> small) { fbb_.AddOffset(BadAlignmentRoot::VT_SMALL, small); } - explicit BadAlignmentRootBuilder(flatbuffers::FlatBufferBuilder &_fbb) + explicit BadAlignmentRootBuilder(::flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); } - flatbuffers::Offset Finish() { + ::flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); - auto o = flatbuffers::Offset(end); + auto o = ::flatbuffers::Offset(end); return o; } }; -inline flatbuffers::Offset CreateBadAlignmentRoot( - flatbuffers::FlatBufferBuilder &_fbb, - flatbuffers::Offset large = 0, - flatbuffers::Offset> small = 0) { +inline ::flatbuffers::Offset CreateBadAlignmentRoot( + ::flatbuffers::FlatBufferBuilder &_fbb, + ::flatbuffers::Offset large = 0, + ::flatbuffers::Offset<::flatbuffers::Vector> small = 0) { BadAlignmentRootBuilder builder_(_fbb); builder_.add_small(small); builder_.add_large(large); return builder_.Finish(); } -inline flatbuffers::Offset CreateBadAlignmentRootDirect( - flatbuffers::FlatBufferBuilder &_fbb, - flatbuffers::Offset large = 0, +inline ::flatbuffers::Offset CreateBadAlignmentRootDirect( + ::flatbuffers::FlatBufferBuilder &_fbb, + ::flatbuffers::Offset large = 0, const std::vector *small = nullptr) { auto small__ = small ? _fbb.CreateVectorOfStructs(*small) : 0; return CreateBadAlignmentRoot( @@ -277,7 +277,7 @@ inline flatbuffers::Offset CreateBadAlignmentRootDirect( small__); } -flatbuffers::Offset CreateBadAlignmentRoot(flatbuffers::FlatBufferBuilder &_fbb, const BadAlignmentRootT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); +::flatbuffers::Offset CreateBadAlignmentRoot(::flatbuffers::FlatBufferBuilder &_fbb, const BadAlignmentRootT *_o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); inline bool operator==(const OuterLargeT &lhs, const OuterLargeT &rhs) { @@ -299,26 +299,26 @@ inline OuterLargeT &OuterLargeT::operator=(OuterLargeT o) FLATBUFFERS_NOEXCEPT { return *this; } -inline OuterLargeT *OuterLarge::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +inline OuterLargeT *OuterLarge::UnPack(const ::flatbuffers::resolver_function_t *_resolver) const { auto _o = std::unique_ptr(new OuterLargeT()); UnPackTo(_o.get(), _resolver); return _o.release(); } -inline void OuterLarge::UnPackTo(OuterLargeT *_o, const flatbuffers::resolver_function_t *_resolver) const { +inline void OuterLarge::UnPackTo(OuterLargeT *_o, const ::flatbuffers::resolver_function_t *_resolver) const { (void)_o; (void)_resolver; { auto _e = large(); if (_e) _o->large = flatbuffers::unique_ptr(new BadAlignmentLarge(*_e)); } } -inline flatbuffers::Offset OuterLarge::Pack(flatbuffers::FlatBufferBuilder &_fbb, const OuterLargeT* _o, const flatbuffers::rehasher_function_t *_rehasher) { +inline ::flatbuffers::Offset OuterLarge::Pack(::flatbuffers::FlatBufferBuilder &_fbb, const OuterLargeT* _o, const ::flatbuffers::rehasher_function_t *_rehasher) { return CreateOuterLarge(_fbb, _o, _rehasher); } -inline flatbuffers::Offset CreateOuterLarge(flatbuffers::FlatBufferBuilder &_fbb, const OuterLargeT *_o, const flatbuffers::rehasher_function_t *_rehasher) { +inline ::flatbuffers::Offset CreateOuterLarge(::flatbuffers::FlatBufferBuilder &_fbb, const OuterLargeT *_o, const ::flatbuffers::rehasher_function_t *_rehasher) { (void)_rehasher; (void)_o; - struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const OuterLargeT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; + struct _VectorArgs { ::flatbuffers::FlatBufferBuilder *__fbb; const OuterLargeT* __o; const ::flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; auto _large = _o->large ? _o->large.get() : nullptr; return CreateOuterLarge( _fbb, @@ -348,27 +348,27 @@ inline BadAlignmentRootT &BadAlignmentRootT::operator=(BadAlignmentRootT o) FLAT return *this; } -inline BadAlignmentRootT *BadAlignmentRoot::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +inline BadAlignmentRootT *BadAlignmentRoot::UnPack(const ::flatbuffers::resolver_function_t *_resolver) const { auto _o = std::unique_ptr(new BadAlignmentRootT()); UnPackTo(_o.get(), _resolver); return _o.release(); } -inline void BadAlignmentRoot::UnPackTo(BadAlignmentRootT *_o, const flatbuffers::resolver_function_t *_resolver) const { +inline void BadAlignmentRoot::UnPackTo(BadAlignmentRootT *_o, const ::flatbuffers::resolver_function_t *_resolver) const { (void)_o; (void)_resolver; { auto _e = large(); if (_e) { if(_o->large) { _e->UnPackTo(_o->large.get(), _resolver); } else { _o->large = flatbuffers::unique_ptr(_e->UnPack(_resolver)); } } else if (_o->large) { _o->large.reset(); } } - { auto _e = small(); if (_e) { _o->small.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->small[_i] = *_e->Get(_i); } } else { _o->small.resize(0); } } + { auto _e = small(); if (_e) { _o->small.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->small[_i] = *_e->Get(_i); } } else { _o->small.resize(0); } } } -inline flatbuffers::Offset BadAlignmentRoot::Pack(flatbuffers::FlatBufferBuilder &_fbb, const BadAlignmentRootT* _o, const flatbuffers::rehasher_function_t *_rehasher) { +inline ::flatbuffers::Offset BadAlignmentRoot::Pack(::flatbuffers::FlatBufferBuilder &_fbb, const BadAlignmentRootT* _o, const ::flatbuffers::rehasher_function_t *_rehasher) { return CreateBadAlignmentRoot(_fbb, _o, _rehasher); } -inline flatbuffers::Offset CreateBadAlignmentRoot(flatbuffers::FlatBufferBuilder &_fbb, const BadAlignmentRootT *_o, const flatbuffers::rehasher_function_t *_rehasher) { +inline ::flatbuffers::Offset CreateBadAlignmentRoot(::flatbuffers::FlatBufferBuilder &_fbb, const BadAlignmentRootT *_o, const ::flatbuffers::rehasher_function_t *_rehasher) { (void)_rehasher; (void)_o; - struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const BadAlignmentRootT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; + struct _VectorArgs { ::flatbuffers::FlatBufferBuilder *__fbb; const BadAlignmentRootT* __o; const ::flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; auto _large = _o->large ? CreateOuterLarge(_fbb, _o->large.get(), _rehasher) : 0; auto _small = _o->small.size() ? _fbb.CreateVectorOfStructs(_o->small) : 0; return CreateBadAlignmentRoot( @@ -377,11 +377,11 @@ inline flatbuffers::Offset CreateBadAlignmentRoot(flatbuffers: _small); } -inline const flatbuffers::TypeTable *BadAlignmentSmallTypeTable() { - static const flatbuffers::TypeCode type_codes[] = { - { flatbuffers::ET_UINT, 0, -1 }, - { flatbuffers::ET_UINT, 0, -1 }, - { flatbuffers::ET_UINT, 0, -1 } +inline const ::flatbuffers::TypeTable *BadAlignmentSmallTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_UINT, 0, -1 }, + { ::flatbuffers::ET_UINT, 0, -1 }, + { ::flatbuffers::ET_UINT, 0, -1 } }; static const int64_t values[] = { 0, 4, 8, 12 }; static const char * const names[] = { @@ -389,48 +389,48 @@ inline const flatbuffers::TypeTable *BadAlignmentSmallTypeTable() { "var_1", "var_2" }; - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_STRUCT, 3, type_codes, nullptr, nullptr, values, names + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_STRUCT, 3, type_codes, nullptr, nullptr, values, names }; return &tt; } -inline const flatbuffers::TypeTable *BadAlignmentLargeTypeTable() { - static const flatbuffers::TypeCode type_codes[] = { - { flatbuffers::ET_ULONG, 0, -1 } +inline const ::flatbuffers::TypeTable *BadAlignmentLargeTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_ULONG, 0, -1 } }; static const int64_t values[] = { 0, 8 }; static const char * const names[] = { "var_0" }; - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_STRUCT, 1, type_codes, nullptr, nullptr, values, names + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_STRUCT, 1, type_codes, nullptr, nullptr, values, names }; return &tt; } -inline const flatbuffers::TypeTable *OuterLargeTypeTable() { - static const flatbuffers::TypeCode type_codes[] = { - { flatbuffers::ET_SEQUENCE, 0, 0 } +inline const ::flatbuffers::TypeTable *OuterLargeTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_SEQUENCE, 0, 0 } }; - static const flatbuffers::TypeFunction type_refs[] = { + static const ::flatbuffers::TypeFunction type_refs[] = { BadAlignmentLargeTypeTable }; static const char * const names[] = { "large" }; - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_TABLE, 1, type_codes, type_refs, nullptr, nullptr, names + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_TABLE, 1, type_codes, type_refs, nullptr, nullptr, names }; return &tt; } -inline const flatbuffers::TypeTable *BadAlignmentRootTypeTable() { - static const flatbuffers::TypeCode type_codes[] = { - { flatbuffers::ET_SEQUENCE, 0, 0 }, - { flatbuffers::ET_SEQUENCE, 1, 1 } +inline const ::flatbuffers::TypeTable *BadAlignmentRootTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_SEQUENCE, 0, 0 }, + { ::flatbuffers::ET_SEQUENCE, 1, 1 } }; - static const flatbuffers::TypeFunction type_refs[] = { + static const ::flatbuffers::TypeFunction type_refs[] = { OuterLargeTypeTable, BadAlignmentSmallTypeTable }; @@ -438,59 +438,59 @@ inline const flatbuffers::TypeTable *BadAlignmentRootTypeTable() { "large", "small" }; - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_TABLE, 2, type_codes, type_refs, nullptr, nullptr, names + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_TABLE, 2, type_codes, type_refs, nullptr, nullptr, names }; return &tt; } inline const BadAlignmentRoot *GetBadAlignmentRoot(const void *buf) { - return flatbuffers::GetRoot(buf); + return ::flatbuffers::GetRoot(buf); } inline const BadAlignmentRoot *GetSizePrefixedBadAlignmentRoot(const void *buf) { - return flatbuffers::GetSizePrefixedRoot(buf); + return ::flatbuffers::GetSizePrefixedRoot(buf); } inline BadAlignmentRoot *GetMutableBadAlignmentRoot(void *buf) { - return flatbuffers::GetMutableRoot(buf); + return ::flatbuffers::GetMutableRoot(buf); } inline BadAlignmentRoot *GetMutableSizePrefixedBadAlignmentRoot(void *buf) { - return flatbuffers::GetMutableSizePrefixedRoot(buf); + return ::flatbuffers::GetMutableSizePrefixedRoot(buf); } inline bool VerifyBadAlignmentRootBuffer( - flatbuffers::Verifier &verifier) { + ::flatbuffers::Verifier &verifier) { return verifier.VerifyBuffer(nullptr); } inline bool VerifySizePrefixedBadAlignmentRootBuffer( - flatbuffers::Verifier &verifier) { + ::flatbuffers::Verifier &verifier) { return verifier.VerifySizePrefixedBuffer(nullptr); } inline void FinishBadAlignmentRootBuffer( - flatbuffers::FlatBufferBuilder &fbb, - flatbuffers::Offset root) { + ::flatbuffers::FlatBufferBuilder &fbb, + ::flatbuffers::Offset root) { fbb.Finish(root); } inline void FinishSizePrefixedBadAlignmentRootBuffer( - flatbuffers::FlatBufferBuilder &fbb, - flatbuffers::Offset root) { + ::flatbuffers::FlatBufferBuilder &fbb, + ::flatbuffers::Offset root) { fbb.FinishSizePrefixed(root); } inline flatbuffers::unique_ptr UnPackBadAlignmentRoot( const void *buf, - const flatbuffers::resolver_function_t *res = nullptr) { + const ::flatbuffers::resolver_function_t *res = nullptr) { return flatbuffers::unique_ptr(GetBadAlignmentRoot(buf)->UnPack(res)); } inline flatbuffers::unique_ptr UnPackSizePrefixedBadAlignmentRoot( const void *buf, - const flatbuffers::resolver_function_t *res = nullptr) { + const ::flatbuffers::resolver_function_t *res = nullptr) { return flatbuffers::unique_ptr(GetSizePrefixedBadAlignmentRoot(buf)->UnPack(res)); } diff --git a/tests/arrays_test_generated.h b/tests/arrays_test_generated.h index 147d16fe99..1edf7da861 100644 --- a/tests/arrays_test_generated.h +++ b/tests/arrays_test_generated.h @@ -31,11 +31,11 @@ bool operator!=(const ArrayStruct &lhs, const ArrayStruct &rhs); bool operator==(const ArrayTableT &lhs, const ArrayTableT &rhs); bool operator!=(const ArrayTableT &lhs, const ArrayTableT &rhs); -inline const flatbuffers::TypeTable *NestedStructTypeTable(); +inline const ::flatbuffers::TypeTable *NestedStructTypeTable(); -inline const flatbuffers::TypeTable *ArrayStructTypeTable(); +inline const ::flatbuffers::TypeTable *ArrayStructTypeTable(); -inline const flatbuffers::TypeTable *ArrayTableTypeTable(); +inline const ::flatbuffers::TypeTable *ArrayTableTypeTable(); enum class TestEnum : int8_t { A = 0, @@ -65,7 +65,7 @@ inline const char * const *EnumNamesTestEnum() { } inline const char *EnumNameTestEnum(TestEnum e) { - if (flatbuffers::IsOutRange(e, TestEnum::A, TestEnum::C)) return ""; + if (::flatbuffers::IsOutRange(e, TestEnum::A, TestEnum::C)) return ""; const size_t index = static_cast(e); return EnumNamesTestEnum()[index]; } @@ -79,7 +79,7 @@ FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(8) NestedStruct FLATBUFFERS_FINAL_CLASS { int64_t d_[2]; public: - static const flatbuffers::TypeTable *MiniReflectTypeTable() { + static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { return NestedStructTypeTable(); } NestedStruct() @@ -94,7 +94,7 @@ FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(8) NestedStruct FLATBUFFERS_FINAL_CLASS { } NestedStruct(MyGame::Example::TestEnum _b) : a_(), - b_(flatbuffers::EndianScalar(static_cast(_b))), + b_(::flatbuffers::EndianScalar(static_cast(_b))), c_(), padding0__(0), padding1__(0), @@ -102,39 +102,39 @@ FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(8) NestedStruct FLATBUFFERS_FINAL_CLASS { (void)padding0__; (void)padding1__; } - NestedStruct(flatbuffers::span _a, MyGame::Example::TestEnum _b, flatbuffers::span _c, flatbuffers::span _d) - : b_(flatbuffers::EndianScalar(static_cast(_b))), + NestedStruct(::flatbuffers::span _a, MyGame::Example::TestEnum _b, ::flatbuffers::span _c, ::flatbuffers::span _d) + : b_(::flatbuffers::EndianScalar(static_cast(_b))), padding0__(0), padding1__(0) { - flatbuffers::CastToArray(a_).CopyFromSpan(_a); - flatbuffers::CastToArrayOfEnum(c_).CopyFromSpan(_c); + ::flatbuffers::CastToArray(a_).CopyFromSpan(_a); + ::flatbuffers::CastToArrayOfEnum(c_).CopyFromSpan(_c); (void)padding0__; (void)padding1__; - flatbuffers::CastToArray(d_).CopyFromSpan(_d); + ::flatbuffers::CastToArray(d_).CopyFromSpan(_d); } - const flatbuffers::Array *a() const { - return &flatbuffers::CastToArray(a_); + const ::flatbuffers::Array *a() const { + return &::flatbuffers::CastToArray(a_); } - flatbuffers::Array *mutable_a() { - return &flatbuffers::CastToArray(a_); + ::flatbuffers::Array *mutable_a() { + return &::flatbuffers::CastToArray(a_); } MyGame::Example::TestEnum b() const { - return static_cast(flatbuffers::EndianScalar(b_)); + return static_cast(::flatbuffers::EndianScalar(b_)); } void mutate_b(MyGame::Example::TestEnum _b) { - flatbuffers::WriteScalar(&b_, static_cast(_b)); + ::flatbuffers::WriteScalar(&b_, static_cast(_b)); } - const flatbuffers::Array *c() const { - return &flatbuffers::CastToArrayOfEnum(c_); + const ::flatbuffers::Array *c() const { + return &::flatbuffers::CastToArrayOfEnum(c_); } - flatbuffers::Array *mutable_c() { - return &flatbuffers::CastToArrayOfEnum(c_); + ::flatbuffers::Array *mutable_c() { + return &::flatbuffers::CastToArrayOfEnum(c_); } - const flatbuffers::Array *d() const { - return &flatbuffers::CastToArray(d_); + const ::flatbuffers::Array *d() const { + return &::flatbuffers::CastToArray(d_); } - flatbuffers::Array *mutable_d() { - return &flatbuffers::CastToArray(d_); + ::flatbuffers::Array *mutable_d() { + return &::flatbuffers::CastToArray(d_); } }; FLATBUFFERS_STRUCT_END(NestedStruct, 32); @@ -164,7 +164,7 @@ FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(8) ArrayStruct FLATBUFFERS_FINAL_CLASS { int64_t f_[2]; public: - static const flatbuffers::TypeTable *MiniReflectTypeTable() { + static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { return ArrayStructTypeTable(); } ArrayStruct() @@ -184,14 +184,14 @@ FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(8) ArrayStruct FLATBUFFERS_FINAL_CLASS { (void)padding3__; } ArrayStruct(float _a, int8_t _c, int32_t _e) - : a_(flatbuffers::EndianScalar(_a)), + : a_(::flatbuffers::EndianScalar(_a)), b_(), - c_(flatbuffers::EndianScalar(_c)), + c_(::flatbuffers::EndianScalar(_c)), padding0__(0), padding1__(0), padding2__(0), d_(), - e_(flatbuffers::EndianScalar(_e)), + e_(::flatbuffers::EndianScalar(_e)), padding3__(0), f_() { (void)padding0__; @@ -199,57 +199,57 @@ FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(8) ArrayStruct FLATBUFFERS_FINAL_CLASS { (void)padding2__; (void)padding3__; } - ArrayStruct(float _a, flatbuffers::span _b, int8_t _c, flatbuffers::span _d, int32_t _e, flatbuffers::span _f) - : a_(flatbuffers::EndianScalar(_a)), - c_(flatbuffers::EndianScalar(_c)), + ArrayStruct(float _a, ::flatbuffers::span _b, int8_t _c, ::flatbuffers::span _d, int32_t _e, ::flatbuffers::span _f) + : a_(::flatbuffers::EndianScalar(_a)), + c_(::flatbuffers::EndianScalar(_c)), padding0__(0), padding1__(0), padding2__(0), - e_(flatbuffers::EndianScalar(_e)), + e_(::flatbuffers::EndianScalar(_e)), padding3__(0) { - flatbuffers::CastToArray(b_).CopyFromSpan(_b); + ::flatbuffers::CastToArray(b_).CopyFromSpan(_b); (void)padding0__; (void)padding1__; (void)padding2__; - flatbuffers::CastToArray(d_).CopyFromSpan(_d); + ::flatbuffers::CastToArray(d_).CopyFromSpan(_d); (void)padding3__; - flatbuffers::CastToArray(f_).CopyFromSpan(_f); + ::flatbuffers::CastToArray(f_).CopyFromSpan(_f); } float a() const { - return flatbuffers::EndianScalar(a_); + return ::flatbuffers::EndianScalar(a_); } void mutate_a(float _a) { - flatbuffers::WriteScalar(&a_, _a); + ::flatbuffers::WriteScalar(&a_, _a); } - const flatbuffers::Array *b() const { - return &flatbuffers::CastToArray(b_); + const ::flatbuffers::Array *b() const { + return &::flatbuffers::CastToArray(b_); } - flatbuffers::Array *mutable_b() { - return &flatbuffers::CastToArray(b_); + ::flatbuffers::Array *mutable_b() { + return &::flatbuffers::CastToArray(b_); } int8_t c() const { - return flatbuffers::EndianScalar(c_); + return ::flatbuffers::EndianScalar(c_); } void mutate_c(int8_t _c) { - flatbuffers::WriteScalar(&c_, _c); + ::flatbuffers::WriteScalar(&c_, _c); } - const flatbuffers::Array *d() const { - return &flatbuffers::CastToArray(d_); + const ::flatbuffers::Array *d() const { + return &::flatbuffers::CastToArray(d_); } - flatbuffers::Array *mutable_d() { - return &flatbuffers::CastToArray(d_); + ::flatbuffers::Array *mutable_d() { + return &::flatbuffers::CastToArray(d_); } int32_t e() const { - return flatbuffers::EndianScalar(e_); + return ::flatbuffers::EndianScalar(e_); } void mutate_e(int32_t _e) { - flatbuffers::WriteScalar(&e_, _e); + ::flatbuffers::WriteScalar(&e_, _e); } - const flatbuffers::Array *f() const { - return &flatbuffers::CastToArray(f_); + const ::flatbuffers::Array *f() const { + return &::flatbuffers::CastToArray(f_); } - flatbuffers::Array *mutable_f() { - return &flatbuffers::CastToArray(f_); + ::flatbuffers::Array *mutable_f() { + return &::flatbuffers::CastToArray(f_); } }; FLATBUFFERS_STRUCT_END(ArrayStruct, 160); @@ -269,7 +269,7 @@ inline bool operator!=(const ArrayStruct &lhs, const ArrayStruct &rhs) { } -struct ArrayTableT : public flatbuffers::NativeTable { +struct ArrayTableT : public ::flatbuffers::NativeTable { typedef ArrayTable TableType; flatbuffers::unique_ptr a{}; ArrayTableT() = default; @@ -278,10 +278,10 @@ struct ArrayTableT : public flatbuffers::NativeTable { ArrayTableT &operator=(ArrayTableT o) FLATBUFFERS_NOEXCEPT; }; -struct ArrayTable FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { +struct ArrayTable FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { typedef ArrayTableT NativeTableType; typedef ArrayTableBuilder Builder; - static const flatbuffers::TypeTable *MiniReflectTypeTable() { + static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { return ArrayTableTypeTable(); } enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { @@ -293,43 +293,43 @@ struct ArrayTable FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { MyGame::Example::ArrayStruct *mutable_a() { return GetStruct(VT_A); } - bool Verify(flatbuffers::Verifier &verifier) const { + bool Verify(::flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_A, 8) && verifier.EndTable(); } - ArrayTableT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; - void UnPackTo(ArrayTableT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const; - static flatbuffers::Offset Pack(flatbuffers::FlatBufferBuilder &_fbb, const ArrayTableT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); + ArrayTableT *UnPack(const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; + void UnPackTo(ArrayTableT *_o, const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; + static ::flatbuffers::Offset Pack(::flatbuffers::FlatBufferBuilder &_fbb, const ArrayTableT* _o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); }; struct ArrayTableBuilder { typedef ArrayTable Table; - flatbuffers::FlatBufferBuilder &fbb_; - flatbuffers::uoffset_t start_; + ::flatbuffers::FlatBufferBuilder &fbb_; + ::flatbuffers::uoffset_t start_; void add_a(const MyGame::Example::ArrayStruct *a) { fbb_.AddStruct(ArrayTable::VT_A, a); } - explicit ArrayTableBuilder(flatbuffers::FlatBufferBuilder &_fbb) + explicit ArrayTableBuilder(::flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); } - flatbuffers::Offset Finish() { + ::flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); - auto o = flatbuffers::Offset(end); + auto o = ::flatbuffers::Offset(end); return o; } }; -inline flatbuffers::Offset CreateArrayTable( - flatbuffers::FlatBufferBuilder &_fbb, +inline ::flatbuffers::Offset CreateArrayTable( + ::flatbuffers::FlatBufferBuilder &_fbb, const MyGame::Example::ArrayStruct *a = nullptr) { ArrayTableBuilder builder_(_fbb); builder_.add_a(a); return builder_.Finish(); } -flatbuffers::Offset CreateArrayTable(flatbuffers::FlatBufferBuilder &_fbb, const ArrayTableT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); +::flatbuffers::Offset CreateArrayTable(::flatbuffers::FlatBufferBuilder &_fbb, const ArrayTableT *_o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); inline bool operator==(const ArrayTableT &lhs, const ArrayTableT &rhs) { @@ -351,39 +351,39 @@ inline ArrayTableT &ArrayTableT::operator=(ArrayTableT o) FLATBUFFERS_NOEXCEPT { return *this; } -inline ArrayTableT *ArrayTable::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +inline ArrayTableT *ArrayTable::UnPack(const ::flatbuffers::resolver_function_t *_resolver) const { auto _o = std::unique_ptr(new ArrayTableT()); UnPackTo(_o.get(), _resolver); return _o.release(); } -inline void ArrayTable::UnPackTo(ArrayTableT *_o, const flatbuffers::resolver_function_t *_resolver) const { +inline void ArrayTable::UnPackTo(ArrayTableT *_o, const ::flatbuffers::resolver_function_t *_resolver) const { (void)_o; (void)_resolver; { auto _e = a(); if (_e) _o->a = flatbuffers::unique_ptr(new MyGame::Example::ArrayStruct(*_e)); } } -inline flatbuffers::Offset ArrayTable::Pack(flatbuffers::FlatBufferBuilder &_fbb, const ArrayTableT* _o, const flatbuffers::rehasher_function_t *_rehasher) { +inline ::flatbuffers::Offset ArrayTable::Pack(::flatbuffers::FlatBufferBuilder &_fbb, const ArrayTableT* _o, const ::flatbuffers::rehasher_function_t *_rehasher) { return CreateArrayTable(_fbb, _o, _rehasher); } -inline flatbuffers::Offset CreateArrayTable(flatbuffers::FlatBufferBuilder &_fbb, const ArrayTableT *_o, const flatbuffers::rehasher_function_t *_rehasher) { +inline ::flatbuffers::Offset CreateArrayTable(::flatbuffers::FlatBufferBuilder &_fbb, const ArrayTableT *_o, const ::flatbuffers::rehasher_function_t *_rehasher) { (void)_rehasher; (void)_o; - struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const ArrayTableT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; + struct _VectorArgs { ::flatbuffers::FlatBufferBuilder *__fbb; const ArrayTableT* __o; const ::flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; auto _a = _o->a ? _o->a.get() : nullptr; return MyGame::Example::CreateArrayTable( _fbb, _a); } -inline const flatbuffers::TypeTable *TestEnumTypeTable() { - static const flatbuffers::TypeCode type_codes[] = { - { flatbuffers::ET_CHAR, 0, 0 }, - { flatbuffers::ET_CHAR, 0, 0 }, - { flatbuffers::ET_CHAR, 0, 0 } +inline const ::flatbuffers::TypeTable *TestEnumTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_CHAR, 0, 0 }, + { ::flatbuffers::ET_CHAR, 0, 0 }, + { ::flatbuffers::ET_CHAR, 0, 0 } }; - static const flatbuffers::TypeFunction type_refs[] = { + static const ::flatbuffers::TypeFunction type_refs[] = { MyGame::Example::TestEnumTypeTable }; static const char * const names[] = { @@ -391,20 +391,20 @@ inline const flatbuffers::TypeTable *TestEnumTypeTable() { "B", "C" }; - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_ENUM, 3, type_codes, type_refs, nullptr, nullptr, names + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_ENUM, 3, type_codes, type_refs, nullptr, nullptr, names }; return &tt; } -inline const flatbuffers::TypeTable *NestedStructTypeTable() { - static const flatbuffers::TypeCode type_codes[] = { - { flatbuffers::ET_INT, 1, -1 }, - { flatbuffers::ET_CHAR, 0, 0 }, - { flatbuffers::ET_CHAR, 1, 0 }, - { flatbuffers::ET_LONG, 1, -1 } +inline const ::flatbuffers::TypeTable *NestedStructTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_INT, 1, -1 }, + { ::flatbuffers::ET_CHAR, 0, 0 }, + { ::flatbuffers::ET_CHAR, 1, 0 }, + { ::flatbuffers::ET_LONG, 1, -1 } }; - static const flatbuffers::TypeFunction type_refs[] = { + static const ::flatbuffers::TypeFunction type_refs[] = { MyGame::Example::TestEnumTypeTable }; static const int16_t array_sizes[] = { 2, 2, 2, }; @@ -415,22 +415,22 @@ inline const flatbuffers::TypeTable *NestedStructTypeTable() { "c", "d" }; - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_STRUCT, 4, type_codes, type_refs, array_sizes, values, names + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_STRUCT, 4, type_codes, type_refs, array_sizes, values, names }; return &tt; } -inline const flatbuffers::TypeTable *ArrayStructTypeTable() { - static const flatbuffers::TypeCode type_codes[] = { - { flatbuffers::ET_FLOAT, 0, -1 }, - { flatbuffers::ET_INT, 1, -1 }, - { flatbuffers::ET_CHAR, 0, -1 }, - { flatbuffers::ET_SEQUENCE, 1, 0 }, - { flatbuffers::ET_INT, 0, -1 }, - { flatbuffers::ET_LONG, 1, -1 } +inline const ::flatbuffers::TypeTable *ArrayStructTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_FLOAT, 0, -1 }, + { ::flatbuffers::ET_INT, 1, -1 }, + { ::flatbuffers::ET_CHAR, 0, -1 }, + { ::flatbuffers::ET_SEQUENCE, 1, 0 }, + { ::flatbuffers::ET_INT, 0, -1 }, + { ::flatbuffers::ET_LONG, 1, -1 } }; - static const flatbuffers::TypeFunction type_refs[] = { + static const ::flatbuffers::TypeFunction type_refs[] = { MyGame::Example::NestedStructTypeTable }; static const int16_t array_sizes[] = { 15, 2, 2, }; @@ -443,42 +443,42 @@ inline const flatbuffers::TypeTable *ArrayStructTypeTable() { "e", "f" }; - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_STRUCT, 6, type_codes, type_refs, array_sizes, values, names + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_STRUCT, 6, type_codes, type_refs, array_sizes, values, names }; return &tt; } -inline const flatbuffers::TypeTable *ArrayTableTypeTable() { - static const flatbuffers::TypeCode type_codes[] = { - { flatbuffers::ET_SEQUENCE, 0, 0 } +inline const ::flatbuffers::TypeTable *ArrayTableTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_SEQUENCE, 0, 0 } }; - static const flatbuffers::TypeFunction type_refs[] = { + static const ::flatbuffers::TypeFunction type_refs[] = { MyGame::Example::ArrayStructTypeTable }; static const char * const names[] = { "a" }; - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_TABLE, 1, type_codes, type_refs, nullptr, nullptr, names + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_TABLE, 1, type_codes, type_refs, nullptr, nullptr, names }; return &tt; } inline const MyGame::Example::ArrayTable *GetArrayTable(const void *buf) { - return flatbuffers::GetRoot(buf); + return ::flatbuffers::GetRoot(buf); } inline const MyGame::Example::ArrayTable *GetSizePrefixedArrayTable(const void *buf) { - return flatbuffers::GetSizePrefixedRoot(buf); + return ::flatbuffers::GetSizePrefixedRoot(buf); } inline ArrayTable *GetMutableArrayTable(void *buf) { - return flatbuffers::GetMutableRoot(buf); + return ::flatbuffers::GetMutableRoot(buf); } inline MyGame::Example::ArrayTable *GetMutableSizePrefixedArrayTable(void *buf) { - return flatbuffers::GetMutableSizePrefixedRoot(buf); + return ::flatbuffers::GetMutableSizePrefixedRoot(buf); } inline const char *ArrayTableIdentifier() { @@ -486,22 +486,22 @@ inline const char *ArrayTableIdentifier() { } inline bool ArrayTableBufferHasIdentifier(const void *buf) { - return flatbuffers::BufferHasIdentifier( + return ::flatbuffers::BufferHasIdentifier( buf, ArrayTableIdentifier()); } inline bool SizePrefixedArrayTableBufferHasIdentifier(const void *buf) { - return flatbuffers::BufferHasIdentifier( + return ::flatbuffers::BufferHasIdentifier( buf, ArrayTableIdentifier(), true); } inline bool VerifyArrayTableBuffer( - flatbuffers::Verifier &verifier) { + ::flatbuffers::Verifier &verifier) { return verifier.VerifyBuffer(ArrayTableIdentifier()); } inline bool VerifySizePrefixedArrayTableBuffer( - flatbuffers::Verifier &verifier) { + ::flatbuffers::Verifier &verifier) { return verifier.VerifySizePrefixedBuffer(ArrayTableIdentifier()); } @@ -510,26 +510,26 @@ inline const char *ArrayTableExtension() { } inline void FinishArrayTableBuffer( - flatbuffers::FlatBufferBuilder &fbb, - flatbuffers::Offset root) { + ::flatbuffers::FlatBufferBuilder &fbb, + ::flatbuffers::Offset root) { fbb.Finish(root, ArrayTableIdentifier()); } inline void FinishSizePrefixedArrayTableBuffer( - flatbuffers::FlatBufferBuilder &fbb, - flatbuffers::Offset root) { + ::flatbuffers::FlatBufferBuilder &fbb, + ::flatbuffers::Offset root) { fbb.FinishSizePrefixed(root, ArrayTableIdentifier()); } inline flatbuffers::unique_ptr UnPackArrayTable( const void *buf, - const flatbuffers::resolver_function_t *res = nullptr) { + const ::flatbuffers::resolver_function_t *res = nullptr) { return flatbuffers::unique_ptr(GetArrayTable(buf)->UnPack(res)); } inline flatbuffers::unique_ptr UnPackSizePrefixedArrayTable( const void *buf, - const flatbuffers::resolver_function_t *res = nullptr) { + const ::flatbuffers::resolver_function_t *res = nullptr) { return flatbuffers::unique_ptr(GetSizePrefixedArrayTable(buf)->UnPack(res)); } diff --git a/tests/cpp17/generated_cpp17/monster_test_generated.h b/tests/cpp17/generated_cpp17/monster_test_generated.h index 691ecbf46e..5127d24ff5 100644 --- a/tests/cpp17/generated_cpp17/monster_test_generated.h +++ b/tests/cpp17/generated_cpp17/monster_test_generated.h @@ -63,35 +63,35 @@ struct TypeAliasesT; } // namespace Example -inline const flatbuffers::TypeTable *InParentNamespaceTypeTable(); +inline const ::flatbuffers::TypeTable *InParentNamespaceTypeTable(); namespace Example2 { -inline const flatbuffers::TypeTable *MonsterTypeTable(); +inline const ::flatbuffers::TypeTable *MonsterTypeTable(); } // namespace Example2 namespace Example { -inline const flatbuffers::TypeTable *TestTypeTable(); +inline const ::flatbuffers::TypeTable *TestTypeTable(); -inline const flatbuffers::TypeTable *TestSimpleTableWithEnumTypeTable(); +inline const ::flatbuffers::TypeTable *TestSimpleTableWithEnumTypeTable(); -inline const flatbuffers::TypeTable *Vec3TypeTable(); +inline const ::flatbuffers::TypeTable *Vec3TypeTable(); -inline const flatbuffers::TypeTable *AbilityTypeTable(); +inline const ::flatbuffers::TypeTable *AbilityTypeTable(); -inline const flatbuffers::TypeTable *StructOfStructsTypeTable(); +inline const ::flatbuffers::TypeTable *StructOfStructsTypeTable(); -inline const flatbuffers::TypeTable *StructOfStructsOfStructsTypeTable(); +inline const ::flatbuffers::TypeTable *StructOfStructsOfStructsTypeTable(); -inline const flatbuffers::TypeTable *StatTypeTable(); +inline const ::flatbuffers::TypeTable *StatTypeTable(); -inline const flatbuffers::TypeTable *ReferrableTypeTable(); +inline const ::flatbuffers::TypeTable *ReferrableTypeTable(); -inline const flatbuffers::TypeTable *MonsterTypeTable(); +inline const ::flatbuffers::TypeTable *MonsterTypeTable(); -inline const flatbuffers::TypeTable *TypeAliasesTypeTable(); +inline const ::flatbuffers::TypeTable *TypeAliasesTypeTable(); /// Composite components of Monster color. enum class Color : uint8_t { @@ -131,7 +131,7 @@ inline const char * const *EnumNamesColor() { } inline const char *EnumNameColor(Color e) { - if (flatbuffers::IsOutRange(e, Color::Red, Color::Blue)) return ""; + if (::flatbuffers::IsOutRange(e, Color::Red, Color::Blue)) return ""; const size_t index = static_cast(e) - static_cast(Color::Red); return EnumNamesColor()[index]; } @@ -167,7 +167,7 @@ inline const char * const *EnumNamesRace() { } inline const char *EnumNameRace(Race e) { - if (flatbuffers::IsOutRange(e, Race::None, Race::Elf)) return ""; + if (::flatbuffers::IsOutRange(e, Race::None, Race::Elf)) return ""; const size_t index = static_cast(e) - static_cast(Race::None); return EnumNamesRace()[index]; } @@ -230,7 +230,7 @@ inline const char * const *EnumNamesAny() { } inline const char *EnumNameAny(Any e) { - if (flatbuffers::IsOutRange(e, Any::NONE, Any::MyGame_Example2_Monster)) return ""; + if (::flatbuffers::IsOutRange(e, Any::NONE, Any::MyGame_Example2_Monster)) return ""; const size_t index = static_cast(e); return EnumNamesAny()[index]; } @@ -294,8 +294,8 @@ struct AnyUnion { } } - static void *UnPack(const void *obj, Any type, const flatbuffers::resolver_function_t *resolver); - flatbuffers::Offset Pack(flatbuffers::FlatBufferBuilder &_fbb, const flatbuffers::rehasher_function_t *_rehasher = nullptr) const; + static void *UnPack(const void *obj, Any type, const ::flatbuffers::resolver_function_t *resolver); + ::flatbuffers::Offset Pack(::flatbuffers::FlatBufferBuilder &_fbb, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr) const; MyGame::Example::MonsterT *AsMonster() { return type == Any::Monster ? @@ -323,8 +323,8 @@ struct AnyUnion { } }; -bool VerifyAny(flatbuffers::Verifier &verifier, const void *obj, Any type); -bool VerifyAnyVector(flatbuffers::Verifier &verifier, const flatbuffers::Vector> *values, const flatbuffers::Vector *types); +bool VerifyAny(::flatbuffers::Verifier &verifier, const void *obj, Any type); +bool VerifyAnyVector(::flatbuffers::Verifier &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types); enum class AnyUniqueAliases : uint8_t { NONE = 0, @@ -357,7 +357,7 @@ inline const char * const *EnumNamesAnyUniqueAliases() { } inline const char *EnumNameAnyUniqueAliases(AnyUniqueAliases e) { - if (flatbuffers::IsOutRange(e, AnyUniqueAliases::NONE, AnyUniqueAliases::M2)) return ""; + if (::flatbuffers::IsOutRange(e, AnyUniqueAliases::NONE, AnyUniqueAliases::M2)) return ""; const size_t index = static_cast(e); return EnumNamesAnyUniqueAliases()[index]; } @@ -421,8 +421,8 @@ struct AnyUniqueAliasesUnion { } } - static void *UnPack(const void *obj, AnyUniqueAliases type, const flatbuffers::resolver_function_t *resolver); - flatbuffers::Offset Pack(flatbuffers::FlatBufferBuilder &_fbb, const flatbuffers::rehasher_function_t *_rehasher = nullptr) const; + static void *UnPack(const void *obj, AnyUniqueAliases type, const ::flatbuffers::resolver_function_t *resolver); + ::flatbuffers::Offset Pack(::flatbuffers::FlatBufferBuilder &_fbb, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr) const; MyGame::Example::MonsterT *AsM() { return type == AnyUniqueAliases::M ? @@ -450,8 +450,8 @@ struct AnyUniqueAliasesUnion { } }; -bool VerifyAnyUniqueAliases(flatbuffers::Verifier &verifier, const void *obj, AnyUniqueAliases type); -bool VerifyAnyUniqueAliasesVector(flatbuffers::Verifier &verifier, const flatbuffers::Vector> *values, const flatbuffers::Vector *types); +bool VerifyAnyUniqueAliases(::flatbuffers::Verifier &verifier, const void *obj, AnyUniqueAliases type); +bool VerifyAnyUniqueAliasesVector(::flatbuffers::Verifier &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types); enum class AnyAmbiguousAliases : uint8_t { NONE = 0, @@ -484,7 +484,7 @@ inline const char * const *EnumNamesAnyAmbiguousAliases() { } inline const char *EnumNameAnyAmbiguousAliases(AnyAmbiguousAliases e) { - if (flatbuffers::IsOutRange(e, AnyAmbiguousAliases::NONE, AnyAmbiguousAliases::M3)) return ""; + if (::flatbuffers::IsOutRange(e, AnyAmbiguousAliases::NONE, AnyAmbiguousAliases::M3)) return ""; const size_t index = static_cast(e); return EnumNamesAnyAmbiguousAliases()[index]; } @@ -506,8 +506,8 @@ struct AnyAmbiguousAliasesUnion { void Reset(); - static void *UnPack(const void *obj, AnyAmbiguousAliases type, const flatbuffers::resolver_function_t *resolver); - flatbuffers::Offset Pack(flatbuffers::FlatBufferBuilder &_fbb, const flatbuffers::rehasher_function_t *_rehasher = nullptr) const; + static void *UnPack(const void *obj, AnyAmbiguousAliases type, const ::flatbuffers::resolver_function_t *resolver); + ::flatbuffers::Offset Pack(::flatbuffers::FlatBufferBuilder &_fbb, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr) const; MyGame::Example::MonsterT *AsM1() { return type == AnyAmbiguousAliases::M1 ? @@ -535,8 +535,8 @@ struct AnyAmbiguousAliasesUnion { } }; -bool VerifyAnyAmbiguousAliases(flatbuffers::Verifier &verifier, const void *obj, AnyAmbiguousAliases type); -bool VerifyAnyAmbiguousAliasesVector(flatbuffers::Verifier &verifier, const flatbuffers::Vector> *values, const flatbuffers::Vector *types); +bool VerifyAnyAmbiguousAliases(::flatbuffers::Verifier &verifier, const void *obj, AnyAmbiguousAliases type); +bool VerifyAnyAmbiguousAliasesVector(::flatbuffers::Verifier &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types); FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(2) Test FLATBUFFERS_FINAL_CLASS { private: @@ -546,7 +546,7 @@ FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(2) Test FLATBUFFERS_FINAL_CLASS { public: struct Traits; - static const flatbuffers::TypeTable *MiniReflectTypeTable() { + static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { return TestTypeTable(); } Test() @@ -556,22 +556,22 @@ FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(2) Test FLATBUFFERS_FINAL_CLASS { (void)padding0__; } Test(int16_t _a, int8_t _b) - : a_(flatbuffers::EndianScalar(_a)), - b_(flatbuffers::EndianScalar(_b)), + : a_(::flatbuffers::EndianScalar(_a)), + b_(::flatbuffers::EndianScalar(_b)), padding0__(0) { (void)padding0__; } int16_t a() const { - return flatbuffers::EndianScalar(a_); + return ::flatbuffers::EndianScalar(a_); } void mutate_a(int16_t _a) { - flatbuffers::WriteScalar(&a_, _a); + ::flatbuffers::WriteScalar(&a_, _a); } int8_t b() const { - return flatbuffers::EndianScalar(b_); + return ::flatbuffers::EndianScalar(b_); } void mutate_b(int8_t _b) { - flatbuffers::WriteScalar(&b_, _b); + ::flatbuffers::WriteScalar(&b_, _b); } template auto get_field() const { @@ -609,7 +609,7 @@ FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(8) Vec3 FLATBUFFERS_FINAL_CLASS { public: struct Traits; - static const flatbuffers::TypeTable *MiniReflectTypeTable() { + static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { return Vec3TypeTable(); } Vec3() @@ -627,12 +627,12 @@ FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(8) Vec3 FLATBUFFERS_FINAL_CLASS { (void)padding2__; } Vec3(float _x, float _y, float _z, double _test1, MyGame::Example::Color _test2, const MyGame::Example::Test &_test3) - : x_(flatbuffers::EndianScalar(_x)), - y_(flatbuffers::EndianScalar(_y)), - z_(flatbuffers::EndianScalar(_z)), + : x_(::flatbuffers::EndianScalar(_x)), + y_(::flatbuffers::EndianScalar(_y)), + z_(::flatbuffers::EndianScalar(_z)), padding0__(0), - test1_(flatbuffers::EndianScalar(_test1)), - test2_(flatbuffers::EndianScalar(static_cast(_test2))), + test1_(::flatbuffers::EndianScalar(_test1)), + test2_(::flatbuffers::EndianScalar(static_cast(_test2))), padding1__(0), test3_(_test3), padding2__(0) { @@ -641,34 +641,34 @@ FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(8) Vec3 FLATBUFFERS_FINAL_CLASS { (void)padding2__; } float x() const { - return flatbuffers::EndianScalar(x_); + return ::flatbuffers::EndianScalar(x_); } void mutate_x(float _x) { - flatbuffers::WriteScalar(&x_, _x); + ::flatbuffers::WriteScalar(&x_, _x); } float y() const { - return flatbuffers::EndianScalar(y_); + return ::flatbuffers::EndianScalar(y_); } void mutate_y(float _y) { - flatbuffers::WriteScalar(&y_, _y); + ::flatbuffers::WriteScalar(&y_, _y); } float z() const { - return flatbuffers::EndianScalar(z_); + return ::flatbuffers::EndianScalar(z_); } void mutate_z(float _z) { - flatbuffers::WriteScalar(&z_, _z); + ::flatbuffers::WriteScalar(&z_, _z); } double test1() const { - return flatbuffers::EndianScalar(test1_); + return ::flatbuffers::EndianScalar(test1_); } void mutate_test1(double _test1) { - flatbuffers::WriteScalar(&test1_, _test1); + ::flatbuffers::WriteScalar(&test1_, _test1); } MyGame::Example::Color test2() const { - return static_cast(flatbuffers::EndianScalar(test2_)); + return static_cast(::flatbuffers::EndianScalar(test2_)); } void mutate_test2(MyGame::Example::Color _test2) { - flatbuffers::WriteScalar(&test2_, static_cast(_test2)); + ::flatbuffers::WriteScalar(&test2_, static_cast(_test2)); } const MyGame::Example::Test &test3() const { return test3_; @@ -713,7 +713,7 @@ FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(4) Ability FLATBUFFERS_FINAL_CLASS { public: struct Traits; - static const flatbuffers::TypeTable *MiniReflectTypeTable() { + static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { return AbilityTypeTable(); } Ability() @@ -721,14 +721,14 @@ FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(4) Ability FLATBUFFERS_FINAL_CLASS { distance_(0) { } Ability(uint32_t _id, uint32_t _distance) - : id_(flatbuffers::EndianScalar(_id)), - distance_(flatbuffers::EndianScalar(_distance)) { + : id_(::flatbuffers::EndianScalar(_id)), + distance_(::flatbuffers::EndianScalar(_distance)) { } uint32_t id() const { - return flatbuffers::EndianScalar(id_); + return ::flatbuffers::EndianScalar(id_); } void mutate_id(uint32_t _id) { - flatbuffers::WriteScalar(&id_, _id); + ::flatbuffers::WriteScalar(&id_, _id); } bool KeyCompareLessThan(const Ability * const o) const { return id() < o->id(); @@ -737,10 +737,10 @@ FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(4) Ability FLATBUFFERS_FINAL_CLASS { return static_cast(id() > _id) - static_cast(id() < _id); } uint32_t distance() const { - return flatbuffers::EndianScalar(distance_); + return ::flatbuffers::EndianScalar(distance_); } void mutate_distance(uint32_t _distance) { - flatbuffers::WriteScalar(&distance_, _distance); + ::flatbuffers::WriteScalar(&distance_, _distance); } template auto get_field() const { @@ -772,7 +772,7 @@ FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(4) StructOfStructs FLATBUFFERS_FINAL_CLASS { public: struct Traits; - static const flatbuffers::TypeTable *MiniReflectTypeTable() { + static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { return StructOfStructsTypeTable(); } StructOfStructs() @@ -833,7 +833,7 @@ FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(4) StructOfStructsOfStructs FLATBUFFERS_FINA public: struct Traits; - static const flatbuffers::TypeTable *MiniReflectTypeTable() { + static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { return StructOfStructsOfStructsTypeTable(); } StructOfStructsOfStructs() @@ -870,43 +870,43 @@ struct StructOfStructsOfStructs::Traits { } // namespace Example -struct InParentNamespaceT : public flatbuffers::NativeTable { +struct InParentNamespaceT : public ::flatbuffers::NativeTable { typedef InParentNamespace TableType; }; -struct InParentNamespace FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { +struct InParentNamespace FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { typedef InParentNamespaceT NativeTableType; typedef InParentNamespaceBuilder Builder; struct Traits; - static const flatbuffers::TypeTable *MiniReflectTypeTable() { + static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { return InParentNamespaceTypeTable(); } - bool Verify(flatbuffers::Verifier &verifier) const { + bool Verify(::flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && verifier.EndTable(); } - InParentNamespaceT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; - void UnPackTo(InParentNamespaceT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const; - static flatbuffers::Offset Pack(flatbuffers::FlatBufferBuilder &_fbb, const InParentNamespaceT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); + InParentNamespaceT *UnPack(const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; + void UnPackTo(InParentNamespaceT *_o, const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; + static ::flatbuffers::Offset Pack(::flatbuffers::FlatBufferBuilder &_fbb, const InParentNamespaceT* _o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); }; struct InParentNamespaceBuilder { typedef InParentNamespace Table; - flatbuffers::FlatBufferBuilder &fbb_; - flatbuffers::uoffset_t start_; - explicit InParentNamespaceBuilder(flatbuffers::FlatBufferBuilder &_fbb) + ::flatbuffers::FlatBufferBuilder &fbb_; + ::flatbuffers::uoffset_t start_; + explicit InParentNamespaceBuilder(::flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); } - flatbuffers::Offset Finish() { + ::flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); - auto o = flatbuffers::Offset(end); + auto o = ::flatbuffers::Offset(end); return o; } }; -inline flatbuffers::Offset CreateInParentNamespace( - flatbuffers::FlatBufferBuilder &_fbb) { +inline ::flatbuffers::Offset CreateInParentNamespace( + ::flatbuffers::FlatBufferBuilder &_fbb) { InParentNamespaceBuilder builder_(_fbb); return builder_.Finish(); } @@ -920,47 +920,47 @@ struct InParentNamespace::Traits { static constexpr std::array field_names = {}; }; -flatbuffers::Offset CreateInParentNamespace(flatbuffers::FlatBufferBuilder &_fbb, const InParentNamespaceT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); +::flatbuffers::Offset CreateInParentNamespace(::flatbuffers::FlatBufferBuilder &_fbb, const InParentNamespaceT *_o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); namespace Example2 { -struct MonsterT : public flatbuffers::NativeTable { +struct MonsterT : public ::flatbuffers::NativeTable { typedef Monster TableType; }; -struct Monster FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { +struct Monster FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { typedef MonsterT NativeTableType; typedef MonsterBuilder Builder; struct Traits; - static const flatbuffers::TypeTable *MiniReflectTypeTable() { + static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { return MonsterTypeTable(); } - bool Verify(flatbuffers::Verifier &verifier) const { + bool Verify(::flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && verifier.EndTable(); } - MonsterT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; - void UnPackTo(MonsterT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const; - static flatbuffers::Offset Pack(flatbuffers::FlatBufferBuilder &_fbb, const MonsterT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); + MonsterT *UnPack(const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; + void UnPackTo(MonsterT *_o, const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; + static ::flatbuffers::Offset Pack(::flatbuffers::FlatBufferBuilder &_fbb, const MonsterT* _o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); }; struct MonsterBuilder { typedef Monster Table; - flatbuffers::FlatBufferBuilder &fbb_; - flatbuffers::uoffset_t start_; - explicit MonsterBuilder(flatbuffers::FlatBufferBuilder &_fbb) + ::flatbuffers::FlatBufferBuilder &fbb_; + ::flatbuffers::uoffset_t start_; + explicit MonsterBuilder(::flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); } - flatbuffers::Offset Finish() { + ::flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); - auto o = flatbuffers::Offset(end); + auto o = ::flatbuffers::Offset(end); return o; } }; -inline flatbuffers::Offset CreateMonster( - flatbuffers::FlatBufferBuilder &_fbb) { +inline ::flatbuffers::Offset CreateMonster( + ::flatbuffers::FlatBufferBuilder &_fbb) { MonsterBuilder builder_(_fbb); return builder_.Finish(); } @@ -974,22 +974,22 @@ struct Monster::Traits { static constexpr std::array field_names = {}; }; -flatbuffers::Offset CreateMonster(flatbuffers::FlatBufferBuilder &_fbb, const MonsterT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); +::flatbuffers::Offset CreateMonster(::flatbuffers::FlatBufferBuilder &_fbb, const MonsterT *_o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); } // namespace Example2 namespace Example { -struct TestSimpleTableWithEnumT : public flatbuffers::NativeTable { +struct TestSimpleTableWithEnumT : public ::flatbuffers::NativeTable { typedef TestSimpleTableWithEnum TableType; MyGame::Example::Color color = MyGame::Example::Color::Green; }; -struct TestSimpleTableWithEnum FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { +struct TestSimpleTableWithEnum FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { typedef TestSimpleTableWithEnumT NativeTableType; typedef TestSimpleTableWithEnumBuilder Builder; struct Traits; - static const flatbuffers::TypeTable *MiniReflectTypeTable() { + static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { return TestSimpleTableWithEnumTypeTable(); } enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { @@ -1006,36 +1006,36 @@ struct TestSimpleTableWithEnum FLATBUFFERS_FINAL_CLASS : private flatbuffers::Ta if constexpr (Index == 0) return color(); else static_assert(Index != Index, "Invalid Field Index"); } - bool Verify(flatbuffers::Verifier &verifier) const { + bool Verify(::flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_COLOR, 1) && verifier.EndTable(); } - TestSimpleTableWithEnumT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; - void UnPackTo(TestSimpleTableWithEnumT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const; - static flatbuffers::Offset Pack(flatbuffers::FlatBufferBuilder &_fbb, const TestSimpleTableWithEnumT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); + TestSimpleTableWithEnumT *UnPack(const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; + void UnPackTo(TestSimpleTableWithEnumT *_o, const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; + static ::flatbuffers::Offset Pack(::flatbuffers::FlatBufferBuilder &_fbb, const TestSimpleTableWithEnumT* _o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); }; struct TestSimpleTableWithEnumBuilder { typedef TestSimpleTableWithEnum Table; - flatbuffers::FlatBufferBuilder &fbb_; - flatbuffers::uoffset_t start_; + ::flatbuffers::FlatBufferBuilder &fbb_; + ::flatbuffers::uoffset_t start_; void add_color(MyGame::Example::Color color) { fbb_.AddElement(TestSimpleTableWithEnum::VT_COLOR, static_cast(color), 2); } - explicit TestSimpleTableWithEnumBuilder(flatbuffers::FlatBufferBuilder &_fbb) + explicit TestSimpleTableWithEnumBuilder(::flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); } - flatbuffers::Offset Finish() { + ::flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); - auto o = flatbuffers::Offset(end); + auto o = ::flatbuffers::Offset(end); return o; } }; -inline flatbuffers::Offset CreateTestSimpleTableWithEnum( - flatbuffers::FlatBufferBuilder &_fbb, +inline ::flatbuffers::Offset CreateTestSimpleTableWithEnum( + ::flatbuffers::FlatBufferBuilder &_fbb, MyGame::Example::Color color = MyGame::Example::Color::Green) { TestSimpleTableWithEnumBuilder builder_(_fbb); builder_.add_color(color); @@ -1055,20 +1055,20 @@ struct TestSimpleTableWithEnum::Traits { using FieldType = decltype(std::declval().get_field()); }; -flatbuffers::Offset CreateTestSimpleTableWithEnum(flatbuffers::FlatBufferBuilder &_fbb, const TestSimpleTableWithEnumT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); +::flatbuffers::Offset CreateTestSimpleTableWithEnum(::flatbuffers::FlatBufferBuilder &_fbb, const TestSimpleTableWithEnumT *_o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); -struct StatT : public flatbuffers::NativeTable { +struct StatT : public ::flatbuffers::NativeTable { typedef Stat TableType; std::string id{}; int64_t val = 0; uint16_t count = 0; }; -struct Stat FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { +struct Stat FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { typedef StatT NativeTableType; typedef StatBuilder Builder; struct Traits; - static const flatbuffers::TypeTable *MiniReflectTypeTable() { + static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { return StatTypeTable(); } enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { @@ -1076,11 +1076,11 @@ struct Stat FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { VT_VAL = 6, VT_COUNT = 8 }; - const flatbuffers::String *id() const { - return GetPointer(VT_ID); + const ::flatbuffers::String *id() const { + return GetPointer(VT_ID); } - flatbuffers::String *mutable_id() { - return GetPointer(VT_ID); + ::flatbuffers::String *mutable_id() { + return GetPointer<::flatbuffers::String *>(VT_ID); } int64_t val() const { return GetField(VT_VAL, 0); @@ -1107,7 +1107,7 @@ struct Stat FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { else if constexpr (Index == 2) return count(); else static_assert(Index != Index, "Invalid Field Index"); } - bool Verify(flatbuffers::Verifier &verifier) const { + bool Verify(::flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && VerifyOffset(verifier, VT_ID) && verifier.VerifyString(id()) && @@ -1115,16 +1115,16 @@ struct Stat FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { VerifyField(verifier, VT_COUNT, 2) && verifier.EndTable(); } - StatT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; - void UnPackTo(StatT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const; - static flatbuffers::Offset Pack(flatbuffers::FlatBufferBuilder &_fbb, const StatT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); + StatT *UnPack(const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; + void UnPackTo(StatT *_o, const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; + static ::flatbuffers::Offset Pack(::flatbuffers::FlatBufferBuilder &_fbb, const StatT* _o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); }; struct StatBuilder { typedef Stat Table; - flatbuffers::FlatBufferBuilder &fbb_; - flatbuffers::uoffset_t start_; - void add_id(flatbuffers::Offset id) { + ::flatbuffers::FlatBufferBuilder &fbb_; + ::flatbuffers::uoffset_t start_; + void add_id(::flatbuffers::Offset<::flatbuffers::String> id) { fbb_.AddOffset(Stat::VT_ID, id); } void add_val(int64_t val) { @@ -1133,20 +1133,20 @@ struct StatBuilder { void add_count(uint16_t count) { fbb_.AddElement(Stat::VT_COUNT, count, 0); } - explicit StatBuilder(flatbuffers::FlatBufferBuilder &_fbb) + explicit StatBuilder(::flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); } - flatbuffers::Offset Finish() { + ::flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); - auto o = flatbuffers::Offset(end); + auto o = ::flatbuffers::Offset(end); return o; } }; -inline flatbuffers::Offset CreateStat( - flatbuffers::FlatBufferBuilder &_fbb, - flatbuffers::Offset id = 0, +inline ::flatbuffers::Offset CreateStat( + ::flatbuffers::FlatBufferBuilder &_fbb, + ::flatbuffers::Offset<::flatbuffers::String> id = 0, int64_t val = 0, uint16_t count = 0) { StatBuilder builder_(_fbb); @@ -1171,8 +1171,8 @@ struct Stat::Traits { using FieldType = decltype(std::declval().get_field()); }; -inline flatbuffers::Offset CreateStatDirect( - flatbuffers::FlatBufferBuilder &_fbb, +inline ::flatbuffers::Offset CreateStatDirect( + ::flatbuffers::FlatBufferBuilder &_fbb, const char *id = nullptr, int64_t val = 0, uint16_t count = 0) { @@ -1184,18 +1184,18 @@ inline flatbuffers::Offset CreateStatDirect( count); } -flatbuffers::Offset CreateStat(flatbuffers::FlatBufferBuilder &_fbb, const StatT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); +::flatbuffers::Offset CreateStat(::flatbuffers::FlatBufferBuilder &_fbb, const StatT *_o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); -struct ReferrableT : public flatbuffers::NativeTable { +struct ReferrableT : public ::flatbuffers::NativeTable { typedef Referrable TableType; uint64_t id = 0; }; -struct Referrable FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { +struct Referrable FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { typedef ReferrableT NativeTableType; typedef ReferrableBuilder Builder; struct Traits; - static const flatbuffers::TypeTable *MiniReflectTypeTable() { + static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { return ReferrableTypeTable(); } enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { @@ -1218,36 +1218,36 @@ struct Referrable FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { if constexpr (Index == 0) return id(); else static_assert(Index != Index, "Invalid Field Index"); } - bool Verify(flatbuffers::Verifier &verifier) const { + bool Verify(::flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_ID, 8) && verifier.EndTable(); } - ReferrableT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; - void UnPackTo(ReferrableT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const; - static flatbuffers::Offset Pack(flatbuffers::FlatBufferBuilder &_fbb, const ReferrableT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); + ReferrableT *UnPack(const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; + void UnPackTo(ReferrableT *_o, const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; + static ::flatbuffers::Offset Pack(::flatbuffers::FlatBufferBuilder &_fbb, const ReferrableT* _o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); }; struct ReferrableBuilder { typedef Referrable Table; - flatbuffers::FlatBufferBuilder &fbb_; - flatbuffers::uoffset_t start_; + ::flatbuffers::FlatBufferBuilder &fbb_; + ::flatbuffers::uoffset_t start_; void add_id(uint64_t id) { fbb_.AddElement(Referrable::VT_ID, id, 0); } - explicit ReferrableBuilder(flatbuffers::FlatBufferBuilder &_fbb) + explicit ReferrableBuilder(::flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); } - flatbuffers::Offset Finish() { + ::flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); - auto o = flatbuffers::Offset(end); + auto o = ::flatbuffers::Offset(end); return o; } }; -inline flatbuffers::Offset CreateReferrable( - flatbuffers::FlatBufferBuilder &_fbb, +inline ::flatbuffers::Offset CreateReferrable( + ::flatbuffers::FlatBufferBuilder &_fbb, uint64_t id = 0) { ReferrableBuilder builder_(_fbb); builder_.add_id(id); @@ -1267,9 +1267,9 @@ struct Referrable::Traits { using FieldType = decltype(std::declval().get_field()); }; -flatbuffers::Offset CreateReferrable(flatbuffers::FlatBufferBuilder &_fbb, const ReferrableT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); +::flatbuffers::Offset CreateReferrable(::flatbuffers::FlatBufferBuilder &_fbb, const ReferrableT *_o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); -struct MonsterT : public flatbuffers::NativeTable { +struct MonsterT : public ::flatbuffers::NativeTable { typedef Monster TableType; std::unique_ptr pos{}; int16_t mana = 150; @@ -1336,11 +1336,11 @@ struct MonsterT : public flatbuffers::NativeTable { }; /// an example documentation comment: "monster object" -struct Monster FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { +struct Monster FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { typedef MonsterT NativeTableType; typedef MonsterBuilder Builder; struct Traits; - static const flatbuffers::TypeTable *MiniReflectTypeTable() { + static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { return MonsterTypeTable(); } enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { @@ -1424,11 +1424,11 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { bool mutate_hp(int16_t _hp = 100) { return SetField(VT_HP, _hp, 100); } - const flatbuffers::String *name() const { - return GetPointer(VT_NAME); + const ::flatbuffers::String *name() const { + return GetPointer(VT_NAME); } - flatbuffers::String *mutable_name() { - return GetPointer(VT_NAME); + ::flatbuffers::String *mutable_name() { + return GetPointer<::flatbuffers::String *>(VT_NAME); } bool KeyCompareLessThan(const Monster * const o) const { return *name() < *o->name(); @@ -1436,11 +1436,11 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { int KeyCompareWithValue(const char *_name) const { return strcmp(name()->c_str(), _name); } - const flatbuffers::Vector *inventory() const { - return GetPointer *>(VT_INVENTORY); + const ::flatbuffers::Vector *inventory() const { + return GetPointer *>(VT_INVENTORY); } - flatbuffers::Vector *mutable_inventory() { - return GetPointer *>(VT_INVENTORY); + ::flatbuffers::Vector *mutable_inventory() { + return GetPointer<::flatbuffers::Vector *>(VT_INVENTORY); } MyGame::Example::Color color() const { return static_cast(GetField(VT_COLOR, 8)); @@ -1467,25 +1467,25 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { void *mutable_test() { return GetPointer(VT_TEST); } - const flatbuffers::Vector *test4() const { - return GetPointer *>(VT_TEST4); + const ::flatbuffers::Vector *test4() const { + return GetPointer *>(VT_TEST4); } - flatbuffers::Vector *mutable_test4() { - return GetPointer *>(VT_TEST4); + ::flatbuffers::Vector *mutable_test4() { + return GetPointer<::flatbuffers::Vector *>(VT_TEST4); } - const flatbuffers::Vector> *testarrayofstring() const { - return GetPointer> *>(VT_TESTARRAYOFSTRING); + const ::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>> *testarrayofstring() const { + return GetPointer> *>(VT_TESTARRAYOFSTRING); } - flatbuffers::Vector> *mutable_testarrayofstring() { - return GetPointer> *>(VT_TESTARRAYOFSTRING); + ::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>> *mutable_testarrayofstring() { + return GetPointer<::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>> *>(VT_TESTARRAYOFSTRING); } /// an example documentation comment: this will end up in the generated code /// multiline too - const flatbuffers::Vector> *testarrayoftables() const { - return GetPointer> *>(VT_TESTARRAYOFTABLES); + const ::flatbuffers::Vector<::flatbuffers::Offset> *testarrayoftables() const { + return GetPointer> *>(VT_TESTARRAYOFTABLES); } - flatbuffers::Vector> *mutable_testarrayoftables() { - return GetPointer> *>(VT_TESTARRAYOFTABLES); + ::flatbuffers::Vector<::flatbuffers::Offset> *mutable_testarrayoftables() { + return GetPointer<::flatbuffers::Vector<::flatbuffers::Offset> *>(VT_TESTARRAYOFTABLES); } const MyGame::Example::Monster *enemy() const { return GetPointer(VT_ENEMY); @@ -1493,14 +1493,14 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { MyGame::Example::Monster *mutable_enemy() { return GetPointer(VT_ENEMY); } - const flatbuffers::Vector *testnestedflatbuffer() const { - return GetPointer *>(VT_TESTNESTEDFLATBUFFER); + const ::flatbuffers::Vector *testnestedflatbuffer() const { + return GetPointer *>(VT_TESTNESTEDFLATBUFFER); } - flatbuffers::Vector *mutable_testnestedflatbuffer() { - return GetPointer *>(VT_TESTNESTEDFLATBUFFER); + ::flatbuffers::Vector *mutable_testnestedflatbuffer() { + return GetPointer<::flatbuffers::Vector *>(VT_TESTNESTEDFLATBUFFER); } const MyGame::Example::Monster *testnestedflatbuffer_nested_root() const { - return flatbuffers::GetRoot(testnestedflatbuffer()->Data()); + return ::flatbuffers::GetRoot(testnestedflatbuffer()->Data()); } const MyGame::Example::Stat *testempty() const { return GetPointer(VT_TESTEMPTY); @@ -1562,11 +1562,11 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { bool mutate_testhashu64_fnv1a(uint64_t _testhashu64_fnv1a = 0) { return SetField(VT_TESTHASHU64_FNV1A, _testhashu64_fnv1a, 0); } - const flatbuffers::Vector *testarrayofbools() const { - return GetPointer *>(VT_TESTARRAYOFBOOLS); + const ::flatbuffers::Vector *testarrayofbools() const { + return GetPointer *>(VT_TESTARRAYOFBOOLS); } - flatbuffers::Vector *mutable_testarrayofbools() { - return GetPointer *>(VT_TESTARRAYOFBOOLS); + ::flatbuffers::Vector *mutable_testarrayofbools() { + return GetPointer<::flatbuffers::Vector *>(VT_TESTARRAYOFBOOLS); } float testf() const { return GetField(VT_TESTF, 3.14159f); @@ -1586,44 +1586,44 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { bool mutate_testf3(float _testf3 = 0.0f) { return SetField(VT_TESTF3, _testf3, 0.0f); } - const flatbuffers::Vector> *testarrayofstring2() const { - return GetPointer> *>(VT_TESTARRAYOFSTRING2); + const ::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>> *testarrayofstring2() const { + return GetPointer> *>(VT_TESTARRAYOFSTRING2); } - flatbuffers::Vector> *mutable_testarrayofstring2() { - return GetPointer> *>(VT_TESTARRAYOFSTRING2); + ::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>> *mutable_testarrayofstring2() { + return GetPointer<::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>> *>(VT_TESTARRAYOFSTRING2); } - const flatbuffers::Vector *testarrayofsortedstruct() const { - return GetPointer *>(VT_TESTARRAYOFSORTEDSTRUCT); + const ::flatbuffers::Vector *testarrayofsortedstruct() const { + return GetPointer *>(VT_TESTARRAYOFSORTEDSTRUCT); } - flatbuffers::Vector *mutable_testarrayofsortedstruct() { - return GetPointer *>(VT_TESTARRAYOFSORTEDSTRUCT); + ::flatbuffers::Vector *mutable_testarrayofsortedstruct() { + return GetPointer<::flatbuffers::Vector *>(VT_TESTARRAYOFSORTEDSTRUCT); } - const flatbuffers::Vector *flex() const { - return GetPointer *>(VT_FLEX); + const ::flatbuffers::Vector *flex() const { + return GetPointer *>(VT_FLEX); } - flatbuffers::Vector *mutable_flex() { - return GetPointer *>(VT_FLEX); + ::flatbuffers::Vector *mutable_flex() { + return GetPointer<::flatbuffers::Vector *>(VT_FLEX); } flexbuffers::Reference flex_flexbuffer_root() const { return flexbuffers::GetRoot(flex()->Data(), flex()->size()); } - const flatbuffers::Vector *test5() const { - return GetPointer *>(VT_TEST5); + const ::flatbuffers::Vector *test5() const { + return GetPointer *>(VT_TEST5); } - flatbuffers::Vector *mutable_test5() { - return GetPointer *>(VT_TEST5); + ::flatbuffers::Vector *mutable_test5() { + return GetPointer<::flatbuffers::Vector *>(VT_TEST5); } - const flatbuffers::Vector *vector_of_longs() const { - return GetPointer *>(VT_VECTOR_OF_LONGS); + const ::flatbuffers::Vector *vector_of_longs() const { + return GetPointer *>(VT_VECTOR_OF_LONGS); } - flatbuffers::Vector *mutable_vector_of_longs() { - return GetPointer *>(VT_VECTOR_OF_LONGS); + ::flatbuffers::Vector *mutable_vector_of_longs() { + return GetPointer<::flatbuffers::Vector *>(VT_VECTOR_OF_LONGS); } - const flatbuffers::Vector *vector_of_doubles() const { - return GetPointer *>(VT_VECTOR_OF_DOUBLES); + const ::flatbuffers::Vector *vector_of_doubles() const { + return GetPointer *>(VT_VECTOR_OF_DOUBLES); } - flatbuffers::Vector *mutable_vector_of_doubles() { - return GetPointer *>(VT_VECTOR_OF_DOUBLES); + ::flatbuffers::Vector *mutable_vector_of_doubles() { + return GetPointer<::flatbuffers::Vector *>(VT_VECTOR_OF_DOUBLES); } const MyGame::InParentNamespace *parent_namespace_test() const { return GetPointer(VT_PARENT_NAMESPACE_TEST); @@ -1631,11 +1631,11 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { MyGame::InParentNamespace *mutable_parent_namespace_test() { return GetPointer(VT_PARENT_NAMESPACE_TEST); } - const flatbuffers::Vector> *vector_of_referrables() const { - return GetPointer> *>(VT_VECTOR_OF_REFERRABLES); + const ::flatbuffers::Vector<::flatbuffers::Offset> *vector_of_referrables() const { + return GetPointer> *>(VT_VECTOR_OF_REFERRABLES); } - flatbuffers::Vector> *mutable_vector_of_referrables() { - return GetPointer> *>(VT_VECTOR_OF_REFERRABLES); + ::flatbuffers::Vector<::flatbuffers::Offset> *mutable_vector_of_referrables() { + return GetPointer<::flatbuffers::Vector<::flatbuffers::Offset> *>(VT_VECTOR_OF_REFERRABLES); } uint64_t single_weak_reference() const { return GetField(VT_SINGLE_WEAK_REFERENCE, 0); @@ -1643,17 +1643,17 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { bool mutate_single_weak_reference(uint64_t _single_weak_reference = 0) { return SetField(VT_SINGLE_WEAK_REFERENCE, _single_weak_reference, 0); } - const flatbuffers::Vector *vector_of_weak_references() const { - return GetPointer *>(VT_VECTOR_OF_WEAK_REFERENCES); + const ::flatbuffers::Vector *vector_of_weak_references() const { + return GetPointer *>(VT_VECTOR_OF_WEAK_REFERENCES); } - flatbuffers::Vector *mutable_vector_of_weak_references() { - return GetPointer *>(VT_VECTOR_OF_WEAK_REFERENCES); + ::flatbuffers::Vector *mutable_vector_of_weak_references() { + return GetPointer<::flatbuffers::Vector *>(VT_VECTOR_OF_WEAK_REFERENCES); } - const flatbuffers::Vector> *vector_of_strong_referrables() const { - return GetPointer> *>(VT_VECTOR_OF_STRONG_REFERRABLES); + const ::flatbuffers::Vector<::flatbuffers::Offset> *vector_of_strong_referrables() const { + return GetPointer> *>(VT_VECTOR_OF_STRONG_REFERRABLES); } - flatbuffers::Vector> *mutable_vector_of_strong_referrables() { - return GetPointer> *>(VT_VECTOR_OF_STRONG_REFERRABLES); + ::flatbuffers::Vector<::flatbuffers::Offset> *mutable_vector_of_strong_referrables() { + return GetPointer<::flatbuffers::Vector<::flatbuffers::Offset> *>(VT_VECTOR_OF_STRONG_REFERRABLES); } uint64_t co_owning_reference() const { return GetField(VT_CO_OWNING_REFERENCE, 0); @@ -1661,11 +1661,11 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { bool mutate_co_owning_reference(uint64_t _co_owning_reference = 0) { return SetField(VT_CO_OWNING_REFERENCE, _co_owning_reference, 0); } - const flatbuffers::Vector *vector_of_co_owning_references() const { - return GetPointer *>(VT_VECTOR_OF_CO_OWNING_REFERENCES); + const ::flatbuffers::Vector *vector_of_co_owning_references() const { + return GetPointer *>(VT_VECTOR_OF_CO_OWNING_REFERENCES); } - flatbuffers::Vector *mutable_vector_of_co_owning_references() { - return GetPointer *>(VT_VECTOR_OF_CO_OWNING_REFERENCES); + ::flatbuffers::Vector *mutable_vector_of_co_owning_references() { + return GetPointer<::flatbuffers::Vector *>(VT_VECTOR_OF_CO_OWNING_REFERENCES); } uint64_t non_owning_reference() const { return GetField(VT_NON_OWNING_REFERENCE, 0); @@ -1673,11 +1673,11 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { bool mutate_non_owning_reference(uint64_t _non_owning_reference = 0) { return SetField(VT_NON_OWNING_REFERENCE, _non_owning_reference, 0); } - const flatbuffers::Vector *vector_of_non_owning_references() const { - return GetPointer *>(VT_VECTOR_OF_NON_OWNING_REFERENCES); + const ::flatbuffers::Vector *vector_of_non_owning_references() const { + return GetPointer *>(VT_VECTOR_OF_NON_OWNING_REFERENCES); } - flatbuffers::Vector *mutable_vector_of_non_owning_references() { - return GetPointer *>(VT_VECTOR_OF_NON_OWNING_REFERENCES); + ::flatbuffers::Vector *mutable_vector_of_non_owning_references() { + return GetPointer<::flatbuffers::Vector *>(VT_VECTOR_OF_NON_OWNING_REFERENCES); } MyGame::Example::AnyUniqueAliases any_unique_type() const { return static_cast(GetField(VT_ANY_UNIQUE_TYPE, 0)); @@ -1716,11 +1716,11 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { void *mutable_any_ambiguous() { return GetPointer(VT_ANY_AMBIGUOUS); } - const flatbuffers::Vector *vector_of_enums() const { - return GetPointer *>(VT_VECTOR_OF_ENUMS); + const ::flatbuffers::Vector *vector_of_enums() const { + return GetPointer *>(VT_VECTOR_OF_ENUMS); } - flatbuffers::Vector *mutable_vector_of_enums() { - return GetPointer *>(VT_VECTOR_OF_ENUMS); + ::flatbuffers::Vector *mutable_vector_of_enums() { + return GetPointer<::flatbuffers::Vector *>(VT_VECTOR_OF_ENUMS); } MyGame::Example::Race signed_enum() const { return static_cast(GetField(VT_SIGNED_ENUM, -1)); @@ -1728,20 +1728,20 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { bool mutate_signed_enum(MyGame::Example::Race _signed_enum = static_cast(-1)) { return SetField(VT_SIGNED_ENUM, static_cast(_signed_enum), -1); } - const flatbuffers::Vector *testrequirednestedflatbuffer() const { - return GetPointer *>(VT_TESTREQUIREDNESTEDFLATBUFFER); + const ::flatbuffers::Vector *testrequirednestedflatbuffer() const { + return GetPointer *>(VT_TESTREQUIREDNESTEDFLATBUFFER); } - flatbuffers::Vector *mutable_testrequirednestedflatbuffer() { - return GetPointer *>(VT_TESTREQUIREDNESTEDFLATBUFFER); + ::flatbuffers::Vector *mutable_testrequirednestedflatbuffer() { + return GetPointer<::flatbuffers::Vector *>(VT_TESTREQUIREDNESTEDFLATBUFFER); } const MyGame::Example::Monster *testrequirednestedflatbuffer_nested_root() const { - return flatbuffers::GetRoot(testrequirednestedflatbuffer()->Data()); + return ::flatbuffers::GetRoot(testrequirednestedflatbuffer()->Data()); } - const flatbuffers::Vector> *scalar_key_sorted_tables() const { - return GetPointer> *>(VT_SCALAR_KEY_SORTED_TABLES); + const ::flatbuffers::Vector<::flatbuffers::Offset> *scalar_key_sorted_tables() const { + return GetPointer> *>(VT_SCALAR_KEY_SORTED_TABLES); } - flatbuffers::Vector> *mutable_scalar_key_sorted_tables() { - return GetPointer> *>(VT_SCALAR_KEY_SORTED_TABLES); + ::flatbuffers::Vector<::flatbuffers::Offset> *mutable_scalar_key_sorted_tables() { + return GetPointer<::flatbuffers::Vector<::flatbuffers::Offset> *>(VT_SCALAR_KEY_SORTED_TABLES); } const MyGame::Example::Test *native_inline() const { return GetStruct(VT_NATIVE_INLINE); @@ -1874,7 +1874,7 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { else if constexpr (Index == 60) return double_inf_default(); else static_assert(Index != Index, "Invalid Field Index"); } - bool Verify(flatbuffers::Verifier &verifier) const { + bool Verify(::flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_POS, 8) && VerifyField(verifier, VT_MANA, 2) && @@ -1975,9 +1975,9 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { VerifyField(verifier, VT_DOUBLE_INF_DEFAULT, 8) && verifier.EndTable(); } - MonsterT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; - void UnPackTo(MonsterT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const; - static flatbuffers::Offset Pack(flatbuffers::FlatBufferBuilder &_fbb, const MonsterT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); + MonsterT *UnPack(const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; + void UnPackTo(MonsterT *_o, const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; + static ::flatbuffers::Offset Pack(::flatbuffers::FlatBufferBuilder &_fbb, const MonsterT* _o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); }; template<> inline const MyGame::Example::Monster *Monster::test_as() const { @@ -2006,8 +2006,8 @@ template<> inline const MyGame::Example2::Monster *Monster::any_unique_as(Monster::VT_HP, hp, 100); } - void add_name(flatbuffers::Offset name) { + void add_name(::flatbuffers::Offset<::flatbuffers::String> name) { fbb_.AddOffset(Monster::VT_NAME, name); } - void add_inventory(flatbuffers::Offset> inventory) { + void add_inventory(::flatbuffers::Offset<::flatbuffers::Vector> inventory) { fbb_.AddOffset(Monster::VT_INVENTORY, inventory); } void add_color(MyGame::Example::Color color) { @@ -2029,25 +2029,25 @@ struct MonsterBuilder { void add_test_type(MyGame::Example::Any test_type) { fbb_.AddElement(Monster::VT_TEST_TYPE, static_cast(test_type), 0); } - void add_test(flatbuffers::Offset test) { + void add_test(::flatbuffers::Offset test) { fbb_.AddOffset(Monster::VT_TEST, test); } - void add_test4(flatbuffers::Offset> test4) { + void add_test4(::flatbuffers::Offset<::flatbuffers::Vector> test4) { fbb_.AddOffset(Monster::VT_TEST4, test4); } - void add_testarrayofstring(flatbuffers::Offset>> testarrayofstring) { + void add_testarrayofstring(::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>>> testarrayofstring) { fbb_.AddOffset(Monster::VT_TESTARRAYOFSTRING, testarrayofstring); } - void add_testarrayoftables(flatbuffers::Offset>> testarrayoftables) { + void add_testarrayoftables(::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset>> testarrayoftables) { fbb_.AddOffset(Monster::VT_TESTARRAYOFTABLES, testarrayoftables); } - void add_enemy(flatbuffers::Offset enemy) { + void add_enemy(::flatbuffers::Offset enemy) { fbb_.AddOffset(Monster::VT_ENEMY, enemy); } - void add_testnestedflatbuffer(flatbuffers::Offset> testnestedflatbuffer) { + void add_testnestedflatbuffer(::flatbuffers::Offset<::flatbuffers::Vector> testnestedflatbuffer) { fbb_.AddOffset(Monster::VT_TESTNESTEDFLATBUFFER, testnestedflatbuffer); } - void add_testempty(flatbuffers::Offset testempty) { + void add_testempty(::flatbuffers::Offset testempty) { fbb_.AddOffset(Monster::VT_TESTEMPTY, testempty); } void add_testbool(bool testbool) { @@ -2077,7 +2077,7 @@ struct MonsterBuilder { void add_testhashu64_fnv1a(uint64_t testhashu64_fnv1a) { fbb_.AddElement(Monster::VT_TESTHASHU64_FNV1A, testhashu64_fnv1a, 0); } - void add_testarrayofbools(flatbuffers::Offset> testarrayofbools) { + void add_testarrayofbools(::flatbuffers::Offset<::flatbuffers::Vector> testarrayofbools) { fbb_.AddOffset(Monster::VT_TESTARRAYOFBOOLS, testarrayofbools); } void add_testf(float testf) { @@ -2089,73 +2089,73 @@ struct MonsterBuilder { void add_testf3(float testf3) { fbb_.AddElement(Monster::VT_TESTF3, testf3, 0.0f); } - void add_testarrayofstring2(flatbuffers::Offset>> testarrayofstring2) { + void add_testarrayofstring2(::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>>> testarrayofstring2) { fbb_.AddOffset(Monster::VT_TESTARRAYOFSTRING2, testarrayofstring2); } - void add_testarrayofsortedstruct(flatbuffers::Offset> testarrayofsortedstruct) { + void add_testarrayofsortedstruct(::flatbuffers::Offset<::flatbuffers::Vector> testarrayofsortedstruct) { fbb_.AddOffset(Monster::VT_TESTARRAYOFSORTEDSTRUCT, testarrayofsortedstruct); } - void add_flex(flatbuffers::Offset> flex) { + void add_flex(::flatbuffers::Offset<::flatbuffers::Vector> flex) { fbb_.AddOffset(Monster::VT_FLEX, flex); } - void add_test5(flatbuffers::Offset> test5) { + void add_test5(::flatbuffers::Offset<::flatbuffers::Vector> test5) { fbb_.AddOffset(Monster::VT_TEST5, test5); } - void add_vector_of_longs(flatbuffers::Offset> vector_of_longs) { + void add_vector_of_longs(::flatbuffers::Offset<::flatbuffers::Vector> vector_of_longs) { fbb_.AddOffset(Monster::VT_VECTOR_OF_LONGS, vector_of_longs); } - void add_vector_of_doubles(flatbuffers::Offset> vector_of_doubles) { + void add_vector_of_doubles(::flatbuffers::Offset<::flatbuffers::Vector> vector_of_doubles) { fbb_.AddOffset(Monster::VT_VECTOR_OF_DOUBLES, vector_of_doubles); } - void add_parent_namespace_test(flatbuffers::Offset parent_namespace_test) { + void add_parent_namespace_test(::flatbuffers::Offset parent_namespace_test) { fbb_.AddOffset(Monster::VT_PARENT_NAMESPACE_TEST, parent_namespace_test); } - void add_vector_of_referrables(flatbuffers::Offset>> vector_of_referrables) { + void add_vector_of_referrables(::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset>> vector_of_referrables) { fbb_.AddOffset(Monster::VT_VECTOR_OF_REFERRABLES, vector_of_referrables); } void add_single_weak_reference(uint64_t single_weak_reference) { fbb_.AddElement(Monster::VT_SINGLE_WEAK_REFERENCE, single_weak_reference, 0); } - void add_vector_of_weak_references(flatbuffers::Offset> vector_of_weak_references) { + void add_vector_of_weak_references(::flatbuffers::Offset<::flatbuffers::Vector> vector_of_weak_references) { fbb_.AddOffset(Monster::VT_VECTOR_OF_WEAK_REFERENCES, vector_of_weak_references); } - void add_vector_of_strong_referrables(flatbuffers::Offset>> vector_of_strong_referrables) { + void add_vector_of_strong_referrables(::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset>> vector_of_strong_referrables) { fbb_.AddOffset(Monster::VT_VECTOR_OF_STRONG_REFERRABLES, vector_of_strong_referrables); } void add_co_owning_reference(uint64_t co_owning_reference) { fbb_.AddElement(Monster::VT_CO_OWNING_REFERENCE, co_owning_reference, 0); } - void add_vector_of_co_owning_references(flatbuffers::Offset> vector_of_co_owning_references) { + void add_vector_of_co_owning_references(::flatbuffers::Offset<::flatbuffers::Vector> vector_of_co_owning_references) { fbb_.AddOffset(Monster::VT_VECTOR_OF_CO_OWNING_REFERENCES, vector_of_co_owning_references); } void add_non_owning_reference(uint64_t non_owning_reference) { fbb_.AddElement(Monster::VT_NON_OWNING_REFERENCE, non_owning_reference, 0); } - void add_vector_of_non_owning_references(flatbuffers::Offset> vector_of_non_owning_references) { + void add_vector_of_non_owning_references(::flatbuffers::Offset<::flatbuffers::Vector> vector_of_non_owning_references) { fbb_.AddOffset(Monster::VT_VECTOR_OF_NON_OWNING_REFERENCES, vector_of_non_owning_references); } void add_any_unique_type(MyGame::Example::AnyUniqueAliases any_unique_type) { fbb_.AddElement(Monster::VT_ANY_UNIQUE_TYPE, static_cast(any_unique_type), 0); } - void add_any_unique(flatbuffers::Offset any_unique) { + void add_any_unique(::flatbuffers::Offset any_unique) { fbb_.AddOffset(Monster::VT_ANY_UNIQUE, any_unique); } void add_any_ambiguous_type(MyGame::Example::AnyAmbiguousAliases any_ambiguous_type) { fbb_.AddElement(Monster::VT_ANY_AMBIGUOUS_TYPE, static_cast(any_ambiguous_type), 0); } - void add_any_ambiguous(flatbuffers::Offset any_ambiguous) { + void add_any_ambiguous(::flatbuffers::Offset any_ambiguous) { fbb_.AddOffset(Monster::VT_ANY_AMBIGUOUS, any_ambiguous); } - void add_vector_of_enums(flatbuffers::Offset> vector_of_enums) { + void add_vector_of_enums(::flatbuffers::Offset<::flatbuffers::Vector> vector_of_enums) { fbb_.AddOffset(Monster::VT_VECTOR_OF_ENUMS, vector_of_enums); } void add_signed_enum(MyGame::Example::Race signed_enum) { fbb_.AddElement(Monster::VT_SIGNED_ENUM, static_cast(signed_enum), -1); } - void add_testrequirednestedflatbuffer(flatbuffers::Offset> testrequirednestedflatbuffer) { + void add_testrequirednestedflatbuffer(::flatbuffers::Offset<::flatbuffers::Vector> testrequirednestedflatbuffer) { fbb_.AddOffset(Monster::VT_TESTREQUIREDNESTEDFLATBUFFER, testrequirednestedflatbuffer); } - void add_scalar_key_sorted_tables(flatbuffers::Offset>> scalar_key_sorted_tables) { + void add_scalar_key_sorted_tables(::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset>> scalar_key_sorted_tables) { fbb_.AddOffset(Monster::VT_SCALAR_KEY_SORTED_TABLES, scalar_key_sorted_tables); } void add_native_inline(const MyGame::Example::Test *native_inline) { @@ -2191,34 +2191,34 @@ struct MonsterBuilder { void add_double_inf_default(double double_inf_default) { fbb_.AddElement(Monster::VT_DOUBLE_INF_DEFAULT, double_inf_default, std::numeric_limits::infinity()); } - explicit MonsterBuilder(flatbuffers::FlatBufferBuilder &_fbb) + explicit MonsterBuilder(::flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); } - flatbuffers::Offset Finish() { + ::flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); - auto o = flatbuffers::Offset(end); + auto o = ::flatbuffers::Offset(end); fbb_.Required(o, Monster::VT_NAME); return o; } }; -inline flatbuffers::Offset CreateMonster( - flatbuffers::FlatBufferBuilder &_fbb, +inline ::flatbuffers::Offset CreateMonster( + ::flatbuffers::FlatBufferBuilder &_fbb, const MyGame::Example::Vec3 *pos = nullptr, int16_t mana = 150, int16_t hp = 100, - flatbuffers::Offset name = 0, - flatbuffers::Offset> inventory = 0, + ::flatbuffers::Offset<::flatbuffers::String> name = 0, + ::flatbuffers::Offset<::flatbuffers::Vector> inventory = 0, MyGame::Example::Color color = MyGame::Example::Color::Blue, MyGame::Example::Any test_type = MyGame::Example::Any::NONE, - flatbuffers::Offset test = 0, - flatbuffers::Offset> test4 = 0, - flatbuffers::Offset>> testarrayofstring = 0, - flatbuffers::Offset>> testarrayoftables = 0, - flatbuffers::Offset enemy = 0, - flatbuffers::Offset> testnestedflatbuffer = 0, - flatbuffers::Offset testempty = 0, + ::flatbuffers::Offset test = 0, + ::flatbuffers::Offset<::flatbuffers::Vector> test4 = 0, + ::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>>> testarrayofstring = 0, + ::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset>> testarrayoftables = 0, + ::flatbuffers::Offset enemy = 0, + ::flatbuffers::Offset<::flatbuffers::Vector> testnestedflatbuffer = 0, + ::flatbuffers::Offset testempty = 0, bool testbool = false, int32_t testhashs32_fnv1 = 0, uint32_t testhashu32_fnv1 = 0, @@ -2228,33 +2228,33 @@ inline flatbuffers::Offset CreateMonster( uint32_t testhashu32_fnv1a = 0, int64_t testhashs64_fnv1a = 0, uint64_t testhashu64_fnv1a = 0, - flatbuffers::Offset> testarrayofbools = 0, + ::flatbuffers::Offset<::flatbuffers::Vector> testarrayofbools = 0, float testf = 3.14159f, float testf2 = 3.0f, float testf3 = 0.0f, - flatbuffers::Offset>> testarrayofstring2 = 0, - flatbuffers::Offset> testarrayofsortedstruct = 0, - flatbuffers::Offset> flex = 0, - flatbuffers::Offset> test5 = 0, - flatbuffers::Offset> vector_of_longs = 0, - flatbuffers::Offset> vector_of_doubles = 0, - flatbuffers::Offset parent_namespace_test = 0, - flatbuffers::Offset>> vector_of_referrables = 0, + ::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>>> testarrayofstring2 = 0, + ::flatbuffers::Offset<::flatbuffers::Vector> testarrayofsortedstruct = 0, + ::flatbuffers::Offset<::flatbuffers::Vector> flex = 0, + ::flatbuffers::Offset<::flatbuffers::Vector> test5 = 0, + ::flatbuffers::Offset<::flatbuffers::Vector> vector_of_longs = 0, + ::flatbuffers::Offset<::flatbuffers::Vector> vector_of_doubles = 0, + ::flatbuffers::Offset parent_namespace_test = 0, + ::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset>> vector_of_referrables = 0, uint64_t single_weak_reference = 0, - flatbuffers::Offset> vector_of_weak_references = 0, - flatbuffers::Offset>> vector_of_strong_referrables = 0, + ::flatbuffers::Offset<::flatbuffers::Vector> vector_of_weak_references = 0, + ::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset>> vector_of_strong_referrables = 0, uint64_t co_owning_reference = 0, - flatbuffers::Offset> vector_of_co_owning_references = 0, + ::flatbuffers::Offset<::flatbuffers::Vector> vector_of_co_owning_references = 0, uint64_t non_owning_reference = 0, - flatbuffers::Offset> vector_of_non_owning_references = 0, + ::flatbuffers::Offset<::flatbuffers::Vector> vector_of_non_owning_references = 0, MyGame::Example::AnyUniqueAliases any_unique_type = MyGame::Example::AnyUniqueAliases::NONE, - flatbuffers::Offset any_unique = 0, + ::flatbuffers::Offset any_unique = 0, MyGame::Example::AnyAmbiguousAliases any_ambiguous_type = MyGame::Example::AnyAmbiguousAliases::NONE, - flatbuffers::Offset any_ambiguous = 0, - flatbuffers::Offset> vector_of_enums = 0, + ::flatbuffers::Offset any_ambiguous = 0, + ::flatbuffers::Offset<::flatbuffers::Vector> vector_of_enums = 0, MyGame::Example::Race signed_enum = MyGame::Example::Race::None, - flatbuffers::Offset> testrequirednestedflatbuffer = 0, - flatbuffers::Offset>> scalar_key_sorted_tables = 0, + ::flatbuffers::Offset<::flatbuffers::Vector> testrequirednestedflatbuffer = 0, + ::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset>> scalar_key_sorted_tables = 0, const MyGame::Example::Test *native_inline = nullptr, MyGame::Example::LongEnum long_enum_non_enum_default = static_cast(0), MyGame::Example::LongEnum long_enum_normal_default = MyGame::Example::LongEnum::LongOne, @@ -2404,8 +2404,8 @@ struct Monster::Traits { using FieldType = decltype(std::declval().get_field()); }; -inline flatbuffers::Offset CreateMonsterDirect( - flatbuffers::FlatBufferBuilder &_fbb, +inline ::flatbuffers::Offset CreateMonsterDirect( + ::flatbuffers::FlatBufferBuilder &_fbb, const MyGame::Example::Vec3 *pos = nullptr, int16_t mana = 150, int16_t hp = 100, @@ -2413,13 +2413,13 @@ inline flatbuffers::Offset CreateMonsterDirect( const std::vector *inventory = nullptr, MyGame::Example::Color color = MyGame::Example::Color::Blue, MyGame::Example::Any test_type = MyGame::Example::Any::NONE, - flatbuffers::Offset test = 0, + ::flatbuffers::Offset test = 0, const std::vector *test4 = nullptr, - const std::vector> *testarrayofstring = nullptr, - std::vector> *testarrayoftables = nullptr, - flatbuffers::Offset enemy = 0, + const std::vector<::flatbuffers::Offset<::flatbuffers::String>> *testarrayofstring = nullptr, + std::vector<::flatbuffers::Offset> *testarrayoftables = nullptr, + ::flatbuffers::Offset enemy = 0, const std::vector *testnestedflatbuffer = nullptr, - flatbuffers::Offset testempty = 0, + ::flatbuffers::Offset testempty = 0, bool testbool = false, int32_t testhashs32_fnv1 = 0, uint32_t testhashu32_fnv1 = 0, @@ -2433,29 +2433,29 @@ inline flatbuffers::Offset CreateMonsterDirect( float testf = 3.14159f, float testf2 = 3.0f, float testf3 = 0.0f, - const std::vector> *testarrayofstring2 = nullptr, + const std::vector<::flatbuffers::Offset<::flatbuffers::String>> *testarrayofstring2 = nullptr, std::vector *testarrayofsortedstruct = nullptr, const std::vector *flex = nullptr, const std::vector *test5 = nullptr, const std::vector *vector_of_longs = nullptr, const std::vector *vector_of_doubles = nullptr, - flatbuffers::Offset parent_namespace_test = 0, - std::vector> *vector_of_referrables = nullptr, + ::flatbuffers::Offset parent_namespace_test = 0, + std::vector<::flatbuffers::Offset> *vector_of_referrables = nullptr, uint64_t single_weak_reference = 0, const std::vector *vector_of_weak_references = nullptr, - std::vector> *vector_of_strong_referrables = nullptr, + std::vector<::flatbuffers::Offset> *vector_of_strong_referrables = nullptr, uint64_t co_owning_reference = 0, const std::vector *vector_of_co_owning_references = nullptr, uint64_t non_owning_reference = 0, const std::vector *vector_of_non_owning_references = nullptr, MyGame::Example::AnyUniqueAliases any_unique_type = MyGame::Example::AnyUniqueAliases::NONE, - flatbuffers::Offset any_unique = 0, + ::flatbuffers::Offset any_unique = 0, MyGame::Example::AnyAmbiguousAliases any_ambiguous_type = MyGame::Example::AnyAmbiguousAliases::NONE, - flatbuffers::Offset any_ambiguous = 0, + ::flatbuffers::Offset any_ambiguous = 0, const std::vector *vector_of_enums = nullptr, MyGame::Example::Race signed_enum = MyGame::Example::Race::None, const std::vector *testrequirednestedflatbuffer = nullptr, - std::vector> *scalar_key_sorted_tables = nullptr, + std::vector<::flatbuffers::Offset> *scalar_key_sorted_tables = nullptr, const MyGame::Example::Test *native_inline = nullptr, MyGame::Example::LongEnum long_enum_non_enum_default = static_cast(0), MyGame::Example::LongEnum long_enum_normal_default = MyGame::Example::LongEnum::LongOne, @@ -2470,11 +2470,11 @@ inline flatbuffers::Offset CreateMonsterDirect( auto name__ = name ? _fbb.CreateString(name) : 0; auto inventory__ = inventory ? _fbb.CreateVector(*inventory) : 0; auto test4__ = test4 ? _fbb.CreateVectorOfStructs(*test4) : 0; - auto testarrayofstring__ = testarrayofstring ? _fbb.CreateVector>(*testarrayofstring) : 0; + auto testarrayofstring__ = testarrayofstring ? _fbb.CreateVector<::flatbuffers::Offset<::flatbuffers::String>>(*testarrayofstring) : 0; auto testarrayoftables__ = testarrayoftables ? _fbb.CreateVectorOfSortedTables(testarrayoftables) : 0; auto testnestedflatbuffer__ = testnestedflatbuffer ? _fbb.CreateVector(*testnestedflatbuffer) : 0; auto testarrayofbools__ = testarrayofbools ? _fbb.CreateVector(*testarrayofbools) : 0; - auto testarrayofstring2__ = testarrayofstring2 ? _fbb.CreateVector>(*testarrayofstring2) : 0; + auto testarrayofstring2__ = testarrayofstring2 ? _fbb.CreateVector<::flatbuffers::Offset<::flatbuffers::String>>(*testarrayofstring2) : 0; auto testarrayofsortedstruct__ = testarrayofsortedstruct ? _fbb.CreateVectorOfSortedStructs(testarrayofsortedstruct) : 0; auto flex__ = flex ? _fbb.CreateVector(*flex) : 0; auto test5__ = test5 ? _fbb.CreateVectorOfStructs(*test5) : 0; @@ -2553,9 +2553,9 @@ inline flatbuffers::Offset CreateMonsterDirect( double_inf_default); } -flatbuffers::Offset CreateMonster(flatbuffers::FlatBufferBuilder &_fbb, const MonsterT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); +::flatbuffers::Offset CreateMonster(::flatbuffers::FlatBufferBuilder &_fbb, const MonsterT *_o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); -struct TypeAliasesT : public flatbuffers::NativeTable { +struct TypeAliasesT : public ::flatbuffers::NativeTable { typedef TypeAliases TableType; int8_t i8 = 0; uint8_t u8 = 0; @@ -2571,11 +2571,11 @@ struct TypeAliasesT : public flatbuffers::NativeTable { std::vector vf64{}; }; -struct TypeAliases FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { +struct TypeAliases FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { typedef TypeAliasesT NativeTableType; typedef TypeAliasesBuilder Builder; struct Traits; - static const flatbuffers::TypeTable *MiniReflectTypeTable() { + static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { return TypeAliasesTypeTable(); } enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { @@ -2652,17 +2652,17 @@ struct TypeAliases FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { bool mutate_f64(double _f64 = 0.0) { return SetField(VT_F64, _f64, 0.0); } - const flatbuffers::Vector *v8() const { - return GetPointer *>(VT_V8); + const ::flatbuffers::Vector *v8() const { + return GetPointer *>(VT_V8); } - flatbuffers::Vector *mutable_v8() { - return GetPointer *>(VT_V8); + ::flatbuffers::Vector *mutable_v8() { + return GetPointer<::flatbuffers::Vector *>(VT_V8); } - const flatbuffers::Vector *vf64() const { - return GetPointer *>(VT_VF64); + const ::flatbuffers::Vector *vf64() const { + return GetPointer *>(VT_VF64); } - flatbuffers::Vector *mutable_vf64() { - return GetPointer *>(VT_VF64); + ::flatbuffers::Vector *mutable_vf64() { + return GetPointer<::flatbuffers::Vector *>(VT_VF64); } template auto get_field() const { @@ -2680,7 +2680,7 @@ struct TypeAliases FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { else if constexpr (Index == 11) return vf64(); else static_assert(Index != Index, "Invalid Field Index"); } - bool Verify(flatbuffers::Verifier &verifier) const { + bool Verify(::flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_I8, 1) && VerifyField(verifier, VT_U8, 1) && @@ -2698,15 +2698,15 @@ struct TypeAliases FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { verifier.VerifyVector(vf64()) && verifier.EndTable(); } - TypeAliasesT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; - void UnPackTo(TypeAliasesT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const; - static flatbuffers::Offset Pack(flatbuffers::FlatBufferBuilder &_fbb, const TypeAliasesT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); + TypeAliasesT *UnPack(const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; + void UnPackTo(TypeAliasesT *_o, const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; + static ::flatbuffers::Offset Pack(::flatbuffers::FlatBufferBuilder &_fbb, const TypeAliasesT* _o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); }; struct TypeAliasesBuilder { typedef TypeAliases Table; - flatbuffers::FlatBufferBuilder &fbb_; - flatbuffers::uoffset_t start_; + ::flatbuffers::FlatBufferBuilder &fbb_; + ::flatbuffers::uoffset_t start_; void add_i8(int8_t i8) { fbb_.AddElement(TypeAliases::VT_I8, i8, 0); } @@ -2737,25 +2737,25 @@ struct TypeAliasesBuilder { void add_f64(double f64) { fbb_.AddElement(TypeAliases::VT_F64, f64, 0.0); } - void add_v8(flatbuffers::Offset> v8) { + void add_v8(::flatbuffers::Offset<::flatbuffers::Vector> v8) { fbb_.AddOffset(TypeAliases::VT_V8, v8); } - void add_vf64(flatbuffers::Offset> vf64) { + void add_vf64(::flatbuffers::Offset<::flatbuffers::Vector> vf64) { fbb_.AddOffset(TypeAliases::VT_VF64, vf64); } - explicit TypeAliasesBuilder(flatbuffers::FlatBufferBuilder &_fbb) + explicit TypeAliasesBuilder(::flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); } - flatbuffers::Offset Finish() { + ::flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); - auto o = flatbuffers::Offset(end); + auto o = ::flatbuffers::Offset(end); return o; } }; -inline flatbuffers::Offset CreateTypeAliases( - flatbuffers::FlatBufferBuilder &_fbb, +inline ::flatbuffers::Offset CreateTypeAliases( + ::flatbuffers::FlatBufferBuilder &_fbb, int8_t i8 = 0, uint8_t u8 = 0, int16_t i16 = 0, @@ -2766,8 +2766,8 @@ inline flatbuffers::Offset CreateTypeAliases( uint64_t u64 = 0, float f32 = 0.0f, double f64 = 0.0, - flatbuffers::Offset> v8 = 0, - flatbuffers::Offset> vf64 = 0) { + ::flatbuffers::Offset<::flatbuffers::Vector> v8 = 0, + ::flatbuffers::Offset<::flatbuffers::Vector> vf64 = 0) { TypeAliasesBuilder builder_(_fbb); builder_.add_f64(f64); builder_.add_u64(u64); @@ -2808,8 +2808,8 @@ struct TypeAliases::Traits { using FieldType = decltype(std::declval().get_field()); }; -inline flatbuffers::Offset CreateTypeAliasesDirect( - flatbuffers::FlatBufferBuilder &_fbb, +inline ::flatbuffers::Offset CreateTypeAliasesDirect( + ::flatbuffers::FlatBufferBuilder &_fbb, int8_t i8 = 0, uint8_t u8 = 0, int16_t i16 = 0, @@ -2840,54 +2840,54 @@ inline flatbuffers::Offset CreateTypeAliasesDirect( vf64__); } -flatbuffers::Offset CreateTypeAliases(flatbuffers::FlatBufferBuilder &_fbb, const TypeAliasesT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); +::flatbuffers::Offset CreateTypeAliases(::flatbuffers::FlatBufferBuilder &_fbb, const TypeAliasesT *_o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); } // namespace Example -inline InParentNamespaceT *InParentNamespace::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +inline InParentNamespaceT *InParentNamespace::UnPack(const ::flatbuffers::resolver_function_t *_resolver) const { auto _o = std::make_unique(); UnPackTo(_o.get(), _resolver); return _o.release(); } -inline void InParentNamespace::UnPackTo(InParentNamespaceT *_o, const flatbuffers::resolver_function_t *_resolver) const { +inline void InParentNamespace::UnPackTo(InParentNamespaceT *_o, const ::flatbuffers::resolver_function_t *_resolver) const { (void)_o; (void)_resolver; } -inline flatbuffers::Offset InParentNamespace::Pack(flatbuffers::FlatBufferBuilder &_fbb, const InParentNamespaceT* _o, const flatbuffers::rehasher_function_t *_rehasher) { +inline ::flatbuffers::Offset InParentNamespace::Pack(::flatbuffers::FlatBufferBuilder &_fbb, const InParentNamespaceT* _o, const ::flatbuffers::rehasher_function_t *_rehasher) { return CreateInParentNamespace(_fbb, _o, _rehasher); } -inline flatbuffers::Offset CreateInParentNamespace(flatbuffers::FlatBufferBuilder &_fbb, const InParentNamespaceT *_o, const flatbuffers::rehasher_function_t *_rehasher) { +inline ::flatbuffers::Offset CreateInParentNamespace(::flatbuffers::FlatBufferBuilder &_fbb, const InParentNamespaceT *_o, const ::flatbuffers::rehasher_function_t *_rehasher) { (void)_rehasher; (void)_o; - struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const InParentNamespaceT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; + struct _VectorArgs { ::flatbuffers::FlatBufferBuilder *__fbb; const InParentNamespaceT* __o; const ::flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; return MyGame::CreateInParentNamespace( _fbb); } namespace Example2 { -inline MonsterT *Monster::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +inline MonsterT *Monster::UnPack(const ::flatbuffers::resolver_function_t *_resolver) const { auto _o = std::make_unique(); UnPackTo(_o.get(), _resolver); return _o.release(); } -inline void Monster::UnPackTo(MonsterT *_o, const flatbuffers::resolver_function_t *_resolver) const { +inline void Monster::UnPackTo(MonsterT *_o, const ::flatbuffers::resolver_function_t *_resolver) const { (void)_o; (void)_resolver; } -inline flatbuffers::Offset Monster::Pack(flatbuffers::FlatBufferBuilder &_fbb, const MonsterT* _o, const flatbuffers::rehasher_function_t *_rehasher) { +inline ::flatbuffers::Offset Monster::Pack(::flatbuffers::FlatBufferBuilder &_fbb, const MonsterT* _o, const ::flatbuffers::rehasher_function_t *_rehasher) { return CreateMonster(_fbb, _o, _rehasher); } -inline flatbuffers::Offset CreateMonster(flatbuffers::FlatBufferBuilder &_fbb, const MonsterT *_o, const flatbuffers::rehasher_function_t *_rehasher) { +inline ::flatbuffers::Offset CreateMonster(::flatbuffers::FlatBufferBuilder &_fbb, const MonsterT *_o, const ::flatbuffers::rehasher_function_t *_rehasher) { (void)_rehasher; (void)_o; - struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const MonsterT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; + struct _VectorArgs { ::flatbuffers::FlatBufferBuilder *__fbb; const MonsterT* __o; const ::flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; return MyGame::Example2::CreateMonster( _fbb); } @@ -2896,39 +2896,39 @@ inline flatbuffers::Offset CreateMonster(flatbuffers::FlatBufferBuilder namespace Example { -inline TestSimpleTableWithEnumT *TestSimpleTableWithEnum::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +inline TestSimpleTableWithEnumT *TestSimpleTableWithEnum::UnPack(const ::flatbuffers::resolver_function_t *_resolver) const { auto _o = std::make_unique(); UnPackTo(_o.get(), _resolver); return _o.release(); } -inline void TestSimpleTableWithEnum::UnPackTo(TestSimpleTableWithEnumT *_o, const flatbuffers::resolver_function_t *_resolver) const { +inline void TestSimpleTableWithEnum::UnPackTo(TestSimpleTableWithEnumT *_o, const ::flatbuffers::resolver_function_t *_resolver) const { (void)_o; (void)_resolver; { auto _e = color(); _o->color = _e; } } -inline flatbuffers::Offset TestSimpleTableWithEnum::Pack(flatbuffers::FlatBufferBuilder &_fbb, const TestSimpleTableWithEnumT* _o, const flatbuffers::rehasher_function_t *_rehasher) { +inline ::flatbuffers::Offset TestSimpleTableWithEnum::Pack(::flatbuffers::FlatBufferBuilder &_fbb, const TestSimpleTableWithEnumT* _o, const ::flatbuffers::rehasher_function_t *_rehasher) { return CreateTestSimpleTableWithEnum(_fbb, _o, _rehasher); } -inline flatbuffers::Offset CreateTestSimpleTableWithEnum(flatbuffers::FlatBufferBuilder &_fbb, const TestSimpleTableWithEnumT *_o, const flatbuffers::rehasher_function_t *_rehasher) { +inline ::flatbuffers::Offset CreateTestSimpleTableWithEnum(::flatbuffers::FlatBufferBuilder &_fbb, const TestSimpleTableWithEnumT *_o, const ::flatbuffers::rehasher_function_t *_rehasher) { (void)_rehasher; (void)_o; - struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const TestSimpleTableWithEnumT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; + struct _VectorArgs { ::flatbuffers::FlatBufferBuilder *__fbb; const TestSimpleTableWithEnumT* __o; const ::flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; auto _color = _o->color; return MyGame::Example::CreateTestSimpleTableWithEnum( _fbb, _color); } -inline StatT *Stat::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +inline StatT *Stat::UnPack(const ::flatbuffers::resolver_function_t *_resolver) const { auto _o = std::make_unique(); UnPackTo(_o.get(), _resolver); return _o.release(); } -inline void Stat::UnPackTo(StatT *_o, const flatbuffers::resolver_function_t *_resolver) const { +inline void Stat::UnPackTo(StatT *_o, const ::flatbuffers::resolver_function_t *_resolver) const { (void)_o; (void)_resolver; { auto _e = id(); if (_e) _o->id = _e->str(); } @@ -2936,14 +2936,14 @@ inline void Stat::UnPackTo(StatT *_o, const flatbuffers::resolver_function_t *_r { auto _e = count(); _o->count = _e; } } -inline flatbuffers::Offset Stat::Pack(flatbuffers::FlatBufferBuilder &_fbb, const StatT* _o, const flatbuffers::rehasher_function_t *_rehasher) { +inline ::flatbuffers::Offset Stat::Pack(::flatbuffers::FlatBufferBuilder &_fbb, const StatT* _o, const ::flatbuffers::rehasher_function_t *_rehasher) { return CreateStat(_fbb, _o, _rehasher); } -inline flatbuffers::Offset CreateStat(flatbuffers::FlatBufferBuilder &_fbb, const StatT *_o, const flatbuffers::rehasher_function_t *_rehasher) { +inline ::flatbuffers::Offset CreateStat(::flatbuffers::FlatBufferBuilder &_fbb, const StatT *_o, const ::flatbuffers::rehasher_function_t *_rehasher) { (void)_rehasher; (void)_o; - struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const StatT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; + struct _VectorArgs { ::flatbuffers::FlatBufferBuilder *__fbb; const StatT* __o; const ::flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; auto _id = _o->id.empty() ? 0 : _fbb.CreateString(_o->id); auto _val = _o->val; auto _count = _o->count; @@ -2954,26 +2954,26 @@ inline flatbuffers::Offset CreateStat(flatbuffers::FlatBufferBuilder &_fbb _count); } -inline ReferrableT *Referrable::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +inline ReferrableT *Referrable::UnPack(const ::flatbuffers::resolver_function_t *_resolver) const { auto _o = std::make_unique(); UnPackTo(_o.get(), _resolver); return _o.release(); } -inline void Referrable::UnPackTo(ReferrableT *_o, const flatbuffers::resolver_function_t *_resolver) const { +inline void Referrable::UnPackTo(ReferrableT *_o, const ::flatbuffers::resolver_function_t *_resolver) const { (void)_o; (void)_resolver; { auto _e = id(); _o->id = _e; } } -inline flatbuffers::Offset Referrable::Pack(flatbuffers::FlatBufferBuilder &_fbb, const ReferrableT* _o, const flatbuffers::rehasher_function_t *_rehasher) { +inline ::flatbuffers::Offset Referrable::Pack(::flatbuffers::FlatBufferBuilder &_fbb, const ReferrableT* _o, const ::flatbuffers::rehasher_function_t *_rehasher) { return CreateReferrable(_fbb, _o, _rehasher); } -inline flatbuffers::Offset CreateReferrable(flatbuffers::FlatBufferBuilder &_fbb, const ReferrableT *_o, const flatbuffers::rehasher_function_t *_rehasher) { +inline ::flatbuffers::Offset CreateReferrable(::flatbuffers::FlatBufferBuilder &_fbb, const ReferrableT *_o, const ::flatbuffers::rehasher_function_t *_rehasher) { (void)_rehasher; (void)_o; - struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const ReferrableT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; + struct _VectorArgs { ::flatbuffers::FlatBufferBuilder *__fbb; const ReferrableT* __o; const ::flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; auto _id = _o->id; return MyGame::Example::CreateReferrable( _fbb, @@ -3108,13 +3108,13 @@ inline MonsterT &MonsterT::operator=(MonsterT o) FLATBUFFERS_NOEXCEPT { return *this; } -inline MonsterT *Monster::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +inline MonsterT *Monster::UnPack(const ::flatbuffers::resolver_function_t *_resolver) const { auto _o = std::make_unique(); UnPackTo(_o.get(), _resolver); return _o.release(); } -inline void Monster::UnPackTo(MonsterT *_o, const flatbuffers::resolver_function_t *_resolver) const { +inline void Monster::UnPackTo(MonsterT *_o, const ::flatbuffers::resolver_function_t *_resolver) const { (void)_o; (void)_resolver; { auto _e = pos(); if (_e) _o->pos = std::unique_ptr(new MyGame::Example::Vec3(*_e)); } @@ -3125,9 +3125,9 @@ inline void Monster::UnPackTo(MonsterT *_o, const flatbuffers::resolver_function { auto _e = color(); _o->color = _e; } { auto _e = test_type(); _o->test.type = _e; } { auto _e = test(); if (_e) _o->test.value = MyGame::Example::AnyUnion::UnPack(_e, test_type(), _resolver); } - { auto _e = test4(); if (_e) { _o->test4.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->test4[_i] = *_e->Get(_i); } } else { _o->test4.resize(0); } } - { auto _e = testarrayofstring(); if (_e) { _o->testarrayofstring.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->testarrayofstring[_i] = _e->Get(_i)->str(); } } else { _o->testarrayofstring.resize(0); } } - { auto _e = testarrayoftables(); if (_e) { _o->testarrayoftables.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { if(_o->testarrayoftables[_i]) { _e->Get(_i)->UnPackTo(_o->testarrayoftables[_i].get(), _resolver); } else { _o->testarrayoftables[_i] = std::unique_ptr(_e->Get(_i)->UnPack(_resolver)); }; } } else { _o->testarrayoftables.resize(0); } } + { auto _e = test4(); if (_e) { _o->test4.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->test4[_i] = *_e->Get(_i); } } else { _o->test4.resize(0); } } + { auto _e = testarrayofstring(); if (_e) { _o->testarrayofstring.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->testarrayofstring[_i] = _e->Get(_i)->str(); } } else { _o->testarrayofstring.resize(0); } } + { auto _e = testarrayoftables(); if (_e) { _o->testarrayoftables.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { if(_o->testarrayoftables[_i]) { _e->Get(_i)->UnPackTo(_o->testarrayoftables[_i].get(), _resolver); } else { _o->testarrayoftables[_i] = std::unique_ptr(_e->Get(_i)->UnPack(_resolver)); }; } } else { _o->testarrayoftables.resize(0); } } { auto _e = enemy(); if (_e) { if(_o->enemy) { _e->UnPackTo(_o->enemy.get(), _resolver); } else { _o->enemy = std::unique_ptr(_e->UnPack(_resolver)); } } else if (_o->enemy) { _o->enemy.reset(); } } { auto _e = testnestedflatbuffer(); if (_e) { _o->testnestedflatbuffer.resize(_e->size()); std::copy(_e->begin(), _e->end(), _o->testnestedflatbuffer.begin()); } } { auto _e = testempty(); if (_e) { if(_o->testempty) { _e->UnPackTo(_o->testempty.get(), _resolver); } else { _o->testempty = std::unique_ptr(_e->UnPack(_resolver)); } } else if (_o->testempty) { _o->testempty.reset(); } } @@ -3137,36 +3137,36 @@ inline void Monster::UnPackTo(MonsterT *_o, const flatbuffers::resolver_function { auto _e = testhashs64_fnv1(); _o->testhashs64_fnv1 = _e; } { auto _e = testhashu64_fnv1(); _o->testhashu64_fnv1 = _e; } { auto _e = testhashs32_fnv1a(); _o->testhashs32_fnv1a = _e; } - { auto _e = testhashu32_fnv1a(); /*scalar resolver, naked*/ if (_resolver) (*_resolver)(reinterpret_cast(&_o->testhashu32_fnv1a), static_cast(_e)); else _o->testhashu32_fnv1a = nullptr; } + { auto _e = testhashu32_fnv1a(); /*scalar resolver, naked*/ if (_resolver) (*_resolver)(reinterpret_cast(&_o->testhashu32_fnv1a), static_cast<::flatbuffers::hash_value_t>(_e)); else _o->testhashu32_fnv1a = nullptr; } { auto _e = testhashs64_fnv1a(); _o->testhashs64_fnv1a = _e; } { auto _e = testhashu64_fnv1a(); _o->testhashu64_fnv1a = _e; } - { auto _e = testarrayofbools(); if (_e) { _o->testarrayofbools.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->testarrayofbools[_i] = _e->Get(_i) != 0; } } else { _o->testarrayofbools.resize(0); } } + { auto _e = testarrayofbools(); if (_e) { _o->testarrayofbools.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->testarrayofbools[_i] = _e->Get(_i) != 0; } } else { _o->testarrayofbools.resize(0); } } { auto _e = testf(); _o->testf = _e; } { auto _e = testf2(); _o->testf2 = _e; } { auto _e = testf3(); _o->testf3 = _e; } - { auto _e = testarrayofstring2(); if (_e) { _o->testarrayofstring2.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->testarrayofstring2[_i] = _e->Get(_i)->str(); } } else { _o->testarrayofstring2.resize(0); } } - { auto _e = testarrayofsortedstruct(); if (_e) { _o->testarrayofsortedstruct.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->testarrayofsortedstruct[_i] = *_e->Get(_i); } } else { _o->testarrayofsortedstruct.resize(0); } } + { auto _e = testarrayofstring2(); if (_e) { _o->testarrayofstring2.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->testarrayofstring2[_i] = _e->Get(_i)->str(); } } else { _o->testarrayofstring2.resize(0); } } + { auto _e = testarrayofsortedstruct(); if (_e) { _o->testarrayofsortedstruct.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->testarrayofsortedstruct[_i] = *_e->Get(_i); } } else { _o->testarrayofsortedstruct.resize(0); } } { auto _e = flex(); if (_e) { _o->flex.resize(_e->size()); std::copy(_e->begin(), _e->end(), _o->flex.begin()); } } - { auto _e = test5(); if (_e) { _o->test5.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->test5[_i] = *_e->Get(_i); } } else { _o->test5.resize(0); } } - { auto _e = vector_of_longs(); if (_e) { _o->vector_of_longs.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->vector_of_longs[_i] = _e->Get(_i); } } else { _o->vector_of_longs.resize(0); } } - { auto _e = vector_of_doubles(); if (_e) { _o->vector_of_doubles.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->vector_of_doubles[_i] = _e->Get(_i); } } else { _o->vector_of_doubles.resize(0); } } + { auto _e = test5(); if (_e) { _o->test5.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->test5[_i] = *_e->Get(_i); } } else { _o->test5.resize(0); } } + { auto _e = vector_of_longs(); if (_e) { _o->vector_of_longs.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->vector_of_longs[_i] = _e->Get(_i); } } else { _o->vector_of_longs.resize(0); } } + { auto _e = vector_of_doubles(); if (_e) { _o->vector_of_doubles.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->vector_of_doubles[_i] = _e->Get(_i); } } else { _o->vector_of_doubles.resize(0); } } { auto _e = parent_namespace_test(); if (_e) { if(_o->parent_namespace_test) { _e->UnPackTo(_o->parent_namespace_test.get(), _resolver); } else { _o->parent_namespace_test = std::unique_ptr(_e->UnPack(_resolver)); } } else if (_o->parent_namespace_test) { _o->parent_namespace_test.reset(); } } - { auto _e = vector_of_referrables(); if (_e) { _o->vector_of_referrables.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { if(_o->vector_of_referrables[_i]) { _e->Get(_i)->UnPackTo(_o->vector_of_referrables[_i].get(), _resolver); } else { _o->vector_of_referrables[_i] = std::unique_ptr(_e->Get(_i)->UnPack(_resolver)); }; } } else { _o->vector_of_referrables.resize(0); } } - { auto _e = single_weak_reference(); /*scalar resolver, naked*/ if (_resolver) (*_resolver)(reinterpret_cast(&_o->single_weak_reference), static_cast(_e)); else _o->single_weak_reference = nullptr; } - { auto _e = vector_of_weak_references(); if (_e) { _o->vector_of_weak_references.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { /*vector resolver, naked*/ if (_resolver) (*_resolver)(reinterpret_cast(&_o->vector_of_weak_references[_i]), static_cast(_e->Get(_i))); else _o->vector_of_weak_references[_i] = nullptr; } } else { _o->vector_of_weak_references.resize(0); } } - { auto _e = vector_of_strong_referrables(); if (_e) { _o->vector_of_strong_referrables.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { if(_o->vector_of_strong_referrables[_i]) { _e->Get(_i)->UnPackTo(_o->vector_of_strong_referrables[_i].get(), _resolver); } else { _o->vector_of_strong_referrables[_i] = std::unique_ptr(_e->Get(_i)->UnPack(_resolver)); }; } } else { _o->vector_of_strong_referrables.resize(0); } } - { auto _e = co_owning_reference(); /*scalar resolver, naked*/ if (_resolver) (*_resolver)(reinterpret_cast(&_o->co_owning_reference), static_cast(_e)); else _o->co_owning_reference = nullptr; } - { auto _e = vector_of_co_owning_references(); if (_e) { _o->vector_of_co_owning_references.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { /*vector resolver, default_ptr_type*/ if (_resolver) (*_resolver)(reinterpret_cast(&_o->vector_of_co_owning_references[_i]), static_cast(_e->Get(_i)));/* else do nothing */; } } else { _o->vector_of_co_owning_references.resize(0); } } - { auto _e = non_owning_reference(); /*scalar resolver, naked*/ if (_resolver) (*_resolver)(reinterpret_cast(&_o->non_owning_reference), static_cast(_e)); else _o->non_owning_reference = nullptr; } - { auto _e = vector_of_non_owning_references(); if (_e) { _o->vector_of_non_owning_references.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { /*vector resolver, naked*/ if (_resolver) (*_resolver)(reinterpret_cast(&_o->vector_of_non_owning_references[_i]), static_cast(_e->Get(_i))); else _o->vector_of_non_owning_references[_i] = nullptr; } } else { _o->vector_of_non_owning_references.resize(0); } } + { auto _e = vector_of_referrables(); if (_e) { _o->vector_of_referrables.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { if(_o->vector_of_referrables[_i]) { _e->Get(_i)->UnPackTo(_o->vector_of_referrables[_i].get(), _resolver); } else { _o->vector_of_referrables[_i] = std::unique_ptr(_e->Get(_i)->UnPack(_resolver)); }; } } else { _o->vector_of_referrables.resize(0); } } + { auto _e = single_weak_reference(); /*scalar resolver, naked*/ if (_resolver) (*_resolver)(reinterpret_cast(&_o->single_weak_reference), static_cast<::flatbuffers::hash_value_t>(_e)); else _o->single_weak_reference = nullptr; } + { auto _e = vector_of_weak_references(); if (_e) { _o->vector_of_weak_references.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { /*vector resolver, naked*/ if (_resolver) (*_resolver)(reinterpret_cast(&_o->vector_of_weak_references[_i]), static_cast<::flatbuffers::hash_value_t>(_e->Get(_i))); else _o->vector_of_weak_references[_i] = nullptr; } } else { _o->vector_of_weak_references.resize(0); } } + { auto _e = vector_of_strong_referrables(); if (_e) { _o->vector_of_strong_referrables.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { if(_o->vector_of_strong_referrables[_i]) { _e->Get(_i)->UnPackTo(_o->vector_of_strong_referrables[_i].get(), _resolver); } else { _o->vector_of_strong_referrables[_i] = std::unique_ptr(_e->Get(_i)->UnPack(_resolver)); }; } } else { _o->vector_of_strong_referrables.resize(0); } } + { auto _e = co_owning_reference(); /*scalar resolver, naked*/ if (_resolver) (*_resolver)(reinterpret_cast(&_o->co_owning_reference), static_cast<::flatbuffers::hash_value_t>(_e)); else _o->co_owning_reference = nullptr; } + { auto _e = vector_of_co_owning_references(); if (_e) { _o->vector_of_co_owning_references.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { /*vector resolver, default_ptr_type*/ if (_resolver) (*_resolver)(reinterpret_cast(&_o->vector_of_co_owning_references[_i]), static_cast<::flatbuffers::hash_value_t>(_e->Get(_i)));/* else do nothing */; } } else { _o->vector_of_co_owning_references.resize(0); } } + { auto _e = non_owning_reference(); /*scalar resolver, naked*/ if (_resolver) (*_resolver)(reinterpret_cast(&_o->non_owning_reference), static_cast<::flatbuffers::hash_value_t>(_e)); else _o->non_owning_reference = nullptr; } + { auto _e = vector_of_non_owning_references(); if (_e) { _o->vector_of_non_owning_references.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { /*vector resolver, naked*/ if (_resolver) (*_resolver)(reinterpret_cast(&_o->vector_of_non_owning_references[_i]), static_cast<::flatbuffers::hash_value_t>(_e->Get(_i))); else _o->vector_of_non_owning_references[_i] = nullptr; } } else { _o->vector_of_non_owning_references.resize(0); } } { auto _e = any_unique_type(); _o->any_unique.type = _e; } { auto _e = any_unique(); if (_e) _o->any_unique.value = MyGame::Example::AnyUniqueAliasesUnion::UnPack(_e, any_unique_type(), _resolver); } { auto _e = any_ambiguous_type(); _o->any_ambiguous.type = _e; } { auto _e = any_ambiguous(); if (_e) _o->any_ambiguous.value = MyGame::Example::AnyAmbiguousAliasesUnion::UnPack(_e, any_ambiguous_type(), _resolver); } - { auto _e = vector_of_enums(); if (_e) { _o->vector_of_enums.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->vector_of_enums[_i] = static_cast(_e->Get(_i)); } } else { _o->vector_of_enums.resize(0); } } + { auto _e = vector_of_enums(); if (_e) { _o->vector_of_enums.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->vector_of_enums[_i] = static_cast(_e->Get(_i)); } } else { _o->vector_of_enums.resize(0); } } { auto _e = signed_enum(); _o->signed_enum = _e; } { auto _e = testrequirednestedflatbuffer(); if (_e) { _o->testrequirednestedflatbuffer.resize(_e->size()); std::copy(_e->begin(), _e->end(), _o->testrequirednestedflatbuffer.begin()); } } - { auto _e = scalar_key_sorted_tables(); if (_e) { _o->scalar_key_sorted_tables.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { if(_o->scalar_key_sorted_tables[_i]) { _e->Get(_i)->UnPackTo(_o->scalar_key_sorted_tables[_i].get(), _resolver); } else { _o->scalar_key_sorted_tables[_i] = std::unique_ptr(_e->Get(_i)->UnPack(_resolver)); }; } } else { _o->scalar_key_sorted_tables.resize(0); } } + { auto _e = scalar_key_sorted_tables(); if (_e) { _o->scalar_key_sorted_tables.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { if(_o->scalar_key_sorted_tables[_i]) { _e->Get(_i)->UnPackTo(_o->scalar_key_sorted_tables[_i].get(), _resolver); } else { _o->scalar_key_sorted_tables[_i] = std::unique_ptr(_e->Get(_i)->UnPack(_resolver)); }; } } else { _o->scalar_key_sorted_tables.resize(0); } } { auto _e = native_inline(); if (_e) _o->native_inline = *_e; } { auto _e = long_enum_non_enum_default(); _o->long_enum_non_enum_default = _e; } { auto _e = long_enum_normal_default(); _o->long_enum_normal_default = _e; } @@ -3180,14 +3180,14 @@ inline void Monster::UnPackTo(MonsterT *_o, const flatbuffers::resolver_function { auto _e = double_inf_default(); _o->double_inf_default = _e; } } -inline flatbuffers::Offset Monster::Pack(flatbuffers::FlatBufferBuilder &_fbb, const MonsterT* _o, const flatbuffers::rehasher_function_t *_rehasher) { +inline ::flatbuffers::Offset Monster::Pack(::flatbuffers::FlatBufferBuilder &_fbb, const MonsterT* _o, const ::flatbuffers::rehasher_function_t *_rehasher) { return CreateMonster(_fbb, _o, _rehasher); } -inline flatbuffers::Offset CreateMonster(flatbuffers::FlatBufferBuilder &_fbb, const MonsterT *_o, const flatbuffers::rehasher_function_t *_rehasher) { +inline ::flatbuffers::Offset CreateMonster(::flatbuffers::FlatBufferBuilder &_fbb, const MonsterT *_o, const ::flatbuffers::rehasher_function_t *_rehasher) { (void)_rehasher; (void)_o; - struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const MonsterT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; + struct _VectorArgs { ::flatbuffers::FlatBufferBuilder *__fbb; const MonsterT* __o; const ::flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; auto _pos = _o->pos ? _o->pos.get() : nullptr; auto _mana = _o->mana; auto _hp = _o->hp; @@ -3198,7 +3198,7 @@ inline flatbuffers::Offset CreateMonster(flatbuffers::FlatBufferBuilder auto _test = _o->test.Pack(_fbb); auto _test4 = _o->test4.size() ? _fbb.CreateVectorOfStructs(_o->test4) : 0; auto _testarrayofstring = _o->testarrayofstring.size() ? _fbb.CreateVectorOfStrings(_o->testarrayofstring) : 0; - auto _testarrayoftables = _o->testarrayoftables.size() ? _fbb.CreateVector> (_o->testarrayoftables.size(), [](size_t i, _VectorArgs *__va) { return CreateMonster(*__va->__fbb, __va->__o->testarrayoftables[i].get(), __va->__rehasher); }, &_va ) : 0; + auto _testarrayoftables = _o->testarrayoftables.size() ? _fbb.CreateVector<::flatbuffers::Offset> (_o->testarrayoftables.size(), [](size_t i, _VectorArgs *__va) { return CreateMonster(*__va->__fbb, __va->__o->testarrayoftables[i].get(), __va->__rehasher); }, &_va ) : 0; auto _enemy = _o->enemy ? CreateMonster(_fbb, _o->enemy.get(), _rehasher) : 0; auto _testnestedflatbuffer = _o->testnestedflatbuffer.size() ? _fbb.CreateVector(_o->testnestedflatbuffer) : 0; auto _testempty = _o->testempty ? CreateStat(_fbb, _o->testempty.get(), _rehasher) : 0; @@ -3222,10 +3222,10 @@ inline flatbuffers::Offset CreateMonster(flatbuffers::FlatBufferBuilder auto _vector_of_longs = _o->vector_of_longs.size() ? _fbb.CreateVector(_o->vector_of_longs) : 0; auto _vector_of_doubles = _o->vector_of_doubles.size() ? _fbb.CreateVector(_o->vector_of_doubles) : 0; auto _parent_namespace_test = _o->parent_namespace_test ? CreateInParentNamespace(_fbb, _o->parent_namespace_test.get(), _rehasher) : 0; - auto _vector_of_referrables = _o->vector_of_referrables.size() ? _fbb.CreateVector> (_o->vector_of_referrables.size(), [](size_t i, _VectorArgs *__va) { return CreateReferrable(*__va->__fbb, __va->__o->vector_of_referrables[i].get(), __va->__rehasher); }, &_va ) : 0; + auto _vector_of_referrables = _o->vector_of_referrables.size() ? _fbb.CreateVector<::flatbuffers::Offset> (_o->vector_of_referrables.size(), [](size_t i, _VectorArgs *__va) { return CreateReferrable(*__va->__fbb, __va->__o->vector_of_referrables[i].get(), __va->__rehasher); }, &_va ) : 0; auto _single_weak_reference = _rehasher ? static_cast((*_rehasher)(_o->single_weak_reference)) : 0; auto _vector_of_weak_references = _o->vector_of_weak_references.size() ? _fbb.CreateVector(_o->vector_of_weak_references.size(), [](size_t i, _VectorArgs *__va) { return __va->__rehasher ? static_cast((*__va->__rehasher)(__va->__o->vector_of_weak_references[i])) : 0; }, &_va ) : 0; - auto _vector_of_strong_referrables = _o->vector_of_strong_referrables.size() ? _fbb.CreateVector> (_o->vector_of_strong_referrables.size(), [](size_t i, _VectorArgs *__va) { return CreateReferrable(*__va->__fbb, __va->__o->vector_of_strong_referrables[i].get(), __va->__rehasher); }, &_va ) : 0; + auto _vector_of_strong_referrables = _o->vector_of_strong_referrables.size() ? _fbb.CreateVector<::flatbuffers::Offset> (_o->vector_of_strong_referrables.size(), [](size_t i, _VectorArgs *__va) { return CreateReferrable(*__va->__fbb, __va->__o->vector_of_strong_referrables[i].get(), __va->__rehasher); }, &_va ) : 0; auto _co_owning_reference = _rehasher ? static_cast((*_rehasher)(_o->co_owning_reference)) : 0; auto _vector_of_co_owning_references = _o->vector_of_co_owning_references.size() ? _fbb.CreateVector(_o->vector_of_co_owning_references.size(), [](size_t i, _VectorArgs *__va) { return __va->__rehasher ? static_cast((*__va->__rehasher)(__va->__o->vector_of_co_owning_references[i].get())) : 0; }, &_va ) : 0; auto _non_owning_reference = _rehasher ? static_cast((*_rehasher)(_o->non_owning_reference)) : 0; @@ -3237,7 +3237,7 @@ inline flatbuffers::Offset CreateMonster(flatbuffers::FlatBufferBuilder auto _vector_of_enums = _o->vector_of_enums.size() ? _fbb.CreateVector(_o->vector_of_enums) : 0; auto _signed_enum = _o->signed_enum; auto _testrequirednestedflatbuffer = _o->testrequirednestedflatbuffer.size() ? _fbb.CreateVector(_o->testrequirednestedflatbuffer) : 0; - auto _scalar_key_sorted_tables = _o->scalar_key_sorted_tables.size() ? _fbb.CreateVector> (_o->scalar_key_sorted_tables.size(), [](size_t i, _VectorArgs *__va) { return CreateStat(*__va->__fbb, __va->__o->scalar_key_sorted_tables[i].get(), __va->__rehasher); }, &_va ) : 0; + auto _scalar_key_sorted_tables = _o->scalar_key_sorted_tables.size() ? _fbb.CreateVector<::flatbuffers::Offset> (_o->scalar_key_sorted_tables.size(), [](size_t i, _VectorArgs *__va) { return CreateStat(*__va->__fbb, __va->__o->scalar_key_sorted_tables[i].get(), __va->__rehasher); }, &_va ) : 0; auto _native_inline = &_o->native_inline; auto _long_enum_non_enum_default = _o->long_enum_non_enum_default; auto _long_enum_normal_default = _o->long_enum_normal_default; @@ -3314,13 +3314,13 @@ inline flatbuffers::Offset CreateMonster(flatbuffers::FlatBufferBuilder _double_inf_default); } -inline TypeAliasesT *TypeAliases::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +inline TypeAliasesT *TypeAliases::UnPack(const ::flatbuffers::resolver_function_t *_resolver) const { auto _o = std::make_unique(); UnPackTo(_o.get(), _resolver); return _o.release(); } -inline void TypeAliases::UnPackTo(TypeAliasesT *_o, const flatbuffers::resolver_function_t *_resolver) const { +inline void TypeAliases::UnPackTo(TypeAliasesT *_o, const ::flatbuffers::resolver_function_t *_resolver) const { (void)_o; (void)_resolver; { auto _e = i8(); _o->i8 = _e; } @@ -3334,17 +3334,17 @@ inline void TypeAliases::UnPackTo(TypeAliasesT *_o, const flatbuffers::resolver_ { auto _e = f32(); _o->f32 = _e; } { auto _e = f64(); _o->f64 = _e; } { auto _e = v8(); if (_e) { _o->v8.resize(_e->size()); std::copy(_e->begin(), _e->end(), _o->v8.begin()); } } - { auto _e = vf64(); if (_e) { _o->vf64.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->vf64[_i] = _e->Get(_i); } } else { _o->vf64.resize(0); } } + { auto _e = vf64(); if (_e) { _o->vf64.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->vf64[_i] = _e->Get(_i); } } else { _o->vf64.resize(0); } } } -inline flatbuffers::Offset TypeAliases::Pack(flatbuffers::FlatBufferBuilder &_fbb, const TypeAliasesT* _o, const flatbuffers::rehasher_function_t *_rehasher) { +inline ::flatbuffers::Offset TypeAliases::Pack(::flatbuffers::FlatBufferBuilder &_fbb, const TypeAliasesT* _o, const ::flatbuffers::rehasher_function_t *_rehasher) { return CreateTypeAliases(_fbb, _o, _rehasher); } -inline flatbuffers::Offset CreateTypeAliases(flatbuffers::FlatBufferBuilder &_fbb, const TypeAliasesT *_o, const flatbuffers::rehasher_function_t *_rehasher) { +inline ::flatbuffers::Offset CreateTypeAliases(::flatbuffers::FlatBufferBuilder &_fbb, const TypeAliasesT *_o, const ::flatbuffers::rehasher_function_t *_rehasher) { (void)_rehasher; (void)_o; - struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const TypeAliasesT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; + struct _VectorArgs { ::flatbuffers::FlatBufferBuilder *__fbb; const TypeAliasesT* __o; const ::flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; auto _i8 = _o->i8; auto _u8 = _o->u8; auto _i16 = _o->i16; @@ -3373,7 +3373,7 @@ inline flatbuffers::Offset CreateTypeAliases(flatbuffers::FlatBuffe _vf64); } -inline bool VerifyAny(flatbuffers::Verifier &verifier, const void *obj, Any type) { +inline bool VerifyAny(::flatbuffers::Verifier &verifier, const void *obj, Any type) { switch (type) { case Any::NONE: { return true; @@ -3394,10 +3394,10 @@ inline bool VerifyAny(flatbuffers::Verifier &verifier, const void *obj, Any type } } -inline bool VerifyAnyVector(flatbuffers::Verifier &verifier, const flatbuffers::Vector> *values, const flatbuffers::Vector *types) { +inline bool VerifyAnyVector(::flatbuffers::Verifier &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types) { if (!values || !types) return !values && !types; if (values->size() != types->size()) return false; - for (flatbuffers::uoffset_t i = 0; i < values->size(); ++i) { + for (::flatbuffers::uoffset_t i = 0; i < values->size(); ++i) { if (!VerifyAny( verifier, values->Get(i), types->GetEnum(i))) { return false; @@ -3406,7 +3406,7 @@ inline bool VerifyAnyVector(flatbuffers::Verifier &verifier, const flatbuffers:: return true; } -inline void *AnyUnion::UnPack(const void *obj, Any type, const flatbuffers::resolver_function_t *resolver) { +inline void *AnyUnion::UnPack(const void *obj, Any type, const ::flatbuffers::resolver_function_t *resolver) { (void)resolver; switch (type) { case Any::Monster: { @@ -3425,7 +3425,7 @@ inline void *AnyUnion::UnPack(const void *obj, Any type, const flatbuffers::reso } } -inline flatbuffers::Offset AnyUnion::Pack(flatbuffers::FlatBufferBuilder &_fbb, const flatbuffers::rehasher_function_t *_rehasher) const { +inline ::flatbuffers::Offset AnyUnion::Pack(::flatbuffers::FlatBufferBuilder &_fbb, const ::flatbuffers::rehasher_function_t *_rehasher) const { (void)_rehasher; switch (type) { case Any::Monster: { @@ -3486,7 +3486,7 @@ inline void AnyUnion::Reset() { type = Any::NONE; } -inline bool VerifyAnyUniqueAliases(flatbuffers::Verifier &verifier, const void *obj, AnyUniqueAliases type) { +inline bool VerifyAnyUniqueAliases(::flatbuffers::Verifier &verifier, const void *obj, AnyUniqueAliases type) { switch (type) { case AnyUniqueAliases::NONE: { return true; @@ -3507,10 +3507,10 @@ inline bool VerifyAnyUniqueAliases(flatbuffers::Verifier &verifier, const void * } } -inline bool VerifyAnyUniqueAliasesVector(flatbuffers::Verifier &verifier, const flatbuffers::Vector> *values, const flatbuffers::Vector *types) { +inline bool VerifyAnyUniqueAliasesVector(::flatbuffers::Verifier &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types) { if (!values || !types) return !values && !types; if (values->size() != types->size()) return false; - for (flatbuffers::uoffset_t i = 0; i < values->size(); ++i) { + for (::flatbuffers::uoffset_t i = 0; i < values->size(); ++i) { if (!VerifyAnyUniqueAliases( verifier, values->Get(i), types->GetEnum(i))) { return false; @@ -3519,7 +3519,7 @@ inline bool VerifyAnyUniqueAliasesVector(flatbuffers::Verifier &verifier, const return true; } -inline void *AnyUniqueAliasesUnion::UnPack(const void *obj, AnyUniqueAliases type, const flatbuffers::resolver_function_t *resolver) { +inline void *AnyUniqueAliasesUnion::UnPack(const void *obj, AnyUniqueAliases type, const ::flatbuffers::resolver_function_t *resolver) { (void)resolver; switch (type) { case AnyUniqueAliases::M: { @@ -3538,7 +3538,7 @@ inline void *AnyUniqueAliasesUnion::UnPack(const void *obj, AnyUniqueAliases typ } } -inline flatbuffers::Offset AnyUniqueAliasesUnion::Pack(flatbuffers::FlatBufferBuilder &_fbb, const flatbuffers::rehasher_function_t *_rehasher) const { +inline ::flatbuffers::Offset AnyUniqueAliasesUnion::Pack(::flatbuffers::FlatBufferBuilder &_fbb, const ::flatbuffers::rehasher_function_t *_rehasher) const { (void)_rehasher; switch (type) { case AnyUniqueAliases::M: { @@ -3599,7 +3599,7 @@ inline void AnyUniqueAliasesUnion::Reset() { type = AnyUniqueAliases::NONE; } -inline bool VerifyAnyAmbiguousAliases(flatbuffers::Verifier &verifier, const void *obj, AnyAmbiguousAliases type) { +inline bool VerifyAnyAmbiguousAliases(::flatbuffers::Verifier &verifier, const void *obj, AnyAmbiguousAliases type) { switch (type) { case AnyAmbiguousAliases::NONE: { return true; @@ -3620,10 +3620,10 @@ inline bool VerifyAnyAmbiguousAliases(flatbuffers::Verifier &verifier, const voi } } -inline bool VerifyAnyAmbiguousAliasesVector(flatbuffers::Verifier &verifier, const flatbuffers::Vector> *values, const flatbuffers::Vector *types) { +inline bool VerifyAnyAmbiguousAliasesVector(::flatbuffers::Verifier &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types) { if (!values || !types) return !values && !types; if (values->size() != types->size()) return false; - for (flatbuffers::uoffset_t i = 0; i < values->size(); ++i) { + for (::flatbuffers::uoffset_t i = 0; i < values->size(); ++i) { if (!VerifyAnyAmbiguousAliases( verifier, values->Get(i), types->GetEnum(i))) { return false; @@ -3632,7 +3632,7 @@ inline bool VerifyAnyAmbiguousAliasesVector(flatbuffers::Verifier &verifier, con return true; } -inline void *AnyAmbiguousAliasesUnion::UnPack(const void *obj, AnyAmbiguousAliases type, const flatbuffers::resolver_function_t *resolver) { +inline void *AnyAmbiguousAliasesUnion::UnPack(const void *obj, AnyAmbiguousAliases type, const ::flatbuffers::resolver_function_t *resolver) { (void)resolver; switch (type) { case AnyAmbiguousAliases::M1: { @@ -3651,7 +3651,7 @@ inline void *AnyAmbiguousAliasesUnion::UnPack(const void *obj, AnyAmbiguousAlias } } -inline flatbuffers::Offset AnyAmbiguousAliasesUnion::Pack(flatbuffers::FlatBufferBuilder &_fbb, const flatbuffers::rehasher_function_t *_rehasher) const { +inline ::flatbuffers::Offset AnyAmbiguousAliasesUnion::Pack(::flatbuffers::FlatBufferBuilder &_fbb, const ::flatbuffers::rehasher_function_t *_rehasher) const { (void)_rehasher; switch (type) { case AnyAmbiguousAliases::M1: { @@ -3712,13 +3712,13 @@ inline void AnyAmbiguousAliasesUnion::Reset() { type = AnyAmbiguousAliases::NONE; } -inline const flatbuffers::TypeTable *ColorTypeTable() { - static const flatbuffers::TypeCode type_codes[] = { - { flatbuffers::ET_UCHAR, 0, 0 }, - { flatbuffers::ET_UCHAR, 0, 0 }, - { flatbuffers::ET_UCHAR, 0, 0 } +inline const ::flatbuffers::TypeTable *ColorTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_UCHAR, 0, 0 }, + { ::flatbuffers::ET_UCHAR, 0, 0 }, + { ::flatbuffers::ET_UCHAR, 0, 0 } }; - static const flatbuffers::TypeFunction type_refs[] = { + static const ::flatbuffers::TypeFunction type_refs[] = { MyGame::Example::ColorTypeTable }; static const int64_t values[] = { 1, 2, 8 }; @@ -3727,20 +3727,20 @@ inline const flatbuffers::TypeTable *ColorTypeTable() { "Green", "Blue" }; - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_ENUM, 3, type_codes, type_refs, nullptr, values, names + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_ENUM, 3, type_codes, type_refs, nullptr, values, names }; return &tt; } -inline const flatbuffers::TypeTable *RaceTypeTable() { - static const flatbuffers::TypeCode type_codes[] = { - { flatbuffers::ET_CHAR, 0, 0 }, - { flatbuffers::ET_CHAR, 0, 0 }, - { flatbuffers::ET_CHAR, 0, 0 }, - { flatbuffers::ET_CHAR, 0, 0 } +inline const ::flatbuffers::TypeTable *RaceTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_CHAR, 0, 0 }, + { ::flatbuffers::ET_CHAR, 0, 0 }, + { ::flatbuffers::ET_CHAR, 0, 0 }, + { ::flatbuffers::ET_CHAR, 0, 0 } }; - static const flatbuffers::TypeFunction type_refs[] = { + static const ::flatbuffers::TypeFunction type_refs[] = { MyGame::Example::RaceTypeTable }; static const int64_t values[] = { -1, 0, 1, 2 }; @@ -3750,19 +3750,19 @@ inline const flatbuffers::TypeTable *RaceTypeTable() { "Dwarf", "Elf" }; - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_ENUM, 4, type_codes, type_refs, nullptr, values, names + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_ENUM, 4, type_codes, type_refs, nullptr, values, names }; return &tt; } -inline const flatbuffers::TypeTable *LongEnumTypeTable() { - static const flatbuffers::TypeCode type_codes[] = { - { flatbuffers::ET_ULONG, 0, 0 }, - { flatbuffers::ET_ULONG, 0, 0 }, - { flatbuffers::ET_ULONG, 0, 0 } +inline const ::flatbuffers::TypeTable *LongEnumTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_ULONG, 0, 0 }, + { ::flatbuffers::ET_ULONG, 0, 0 }, + { ::flatbuffers::ET_ULONG, 0, 0 } }; - static const flatbuffers::TypeFunction type_refs[] = { + static const ::flatbuffers::TypeFunction type_refs[] = { MyGame::Example::LongEnumTypeTable }; static const int64_t values[] = { 2ULL, 4ULL, 1099511627776ULL }; @@ -3771,20 +3771,20 @@ inline const flatbuffers::TypeTable *LongEnumTypeTable() { "LongTwo", "LongBig" }; - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_ENUM, 3, type_codes, type_refs, nullptr, values, names + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_ENUM, 3, type_codes, type_refs, nullptr, values, names }; return &tt; } -inline const flatbuffers::TypeTable *AnyTypeTable() { - static const flatbuffers::TypeCode type_codes[] = { - { flatbuffers::ET_SEQUENCE, 0, -1 }, - { flatbuffers::ET_SEQUENCE, 0, 0 }, - { flatbuffers::ET_SEQUENCE, 0, 1 }, - { flatbuffers::ET_SEQUENCE, 0, 2 } +inline const ::flatbuffers::TypeTable *AnyTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_SEQUENCE, 0, -1 }, + { ::flatbuffers::ET_SEQUENCE, 0, 0 }, + { ::flatbuffers::ET_SEQUENCE, 0, 1 }, + { ::flatbuffers::ET_SEQUENCE, 0, 2 } }; - static const flatbuffers::TypeFunction type_refs[] = { + static const ::flatbuffers::TypeFunction type_refs[] = { MyGame::Example::MonsterTypeTable, MyGame::Example::TestSimpleTableWithEnumTypeTable, MyGame::Example2::MonsterTypeTable @@ -3795,20 +3795,20 @@ inline const flatbuffers::TypeTable *AnyTypeTable() { "TestSimpleTableWithEnum", "MyGame_Example2_Monster" }; - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_UNION, 4, type_codes, type_refs, nullptr, nullptr, names + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_UNION, 4, type_codes, type_refs, nullptr, nullptr, names }; return &tt; } -inline const flatbuffers::TypeTable *AnyUniqueAliasesTypeTable() { - static const flatbuffers::TypeCode type_codes[] = { - { flatbuffers::ET_SEQUENCE, 0, -1 }, - { flatbuffers::ET_SEQUENCE, 0, 0 }, - { flatbuffers::ET_SEQUENCE, 0, 1 }, - { flatbuffers::ET_SEQUENCE, 0, 2 } +inline const ::flatbuffers::TypeTable *AnyUniqueAliasesTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_SEQUENCE, 0, -1 }, + { ::flatbuffers::ET_SEQUENCE, 0, 0 }, + { ::flatbuffers::ET_SEQUENCE, 0, 1 }, + { ::flatbuffers::ET_SEQUENCE, 0, 2 } }; - static const flatbuffers::TypeFunction type_refs[] = { + static const ::flatbuffers::TypeFunction type_refs[] = { MyGame::Example::MonsterTypeTable, MyGame::Example::TestSimpleTableWithEnumTypeTable, MyGame::Example2::MonsterTypeTable @@ -3819,20 +3819,20 @@ inline const flatbuffers::TypeTable *AnyUniqueAliasesTypeTable() { "TS", "M2" }; - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_UNION, 4, type_codes, type_refs, nullptr, nullptr, names + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_UNION, 4, type_codes, type_refs, nullptr, nullptr, names }; return &tt; } -inline const flatbuffers::TypeTable *AnyAmbiguousAliasesTypeTable() { - static const flatbuffers::TypeCode type_codes[] = { - { flatbuffers::ET_SEQUENCE, 0, -1 }, - { flatbuffers::ET_SEQUENCE, 0, 0 }, - { flatbuffers::ET_SEQUENCE, 0, 0 }, - { flatbuffers::ET_SEQUENCE, 0, 0 } +inline const ::flatbuffers::TypeTable *AnyAmbiguousAliasesTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_SEQUENCE, 0, -1 }, + { ::flatbuffers::ET_SEQUENCE, 0, 0 }, + { ::flatbuffers::ET_SEQUENCE, 0, 0 }, + { ::flatbuffers::ET_SEQUENCE, 0, 0 } }; - static const flatbuffers::TypeFunction type_refs[] = { + static const ::flatbuffers::TypeFunction type_refs[] = { MyGame::Example::MonsterTypeTable }; static const char * const names[] = { @@ -3841,26 +3841,26 @@ inline const flatbuffers::TypeTable *AnyAmbiguousAliasesTypeTable() { "M2", "M3" }; - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_UNION, 4, type_codes, type_refs, nullptr, nullptr, names + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_UNION, 4, type_codes, type_refs, nullptr, nullptr, names }; return &tt; } } // namespace Example -inline const flatbuffers::TypeTable *InParentNamespaceTypeTable() { - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_TABLE, 0, nullptr, nullptr, nullptr, nullptr, nullptr +inline const ::flatbuffers::TypeTable *InParentNamespaceTypeTable() { + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_TABLE, 0, nullptr, nullptr, nullptr, nullptr, nullptr }; return &tt; } namespace Example2 { -inline const flatbuffers::TypeTable *MonsterTypeTable() { - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_TABLE, 0, nullptr, nullptr, nullptr, nullptr, nullptr +inline const ::flatbuffers::TypeTable *MonsterTypeTable() { + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_TABLE, 0, nullptr, nullptr, nullptr, nullptr, nullptr }; return &tt; } @@ -3869,48 +3869,48 @@ inline const flatbuffers::TypeTable *MonsterTypeTable() { namespace Example { -inline const flatbuffers::TypeTable *TestTypeTable() { - static const flatbuffers::TypeCode type_codes[] = { - { flatbuffers::ET_SHORT, 0, -1 }, - { flatbuffers::ET_CHAR, 0, -1 } +inline const ::flatbuffers::TypeTable *TestTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_SHORT, 0, -1 }, + { ::flatbuffers::ET_CHAR, 0, -1 } }; static const int64_t values[] = { 0, 2, 4 }; static const char * const names[] = { "a", "b" }; - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_STRUCT, 2, type_codes, nullptr, nullptr, values, names + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_STRUCT, 2, type_codes, nullptr, nullptr, values, names }; return &tt; } -inline const flatbuffers::TypeTable *TestSimpleTableWithEnumTypeTable() { - static const flatbuffers::TypeCode type_codes[] = { - { flatbuffers::ET_UCHAR, 0, 0 } +inline const ::flatbuffers::TypeTable *TestSimpleTableWithEnumTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_UCHAR, 0, 0 } }; - static const flatbuffers::TypeFunction type_refs[] = { + static const ::flatbuffers::TypeFunction type_refs[] = { MyGame::Example::ColorTypeTable }; static const char * const names[] = { "color" }; - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_TABLE, 1, type_codes, type_refs, nullptr, nullptr, names + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_TABLE, 1, type_codes, type_refs, nullptr, nullptr, names }; return &tt; } -inline const flatbuffers::TypeTable *Vec3TypeTable() { - static const flatbuffers::TypeCode type_codes[] = { - { flatbuffers::ET_FLOAT, 0, -1 }, - { flatbuffers::ET_FLOAT, 0, -1 }, - { flatbuffers::ET_FLOAT, 0, -1 }, - { flatbuffers::ET_DOUBLE, 0, -1 }, - { flatbuffers::ET_UCHAR, 0, 0 }, - { flatbuffers::ET_SEQUENCE, 0, 1 } +inline const ::flatbuffers::TypeTable *Vec3TypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_FLOAT, 0, -1 }, + { ::flatbuffers::ET_FLOAT, 0, -1 }, + { ::flatbuffers::ET_FLOAT, 0, -1 }, + { ::flatbuffers::ET_DOUBLE, 0, -1 }, + { ::flatbuffers::ET_UCHAR, 0, 0 }, + { ::flatbuffers::ET_SEQUENCE, 0, 1 } }; - static const flatbuffers::TypeFunction type_refs[] = { + static const ::flatbuffers::TypeFunction type_refs[] = { MyGame::Example::ColorTypeTable, MyGame::Example::TestTypeTable }; @@ -3923,35 +3923,35 @@ inline const flatbuffers::TypeTable *Vec3TypeTable() { "test2", "test3" }; - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_STRUCT, 6, type_codes, type_refs, nullptr, values, names + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_STRUCT, 6, type_codes, type_refs, nullptr, values, names }; return &tt; } -inline const flatbuffers::TypeTable *AbilityTypeTable() { - static const flatbuffers::TypeCode type_codes[] = { - { flatbuffers::ET_UINT, 0, -1 }, - { flatbuffers::ET_UINT, 0, -1 } +inline const ::flatbuffers::TypeTable *AbilityTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_UINT, 0, -1 }, + { ::flatbuffers::ET_UINT, 0, -1 } }; static const int64_t values[] = { 0, 4, 8 }; static const char * const names[] = { "id", "distance" }; - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_STRUCT, 2, type_codes, nullptr, nullptr, values, names + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_STRUCT, 2, type_codes, nullptr, nullptr, values, names }; return &tt; } -inline const flatbuffers::TypeTable *StructOfStructsTypeTable() { - static const flatbuffers::TypeCode type_codes[] = { - { flatbuffers::ET_SEQUENCE, 0, 0 }, - { flatbuffers::ET_SEQUENCE, 0, 1 }, - { flatbuffers::ET_SEQUENCE, 0, 0 } +inline const ::flatbuffers::TypeTable *StructOfStructsTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_SEQUENCE, 0, 0 }, + { ::flatbuffers::ET_SEQUENCE, 0, 1 }, + { ::flatbuffers::ET_SEQUENCE, 0, 0 } }; - static const flatbuffers::TypeFunction type_refs[] = { + static const ::flatbuffers::TypeFunction type_refs[] = { MyGame::Example::AbilityTypeTable, MyGame::Example::TestTypeTable }; @@ -3961,125 +3961,125 @@ inline const flatbuffers::TypeTable *StructOfStructsTypeTable() { "b", "c" }; - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_STRUCT, 3, type_codes, type_refs, nullptr, values, names + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_STRUCT, 3, type_codes, type_refs, nullptr, values, names }; return &tt; } -inline const flatbuffers::TypeTable *StructOfStructsOfStructsTypeTable() { - static const flatbuffers::TypeCode type_codes[] = { - { flatbuffers::ET_SEQUENCE, 0, 0 } +inline const ::flatbuffers::TypeTable *StructOfStructsOfStructsTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_SEQUENCE, 0, 0 } }; - static const flatbuffers::TypeFunction type_refs[] = { + static const ::flatbuffers::TypeFunction type_refs[] = { MyGame::Example::StructOfStructsTypeTable }; static const int64_t values[] = { 0, 20 }; static const char * const names[] = { "a" }; - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_STRUCT, 1, type_codes, type_refs, nullptr, values, names + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_STRUCT, 1, type_codes, type_refs, nullptr, values, names }; return &tt; } -inline const flatbuffers::TypeTable *StatTypeTable() { - static const flatbuffers::TypeCode type_codes[] = { - { flatbuffers::ET_STRING, 0, -1 }, - { flatbuffers::ET_LONG, 0, -1 }, - { flatbuffers::ET_USHORT, 0, -1 } +inline const ::flatbuffers::TypeTable *StatTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_STRING, 0, -1 }, + { ::flatbuffers::ET_LONG, 0, -1 }, + { ::flatbuffers::ET_USHORT, 0, -1 } }; static const char * const names[] = { "id", "val", "count" }; - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_TABLE, 3, type_codes, nullptr, nullptr, nullptr, names + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_TABLE, 3, type_codes, nullptr, nullptr, nullptr, names }; return &tt; } -inline const flatbuffers::TypeTable *ReferrableTypeTable() { - static const flatbuffers::TypeCode type_codes[] = { - { flatbuffers::ET_ULONG, 0, -1 } +inline const ::flatbuffers::TypeTable *ReferrableTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_ULONG, 0, -1 } }; static const char * const names[] = { "id" }; - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_TABLE, 1, type_codes, nullptr, nullptr, nullptr, names + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_TABLE, 1, type_codes, nullptr, nullptr, nullptr, names }; return &tt; } -inline const flatbuffers::TypeTable *MonsterTypeTable() { - static const flatbuffers::TypeCode type_codes[] = { - { flatbuffers::ET_SEQUENCE, 0, 0 }, - { flatbuffers::ET_SHORT, 0, -1 }, - { flatbuffers::ET_SHORT, 0, -1 }, - { flatbuffers::ET_STRING, 0, -1 }, - { flatbuffers::ET_BOOL, 0, -1 }, - { flatbuffers::ET_UCHAR, 1, -1 }, - { flatbuffers::ET_UCHAR, 0, 1 }, - { flatbuffers::ET_UTYPE, 0, 2 }, - { flatbuffers::ET_SEQUENCE, 0, 2 }, - { flatbuffers::ET_SEQUENCE, 1, 3 }, - { flatbuffers::ET_STRING, 1, -1 }, - { flatbuffers::ET_SEQUENCE, 1, 4 }, - { flatbuffers::ET_SEQUENCE, 0, 4 }, - { flatbuffers::ET_UCHAR, 1, -1 }, - { flatbuffers::ET_SEQUENCE, 0, 5 }, - { flatbuffers::ET_BOOL, 0, -1 }, - { flatbuffers::ET_INT, 0, -1 }, - { flatbuffers::ET_UINT, 0, -1 }, - { flatbuffers::ET_LONG, 0, -1 }, - { flatbuffers::ET_ULONG, 0, -1 }, - { flatbuffers::ET_INT, 0, -1 }, - { flatbuffers::ET_UINT, 0, -1 }, - { flatbuffers::ET_LONG, 0, -1 }, - { flatbuffers::ET_ULONG, 0, -1 }, - { flatbuffers::ET_BOOL, 1, -1 }, - { flatbuffers::ET_FLOAT, 0, -1 }, - { flatbuffers::ET_FLOAT, 0, -1 }, - { flatbuffers::ET_FLOAT, 0, -1 }, - { flatbuffers::ET_STRING, 1, -1 }, - { flatbuffers::ET_SEQUENCE, 1, 6 }, - { flatbuffers::ET_UCHAR, 1, -1 }, - { flatbuffers::ET_SEQUENCE, 1, 3 }, - { flatbuffers::ET_LONG, 1, -1 }, - { flatbuffers::ET_DOUBLE, 1, -1 }, - { flatbuffers::ET_SEQUENCE, 0, 7 }, - { flatbuffers::ET_SEQUENCE, 1, 8 }, - { flatbuffers::ET_ULONG, 0, -1 }, - { flatbuffers::ET_ULONG, 1, -1 }, - { flatbuffers::ET_SEQUENCE, 1, 8 }, - { flatbuffers::ET_ULONG, 0, -1 }, - { flatbuffers::ET_ULONG, 1, -1 }, - { flatbuffers::ET_ULONG, 0, -1 }, - { flatbuffers::ET_ULONG, 1, -1 }, - { flatbuffers::ET_UTYPE, 0, 9 }, - { flatbuffers::ET_SEQUENCE, 0, 9 }, - { flatbuffers::ET_UTYPE, 0, 10 }, - { flatbuffers::ET_SEQUENCE, 0, 10 }, - { flatbuffers::ET_UCHAR, 1, 1 }, - { flatbuffers::ET_CHAR, 0, 11 }, - { flatbuffers::ET_UCHAR, 1, -1 }, - { flatbuffers::ET_SEQUENCE, 1, 5 }, - { flatbuffers::ET_SEQUENCE, 0, 3 }, - { flatbuffers::ET_ULONG, 0, 12 }, - { flatbuffers::ET_ULONG, 0, 12 }, - { flatbuffers::ET_FLOAT, 0, -1 }, - { flatbuffers::ET_FLOAT, 0, -1 }, - { flatbuffers::ET_FLOAT, 0, -1 }, - { flatbuffers::ET_FLOAT, 0, -1 }, - { flatbuffers::ET_FLOAT, 0, -1 }, - { flatbuffers::ET_FLOAT, 0, -1 }, - { flatbuffers::ET_FLOAT, 0, -1 }, - { flatbuffers::ET_DOUBLE, 0, -1 } +inline const ::flatbuffers::TypeTable *MonsterTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_SEQUENCE, 0, 0 }, + { ::flatbuffers::ET_SHORT, 0, -1 }, + { ::flatbuffers::ET_SHORT, 0, -1 }, + { ::flatbuffers::ET_STRING, 0, -1 }, + { ::flatbuffers::ET_BOOL, 0, -1 }, + { ::flatbuffers::ET_UCHAR, 1, -1 }, + { ::flatbuffers::ET_UCHAR, 0, 1 }, + { ::flatbuffers::ET_UTYPE, 0, 2 }, + { ::flatbuffers::ET_SEQUENCE, 0, 2 }, + { ::flatbuffers::ET_SEQUENCE, 1, 3 }, + { ::flatbuffers::ET_STRING, 1, -1 }, + { ::flatbuffers::ET_SEQUENCE, 1, 4 }, + { ::flatbuffers::ET_SEQUENCE, 0, 4 }, + { ::flatbuffers::ET_UCHAR, 1, -1 }, + { ::flatbuffers::ET_SEQUENCE, 0, 5 }, + { ::flatbuffers::ET_BOOL, 0, -1 }, + { ::flatbuffers::ET_INT, 0, -1 }, + { ::flatbuffers::ET_UINT, 0, -1 }, + { ::flatbuffers::ET_LONG, 0, -1 }, + { ::flatbuffers::ET_ULONG, 0, -1 }, + { ::flatbuffers::ET_INT, 0, -1 }, + { ::flatbuffers::ET_UINT, 0, -1 }, + { ::flatbuffers::ET_LONG, 0, -1 }, + { ::flatbuffers::ET_ULONG, 0, -1 }, + { ::flatbuffers::ET_BOOL, 1, -1 }, + { ::flatbuffers::ET_FLOAT, 0, -1 }, + { ::flatbuffers::ET_FLOAT, 0, -1 }, + { ::flatbuffers::ET_FLOAT, 0, -1 }, + { ::flatbuffers::ET_STRING, 1, -1 }, + { ::flatbuffers::ET_SEQUENCE, 1, 6 }, + { ::flatbuffers::ET_UCHAR, 1, -1 }, + { ::flatbuffers::ET_SEQUENCE, 1, 3 }, + { ::flatbuffers::ET_LONG, 1, -1 }, + { ::flatbuffers::ET_DOUBLE, 1, -1 }, + { ::flatbuffers::ET_SEQUENCE, 0, 7 }, + { ::flatbuffers::ET_SEQUENCE, 1, 8 }, + { ::flatbuffers::ET_ULONG, 0, -1 }, + { ::flatbuffers::ET_ULONG, 1, -1 }, + { ::flatbuffers::ET_SEQUENCE, 1, 8 }, + { ::flatbuffers::ET_ULONG, 0, -1 }, + { ::flatbuffers::ET_ULONG, 1, -1 }, + { ::flatbuffers::ET_ULONG, 0, -1 }, + { ::flatbuffers::ET_ULONG, 1, -1 }, + { ::flatbuffers::ET_UTYPE, 0, 9 }, + { ::flatbuffers::ET_SEQUENCE, 0, 9 }, + { ::flatbuffers::ET_UTYPE, 0, 10 }, + { ::flatbuffers::ET_SEQUENCE, 0, 10 }, + { ::flatbuffers::ET_UCHAR, 1, 1 }, + { ::flatbuffers::ET_CHAR, 0, 11 }, + { ::flatbuffers::ET_UCHAR, 1, -1 }, + { ::flatbuffers::ET_SEQUENCE, 1, 5 }, + { ::flatbuffers::ET_SEQUENCE, 0, 3 }, + { ::flatbuffers::ET_ULONG, 0, 12 }, + { ::flatbuffers::ET_ULONG, 0, 12 }, + { ::flatbuffers::ET_FLOAT, 0, -1 }, + { ::flatbuffers::ET_FLOAT, 0, -1 }, + { ::flatbuffers::ET_FLOAT, 0, -1 }, + { ::flatbuffers::ET_FLOAT, 0, -1 }, + { ::flatbuffers::ET_FLOAT, 0, -1 }, + { ::flatbuffers::ET_FLOAT, 0, -1 }, + { ::flatbuffers::ET_FLOAT, 0, -1 }, + { ::flatbuffers::ET_DOUBLE, 0, -1 } }; - static const flatbuffers::TypeFunction type_refs[] = { + static const ::flatbuffers::TypeFunction type_refs[] = { MyGame::Example::Vec3TypeTable, MyGame::Example::ColorTypeTable, MyGame::Example::AnyTypeTable, @@ -4158,26 +4158,26 @@ inline const flatbuffers::TypeTable *MonsterTypeTable() { "negative_infinity_default", "double_inf_default" }; - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_TABLE, 62, type_codes, type_refs, nullptr, nullptr, names + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_TABLE, 62, type_codes, type_refs, nullptr, nullptr, names }; return &tt; } -inline const flatbuffers::TypeTable *TypeAliasesTypeTable() { - static const flatbuffers::TypeCode type_codes[] = { - { flatbuffers::ET_CHAR, 0, -1 }, - { flatbuffers::ET_UCHAR, 0, -1 }, - { flatbuffers::ET_SHORT, 0, -1 }, - { flatbuffers::ET_USHORT, 0, -1 }, - { flatbuffers::ET_INT, 0, -1 }, - { flatbuffers::ET_UINT, 0, -1 }, - { flatbuffers::ET_LONG, 0, -1 }, - { flatbuffers::ET_ULONG, 0, -1 }, - { flatbuffers::ET_FLOAT, 0, -1 }, - { flatbuffers::ET_DOUBLE, 0, -1 }, - { flatbuffers::ET_CHAR, 1, -1 }, - { flatbuffers::ET_DOUBLE, 1, -1 } +inline const ::flatbuffers::TypeTable *TypeAliasesTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_CHAR, 0, -1 }, + { ::flatbuffers::ET_UCHAR, 0, -1 }, + { ::flatbuffers::ET_SHORT, 0, -1 }, + { ::flatbuffers::ET_USHORT, 0, -1 }, + { ::flatbuffers::ET_INT, 0, -1 }, + { ::flatbuffers::ET_UINT, 0, -1 }, + { ::flatbuffers::ET_LONG, 0, -1 }, + { ::flatbuffers::ET_ULONG, 0, -1 }, + { ::flatbuffers::ET_FLOAT, 0, -1 }, + { ::flatbuffers::ET_DOUBLE, 0, -1 }, + { ::flatbuffers::ET_CHAR, 1, -1 }, + { ::flatbuffers::ET_DOUBLE, 1, -1 } }; static const char * const names[] = { "i8", @@ -4193,26 +4193,26 @@ inline const flatbuffers::TypeTable *TypeAliasesTypeTable() { "v8", "vf64" }; - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_TABLE, 12, type_codes, nullptr, nullptr, nullptr, names + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_TABLE, 12, type_codes, nullptr, nullptr, nullptr, names }; return &tt; } inline const MyGame::Example::Monster *GetMonster(const void *buf) { - return flatbuffers::GetRoot(buf); + return ::flatbuffers::GetRoot(buf); } inline const MyGame::Example::Monster *GetSizePrefixedMonster(const void *buf) { - return flatbuffers::GetSizePrefixedRoot(buf); + return ::flatbuffers::GetSizePrefixedRoot(buf); } inline Monster *GetMutableMonster(void *buf) { - return flatbuffers::GetMutableRoot(buf); + return ::flatbuffers::GetMutableRoot(buf); } inline MyGame::Example::Monster *GetMutableSizePrefixedMonster(void *buf) { - return flatbuffers::GetMutableSizePrefixedRoot(buf); + return ::flatbuffers::GetMutableSizePrefixedRoot(buf); } inline const char *MonsterIdentifier() { @@ -4220,22 +4220,22 @@ inline const char *MonsterIdentifier() { } inline bool MonsterBufferHasIdentifier(const void *buf) { - return flatbuffers::BufferHasIdentifier( + return ::flatbuffers::BufferHasIdentifier( buf, MonsterIdentifier()); } inline bool SizePrefixedMonsterBufferHasIdentifier(const void *buf) { - return flatbuffers::BufferHasIdentifier( + return ::flatbuffers::BufferHasIdentifier( buf, MonsterIdentifier(), true); } inline bool VerifyMonsterBuffer( - flatbuffers::Verifier &verifier) { + ::flatbuffers::Verifier &verifier) { return verifier.VerifyBuffer(MonsterIdentifier()); } inline bool VerifySizePrefixedMonsterBuffer( - flatbuffers::Verifier &verifier) { + ::flatbuffers::Verifier &verifier) { return verifier.VerifySizePrefixedBuffer(MonsterIdentifier()); } @@ -4244,26 +4244,26 @@ inline const char *MonsterExtension() { } inline void FinishMonsterBuffer( - flatbuffers::FlatBufferBuilder &fbb, - flatbuffers::Offset root) { + ::flatbuffers::FlatBufferBuilder &fbb, + ::flatbuffers::Offset root) { fbb.Finish(root, MonsterIdentifier()); } inline void FinishSizePrefixedMonsterBuffer( - flatbuffers::FlatBufferBuilder &fbb, - flatbuffers::Offset root) { + ::flatbuffers::FlatBufferBuilder &fbb, + ::flatbuffers::Offset root) { fbb.FinishSizePrefixed(root, MonsterIdentifier()); } inline std::unique_ptr UnPackMonster( const void *buf, - const flatbuffers::resolver_function_t *res = nullptr) { + const ::flatbuffers::resolver_function_t *res = nullptr) { return std::unique_ptr(GetMonster(buf)->UnPack(res)); } inline std::unique_ptr UnPackSizePrefixedMonster( const void *buf, - const flatbuffers::resolver_function_t *res = nullptr) { + const ::flatbuffers::resolver_function_t *res = nullptr) { return std::unique_ptr(GetSizePrefixedMonster(buf)->UnPack(res)); } diff --git a/tests/cpp17/generated_cpp17/optional_scalars_generated.h b/tests/cpp17/generated_cpp17/optional_scalars_generated.h index da101aa136..9c672c57a9 100644 --- a/tests/cpp17/generated_cpp17/optional_scalars_generated.h +++ b/tests/cpp17/generated_cpp17/optional_scalars_generated.h @@ -19,7 +19,7 @@ struct ScalarStuff; struct ScalarStuffBuilder; struct ScalarStuffT; -inline const flatbuffers::TypeTable *ScalarStuffTypeTable(); +inline const ::flatbuffers::TypeTable *ScalarStuffTypeTable(); enum class OptionalByte : int8_t { None = 0, @@ -49,56 +49,56 @@ inline const char * const *EnumNamesOptionalByte() { } inline const char *EnumNameOptionalByte(OptionalByte e) { - if (flatbuffers::IsOutRange(e, OptionalByte::None, OptionalByte::Two)) return ""; + if (::flatbuffers::IsOutRange(e, OptionalByte::None, OptionalByte::Two)) return ""; const size_t index = static_cast(e); return EnumNamesOptionalByte()[index]; } -struct ScalarStuffT : public flatbuffers::NativeTable { +struct ScalarStuffT : public ::flatbuffers::NativeTable { typedef ScalarStuff TableType; int8_t just_i8 = 0; - flatbuffers::Optional maybe_i8 = flatbuffers::nullopt; + ::flatbuffers::Optional maybe_i8 = ::flatbuffers::nullopt; int8_t default_i8 = 42; uint8_t just_u8 = 0; - flatbuffers::Optional maybe_u8 = flatbuffers::nullopt; + ::flatbuffers::Optional maybe_u8 = ::flatbuffers::nullopt; uint8_t default_u8 = 42; int16_t just_i16 = 0; - flatbuffers::Optional maybe_i16 = flatbuffers::nullopt; + ::flatbuffers::Optional maybe_i16 = ::flatbuffers::nullopt; int16_t default_i16 = 42; uint16_t just_u16 = 0; - flatbuffers::Optional maybe_u16 = flatbuffers::nullopt; + ::flatbuffers::Optional maybe_u16 = ::flatbuffers::nullopt; uint16_t default_u16 = 42; int32_t just_i32 = 0; - flatbuffers::Optional maybe_i32 = flatbuffers::nullopt; + ::flatbuffers::Optional maybe_i32 = ::flatbuffers::nullopt; int32_t default_i32 = 42; uint32_t just_u32 = 0; - flatbuffers::Optional maybe_u32 = flatbuffers::nullopt; + ::flatbuffers::Optional maybe_u32 = ::flatbuffers::nullopt; uint32_t default_u32 = 42; int64_t just_i64 = 0; - flatbuffers::Optional maybe_i64 = flatbuffers::nullopt; + ::flatbuffers::Optional maybe_i64 = ::flatbuffers::nullopt; int64_t default_i64 = 42LL; uint64_t just_u64 = 0; - flatbuffers::Optional maybe_u64 = flatbuffers::nullopt; + ::flatbuffers::Optional maybe_u64 = ::flatbuffers::nullopt; uint64_t default_u64 = 42ULL; float just_f32 = 0.0f; - flatbuffers::Optional maybe_f32 = flatbuffers::nullopt; + ::flatbuffers::Optional maybe_f32 = ::flatbuffers::nullopt; float default_f32 = 42.0f; double just_f64 = 0.0; - flatbuffers::Optional maybe_f64 = flatbuffers::nullopt; + ::flatbuffers::Optional maybe_f64 = ::flatbuffers::nullopt; double default_f64 = 42.0; bool just_bool = false; - flatbuffers::Optional maybe_bool = flatbuffers::nullopt; + ::flatbuffers::Optional maybe_bool = ::flatbuffers::nullopt; bool default_bool = true; optional_scalars::OptionalByte just_enum = optional_scalars::OptionalByte::None; - flatbuffers::Optional maybe_enum = flatbuffers::nullopt; + ::flatbuffers::Optional maybe_enum = ::flatbuffers::nullopt; optional_scalars::OptionalByte default_enum = optional_scalars::OptionalByte::One; }; -struct ScalarStuff FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { +struct ScalarStuff FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { typedef ScalarStuffT NativeTableType; typedef ScalarStuffBuilder Builder; struct Traits; - static const flatbuffers::TypeTable *MiniReflectTypeTable() { + static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { return ScalarStuffTypeTable(); } enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { @@ -145,7 +145,7 @@ struct ScalarStuff FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { bool mutate_just_i8(int8_t _just_i8 = 0) { return SetField(VT_JUST_I8, _just_i8, 0); } - flatbuffers::Optional maybe_i8() const { + ::flatbuffers::Optional maybe_i8() const { return GetOptional(VT_MAYBE_I8); } bool mutate_maybe_i8(int8_t _maybe_i8) { @@ -163,7 +163,7 @@ struct ScalarStuff FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { bool mutate_just_u8(uint8_t _just_u8 = 0) { return SetField(VT_JUST_U8, _just_u8, 0); } - flatbuffers::Optional maybe_u8() const { + ::flatbuffers::Optional maybe_u8() const { return GetOptional(VT_MAYBE_U8); } bool mutate_maybe_u8(uint8_t _maybe_u8) { @@ -181,7 +181,7 @@ struct ScalarStuff FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { bool mutate_just_i16(int16_t _just_i16 = 0) { return SetField(VT_JUST_I16, _just_i16, 0); } - flatbuffers::Optional maybe_i16() const { + ::flatbuffers::Optional maybe_i16() const { return GetOptional(VT_MAYBE_I16); } bool mutate_maybe_i16(int16_t _maybe_i16) { @@ -199,7 +199,7 @@ struct ScalarStuff FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { bool mutate_just_u16(uint16_t _just_u16 = 0) { return SetField(VT_JUST_U16, _just_u16, 0); } - flatbuffers::Optional maybe_u16() const { + ::flatbuffers::Optional maybe_u16() const { return GetOptional(VT_MAYBE_U16); } bool mutate_maybe_u16(uint16_t _maybe_u16) { @@ -217,7 +217,7 @@ struct ScalarStuff FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { bool mutate_just_i32(int32_t _just_i32 = 0) { return SetField(VT_JUST_I32, _just_i32, 0); } - flatbuffers::Optional maybe_i32() const { + ::flatbuffers::Optional maybe_i32() const { return GetOptional(VT_MAYBE_I32); } bool mutate_maybe_i32(int32_t _maybe_i32) { @@ -235,7 +235,7 @@ struct ScalarStuff FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { bool mutate_just_u32(uint32_t _just_u32 = 0) { return SetField(VT_JUST_U32, _just_u32, 0); } - flatbuffers::Optional maybe_u32() const { + ::flatbuffers::Optional maybe_u32() const { return GetOptional(VT_MAYBE_U32); } bool mutate_maybe_u32(uint32_t _maybe_u32) { @@ -253,7 +253,7 @@ struct ScalarStuff FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { bool mutate_just_i64(int64_t _just_i64 = 0) { return SetField(VT_JUST_I64, _just_i64, 0); } - flatbuffers::Optional maybe_i64() const { + ::flatbuffers::Optional maybe_i64() const { return GetOptional(VT_MAYBE_I64); } bool mutate_maybe_i64(int64_t _maybe_i64) { @@ -271,7 +271,7 @@ struct ScalarStuff FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { bool mutate_just_u64(uint64_t _just_u64 = 0) { return SetField(VT_JUST_U64, _just_u64, 0); } - flatbuffers::Optional maybe_u64() const { + ::flatbuffers::Optional maybe_u64() const { return GetOptional(VT_MAYBE_U64); } bool mutate_maybe_u64(uint64_t _maybe_u64) { @@ -289,7 +289,7 @@ struct ScalarStuff FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { bool mutate_just_f32(float _just_f32 = 0.0f) { return SetField(VT_JUST_F32, _just_f32, 0.0f); } - flatbuffers::Optional maybe_f32() const { + ::flatbuffers::Optional maybe_f32() const { return GetOptional(VT_MAYBE_F32); } bool mutate_maybe_f32(float _maybe_f32) { @@ -307,7 +307,7 @@ struct ScalarStuff FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { bool mutate_just_f64(double _just_f64 = 0.0) { return SetField(VT_JUST_F64, _just_f64, 0.0); } - flatbuffers::Optional maybe_f64() const { + ::flatbuffers::Optional maybe_f64() const { return GetOptional(VT_MAYBE_F64); } bool mutate_maybe_f64(double _maybe_f64) { @@ -325,7 +325,7 @@ struct ScalarStuff FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { bool mutate_just_bool(bool _just_bool = 0) { return SetField(VT_JUST_BOOL, static_cast(_just_bool), 0); } - flatbuffers::Optional maybe_bool() const { + ::flatbuffers::Optional maybe_bool() const { return GetOptional(VT_MAYBE_BOOL); } bool mutate_maybe_bool(bool _maybe_bool) { @@ -343,7 +343,7 @@ struct ScalarStuff FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { bool mutate_just_enum(optional_scalars::OptionalByte _just_enum = static_cast(0)) { return SetField(VT_JUST_ENUM, static_cast(_just_enum), 0); } - flatbuffers::Optional maybe_enum() const { + ::flatbuffers::Optional maybe_enum() const { return GetOptional(VT_MAYBE_ENUM); } bool mutate_maybe_enum(optional_scalars::OptionalByte _maybe_enum) { @@ -395,7 +395,7 @@ struct ScalarStuff FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { else if constexpr (Index == 35) return default_enum(); else static_assert(Index != Index, "Invalid Field Index"); } - bool Verify(flatbuffers::Verifier &verifier) const { + bool Verify(::flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_JUST_I8, 1) && VerifyField(verifier, VT_MAYBE_I8, 1) && @@ -435,15 +435,15 @@ struct ScalarStuff FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { VerifyField(verifier, VT_DEFAULT_ENUM, 1) && verifier.EndTable(); } - ScalarStuffT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; - void UnPackTo(ScalarStuffT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const; - static flatbuffers::Offset Pack(flatbuffers::FlatBufferBuilder &_fbb, const ScalarStuffT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); + ScalarStuffT *UnPack(const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; + void UnPackTo(ScalarStuffT *_o, const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; + static ::flatbuffers::Offset Pack(::flatbuffers::FlatBufferBuilder &_fbb, const ScalarStuffT* _o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); }; struct ScalarStuffBuilder { typedef ScalarStuff Table; - flatbuffers::FlatBufferBuilder &fbb_; - flatbuffers::uoffset_t start_; + ::flatbuffers::FlatBufferBuilder &fbb_; + ::flatbuffers::uoffset_t start_; void add_just_i8(int8_t just_i8) { fbb_.AddElement(ScalarStuff::VT_JUST_I8, just_i8, 0); } @@ -552,54 +552,54 @@ struct ScalarStuffBuilder { void add_default_enum(optional_scalars::OptionalByte default_enum) { fbb_.AddElement(ScalarStuff::VT_DEFAULT_ENUM, static_cast(default_enum), 1); } - explicit ScalarStuffBuilder(flatbuffers::FlatBufferBuilder &_fbb) + explicit ScalarStuffBuilder(::flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); } - flatbuffers::Offset Finish() { + ::flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); - auto o = flatbuffers::Offset(end); + auto o = ::flatbuffers::Offset(end); return o; } }; -inline flatbuffers::Offset CreateScalarStuff( - flatbuffers::FlatBufferBuilder &_fbb, +inline ::flatbuffers::Offset CreateScalarStuff( + ::flatbuffers::FlatBufferBuilder &_fbb, int8_t just_i8 = 0, - flatbuffers::Optional maybe_i8 = flatbuffers::nullopt, + ::flatbuffers::Optional maybe_i8 = ::flatbuffers::nullopt, int8_t default_i8 = 42, uint8_t just_u8 = 0, - flatbuffers::Optional maybe_u8 = flatbuffers::nullopt, + ::flatbuffers::Optional maybe_u8 = ::flatbuffers::nullopt, uint8_t default_u8 = 42, int16_t just_i16 = 0, - flatbuffers::Optional maybe_i16 = flatbuffers::nullopt, + ::flatbuffers::Optional maybe_i16 = ::flatbuffers::nullopt, int16_t default_i16 = 42, uint16_t just_u16 = 0, - flatbuffers::Optional maybe_u16 = flatbuffers::nullopt, + ::flatbuffers::Optional maybe_u16 = ::flatbuffers::nullopt, uint16_t default_u16 = 42, int32_t just_i32 = 0, - flatbuffers::Optional maybe_i32 = flatbuffers::nullopt, + ::flatbuffers::Optional maybe_i32 = ::flatbuffers::nullopt, int32_t default_i32 = 42, uint32_t just_u32 = 0, - flatbuffers::Optional maybe_u32 = flatbuffers::nullopt, + ::flatbuffers::Optional maybe_u32 = ::flatbuffers::nullopt, uint32_t default_u32 = 42, int64_t just_i64 = 0, - flatbuffers::Optional maybe_i64 = flatbuffers::nullopt, + ::flatbuffers::Optional maybe_i64 = ::flatbuffers::nullopt, int64_t default_i64 = 42LL, uint64_t just_u64 = 0, - flatbuffers::Optional maybe_u64 = flatbuffers::nullopt, + ::flatbuffers::Optional maybe_u64 = ::flatbuffers::nullopt, uint64_t default_u64 = 42ULL, float just_f32 = 0.0f, - flatbuffers::Optional maybe_f32 = flatbuffers::nullopt, + ::flatbuffers::Optional maybe_f32 = ::flatbuffers::nullopt, float default_f32 = 42.0f, double just_f64 = 0.0, - flatbuffers::Optional maybe_f64 = flatbuffers::nullopt, + ::flatbuffers::Optional maybe_f64 = ::flatbuffers::nullopt, double default_f64 = 42.0, bool just_bool = false, - flatbuffers::Optional maybe_bool = flatbuffers::nullopt, + ::flatbuffers::Optional maybe_bool = ::flatbuffers::nullopt, bool default_bool = true, optional_scalars::OptionalByte just_enum = optional_scalars::OptionalByte::None, - flatbuffers::Optional maybe_enum = flatbuffers::nullopt, + ::flatbuffers::Optional maybe_enum = ::flatbuffers::nullopt, optional_scalars::OptionalByte default_enum = optional_scalars::OptionalByte::One) { ScalarStuffBuilder builder_(_fbb); builder_.add_default_f64(default_f64); @@ -689,15 +689,15 @@ struct ScalarStuff::Traits { using FieldType = decltype(std::declval().get_field()); }; -flatbuffers::Offset CreateScalarStuff(flatbuffers::FlatBufferBuilder &_fbb, const ScalarStuffT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); +::flatbuffers::Offset CreateScalarStuff(::flatbuffers::FlatBufferBuilder &_fbb, const ScalarStuffT *_o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); -inline ScalarStuffT *ScalarStuff::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +inline ScalarStuffT *ScalarStuff::UnPack(const ::flatbuffers::resolver_function_t *_resolver) const { auto _o = std::make_unique(); UnPackTo(_o.get(), _resolver); return _o.release(); } -inline void ScalarStuff::UnPackTo(ScalarStuffT *_o, const flatbuffers::resolver_function_t *_resolver) const { +inline void ScalarStuff::UnPackTo(ScalarStuffT *_o, const ::flatbuffers::resolver_function_t *_resolver) const { (void)_o; (void)_resolver; { auto _e = just_i8(); _o->just_i8 = _e; } @@ -738,14 +738,14 @@ inline void ScalarStuff::UnPackTo(ScalarStuffT *_o, const flatbuffers::resolver_ { auto _e = default_enum(); _o->default_enum = _e; } } -inline flatbuffers::Offset ScalarStuff::Pack(flatbuffers::FlatBufferBuilder &_fbb, const ScalarStuffT* _o, const flatbuffers::rehasher_function_t *_rehasher) { +inline ::flatbuffers::Offset ScalarStuff::Pack(::flatbuffers::FlatBufferBuilder &_fbb, const ScalarStuffT* _o, const ::flatbuffers::rehasher_function_t *_rehasher) { return CreateScalarStuff(_fbb, _o, _rehasher); } -inline flatbuffers::Offset CreateScalarStuff(flatbuffers::FlatBufferBuilder &_fbb, const ScalarStuffT *_o, const flatbuffers::rehasher_function_t *_rehasher) { +inline ::flatbuffers::Offset CreateScalarStuff(::flatbuffers::FlatBufferBuilder &_fbb, const ScalarStuffT *_o, const ::flatbuffers::rehasher_function_t *_rehasher) { (void)_rehasher; (void)_o; - struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const ScalarStuffT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; + struct _VectorArgs { ::flatbuffers::FlatBufferBuilder *__fbb; const ScalarStuffT* __o; const ::flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; auto _just_i8 = _o->just_i8; auto _maybe_i8 = _o->maybe_i8; auto _default_i8 = _o->default_i8; @@ -822,13 +822,13 @@ inline flatbuffers::Offset CreateScalarStuff(flatbuffers::FlatBuffe _default_enum); } -inline const flatbuffers::TypeTable *OptionalByteTypeTable() { - static const flatbuffers::TypeCode type_codes[] = { - { flatbuffers::ET_CHAR, 0, 0 }, - { flatbuffers::ET_CHAR, 0, 0 }, - { flatbuffers::ET_CHAR, 0, 0 } +inline const ::flatbuffers::TypeTable *OptionalByteTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_CHAR, 0, 0 }, + { ::flatbuffers::ET_CHAR, 0, 0 }, + { ::flatbuffers::ET_CHAR, 0, 0 } }; - static const flatbuffers::TypeFunction type_refs[] = { + static const ::flatbuffers::TypeFunction type_refs[] = { optional_scalars::OptionalByteTypeTable }; static const char * const names[] = { @@ -836,52 +836,52 @@ inline const flatbuffers::TypeTable *OptionalByteTypeTable() { "One", "Two" }; - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_ENUM, 3, type_codes, type_refs, nullptr, nullptr, names + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_ENUM, 3, type_codes, type_refs, nullptr, nullptr, names }; return &tt; } -inline const flatbuffers::TypeTable *ScalarStuffTypeTable() { - static const flatbuffers::TypeCode type_codes[] = { - { flatbuffers::ET_CHAR, 0, -1 }, - { flatbuffers::ET_CHAR, 0, -1 }, - { flatbuffers::ET_CHAR, 0, -1 }, - { flatbuffers::ET_UCHAR, 0, -1 }, - { flatbuffers::ET_UCHAR, 0, -1 }, - { flatbuffers::ET_UCHAR, 0, -1 }, - { flatbuffers::ET_SHORT, 0, -1 }, - { flatbuffers::ET_SHORT, 0, -1 }, - { flatbuffers::ET_SHORT, 0, -1 }, - { flatbuffers::ET_USHORT, 0, -1 }, - { flatbuffers::ET_USHORT, 0, -1 }, - { flatbuffers::ET_USHORT, 0, -1 }, - { flatbuffers::ET_INT, 0, -1 }, - { flatbuffers::ET_INT, 0, -1 }, - { flatbuffers::ET_INT, 0, -1 }, - { flatbuffers::ET_UINT, 0, -1 }, - { flatbuffers::ET_UINT, 0, -1 }, - { flatbuffers::ET_UINT, 0, -1 }, - { flatbuffers::ET_LONG, 0, -1 }, - { flatbuffers::ET_LONG, 0, -1 }, - { flatbuffers::ET_LONG, 0, -1 }, - { flatbuffers::ET_ULONG, 0, -1 }, - { flatbuffers::ET_ULONG, 0, -1 }, - { flatbuffers::ET_ULONG, 0, -1 }, - { flatbuffers::ET_FLOAT, 0, -1 }, - { flatbuffers::ET_FLOAT, 0, -1 }, - { flatbuffers::ET_FLOAT, 0, -1 }, - { flatbuffers::ET_DOUBLE, 0, -1 }, - { flatbuffers::ET_DOUBLE, 0, -1 }, - { flatbuffers::ET_DOUBLE, 0, -1 }, - { flatbuffers::ET_BOOL, 0, -1 }, - { flatbuffers::ET_BOOL, 0, -1 }, - { flatbuffers::ET_BOOL, 0, -1 }, - { flatbuffers::ET_CHAR, 0, 0 }, - { flatbuffers::ET_CHAR, 0, 0 }, - { flatbuffers::ET_CHAR, 0, 0 } +inline const ::flatbuffers::TypeTable *ScalarStuffTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_CHAR, 0, -1 }, + { ::flatbuffers::ET_CHAR, 0, -1 }, + { ::flatbuffers::ET_CHAR, 0, -1 }, + { ::flatbuffers::ET_UCHAR, 0, -1 }, + { ::flatbuffers::ET_UCHAR, 0, -1 }, + { ::flatbuffers::ET_UCHAR, 0, -1 }, + { ::flatbuffers::ET_SHORT, 0, -1 }, + { ::flatbuffers::ET_SHORT, 0, -1 }, + { ::flatbuffers::ET_SHORT, 0, -1 }, + { ::flatbuffers::ET_USHORT, 0, -1 }, + { ::flatbuffers::ET_USHORT, 0, -1 }, + { ::flatbuffers::ET_USHORT, 0, -1 }, + { ::flatbuffers::ET_INT, 0, -1 }, + { ::flatbuffers::ET_INT, 0, -1 }, + { ::flatbuffers::ET_INT, 0, -1 }, + { ::flatbuffers::ET_UINT, 0, -1 }, + { ::flatbuffers::ET_UINT, 0, -1 }, + { ::flatbuffers::ET_UINT, 0, -1 }, + { ::flatbuffers::ET_LONG, 0, -1 }, + { ::flatbuffers::ET_LONG, 0, -1 }, + { ::flatbuffers::ET_LONG, 0, -1 }, + { ::flatbuffers::ET_ULONG, 0, -1 }, + { ::flatbuffers::ET_ULONG, 0, -1 }, + { ::flatbuffers::ET_ULONG, 0, -1 }, + { ::flatbuffers::ET_FLOAT, 0, -1 }, + { ::flatbuffers::ET_FLOAT, 0, -1 }, + { ::flatbuffers::ET_FLOAT, 0, -1 }, + { ::flatbuffers::ET_DOUBLE, 0, -1 }, + { ::flatbuffers::ET_DOUBLE, 0, -1 }, + { ::flatbuffers::ET_DOUBLE, 0, -1 }, + { ::flatbuffers::ET_BOOL, 0, -1 }, + { ::flatbuffers::ET_BOOL, 0, -1 }, + { ::flatbuffers::ET_BOOL, 0, -1 }, + { ::flatbuffers::ET_CHAR, 0, 0 }, + { ::flatbuffers::ET_CHAR, 0, 0 }, + { ::flatbuffers::ET_CHAR, 0, 0 } }; - static const flatbuffers::TypeFunction type_refs[] = { + static const ::flatbuffers::TypeFunction type_refs[] = { optional_scalars::OptionalByteTypeTable }; static const char * const names[] = { @@ -922,26 +922,26 @@ inline const flatbuffers::TypeTable *ScalarStuffTypeTable() { "maybe_enum", "default_enum" }; - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_TABLE, 36, type_codes, type_refs, nullptr, nullptr, names + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_TABLE, 36, type_codes, type_refs, nullptr, nullptr, names }; return &tt; } inline const optional_scalars::ScalarStuff *GetScalarStuff(const void *buf) { - return flatbuffers::GetRoot(buf); + return ::flatbuffers::GetRoot(buf); } inline const optional_scalars::ScalarStuff *GetSizePrefixedScalarStuff(const void *buf) { - return flatbuffers::GetSizePrefixedRoot(buf); + return ::flatbuffers::GetSizePrefixedRoot(buf); } inline ScalarStuff *GetMutableScalarStuff(void *buf) { - return flatbuffers::GetMutableRoot(buf); + return ::flatbuffers::GetMutableRoot(buf); } inline optional_scalars::ScalarStuff *GetMutableSizePrefixedScalarStuff(void *buf) { - return flatbuffers::GetMutableSizePrefixedRoot(buf); + return ::flatbuffers::GetMutableSizePrefixedRoot(buf); } inline const char *ScalarStuffIdentifier() { @@ -949,22 +949,22 @@ inline const char *ScalarStuffIdentifier() { } inline bool ScalarStuffBufferHasIdentifier(const void *buf) { - return flatbuffers::BufferHasIdentifier( + return ::flatbuffers::BufferHasIdentifier( buf, ScalarStuffIdentifier()); } inline bool SizePrefixedScalarStuffBufferHasIdentifier(const void *buf) { - return flatbuffers::BufferHasIdentifier( + return ::flatbuffers::BufferHasIdentifier( buf, ScalarStuffIdentifier(), true); } inline bool VerifyScalarStuffBuffer( - flatbuffers::Verifier &verifier) { + ::flatbuffers::Verifier &verifier) { return verifier.VerifyBuffer(ScalarStuffIdentifier()); } inline bool VerifySizePrefixedScalarStuffBuffer( - flatbuffers::Verifier &verifier) { + ::flatbuffers::Verifier &verifier) { return verifier.VerifySizePrefixedBuffer(ScalarStuffIdentifier()); } @@ -973,26 +973,26 @@ inline const char *ScalarStuffExtension() { } inline void FinishScalarStuffBuffer( - flatbuffers::FlatBufferBuilder &fbb, - flatbuffers::Offset root) { + ::flatbuffers::FlatBufferBuilder &fbb, + ::flatbuffers::Offset root) { fbb.Finish(root, ScalarStuffIdentifier()); } inline void FinishSizePrefixedScalarStuffBuffer( - flatbuffers::FlatBufferBuilder &fbb, - flatbuffers::Offset root) { + ::flatbuffers::FlatBufferBuilder &fbb, + ::flatbuffers::Offset root) { fbb.FinishSizePrefixed(root, ScalarStuffIdentifier()); } inline std::unique_ptr UnPackScalarStuff( const void *buf, - const flatbuffers::resolver_function_t *res = nullptr) { + const ::flatbuffers::resolver_function_t *res = nullptr) { return std::unique_ptr(GetScalarStuff(buf)->UnPack(res)); } inline std::unique_ptr UnPackSizePrefixedScalarStuff( const void *buf, - const flatbuffers::resolver_function_t *res = nullptr) { + const ::flatbuffers::resolver_function_t *res = nullptr) { return std::unique_ptr(GetSizePrefixedScalarStuff(buf)->UnPack(res)); } diff --git a/tests/cpp17/generated_cpp17/union_vector_generated.h b/tests/cpp17/generated_cpp17/union_vector_generated.h index 6c772414fd..6939b8a675 100644 --- a/tests/cpp17/generated_cpp17/union_vector_generated.h +++ b/tests/cpp17/generated_cpp17/union_vector_generated.h @@ -31,17 +31,17 @@ struct Movie; struct MovieBuilder; struct MovieT; -inline const flatbuffers::TypeTable *AttackerTypeTable(); +inline const ::flatbuffers::TypeTable *AttackerTypeTable(); -inline const flatbuffers::TypeTable *RapunzelTypeTable(); +inline const ::flatbuffers::TypeTable *RapunzelTypeTable(); -inline const flatbuffers::TypeTable *BookReaderTypeTable(); +inline const ::flatbuffers::TypeTable *BookReaderTypeTable(); -inline const flatbuffers::TypeTable *FallingTubTypeTable(); +inline const ::flatbuffers::TypeTable *FallingTubTypeTable(); -inline const flatbuffers::TypeTable *HandFanTypeTable(); +inline const ::flatbuffers::TypeTable *HandFanTypeTable(); -inline const flatbuffers::TypeTable *MovieTypeTable(); +inline const ::flatbuffers::TypeTable *MovieTypeTable(); enum class Character : uint8_t { NONE = 0, @@ -83,7 +83,7 @@ inline const char * const *EnumNamesCharacter() { } inline const char *EnumNameCharacter(Character e) { - if (flatbuffers::IsOutRange(e, Character::NONE, Character::Unused)) return ""; + if (::flatbuffers::IsOutRange(e, Character::NONE, Character::Unused)) return ""; const size_t index = static_cast(e); return EnumNamesCharacter()[index]; } @@ -105,8 +105,8 @@ struct CharacterUnion { void Reset(); - static void *UnPack(const void *obj, Character type, const flatbuffers::resolver_function_t *resolver); - flatbuffers::Offset Pack(flatbuffers::FlatBufferBuilder &_fbb, const flatbuffers::rehasher_function_t *_rehasher = nullptr) const; + static void *UnPack(const void *obj, Character type, const ::flatbuffers::resolver_function_t *resolver); + ::flatbuffers::Offset Pack(::flatbuffers::FlatBufferBuilder &_fbb, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr) const; AttackerT *AsMuLan() { return type == Character::MuLan ? @@ -158,8 +158,8 @@ struct CharacterUnion { } }; -bool VerifyCharacter(flatbuffers::Verifier &verifier, const void *obj, Character type); -bool VerifyCharacterVector(flatbuffers::Verifier &verifier, const flatbuffers::Vector> *values, const flatbuffers::Vector *types); +bool VerifyCharacter(::flatbuffers::Verifier &verifier, const void *obj, Character type); +bool VerifyCharacterVector(::flatbuffers::Verifier &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types); enum class Gadget : uint8_t { NONE = 0, @@ -189,7 +189,7 @@ inline const char * const *EnumNamesGadget() { } inline const char *EnumNameGadget(Gadget e) { - if (flatbuffers::IsOutRange(e, Gadget::NONE, Gadget::HandFan)) return ""; + if (::flatbuffers::IsOutRange(e, Gadget::NONE, Gadget::HandFan)) return ""; const size_t index = static_cast(e); return EnumNamesGadget()[index]; } @@ -245,8 +245,8 @@ struct GadgetUnion { } } - static void *UnPack(const void *obj, Gadget type, const flatbuffers::resolver_function_t *resolver); - flatbuffers::Offset Pack(flatbuffers::FlatBufferBuilder &_fbb, const flatbuffers::rehasher_function_t *_rehasher = nullptr) const; + static void *UnPack(const void *obj, Gadget type, const ::flatbuffers::resolver_function_t *resolver); + ::flatbuffers::Offset Pack(::flatbuffers::FlatBufferBuilder &_fbb, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr) const; FallingTub *AsFallingTub() { return type == Gadget::FallingTub ? @@ -266,8 +266,8 @@ struct GadgetUnion { } }; -bool VerifyGadget(flatbuffers::Verifier &verifier, const void *obj, Gadget type); -bool VerifyGadgetVector(flatbuffers::Verifier &verifier, const flatbuffers::Vector> *values, const flatbuffers::Vector *types); +bool VerifyGadget(::flatbuffers::Verifier &verifier, const void *obj, Gadget type); +bool VerifyGadgetVector(::flatbuffers::Verifier &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types); FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(4) Rapunzel FLATBUFFERS_FINAL_CLASS { private: @@ -275,20 +275,20 @@ FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(4) Rapunzel FLATBUFFERS_FINAL_CLASS { public: struct Traits; - static const flatbuffers::TypeTable *MiniReflectTypeTable() { + static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { return RapunzelTypeTable(); } Rapunzel() : hair_length_(0) { } Rapunzel(int32_t _hair_length) - : hair_length_(flatbuffers::EndianScalar(_hair_length)) { + : hair_length_(::flatbuffers::EndianScalar(_hair_length)) { } int32_t hair_length() const { - return flatbuffers::EndianScalar(hair_length_); + return ::flatbuffers::EndianScalar(hair_length_); } void mutate_hair_length(int32_t _hair_length) { - flatbuffers::WriteScalar(&hair_length_, _hair_length); + ::flatbuffers::WriteScalar(&hair_length_, _hair_length); } template auto get_field() const { @@ -316,20 +316,20 @@ FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(4) BookReader FLATBUFFERS_FINAL_CLASS { public: struct Traits; - static const flatbuffers::TypeTable *MiniReflectTypeTable() { + static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { return BookReaderTypeTable(); } BookReader() : books_read_(0) { } BookReader(int32_t _books_read) - : books_read_(flatbuffers::EndianScalar(_books_read)) { + : books_read_(::flatbuffers::EndianScalar(_books_read)) { } int32_t books_read() const { - return flatbuffers::EndianScalar(books_read_); + return ::flatbuffers::EndianScalar(books_read_); } void mutate_books_read(int32_t _books_read) { - flatbuffers::WriteScalar(&books_read_, _books_read); + ::flatbuffers::WriteScalar(&books_read_, _books_read); } template auto get_field() const { @@ -357,20 +357,20 @@ FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(4) FallingTub FLATBUFFERS_FINAL_CLASS { public: struct Traits; - static const flatbuffers::TypeTable *MiniReflectTypeTable() { + static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { return FallingTubTypeTable(); } FallingTub() : weight_(0) { } FallingTub(int32_t _weight) - : weight_(flatbuffers::EndianScalar(_weight)) { + : weight_(::flatbuffers::EndianScalar(_weight)) { } int32_t weight() const { - return flatbuffers::EndianScalar(weight_); + return ::flatbuffers::EndianScalar(weight_); } void mutate_weight(int32_t _weight) { - flatbuffers::WriteScalar(&weight_, _weight); + ::flatbuffers::WriteScalar(&weight_, _weight); } template auto get_field() const { @@ -392,16 +392,16 @@ struct FallingTub::Traits { using FieldType = decltype(std::declval().get_field()); }; -struct AttackerT : public flatbuffers::NativeTable { +struct AttackerT : public ::flatbuffers::NativeTable { typedef Attacker TableType; int32_t sword_attack_damage = 0; }; -struct Attacker FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { +struct Attacker FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { typedef AttackerT NativeTableType; typedef AttackerBuilder Builder; struct Traits; - static const flatbuffers::TypeTable *MiniReflectTypeTable() { + static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { return AttackerTypeTable(); } enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { @@ -418,36 +418,36 @@ struct Attacker FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { if constexpr (Index == 0) return sword_attack_damage(); else static_assert(Index != Index, "Invalid Field Index"); } - bool Verify(flatbuffers::Verifier &verifier) const { + bool Verify(::flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_SWORD_ATTACK_DAMAGE, 4) && verifier.EndTable(); } - AttackerT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; - void UnPackTo(AttackerT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const; - static flatbuffers::Offset Pack(flatbuffers::FlatBufferBuilder &_fbb, const AttackerT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); + AttackerT *UnPack(const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; + void UnPackTo(AttackerT *_o, const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; + static ::flatbuffers::Offset Pack(::flatbuffers::FlatBufferBuilder &_fbb, const AttackerT* _o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); }; struct AttackerBuilder { typedef Attacker Table; - flatbuffers::FlatBufferBuilder &fbb_; - flatbuffers::uoffset_t start_; + ::flatbuffers::FlatBufferBuilder &fbb_; + ::flatbuffers::uoffset_t start_; void add_sword_attack_damage(int32_t sword_attack_damage) { fbb_.AddElement(Attacker::VT_SWORD_ATTACK_DAMAGE, sword_attack_damage, 0); } - explicit AttackerBuilder(flatbuffers::FlatBufferBuilder &_fbb) + explicit AttackerBuilder(::flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); } - flatbuffers::Offset Finish() { + ::flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); - auto o = flatbuffers::Offset(end); + auto o = ::flatbuffers::Offset(end); return o; } }; -inline flatbuffers::Offset CreateAttacker( - flatbuffers::FlatBufferBuilder &_fbb, +inline ::flatbuffers::Offset CreateAttacker( + ::flatbuffers::FlatBufferBuilder &_fbb, int32_t sword_attack_damage = 0) { AttackerBuilder builder_(_fbb); builder_.add_sword_attack_damage(sword_attack_damage); @@ -467,18 +467,18 @@ struct Attacker::Traits { using FieldType = decltype(std::declval().get_field()); }; -flatbuffers::Offset CreateAttacker(flatbuffers::FlatBufferBuilder &_fbb, const AttackerT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); +::flatbuffers::Offset CreateAttacker(::flatbuffers::FlatBufferBuilder &_fbb, const AttackerT *_o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); -struct HandFanT : public flatbuffers::NativeTable { +struct HandFanT : public ::flatbuffers::NativeTable { typedef HandFan TableType; int32_t length = 0; }; -struct HandFan FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { +struct HandFan FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { typedef HandFanT NativeTableType; typedef HandFanBuilder Builder; struct Traits; - static const flatbuffers::TypeTable *MiniReflectTypeTable() { + static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { return HandFanTypeTable(); } enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { @@ -495,36 +495,36 @@ struct HandFan FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { if constexpr (Index == 0) return length(); else static_assert(Index != Index, "Invalid Field Index"); } - bool Verify(flatbuffers::Verifier &verifier) const { + bool Verify(::flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_LENGTH, 4) && verifier.EndTable(); } - HandFanT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; - void UnPackTo(HandFanT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const; - static flatbuffers::Offset Pack(flatbuffers::FlatBufferBuilder &_fbb, const HandFanT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); + HandFanT *UnPack(const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; + void UnPackTo(HandFanT *_o, const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; + static ::flatbuffers::Offset Pack(::flatbuffers::FlatBufferBuilder &_fbb, const HandFanT* _o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); }; struct HandFanBuilder { typedef HandFan Table; - flatbuffers::FlatBufferBuilder &fbb_; - flatbuffers::uoffset_t start_; + ::flatbuffers::FlatBufferBuilder &fbb_; + ::flatbuffers::uoffset_t start_; void add_length(int32_t length) { fbb_.AddElement(HandFan::VT_LENGTH, length, 0); } - explicit HandFanBuilder(flatbuffers::FlatBufferBuilder &_fbb) + explicit HandFanBuilder(::flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); } - flatbuffers::Offset Finish() { + ::flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); - auto o = flatbuffers::Offset(end); + auto o = ::flatbuffers::Offset(end); return o; } }; -inline flatbuffers::Offset CreateHandFan( - flatbuffers::FlatBufferBuilder &_fbb, +inline ::flatbuffers::Offset CreateHandFan( + ::flatbuffers::FlatBufferBuilder &_fbb, int32_t length = 0) { HandFanBuilder builder_(_fbb); builder_.add_length(length); @@ -544,19 +544,19 @@ struct HandFan::Traits { using FieldType = decltype(std::declval().get_field()); }; -flatbuffers::Offset CreateHandFan(flatbuffers::FlatBufferBuilder &_fbb, const HandFanT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); +::flatbuffers::Offset CreateHandFan(::flatbuffers::FlatBufferBuilder &_fbb, const HandFanT *_o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); -struct MovieT : public flatbuffers::NativeTable { +struct MovieT : public ::flatbuffers::NativeTable { typedef Movie TableType; CharacterUnion main_character{}; std::vector characters{}; }; -struct Movie FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { +struct Movie FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { typedef MovieT NativeTableType; typedef MovieBuilder Builder; struct Traits; - static const flatbuffers::TypeTable *MiniReflectTypeTable() { + static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { return MovieTypeTable(); } enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { @@ -583,26 +583,26 @@ struct Movie FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { const BookReader *main_character_as_BookFan() const { return main_character_type() == Character::BookFan ? static_cast(main_character()) : nullptr; } - const flatbuffers::String *main_character_as_Other() const { - return main_character_type() == Character::Other ? static_cast(main_character()) : nullptr; + const ::flatbuffers::String *main_character_as_Other() const { + return main_character_type() == Character::Other ? static_cast(main_character()) : nullptr; } - const flatbuffers::String *main_character_as_Unused() const { - return main_character_type() == Character::Unused ? static_cast(main_character()) : nullptr; + const ::flatbuffers::String *main_character_as_Unused() const { + return main_character_type() == Character::Unused ? static_cast(main_character()) : nullptr; } void *mutable_main_character() { return GetPointer(VT_MAIN_CHARACTER); } - const flatbuffers::Vector *characters_type() const { - return GetPointer *>(VT_CHARACTERS_TYPE); + const ::flatbuffers::Vector *characters_type() const { + return GetPointer *>(VT_CHARACTERS_TYPE); } - flatbuffers::Vector *mutable_characters_type() { - return GetPointer *>(VT_CHARACTERS_TYPE); + ::flatbuffers::Vector *mutable_characters_type() { + return GetPointer<::flatbuffers::Vector *>(VT_CHARACTERS_TYPE); } - const flatbuffers::Vector> *characters() const { - return GetPointer> *>(VT_CHARACTERS); + const ::flatbuffers::Vector<::flatbuffers::Offset> *characters() const { + return GetPointer> *>(VT_CHARACTERS); } - flatbuffers::Vector> *mutable_characters() { - return GetPointer> *>(VT_CHARACTERS); + ::flatbuffers::Vector<::flatbuffers::Offset> *mutable_characters() { + return GetPointer<::flatbuffers::Vector<::flatbuffers::Offset> *>(VT_CHARACTERS); } template auto get_field() const { @@ -612,7 +612,7 @@ struct Movie FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { else if constexpr (Index == 3) return characters(); else static_assert(Index != Index, "Invalid Field Index"); } - bool Verify(flatbuffers::Verifier &verifier) const { + bool Verify(::flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_MAIN_CHARACTER_TYPE, 1) && VerifyOffset(verifier, VT_MAIN_CHARACTER) && @@ -624,44 +624,44 @@ struct Movie FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { VerifyCharacterVector(verifier, characters(), characters_type()) && verifier.EndTable(); } - MovieT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; - void UnPackTo(MovieT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const; - static flatbuffers::Offset Pack(flatbuffers::FlatBufferBuilder &_fbb, const MovieT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); + MovieT *UnPack(const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; + void UnPackTo(MovieT *_o, const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; + static ::flatbuffers::Offset Pack(::flatbuffers::FlatBufferBuilder &_fbb, const MovieT* _o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); }; struct MovieBuilder { typedef Movie Table; - flatbuffers::FlatBufferBuilder &fbb_; - flatbuffers::uoffset_t start_; + ::flatbuffers::FlatBufferBuilder &fbb_; + ::flatbuffers::uoffset_t start_; void add_main_character_type(Character main_character_type) { fbb_.AddElement(Movie::VT_MAIN_CHARACTER_TYPE, static_cast(main_character_type), 0); } - void add_main_character(flatbuffers::Offset main_character) { + void add_main_character(::flatbuffers::Offset main_character) { fbb_.AddOffset(Movie::VT_MAIN_CHARACTER, main_character); } - void add_characters_type(flatbuffers::Offset> characters_type) { + void add_characters_type(::flatbuffers::Offset<::flatbuffers::Vector> characters_type) { fbb_.AddOffset(Movie::VT_CHARACTERS_TYPE, characters_type); } - void add_characters(flatbuffers::Offset>> characters) { + void add_characters(::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset>> characters) { fbb_.AddOffset(Movie::VT_CHARACTERS, characters); } - explicit MovieBuilder(flatbuffers::FlatBufferBuilder &_fbb) + explicit MovieBuilder(::flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); } - flatbuffers::Offset Finish() { + ::flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); - auto o = flatbuffers::Offset(end); + auto o = ::flatbuffers::Offset(end); return o; } }; -inline flatbuffers::Offset CreateMovie( - flatbuffers::FlatBufferBuilder &_fbb, +inline ::flatbuffers::Offset CreateMovie( + ::flatbuffers::FlatBufferBuilder &_fbb, Character main_character_type = Character::NONE, - flatbuffers::Offset main_character = 0, - flatbuffers::Offset> characters_type = 0, - flatbuffers::Offset>> characters = 0) { + ::flatbuffers::Offset main_character = 0, + ::flatbuffers::Offset<::flatbuffers::Vector> characters_type = 0, + ::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset>> characters = 0) { MovieBuilder builder_(_fbb); builder_.add_characters(characters); builder_.add_characters_type(characters_type); @@ -686,14 +686,14 @@ struct Movie::Traits { using FieldType = decltype(std::declval().get_field()); }; -inline flatbuffers::Offset CreateMovieDirect( - flatbuffers::FlatBufferBuilder &_fbb, +inline ::flatbuffers::Offset CreateMovieDirect( + ::flatbuffers::FlatBufferBuilder &_fbb, Character main_character_type = Character::NONE, - flatbuffers::Offset main_character = 0, + ::flatbuffers::Offset main_character = 0, const std::vector *characters_type = nullptr, - const std::vector> *characters = nullptr) { + const std::vector<::flatbuffers::Offset> *characters = nullptr) { auto characters_type__ = characters_type ? _fbb.CreateVector(*characters_type) : 0; - auto characters__ = characters ? _fbb.CreateVector>(*characters) : 0; + auto characters__ = characters ? _fbb.CreateVector<::flatbuffers::Offset>(*characters) : 0; return CreateMovie( _fbb, main_character_type, @@ -702,87 +702,87 @@ inline flatbuffers::Offset CreateMovieDirect( characters__); } -flatbuffers::Offset CreateMovie(flatbuffers::FlatBufferBuilder &_fbb, const MovieT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); +::flatbuffers::Offset CreateMovie(::flatbuffers::FlatBufferBuilder &_fbb, const MovieT *_o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); -inline AttackerT *Attacker::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +inline AttackerT *Attacker::UnPack(const ::flatbuffers::resolver_function_t *_resolver) const { auto _o = std::make_unique(); UnPackTo(_o.get(), _resolver); return _o.release(); } -inline void Attacker::UnPackTo(AttackerT *_o, const flatbuffers::resolver_function_t *_resolver) const { +inline void Attacker::UnPackTo(AttackerT *_o, const ::flatbuffers::resolver_function_t *_resolver) const { (void)_o; (void)_resolver; { auto _e = sword_attack_damage(); _o->sword_attack_damage = _e; } } -inline flatbuffers::Offset Attacker::Pack(flatbuffers::FlatBufferBuilder &_fbb, const AttackerT* _o, const flatbuffers::rehasher_function_t *_rehasher) { +inline ::flatbuffers::Offset Attacker::Pack(::flatbuffers::FlatBufferBuilder &_fbb, const AttackerT* _o, const ::flatbuffers::rehasher_function_t *_rehasher) { return CreateAttacker(_fbb, _o, _rehasher); } -inline flatbuffers::Offset CreateAttacker(flatbuffers::FlatBufferBuilder &_fbb, const AttackerT *_o, const flatbuffers::rehasher_function_t *_rehasher) { +inline ::flatbuffers::Offset CreateAttacker(::flatbuffers::FlatBufferBuilder &_fbb, const AttackerT *_o, const ::flatbuffers::rehasher_function_t *_rehasher) { (void)_rehasher; (void)_o; - struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const AttackerT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; + struct _VectorArgs { ::flatbuffers::FlatBufferBuilder *__fbb; const AttackerT* __o; const ::flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; auto _sword_attack_damage = _o->sword_attack_damage; return CreateAttacker( _fbb, _sword_attack_damage); } -inline HandFanT *HandFan::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +inline HandFanT *HandFan::UnPack(const ::flatbuffers::resolver_function_t *_resolver) const { auto _o = std::make_unique(); UnPackTo(_o.get(), _resolver); return _o.release(); } -inline void HandFan::UnPackTo(HandFanT *_o, const flatbuffers::resolver_function_t *_resolver) const { +inline void HandFan::UnPackTo(HandFanT *_o, const ::flatbuffers::resolver_function_t *_resolver) const { (void)_o; (void)_resolver; { auto _e = length(); _o->length = _e; } } -inline flatbuffers::Offset HandFan::Pack(flatbuffers::FlatBufferBuilder &_fbb, const HandFanT* _o, const flatbuffers::rehasher_function_t *_rehasher) { +inline ::flatbuffers::Offset HandFan::Pack(::flatbuffers::FlatBufferBuilder &_fbb, const HandFanT* _o, const ::flatbuffers::rehasher_function_t *_rehasher) { return CreateHandFan(_fbb, _o, _rehasher); } -inline flatbuffers::Offset CreateHandFan(flatbuffers::FlatBufferBuilder &_fbb, const HandFanT *_o, const flatbuffers::rehasher_function_t *_rehasher) { +inline ::flatbuffers::Offset CreateHandFan(::flatbuffers::FlatBufferBuilder &_fbb, const HandFanT *_o, const ::flatbuffers::rehasher_function_t *_rehasher) { (void)_rehasher; (void)_o; - struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const HandFanT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; + struct _VectorArgs { ::flatbuffers::FlatBufferBuilder *__fbb; const HandFanT* __o; const ::flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; auto _length = _o->length; return CreateHandFan( _fbb, _length); } -inline MovieT *Movie::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +inline MovieT *Movie::UnPack(const ::flatbuffers::resolver_function_t *_resolver) const { auto _o = std::make_unique(); UnPackTo(_o.get(), _resolver); return _o.release(); } -inline void Movie::UnPackTo(MovieT *_o, const flatbuffers::resolver_function_t *_resolver) const { +inline void Movie::UnPackTo(MovieT *_o, const ::flatbuffers::resolver_function_t *_resolver) const { (void)_o; (void)_resolver; { auto _e = main_character_type(); _o->main_character.type = _e; } { auto _e = main_character(); if (_e) _o->main_character.value = CharacterUnion::UnPack(_e, main_character_type(), _resolver); } - { auto _e = characters_type(); if (_e) { _o->characters.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->characters[_i].type = static_cast(_e->Get(_i)); } } else { _o->characters.resize(0); } } - { auto _e = characters(); if (_e) { _o->characters.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->characters[_i].value = CharacterUnion::UnPack(_e->Get(_i), characters_type()->GetEnum(_i), _resolver); } } else { _o->characters.resize(0); } } + { auto _e = characters_type(); if (_e) { _o->characters.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->characters[_i].type = static_cast(_e->Get(_i)); } } else { _o->characters.resize(0); } } + { auto _e = characters(); if (_e) { _o->characters.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->characters[_i].value = CharacterUnion::UnPack(_e->Get(_i), characters_type()->GetEnum(_i), _resolver); } } else { _o->characters.resize(0); } } } -inline flatbuffers::Offset Movie::Pack(flatbuffers::FlatBufferBuilder &_fbb, const MovieT* _o, const flatbuffers::rehasher_function_t *_rehasher) { +inline ::flatbuffers::Offset Movie::Pack(::flatbuffers::FlatBufferBuilder &_fbb, const MovieT* _o, const ::flatbuffers::rehasher_function_t *_rehasher) { return CreateMovie(_fbb, _o, _rehasher); } -inline flatbuffers::Offset CreateMovie(flatbuffers::FlatBufferBuilder &_fbb, const MovieT *_o, const flatbuffers::rehasher_function_t *_rehasher) { +inline ::flatbuffers::Offset CreateMovie(::flatbuffers::FlatBufferBuilder &_fbb, const MovieT *_o, const ::flatbuffers::rehasher_function_t *_rehasher) { (void)_rehasher; (void)_o; - struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const MovieT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; + struct _VectorArgs { ::flatbuffers::FlatBufferBuilder *__fbb; const MovieT* __o; const ::flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; auto _main_character_type = _o->main_character.type; auto _main_character = _o->main_character.Pack(_fbb); auto _characters_type = _o->characters.size() ? _fbb.CreateVector(_o->characters.size(), [](size_t i, _VectorArgs *__va) { return __va->__o->characters[i].type; }, &_va) : 0; - auto _characters = _o->characters.size() ? _fbb.CreateVector>(_o->characters.size(), [](size_t i, _VectorArgs *__va) { return __va->__o->characters[i].Pack(*__va->__fbb, __va->__rehasher); }, &_va) : 0; + auto _characters = _o->characters.size() ? _fbb.CreateVector<::flatbuffers::Offset>(_o->characters.size(), [](size_t i, _VectorArgs *__va) { return __va->__o->characters[i].Pack(*__va->__fbb, __va->__rehasher); }, &_va) : 0; return CreateMovie( _fbb, _main_character_type, @@ -791,7 +791,7 @@ inline flatbuffers::Offset CreateMovie(flatbuffers::FlatBufferBuilder &_f _characters); } -inline bool VerifyCharacter(flatbuffers::Verifier &verifier, const void *obj, Character type) { +inline bool VerifyCharacter(::flatbuffers::Verifier &verifier, const void *obj, Character type) { switch (type) { case Character::NONE: { return true; @@ -810,21 +810,21 @@ inline bool VerifyCharacter(flatbuffers::Verifier &verifier, const void *obj, Ch return verifier.VerifyField(static_cast(obj), 0, 4); } case Character::Other: { - auto ptr = reinterpret_cast(obj); + auto ptr = reinterpret_cast(obj); return verifier.VerifyString(ptr); } case Character::Unused: { - auto ptr = reinterpret_cast(obj); + auto ptr = reinterpret_cast(obj); return verifier.VerifyString(ptr); } default: return true; } } -inline bool VerifyCharacterVector(flatbuffers::Verifier &verifier, const flatbuffers::Vector> *values, const flatbuffers::Vector *types) { +inline bool VerifyCharacterVector(::flatbuffers::Verifier &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types) { if (!values || !types) return !values && !types; if (values->size() != types->size()) return false; - for (flatbuffers::uoffset_t i = 0; i < values->size(); ++i) { + for (::flatbuffers::uoffset_t i = 0; i < values->size(); ++i) { if (!VerifyCharacter( verifier, values->Get(i), types->GetEnum(i))) { return false; @@ -833,7 +833,7 @@ inline bool VerifyCharacterVector(flatbuffers::Verifier &verifier, const flatbuf return true; } -inline void *CharacterUnion::UnPack(const void *obj, Character type, const flatbuffers::resolver_function_t *resolver) { +inline void *CharacterUnion::UnPack(const void *obj, Character type, const ::flatbuffers::resolver_function_t *resolver) { (void)resolver; switch (type) { case Character::MuLan: { @@ -853,18 +853,18 @@ inline void *CharacterUnion::UnPack(const void *obj, Character type, const flatb return new BookReader(*ptr); } case Character::Other: { - auto ptr = reinterpret_cast(obj); + auto ptr = reinterpret_cast(obj); return new std::string(ptr->c_str(), ptr->size()); } case Character::Unused: { - auto ptr = reinterpret_cast(obj); + auto ptr = reinterpret_cast(obj); return new std::string(ptr->c_str(), ptr->size()); } default: return nullptr; } } -inline flatbuffers::Offset CharacterUnion::Pack(flatbuffers::FlatBufferBuilder &_fbb, const flatbuffers::rehasher_function_t *_rehasher) const { +inline ::flatbuffers::Offset CharacterUnion::Pack(::flatbuffers::FlatBufferBuilder &_fbb, const ::flatbuffers::rehasher_function_t *_rehasher) const { (void)_rehasher; switch (type) { case Character::MuLan: { @@ -964,7 +964,7 @@ inline void CharacterUnion::Reset() { type = Character::NONE; } -inline bool VerifyGadget(flatbuffers::Verifier &verifier, const void *obj, Gadget type) { +inline bool VerifyGadget(::flatbuffers::Verifier &verifier, const void *obj, Gadget type) { switch (type) { case Gadget::NONE: { return true; @@ -980,10 +980,10 @@ inline bool VerifyGadget(flatbuffers::Verifier &verifier, const void *obj, Gadge } } -inline bool VerifyGadgetVector(flatbuffers::Verifier &verifier, const flatbuffers::Vector> *values, const flatbuffers::Vector *types) { +inline bool VerifyGadgetVector(::flatbuffers::Verifier &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types) { if (!values || !types) return !values && !types; if (values->size() != types->size()) return false; - for (flatbuffers::uoffset_t i = 0; i < values->size(); ++i) { + for (::flatbuffers::uoffset_t i = 0; i < values->size(); ++i) { if (!VerifyGadget( verifier, values->Get(i), types->GetEnum(i))) { return false; @@ -992,7 +992,7 @@ inline bool VerifyGadgetVector(flatbuffers::Verifier &verifier, const flatbuffer return true; } -inline void *GadgetUnion::UnPack(const void *obj, Gadget type, const flatbuffers::resolver_function_t *resolver) { +inline void *GadgetUnion::UnPack(const void *obj, Gadget type, const ::flatbuffers::resolver_function_t *resolver) { (void)resolver; switch (type) { case Gadget::FallingTub: { @@ -1007,7 +1007,7 @@ inline void *GadgetUnion::UnPack(const void *obj, Gadget type, const flatbuffers } } -inline flatbuffers::Offset GadgetUnion::Pack(flatbuffers::FlatBufferBuilder &_fbb, const flatbuffers::rehasher_function_t *_rehasher) const { +inline ::flatbuffers::Offset GadgetUnion::Pack(::flatbuffers::FlatBufferBuilder &_fbb, const ::flatbuffers::rehasher_function_t *_rehasher) const { (void)_rehasher; switch (type) { case Gadget::FallingTub: { @@ -1055,17 +1055,17 @@ inline void GadgetUnion::Reset() { type = Gadget::NONE; } -inline const flatbuffers::TypeTable *CharacterTypeTable() { - static const flatbuffers::TypeCode type_codes[] = { - { flatbuffers::ET_SEQUENCE, 0, -1 }, - { flatbuffers::ET_SEQUENCE, 0, 0 }, - { flatbuffers::ET_SEQUENCE, 0, 1 }, - { flatbuffers::ET_SEQUENCE, 0, 2 }, - { flatbuffers::ET_SEQUENCE, 0, 2 }, - { flatbuffers::ET_STRING, 0, -1 }, - { flatbuffers::ET_STRING, 0, -1 } +inline const ::flatbuffers::TypeTable *CharacterTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_SEQUENCE, 0, -1 }, + { ::flatbuffers::ET_SEQUENCE, 0, 0 }, + { ::flatbuffers::ET_SEQUENCE, 0, 1 }, + { ::flatbuffers::ET_SEQUENCE, 0, 2 }, + { ::flatbuffers::ET_SEQUENCE, 0, 2 }, + { ::flatbuffers::ET_STRING, 0, -1 }, + { ::flatbuffers::ET_STRING, 0, -1 } }; - static const flatbuffers::TypeFunction type_refs[] = { + static const ::flatbuffers::TypeFunction type_refs[] = { AttackerTypeTable, RapunzelTypeTable, BookReaderTypeTable @@ -1079,19 +1079,19 @@ inline const flatbuffers::TypeTable *CharacterTypeTable() { "Other", "Unused" }; - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_UNION, 7, type_codes, type_refs, nullptr, nullptr, names + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_UNION, 7, type_codes, type_refs, nullptr, nullptr, names }; return &tt; } -inline const flatbuffers::TypeTable *GadgetTypeTable() { - static const flatbuffers::TypeCode type_codes[] = { - { flatbuffers::ET_SEQUENCE, 0, -1 }, - { flatbuffers::ET_SEQUENCE, 0, 0 }, - { flatbuffers::ET_SEQUENCE, 0, 1 } +inline const ::flatbuffers::TypeTable *GadgetTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_SEQUENCE, 0, -1 }, + { ::flatbuffers::ET_SEQUENCE, 0, 0 }, + { ::flatbuffers::ET_SEQUENCE, 0, 1 } }; - static const flatbuffers::TypeFunction type_refs[] = { + static const ::flatbuffers::TypeFunction type_refs[] = { FallingTubTypeTable, HandFanTypeTable }; @@ -1100,88 +1100,88 @@ inline const flatbuffers::TypeTable *GadgetTypeTable() { "FallingTub", "HandFan" }; - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_UNION, 3, type_codes, type_refs, nullptr, nullptr, names + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_UNION, 3, type_codes, type_refs, nullptr, nullptr, names }; return &tt; } -inline const flatbuffers::TypeTable *AttackerTypeTable() { - static const flatbuffers::TypeCode type_codes[] = { - { flatbuffers::ET_INT, 0, -1 } +inline const ::flatbuffers::TypeTable *AttackerTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_INT, 0, -1 } }; static const char * const names[] = { "sword_attack_damage" }; - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_TABLE, 1, type_codes, nullptr, nullptr, nullptr, names + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_TABLE, 1, type_codes, nullptr, nullptr, nullptr, names }; return &tt; } -inline const flatbuffers::TypeTable *RapunzelTypeTable() { - static const flatbuffers::TypeCode type_codes[] = { - { flatbuffers::ET_INT, 0, -1 } +inline const ::flatbuffers::TypeTable *RapunzelTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_INT, 0, -1 } }; static const int64_t values[] = { 0, 4 }; static const char * const names[] = { "hair_length" }; - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_STRUCT, 1, type_codes, nullptr, nullptr, values, names + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_STRUCT, 1, type_codes, nullptr, nullptr, values, names }; return &tt; } -inline const flatbuffers::TypeTable *BookReaderTypeTable() { - static const flatbuffers::TypeCode type_codes[] = { - { flatbuffers::ET_INT, 0, -1 } +inline const ::flatbuffers::TypeTable *BookReaderTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_INT, 0, -1 } }; static const int64_t values[] = { 0, 4 }; static const char * const names[] = { "books_read" }; - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_STRUCT, 1, type_codes, nullptr, nullptr, values, names + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_STRUCT, 1, type_codes, nullptr, nullptr, values, names }; return &tt; } -inline const flatbuffers::TypeTable *FallingTubTypeTable() { - static const flatbuffers::TypeCode type_codes[] = { - { flatbuffers::ET_INT, 0, -1 } +inline const ::flatbuffers::TypeTable *FallingTubTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_INT, 0, -1 } }; static const int64_t values[] = { 0, 4 }; static const char * const names[] = { "weight" }; - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_STRUCT, 1, type_codes, nullptr, nullptr, values, names + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_STRUCT, 1, type_codes, nullptr, nullptr, values, names }; return &tt; } -inline const flatbuffers::TypeTable *HandFanTypeTable() { - static const flatbuffers::TypeCode type_codes[] = { - { flatbuffers::ET_INT, 0, -1 } +inline const ::flatbuffers::TypeTable *HandFanTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_INT, 0, -1 } }; static const char * const names[] = { "length" }; - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_TABLE, 1, type_codes, nullptr, nullptr, nullptr, names + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_TABLE, 1, type_codes, nullptr, nullptr, nullptr, names }; return &tt; } -inline const flatbuffers::TypeTable *MovieTypeTable() { - static const flatbuffers::TypeCode type_codes[] = { - { flatbuffers::ET_UTYPE, 0, 0 }, - { flatbuffers::ET_SEQUENCE, 0, 0 }, - { flatbuffers::ET_UTYPE, 1, 0 }, - { flatbuffers::ET_SEQUENCE, 1, 0 } +inline const ::flatbuffers::TypeTable *MovieTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_UTYPE, 0, 0 }, + { ::flatbuffers::ET_SEQUENCE, 0, 0 }, + { ::flatbuffers::ET_UTYPE, 1, 0 }, + { ::flatbuffers::ET_SEQUENCE, 1, 0 } }; - static const flatbuffers::TypeFunction type_refs[] = { + static const ::flatbuffers::TypeFunction type_refs[] = { CharacterTypeTable }; static const char * const names[] = { @@ -1190,26 +1190,26 @@ inline const flatbuffers::TypeTable *MovieTypeTable() { "characters_type", "characters" }; - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_TABLE, 4, type_codes, type_refs, nullptr, nullptr, names + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_TABLE, 4, type_codes, type_refs, nullptr, nullptr, names }; return &tt; } inline const Movie *GetMovie(const void *buf) { - return flatbuffers::GetRoot(buf); + return ::flatbuffers::GetRoot(buf); } inline const Movie *GetSizePrefixedMovie(const void *buf) { - return flatbuffers::GetSizePrefixedRoot(buf); + return ::flatbuffers::GetSizePrefixedRoot(buf); } inline Movie *GetMutableMovie(void *buf) { - return flatbuffers::GetMutableRoot(buf); + return ::flatbuffers::GetMutableRoot(buf); } inline Movie *GetMutableSizePrefixedMovie(void *buf) { - return flatbuffers::GetMutableSizePrefixedRoot(buf); + return ::flatbuffers::GetMutableSizePrefixedRoot(buf); } inline const char *MovieIdentifier() { @@ -1217,46 +1217,46 @@ inline const char *MovieIdentifier() { } inline bool MovieBufferHasIdentifier(const void *buf) { - return flatbuffers::BufferHasIdentifier( + return ::flatbuffers::BufferHasIdentifier( buf, MovieIdentifier()); } inline bool SizePrefixedMovieBufferHasIdentifier(const void *buf) { - return flatbuffers::BufferHasIdentifier( + return ::flatbuffers::BufferHasIdentifier( buf, MovieIdentifier(), true); } inline bool VerifyMovieBuffer( - flatbuffers::Verifier &verifier) { + ::flatbuffers::Verifier &verifier) { return verifier.VerifyBuffer(MovieIdentifier()); } inline bool VerifySizePrefixedMovieBuffer( - flatbuffers::Verifier &verifier) { + ::flatbuffers::Verifier &verifier) { return verifier.VerifySizePrefixedBuffer(MovieIdentifier()); } inline void FinishMovieBuffer( - flatbuffers::FlatBufferBuilder &fbb, - flatbuffers::Offset root) { + ::flatbuffers::FlatBufferBuilder &fbb, + ::flatbuffers::Offset root) { fbb.Finish(root, MovieIdentifier()); } inline void FinishSizePrefixedMovieBuffer( - flatbuffers::FlatBufferBuilder &fbb, - flatbuffers::Offset root) { + ::flatbuffers::FlatBufferBuilder &fbb, + ::flatbuffers::Offset root) { fbb.FinishSizePrefixed(root, MovieIdentifier()); } inline std::unique_ptr UnPackMovie( const void *buf, - const flatbuffers::resolver_function_t *res = nullptr) { + const ::flatbuffers::resolver_function_t *res = nullptr) { return std::unique_ptr(GetMovie(buf)->UnPack(res)); } inline std::unique_ptr UnPackSizePrefixedMovie( const void *buf, - const flatbuffers::resolver_function_t *res = nullptr) { + const ::flatbuffers::resolver_function_t *res = nullptr) { return std::unique_ptr(GetSizePrefixedMovie(buf)->UnPack(res)); } diff --git a/tests/evolution_test/evolution_v1_generated.h b/tests/evolution_test/evolution_v1_generated.h index 6f5e0642a3..9b404b86bc 100644 --- a/tests/evolution_test/evolution_v1_generated.h +++ b/tests/evolution_test/evolution_v1_generated.h @@ -52,7 +52,7 @@ inline const char * const *EnumNamesEnum() { } inline const char *EnumNameEnum(Enum e) { - if (flatbuffers::IsOutRange(e, Enum::King, Enum::Queen)) return ""; + if (::flatbuffers::IsOutRange(e, Enum::King, Enum::Queen)) return ""; const size_t index = static_cast(e); return EnumNamesEnum()[index]; } @@ -85,7 +85,7 @@ inline const char * const *EnumNamesUnion() { } inline const char *EnumNameUnion(Union e) { - if (flatbuffers::IsOutRange(e, Union::NONE, Union::TableB)) return ""; + if (::flatbuffers::IsOutRange(e, Union::NONE, Union::TableB)) return ""; const size_t index = static_cast(e); return EnumNamesUnion()[index]; } @@ -102,8 +102,8 @@ template<> struct UnionTraits { static const Union enum_value = Union::TableB; }; -bool VerifyUnion(flatbuffers::Verifier &verifier, const void *obj, Union type); -bool VerifyUnionVector(flatbuffers::Verifier &verifier, const flatbuffers::Vector> *values, const flatbuffers::Vector *types); +bool VerifyUnion(::flatbuffers::Verifier &verifier, const void *obj, Union type); +bool VerifyUnionVector(::flatbuffers::Verifier &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types); FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(8) Struct FLATBUFFERS_FINAL_CLASS { private: @@ -119,16 +119,16 @@ FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(8) Struct FLATBUFFERS_FINAL_CLASS { (void)padding0__; } Struct(int32_t _a, double _b) - : a_(flatbuffers::EndianScalar(_a)), + : a_(::flatbuffers::EndianScalar(_a)), padding0__(0), - b_(flatbuffers::EndianScalar(_b)) { + b_(::flatbuffers::EndianScalar(_b)) { (void)padding0__; } int32_t a() const { - return flatbuffers::EndianScalar(a_); + return ::flatbuffers::EndianScalar(a_); } double b() const { - return flatbuffers::EndianScalar(b_); + return ::flatbuffers::EndianScalar(b_); } }; FLATBUFFERS_STRUCT_END(Struct, 16); @@ -144,7 +144,7 @@ inline bool operator!=(const Struct &lhs, const Struct &rhs) { } -struct TableA FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { +struct TableA FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { typedef TableABuilder Builder; enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { VT_A = 4, @@ -156,7 +156,7 @@ struct TableA FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { int32_t b() const { return GetField(VT_B, 0); } - bool Verify(flatbuffers::Verifier &verifier) const { + bool Verify(::flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_A, 4) && VerifyField(verifier, VT_B, 4) && @@ -166,27 +166,27 @@ struct TableA FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { struct TableABuilder { typedef TableA Table; - flatbuffers::FlatBufferBuilder &fbb_; - flatbuffers::uoffset_t start_; + ::flatbuffers::FlatBufferBuilder &fbb_; + ::flatbuffers::uoffset_t start_; void add_a(float a) { fbb_.AddElement(TableA::VT_A, a, 0.0f); } void add_b(int32_t b) { fbb_.AddElement(TableA::VT_B, b, 0); } - explicit TableABuilder(flatbuffers::FlatBufferBuilder &_fbb) + explicit TableABuilder(::flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); } - flatbuffers::Offset Finish() { + ::flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); - auto o = flatbuffers::Offset(end); + auto o = ::flatbuffers::Offset(end); return o; } }; -inline flatbuffers::Offset CreateTableA( - flatbuffers::FlatBufferBuilder &_fbb, +inline ::flatbuffers::Offset CreateTableA( + ::flatbuffers::FlatBufferBuilder &_fbb, float a = 0.0f, int32_t b = 0) { TableABuilder builder_(_fbb); @@ -195,7 +195,7 @@ inline flatbuffers::Offset CreateTableA( return builder_.Finish(); } -struct TableB FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { +struct TableB FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { typedef TableBBuilder Builder; enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { VT_A = 4 @@ -203,7 +203,7 @@ struct TableB FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { int32_t a() const { return GetField(VT_A, 0); } - bool Verify(flatbuffers::Verifier &verifier) const { + bool Verify(::flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_A, 4) && verifier.EndTable(); @@ -212,31 +212,31 @@ struct TableB FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { struct TableBBuilder { typedef TableB Table; - flatbuffers::FlatBufferBuilder &fbb_; - flatbuffers::uoffset_t start_; + ::flatbuffers::FlatBufferBuilder &fbb_; + ::flatbuffers::uoffset_t start_; void add_a(int32_t a) { fbb_.AddElement(TableB::VT_A, a, 0); } - explicit TableBBuilder(flatbuffers::FlatBufferBuilder &_fbb) + explicit TableBBuilder(::flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); } - flatbuffers::Offset Finish() { + ::flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); - auto o = flatbuffers::Offset(end); + auto o = ::flatbuffers::Offset(end); return o; } }; -inline flatbuffers::Offset CreateTableB( - flatbuffers::FlatBufferBuilder &_fbb, +inline ::flatbuffers::Offset CreateTableB( + ::flatbuffers::FlatBufferBuilder &_fbb, int32_t a = 0) { TableBBuilder builder_(_fbb); builder_.add_a(a); return builder_.Finish(); } -struct Root FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { +struct Root FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { typedef RootBuilder Builder; enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { VT_A = 4, @@ -280,11 +280,11 @@ struct Root FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { const Evolution::V1::Struct *f() const { return GetStruct(VT_F); } - const flatbuffers::Vector *g() const { - return GetPointer *>(VT_G); + const ::flatbuffers::Vector *g() const { + return GetPointer *>(VT_G); } - const flatbuffers::Vector> *h() const { - return GetPointer> *>(VT_H); + const ::flatbuffers::Vector<::flatbuffers::Offset> *h() const { + return GetPointer> *>(VT_H); } int32_t i() const { return GetField(VT_I, 1234); @@ -302,7 +302,7 @@ struct Root FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { const Evolution::V1::TableB *j_as_TableB() const { return j_type() == Evolution::V1::Union::TableB ? static_cast(j()) : nullptr; } - bool Verify(flatbuffers::Verifier &verifier) const { + bool Verify(::flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_A, 4) && VerifyField(verifier, VT_B, 1) && @@ -344,8 +344,8 @@ template<> inline const Evolution::V1::TableB *Root::j_as struct RootBuilder { typedef Root Table; - flatbuffers::FlatBufferBuilder &fbb_; - flatbuffers::uoffset_t start_; + ::flatbuffers::FlatBufferBuilder &fbb_; + ::flatbuffers::uoffset_t start_; void add_a(int32_t a) { fbb_.AddElement(Root::VT_A, a, 0); } @@ -355,22 +355,22 @@ struct RootBuilder { void add_c_type(Evolution::V1::Union c_type) { fbb_.AddElement(Root::VT_C_TYPE, static_cast(c_type), 0); } - void add_c(flatbuffers::Offset c) { + void add_c(::flatbuffers::Offset c) { fbb_.AddOffset(Root::VT_C, c); } void add_d(Evolution::V1::Enum d) { fbb_.AddElement(Root::VT_D, static_cast(d), 0); } - void add_e(flatbuffers::Offset e) { + void add_e(::flatbuffers::Offset e) { fbb_.AddOffset(Root::VT_E, e); } void add_f(const Evolution::V1::Struct *f) { fbb_.AddStruct(Root::VT_F, f); } - void add_g(flatbuffers::Offset> g) { + void add_g(::flatbuffers::Offset<::flatbuffers::Vector> g) { fbb_.AddOffset(Root::VT_G, g); } - void add_h(flatbuffers::Offset>> h) { + void add_h(::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset>> h) { fbb_.AddOffset(Root::VT_H, h); } void add_i(int32_t i) { @@ -379,34 +379,34 @@ struct RootBuilder { void add_j_type(Evolution::V1::Union j_type) { fbb_.AddElement(Root::VT_J_TYPE, static_cast(j_type), 0); } - void add_j(flatbuffers::Offset j) { + void add_j(::flatbuffers::Offset j) { fbb_.AddOffset(Root::VT_J, j); } - explicit RootBuilder(flatbuffers::FlatBufferBuilder &_fbb) + explicit RootBuilder(::flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); } - flatbuffers::Offset Finish() { + ::flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); - auto o = flatbuffers::Offset(end); + auto o = ::flatbuffers::Offset(end); return o; } }; -inline flatbuffers::Offset CreateRoot( - flatbuffers::FlatBufferBuilder &_fbb, +inline ::flatbuffers::Offset CreateRoot( + ::flatbuffers::FlatBufferBuilder &_fbb, int32_t a = 0, bool b = false, Evolution::V1::Union c_type = Evolution::V1::Union::NONE, - flatbuffers::Offset c = 0, + ::flatbuffers::Offset c = 0, Evolution::V1::Enum d = Evolution::V1::Enum::King, - flatbuffers::Offset e = 0, + ::flatbuffers::Offset e = 0, const Evolution::V1::Struct *f = nullptr, - flatbuffers::Offset> g = 0, - flatbuffers::Offset>> h = 0, + ::flatbuffers::Offset<::flatbuffers::Vector> g = 0, + ::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset>> h = 0, int32_t i = 1234, Evolution::V1::Union j_type = Evolution::V1::Union::NONE, - flatbuffers::Offset j = 0) { + ::flatbuffers::Offset j = 0) { RootBuilder builder_(_fbb); builder_.add_j(j); builder_.add_i(i); @@ -423,22 +423,22 @@ inline flatbuffers::Offset CreateRoot( return builder_.Finish(); } -inline flatbuffers::Offset CreateRootDirect( - flatbuffers::FlatBufferBuilder &_fbb, +inline ::flatbuffers::Offset CreateRootDirect( + ::flatbuffers::FlatBufferBuilder &_fbb, int32_t a = 0, bool b = false, Evolution::V1::Union c_type = Evolution::V1::Union::NONE, - flatbuffers::Offset c = 0, + ::flatbuffers::Offset c = 0, Evolution::V1::Enum d = Evolution::V1::Enum::King, - flatbuffers::Offset e = 0, + ::flatbuffers::Offset e = 0, const Evolution::V1::Struct *f = nullptr, const std::vector *g = nullptr, - const std::vector> *h = nullptr, + const std::vector<::flatbuffers::Offset> *h = nullptr, int32_t i = 1234, Evolution::V1::Union j_type = Evolution::V1::Union::NONE, - flatbuffers::Offset j = 0) { + ::flatbuffers::Offset j = 0) { auto g__ = g ? _fbb.CreateVector(*g) : 0; - auto h__ = h ? _fbb.CreateVector>(*h) : 0; + auto h__ = h ? _fbb.CreateVector<::flatbuffers::Offset>(*h) : 0; return Evolution::V1::CreateRoot( _fbb, a, @@ -455,7 +455,7 @@ inline flatbuffers::Offset CreateRootDirect( j); } -inline bool VerifyUnion(flatbuffers::Verifier &verifier, const void *obj, Union type) { +inline bool VerifyUnion(::flatbuffers::Verifier &verifier, const void *obj, Union type) { switch (type) { case Union::NONE: { return true; @@ -472,10 +472,10 @@ inline bool VerifyUnion(flatbuffers::Verifier &verifier, const void *obj, Union } } -inline bool VerifyUnionVector(flatbuffers::Verifier &verifier, const flatbuffers::Vector> *values, const flatbuffers::Vector *types) { +inline bool VerifyUnionVector(::flatbuffers::Verifier &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types) { if (!values || !types) return !values && !types; if (values->size() != types->size()) return false; - for (flatbuffers::uoffset_t i = 0; i < values->size(); ++i) { + for (::flatbuffers::uoffset_t i = 0; i < values->size(); ++i) { if (!VerifyUnion( verifier, values->Get(i), types->GetEnum(i))) { return false; @@ -485,32 +485,32 @@ inline bool VerifyUnionVector(flatbuffers::Verifier &verifier, const flatbuffers } inline const Evolution::V1::Root *GetRoot(const void *buf) { - return flatbuffers::GetRoot(buf); + return ::flatbuffers::GetRoot(buf); } inline const Evolution::V1::Root *GetSizePrefixedRoot(const void *buf) { - return flatbuffers::GetSizePrefixedRoot(buf); + return ::flatbuffers::GetSizePrefixedRoot(buf); } inline bool VerifyRootBuffer( - flatbuffers::Verifier &verifier) { + ::flatbuffers::Verifier &verifier) { return verifier.VerifyBuffer(nullptr); } inline bool VerifySizePrefixedRootBuffer( - flatbuffers::Verifier &verifier) { + ::flatbuffers::Verifier &verifier) { return verifier.VerifySizePrefixedBuffer(nullptr); } inline void FinishRootBuffer( - flatbuffers::FlatBufferBuilder &fbb, - flatbuffers::Offset root) { + ::flatbuffers::FlatBufferBuilder &fbb, + ::flatbuffers::Offset root) { fbb.Finish(root); } inline void FinishSizePrefixedRootBuffer( - flatbuffers::FlatBufferBuilder &fbb, - flatbuffers::Offset root) { + ::flatbuffers::FlatBufferBuilder &fbb, + ::flatbuffers::Offset root) { fbb.FinishSizePrefixed(root); } diff --git a/tests/evolution_test/evolution_v2_generated.h b/tests/evolution_test/evolution_v2_generated.h index 490e754e63..efd51c973b 100644 --- a/tests/evolution_test/evolution_v2_generated.h +++ b/tests/evolution_test/evolution_v2_generated.h @@ -61,7 +61,7 @@ inline const char * const *EnumNamesEnum() { } inline const char *EnumNameEnum(Enum e) { - if (flatbuffers::IsOutRange(e, Enum::King, Enum::Bishop)) return ""; + if (::flatbuffers::IsOutRange(e, Enum::King, Enum::Bishop)) return ""; const size_t index = static_cast(e); return EnumNamesEnum()[index]; } @@ -97,7 +97,7 @@ inline const char * const *EnumNamesUnion() { } inline const char *EnumNameUnion(Union e) { - if (flatbuffers::IsOutRange(e, Union::NONE, Union::TableC)) return ""; + if (::flatbuffers::IsOutRange(e, Union::NONE, Union::TableC)) return ""; const size_t index = static_cast(e); return EnumNamesUnion()[index]; } @@ -118,8 +118,8 @@ template<> struct UnionTraits { static const Union enum_value = Union::TableC; }; -bool VerifyUnion(flatbuffers::Verifier &verifier, const void *obj, Union type); -bool VerifyUnionVector(flatbuffers::Verifier &verifier, const flatbuffers::Vector> *values, const flatbuffers::Vector *types); +bool VerifyUnion(::flatbuffers::Verifier &verifier, const void *obj, Union type); +bool VerifyUnionVector(::flatbuffers::Verifier &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types); FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(8) Struct FLATBUFFERS_FINAL_CLASS { private: @@ -135,16 +135,16 @@ FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(8) Struct FLATBUFFERS_FINAL_CLASS { (void)padding0__; } Struct(int32_t _a, double _b) - : a_(flatbuffers::EndianScalar(_a)), + : a_(::flatbuffers::EndianScalar(_a)), padding0__(0), - b_(flatbuffers::EndianScalar(_b)) { + b_(::flatbuffers::EndianScalar(_b)) { (void)padding0__; } int32_t a() const { - return flatbuffers::EndianScalar(a_); + return ::flatbuffers::EndianScalar(a_); } double b() const { - return flatbuffers::EndianScalar(b_); + return ::flatbuffers::EndianScalar(b_); } }; FLATBUFFERS_STRUCT_END(Struct, 16); @@ -160,7 +160,7 @@ inline bool operator!=(const Struct &lhs, const Struct &rhs) { } -struct TableA FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { +struct TableA FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { typedef TableABuilder Builder; enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { VT_A = 4, @@ -173,10 +173,10 @@ struct TableA FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { int32_t b() const { return GetField(VT_B, 0); } - const flatbuffers::String *c() const { - return GetPointer(VT_C); + const ::flatbuffers::String *c() const { + return GetPointer(VT_C); } - bool Verify(flatbuffers::Verifier &verifier) const { + bool Verify(::flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_A, 4) && VerifyField(verifier, VT_B, 4) && @@ -188,33 +188,33 @@ struct TableA FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { struct TableABuilder { typedef TableA Table; - flatbuffers::FlatBufferBuilder &fbb_; - flatbuffers::uoffset_t start_; + ::flatbuffers::FlatBufferBuilder &fbb_; + ::flatbuffers::uoffset_t start_; void add_a(float a) { fbb_.AddElement(TableA::VT_A, a, 0.0f); } void add_b(int32_t b) { fbb_.AddElement(TableA::VT_B, b, 0); } - void add_c(flatbuffers::Offset c) { + void add_c(::flatbuffers::Offset<::flatbuffers::String> c) { fbb_.AddOffset(TableA::VT_C, c); } - explicit TableABuilder(flatbuffers::FlatBufferBuilder &_fbb) + explicit TableABuilder(::flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); } - flatbuffers::Offset Finish() { + ::flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); - auto o = flatbuffers::Offset(end); + auto o = ::flatbuffers::Offset(end); return o; } }; -inline flatbuffers::Offset CreateTableA( - flatbuffers::FlatBufferBuilder &_fbb, +inline ::flatbuffers::Offset CreateTableA( + ::flatbuffers::FlatBufferBuilder &_fbb, float a = 0.0f, int32_t b = 0, - flatbuffers::Offset c = 0) { + ::flatbuffers::Offset<::flatbuffers::String> c = 0) { TableABuilder builder_(_fbb); builder_.add_c(c); builder_.add_b(b); @@ -222,8 +222,8 @@ inline flatbuffers::Offset CreateTableA( return builder_.Finish(); } -inline flatbuffers::Offset CreateTableADirect( - flatbuffers::FlatBufferBuilder &_fbb, +inline ::flatbuffers::Offset CreateTableADirect( + ::flatbuffers::FlatBufferBuilder &_fbb, float a = 0.0f, int32_t b = 0, const char *c = nullptr) { @@ -235,7 +235,7 @@ inline flatbuffers::Offset CreateTableADirect( c__); } -struct TableB FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { +struct TableB FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { typedef TableBBuilder Builder; enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { VT_A = 4 @@ -243,7 +243,7 @@ struct TableB FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { int32_t a() const { return GetField(VT_A, 0); } - bool Verify(flatbuffers::Verifier &verifier) const { + bool Verify(::flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_A, 4) && verifier.EndTable(); @@ -252,31 +252,31 @@ struct TableB FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { struct TableBBuilder { typedef TableB Table; - flatbuffers::FlatBufferBuilder &fbb_; - flatbuffers::uoffset_t start_; + ::flatbuffers::FlatBufferBuilder &fbb_; + ::flatbuffers::uoffset_t start_; void add_a(int32_t a) { fbb_.AddElement(TableB::VT_A, a, 0); } - explicit TableBBuilder(flatbuffers::FlatBufferBuilder &_fbb) + explicit TableBBuilder(::flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); } - flatbuffers::Offset Finish() { + ::flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); - auto o = flatbuffers::Offset(end); + auto o = ::flatbuffers::Offset(end); return o; } }; -inline flatbuffers::Offset CreateTableB( - flatbuffers::FlatBufferBuilder &_fbb, +inline ::flatbuffers::Offset CreateTableB( + ::flatbuffers::FlatBufferBuilder &_fbb, int32_t a = 0) { TableBBuilder builder_(_fbb); builder_.add_a(a); return builder_.Finish(); } -struct TableC FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { +struct TableC FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { typedef TableCBuilder Builder; enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { VT_A = 4, @@ -285,10 +285,10 @@ struct TableC FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { double a() const { return GetField(VT_A, 0.0); } - const flatbuffers::String *b() const { - return GetPointer(VT_B); + const ::flatbuffers::String *b() const { + return GetPointer(VT_B); } - bool Verify(flatbuffers::Verifier &verifier) const { + bool Verify(::flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_A, 8) && VerifyOffset(verifier, VT_B) && @@ -299,37 +299,37 @@ struct TableC FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { struct TableCBuilder { typedef TableC Table; - flatbuffers::FlatBufferBuilder &fbb_; - flatbuffers::uoffset_t start_; + ::flatbuffers::FlatBufferBuilder &fbb_; + ::flatbuffers::uoffset_t start_; void add_a(double a) { fbb_.AddElement(TableC::VT_A, a, 0.0); } - void add_b(flatbuffers::Offset b) { + void add_b(::flatbuffers::Offset<::flatbuffers::String> b) { fbb_.AddOffset(TableC::VT_B, b); } - explicit TableCBuilder(flatbuffers::FlatBufferBuilder &_fbb) + explicit TableCBuilder(::flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); } - flatbuffers::Offset Finish() { + ::flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); - auto o = flatbuffers::Offset(end); + auto o = ::flatbuffers::Offset(end); return o; } }; -inline flatbuffers::Offset CreateTableC( - flatbuffers::FlatBufferBuilder &_fbb, +inline ::flatbuffers::Offset CreateTableC( + ::flatbuffers::FlatBufferBuilder &_fbb, double a = 0.0, - flatbuffers::Offset b = 0) { + ::flatbuffers::Offset<::flatbuffers::String> b = 0) { TableCBuilder builder_(_fbb); builder_.add_a(a); builder_.add_b(b); return builder_.Finish(); } -inline flatbuffers::Offset CreateTableCDirect( - flatbuffers::FlatBufferBuilder &_fbb, +inline ::flatbuffers::Offset CreateTableCDirect( + ::flatbuffers::FlatBufferBuilder &_fbb, double a = 0.0, const char *b = nullptr) { auto b__ = b ? _fbb.CreateString(b) : 0; @@ -339,7 +339,7 @@ inline flatbuffers::Offset CreateTableCDirect( b__); } -struct Root FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { +struct Root FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { typedef RootBuilder Builder; enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { VT_B = 6, @@ -382,11 +382,11 @@ struct Root FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { const Evolution::V2::Struct *ff() const { return GetStruct(VT_FF); } - const flatbuffers::Vector *g() const { - return GetPointer *>(VT_G); + const ::flatbuffers::Vector *g() const { + return GetPointer *>(VT_G); } - const flatbuffers::Vector> *h() const { - return GetPointer> *>(VT_H); + const ::flatbuffers::Vector<::flatbuffers::Offset> *h() const { + return GetPointer> *>(VT_H); } uint32_t i() const { return GetField(VT_I, 1234); @@ -397,7 +397,7 @@ struct Root FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { uint8_t l() const { return GetField(VT_L, 56); } - bool Verify(flatbuffers::Verifier &verifier) const { + bool Verify(::flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_B, 1) && VerifyField(verifier, VT_C_TYPE, 1) && @@ -434,64 +434,64 @@ template<> inline const Evolution::V2::TableC *Root::c_as struct RootBuilder { typedef Root Table; - flatbuffers::FlatBufferBuilder &fbb_; - flatbuffers::uoffset_t start_; + ::flatbuffers::FlatBufferBuilder &fbb_; + ::flatbuffers::uoffset_t start_; void add_b(bool b) { fbb_.AddElement(Root::VT_B, static_cast(b), 0); } void add_c_type(Evolution::V2::Union c_type) { fbb_.AddElement(Root::VT_C_TYPE, static_cast(c_type), 0); } - void add_c(flatbuffers::Offset c) { + void add_c(::flatbuffers::Offset c) { fbb_.AddOffset(Root::VT_C, c); } void add_d(Evolution::V2::Enum d) { fbb_.AddElement(Root::VT_D, static_cast(d), 0); } - void add_e(flatbuffers::Offset e) { + void add_e(::flatbuffers::Offset e) { fbb_.AddOffset(Root::VT_E, e); } void add_ff(const Evolution::V2::Struct *ff) { fbb_.AddStruct(Root::VT_FF, ff); } - void add_g(flatbuffers::Offset> g) { + void add_g(::flatbuffers::Offset<::flatbuffers::Vector> g) { fbb_.AddOffset(Root::VT_G, g); } - void add_h(flatbuffers::Offset>> h) { + void add_h(::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset>> h) { fbb_.AddOffset(Root::VT_H, h); } void add_i(uint32_t i) { fbb_.AddElement(Root::VT_I, i, 1234); } - void add_k(flatbuffers::Offset k) { + void add_k(::flatbuffers::Offset k) { fbb_.AddOffset(Root::VT_K, k); } void add_l(uint8_t l) { fbb_.AddElement(Root::VT_L, l, 56); } - explicit RootBuilder(flatbuffers::FlatBufferBuilder &_fbb) + explicit RootBuilder(::flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); } - flatbuffers::Offset Finish() { + ::flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); - auto o = flatbuffers::Offset(end); + auto o = ::flatbuffers::Offset(end); return o; } }; -inline flatbuffers::Offset CreateRoot( - flatbuffers::FlatBufferBuilder &_fbb, +inline ::flatbuffers::Offset CreateRoot( + ::flatbuffers::FlatBufferBuilder &_fbb, bool b = false, Evolution::V2::Union c_type = Evolution::V2::Union::NONE, - flatbuffers::Offset c = 0, + ::flatbuffers::Offset c = 0, Evolution::V2::Enum d = Evolution::V2::Enum::King, - flatbuffers::Offset e = 0, + ::flatbuffers::Offset e = 0, const Evolution::V2::Struct *ff = nullptr, - flatbuffers::Offset> g = 0, - flatbuffers::Offset>> h = 0, + ::flatbuffers::Offset<::flatbuffers::Vector> g = 0, + ::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset>> h = 0, uint32_t i = 1234, - flatbuffers::Offset k = 0, + ::flatbuffers::Offset k = 0, uint8_t l = 56) { RootBuilder builder_(_fbb); builder_.add_k(k); @@ -508,21 +508,21 @@ inline flatbuffers::Offset CreateRoot( return builder_.Finish(); } -inline flatbuffers::Offset CreateRootDirect( - flatbuffers::FlatBufferBuilder &_fbb, +inline ::flatbuffers::Offset CreateRootDirect( + ::flatbuffers::FlatBufferBuilder &_fbb, bool b = false, Evolution::V2::Union c_type = Evolution::V2::Union::NONE, - flatbuffers::Offset c = 0, + ::flatbuffers::Offset c = 0, Evolution::V2::Enum d = Evolution::V2::Enum::King, - flatbuffers::Offset e = 0, + ::flatbuffers::Offset e = 0, const Evolution::V2::Struct *ff = nullptr, const std::vector *g = nullptr, - const std::vector> *h = nullptr, + const std::vector<::flatbuffers::Offset> *h = nullptr, uint32_t i = 1234, - flatbuffers::Offset k = 0, + ::flatbuffers::Offset k = 0, uint8_t l = 56) { auto g__ = g ? _fbb.CreateVector(*g) : 0; - auto h__ = h ? _fbb.CreateVector>(*h) : 0; + auto h__ = h ? _fbb.CreateVector<::flatbuffers::Offset>(*h) : 0; return Evolution::V2::CreateRoot( _fbb, b, @@ -538,7 +538,7 @@ inline flatbuffers::Offset CreateRootDirect( l); } -inline bool VerifyUnion(flatbuffers::Verifier &verifier, const void *obj, Union type) { +inline bool VerifyUnion(::flatbuffers::Verifier &verifier, const void *obj, Union type) { switch (type) { case Union::NONE: { return true; @@ -559,10 +559,10 @@ inline bool VerifyUnion(flatbuffers::Verifier &verifier, const void *obj, Union } } -inline bool VerifyUnionVector(flatbuffers::Verifier &verifier, const flatbuffers::Vector> *values, const flatbuffers::Vector *types) { +inline bool VerifyUnionVector(::flatbuffers::Verifier &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types) { if (!values || !types) return !values && !types; if (values->size() != types->size()) return false; - for (flatbuffers::uoffset_t i = 0; i < values->size(); ++i) { + for (::flatbuffers::uoffset_t i = 0; i < values->size(); ++i) { if (!VerifyUnion( verifier, values->Get(i), types->GetEnum(i))) { return false; @@ -572,32 +572,32 @@ inline bool VerifyUnionVector(flatbuffers::Verifier &verifier, const flatbuffers } inline const Evolution::V2::Root *GetRoot(const void *buf) { - return flatbuffers::GetRoot(buf); + return ::flatbuffers::GetRoot(buf); } inline const Evolution::V2::Root *GetSizePrefixedRoot(const void *buf) { - return flatbuffers::GetSizePrefixedRoot(buf); + return ::flatbuffers::GetSizePrefixedRoot(buf); } inline bool VerifyRootBuffer( - flatbuffers::Verifier &verifier) { + ::flatbuffers::Verifier &verifier) { return verifier.VerifyBuffer(nullptr); } inline bool VerifySizePrefixedRootBuffer( - flatbuffers::Verifier &verifier) { + ::flatbuffers::Verifier &verifier) { return verifier.VerifySizePrefixedBuffer(nullptr); } inline void FinishRootBuffer( - flatbuffers::FlatBufferBuilder &fbb, - flatbuffers::Offset root) { + ::flatbuffers::FlatBufferBuilder &fbb, + ::flatbuffers::Offset root) { fbb.Finish(root); } inline void FinishSizePrefixedRootBuffer( - flatbuffers::FlatBufferBuilder &fbb, - flatbuffers::Offset root) { + ::flatbuffers::FlatBufferBuilder &fbb, + ::flatbuffers::Offset root) { fbb.FinishSizePrefixed(root); } diff --git a/tests/key_field/key_field_sample_generated.h b/tests/key_field/key_field_sample_generated.h index d4574ce5d2..6718f6edca 100644 --- a/tests/key_field/key_field_sample_generated.h +++ b/tests/key_field/key_field_sample_generated.h @@ -31,11 +31,11 @@ bool operator!=(const Bar &lhs, const Bar &rhs); bool operator==(const FooTableT &lhs, const FooTableT &rhs); bool operator!=(const FooTableT &lhs, const FooTableT &rhs); -inline const flatbuffers::TypeTable *BazTypeTable(); +inline const ::flatbuffers::TypeTable *BazTypeTable(); -inline const flatbuffers::TypeTable *BarTypeTable(); +inline const ::flatbuffers::TypeTable *BarTypeTable(); -inline const flatbuffers::TypeTable *FooTableTypeTable(); +inline const ::flatbuffers::TypeTable *FooTableTypeTable(); FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(1) Baz FLATBUFFERS_FINAL_CLASS { private: @@ -43,7 +43,7 @@ FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(1) Baz FLATBUFFERS_FINAL_CLASS { uint8_t b_; public: - static const flatbuffers::TypeTable *MiniReflectTypeTable() { + static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { return BazTypeTable(); } Baz() @@ -52,24 +52,24 @@ FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(1) Baz FLATBUFFERS_FINAL_CLASS { } Baz(uint8_t _b) : a_(), - b_(flatbuffers::EndianScalar(_b)) { + b_(::flatbuffers::EndianScalar(_b)) { } - Baz(flatbuffers::span _a, uint8_t _b) - : b_(flatbuffers::EndianScalar(_b)) { - flatbuffers::CastToArray(a_).CopyFromSpan(_a); + Baz(::flatbuffers::span _a, uint8_t _b) + : b_(::flatbuffers::EndianScalar(_b)) { + ::flatbuffers::CastToArray(a_).CopyFromSpan(_a); } - const flatbuffers::Array *a() const { - return &flatbuffers::CastToArray(a_); + const ::flatbuffers::Array *a() const { + return &::flatbuffers::CastToArray(a_); } - flatbuffers::Array *mutable_a() { - return &flatbuffers::CastToArray(a_); + ::flatbuffers::Array *mutable_a() { + return &::flatbuffers::CastToArray(a_); } bool KeyCompareLessThan(const Baz * const o) const { return KeyCompareWithValue(o->a()) < 0; } - int KeyCompareWithValue(const flatbuffers::Array *_a) const { - const flatbuffers::Array *curr_a = a(); - for (flatbuffers::uoffset_t i = 0; i < curr_a->size(); i++) { + int KeyCompareWithValue(const ::flatbuffers::Array *_a) const { + const ::flatbuffers::Array *curr_a = a(); + for (::flatbuffers::uoffset_t i = 0; i < curr_a->size(); i++) { const auto lhs = curr_a->Get(i); const auto rhs = _a->Get(i); if(lhs != rhs) @@ -78,10 +78,10 @@ FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(1) Baz FLATBUFFERS_FINAL_CLASS { return 0; } uint8_t b() const { - return flatbuffers::EndianScalar(b_); + return ::flatbuffers::EndianScalar(b_); } void mutate_b(uint8_t _b) { - flatbuffers::WriteScalar(&b_, _b); + ::flatbuffers::WriteScalar(&b_, _b); } }; FLATBUFFERS_STRUCT_END(Baz, 5); @@ -104,7 +104,7 @@ FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(4) Bar FLATBUFFERS_FINAL_CLASS { int8_t padding0__; int16_t padding1__; public: - static const flatbuffers::TypeTable *MiniReflectTypeTable() { + static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { return BarTypeTable(); } Bar() @@ -117,32 +117,32 @@ FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(4) Bar FLATBUFFERS_FINAL_CLASS { } Bar(uint8_t _b) : a_(), - b_(flatbuffers::EndianScalar(_b)), + b_(::flatbuffers::EndianScalar(_b)), padding0__(0), padding1__(0) { (void)padding0__; (void)padding1__; } - Bar(flatbuffers::span _a, uint8_t _b) - : b_(flatbuffers::EndianScalar(_b)), + Bar(::flatbuffers::span _a, uint8_t _b) + : b_(::flatbuffers::EndianScalar(_b)), padding0__(0), padding1__(0) { - flatbuffers::CastToArray(a_).CopyFromSpan(_a); + ::flatbuffers::CastToArray(a_).CopyFromSpan(_a); (void)padding0__; (void)padding1__; } - const flatbuffers::Array *a() const { - return &flatbuffers::CastToArray(a_); + const ::flatbuffers::Array *a() const { + return &::flatbuffers::CastToArray(a_); } - flatbuffers::Array *mutable_a() { - return &flatbuffers::CastToArray(a_); + ::flatbuffers::Array *mutable_a() { + return &::flatbuffers::CastToArray(a_); } bool KeyCompareLessThan(const Bar * const o) const { return KeyCompareWithValue(o->a()) < 0; } - int KeyCompareWithValue(const flatbuffers::Array *_a) const { - const flatbuffers::Array *curr_a = a(); - for (flatbuffers::uoffset_t i = 0; i < curr_a->size(); i++) { + int KeyCompareWithValue(const ::flatbuffers::Array *_a) const { + const ::flatbuffers::Array *curr_a = a(); + for (::flatbuffers::uoffset_t i = 0; i < curr_a->size(); i++) { const auto lhs = curr_a->Get(i); const auto rhs = _a->Get(i); if(lhs != rhs) @@ -151,10 +151,10 @@ FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(4) Bar FLATBUFFERS_FINAL_CLASS { return 0; } uint8_t b() const { - return flatbuffers::EndianScalar(b_); + return ::flatbuffers::EndianScalar(b_); } void mutate_b(uint8_t _b) { - flatbuffers::WriteScalar(&b_, _b); + ::flatbuffers::WriteScalar(&b_, _b); } }; FLATBUFFERS_STRUCT_END(Bar, 16); @@ -170,7 +170,7 @@ inline bool operator!=(const Bar &lhs, const Bar &rhs) { } -struct FooTableT : public flatbuffers::NativeTable { +struct FooTableT : public ::flatbuffers::NativeTable { typedef FooTable TableType; int32_t a = 0; int32_t b = 0; @@ -179,10 +179,10 @@ struct FooTableT : public flatbuffers::NativeTable { std::vector e{}; }; -struct FooTable FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { +struct FooTable FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { typedef FooTableT NativeTableType; typedef FooTableBuilder Builder; - static const flatbuffers::TypeTable *MiniReflectTypeTable() { + static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { return FooTableTypeTable(); } enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { @@ -204,11 +204,11 @@ struct FooTable FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { bool mutate_b(int32_t _b = 0) { return SetField(VT_B, _b, 0); } - const flatbuffers::String *c() const { - return GetPointer(VT_C); + const ::flatbuffers::String *c() const { + return GetPointer(VT_C); } - flatbuffers::String *mutable_c() { - return GetPointer(VT_C); + ::flatbuffers::String *mutable_c() { + return GetPointer<::flatbuffers::String *>(VT_C); } bool KeyCompareLessThan(const FooTable * const o) const { return *c() < *o->c(); @@ -216,19 +216,19 @@ struct FooTable FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { int KeyCompareWithValue(const char *_c) const { return strcmp(c()->c_str(), _c); } - const flatbuffers::Vector *d() const { - return GetPointer *>(VT_D); + const ::flatbuffers::Vector *d() const { + return GetPointer *>(VT_D); } - flatbuffers::Vector *mutable_d() { - return GetPointer *>(VT_D); + ::flatbuffers::Vector *mutable_d() { + return GetPointer<::flatbuffers::Vector *>(VT_D); } - const flatbuffers::Vector *e() const { - return GetPointer *>(VT_E); + const ::flatbuffers::Vector *e() const { + return GetPointer *>(VT_E); } - flatbuffers::Vector *mutable_e() { - return GetPointer *>(VT_E); + ::flatbuffers::Vector *mutable_e() { + return GetPointer<::flatbuffers::Vector *>(VT_E); } - bool Verify(flatbuffers::Verifier &verifier) const { + bool Verify(::flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_A, 4) && VerifyField(verifier, VT_B, 4) && @@ -240,49 +240,49 @@ struct FooTable FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { verifier.VerifyVector(e()) && verifier.EndTable(); } - FooTableT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; - void UnPackTo(FooTableT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const; - static flatbuffers::Offset Pack(flatbuffers::FlatBufferBuilder &_fbb, const FooTableT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); + FooTableT *UnPack(const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; + void UnPackTo(FooTableT *_o, const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; + static ::flatbuffers::Offset Pack(::flatbuffers::FlatBufferBuilder &_fbb, const FooTableT* _o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); }; struct FooTableBuilder { typedef FooTable Table; - flatbuffers::FlatBufferBuilder &fbb_; - flatbuffers::uoffset_t start_; + ::flatbuffers::FlatBufferBuilder &fbb_; + ::flatbuffers::uoffset_t start_; void add_a(int32_t a) { fbb_.AddElement(FooTable::VT_A, a, 0); } void add_b(int32_t b) { fbb_.AddElement(FooTable::VT_B, b, 0); } - void add_c(flatbuffers::Offset c) { + void add_c(::flatbuffers::Offset<::flatbuffers::String> c) { fbb_.AddOffset(FooTable::VT_C, c); } - void add_d(flatbuffers::Offset> d) { + void add_d(::flatbuffers::Offset<::flatbuffers::Vector> d) { fbb_.AddOffset(FooTable::VT_D, d); } - void add_e(flatbuffers::Offset> e) { + void add_e(::flatbuffers::Offset<::flatbuffers::Vector> e) { fbb_.AddOffset(FooTable::VT_E, e); } - explicit FooTableBuilder(flatbuffers::FlatBufferBuilder &_fbb) + explicit FooTableBuilder(::flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); } - flatbuffers::Offset Finish() { + ::flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); - auto o = flatbuffers::Offset(end); + auto o = ::flatbuffers::Offset(end); fbb_.Required(o, FooTable::VT_C); return o; } }; -inline flatbuffers::Offset CreateFooTable( - flatbuffers::FlatBufferBuilder &_fbb, +inline ::flatbuffers::Offset CreateFooTable( + ::flatbuffers::FlatBufferBuilder &_fbb, int32_t a = 0, int32_t b = 0, - flatbuffers::Offset c = 0, - flatbuffers::Offset> d = 0, - flatbuffers::Offset> e = 0) { + ::flatbuffers::Offset<::flatbuffers::String> c = 0, + ::flatbuffers::Offset<::flatbuffers::Vector> d = 0, + ::flatbuffers::Offset<::flatbuffers::Vector> e = 0) { FooTableBuilder builder_(_fbb); builder_.add_e(e); builder_.add_d(d); @@ -292,8 +292,8 @@ inline flatbuffers::Offset CreateFooTable( return builder_.Finish(); } -inline flatbuffers::Offset CreateFooTableDirect( - flatbuffers::FlatBufferBuilder &_fbb, +inline ::flatbuffers::Offset CreateFooTableDirect( + ::flatbuffers::FlatBufferBuilder &_fbb, int32_t a = 0, int32_t b = 0, const char *c = nullptr, @@ -311,7 +311,7 @@ inline flatbuffers::Offset CreateFooTableDirect( e__); } -flatbuffers::Offset CreateFooTable(flatbuffers::FlatBufferBuilder &_fbb, const FooTableT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); +::flatbuffers::Offset CreateFooTable(::flatbuffers::FlatBufferBuilder &_fbb, const FooTableT *_o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); inline bool operator==(const FooTableT &lhs, const FooTableT &rhs) { @@ -328,30 +328,30 @@ inline bool operator!=(const FooTableT &lhs, const FooTableT &rhs) { } -inline FooTableT *FooTable::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +inline FooTableT *FooTable::UnPack(const ::flatbuffers::resolver_function_t *_resolver) const { auto _o = std::unique_ptr(new FooTableT()); UnPackTo(_o.get(), _resolver); return _o.release(); } -inline void FooTable::UnPackTo(FooTableT *_o, const flatbuffers::resolver_function_t *_resolver) const { +inline void FooTable::UnPackTo(FooTableT *_o, const ::flatbuffers::resolver_function_t *_resolver) const { (void)_o; (void)_resolver; { auto _e = a(); _o->a = _e; } { auto _e = b(); _o->b = _e; } { auto _e = c(); if (_e) _o->c = _e->str(); } - { auto _e = d(); if (_e) { _o->d.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->d[_i] = *_e->Get(_i); } } else { _o->d.resize(0); } } - { auto _e = e(); if (_e) { _o->e.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->e[_i] = *_e->Get(_i); } } else { _o->e.resize(0); } } + { auto _e = d(); if (_e) { _o->d.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->d[_i] = *_e->Get(_i); } } else { _o->d.resize(0); } } + { auto _e = e(); if (_e) { _o->e.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->e[_i] = *_e->Get(_i); } } else { _o->e.resize(0); } } } -inline flatbuffers::Offset FooTable::Pack(flatbuffers::FlatBufferBuilder &_fbb, const FooTableT* _o, const flatbuffers::rehasher_function_t *_rehasher) { +inline ::flatbuffers::Offset FooTable::Pack(::flatbuffers::FlatBufferBuilder &_fbb, const FooTableT* _o, const ::flatbuffers::rehasher_function_t *_rehasher) { return CreateFooTable(_fbb, _o, _rehasher); } -inline flatbuffers::Offset CreateFooTable(flatbuffers::FlatBufferBuilder &_fbb, const FooTableT *_o, const flatbuffers::rehasher_function_t *_rehasher) { +inline ::flatbuffers::Offset CreateFooTable(::flatbuffers::FlatBufferBuilder &_fbb, const FooTableT *_o, const ::flatbuffers::rehasher_function_t *_rehasher) { (void)_rehasher; (void)_o; - struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const FooTableT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; + struct _VectorArgs { ::flatbuffers::FlatBufferBuilder *__fbb; const FooTableT* __o; const ::flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; auto _a = _o->a; auto _b = _o->b; auto _c = _fbb.CreateString(_o->c); @@ -366,10 +366,10 @@ inline flatbuffers::Offset CreateFooTable(flatbuffers::FlatBufferBuild _e); } -inline const flatbuffers::TypeTable *BazTypeTable() { - static const flatbuffers::TypeCode type_codes[] = { - { flatbuffers::ET_UCHAR, 1, -1 }, - { flatbuffers::ET_UCHAR, 0, -1 } +inline const ::flatbuffers::TypeTable *BazTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_UCHAR, 1, -1 }, + { ::flatbuffers::ET_UCHAR, 0, -1 } }; static const int16_t array_sizes[] = { 4, }; static const int64_t values[] = { 0, 4, 5 }; @@ -377,16 +377,16 @@ inline const flatbuffers::TypeTable *BazTypeTable() { "a", "b" }; - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_STRUCT, 2, type_codes, nullptr, array_sizes, values, names + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_STRUCT, 2, type_codes, nullptr, array_sizes, values, names }; return &tt; } -inline const flatbuffers::TypeTable *BarTypeTable() { - static const flatbuffers::TypeCode type_codes[] = { - { flatbuffers::ET_FLOAT, 1, -1 }, - { flatbuffers::ET_UCHAR, 0, -1 } +inline const ::flatbuffers::TypeTable *BarTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_FLOAT, 1, -1 }, + { ::flatbuffers::ET_UCHAR, 0, -1 } }; static const int16_t array_sizes[] = { 3, }; static const int64_t values[] = { 0, 12, 16 }; @@ -394,21 +394,21 @@ inline const flatbuffers::TypeTable *BarTypeTable() { "a", "b" }; - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_STRUCT, 2, type_codes, nullptr, array_sizes, values, names + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_STRUCT, 2, type_codes, nullptr, array_sizes, values, names }; return &tt; } -inline const flatbuffers::TypeTable *FooTableTypeTable() { - static const flatbuffers::TypeCode type_codes[] = { - { flatbuffers::ET_INT, 0, -1 }, - { flatbuffers::ET_INT, 0, -1 }, - { flatbuffers::ET_STRING, 0, -1 }, - { flatbuffers::ET_SEQUENCE, 1, 0 }, - { flatbuffers::ET_SEQUENCE, 1, 1 } +inline const ::flatbuffers::TypeTable *FooTableTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_INT, 0, -1 }, + { ::flatbuffers::ET_INT, 0, -1 }, + { ::flatbuffers::ET_STRING, 0, -1 }, + { ::flatbuffers::ET_SEQUENCE, 1, 0 }, + { ::flatbuffers::ET_SEQUENCE, 1, 1 } }; - static const flatbuffers::TypeFunction type_refs[] = { + static const ::flatbuffers::TypeFunction type_refs[] = { keyfield::sample::BazTypeTable, keyfield::sample::BarTypeTable }; @@ -419,59 +419,59 @@ inline const flatbuffers::TypeTable *FooTableTypeTable() { "d", "e" }; - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_TABLE, 5, type_codes, type_refs, nullptr, nullptr, names + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_TABLE, 5, type_codes, type_refs, nullptr, nullptr, names }; return &tt; } inline const keyfield::sample::FooTable *GetFooTable(const void *buf) { - return flatbuffers::GetRoot(buf); + return ::flatbuffers::GetRoot(buf); } inline const keyfield::sample::FooTable *GetSizePrefixedFooTable(const void *buf) { - return flatbuffers::GetSizePrefixedRoot(buf); + return ::flatbuffers::GetSizePrefixedRoot(buf); } inline FooTable *GetMutableFooTable(void *buf) { - return flatbuffers::GetMutableRoot(buf); + return ::flatbuffers::GetMutableRoot(buf); } inline keyfield::sample::FooTable *GetMutableSizePrefixedFooTable(void *buf) { - return flatbuffers::GetMutableSizePrefixedRoot(buf); + return ::flatbuffers::GetMutableSizePrefixedRoot(buf); } inline bool VerifyFooTableBuffer( - flatbuffers::Verifier &verifier) { + ::flatbuffers::Verifier &verifier) { return verifier.VerifyBuffer(nullptr); } inline bool VerifySizePrefixedFooTableBuffer( - flatbuffers::Verifier &verifier) { + ::flatbuffers::Verifier &verifier) { return verifier.VerifySizePrefixedBuffer(nullptr); } inline void FinishFooTableBuffer( - flatbuffers::FlatBufferBuilder &fbb, - flatbuffers::Offset root) { + ::flatbuffers::FlatBufferBuilder &fbb, + ::flatbuffers::Offset root) { fbb.Finish(root); } inline void FinishSizePrefixedFooTableBuffer( - flatbuffers::FlatBufferBuilder &fbb, - flatbuffers::Offset root) { + ::flatbuffers::FlatBufferBuilder &fbb, + ::flatbuffers::Offset root) { fbb.FinishSizePrefixed(root); } inline flatbuffers::unique_ptr UnPackFooTable( const void *buf, - const flatbuffers::resolver_function_t *res = nullptr) { + const ::flatbuffers::resolver_function_t *res = nullptr) { return flatbuffers::unique_ptr(GetFooTable(buf)->UnPack(res)); } inline flatbuffers::unique_ptr UnPackSizePrefixedFooTable( const void *buf, - const flatbuffers::resolver_function_t *res = nullptr) { + const ::flatbuffers::resolver_function_t *res = nullptr) { return flatbuffers::unique_ptr(GetSizePrefixedFooTable(buf)->UnPack(res)); } diff --git a/tests/monster_extra_generated.h b/tests/monster_extra_generated.h index 970c86360a..09d58c25b2 100644 --- a/tests/monster_extra_generated.h +++ b/tests/monster_extra_generated.h @@ -22,9 +22,9 @@ struct MonsterExtraT; bool operator==(const MonsterExtraT &lhs, const MonsterExtraT &rhs); bool operator!=(const MonsterExtraT &lhs, const MonsterExtraT &rhs); -inline const flatbuffers::TypeTable *MonsterExtraTypeTable(); +inline const ::flatbuffers::TypeTable *MonsterExtraTypeTable(); -struct MonsterExtraT : public flatbuffers::NativeTable { +struct MonsterExtraT : public ::flatbuffers::NativeTable { typedef MonsterExtra TableType; double d0 = std::numeric_limits::quiet_NaN(); double d1 = std::numeric_limits::quiet_NaN(); @@ -38,10 +38,10 @@ struct MonsterExtraT : public flatbuffers::NativeTable { std::vector fvec{}; }; -struct MonsterExtra FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { +struct MonsterExtra FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { typedef MonsterExtraT NativeTableType; typedef MonsterExtraBuilder Builder; - static const flatbuffers::TypeTable *MiniReflectTypeTable() { + static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { return MonsterExtraTypeTable(); } enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { @@ -104,19 +104,19 @@ struct MonsterExtra FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { bool mutate_f3(float _f3 = -std::numeric_limits::infinity()) { return SetField(VT_F3, _f3, -std::numeric_limits::infinity()); } - const flatbuffers::Vector *dvec() const { - return GetPointer *>(VT_DVEC); + const ::flatbuffers::Vector *dvec() const { + return GetPointer *>(VT_DVEC); } - flatbuffers::Vector *mutable_dvec() { - return GetPointer *>(VT_DVEC); + ::flatbuffers::Vector *mutable_dvec() { + return GetPointer<::flatbuffers::Vector *>(VT_DVEC); } - const flatbuffers::Vector *fvec() const { - return GetPointer *>(VT_FVEC); + const ::flatbuffers::Vector *fvec() const { + return GetPointer *>(VT_FVEC); } - flatbuffers::Vector *mutable_fvec() { - return GetPointer *>(VT_FVEC); + ::flatbuffers::Vector *mutable_fvec() { + return GetPointer<::flatbuffers::Vector *>(VT_FVEC); } - bool Verify(flatbuffers::Verifier &verifier) const { + bool Verify(::flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_D0, 8) && VerifyField(verifier, VT_D1, 8) && @@ -132,15 +132,15 @@ struct MonsterExtra FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { verifier.VerifyVector(fvec()) && verifier.EndTable(); } - MonsterExtraT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; - void UnPackTo(MonsterExtraT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const; - static flatbuffers::Offset Pack(flatbuffers::FlatBufferBuilder &_fbb, const MonsterExtraT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); + MonsterExtraT *UnPack(const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; + void UnPackTo(MonsterExtraT *_o, const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; + static ::flatbuffers::Offset Pack(::flatbuffers::FlatBufferBuilder &_fbb, const MonsterExtraT* _o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); }; struct MonsterExtraBuilder { typedef MonsterExtra Table; - flatbuffers::FlatBufferBuilder &fbb_; - flatbuffers::uoffset_t start_; + ::flatbuffers::FlatBufferBuilder &fbb_; + ::flatbuffers::uoffset_t start_; void add_d0(double d0) { fbb_.AddElement(MonsterExtra::VT_D0, d0, std::numeric_limits::quiet_NaN()); } @@ -165,25 +165,25 @@ struct MonsterExtraBuilder { void add_f3(float f3) { fbb_.AddElement(MonsterExtra::VT_F3, f3, -std::numeric_limits::infinity()); } - void add_dvec(flatbuffers::Offset> dvec) { + void add_dvec(::flatbuffers::Offset<::flatbuffers::Vector> dvec) { fbb_.AddOffset(MonsterExtra::VT_DVEC, dvec); } - void add_fvec(flatbuffers::Offset> fvec) { + void add_fvec(::flatbuffers::Offset<::flatbuffers::Vector> fvec) { fbb_.AddOffset(MonsterExtra::VT_FVEC, fvec); } - explicit MonsterExtraBuilder(flatbuffers::FlatBufferBuilder &_fbb) + explicit MonsterExtraBuilder(::flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); } - flatbuffers::Offset Finish() { + ::flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); - auto o = flatbuffers::Offset(end); + auto o = ::flatbuffers::Offset(end); return o; } }; -inline flatbuffers::Offset CreateMonsterExtra( - flatbuffers::FlatBufferBuilder &_fbb, +inline ::flatbuffers::Offset CreateMonsterExtra( + ::flatbuffers::FlatBufferBuilder &_fbb, double d0 = std::numeric_limits::quiet_NaN(), double d1 = std::numeric_limits::quiet_NaN(), double d2 = std::numeric_limits::infinity(), @@ -192,8 +192,8 @@ inline flatbuffers::Offset CreateMonsterExtra( float f1 = std::numeric_limits::quiet_NaN(), float f2 = std::numeric_limits::infinity(), float f3 = -std::numeric_limits::infinity(), - flatbuffers::Offset> dvec = 0, - flatbuffers::Offset> fvec = 0) { + ::flatbuffers::Offset<::flatbuffers::Vector> dvec = 0, + ::flatbuffers::Offset<::flatbuffers::Vector> fvec = 0) { MonsterExtraBuilder builder_(_fbb); builder_.add_d3(d3); builder_.add_d2(d2); @@ -208,8 +208,8 @@ inline flatbuffers::Offset CreateMonsterExtra( return builder_.Finish(); } -inline flatbuffers::Offset CreateMonsterExtraDirect( - flatbuffers::FlatBufferBuilder &_fbb, +inline ::flatbuffers::Offset CreateMonsterExtraDirect( + ::flatbuffers::FlatBufferBuilder &_fbb, double d0 = std::numeric_limits::quiet_NaN(), double d1 = std::numeric_limits::quiet_NaN(), double d2 = std::numeric_limits::infinity(), @@ -236,7 +236,7 @@ inline flatbuffers::Offset CreateMonsterExtraDirect( fvec__); } -flatbuffers::Offset CreateMonsterExtra(flatbuffers::FlatBufferBuilder &_fbb, const MonsterExtraT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); +::flatbuffers::Offset CreateMonsterExtra(::flatbuffers::FlatBufferBuilder &_fbb, const MonsterExtraT *_o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); inline bool operator==(const MonsterExtraT &lhs, const MonsterExtraT &rhs) { @@ -258,13 +258,13 @@ inline bool operator!=(const MonsterExtraT &lhs, const MonsterExtraT &rhs) { } -inline MonsterExtraT *MonsterExtra::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +inline MonsterExtraT *MonsterExtra::UnPack(const ::flatbuffers::resolver_function_t *_resolver) const { auto _o = std::unique_ptr(new MonsterExtraT()); UnPackTo(_o.get(), _resolver); return _o.release(); } -inline void MonsterExtra::UnPackTo(MonsterExtraT *_o, const flatbuffers::resolver_function_t *_resolver) const { +inline void MonsterExtra::UnPackTo(MonsterExtraT *_o, const ::flatbuffers::resolver_function_t *_resolver) const { (void)_o; (void)_resolver; { auto _e = d0(); _o->d0 = _e; } @@ -275,18 +275,18 @@ inline void MonsterExtra::UnPackTo(MonsterExtraT *_o, const flatbuffers::resolve { auto _e = f1(); _o->f1 = _e; } { auto _e = f2(); _o->f2 = _e; } { auto _e = f3(); _o->f3 = _e; } - { auto _e = dvec(); if (_e) { _o->dvec.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->dvec[_i] = _e->Get(_i); } } else { _o->dvec.resize(0); } } - { auto _e = fvec(); if (_e) { _o->fvec.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->fvec[_i] = _e->Get(_i); } } else { _o->fvec.resize(0); } } + { auto _e = dvec(); if (_e) { _o->dvec.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->dvec[_i] = _e->Get(_i); } } else { _o->dvec.resize(0); } } + { auto _e = fvec(); if (_e) { _o->fvec.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->fvec[_i] = _e->Get(_i); } } else { _o->fvec.resize(0); } } } -inline flatbuffers::Offset MonsterExtra::Pack(flatbuffers::FlatBufferBuilder &_fbb, const MonsterExtraT* _o, const flatbuffers::rehasher_function_t *_rehasher) { +inline ::flatbuffers::Offset MonsterExtra::Pack(::flatbuffers::FlatBufferBuilder &_fbb, const MonsterExtraT* _o, const ::flatbuffers::rehasher_function_t *_rehasher) { return CreateMonsterExtra(_fbb, _o, _rehasher); } -inline flatbuffers::Offset CreateMonsterExtra(flatbuffers::FlatBufferBuilder &_fbb, const MonsterExtraT *_o, const flatbuffers::rehasher_function_t *_rehasher) { +inline ::flatbuffers::Offset CreateMonsterExtra(::flatbuffers::FlatBufferBuilder &_fbb, const MonsterExtraT *_o, const ::flatbuffers::rehasher_function_t *_rehasher) { (void)_rehasher; (void)_o; - struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const MonsterExtraT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; + struct _VectorArgs { ::flatbuffers::FlatBufferBuilder *__fbb; const MonsterExtraT* __o; const ::flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; auto _d0 = _o->d0; auto _d1 = _o->d1; auto _d2 = _o->d2; @@ -311,19 +311,19 @@ inline flatbuffers::Offset CreateMonsterExtra(flatbuffers::FlatBuf _fvec); } -inline const flatbuffers::TypeTable *MonsterExtraTypeTable() { - static const flatbuffers::TypeCode type_codes[] = { - { flatbuffers::ET_DOUBLE, 0, -1 }, - { flatbuffers::ET_DOUBLE, 0, -1 }, - { flatbuffers::ET_DOUBLE, 0, -1 }, - { flatbuffers::ET_DOUBLE, 0, -1 }, - { flatbuffers::ET_FLOAT, 0, -1 }, - { flatbuffers::ET_FLOAT, 0, -1 }, - { flatbuffers::ET_FLOAT, 0, -1 }, - { flatbuffers::ET_FLOAT, 0, -1 }, - { flatbuffers::ET_DOUBLE, 1, -1 }, - { flatbuffers::ET_FLOAT, 1, -1 }, - { flatbuffers::ET_INT, 0, -1 } +inline const ::flatbuffers::TypeTable *MonsterExtraTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_DOUBLE, 0, -1 }, + { ::flatbuffers::ET_DOUBLE, 0, -1 }, + { ::flatbuffers::ET_DOUBLE, 0, -1 }, + { ::flatbuffers::ET_DOUBLE, 0, -1 }, + { ::flatbuffers::ET_FLOAT, 0, -1 }, + { ::flatbuffers::ET_FLOAT, 0, -1 }, + { ::flatbuffers::ET_FLOAT, 0, -1 }, + { ::flatbuffers::ET_FLOAT, 0, -1 }, + { ::flatbuffers::ET_DOUBLE, 1, -1 }, + { ::flatbuffers::ET_FLOAT, 1, -1 }, + { ::flatbuffers::ET_INT, 0, -1 } }; static const char * const names[] = { "d0", @@ -338,26 +338,26 @@ inline const flatbuffers::TypeTable *MonsterExtraTypeTable() { "fvec", "deprec" }; - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_TABLE, 11, type_codes, nullptr, nullptr, nullptr, names + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_TABLE, 11, type_codes, nullptr, nullptr, nullptr, names }; return &tt; } inline const MyGame::MonsterExtra *GetMonsterExtra(const void *buf) { - return flatbuffers::GetRoot(buf); + return ::flatbuffers::GetRoot(buf); } inline const MyGame::MonsterExtra *GetSizePrefixedMonsterExtra(const void *buf) { - return flatbuffers::GetSizePrefixedRoot(buf); + return ::flatbuffers::GetSizePrefixedRoot(buf); } inline MonsterExtra *GetMutableMonsterExtra(void *buf) { - return flatbuffers::GetMutableRoot(buf); + return ::flatbuffers::GetMutableRoot(buf); } inline MyGame::MonsterExtra *GetMutableSizePrefixedMonsterExtra(void *buf) { - return flatbuffers::GetMutableSizePrefixedRoot(buf); + return ::flatbuffers::GetMutableSizePrefixedRoot(buf); } inline const char *MonsterExtraIdentifier() { @@ -365,22 +365,22 @@ inline const char *MonsterExtraIdentifier() { } inline bool MonsterExtraBufferHasIdentifier(const void *buf) { - return flatbuffers::BufferHasIdentifier( + return ::flatbuffers::BufferHasIdentifier( buf, MonsterExtraIdentifier()); } inline bool SizePrefixedMonsterExtraBufferHasIdentifier(const void *buf) { - return flatbuffers::BufferHasIdentifier( + return ::flatbuffers::BufferHasIdentifier( buf, MonsterExtraIdentifier(), true); } inline bool VerifyMonsterExtraBuffer( - flatbuffers::Verifier &verifier) { + ::flatbuffers::Verifier &verifier) { return verifier.VerifyBuffer(MonsterExtraIdentifier()); } inline bool VerifySizePrefixedMonsterExtraBuffer( - flatbuffers::Verifier &verifier) { + ::flatbuffers::Verifier &verifier) { return verifier.VerifySizePrefixedBuffer(MonsterExtraIdentifier()); } @@ -389,26 +389,26 @@ inline const char *MonsterExtraExtension() { } inline void FinishMonsterExtraBuffer( - flatbuffers::FlatBufferBuilder &fbb, - flatbuffers::Offset root) { + ::flatbuffers::FlatBufferBuilder &fbb, + ::flatbuffers::Offset root) { fbb.Finish(root, MonsterExtraIdentifier()); } inline void FinishSizePrefixedMonsterExtraBuffer( - flatbuffers::FlatBufferBuilder &fbb, - flatbuffers::Offset root) { + ::flatbuffers::FlatBufferBuilder &fbb, + ::flatbuffers::Offset root) { fbb.FinishSizePrefixed(root, MonsterExtraIdentifier()); } inline flatbuffers::unique_ptr UnPackMonsterExtra( const void *buf, - const flatbuffers::resolver_function_t *res = nullptr) { + const ::flatbuffers::resolver_function_t *res = nullptr) { return flatbuffers::unique_ptr(GetMonsterExtra(buf)->UnPack(res)); } inline flatbuffers::unique_ptr UnPackSizePrefixedMonsterExtra( const void *buf, - const flatbuffers::resolver_function_t *res = nullptr) { + const ::flatbuffers::resolver_function_t *res = nullptr) { return flatbuffers::unique_ptr(GetSizePrefixedMonsterExtra(buf)->UnPack(res)); } diff --git a/tests/monster_test_generated.h b/tests/monster_test_generated.h index 9401897ffd..bd32dc3106 100644 --- a/tests/monster_test_generated.h +++ b/tests/monster_test_generated.h @@ -96,35 +96,35 @@ bool operator!=(const TypeAliasesT &lhs, const TypeAliasesT &rhs); } // namespace Example -inline const flatbuffers::TypeTable *InParentNamespaceTypeTable(); +inline const ::flatbuffers::TypeTable *InParentNamespaceTypeTable(); namespace Example2 { -inline const flatbuffers::TypeTable *MonsterTypeTable(); +inline const ::flatbuffers::TypeTable *MonsterTypeTable(); } // namespace Example2 namespace Example { -inline const flatbuffers::TypeTable *TestTypeTable(); +inline const ::flatbuffers::TypeTable *TestTypeTable(); -inline const flatbuffers::TypeTable *TestSimpleTableWithEnumTypeTable(); +inline const ::flatbuffers::TypeTable *TestSimpleTableWithEnumTypeTable(); -inline const flatbuffers::TypeTable *Vec3TypeTable(); +inline const ::flatbuffers::TypeTable *Vec3TypeTable(); -inline const flatbuffers::TypeTable *AbilityTypeTable(); +inline const ::flatbuffers::TypeTable *AbilityTypeTable(); -inline const flatbuffers::TypeTable *StructOfStructsTypeTable(); +inline const ::flatbuffers::TypeTable *StructOfStructsTypeTable(); -inline const flatbuffers::TypeTable *StructOfStructsOfStructsTypeTable(); +inline const ::flatbuffers::TypeTable *StructOfStructsOfStructsTypeTable(); -inline const flatbuffers::TypeTable *StatTypeTable(); +inline const ::flatbuffers::TypeTable *StatTypeTable(); -inline const flatbuffers::TypeTable *ReferrableTypeTable(); +inline const ::flatbuffers::TypeTable *ReferrableTypeTable(); -inline const flatbuffers::TypeTable *MonsterTypeTable(); +inline const ::flatbuffers::TypeTable *MonsterTypeTable(); -inline const flatbuffers::TypeTable *TypeAliasesTypeTable(); +inline const ::flatbuffers::TypeTable *TypeAliasesTypeTable(); /// Composite components of Monster color. enum Color : uint8_t { @@ -163,7 +163,7 @@ inline const char * const *EnumNamesColor() { } inline const char *EnumNameColor(Color e) { - if (flatbuffers::IsOutRange(e, Color_Red, Color_Blue)) return ""; + if (::flatbuffers::IsOutRange(e, Color_Red, Color_Blue)) return ""; const size_t index = static_cast(e) - static_cast(Color_Red); return EnumNamesColor()[index]; } @@ -199,7 +199,7 @@ inline const char * const *EnumNamesRace() { } inline const char *EnumNameRace(Race e) { - if (flatbuffers::IsOutRange(e, Race_None, Race_Elf)) return ""; + if (::flatbuffers::IsOutRange(e, Race_None, Race_Elf)) return ""; const size_t index = static_cast(e) - static_cast(Race_None); return EnumNamesRace()[index]; } @@ -261,7 +261,7 @@ inline const char * const *EnumNamesAny() { } inline const char *EnumNameAny(Any e) { - if (flatbuffers::IsOutRange(e, Any_NONE, Any_MyGame_Example2_Monster)) return ""; + if (::flatbuffers::IsOutRange(e, Any_NONE, Any_MyGame_Example2_Monster)) return ""; const size_t index = static_cast(e); return EnumNamesAny()[index]; } @@ -325,8 +325,8 @@ struct AnyUnion { } } - static void *UnPack(const void *obj, Any type, const flatbuffers::resolver_function_t *resolver); - flatbuffers::Offset Pack(flatbuffers::FlatBufferBuilder &_fbb, const flatbuffers::rehasher_function_t *_rehasher = nullptr) const; + static void *UnPack(const void *obj, Any type, const ::flatbuffers::resolver_function_t *resolver); + ::flatbuffers::Offset Pack(::flatbuffers::FlatBufferBuilder &_fbb, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr) const; MyGame::Example::MonsterT *AsMonster() { return type == Any_Monster ? @@ -383,8 +383,8 @@ inline bool operator!=(const AnyUnion &lhs, const AnyUnion &rhs) { return !(lhs == rhs); } -bool VerifyAny(flatbuffers::Verifier &verifier, const void *obj, Any type); -bool VerifyAnyVector(flatbuffers::Verifier &verifier, const flatbuffers::Vector> *values, const flatbuffers::Vector *types); +bool VerifyAny(::flatbuffers::Verifier &verifier, const void *obj, Any type); +bool VerifyAnyVector(::flatbuffers::Verifier &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types); enum AnyUniqueAliases : uint8_t { AnyUniqueAliases_NONE = 0, @@ -417,7 +417,7 @@ inline const char * const *EnumNamesAnyUniqueAliases() { } inline const char *EnumNameAnyUniqueAliases(AnyUniqueAliases e) { - if (flatbuffers::IsOutRange(e, AnyUniqueAliases_NONE, AnyUniqueAliases_M2)) return ""; + if (::flatbuffers::IsOutRange(e, AnyUniqueAliases_NONE, AnyUniqueAliases_M2)) return ""; const size_t index = static_cast(e); return EnumNamesAnyUniqueAliases()[index]; } @@ -481,8 +481,8 @@ struct AnyUniqueAliasesUnion { } } - static void *UnPack(const void *obj, AnyUniqueAliases type, const flatbuffers::resolver_function_t *resolver); - flatbuffers::Offset Pack(flatbuffers::FlatBufferBuilder &_fbb, const flatbuffers::rehasher_function_t *_rehasher = nullptr) const; + static void *UnPack(const void *obj, AnyUniqueAliases type, const ::flatbuffers::resolver_function_t *resolver); + ::flatbuffers::Offset Pack(::flatbuffers::FlatBufferBuilder &_fbb, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr) const; MyGame::Example::MonsterT *AsM() { return type == AnyUniqueAliases_M ? @@ -539,8 +539,8 @@ inline bool operator!=(const AnyUniqueAliasesUnion &lhs, const AnyUniqueAliasesU return !(lhs == rhs); } -bool VerifyAnyUniqueAliases(flatbuffers::Verifier &verifier, const void *obj, AnyUniqueAliases type); -bool VerifyAnyUniqueAliasesVector(flatbuffers::Verifier &verifier, const flatbuffers::Vector> *values, const flatbuffers::Vector *types); +bool VerifyAnyUniqueAliases(::flatbuffers::Verifier &verifier, const void *obj, AnyUniqueAliases type); +bool VerifyAnyUniqueAliasesVector(::flatbuffers::Verifier &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types); enum AnyAmbiguousAliases : uint8_t { AnyAmbiguousAliases_NONE = 0, @@ -573,7 +573,7 @@ inline const char * const *EnumNamesAnyAmbiguousAliases() { } inline const char *EnumNameAnyAmbiguousAliases(AnyAmbiguousAliases e) { - if (flatbuffers::IsOutRange(e, AnyAmbiguousAliases_NONE, AnyAmbiguousAliases_M3)) return ""; + if (::flatbuffers::IsOutRange(e, AnyAmbiguousAliases_NONE, AnyAmbiguousAliases_M3)) return ""; const size_t index = static_cast(e); return EnumNamesAnyAmbiguousAliases()[index]; } @@ -595,8 +595,8 @@ struct AnyAmbiguousAliasesUnion { void Reset(); - static void *UnPack(const void *obj, AnyAmbiguousAliases type, const flatbuffers::resolver_function_t *resolver); - flatbuffers::Offset Pack(flatbuffers::FlatBufferBuilder &_fbb, const flatbuffers::rehasher_function_t *_rehasher = nullptr) const; + static void *UnPack(const void *obj, AnyAmbiguousAliases type, const ::flatbuffers::resolver_function_t *resolver); + ::flatbuffers::Offset Pack(::flatbuffers::FlatBufferBuilder &_fbb, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr) const; MyGame::Example::MonsterT *AsM1() { return type == AnyAmbiguousAliases_M1 ? @@ -653,8 +653,8 @@ inline bool operator!=(const AnyAmbiguousAliasesUnion &lhs, const AnyAmbiguousAl return !(lhs == rhs); } -bool VerifyAnyAmbiguousAliases(flatbuffers::Verifier &verifier, const void *obj, AnyAmbiguousAliases type); -bool VerifyAnyAmbiguousAliasesVector(flatbuffers::Verifier &verifier, const flatbuffers::Vector> *values, const flatbuffers::Vector *types); +bool VerifyAnyAmbiguousAliases(::flatbuffers::Verifier &verifier, const void *obj, AnyAmbiguousAliases type); +bool VerifyAnyAmbiguousAliasesVector(::flatbuffers::Verifier &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types); FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(2) Test FLATBUFFERS_FINAL_CLASS { private: @@ -663,7 +663,7 @@ FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(2) Test FLATBUFFERS_FINAL_CLASS { int8_t padding0__; public: - static const flatbuffers::TypeTable *MiniReflectTypeTable() { + static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { return TestTypeTable(); } Test() @@ -673,22 +673,22 @@ FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(2) Test FLATBUFFERS_FINAL_CLASS { (void)padding0__; } Test(int16_t _a, int8_t _b) - : a_(flatbuffers::EndianScalar(_a)), - b_(flatbuffers::EndianScalar(_b)), + : a_(::flatbuffers::EndianScalar(_a)), + b_(::flatbuffers::EndianScalar(_b)), padding0__(0) { (void)padding0__; } int16_t a() const { - return flatbuffers::EndianScalar(a_); + return ::flatbuffers::EndianScalar(a_); } void mutate_a(int16_t _a) { - flatbuffers::WriteScalar(&a_, _a); + ::flatbuffers::WriteScalar(&a_, _a); } int8_t b() const { - return flatbuffers::EndianScalar(b_); + return ::flatbuffers::EndianScalar(b_); } void mutate_b(int8_t _b) { - flatbuffers::WriteScalar(&b_, _b); + ::flatbuffers::WriteScalar(&b_, _b); } }; FLATBUFFERS_STRUCT_END(Test, 4); @@ -717,7 +717,7 @@ FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(8) Vec3 FLATBUFFERS_FINAL_CLASS { int16_t padding2__; public: - static const flatbuffers::TypeTable *MiniReflectTypeTable() { + static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { return Vec3TypeTable(); } Vec3() @@ -735,12 +735,12 @@ FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(8) Vec3 FLATBUFFERS_FINAL_CLASS { (void)padding2__; } Vec3(float _x, float _y, float _z, double _test1, MyGame::Example::Color _test2, const MyGame::Example::Test &_test3) - : x_(flatbuffers::EndianScalar(_x)), - y_(flatbuffers::EndianScalar(_y)), - z_(flatbuffers::EndianScalar(_z)), + : x_(::flatbuffers::EndianScalar(_x)), + y_(::flatbuffers::EndianScalar(_y)), + z_(::flatbuffers::EndianScalar(_z)), padding0__(0), - test1_(flatbuffers::EndianScalar(_test1)), - test2_(flatbuffers::EndianScalar(static_cast(_test2))), + test1_(::flatbuffers::EndianScalar(_test1)), + test2_(::flatbuffers::EndianScalar(static_cast(_test2))), padding1__(0), test3_(_test3), padding2__(0) { @@ -749,34 +749,34 @@ FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(8) Vec3 FLATBUFFERS_FINAL_CLASS { (void)padding2__; } float x() const { - return flatbuffers::EndianScalar(x_); + return ::flatbuffers::EndianScalar(x_); } void mutate_x(float _x) { - flatbuffers::WriteScalar(&x_, _x); + ::flatbuffers::WriteScalar(&x_, _x); } float y() const { - return flatbuffers::EndianScalar(y_); + return ::flatbuffers::EndianScalar(y_); } void mutate_y(float _y) { - flatbuffers::WriteScalar(&y_, _y); + ::flatbuffers::WriteScalar(&y_, _y); } float z() const { - return flatbuffers::EndianScalar(z_); + return ::flatbuffers::EndianScalar(z_); } void mutate_z(float _z) { - flatbuffers::WriteScalar(&z_, _z); + ::flatbuffers::WriteScalar(&z_, _z); } double test1() const { - return flatbuffers::EndianScalar(test1_); + return ::flatbuffers::EndianScalar(test1_); } void mutate_test1(double _test1) { - flatbuffers::WriteScalar(&test1_, _test1); + ::flatbuffers::WriteScalar(&test1_, _test1); } MyGame::Example::Color test2() const { - return static_cast(flatbuffers::EndianScalar(test2_)); + return static_cast(::flatbuffers::EndianScalar(test2_)); } void mutate_test2(MyGame::Example::Color _test2) { - flatbuffers::WriteScalar(&test2_, static_cast(_test2)); + ::flatbuffers::WriteScalar(&test2_, static_cast(_test2)); } const MyGame::Example::Test &test3() const { return test3_; @@ -808,7 +808,7 @@ FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(4) Ability FLATBUFFERS_FINAL_CLASS { uint32_t distance_; public: - static const flatbuffers::TypeTable *MiniReflectTypeTable() { + static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { return AbilityTypeTable(); } Ability() @@ -816,14 +816,14 @@ FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(4) Ability FLATBUFFERS_FINAL_CLASS { distance_(0) { } Ability(uint32_t _id, uint32_t _distance) - : id_(flatbuffers::EndianScalar(_id)), - distance_(flatbuffers::EndianScalar(_distance)) { + : id_(::flatbuffers::EndianScalar(_id)), + distance_(::flatbuffers::EndianScalar(_distance)) { } uint32_t id() const { - return flatbuffers::EndianScalar(id_); + return ::flatbuffers::EndianScalar(id_); } void mutate_id(uint32_t _id) { - flatbuffers::WriteScalar(&id_, _id); + ::flatbuffers::WriteScalar(&id_, _id); } bool KeyCompareLessThan(const Ability * const o) const { return id() < o->id(); @@ -832,10 +832,10 @@ FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(4) Ability FLATBUFFERS_FINAL_CLASS { return static_cast(id() > _id) - static_cast(id() < _id); } uint32_t distance() const { - return flatbuffers::EndianScalar(distance_); + return ::flatbuffers::EndianScalar(distance_); } void mutate_distance(uint32_t _distance) { - flatbuffers::WriteScalar(&distance_, _distance); + ::flatbuffers::WriteScalar(&distance_, _distance); } }; FLATBUFFERS_STRUCT_END(Ability, 8); @@ -858,7 +858,7 @@ FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(4) StructOfStructs FLATBUFFERS_FINAL_CLASS { MyGame::Example::Ability c_; public: - static const flatbuffers::TypeTable *MiniReflectTypeTable() { + static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { return StructOfStructsTypeTable(); } StructOfStructs() @@ -909,7 +909,7 @@ FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(4) StructOfStructsOfStructs FLATBUFFERS_FINA MyGame::Example::StructOfStructs a_; public: - static const flatbuffers::TypeTable *MiniReflectTypeTable() { + static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { return StructOfStructsOfStructsTypeTable(); } StructOfStructsOfStructs() @@ -939,105 +939,105 @@ inline bool operator!=(const StructOfStructsOfStructs &lhs, const StructOfStruct } // namespace Example -struct InParentNamespaceT : public flatbuffers::NativeTable { +struct InParentNamespaceT : public ::flatbuffers::NativeTable { typedef InParentNamespace TableType; }; -struct InParentNamespace FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { +struct InParentNamespace FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { typedef InParentNamespaceT NativeTableType; typedef InParentNamespaceBuilder Builder; - static const flatbuffers::TypeTable *MiniReflectTypeTable() { + static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { return InParentNamespaceTypeTable(); } - bool Verify(flatbuffers::Verifier &verifier) const { + bool Verify(::flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && verifier.EndTable(); } - InParentNamespaceT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; - void UnPackTo(InParentNamespaceT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const; - static flatbuffers::Offset Pack(flatbuffers::FlatBufferBuilder &_fbb, const InParentNamespaceT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); + InParentNamespaceT *UnPack(const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; + void UnPackTo(InParentNamespaceT *_o, const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; + static ::flatbuffers::Offset Pack(::flatbuffers::FlatBufferBuilder &_fbb, const InParentNamespaceT* _o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); }; struct InParentNamespaceBuilder { typedef InParentNamespace Table; - flatbuffers::FlatBufferBuilder &fbb_; - flatbuffers::uoffset_t start_; - explicit InParentNamespaceBuilder(flatbuffers::FlatBufferBuilder &_fbb) + ::flatbuffers::FlatBufferBuilder &fbb_; + ::flatbuffers::uoffset_t start_; + explicit InParentNamespaceBuilder(::flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); } - flatbuffers::Offset Finish() { + ::flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); - auto o = flatbuffers::Offset(end); + auto o = ::flatbuffers::Offset(end); return o; } }; -inline flatbuffers::Offset CreateInParentNamespace( - flatbuffers::FlatBufferBuilder &_fbb) { +inline ::flatbuffers::Offset CreateInParentNamespace( + ::flatbuffers::FlatBufferBuilder &_fbb) { InParentNamespaceBuilder builder_(_fbb); return builder_.Finish(); } -flatbuffers::Offset CreateInParentNamespace(flatbuffers::FlatBufferBuilder &_fbb, const InParentNamespaceT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); +::flatbuffers::Offset CreateInParentNamespace(::flatbuffers::FlatBufferBuilder &_fbb, const InParentNamespaceT *_o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); namespace Example2 { -struct MonsterT : public flatbuffers::NativeTable { +struct MonsterT : public ::flatbuffers::NativeTable { typedef Monster TableType; }; -struct Monster FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { +struct Monster FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { typedef MonsterT NativeTableType; typedef MonsterBuilder Builder; - static const flatbuffers::TypeTable *MiniReflectTypeTable() { + static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { return MonsterTypeTable(); } - bool Verify(flatbuffers::Verifier &verifier) const { + bool Verify(::flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && verifier.EndTable(); } - MonsterT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; - void UnPackTo(MonsterT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const; - static flatbuffers::Offset Pack(flatbuffers::FlatBufferBuilder &_fbb, const MonsterT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); + MonsterT *UnPack(const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; + void UnPackTo(MonsterT *_o, const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; + static ::flatbuffers::Offset Pack(::flatbuffers::FlatBufferBuilder &_fbb, const MonsterT* _o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); }; struct MonsterBuilder { typedef Monster Table; - flatbuffers::FlatBufferBuilder &fbb_; - flatbuffers::uoffset_t start_; - explicit MonsterBuilder(flatbuffers::FlatBufferBuilder &_fbb) + ::flatbuffers::FlatBufferBuilder &fbb_; + ::flatbuffers::uoffset_t start_; + explicit MonsterBuilder(::flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); } - flatbuffers::Offset Finish() { + ::flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); - auto o = flatbuffers::Offset(end); + auto o = ::flatbuffers::Offset(end); return o; } }; -inline flatbuffers::Offset CreateMonster( - flatbuffers::FlatBufferBuilder &_fbb) { +inline ::flatbuffers::Offset CreateMonster( + ::flatbuffers::FlatBufferBuilder &_fbb) { MonsterBuilder builder_(_fbb); return builder_.Finish(); } -flatbuffers::Offset CreateMonster(flatbuffers::FlatBufferBuilder &_fbb, const MonsterT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); +::flatbuffers::Offset CreateMonster(::flatbuffers::FlatBufferBuilder &_fbb, const MonsterT *_o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); } // namespace Example2 namespace Example { -struct TestSimpleTableWithEnumT : public flatbuffers::NativeTable { +struct TestSimpleTableWithEnumT : public ::flatbuffers::NativeTable { typedef TestSimpleTableWithEnum TableType; MyGame::Example::Color color = MyGame::Example::Color_Green; }; -struct TestSimpleTableWithEnum FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { +struct TestSimpleTableWithEnum FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { typedef TestSimpleTableWithEnumT NativeTableType; typedef TestSimpleTableWithEnumBuilder Builder; - static const flatbuffers::TypeTable *MiniReflectTypeTable() { + static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { return TestSimpleTableWithEnumTypeTable(); } enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { @@ -1049,55 +1049,55 @@ struct TestSimpleTableWithEnum FLATBUFFERS_FINAL_CLASS : private flatbuffers::Ta bool mutate_color(MyGame::Example::Color _color = static_cast(2)) { return SetField(VT_COLOR, static_cast(_color), 2); } - bool Verify(flatbuffers::Verifier &verifier) const { + bool Verify(::flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_COLOR, 1) && verifier.EndTable(); } - TestSimpleTableWithEnumT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; - void UnPackTo(TestSimpleTableWithEnumT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const; - static flatbuffers::Offset Pack(flatbuffers::FlatBufferBuilder &_fbb, const TestSimpleTableWithEnumT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); + TestSimpleTableWithEnumT *UnPack(const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; + void UnPackTo(TestSimpleTableWithEnumT *_o, const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; + static ::flatbuffers::Offset Pack(::flatbuffers::FlatBufferBuilder &_fbb, const TestSimpleTableWithEnumT* _o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); }; struct TestSimpleTableWithEnumBuilder { typedef TestSimpleTableWithEnum Table; - flatbuffers::FlatBufferBuilder &fbb_; - flatbuffers::uoffset_t start_; + ::flatbuffers::FlatBufferBuilder &fbb_; + ::flatbuffers::uoffset_t start_; void add_color(MyGame::Example::Color color) { fbb_.AddElement(TestSimpleTableWithEnum::VT_COLOR, static_cast(color), 2); } - explicit TestSimpleTableWithEnumBuilder(flatbuffers::FlatBufferBuilder &_fbb) + explicit TestSimpleTableWithEnumBuilder(::flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); } - flatbuffers::Offset Finish() { + ::flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); - auto o = flatbuffers::Offset(end); + auto o = ::flatbuffers::Offset(end); return o; } }; -inline flatbuffers::Offset CreateTestSimpleTableWithEnum( - flatbuffers::FlatBufferBuilder &_fbb, +inline ::flatbuffers::Offset CreateTestSimpleTableWithEnum( + ::flatbuffers::FlatBufferBuilder &_fbb, MyGame::Example::Color color = MyGame::Example::Color_Green) { TestSimpleTableWithEnumBuilder builder_(_fbb); builder_.add_color(color); return builder_.Finish(); } -flatbuffers::Offset CreateTestSimpleTableWithEnum(flatbuffers::FlatBufferBuilder &_fbb, const TestSimpleTableWithEnumT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); +::flatbuffers::Offset CreateTestSimpleTableWithEnum(::flatbuffers::FlatBufferBuilder &_fbb, const TestSimpleTableWithEnumT *_o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); -struct StatT : public flatbuffers::NativeTable { +struct StatT : public ::flatbuffers::NativeTable { typedef Stat TableType; std::string id{}; int64_t val = 0; uint16_t count = 0; }; -struct Stat FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { +struct Stat FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { typedef StatT NativeTableType; typedef StatBuilder Builder; - static const flatbuffers::TypeTable *MiniReflectTypeTable() { + static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { return StatTypeTable(); } enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { @@ -1105,11 +1105,11 @@ struct Stat FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { VT_VAL = 6, VT_COUNT = 8 }; - const flatbuffers::String *id() const { - return GetPointer(VT_ID); + const ::flatbuffers::String *id() const { + return GetPointer(VT_ID); } - flatbuffers::String *mutable_id() { - return GetPointer(VT_ID); + ::flatbuffers::String *mutable_id() { + return GetPointer<::flatbuffers::String *>(VT_ID); } int64_t val() const { return GetField(VT_VAL, 0); @@ -1129,7 +1129,7 @@ struct Stat FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { int KeyCompareWithValue(uint16_t _count) const { return static_cast(count() > _count) - static_cast(count() < _count); } - bool Verify(flatbuffers::Verifier &verifier) const { + bool Verify(::flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && VerifyOffset(verifier, VT_ID) && verifier.VerifyString(id()) && @@ -1137,16 +1137,16 @@ struct Stat FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { VerifyField(verifier, VT_COUNT, 2) && verifier.EndTable(); } - StatT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; - void UnPackTo(StatT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const; - static flatbuffers::Offset Pack(flatbuffers::FlatBufferBuilder &_fbb, const StatT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); + StatT *UnPack(const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; + void UnPackTo(StatT *_o, const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; + static ::flatbuffers::Offset Pack(::flatbuffers::FlatBufferBuilder &_fbb, const StatT* _o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); }; struct StatBuilder { typedef Stat Table; - flatbuffers::FlatBufferBuilder &fbb_; - flatbuffers::uoffset_t start_; - void add_id(flatbuffers::Offset id) { + ::flatbuffers::FlatBufferBuilder &fbb_; + ::flatbuffers::uoffset_t start_; + void add_id(::flatbuffers::Offset<::flatbuffers::String> id) { fbb_.AddOffset(Stat::VT_ID, id); } void add_val(int64_t val) { @@ -1155,20 +1155,20 @@ struct StatBuilder { void add_count(uint16_t count) { fbb_.AddElement(Stat::VT_COUNT, count, 0); } - explicit StatBuilder(flatbuffers::FlatBufferBuilder &_fbb) + explicit StatBuilder(::flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); } - flatbuffers::Offset Finish() { + ::flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); - auto o = flatbuffers::Offset(end); + auto o = ::flatbuffers::Offset(end); return o; } }; -inline flatbuffers::Offset CreateStat( - flatbuffers::FlatBufferBuilder &_fbb, - flatbuffers::Offset id = 0, +inline ::flatbuffers::Offset CreateStat( + ::flatbuffers::FlatBufferBuilder &_fbb, + ::flatbuffers::Offset<::flatbuffers::String> id = 0, int64_t val = 0, uint16_t count = 0) { StatBuilder builder_(_fbb); @@ -1178,8 +1178,8 @@ inline flatbuffers::Offset CreateStat( return builder_.Finish(); } -inline flatbuffers::Offset CreateStatDirect( - flatbuffers::FlatBufferBuilder &_fbb, +inline ::flatbuffers::Offset CreateStatDirect( + ::flatbuffers::FlatBufferBuilder &_fbb, const char *id = nullptr, int64_t val = 0, uint16_t count = 0) { @@ -1191,17 +1191,17 @@ inline flatbuffers::Offset CreateStatDirect( count); } -flatbuffers::Offset CreateStat(flatbuffers::FlatBufferBuilder &_fbb, const StatT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); +::flatbuffers::Offset CreateStat(::flatbuffers::FlatBufferBuilder &_fbb, const StatT *_o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); -struct ReferrableT : public flatbuffers::NativeTable { +struct ReferrableT : public ::flatbuffers::NativeTable { typedef Referrable TableType; uint64_t id = 0; }; -struct Referrable FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { +struct Referrable FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { typedef ReferrableT NativeTableType; typedef ReferrableBuilder Builder; - static const flatbuffers::TypeTable *MiniReflectTypeTable() { + static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { return ReferrableTypeTable(); } enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { @@ -1219,45 +1219,45 @@ struct Referrable FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { int KeyCompareWithValue(uint64_t _id) const { return static_cast(id() > _id) - static_cast(id() < _id); } - bool Verify(flatbuffers::Verifier &verifier) const { + bool Verify(::flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_ID, 8) && verifier.EndTable(); } - ReferrableT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; - void UnPackTo(ReferrableT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const; - static flatbuffers::Offset Pack(flatbuffers::FlatBufferBuilder &_fbb, const ReferrableT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); + ReferrableT *UnPack(const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; + void UnPackTo(ReferrableT *_o, const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; + static ::flatbuffers::Offset Pack(::flatbuffers::FlatBufferBuilder &_fbb, const ReferrableT* _o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); }; struct ReferrableBuilder { typedef Referrable Table; - flatbuffers::FlatBufferBuilder &fbb_; - flatbuffers::uoffset_t start_; + ::flatbuffers::FlatBufferBuilder &fbb_; + ::flatbuffers::uoffset_t start_; void add_id(uint64_t id) { fbb_.AddElement(Referrable::VT_ID, id, 0); } - explicit ReferrableBuilder(flatbuffers::FlatBufferBuilder &_fbb) + explicit ReferrableBuilder(::flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); } - flatbuffers::Offset Finish() { + ::flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); - auto o = flatbuffers::Offset(end); + auto o = ::flatbuffers::Offset(end); return o; } }; -inline flatbuffers::Offset CreateReferrable( - flatbuffers::FlatBufferBuilder &_fbb, +inline ::flatbuffers::Offset CreateReferrable( + ::flatbuffers::FlatBufferBuilder &_fbb, uint64_t id = 0) { ReferrableBuilder builder_(_fbb); builder_.add_id(id); return builder_.Finish(); } -flatbuffers::Offset CreateReferrable(flatbuffers::FlatBufferBuilder &_fbb, const ReferrableT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); +::flatbuffers::Offset CreateReferrable(::flatbuffers::FlatBufferBuilder &_fbb, const ReferrableT *_o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); -struct MonsterT : public flatbuffers::NativeTable { +struct MonsterT : public ::flatbuffers::NativeTable { typedef Monster TableType; flatbuffers::unique_ptr pos{}; int16_t mana = 150; @@ -1324,10 +1324,10 @@ struct MonsterT : public flatbuffers::NativeTable { }; /// an example documentation comment: "monster object" -struct Monster FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { +struct Monster FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { typedef MonsterT NativeTableType; typedef MonsterBuilder Builder; - static const flatbuffers::TypeTable *MiniReflectTypeTable() { + static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { return MonsterTypeTable(); } enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { @@ -1411,11 +1411,11 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { bool mutate_hp(int16_t _hp = 100) { return SetField(VT_HP, _hp, 100); } - const flatbuffers::String *name() const { - return GetPointer(VT_NAME); + const ::flatbuffers::String *name() const { + return GetPointer(VT_NAME); } - flatbuffers::String *mutable_name() { - return GetPointer(VT_NAME); + ::flatbuffers::String *mutable_name() { + return GetPointer<::flatbuffers::String *>(VT_NAME); } bool KeyCompareLessThan(const Monster * const o) const { return *name() < *o->name(); @@ -1423,11 +1423,11 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { int KeyCompareWithValue(const char *_name) const { return strcmp(name()->c_str(), _name); } - const flatbuffers::Vector *inventory() const { - return GetPointer *>(VT_INVENTORY); + const ::flatbuffers::Vector *inventory() const { + return GetPointer *>(VT_INVENTORY); } - flatbuffers::Vector *mutable_inventory() { - return GetPointer *>(VT_INVENTORY); + ::flatbuffers::Vector *mutable_inventory() { + return GetPointer<::flatbuffers::Vector *>(VT_INVENTORY); } MyGame::Example::Color color() const { return static_cast(GetField(VT_COLOR, 8)); @@ -1454,25 +1454,25 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { void *mutable_test() { return GetPointer(VT_TEST); } - const flatbuffers::Vector *test4() const { - return GetPointer *>(VT_TEST4); + const ::flatbuffers::Vector *test4() const { + return GetPointer *>(VT_TEST4); } - flatbuffers::Vector *mutable_test4() { - return GetPointer *>(VT_TEST4); + ::flatbuffers::Vector *mutable_test4() { + return GetPointer<::flatbuffers::Vector *>(VT_TEST4); } - const flatbuffers::Vector> *testarrayofstring() const { - return GetPointer> *>(VT_TESTARRAYOFSTRING); + const ::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>> *testarrayofstring() const { + return GetPointer> *>(VT_TESTARRAYOFSTRING); } - flatbuffers::Vector> *mutable_testarrayofstring() { - return GetPointer> *>(VT_TESTARRAYOFSTRING); + ::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>> *mutable_testarrayofstring() { + return GetPointer<::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>> *>(VT_TESTARRAYOFSTRING); } /// an example documentation comment: this will end up in the generated code /// multiline too - const flatbuffers::Vector> *testarrayoftables() const { - return GetPointer> *>(VT_TESTARRAYOFTABLES); + const ::flatbuffers::Vector<::flatbuffers::Offset> *testarrayoftables() const { + return GetPointer> *>(VT_TESTARRAYOFTABLES); } - flatbuffers::Vector> *mutable_testarrayoftables() { - return GetPointer> *>(VT_TESTARRAYOFTABLES); + ::flatbuffers::Vector<::flatbuffers::Offset> *mutable_testarrayoftables() { + return GetPointer<::flatbuffers::Vector<::flatbuffers::Offset> *>(VT_TESTARRAYOFTABLES); } const MyGame::Example::Monster *enemy() const { return GetPointer(VT_ENEMY); @@ -1480,14 +1480,14 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { MyGame::Example::Monster *mutable_enemy() { return GetPointer(VT_ENEMY); } - const flatbuffers::Vector *testnestedflatbuffer() const { - return GetPointer *>(VT_TESTNESTEDFLATBUFFER); + const ::flatbuffers::Vector *testnestedflatbuffer() const { + return GetPointer *>(VT_TESTNESTEDFLATBUFFER); } - flatbuffers::Vector *mutable_testnestedflatbuffer() { - return GetPointer *>(VT_TESTNESTEDFLATBUFFER); + ::flatbuffers::Vector *mutable_testnestedflatbuffer() { + return GetPointer<::flatbuffers::Vector *>(VT_TESTNESTEDFLATBUFFER); } const MyGame::Example::Monster *testnestedflatbuffer_nested_root() const { - return flatbuffers::GetRoot(testnestedflatbuffer()->Data()); + return ::flatbuffers::GetRoot(testnestedflatbuffer()->Data()); } const MyGame::Example::Stat *testempty() const { return GetPointer(VT_TESTEMPTY); @@ -1549,11 +1549,11 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { bool mutate_testhashu64_fnv1a(uint64_t _testhashu64_fnv1a = 0) { return SetField(VT_TESTHASHU64_FNV1A, _testhashu64_fnv1a, 0); } - const flatbuffers::Vector *testarrayofbools() const { - return GetPointer *>(VT_TESTARRAYOFBOOLS); + const ::flatbuffers::Vector *testarrayofbools() const { + return GetPointer *>(VT_TESTARRAYOFBOOLS); } - flatbuffers::Vector *mutable_testarrayofbools() { - return GetPointer *>(VT_TESTARRAYOFBOOLS); + ::flatbuffers::Vector *mutable_testarrayofbools() { + return GetPointer<::flatbuffers::Vector *>(VT_TESTARRAYOFBOOLS); } float testf() const { return GetField(VT_TESTF, 3.14159f); @@ -1573,44 +1573,44 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { bool mutate_testf3(float _testf3 = 0.0f) { return SetField(VT_TESTF3, _testf3, 0.0f); } - const flatbuffers::Vector> *testarrayofstring2() const { - return GetPointer> *>(VT_TESTARRAYOFSTRING2); + const ::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>> *testarrayofstring2() const { + return GetPointer> *>(VT_TESTARRAYOFSTRING2); } - flatbuffers::Vector> *mutable_testarrayofstring2() { - return GetPointer> *>(VT_TESTARRAYOFSTRING2); + ::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>> *mutable_testarrayofstring2() { + return GetPointer<::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>> *>(VT_TESTARRAYOFSTRING2); } - const flatbuffers::Vector *testarrayofsortedstruct() const { - return GetPointer *>(VT_TESTARRAYOFSORTEDSTRUCT); + const ::flatbuffers::Vector *testarrayofsortedstruct() const { + return GetPointer *>(VT_TESTARRAYOFSORTEDSTRUCT); } - flatbuffers::Vector *mutable_testarrayofsortedstruct() { - return GetPointer *>(VT_TESTARRAYOFSORTEDSTRUCT); + ::flatbuffers::Vector *mutable_testarrayofsortedstruct() { + return GetPointer<::flatbuffers::Vector *>(VT_TESTARRAYOFSORTEDSTRUCT); } - const flatbuffers::Vector *flex() const { - return GetPointer *>(VT_FLEX); + const ::flatbuffers::Vector *flex() const { + return GetPointer *>(VT_FLEX); } - flatbuffers::Vector *mutable_flex() { - return GetPointer *>(VT_FLEX); + ::flatbuffers::Vector *mutable_flex() { + return GetPointer<::flatbuffers::Vector *>(VT_FLEX); } flexbuffers::Reference flex_flexbuffer_root() const { return flexbuffers::GetRoot(flex()->Data(), flex()->size()); } - const flatbuffers::Vector *test5() const { - return GetPointer *>(VT_TEST5); + const ::flatbuffers::Vector *test5() const { + return GetPointer *>(VT_TEST5); } - flatbuffers::Vector *mutable_test5() { - return GetPointer *>(VT_TEST5); + ::flatbuffers::Vector *mutable_test5() { + return GetPointer<::flatbuffers::Vector *>(VT_TEST5); } - const flatbuffers::Vector *vector_of_longs() const { - return GetPointer *>(VT_VECTOR_OF_LONGS); + const ::flatbuffers::Vector *vector_of_longs() const { + return GetPointer *>(VT_VECTOR_OF_LONGS); } - flatbuffers::Vector *mutable_vector_of_longs() { - return GetPointer *>(VT_VECTOR_OF_LONGS); + ::flatbuffers::Vector *mutable_vector_of_longs() { + return GetPointer<::flatbuffers::Vector *>(VT_VECTOR_OF_LONGS); } - const flatbuffers::Vector *vector_of_doubles() const { - return GetPointer *>(VT_VECTOR_OF_DOUBLES); + const ::flatbuffers::Vector *vector_of_doubles() const { + return GetPointer *>(VT_VECTOR_OF_DOUBLES); } - flatbuffers::Vector *mutable_vector_of_doubles() { - return GetPointer *>(VT_VECTOR_OF_DOUBLES); + ::flatbuffers::Vector *mutable_vector_of_doubles() { + return GetPointer<::flatbuffers::Vector *>(VT_VECTOR_OF_DOUBLES); } const MyGame::InParentNamespace *parent_namespace_test() const { return GetPointer(VT_PARENT_NAMESPACE_TEST); @@ -1618,11 +1618,11 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { MyGame::InParentNamespace *mutable_parent_namespace_test() { return GetPointer(VT_PARENT_NAMESPACE_TEST); } - const flatbuffers::Vector> *vector_of_referrables() const { - return GetPointer> *>(VT_VECTOR_OF_REFERRABLES); + const ::flatbuffers::Vector<::flatbuffers::Offset> *vector_of_referrables() const { + return GetPointer> *>(VT_VECTOR_OF_REFERRABLES); } - flatbuffers::Vector> *mutable_vector_of_referrables() { - return GetPointer> *>(VT_VECTOR_OF_REFERRABLES); + ::flatbuffers::Vector<::flatbuffers::Offset> *mutable_vector_of_referrables() { + return GetPointer<::flatbuffers::Vector<::flatbuffers::Offset> *>(VT_VECTOR_OF_REFERRABLES); } uint64_t single_weak_reference() const { return GetField(VT_SINGLE_WEAK_REFERENCE, 0); @@ -1630,17 +1630,17 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { bool mutate_single_weak_reference(uint64_t _single_weak_reference = 0) { return SetField(VT_SINGLE_WEAK_REFERENCE, _single_weak_reference, 0); } - const flatbuffers::Vector *vector_of_weak_references() const { - return GetPointer *>(VT_VECTOR_OF_WEAK_REFERENCES); + const ::flatbuffers::Vector *vector_of_weak_references() const { + return GetPointer *>(VT_VECTOR_OF_WEAK_REFERENCES); } - flatbuffers::Vector *mutable_vector_of_weak_references() { - return GetPointer *>(VT_VECTOR_OF_WEAK_REFERENCES); + ::flatbuffers::Vector *mutable_vector_of_weak_references() { + return GetPointer<::flatbuffers::Vector *>(VT_VECTOR_OF_WEAK_REFERENCES); } - const flatbuffers::Vector> *vector_of_strong_referrables() const { - return GetPointer> *>(VT_VECTOR_OF_STRONG_REFERRABLES); + const ::flatbuffers::Vector<::flatbuffers::Offset> *vector_of_strong_referrables() const { + return GetPointer> *>(VT_VECTOR_OF_STRONG_REFERRABLES); } - flatbuffers::Vector> *mutable_vector_of_strong_referrables() { - return GetPointer> *>(VT_VECTOR_OF_STRONG_REFERRABLES); + ::flatbuffers::Vector<::flatbuffers::Offset> *mutable_vector_of_strong_referrables() { + return GetPointer<::flatbuffers::Vector<::flatbuffers::Offset> *>(VT_VECTOR_OF_STRONG_REFERRABLES); } uint64_t co_owning_reference() const { return GetField(VT_CO_OWNING_REFERENCE, 0); @@ -1648,11 +1648,11 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { bool mutate_co_owning_reference(uint64_t _co_owning_reference = 0) { return SetField(VT_CO_OWNING_REFERENCE, _co_owning_reference, 0); } - const flatbuffers::Vector *vector_of_co_owning_references() const { - return GetPointer *>(VT_VECTOR_OF_CO_OWNING_REFERENCES); + const ::flatbuffers::Vector *vector_of_co_owning_references() const { + return GetPointer *>(VT_VECTOR_OF_CO_OWNING_REFERENCES); } - flatbuffers::Vector *mutable_vector_of_co_owning_references() { - return GetPointer *>(VT_VECTOR_OF_CO_OWNING_REFERENCES); + ::flatbuffers::Vector *mutable_vector_of_co_owning_references() { + return GetPointer<::flatbuffers::Vector *>(VT_VECTOR_OF_CO_OWNING_REFERENCES); } uint64_t non_owning_reference() const { return GetField(VT_NON_OWNING_REFERENCE, 0); @@ -1660,11 +1660,11 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { bool mutate_non_owning_reference(uint64_t _non_owning_reference = 0) { return SetField(VT_NON_OWNING_REFERENCE, _non_owning_reference, 0); } - const flatbuffers::Vector *vector_of_non_owning_references() const { - return GetPointer *>(VT_VECTOR_OF_NON_OWNING_REFERENCES); + const ::flatbuffers::Vector *vector_of_non_owning_references() const { + return GetPointer *>(VT_VECTOR_OF_NON_OWNING_REFERENCES); } - flatbuffers::Vector *mutable_vector_of_non_owning_references() { - return GetPointer *>(VT_VECTOR_OF_NON_OWNING_REFERENCES); + ::flatbuffers::Vector *mutable_vector_of_non_owning_references() { + return GetPointer<::flatbuffers::Vector *>(VT_VECTOR_OF_NON_OWNING_REFERENCES); } MyGame::Example::AnyUniqueAliases any_unique_type() const { return static_cast(GetField(VT_ANY_UNIQUE_TYPE, 0)); @@ -1703,11 +1703,11 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { void *mutable_any_ambiguous() { return GetPointer(VT_ANY_AMBIGUOUS); } - const flatbuffers::Vector *vector_of_enums() const { - return GetPointer *>(VT_VECTOR_OF_ENUMS); + const ::flatbuffers::Vector *vector_of_enums() const { + return GetPointer *>(VT_VECTOR_OF_ENUMS); } - flatbuffers::Vector *mutable_vector_of_enums() { - return GetPointer *>(VT_VECTOR_OF_ENUMS); + ::flatbuffers::Vector *mutable_vector_of_enums() { + return GetPointer<::flatbuffers::Vector *>(VT_VECTOR_OF_ENUMS); } MyGame::Example::Race signed_enum() const { return static_cast(GetField(VT_SIGNED_ENUM, -1)); @@ -1715,20 +1715,20 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { bool mutate_signed_enum(MyGame::Example::Race _signed_enum = static_cast(-1)) { return SetField(VT_SIGNED_ENUM, static_cast(_signed_enum), -1); } - const flatbuffers::Vector *testrequirednestedflatbuffer() const { - return GetPointer *>(VT_TESTREQUIREDNESTEDFLATBUFFER); + const ::flatbuffers::Vector *testrequirednestedflatbuffer() const { + return GetPointer *>(VT_TESTREQUIREDNESTEDFLATBUFFER); } - flatbuffers::Vector *mutable_testrequirednestedflatbuffer() { - return GetPointer *>(VT_TESTREQUIREDNESTEDFLATBUFFER); + ::flatbuffers::Vector *mutable_testrequirednestedflatbuffer() { + return GetPointer<::flatbuffers::Vector *>(VT_TESTREQUIREDNESTEDFLATBUFFER); } const MyGame::Example::Monster *testrequirednestedflatbuffer_nested_root() const { - return flatbuffers::GetRoot(testrequirednestedflatbuffer()->Data()); + return ::flatbuffers::GetRoot(testrequirednestedflatbuffer()->Data()); } - const flatbuffers::Vector> *scalar_key_sorted_tables() const { - return GetPointer> *>(VT_SCALAR_KEY_SORTED_TABLES); + const ::flatbuffers::Vector<::flatbuffers::Offset> *scalar_key_sorted_tables() const { + return GetPointer> *>(VT_SCALAR_KEY_SORTED_TABLES); } - flatbuffers::Vector> *mutable_scalar_key_sorted_tables() { - return GetPointer> *>(VT_SCALAR_KEY_SORTED_TABLES); + ::flatbuffers::Vector<::flatbuffers::Offset> *mutable_scalar_key_sorted_tables() { + return GetPointer<::flatbuffers::Vector<::flatbuffers::Offset> *>(VT_SCALAR_KEY_SORTED_TABLES); } const MyGame::Example::Test *native_inline() const { return GetStruct(VT_NATIVE_INLINE); @@ -1796,7 +1796,7 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { bool mutate_double_inf_default(double _double_inf_default = std::numeric_limits::infinity()) { return SetField(VT_DOUBLE_INF_DEFAULT, _double_inf_default, std::numeric_limits::infinity()); } - bool Verify(flatbuffers::Verifier &verifier) const { + bool Verify(::flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_POS, 8) && VerifyField(verifier, VT_MANA, 2) && @@ -1897,9 +1897,9 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { VerifyField(verifier, VT_DOUBLE_INF_DEFAULT, 8) && verifier.EndTable(); } - MonsterT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; - void UnPackTo(MonsterT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const; - static flatbuffers::Offset Pack(flatbuffers::FlatBufferBuilder &_fbb, const MonsterT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); + MonsterT *UnPack(const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; + void UnPackTo(MonsterT *_o, const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; + static ::flatbuffers::Offset Pack(::flatbuffers::FlatBufferBuilder &_fbb, const MonsterT* _o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); }; template<> inline const MyGame::Example::Monster *Monster::test_as() const { @@ -1928,8 +1928,8 @@ template<> inline const MyGame::Example2::Monster *Monster::any_unique_as(Monster::VT_HP, hp, 100); } - void add_name(flatbuffers::Offset name) { + void add_name(::flatbuffers::Offset<::flatbuffers::String> name) { fbb_.AddOffset(Monster::VT_NAME, name); } - void add_inventory(flatbuffers::Offset> inventory) { + void add_inventory(::flatbuffers::Offset<::flatbuffers::Vector> inventory) { fbb_.AddOffset(Monster::VT_INVENTORY, inventory); } void add_color(MyGame::Example::Color color) { @@ -1951,25 +1951,25 @@ struct MonsterBuilder { void add_test_type(MyGame::Example::Any test_type) { fbb_.AddElement(Monster::VT_TEST_TYPE, static_cast(test_type), 0); } - void add_test(flatbuffers::Offset test) { + void add_test(::flatbuffers::Offset test) { fbb_.AddOffset(Monster::VT_TEST, test); } - void add_test4(flatbuffers::Offset> test4) { + void add_test4(::flatbuffers::Offset<::flatbuffers::Vector> test4) { fbb_.AddOffset(Monster::VT_TEST4, test4); } - void add_testarrayofstring(flatbuffers::Offset>> testarrayofstring) { + void add_testarrayofstring(::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>>> testarrayofstring) { fbb_.AddOffset(Monster::VT_TESTARRAYOFSTRING, testarrayofstring); } - void add_testarrayoftables(flatbuffers::Offset>> testarrayoftables) { + void add_testarrayoftables(::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset>> testarrayoftables) { fbb_.AddOffset(Monster::VT_TESTARRAYOFTABLES, testarrayoftables); } - void add_enemy(flatbuffers::Offset enemy) { + void add_enemy(::flatbuffers::Offset enemy) { fbb_.AddOffset(Monster::VT_ENEMY, enemy); } - void add_testnestedflatbuffer(flatbuffers::Offset> testnestedflatbuffer) { + void add_testnestedflatbuffer(::flatbuffers::Offset<::flatbuffers::Vector> testnestedflatbuffer) { fbb_.AddOffset(Monster::VT_TESTNESTEDFLATBUFFER, testnestedflatbuffer); } - void add_testempty(flatbuffers::Offset testempty) { + void add_testempty(::flatbuffers::Offset testempty) { fbb_.AddOffset(Monster::VT_TESTEMPTY, testempty); } void add_testbool(bool testbool) { @@ -1999,7 +1999,7 @@ struct MonsterBuilder { void add_testhashu64_fnv1a(uint64_t testhashu64_fnv1a) { fbb_.AddElement(Monster::VT_TESTHASHU64_FNV1A, testhashu64_fnv1a, 0); } - void add_testarrayofbools(flatbuffers::Offset> testarrayofbools) { + void add_testarrayofbools(::flatbuffers::Offset<::flatbuffers::Vector> testarrayofbools) { fbb_.AddOffset(Monster::VT_TESTARRAYOFBOOLS, testarrayofbools); } void add_testf(float testf) { @@ -2011,73 +2011,73 @@ struct MonsterBuilder { void add_testf3(float testf3) { fbb_.AddElement(Monster::VT_TESTF3, testf3, 0.0f); } - void add_testarrayofstring2(flatbuffers::Offset>> testarrayofstring2) { + void add_testarrayofstring2(::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>>> testarrayofstring2) { fbb_.AddOffset(Monster::VT_TESTARRAYOFSTRING2, testarrayofstring2); } - void add_testarrayofsortedstruct(flatbuffers::Offset> testarrayofsortedstruct) { + void add_testarrayofsortedstruct(::flatbuffers::Offset<::flatbuffers::Vector> testarrayofsortedstruct) { fbb_.AddOffset(Monster::VT_TESTARRAYOFSORTEDSTRUCT, testarrayofsortedstruct); } - void add_flex(flatbuffers::Offset> flex) { + void add_flex(::flatbuffers::Offset<::flatbuffers::Vector> flex) { fbb_.AddOffset(Monster::VT_FLEX, flex); } - void add_test5(flatbuffers::Offset> test5) { + void add_test5(::flatbuffers::Offset<::flatbuffers::Vector> test5) { fbb_.AddOffset(Monster::VT_TEST5, test5); } - void add_vector_of_longs(flatbuffers::Offset> vector_of_longs) { + void add_vector_of_longs(::flatbuffers::Offset<::flatbuffers::Vector> vector_of_longs) { fbb_.AddOffset(Monster::VT_VECTOR_OF_LONGS, vector_of_longs); } - void add_vector_of_doubles(flatbuffers::Offset> vector_of_doubles) { + void add_vector_of_doubles(::flatbuffers::Offset<::flatbuffers::Vector> vector_of_doubles) { fbb_.AddOffset(Monster::VT_VECTOR_OF_DOUBLES, vector_of_doubles); } - void add_parent_namespace_test(flatbuffers::Offset parent_namespace_test) { + void add_parent_namespace_test(::flatbuffers::Offset parent_namespace_test) { fbb_.AddOffset(Monster::VT_PARENT_NAMESPACE_TEST, parent_namespace_test); } - void add_vector_of_referrables(flatbuffers::Offset>> vector_of_referrables) { + void add_vector_of_referrables(::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset>> vector_of_referrables) { fbb_.AddOffset(Monster::VT_VECTOR_OF_REFERRABLES, vector_of_referrables); } void add_single_weak_reference(uint64_t single_weak_reference) { fbb_.AddElement(Monster::VT_SINGLE_WEAK_REFERENCE, single_weak_reference, 0); } - void add_vector_of_weak_references(flatbuffers::Offset> vector_of_weak_references) { + void add_vector_of_weak_references(::flatbuffers::Offset<::flatbuffers::Vector> vector_of_weak_references) { fbb_.AddOffset(Monster::VT_VECTOR_OF_WEAK_REFERENCES, vector_of_weak_references); } - void add_vector_of_strong_referrables(flatbuffers::Offset>> vector_of_strong_referrables) { + void add_vector_of_strong_referrables(::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset>> vector_of_strong_referrables) { fbb_.AddOffset(Monster::VT_VECTOR_OF_STRONG_REFERRABLES, vector_of_strong_referrables); } void add_co_owning_reference(uint64_t co_owning_reference) { fbb_.AddElement(Monster::VT_CO_OWNING_REFERENCE, co_owning_reference, 0); } - void add_vector_of_co_owning_references(flatbuffers::Offset> vector_of_co_owning_references) { + void add_vector_of_co_owning_references(::flatbuffers::Offset<::flatbuffers::Vector> vector_of_co_owning_references) { fbb_.AddOffset(Monster::VT_VECTOR_OF_CO_OWNING_REFERENCES, vector_of_co_owning_references); } void add_non_owning_reference(uint64_t non_owning_reference) { fbb_.AddElement(Monster::VT_NON_OWNING_REFERENCE, non_owning_reference, 0); } - void add_vector_of_non_owning_references(flatbuffers::Offset> vector_of_non_owning_references) { + void add_vector_of_non_owning_references(::flatbuffers::Offset<::flatbuffers::Vector> vector_of_non_owning_references) { fbb_.AddOffset(Monster::VT_VECTOR_OF_NON_OWNING_REFERENCES, vector_of_non_owning_references); } void add_any_unique_type(MyGame::Example::AnyUniqueAliases any_unique_type) { fbb_.AddElement(Monster::VT_ANY_UNIQUE_TYPE, static_cast(any_unique_type), 0); } - void add_any_unique(flatbuffers::Offset any_unique) { + void add_any_unique(::flatbuffers::Offset any_unique) { fbb_.AddOffset(Monster::VT_ANY_UNIQUE, any_unique); } void add_any_ambiguous_type(MyGame::Example::AnyAmbiguousAliases any_ambiguous_type) { fbb_.AddElement(Monster::VT_ANY_AMBIGUOUS_TYPE, static_cast(any_ambiguous_type), 0); } - void add_any_ambiguous(flatbuffers::Offset any_ambiguous) { + void add_any_ambiguous(::flatbuffers::Offset any_ambiguous) { fbb_.AddOffset(Monster::VT_ANY_AMBIGUOUS, any_ambiguous); } - void add_vector_of_enums(flatbuffers::Offset> vector_of_enums) { + void add_vector_of_enums(::flatbuffers::Offset<::flatbuffers::Vector> vector_of_enums) { fbb_.AddOffset(Monster::VT_VECTOR_OF_ENUMS, vector_of_enums); } void add_signed_enum(MyGame::Example::Race signed_enum) { fbb_.AddElement(Monster::VT_SIGNED_ENUM, static_cast(signed_enum), -1); } - void add_testrequirednestedflatbuffer(flatbuffers::Offset> testrequirednestedflatbuffer) { + void add_testrequirednestedflatbuffer(::flatbuffers::Offset<::flatbuffers::Vector> testrequirednestedflatbuffer) { fbb_.AddOffset(Monster::VT_TESTREQUIREDNESTEDFLATBUFFER, testrequirednestedflatbuffer); } - void add_scalar_key_sorted_tables(flatbuffers::Offset>> scalar_key_sorted_tables) { + void add_scalar_key_sorted_tables(::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset>> scalar_key_sorted_tables) { fbb_.AddOffset(Monster::VT_SCALAR_KEY_SORTED_TABLES, scalar_key_sorted_tables); } void add_native_inline(const MyGame::Example::Test *native_inline) { @@ -2113,34 +2113,34 @@ struct MonsterBuilder { void add_double_inf_default(double double_inf_default) { fbb_.AddElement(Monster::VT_DOUBLE_INF_DEFAULT, double_inf_default, std::numeric_limits::infinity()); } - explicit MonsterBuilder(flatbuffers::FlatBufferBuilder &_fbb) + explicit MonsterBuilder(::flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); } - flatbuffers::Offset Finish() { + ::flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); - auto o = flatbuffers::Offset(end); + auto o = ::flatbuffers::Offset(end); fbb_.Required(o, Monster::VT_NAME); return o; } }; -inline flatbuffers::Offset CreateMonster( - flatbuffers::FlatBufferBuilder &_fbb, +inline ::flatbuffers::Offset CreateMonster( + ::flatbuffers::FlatBufferBuilder &_fbb, const MyGame::Example::Vec3 *pos = nullptr, int16_t mana = 150, int16_t hp = 100, - flatbuffers::Offset name = 0, - flatbuffers::Offset> inventory = 0, + ::flatbuffers::Offset<::flatbuffers::String> name = 0, + ::flatbuffers::Offset<::flatbuffers::Vector> inventory = 0, MyGame::Example::Color color = MyGame::Example::Color_Blue, MyGame::Example::Any test_type = MyGame::Example::Any_NONE, - flatbuffers::Offset test = 0, - flatbuffers::Offset> test4 = 0, - flatbuffers::Offset>> testarrayofstring = 0, - flatbuffers::Offset>> testarrayoftables = 0, - flatbuffers::Offset enemy = 0, - flatbuffers::Offset> testnestedflatbuffer = 0, - flatbuffers::Offset testempty = 0, + ::flatbuffers::Offset test = 0, + ::flatbuffers::Offset<::flatbuffers::Vector> test4 = 0, + ::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>>> testarrayofstring = 0, + ::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset>> testarrayoftables = 0, + ::flatbuffers::Offset enemy = 0, + ::flatbuffers::Offset<::flatbuffers::Vector> testnestedflatbuffer = 0, + ::flatbuffers::Offset testempty = 0, bool testbool = false, int32_t testhashs32_fnv1 = 0, uint32_t testhashu32_fnv1 = 0, @@ -2150,33 +2150,33 @@ inline flatbuffers::Offset CreateMonster( uint32_t testhashu32_fnv1a = 0, int64_t testhashs64_fnv1a = 0, uint64_t testhashu64_fnv1a = 0, - flatbuffers::Offset> testarrayofbools = 0, + ::flatbuffers::Offset<::flatbuffers::Vector> testarrayofbools = 0, float testf = 3.14159f, float testf2 = 3.0f, float testf3 = 0.0f, - flatbuffers::Offset>> testarrayofstring2 = 0, - flatbuffers::Offset> testarrayofsortedstruct = 0, - flatbuffers::Offset> flex = 0, - flatbuffers::Offset> test5 = 0, - flatbuffers::Offset> vector_of_longs = 0, - flatbuffers::Offset> vector_of_doubles = 0, - flatbuffers::Offset parent_namespace_test = 0, - flatbuffers::Offset>> vector_of_referrables = 0, + ::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>>> testarrayofstring2 = 0, + ::flatbuffers::Offset<::flatbuffers::Vector> testarrayofsortedstruct = 0, + ::flatbuffers::Offset<::flatbuffers::Vector> flex = 0, + ::flatbuffers::Offset<::flatbuffers::Vector> test5 = 0, + ::flatbuffers::Offset<::flatbuffers::Vector> vector_of_longs = 0, + ::flatbuffers::Offset<::flatbuffers::Vector> vector_of_doubles = 0, + ::flatbuffers::Offset parent_namespace_test = 0, + ::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset>> vector_of_referrables = 0, uint64_t single_weak_reference = 0, - flatbuffers::Offset> vector_of_weak_references = 0, - flatbuffers::Offset>> vector_of_strong_referrables = 0, + ::flatbuffers::Offset<::flatbuffers::Vector> vector_of_weak_references = 0, + ::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset>> vector_of_strong_referrables = 0, uint64_t co_owning_reference = 0, - flatbuffers::Offset> vector_of_co_owning_references = 0, + ::flatbuffers::Offset<::flatbuffers::Vector> vector_of_co_owning_references = 0, uint64_t non_owning_reference = 0, - flatbuffers::Offset> vector_of_non_owning_references = 0, + ::flatbuffers::Offset<::flatbuffers::Vector> vector_of_non_owning_references = 0, MyGame::Example::AnyUniqueAliases any_unique_type = MyGame::Example::AnyUniqueAliases_NONE, - flatbuffers::Offset any_unique = 0, + ::flatbuffers::Offset any_unique = 0, MyGame::Example::AnyAmbiguousAliases any_ambiguous_type = MyGame::Example::AnyAmbiguousAliases_NONE, - flatbuffers::Offset any_ambiguous = 0, - flatbuffers::Offset> vector_of_enums = 0, + ::flatbuffers::Offset any_ambiguous = 0, + ::flatbuffers::Offset<::flatbuffers::Vector> vector_of_enums = 0, MyGame::Example::Race signed_enum = MyGame::Example::Race_None, - flatbuffers::Offset> testrequirednestedflatbuffer = 0, - flatbuffers::Offset>> scalar_key_sorted_tables = 0, + ::flatbuffers::Offset<::flatbuffers::Vector> testrequirednestedflatbuffer = 0, + ::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset>> scalar_key_sorted_tables = 0, const MyGame::Example::Test *native_inline = nullptr, MyGame::Example::LongEnum long_enum_non_enum_default = static_cast(0), MyGame::Example::LongEnum long_enum_normal_default = MyGame::Example::LongEnum_LongOne, @@ -2253,8 +2253,8 @@ inline flatbuffers::Offset CreateMonster( return builder_.Finish(); } -inline flatbuffers::Offset CreateMonsterDirect( - flatbuffers::FlatBufferBuilder &_fbb, +inline ::flatbuffers::Offset CreateMonsterDirect( + ::flatbuffers::FlatBufferBuilder &_fbb, const MyGame::Example::Vec3 *pos = nullptr, int16_t mana = 150, int16_t hp = 100, @@ -2262,13 +2262,13 @@ inline flatbuffers::Offset CreateMonsterDirect( const std::vector *inventory = nullptr, MyGame::Example::Color color = MyGame::Example::Color_Blue, MyGame::Example::Any test_type = MyGame::Example::Any_NONE, - flatbuffers::Offset test = 0, + ::flatbuffers::Offset test = 0, const std::vector *test4 = nullptr, - const std::vector> *testarrayofstring = nullptr, - std::vector> *testarrayoftables = nullptr, - flatbuffers::Offset enemy = 0, + const std::vector<::flatbuffers::Offset<::flatbuffers::String>> *testarrayofstring = nullptr, + std::vector<::flatbuffers::Offset> *testarrayoftables = nullptr, + ::flatbuffers::Offset enemy = 0, const std::vector *testnestedflatbuffer = nullptr, - flatbuffers::Offset testempty = 0, + ::flatbuffers::Offset testempty = 0, bool testbool = false, int32_t testhashs32_fnv1 = 0, uint32_t testhashu32_fnv1 = 0, @@ -2282,29 +2282,29 @@ inline flatbuffers::Offset CreateMonsterDirect( float testf = 3.14159f, float testf2 = 3.0f, float testf3 = 0.0f, - const std::vector> *testarrayofstring2 = nullptr, + const std::vector<::flatbuffers::Offset<::flatbuffers::String>> *testarrayofstring2 = nullptr, std::vector *testarrayofsortedstruct = nullptr, const std::vector *flex = nullptr, const std::vector *test5 = nullptr, const std::vector *vector_of_longs = nullptr, const std::vector *vector_of_doubles = nullptr, - flatbuffers::Offset parent_namespace_test = 0, - std::vector> *vector_of_referrables = nullptr, + ::flatbuffers::Offset parent_namespace_test = 0, + std::vector<::flatbuffers::Offset> *vector_of_referrables = nullptr, uint64_t single_weak_reference = 0, const std::vector *vector_of_weak_references = nullptr, - std::vector> *vector_of_strong_referrables = nullptr, + std::vector<::flatbuffers::Offset> *vector_of_strong_referrables = nullptr, uint64_t co_owning_reference = 0, const std::vector *vector_of_co_owning_references = nullptr, uint64_t non_owning_reference = 0, const std::vector *vector_of_non_owning_references = nullptr, MyGame::Example::AnyUniqueAliases any_unique_type = MyGame::Example::AnyUniqueAliases_NONE, - flatbuffers::Offset any_unique = 0, + ::flatbuffers::Offset any_unique = 0, MyGame::Example::AnyAmbiguousAliases any_ambiguous_type = MyGame::Example::AnyAmbiguousAliases_NONE, - flatbuffers::Offset any_ambiguous = 0, + ::flatbuffers::Offset any_ambiguous = 0, const std::vector *vector_of_enums = nullptr, MyGame::Example::Race signed_enum = MyGame::Example::Race_None, const std::vector *testrequirednestedflatbuffer = nullptr, - std::vector> *scalar_key_sorted_tables = nullptr, + std::vector<::flatbuffers::Offset> *scalar_key_sorted_tables = nullptr, const MyGame::Example::Test *native_inline = nullptr, MyGame::Example::LongEnum long_enum_non_enum_default = static_cast(0), MyGame::Example::LongEnum long_enum_normal_default = MyGame::Example::LongEnum_LongOne, @@ -2319,11 +2319,11 @@ inline flatbuffers::Offset CreateMonsterDirect( auto name__ = name ? _fbb.CreateString(name) : 0; auto inventory__ = inventory ? _fbb.CreateVector(*inventory) : 0; auto test4__ = test4 ? _fbb.CreateVectorOfStructs(*test4) : 0; - auto testarrayofstring__ = testarrayofstring ? _fbb.CreateVector>(*testarrayofstring) : 0; + auto testarrayofstring__ = testarrayofstring ? _fbb.CreateVector<::flatbuffers::Offset<::flatbuffers::String>>(*testarrayofstring) : 0; auto testarrayoftables__ = testarrayoftables ? _fbb.CreateVectorOfSortedTables(testarrayoftables) : 0; auto testnestedflatbuffer__ = testnestedflatbuffer ? _fbb.CreateVector(*testnestedflatbuffer) : 0; auto testarrayofbools__ = testarrayofbools ? _fbb.CreateVector(*testarrayofbools) : 0; - auto testarrayofstring2__ = testarrayofstring2 ? _fbb.CreateVector>(*testarrayofstring2) : 0; + auto testarrayofstring2__ = testarrayofstring2 ? _fbb.CreateVector<::flatbuffers::Offset<::flatbuffers::String>>(*testarrayofstring2) : 0; auto testarrayofsortedstruct__ = testarrayofsortedstruct ? _fbb.CreateVectorOfSortedStructs(testarrayofsortedstruct) : 0; auto flex__ = flex ? _fbb.CreateVector(*flex) : 0; auto test5__ = test5 ? _fbb.CreateVectorOfStructs(*test5) : 0; @@ -2402,9 +2402,9 @@ inline flatbuffers::Offset CreateMonsterDirect( double_inf_default); } -flatbuffers::Offset CreateMonster(flatbuffers::FlatBufferBuilder &_fbb, const MonsterT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); +::flatbuffers::Offset CreateMonster(::flatbuffers::FlatBufferBuilder &_fbb, const MonsterT *_o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); -struct TypeAliasesT : public flatbuffers::NativeTable { +struct TypeAliasesT : public ::flatbuffers::NativeTable { typedef TypeAliases TableType; int8_t i8 = 0; uint8_t u8 = 0; @@ -2420,10 +2420,10 @@ struct TypeAliasesT : public flatbuffers::NativeTable { std::vector vf64{}; }; -struct TypeAliases FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { +struct TypeAliases FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { typedef TypeAliasesT NativeTableType; typedef TypeAliasesBuilder Builder; - static const flatbuffers::TypeTable *MiniReflectTypeTable() { + static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { return TypeAliasesTypeTable(); } enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { @@ -2500,19 +2500,19 @@ struct TypeAliases FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { bool mutate_f64(double _f64 = 0.0) { return SetField(VT_F64, _f64, 0.0); } - const flatbuffers::Vector *v8() const { - return GetPointer *>(VT_V8); + const ::flatbuffers::Vector *v8() const { + return GetPointer *>(VT_V8); } - flatbuffers::Vector *mutable_v8() { - return GetPointer *>(VT_V8); + ::flatbuffers::Vector *mutable_v8() { + return GetPointer<::flatbuffers::Vector *>(VT_V8); } - const flatbuffers::Vector *vf64() const { - return GetPointer *>(VT_VF64); + const ::flatbuffers::Vector *vf64() const { + return GetPointer *>(VT_VF64); } - flatbuffers::Vector *mutable_vf64() { - return GetPointer *>(VT_VF64); + ::flatbuffers::Vector *mutable_vf64() { + return GetPointer<::flatbuffers::Vector *>(VT_VF64); } - bool Verify(flatbuffers::Verifier &verifier) const { + bool Verify(::flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_I8, 1) && VerifyField(verifier, VT_U8, 1) && @@ -2530,15 +2530,15 @@ struct TypeAliases FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { verifier.VerifyVector(vf64()) && verifier.EndTable(); } - TypeAliasesT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; - void UnPackTo(TypeAliasesT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const; - static flatbuffers::Offset Pack(flatbuffers::FlatBufferBuilder &_fbb, const TypeAliasesT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); + TypeAliasesT *UnPack(const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; + void UnPackTo(TypeAliasesT *_o, const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; + static ::flatbuffers::Offset Pack(::flatbuffers::FlatBufferBuilder &_fbb, const TypeAliasesT* _o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); }; struct TypeAliasesBuilder { typedef TypeAliases Table; - flatbuffers::FlatBufferBuilder &fbb_; - flatbuffers::uoffset_t start_; + ::flatbuffers::FlatBufferBuilder &fbb_; + ::flatbuffers::uoffset_t start_; void add_i8(int8_t i8) { fbb_.AddElement(TypeAliases::VT_I8, i8, 0); } @@ -2569,25 +2569,25 @@ struct TypeAliasesBuilder { void add_f64(double f64) { fbb_.AddElement(TypeAliases::VT_F64, f64, 0.0); } - void add_v8(flatbuffers::Offset> v8) { + void add_v8(::flatbuffers::Offset<::flatbuffers::Vector> v8) { fbb_.AddOffset(TypeAliases::VT_V8, v8); } - void add_vf64(flatbuffers::Offset> vf64) { + void add_vf64(::flatbuffers::Offset<::flatbuffers::Vector> vf64) { fbb_.AddOffset(TypeAliases::VT_VF64, vf64); } - explicit TypeAliasesBuilder(flatbuffers::FlatBufferBuilder &_fbb) + explicit TypeAliasesBuilder(::flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); } - flatbuffers::Offset Finish() { + ::flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); - auto o = flatbuffers::Offset(end); + auto o = ::flatbuffers::Offset(end); return o; } }; -inline flatbuffers::Offset CreateTypeAliases( - flatbuffers::FlatBufferBuilder &_fbb, +inline ::flatbuffers::Offset CreateTypeAliases( + ::flatbuffers::FlatBufferBuilder &_fbb, int8_t i8 = 0, uint8_t u8 = 0, int16_t i16 = 0, @@ -2598,8 +2598,8 @@ inline flatbuffers::Offset CreateTypeAliases( uint64_t u64 = 0, float f32 = 0.0f, double f64 = 0.0, - flatbuffers::Offset> v8 = 0, - flatbuffers::Offset> vf64 = 0) { + ::flatbuffers::Offset<::flatbuffers::Vector> v8 = 0, + ::flatbuffers::Offset<::flatbuffers::Vector> vf64 = 0) { TypeAliasesBuilder builder_(_fbb); builder_.add_f64(f64); builder_.add_u64(u64); @@ -2616,8 +2616,8 @@ inline flatbuffers::Offset CreateTypeAliases( return builder_.Finish(); } -inline flatbuffers::Offset CreateTypeAliasesDirect( - flatbuffers::FlatBufferBuilder &_fbb, +inline ::flatbuffers::Offset CreateTypeAliasesDirect( + ::flatbuffers::FlatBufferBuilder &_fbb, int8_t i8 = 0, uint8_t u8 = 0, int16_t i16 = 0, @@ -2648,7 +2648,7 @@ inline flatbuffers::Offset CreateTypeAliasesDirect( vf64__); } -flatbuffers::Offset CreateTypeAliases(flatbuffers::FlatBufferBuilder &_fbb, const TypeAliasesT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); +::flatbuffers::Offset CreateTypeAliases(::flatbuffers::FlatBufferBuilder &_fbb, const TypeAliasesT *_o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); } // namespace Example @@ -2662,25 +2662,25 @@ inline bool operator!=(const InParentNamespaceT &lhs, const InParentNamespaceT & } -inline InParentNamespaceT *InParentNamespace::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +inline InParentNamespaceT *InParentNamespace::UnPack(const ::flatbuffers::resolver_function_t *_resolver) const { auto _o = std::unique_ptr(new InParentNamespaceT()); UnPackTo(_o.get(), _resolver); return _o.release(); } -inline void InParentNamespace::UnPackTo(InParentNamespaceT *_o, const flatbuffers::resolver_function_t *_resolver) const { +inline void InParentNamespace::UnPackTo(InParentNamespaceT *_o, const ::flatbuffers::resolver_function_t *_resolver) const { (void)_o; (void)_resolver; } -inline flatbuffers::Offset InParentNamespace::Pack(flatbuffers::FlatBufferBuilder &_fbb, const InParentNamespaceT* _o, const flatbuffers::rehasher_function_t *_rehasher) { +inline ::flatbuffers::Offset InParentNamespace::Pack(::flatbuffers::FlatBufferBuilder &_fbb, const InParentNamespaceT* _o, const ::flatbuffers::rehasher_function_t *_rehasher) { return CreateInParentNamespace(_fbb, _o, _rehasher); } -inline flatbuffers::Offset CreateInParentNamespace(flatbuffers::FlatBufferBuilder &_fbb, const InParentNamespaceT *_o, const flatbuffers::rehasher_function_t *_rehasher) { +inline ::flatbuffers::Offset CreateInParentNamespace(::flatbuffers::FlatBufferBuilder &_fbb, const InParentNamespaceT *_o, const ::flatbuffers::rehasher_function_t *_rehasher) { (void)_rehasher; (void)_o; - struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const InParentNamespaceT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; + struct _VectorArgs { ::flatbuffers::FlatBufferBuilder *__fbb; const InParentNamespaceT* __o; const ::flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; return MyGame::CreateInParentNamespace( _fbb); } @@ -2697,25 +2697,25 @@ inline bool operator!=(const MonsterT &lhs, const MonsterT &rhs) { } -inline MonsterT *Monster::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +inline MonsterT *Monster::UnPack(const ::flatbuffers::resolver_function_t *_resolver) const { auto _o = std::unique_ptr(new MonsterT()); UnPackTo(_o.get(), _resolver); return _o.release(); } -inline void Monster::UnPackTo(MonsterT *_o, const flatbuffers::resolver_function_t *_resolver) const { +inline void Monster::UnPackTo(MonsterT *_o, const ::flatbuffers::resolver_function_t *_resolver) const { (void)_o; (void)_resolver; } -inline flatbuffers::Offset Monster::Pack(flatbuffers::FlatBufferBuilder &_fbb, const MonsterT* _o, const flatbuffers::rehasher_function_t *_rehasher) { +inline ::flatbuffers::Offset Monster::Pack(::flatbuffers::FlatBufferBuilder &_fbb, const MonsterT* _o, const ::flatbuffers::rehasher_function_t *_rehasher) { return CreateMonster(_fbb, _o, _rehasher); } -inline flatbuffers::Offset CreateMonster(flatbuffers::FlatBufferBuilder &_fbb, const MonsterT *_o, const flatbuffers::rehasher_function_t *_rehasher) { +inline ::flatbuffers::Offset CreateMonster(::flatbuffers::FlatBufferBuilder &_fbb, const MonsterT *_o, const ::flatbuffers::rehasher_function_t *_rehasher) { (void)_rehasher; (void)_o; - struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const MonsterT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; + struct _VectorArgs { ::flatbuffers::FlatBufferBuilder *__fbb; const MonsterT* __o; const ::flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; return MyGame::Example2::CreateMonster( _fbb); } @@ -2735,26 +2735,26 @@ inline bool operator!=(const TestSimpleTableWithEnumT &lhs, const TestSimpleTabl } -inline TestSimpleTableWithEnumT *TestSimpleTableWithEnum::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +inline TestSimpleTableWithEnumT *TestSimpleTableWithEnum::UnPack(const ::flatbuffers::resolver_function_t *_resolver) const { auto _o = std::unique_ptr(new TestSimpleTableWithEnumT()); UnPackTo(_o.get(), _resolver); return _o.release(); } -inline void TestSimpleTableWithEnum::UnPackTo(TestSimpleTableWithEnumT *_o, const flatbuffers::resolver_function_t *_resolver) const { +inline void TestSimpleTableWithEnum::UnPackTo(TestSimpleTableWithEnumT *_o, const ::flatbuffers::resolver_function_t *_resolver) const { (void)_o; (void)_resolver; { auto _e = color(); _o->color = _e; } } -inline flatbuffers::Offset TestSimpleTableWithEnum::Pack(flatbuffers::FlatBufferBuilder &_fbb, const TestSimpleTableWithEnumT* _o, const flatbuffers::rehasher_function_t *_rehasher) { +inline ::flatbuffers::Offset TestSimpleTableWithEnum::Pack(::flatbuffers::FlatBufferBuilder &_fbb, const TestSimpleTableWithEnumT* _o, const ::flatbuffers::rehasher_function_t *_rehasher) { return CreateTestSimpleTableWithEnum(_fbb, _o, _rehasher); } -inline flatbuffers::Offset CreateTestSimpleTableWithEnum(flatbuffers::FlatBufferBuilder &_fbb, const TestSimpleTableWithEnumT *_o, const flatbuffers::rehasher_function_t *_rehasher) { +inline ::flatbuffers::Offset CreateTestSimpleTableWithEnum(::flatbuffers::FlatBufferBuilder &_fbb, const TestSimpleTableWithEnumT *_o, const ::flatbuffers::rehasher_function_t *_rehasher) { (void)_rehasher; (void)_o; - struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const TestSimpleTableWithEnumT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; + struct _VectorArgs { ::flatbuffers::FlatBufferBuilder *__fbb; const TestSimpleTableWithEnumT* __o; const ::flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; auto _color = _o->color; return MyGame::Example::CreateTestSimpleTableWithEnum( _fbb, @@ -2774,13 +2774,13 @@ inline bool operator!=(const StatT &lhs, const StatT &rhs) { } -inline StatT *Stat::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +inline StatT *Stat::UnPack(const ::flatbuffers::resolver_function_t *_resolver) const { auto _o = std::unique_ptr(new StatT()); UnPackTo(_o.get(), _resolver); return _o.release(); } -inline void Stat::UnPackTo(StatT *_o, const flatbuffers::resolver_function_t *_resolver) const { +inline void Stat::UnPackTo(StatT *_o, const ::flatbuffers::resolver_function_t *_resolver) const { (void)_o; (void)_resolver; { auto _e = id(); if (_e) _o->id = _e->str(); } @@ -2788,14 +2788,14 @@ inline void Stat::UnPackTo(StatT *_o, const flatbuffers::resolver_function_t *_r { auto _e = count(); _o->count = _e; } } -inline flatbuffers::Offset Stat::Pack(flatbuffers::FlatBufferBuilder &_fbb, const StatT* _o, const flatbuffers::rehasher_function_t *_rehasher) { +inline ::flatbuffers::Offset Stat::Pack(::flatbuffers::FlatBufferBuilder &_fbb, const StatT* _o, const ::flatbuffers::rehasher_function_t *_rehasher) { return CreateStat(_fbb, _o, _rehasher); } -inline flatbuffers::Offset CreateStat(flatbuffers::FlatBufferBuilder &_fbb, const StatT *_o, const flatbuffers::rehasher_function_t *_rehasher) { +inline ::flatbuffers::Offset CreateStat(::flatbuffers::FlatBufferBuilder &_fbb, const StatT *_o, const ::flatbuffers::rehasher_function_t *_rehasher) { (void)_rehasher; (void)_o; - struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const StatT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; + struct _VectorArgs { ::flatbuffers::FlatBufferBuilder *__fbb; const StatT* __o; const ::flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; auto _id = _o->id.empty() ? 0 : _fbb.CreateString(_o->id); auto _val = _o->val; auto _count = _o->count; @@ -2817,26 +2817,26 @@ inline bool operator!=(const ReferrableT &lhs, const ReferrableT &rhs) { } -inline ReferrableT *Referrable::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +inline ReferrableT *Referrable::UnPack(const ::flatbuffers::resolver_function_t *_resolver) const { auto _o = std::unique_ptr(new ReferrableT()); UnPackTo(_o.get(), _resolver); return _o.release(); } -inline void Referrable::UnPackTo(ReferrableT *_o, const flatbuffers::resolver_function_t *_resolver) const { +inline void Referrable::UnPackTo(ReferrableT *_o, const ::flatbuffers::resolver_function_t *_resolver) const { (void)_o; (void)_resolver; { auto _e = id(); _o->id = _e; } } -inline flatbuffers::Offset Referrable::Pack(flatbuffers::FlatBufferBuilder &_fbb, const ReferrableT* _o, const flatbuffers::rehasher_function_t *_rehasher) { +inline ::flatbuffers::Offset Referrable::Pack(::flatbuffers::FlatBufferBuilder &_fbb, const ReferrableT* _o, const ::flatbuffers::rehasher_function_t *_rehasher) { return CreateReferrable(_fbb, _o, _rehasher); } -inline flatbuffers::Offset CreateReferrable(flatbuffers::FlatBufferBuilder &_fbb, const ReferrableT *_o, const flatbuffers::rehasher_function_t *_rehasher) { +inline ::flatbuffers::Offset CreateReferrable(::flatbuffers::FlatBufferBuilder &_fbb, const ReferrableT *_o, const ::flatbuffers::rehasher_function_t *_rehasher) { (void)_rehasher; (void)_o; - struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const ReferrableT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; + struct _VectorArgs { ::flatbuffers::FlatBufferBuilder *__fbb; const ReferrableT* __o; const ::flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; auto _id = _o->id; return MyGame::Example::CreateReferrable( _fbb, @@ -3039,13 +3039,13 @@ inline MonsterT &MonsterT::operator=(MonsterT o) FLATBUFFERS_NOEXCEPT { return *this; } -inline MonsterT *Monster::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +inline MonsterT *Monster::UnPack(const ::flatbuffers::resolver_function_t *_resolver) const { auto _o = std::unique_ptr(new MonsterT()); UnPackTo(_o.get(), _resolver); return _o.release(); } -inline void Monster::UnPackTo(MonsterT *_o, const flatbuffers::resolver_function_t *_resolver) const { +inline void Monster::UnPackTo(MonsterT *_o, const ::flatbuffers::resolver_function_t *_resolver) const { (void)_o; (void)_resolver; { auto _e = pos(); if (_e) _o->pos = flatbuffers::unique_ptr(new MyGame::Example::Vec3(*_e)); } @@ -3056,9 +3056,9 @@ inline void Monster::UnPackTo(MonsterT *_o, const flatbuffers::resolver_function { auto _e = color(); _o->color = _e; } { auto _e = test_type(); _o->test.type = _e; } { auto _e = test(); if (_e) _o->test.value = MyGame::Example::AnyUnion::UnPack(_e, test_type(), _resolver); } - { auto _e = test4(); if (_e) { _o->test4.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->test4[_i] = *_e->Get(_i); } } else { _o->test4.resize(0); } } - { auto _e = testarrayofstring(); if (_e) { _o->testarrayofstring.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->testarrayofstring[_i] = _e->Get(_i)->str(); } } else { _o->testarrayofstring.resize(0); } } - { auto _e = testarrayoftables(); if (_e) { _o->testarrayoftables.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { if(_o->testarrayoftables[_i]) { _e->Get(_i)->UnPackTo(_o->testarrayoftables[_i].get(), _resolver); } else { _o->testarrayoftables[_i] = flatbuffers::unique_ptr(_e->Get(_i)->UnPack(_resolver)); }; } } else { _o->testarrayoftables.resize(0); } } + { auto _e = test4(); if (_e) { _o->test4.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->test4[_i] = *_e->Get(_i); } } else { _o->test4.resize(0); } } + { auto _e = testarrayofstring(); if (_e) { _o->testarrayofstring.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->testarrayofstring[_i] = _e->Get(_i)->str(); } } else { _o->testarrayofstring.resize(0); } } + { auto _e = testarrayoftables(); if (_e) { _o->testarrayoftables.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { if(_o->testarrayoftables[_i]) { _e->Get(_i)->UnPackTo(_o->testarrayoftables[_i].get(), _resolver); } else { _o->testarrayoftables[_i] = flatbuffers::unique_ptr(_e->Get(_i)->UnPack(_resolver)); }; } } else { _o->testarrayoftables.resize(0); } } { auto _e = enemy(); if (_e) { if(_o->enemy) { _e->UnPackTo(_o->enemy.get(), _resolver); } else { _o->enemy = flatbuffers::unique_ptr(_e->UnPack(_resolver)); } } else if (_o->enemy) { _o->enemy.reset(); } } { auto _e = testnestedflatbuffer(); if (_e) { _o->testnestedflatbuffer.resize(_e->size()); std::copy(_e->begin(), _e->end(), _o->testnestedflatbuffer.begin()); } } { auto _e = testempty(); if (_e) { if(_o->testempty) { _e->UnPackTo(_o->testempty.get(), _resolver); } else { _o->testempty = flatbuffers::unique_ptr(_e->UnPack(_resolver)); } } else if (_o->testempty) { _o->testempty.reset(); } } @@ -3068,36 +3068,36 @@ inline void Monster::UnPackTo(MonsterT *_o, const flatbuffers::resolver_function { auto _e = testhashs64_fnv1(); _o->testhashs64_fnv1 = _e; } { auto _e = testhashu64_fnv1(); _o->testhashu64_fnv1 = _e; } { auto _e = testhashs32_fnv1a(); _o->testhashs32_fnv1a = _e; } - { auto _e = testhashu32_fnv1a(); /*scalar resolver, naked*/ if (_resolver) (*_resolver)(reinterpret_cast(&_o->testhashu32_fnv1a), static_cast(_e)); else _o->testhashu32_fnv1a = nullptr; } + { auto _e = testhashu32_fnv1a(); /*scalar resolver, naked*/ if (_resolver) (*_resolver)(reinterpret_cast(&_o->testhashu32_fnv1a), static_cast<::flatbuffers::hash_value_t>(_e)); else _o->testhashu32_fnv1a = nullptr; } { auto _e = testhashs64_fnv1a(); _o->testhashs64_fnv1a = _e; } { auto _e = testhashu64_fnv1a(); _o->testhashu64_fnv1a = _e; } - { auto _e = testarrayofbools(); if (_e) { _o->testarrayofbools.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->testarrayofbools[_i] = _e->Get(_i) != 0; } } else { _o->testarrayofbools.resize(0); } } + { auto _e = testarrayofbools(); if (_e) { _o->testarrayofbools.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->testarrayofbools[_i] = _e->Get(_i) != 0; } } else { _o->testarrayofbools.resize(0); } } { auto _e = testf(); _o->testf = _e; } { auto _e = testf2(); _o->testf2 = _e; } { auto _e = testf3(); _o->testf3 = _e; } - { auto _e = testarrayofstring2(); if (_e) { _o->testarrayofstring2.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->testarrayofstring2[_i] = _e->Get(_i)->str(); } } else { _o->testarrayofstring2.resize(0); } } - { auto _e = testarrayofsortedstruct(); if (_e) { _o->testarrayofsortedstruct.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->testarrayofsortedstruct[_i] = *_e->Get(_i); } } else { _o->testarrayofsortedstruct.resize(0); } } + { auto _e = testarrayofstring2(); if (_e) { _o->testarrayofstring2.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->testarrayofstring2[_i] = _e->Get(_i)->str(); } } else { _o->testarrayofstring2.resize(0); } } + { auto _e = testarrayofsortedstruct(); if (_e) { _o->testarrayofsortedstruct.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->testarrayofsortedstruct[_i] = *_e->Get(_i); } } else { _o->testarrayofsortedstruct.resize(0); } } { auto _e = flex(); if (_e) { _o->flex.resize(_e->size()); std::copy(_e->begin(), _e->end(), _o->flex.begin()); } } - { auto _e = test5(); if (_e) { _o->test5.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->test5[_i] = *_e->Get(_i); } } else { _o->test5.resize(0); } } - { auto _e = vector_of_longs(); if (_e) { _o->vector_of_longs.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->vector_of_longs[_i] = _e->Get(_i); } } else { _o->vector_of_longs.resize(0); } } - { auto _e = vector_of_doubles(); if (_e) { _o->vector_of_doubles.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->vector_of_doubles[_i] = _e->Get(_i); } } else { _o->vector_of_doubles.resize(0); } } + { auto _e = test5(); if (_e) { _o->test5.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->test5[_i] = *_e->Get(_i); } } else { _o->test5.resize(0); } } + { auto _e = vector_of_longs(); if (_e) { _o->vector_of_longs.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->vector_of_longs[_i] = _e->Get(_i); } } else { _o->vector_of_longs.resize(0); } } + { auto _e = vector_of_doubles(); if (_e) { _o->vector_of_doubles.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->vector_of_doubles[_i] = _e->Get(_i); } } else { _o->vector_of_doubles.resize(0); } } { auto _e = parent_namespace_test(); if (_e) { if(_o->parent_namespace_test) { _e->UnPackTo(_o->parent_namespace_test.get(), _resolver); } else { _o->parent_namespace_test = flatbuffers::unique_ptr(_e->UnPack(_resolver)); } } else if (_o->parent_namespace_test) { _o->parent_namespace_test.reset(); } } - { auto _e = vector_of_referrables(); if (_e) { _o->vector_of_referrables.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { if(_o->vector_of_referrables[_i]) { _e->Get(_i)->UnPackTo(_o->vector_of_referrables[_i].get(), _resolver); } else { _o->vector_of_referrables[_i] = flatbuffers::unique_ptr(_e->Get(_i)->UnPack(_resolver)); }; } } else { _o->vector_of_referrables.resize(0); } } - { auto _e = single_weak_reference(); /*scalar resolver, naked*/ if (_resolver) (*_resolver)(reinterpret_cast(&_o->single_weak_reference), static_cast(_e)); else _o->single_weak_reference = nullptr; } - { auto _e = vector_of_weak_references(); if (_e) { _o->vector_of_weak_references.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { /*vector resolver, naked*/ if (_resolver) (*_resolver)(reinterpret_cast(&_o->vector_of_weak_references[_i]), static_cast(_e->Get(_i))); else _o->vector_of_weak_references[_i] = nullptr; } } else { _o->vector_of_weak_references.resize(0); } } - { auto _e = vector_of_strong_referrables(); if (_e) { _o->vector_of_strong_referrables.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { if(_o->vector_of_strong_referrables[_i]) { _e->Get(_i)->UnPackTo(_o->vector_of_strong_referrables[_i].get(), _resolver); } else { _o->vector_of_strong_referrables[_i] = flatbuffers::unique_ptr(_e->Get(_i)->UnPack(_resolver)); }; } } else { _o->vector_of_strong_referrables.resize(0); } } - { auto _e = co_owning_reference(); /*scalar resolver, naked*/ if (_resolver) (*_resolver)(reinterpret_cast(&_o->co_owning_reference), static_cast(_e)); else _o->co_owning_reference = nullptr; } - { auto _e = vector_of_co_owning_references(); if (_e) { _o->vector_of_co_owning_references.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { /*vector resolver, default_ptr_type*/ if (_resolver) (*_resolver)(reinterpret_cast(&_o->vector_of_co_owning_references[_i]), static_cast(_e->Get(_i)));/* else do nothing */; } } else { _o->vector_of_co_owning_references.resize(0); } } - { auto _e = non_owning_reference(); /*scalar resolver, naked*/ if (_resolver) (*_resolver)(reinterpret_cast(&_o->non_owning_reference), static_cast(_e)); else _o->non_owning_reference = nullptr; } - { auto _e = vector_of_non_owning_references(); if (_e) { _o->vector_of_non_owning_references.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { /*vector resolver, naked*/ if (_resolver) (*_resolver)(reinterpret_cast(&_o->vector_of_non_owning_references[_i]), static_cast(_e->Get(_i))); else _o->vector_of_non_owning_references[_i] = nullptr; } } else { _o->vector_of_non_owning_references.resize(0); } } + { auto _e = vector_of_referrables(); if (_e) { _o->vector_of_referrables.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { if(_o->vector_of_referrables[_i]) { _e->Get(_i)->UnPackTo(_o->vector_of_referrables[_i].get(), _resolver); } else { _o->vector_of_referrables[_i] = flatbuffers::unique_ptr(_e->Get(_i)->UnPack(_resolver)); }; } } else { _o->vector_of_referrables.resize(0); } } + { auto _e = single_weak_reference(); /*scalar resolver, naked*/ if (_resolver) (*_resolver)(reinterpret_cast(&_o->single_weak_reference), static_cast<::flatbuffers::hash_value_t>(_e)); else _o->single_weak_reference = nullptr; } + { auto _e = vector_of_weak_references(); if (_e) { _o->vector_of_weak_references.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { /*vector resolver, naked*/ if (_resolver) (*_resolver)(reinterpret_cast(&_o->vector_of_weak_references[_i]), static_cast<::flatbuffers::hash_value_t>(_e->Get(_i))); else _o->vector_of_weak_references[_i] = nullptr; } } else { _o->vector_of_weak_references.resize(0); } } + { auto _e = vector_of_strong_referrables(); if (_e) { _o->vector_of_strong_referrables.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { if(_o->vector_of_strong_referrables[_i]) { _e->Get(_i)->UnPackTo(_o->vector_of_strong_referrables[_i].get(), _resolver); } else { _o->vector_of_strong_referrables[_i] = flatbuffers::unique_ptr(_e->Get(_i)->UnPack(_resolver)); }; } } else { _o->vector_of_strong_referrables.resize(0); } } + { auto _e = co_owning_reference(); /*scalar resolver, naked*/ if (_resolver) (*_resolver)(reinterpret_cast(&_o->co_owning_reference), static_cast<::flatbuffers::hash_value_t>(_e)); else _o->co_owning_reference = nullptr; } + { auto _e = vector_of_co_owning_references(); if (_e) { _o->vector_of_co_owning_references.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { /*vector resolver, default_ptr_type*/ if (_resolver) (*_resolver)(reinterpret_cast(&_o->vector_of_co_owning_references[_i]), static_cast<::flatbuffers::hash_value_t>(_e->Get(_i)));/* else do nothing */; } } else { _o->vector_of_co_owning_references.resize(0); } } + { auto _e = non_owning_reference(); /*scalar resolver, naked*/ if (_resolver) (*_resolver)(reinterpret_cast(&_o->non_owning_reference), static_cast<::flatbuffers::hash_value_t>(_e)); else _o->non_owning_reference = nullptr; } + { auto _e = vector_of_non_owning_references(); if (_e) { _o->vector_of_non_owning_references.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { /*vector resolver, naked*/ if (_resolver) (*_resolver)(reinterpret_cast(&_o->vector_of_non_owning_references[_i]), static_cast<::flatbuffers::hash_value_t>(_e->Get(_i))); else _o->vector_of_non_owning_references[_i] = nullptr; } } else { _o->vector_of_non_owning_references.resize(0); } } { auto _e = any_unique_type(); _o->any_unique.type = _e; } { auto _e = any_unique(); if (_e) _o->any_unique.value = MyGame::Example::AnyUniqueAliasesUnion::UnPack(_e, any_unique_type(), _resolver); } { auto _e = any_ambiguous_type(); _o->any_ambiguous.type = _e; } { auto _e = any_ambiguous(); if (_e) _o->any_ambiguous.value = MyGame::Example::AnyAmbiguousAliasesUnion::UnPack(_e, any_ambiguous_type(), _resolver); } - { auto _e = vector_of_enums(); if (_e) { _o->vector_of_enums.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->vector_of_enums[_i] = static_cast(_e->Get(_i)); } } else { _o->vector_of_enums.resize(0); } } + { auto _e = vector_of_enums(); if (_e) { _o->vector_of_enums.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->vector_of_enums[_i] = static_cast(_e->Get(_i)); } } else { _o->vector_of_enums.resize(0); } } { auto _e = signed_enum(); _o->signed_enum = _e; } { auto _e = testrequirednestedflatbuffer(); if (_e) { _o->testrequirednestedflatbuffer.resize(_e->size()); std::copy(_e->begin(), _e->end(), _o->testrequirednestedflatbuffer.begin()); } } - { auto _e = scalar_key_sorted_tables(); if (_e) { _o->scalar_key_sorted_tables.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { if(_o->scalar_key_sorted_tables[_i]) { _e->Get(_i)->UnPackTo(_o->scalar_key_sorted_tables[_i].get(), _resolver); } else { _o->scalar_key_sorted_tables[_i] = flatbuffers::unique_ptr(_e->Get(_i)->UnPack(_resolver)); }; } } else { _o->scalar_key_sorted_tables.resize(0); } } + { auto _e = scalar_key_sorted_tables(); if (_e) { _o->scalar_key_sorted_tables.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { if(_o->scalar_key_sorted_tables[_i]) { _e->Get(_i)->UnPackTo(_o->scalar_key_sorted_tables[_i].get(), _resolver); } else { _o->scalar_key_sorted_tables[_i] = flatbuffers::unique_ptr(_e->Get(_i)->UnPack(_resolver)); }; } } else { _o->scalar_key_sorted_tables.resize(0); } } { auto _e = native_inline(); if (_e) _o->native_inline = *_e; } { auto _e = long_enum_non_enum_default(); _o->long_enum_non_enum_default = _e; } { auto _e = long_enum_normal_default(); _o->long_enum_normal_default = _e; } @@ -3111,14 +3111,14 @@ inline void Monster::UnPackTo(MonsterT *_o, const flatbuffers::resolver_function { auto _e = double_inf_default(); _o->double_inf_default = _e; } } -inline flatbuffers::Offset Monster::Pack(flatbuffers::FlatBufferBuilder &_fbb, const MonsterT* _o, const flatbuffers::rehasher_function_t *_rehasher) { +inline ::flatbuffers::Offset Monster::Pack(::flatbuffers::FlatBufferBuilder &_fbb, const MonsterT* _o, const ::flatbuffers::rehasher_function_t *_rehasher) { return CreateMonster(_fbb, _o, _rehasher); } -inline flatbuffers::Offset CreateMonster(flatbuffers::FlatBufferBuilder &_fbb, const MonsterT *_o, const flatbuffers::rehasher_function_t *_rehasher) { +inline ::flatbuffers::Offset CreateMonster(::flatbuffers::FlatBufferBuilder &_fbb, const MonsterT *_o, const ::flatbuffers::rehasher_function_t *_rehasher) { (void)_rehasher; (void)_o; - struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const MonsterT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; + struct _VectorArgs { ::flatbuffers::FlatBufferBuilder *__fbb; const MonsterT* __o; const ::flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; auto _pos = _o->pos ? _o->pos.get() : nullptr; auto _mana = _o->mana; auto _hp = _o->hp; @@ -3129,7 +3129,7 @@ inline flatbuffers::Offset CreateMonster(flatbuffers::FlatBufferBuilder auto _test = _o->test.Pack(_fbb); auto _test4 = _o->test4.size() ? _fbb.CreateVectorOfStructs(_o->test4) : 0; auto _testarrayofstring = _o->testarrayofstring.size() ? _fbb.CreateVectorOfStrings(_o->testarrayofstring) : 0; - auto _testarrayoftables = _o->testarrayoftables.size() ? _fbb.CreateVector> (_o->testarrayoftables.size(), [](size_t i, _VectorArgs *__va) { return CreateMonster(*__va->__fbb, __va->__o->testarrayoftables[i].get(), __va->__rehasher); }, &_va ) : 0; + auto _testarrayoftables = _o->testarrayoftables.size() ? _fbb.CreateVector<::flatbuffers::Offset> (_o->testarrayoftables.size(), [](size_t i, _VectorArgs *__va) { return CreateMonster(*__va->__fbb, __va->__o->testarrayoftables[i].get(), __va->__rehasher); }, &_va ) : 0; auto _enemy = _o->enemy ? CreateMonster(_fbb, _o->enemy.get(), _rehasher) : 0; auto _testnestedflatbuffer = _o->testnestedflatbuffer.size() ? _fbb.CreateVector(_o->testnestedflatbuffer) : 0; auto _testempty = _o->testempty ? CreateStat(_fbb, _o->testempty.get(), _rehasher) : 0; @@ -3153,10 +3153,10 @@ inline flatbuffers::Offset CreateMonster(flatbuffers::FlatBufferBuilder auto _vector_of_longs = _o->vector_of_longs.size() ? _fbb.CreateVector(_o->vector_of_longs) : 0; auto _vector_of_doubles = _o->vector_of_doubles.size() ? _fbb.CreateVector(_o->vector_of_doubles) : 0; auto _parent_namespace_test = _o->parent_namespace_test ? CreateInParentNamespace(_fbb, _o->parent_namespace_test.get(), _rehasher) : 0; - auto _vector_of_referrables = _o->vector_of_referrables.size() ? _fbb.CreateVector> (_o->vector_of_referrables.size(), [](size_t i, _VectorArgs *__va) { return CreateReferrable(*__va->__fbb, __va->__o->vector_of_referrables[i].get(), __va->__rehasher); }, &_va ) : 0; + auto _vector_of_referrables = _o->vector_of_referrables.size() ? _fbb.CreateVector<::flatbuffers::Offset> (_o->vector_of_referrables.size(), [](size_t i, _VectorArgs *__va) { return CreateReferrable(*__va->__fbb, __va->__o->vector_of_referrables[i].get(), __va->__rehasher); }, &_va ) : 0; auto _single_weak_reference = _rehasher ? static_cast((*_rehasher)(_o->single_weak_reference)) : 0; auto _vector_of_weak_references = _o->vector_of_weak_references.size() ? _fbb.CreateVector(_o->vector_of_weak_references.size(), [](size_t i, _VectorArgs *__va) { return __va->__rehasher ? static_cast((*__va->__rehasher)(__va->__o->vector_of_weak_references[i])) : 0; }, &_va ) : 0; - auto _vector_of_strong_referrables = _o->vector_of_strong_referrables.size() ? _fbb.CreateVector> (_o->vector_of_strong_referrables.size(), [](size_t i, _VectorArgs *__va) { return CreateReferrable(*__va->__fbb, __va->__o->vector_of_strong_referrables[i].get(), __va->__rehasher); }, &_va ) : 0; + auto _vector_of_strong_referrables = _o->vector_of_strong_referrables.size() ? _fbb.CreateVector<::flatbuffers::Offset> (_o->vector_of_strong_referrables.size(), [](size_t i, _VectorArgs *__va) { return CreateReferrable(*__va->__fbb, __va->__o->vector_of_strong_referrables[i].get(), __va->__rehasher); }, &_va ) : 0; auto _co_owning_reference = _rehasher ? static_cast((*_rehasher)(_o->co_owning_reference)) : 0; auto _vector_of_co_owning_references = _o->vector_of_co_owning_references.size() ? _fbb.CreateVector(_o->vector_of_co_owning_references.size(), [](size_t i, _VectorArgs *__va) { return __va->__rehasher ? static_cast((*__va->__rehasher)(__va->__o->vector_of_co_owning_references[i].get())) : 0; }, &_va ) : 0; auto _non_owning_reference = _rehasher ? static_cast((*_rehasher)(_o->non_owning_reference)) : 0; @@ -3165,10 +3165,10 @@ inline flatbuffers::Offset CreateMonster(flatbuffers::FlatBufferBuilder auto _any_unique = _o->any_unique.Pack(_fbb); auto _any_ambiguous_type = _o->any_ambiguous.type; auto _any_ambiguous = _o->any_ambiguous.Pack(_fbb); - auto _vector_of_enums = _o->vector_of_enums.size() ? _fbb.CreateVectorScalarCast(flatbuffers::data(_o->vector_of_enums), _o->vector_of_enums.size()) : 0; + auto _vector_of_enums = _o->vector_of_enums.size() ? _fbb.CreateVectorScalarCast(::flatbuffers::data(_o->vector_of_enums), _o->vector_of_enums.size()) : 0; auto _signed_enum = _o->signed_enum; auto _testrequirednestedflatbuffer = _o->testrequirednestedflatbuffer.size() ? _fbb.CreateVector(_o->testrequirednestedflatbuffer) : 0; - auto _scalar_key_sorted_tables = _o->scalar_key_sorted_tables.size() ? _fbb.CreateVector> (_o->scalar_key_sorted_tables.size(), [](size_t i, _VectorArgs *__va) { return CreateStat(*__va->__fbb, __va->__o->scalar_key_sorted_tables[i].get(), __va->__rehasher); }, &_va ) : 0; + auto _scalar_key_sorted_tables = _o->scalar_key_sorted_tables.size() ? _fbb.CreateVector<::flatbuffers::Offset> (_o->scalar_key_sorted_tables.size(), [](size_t i, _VectorArgs *__va) { return CreateStat(*__va->__fbb, __va->__o->scalar_key_sorted_tables[i].get(), __va->__rehasher); }, &_va ) : 0; auto _native_inline = &_o->native_inline; auto _long_enum_non_enum_default = _o->long_enum_non_enum_default; auto _long_enum_normal_default = _o->long_enum_normal_default; @@ -3267,13 +3267,13 @@ inline bool operator!=(const TypeAliasesT &lhs, const TypeAliasesT &rhs) { } -inline TypeAliasesT *TypeAliases::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +inline TypeAliasesT *TypeAliases::UnPack(const ::flatbuffers::resolver_function_t *_resolver) const { auto _o = std::unique_ptr(new TypeAliasesT()); UnPackTo(_o.get(), _resolver); return _o.release(); } -inline void TypeAliases::UnPackTo(TypeAliasesT *_o, const flatbuffers::resolver_function_t *_resolver) const { +inline void TypeAliases::UnPackTo(TypeAliasesT *_o, const ::flatbuffers::resolver_function_t *_resolver) const { (void)_o; (void)_resolver; { auto _e = i8(); _o->i8 = _e; } @@ -3287,17 +3287,17 @@ inline void TypeAliases::UnPackTo(TypeAliasesT *_o, const flatbuffers::resolver_ { auto _e = f32(); _o->f32 = _e; } { auto _e = f64(); _o->f64 = _e; } { auto _e = v8(); if (_e) { _o->v8.resize(_e->size()); std::copy(_e->begin(), _e->end(), _o->v8.begin()); } } - { auto _e = vf64(); if (_e) { _o->vf64.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->vf64[_i] = _e->Get(_i); } } else { _o->vf64.resize(0); } } + { auto _e = vf64(); if (_e) { _o->vf64.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->vf64[_i] = _e->Get(_i); } } else { _o->vf64.resize(0); } } } -inline flatbuffers::Offset TypeAliases::Pack(flatbuffers::FlatBufferBuilder &_fbb, const TypeAliasesT* _o, const flatbuffers::rehasher_function_t *_rehasher) { +inline ::flatbuffers::Offset TypeAliases::Pack(::flatbuffers::FlatBufferBuilder &_fbb, const TypeAliasesT* _o, const ::flatbuffers::rehasher_function_t *_rehasher) { return CreateTypeAliases(_fbb, _o, _rehasher); } -inline flatbuffers::Offset CreateTypeAliases(flatbuffers::FlatBufferBuilder &_fbb, const TypeAliasesT *_o, const flatbuffers::rehasher_function_t *_rehasher) { +inline ::flatbuffers::Offset CreateTypeAliases(::flatbuffers::FlatBufferBuilder &_fbb, const TypeAliasesT *_o, const ::flatbuffers::rehasher_function_t *_rehasher) { (void)_rehasher; (void)_o; - struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const TypeAliasesT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; + struct _VectorArgs { ::flatbuffers::FlatBufferBuilder *__fbb; const TypeAliasesT* __o; const ::flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; auto _i8 = _o->i8; auto _u8 = _o->u8; auto _i16 = _o->i16; @@ -3326,7 +3326,7 @@ inline flatbuffers::Offset CreateTypeAliases(flatbuffers::FlatBuffe _vf64); } -inline bool VerifyAny(flatbuffers::Verifier &verifier, const void *obj, Any type) { +inline bool VerifyAny(::flatbuffers::Verifier &verifier, const void *obj, Any type) { switch (type) { case Any_NONE: { return true; @@ -3347,10 +3347,10 @@ inline bool VerifyAny(flatbuffers::Verifier &verifier, const void *obj, Any type } } -inline bool VerifyAnyVector(flatbuffers::Verifier &verifier, const flatbuffers::Vector> *values, const flatbuffers::Vector *types) { +inline bool VerifyAnyVector(::flatbuffers::Verifier &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types) { if (!values || !types) return !values && !types; if (values->size() != types->size()) return false; - for (flatbuffers::uoffset_t i = 0; i < values->size(); ++i) { + for (::flatbuffers::uoffset_t i = 0; i < values->size(); ++i) { if (!VerifyAny( verifier, values->Get(i), types->GetEnum(i))) { return false; @@ -3359,7 +3359,7 @@ inline bool VerifyAnyVector(flatbuffers::Verifier &verifier, const flatbuffers:: return true; } -inline void *AnyUnion::UnPack(const void *obj, Any type, const flatbuffers::resolver_function_t *resolver) { +inline void *AnyUnion::UnPack(const void *obj, Any type, const ::flatbuffers::resolver_function_t *resolver) { (void)resolver; switch (type) { case Any_Monster: { @@ -3378,7 +3378,7 @@ inline void *AnyUnion::UnPack(const void *obj, Any type, const flatbuffers::reso } } -inline flatbuffers::Offset AnyUnion::Pack(flatbuffers::FlatBufferBuilder &_fbb, const flatbuffers::rehasher_function_t *_rehasher) const { +inline ::flatbuffers::Offset AnyUnion::Pack(::flatbuffers::FlatBufferBuilder &_fbb, const ::flatbuffers::rehasher_function_t *_rehasher) const { (void)_rehasher; switch (type) { case Any_Monster: { @@ -3439,7 +3439,7 @@ inline void AnyUnion::Reset() { type = Any_NONE; } -inline bool VerifyAnyUniqueAliases(flatbuffers::Verifier &verifier, const void *obj, AnyUniqueAliases type) { +inline bool VerifyAnyUniqueAliases(::flatbuffers::Verifier &verifier, const void *obj, AnyUniqueAliases type) { switch (type) { case AnyUniqueAliases_NONE: { return true; @@ -3460,10 +3460,10 @@ inline bool VerifyAnyUniqueAliases(flatbuffers::Verifier &verifier, const void * } } -inline bool VerifyAnyUniqueAliasesVector(flatbuffers::Verifier &verifier, const flatbuffers::Vector> *values, const flatbuffers::Vector *types) { +inline bool VerifyAnyUniqueAliasesVector(::flatbuffers::Verifier &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types) { if (!values || !types) return !values && !types; if (values->size() != types->size()) return false; - for (flatbuffers::uoffset_t i = 0; i < values->size(); ++i) { + for (::flatbuffers::uoffset_t i = 0; i < values->size(); ++i) { if (!VerifyAnyUniqueAliases( verifier, values->Get(i), types->GetEnum(i))) { return false; @@ -3472,7 +3472,7 @@ inline bool VerifyAnyUniqueAliasesVector(flatbuffers::Verifier &verifier, const return true; } -inline void *AnyUniqueAliasesUnion::UnPack(const void *obj, AnyUniqueAliases type, const flatbuffers::resolver_function_t *resolver) { +inline void *AnyUniqueAliasesUnion::UnPack(const void *obj, AnyUniqueAliases type, const ::flatbuffers::resolver_function_t *resolver) { (void)resolver; switch (type) { case AnyUniqueAliases_M: { @@ -3491,7 +3491,7 @@ inline void *AnyUniqueAliasesUnion::UnPack(const void *obj, AnyUniqueAliases typ } } -inline flatbuffers::Offset AnyUniqueAliasesUnion::Pack(flatbuffers::FlatBufferBuilder &_fbb, const flatbuffers::rehasher_function_t *_rehasher) const { +inline ::flatbuffers::Offset AnyUniqueAliasesUnion::Pack(::flatbuffers::FlatBufferBuilder &_fbb, const ::flatbuffers::rehasher_function_t *_rehasher) const { (void)_rehasher; switch (type) { case AnyUniqueAliases_M: { @@ -3552,7 +3552,7 @@ inline void AnyUniqueAliasesUnion::Reset() { type = AnyUniqueAliases_NONE; } -inline bool VerifyAnyAmbiguousAliases(flatbuffers::Verifier &verifier, const void *obj, AnyAmbiguousAliases type) { +inline bool VerifyAnyAmbiguousAliases(::flatbuffers::Verifier &verifier, const void *obj, AnyAmbiguousAliases type) { switch (type) { case AnyAmbiguousAliases_NONE: { return true; @@ -3573,10 +3573,10 @@ inline bool VerifyAnyAmbiguousAliases(flatbuffers::Verifier &verifier, const voi } } -inline bool VerifyAnyAmbiguousAliasesVector(flatbuffers::Verifier &verifier, const flatbuffers::Vector> *values, const flatbuffers::Vector *types) { +inline bool VerifyAnyAmbiguousAliasesVector(::flatbuffers::Verifier &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types) { if (!values || !types) return !values && !types; if (values->size() != types->size()) return false; - for (flatbuffers::uoffset_t i = 0; i < values->size(); ++i) { + for (::flatbuffers::uoffset_t i = 0; i < values->size(); ++i) { if (!VerifyAnyAmbiguousAliases( verifier, values->Get(i), types->GetEnum(i))) { return false; @@ -3585,7 +3585,7 @@ inline bool VerifyAnyAmbiguousAliasesVector(flatbuffers::Verifier &verifier, con return true; } -inline void *AnyAmbiguousAliasesUnion::UnPack(const void *obj, AnyAmbiguousAliases type, const flatbuffers::resolver_function_t *resolver) { +inline void *AnyAmbiguousAliasesUnion::UnPack(const void *obj, AnyAmbiguousAliases type, const ::flatbuffers::resolver_function_t *resolver) { (void)resolver; switch (type) { case AnyAmbiguousAliases_M1: { @@ -3604,7 +3604,7 @@ inline void *AnyAmbiguousAliasesUnion::UnPack(const void *obj, AnyAmbiguousAlias } } -inline flatbuffers::Offset AnyAmbiguousAliasesUnion::Pack(flatbuffers::FlatBufferBuilder &_fbb, const flatbuffers::rehasher_function_t *_rehasher) const { +inline ::flatbuffers::Offset AnyAmbiguousAliasesUnion::Pack(::flatbuffers::FlatBufferBuilder &_fbb, const ::flatbuffers::rehasher_function_t *_rehasher) const { (void)_rehasher; switch (type) { case AnyAmbiguousAliases_M1: { @@ -3665,13 +3665,13 @@ inline void AnyAmbiguousAliasesUnion::Reset() { type = AnyAmbiguousAliases_NONE; } -inline const flatbuffers::TypeTable *ColorTypeTable() { - static const flatbuffers::TypeCode type_codes[] = { - { flatbuffers::ET_UCHAR, 0, 0 }, - { flatbuffers::ET_UCHAR, 0, 0 }, - { flatbuffers::ET_UCHAR, 0, 0 } +inline const ::flatbuffers::TypeTable *ColorTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_UCHAR, 0, 0 }, + { ::flatbuffers::ET_UCHAR, 0, 0 }, + { ::flatbuffers::ET_UCHAR, 0, 0 } }; - static const flatbuffers::TypeFunction type_refs[] = { + static const ::flatbuffers::TypeFunction type_refs[] = { MyGame::Example::ColorTypeTable }; static const int64_t values[] = { 1, 2, 8 }; @@ -3680,20 +3680,20 @@ inline const flatbuffers::TypeTable *ColorTypeTable() { "Green", "Blue" }; - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_ENUM, 3, type_codes, type_refs, nullptr, values, names + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_ENUM, 3, type_codes, type_refs, nullptr, values, names }; return &tt; } -inline const flatbuffers::TypeTable *RaceTypeTable() { - static const flatbuffers::TypeCode type_codes[] = { - { flatbuffers::ET_CHAR, 0, 0 }, - { flatbuffers::ET_CHAR, 0, 0 }, - { flatbuffers::ET_CHAR, 0, 0 }, - { flatbuffers::ET_CHAR, 0, 0 } +inline const ::flatbuffers::TypeTable *RaceTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_CHAR, 0, 0 }, + { ::flatbuffers::ET_CHAR, 0, 0 }, + { ::flatbuffers::ET_CHAR, 0, 0 }, + { ::flatbuffers::ET_CHAR, 0, 0 } }; - static const flatbuffers::TypeFunction type_refs[] = { + static const ::flatbuffers::TypeFunction type_refs[] = { MyGame::Example::RaceTypeTable }; static const int64_t values[] = { -1, 0, 1, 2 }; @@ -3703,19 +3703,19 @@ inline const flatbuffers::TypeTable *RaceTypeTable() { "Dwarf", "Elf" }; - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_ENUM, 4, type_codes, type_refs, nullptr, values, names + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_ENUM, 4, type_codes, type_refs, nullptr, values, names }; return &tt; } -inline const flatbuffers::TypeTable *LongEnumTypeTable() { - static const flatbuffers::TypeCode type_codes[] = { - { flatbuffers::ET_ULONG, 0, 0 }, - { flatbuffers::ET_ULONG, 0, 0 }, - { flatbuffers::ET_ULONG, 0, 0 } +inline const ::flatbuffers::TypeTable *LongEnumTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_ULONG, 0, 0 }, + { ::flatbuffers::ET_ULONG, 0, 0 }, + { ::flatbuffers::ET_ULONG, 0, 0 } }; - static const flatbuffers::TypeFunction type_refs[] = { + static const ::flatbuffers::TypeFunction type_refs[] = { MyGame::Example::LongEnumTypeTable }; static const int64_t values[] = { 2ULL, 4ULL, 1099511627776ULL }; @@ -3724,20 +3724,20 @@ inline const flatbuffers::TypeTable *LongEnumTypeTable() { "LongTwo", "LongBig" }; - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_ENUM, 3, type_codes, type_refs, nullptr, values, names + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_ENUM, 3, type_codes, type_refs, nullptr, values, names }; return &tt; } -inline const flatbuffers::TypeTable *AnyTypeTable() { - static const flatbuffers::TypeCode type_codes[] = { - { flatbuffers::ET_SEQUENCE, 0, -1 }, - { flatbuffers::ET_SEQUENCE, 0, 0 }, - { flatbuffers::ET_SEQUENCE, 0, 1 }, - { flatbuffers::ET_SEQUENCE, 0, 2 } +inline const ::flatbuffers::TypeTable *AnyTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_SEQUENCE, 0, -1 }, + { ::flatbuffers::ET_SEQUENCE, 0, 0 }, + { ::flatbuffers::ET_SEQUENCE, 0, 1 }, + { ::flatbuffers::ET_SEQUENCE, 0, 2 } }; - static const flatbuffers::TypeFunction type_refs[] = { + static const ::flatbuffers::TypeFunction type_refs[] = { MyGame::Example::MonsterTypeTable, MyGame::Example::TestSimpleTableWithEnumTypeTable, MyGame::Example2::MonsterTypeTable @@ -3748,20 +3748,20 @@ inline const flatbuffers::TypeTable *AnyTypeTable() { "TestSimpleTableWithEnum", "MyGame_Example2_Monster" }; - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_UNION, 4, type_codes, type_refs, nullptr, nullptr, names + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_UNION, 4, type_codes, type_refs, nullptr, nullptr, names }; return &tt; } -inline const flatbuffers::TypeTable *AnyUniqueAliasesTypeTable() { - static const flatbuffers::TypeCode type_codes[] = { - { flatbuffers::ET_SEQUENCE, 0, -1 }, - { flatbuffers::ET_SEQUENCE, 0, 0 }, - { flatbuffers::ET_SEQUENCE, 0, 1 }, - { flatbuffers::ET_SEQUENCE, 0, 2 } +inline const ::flatbuffers::TypeTable *AnyUniqueAliasesTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_SEQUENCE, 0, -1 }, + { ::flatbuffers::ET_SEQUENCE, 0, 0 }, + { ::flatbuffers::ET_SEQUENCE, 0, 1 }, + { ::flatbuffers::ET_SEQUENCE, 0, 2 } }; - static const flatbuffers::TypeFunction type_refs[] = { + static const ::flatbuffers::TypeFunction type_refs[] = { MyGame::Example::MonsterTypeTable, MyGame::Example::TestSimpleTableWithEnumTypeTable, MyGame::Example2::MonsterTypeTable @@ -3772,20 +3772,20 @@ inline const flatbuffers::TypeTable *AnyUniqueAliasesTypeTable() { "TS", "M2" }; - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_UNION, 4, type_codes, type_refs, nullptr, nullptr, names + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_UNION, 4, type_codes, type_refs, nullptr, nullptr, names }; return &tt; } -inline const flatbuffers::TypeTable *AnyAmbiguousAliasesTypeTable() { - static const flatbuffers::TypeCode type_codes[] = { - { flatbuffers::ET_SEQUENCE, 0, -1 }, - { flatbuffers::ET_SEQUENCE, 0, 0 }, - { flatbuffers::ET_SEQUENCE, 0, 0 }, - { flatbuffers::ET_SEQUENCE, 0, 0 } +inline const ::flatbuffers::TypeTable *AnyAmbiguousAliasesTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_SEQUENCE, 0, -1 }, + { ::flatbuffers::ET_SEQUENCE, 0, 0 }, + { ::flatbuffers::ET_SEQUENCE, 0, 0 }, + { ::flatbuffers::ET_SEQUENCE, 0, 0 } }; - static const flatbuffers::TypeFunction type_refs[] = { + static const ::flatbuffers::TypeFunction type_refs[] = { MyGame::Example::MonsterTypeTable }; static const char * const names[] = { @@ -3794,26 +3794,26 @@ inline const flatbuffers::TypeTable *AnyAmbiguousAliasesTypeTable() { "M2", "M3" }; - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_UNION, 4, type_codes, type_refs, nullptr, nullptr, names + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_UNION, 4, type_codes, type_refs, nullptr, nullptr, names }; return &tt; } } // namespace Example -inline const flatbuffers::TypeTable *InParentNamespaceTypeTable() { - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_TABLE, 0, nullptr, nullptr, nullptr, nullptr, nullptr +inline const ::flatbuffers::TypeTable *InParentNamespaceTypeTable() { + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_TABLE, 0, nullptr, nullptr, nullptr, nullptr, nullptr }; return &tt; } namespace Example2 { -inline const flatbuffers::TypeTable *MonsterTypeTable() { - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_TABLE, 0, nullptr, nullptr, nullptr, nullptr, nullptr +inline const ::flatbuffers::TypeTable *MonsterTypeTable() { + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_TABLE, 0, nullptr, nullptr, nullptr, nullptr, nullptr }; return &tt; } @@ -3822,48 +3822,48 @@ inline const flatbuffers::TypeTable *MonsterTypeTable() { namespace Example { -inline const flatbuffers::TypeTable *TestTypeTable() { - static const flatbuffers::TypeCode type_codes[] = { - { flatbuffers::ET_SHORT, 0, -1 }, - { flatbuffers::ET_CHAR, 0, -1 } +inline const ::flatbuffers::TypeTable *TestTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_SHORT, 0, -1 }, + { ::flatbuffers::ET_CHAR, 0, -1 } }; static const int64_t values[] = { 0, 2, 4 }; static const char * const names[] = { "a", "b" }; - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_STRUCT, 2, type_codes, nullptr, nullptr, values, names + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_STRUCT, 2, type_codes, nullptr, nullptr, values, names }; return &tt; } -inline const flatbuffers::TypeTable *TestSimpleTableWithEnumTypeTable() { - static const flatbuffers::TypeCode type_codes[] = { - { flatbuffers::ET_UCHAR, 0, 0 } +inline const ::flatbuffers::TypeTable *TestSimpleTableWithEnumTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_UCHAR, 0, 0 } }; - static const flatbuffers::TypeFunction type_refs[] = { + static const ::flatbuffers::TypeFunction type_refs[] = { MyGame::Example::ColorTypeTable }; static const char * const names[] = { "color" }; - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_TABLE, 1, type_codes, type_refs, nullptr, nullptr, names + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_TABLE, 1, type_codes, type_refs, nullptr, nullptr, names }; return &tt; } -inline const flatbuffers::TypeTable *Vec3TypeTable() { - static const flatbuffers::TypeCode type_codes[] = { - { flatbuffers::ET_FLOAT, 0, -1 }, - { flatbuffers::ET_FLOAT, 0, -1 }, - { flatbuffers::ET_FLOAT, 0, -1 }, - { flatbuffers::ET_DOUBLE, 0, -1 }, - { flatbuffers::ET_UCHAR, 0, 0 }, - { flatbuffers::ET_SEQUENCE, 0, 1 } +inline const ::flatbuffers::TypeTable *Vec3TypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_FLOAT, 0, -1 }, + { ::flatbuffers::ET_FLOAT, 0, -1 }, + { ::flatbuffers::ET_FLOAT, 0, -1 }, + { ::flatbuffers::ET_DOUBLE, 0, -1 }, + { ::flatbuffers::ET_UCHAR, 0, 0 }, + { ::flatbuffers::ET_SEQUENCE, 0, 1 } }; - static const flatbuffers::TypeFunction type_refs[] = { + static const ::flatbuffers::TypeFunction type_refs[] = { MyGame::Example::ColorTypeTable, MyGame::Example::TestTypeTable }; @@ -3876,35 +3876,35 @@ inline const flatbuffers::TypeTable *Vec3TypeTable() { "test2", "test3" }; - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_STRUCT, 6, type_codes, type_refs, nullptr, values, names + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_STRUCT, 6, type_codes, type_refs, nullptr, values, names }; return &tt; } -inline const flatbuffers::TypeTable *AbilityTypeTable() { - static const flatbuffers::TypeCode type_codes[] = { - { flatbuffers::ET_UINT, 0, -1 }, - { flatbuffers::ET_UINT, 0, -1 } +inline const ::flatbuffers::TypeTable *AbilityTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_UINT, 0, -1 }, + { ::flatbuffers::ET_UINT, 0, -1 } }; static const int64_t values[] = { 0, 4, 8 }; static const char * const names[] = { "id", "distance" }; - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_STRUCT, 2, type_codes, nullptr, nullptr, values, names + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_STRUCT, 2, type_codes, nullptr, nullptr, values, names }; return &tt; } -inline const flatbuffers::TypeTable *StructOfStructsTypeTable() { - static const flatbuffers::TypeCode type_codes[] = { - { flatbuffers::ET_SEQUENCE, 0, 0 }, - { flatbuffers::ET_SEQUENCE, 0, 1 }, - { flatbuffers::ET_SEQUENCE, 0, 0 } +inline const ::flatbuffers::TypeTable *StructOfStructsTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_SEQUENCE, 0, 0 }, + { ::flatbuffers::ET_SEQUENCE, 0, 1 }, + { ::flatbuffers::ET_SEQUENCE, 0, 0 } }; - static const flatbuffers::TypeFunction type_refs[] = { + static const ::flatbuffers::TypeFunction type_refs[] = { MyGame::Example::AbilityTypeTable, MyGame::Example::TestTypeTable }; @@ -3914,125 +3914,125 @@ inline const flatbuffers::TypeTable *StructOfStructsTypeTable() { "b", "c" }; - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_STRUCT, 3, type_codes, type_refs, nullptr, values, names + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_STRUCT, 3, type_codes, type_refs, nullptr, values, names }; return &tt; } -inline const flatbuffers::TypeTable *StructOfStructsOfStructsTypeTable() { - static const flatbuffers::TypeCode type_codes[] = { - { flatbuffers::ET_SEQUENCE, 0, 0 } +inline const ::flatbuffers::TypeTable *StructOfStructsOfStructsTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_SEQUENCE, 0, 0 } }; - static const flatbuffers::TypeFunction type_refs[] = { + static const ::flatbuffers::TypeFunction type_refs[] = { MyGame::Example::StructOfStructsTypeTable }; static const int64_t values[] = { 0, 20 }; static const char * const names[] = { "a" }; - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_STRUCT, 1, type_codes, type_refs, nullptr, values, names + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_STRUCT, 1, type_codes, type_refs, nullptr, values, names }; return &tt; } -inline const flatbuffers::TypeTable *StatTypeTable() { - static const flatbuffers::TypeCode type_codes[] = { - { flatbuffers::ET_STRING, 0, -1 }, - { flatbuffers::ET_LONG, 0, -1 }, - { flatbuffers::ET_USHORT, 0, -1 } +inline const ::flatbuffers::TypeTable *StatTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_STRING, 0, -1 }, + { ::flatbuffers::ET_LONG, 0, -1 }, + { ::flatbuffers::ET_USHORT, 0, -1 } }; static const char * const names[] = { "id", "val", "count" }; - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_TABLE, 3, type_codes, nullptr, nullptr, nullptr, names + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_TABLE, 3, type_codes, nullptr, nullptr, nullptr, names }; return &tt; } -inline const flatbuffers::TypeTable *ReferrableTypeTable() { - static const flatbuffers::TypeCode type_codes[] = { - { flatbuffers::ET_ULONG, 0, -1 } +inline const ::flatbuffers::TypeTable *ReferrableTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_ULONG, 0, -1 } }; static const char * const names[] = { "id" }; - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_TABLE, 1, type_codes, nullptr, nullptr, nullptr, names + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_TABLE, 1, type_codes, nullptr, nullptr, nullptr, names }; return &tt; } -inline const flatbuffers::TypeTable *MonsterTypeTable() { - static const flatbuffers::TypeCode type_codes[] = { - { flatbuffers::ET_SEQUENCE, 0, 0 }, - { flatbuffers::ET_SHORT, 0, -1 }, - { flatbuffers::ET_SHORT, 0, -1 }, - { flatbuffers::ET_STRING, 0, -1 }, - { flatbuffers::ET_BOOL, 0, -1 }, - { flatbuffers::ET_UCHAR, 1, -1 }, - { flatbuffers::ET_UCHAR, 0, 1 }, - { flatbuffers::ET_UTYPE, 0, 2 }, - { flatbuffers::ET_SEQUENCE, 0, 2 }, - { flatbuffers::ET_SEQUENCE, 1, 3 }, - { flatbuffers::ET_STRING, 1, -1 }, - { flatbuffers::ET_SEQUENCE, 1, 4 }, - { flatbuffers::ET_SEQUENCE, 0, 4 }, - { flatbuffers::ET_UCHAR, 1, -1 }, - { flatbuffers::ET_SEQUENCE, 0, 5 }, - { flatbuffers::ET_BOOL, 0, -1 }, - { flatbuffers::ET_INT, 0, -1 }, - { flatbuffers::ET_UINT, 0, -1 }, - { flatbuffers::ET_LONG, 0, -1 }, - { flatbuffers::ET_ULONG, 0, -1 }, - { flatbuffers::ET_INT, 0, -1 }, - { flatbuffers::ET_UINT, 0, -1 }, - { flatbuffers::ET_LONG, 0, -1 }, - { flatbuffers::ET_ULONG, 0, -1 }, - { flatbuffers::ET_BOOL, 1, -1 }, - { flatbuffers::ET_FLOAT, 0, -1 }, - { flatbuffers::ET_FLOAT, 0, -1 }, - { flatbuffers::ET_FLOAT, 0, -1 }, - { flatbuffers::ET_STRING, 1, -1 }, - { flatbuffers::ET_SEQUENCE, 1, 6 }, - { flatbuffers::ET_UCHAR, 1, -1 }, - { flatbuffers::ET_SEQUENCE, 1, 3 }, - { flatbuffers::ET_LONG, 1, -1 }, - { flatbuffers::ET_DOUBLE, 1, -1 }, - { flatbuffers::ET_SEQUENCE, 0, 7 }, - { flatbuffers::ET_SEQUENCE, 1, 8 }, - { flatbuffers::ET_ULONG, 0, -1 }, - { flatbuffers::ET_ULONG, 1, -1 }, - { flatbuffers::ET_SEQUENCE, 1, 8 }, - { flatbuffers::ET_ULONG, 0, -1 }, - { flatbuffers::ET_ULONG, 1, -1 }, - { flatbuffers::ET_ULONG, 0, -1 }, - { flatbuffers::ET_ULONG, 1, -1 }, - { flatbuffers::ET_UTYPE, 0, 9 }, - { flatbuffers::ET_SEQUENCE, 0, 9 }, - { flatbuffers::ET_UTYPE, 0, 10 }, - { flatbuffers::ET_SEQUENCE, 0, 10 }, - { flatbuffers::ET_UCHAR, 1, 1 }, - { flatbuffers::ET_CHAR, 0, 11 }, - { flatbuffers::ET_UCHAR, 1, -1 }, - { flatbuffers::ET_SEQUENCE, 1, 5 }, - { flatbuffers::ET_SEQUENCE, 0, 3 }, - { flatbuffers::ET_ULONG, 0, 12 }, - { flatbuffers::ET_ULONG, 0, 12 }, - { flatbuffers::ET_FLOAT, 0, -1 }, - { flatbuffers::ET_FLOAT, 0, -1 }, - { flatbuffers::ET_FLOAT, 0, -1 }, - { flatbuffers::ET_FLOAT, 0, -1 }, - { flatbuffers::ET_FLOAT, 0, -1 }, - { flatbuffers::ET_FLOAT, 0, -1 }, - { flatbuffers::ET_FLOAT, 0, -1 }, - { flatbuffers::ET_DOUBLE, 0, -1 } +inline const ::flatbuffers::TypeTable *MonsterTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_SEQUENCE, 0, 0 }, + { ::flatbuffers::ET_SHORT, 0, -1 }, + { ::flatbuffers::ET_SHORT, 0, -1 }, + { ::flatbuffers::ET_STRING, 0, -1 }, + { ::flatbuffers::ET_BOOL, 0, -1 }, + { ::flatbuffers::ET_UCHAR, 1, -1 }, + { ::flatbuffers::ET_UCHAR, 0, 1 }, + { ::flatbuffers::ET_UTYPE, 0, 2 }, + { ::flatbuffers::ET_SEQUENCE, 0, 2 }, + { ::flatbuffers::ET_SEQUENCE, 1, 3 }, + { ::flatbuffers::ET_STRING, 1, -1 }, + { ::flatbuffers::ET_SEQUENCE, 1, 4 }, + { ::flatbuffers::ET_SEQUENCE, 0, 4 }, + { ::flatbuffers::ET_UCHAR, 1, -1 }, + { ::flatbuffers::ET_SEQUENCE, 0, 5 }, + { ::flatbuffers::ET_BOOL, 0, -1 }, + { ::flatbuffers::ET_INT, 0, -1 }, + { ::flatbuffers::ET_UINT, 0, -1 }, + { ::flatbuffers::ET_LONG, 0, -1 }, + { ::flatbuffers::ET_ULONG, 0, -1 }, + { ::flatbuffers::ET_INT, 0, -1 }, + { ::flatbuffers::ET_UINT, 0, -1 }, + { ::flatbuffers::ET_LONG, 0, -1 }, + { ::flatbuffers::ET_ULONG, 0, -1 }, + { ::flatbuffers::ET_BOOL, 1, -1 }, + { ::flatbuffers::ET_FLOAT, 0, -1 }, + { ::flatbuffers::ET_FLOAT, 0, -1 }, + { ::flatbuffers::ET_FLOAT, 0, -1 }, + { ::flatbuffers::ET_STRING, 1, -1 }, + { ::flatbuffers::ET_SEQUENCE, 1, 6 }, + { ::flatbuffers::ET_UCHAR, 1, -1 }, + { ::flatbuffers::ET_SEQUENCE, 1, 3 }, + { ::flatbuffers::ET_LONG, 1, -1 }, + { ::flatbuffers::ET_DOUBLE, 1, -1 }, + { ::flatbuffers::ET_SEQUENCE, 0, 7 }, + { ::flatbuffers::ET_SEQUENCE, 1, 8 }, + { ::flatbuffers::ET_ULONG, 0, -1 }, + { ::flatbuffers::ET_ULONG, 1, -1 }, + { ::flatbuffers::ET_SEQUENCE, 1, 8 }, + { ::flatbuffers::ET_ULONG, 0, -1 }, + { ::flatbuffers::ET_ULONG, 1, -1 }, + { ::flatbuffers::ET_ULONG, 0, -1 }, + { ::flatbuffers::ET_ULONG, 1, -1 }, + { ::flatbuffers::ET_UTYPE, 0, 9 }, + { ::flatbuffers::ET_SEQUENCE, 0, 9 }, + { ::flatbuffers::ET_UTYPE, 0, 10 }, + { ::flatbuffers::ET_SEQUENCE, 0, 10 }, + { ::flatbuffers::ET_UCHAR, 1, 1 }, + { ::flatbuffers::ET_CHAR, 0, 11 }, + { ::flatbuffers::ET_UCHAR, 1, -1 }, + { ::flatbuffers::ET_SEQUENCE, 1, 5 }, + { ::flatbuffers::ET_SEQUENCE, 0, 3 }, + { ::flatbuffers::ET_ULONG, 0, 12 }, + { ::flatbuffers::ET_ULONG, 0, 12 }, + { ::flatbuffers::ET_FLOAT, 0, -1 }, + { ::flatbuffers::ET_FLOAT, 0, -1 }, + { ::flatbuffers::ET_FLOAT, 0, -1 }, + { ::flatbuffers::ET_FLOAT, 0, -1 }, + { ::flatbuffers::ET_FLOAT, 0, -1 }, + { ::flatbuffers::ET_FLOAT, 0, -1 }, + { ::flatbuffers::ET_FLOAT, 0, -1 }, + { ::flatbuffers::ET_DOUBLE, 0, -1 } }; - static const flatbuffers::TypeFunction type_refs[] = { + static const ::flatbuffers::TypeFunction type_refs[] = { MyGame::Example::Vec3TypeTable, MyGame::Example::ColorTypeTable, MyGame::Example::AnyTypeTable, @@ -4111,26 +4111,26 @@ inline const flatbuffers::TypeTable *MonsterTypeTable() { "negative_infinity_default", "double_inf_default" }; - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_TABLE, 62, type_codes, type_refs, nullptr, nullptr, names + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_TABLE, 62, type_codes, type_refs, nullptr, nullptr, names }; return &tt; } -inline const flatbuffers::TypeTable *TypeAliasesTypeTable() { - static const flatbuffers::TypeCode type_codes[] = { - { flatbuffers::ET_CHAR, 0, -1 }, - { flatbuffers::ET_UCHAR, 0, -1 }, - { flatbuffers::ET_SHORT, 0, -1 }, - { flatbuffers::ET_USHORT, 0, -1 }, - { flatbuffers::ET_INT, 0, -1 }, - { flatbuffers::ET_UINT, 0, -1 }, - { flatbuffers::ET_LONG, 0, -1 }, - { flatbuffers::ET_ULONG, 0, -1 }, - { flatbuffers::ET_FLOAT, 0, -1 }, - { flatbuffers::ET_DOUBLE, 0, -1 }, - { flatbuffers::ET_CHAR, 1, -1 }, - { flatbuffers::ET_DOUBLE, 1, -1 } +inline const ::flatbuffers::TypeTable *TypeAliasesTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_CHAR, 0, -1 }, + { ::flatbuffers::ET_UCHAR, 0, -1 }, + { ::flatbuffers::ET_SHORT, 0, -1 }, + { ::flatbuffers::ET_USHORT, 0, -1 }, + { ::flatbuffers::ET_INT, 0, -1 }, + { ::flatbuffers::ET_UINT, 0, -1 }, + { ::flatbuffers::ET_LONG, 0, -1 }, + { ::flatbuffers::ET_ULONG, 0, -1 }, + { ::flatbuffers::ET_FLOAT, 0, -1 }, + { ::flatbuffers::ET_DOUBLE, 0, -1 }, + { ::flatbuffers::ET_CHAR, 1, -1 }, + { ::flatbuffers::ET_DOUBLE, 1, -1 } }; static const char * const names[] = { "i8", @@ -4146,26 +4146,26 @@ inline const flatbuffers::TypeTable *TypeAliasesTypeTable() { "v8", "vf64" }; - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_TABLE, 12, type_codes, nullptr, nullptr, nullptr, names + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_TABLE, 12, type_codes, nullptr, nullptr, nullptr, names }; return &tt; } inline const MyGame::Example::Monster *GetMonster(const void *buf) { - return flatbuffers::GetRoot(buf); + return ::flatbuffers::GetRoot(buf); } inline const MyGame::Example::Monster *GetSizePrefixedMonster(const void *buf) { - return flatbuffers::GetSizePrefixedRoot(buf); + return ::flatbuffers::GetSizePrefixedRoot(buf); } inline Monster *GetMutableMonster(void *buf) { - return flatbuffers::GetMutableRoot(buf); + return ::flatbuffers::GetMutableRoot(buf); } inline MyGame::Example::Monster *GetMutableSizePrefixedMonster(void *buf) { - return flatbuffers::GetMutableSizePrefixedRoot(buf); + return ::flatbuffers::GetMutableSizePrefixedRoot(buf); } inline const char *MonsterIdentifier() { @@ -4173,22 +4173,22 @@ inline const char *MonsterIdentifier() { } inline bool MonsterBufferHasIdentifier(const void *buf) { - return flatbuffers::BufferHasIdentifier( + return ::flatbuffers::BufferHasIdentifier( buf, MonsterIdentifier()); } inline bool SizePrefixedMonsterBufferHasIdentifier(const void *buf) { - return flatbuffers::BufferHasIdentifier( + return ::flatbuffers::BufferHasIdentifier( buf, MonsterIdentifier(), true); } inline bool VerifyMonsterBuffer( - flatbuffers::Verifier &verifier) { + ::flatbuffers::Verifier &verifier) { return verifier.VerifyBuffer(MonsterIdentifier()); } inline bool VerifySizePrefixedMonsterBuffer( - flatbuffers::Verifier &verifier) { + ::flatbuffers::Verifier &verifier) { return verifier.VerifySizePrefixedBuffer(MonsterIdentifier()); } @@ -4197,26 +4197,26 @@ inline const char *MonsterExtension() { } inline void FinishMonsterBuffer( - flatbuffers::FlatBufferBuilder &fbb, - flatbuffers::Offset root) { + ::flatbuffers::FlatBufferBuilder &fbb, + ::flatbuffers::Offset root) { fbb.Finish(root, MonsterIdentifier()); } inline void FinishSizePrefixedMonsterBuffer( - flatbuffers::FlatBufferBuilder &fbb, - flatbuffers::Offset root) { + ::flatbuffers::FlatBufferBuilder &fbb, + ::flatbuffers::Offset root) { fbb.FinishSizePrefixed(root, MonsterIdentifier()); } inline flatbuffers::unique_ptr UnPackMonster( const void *buf, - const flatbuffers::resolver_function_t *res = nullptr) { + const ::flatbuffers::resolver_function_t *res = nullptr) { return flatbuffers::unique_ptr(GetMonster(buf)->UnPack(res)); } inline flatbuffers::unique_ptr UnPackSizePrefixedMonster( const void *buf, - const flatbuffers::resolver_function_t *res = nullptr) { + const ::flatbuffers::resolver_function_t *res = nullptr) { return flatbuffers::unique_ptr(GetSizePrefixedMonster(buf)->UnPack(res)); } diff --git a/tests/monster_test_suffix/ext_only/monster_test_generated.hpp b/tests/monster_test_suffix/ext_only/monster_test_generated.hpp index 9401897ffd..bd32dc3106 100644 --- a/tests/monster_test_suffix/ext_only/monster_test_generated.hpp +++ b/tests/monster_test_suffix/ext_only/monster_test_generated.hpp @@ -96,35 +96,35 @@ bool operator!=(const TypeAliasesT &lhs, const TypeAliasesT &rhs); } // namespace Example -inline const flatbuffers::TypeTable *InParentNamespaceTypeTable(); +inline const ::flatbuffers::TypeTable *InParentNamespaceTypeTable(); namespace Example2 { -inline const flatbuffers::TypeTable *MonsterTypeTable(); +inline const ::flatbuffers::TypeTable *MonsterTypeTable(); } // namespace Example2 namespace Example { -inline const flatbuffers::TypeTable *TestTypeTable(); +inline const ::flatbuffers::TypeTable *TestTypeTable(); -inline const flatbuffers::TypeTable *TestSimpleTableWithEnumTypeTable(); +inline const ::flatbuffers::TypeTable *TestSimpleTableWithEnumTypeTable(); -inline const flatbuffers::TypeTable *Vec3TypeTable(); +inline const ::flatbuffers::TypeTable *Vec3TypeTable(); -inline const flatbuffers::TypeTable *AbilityTypeTable(); +inline const ::flatbuffers::TypeTable *AbilityTypeTable(); -inline const flatbuffers::TypeTable *StructOfStructsTypeTable(); +inline const ::flatbuffers::TypeTable *StructOfStructsTypeTable(); -inline const flatbuffers::TypeTable *StructOfStructsOfStructsTypeTable(); +inline const ::flatbuffers::TypeTable *StructOfStructsOfStructsTypeTable(); -inline const flatbuffers::TypeTable *StatTypeTable(); +inline const ::flatbuffers::TypeTable *StatTypeTable(); -inline const flatbuffers::TypeTable *ReferrableTypeTable(); +inline const ::flatbuffers::TypeTable *ReferrableTypeTable(); -inline const flatbuffers::TypeTable *MonsterTypeTable(); +inline const ::flatbuffers::TypeTable *MonsterTypeTable(); -inline const flatbuffers::TypeTable *TypeAliasesTypeTable(); +inline const ::flatbuffers::TypeTable *TypeAliasesTypeTable(); /// Composite components of Monster color. enum Color : uint8_t { @@ -163,7 +163,7 @@ inline const char * const *EnumNamesColor() { } inline const char *EnumNameColor(Color e) { - if (flatbuffers::IsOutRange(e, Color_Red, Color_Blue)) return ""; + if (::flatbuffers::IsOutRange(e, Color_Red, Color_Blue)) return ""; const size_t index = static_cast(e) - static_cast(Color_Red); return EnumNamesColor()[index]; } @@ -199,7 +199,7 @@ inline const char * const *EnumNamesRace() { } inline const char *EnumNameRace(Race e) { - if (flatbuffers::IsOutRange(e, Race_None, Race_Elf)) return ""; + if (::flatbuffers::IsOutRange(e, Race_None, Race_Elf)) return ""; const size_t index = static_cast(e) - static_cast(Race_None); return EnumNamesRace()[index]; } @@ -261,7 +261,7 @@ inline const char * const *EnumNamesAny() { } inline const char *EnumNameAny(Any e) { - if (flatbuffers::IsOutRange(e, Any_NONE, Any_MyGame_Example2_Monster)) return ""; + if (::flatbuffers::IsOutRange(e, Any_NONE, Any_MyGame_Example2_Monster)) return ""; const size_t index = static_cast(e); return EnumNamesAny()[index]; } @@ -325,8 +325,8 @@ struct AnyUnion { } } - static void *UnPack(const void *obj, Any type, const flatbuffers::resolver_function_t *resolver); - flatbuffers::Offset Pack(flatbuffers::FlatBufferBuilder &_fbb, const flatbuffers::rehasher_function_t *_rehasher = nullptr) const; + static void *UnPack(const void *obj, Any type, const ::flatbuffers::resolver_function_t *resolver); + ::flatbuffers::Offset Pack(::flatbuffers::FlatBufferBuilder &_fbb, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr) const; MyGame::Example::MonsterT *AsMonster() { return type == Any_Monster ? @@ -383,8 +383,8 @@ inline bool operator!=(const AnyUnion &lhs, const AnyUnion &rhs) { return !(lhs == rhs); } -bool VerifyAny(flatbuffers::Verifier &verifier, const void *obj, Any type); -bool VerifyAnyVector(flatbuffers::Verifier &verifier, const flatbuffers::Vector> *values, const flatbuffers::Vector *types); +bool VerifyAny(::flatbuffers::Verifier &verifier, const void *obj, Any type); +bool VerifyAnyVector(::flatbuffers::Verifier &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types); enum AnyUniqueAliases : uint8_t { AnyUniqueAliases_NONE = 0, @@ -417,7 +417,7 @@ inline const char * const *EnumNamesAnyUniqueAliases() { } inline const char *EnumNameAnyUniqueAliases(AnyUniqueAliases e) { - if (flatbuffers::IsOutRange(e, AnyUniqueAliases_NONE, AnyUniqueAliases_M2)) return ""; + if (::flatbuffers::IsOutRange(e, AnyUniqueAliases_NONE, AnyUniqueAliases_M2)) return ""; const size_t index = static_cast(e); return EnumNamesAnyUniqueAliases()[index]; } @@ -481,8 +481,8 @@ struct AnyUniqueAliasesUnion { } } - static void *UnPack(const void *obj, AnyUniqueAliases type, const flatbuffers::resolver_function_t *resolver); - flatbuffers::Offset Pack(flatbuffers::FlatBufferBuilder &_fbb, const flatbuffers::rehasher_function_t *_rehasher = nullptr) const; + static void *UnPack(const void *obj, AnyUniqueAliases type, const ::flatbuffers::resolver_function_t *resolver); + ::flatbuffers::Offset Pack(::flatbuffers::FlatBufferBuilder &_fbb, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr) const; MyGame::Example::MonsterT *AsM() { return type == AnyUniqueAliases_M ? @@ -539,8 +539,8 @@ inline bool operator!=(const AnyUniqueAliasesUnion &lhs, const AnyUniqueAliasesU return !(lhs == rhs); } -bool VerifyAnyUniqueAliases(flatbuffers::Verifier &verifier, const void *obj, AnyUniqueAliases type); -bool VerifyAnyUniqueAliasesVector(flatbuffers::Verifier &verifier, const flatbuffers::Vector> *values, const flatbuffers::Vector *types); +bool VerifyAnyUniqueAliases(::flatbuffers::Verifier &verifier, const void *obj, AnyUniqueAliases type); +bool VerifyAnyUniqueAliasesVector(::flatbuffers::Verifier &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types); enum AnyAmbiguousAliases : uint8_t { AnyAmbiguousAliases_NONE = 0, @@ -573,7 +573,7 @@ inline const char * const *EnumNamesAnyAmbiguousAliases() { } inline const char *EnumNameAnyAmbiguousAliases(AnyAmbiguousAliases e) { - if (flatbuffers::IsOutRange(e, AnyAmbiguousAliases_NONE, AnyAmbiguousAliases_M3)) return ""; + if (::flatbuffers::IsOutRange(e, AnyAmbiguousAliases_NONE, AnyAmbiguousAliases_M3)) return ""; const size_t index = static_cast(e); return EnumNamesAnyAmbiguousAliases()[index]; } @@ -595,8 +595,8 @@ struct AnyAmbiguousAliasesUnion { void Reset(); - static void *UnPack(const void *obj, AnyAmbiguousAliases type, const flatbuffers::resolver_function_t *resolver); - flatbuffers::Offset Pack(flatbuffers::FlatBufferBuilder &_fbb, const flatbuffers::rehasher_function_t *_rehasher = nullptr) const; + static void *UnPack(const void *obj, AnyAmbiguousAliases type, const ::flatbuffers::resolver_function_t *resolver); + ::flatbuffers::Offset Pack(::flatbuffers::FlatBufferBuilder &_fbb, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr) const; MyGame::Example::MonsterT *AsM1() { return type == AnyAmbiguousAliases_M1 ? @@ -653,8 +653,8 @@ inline bool operator!=(const AnyAmbiguousAliasesUnion &lhs, const AnyAmbiguousAl return !(lhs == rhs); } -bool VerifyAnyAmbiguousAliases(flatbuffers::Verifier &verifier, const void *obj, AnyAmbiguousAliases type); -bool VerifyAnyAmbiguousAliasesVector(flatbuffers::Verifier &verifier, const flatbuffers::Vector> *values, const flatbuffers::Vector *types); +bool VerifyAnyAmbiguousAliases(::flatbuffers::Verifier &verifier, const void *obj, AnyAmbiguousAliases type); +bool VerifyAnyAmbiguousAliasesVector(::flatbuffers::Verifier &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types); FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(2) Test FLATBUFFERS_FINAL_CLASS { private: @@ -663,7 +663,7 @@ FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(2) Test FLATBUFFERS_FINAL_CLASS { int8_t padding0__; public: - static const flatbuffers::TypeTable *MiniReflectTypeTable() { + static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { return TestTypeTable(); } Test() @@ -673,22 +673,22 @@ FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(2) Test FLATBUFFERS_FINAL_CLASS { (void)padding0__; } Test(int16_t _a, int8_t _b) - : a_(flatbuffers::EndianScalar(_a)), - b_(flatbuffers::EndianScalar(_b)), + : a_(::flatbuffers::EndianScalar(_a)), + b_(::flatbuffers::EndianScalar(_b)), padding0__(0) { (void)padding0__; } int16_t a() const { - return flatbuffers::EndianScalar(a_); + return ::flatbuffers::EndianScalar(a_); } void mutate_a(int16_t _a) { - flatbuffers::WriteScalar(&a_, _a); + ::flatbuffers::WriteScalar(&a_, _a); } int8_t b() const { - return flatbuffers::EndianScalar(b_); + return ::flatbuffers::EndianScalar(b_); } void mutate_b(int8_t _b) { - flatbuffers::WriteScalar(&b_, _b); + ::flatbuffers::WriteScalar(&b_, _b); } }; FLATBUFFERS_STRUCT_END(Test, 4); @@ -717,7 +717,7 @@ FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(8) Vec3 FLATBUFFERS_FINAL_CLASS { int16_t padding2__; public: - static const flatbuffers::TypeTable *MiniReflectTypeTable() { + static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { return Vec3TypeTable(); } Vec3() @@ -735,12 +735,12 @@ FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(8) Vec3 FLATBUFFERS_FINAL_CLASS { (void)padding2__; } Vec3(float _x, float _y, float _z, double _test1, MyGame::Example::Color _test2, const MyGame::Example::Test &_test3) - : x_(flatbuffers::EndianScalar(_x)), - y_(flatbuffers::EndianScalar(_y)), - z_(flatbuffers::EndianScalar(_z)), + : x_(::flatbuffers::EndianScalar(_x)), + y_(::flatbuffers::EndianScalar(_y)), + z_(::flatbuffers::EndianScalar(_z)), padding0__(0), - test1_(flatbuffers::EndianScalar(_test1)), - test2_(flatbuffers::EndianScalar(static_cast(_test2))), + test1_(::flatbuffers::EndianScalar(_test1)), + test2_(::flatbuffers::EndianScalar(static_cast(_test2))), padding1__(0), test3_(_test3), padding2__(0) { @@ -749,34 +749,34 @@ FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(8) Vec3 FLATBUFFERS_FINAL_CLASS { (void)padding2__; } float x() const { - return flatbuffers::EndianScalar(x_); + return ::flatbuffers::EndianScalar(x_); } void mutate_x(float _x) { - flatbuffers::WriteScalar(&x_, _x); + ::flatbuffers::WriteScalar(&x_, _x); } float y() const { - return flatbuffers::EndianScalar(y_); + return ::flatbuffers::EndianScalar(y_); } void mutate_y(float _y) { - flatbuffers::WriteScalar(&y_, _y); + ::flatbuffers::WriteScalar(&y_, _y); } float z() const { - return flatbuffers::EndianScalar(z_); + return ::flatbuffers::EndianScalar(z_); } void mutate_z(float _z) { - flatbuffers::WriteScalar(&z_, _z); + ::flatbuffers::WriteScalar(&z_, _z); } double test1() const { - return flatbuffers::EndianScalar(test1_); + return ::flatbuffers::EndianScalar(test1_); } void mutate_test1(double _test1) { - flatbuffers::WriteScalar(&test1_, _test1); + ::flatbuffers::WriteScalar(&test1_, _test1); } MyGame::Example::Color test2() const { - return static_cast(flatbuffers::EndianScalar(test2_)); + return static_cast(::flatbuffers::EndianScalar(test2_)); } void mutate_test2(MyGame::Example::Color _test2) { - flatbuffers::WriteScalar(&test2_, static_cast(_test2)); + ::flatbuffers::WriteScalar(&test2_, static_cast(_test2)); } const MyGame::Example::Test &test3() const { return test3_; @@ -808,7 +808,7 @@ FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(4) Ability FLATBUFFERS_FINAL_CLASS { uint32_t distance_; public: - static const flatbuffers::TypeTable *MiniReflectTypeTable() { + static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { return AbilityTypeTable(); } Ability() @@ -816,14 +816,14 @@ FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(4) Ability FLATBUFFERS_FINAL_CLASS { distance_(0) { } Ability(uint32_t _id, uint32_t _distance) - : id_(flatbuffers::EndianScalar(_id)), - distance_(flatbuffers::EndianScalar(_distance)) { + : id_(::flatbuffers::EndianScalar(_id)), + distance_(::flatbuffers::EndianScalar(_distance)) { } uint32_t id() const { - return flatbuffers::EndianScalar(id_); + return ::flatbuffers::EndianScalar(id_); } void mutate_id(uint32_t _id) { - flatbuffers::WriteScalar(&id_, _id); + ::flatbuffers::WriteScalar(&id_, _id); } bool KeyCompareLessThan(const Ability * const o) const { return id() < o->id(); @@ -832,10 +832,10 @@ FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(4) Ability FLATBUFFERS_FINAL_CLASS { return static_cast(id() > _id) - static_cast(id() < _id); } uint32_t distance() const { - return flatbuffers::EndianScalar(distance_); + return ::flatbuffers::EndianScalar(distance_); } void mutate_distance(uint32_t _distance) { - flatbuffers::WriteScalar(&distance_, _distance); + ::flatbuffers::WriteScalar(&distance_, _distance); } }; FLATBUFFERS_STRUCT_END(Ability, 8); @@ -858,7 +858,7 @@ FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(4) StructOfStructs FLATBUFFERS_FINAL_CLASS { MyGame::Example::Ability c_; public: - static const flatbuffers::TypeTable *MiniReflectTypeTable() { + static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { return StructOfStructsTypeTable(); } StructOfStructs() @@ -909,7 +909,7 @@ FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(4) StructOfStructsOfStructs FLATBUFFERS_FINA MyGame::Example::StructOfStructs a_; public: - static const flatbuffers::TypeTable *MiniReflectTypeTable() { + static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { return StructOfStructsOfStructsTypeTable(); } StructOfStructsOfStructs() @@ -939,105 +939,105 @@ inline bool operator!=(const StructOfStructsOfStructs &lhs, const StructOfStruct } // namespace Example -struct InParentNamespaceT : public flatbuffers::NativeTable { +struct InParentNamespaceT : public ::flatbuffers::NativeTable { typedef InParentNamespace TableType; }; -struct InParentNamespace FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { +struct InParentNamespace FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { typedef InParentNamespaceT NativeTableType; typedef InParentNamespaceBuilder Builder; - static const flatbuffers::TypeTable *MiniReflectTypeTable() { + static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { return InParentNamespaceTypeTable(); } - bool Verify(flatbuffers::Verifier &verifier) const { + bool Verify(::flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && verifier.EndTable(); } - InParentNamespaceT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; - void UnPackTo(InParentNamespaceT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const; - static flatbuffers::Offset Pack(flatbuffers::FlatBufferBuilder &_fbb, const InParentNamespaceT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); + InParentNamespaceT *UnPack(const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; + void UnPackTo(InParentNamespaceT *_o, const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; + static ::flatbuffers::Offset Pack(::flatbuffers::FlatBufferBuilder &_fbb, const InParentNamespaceT* _o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); }; struct InParentNamespaceBuilder { typedef InParentNamespace Table; - flatbuffers::FlatBufferBuilder &fbb_; - flatbuffers::uoffset_t start_; - explicit InParentNamespaceBuilder(flatbuffers::FlatBufferBuilder &_fbb) + ::flatbuffers::FlatBufferBuilder &fbb_; + ::flatbuffers::uoffset_t start_; + explicit InParentNamespaceBuilder(::flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); } - flatbuffers::Offset Finish() { + ::flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); - auto o = flatbuffers::Offset(end); + auto o = ::flatbuffers::Offset(end); return o; } }; -inline flatbuffers::Offset CreateInParentNamespace( - flatbuffers::FlatBufferBuilder &_fbb) { +inline ::flatbuffers::Offset CreateInParentNamespace( + ::flatbuffers::FlatBufferBuilder &_fbb) { InParentNamespaceBuilder builder_(_fbb); return builder_.Finish(); } -flatbuffers::Offset CreateInParentNamespace(flatbuffers::FlatBufferBuilder &_fbb, const InParentNamespaceT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); +::flatbuffers::Offset CreateInParentNamespace(::flatbuffers::FlatBufferBuilder &_fbb, const InParentNamespaceT *_o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); namespace Example2 { -struct MonsterT : public flatbuffers::NativeTable { +struct MonsterT : public ::flatbuffers::NativeTable { typedef Monster TableType; }; -struct Monster FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { +struct Monster FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { typedef MonsterT NativeTableType; typedef MonsterBuilder Builder; - static const flatbuffers::TypeTable *MiniReflectTypeTable() { + static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { return MonsterTypeTable(); } - bool Verify(flatbuffers::Verifier &verifier) const { + bool Verify(::flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && verifier.EndTable(); } - MonsterT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; - void UnPackTo(MonsterT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const; - static flatbuffers::Offset Pack(flatbuffers::FlatBufferBuilder &_fbb, const MonsterT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); + MonsterT *UnPack(const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; + void UnPackTo(MonsterT *_o, const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; + static ::flatbuffers::Offset Pack(::flatbuffers::FlatBufferBuilder &_fbb, const MonsterT* _o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); }; struct MonsterBuilder { typedef Monster Table; - flatbuffers::FlatBufferBuilder &fbb_; - flatbuffers::uoffset_t start_; - explicit MonsterBuilder(flatbuffers::FlatBufferBuilder &_fbb) + ::flatbuffers::FlatBufferBuilder &fbb_; + ::flatbuffers::uoffset_t start_; + explicit MonsterBuilder(::flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); } - flatbuffers::Offset Finish() { + ::flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); - auto o = flatbuffers::Offset(end); + auto o = ::flatbuffers::Offset(end); return o; } }; -inline flatbuffers::Offset CreateMonster( - flatbuffers::FlatBufferBuilder &_fbb) { +inline ::flatbuffers::Offset CreateMonster( + ::flatbuffers::FlatBufferBuilder &_fbb) { MonsterBuilder builder_(_fbb); return builder_.Finish(); } -flatbuffers::Offset CreateMonster(flatbuffers::FlatBufferBuilder &_fbb, const MonsterT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); +::flatbuffers::Offset CreateMonster(::flatbuffers::FlatBufferBuilder &_fbb, const MonsterT *_o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); } // namespace Example2 namespace Example { -struct TestSimpleTableWithEnumT : public flatbuffers::NativeTable { +struct TestSimpleTableWithEnumT : public ::flatbuffers::NativeTable { typedef TestSimpleTableWithEnum TableType; MyGame::Example::Color color = MyGame::Example::Color_Green; }; -struct TestSimpleTableWithEnum FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { +struct TestSimpleTableWithEnum FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { typedef TestSimpleTableWithEnumT NativeTableType; typedef TestSimpleTableWithEnumBuilder Builder; - static const flatbuffers::TypeTable *MiniReflectTypeTable() { + static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { return TestSimpleTableWithEnumTypeTable(); } enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { @@ -1049,55 +1049,55 @@ struct TestSimpleTableWithEnum FLATBUFFERS_FINAL_CLASS : private flatbuffers::Ta bool mutate_color(MyGame::Example::Color _color = static_cast(2)) { return SetField(VT_COLOR, static_cast(_color), 2); } - bool Verify(flatbuffers::Verifier &verifier) const { + bool Verify(::flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_COLOR, 1) && verifier.EndTable(); } - TestSimpleTableWithEnumT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; - void UnPackTo(TestSimpleTableWithEnumT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const; - static flatbuffers::Offset Pack(flatbuffers::FlatBufferBuilder &_fbb, const TestSimpleTableWithEnumT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); + TestSimpleTableWithEnumT *UnPack(const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; + void UnPackTo(TestSimpleTableWithEnumT *_o, const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; + static ::flatbuffers::Offset Pack(::flatbuffers::FlatBufferBuilder &_fbb, const TestSimpleTableWithEnumT* _o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); }; struct TestSimpleTableWithEnumBuilder { typedef TestSimpleTableWithEnum Table; - flatbuffers::FlatBufferBuilder &fbb_; - flatbuffers::uoffset_t start_; + ::flatbuffers::FlatBufferBuilder &fbb_; + ::flatbuffers::uoffset_t start_; void add_color(MyGame::Example::Color color) { fbb_.AddElement(TestSimpleTableWithEnum::VT_COLOR, static_cast(color), 2); } - explicit TestSimpleTableWithEnumBuilder(flatbuffers::FlatBufferBuilder &_fbb) + explicit TestSimpleTableWithEnumBuilder(::flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); } - flatbuffers::Offset Finish() { + ::flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); - auto o = flatbuffers::Offset(end); + auto o = ::flatbuffers::Offset(end); return o; } }; -inline flatbuffers::Offset CreateTestSimpleTableWithEnum( - flatbuffers::FlatBufferBuilder &_fbb, +inline ::flatbuffers::Offset CreateTestSimpleTableWithEnum( + ::flatbuffers::FlatBufferBuilder &_fbb, MyGame::Example::Color color = MyGame::Example::Color_Green) { TestSimpleTableWithEnumBuilder builder_(_fbb); builder_.add_color(color); return builder_.Finish(); } -flatbuffers::Offset CreateTestSimpleTableWithEnum(flatbuffers::FlatBufferBuilder &_fbb, const TestSimpleTableWithEnumT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); +::flatbuffers::Offset CreateTestSimpleTableWithEnum(::flatbuffers::FlatBufferBuilder &_fbb, const TestSimpleTableWithEnumT *_o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); -struct StatT : public flatbuffers::NativeTable { +struct StatT : public ::flatbuffers::NativeTable { typedef Stat TableType; std::string id{}; int64_t val = 0; uint16_t count = 0; }; -struct Stat FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { +struct Stat FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { typedef StatT NativeTableType; typedef StatBuilder Builder; - static const flatbuffers::TypeTable *MiniReflectTypeTable() { + static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { return StatTypeTable(); } enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { @@ -1105,11 +1105,11 @@ struct Stat FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { VT_VAL = 6, VT_COUNT = 8 }; - const flatbuffers::String *id() const { - return GetPointer(VT_ID); + const ::flatbuffers::String *id() const { + return GetPointer(VT_ID); } - flatbuffers::String *mutable_id() { - return GetPointer(VT_ID); + ::flatbuffers::String *mutable_id() { + return GetPointer<::flatbuffers::String *>(VT_ID); } int64_t val() const { return GetField(VT_VAL, 0); @@ -1129,7 +1129,7 @@ struct Stat FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { int KeyCompareWithValue(uint16_t _count) const { return static_cast(count() > _count) - static_cast(count() < _count); } - bool Verify(flatbuffers::Verifier &verifier) const { + bool Verify(::flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && VerifyOffset(verifier, VT_ID) && verifier.VerifyString(id()) && @@ -1137,16 +1137,16 @@ struct Stat FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { VerifyField(verifier, VT_COUNT, 2) && verifier.EndTable(); } - StatT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; - void UnPackTo(StatT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const; - static flatbuffers::Offset Pack(flatbuffers::FlatBufferBuilder &_fbb, const StatT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); + StatT *UnPack(const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; + void UnPackTo(StatT *_o, const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; + static ::flatbuffers::Offset Pack(::flatbuffers::FlatBufferBuilder &_fbb, const StatT* _o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); }; struct StatBuilder { typedef Stat Table; - flatbuffers::FlatBufferBuilder &fbb_; - flatbuffers::uoffset_t start_; - void add_id(flatbuffers::Offset id) { + ::flatbuffers::FlatBufferBuilder &fbb_; + ::flatbuffers::uoffset_t start_; + void add_id(::flatbuffers::Offset<::flatbuffers::String> id) { fbb_.AddOffset(Stat::VT_ID, id); } void add_val(int64_t val) { @@ -1155,20 +1155,20 @@ struct StatBuilder { void add_count(uint16_t count) { fbb_.AddElement(Stat::VT_COUNT, count, 0); } - explicit StatBuilder(flatbuffers::FlatBufferBuilder &_fbb) + explicit StatBuilder(::flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); } - flatbuffers::Offset Finish() { + ::flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); - auto o = flatbuffers::Offset(end); + auto o = ::flatbuffers::Offset(end); return o; } }; -inline flatbuffers::Offset CreateStat( - flatbuffers::FlatBufferBuilder &_fbb, - flatbuffers::Offset id = 0, +inline ::flatbuffers::Offset CreateStat( + ::flatbuffers::FlatBufferBuilder &_fbb, + ::flatbuffers::Offset<::flatbuffers::String> id = 0, int64_t val = 0, uint16_t count = 0) { StatBuilder builder_(_fbb); @@ -1178,8 +1178,8 @@ inline flatbuffers::Offset CreateStat( return builder_.Finish(); } -inline flatbuffers::Offset CreateStatDirect( - flatbuffers::FlatBufferBuilder &_fbb, +inline ::flatbuffers::Offset CreateStatDirect( + ::flatbuffers::FlatBufferBuilder &_fbb, const char *id = nullptr, int64_t val = 0, uint16_t count = 0) { @@ -1191,17 +1191,17 @@ inline flatbuffers::Offset CreateStatDirect( count); } -flatbuffers::Offset CreateStat(flatbuffers::FlatBufferBuilder &_fbb, const StatT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); +::flatbuffers::Offset CreateStat(::flatbuffers::FlatBufferBuilder &_fbb, const StatT *_o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); -struct ReferrableT : public flatbuffers::NativeTable { +struct ReferrableT : public ::flatbuffers::NativeTable { typedef Referrable TableType; uint64_t id = 0; }; -struct Referrable FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { +struct Referrable FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { typedef ReferrableT NativeTableType; typedef ReferrableBuilder Builder; - static const flatbuffers::TypeTable *MiniReflectTypeTable() { + static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { return ReferrableTypeTable(); } enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { @@ -1219,45 +1219,45 @@ struct Referrable FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { int KeyCompareWithValue(uint64_t _id) const { return static_cast(id() > _id) - static_cast(id() < _id); } - bool Verify(flatbuffers::Verifier &verifier) const { + bool Verify(::flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_ID, 8) && verifier.EndTable(); } - ReferrableT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; - void UnPackTo(ReferrableT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const; - static flatbuffers::Offset Pack(flatbuffers::FlatBufferBuilder &_fbb, const ReferrableT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); + ReferrableT *UnPack(const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; + void UnPackTo(ReferrableT *_o, const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; + static ::flatbuffers::Offset Pack(::flatbuffers::FlatBufferBuilder &_fbb, const ReferrableT* _o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); }; struct ReferrableBuilder { typedef Referrable Table; - flatbuffers::FlatBufferBuilder &fbb_; - flatbuffers::uoffset_t start_; + ::flatbuffers::FlatBufferBuilder &fbb_; + ::flatbuffers::uoffset_t start_; void add_id(uint64_t id) { fbb_.AddElement(Referrable::VT_ID, id, 0); } - explicit ReferrableBuilder(flatbuffers::FlatBufferBuilder &_fbb) + explicit ReferrableBuilder(::flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); } - flatbuffers::Offset Finish() { + ::flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); - auto o = flatbuffers::Offset(end); + auto o = ::flatbuffers::Offset(end); return o; } }; -inline flatbuffers::Offset CreateReferrable( - flatbuffers::FlatBufferBuilder &_fbb, +inline ::flatbuffers::Offset CreateReferrable( + ::flatbuffers::FlatBufferBuilder &_fbb, uint64_t id = 0) { ReferrableBuilder builder_(_fbb); builder_.add_id(id); return builder_.Finish(); } -flatbuffers::Offset CreateReferrable(flatbuffers::FlatBufferBuilder &_fbb, const ReferrableT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); +::flatbuffers::Offset CreateReferrable(::flatbuffers::FlatBufferBuilder &_fbb, const ReferrableT *_o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); -struct MonsterT : public flatbuffers::NativeTable { +struct MonsterT : public ::flatbuffers::NativeTable { typedef Monster TableType; flatbuffers::unique_ptr pos{}; int16_t mana = 150; @@ -1324,10 +1324,10 @@ struct MonsterT : public flatbuffers::NativeTable { }; /// an example documentation comment: "monster object" -struct Monster FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { +struct Monster FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { typedef MonsterT NativeTableType; typedef MonsterBuilder Builder; - static const flatbuffers::TypeTable *MiniReflectTypeTable() { + static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { return MonsterTypeTable(); } enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { @@ -1411,11 +1411,11 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { bool mutate_hp(int16_t _hp = 100) { return SetField(VT_HP, _hp, 100); } - const flatbuffers::String *name() const { - return GetPointer(VT_NAME); + const ::flatbuffers::String *name() const { + return GetPointer(VT_NAME); } - flatbuffers::String *mutable_name() { - return GetPointer(VT_NAME); + ::flatbuffers::String *mutable_name() { + return GetPointer<::flatbuffers::String *>(VT_NAME); } bool KeyCompareLessThan(const Monster * const o) const { return *name() < *o->name(); @@ -1423,11 +1423,11 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { int KeyCompareWithValue(const char *_name) const { return strcmp(name()->c_str(), _name); } - const flatbuffers::Vector *inventory() const { - return GetPointer *>(VT_INVENTORY); + const ::flatbuffers::Vector *inventory() const { + return GetPointer *>(VT_INVENTORY); } - flatbuffers::Vector *mutable_inventory() { - return GetPointer *>(VT_INVENTORY); + ::flatbuffers::Vector *mutable_inventory() { + return GetPointer<::flatbuffers::Vector *>(VT_INVENTORY); } MyGame::Example::Color color() const { return static_cast(GetField(VT_COLOR, 8)); @@ -1454,25 +1454,25 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { void *mutable_test() { return GetPointer(VT_TEST); } - const flatbuffers::Vector *test4() const { - return GetPointer *>(VT_TEST4); + const ::flatbuffers::Vector *test4() const { + return GetPointer *>(VT_TEST4); } - flatbuffers::Vector *mutable_test4() { - return GetPointer *>(VT_TEST4); + ::flatbuffers::Vector *mutable_test4() { + return GetPointer<::flatbuffers::Vector *>(VT_TEST4); } - const flatbuffers::Vector> *testarrayofstring() const { - return GetPointer> *>(VT_TESTARRAYOFSTRING); + const ::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>> *testarrayofstring() const { + return GetPointer> *>(VT_TESTARRAYOFSTRING); } - flatbuffers::Vector> *mutable_testarrayofstring() { - return GetPointer> *>(VT_TESTARRAYOFSTRING); + ::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>> *mutable_testarrayofstring() { + return GetPointer<::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>> *>(VT_TESTARRAYOFSTRING); } /// an example documentation comment: this will end up in the generated code /// multiline too - const flatbuffers::Vector> *testarrayoftables() const { - return GetPointer> *>(VT_TESTARRAYOFTABLES); + const ::flatbuffers::Vector<::flatbuffers::Offset> *testarrayoftables() const { + return GetPointer> *>(VT_TESTARRAYOFTABLES); } - flatbuffers::Vector> *mutable_testarrayoftables() { - return GetPointer> *>(VT_TESTARRAYOFTABLES); + ::flatbuffers::Vector<::flatbuffers::Offset> *mutable_testarrayoftables() { + return GetPointer<::flatbuffers::Vector<::flatbuffers::Offset> *>(VT_TESTARRAYOFTABLES); } const MyGame::Example::Monster *enemy() const { return GetPointer(VT_ENEMY); @@ -1480,14 +1480,14 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { MyGame::Example::Monster *mutable_enemy() { return GetPointer(VT_ENEMY); } - const flatbuffers::Vector *testnestedflatbuffer() const { - return GetPointer *>(VT_TESTNESTEDFLATBUFFER); + const ::flatbuffers::Vector *testnestedflatbuffer() const { + return GetPointer *>(VT_TESTNESTEDFLATBUFFER); } - flatbuffers::Vector *mutable_testnestedflatbuffer() { - return GetPointer *>(VT_TESTNESTEDFLATBUFFER); + ::flatbuffers::Vector *mutable_testnestedflatbuffer() { + return GetPointer<::flatbuffers::Vector *>(VT_TESTNESTEDFLATBUFFER); } const MyGame::Example::Monster *testnestedflatbuffer_nested_root() const { - return flatbuffers::GetRoot(testnestedflatbuffer()->Data()); + return ::flatbuffers::GetRoot(testnestedflatbuffer()->Data()); } const MyGame::Example::Stat *testempty() const { return GetPointer(VT_TESTEMPTY); @@ -1549,11 +1549,11 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { bool mutate_testhashu64_fnv1a(uint64_t _testhashu64_fnv1a = 0) { return SetField(VT_TESTHASHU64_FNV1A, _testhashu64_fnv1a, 0); } - const flatbuffers::Vector *testarrayofbools() const { - return GetPointer *>(VT_TESTARRAYOFBOOLS); + const ::flatbuffers::Vector *testarrayofbools() const { + return GetPointer *>(VT_TESTARRAYOFBOOLS); } - flatbuffers::Vector *mutable_testarrayofbools() { - return GetPointer *>(VT_TESTARRAYOFBOOLS); + ::flatbuffers::Vector *mutable_testarrayofbools() { + return GetPointer<::flatbuffers::Vector *>(VT_TESTARRAYOFBOOLS); } float testf() const { return GetField(VT_TESTF, 3.14159f); @@ -1573,44 +1573,44 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { bool mutate_testf3(float _testf3 = 0.0f) { return SetField(VT_TESTF3, _testf3, 0.0f); } - const flatbuffers::Vector> *testarrayofstring2() const { - return GetPointer> *>(VT_TESTARRAYOFSTRING2); + const ::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>> *testarrayofstring2() const { + return GetPointer> *>(VT_TESTARRAYOFSTRING2); } - flatbuffers::Vector> *mutable_testarrayofstring2() { - return GetPointer> *>(VT_TESTARRAYOFSTRING2); + ::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>> *mutable_testarrayofstring2() { + return GetPointer<::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>> *>(VT_TESTARRAYOFSTRING2); } - const flatbuffers::Vector *testarrayofsortedstruct() const { - return GetPointer *>(VT_TESTARRAYOFSORTEDSTRUCT); + const ::flatbuffers::Vector *testarrayofsortedstruct() const { + return GetPointer *>(VT_TESTARRAYOFSORTEDSTRUCT); } - flatbuffers::Vector *mutable_testarrayofsortedstruct() { - return GetPointer *>(VT_TESTARRAYOFSORTEDSTRUCT); + ::flatbuffers::Vector *mutable_testarrayofsortedstruct() { + return GetPointer<::flatbuffers::Vector *>(VT_TESTARRAYOFSORTEDSTRUCT); } - const flatbuffers::Vector *flex() const { - return GetPointer *>(VT_FLEX); + const ::flatbuffers::Vector *flex() const { + return GetPointer *>(VT_FLEX); } - flatbuffers::Vector *mutable_flex() { - return GetPointer *>(VT_FLEX); + ::flatbuffers::Vector *mutable_flex() { + return GetPointer<::flatbuffers::Vector *>(VT_FLEX); } flexbuffers::Reference flex_flexbuffer_root() const { return flexbuffers::GetRoot(flex()->Data(), flex()->size()); } - const flatbuffers::Vector *test5() const { - return GetPointer *>(VT_TEST5); + const ::flatbuffers::Vector *test5() const { + return GetPointer *>(VT_TEST5); } - flatbuffers::Vector *mutable_test5() { - return GetPointer *>(VT_TEST5); + ::flatbuffers::Vector *mutable_test5() { + return GetPointer<::flatbuffers::Vector *>(VT_TEST5); } - const flatbuffers::Vector *vector_of_longs() const { - return GetPointer *>(VT_VECTOR_OF_LONGS); + const ::flatbuffers::Vector *vector_of_longs() const { + return GetPointer *>(VT_VECTOR_OF_LONGS); } - flatbuffers::Vector *mutable_vector_of_longs() { - return GetPointer *>(VT_VECTOR_OF_LONGS); + ::flatbuffers::Vector *mutable_vector_of_longs() { + return GetPointer<::flatbuffers::Vector *>(VT_VECTOR_OF_LONGS); } - const flatbuffers::Vector *vector_of_doubles() const { - return GetPointer *>(VT_VECTOR_OF_DOUBLES); + const ::flatbuffers::Vector *vector_of_doubles() const { + return GetPointer *>(VT_VECTOR_OF_DOUBLES); } - flatbuffers::Vector *mutable_vector_of_doubles() { - return GetPointer *>(VT_VECTOR_OF_DOUBLES); + ::flatbuffers::Vector *mutable_vector_of_doubles() { + return GetPointer<::flatbuffers::Vector *>(VT_VECTOR_OF_DOUBLES); } const MyGame::InParentNamespace *parent_namespace_test() const { return GetPointer(VT_PARENT_NAMESPACE_TEST); @@ -1618,11 +1618,11 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { MyGame::InParentNamespace *mutable_parent_namespace_test() { return GetPointer(VT_PARENT_NAMESPACE_TEST); } - const flatbuffers::Vector> *vector_of_referrables() const { - return GetPointer> *>(VT_VECTOR_OF_REFERRABLES); + const ::flatbuffers::Vector<::flatbuffers::Offset> *vector_of_referrables() const { + return GetPointer> *>(VT_VECTOR_OF_REFERRABLES); } - flatbuffers::Vector> *mutable_vector_of_referrables() { - return GetPointer> *>(VT_VECTOR_OF_REFERRABLES); + ::flatbuffers::Vector<::flatbuffers::Offset> *mutable_vector_of_referrables() { + return GetPointer<::flatbuffers::Vector<::flatbuffers::Offset> *>(VT_VECTOR_OF_REFERRABLES); } uint64_t single_weak_reference() const { return GetField(VT_SINGLE_WEAK_REFERENCE, 0); @@ -1630,17 +1630,17 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { bool mutate_single_weak_reference(uint64_t _single_weak_reference = 0) { return SetField(VT_SINGLE_WEAK_REFERENCE, _single_weak_reference, 0); } - const flatbuffers::Vector *vector_of_weak_references() const { - return GetPointer *>(VT_VECTOR_OF_WEAK_REFERENCES); + const ::flatbuffers::Vector *vector_of_weak_references() const { + return GetPointer *>(VT_VECTOR_OF_WEAK_REFERENCES); } - flatbuffers::Vector *mutable_vector_of_weak_references() { - return GetPointer *>(VT_VECTOR_OF_WEAK_REFERENCES); + ::flatbuffers::Vector *mutable_vector_of_weak_references() { + return GetPointer<::flatbuffers::Vector *>(VT_VECTOR_OF_WEAK_REFERENCES); } - const flatbuffers::Vector> *vector_of_strong_referrables() const { - return GetPointer> *>(VT_VECTOR_OF_STRONG_REFERRABLES); + const ::flatbuffers::Vector<::flatbuffers::Offset> *vector_of_strong_referrables() const { + return GetPointer> *>(VT_VECTOR_OF_STRONG_REFERRABLES); } - flatbuffers::Vector> *mutable_vector_of_strong_referrables() { - return GetPointer> *>(VT_VECTOR_OF_STRONG_REFERRABLES); + ::flatbuffers::Vector<::flatbuffers::Offset> *mutable_vector_of_strong_referrables() { + return GetPointer<::flatbuffers::Vector<::flatbuffers::Offset> *>(VT_VECTOR_OF_STRONG_REFERRABLES); } uint64_t co_owning_reference() const { return GetField(VT_CO_OWNING_REFERENCE, 0); @@ -1648,11 +1648,11 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { bool mutate_co_owning_reference(uint64_t _co_owning_reference = 0) { return SetField(VT_CO_OWNING_REFERENCE, _co_owning_reference, 0); } - const flatbuffers::Vector *vector_of_co_owning_references() const { - return GetPointer *>(VT_VECTOR_OF_CO_OWNING_REFERENCES); + const ::flatbuffers::Vector *vector_of_co_owning_references() const { + return GetPointer *>(VT_VECTOR_OF_CO_OWNING_REFERENCES); } - flatbuffers::Vector *mutable_vector_of_co_owning_references() { - return GetPointer *>(VT_VECTOR_OF_CO_OWNING_REFERENCES); + ::flatbuffers::Vector *mutable_vector_of_co_owning_references() { + return GetPointer<::flatbuffers::Vector *>(VT_VECTOR_OF_CO_OWNING_REFERENCES); } uint64_t non_owning_reference() const { return GetField(VT_NON_OWNING_REFERENCE, 0); @@ -1660,11 +1660,11 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { bool mutate_non_owning_reference(uint64_t _non_owning_reference = 0) { return SetField(VT_NON_OWNING_REFERENCE, _non_owning_reference, 0); } - const flatbuffers::Vector *vector_of_non_owning_references() const { - return GetPointer *>(VT_VECTOR_OF_NON_OWNING_REFERENCES); + const ::flatbuffers::Vector *vector_of_non_owning_references() const { + return GetPointer *>(VT_VECTOR_OF_NON_OWNING_REFERENCES); } - flatbuffers::Vector *mutable_vector_of_non_owning_references() { - return GetPointer *>(VT_VECTOR_OF_NON_OWNING_REFERENCES); + ::flatbuffers::Vector *mutable_vector_of_non_owning_references() { + return GetPointer<::flatbuffers::Vector *>(VT_VECTOR_OF_NON_OWNING_REFERENCES); } MyGame::Example::AnyUniqueAliases any_unique_type() const { return static_cast(GetField(VT_ANY_UNIQUE_TYPE, 0)); @@ -1703,11 +1703,11 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { void *mutable_any_ambiguous() { return GetPointer(VT_ANY_AMBIGUOUS); } - const flatbuffers::Vector *vector_of_enums() const { - return GetPointer *>(VT_VECTOR_OF_ENUMS); + const ::flatbuffers::Vector *vector_of_enums() const { + return GetPointer *>(VT_VECTOR_OF_ENUMS); } - flatbuffers::Vector *mutable_vector_of_enums() { - return GetPointer *>(VT_VECTOR_OF_ENUMS); + ::flatbuffers::Vector *mutable_vector_of_enums() { + return GetPointer<::flatbuffers::Vector *>(VT_VECTOR_OF_ENUMS); } MyGame::Example::Race signed_enum() const { return static_cast(GetField(VT_SIGNED_ENUM, -1)); @@ -1715,20 +1715,20 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { bool mutate_signed_enum(MyGame::Example::Race _signed_enum = static_cast(-1)) { return SetField(VT_SIGNED_ENUM, static_cast(_signed_enum), -1); } - const flatbuffers::Vector *testrequirednestedflatbuffer() const { - return GetPointer *>(VT_TESTREQUIREDNESTEDFLATBUFFER); + const ::flatbuffers::Vector *testrequirednestedflatbuffer() const { + return GetPointer *>(VT_TESTREQUIREDNESTEDFLATBUFFER); } - flatbuffers::Vector *mutable_testrequirednestedflatbuffer() { - return GetPointer *>(VT_TESTREQUIREDNESTEDFLATBUFFER); + ::flatbuffers::Vector *mutable_testrequirednestedflatbuffer() { + return GetPointer<::flatbuffers::Vector *>(VT_TESTREQUIREDNESTEDFLATBUFFER); } const MyGame::Example::Monster *testrequirednestedflatbuffer_nested_root() const { - return flatbuffers::GetRoot(testrequirednestedflatbuffer()->Data()); + return ::flatbuffers::GetRoot(testrequirednestedflatbuffer()->Data()); } - const flatbuffers::Vector> *scalar_key_sorted_tables() const { - return GetPointer> *>(VT_SCALAR_KEY_SORTED_TABLES); + const ::flatbuffers::Vector<::flatbuffers::Offset> *scalar_key_sorted_tables() const { + return GetPointer> *>(VT_SCALAR_KEY_SORTED_TABLES); } - flatbuffers::Vector> *mutable_scalar_key_sorted_tables() { - return GetPointer> *>(VT_SCALAR_KEY_SORTED_TABLES); + ::flatbuffers::Vector<::flatbuffers::Offset> *mutable_scalar_key_sorted_tables() { + return GetPointer<::flatbuffers::Vector<::flatbuffers::Offset> *>(VT_SCALAR_KEY_SORTED_TABLES); } const MyGame::Example::Test *native_inline() const { return GetStruct(VT_NATIVE_INLINE); @@ -1796,7 +1796,7 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { bool mutate_double_inf_default(double _double_inf_default = std::numeric_limits::infinity()) { return SetField(VT_DOUBLE_INF_DEFAULT, _double_inf_default, std::numeric_limits::infinity()); } - bool Verify(flatbuffers::Verifier &verifier) const { + bool Verify(::flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_POS, 8) && VerifyField(verifier, VT_MANA, 2) && @@ -1897,9 +1897,9 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { VerifyField(verifier, VT_DOUBLE_INF_DEFAULT, 8) && verifier.EndTable(); } - MonsterT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; - void UnPackTo(MonsterT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const; - static flatbuffers::Offset Pack(flatbuffers::FlatBufferBuilder &_fbb, const MonsterT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); + MonsterT *UnPack(const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; + void UnPackTo(MonsterT *_o, const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; + static ::flatbuffers::Offset Pack(::flatbuffers::FlatBufferBuilder &_fbb, const MonsterT* _o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); }; template<> inline const MyGame::Example::Monster *Monster::test_as() const { @@ -1928,8 +1928,8 @@ template<> inline const MyGame::Example2::Monster *Monster::any_unique_as(Monster::VT_HP, hp, 100); } - void add_name(flatbuffers::Offset name) { + void add_name(::flatbuffers::Offset<::flatbuffers::String> name) { fbb_.AddOffset(Monster::VT_NAME, name); } - void add_inventory(flatbuffers::Offset> inventory) { + void add_inventory(::flatbuffers::Offset<::flatbuffers::Vector> inventory) { fbb_.AddOffset(Monster::VT_INVENTORY, inventory); } void add_color(MyGame::Example::Color color) { @@ -1951,25 +1951,25 @@ struct MonsterBuilder { void add_test_type(MyGame::Example::Any test_type) { fbb_.AddElement(Monster::VT_TEST_TYPE, static_cast(test_type), 0); } - void add_test(flatbuffers::Offset test) { + void add_test(::flatbuffers::Offset test) { fbb_.AddOffset(Monster::VT_TEST, test); } - void add_test4(flatbuffers::Offset> test4) { + void add_test4(::flatbuffers::Offset<::flatbuffers::Vector> test4) { fbb_.AddOffset(Monster::VT_TEST4, test4); } - void add_testarrayofstring(flatbuffers::Offset>> testarrayofstring) { + void add_testarrayofstring(::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>>> testarrayofstring) { fbb_.AddOffset(Monster::VT_TESTARRAYOFSTRING, testarrayofstring); } - void add_testarrayoftables(flatbuffers::Offset>> testarrayoftables) { + void add_testarrayoftables(::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset>> testarrayoftables) { fbb_.AddOffset(Monster::VT_TESTARRAYOFTABLES, testarrayoftables); } - void add_enemy(flatbuffers::Offset enemy) { + void add_enemy(::flatbuffers::Offset enemy) { fbb_.AddOffset(Monster::VT_ENEMY, enemy); } - void add_testnestedflatbuffer(flatbuffers::Offset> testnestedflatbuffer) { + void add_testnestedflatbuffer(::flatbuffers::Offset<::flatbuffers::Vector> testnestedflatbuffer) { fbb_.AddOffset(Monster::VT_TESTNESTEDFLATBUFFER, testnestedflatbuffer); } - void add_testempty(flatbuffers::Offset testempty) { + void add_testempty(::flatbuffers::Offset testempty) { fbb_.AddOffset(Monster::VT_TESTEMPTY, testempty); } void add_testbool(bool testbool) { @@ -1999,7 +1999,7 @@ struct MonsterBuilder { void add_testhashu64_fnv1a(uint64_t testhashu64_fnv1a) { fbb_.AddElement(Monster::VT_TESTHASHU64_FNV1A, testhashu64_fnv1a, 0); } - void add_testarrayofbools(flatbuffers::Offset> testarrayofbools) { + void add_testarrayofbools(::flatbuffers::Offset<::flatbuffers::Vector> testarrayofbools) { fbb_.AddOffset(Monster::VT_TESTARRAYOFBOOLS, testarrayofbools); } void add_testf(float testf) { @@ -2011,73 +2011,73 @@ struct MonsterBuilder { void add_testf3(float testf3) { fbb_.AddElement(Monster::VT_TESTF3, testf3, 0.0f); } - void add_testarrayofstring2(flatbuffers::Offset>> testarrayofstring2) { + void add_testarrayofstring2(::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>>> testarrayofstring2) { fbb_.AddOffset(Monster::VT_TESTARRAYOFSTRING2, testarrayofstring2); } - void add_testarrayofsortedstruct(flatbuffers::Offset> testarrayofsortedstruct) { + void add_testarrayofsortedstruct(::flatbuffers::Offset<::flatbuffers::Vector> testarrayofsortedstruct) { fbb_.AddOffset(Monster::VT_TESTARRAYOFSORTEDSTRUCT, testarrayofsortedstruct); } - void add_flex(flatbuffers::Offset> flex) { + void add_flex(::flatbuffers::Offset<::flatbuffers::Vector> flex) { fbb_.AddOffset(Monster::VT_FLEX, flex); } - void add_test5(flatbuffers::Offset> test5) { + void add_test5(::flatbuffers::Offset<::flatbuffers::Vector> test5) { fbb_.AddOffset(Monster::VT_TEST5, test5); } - void add_vector_of_longs(flatbuffers::Offset> vector_of_longs) { + void add_vector_of_longs(::flatbuffers::Offset<::flatbuffers::Vector> vector_of_longs) { fbb_.AddOffset(Monster::VT_VECTOR_OF_LONGS, vector_of_longs); } - void add_vector_of_doubles(flatbuffers::Offset> vector_of_doubles) { + void add_vector_of_doubles(::flatbuffers::Offset<::flatbuffers::Vector> vector_of_doubles) { fbb_.AddOffset(Monster::VT_VECTOR_OF_DOUBLES, vector_of_doubles); } - void add_parent_namespace_test(flatbuffers::Offset parent_namespace_test) { + void add_parent_namespace_test(::flatbuffers::Offset parent_namespace_test) { fbb_.AddOffset(Monster::VT_PARENT_NAMESPACE_TEST, parent_namespace_test); } - void add_vector_of_referrables(flatbuffers::Offset>> vector_of_referrables) { + void add_vector_of_referrables(::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset>> vector_of_referrables) { fbb_.AddOffset(Monster::VT_VECTOR_OF_REFERRABLES, vector_of_referrables); } void add_single_weak_reference(uint64_t single_weak_reference) { fbb_.AddElement(Monster::VT_SINGLE_WEAK_REFERENCE, single_weak_reference, 0); } - void add_vector_of_weak_references(flatbuffers::Offset> vector_of_weak_references) { + void add_vector_of_weak_references(::flatbuffers::Offset<::flatbuffers::Vector> vector_of_weak_references) { fbb_.AddOffset(Monster::VT_VECTOR_OF_WEAK_REFERENCES, vector_of_weak_references); } - void add_vector_of_strong_referrables(flatbuffers::Offset>> vector_of_strong_referrables) { + void add_vector_of_strong_referrables(::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset>> vector_of_strong_referrables) { fbb_.AddOffset(Monster::VT_VECTOR_OF_STRONG_REFERRABLES, vector_of_strong_referrables); } void add_co_owning_reference(uint64_t co_owning_reference) { fbb_.AddElement(Monster::VT_CO_OWNING_REFERENCE, co_owning_reference, 0); } - void add_vector_of_co_owning_references(flatbuffers::Offset> vector_of_co_owning_references) { + void add_vector_of_co_owning_references(::flatbuffers::Offset<::flatbuffers::Vector> vector_of_co_owning_references) { fbb_.AddOffset(Monster::VT_VECTOR_OF_CO_OWNING_REFERENCES, vector_of_co_owning_references); } void add_non_owning_reference(uint64_t non_owning_reference) { fbb_.AddElement(Monster::VT_NON_OWNING_REFERENCE, non_owning_reference, 0); } - void add_vector_of_non_owning_references(flatbuffers::Offset> vector_of_non_owning_references) { + void add_vector_of_non_owning_references(::flatbuffers::Offset<::flatbuffers::Vector> vector_of_non_owning_references) { fbb_.AddOffset(Monster::VT_VECTOR_OF_NON_OWNING_REFERENCES, vector_of_non_owning_references); } void add_any_unique_type(MyGame::Example::AnyUniqueAliases any_unique_type) { fbb_.AddElement(Monster::VT_ANY_UNIQUE_TYPE, static_cast(any_unique_type), 0); } - void add_any_unique(flatbuffers::Offset any_unique) { + void add_any_unique(::flatbuffers::Offset any_unique) { fbb_.AddOffset(Monster::VT_ANY_UNIQUE, any_unique); } void add_any_ambiguous_type(MyGame::Example::AnyAmbiguousAliases any_ambiguous_type) { fbb_.AddElement(Monster::VT_ANY_AMBIGUOUS_TYPE, static_cast(any_ambiguous_type), 0); } - void add_any_ambiguous(flatbuffers::Offset any_ambiguous) { + void add_any_ambiguous(::flatbuffers::Offset any_ambiguous) { fbb_.AddOffset(Monster::VT_ANY_AMBIGUOUS, any_ambiguous); } - void add_vector_of_enums(flatbuffers::Offset> vector_of_enums) { + void add_vector_of_enums(::flatbuffers::Offset<::flatbuffers::Vector> vector_of_enums) { fbb_.AddOffset(Monster::VT_VECTOR_OF_ENUMS, vector_of_enums); } void add_signed_enum(MyGame::Example::Race signed_enum) { fbb_.AddElement(Monster::VT_SIGNED_ENUM, static_cast(signed_enum), -1); } - void add_testrequirednestedflatbuffer(flatbuffers::Offset> testrequirednestedflatbuffer) { + void add_testrequirednestedflatbuffer(::flatbuffers::Offset<::flatbuffers::Vector> testrequirednestedflatbuffer) { fbb_.AddOffset(Monster::VT_TESTREQUIREDNESTEDFLATBUFFER, testrequirednestedflatbuffer); } - void add_scalar_key_sorted_tables(flatbuffers::Offset>> scalar_key_sorted_tables) { + void add_scalar_key_sorted_tables(::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset>> scalar_key_sorted_tables) { fbb_.AddOffset(Monster::VT_SCALAR_KEY_SORTED_TABLES, scalar_key_sorted_tables); } void add_native_inline(const MyGame::Example::Test *native_inline) { @@ -2113,34 +2113,34 @@ struct MonsterBuilder { void add_double_inf_default(double double_inf_default) { fbb_.AddElement(Monster::VT_DOUBLE_INF_DEFAULT, double_inf_default, std::numeric_limits::infinity()); } - explicit MonsterBuilder(flatbuffers::FlatBufferBuilder &_fbb) + explicit MonsterBuilder(::flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); } - flatbuffers::Offset Finish() { + ::flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); - auto o = flatbuffers::Offset(end); + auto o = ::flatbuffers::Offset(end); fbb_.Required(o, Monster::VT_NAME); return o; } }; -inline flatbuffers::Offset CreateMonster( - flatbuffers::FlatBufferBuilder &_fbb, +inline ::flatbuffers::Offset CreateMonster( + ::flatbuffers::FlatBufferBuilder &_fbb, const MyGame::Example::Vec3 *pos = nullptr, int16_t mana = 150, int16_t hp = 100, - flatbuffers::Offset name = 0, - flatbuffers::Offset> inventory = 0, + ::flatbuffers::Offset<::flatbuffers::String> name = 0, + ::flatbuffers::Offset<::flatbuffers::Vector> inventory = 0, MyGame::Example::Color color = MyGame::Example::Color_Blue, MyGame::Example::Any test_type = MyGame::Example::Any_NONE, - flatbuffers::Offset test = 0, - flatbuffers::Offset> test4 = 0, - flatbuffers::Offset>> testarrayofstring = 0, - flatbuffers::Offset>> testarrayoftables = 0, - flatbuffers::Offset enemy = 0, - flatbuffers::Offset> testnestedflatbuffer = 0, - flatbuffers::Offset testempty = 0, + ::flatbuffers::Offset test = 0, + ::flatbuffers::Offset<::flatbuffers::Vector> test4 = 0, + ::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>>> testarrayofstring = 0, + ::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset>> testarrayoftables = 0, + ::flatbuffers::Offset enemy = 0, + ::flatbuffers::Offset<::flatbuffers::Vector> testnestedflatbuffer = 0, + ::flatbuffers::Offset testempty = 0, bool testbool = false, int32_t testhashs32_fnv1 = 0, uint32_t testhashu32_fnv1 = 0, @@ -2150,33 +2150,33 @@ inline flatbuffers::Offset CreateMonster( uint32_t testhashu32_fnv1a = 0, int64_t testhashs64_fnv1a = 0, uint64_t testhashu64_fnv1a = 0, - flatbuffers::Offset> testarrayofbools = 0, + ::flatbuffers::Offset<::flatbuffers::Vector> testarrayofbools = 0, float testf = 3.14159f, float testf2 = 3.0f, float testf3 = 0.0f, - flatbuffers::Offset>> testarrayofstring2 = 0, - flatbuffers::Offset> testarrayofsortedstruct = 0, - flatbuffers::Offset> flex = 0, - flatbuffers::Offset> test5 = 0, - flatbuffers::Offset> vector_of_longs = 0, - flatbuffers::Offset> vector_of_doubles = 0, - flatbuffers::Offset parent_namespace_test = 0, - flatbuffers::Offset>> vector_of_referrables = 0, + ::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>>> testarrayofstring2 = 0, + ::flatbuffers::Offset<::flatbuffers::Vector> testarrayofsortedstruct = 0, + ::flatbuffers::Offset<::flatbuffers::Vector> flex = 0, + ::flatbuffers::Offset<::flatbuffers::Vector> test5 = 0, + ::flatbuffers::Offset<::flatbuffers::Vector> vector_of_longs = 0, + ::flatbuffers::Offset<::flatbuffers::Vector> vector_of_doubles = 0, + ::flatbuffers::Offset parent_namespace_test = 0, + ::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset>> vector_of_referrables = 0, uint64_t single_weak_reference = 0, - flatbuffers::Offset> vector_of_weak_references = 0, - flatbuffers::Offset>> vector_of_strong_referrables = 0, + ::flatbuffers::Offset<::flatbuffers::Vector> vector_of_weak_references = 0, + ::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset>> vector_of_strong_referrables = 0, uint64_t co_owning_reference = 0, - flatbuffers::Offset> vector_of_co_owning_references = 0, + ::flatbuffers::Offset<::flatbuffers::Vector> vector_of_co_owning_references = 0, uint64_t non_owning_reference = 0, - flatbuffers::Offset> vector_of_non_owning_references = 0, + ::flatbuffers::Offset<::flatbuffers::Vector> vector_of_non_owning_references = 0, MyGame::Example::AnyUniqueAliases any_unique_type = MyGame::Example::AnyUniqueAliases_NONE, - flatbuffers::Offset any_unique = 0, + ::flatbuffers::Offset any_unique = 0, MyGame::Example::AnyAmbiguousAliases any_ambiguous_type = MyGame::Example::AnyAmbiguousAliases_NONE, - flatbuffers::Offset any_ambiguous = 0, - flatbuffers::Offset> vector_of_enums = 0, + ::flatbuffers::Offset any_ambiguous = 0, + ::flatbuffers::Offset<::flatbuffers::Vector> vector_of_enums = 0, MyGame::Example::Race signed_enum = MyGame::Example::Race_None, - flatbuffers::Offset> testrequirednestedflatbuffer = 0, - flatbuffers::Offset>> scalar_key_sorted_tables = 0, + ::flatbuffers::Offset<::flatbuffers::Vector> testrequirednestedflatbuffer = 0, + ::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset>> scalar_key_sorted_tables = 0, const MyGame::Example::Test *native_inline = nullptr, MyGame::Example::LongEnum long_enum_non_enum_default = static_cast(0), MyGame::Example::LongEnum long_enum_normal_default = MyGame::Example::LongEnum_LongOne, @@ -2253,8 +2253,8 @@ inline flatbuffers::Offset CreateMonster( return builder_.Finish(); } -inline flatbuffers::Offset CreateMonsterDirect( - flatbuffers::FlatBufferBuilder &_fbb, +inline ::flatbuffers::Offset CreateMonsterDirect( + ::flatbuffers::FlatBufferBuilder &_fbb, const MyGame::Example::Vec3 *pos = nullptr, int16_t mana = 150, int16_t hp = 100, @@ -2262,13 +2262,13 @@ inline flatbuffers::Offset CreateMonsterDirect( const std::vector *inventory = nullptr, MyGame::Example::Color color = MyGame::Example::Color_Blue, MyGame::Example::Any test_type = MyGame::Example::Any_NONE, - flatbuffers::Offset test = 0, + ::flatbuffers::Offset test = 0, const std::vector *test4 = nullptr, - const std::vector> *testarrayofstring = nullptr, - std::vector> *testarrayoftables = nullptr, - flatbuffers::Offset enemy = 0, + const std::vector<::flatbuffers::Offset<::flatbuffers::String>> *testarrayofstring = nullptr, + std::vector<::flatbuffers::Offset> *testarrayoftables = nullptr, + ::flatbuffers::Offset enemy = 0, const std::vector *testnestedflatbuffer = nullptr, - flatbuffers::Offset testempty = 0, + ::flatbuffers::Offset testempty = 0, bool testbool = false, int32_t testhashs32_fnv1 = 0, uint32_t testhashu32_fnv1 = 0, @@ -2282,29 +2282,29 @@ inline flatbuffers::Offset CreateMonsterDirect( float testf = 3.14159f, float testf2 = 3.0f, float testf3 = 0.0f, - const std::vector> *testarrayofstring2 = nullptr, + const std::vector<::flatbuffers::Offset<::flatbuffers::String>> *testarrayofstring2 = nullptr, std::vector *testarrayofsortedstruct = nullptr, const std::vector *flex = nullptr, const std::vector *test5 = nullptr, const std::vector *vector_of_longs = nullptr, const std::vector *vector_of_doubles = nullptr, - flatbuffers::Offset parent_namespace_test = 0, - std::vector> *vector_of_referrables = nullptr, + ::flatbuffers::Offset parent_namespace_test = 0, + std::vector<::flatbuffers::Offset> *vector_of_referrables = nullptr, uint64_t single_weak_reference = 0, const std::vector *vector_of_weak_references = nullptr, - std::vector> *vector_of_strong_referrables = nullptr, + std::vector<::flatbuffers::Offset> *vector_of_strong_referrables = nullptr, uint64_t co_owning_reference = 0, const std::vector *vector_of_co_owning_references = nullptr, uint64_t non_owning_reference = 0, const std::vector *vector_of_non_owning_references = nullptr, MyGame::Example::AnyUniqueAliases any_unique_type = MyGame::Example::AnyUniqueAliases_NONE, - flatbuffers::Offset any_unique = 0, + ::flatbuffers::Offset any_unique = 0, MyGame::Example::AnyAmbiguousAliases any_ambiguous_type = MyGame::Example::AnyAmbiguousAliases_NONE, - flatbuffers::Offset any_ambiguous = 0, + ::flatbuffers::Offset any_ambiguous = 0, const std::vector *vector_of_enums = nullptr, MyGame::Example::Race signed_enum = MyGame::Example::Race_None, const std::vector *testrequirednestedflatbuffer = nullptr, - std::vector> *scalar_key_sorted_tables = nullptr, + std::vector<::flatbuffers::Offset> *scalar_key_sorted_tables = nullptr, const MyGame::Example::Test *native_inline = nullptr, MyGame::Example::LongEnum long_enum_non_enum_default = static_cast(0), MyGame::Example::LongEnum long_enum_normal_default = MyGame::Example::LongEnum_LongOne, @@ -2319,11 +2319,11 @@ inline flatbuffers::Offset CreateMonsterDirect( auto name__ = name ? _fbb.CreateString(name) : 0; auto inventory__ = inventory ? _fbb.CreateVector(*inventory) : 0; auto test4__ = test4 ? _fbb.CreateVectorOfStructs(*test4) : 0; - auto testarrayofstring__ = testarrayofstring ? _fbb.CreateVector>(*testarrayofstring) : 0; + auto testarrayofstring__ = testarrayofstring ? _fbb.CreateVector<::flatbuffers::Offset<::flatbuffers::String>>(*testarrayofstring) : 0; auto testarrayoftables__ = testarrayoftables ? _fbb.CreateVectorOfSortedTables(testarrayoftables) : 0; auto testnestedflatbuffer__ = testnestedflatbuffer ? _fbb.CreateVector(*testnestedflatbuffer) : 0; auto testarrayofbools__ = testarrayofbools ? _fbb.CreateVector(*testarrayofbools) : 0; - auto testarrayofstring2__ = testarrayofstring2 ? _fbb.CreateVector>(*testarrayofstring2) : 0; + auto testarrayofstring2__ = testarrayofstring2 ? _fbb.CreateVector<::flatbuffers::Offset<::flatbuffers::String>>(*testarrayofstring2) : 0; auto testarrayofsortedstruct__ = testarrayofsortedstruct ? _fbb.CreateVectorOfSortedStructs(testarrayofsortedstruct) : 0; auto flex__ = flex ? _fbb.CreateVector(*flex) : 0; auto test5__ = test5 ? _fbb.CreateVectorOfStructs(*test5) : 0; @@ -2402,9 +2402,9 @@ inline flatbuffers::Offset CreateMonsterDirect( double_inf_default); } -flatbuffers::Offset CreateMonster(flatbuffers::FlatBufferBuilder &_fbb, const MonsterT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); +::flatbuffers::Offset CreateMonster(::flatbuffers::FlatBufferBuilder &_fbb, const MonsterT *_o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); -struct TypeAliasesT : public flatbuffers::NativeTable { +struct TypeAliasesT : public ::flatbuffers::NativeTable { typedef TypeAliases TableType; int8_t i8 = 0; uint8_t u8 = 0; @@ -2420,10 +2420,10 @@ struct TypeAliasesT : public flatbuffers::NativeTable { std::vector vf64{}; }; -struct TypeAliases FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { +struct TypeAliases FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { typedef TypeAliasesT NativeTableType; typedef TypeAliasesBuilder Builder; - static const flatbuffers::TypeTable *MiniReflectTypeTable() { + static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { return TypeAliasesTypeTable(); } enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { @@ -2500,19 +2500,19 @@ struct TypeAliases FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { bool mutate_f64(double _f64 = 0.0) { return SetField(VT_F64, _f64, 0.0); } - const flatbuffers::Vector *v8() const { - return GetPointer *>(VT_V8); + const ::flatbuffers::Vector *v8() const { + return GetPointer *>(VT_V8); } - flatbuffers::Vector *mutable_v8() { - return GetPointer *>(VT_V8); + ::flatbuffers::Vector *mutable_v8() { + return GetPointer<::flatbuffers::Vector *>(VT_V8); } - const flatbuffers::Vector *vf64() const { - return GetPointer *>(VT_VF64); + const ::flatbuffers::Vector *vf64() const { + return GetPointer *>(VT_VF64); } - flatbuffers::Vector *mutable_vf64() { - return GetPointer *>(VT_VF64); + ::flatbuffers::Vector *mutable_vf64() { + return GetPointer<::flatbuffers::Vector *>(VT_VF64); } - bool Verify(flatbuffers::Verifier &verifier) const { + bool Verify(::flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_I8, 1) && VerifyField(verifier, VT_U8, 1) && @@ -2530,15 +2530,15 @@ struct TypeAliases FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { verifier.VerifyVector(vf64()) && verifier.EndTable(); } - TypeAliasesT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; - void UnPackTo(TypeAliasesT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const; - static flatbuffers::Offset Pack(flatbuffers::FlatBufferBuilder &_fbb, const TypeAliasesT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); + TypeAliasesT *UnPack(const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; + void UnPackTo(TypeAliasesT *_o, const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; + static ::flatbuffers::Offset Pack(::flatbuffers::FlatBufferBuilder &_fbb, const TypeAliasesT* _o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); }; struct TypeAliasesBuilder { typedef TypeAliases Table; - flatbuffers::FlatBufferBuilder &fbb_; - flatbuffers::uoffset_t start_; + ::flatbuffers::FlatBufferBuilder &fbb_; + ::flatbuffers::uoffset_t start_; void add_i8(int8_t i8) { fbb_.AddElement(TypeAliases::VT_I8, i8, 0); } @@ -2569,25 +2569,25 @@ struct TypeAliasesBuilder { void add_f64(double f64) { fbb_.AddElement(TypeAliases::VT_F64, f64, 0.0); } - void add_v8(flatbuffers::Offset> v8) { + void add_v8(::flatbuffers::Offset<::flatbuffers::Vector> v8) { fbb_.AddOffset(TypeAliases::VT_V8, v8); } - void add_vf64(flatbuffers::Offset> vf64) { + void add_vf64(::flatbuffers::Offset<::flatbuffers::Vector> vf64) { fbb_.AddOffset(TypeAliases::VT_VF64, vf64); } - explicit TypeAliasesBuilder(flatbuffers::FlatBufferBuilder &_fbb) + explicit TypeAliasesBuilder(::flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); } - flatbuffers::Offset Finish() { + ::flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); - auto o = flatbuffers::Offset(end); + auto o = ::flatbuffers::Offset(end); return o; } }; -inline flatbuffers::Offset CreateTypeAliases( - flatbuffers::FlatBufferBuilder &_fbb, +inline ::flatbuffers::Offset CreateTypeAliases( + ::flatbuffers::FlatBufferBuilder &_fbb, int8_t i8 = 0, uint8_t u8 = 0, int16_t i16 = 0, @@ -2598,8 +2598,8 @@ inline flatbuffers::Offset CreateTypeAliases( uint64_t u64 = 0, float f32 = 0.0f, double f64 = 0.0, - flatbuffers::Offset> v8 = 0, - flatbuffers::Offset> vf64 = 0) { + ::flatbuffers::Offset<::flatbuffers::Vector> v8 = 0, + ::flatbuffers::Offset<::flatbuffers::Vector> vf64 = 0) { TypeAliasesBuilder builder_(_fbb); builder_.add_f64(f64); builder_.add_u64(u64); @@ -2616,8 +2616,8 @@ inline flatbuffers::Offset CreateTypeAliases( return builder_.Finish(); } -inline flatbuffers::Offset CreateTypeAliasesDirect( - flatbuffers::FlatBufferBuilder &_fbb, +inline ::flatbuffers::Offset CreateTypeAliasesDirect( + ::flatbuffers::FlatBufferBuilder &_fbb, int8_t i8 = 0, uint8_t u8 = 0, int16_t i16 = 0, @@ -2648,7 +2648,7 @@ inline flatbuffers::Offset CreateTypeAliasesDirect( vf64__); } -flatbuffers::Offset CreateTypeAliases(flatbuffers::FlatBufferBuilder &_fbb, const TypeAliasesT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); +::flatbuffers::Offset CreateTypeAliases(::flatbuffers::FlatBufferBuilder &_fbb, const TypeAliasesT *_o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); } // namespace Example @@ -2662,25 +2662,25 @@ inline bool operator!=(const InParentNamespaceT &lhs, const InParentNamespaceT & } -inline InParentNamespaceT *InParentNamespace::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +inline InParentNamespaceT *InParentNamespace::UnPack(const ::flatbuffers::resolver_function_t *_resolver) const { auto _o = std::unique_ptr(new InParentNamespaceT()); UnPackTo(_o.get(), _resolver); return _o.release(); } -inline void InParentNamespace::UnPackTo(InParentNamespaceT *_o, const flatbuffers::resolver_function_t *_resolver) const { +inline void InParentNamespace::UnPackTo(InParentNamespaceT *_o, const ::flatbuffers::resolver_function_t *_resolver) const { (void)_o; (void)_resolver; } -inline flatbuffers::Offset InParentNamespace::Pack(flatbuffers::FlatBufferBuilder &_fbb, const InParentNamespaceT* _o, const flatbuffers::rehasher_function_t *_rehasher) { +inline ::flatbuffers::Offset InParentNamespace::Pack(::flatbuffers::FlatBufferBuilder &_fbb, const InParentNamespaceT* _o, const ::flatbuffers::rehasher_function_t *_rehasher) { return CreateInParentNamespace(_fbb, _o, _rehasher); } -inline flatbuffers::Offset CreateInParentNamespace(flatbuffers::FlatBufferBuilder &_fbb, const InParentNamespaceT *_o, const flatbuffers::rehasher_function_t *_rehasher) { +inline ::flatbuffers::Offset CreateInParentNamespace(::flatbuffers::FlatBufferBuilder &_fbb, const InParentNamespaceT *_o, const ::flatbuffers::rehasher_function_t *_rehasher) { (void)_rehasher; (void)_o; - struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const InParentNamespaceT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; + struct _VectorArgs { ::flatbuffers::FlatBufferBuilder *__fbb; const InParentNamespaceT* __o; const ::flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; return MyGame::CreateInParentNamespace( _fbb); } @@ -2697,25 +2697,25 @@ inline bool operator!=(const MonsterT &lhs, const MonsterT &rhs) { } -inline MonsterT *Monster::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +inline MonsterT *Monster::UnPack(const ::flatbuffers::resolver_function_t *_resolver) const { auto _o = std::unique_ptr(new MonsterT()); UnPackTo(_o.get(), _resolver); return _o.release(); } -inline void Monster::UnPackTo(MonsterT *_o, const flatbuffers::resolver_function_t *_resolver) const { +inline void Monster::UnPackTo(MonsterT *_o, const ::flatbuffers::resolver_function_t *_resolver) const { (void)_o; (void)_resolver; } -inline flatbuffers::Offset Monster::Pack(flatbuffers::FlatBufferBuilder &_fbb, const MonsterT* _o, const flatbuffers::rehasher_function_t *_rehasher) { +inline ::flatbuffers::Offset Monster::Pack(::flatbuffers::FlatBufferBuilder &_fbb, const MonsterT* _o, const ::flatbuffers::rehasher_function_t *_rehasher) { return CreateMonster(_fbb, _o, _rehasher); } -inline flatbuffers::Offset CreateMonster(flatbuffers::FlatBufferBuilder &_fbb, const MonsterT *_o, const flatbuffers::rehasher_function_t *_rehasher) { +inline ::flatbuffers::Offset CreateMonster(::flatbuffers::FlatBufferBuilder &_fbb, const MonsterT *_o, const ::flatbuffers::rehasher_function_t *_rehasher) { (void)_rehasher; (void)_o; - struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const MonsterT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; + struct _VectorArgs { ::flatbuffers::FlatBufferBuilder *__fbb; const MonsterT* __o; const ::flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; return MyGame::Example2::CreateMonster( _fbb); } @@ -2735,26 +2735,26 @@ inline bool operator!=(const TestSimpleTableWithEnumT &lhs, const TestSimpleTabl } -inline TestSimpleTableWithEnumT *TestSimpleTableWithEnum::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +inline TestSimpleTableWithEnumT *TestSimpleTableWithEnum::UnPack(const ::flatbuffers::resolver_function_t *_resolver) const { auto _o = std::unique_ptr(new TestSimpleTableWithEnumT()); UnPackTo(_o.get(), _resolver); return _o.release(); } -inline void TestSimpleTableWithEnum::UnPackTo(TestSimpleTableWithEnumT *_o, const flatbuffers::resolver_function_t *_resolver) const { +inline void TestSimpleTableWithEnum::UnPackTo(TestSimpleTableWithEnumT *_o, const ::flatbuffers::resolver_function_t *_resolver) const { (void)_o; (void)_resolver; { auto _e = color(); _o->color = _e; } } -inline flatbuffers::Offset TestSimpleTableWithEnum::Pack(flatbuffers::FlatBufferBuilder &_fbb, const TestSimpleTableWithEnumT* _o, const flatbuffers::rehasher_function_t *_rehasher) { +inline ::flatbuffers::Offset TestSimpleTableWithEnum::Pack(::flatbuffers::FlatBufferBuilder &_fbb, const TestSimpleTableWithEnumT* _o, const ::flatbuffers::rehasher_function_t *_rehasher) { return CreateTestSimpleTableWithEnum(_fbb, _o, _rehasher); } -inline flatbuffers::Offset CreateTestSimpleTableWithEnum(flatbuffers::FlatBufferBuilder &_fbb, const TestSimpleTableWithEnumT *_o, const flatbuffers::rehasher_function_t *_rehasher) { +inline ::flatbuffers::Offset CreateTestSimpleTableWithEnum(::flatbuffers::FlatBufferBuilder &_fbb, const TestSimpleTableWithEnumT *_o, const ::flatbuffers::rehasher_function_t *_rehasher) { (void)_rehasher; (void)_o; - struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const TestSimpleTableWithEnumT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; + struct _VectorArgs { ::flatbuffers::FlatBufferBuilder *__fbb; const TestSimpleTableWithEnumT* __o; const ::flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; auto _color = _o->color; return MyGame::Example::CreateTestSimpleTableWithEnum( _fbb, @@ -2774,13 +2774,13 @@ inline bool operator!=(const StatT &lhs, const StatT &rhs) { } -inline StatT *Stat::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +inline StatT *Stat::UnPack(const ::flatbuffers::resolver_function_t *_resolver) const { auto _o = std::unique_ptr(new StatT()); UnPackTo(_o.get(), _resolver); return _o.release(); } -inline void Stat::UnPackTo(StatT *_o, const flatbuffers::resolver_function_t *_resolver) const { +inline void Stat::UnPackTo(StatT *_o, const ::flatbuffers::resolver_function_t *_resolver) const { (void)_o; (void)_resolver; { auto _e = id(); if (_e) _o->id = _e->str(); } @@ -2788,14 +2788,14 @@ inline void Stat::UnPackTo(StatT *_o, const flatbuffers::resolver_function_t *_r { auto _e = count(); _o->count = _e; } } -inline flatbuffers::Offset Stat::Pack(flatbuffers::FlatBufferBuilder &_fbb, const StatT* _o, const flatbuffers::rehasher_function_t *_rehasher) { +inline ::flatbuffers::Offset Stat::Pack(::flatbuffers::FlatBufferBuilder &_fbb, const StatT* _o, const ::flatbuffers::rehasher_function_t *_rehasher) { return CreateStat(_fbb, _o, _rehasher); } -inline flatbuffers::Offset CreateStat(flatbuffers::FlatBufferBuilder &_fbb, const StatT *_o, const flatbuffers::rehasher_function_t *_rehasher) { +inline ::flatbuffers::Offset CreateStat(::flatbuffers::FlatBufferBuilder &_fbb, const StatT *_o, const ::flatbuffers::rehasher_function_t *_rehasher) { (void)_rehasher; (void)_o; - struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const StatT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; + struct _VectorArgs { ::flatbuffers::FlatBufferBuilder *__fbb; const StatT* __o; const ::flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; auto _id = _o->id.empty() ? 0 : _fbb.CreateString(_o->id); auto _val = _o->val; auto _count = _o->count; @@ -2817,26 +2817,26 @@ inline bool operator!=(const ReferrableT &lhs, const ReferrableT &rhs) { } -inline ReferrableT *Referrable::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +inline ReferrableT *Referrable::UnPack(const ::flatbuffers::resolver_function_t *_resolver) const { auto _o = std::unique_ptr(new ReferrableT()); UnPackTo(_o.get(), _resolver); return _o.release(); } -inline void Referrable::UnPackTo(ReferrableT *_o, const flatbuffers::resolver_function_t *_resolver) const { +inline void Referrable::UnPackTo(ReferrableT *_o, const ::flatbuffers::resolver_function_t *_resolver) const { (void)_o; (void)_resolver; { auto _e = id(); _o->id = _e; } } -inline flatbuffers::Offset Referrable::Pack(flatbuffers::FlatBufferBuilder &_fbb, const ReferrableT* _o, const flatbuffers::rehasher_function_t *_rehasher) { +inline ::flatbuffers::Offset Referrable::Pack(::flatbuffers::FlatBufferBuilder &_fbb, const ReferrableT* _o, const ::flatbuffers::rehasher_function_t *_rehasher) { return CreateReferrable(_fbb, _o, _rehasher); } -inline flatbuffers::Offset CreateReferrable(flatbuffers::FlatBufferBuilder &_fbb, const ReferrableT *_o, const flatbuffers::rehasher_function_t *_rehasher) { +inline ::flatbuffers::Offset CreateReferrable(::flatbuffers::FlatBufferBuilder &_fbb, const ReferrableT *_o, const ::flatbuffers::rehasher_function_t *_rehasher) { (void)_rehasher; (void)_o; - struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const ReferrableT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; + struct _VectorArgs { ::flatbuffers::FlatBufferBuilder *__fbb; const ReferrableT* __o; const ::flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; auto _id = _o->id; return MyGame::Example::CreateReferrable( _fbb, @@ -3039,13 +3039,13 @@ inline MonsterT &MonsterT::operator=(MonsterT o) FLATBUFFERS_NOEXCEPT { return *this; } -inline MonsterT *Monster::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +inline MonsterT *Monster::UnPack(const ::flatbuffers::resolver_function_t *_resolver) const { auto _o = std::unique_ptr(new MonsterT()); UnPackTo(_o.get(), _resolver); return _o.release(); } -inline void Monster::UnPackTo(MonsterT *_o, const flatbuffers::resolver_function_t *_resolver) const { +inline void Monster::UnPackTo(MonsterT *_o, const ::flatbuffers::resolver_function_t *_resolver) const { (void)_o; (void)_resolver; { auto _e = pos(); if (_e) _o->pos = flatbuffers::unique_ptr(new MyGame::Example::Vec3(*_e)); } @@ -3056,9 +3056,9 @@ inline void Monster::UnPackTo(MonsterT *_o, const flatbuffers::resolver_function { auto _e = color(); _o->color = _e; } { auto _e = test_type(); _o->test.type = _e; } { auto _e = test(); if (_e) _o->test.value = MyGame::Example::AnyUnion::UnPack(_e, test_type(), _resolver); } - { auto _e = test4(); if (_e) { _o->test4.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->test4[_i] = *_e->Get(_i); } } else { _o->test4.resize(0); } } - { auto _e = testarrayofstring(); if (_e) { _o->testarrayofstring.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->testarrayofstring[_i] = _e->Get(_i)->str(); } } else { _o->testarrayofstring.resize(0); } } - { auto _e = testarrayoftables(); if (_e) { _o->testarrayoftables.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { if(_o->testarrayoftables[_i]) { _e->Get(_i)->UnPackTo(_o->testarrayoftables[_i].get(), _resolver); } else { _o->testarrayoftables[_i] = flatbuffers::unique_ptr(_e->Get(_i)->UnPack(_resolver)); }; } } else { _o->testarrayoftables.resize(0); } } + { auto _e = test4(); if (_e) { _o->test4.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->test4[_i] = *_e->Get(_i); } } else { _o->test4.resize(0); } } + { auto _e = testarrayofstring(); if (_e) { _o->testarrayofstring.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->testarrayofstring[_i] = _e->Get(_i)->str(); } } else { _o->testarrayofstring.resize(0); } } + { auto _e = testarrayoftables(); if (_e) { _o->testarrayoftables.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { if(_o->testarrayoftables[_i]) { _e->Get(_i)->UnPackTo(_o->testarrayoftables[_i].get(), _resolver); } else { _o->testarrayoftables[_i] = flatbuffers::unique_ptr(_e->Get(_i)->UnPack(_resolver)); }; } } else { _o->testarrayoftables.resize(0); } } { auto _e = enemy(); if (_e) { if(_o->enemy) { _e->UnPackTo(_o->enemy.get(), _resolver); } else { _o->enemy = flatbuffers::unique_ptr(_e->UnPack(_resolver)); } } else if (_o->enemy) { _o->enemy.reset(); } } { auto _e = testnestedflatbuffer(); if (_e) { _o->testnestedflatbuffer.resize(_e->size()); std::copy(_e->begin(), _e->end(), _o->testnestedflatbuffer.begin()); } } { auto _e = testempty(); if (_e) { if(_o->testempty) { _e->UnPackTo(_o->testempty.get(), _resolver); } else { _o->testempty = flatbuffers::unique_ptr(_e->UnPack(_resolver)); } } else if (_o->testempty) { _o->testempty.reset(); } } @@ -3068,36 +3068,36 @@ inline void Monster::UnPackTo(MonsterT *_o, const flatbuffers::resolver_function { auto _e = testhashs64_fnv1(); _o->testhashs64_fnv1 = _e; } { auto _e = testhashu64_fnv1(); _o->testhashu64_fnv1 = _e; } { auto _e = testhashs32_fnv1a(); _o->testhashs32_fnv1a = _e; } - { auto _e = testhashu32_fnv1a(); /*scalar resolver, naked*/ if (_resolver) (*_resolver)(reinterpret_cast(&_o->testhashu32_fnv1a), static_cast(_e)); else _o->testhashu32_fnv1a = nullptr; } + { auto _e = testhashu32_fnv1a(); /*scalar resolver, naked*/ if (_resolver) (*_resolver)(reinterpret_cast(&_o->testhashu32_fnv1a), static_cast<::flatbuffers::hash_value_t>(_e)); else _o->testhashu32_fnv1a = nullptr; } { auto _e = testhashs64_fnv1a(); _o->testhashs64_fnv1a = _e; } { auto _e = testhashu64_fnv1a(); _o->testhashu64_fnv1a = _e; } - { auto _e = testarrayofbools(); if (_e) { _o->testarrayofbools.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->testarrayofbools[_i] = _e->Get(_i) != 0; } } else { _o->testarrayofbools.resize(0); } } + { auto _e = testarrayofbools(); if (_e) { _o->testarrayofbools.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->testarrayofbools[_i] = _e->Get(_i) != 0; } } else { _o->testarrayofbools.resize(0); } } { auto _e = testf(); _o->testf = _e; } { auto _e = testf2(); _o->testf2 = _e; } { auto _e = testf3(); _o->testf3 = _e; } - { auto _e = testarrayofstring2(); if (_e) { _o->testarrayofstring2.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->testarrayofstring2[_i] = _e->Get(_i)->str(); } } else { _o->testarrayofstring2.resize(0); } } - { auto _e = testarrayofsortedstruct(); if (_e) { _o->testarrayofsortedstruct.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->testarrayofsortedstruct[_i] = *_e->Get(_i); } } else { _o->testarrayofsortedstruct.resize(0); } } + { auto _e = testarrayofstring2(); if (_e) { _o->testarrayofstring2.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->testarrayofstring2[_i] = _e->Get(_i)->str(); } } else { _o->testarrayofstring2.resize(0); } } + { auto _e = testarrayofsortedstruct(); if (_e) { _o->testarrayofsortedstruct.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->testarrayofsortedstruct[_i] = *_e->Get(_i); } } else { _o->testarrayofsortedstruct.resize(0); } } { auto _e = flex(); if (_e) { _o->flex.resize(_e->size()); std::copy(_e->begin(), _e->end(), _o->flex.begin()); } } - { auto _e = test5(); if (_e) { _o->test5.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->test5[_i] = *_e->Get(_i); } } else { _o->test5.resize(0); } } - { auto _e = vector_of_longs(); if (_e) { _o->vector_of_longs.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->vector_of_longs[_i] = _e->Get(_i); } } else { _o->vector_of_longs.resize(0); } } - { auto _e = vector_of_doubles(); if (_e) { _o->vector_of_doubles.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->vector_of_doubles[_i] = _e->Get(_i); } } else { _o->vector_of_doubles.resize(0); } } + { auto _e = test5(); if (_e) { _o->test5.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->test5[_i] = *_e->Get(_i); } } else { _o->test5.resize(0); } } + { auto _e = vector_of_longs(); if (_e) { _o->vector_of_longs.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->vector_of_longs[_i] = _e->Get(_i); } } else { _o->vector_of_longs.resize(0); } } + { auto _e = vector_of_doubles(); if (_e) { _o->vector_of_doubles.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->vector_of_doubles[_i] = _e->Get(_i); } } else { _o->vector_of_doubles.resize(0); } } { auto _e = parent_namespace_test(); if (_e) { if(_o->parent_namespace_test) { _e->UnPackTo(_o->parent_namespace_test.get(), _resolver); } else { _o->parent_namespace_test = flatbuffers::unique_ptr(_e->UnPack(_resolver)); } } else if (_o->parent_namespace_test) { _o->parent_namespace_test.reset(); } } - { auto _e = vector_of_referrables(); if (_e) { _o->vector_of_referrables.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { if(_o->vector_of_referrables[_i]) { _e->Get(_i)->UnPackTo(_o->vector_of_referrables[_i].get(), _resolver); } else { _o->vector_of_referrables[_i] = flatbuffers::unique_ptr(_e->Get(_i)->UnPack(_resolver)); }; } } else { _o->vector_of_referrables.resize(0); } } - { auto _e = single_weak_reference(); /*scalar resolver, naked*/ if (_resolver) (*_resolver)(reinterpret_cast(&_o->single_weak_reference), static_cast(_e)); else _o->single_weak_reference = nullptr; } - { auto _e = vector_of_weak_references(); if (_e) { _o->vector_of_weak_references.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { /*vector resolver, naked*/ if (_resolver) (*_resolver)(reinterpret_cast(&_o->vector_of_weak_references[_i]), static_cast(_e->Get(_i))); else _o->vector_of_weak_references[_i] = nullptr; } } else { _o->vector_of_weak_references.resize(0); } } - { auto _e = vector_of_strong_referrables(); if (_e) { _o->vector_of_strong_referrables.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { if(_o->vector_of_strong_referrables[_i]) { _e->Get(_i)->UnPackTo(_o->vector_of_strong_referrables[_i].get(), _resolver); } else { _o->vector_of_strong_referrables[_i] = flatbuffers::unique_ptr(_e->Get(_i)->UnPack(_resolver)); }; } } else { _o->vector_of_strong_referrables.resize(0); } } - { auto _e = co_owning_reference(); /*scalar resolver, naked*/ if (_resolver) (*_resolver)(reinterpret_cast(&_o->co_owning_reference), static_cast(_e)); else _o->co_owning_reference = nullptr; } - { auto _e = vector_of_co_owning_references(); if (_e) { _o->vector_of_co_owning_references.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { /*vector resolver, default_ptr_type*/ if (_resolver) (*_resolver)(reinterpret_cast(&_o->vector_of_co_owning_references[_i]), static_cast(_e->Get(_i)));/* else do nothing */; } } else { _o->vector_of_co_owning_references.resize(0); } } - { auto _e = non_owning_reference(); /*scalar resolver, naked*/ if (_resolver) (*_resolver)(reinterpret_cast(&_o->non_owning_reference), static_cast(_e)); else _o->non_owning_reference = nullptr; } - { auto _e = vector_of_non_owning_references(); if (_e) { _o->vector_of_non_owning_references.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { /*vector resolver, naked*/ if (_resolver) (*_resolver)(reinterpret_cast(&_o->vector_of_non_owning_references[_i]), static_cast(_e->Get(_i))); else _o->vector_of_non_owning_references[_i] = nullptr; } } else { _o->vector_of_non_owning_references.resize(0); } } + { auto _e = vector_of_referrables(); if (_e) { _o->vector_of_referrables.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { if(_o->vector_of_referrables[_i]) { _e->Get(_i)->UnPackTo(_o->vector_of_referrables[_i].get(), _resolver); } else { _o->vector_of_referrables[_i] = flatbuffers::unique_ptr(_e->Get(_i)->UnPack(_resolver)); }; } } else { _o->vector_of_referrables.resize(0); } } + { auto _e = single_weak_reference(); /*scalar resolver, naked*/ if (_resolver) (*_resolver)(reinterpret_cast(&_o->single_weak_reference), static_cast<::flatbuffers::hash_value_t>(_e)); else _o->single_weak_reference = nullptr; } + { auto _e = vector_of_weak_references(); if (_e) { _o->vector_of_weak_references.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { /*vector resolver, naked*/ if (_resolver) (*_resolver)(reinterpret_cast(&_o->vector_of_weak_references[_i]), static_cast<::flatbuffers::hash_value_t>(_e->Get(_i))); else _o->vector_of_weak_references[_i] = nullptr; } } else { _o->vector_of_weak_references.resize(0); } } + { auto _e = vector_of_strong_referrables(); if (_e) { _o->vector_of_strong_referrables.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { if(_o->vector_of_strong_referrables[_i]) { _e->Get(_i)->UnPackTo(_o->vector_of_strong_referrables[_i].get(), _resolver); } else { _o->vector_of_strong_referrables[_i] = flatbuffers::unique_ptr(_e->Get(_i)->UnPack(_resolver)); }; } } else { _o->vector_of_strong_referrables.resize(0); } } + { auto _e = co_owning_reference(); /*scalar resolver, naked*/ if (_resolver) (*_resolver)(reinterpret_cast(&_o->co_owning_reference), static_cast<::flatbuffers::hash_value_t>(_e)); else _o->co_owning_reference = nullptr; } + { auto _e = vector_of_co_owning_references(); if (_e) { _o->vector_of_co_owning_references.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { /*vector resolver, default_ptr_type*/ if (_resolver) (*_resolver)(reinterpret_cast(&_o->vector_of_co_owning_references[_i]), static_cast<::flatbuffers::hash_value_t>(_e->Get(_i)));/* else do nothing */; } } else { _o->vector_of_co_owning_references.resize(0); } } + { auto _e = non_owning_reference(); /*scalar resolver, naked*/ if (_resolver) (*_resolver)(reinterpret_cast(&_o->non_owning_reference), static_cast<::flatbuffers::hash_value_t>(_e)); else _o->non_owning_reference = nullptr; } + { auto _e = vector_of_non_owning_references(); if (_e) { _o->vector_of_non_owning_references.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { /*vector resolver, naked*/ if (_resolver) (*_resolver)(reinterpret_cast(&_o->vector_of_non_owning_references[_i]), static_cast<::flatbuffers::hash_value_t>(_e->Get(_i))); else _o->vector_of_non_owning_references[_i] = nullptr; } } else { _o->vector_of_non_owning_references.resize(0); } } { auto _e = any_unique_type(); _o->any_unique.type = _e; } { auto _e = any_unique(); if (_e) _o->any_unique.value = MyGame::Example::AnyUniqueAliasesUnion::UnPack(_e, any_unique_type(), _resolver); } { auto _e = any_ambiguous_type(); _o->any_ambiguous.type = _e; } { auto _e = any_ambiguous(); if (_e) _o->any_ambiguous.value = MyGame::Example::AnyAmbiguousAliasesUnion::UnPack(_e, any_ambiguous_type(), _resolver); } - { auto _e = vector_of_enums(); if (_e) { _o->vector_of_enums.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->vector_of_enums[_i] = static_cast(_e->Get(_i)); } } else { _o->vector_of_enums.resize(0); } } + { auto _e = vector_of_enums(); if (_e) { _o->vector_of_enums.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->vector_of_enums[_i] = static_cast(_e->Get(_i)); } } else { _o->vector_of_enums.resize(0); } } { auto _e = signed_enum(); _o->signed_enum = _e; } { auto _e = testrequirednestedflatbuffer(); if (_e) { _o->testrequirednestedflatbuffer.resize(_e->size()); std::copy(_e->begin(), _e->end(), _o->testrequirednestedflatbuffer.begin()); } } - { auto _e = scalar_key_sorted_tables(); if (_e) { _o->scalar_key_sorted_tables.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { if(_o->scalar_key_sorted_tables[_i]) { _e->Get(_i)->UnPackTo(_o->scalar_key_sorted_tables[_i].get(), _resolver); } else { _o->scalar_key_sorted_tables[_i] = flatbuffers::unique_ptr(_e->Get(_i)->UnPack(_resolver)); }; } } else { _o->scalar_key_sorted_tables.resize(0); } } + { auto _e = scalar_key_sorted_tables(); if (_e) { _o->scalar_key_sorted_tables.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { if(_o->scalar_key_sorted_tables[_i]) { _e->Get(_i)->UnPackTo(_o->scalar_key_sorted_tables[_i].get(), _resolver); } else { _o->scalar_key_sorted_tables[_i] = flatbuffers::unique_ptr(_e->Get(_i)->UnPack(_resolver)); }; } } else { _o->scalar_key_sorted_tables.resize(0); } } { auto _e = native_inline(); if (_e) _o->native_inline = *_e; } { auto _e = long_enum_non_enum_default(); _o->long_enum_non_enum_default = _e; } { auto _e = long_enum_normal_default(); _o->long_enum_normal_default = _e; } @@ -3111,14 +3111,14 @@ inline void Monster::UnPackTo(MonsterT *_o, const flatbuffers::resolver_function { auto _e = double_inf_default(); _o->double_inf_default = _e; } } -inline flatbuffers::Offset Monster::Pack(flatbuffers::FlatBufferBuilder &_fbb, const MonsterT* _o, const flatbuffers::rehasher_function_t *_rehasher) { +inline ::flatbuffers::Offset Monster::Pack(::flatbuffers::FlatBufferBuilder &_fbb, const MonsterT* _o, const ::flatbuffers::rehasher_function_t *_rehasher) { return CreateMonster(_fbb, _o, _rehasher); } -inline flatbuffers::Offset CreateMonster(flatbuffers::FlatBufferBuilder &_fbb, const MonsterT *_o, const flatbuffers::rehasher_function_t *_rehasher) { +inline ::flatbuffers::Offset CreateMonster(::flatbuffers::FlatBufferBuilder &_fbb, const MonsterT *_o, const ::flatbuffers::rehasher_function_t *_rehasher) { (void)_rehasher; (void)_o; - struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const MonsterT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; + struct _VectorArgs { ::flatbuffers::FlatBufferBuilder *__fbb; const MonsterT* __o; const ::flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; auto _pos = _o->pos ? _o->pos.get() : nullptr; auto _mana = _o->mana; auto _hp = _o->hp; @@ -3129,7 +3129,7 @@ inline flatbuffers::Offset CreateMonster(flatbuffers::FlatBufferBuilder auto _test = _o->test.Pack(_fbb); auto _test4 = _o->test4.size() ? _fbb.CreateVectorOfStructs(_o->test4) : 0; auto _testarrayofstring = _o->testarrayofstring.size() ? _fbb.CreateVectorOfStrings(_o->testarrayofstring) : 0; - auto _testarrayoftables = _o->testarrayoftables.size() ? _fbb.CreateVector> (_o->testarrayoftables.size(), [](size_t i, _VectorArgs *__va) { return CreateMonster(*__va->__fbb, __va->__o->testarrayoftables[i].get(), __va->__rehasher); }, &_va ) : 0; + auto _testarrayoftables = _o->testarrayoftables.size() ? _fbb.CreateVector<::flatbuffers::Offset> (_o->testarrayoftables.size(), [](size_t i, _VectorArgs *__va) { return CreateMonster(*__va->__fbb, __va->__o->testarrayoftables[i].get(), __va->__rehasher); }, &_va ) : 0; auto _enemy = _o->enemy ? CreateMonster(_fbb, _o->enemy.get(), _rehasher) : 0; auto _testnestedflatbuffer = _o->testnestedflatbuffer.size() ? _fbb.CreateVector(_o->testnestedflatbuffer) : 0; auto _testempty = _o->testempty ? CreateStat(_fbb, _o->testempty.get(), _rehasher) : 0; @@ -3153,10 +3153,10 @@ inline flatbuffers::Offset CreateMonster(flatbuffers::FlatBufferBuilder auto _vector_of_longs = _o->vector_of_longs.size() ? _fbb.CreateVector(_o->vector_of_longs) : 0; auto _vector_of_doubles = _o->vector_of_doubles.size() ? _fbb.CreateVector(_o->vector_of_doubles) : 0; auto _parent_namespace_test = _o->parent_namespace_test ? CreateInParentNamespace(_fbb, _o->parent_namespace_test.get(), _rehasher) : 0; - auto _vector_of_referrables = _o->vector_of_referrables.size() ? _fbb.CreateVector> (_o->vector_of_referrables.size(), [](size_t i, _VectorArgs *__va) { return CreateReferrable(*__va->__fbb, __va->__o->vector_of_referrables[i].get(), __va->__rehasher); }, &_va ) : 0; + auto _vector_of_referrables = _o->vector_of_referrables.size() ? _fbb.CreateVector<::flatbuffers::Offset> (_o->vector_of_referrables.size(), [](size_t i, _VectorArgs *__va) { return CreateReferrable(*__va->__fbb, __va->__o->vector_of_referrables[i].get(), __va->__rehasher); }, &_va ) : 0; auto _single_weak_reference = _rehasher ? static_cast((*_rehasher)(_o->single_weak_reference)) : 0; auto _vector_of_weak_references = _o->vector_of_weak_references.size() ? _fbb.CreateVector(_o->vector_of_weak_references.size(), [](size_t i, _VectorArgs *__va) { return __va->__rehasher ? static_cast((*__va->__rehasher)(__va->__o->vector_of_weak_references[i])) : 0; }, &_va ) : 0; - auto _vector_of_strong_referrables = _o->vector_of_strong_referrables.size() ? _fbb.CreateVector> (_o->vector_of_strong_referrables.size(), [](size_t i, _VectorArgs *__va) { return CreateReferrable(*__va->__fbb, __va->__o->vector_of_strong_referrables[i].get(), __va->__rehasher); }, &_va ) : 0; + auto _vector_of_strong_referrables = _o->vector_of_strong_referrables.size() ? _fbb.CreateVector<::flatbuffers::Offset> (_o->vector_of_strong_referrables.size(), [](size_t i, _VectorArgs *__va) { return CreateReferrable(*__va->__fbb, __va->__o->vector_of_strong_referrables[i].get(), __va->__rehasher); }, &_va ) : 0; auto _co_owning_reference = _rehasher ? static_cast((*_rehasher)(_o->co_owning_reference)) : 0; auto _vector_of_co_owning_references = _o->vector_of_co_owning_references.size() ? _fbb.CreateVector(_o->vector_of_co_owning_references.size(), [](size_t i, _VectorArgs *__va) { return __va->__rehasher ? static_cast((*__va->__rehasher)(__va->__o->vector_of_co_owning_references[i].get())) : 0; }, &_va ) : 0; auto _non_owning_reference = _rehasher ? static_cast((*_rehasher)(_o->non_owning_reference)) : 0; @@ -3165,10 +3165,10 @@ inline flatbuffers::Offset CreateMonster(flatbuffers::FlatBufferBuilder auto _any_unique = _o->any_unique.Pack(_fbb); auto _any_ambiguous_type = _o->any_ambiguous.type; auto _any_ambiguous = _o->any_ambiguous.Pack(_fbb); - auto _vector_of_enums = _o->vector_of_enums.size() ? _fbb.CreateVectorScalarCast(flatbuffers::data(_o->vector_of_enums), _o->vector_of_enums.size()) : 0; + auto _vector_of_enums = _o->vector_of_enums.size() ? _fbb.CreateVectorScalarCast(::flatbuffers::data(_o->vector_of_enums), _o->vector_of_enums.size()) : 0; auto _signed_enum = _o->signed_enum; auto _testrequirednestedflatbuffer = _o->testrequirednestedflatbuffer.size() ? _fbb.CreateVector(_o->testrequirednestedflatbuffer) : 0; - auto _scalar_key_sorted_tables = _o->scalar_key_sorted_tables.size() ? _fbb.CreateVector> (_o->scalar_key_sorted_tables.size(), [](size_t i, _VectorArgs *__va) { return CreateStat(*__va->__fbb, __va->__o->scalar_key_sorted_tables[i].get(), __va->__rehasher); }, &_va ) : 0; + auto _scalar_key_sorted_tables = _o->scalar_key_sorted_tables.size() ? _fbb.CreateVector<::flatbuffers::Offset> (_o->scalar_key_sorted_tables.size(), [](size_t i, _VectorArgs *__va) { return CreateStat(*__va->__fbb, __va->__o->scalar_key_sorted_tables[i].get(), __va->__rehasher); }, &_va ) : 0; auto _native_inline = &_o->native_inline; auto _long_enum_non_enum_default = _o->long_enum_non_enum_default; auto _long_enum_normal_default = _o->long_enum_normal_default; @@ -3267,13 +3267,13 @@ inline bool operator!=(const TypeAliasesT &lhs, const TypeAliasesT &rhs) { } -inline TypeAliasesT *TypeAliases::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +inline TypeAliasesT *TypeAliases::UnPack(const ::flatbuffers::resolver_function_t *_resolver) const { auto _o = std::unique_ptr(new TypeAliasesT()); UnPackTo(_o.get(), _resolver); return _o.release(); } -inline void TypeAliases::UnPackTo(TypeAliasesT *_o, const flatbuffers::resolver_function_t *_resolver) const { +inline void TypeAliases::UnPackTo(TypeAliasesT *_o, const ::flatbuffers::resolver_function_t *_resolver) const { (void)_o; (void)_resolver; { auto _e = i8(); _o->i8 = _e; } @@ -3287,17 +3287,17 @@ inline void TypeAliases::UnPackTo(TypeAliasesT *_o, const flatbuffers::resolver_ { auto _e = f32(); _o->f32 = _e; } { auto _e = f64(); _o->f64 = _e; } { auto _e = v8(); if (_e) { _o->v8.resize(_e->size()); std::copy(_e->begin(), _e->end(), _o->v8.begin()); } } - { auto _e = vf64(); if (_e) { _o->vf64.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->vf64[_i] = _e->Get(_i); } } else { _o->vf64.resize(0); } } + { auto _e = vf64(); if (_e) { _o->vf64.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->vf64[_i] = _e->Get(_i); } } else { _o->vf64.resize(0); } } } -inline flatbuffers::Offset TypeAliases::Pack(flatbuffers::FlatBufferBuilder &_fbb, const TypeAliasesT* _o, const flatbuffers::rehasher_function_t *_rehasher) { +inline ::flatbuffers::Offset TypeAliases::Pack(::flatbuffers::FlatBufferBuilder &_fbb, const TypeAliasesT* _o, const ::flatbuffers::rehasher_function_t *_rehasher) { return CreateTypeAliases(_fbb, _o, _rehasher); } -inline flatbuffers::Offset CreateTypeAliases(flatbuffers::FlatBufferBuilder &_fbb, const TypeAliasesT *_o, const flatbuffers::rehasher_function_t *_rehasher) { +inline ::flatbuffers::Offset CreateTypeAliases(::flatbuffers::FlatBufferBuilder &_fbb, const TypeAliasesT *_o, const ::flatbuffers::rehasher_function_t *_rehasher) { (void)_rehasher; (void)_o; - struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const TypeAliasesT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; + struct _VectorArgs { ::flatbuffers::FlatBufferBuilder *__fbb; const TypeAliasesT* __o; const ::flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; auto _i8 = _o->i8; auto _u8 = _o->u8; auto _i16 = _o->i16; @@ -3326,7 +3326,7 @@ inline flatbuffers::Offset CreateTypeAliases(flatbuffers::FlatBuffe _vf64); } -inline bool VerifyAny(flatbuffers::Verifier &verifier, const void *obj, Any type) { +inline bool VerifyAny(::flatbuffers::Verifier &verifier, const void *obj, Any type) { switch (type) { case Any_NONE: { return true; @@ -3347,10 +3347,10 @@ inline bool VerifyAny(flatbuffers::Verifier &verifier, const void *obj, Any type } } -inline bool VerifyAnyVector(flatbuffers::Verifier &verifier, const flatbuffers::Vector> *values, const flatbuffers::Vector *types) { +inline bool VerifyAnyVector(::flatbuffers::Verifier &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types) { if (!values || !types) return !values && !types; if (values->size() != types->size()) return false; - for (flatbuffers::uoffset_t i = 0; i < values->size(); ++i) { + for (::flatbuffers::uoffset_t i = 0; i < values->size(); ++i) { if (!VerifyAny( verifier, values->Get(i), types->GetEnum(i))) { return false; @@ -3359,7 +3359,7 @@ inline bool VerifyAnyVector(flatbuffers::Verifier &verifier, const flatbuffers:: return true; } -inline void *AnyUnion::UnPack(const void *obj, Any type, const flatbuffers::resolver_function_t *resolver) { +inline void *AnyUnion::UnPack(const void *obj, Any type, const ::flatbuffers::resolver_function_t *resolver) { (void)resolver; switch (type) { case Any_Monster: { @@ -3378,7 +3378,7 @@ inline void *AnyUnion::UnPack(const void *obj, Any type, const flatbuffers::reso } } -inline flatbuffers::Offset AnyUnion::Pack(flatbuffers::FlatBufferBuilder &_fbb, const flatbuffers::rehasher_function_t *_rehasher) const { +inline ::flatbuffers::Offset AnyUnion::Pack(::flatbuffers::FlatBufferBuilder &_fbb, const ::flatbuffers::rehasher_function_t *_rehasher) const { (void)_rehasher; switch (type) { case Any_Monster: { @@ -3439,7 +3439,7 @@ inline void AnyUnion::Reset() { type = Any_NONE; } -inline bool VerifyAnyUniqueAliases(flatbuffers::Verifier &verifier, const void *obj, AnyUniqueAliases type) { +inline bool VerifyAnyUniqueAliases(::flatbuffers::Verifier &verifier, const void *obj, AnyUniqueAliases type) { switch (type) { case AnyUniqueAliases_NONE: { return true; @@ -3460,10 +3460,10 @@ inline bool VerifyAnyUniqueAliases(flatbuffers::Verifier &verifier, const void * } } -inline bool VerifyAnyUniqueAliasesVector(flatbuffers::Verifier &verifier, const flatbuffers::Vector> *values, const flatbuffers::Vector *types) { +inline bool VerifyAnyUniqueAliasesVector(::flatbuffers::Verifier &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types) { if (!values || !types) return !values && !types; if (values->size() != types->size()) return false; - for (flatbuffers::uoffset_t i = 0; i < values->size(); ++i) { + for (::flatbuffers::uoffset_t i = 0; i < values->size(); ++i) { if (!VerifyAnyUniqueAliases( verifier, values->Get(i), types->GetEnum(i))) { return false; @@ -3472,7 +3472,7 @@ inline bool VerifyAnyUniqueAliasesVector(flatbuffers::Verifier &verifier, const return true; } -inline void *AnyUniqueAliasesUnion::UnPack(const void *obj, AnyUniqueAliases type, const flatbuffers::resolver_function_t *resolver) { +inline void *AnyUniqueAliasesUnion::UnPack(const void *obj, AnyUniqueAliases type, const ::flatbuffers::resolver_function_t *resolver) { (void)resolver; switch (type) { case AnyUniqueAliases_M: { @@ -3491,7 +3491,7 @@ inline void *AnyUniqueAliasesUnion::UnPack(const void *obj, AnyUniqueAliases typ } } -inline flatbuffers::Offset AnyUniqueAliasesUnion::Pack(flatbuffers::FlatBufferBuilder &_fbb, const flatbuffers::rehasher_function_t *_rehasher) const { +inline ::flatbuffers::Offset AnyUniqueAliasesUnion::Pack(::flatbuffers::FlatBufferBuilder &_fbb, const ::flatbuffers::rehasher_function_t *_rehasher) const { (void)_rehasher; switch (type) { case AnyUniqueAliases_M: { @@ -3552,7 +3552,7 @@ inline void AnyUniqueAliasesUnion::Reset() { type = AnyUniqueAliases_NONE; } -inline bool VerifyAnyAmbiguousAliases(flatbuffers::Verifier &verifier, const void *obj, AnyAmbiguousAliases type) { +inline bool VerifyAnyAmbiguousAliases(::flatbuffers::Verifier &verifier, const void *obj, AnyAmbiguousAliases type) { switch (type) { case AnyAmbiguousAliases_NONE: { return true; @@ -3573,10 +3573,10 @@ inline bool VerifyAnyAmbiguousAliases(flatbuffers::Verifier &verifier, const voi } } -inline bool VerifyAnyAmbiguousAliasesVector(flatbuffers::Verifier &verifier, const flatbuffers::Vector> *values, const flatbuffers::Vector *types) { +inline bool VerifyAnyAmbiguousAliasesVector(::flatbuffers::Verifier &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types) { if (!values || !types) return !values && !types; if (values->size() != types->size()) return false; - for (flatbuffers::uoffset_t i = 0; i < values->size(); ++i) { + for (::flatbuffers::uoffset_t i = 0; i < values->size(); ++i) { if (!VerifyAnyAmbiguousAliases( verifier, values->Get(i), types->GetEnum(i))) { return false; @@ -3585,7 +3585,7 @@ inline bool VerifyAnyAmbiguousAliasesVector(flatbuffers::Verifier &verifier, con return true; } -inline void *AnyAmbiguousAliasesUnion::UnPack(const void *obj, AnyAmbiguousAliases type, const flatbuffers::resolver_function_t *resolver) { +inline void *AnyAmbiguousAliasesUnion::UnPack(const void *obj, AnyAmbiguousAliases type, const ::flatbuffers::resolver_function_t *resolver) { (void)resolver; switch (type) { case AnyAmbiguousAliases_M1: { @@ -3604,7 +3604,7 @@ inline void *AnyAmbiguousAliasesUnion::UnPack(const void *obj, AnyAmbiguousAlias } } -inline flatbuffers::Offset AnyAmbiguousAliasesUnion::Pack(flatbuffers::FlatBufferBuilder &_fbb, const flatbuffers::rehasher_function_t *_rehasher) const { +inline ::flatbuffers::Offset AnyAmbiguousAliasesUnion::Pack(::flatbuffers::FlatBufferBuilder &_fbb, const ::flatbuffers::rehasher_function_t *_rehasher) const { (void)_rehasher; switch (type) { case AnyAmbiguousAliases_M1: { @@ -3665,13 +3665,13 @@ inline void AnyAmbiguousAliasesUnion::Reset() { type = AnyAmbiguousAliases_NONE; } -inline const flatbuffers::TypeTable *ColorTypeTable() { - static const flatbuffers::TypeCode type_codes[] = { - { flatbuffers::ET_UCHAR, 0, 0 }, - { flatbuffers::ET_UCHAR, 0, 0 }, - { flatbuffers::ET_UCHAR, 0, 0 } +inline const ::flatbuffers::TypeTable *ColorTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_UCHAR, 0, 0 }, + { ::flatbuffers::ET_UCHAR, 0, 0 }, + { ::flatbuffers::ET_UCHAR, 0, 0 } }; - static const flatbuffers::TypeFunction type_refs[] = { + static const ::flatbuffers::TypeFunction type_refs[] = { MyGame::Example::ColorTypeTable }; static const int64_t values[] = { 1, 2, 8 }; @@ -3680,20 +3680,20 @@ inline const flatbuffers::TypeTable *ColorTypeTable() { "Green", "Blue" }; - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_ENUM, 3, type_codes, type_refs, nullptr, values, names + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_ENUM, 3, type_codes, type_refs, nullptr, values, names }; return &tt; } -inline const flatbuffers::TypeTable *RaceTypeTable() { - static const flatbuffers::TypeCode type_codes[] = { - { flatbuffers::ET_CHAR, 0, 0 }, - { flatbuffers::ET_CHAR, 0, 0 }, - { flatbuffers::ET_CHAR, 0, 0 }, - { flatbuffers::ET_CHAR, 0, 0 } +inline const ::flatbuffers::TypeTable *RaceTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_CHAR, 0, 0 }, + { ::flatbuffers::ET_CHAR, 0, 0 }, + { ::flatbuffers::ET_CHAR, 0, 0 }, + { ::flatbuffers::ET_CHAR, 0, 0 } }; - static const flatbuffers::TypeFunction type_refs[] = { + static const ::flatbuffers::TypeFunction type_refs[] = { MyGame::Example::RaceTypeTable }; static const int64_t values[] = { -1, 0, 1, 2 }; @@ -3703,19 +3703,19 @@ inline const flatbuffers::TypeTable *RaceTypeTable() { "Dwarf", "Elf" }; - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_ENUM, 4, type_codes, type_refs, nullptr, values, names + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_ENUM, 4, type_codes, type_refs, nullptr, values, names }; return &tt; } -inline const flatbuffers::TypeTable *LongEnumTypeTable() { - static const flatbuffers::TypeCode type_codes[] = { - { flatbuffers::ET_ULONG, 0, 0 }, - { flatbuffers::ET_ULONG, 0, 0 }, - { flatbuffers::ET_ULONG, 0, 0 } +inline const ::flatbuffers::TypeTable *LongEnumTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_ULONG, 0, 0 }, + { ::flatbuffers::ET_ULONG, 0, 0 }, + { ::flatbuffers::ET_ULONG, 0, 0 } }; - static const flatbuffers::TypeFunction type_refs[] = { + static const ::flatbuffers::TypeFunction type_refs[] = { MyGame::Example::LongEnumTypeTable }; static const int64_t values[] = { 2ULL, 4ULL, 1099511627776ULL }; @@ -3724,20 +3724,20 @@ inline const flatbuffers::TypeTable *LongEnumTypeTable() { "LongTwo", "LongBig" }; - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_ENUM, 3, type_codes, type_refs, nullptr, values, names + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_ENUM, 3, type_codes, type_refs, nullptr, values, names }; return &tt; } -inline const flatbuffers::TypeTable *AnyTypeTable() { - static const flatbuffers::TypeCode type_codes[] = { - { flatbuffers::ET_SEQUENCE, 0, -1 }, - { flatbuffers::ET_SEQUENCE, 0, 0 }, - { flatbuffers::ET_SEQUENCE, 0, 1 }, - { flatbuffers::ET_SEQUENCE, 0, 2 } +inline const ::flatbuffers::TypeTable *AnyTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_SEQUENCE, 0, -1 }, + { ::flatbuffers::ET_SEQUENCE, 0, 0 }, + { ::flatbuffers::ET_SEQUENCE, 0, 1 }, + { ::flatbuffers::ET_SEQUENCE, 0, 2 } }; - static const flatbuffers::TypeFunction type_refs[] = { + static const ::flatbuffers::TypeFunction type_refs[] = { MyGame::Example::MonsterTypeTable, MyGame::Example::TestSimpleTableWithEnumTypeTable, MyGame::Example2::MonsterTypeTable @@ -3748,20 +3748,20 @@ inline const flatbuffers::TypeTable *AnyTypeTable() { "TestSimpleTableWithEnum", "MyGame_Example2_Monster" }; - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_UNION, 4, type_codes, type_refs, nullptr, nullptr, names + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_UNION, 4, type_codes, type_refs, nullptr, nullptr, names }; return &tt; } -inline const flatbuffers::TypeTable *AnyUniqueAliasesTypeTable() { - static const flatbuffers::TypeCode type_codes[] = { - { flatbuffers::ET_SEQUENCE, 0, -1 }, - { flatbuffers::ET_SEQUENCE, 0, 0 }, - { flatbuffers::ET_SEQUENCE, 0, 1 }, - { flatbuffers::ET_SEQUENCE, 0, 2 } +inline const ::flatbuffers::TypeTable *AnyUniqueAliasesTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_SEQUENCE, 0, -1 }, + { ::flatbuffers::ET_SEQUENCE, 0, 0 }, + { ::flatbuffers::ET_SEQUENCE, 0, 1 }, + { ::flatbuffers::ET_SEQUENCE, 0, 2 } }; - static const flatbuffers::TypeFunction type_refs[] = { + static const ::flatbuffers::TypeFunction type_refs[] = { MyGame::Example::MonsterTypeTable, MyGame::Example::TestSimpleTableWithEnumTypeTable, MyGame::Example2::MonsterTypeTable @@ -3772,20 +3772,20 @@ inline const flatbuffers::TypeTable *AnyUniqueAliasesTypeTable() { "TS", "M2" }; - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_UNION, 4, type_codes, type_refs, nullptr, nullptr, names + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_UNION, 4, type_codes, type_refs, nullptr, nullptr, names }; return &tt; } -inline const flatbuffers::TypeTable *AnyAmbiguousAliasesTypeTable() { - static const flatbuffers::TypeCode type_codes[] = { - { flatbuffers::ET_SEQUENCE, 0, -1 }, - { flatbuffers::ET_SEQUENCE, 0, 0 }, - { flatbuffers::ET_SEQUENCE, 0, 0 }, - { flatbuffers::ET_SEQUENCE, 0, 0 } +inline const ::flatbuffers::TypeTable *AnyAmbiguousAliasesTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_SEQUENCE, 0, -1 }, + { ::flatbuffers::ET_SEQUENCE, 0, 0 }, + { ::flatbuffers::ET_SEQUENCE, 0, 0 }, + { ::flatbuffers::ET_SEQUENCE, 0, 0 } }; - static const flatbuffers::TypeFunction type_refs[] = { + static const ::flatbuffers::TypeFunction type_refs[] = { MyGame::Example::MonsterTypeTable }; static const char * const names[] = { @@ -3794,26 +3794,26 @@ inline const flatbuffers::TypeTable *AnyAmbiguousAliasesTypeTable() { "M2", "M3" }; - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_UNION, 4, type_codes, type_refs, nullptr, nullptr, names + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_UNION, 4, type_codes, type_refs, nullptr, nullptr, names }; return &tt; } } // namespace Example -inline const flatbuffers::TypeTable *InParentNamespaceTypeTable() { - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_TABLE, 0, nullptr, nullptr, nullptr, nullptr, nullptr +inline const ::flatbuffers::TypeTable *InParentNamespaceTypeTable() { + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_TABLE, 0, nullptr, nullptr, nullptr, nullptr, nullptr }; return &tt; } namespace Example2 { -inline const flatbuffers::TypeTable *MonsterTypeTable() { - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_TABLE, 0, nullptr, nullptr, nullptr, nullptr, nullptr +inline const ::flatbuffers::TypeTable *MonsterTypeTable() { + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_TABLE, 0, nullptr, nullptr, nullptr, nullptr, nullptr }; return &tt; } @@ -3822,48 +3822,48 @@ inline const flatbuffers::TypeTable *MonsterTypeTable() { namespace Example { -inline const flatbuffers::TypeTable *TestTypeTable() { - static const flatbuffers::TypeCode type_codes[] = { - { flatbuffers::ET_SHORT, 0, -1 }, - { flatbuffers::ET_CHAR, 0, -1 } +inline const ::flatbuffers::TypeTable *TestTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_SHORT, 0, -1 }, + { ::flatbuffers::ET_CHAR, 0, -1 } }; static const int64_t values[] = { 0, 2, 4 }; static const char * const names[] = { "a", "b" }; - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_STRUCT, 2, type_codes, nullptr, nullptr, values, names + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_STRUCT, 2, type_codes, nullptr, nullptr, values, names }; return &tt; } -inline const flatbuffers::TypeTable *TestSimpleTableWithEnumTypeTable() { - static const flatbuffers::TypeCode type_codes[] = { - { flatbuffers::ET_UCHAR, 0, 0 } +inline const ::flatbuffers::TypeTable *TestSimpleTableWithEnumTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_UCHAR, 0, 0 } }; - static const flatbuffers::TypeFunction type_refs[] = { + static const ::flatbuffers::TypeFunction type_refs[] = { MyGame::Example::ColorTypeTable }; static const char * const names[] = { "color" }; - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_TABLE, 1, type_codes, type_refs, nullptr, nullptr, names + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_TABLE, 1, type_codes, type_refs, nullptr, nullptr, names }; return &tt; } -inline const flatbuffers::TypeTable *Vec3TypeTable() { - static const flatbuffers::TypeCode type_codes[] = { - { flatbuffers::ET_FLOAT, 0, -1 }, - { flatbuffers::ET_FLOAT, 0, -1 }, - { flatbuffers::ET_FLOAT, 0, -1 }, - { flatbuffers::ET_DOUBLE, 0, -1 }, - { flatbuffers::ET_UCHAR, 0, 0 }, - { flatbuffers::ET_SEQUENCE, 0, 1 } +inline const ::flatbuffers::TypeTable *Vec3TypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_FLOAT, 0, -1 }, + { ::flatbuffers::ET_FLOAT, 0, -1 }, + { ::flatbuffers::ET_FLOAT, 0, -1 }, + { ::flatbuffers::ET_DOUBLE, 0, -1 }, + { ::flatbuffers::ET_UCHAR, 0, 0 }, + { ::flatbuffers::ET_SEQUENCE, 0, 1 } }; - static const flatbuffers::TypeFunction type_refs[] = { + static const ::flatbuffers::TypeFunction type_refs[] = { MyGame::Example::ColorTypeTable, MyGame::Example::TestTypeTable }; @@ -3876,35 +3876,35 @@ inline const flatbuffers::TypeTable *Vec3TypeTable() { "test2", "test3" }; - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_STRUCT, 6, type_codes, type_refs, nullptr, values, names + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_STRUCT, 6, type_codes, type_refs, nullptr, values, names }; return &tt; } -inline const flatbuffers::TypeTable *AbilityTypeTable() { - static const flatbuffers::TypeCode type_codes[] = { - { flatbuffers::ET_UINT, 0, -1 }, - { flatbuffers::ET_UINT, 0, -1 } +inline const ::flatbuffers::TypeTable *AbilityTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_UINT, 0, -1 }, + { ::flatbuffers::ET_UINT, 0, -1 } }; static const int64_t values[] = { 0, 4, 8 }; static const char * const names[] = { "id", "distance" }; - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_STRUCT, 2, type_codes, nullptr, nullptr, values, names + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_STRUCT, 2, type_codes, nullptr, nullptr, values, names }; return &tt; } -inline const flatbuffers::TypeTable *StructOfStructsTypeTable() { - static const flatbuffers::TypeCode type_codes[] = { - { flatbuffers::ET_SEQUENCE, 0, 0 }, - { flatbuffers::ET_SEQUENCE, 0, 1 }, - { flatbuffers::ET_SEQUENCE, 0, 0 } +inline const ::flatbuffers::TypeTable *StructOfStructsTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_SEQUENCE, 0, 0 }, + { ::flatbuffers::ET_SEQUENCE, 0, 1 }, + { ::flatbuffers::ET_SEQUENCE, 0, 0 } }; - static const flatbuffers::TypeFunction type_refs[] = { + static const ::flatbuffers::TypeFunction type_refs[] = { MyGame::Example::AbilityTypeTable, MyGame::Example::TestTypeTable }; @@ -3914,125 +3914,125 @@ inline const flatbuffers::TypeTable *StructOfStructsTypeTable() { "b", "c" }; - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_STRUCT, 3, type_codes, type_refs, nullptr, values, names + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_STRUCT, 3, type_codes, type_refs, nullptr, values, names }; return &tt; } -inline const flatbuffers::TypeTable *StructOfStructsOfStructsTypeTable() { - static const flatbuffers::TypeCode type_codes[] = { - { flatbuffers::ET_SEQUENCE, 0, 0 } +inline const ::flatbuffers::TypeTable *StructOfStructsOfStructsTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_SEQUENCE, 0, 0 } }; - static const flatbuffers::TypeFunction type_refs[] = { + static const ::flatbuffers::TypeFunction type_refs[] = { MyGame::Example::StructOfStructsTypeTable }; static const int64_t values[] = { 0, 20 }; static const char * const names[] = { "a" }; - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_STRUCT, 1, type_codes, type_refs, nullptr, values, names + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_STRUCT, 1, type_codes, type_refs, nullptr, values, names }; return &tt; } -inline const flatbuffers::TypeTable *StatTypeTable() { - static const flatbuffers::TypeCode type_codes[] = { - { flatbuffers::ET_STRING, 0, -1 }, - { flatbuffers::ET_LONG, 0, -1 }, - { flatbuffers::ET_USHORT, 0, -1 } +inline const ::flatbuffers::TypeTable *StatTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_STRING, 0, -1 }, + { ::flatbuffers::ET_LONG, 0, -1 }, + { ::flatbuffers::ET_USHORT, 0, -1 } }; static const char * const names[] = { "id", "val", "count" }; - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_TABLE, 3, type_codes, nullptr, nullptr, nullptr, names + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_TABLE, 3, type_codes, nullptr, nullptr, nullptr, names }; return &tt; } -inline const flatbuffers::TypeTable *ReferrableTypeTable() { - static const flatbuffers::TypeCode type_codes[] = { - { flatbuffers::ET_ULONG, 0, -1 } +inline const ::flatbuffers::TypeTable *ReferrableTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_ULONG, 0, -1 } }; static const char * const names[] = { "id" }; - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_TABLE, 1, type_codes, nullptr, nullptr, nullptr, names + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_TABLE, 1, type_codes, nullptr, nullptr, nullptr, names }; return &tt; } -inline const flatbuffers::TypeTable *MonsterTypeTable() { - static const flatbuffers::TypeCode type_codes[] = { - { flatbuffers::ET_SEQUENCE, 0, 0 }, - { flatbuffers::ET_SHORT, 0, -1 }, - { flatbuffers::ET_SHORT, 0, -1 }, - { flatbuffers::ET_STRING, 0, -1 }, - { flatbuffers::ET_BOOL, 0, -1 }, - { flatbuffers::ET_UCHAR, 1, -1 }, - { flatbuffers::ET_UCHAR, 0, 1 }, - { flatbuffers::ET_UTYPE, 0, 2 }, - { flatbuffers::ET_SEQUENCE, 0, 2 }, - { flatbuffers::ET_SEQUENCE, 1, 3 }, - { flatbuffers::ET_STRING, 1, -1 }, - { flatbuffers::ET_SEQUENCE, 1, 4 }, - { flatbuffers::ET_SEQUENCE, 0, 4 }, - { flatbuffers::ET_UCHAR, 1, -1 }, - { flatbuffers::ET_SEQUENCE, 0, 5 }, - { flatbuffers::ET_BOOL, 0, -1 }, - { flatbuffers::ET_INT, 0, -1 }, - { flatbuffers::ET_UINT, 0, -1 }, - { flatbuffers::ET_LONG, 0, -1 }, - { flatbuffers::ET_ULONG, 0, -1 }, - { flatbuffers::ET_INT, 0, -1 }, - { flatbuffers::ET_UINT, 0, -1 }, - { flatbuffers::ET_LONG, 0, -1 }, - { flatbuffers::ET_ULONG, 0, -1 }, - { flatbuffers::ET_BOOL, 1, -1 }, - { flatbuffers::ET_FLOAT, 0, -1 }, - { flatbuffers::ET_FLOAT, 0, -1 }, - { flatbuffers::ET_FLOAT, 0, -1 }, - { flatbuffers::ET_STRING, 1, -1 }, - { flatbuffers::ET_SEQUENCE, 1, 6 }, - { flatbuffers::ET_UCHAR, 1, -1 }, - { flatbuffers::ET_SEQUENCE, 1, 3 }, - { flatbuffers::ET_LONG, 1, -1 }, - { flatbuffers::ET_DOUBLE, 1, -1 }, - { flatbuffers::ET_SEQUENCE, 0, 7 }, - { flatbuffers::ET_SEQUENCE, 1, 8 }, - { flatbuffers::ET_ULONG, 0, -1 }, - { flatbuffers::ET_ULONG, 1, -1 }, - { flatbuffers::ET_SEQUENCE, 1, 8 }, - { flatbuffers::ET_ULONG, 0, -1 }, - { flatbuffers::ET_ULONG, 1, -1 }, - { flatbuffers::ET_ULONG, 0, -1 }, - { flatbuffers::ET_ULONG, 1, -1 }, - { flatbuffers::ET_UTYPE, 0, 9 }, - { flatbuffers::ET_SEQUENCE, 0, 9 }, - { flatbuffers::ET_UTYPE, 0, 10 }, - { flatbuffers::ET_SEQUENCE, 0, 10 }, - { flatbuffers::ET_UCHAR, 1, 1 }, - { flatbuffers::ET_CHAR, 0, 11 }, - { flatbuffers::ET_UCHAR, 1, -1 }, - { flatbuffers::ET_SEQUENCE, 1, 5 }, - { flatbuffers::ET_SEQUENCE, 0, 3 }, - { flatbuffers::ET_ULONG, 0, 12 }, - { flatbuffers::ET_ULONG, 0, 12 }, - { flatbuffers::ET_FLOAT, 0, -1 }, - { flatbuffers::ET_FLOAT, 0, -1 }, - { flatbuffers::ET_FLOAT, 0, -1 }, - { flatbuffers::ET_FLOAT, 0, -1 }, - { flatbuffers::ET_FLOAT, 0, -1 }, - { flatbuffers::ET_FLOAT, 0, -1 }, - { flatbuffers::ET_FLOAT, 0, -1 }, - { flatbuffers::ET_DOUBLE, 0, -1 } +inline const ::flatbuffers::TypeTable *MonsterTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_SEQUENCE, 0, 0 }, + { ::flatbuffers::ET_SHORT, 0, -1 }, + { ::flatbuffers::ET_SHORT, 0, -1 }, + { ::flatbuffers::ET_STRING, 0, -1 }, + { ::flatbuffers::ET_BOOL, 0, -1 }, + { ::flatbuffers::ET_UCHAR, 1, -1 }, + { ::flatbuffers::ET_UCHAR, 0, 1 }, + { ::flatbuffers::ET_UTYPE, 0, 2 }, + { ::flatbuffers::ET_SEQUENCE, 0, 2 }, + { ::flatbuffers::ET_SEQUENCE, 1, 3 }, + { ::flatbuffers::ET_STRING, 1, -1 }, + { ::flatbuffers::ET_SEQUENCE, 1, 4 }, + { ::flatbuffers::ET_SEQUENCE, 0, 4 }, + { ::flatbuffers::ET_UCHAR, 1, -1 }, + { ::flatbuffers::ET_SEQUENCE, 0, 5 }, + { ::flatbuffers::ET_BOOL, 0, -1 }, + { ::flatbuffers::ET_INT, 0, -1 }, + { ::flatbuffers::ET_UINT, 0, -1 }, + { ::flatbuffers::ET_LONG, 0, -1 }, + { ::flatbuffers::ET_ULONG, 0, -1 }, + { ::flatbuffers::ET_INT, 0, -1 }, + { ::flatbuffers::ET_UINT, 0, -1 }, + { ::flatbuffers::ET_LONG, 0, -1 }, + { ::flatbuffers::ET_ULONG, 0, -1 }, + { ::flatbuffers::ET_BOOL, 1, -1 }, + { ::flatbuffers::ET_FLOAT, 0, -1 }, + { ::flatbuffers::ET_FLOAT, 0, -1 }, + { ::flatbuffers::ET_FLOAT, 0, -1 }, + { ::flatbuffers::ET_STRING, 1, -1 }, + { ::flatbuffers::ET_SEQUENCE, 1, 6 }, + { ::flatbuffers::ET_UCHAR, 1, -1 }, + { ::flatbuffers::ET_SEQUENCE, 1, 3 }, + { ::flatbuffers::ET_LONG, 1, -1 }, + { ::flatbuffers::ET_DOUBLE, 1, -1 }, + { ::flatbuffers::ET_SEQUENCE, 0, 7 }, + { ::flatbuffers::ET_SEQUENCE, 1, 8 }, + { ::flatbuffers::ET_ULONG, 0, -1 }, + { ::flatbuffers::ET_ULONG, 1, -1 }, + { ::flatbuffers::ET_SEQUENCE, 1, 8 }, + { ::flatbuffers::ET_ULONG, 0, -1 }, + { ::flatbuffers::ET_ULONG, 1, -1 }, + { ::flatbuffers::ET_ULONG, 0, -1 }, + { ::flatbuffers::ET_ULONG, 1, -1 }, + { ::flatbuffers::ET_UTYPE, 0, 9 }, + { ::flatbuffers::ET_SEQUENCE, 0, 9 }, + { ::flatbuffers::ET_UTYPE, 0, 10 }, + { ::flatbuffers::ET_SEQUENCE, 0, 10 }, + { ::flatbuffers::ET_UCHAR, 1, 1 }, + { ::flatbuffers::ET_CHAR, 0, 11 }, + { ::flatbuffers::ET_UCHAR, 1, -1 }, + { ::flatbuffers::ET_SEQUENCE, 1, 5 }, + { ::flatbuffers::ET_SEQUENCE, 0, 3 }, + { ::flatbuffers::ET_ULONG, 0, 12 }, + { ::flatbuffers::ET_ULONG, 0, 12 }, + { ::flatbuffers::ET_FLOAT, 0, -1 }, + { ::flatbuffers::ET_FLOAT, 0, -1 }, + { ::flatbuffers::ET_FLOAT, 0, -1 }, + { ::flatbuffers::ET_FLOAT, 0, -1 }, + { ::flatbuffers::ET_FLOAT, 0, -1 }, + { ::flatbuffers::ET_FLOAT, 0, -1 }, + { ::flatbuffers::ET_FLOAT, 0, -1 }, + { ::flatbuffers::ET_DOUBLE, 0, -1 } }; - static const flatbuffers::TypeFunction type_refs[] = { + static const ::flatbuffers::TypeFunction type_refs[] = { MyGame::Example::Vec3TypeTable, MyGame::Example::ColorTypeTable, MyGame::Example::AnyTypeTable, @@ -4111,26 +4111,26 @@ inline const flatbuffers::TypeTable *MonsterTypeTable() { "negative_infinity_default", "double_inf_default" }; - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_TABLE, 62, type_codes, type_refs, nullptr, nullptr, names + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_TABLE, 62, type_codes, type_refs, nullptr, nullptr, names }; return &tt; } -inline const flatbuffers::TypeTable *TypeAliasesTypeTable() { - static const flatbuffers::TypeCode type_codes[] = { - { flatbuffers::ET_CHAR, 0, -1 }, - { flatbuffers::ET_UCHAR, 0, -1 }, - { flatbuffers::ET_SHORT, 0, -1 }, - { flatbuffers::ET_USHORT, 0, -1 }, - { flatbuffers::ET_INT, 0, -1 }, - { flatbuffers::ET_UINT, 0, -1 }, - { flatbuffers::ET_LONG, 0, -1 }, - { flatbuffers::ET_ULONG, 0, -1 }, - { flatbuffers::ET_FLOAT, 0, -1 }, - { flatbuffers::ET_DOUBLE, 0, -1 }, - { flatbuffers::ET_CHAR, 1, -1 }, - { flatbuffers::ET_DOUBLE, 1, -1 } +inline const ::flatbuffers::TypeTable *TypeAliasesTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_CHAR, 0, -1 }, + { ::flatbuffers::ET_UCHAR, 0, -1 }, + { ::flatbuffers::ET_SHORT, 0, -1 }, + { ::flatbuffers::ET_USHORT, 0, -1 }, + { ::flatbuffers::ET_INT, 0, -1 }, + { ::flatbuffers::ET_UINT, 0, -1 }, + { ::flatbuffers::ET_LONG, 0, -1 }, + { ::flatbuffers::ET_ULONG, 0, -1 }, + { ::flatbuffers::ET_FLOAT, 0, -1 }, + { ::flatbuffers::ET_DOUBLE, 0, -1 }, + { ::flatbuffers::ET_CHAR, 1, -1 }, + { ::flatbuffers::ET_DOUBLE, 1, -1 } }; static const char * const names[] = { "i8", @@ -4146,26 +4146,26 @@ inline const flatbuffers::TypeTable *TypeAliasesTypeTable() { "v8", "vf64" }; - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_TABLE, 12, type_codes, nullptr, nullptr, nullptr, names + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_TABLE, 12, type_codes, nullptr, nullptr, nullptr, names }; return &tt; } inline const MyGame::Example::Monster *GetMonster(const void *buf) { - return flatbuffers::GetRoot(buf); + return ::flatbuffers::GetRoot(buf); } inline const MyGame::Example::Monster *GetSizePrefixedMonster(const void *buf) { - return flatbuffers::GetSizePrefixedRoot(buf); + return ::flatbuffers::GetSizePrefixedRoot(buf); } inline Monster *GetMutableMonster(void *buf) { - return flatbuffers::GetMutableRoot(buf); + return ::flatbuffers::GetMutableRoot(buf); } inline MyGame::Example::Monster *GetMutableSizePrefixedMonster(void *buf) { - return flatbuffers::GetMutableSizePrefixedRoot(buf); + return ::flatbuffers::GetMutableSizePrefixedRoot(buf); } inline const char *MonsterIdentifier() { @@ -4173,22 +4173,22 @@ inline const char *MonsterIdentifier() { } inline bool MonsterBufferHasIdentifier(const void *buf) { - return flatbuffers::BufferHasIdentifier( + return ::flatbuffers::BufferHasIdentifier( buf, MonsterIdentifier()); } inline bool SizePrefixedMonsterBufferHasIdentifier(const void *buf) { - return flatbuffers::BufferHasIdentifier( + return ::flatbuffers::BufferHasIdentifier( buf, MonsterIdentifier(), true); } inline bool VerifyMonsterBuffer( - flatbuffers::Verifier &verifier) { + ::flatbuffers::Verifier &verifier) { return verifier.VerifyBuffer(MonsterIdentifier()); } inline bool VerifySizePrefixedMonsterBuffer( - flatbuffers::Verifier &verifier) { + ::flatbuffers::Verifier &verifier) { return verifier.VerifySizePrefixedBuffer(MonsterIdentifier()); } @@ -4197,26 +4197,26 @@ inline const char *MonsterExtension() { } inline void FinishMonsterBuffer( - flatbuffers::FlatBufferBuilder &fbb, - flatbuffers::Offset root) { + ::flatbuffers::FlatBufferBuilder &fbb, + ::flatbuffers::Offset root) { fbb.Finish(root, MonsterIdentifier()); } inline void FinishSizePrefixedMonsterBuffer( - flatbuffers::FlatBufferBuilder &fbb, - flatbuffers::Offset root) { + ::flatbuffers::FlatBufferBuilder &fbb, + ::flatbuffers::Offset root) { fbb.FinishSizePrefixed(root, MonsterIdentifier()); } inline flatbuffers::unique_ptr UnPackMonster( const void *buf, - const flatbuffers::resolver_function_t *res = nullptr) { + const ::flatbuffers::resolver_function_t *res = nullptr) { return flatbuffers::unique_ptr(GetMonster(buf)->UnPack(res)); } inline flatbuffers::unique_ptr UnPackSizePrefixedMonster( const void *buf, - const flatbuffers::resolver_function_t *res = nullptr) { + const ::flatbuffers::resolver_function_t *res = nullptr) { return flatbuffers::unique_ptr(GetSizePrefixedMonster(buf)->UnPack(res)); } diff --git a/tests/monster_test_suffix/filesuffix_only/monster_test_suffix.h b/tests/monster_test_suffix/filesuffix_only/monster_test_suffix.h index 9401897ffd..bd32dc3106 100644 --- a/tests/monster_test_suffix/filesuffix_only/monster_test_suffix.h +++ b/tests/monster_test_suffix/filesuffix_only/monster_test_suffix.h @@ -96,35 +96,35 @@ bool operator!=(const TypeAliasesT &lhs, const TypeAliasesT &rhs); } // namespace Example -inline const flatbuffers::TypeTable *InParentNamespaceTypeTable(); +inline const ::flatbuffers::TypeTable *InParentNamespaceTypeTable(); namespace Example2 { -inline const flatbuffers::TypeTable *MonsterTypeTable(); +inline const ::flatbuffers::TypeTable *MonsterTypeTable(); } // namespace Example2 namespace Example { -inline const flatbuffers::TypeTable *TestTypeTable(); +inline const ::flatbuffers::TypeTable *TestTypeTable(); -inline const flatbuffers::TypeTable *TestSimpleTableWithEnumTypeTable(); +inline const ::flatbuffers::TypeTable *TestSimpleTableWithEnumTypeTable(); -inline const flatbuffers::TypeTable *Vec3TypeTable(); +inline const ::flatbuffers::TypeTable *Vec3TypeTable(); -inline const flatbuffers::TypeTable *AbilityTypeTable(); +inline const ::flatbuffers::TypeTable *AbilityTypeTable(); -inline const flatbuffers::TypeTable *StructOfStructsTypeTable(); +inline const ::flatbuffers::TypeTable *StructOfStructsTypeTable(); -inline const flatbuffers::TypeTable *StructOfStructsOfStructsTypeTable(); +inline const ::flatbuffers::TypeTable *StructOfStructsOfStructsTypeTable(); -inline const flatbuffers::TypeTable *StatTypeTable(); +inline const ::flatbuffers::TypeTable *StatTypeTable(); -inline const flatbuffers::TypeTable *ReferrableTypeTable(); +inline const ::flatbuffers::TypeTable *ReferrableTypeTable(); -inline const flatbuffers::TypeTable *MonsterTypeTable(); +inline const ::flatbuffers::TypeTable *MonsterTypeTable(); -inline const flatbuffers::TypeTable *TypeAliasesTypeTable(); +inline const ::flatbuffers::TypeTable *TypeAliasesTypeTable(); /// Composite components of Monster color. enum Color : uint8_t { @@ -163,7 +163,7 @@ inline const char * const *EnumNamesColor() { } inline const char *EnumNameColor(Color e) { - if (flatbuffers::IsOutRange(e, Color_Red, Color_Blue)) return ""; + if (::flatbuffers::IsOutRange(e, Color_Red, Color_Blue)) return ""; const size_t index = static_cast(e) - static_cast(Color_Red); return EnumNamesColor()[index]; } @@ -199,7 +199,7 @@ inline const char * const *EnumNamesRace() { } inline const char *EnumNameRace(Race e) { - if (flatbuffers::IsOutRange(e, Race_None, Race_Elf)) return ""; + if (::flatbuffers::IsOutRange(e, Race_None, Race_Elf)) return ""; const size_t index = static_cast(e) - static_cast(Race_None); return EnumNamesRace()[index]; } @@ -261,7 +261,7 @@ inline const char * const *EnumNamesAny() { } inline const char *EnumNameAny(Any e) { - if (flatbuffers::IsOutRange(e, Any_NONE, Any_MyGame_Example2_Monster)) return ""; + if (::flatbuffers::IsOutRange(e, Any_NONE, Any_MyGame_Example2_Monster)) return ""; const size_t index = static_cast(e); return EnumNamesAny()[index]; } @@ -325,8 +325,8 @@ struct AnyUnion { } } - static void *UnPack(const void *obj, Any type, const flatbuffers::resolver_function_t *resolver); - flatbuffers::Offset Pack(flatbuffers::FlatBufferBuilder &_fbb, const flatbuffers::rehasher_function_t *_rehasher = nullptr) const; + static void *UnPack(const void *obj, Any type, const ::flatbuffers::resolver_function_t *resolver); + ::flatbuffers::Offset Pack(::flatbuffers::FlatBufferBuilder &_fbb, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr) const; MyGame::Example::MonsterT *AsMonster() { return type == Any_Monster ? @@ -383,8 +383,8 @@ inline bool operator!=(const AnyUnion &lhs, const AnyUnion &rhs) { return !(lhs == rhs); } -bool VerifyAny(flatbuffers::Verifier &verifier, const void *obj, Any type); -bool VerifyAnyVector(flatbuffers::Verifier &verifier, const flatbuffers::Vector> *values, const flatbuffers::Vector *types); +bool VerifyAny(::flatbuffers::Verifier &verifier, const void *obj, Any type); +bool VerifyAnyVector(::flatbuffers::Verifier &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types); enum AnyUniqueAliases : uint8_t { AnyUniqueAliases_NONE = 0, @@ -417,7 +417,7 @@ inline const char * const *EnumNamesAnyUniqueAliases() { } inline const char *EnumNameAnyUniqueAliases(AnyUniqueAliases e) { - if (flatbuffers::IsOutRange(e, AnyUniqueAliases_NONE, AnyUniqueAliases_M2)) return ""; + if (::flatbuffers::IsOutRange(e, AnyUniqueAliases_NONE, AnyUniqueAliases_M2)) return ""; const size_t index = static_cast(e); return EnumNamesAnyUniqueAliases()[index]; } @@ -481,8 +481,8 @@ struct AnyUniqueAliasesUnion { } } - static void *UnPack(const void *obj, AnyUniqueAliases type, const flatbuffers::resolver_function_t *resolver); - flatbuffers::Offset Pack(flatbuffers::FlatBufferBuilder &_fbb, const flatbuffers::rehasher_function_t *_rehasher = nullptr) const; + static void *UnPack(const void *obj, AnyUniqueAliases type, const ::flatbuffers::resolver_function_t *resolver); + ::flatbuffers::Offset Pack(::flatbuffers::FlatBufferBuilder &_fbb, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr) const; MyGame::Example::MonsterT *AsM() { return type == AnyUniqueAliases_M ? @@ -539,8 +539,8 @@ inline bool operator!=(const AnyUniqueAliasesUnion &lhs, const AnyUniqueAliasesU return !(lhs == rhs); } -bool VerifyAnyUniqueAliases(flatbuffers::Verifier &verifier, const void *obj, AnyUniqueAliases type); -bool VerifyAnyUniqueAliasesVector(flatbuffers::Verifier &verifier, const flatbuffers::Vector> *values, const flatbuffers::Vector *types); +bool VerifyAnyUniqueAliases(::flatbuffers::Verifier &verifier, const void *obj, AnyUniqueAliases type); +bool VerifyAnyUniqueAliasesVector(::flatbuffers::Verifier &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types); enum AnyAmbiguousAliases : uint8_t { AnyAmbiguousAliases_NONE = 0, @@ -573,7 +573,7 @@ inline const char * const *EnumNamesAnyAmbiguousAliases() { } inline const char *EnumNameAnyAmbiguousAliases(AnyAmbiguousAliases e) { - if (flatbuffers::IsOutRange(e, AnyAmbiguousAliases_NONE, AnyAmbiguousAliases_M3)) return ""; + if (::flatbuffers::IsOutRange(e, AnyAmbiguousAliases_NONE, AnyAmbiguousAliases_M3)) return ""; const size_t index = static_cast(e); return EnumNamesAnyAmbiguousAliases()[index]; } @@ -595,8 +595,8 @@ struct AnyAmbiguousAliasesUnion { void Reset(); - static void *UnPack(const void *obj, AnyAmbiguousAliases type, const flatbuffers::resolver_function_t *resolver); - flatbuffers::Offset Pack(flatbuffers::FlatBufferBuilder &_fbb, const flatbuffers::rehasher_function_t *_rehasher = nullptr) const; + static void *UnPack(const void *obj, AnyAmbiguousAliases type, const ::flatbuffers::resolver_function_t *resolver); + ::flatbuffers::Offset Pack(::flatbuffers::FlatBufferBuilder &_fbb, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr) const; MyGame::Example::MonsterT *AsM1() { return type == AnyAmbiguousAliases_M1 ? @@ -653,8 +653,8 @@ inline bool operator!=(const AnyAmbiguousAliasesUnion &lhs, const AnyAmbiguousAl return !(lhs == rhs); } -bool VerifyAnyAmbiguousAliases(flatbuffers::Verifier &verifier, const void *obj, AnyAmbiguousAliases type); -bool VerifyAnyAmbiguousAliasesVector(flatbuffers::Verifier &verifier, const flatbuffers::Vector> *values, const flatbuffers::Vector *types); +bool VerifyAnyAmbiguousAliases(::flatbuffers::Verifier &verifier, const void *obj, AnyAmbiguousAliases type); +bool VerifyAnyAmbiguousAliasesVector(::flatbuffers::Verifier &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types); FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(2) Test FLATBUFFERS_FINAL_CLASS { private: @@ -663,7 +663,7 @@ FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(2) Test FLATBUFFERS_FINAL_CLASS { int8_t padding0__; public: - static const flatbuffers::TypeTable *MiniReflectTypeTable() { + static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { return TestTypeTable(); } Test() @@ -673,22 +673,22 @@ FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(2) Test FLATBUFFERS_FINAL_CLASS { (void)padding0__; } Test(int16_t _a, int8_t _b) - : a_(flatbuffers::EndianScalar(_a)), - b_(flatbuffers::EndianScalar(_b)), + : a_(::flatbuffers::EndianScalar(_a)), + b_(::flatbuffers::EndianScalar(_b)), padding0__(0) { (void)padding0__; } int16_t a() const { - return flatbuffers::EndianScalar(a_); + return ::flatbuffers::EndianScalar(a_); } void mutate_a(int16_t _a) { - flatbuffers::WriteScalar(&a_, _a); + ::flatbuffers::WriteScalar(&a_, _a); } int8_t b() const { - return flatbuffers::EndianScalar(b_); + return ::flatbuffers::EndianScalar(b_); } void mutate_b(int8_t _b) { - flatbuffers::WriteScalar(&b_, _b); + ::flatbuffers::WriteScalar(&b_, _b); } }; FLATBUFFERS_STRUCT_END(Test, 4); @@ -717,7 +717,7 @@ FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(8) Vec3 FLATBUFFERS_FINAL_CLASS { int16_t padding2__; public: - static const flatbuffers::TypeTable *MiniReflectTypeTable() { + static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { return Vec3TypeTable(); } Vec3() @@ -735,12 +735,12 @@ FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(8) Vec3 FLATBUFFERS_FINAL_CLASS { (void)padding2__; } Vec3(float _x, float _y, float _z, double _test1, MyGame::Example::Color _test2, const MyGame::Example::Test &_test3) - : x_(flatbuffers::EndianScalar(_x)), - y_(flatbuffers::EndianScalar(_y)), - z_(flatbuffers::EndianScalar(_z)), + : x_(::flatbuffers::EndianScalar(_x)), + y_(::flatbuffers::EndianScalar(_y)), + z_(::flatbuffers::EndianScalar(_z)), padding0__(0), - test1_(flatbuffers::EndianScalar(_test1)), - test2_(flatbuffers::EndianScalar(static_cast(_test2))), + test1_(::flatbuffers::EndianScalar(_test1)), + test2_(::flatbuffers::EndianScalar(static_cast(_test2))), padding1__(0), test3_(_test3), padding2__(0) { @@ -749,34 +749,34 @@ FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(8) Vec3 FLATBUFFERS_FINAL_CLASS { (void)padding2__; } float x() const { - return flatbuffers::EndianScalar(x_); + return ::flatbuffers::EndianScalar(x_); } void mutate_x(float _x) { - flatbuffers::WriteScalar(&x_, _x); + ::flatbuffers::WriteScalar(&x_, _x); } float y() const { - return flatbuffers::EndianScalar(y_); + return ::flatbuffers::EndianScalar(y_); } void mutate_y(float _y) { - flatbuffers::WriteScalar(&y_, _y); + ::flatbuffers::WriteScalar(&y_, _y); } float z() const { - return flatbuffers::EndianScalar(z_); + return ::flatbuffers::EndianScalar(z_); } void mutate_z(float _z) { - flatbuffers::WriteScalar(&z_, _z); + ::flatbuffers::WriteScalar(&z_, _z); } double test1() const { - return flatbuffers::EndianScalar(test1_); + return ::flatbuffers::EndianScalar(test1_); } void mutate_test1(double _test1) { - flatbuffers::WriteScalar(&test1_, _test1); + ::flatbuffers::WriteScalar(&test1_, _test1); } MyGame::Example::Color test2() const { - return static_cast(flatbuffers::EndianScalar(test2_)); + return static_cast(::flatbuffers::EndianScalar(test2_)); } void mutate_test2(MyGame::Example::Color _test2) { - flatbuffers::WriteScalar(&test2_, static_cast(_test2)); + ::flatbuffers::WriteScalar(&test2_, static_cast(_test2)); } const MyGame::Example::Test &test3() const { return test3_; @@ -808,7 +808,7 @@ FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(4) Ability FLATBUFFERS_FINAL_CLASS { uint32_t distance_; public: - static const flatbuffers::TypeTable *MiniReflectTypeTable() { + static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { return AbilityTypeTable(); } Ability() @@ -816,14 +816,14 @@ FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(4) Ability FLATBUFFERS_FINAL_CLASS { distance_(0) { } Ability(uint32_t _id, uint32_t _distance) - : id_(flatbuffers::EndianScalar(_id)), - distance_(flatbuffers::EndianScalar(_distance)) { + : id_(::flatbuffers::EndianScalar(_id)), + distance_(::flatbuffers::EndianScalar(_distance)) { } uint32_t id() const { - return flatbuffers::EndianScalar(id_); + return ::flatbuffers::EndianScalar(id_); } void mutate_id(uint32_t _id) { - flatbuffers::WriteScalar(&id_, _id); + ::flatbuffers::WriteScalar(&id_, _id); } bool KeyCompareLessThan(const Ability * const o) const { return id() < o->id(); @@ -832,10 +832,10 @@ FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(4) Ability FLATBUFFERS_FINAL_CLASS { return static_cast(id() > _id) - static_cast(id() < _id); } uint32_t distance() const { - return flatbuffers::EndianScalar(distance_); + return ::flatbuffers::EndianScalar(distance_); } void mutate_distance(uint32_t _distance) { - flatbuffers::WriteScalar(&distance_, _distance); + ::flatbuffers::WriteScalar(&distance_, _distance); } }; FLATBUFFERS_STRUCT_END(Ability, 8); @@ -858,7 +858,7 @@ FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(4) StructOfStructs FLATBUFFERS_FINAL_CLASS { MyGame::Example::Ability c_; public: - static const flatbuffers::TypeTable *MiniReflectTypeTable() { + static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { return StructOfStructsTypeTable(); } StructOfStructs() @@ -909,7 +909,7 @@ FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(4) StructOfStructsOfStructs FLATBUFFERS_FINA MyGame::Example::StructOfStructs a_; public: - static const flatbuffers::TypeTable *MiniReflectTypeTable() { + static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { return StructOfStructsOfStructsTypeTable(); } StructOfStructsOfStructs() @@ -939,105 +939,105 @@ inline bool operator!=(const StructOfStructsOfStructs &lhs, const StructOfStruct } // namespace Example -struct InParentNamespaceT : public flatbuffers::NativeTable { +struct InParentNamespaceT : public ::flatbuffers::NativeTable { typedef InParentNamespace TableType; }; -struct InParentNamespace FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { +struct InParentNamespace FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { typedef InParentNamespaceT NativeTableType; typedef InParentNamespaceBuilder Builder; - static const flatbuffers::TypeTable *MiniReflectTypeTable() { + static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { return InParentNamespaceTypeTable(); } - bool Verify(flatbuffers::Verifier &verifier) const { + bool Verify(::flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && verifier.EndTable(); } - InParentNamespaceT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; - void UnPackTo(InParentNamespaceT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const; - static flatbuffers::Offset Pack(flatbuffers::FlatBufferBuilder &_fbb, const InParentNamespaceT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); + InParentNamespaceT *UnPack(const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; + void UnPackTo(InParentNamespaceT *_o, const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; + static ::flatbuffers::Offset Pack(::flatbuffers::FlatBufferBuilder &_fbb, const InParentNamespaceT* _o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); }; struct InParentNamespaceBuilder { typedef InParentNamespace Table; - flatbuffers::FlatBufferBuilder &fbb_; - flatbuffers::uoffset_t start_; - explicit InParentNamespaceBuilder(flatbuffers::FlatBufferBuilder &_fbb) + ::flatbuffers::FlatBufferBuilder &fbb_; + ::flatbuffers::uoffset_t start_; + explicit InParentNamespaceBuilder(::flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); } - flatbuffers::Offset Finish() { + ::flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); - auto o = flatbuffers::Offset(end); + auto o = ::flatbuffers::Offset(end); return o; } }; -inline flatbuffers::Offset CreateInParentNamespace( - flatbuffers::FlatBufferBuilder &_fbb) { +inline ::flatbuffers::Offset CreateInParentNamespace( + ::flatbuffers::FlatBufferBuilder &_fbb) { InParentNamespaceBuilder builder_(_fbb); return builder_.Finish(); } -flatbuffers::Offset CreateInParentNamespace(flatbuffers::FlatBufferBuilder &_fbb, const InParentNamespaceT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); +::flatbuffers::Offset CreateInParentNamespace(::flatbuffers::FlatBufferBuilder &_fbb, const InParentNamespaceT *_o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); namespace Example2 { -struct MonsterT : public flatbuffers::NativeTable { +struct MonsterT : public ::flatbuffers::NativeTable { typedef Monster TableType; }; -struct Monster FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { +struct Monster FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { typedef MonsterT NativeTableType; typedef MonsterBuilder Builder; - static const flatbuffers::TypeTable *MiniReflectTypeTable() { + static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { return MonsterTypeTable(); } - bool Verify(flatbuffers::Verifier &verifier) const { + bool Verify(::flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && verifier.EndTable(); } - MonsterT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; - void UnPackTo(MonsterT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const; - static flatbuffers::Offset Pack(flatbuffers::FlatBufferBuilder &_fbb, const MonsterT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); + MonsterT *UnPack(const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; + void UnPackTo(MonsterT *_o, const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; + static ::flatbuffers::Offset Pack(::flatbuffers::FlatBufferBuilder &_fbb, const MonsterT* _o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); }; struct MonsterBuilder { typedef Monster Table; - flatbuffers::FlatBufferBuilder &fbb_; - flatbuffers::uoffset_t start_; - explicit MonsterBuilder(flatbuffers::FlatBufferBuilder &_fbb) + ::flatbuffers::FlatBufferBuilder &fbb_; + ::flatbuffers::uoffset_t start_; + explicit MonsterBuilder(::flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); } - flatbuffers::Offset Finish() { + ::flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); - auto o = flatbuffers::Offset(end); + auto o = ::flatbuffers::Offset(end); return o; } }; -inline flatbuffers::Offset CreateMonster( - flatbuffers::FlatBufferBuilder &_fbb) { +inline ::flatbuffers::Offset CreateMonster( + ::flatbuffers::FlatBufferBuilder &_fbb) { MonsterBuilder builder_(_fbb); return builder_.Finish(); } -flatbuffers::Offset CreateMonster(flatbuffers::FlatBufferBuilder &_fbb, const MonsterT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); +::flatbuffers::Offset CreateMonster(::flatbuffers::FlatBufferBuilder &_fbb, const MonsterT *_o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); } // namespace Example2 namespace Example { -struct TestSimpleTableWithEnumT : public flatbuffers::NativeTable { +struct TestSimpleTableWithEnumT : public ::flatbuffers::NativeTable { typedef TestSimpleTableWithEnum TableType; MyGame::Example::Color color = MyGame::Example::Color_Green; }; -struct TestSimpleTableWithEnum FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { +struct TestSimpleTableWithEnum FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { typedef TestSimpleTableWithEnumT NativeTableType; typedef TestSimpleTableWithEnumBuilder Builder; - static const flatbuffers::TypeTable *MiniReflectTypeTable() { + static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { return TestSimpleTableWithEnumTypeTable(); } enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { @@ -1049,55 +1049,55 @@ struct TestSimpleTableWithEnum FLATBUFFERS_FINAL_CLASS : private flatbuffers::Ta bool mutate_color(MyGame::Example::Color _color = static_cast(2)) { return SetField(VT_COLOR, static_cast(_color), 2); } - bool Verify(flatbuffers::Verifier &verifier) const { + bool Verify(::flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_COLOR, 1) && verifier.EndTable(); } - TestSimpleTableWithEnumT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; - void UnPackTo(TestSimpleTableWithEnumT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const; - static flatbuffers::Offset Pack(flatbuffers::FlatBufferBuilder &_fbb, const TestSimpleTableWithEnumT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); + TestSimpleTableWithEnumT *UnPack(const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; + void UnPackTo(TestSimpleTableWithEnumT *_o, const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; + static ::flatbuffers::Offset Pack(::flatbuffers::FlatBufferBuilder &_fbb, const TestSimpleTableWithEnumT* _o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); }; struct TestSimpleTableWithEnumBuilder { typedef TestSimpleTableWithEnum Table; - flatbuffers::FlatBufferBuilder &fbb_; - flatbuffers::uoffset_t start_; + ::flatbuffers::FlatBufferBuilder &fbb_; + ::flatbuffers::uoffset_t start_; void add_color(MyGame::Example::Color color) { fbb_.AddElement(TestSimpleTableWithEnum::VT_COLOR, static_cast(color), 2); } - explicit TestSimpleTableWithEnumBuilder(flatbuffers::FlatBufferBuilder &_fbb) + explicit TestSimpleTableWithEnumBuilder(::flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); } - flatbuffers::Offset Finish() { + ::flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); - auto o = flatbuffers::Offset(end); + auto o = ::flatbuffers::Offset(end); return o; } }; -inline flatbuffers::Offset CreateTestSimpleTableWithEnum( - flatbuffers::FlatBufferBuilder &_fbb, +inline ::flatbuffers::Offset CreateTestSimpleTableWithEnum( + ::flatbuffers::FlatBufferBuilder &_fbb, MyGame::Example::Color color = MyGame::Example::Color_Green) { TestSimpleTableWithEnumBuilder builder_(_fbb); builder_.add_color(color); return builder_.Finish(); } -flatbuffers::Offset CreateTestSimpleTableWithEnum(flatbuffers::FlatBufferBuilder &_fbb, const TestSimpleTableWithEnumT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); +::flatbuffers::Offset CreateTestSimpleTableWithEnum(::flatbuffers::FlatBufferBuilder &_fbb, const TestSimpleTableWithEnumT *_o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); -struct StatT : public flatbuffers::NativeTable { +struct StatT : public ::flatbuffers::NativeTable { typedef Stat TableType; std::string id{}; int64_t val = 0; uint16_t count = 0; }; -struct Stat FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { +struct Stat FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { typedef StatT NativeTableType; typedef StatBuilder Builder; - static const flatbuffers::TypeTable *MiniReflectTypeTable() { + static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { return StatTypeTable(); } enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { @@ -1105,11 +1105,11 @@ struct Stat FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { VT_VAL = 6, VT_COUNT = 8 }; - const flatbuffers::String *id() const { - return GetPointer(VT_ID); + const ::flatbuffers::String *id() const { + return GetPointer(VT_ID); } - flatbuffers::String *mutable_id() { - return GetPointer(VT_ID); + ::flatbuffers::String *mutable_id() { + return GetPointer<::flatbuffers::String *>(VT_ID); } int64_t val() const { return GetField(VT_VAL, 0); @@ -1129,7 +1129,7 @@ struct Stat FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { int KeyCompareWithValue(uint16_t _count) const { return static_cast(count() > _count) - static_cast(count() < _count); } - bool Verify(flatbuffers::Verifier &verifier) const { + bool Verify(::flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && VerifyOffset(verifier, VT_ID) && verifier.VerifyString(id()) && @@ -1137,16 +1137,16 @@ struct Stat FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { VerifyField(verifier, VT_COUNT, 2) && verifier.EndTable(); } - StatT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; - void UnPackTo(StatT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const; - static flatbuffers::Offset Pack(flatbuffers::FlatBufferBuilder &_fbb, const StatT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); + StatT *UnPack(const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; + void UnPackTo(StatT *_o, const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; + static ::flatbuffers::Offset Pack(::flatbuffers::FlatBufferBuilder &_fbb, const StatT* _o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); }; struct StatBuilder { typedef Stat Table; - flatbuffers::FlatBufferBuilder &fbb_; - flatbuffers::uoffset_t start_; - void add_id(flatbuffers::Offset id) { + ::flatbuffers::FlatBufferBuilder &fbb_; + ::flatbuffers::uoffset_t start_; + void add_id(::flatbuffers::Offset<::flatbuffers::String> id) { fbb_.AddOffset(Stat::VT_ID, id); } void add_val(int64_t val) { @@ -1155,20 +1155,20 @@ struct StatBuilder { void add_count(uint16_t count) { fbb_.AddElement(Stat::VT_COUNT, count, 0); } - explicit StatBuilder(flatbuffers::FlatBufferBuilder &_fbb) + explicit StatBuilder(::flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); } - flatbuffers::Offset Finish() { + ::flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); - auto o = flatbuffers::Offset(end); + auto o = ::flatbuffers::Offset(end); return o; } }; -inline flatbuffers::Offset CreateStat( - flatbuffers::FlatBufferBuilder &_fbb, - flatbuffers::Offset id = 0, +inline ::flatbuffers::Offset CreateStat( + ::flatbuffers::FlatBufferBuilder &_fbb, + ::flatbuffers::Offset<::flatbuffers::String> id = 0, int64_t val = 0, uint16_t count = 0) { StatBuilder builder_(_fbb); @@ -1178,8 +1178,8 @@ inline flatbuffers::Offset CreateStat( return builder_.Finish(); } -inline flatbuffers::Offset CreateStatDirect( - flatbuffers::FlatBufferBuilder &_fbb, +inline ::flatbuffers::Offset CreateStatDirect( + ::flatbuffers::FlatBufferBuilder &_fbb, const char *id = nullptr, int64_t val = 0, uint16_t count = 0) { @@ -1191,17 +1191,17 @@ inline flatbuffers::Offset CreateStatDirect( count); } -flatbuffers::Offset CreateStat(flatbuffers::FlatBufferBuilder &_fbb, const StatT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); +::flatbuffers::Offset CreateStat(::flatbuffers::FlatBufferBuilder &_fbb, const StatT *_o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); -struct ReferrableT : public flatbuffers::NativeTable { +struct ReferrableT : public ::flatbuffers::NativeTable { typedef Referrable TableType; uint64_t id = 0; }; -struct Referrable FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { +struct Referrable FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { typedef ReferrableT NativeTableType; typedef ReferrableBuilder Builder; - static const flatbuffers::TypeTable *MiniReflectTypeTable() { + static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { return ReferrableTypeTable(); } enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { @@ -1219,45 +1219,45 @@ struct Referrable FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { int KeyCompareWithValue(uint64_t _id) const { return static_cast(id() > _id) - static_cast(id() < _id); } - bool Verify(flatbuffers::Verifier &verifier) const { + bool Verify(::flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_ID, 8) && verifier.EndTable(); } - ReferrableT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; - void UnPackTo(ReferrableT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const; - static flatbuffers::Offset Pack(flatbuffers::FlatBufferBuilder &_fbb, const ReferrableT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); + ReferrableT *UnPack(const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; + void UnPackTo(ReferrableT *_o, const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; + static ::flatbuffers::Offset Pack(::flatbuffers::FlatBufferBuilder &_fbb, const ReferrableT* _o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); }; struct ReferrableBuilder { typedef Referrable Table; - flatbuffers::FlatBufferBuilder &fbb_; - flatbuffers::uoffset_t start_; + ::flatbuffers::FlatBufferBuilder &fbb_; + ::flatbuffers::uoffset_t start_; void add_id(uint64_t id) { fbb_.AddElement(Referrable::VT_ID, id, 0); } - explicit ReferrableBuilder(flatbuffers::FlatBufferBuilder &_fbb) + explicit ReferrableBuilder(::flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); } - flatbuffers::Offset Finish() { + ::flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); - auto o = flatbuffers::Offset(end); + auto o = ::flatbuffers::Offset(end); return o; } }; -inline flatbuffers::Offset CreateReferrable( - flatbuffers::FlatBufferBuilder &_fbb, +inline ::flatbuffers::Offset CreateReferrable( + ::flatbuffers::FlatBufferBuilder &_fbb, uint64_t id = 0) { ReferrableBuilder builder_(_fbb); builder_.add_id(id); return builder_.Finish(); } -flatbuffers::Offset CreateReferrable(flatbuffers::FlatBufferBuilder &_fbb, const ReferrableT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); +::flatbuffers::Offset CreateReferrable(::flatbuffers::FlatBufferBuilder &_fbb, const ReferrableT *_o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); -struct MonsterT : public flatbuffers::NativeTable { +struct MonsterT : public ::flatbuffers::NativeTable { typedef Monster TableType; flatbuffers::unique_ptr pos{}; int16_t mana = 150; @@ -1324,10 +1324,10 @@ struct MonsterT : public flatbuffers::NativeTable { }; /// an example documentation comment: "monster object" -struct Monster FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { +struct Monster FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { typedef MonsterT NativeTableType; typedef MonsterBuilder Builder; - static const flatbuffers::TypeTable *MiniReflectTypeTable() { + static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { return MonsterTypeTable(); } enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { @@ -1411,11 +1411,11 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { bool mutate_hp(int16_t _hp = 100) { return SetField(VT_HP, _hp, 100); } - const flatbuffers::String *name() const { - return GetPointer(VT_NAME); + const ::flatbuffers::String *name() const { + return GetPointer(VT_NAME); } - flatbuffers::String *mutable_name() { - return GetPointer(VT_NAME); + ::flatbuffers::String *mutable_name() { + return GetPointer<::flatbuffers::String *>(VT_NAME); } bool KeyCompareLessThan(const Monster * const o) const { return *name() < *o->name(); @@ -1423,11 +1423,11 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { int KeyCompareWithValue(const char *_name) const { return strcmp(name()->c_str(), _name); } - const flatbuffers::Vector *inventory() const { - return GetPointer *>(VT_INVENTORY); + const ::flatbuffers::Vector *inventory() const { + return GetPointer *>(VT_INVENTORY); } - flatbuffers::Vector *mutable_inventory() { - return GetPointer *>(VT_INVENTORY); + ::flatbuffers::Vector *mutable_inventory() { + return GetPointer<::flatbuffers::Vector *>(VT_INVENTORY); } MyGame::Example::Color color() const { return static_cast(GetField(VT_COLOR, 8)); @@ -1454,25 +1454,25 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { void *mutable_test() { return GetPointer(VT_TEST); } - const flatbuffers::Vector *test4() const { - return GetPointer *>(VT_TEST4); + const ::flatbuffers::Vector *test4() const { + return GetPointer *>(VT_TEST4); } - flatbuffers::Vector *mutable_test4() { - return GetPointer *>(VT_TEST4); + ::flatbuffers::Vector *mutable_test4() { + return GetPointer<::flatbuffers::Vector *>(VT_TEST4); } - const flatbuffers::Vector> *testarrayofstring() const { - return GetPointer> *>(VT_TESTARRAYOFSTRING); + const ::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>> *testarrayofstring() const { + return GetPointer> *>(VT_TESTARRAYOFSTRING); } - flatbuffers::Vector> *mutable_testarrayofstring() { - return GetPointer> *>(VT_TESTARRAYOFSTRING); + ::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>> *mutable_testarrayofstring() { + return GetPointer<::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>> *>(VT_TESTARRAYOFSTRING); } /// an example documentation comment: this will end up in the generated code /// multiline too - const flatbuffers::Vector> *testarrayoftables() const { - return GetPointer> *>(VT_TESTARRAYOFTABLES); + const ::flatbuffers::Vector<::flatbuffers::Offset> *testarrayoftables() const { + return GetPointer> *>(VT_TESTARRAYOFTABLES); } - flatbuffers::Vector> *mutable_testarrayoftables() { - return GetPointer> *>(VT_TESTARRAYOFTABLES); + ::flatbuffers::Vector<::flatbuffers::Offset> *mutable_testarrayoftables() { + return GetPointer<::flatbuffers::Vector<::flatbuffers::Offset> *>(VT_TESTARRAYOFTABLES); } const MyGame::Example::Monster *enemy() const { return GetPointer(VT_ENEMY); @@ -1480,14 +1480,14 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { MyGame::Example::Monster *mutable_enemy() { return GetPointer(VT_ENEMY); } - const flatbuffers::Vector *testnestedflatbuffer() const { - return GetPointer *>(VT_TESTNESTEDFLATBUFFER); + const ::flatbuffers::Vector *testnestedflatbuffer() const { + return GetPointer *>(VT_TESTNESTEDFLATBUFFER); } - flatbuffers::Vector *mutable_testnestedflatbuffer() { - return GetPointer *>(VT_TESTNESTEDFLATBUFFER); + ::flatbuffers::Vector *mutable_testnestedflatbuffer() { + return GetPointer<::flatbuffers::Vector *>(VT_TESTNESTEDFLATBUFFER); } const MyGame::Example::Monster *testnestedflatbuffer_nested_root() const { - return flatbuffers::GetRoot(testnestedflatbuffer()->Data()); + return ::flatbuffers::GetRoot(testnestedflatbuffer()->Data()); } const MyGame::Example::Stat *testempty() const { return GetPointer(VT_TESTEMPTY); @@ -1549,11 +1549,11 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { bool mutate_testhashu64_fnv1a(uint64_t _testhashu64_fnv1a = 0) { return SetField(VT_TESTHASHU64_FNV1A, _testhashu64_fnv1a, 0); } - const flatbuffers::Vector *testarrayofbools() const { - return GetPointer *>(VT_TESTARRAYOFBOOLS); + const ::flatbuffers::Vector *testarrayofbools() const { + return GetPointer *>(VT_TESTARRAYOFBOOLS); } - flatbuffers::Vector *mutable_testarrayofbools() { - return GetPointer *>(VT_TESTARRAYOFBOOLS); + ::flatbuffers::Vector *mutable_testarrayofbools() { + return GetPointer<::flatbuffers::Vector *>(VT_TESTARRAYOFBOOLS); } float testf() const { return GetField(VT_TESTF, 3.14159f); @@ -1573,44 +1573,44 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { bool mutate_testf3(float _testf3 = 0.0f) { return SetField(VT_TESTF3, _testf3, 0.0f); } - const flatbuffers::Vector> *testarrayofstring2() const { - return GetPointer> *>(VT_TESTARRAYOFSTRING2); + const ::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>> *testarrayofstring2() const { + return GetPointer> *>(VT_TESTARRAYOFSTRING2); } - flatbuffers::Vector> *mutable_testarrayofstring2() { - return GetPointer> *>(VT_TESTARRAYOFSTRING2); + ::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>> *mutable_testarrayofstring2() { + return GetPointer<::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>> *>(VT_TESTARRAYOFSTRING2); } - const flatbuffers::Vector *testarrayofsortedstruct() const { - return GetPointer *>(VT_TESTARRAYOFSORTEDSTRUCT); + const ::flatbuffers::Vector *testarrayofsortedstruct() const { + return GetPointer *>(VT_TESTARRAYOFSORTEDSTRUCT); } - flatbuffers::Vector *mutable_testarrayofsortedstruct() { - return GetPointer *>(VT_TESTARRAYOFSORTEDSTRUCT); + ::flatbuffers::Vector *mutable_testarrayofsortedstruct() { + return GetPointer<::flatbuffers::Vector *>(VT_TESTARRAYOFSORTEDSTRUCT); } - const flatbuffers::Vector *flex() const { - return GetPointer *>(VT_FLEX); + const ::flatbuffers::Vector *flex() const { + return GetPointer *>(VT_FLEX); } - flatbuffers::Vector *mutable_flex() { - return GetPointer *>(VT_FLEX); + ::flatbuffers::Vector *mutable_flex() { + return GetPointer<::flatbuffers::Vector *>(VT_FLEX); } flexbuffers::Reference flex_flexbuffer_root() const { return flexbuffers::GetRoot(flex()->Data(), flex()->size()); } - const flatbuffers::Vector *test5() const { - return GetPointer *>(VT_TEST5); + const ::flatbuffers::Vector *test5() const { + return GetPointer *>(VT_TEST5); } - flatbuffers::Vector *mutable_test5() { - return GetPointer *>(VT_TEST5); + ::flatbuffers::Vector *mutable_test5() { + return GetPointer<::flatbuffers::Vector *>(VT_TEST5); } - const flatbuffers::Vector *vector_of_longs() const { - return GetPointer *>(VT_VECTOR_OF_LONGS); + const ::flatbuffers::Vector *vector_of_longs() const { + return GetPointer *>(VT_VECTOR_OF_LONGS); } - flatbuffers::Vector *mutable_vector_of_longs() { - return GetPointer *>(VT_VECTOR_OF_LONGS); + ::flatbuffers::Vector *mutable_vector_of_longs() { + return GetPointer<::flatbuffers::Vector *>(VT_VECTOR_OF_LONGS); } - const flatbuffers::Vector *vector_of_doubles() const { - return GetPointer *>(VT_VECTOR_OF_DOUBLES); + const ::flatbuffers::Vector *vector_of_doubles() const { + return GetPointer *>(VT_VECTOR_OF_DOUBLES); } - flatbuffers::Vector *mutable_vector_of_doubles() { - return GetPointer *>(VT_VECTOR_OF_DOUBLES); + ::flatbuffers::Vector *mutable_vector_of_doubles() { + return GetPointer<::flatbuffers::Vector *>(VT_VECTOR_OF_DOUBLES); } const MyGame::InParentNamespace *parent_namespace_test() const { return GetPointer(VT_PARENT_NAMESPACE_TEST); @@ -1618,11 +1618,11 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { MyGame::InParentNamespace *mutable_parent_namespace_test() { return GetPointer(VT_PARENT_NAMESPACE_TEST); } - const flatbuffers::Vector> *vector_of_referrables() const { - return GetPointer> *>(VT_VECTOR_OF_REFERRABLES); + const ::flatbuffers::Vector<::flatbuffers::Offset> *vector_of_referrables() const { + return GetPointer> *>(VT_VECTOR_OF_REFERRABLES); } - flatbuffers::Vector> *mutable_vector_of_referrables() { - return GetPointer> *>(VT_VECTOR_OF_REFERRABLES); + ::flatbuffers::Vector<::flatbuffers::Offset> *mutable_vector_of_referrables() { + return GetPointer<::flatbuffers::Vector<::flatbuffers::Offset> *>(VT_VECTOR_OF_REFERRABLES); } uint64_t single_weak_reference() const { return GetField(VT_SINGLE_WEAK_REFERENCE, 0); @@ -1630,17 +1630,17 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { bool mutate_single_weak_reference(uint64_t _single_weak_reference = 0) { return SetField(VT_SINGLE_WEAK_REFERENCE, _single_weak_reference, 0); } - const flatbuffers::Vector *vector_of_weak_references() const { - return GetPointer *>(VT_VECTOR_OF_WEAK_REFERENCES); + const ::flatbuffers::Vector *vector_of_weak_references() const { + return GetPointer *>(VT_VECTOR_OF_WEAK_REFERENCES); } - flatbuffers::Vector *mutable_vector_of_weak_references() { - return GetPointer *>(VT_VECTOR_OF_WEAK_REFERENCES); + ::flatbuffers::Vector *mutable_vector_of_weak_references() { + return GetPointer<::flatbuffers::Vector *>(VT_VECTOR_OF_WEAK_REFERENCES); } - const flatbuffers::Vector> *vector_of_strong_referrables() const { - return GetPointer> *>(VT_VECTOR_OF_STRONG_REFERRABLES); + const ::flatbuffers::Vector<::flatbuffers::Offset> *vector_of_strong_referrables() const { + return GetPointer> *>(VT_VECTOR_OF_STRONG_REFERRABLES); } - flatbuffers::Vector> *mutable_vector_of_strong_referrables() { - return GetPointer> *>(VT_VECTOR_OF_STRONG_REFERRABLES); + ::flatbuffers::Vector<::flatbuffers::Offset> *mutable_vector_of_strong_referrables() { + return GetPointer<::flatbuffers::Vector<::flatbuffers::Offset> *>(VT_VECTOR_OF_STRONG_REFERRABLES); } uint64_t co_owning_reference() const { return GetField(VT_CO_OWNING_REFERENCE, 0); @@ -1648,11 +1648,11 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { bool mutate_co_owning_reference(uint64_t _co_owning_reference = 0) { return SetField(VT_CO_OWNING_REFERENCE, _co_owning_reference, 0); } - const flatbuffers::Vector *vector_of_co_owning_references() const { - return GetPointer *>(VT_VECTOR_OF_CO_OWNING_REFERENCES); + const ::flatbuffers::Vector *vector_of_co_owning_references() const { + return GetPointer *>(VT_VECTOR_OF_CO_OWNING_REFERENCES); } - flatbuffers::Vector *mutable_vector_of_co_owning_references() { - return GetPointer *>(VT_VECTOR_OF_CO_OWNING_REFERENCES); + ::flatbuffers::Vector *mutable_vector_of_co_owning_references() { + return GetPointer<::flatbuffers::Vector *>(VT_VECTOR_OF_CO_OWNING_REFERENCES); } uint64_t non_owning_reference() const { return GetField(VT_NON_OWNING_REFERENCE, 0); @@ -1660,11 +1660,11 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { bool mutate_non_owning_reference(uint64_t _non_owning_reference = 0) { return SetField(VT_NON_OWNING_REFERENCE, _non_owning_reference, 0); } - const flatbuffers::Vector *vector_of_non_owning_references() const { - return GetPointer *>(VT_VECTOR_OF_NON_OWNING_REFERENCES); + const ::flatbuffers::Vector *vector_of_non_owning_references() const { + return GetPointer *>(VT_VECTOR_OF_NON_OWNING_REFERENCES); } - flatbuffers::Vector *mutable_vector_of_non_owning_references() { - return GetPointer *>(VT_VECTOR_OF_NON_OWNING_REFERENCES); + ::flatbuffers::Vector *mutable_vector_of_non_owning_references() { + return GetPointer<::flatbuffers::Vector *>(VT_VECTOR_OF_NON_OWNING_REFERENCES); } MyGame::Example::AnyUniqueAliases any_unique_type() const { return static_cast(GetField(VT_ANY_UNIQUE_TYPE, 0)); @@ -1703,11 +1703,11 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { void *mutable_any_ambiguous() { return GetPointer(VT_ANY_AMBIGUOUS); } - const flatbuffers::Vector *vector_of_enums() const { - return GetPointer *>(VT_VECTOR_OF_ENUMS); + const ::flatbuffers::Vector *vector_of_enums() const { + return GetPointer *>(VT_VECTOR_OF_ENUMS); } - flatbuffers::Vector *mutable_vector_of_enums() { - return GetPointer *>(VT_VECTOR_OF_ENUMS); + ::flatbuffers::Vector *mutable_vector_of_enums() { + return GetPointer<::flatbuffers::Vector *>(VT_VECTOR_OF_ENUMS); } MyGame::Example::Race signed_enum() const { return static_cast(GetField(VT_SIGNED_ENUM, -1)); @@ -1715,20 +1715,20 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { bool mutate_signed_enum(MyGame::Example::Race _signed_enum = static_cast(-1)) { return SetField(VT_SIGNED_ENUM, static_cast(_signed_enum), -1); } - const flatbuffers::Vector *testrequirednestedflatbuffer() const { - return GetPointer *>(VT_TESTREQUIREDNESTEDFLATBUFFER); + const ::flatbuffers::Vector *testrequirednestedflatbuffer() const { + return GetPointer *>(VT_TESTREQUIREDNESTEDFLATBUFFER); } - flatbuffers::Vector *mutable_testrequirednestedflatbuffer() { - return GetPointer *>(VT_TESTREQUIREDNESTEDFLATBUFFER); + ::flatbuffers::Vector *mutable_testrequirednestedflatbuffer() { + return GetPointer<::flatbuffers::Vector *>(VT_TESTREQUIREDNESTEDFLATBUFFER); } const MyGame::Example::Monster *testrequirednestedflatbuffer_nested_root() const { - return flatbuffers::GetRoot(testrequirednestedflatbuffer()->Data()); + return ::flatbuffers::GetRoot(testrequirednestedflatbuffer()->Data()); } - const flatbuffers::Vector> *scalar_key_sorted_tables() const { - return GetPointer> *>(VT_SCALAR_KEY_SORTED_TABLES); + const ::flatbuffers::Vector<::flatbuffers::Offset> *scalar_key_sorted_tables() const { + return GetPointer> *>(VT_SCALAR_KEY_SORTED_TABLES); } - flatbuffers::Vector> *mutable_scalar_key_sorted_tables() { - return GetPointer> *>(VT_SCALAR_KEY_SORTED_TABLES); + ::flatbuffers::Vector<::flatbuffers::Offset> *mutable_scalar_key_sorted_tables() { + return GetPointer<::flatbuffers::Vector<::flatbuffers::Offset> *>(VT_SCALAR_KEY_SORTED_TABLES); } const MyGame::Example::Test *native_inline() const { return GetStruct(VT_NATIVE_INLINE); @@ -1796,7 +1796,7 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { bool mutate_double_inf_default(double _double_inf_default = std::numeric_limits::infinity()) { return SetField(VT_DOUBLE_INF_DEFAULT, _double_inf_default, std::numeric_limits::infinity()); } - bool Verify(flatbuffers::Verifier &verifier) const { + bool Verify(::flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_POS, 8) && VerifyField(verifier, VT_MANA, 2) && @@ -1897,9 +1897,9 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { VerifyField(verifier, VT_DOUBLE_INF_DEFAULT, 8) && verifier.EndTable(); } - MonsterT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; - void UnPackTo(MonsterT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const; - static flatbuffers::Offset Pack(flatbuffers::FlatBufferBuilder &_fbb, const MonsterT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); + MonsterT *UnPack(const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; + void UnPackTo(MonsterT *_o, const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; + static ::flatbuffers::Offset Pack(::flatbuffers::FlatBufferBuilder &_fbb, const MonsterT* _o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); }; template<> inline const MyGame::Example::Monster *Monster::test_as() const { @@ -1928,8 +1928,8 @@ template<> inline const MyGame::Example2::Monster *Monster::any_unique_as(Monster::VT_HP, hp, 100); } - void add_name(flatbuffers::Offset name) { + void add_name(::flatbuffers::Offset<::flatbuffers::String> name) { fbb_.AddOffset(Monster::VT_NAME, name); } - void add_inventory(flatbuffers::Offset> inventory) { + void add_inventory(::flatbuffers::Offset<::flatbuffers::Vector> inventory) { fbb_.AddOffset(Monster::VT_INVENTORY, inventory); } void add_color(MyGame::Example::Color color) { @@ -1951,25 +1951,25 @@ struct MonsterBuilder { void add_test_type(MyGame::Example::Any test_type) { fbb_.AddElement(Monster::VT_TEST_TYPE, static_cast(test_type), 0); } - void add_test(flatbuffers::Offset test) { + void add_test(::flatbuffers::Offset test) { fbb_.AddOffset(Monster::VT_TEST, test); } - void add_test4(flatbuffers::Offset> test4) { + void add_test4(::flatbuffers::Offset<::flatbuffers::Vector> test4) { fbb_.AddOffset(Monster::VT_TEST4, test4); } - void add_testarrayofstring(flatbuffers::Offset>> testarrayofstring) { + void add_testarrayofstring(::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>>> testarrayofstring) { fbb_.AddOffset(Monster::VT_TESTARRAYOFSTRING, testarrayofstring); } - void add_testarrayoftables(flatbuffers::Offset>> testarrayoftables) { + void add_testarrayoftables(::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset>> testarrayoftables) { fbb_.AddOffset(Monster::VT_TESTARRAYOFTABLES, testarrayoftables); } - void add_enemy(flatbuffers::Offset enemy) { + void add_enemy(::flatbuffers::Offset enemy) { fbb_.AddOffset(Monster::VT_ENEMY, enemy); } - void add_testnestedflatbuffer(flatbuffers::Offset> testnestedflatbuffer) { + void add_testnestedflatbuffer(::flatbuffers::Offset<::flatbuffers::Vector> testnestedflatbuffer) { fbb_.AddOffset(Monster::VT_TESTNESTEDFLATBUFFER, testnestedflatbuffer); } - void add_testempty(flatbuffers::Offset testempty) { + void add_testempty(::flatbuffers::Offset testempty) { fbb_.AddOffset(Monster::VT_TESTEMPTY, testempty); } void add_testbool(bool testbool) { @@ -1999,7 +1999,7 @@ struct MonsterBuilder { void add_testhashu64_fnv1a(uint64_t testhashu64_fnv1a) { fbb_.AddElement(Monster::VT_TESTHASHU64_FNV1A, testhashu64_fnv1a, 0); } - void add_testarrayofbools(flatbuffers::Offset> testarrayofbools) { + void add_testarrayofbools(::flatbuffers::Offset<::flatbuffers::Vector> testarrayofbools) { fbb_.AddOffset(Monster::VT_TESTARRAYOFBOOLS, testarrayofbools); } void add_testf(float testf) { @@ -2011,73 +2011,73 @@ struct MonsterBuilder { void add_testf3(float testf3) { fbb_.AddElement(Monster::VT_TESTF3, testf3, 0.0f); } - void add_testarrayofstring2(flatbuffers::Offset>> testarrayofstring2) { + void add_testarrayofstring2(::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>>> testarrayofstring2) { fbb_.AddOffset(Monster::VT_TESTARRAYOFSTRING2, testarrayofstring2); } - void add_testarrayofsortedstruct(flatbuffers::Offset> testarrayofsortedstruct) { + void add_testarrayofsortedstruct(::flatbuffers::Offset<::flatbuffers::Vector> testarrayofsortedstruct) { fbb_.AddOffset(Monster::VT_TESTARRAYOFSORTEDSTRUCT, testarrayofsortedstruct); } - void add_flex(flatbuffers::Offset> flex) { + void add_flex(::flatbuffers::Offset<::flatbuffers::Vector> flex) { fbb_.AddOffset(Monster::VT_FLEX, flex); } - void add_test5(flatbuffers::Offset> test5) { + void add_test5(::flatbuffers::Offset<::flatbuffers::Vector> test5) { fbb_.AddOffset(Monster::VT_TEST5, test5); } - void add_vector_of_longs(flatbuffers::Offset> vector_of_longs) { + void add_vector_of_longs(::flatbuffers::Offset<::flatbuffers::Vector> vector_of_longs) { fbb_.AddOffset(Monster::VT_VECTOR_OF_LONGS, vector_of_longs); } - void add_vector_of_doubles(flatbuffers::Offset> vector_of_doubles) { + void add_vector_of_doubles(::flatbuffers::Offset<::flatbuffers::Vector> vector_of_doubles) { fbb_.AddOffset(Monster::VT_VECTOR_OF_DOUBLES, vector_of_doubles); } - void add_parent_namespace_test(flatbuffers::Offset parent_namespace_test) { + void add_parent_namespace_test(::flatbuffers::Offset parent_namespace_test) { fbb_.AddOffset(Monster::VT_PARENT_NAMESPACE_TEST, parent_namespace_test); } - void add_vector_of_referrables(flatbuffers::Offset>> vector_of_referrables) { + void add_vector_of_referrables(::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset>> vector_of_referrables) { fbb_.AddOffset(Monster::VT_VECTOR_OF_REFERRABLES, vector_of_referrables); } void add_single_weak_reference(uint64_t single_weak_reference) { fbb_.AddElement(Monster::VT_SINGLE_WEAK_REFERENCE, single_weak_reference, 0); } - void add_vector_of_weak_references(flatbuffers::Offset> vector_of_weak_references) { + void add_vector_of_weak_references(::flatbuffers::Offset<::flatbuffers::Vector> vector_of_weak_references) { fbb_.AddOffset(Monster::VT_VECTOR_OF_WEAK_REFERENCES, vector_of_weak_references); } - void add_vector_of_strong_referrables(flatbuffers::Offset>> vector_of_strong_referrables) { + void add_vector_of_strong_referrables(::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset>> vector_of_strong_referrables) { fbb_.AddOffset(Monster::VT_VECTOR_OF_STRONG_REFERRABLES, vector_of_strong_referrables); } void add_co_owning_reference(uint64_t co_owning_reference) { fbb_.AddElement(Monster::VT_CO_OWNING_REFERENCE, co_owning_reference, 0); } - void add_vector_of_co_owning_references(flatbuffers::Offset> vector_of_co_owning_references) { + void add_vector_of_co_owning_references(::flatbuffers::Offset<::flatbuffers::Vector> vector_of_co_owning_references) { fbb_.AddOffset(Monster::VT_VECTOR_OF_CO_OWNING_REFERENCES, vector_of_co_owning_references); } void add_non_owning_reference(uint64_t non_owning_reference) { fbb_.AddElement(Monster::VT_NON_OWNING_REFERENCE, non_owning_reference, 0); } - void add_vector_of_non_owning_references(flatbuffers::Offset> vector_of_non_owning_references) { + void add_vector_of_non_owning_references(::flatbuffers::Offset<::flatbuffers::Vector> vector_of_non_owning_references) { fbb_.AddOffset(Monster::VT_VECTOR_OF_NON_OWNING_REFERENCES, vector_of_non_owning_references); } void add_any_unique_type(MyGame::Example::AnyUniqueAliases any_unique_type) { fbb_.AddElement(Monster::VT_ANY_UNIQUE_TYPE, static_cast(any_unique_type), 0); } - void add_any_unique(flatbuffers::Offset any_unique) { + void add_any_unique(::flatbuffers::Offset any_unique) { fbb_.AddOffset(Monster::VT_ANY_UNIQUE, any_unique); } void add_any_ambiguous_type(MyGame::Example::AnyAmbiguousAliases any_ambiguous_type) { fbb_.AddElement(Monster::VT_ANY_AMBIGUOUS_TYPE, static_cast(any_ambiguous_type), 0); } - void add_any_ambiguous(flatbuffers::Offset any_ambiguous) { + void add_any_ambiguous(::flatbuffers::Offset any_ambiguous) { fbb_.AddOffset(Monster::VT_ANY_AMBIGUOUS, any_ambiguous); } - void add_vector_of_enums(flatbuffers::Offset> vector_of_enums) { + void add_vector_of_enums(::flatbuffers::Offset<::flatbuffers::Vector> vector_of_enums) { fbb_.AddOffset(Monster::VT_VECTOR_OF_ENUMS, vector_of_enums); } void add_signed_enum(MyGame::Example::Race signed_enum) { fbb_.AddElement(Monster::VT_SIGNED_ENUM, static_cast(signed_enum), -1); } - void add_testrequirednestedflatbuffer(flatbuffers::Offset> testrequirednestedflatbuffer) { + void add_testrequirednestedflatbuffer(::flatbuffers::Offset<::flatbuffers::Vector> testrequirednestedflatbuffer) { fbb_.AddOffset(Monster::VT_TESTREQUIREDNESTEDFLATBUFFER, testrequirednestedflatbuffer); } - void add_scalar_key_sorted_tables(flatbuffers::Offset>> scalar_key_sorted_tables) { + void add_scalar_key_sorted_tables(::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset>> scalar_key_sorted_tables) { fbb_.AddOffset(Monster::VT_SCALAR_KEY_SORTED_TABLES, scalar_key_sorted_tables); } void add_native_inline(const MyGame::Example::Test *native_inline) { @@ -2113,34 +2113,34 @@ struct MonsterBuilder { void add_double_inf_default(double double_inf_default) { fbb_.AddElement(Monster::VT_DOUBLE_INF_DEFAULT, double_inf_default, std::numeric_limits::infinity()); } - explicit MonsterBuilder(flatbuffers::FlatBufferBuilder &_fbb) + explicit MonsterBuilder(::flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); } - flatbuffers::Offset Finish() { + ::flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); - auto o = flatbuffers::Offset(end); + auto o = ::flatbuffers::Offset(end); fbb_.Required(o, Monster::VT_NAME); return o; } }; -inline flatbuffers::Offset CreateMonster( - flatbuffers::FlatBufferBuilder &_fbb, +inline ::flatbuffers::Offset CreateMonster( + ::flatbuffers::FlatBufferBuilder &_fbb, const MyGame::Example::Vec3 *pos = nullptr, int16_t mana = 150, int16_t hp = 100, - flatbuffers::Offset name = 0, - flatbuffers::Offset> inventory = 0, + ::flatbuffers::Offset<::flatbuffers::String> name = 0, + ::flatbuffers::Offset<::flatbuffers::Vector> inventory = 0, MyGame::Example::Color color = MyGame::Example::Color_Blue, MyGame::Example::Any test_type = MyGame::Example::Any_NONE, - flatbuffers::Offset test = 0, - flatbuffers::Offset> test4 = 0, - flatbuffers::Offset>> testarrayofstring = 0, - flatbuffers::Offset>> testarrayoftables = 0, - flatbuffers::Offset enemy = 0, - flatbuffers::Offset> testnestedflatbuffer = 0, - flatbuffers::Offset testempty = 0, + ::flatbuffers::Offset test = 0, + ::flatbuffers::Offset<::flatbuffers::Vector> test4 = 0, + ::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>>> testarrayofstring = 0, + ::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset>> testarrayoftables = 0, + ::flatbuffers::Offset enemy = 0, + ::flatbuffers::Offset<::flatbuffers::Vector> testnestedflatbuffer = 0, + ::flatbuffers::Offset testempty = 0, bool testbool = false, int32_t testhashs32_fnv1 = 0, uint32_t testhashu32_fnv1 = 0, @@ -2150,33 +2150,33 @@ inline flatbuffers::Offset CreateMonster( uint32_t testhashu32_fnv1a = 0, int64_t testhashs64_fnv1a = 0, uint64_t testhashu64_fnv1a = 0, - flatbuffers::Offset> testarrayofbools = 0, + ::flatbuffers::Offset<::flatbuffers::Vector> testarrayofbools = 0, float testf = 3.14159f, float testf2 = 3.0f, float testf3 = 0.0f, - flatbuffers::Offset>> testarrayofstring2 = 0, - flatbuffers::Offset> testarrayofsortedstruct = 0, - flatbuffers::Offset> flex = 0, - flatbuffers::Offset> test5 = 0, - flatbuffers::Offset> vector_of_longs = 0, - flatbuffers::Offset> vector_of_doubles = 0, - flatbuffers::Offset parent_namespace_test = 0, - flatbuffers::Offset>> vector_of_referrables = 0, + ::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>>> testarrayofstring2 = 0, + ::flatbuffers::Offset<::flatbuffers::Vector> testarrayofsortedstruct = 0, + ::flatbuffers::Offset<::flatbuffers::Vector> flex = 0, + ::flatbuffers::Offset<::flatbuffers::Vector> test5 = 0, + ::flatbuffers::Offset<::flatbuffers::Vector> vector_of_longs = 0, + ::flatbuffers::Offset<::flatbuffers::Vector> vector_of_doubles = 0, + ::flatbuffers::Offset parent_namespace_test = 0, + ::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset>> vector_of_referrables = 0, uint64_t single_weak_reference = 0, - flatbuffers::Offset> vector_of_weak_references = 0, - flatbuffers::Offset>> vector_of_strong_referrables = 0, + ::flatbuffers::Offset<::flatbuffers::Vector> vector_of_weak_references = 0, + ::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset>> vector_of_strong_referrables = 0, uint64_t co_owning_reference = 0, - flatbuffers::Offset> vector_of_co_owning_references = 0, + ::flatbuffers::Offset<::flatbuffers::Vector> vector_of_co_owning_references = 0, uint64_t non_owning_reference = 0, - flatbuffers::Offset> vector_of_non_owning_references = 0, + ::flatbuffers::Offset<::flatbuffers::Vector> vector_of_non_owning_references = 0, MyGame::Example::AnyUniqueAliases any_unique_type = MyGame::Example::AnyUniqueAliases_NONE, - flatbuffers::Offset any_unique = 0, + ::flatbuffers::Offset any_unique = 0, MyGame::Example::AnyAmbiguousAliases any_ambiguous_type = MyGame::Example::AnyAmbiguousAliases_NONE, - flatbuffers::Offset any_ambiguous = 0, - flatbuffers::Offset> vector_of_enums = 0, + ::flatbuffers::Offset any_ambiguous = 0, + ::flatbuffers::Offset<::flatbuffers::Vector> vector_of_enums = 0, MyGame::Example::Race signed_enum = MyGame::Example::Race_None, - flatbuffers::Offset> testrequirednestedflatbuffer = 0, - flatbuffers::Offset>> scalar_key_sorted_tables = 0, + ::flatbuffers::Offset<::flatbuffers::Vector> testrequirednestedflatbuffer = 0, + ::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset>> scalar_key_sorted_tables = 0, const MyGame::Example::Test *native_inline = nullptr, MyGame::Example::LongEnum long_enum_non_enum_default = static_cast(0), MyGame::Example::LongEnum long_enum_normal_default = MyGame::Example::LongEnum_LongOne, @@ -2253,8 +2253,8 @@ inline flatbuffers::Offset CreateMonster( return builder_.Finish(); } -inline flatbuffers::Offset CreateMonsterDirect( - flatbuffers::FlatBufferBuilder &_fbb, +inline ::flatbuffers::Offset CreateMonsterDirect( + ::flatbuffers::FlatBufferBuilder &_fbb, const MyGame::Example::Vec3 *pos = nullptr, int16_t mana = 150, int16_t hp = 100, @@ -2262,13 +2262,13 @@ inline flatbuffers::Offset CreateMonsterDirect( const std::vector *inventory = nullptr, MyGame::Example::Color color = MyGame::Example::Color_Blue, MyGame::Example::Any test_type = MyGame::Example::Any_NONE, - flatbuffers::Offset test = 0, + ::flatbuffers::Offset test = 0, const std::vector *test4 = nullptr, - const std::vector> *testarrayofstring = nullptr, - std::vector> *testarrayoftables = nullptr, - flatbuffers::Offset enemy = 0, + const std::vector<::flatbuffers::Offset<::flatbuffers::String>> *testarrayofstring = nullptr, + std::vector<::flatbuffers::Offset> *testarrayoftables = nullptr, + ::flatbuffers::Offset enemy = 0, const std::vector *testnestedflatbuffer = nullptr, - flatbuffers::Offset testempty = 0, + ::flatbuffers::Offset testempty = 0, bool testbool = false, int32_t testhashs32_fnv1 = 0, uint32_t testhashu32_fnv1 = 0, @@ -2282,29 +2282,29 @@ inline flatbuffers::Offset CreateMonsterDirect( float testf = 3.14159f, float testf2 = 3.0f, float testf3 = 0.0f, - const std::vector> *testarrayofstring2 = nullptr, + const std::vector<::flatbuffers::Offset<::flatbuffers::String>> *testarrayofstring2 = nullptr, std::vector *testarrayofsortedstruct = nullptr, const std::vector *flex = nullptr, const std::vector *test5 = nullptr, const std::vector *vector_of_longs = nullptr, const std::vector *vector_of_doubles = nullptr, - flatbuffers::Offset parent_namespace_test = 0, - std::vector> *vector_of_referrables = nullptr, + ::flatbuffers::Offset parent_namespace_test = 0, + std::vector<::flatbuffers::Offset> *vector_of_referrables = nullptr, uint64_t single_weak_reference = 0, const std::vector *vector_of_weak_references = nullptr, - std::vector> *vector_of_strong_referrables = nullptr, + std::vector<::flatbuffers::Offset> *vector_of_strong_referrables = nullptr, uint64_t co_owning_reference = 0, const std::vector *vector_of_co_owning_references = nullptr, uint64_t non_owning_reference = 0, const std::vector *vector_of_non_owning_references = nullptr, MyGame::Example::AnyUniqueAliases any_unique_type = MyGame::Example::AnyUniqueAliases_NONE, - flatbuffers::Offset any_unique = 0, + ::flatbuffers::Offset any_unique = 0, MyGame::Example::AnyAmbiguousAliases any_ambiguous_type = MyGame::Example::AnyAmbiguousAliases_NONE, - flatbuffers::Offset any_ambiguous = 0, + ::flatbuffers::Offset any_ambiguous = 0, const std::vector *vector_of_enums = nullptr, MyGame::Example::Race signed_enum = MyGame::Example::Race_None, const std::vector *testrequirednestedflatbuffer = nullptr, - std::vector> *scalar_key_sorted_tables = nullptr, + std::vector<::flatbuffers::Offset> *scalar_key_sorted_tables = nullptr, const MyGame::Example::Test *native_inline = nullptr, MyGame::Example::LongEnum long_enum_non_enum_default = static_cast(0), MyGame::Example::LongEnum long_enum_normal_default = MyGame::Example::LongEnum_LongOne, @@ -2319,11 +2319,11 @@ inline flatbuffers::Offset CreateMonsterDirect( auto name__ = name ? _fbb.CreateString(name) : 0; auto inventory__ = inventory ? _fbb.CreateVector(*inventory) : 0; auto test4__ = test4 ? _fbb.CreateVectorOfStructs(*test4) : 0; - auto testarrayofstring__ = testarrayofstring ? _fbb.CreateVector>(*testarrayofstring) : 0; + auto testarrayofstring__ = testarrayofstring ? _fbb.CreateVector<::flatbuffers::Offset<::flatbuffers::String>>(*testarrayofstring) : 0; auto testarrayoftables__ = testarrayoftables ? _fbb.CreateVectorOfSortedTables(testarrayoftables) : 0; auto testnestedflatbuffer__ = testnestedflatbuffer ? _fbb.CreateVector(*testnestedflatbuffer) : 0; auto testarrayofbools__ = testarrayofbools ? _fbb.CreateVector(*testarrayofbools) : 0; - auto testarrayofstring2__ = testarrayofstring2 ? _fbb.CreateVector>(*testarrayofstring2) : 0; + auto testarrayofstring2__ = testarrayofstring2 ? _fbb.CreateVector<::flatbuffers::Offset<::flatbuffers::String>>(*testarrayofstring2) : 0; auto testarrayofsortedstruct__ = testarrayofsortedstruct ? _fbb.CreateVectorOfSortedStructs(testarrayofsortedstruct) : 0; auto flex__ = flex ? _fbb.CreateVector(*flex) : 0; auto test5__ = test5 ? _fbb.CreateVectorOfStructs(*test5) : 0; @@ -2402,9 +2402,9 @@ inline flatbuffers::Offset CreateMonsterDirect( double_inf_default); } -flatbuffers::Offset CreateMonster(flatbuffers::FlatBufferBuilder &_fbb, const MonsterT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); +::flatbuffers::Offset CreateMonster(::flatbuffers::FlatBufferBuilder &_fbb, const MonsterT *_o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); -struct TypeAliasesT : public flatbuffers::NativeTable { +struct TypeAliasesT : public ::flatbuffers::NativeTable { typedef TypeAliases TableType; int8_t i8 = 0; uint8_t u8 = 0; @@ -2420,10 +2420,10 @@ struct TypeAliasesT : public flatbuffers::NativeTable { std::vector vf64{}; }; -struct TypeAliases FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { +struct TypeAliases FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { typedef TypeAliasesT NativeTableType; typedef TypeAliasesBuilder Builder; - static const flatbuffers::TypeTable *MiniReflectTypeTable() { + static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { return TypeAliasesTypeTable(); } enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { @@ -2500,19 +2500,19 @@ struct TypeAliases FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { bool mutate_f64(double _f64 = 0.0) { return SetField(VT_F64, _f64, 0.0); } - const flatbuffers::Vector *v8() const { - return GetPointer *>(VT_V8); + const ::flatbuffers::Vector *v8() const { + return GetPointer *>(VT_V8); } - flatbuffers::Vector *mutable_v8() { - return GetPointer *>(VT_V8); + ::flatbuffers::Vector *mutable_v8() { + return GetPointer<::flatbuffers::Vector *>(VT_V8); } - const flatbuffers::Vector *vf64() const { - return GetPointer *>(VT_VF64); + const ::flatbuffers::Vector *vf64() const { + return GetPointer *>(VT_VF64); } - flatbuffers::Vector *mutable_vf64() { - return GetPointer *>(VT_VF64); + ::flatbuffers::Vector *mutable_vf64() { + return GetPointer<::flatbuffers::Vector *>(VT_VF64); } - bool Verify(flatbuffers::Verifier &verifier) const { + bool Verify(::flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_I8, 1) && VerifyField(verifier, VT_U8, 1) && @@ -2530,15 +2530,15 @@ struct TypeAliases FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { verifier.VerifyVector(vf64()) && verifier.EndTable(); } - TypeAliasesT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; - void UnPackTo(TypeAliasesT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const; - static flatbuffers::Offset Pack(flatbuffers::FlatBufferBuilder &_fbb, const TypeAliasesT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); + TypeAliasesT *UnPack(const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; + void UnPackTo(TypeAliasesT *_o, const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; + static ::flatbuffers::Offset Pack(::flatbuffers::FlatBufferBuilder &_fbb, const TypeAliasesT* _o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); }; struct TypeAliasesBuilder { typedef TypeAliases Table; - flatbuffers::FlatBufferBuilder &fbb_; - flatbuffers::uoffset_t start_; + ::flatbuffers::FlatBufferBuilder &fbb_; + ::flatbuffers::uoffset_t start_; void add_i8(int8_t i8) { fbb_.AddElement(TypeAliases::VT_I8, i8, 0); } @@ -2569,25 +2569,25 @@ struct TypeAliasesBuilder { void add_f64(double f64) { fbb_.AddElement(TypeAliases::VT_F64, f64, 0.0); } - void add_v8(flatbuffers::Offset> v8) { + void add_v8(::flatbuffers::Offset<::flatbuffers::Vector> v8) { fbb_.AddOffset(TypeAliases::VT_V8, v8); } - void add_vf64(flatbuffers::Offset> vf64) { + void add_vf64(::flatbuffers::Offset<::flatbuffers::Vector> vf64) { fbb_.AddOffset(TypeAliases::VT_VF64, vf64); } - explicit TypeAliasesBuilder(flatbuffers::FlatBufferBuilder &_fbb) + explicit TypeAliasesBuilder(::flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); } - flatbuffers::Offset Finish() { + ::flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); - auto o = flatbuffers::Offset(end); + auto o = ::flatbuffers::Offset(end); return o; } }; -inline flatbuffers::Offset CreateTypeAliases( - flatbuffers::FlatBufferBuilder &_fbb, +inline ::flatbuffers::Offset CreateTypeAliases( + ::flatbuffers::FlatBufferBuilder &_fbb, int8_t i8 = 0, uint8_t u8 = 0, int16_t i16 = 0, @@ -2598,8 +2598,8 @@ inline flatbuffers::Offset CreateTypeAliases( uint64_t u64 = 0, float f32 = 0.0f, double f64 = 0.0, - flatbuffers::Offset> v8 = 0, - flatbuffers::Offset> vf64 = 0) { + ::flatbuffers::Offset<::flatbuffers::Vector> v8 = 0, + ::flatbuffers::Offset<::flatbuffers::Vector> vf64 = 0) { TypeAliasesBuilder builder_(_fbb); builder_.add_f64(f64); builder_.add_u64(u64); @@ -2616,8 +2616,8 @@ inline flatbuffers::Offset CreateTypeAliases( return builder_.Finish(); } -inline flatbuffers::Offset CreateTypeAliasesDirect( - flatbuffers::FlatBufferBuilder &_fbb, +inline ::flatbuffers::Offset CreateTypeAliasesDirect( + ::flatbuffers::FlatBufferBuilder &_fbb, int8_t i8 = 0, uint8_t u8 = 0, int16_t i16 = 0, @@ -2648,7 +2648,7 @@ inline flatbuffers::Offset CreateTypeAliasesDirect( vf64__); } -flatbuffers::Offset CreateTypeAliases(flatbuffers::FlatBufferBuilder &_fbb, const TypeAliasesT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); +::flatbuffers::Offset CreateTypeAliases(::flatbuffers::FlatBufferBuilder &_fbb, const TypeAliasesT *_o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); } // namespace Example @@ -2662,25 +2662,25 @@ inline bool operator!=(const InParentNamespaceT &lhs, const InParentNamespaceT & } -inline InParentNamespaceT *InParentNamespace::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +inline InParentNamespaceT *InParentNamespace::UnPack(const ::flatbuffers::resolver_function_t *_resolver) const { auto _o = std::unique_ptr(new InParentNamespaceT()); UnPackTo(_o.get(), _resolver); return _o.release(); } -inline void InParentNamespace::UnPackTo(InParentNamespaceT *_o, const flatbuffers::resolver_function_t *_resolver) const { +inline void InParentNamespace::UnPackTo(InParentNamespaceT *_o, const ::flatbuffers::resolver_function_t *_resolver) const { (void)_o; (void)_resolver; } -inline flatbuffers::Offset InParentNamespace::Pack(flatbuffers::FlatBufferBuilder &_fbb, const InParentNamespaceT* _o, const flatbuffers::rehasher_function_t *_rehasher) { +inline ::flatbuffers::Offset InParentNamespace::Pack(::flatbuffers::FlatBufferBuilder &_fbb, const InParentNamespaceT* _o, const ::flatbuffers::rehasher_function_t *_rehasher) { return CreateInParentNamespace(_fbb, _o, _rehasher); } -inline flatbuffers::Offset CreateInParentNamespace(flatbuffers::FlatBufferBuilder &_fbb, const InParentNamespaceT *_o, const flatbuffers::rehasher_function_t *_rehasher) { +inline ::flatbuffers::Offset CreateInParentNamespace(::flatbuffers::FlatBufferBuilder &_fbb, const InParentNamespaceT *_o, const ::flatbuffers::rehasher_function_t *_rehasher) { (void)_rehasher; (void)_o; - struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const InParentNamespaceT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; + struct _VectorArgs { ::flatbuffers::FlatBufferBuilder *__fbb; const InParentNamespaceT* __o; const ::flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; return MyGame::CreateInParentNamespace( _fbb); } @@ -2697,25 +2697,25 @@ inline bool operator!=(const MonsterT &lhs, const MonsterT &rhs) { } -inline MonsterT *Monster::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +inline MonsterT *Monster::UnPack(const ::flatbuffers::resolver_function_t *_resolver) const { auto _o = std::unique_ptr(new MonsterT()); UnPackTo(_o.get(), _resolver); return _o.release(); } -inline void Monster::UnPackTo(MonsterT *_o, const flatbuffers::resolver_function_t *_resolver) const { +inline void Monster::UnPackTo(MonsterT *_o, const ::flatbuffers::resolver_function_t *_resolver) const { (void)_o; (void)_resolver; } -inline flatbuffers::Offset Monster::Pack(flatbuffers::FlatBufferBuilder &_fbb, const MonsterT* _o, const flatbuffers::rehasher_function_t *_rehasher) { +inline ::flatbuffers::Offset Monster::Pack(::flatbuffers::FlatBufferBuilder &_fbb, const MonsterT* _o, const ::flatbuffers::rehasher_function_t *_rehasher) { return CreateMonster(_fbb, _o, _rehasher); } -inline flatbuffers::Offset CreateMonster(flatbuffers::FlatBufferBuilder &_fbb, const MonsterT *_o, const flatbuffers::rehasher_function_t *_rehasher) { +inline ::flatbuffers::Offset CreateMonster(::flatbuffers::FlatBufferBuilder &_fbb, const MonsterT *_o, const ::flatbuffers::rehasher_function_t *_rehasher) { (void)_rehasher; (void)_o; - struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const MonsterT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; + struct _VectorArgs { ::flatbuffers::FlatBufferBuilder *__fbb; const MonsterT* __o; const ::flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; return MyGame::Example2::CreateMonster( _fbb); } @@ -2735,26 +2735,26 @@ inline bool operator!=(const TestSimpleTableWithEnumT &lhs, const TestSimpleTabl } -inline TestSimpleTableWithEnumT *TestSimpleTableWithEnum::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +inline TestSimpleTableWithEnumT *TestSimpleTableWithEnum::UnPack(const ::flatbuffers::resolver_function_t *_resolver) const { auto _o = std::unique_ptr(new TestSimpleTableWithEnumT()); UnPackTo(_o.get(), _resolver); return _o.release(); } -inline void TestSimpleTableWithEnum::UnPackTo(TestSimpleTableWithEnumT *_o, const flatbuffers::resolver_function_t *_resolver) const { +inline void TestSimpleTableWithEnum::UnPackTo(TestSimpleTableWithEnumT *_o, const ::flatbuffers::resolver_function_t *_resolver) const { (void)_o; (void)_resolver; { auto _e = color(); _o->color = _e; } } -inline flatbuffers::Offset TestSimpleTableWithEnum::Pack(flatbuffers::FlatBufferBuilder &_fbb, const TestSimpleTableWithEnumT* _o, const flatbuffers::rehasher_function_t *_rehasher) { +inline ::flatbuffers::Offset TestSimpleTableWithEnum::Pack(::flatbuffers::FlatBufferBuilder &_fbb, const TestSimpleTableWithEnumT* _o, const ::flatbuffers::rehasher_function_t *_rehasher) { return CreateTestSimpleTableWithEnum(_fbb, _o, _rehasher); } -inline flatbuffers::Offset CreateTestSimpleTableWithEnum(flatbuffers::FlatBufferBuilder &_fbb, const TestSimpleTableWithEnumT *_o, const flatbuffers::rehasher_function_t *_rehasher) { +inline ::flatbuffers::Offset CreateTestSimpleTableWithEnum(::flatbuffers::FlatBufferBuilder &_fbb, const TestSimpleTableWithEnumT *_o, const ::flatbuffers::rehasher_function_t *_rehasher) { (void)_rehasher; (void)_o; - struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const TestSimpleTableWithEnumT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; + struct _VectorArgs { ::flatbuffers::FlatBufferBuilder *__fbb; const TestSimpleTableWithEnumT* __o; const ::flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; auto _color = _o->color; return MyGame::Example::CreateTestSimpleTableWithEnum( _fbb, @@ -2774,13 +2774,13 @@ inline bool operator!=(const StatT &lhs, const StatT &rhs) { } -inline StatT *Stat::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +inline StatT *Stat::UnPack(const ::flatbuffers::resolver_function_t *_resolver) const { auto _o = std::unique_ptr(new StatT()); UnPackTo(_o.get(), _resolver); return _o.release(); } -inline void Stat::UnPackTo(StatT *_o, const flatbuffers::resolver_function_t *_resolver) const { +inline void Stat::UnPackTo(StatT *_o, const ::flatbuffers::resolver_function_t *_resolver) const { (void)_o; (void)_resolver; { auto _e = id(); if (_e) _o->id = _e->str(); } @@ -2788,14 +2788,14 @@ inline void Stat::UnPackTo(StatT *_o, const flatbuffers::resolver_function_t *_r { auto _e = count(); _o->count = _e; } } -inline flatbuffers::Offset Stat::Pack(flatbuffers::FlatBufferBuilder &_fbb, const StatT* _o, const flatbuffers::rehasher_function_t *_rehasher) { +inline ::flatbuffers::Offset Stat::Pack(::flatbuffers::FlatBufferBuilder &_fbb, const StatT* _o, const ::flatbuffers::rehasher_function_t *_rehasher) { return CreateStat(_fbb, _o, _rehasher); } -inline flatbuffers::Offset CreateStat(flatbuffers::FlatBufferBuilder &_fbb, const StatT *_o, const flatbuffers::rehasher_function_t *_rehasher) { +inline ::flatbuffers::Offset CreateStat(::flatbuffers::FlatBufferBuilder &_fbb, const StatT *_o, const ::flatbuffers::rehasher_function_t *_rehasher) { (void)_rehasher; (void)_o; - struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const StatT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; + struct _VectorArgs { ::flatbuffers::FlatBufferBuilder *__fbb; const StatT* __o; const ::flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; auto _id = _o->id.empty() ? 0 : _fbb.CreateString(_o->id); auto _val = _o->val; auto _count = _o->count; @@ -2817,26 +2817,26 @@ inline bool operator!=(const ReferrableT &lhs, const ReferrableT &rhs) { } -inline ReferrableT *Referrable::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +inline ReferrableT *Referrable::UnPack(const ::flatbuffers::resolver_function_t *_resolver) const { auto _o = std::unique_ptr(new ReferrableT()); UnPackTo(_o.get(), _resolver); return _o.release(); } -inline void Referrable::UnPackTo(ReferrableT *_o, const flatbuffers::resolver_function_t *_resolver) const { +inline void Referrable::UnPackTo(ReferrableT *_o, const ::flatbuffers::resolver_function_t *_resolver) const { (void)_o; (void)_resolver; { auto _e = id(); _o->id = _e; } } -inline flatbuffers::Offset Referrable::Pack(flatbuffers::FlatBufferBuilder &_fbb, const ReferrableT* _o, const flatbuffers::rehasher_function_t *_rehasher) { +inline ::flatbuffers::Offset Referrable::Pack(::flatbuffers::FlatBufferBuilder &_fbb, const ReferrableT* _o, const ::flatbuffers::rehasher_function_t *_rehasher) { return CreateReferrable(_fbb, _o, _rehasher); } -inline flatbuffers::Offset CreateReferrable(flatbuffers::FlatBufferBuilder &_fbb, const ReferrableT *_o, const flatbuffers::rehasher_function_t *_rehasher) { +inline ::flatbuffers::Offset CreateReferrable(::flatbuffers::FlatBufferBuilder &_fbb, const ReferrableT *_o, const ::flatbuffers::rehasher_function_t *_rehasher) { (void)_rehasher; (void)_o; - struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const ReferrableT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; + struct _VectorArgs { ::flatbuffers::FlatBufferBuilder *__fbb; const ReferrableT* __o; const ::flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; auto _id = _o->id; return MyGame::Example::CreateReferrable( _fbb, @@ -3039,13 +3039,13 @@ inline MonsterT &MonsterT::operator=(MonsterT o) FLATBUFFERS_NOEXCEPT { return *this; } -inline MonsterT *Monster::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +inline MonsterT *Monster::UnPack(const ::flatbuffers::resolver_function_t *_resolver) const { auto _o = std::unique_ptr(new MonsterT()); UnPackTo(_o.get(), _resolver); return _o.release(); } -inline void Monster::UnPackTo(MonsterT *_o, const flatbuffers::resolver_function_t *_resolver) const { +inline void Monster::UnPackTo(MonsterT *_o, const ::flatbuffers::resolver_function_t *_resolver) const { (void)_o; (void)_resolver; { auto _e = pos(); if (_e) _o->pos = flatbuffers::unique_ptr(new MyGame::Example::Vec3(*_e)); } @@ -3056,9 +3056,9 @@ inline void Monster::UnPackTo(MonsterT *_o, const flatbuffers::resolver_function { auto _e = color(); _o->color = _e; } { auto _e = test_type(); _o->test.type = _e; } { auto _e = test(); if (_e) _o->test.value = MyGame::Example::AnyUnion::UnPack(_e, test_type(), _resolver); } - { auto _e = test4(); if (_e) { _o->test4.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->test4[_i] = *_e->Get(_i); } } else { _o->test4.resize(0); } } - { auto _e = testarrayofstring(); if (_e) { _o->testarrayofstring.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->testarrayofstring[_i] = _e->Get(_i)->str(); } } else { _o->testarrayofstring.resize(0); } } - { auto _e = testarrayoftables(); if (_e) { _o->testarrayoftables.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { if(_o->testarrayoftables[_i]) { _e->Get(_i)->UnPackTo(_o->testarrayoftables[_i].get(), _resolver); } else { _o->testarrayoftables[_i] = flatbuffers::unique_ptr(_e->Get(_i)->UnPack(_resolver)); }; } } else { _o->testarrayoftables.resize(0); } } + { auto _e = test4(); if (_e) { _o->test4.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->test4[_i] = *_e->Get(_i); } } else { _o->test4.resize(0); } } + { auto _e = testarrayofstring(); if (_e) { _o->testarrayofstring.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->testarrayofstring[_i] = _e->Get(_i)->str(); } } else { _o->testarrayofstring.resize(0); } } + { auto _e = testarrayoftables(); if (_e) { _o->testarrayoftables.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { if(_o->testarrayoftables[_i]) { _e->Get(_i)->UnPackTo(_o->testarrayoftables[_i].get(), _resolver); } else { _o->testarrayoftables[_i] = flatbuffers::unique_ptr(_e->Get(_i)->UnPack(_resolver)); }; } } else { _o->testarrayoftables.resize(0); } } { auto _e = enemy(); if (_e) { if(_o->enemy) { _e->UnPackTo(_o->enemy.get(), _resolver); } else { _o->enemy = flatbuffers::unique_ptr(_e->UnPack(_resolver)); } } else if (_o->enemy) { _o->enemy.reset(); } } { auto _e = testnestedflatbuffer(); if (_e) { _o->testnestedflatbuffer.resize(_e->size()); std::copy(_e->begin(), _e->end(), _o->testnestedflatbuffer.begin()); } } { auto _e = testempty(); if (_e) { if(_o->testempty) { _e->UnPackTo(_o->testempty.get(), _resolver); } else { _o->testempty = flatbuffers::unique_ptr(_e->UnPack(_resolver)); } } else if (_o->testempty) { _o->testempty.reset(); } } @@ -3068,36 +3068,36 @@ inline void Monster::UnPackTo(MonsterT *_o, const flatbuffers::resolver_function { auto _e = testhashs64_fnv1(); _o->testhashs64_fnv1 = _e; } { auto _e = testhashu64_fnv1(); _o->testhashu64_fnv1 = _e; } { auto _e = testhashs32_fnv1a(); _o->testhashs32_fnv1a = _e; } - { auto _e = testhashu32_fnv1a(); /*scalar resolver, naked*/ if (_resolver) (*_resolver)(reinterpret_cast(&_o->testhashu32_fnv1a), static_cast(_e)); else _o->testhashu32_fnv1a = nullptr; } + { auto _e = testhashu32_fnv1a(); /*scalar resolver, naked*/ if (_resolver) (*_resolver)(reinterpret_cast(&_o->testhashu32_fnv1a), static_cast<::flatbuffers::hash_value_t>(_e)); else _o->testhashu32_fnv1a = nullptr; } { auto _e = testhashs64_fnv1a(); _o->testhashs64_fnv1a = _e; } { auto _e = testhashu64_fnv1a(); _o->testhashu64_fnv1a = _e; } - { auto _e = testarrayofbools(); if (_e) { _o->testarrayofbools.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->testarrayofbools[_i] = _e->Get(_i) != 0; } } else { _o->testarrayofbools.resize(0); } } + { auto _e = testarrayofbools(); if (_e) { _o->testarrayofbools.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->testarrayofbools[_i] = _e->Get(_i) != 0; } } else { _o->testarrayofbools.resize(0); } } { auto _e = testf(); _o->testf = _e; } { auto _e = testf2(); _o->testf2 = _e; } { auto _e = testf3(); _o->testf3 = _e; } - { auto _e = testarrayofstring2(); if (_e) { _o->testarrayofstring2.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->testarrayofstring2[_i] = _e->Get(_i)->str(); } } else { _o->testarrayofstring2.resize(0); } } - { auto _e = testarrayofsortedstruct(); if (_e) { _o->testarrayofsortedstruct.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->testarrayofsortedstruct[_i] = *_e->Get(_i); } } else { _o->testarrayofsortedstruct.resize(0); } } + { auto _e = testarrayofstring2(); if (_e) { _o->testarrayofstring2.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->testarrayofstring2[_i] = _e->Get(_i)->str(); } } else { _o->testarrayofstring2.resize(0); } } + { auto _e = testarrayofsortedstruct(); if (_e) { _o->testarrayofsortedstruct.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->testarrayofsortedstruct[_i] = *_e->Get(_i); } } else { _o->testarrayofsortedstruct.resize(0); } } { auto _e = flex(); if (_e) { _o->flex.resize(_e->size()); std::copy(_e->begin(), _e->end(), _o->flex.begin()); } } - { auto _e = test5(); if (_e) { _o->test5.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->test5[_i] = *_e->Get(_i); } } else { _o->test5.resize(0); } } - { auto _e = vector_of_longs(); if (_e) { _o->vector_of_longs.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->vector_of_longs[_i] = _e->Get(_i); } } else { _o->vector_of_longs.resize(0); } } - { auto _e = vector_of_doubles(); if (_e) { _o->vector_of_doubles.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->vector_of_doubles[_i] = _e->Get(_i); } } else { _o->vector_of_doubles.resize(0); } } + { auto _e = test5(); if (_e) { _o->test5.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->test5[_i] = *_e->Get(_i); } } else { _o->test5.resize(0); } } + { auto _e = vector_of_longs(); if (_e) { _o->vector_of_longs.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->vector_of_longs[_i] = _e->Get(_i); } } else { _o->vector_of_longs.resize(0); } } + { auto _e = vector_of_doubles(); if (_e) { _o->vector_of_doubles.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->vector_of_doubles[_i] = _e->Get(_i); } } else { _o->vector_of_doubles.resize(0); } } { auto _e = parent_namespace_test(); if (_e) { if(_o->parent_namespace_test) { _e->UnPackTo(_o->parent_namespace_test.get(), _resolver); } else { _o->parent_namespace_test = flatbuffers::unique_ptr(_e->UnPack(_resolver)); } } else if (_o->parent_namespace_test) { _o->parent_namespace_test.reset(); } } - { auto _e = vector_of_referrables(); if (_e) { _o->vector_of_referrables.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { if(_o->vector_of_referrables[_i]) { _e->Get(_i)->UnPackTo(_o->vector_of_referrables[_i].get(), _resolver); } else { _o->vector_of_referrables[_i] = flatbuffers::unique_ptr(_e->Get(_i)->UnPack(_resolver)); }; } } else { _o->vector_of_referrables.resize(0); } } - { auto _e = single_weak_reference(); /*scalar resolver, naked*/ if (_resolver) (*_resolver)(reinterpret_cast(&_o->single_weak_reference), static_cast(_e)); else _o->single_weak_reference = nullptr; } - { auto _e = vector_of_weak_references(); if (_e) { _o->vector_of_weak_references.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { /*vector resolver, naked*/ if (_resolver) (*_resolver)(reinterpret_cast(&_o->vector_of_weak_references[_i]), static_cast(_e->Get(_i))); else _o->vector_of_weak_references[_i] = nullptr; } } else { _o->vector_of_weak_references.resize(0); } } - { auto _e = vector_of_strong_referrables(); if (_e) { _o->vector_of_strong_referrables.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { if(_o->vector_of_strong_referrables[_i]) { _e->Get(_i)->UnPackTo(_o->vector_of_strong_referrables[_i].get(), _resolver); } else { _o->vector_of_strong_referrables[_i] = flatbuffers::unique_ptr(_e->Get(_i)->UnPack(_resolver)); }; } } else { _o->vector_of_strong_referrables.resize(0); } } - { auto _e = co_owning_reference(); /*scalar resolver, naked*/ if (_resolver) (*_resolver)(reinterpret_cast(&_o->co_owning_reference), static_cast(_e)); else _o->co_owning_reference = nullptr; } - { auto _e = vector_of_co_owning_references(); if (_e) { _o->vector_of_co_owning_references.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { /*vector resolver, default_ptr_type*/ if (_resolver) (*_resolver)(reinterpret_cast(&_o->vector_of_co_owning_references[_i]), static_cast(_e->Get(_i)));/* else do nothing */; } } else { _o->vector_of_co_owning_references.resize(0); } } - { auto _e = non_owning_reference(); /*scalar resolver, naked*/ if (_resolver) (*_resolver)(reinterpret_cast(&_o->non_owning_reference), static_cast(_e)); else _o->non_owning_reference = nullptr; } - { auto _e = vector_of_non_owning_references(); if (_e) { _o->vector_of_non_owning_references.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { /*vector resolver, naked*/ if (_resolver) (*_resolver)(reinterpret_cast(&_o->vector_of_non_owning_references[_i]), static_cast(_e->Get(_i))); else _o->vector_of_non_owning_references[_i] = nullptr; } } else { _o->vector_of_non_owning_references.resize(0); } } + { auto _e = vector_of_referrables(); if (_e) { _o->vector_of_referrables.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { if(_o->vector_of_referrables[_i]) { _e->Get(_i)->UnPackTo(_o->vector_of_referrables[_i].get(), _resolver); } else { _o->vector_of_referrables[_i] = flatbuffers::unique_ptr(_e->Get(_i)->UnPack(_resolver)); }; } } else { _o->vector_of_referrables.resize(0); } } + { auto _e = single_weak_reference(); /*scalar resolver, naked*/ if (_resolver) (*_resolver)(reinterpret_cast(&_o->single_weak_reference), static_cast<::flatbuffers::hash_value_t>(_e)); else _o->single_weak_reference = nullptr; } + { auto _e = vector_of_weak_references(); if (_e) { _o->vector_of_weak_references.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { /*vector resolver, naked*/ if (_resolver) (*_resolver)(reinterpret_cast(&_o->vector_of_weak_references[_i]), static_cast<::flatbuffers::hash_value_t>(_e->Get(_i))); else _o->vector_of_weak_references[_i] = nullptr; } } else { _o->vector_of_weak_references.resize(0); } } + { auto _e = vector_of_strong_referrables(); if (_e) { _o->vector_of_strong_referrables.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { if(_o->vector_of_strong_referrables[_i]) { _e->Get(_i)->UnPackTo(_o->vector_of_strong_referrables[_i].get(), _resolver); } else { _o->vector_of_strong_referrables[_i] = flatbuffers::unique_ptr(_e->Get(_i)->UnPack(_resolver)); }; } } else { _o->vector_of_strong_referrables.resize(0); } } + { auto _e = co_owning_reference(); /*scalar resolver, naked*/ if (_resolver) (*_resolver)(reinterpret_cast(&_o->co_owning_reference), static_cast<::flatbuffers::hash_value_t>(_e)); else _o->co_owning_reference = nullptr; } + { auto _e = vector_of_co_owning_references(); if (_e) { _o->vector_of_co_owning_references.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { /*vector resolver, default_ptr_type*/ if (_resolver) (*_resolver)(reinterpret_cast(&_o->vector_of_co_owning_references[_i]), static_cast<::flatbuffers::hash_value_t>(_e->Get(_i)));/* else do nothing */; } } else { _o->vector_of_co_owning_references.resize(0); } } + { auto _e = non_owning_reference(); /*scalar resolver, naked*/ if (_resolver) (*_resolver)(reinterpret_cast(&_o->non_owning_reference), static_cast<::flatbuffers::hash_value_t>(_e)); else _o->non_owning_reference = nullptr; } + { auto _e = vector_of_non_owning_references(); if (_e) { _o->vector_of_non_owning_references.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { /*vector resolver, naked*/ if (_resolver) (*_resolver)(reinterpret_cast(&_o->vector_of_non_owning_references[_i]), static_cast<::flatbuffers::hash_value_t>(_e->Get(_i))); else _o->vector_of_non_owning_references[_i] = nullptr; } } else { _o->vector_of_non_owning_references.resize(0); } } { auto _e = any_unique_type(); _o->any_unique.type = _e; } { auto _e = any_unique(); if (_e) _o->any_unique.value = MyGame::Example::AnyUniqueAliasesUnion::UnPack(_e, any_unique_type(), _resolver); } { auto _e = any_ambiguous_type(); _o->any_ambiguous.type = _e; } { auto _e = any_ambiguous(); if (_e) _o->any_ambiguous.value = MyGame::Example::AnyAmbiguousAliasesUnion::UnPack(_e, any_ambiguous_type(), _resolver); } - { auto _e = vector_of_enums(); if (_e) { _o->vector_of_enums.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->vector_of_enums[_i] = static_cast(_e->Get(_i)); } } else { _o->vector_of_enums.resize(0); } } + { auto _e = vector_of_enums(); if (_e) { _o->vector_of_enums.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->vector_of_enums[_i] = static_cast(_e->Get(_i)); } } else { _o->vector_of_enums.resize(0); } } { auto _e = signed_enum(); _o->signed_enum = _e; } { auto _e = testrequirednestedflatbuffer(); if (_e) { _o->testrequirednestedflatbuffer.resize(_e->size()); std::copy(_e->begin(), _e->end(), _o->testrequirednestedflatbuffer.begin()); } } - { auto _e = scalar_key_sorted_tables(); if (_e) { _o->scalar_key_sorted_tables.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { if(_o->scalar_key_sorted_tables[_i]) { _e->Get(_i)->UnPackTo(_o->scalar_key_sorted_tables[_i].get(), _resolver); } else { _o->scalar_key_sorted_tables[_i] = flatbuffers::unique_ptr(_e->Get(_i)->UnPack(_resolver)); }; } } else { _o->scalar_key_sorted_tables.resize(0); } } + { auto _e = scalar_key_sorted_tables(); if (_e) { _o->scalar_key_sorted_tables.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { if(_o->scalar_key_sorted_tables[_i]) { _e->Get(_i)->UnPackTo(_o->scalar_key_sorted_tables[_i].get(), _resolver); } else { _o->scalar_key_sorted_tables[_i] = flatbuffers::unique_ptr(_e->Get(_i)->UnPack(_resolver)); }; } } else { _o->scalar_key_sorted_tables.resize(0); } } { auto _e = native_inline(); if (_e) _o->native_inline = *_e; } { auto _e = long_enum_non_enum_default(); _o->long_enum_non_enum_default = _e; } { auto _e = long_enum_normal_default(); _o->long_enum_normal_default = _e; } @@ -3111,14 +3111,14 @@ inline void Monster::UnPackTo(MonsterT *_o, const flatbuffers::resolver_function { auto _e = double_inf_default(); _o->double_inf_default = _e; } } -inline flatbuffers::Offset Monster::Pack(flatbuffers::FlatBufferBuilder &_fbb, const MonsterT* _o, const flatbuffers::rehasher_function_t *_rehasher) { +inline ::flatbuffers::Offset Monster::Pack(::flatbuffers::FlatBufferBuilder &_fbb, const MonsterT* _o, const ::flatbuffers::rehasher_function_t *_rehasher) { return CreateMonster(_fbb, _o, _rehasher); } -inline flatbuffers::Offset CreateMonster(flatbuffers::FlatBufferBuilder &_fbb, const MonsterT *_o, const flatbuffers::rehasher_function_t *_rehasher) { +inline ::flatbuffers::Offset CreateMonster(::flatbuffers::FlatBufferBuilder &_fbb, const MonsterT *_o, const ::flatbuffers::rehasher_function_t *_rehasher) { (void)_rehasher; (void)_o; - struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const MonsterT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; + struct _VectorArgs { ::flatbuffers::FlatBufferBuilder *__fbb; const MonsterT* __o; const ::flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; auto _pos = _o->pos ? _o->pos.get() : nullptr; auto _mana = _o->mana; auto _hp = _o->hp; @@ -3129,7 +3129,7 @@ inline flatbuffers::Offset CreateMonster(flatbuffers::FlatBufferBuilder auto _test = _o->test.Pack(_fbb); auto _test4 = _o->test4.size() ? _fbb.CreateVectorOfStructs(_o->test4) : 0; auto _testarrayofstring = _o->testarrayofstring.size() ? _fbb.CreateVectorOfStrings(_o->testarrayofstring) : 0; - auto _testarrayoftables = _o->testarrayoftables.size() ? _fbb.CreateVector> (_o->testarrayoftables.size(), [](size_t i, _VectorArgs *__va) { return CreateMonster(*__va->__fbb, __va->__o->testarrayoftables[i].get(), __va->__rehasher); }, &_va ) : 0; + auto _testarrayoftables = _o->testarrayoftables.size() ? _fbb.CreateVector<::flatbuffers::Offset> (_o->testarrayoftables.size(), [](size_t i, _VectorArgs *__va) { return CreateMonster(*__va->__fbb, __va->__o->testarrayoftables[i].get(), __va->__rehasher); }, &_va ) : 0; auto _enemy = _o->enemy ? CreateMonster(_fbb, _o->enemy.get(), _rehasher) : 0; auto _testnestedflatbuffer = _o->testnestedflatbuffer.size() ? _fbb.CreateVector(_o->testnestedflatbuffer) : 0; auto _testempty = _o->testempty ? CreateStat(_fbb, _o->testempty.get(), _rehasher) : 0; @@ -3153,10 +3153,10 @@ inline flatbuffers::Offset CreateMonster(flatbuffers::FlatBufferBuilder auto _vector_of_longs = _o->vector_of_longs.size() ? _fbb.CreateVector(_o->vector_of_longs) : 0; auto _vector_of_doubles = _o->vector_of_doubles.size() ? _fbb.CreateVector(_o->vector_of_doubles) : 0; auto _parent_namespace_test = _o->parent_namespace_test ? CreateInParentNamespace(_fbb, _o->parent_namespace_test.get(), _rehasher) : 0; - auto _vector_of_referrables = _o->vector_of_referrables.size() ? _fbb.CreateVector> (_o->vector_of_referrables.size(), [](size_t i, _VectorArgs *__va) { return CreateReferrable(*__va->__fbb, __va->__o->vector_of_referrables[i].get(), __va->__rehasher); }, &_va ) : 0; + auto _vector_of_referrables = _o->vector_of_referrables.size() ? _fbb.CreateVector<::flatbuffers::Offset> (_o->vector_of_referrables.size(), [](size_t i, _VectorArgs *__va) { return CreateReferrable(*__va->__fbb, __va->__o->vector_of_referrables[i].get(), __va->__rehasher); }, &_va ) : 0; auto _single_weak_reference = _rehasher ? static_cast((*_rehasher)(_o->single_weak_reference)) : 0; auto _vector_of_weak_references = _o->vector_of_weak_references.size() ? _fbb.CreateVector(_o->vector_of_weak_references.size(), [](size_t i, _VectorArgs *__va) { return __va->__rehasher ? static_cast((*__va->__rehasher)(__va->__o->vector_of_weak_references[i])) : 0; }, &_va ) : 0; - auto _vector_of_strong_referrables = _o->vector_of_strong_referrables.size() ? _fbb.CreateVector> (_o->vector_of_strong_referrables.size(), [](size_t i, _VectorArgs *__va) { return CreateReferrable(*__va->__fbb, __va->__o->vector_of_strong_referrables[i].get(), __va->__rehasher); }, &_va ) : 0; + auto _vector_of_strong_referrables = _o->vector_of_strong_referrables.size() ? _fbb.CreateVector<::flatbuffers::Offset> (_o->vector_of_strong_referrables.size(), [](size_t i, _VectorArgs *__va) { return CreateReferrable(*__va->__fbb, __va->__o->vector_of_strong_referrables[i].get(), __va->__rehasher); }, &_va ) : 0; auto _co_owning_reference = _rehasher ? static_cast((*_rehasher)(_o->co_owning_reference)) : 0; auto _vector_of_co_owning_references = _o->vector_of_co_owning_references.size() ? _fbb.CreateVector(_o->vector_of_co_owning_references.size(), [](size_t i, _VectorArgs *__va) { return __va->__rehasher ? static_cast((*__va->__rehasher)(__va->__o->vector_of_co_owning_references[i].get())) : 0; }, &_va ) : 0; auto _non_owning_reference = _rehasher ? static_cast((*_rehasher)(_o->non_owning_reference)) : 0; @@ -3165,10 +3165,10 @@ inline flatbuffers::Offset CreateMonster(flatbuffers::FlatBufferBuilder auto _any_unique = _o->any_unique.Pack(_fbb); auto _any_ambiguous_type = _o->any_ambiguous.type; auto _any_ambiguous = _o->any_ambiguous.Pack(_fbb); - auto _vector_of_enums = _o->vector_of_enums.size() ? _fbb.CreateVectorScalarCast(flatbuffers::data(_o->vector_of_enums), _o->vector_of_enums.size()) : 0; + auto _vector_of_enums = _o->vector_of_enums.size() ? _fbb.CreateVectorScalarCast(::flatbuffers::data(_o->vector_of_enums), _o->vector_of_enums.size()) : 0; auto _signed_enum = _o->signed_enum; auto _testrequirednestedflatbuffer = _o->testrequirednestedflatbuffer.size() ? _fbb.CreateVector(_o->testrequirednestedflatbuffer) : 0; - auto _scalar_key_sorted_tables = _o->scalar_key_sorted_tables.size() ? _fbb.CreateVector> (_o->scalar_key_sorted_tables.size(), [](size_t i, _VectorArgs *__va) { return CreateStat(*__va->__fbb, __va->__o->scalar_key_sorted_tables[i].get(), __va->__rehasher); }, &_va ) : 0; + auto _scalar_key_sorted_tables = _o->scalar_key_sorted_tables.size() ? _fbb.CreateVector<::flatbuffers::Offset> (_o->scalar_key_sorted_tables.size(), [](size_t i, _VectorArgs *__va) { return CreateStat(*__va->__fbb, __va->__o->scalar_key_sorted_tables[i].get(), __va->__rehasher); }, &_va ) : 0; auto _native_inline = &_o->native_inline; auto _long_enum_non_enum_default = _o->long_enum_non_enum_default; auto _long_enum_normal_default = _o->long_enum_normal_default; @@ -3267,13 +3267,13 @@ inline bool operator!=(const TypeAliasesT &lhs, const TypeAliasesT &rhs) { } -inline TypeAliasesT *TypeAliases::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +inline TypeAliasesT *TypeAliases::UnPack(const ::flatbuffers::resolver_function_t *_resolver) const { auto _o = std::unique_ptr(new TypeAliasesT()); UnPackTo(_o.get(), _resolver); return _o.release(); } -inline void TypeAliases::UnPackTo(TypeAliasesT *_o, const flatbuffers::resolver_function_t *_resolver) const { +inline void TypeAliases::UnPackTo(TypeAliasesT *_o, const ::flatbuffers::resolver_function_t *_resolver) const { (void)_o; (void)_resolver; { auto _e = i8(); _o->i8 = _e; } @@ -3287,17 +3287,17 @@ inline void TypeAliases::UnPackTo(TypeAliasesT *_o, const flatbuffers::resolver_ { auto _e = f32(); _o->f32 = _e; } { auto _e = f64(); _o->f64 = _e; } { auto _e = v8(); if (_e) { _o->v8.resize(_e->size()); std::copy(_e->begin(), _e->end(), _o->v8.begin()); } } - { auto _e = vf64(); if (_e) { _o->vf64.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->vf64[_i] = _e->Get(_i); } } else { _o->vf64.resize(0); } } + { auto _e = vf64(); if (_e) { _o->vf64.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->vf64[_i] = _e->Get(_i); } } else { _o->vf64.resize(0); } } } -inline flatbuffers::Offset TypeAliases::Pack(flatbuffers::FlatBufferBuilder &_fbb, const TypeAliasesT* _o, const flatbuffers::rehasher_function_t *_rehasher) { +inline ::flatbuffers::Offset TypeAliases::Pack(::flatbuffers::FlatBufferBuilder &_fbb, const TypeAliasesT* _o, const ::flatbuffers::rehasher_function_t *_rehasher) { return CreateTypeAliases(_fbb, _o, _rehasher); } -inline flatbuffers::Offset CreateTypeAliases(flatbuffers::FlatBufferBuilder &_fbb, const TypeAliasesT *_o, const flatbuffers::rehasher_function_t *_rehasher) { +inline ::flatbuffers::Offset CreateTypeAliases(::flatbuffers::FlatBufferBuilder &_fbb, const TypeAliasesT *_o, const ::flatbuffers::rehasher_function_t *_rehasher) { (void)_rehasher; (void)_o; - struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const TypeAliasesT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; + struct _VectorArgs { ::flatbuffers::FlatBufferBuilder *__fbb; const TypeAliasesT* __o; const ::flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; auto _i8 = _o->i8; auto _u8 = _o->u8; auto _i16 = _o->i16; @@ -3326,7 +3326,7 @@ inline flatbuffers::Offset CreateTypeAliases(flatbuffers::FlatBuffe _vf64); } -inline bool VerifyAny(flatbuffers::Verifier &verifier, const void *obj, Any type) { +inline bool VerifyAny(::flatbuffers::Verifier &verifier, const void *obj, Any type) { switch (type) { case Any_NONE: { return true; @@ -3347,10 +3347,10 @@ inline bool VerifyAny(flatbuffers::Verifier &verifier, const void *obj, Any type } } -inline bool VerifyAnyVector(flatbuffers::Verifier &verifier, const flatbuffers::Vector> *values, const flatbuffers::Vector *types) { +inline bool VerifyAnyVector(::flatbuffers::Verifier &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types) { if (!values || !types) return !values && !types; if (values->size() != types->size()) return false; - for (flatbuffers::uoffset_t i = 0; i < values->size(); ++i) { + for (::flatbuffers::uoffset_t i = 0; i < values->size(); ++i) { if (!VerifyAny( verifier, values->Get(i), types->GetEnum(i))) { return false; @@ -3359,7 +3359,7 @@ inline bool VerifyAnyVector(flatbuffers::Verifier &verifier, const flatbuffers:: return true; } -inline void *AnyUnion::UnPack(const void *obj, Any type, const flatbuffers::resolver_function_t *resolver) { +inline void *AnyUnion::UnPack(const void *obj, Any type, const ::flatbuffers::resolver_function_t *resolver) { (void)resolver; switch (type) { case Any_Monster: { @@ -3378,7 +3378,7 @@ inline void *AnyUnion::UnPack(const void *obj, Any type, const flatbuffers::reso } } -inline flatbuffers::Offset AnyUnion::Pack(flatbuffers::FlatBufferBuilder &_fbb, const flatbuffers::rehasher_function_t *_rehasher) const { +inline ::flatbuffers::Offset AnyUnion::Pack(::flatbuffers::FlatBufferBuilder &_fbb, const ::flatbuffers::rehasher_function_t *_rehasher) const { (void)_rehasher; switch (type) { case Any_Monster: { @@ -3439,7 +3439,7 @@ inline void AnyUnion::Reset() { type = Any_NONE; } -inline bool VerifyAnyUniqueAliases(flatbuffers::Verifier &verifier, const void *obj, AnyUniqueAliases type) { +inline bool VerifyAnyUniqueAliases(::flatbuffers::Verifier &verifier, const void *obj, AnyUniqueAliases type) { switch (type) { case AnyUniqueAliases_NONE: { return true; @@ -3460,10 +3460,10 @@ inline bool VerifyAnyUniqueAliases(flatbuffers::Verifier &verifier, const void * } } -inline bool VerifyAnyUniqueAliasesVector(flatbuffers::Verifier &verifier, const flatbuffers::Vector> *values, const flatbuffers::Vector *types) { +inline bool VerifyAnyUniqueAliasesVector(::flatbuffers::Verifier &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types) { if (!values || !types) return !values && !types; if (values->size() != types->size()) return false; - for (flatbuffers::uoffset_t i = 0; i < values->size(); ++i) { + for (::flatbuffers::uoffset_t i = 0; i < values->size(); ++i) { if (!VerifyAnyUniqueAliases( verifier, values->Get(i), types->GetEnum(i))) { return false; @@ -3472,7 +3472,7 @@ inline bool VerifyAnyUniqueAliasesVector(flatbuffers::Verifier &verifier, const return true; } -inline void *AnyUniqueAliasesUnion::UnPack(const void *obj, AnyUniqueAliases type, const flatbuffers::resolver_function_t *resolver) { +inline void *AnyUniqueAliasesUnion::UnPack(const void *obj, AnyUniqueAliases type, const ::flatbuffers::resolver_function_t *resolver) { (void)resolver; switch (type) { case AnyUniqueAliases_M: { @@ -3491,7 +3491,7 @@ inline void *AnyUniqueAliasesUnion::UnPack(const void *obj, AnyUniqueAliases typ } } -inline flatbuffers::Offset AnyUniqueAliasesUnion::Pack(flatbuffers::FlatBufferBuilder &_fbb, const flatbuffers::rehasher_function_t *_rehasher) const { +inline ::flatbuffers::Offset AnyUniqueAliasesUnion::Pack(::flatbuffers::FlatBufferBuilder &_fbb, const ::flatbuffers::rehasher_function_t *_rehasher) const { (void)_rehasher; switch (type) { case AnyUniqueAliases_M: { @@ -3552,7 +3552,7 @@ inline void AnyUniqueAliasesUnion::Reset() { type = AnyUniqueAliases_NONE; } -inline bool VerifyAnyAmbiguousAliases(flatbuffers::Verifier &verifier, const void *obj, AnyAmbiguousAliases type) { +inline bool VerifyAnyAmbiguousAliases(::flatbuffers::Verifier &verifier, const void *obj, AnyAmbiguousAliases type) { switch (type) { case AnyAmbiguousAliases_NONE: { return true; @@ -3573,10 +3573,10 @@ inline bool VerifyAnyAmbiguousAliases(flatbuffers::Verifier &verifier, const voi } } -inline bool VerifyAnyAmbiguousAliasesVector(flatbuffers::Verifier &verifier, const flatbuffers::Vector> *values, const flatbuffers::Vector *types) { +inline bool VerifyAnyAmbiguousAliasesVector(::flatbuffers::Verifier &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types) { if (!values || !types) return !values && !types; if (values->size() != types->size()) return false; - for (flatbuffers::uoffset_t i = 0; i < values->size(); ++i) { + for (::flatbuffers::uoffset_t i = 0; i < values->size(); ++i) { if (!VerifyAnyAmbiguousAliases( verifier, values->Get(i), types->GetEnum(i))) { return false; @@ -3585,7 +3585,7 @@ inline bool VerifyAnyAmbiguousAliasesVector(flatbuffers::Verifier &verifier, con return true; } -inline void *AnyAmbiguousAliasesUnion::UnPack(const void *obj, AnyAmbiguousAliases type, const flatbuffers::resolver_function_t *resolver) { +inline void *AnyAmbiguousAliasesUnion::UnPack(const void *obj, AnyAmbiguousAliases type, const ::flatbuffers::resolver_function_t *resolver) { (void)resolver; switch (type) { case AnyAmbiguousAliases_M1: { @@ -3604,7 +3604,7 @@ inline void *AnyAmbiguousAliasesUnion::UnPack(const void *obj, AnyAmbiguousAlias } } -inline flatbuffers::Offset AnyAmbiguousAliasesUnion::Pack(flatbuffers::FlatBufferBuilder &_fbb, const flatbuffers::rehasher_function_t *_rehasher) const { +inline ::flatbuffers::Offset AnyAmbiguousAliasesUnion::Pack(::flatbuffers::FlatBufferBuilder &_fbb, const ::flatbuffers::rehasher_function_t *_rehasher) const { (void)_rehasher; switch (type) { case AnyAmbiguousAliases_M1: { @@ -3665,13 +3665,13 @@ inline void AnyAmbiguousAliasesUnion::Reset() { type = AnyAmbiguousAliases_NONE; } -inline const flatbuffers::TypeTable *ColorTypeTable() { - static const flatbuffers::TypeCode type_codes[] = { - { flatbuffers::ET_UCHAR, 0, 0 }, - { flatbuffers::ET_UCHAR, 0, 0 }, - { flatbuffers::ET_UCHAR, 0, 0 } +inline const ::flatbuffers::TypeTable *ColorTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_UCHAR, 0, 0 }, + { ::flatbuffers::ET_UCHAR, 0, 0 }, + { ::flatbuffers::ET_UCHAR, 0, 0 } }; - static const flatbuffers::TypeFunction type_refs[] = { + static const ::flatbuffers::TypeFunction type_refs[] = { MyGame::Example::ColorTypeTable }; static const int64_t values[] = { 1, 2, 8 }; @@ -3680,20 +3680,20 @@ inline const flatbuffers::TypeTable *ColorTypeTable() { "Green", "Blue" }; - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_ENUM, 3, type_codes, type_refs, nullptr, values, names + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_ENUM, 3, type_codes, type_refs, nullptr, values, names }; return &tt; } -inline const flatbuffers::TypeTable *RaceTypeTable() { - static const flatbuffers::TypeCode type_codes[] = { - { flatbuffers::ET_CHAR, 0, 0 }, - { flatbuffers::ET_CHAR, 0, 0 }, - { flatbuffers::ET_CHAR, 0, 0 }, - { flatbuffers::ET_CHAR, 0, 0 } +inline const ::flatbuffers::TypeTable *RaceTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_CHAR, 0, 0 }, + { ::flatbuffers::ET_CHAR, 0, 0 }, + { ::flatbuffers::ET_CHAR, 0, 0 }, + { ::flatbuffers::ET_CHAR, 0, 0 } }; - static const flatbuffers::TypeFunction type_refs[] = { + static const ::flatbuffers::TypeFunction type_refs[] = { MyGame::Example::RaceTypeTable }; static const int64_t values[] = { -1, 0, 1, 2 }; @@ -3703,19 +3703,19 @@ inline const flatbuffers::TypeTable *RaceTypeTable() { "Dwarf", "Elf" }; - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_ENUM, 4, type_codes, type_refs, nullptr, values, names + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_ENUM, 4, type_codes, type_refs, nullptr, values, names }; return &tt; } -inline const flatbuffers::TypeTable *LongEnumTypeTable() { - static const flatbuffers::TypeCode type_codes[] = { - { flatbuffers::ET_ULONG, 0, 0 }, - { flatbuffers::ET_ULONG, 0, 0 }, - { flatbuffers::ET_ULONG, 0, 0 } +inline const ::flatbuffers::TypeTable *LongEnumTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_ULONG, 0, 0 }, + { ::flatbuffers::ET_ULONG, 0, 0 }, + { ::flatbuffers::ET_ULONG, 0, 0 } }; - static const flatbuffers::TypeFunction type_refs[] = { + static const ::flatbuffers::TypeFunction type_refs[] = { MyGame::Example::LongEnumTypeTable }; static const int64_t values[] = { 2ULL, 4ULL, 1099511627776ULL }; @@ -3724,20 +3724,20 @@ inline const flatbuffers::TypeTable *LongEnumTypeTable() { "LongTwo", "LongBig" }; - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_ENUM, 3, type_codes, type_refs, nullptr, values, names + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_ENUM, 3, type_codes, type_refs, nullptr, values, names }; return &tt; } -inline const flatbuffers::TypeTable *AnyTypeTable() { - static const flatbuffers::TypeCode type_codes[] = { - { flatbuffers::ET_SEQUENCE, 0, -1 }, - { flatbuffers::ET_SEQUENCE, 0, 0 }, - { flatbuffers::ET_SEQUENCE, 0, 1 }, - { flatbuffers::ET_SEQUENCE, 0, 2 } +inline const ::flatbuffers::TypeTable *AnyTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_SEQUENCE, 0, -1 }, + { ::flatbuffers::ET_SEQUENCE, 0, 0 }, + { ::flatbuffers::ET_SEQUENCE, 0, 1 }, + { ::flatbuffers::ET_SEQUENCE, 0, 2 } }; - static const flatbuffers::TypeFunction type_refs[] = { + static const ::flatbuffers::TypeFunction type_refs[] = { MyGame::Example::MonsterTypeTable, MyGame::Example::TestSimpleTableWithEnumTypeTable, MyGame::Example2::MonsterTypeTable @@ -3748,20 +3748,20 @@ inline const flatbuffers::TypeTable *AnyTypeTable() { "TestSimpleTableWithEnum", "MyGame_Example2_Monster" }; - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_UNION, 4, type_codes, type_refs, nullptr, nullptr, names + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_UNION, 4, type_codes, type_refs, nullptr, nullptr, names }; return &tt; } -inline const flatbuffers::TypeTable *AnyUniqueAliasesTypeTable() { - static const flatbuffers::TypeCode type_codes[] = { - { flatbuffers::ET_SEQUENCE, 0, -1 }, - { flatbuffers::ET_SEQUENCE, 0, 0 }, - { flatbuffers::ET_SEQUENCE, 0, 1 }, - { flatbuffers::ET_SEQUENCE, 0, 2 } +inline const ::flatbuffers::TypeTable *AnyUniqueAliasesTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_SEQUENCE, 0, -1 }, + { ::flatbuffers::ET_SEQUENCE, 0, 0 }, + { ::flatbuffers::ET_SEQUENCE, 0, 1 }, + { ::flatbuffers::ET_SEQUENCE, 0, 2 } }; - static const flatbuffers::TypeFunction type_refs[] = { + static const ::flatbuffers::TypeFunction type_refs[] = { MyGame::Example::MonsterTypeTable, MyGame::Example::TestSimpleTableWithEnumTypeTable, MyGame::Example2::MonsterTypeTable @@ -3772,20 +3772,20 @@ inline const flatbuffers::TypeTable *AnyUniqueAliasesTypeTable() { "TS", "M2" }; - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_UNION, 4, type_codes, type_refs, nullptr, nullptr, names + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_UNION, 4, type_codes, type_refs, nullptr, nullptr, names }; return &tt; } -inline const flatbuffers::TypeTable *AnyAmbiguousAliasesTypeTable() { - static const flatbuffers::TypeCode type_codes[] = { - { flatbuffers::ET_SEQUENCE, 0, -1 }, - { flatbuffers::ET_SEQUENCE, 0, 0 }, - { flatbuffers::ET_SEQUENCE, 0, 0 }, - { flatbuffers::ET_SEQUENCE, 0, 0 } +inline const ::flatbuffers::TypeTable *AnyAmbiguousAliasesTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_SEQUENCE, 0, -1 }, + { ::flatbuffers::ET_SEQUENCE, 0, 0 }, + { ::flatbuffers::ET_SEQUENCE, 0, 0 }, + { ::flatbuffers::ET_SEQUENCE, 0, 0 } }; - static const flatbuffers::TypeFunction type_refs[] = { + static const ::flatbuffers::TypeFunction type_refs[] = { MyGame::Example::MonsterTypeTable }; static const char * const names[] = { @@ -3794,26 +3794,26 @@ inline const flatbuffers::TypeTable *AnyAmbiguousAliasesTypeTable() { "M2", "M3" }; - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_UNION, 4, type_codes, type_refs, nullptr, nullptr, names + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_UNION, 4, type_codes, type_refs, nullptr, nullptr, names }; return &tt; } } // namespace Example -inline const flatbuffers::TypeTable *InParentNamespaceTypeTable() { - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_TABLE, 0, nullptr, nullptr, nullptr, nullptr, nullptr +inline const ::flatbuffers::TypeTable *InParentNamespaceTypeTable() { + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_TABLE, 0, nullptr, nullptr, nullptr, nullptr, nullptr }; return &tt; } namespace Example2 { -inline const flatbuffers::TypeTable *MonsterTypeTable() { - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_TABLE, 0, nullptr, nullptr, nullptr, nullptr, nullptr +inline const ::flatbuffers::TypeTable *MonsterTypeTable() { + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_TABLE, 0, nullptr, nullptr, nullptr, nullptr, nullptr }; return &tt; } @@ -3822,48 +3822,48 @@ inline const flatbuffers::TypeTable *MonsterTypeTable() { namespace Example { -inline const flatbuffers::TypeTable *TestTypeTable() { - static const flatbuffers::TypeCode type_codes[] = { - { flatbuffers::ET_SHORT, 0, -1 }, - { flatbuffers::ET_CHAR, 0, -1 } +inline const ::flatbuffers::TypeTable *TestTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_SHORT, 0, -1 }, + { ::flatbuffers::ET_CHAR, 0, -1 } }; static const int64_t values[] = { 0, 2, 4 }; static const char * const names[] = { "a", "b" }; - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_STRUCT, 2, type_codes, nullptr, nullptr, values, names + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_STRUCT, 2, type_codes, nullptr, nullptr, values, names }; return &tt; } -inline const flatbuffers::TypeTable *TestSimpleTableWithEnumTypeTable() { - static const flatbuffers::TypeCode type_codes[] = { - { flatbuffers::ET_UCHAR, 0, 0 } +inline const ::flatbuffers::TypeTable *TestSimpleTableWithEnumTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_UCHAR, 0, 0 } }; - static const flatbuffers::TypeFunction type_refs[] = { + static const ::flatbuffers::TypeFunction type_refs[] = { MyGame::Example::ColorTypeTable }; static const char * const names[] = { "color" }; - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_TABLE, 1, type_codes, type_refs, nullptr, nullptr, names + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_TABLE, 1, type_codes, type_refs, nullptr, nullptr, names }; return &tt; } -inline const flatbuffers::TypeTable *Vec3TypeTable() { - static const flatbuffers::TypeCode type_codes[] = { - { flatbuffers::ET_FLOAT, 0, -1 }, - { flatbuffers::ET_FLOAT, 0, -1 }, - { flatbuffers::ET_FLOAT, 0, -1 }, - { flatbuffers::ET_DOUBLE, 0, -1 }, - { flatbuffers::ET_UCHAR, 0, 0 }, - { flatbuffers::ET_SEQUENCE, 0, 1 } +inline const ::flatbuffers::TypeTable *Vec3TypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_FLOAT, 0, -1 }, + { ::flatbuffers::ET_FLOAT, 0, -1 }, + { ::flatbuffers::ET_FLOAT, 0, -1 }, + { ::flatbuffers::ET_DOUBLE, 0, -1 }, + { ::flatbuffers::ET_UCHAR, 0, 0 }, + { ::flatbuffers::ET_SEQUENCE, 0, 1 } }; - static const flatbuffers::TypeFunction type_refs[] = { + static const ::flatbuffers::TypeFunction type_refs[] = { MyGame::Example::ColorTypeTable, MyGame::Example::TestTypeTable }; @@ -3876,35 +3876,35 @@ inline const flatbuffers::TypeTable *Vec3TypeTable() { "test2", "test3" }; - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_STRUCT, 6, type_codes, type_refs, nullptr, values, names + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_STRUCT, 6, type_codes, type_refs, nullptr, values, names }; return &tt; } -inline const flatbuffers::TypeTable *AbilityTypeTable() { - static const flatbuffers::TypeCode type_codes[] = { - { flatbuffers::ET_UINT, 0, -1 }, - { flatbuffers::ET_UINT, 0, -1 } +inline const ::flatbuffers::TypeTable *AbilityTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_UINT, 0, -1 }, + { ::flatbuffers::ET_UINT, 0, -1 } }; static const int64_t values[] = { 0, 4, 8 }; static const char * const names[] = { "id", "distance" }; - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_STRUCT, 2, type_codes, nullptr, nullptr, values, names + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_STRUCT, 2, type_codes, nullptr, nullptr, values, names }; return &tt; } -inline const flatbuffers::TypeTable *StructOfStructsTypeTable() { - static const flatbuffers::TypeCode type_codes[] = { - { flatbuffers::ET_SEQUENCE, 0, 0 }, - { flatbuffers::ET_SEQUENCE, 0, 1 }, - { flatbuffers::ET_SEQUENCE, 0, 0 } +inline const ::flatbuffers::TypeTable *StructOfStructsTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_SEQUENCE, 0, 0 }, + { ::flatbuffers::ET_SEQUENCE, 0, 1 }, + { ::flatbuffers::ET_SEQUENCE, 0, 0 } }; - static const flatbuffers::TypeFunction type_refs[] = { + static const ::flatbuffers::TypeFunction type_refs[] = { MyGame::Example::AbilityTypeTable, MyGame::Example::TestTypeTable }; @@ -3914,125 +3914,125 @@ inline const flatbuffers::TypeTable *StructOfStructsTypeTable() { "b", "c" }; - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_STRUCT, 3, type_codes, type_refs, nullptr, values, names + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_STRUCT, 3, type_codes, type_refs, nullptr, values, names }; return &tt; } -inline const flatbuffers::TypeTable *StructOfStructsOfStructsTypeTable() { - static const flatbuffers::TypeCode type_codes[] = { - { flatbuffers::ET_SEQUENCE, 0, 0 } +inline const ::flatbuffers::TypeTable *StructOfStructsOfStructsTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_SEQUENCE, 0, 0 } }; - static const flatbuffers::TypeFunction type_refs[] = { + static const ::flatbuffers::TypeFunction type_refs[] = { MyGame::Example::StructOfStructsTypeTable }; static const int64_t values[] = { 0, 20 }; static const char * const names[] = { "a" }; - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_STRUCT, 1, type_codes, type_refs, nullptr, values, names + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_STRUCT, 1, type_codes, type_refs, nullptr, values, names }; return &tt; } -inline const flatbuffers::TypeTable *StatTypeTable() { - static const flatbuffers::TypeCode type_codes[] = { - { flatbuffers::ET_STRING, 0, -1 }, - { flatbuffers::ET_LONG, 0, -1 }, - { flatbuffers::ET_USHORT, 0, -1 } +inline const ::flatbuffers::TypeTable *StatTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_STRING, 0, -1 }, + { ::flatbuffers::ET_LONG, 0, -1 }, + { ::flatbuffers::ET_USHORT, 0, -1 } }; static const char * const names[] = { "id", "val", "count" }; - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_TABLE, 3, type_codes, nullptr, nullptr, nullptr, names + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_TABLE, 3, type_codes, nullptr, nullptr, nullptr, names }; return &tt; } -inline const flatbuffers::TypeTable *ReferrableTypeTable() { - static const flatbuffers::TypeCode type_codes[] = { - { flatbuffers::ET_ULONG, 0, -1 } +inline const ::flatbuffers::TypeTable *ReferrableTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_ULONG, 0, -1 } }; static const char * const names[] = { "id" }; - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_TABLE, 1, type_codes, nullptr, nullptr, nullptr, names + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_TABLE, 1, type_codes, nullptr, nullptr, nullptr, names }; return &tt; } -inline const flatbuffers::TypeTable *MonsterTypeTable() { - static const flatbuffers::TypeCode type_codes[] = { - { flatbuffers::ET_SEQUENCE, 0, 0 }, - { flatbuffers::ET_SHORT, 0, -1 }, - { flatbuffers::ET_SHORT, 0, -1 }, - { flatbuffers::ET_STRING, 0, -1 }, - { flatbuffers::ET_BOOL, 0, -1 }, - { flatbuffers::ET_UCHAR, 1, -1 }, - { flatbuffers::ET_UCHAR, 0, 1 }, - { flatbuffers::ET_UTYPE, 0, 2 }, - { flatbuffers::ET_SEQUENCE, 0, 2 }, - { flatbuffers::ET_SEQUENCE, 1, 3 }, - { flatbuffers::ET_STRING, 1, -1 }, - { flatbuffers::ET_SEQUENCE, 1, 4 }, - { flatbuffers::ET_SEQUENCE, 0, 4 }, - { flatbuffers::ET_UCHAR, 1, -1 }, - { flatbuffers::ET_SEQUENCE, 0, 5 }, - { flatbuffers::ET_BOOL, 0, -1 }, - { flatbuffers::ET_INT, 0, -1 }, - { flatbuffers::ET_UINT, 0, -1 }, - { flatbuffers::ET_LONG, 0, -1 }, - { flatbuffers::ET_ULONG, 0, -1 }, - { flatbuffers::ET_INT, 0, -1 }, - { flatbuffers::ET_UINT, 0, -1 }, - { flatbuffers::ET_LONG, 0, -1 }, - { flatbuffers::ET_ULONG, 0, -1 }, - { flatbuffers::ET_BOOL, 1, -1 }, - { flatbuffers::ET_FLOAT, 0, -1 }, - { flatbuffers::ET_FLOAT, 0, -1 }, - { flatbuffers::ET_FLOAT, 0, -1 }, - { flatbuffers::ET_STRING, 1, -1 }, - { flatbuffers::ET_SEQUENCE, 1, 6 }, - { flatbuffers::ET_UCHAR, 1, -1 }, - { flatbuffers::ET_SEQUENCE, 1, 3 }, - { flatbuffers::ET_LONG, 1, -1 }, - { flatbuffers::ET_DOUBLE, 1, -1 }, - { flatbuffers::ET_SEQUENCE, 0, 7 }, - { flatbuffers::ET_SEQUENCE, 1, 8 }, - { flatbuffers::ET_ULONG, 0, -1 }, - { flatbuffers::ET_ULONG, 1, -1 }, - { flatbuffers::ET_SEQUENCE, 1, 8 }, - { flatbuffers::ET_ULONG, 0, -1 }, - { flatbuffers::ET_ULONG, 1, -1 }, - { flatbuffers::ET_ULONG, 0, -1 }, - { flatbuffers::ET_ULONG, 1, -1 }, - { flatbuffers::ET_UTYPE, 0, 9 }, - { flatbuffers::ET_SEQUENCE, 0, 9 }, - { flatbuffers::ET_UTYPE, 0, 10 }, - { flatbuffers::ET_SEQUENCE, 0, 10 }, - { flatbuffers::ET_UCHAR, 1, 1 }, - { flatbuffers::ET_CHAR, 0, 11 }, - { flatbuffers::ET_UCHAR, 1, -1 }, - { flatbuffers::ET_SEQUENCE, 1, 5 }, - { flatbuffers::ET_SEQUENCE, 0, 3 }, - { flatbuffers::ET_ULONG, 0, 12 }, - { flatbuffers::ET_ULONG, 0, 12 }, - { flatbuffers::ET_FLOAT, 0, -1 }, - { flatbuffers::ET_FLOAT, 0, -1 }, - { flatbuffers::ET_FLOAT, 0, -1 }, - { flatbuffers::ET_FLOAT, 0, -1 }, - { flatbuffers::ET_FLOAT, 0, -1 }, - { flatbuffers::ET_FLOAT, 0, -1 }, - { flatbuffers::ET_FLOAT, 0, -1 }, - { flatbuffers::ET_DOUBLE, 0, -1 } +inline const ::flatbuffers::TypeTable *MonsterTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_SEQUENCE, 0, 0 }, + { ::flatbuffers::ET_SHORT, 0, -1 }, + { ::flatbuffers::ET_SHORT, 0, -1 }, + { ::flatbuffers::ET_STRING, 0, -1 }, + { ::flatbuffers::ET_BOOL, 0, -1 }, + { ::flatbuffers::ET_UCHAR, 1, -1 }, + { ::flatbuffers::ET_UCHAR, 0, 1 }, + { ::flatbuffers::ET_UTYPE, 0, 2 }, + { ::flatbuffers::ET_SEQUENCE, 0, 2 }, + { ::flatbuffers::ET_SEQUENCE, 1, 3 }, + { ::flatbuffers::ET_STRING, 1, -1 }, + { ::flatbuffers::ET_SEQUENCE, 1, 4 }, + { ::flatbuffers::ET_SEQUENCE, 0, 4 }, + { ::flatbuffers::ET_UCHAR, 1, -1 }, + { ::flatbuffers::ET_SEQUENCE, 0, 5 }, + { ::flatbuffers::ET_BOOL, 0, -1 }, + { ::flatbuffers::ET_INT, 0, -1 }, + { ::flatbuffers::ET_UINT, 0, -1 }, + { ::flatbuffers::ET_LONG, 0, -1 }, + { ::flatbuffers::ET_ULONG, 0, -1 }, + { ::flatbuffers::ET_INT, 0, -1 }, + { ::flatbuffers::ET_UINT, 0, -1 }, + { ::flatbuffers::ET_LONG, 0, -1 }, + { ::flatbuffers::ET_ULONG, 0, -1 }, + { ::flatbuffers::ET_BOOL, 1, -1 }, + { ::flatbuffers::ET_FLOAT, 0, -1 }, + { ::flatbuffers::ET_FLOAT, 0, -1 }, + { ::flatbuffers::ET_FLOAT, 0, -1 }, + { ::flatbuffers::ET_STRING, 1, -1 }, + { ::flatbuffers::ET_SEQUENCE, 1, 6 }, + { ::flatbuffers::ET_UCHAR, 1, -1 }, + { ::flatbuffers::ET_SEQUENCE, 1, 3 }, + { ::flatbuffers::ET_LONG, 1, -1 }, + { ::flatbuffers::ET_DOUBLE, 1, -1 }, + { ::flatbuffers::ET_SEQUENCE, 0, 7 }, + { ::flatbuffers::ET_SEQUENCE, 1, 8 }, + { ::flatbuffers::ET_ULONG, 0, -1 }, + { ::flatbuffers::ET_ULONG, 1, -1 }, + { ::flatbuffers::ET_SEQUENCE, 1, 8 }, + { ::flatbuffers::ET_ULONG, 0, -1 }, + { ::flatbuffers::ET_ULONG, 1, -1 }, + { ::flatbuffers::ET_ULONG, 0, -1 }, + { ::flatbuffers::ET_ULONG, 1, -1 }, + { ::flatbuffers::ET_UTYPE, 0, 9 }, + { ::flatbuffers::ET_SEQUENCE, 0, 9 }, + { ::flatbuffers::ET_UTYPE, 0, 10 }, + { ::flatbuffers::ET_SEQUENCE, 0, 10 }, + { ::flatbuffers::ET_UCHAR, 1, 1 }, + { ::flatbuffers::ET_CHAR, 0, 11 }, + { ::flatbuffers::ET_UCHAR, 1, -1 }, + { ::flatbuffers::ET_SEQUENCE, 1, 5 }, + { ::flatbuffers::ET_SEQUENCE, 0, 3 }, + { ::flatbuffers::ET_ULONG, 0, 12 }, + { ::flatbuffers::ET_ULONG, 0, 12 }, + { ::flatbuffers::ET_FLOAT, 0, -1 }, + { ::flatbuffers::ET_FLOAT, 0, -1 }, + { ::flatbuffers::ET_FLOAT, 0, -1 }, + { ::flatbuffers::ET_FLOAT, 0, -1 }, + { ::flatbuffers::ET_FLOAT, 0, -1 }, + { ::flatbuffers::ET_FLOAT, 0, -1 }, + { ::flatbuffers::ET_FLOAT, 0, -1 }, + { ::flatbuffers::ET_DOUBLE, 0, -1 } }; - static const flatbuffers::TypeFunction type_refs[] = { + static const ::flatbuffers::TypeFunction type_refs[] = { MyGame::Example::Vec3TypeTable, MyGame::Example::ColorTypeTable, MyGame::Example::AnyTypeTable, @@ -4111,26 +4111,26 @@ inline const flatbuffers::TypeTable *MonsterTypeTable() { "negative_infinity_default", "double_inf_default" }; - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_TABLE, 62, type_codes, type_refs, nullptr, nullptr, names + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_TABLE, 62, type_codes, type_refs, nullptr, nullptr, names }; return &tt; } -inline const flatbuffers::TypeTable *TypeAliasesTypeTable() { - static const flatbuffers::TypeCode type_codes[] = { - { flatbuffers::ET_CHAR, 0, -1 }, - { flatbuffers::ET_UCHAR, 0, -1 }, - { flatbuffers::ET_SHORT, 0, -1 }, - { flatbuffers::ET_USHORT, 0, -1 }, - { flatbuffers::ET_INT, 0, -1 }, - { flatbuffers::ET_UINT, 0, -1 }, - { flatbuffers::ET_LONG, 0, -1 }, - { flatbuffers::ET_ULONG, 0, -1 }, - { flatbuffers::ET_FLOAT, 0, -1 }, - { flatbuffers::ET_DOUBLE, 0, -1 }, - { flatbuffers::ET_CHAR, 1, -1 }, - { flatbuffers::ET_DOUBLE, 1, -1 } +inline const ::flatbuffers::TypeTable *TypeAliasesTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_CHAR, 0, -1 }, + { ::flatbuffers::ET_UCHAR, 0, -1 }, + { ::flatbuffers::ET_SHORT, 0, -1 }, + { ::flatbuffers::ET_USHORT, 0, -1 }, + { ::flatbuffers::ET_INT, 0, -1 }, + { ::flatbuffers::ET_UINT, 0, -1 }, + { ::flatbuffers::ET_LONG, 0, -1 }, + { ::flatbuffers::ET_ULONG, 0, -1 }, + { ::flatbuffers::ET_FLOAT, 0, -1 }, + { ::flatbuffers::ET_DOUBLE, 0, -1 }, + { ::flatbuffers::ET_CHAR, 1, -1 }, + { ::flatbuffers::ET_DOUBLE, 1, -1 } }; static const char * const names[] = { "i8", @@ -4146,26 +4146,26 @@ inline const flatbuffers::TypeTable *TypeAliasesTypeTable() { "v8", "vf64" }; - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_TABLE, 12, type_codes, nullptr, nullptr, nullptr, names + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_TABLE, 12, type_codes, nullptr, nullptr, nullptr, names }; return &tt; } inline const MyGame::Example::Monster *GetMonster(const void *buf) { - return flatbuffers::GetRoot(buf); + return ::flatbuffers::GetRoot(buf); } inline const MyGame::Example::Monster *GetSizePrefixedMonster(const void *buf) { - return flatbuffers::GetSizePrefixedRoot(buf); + return ::flatbuffers::GetSizePrefixedRoot(buf); } inline Monster *GetMutableMonster(void *buf) { - return flatbuffers::GetMutableRoot(buf); + return ::flatbuffers::GetMutableRoot(buf); } inline MyGame::Example::Monster *GetMutableSizePrefixedMonster(void *buf) { - return flatbuffers::GetMutableSizePrefixedRoot(buf); + return ::flatbuffers::GetMutableSizePrefixedRoot(buf); } inline const char *MonsterIdentifier() { @@ -4173,22 +4173,22 @@ inline const char *MonsterIdentifier() { } inline bool MonsterBufferHasIdentifier(const void *buf) { - return flatbuffers::BufferHasIdentifier( + return ::flatbuffers::BufferHasIdentifier( buf, MonsterIdentifier()); } inline bool SizePrefixedMonsterBufferHasIdentifier(const void *buf) { - return flatbuffers::BufferHasIdentifier( + return ::flatbuffers::BufferHasIdentifier( buf, MonsterIdentifier(), true); } inline bool VerifyMonsterBuffer( - flatbuffers::Verifier &verifier) { + ::flatbuffers::Verifier &verifier) { return verifier.VerifyBuffer(MonsterIdentifier()); } inline bool VerifySizePrefixedMonsterBuffer( - flatbuffers::Verifier &verifier) { + ::flatbuffers::Verifier &verifier) { return verifier.VerifySizePrefixedBuffer(MonsterIdentifier()); } @@ -4197,26 +4197,26 @@ inline const char *MonsterExtension() { } inline void FinishMonsterBuffer( - flatbuffers::FlatBufferBuilder &fbb, - flatbuffers::Offset root) { + ::flatbuffers::FlatBufferBuilder &fbb, + ::flatbuffers::Offset root) { fbb.Finish(root, MonsterIdentifier()); } inline void FinishSizePrefixedMonsterBuffer( - flatbuffers::FlatBufferBuilder &fbb, - flatbuffers::Offset root) { + ::flatbuffers::FlatBufferBuilder &fbb, + ::flatbuffers::Offset root) { fbb.FinishSizePrefixed(root, MonsterIdentifier()); } inline flatbuffers::unique_ptr UnPackMonster( const void *buf, - const flatbuffers::resolver_function_t *res = nullptr) { + const ::flatbuffers::resolver_function_t *res = nullptr) { return flatbuffers::unique_ptr(GetMonster(buf)->UnPack(res)); } inline flatbuffers::unique_ptr UnPackSizePrefixedMonster( const void *buf, - const flatbuffers::resolver_function_t *res = nullptr) { + const ::flatbuffers::resolver_function_t *res = nullptr) { return flatbuffers::unique_ptr(GetSizePrefixedMonster(buf)->UnPack(res)); } diff --git a/tests/monster_test_suffix/monster_test_suffix.hpp b/tests/monster_test_suffix/monster_test_suffix.hpp index 9401897ffd..bd32dc3106 100644 --- a/tests/monster_test_suffix/monster_test_suffix.hpp +++ b/tests/monster_test_suffix/monster_test_suffix.hpp @@ -96,35 +96,35 @@ bool operator!=(const TypeAliasesT &lhs, const TypeAliasesT &rhs); } // namespace Example -inline const flatbuffers::TypeTable *InParentNamespaceTypeTable(); +inline const ::flatbuffers::TypeTable *InParentNamespaceTypeTable(); namespace Example2 { -inline const flatbuffers::TypeTable *MonsterTypeTable(); +inline const ::flatbuffers::TypeTable *MonsterTypeTable(); } // namespace Example2 namespace Example { -inline const flatbuffers::TypeTable *TestTypeTable(); +inline const ::flatbuffers::TypeTable *TestTypeTable(); -inline const flatbuffers::TypeTable *TestSimpleTableWithEnumTypeTable(); +inline const ::flatbuffers::TypeTable *TestSimpleTableWithEnumTypeTable(); -inline const flatbuffers::TypeTable *Vec3TypeTable(); +inline const ::flatbuffers::TypeTable *Vec3TypeTable(); -inline const flatbuffers::TypeTable *AbilityTypeTable(); +inline const ::flatbuffers::TypeTable *AbilityTypeTable(); -inline const flatbuffers::TypeTable *StructOfStructsTypeTable(); +inline const ::flatbuffers::TypeTable *StructOfStructsTypeTable(); -inline const flatbuffers::TypeTable *StructOfStructsOfStructsTypeTable(); +inline const ::flatbuffers::TypeTable *StructOfStructsOfStructsTypeTable(); -inline const flatbuffers::TypeTable *StatTypeTable(); +inline const ::flatbuffers::TypeTable *StatTypeTable(); -inline const flatbuffers::TypeTable *ReferrableTypeTable(); +inline const ::flatbuffers::TypeTable *ReferrableTypeTable(); -inline const flatbuffers::TypeTable *MonsterTypeTable(); +inline const ::flatbuffers::TypeTable *MonsterTypeTable(); -inline const flatbuffers::TypeTable *TypeAliasesTypeTable(); +inline const ::flatbuffers::TypeTable *TypeAliasesTypeTable(); /// Composite components of Monster color. enum Color : uint8_t { @@ -163,7 +163,7 @@ inline const char * const *EnumNamesColor() { } inline const char *EnumNameColor(Color e) { - if (flatbuffers::IsOutRange(e, Color_Red, Color_Blue)) return ""; + if (::flatbuffers::IsOutRange(e, Color_Red, Color_Blue)) return ""; const size_t index = static_cast(e) - static_cast(Color_Red); return EnumNamesColor()[index]; } @@ -199,7 +199,7 @@ inline const char * const *EnumNamesRace() { } inline const char *EnumNameRace(Race e) { - if (flatbuffers::IsOutRange(e, Race_None, Race_Elf)) return ""; + if (::flatbuffers::IsOutRange(e, Race_None, Race_Elf)) return ""; const size_t index = static_cast(e) - static_cast(Race_None); return EnumNamesRace()[index]; } @@ -261,7 +261,7 @@ inline const char * const *EnumNamesAny() { } inline const char *EnumNameAny(Any e) { - if (flatbuffers::IsOutRange(e, Any_NONE, Any_MyGame_Example2_Monster)) return ""; + if (::flatbuffers::IsOutRange(e, Any_NONE, Any_MyGame_Example2_Monster)) return ""; const size_t index = static_cast(e); return EnumNamesAny()[index]; } @@ -325,8 +325,8 @@ struct AnyUnion { } } - static void *UnPack(const void *obj, Any type, const flatbuffers::resolver_function_t *resolver); - flatbuffers::Offset Pack(flatbuffers::FlatBufferBuilder &_fbb, const flatbuffers::rehasher_function_t *_rehasher = nullptr) const; + static void *UnPack(const void *obj, Any type, const ::flatbuffers::resolver_function_t *resolver); + ::flatbuffers::Offset Pack(::flatbuffers::FlatBufferBuilder &_fbb, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr) const; MyGame::Example::MonsterT *AsMonster() { return type == Any_Monster ? @@ -383,8 +383,8 @@ inline bool operator!=(const AnyUnion &lhs, const AnyUnion &rhs) { return !(lhs == rhs); } -bool VerifyAny(flatbuffers::Verifier &verifier, const void *obj, Any type); -bool VerifyAnyVector(flatbuffers::Verifier &verifier, const flatbuffers::Vector> *values, const flatbuffers::Vector *types); +bool VerifyAny(::flatbuffers::Verifier &verifier, const void *obj, Any type); +bool VerifyAnyVector(::flatbuffers::Verifier &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types); enum AnyUniqueAliases : uint8_t { AnyUniqueAliases_NONE = 0, @@ -417,7 +417,7 @@ inline const char * const *EnumNamesAnyUniqueAliases() { } inline const char *EnumNameAnyUniqueAliases(AnyUniqueAliases e) { - if (flatbuffers::IsOutRange(e, AnyUniqueAliases_NONE, AnyUniqueAliases_M2)) return ""; + if (::flatbuffers::IsOutRange(e, AnyUniqueAliases_NONE, AnyUniqueAliases_M2)) return ""; const size_t index = static_cast(e); return EnumNamesAnyUniqueAliases()[index]; } @@ -481,8 +481,8 @@ struct AnyUniqueAliasesUnion { } } - static void *UnPack(const void *obj, AnyUniqueAliases type, const flatbuffers::resolver_function_t *resolver); - flatbuffers::Offset Pack(flatbuffers::FlatBufferBuilder &_fbb, const flatbuffers::rehasher_function_t *_rehasher = nullptr) const; + static void *UnPack(const void *obj, AnyUniqueAliases type, const ::flatbuffers::resolver_function_t *resolver); + ::flatbuffers::Offset Pack(::flatbuffers::FlatBufferBuilder &_fbb, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr) const; MyGame::Example::MonsterT *AsM() { return type == AnyUniqueAliases_M ? @@ -539,8 +539,8 @@ inline bool operator!=(const AnyUniqueAliasesUnion &lhs, const AnyUniqueAliasesU return !(lhs == rhs); } -bool VerifyAnyUniqueAliases(flatbuffers::Verifier &verifier, const void *obj, AnyUniqueAliases type); -bool VerifyAnyUniqueAliasesVector(flatbuffers::Verifier &verifier, const flatbuffers::Vector> *values, const flatbuffers::Vector *types); +bool VerifyAnyUniqueAliases(::flatbuffers::Verifier &verifier, const void *obj, AnyUniqueAliases type); +bool VerifyAnyUniqueAliasesVector(::flatbuffers::Verifier &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types); enum AnyAmbiguousAliases : uint8_t { AnyAmbiguousAliases_NONE = 0, @@ -573,7 +573,7 @@ inline const char * const *EnumNamesAnyAmbiguousAliases() { } inline const char *EnumNameAnyAmbiguousAliases(AnyAmbiguousAliases e) { - if (flatbuffers::IsOutRange(e, AnyAmbiguousAliases_NONE, AnyAmbiguousAliases_M3)) return ""; + if (::flatbuffers::IsOutRange(e, AnyAmbiguousAliases_NONE, AnyAmbiguousAliases_M3)) return ""; const size_t index = static_cast(e); return EnumNamesAnyAmbiguousAliases()[index]; } @@ -595,8 +595,8 @@ struct AnyAmbiguousAliasesUnion { void Reset(); - static void *UnPack(const void *obj, AnyAmbiguousAliases type, const flatbuffers::resolver_function_t *resolver); - flatbuffers::Offset Pack(flatbuffers::FlatBufferBuilder &_fbb, const flatbuffers::rehasher_function_t *_rehasher = nullptr) const; + static void *UnPack(const void *obj, AnyAmbiguousAliases type, const ::flatbuffers::resolver_function_t *resolver); + ::flatbuffers::Offset Pack(::flatbuffers::FlatBufferBuilder &_fbb, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr) const; MyGame::Example::MonsterT *AsM1() { return type == AnyAmbiguousAliases_M1 ? @@ -653,8 +653,8 @@ inline bool operator!=(const AnyAmbiguousAliasesUnion &lhs, const AnyAmbiguousAl return !(lhs == rhs); } -bool VerifyAnyAmbiguousAliases(flatbuffers::Verifier &verifier, const void *obj, AnyAmbiguousAliases type); -bool VerifyAnyAmbiguousAliasesVector(flatbuffers::Verifier &verifier, const flatbuffers::Vector> *values, const flatbuffers::Vector *types); +bool VerifyAnyAmbiguousAliases(::flatbuffers::Verifier &verifier, const void *obj, AnyAmbiguousAliases type); +bool VerifyAnyAmbiguousAliasesVector(::flatbuffers::Verifier &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types); FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(2) Test FLATBUFFERS_FINAL_CLASS { private: @@ -663,7 +663,7 @@ FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(2) Test FLATBUFFERS_FINAL_CLASS { int8_t padding0__; public: - static const flatbuffers::TypeTable *MiniReflectTypeTable() { + static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { return TestTypeTable(); } Test() @@ -673,22 +673,22 @@ FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(2) Test FLATBUFFERS_FINAL_CLASS { (void)padding0__; } Test(int16_t _a, int8_t _b) - : a_(flatbuffers::EndianScalar(_a)), - b_(flatbuffers::EndianScalar(_b)), + : a_(::flatbuffers::EndianScalar(_a)), + b_(::flatbuffers::EndianScalar(_b)), padding0__(0) { (void)padding0__; } int16_t a() const { - return flatbuffers::EndianScalar(a_); + return ::flatbuffers::EndianScalar(a_); } void mutate_a(int16_t _a) { - flatbuffers::WriteScalar(&a_, _a); + ::flatbuffers::WriteScalar(&a_, _a); } int8_t b() const { - return flatbuffers::EndianScalar(b_); + return ::flatbuffers::EndianScalar(b_); } void mutate_b(int8_t _b) { - flatbuffers::WriteScalar(&b_, _b); + ::flatbuffers::WriteScalar(&b_, _b); } }; FLATBUFFERS_STRUCT_END(Test, 4); @@ -717,7 +717,7 @@ FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(8) Vec3 FLATBUFFERS_FINAL_CLASS { int16_t padding2__; public: - static const flatbuffers::TypeTable *MiniReflectTypeTable() { + static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { return Vec3TypeTable(); } Vec3() @@ -735,12 +735,12 @@ FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(8) Vec3 FLATBUFFERS_FINAL_CLASS { (void)padding2__; } Vec3(float _x, float _y, float _z, double _test1, MyGame::Example::Color _test2, const MyGame::Example::Test &_test3) - : x_(flatbuffers::EndianScalar(_x)), - y_(flatbuffers::EndianScalar(_y)), - z_(flatbuffers::EndianScalar(_z)), + : x_(::flatbuffers::EndianScalar(_x)), + y_(::flatbuffers::EndianScalar(_y)), + z_(::flatbuffers::EndianScalar(_z)), padding0__(0), - test1_(flatbuffers::EndianScalar(_test1)), - test2_(flatbuffers::EndianScalar(static_cast(_test2))), + test1_(::flatbuffers::EndianScalar(_test1)), + test2_(::flatbuffers::EndianScalar(static_cast(_test2))), padding1__(0), test3_(_test3), padding2__(0) { @@ -749,34 +749,34 @@ FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(8) Vec3 FLATBUFFERS_FINAL_CLASS { (void)padding2__; } float x() const { - return flatbuffers::EndianScalar(x_); + return ::flatbuffers::EndianScalar(x_); } void mutate_x(float _x) { - flatbuffers::WriteScalar(&x_, _x); + ::flatbuffers::WriteScalar(&x_, _x); } float y() const { - return flatbuffers::EndianScalar(y_); + return ::flatbuffers::EndianScalar(y_); } void mutate_y(float _y) { - flatbuffers::WriteScalar(&y_, _y); + ::flatbuffers::WriteScalar(&y_, _y); } float z() const { - return flatbuffers::EndianScalar(z_); + return ::flatbuffers::EndianScalar(z_); } void mutate_z(float _z) { - flatbuffers::WriteScalar(&z_, _z); + ::flatbuffers::WriteScalar(&z_, _z); } double test1() const { - return flatbuffers::EndianScalar(test1_); + return ::flatbuffers::EndianScalar(test1_); } void mutate_test1(double _test1) { - flatbuffers::WriteScalar(&test1_, _test1); + ::flatbuffers::WriteScalar(&test1_, _test1); } MyGame::Example::Color test2() const { - return static_cast(flatbuffers::EndianScalar(test2_)); + return static_cast(::flatbuffers::EndianScalar(test2_)); } void mutate_test2(MyGame::Example::Color _test2) { - flatbuffers::WriteScalar(&test2_, static_cast(_test2)); + ::flatbuffers::WriteScalar(&test2_, static_cast(_test2)); } const MyGame::Example::Test &test3() const { return test3_; @@ -808,7 +808,7 @@ FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(4) Ability FLATBUFFERS_FINAL_CLASS { uint32_t distance_; public: - static const flatbuffers::TypeTable *MiniReflectTypeTable() { + static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { return AbilityTypeTable(); } Ability() @@ -816,14 +816,14 @@ FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(4) Ability FLATBUFFERS_FINAL_CLASS { distance_(0) { } Ability(uint32_t _id, uint32_t _distance) - : id_(flatbuffers::EndianScalar(_id)), - distance_(flatbuffers::EndianScalar(_distance)) { + : id_(::flatbuffers::EndianScalar(_id)), + distance_(::flatbuffers::EndianScalar(_distance)) { } uint32_t id() const { - return flatbuffers::EndianScalar(id_); + return ::flatbuffers::EndianScalar(id_); } void mutate_id(uint32_t _id) { - flatbuffers::WriteScalar(&id_, _id); + ::flatbuffers::WriteScalar(&id_, _id); } bool KeyCompareLessThan(const Ability * const o) const { return id() < o->id(); @@ -832,10 +832,10 @@ FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(4) Ability FLATBUFFERS_FINAL_CLASS { return static_cast(id() > _id) - static_cast(id() < _id); } uint32_t distance() const { - return flatbuffers::EndianScalar(distance_); + return ::flatbuffers::EndianScalar(distance_); } void mutate_distance(uint32_t _distance) { - flatbuffers::WriteScalar(&distance_, _distance); + ::flatbuffers::WriteScalar(&distance_, _distance); } }; FLATBUFFERS_STRUCT_END(Ability, 8); @@ -858,7 +858,7 @@ FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(4) StructOfStructs FLATBUFFERS_FINAL_CLASS { MyGame::Example::Ability c_; public: - static const flatbuffers::TypeTable *MiniReflectTypeTable() { + static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { return StructOfStructsTypeTable(); } StructOfStructs() @@ -909,7 +909,7 @@ FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(4) StructOfStructsOfStructs FLATBUFFERS_FINA MyGame::Example::StructOfStructs a_; public: - static const flatbuffers::TypeTable *MiniReflectTypeTable() { + static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { return StructOfStructsOfStructsTypeTable(); } StructOfStructsOfStructs() @@ -939,105 +939,105 @@ inline bool operator!=(const StructOfStructsOfStructs &lhs, const StructOfStruct } // namespace Example -struct InParentNamespaceT : public flatbuffers::NativeTable { +struct InParentNamespaceT : public ::flatbuffers::NativeTable { typedef InParentNamespace TableType; }; -struct InParentNamespace FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { +struct InParentNamespace FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { typedef InParentNamespaceT NativeTableType; typedef InParentNamespaceBuilder Builder; - static const flatbuffers::TypeTable *MiniReflectTypeTable() { + static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { return InParentNamespaceTypeTable(); } - bool Verify(flatbuffers::Verifier &verifier) const { + bool Verify(::flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && verifier.EndTable(); } - InParentNamespaceT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; - void UnPackTo(InParentNamespaceT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const; - static flatbuffers::Offset Pack(flatbuffers::FlatBufferBuilder &_fbb, const InParentNamespaceT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); + InParentNamespaceT *UnPack(const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; + void UnPackTo(InParentNamespaceT *_o, const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; + static ::flatbuffers::Offset Pack(::flatbuffers::FlatBufferBuilder &_fbb, const InParentNamespaceT* _o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); }; struct InParentNamespaceBuilder { typedef InParentNamespace Table; - flatbuffers::FlatBufferBuilder &fbb_; - flatbuffers::uoffset_t start_; - explicit InParentNamespaceBuilder(flatbuffers::FlatBufferBuilder &_fbb) + ::flatbuffers::FlatBufferBuilder &fbb_; + ::flatbuffers::uoffset_t start_; + explicit InParentNamespaceBuilder(::flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); } - flatbuffers::Offset Finish() { + ::flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); - auto o = flatbuffers::Offset(end); + auto o = ::flatbuffers::Offset(end); return o; } }; -inline flatbuffers::Offset CreateInParentNamespace( - flatbuffers::FlatBufferBuilder &_fbb) { +inline ::flatbuffers::Offset CreateInParentNamespace( + ::flatbuffers::FlatBufferBuilder &_fbb) { InParentNamespaceBuilder builder_(_fbb); return builder_.Finish(); } -flatbuffers::Offset CreateInParentNamespace(flatbuffers::FlatBufferBuilder &_fbb, const InParentNamespaceT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); +::flatbuffers::Offset CreateInParentNamespace(::flatbuffers::FlatBufferBuilder &_fbb, const InParentNamespaceT *_o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); namespace Example2 { -struct MonsterT : public flatbuffers::NativeTable { +struct MonsterT : public ::flatbuffers::NativeTable { typedef Monster TableType; }; -struct Monster FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { +struct Monster FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { typedef MonsterT NativeTableType; typedef MonsterBuilder Builder; - static const flatbuffers::TypeTable *MiniReflectTypeTable() { + static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { return MonsterTypeTable(); } - bool Verify(flatbuffers::Verifier &verifier) const { + bool Verify(::flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && verifier.EndTable(); } - MonsterT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; - void UnPackTo(MonsterT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const; - static flatbuffers::Offset Pack(flatbuffers::FlatBufferBuilder &_fbb, const MonsterT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); + MonsterT *UnPack(const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; + void UnPackTo(MonsterT *_o, const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; + static ::flatbuffers::Offset Pack(::flatbuffers::FlatBufferBuilder &_fbb, const MonsterT* _o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); }; struct MonsterBuilder { typedef Monster Table; - flatbuffers::FlatBufferBuilder &fbb_; - flatbuffers::uoffset_t start_; - explicit MonsterBuilder(flatbuffers::FlatBufferBuilder &_fbb) + ::flatbuffers::FlatBufferBuilder &fbb_; + ::flatbuffers::uoffset_t start_; + explicit MonsterBuilder(::flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); } - flatbuffers::Offset Finish() { + ::flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); - auto o = flatbuffers::Offset(end); + auto o = ::flatbuffers::Offset(end); return o; } }; -inline flatbuffers::Offset CreateMonster( - flatbuffers::FlatBufferBuilder &_fbb) { +inline ::flatbuffers::Offset CreateMonster( + ::flatbuffers::FlatBufferBuilder &_fbb) { MonsterBuilder builder_(_fbb); return builder_.Finish(); } -flatbuffers::Offset CreateMonster(flatbuffers::FlatBufferBuilder &_fbb, const MonsterT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); +::flatbuffers::Offset CreateMonster(::flatbuffers::FlatBufferBuilder &_fbb, const MonsterT *_o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); } // namespace Example2 namespace Example { -struct TestSimpleTableWithEnumT : public flatbuffers::NativeTable { +struct TestSimpleTableWithEnumT : public ::flatbuffers::NativeTable { typedef TestSimpleTableWithEnum TableType; MyGame::Example::Color color = MyGame::Example::Color_Green; }; -struct TestSimpleTableWithEnum FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { +struct TestSimpleTableWithEnum FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { typedef TestSimpleTableWithEnumT NativeTableType; typedef TestSimpleTableWithEnumBuilder Builder; - static const flatbuffers::TypeTable *MiniReflectTypeTable() { + static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { return TestSimpleTableWithEnumTypeTable(); } enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { @@ -1049,55 +1049,55 @@ struct TestSimpleTableWithEnum FLATBUFFERS_FINAL_CLASS : private flatbuffers::Ta bool mutate_color(MyGame::Example::Color _color = static_cast(2)) { return SetField(VT_COLOR, static_cast(_color), 2); } - bool Verify(flatbuffers::Verifier &verifier) const { + bool Verify(::flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_COLOR, 1) && verifier.EndTable(); } - TestSimpleTableWithEnumT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; - void UnPackTo(TestSimpleTableWithEnumT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const; - static flatbuffers::Offset Pack(flatbuffers::FlatBufferBuilder &_fbb, const TestSimpleTableWithEnumT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); + TestSimpleTableWithEnumT *UnPack(const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; + void UnPackTo(TestSimpleTableWithEnumT *_o, const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; + static ::flatbuffers::Offset Pack(::flatbuffers::FlatBufferBuilder &_fbb, const TestSimpleTableWithEnumT* _o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); }; struct TestSimpleTableWithEnumBuilder { typedef TestSimpleTableWithEnum Table; - flatbuffers::FlatBufferBuilder &fbb_; - flatbuffers::uoffset_t start_; + ::flatbuffers::FlatBufferBuilder &fbb_; + ::flatbuffers::uoffset_t start_; void add_color(MyGame::Example::Color color) { fbb_.AddElement(TestSimpleTableWithEnum::VT_COLOR, static_cast(color), 2); } - explicit TestSimpleTableWithEnumBuilder(flatbuffers::FlatBufferBuilder &_fbb) + explicit TestSimpleTableWithEnumBuilder(::flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); } - flatbuffers::Offset Finish() { + ::flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); - auto o = flatbuffers::Offset(end); + auto o = ::flatbuffers::Offset(end); return o; } }; -inline flatbuffers::Offset CreateTestSimpleTableWithEnum( - flatbuffers::FlatBufferBuilder &_fbb, +inline ::flatbuffers::Offset CreateTestSimpleTableWithEnum( + ::flatbuffers::FlatBufferBuilder &_fbb, MyGame::Example::Color color = MyGame::Example::Color_Green) { TestSimpleTableWithEnumBuilder builder_(_fbb); builder_.add_color(color); return builder_.Finish(); } -flatbuffers::Offset CreateTestSimpleTableWithEnum(flatbuffers::FlatBufferBuilder &_fbb, const TestSimpleTableWithEnumT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); +::flatbuffers::Offset CreateTestSimpleTableWithEnum(::flatbuffers::FlatBufferBuilder &_fbb, const TestSimpleTableWithEnumT *_o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); -struct StatT : public flatbuffers::NativeTable { +struct StatT : public ::flatbuffers::NativeTable { typedef Stat TableType; std::string id{}; int64_t val = 0; uint16_t count = 0; }; -struct Stat FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { +struct Stat FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { typedef StatT NativeTableType; typedef StatBuilder Builder; - static const flatbuffers::TypeTable *MiniReflectTypeTable() { + static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { return StatTypeTable(); } enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { @@ -1105,11 +1105,11 @@ struct Stat FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { VT_VAL = 6, VT_COUNT = 8 }; - const flatbuffers::String *id() const { - return GetPointer(VT_ID); + const ::flatbuffers::String *id() const { + return GetPointer(VT_ID); } - flatbuffers::String *mutable_id() { - return GetPointer(VT_ID); + ::flatbuffers::String *mutable_id() { + return GetPointer<::flatbuffers::String *>(VT_ID); } int64_t val() const { return GetField(VT_VAL, 0); @@ -1129,7 +1129,7 @@ struct Stat FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { int KeyCompareWithValue(uint16_t _count) const { return static_cast(count() > _count) - static_cast(count() < _count); } - bool Verify(flatbuffers::Verifier &verifier) const { + bool Verify(::flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && VerifyOffset(verifier, VT_ID) && verifier.VerifyString(id()) && @@ -1137,16 +1137,16 @@ struct Stat FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { VerifyField(verifier, VT_COUNT, 2) && verifier.EndTable(); } - StatT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; - void UnPackTo(StatT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const; - static flatbuffers::Offset Pack(flatbuffers::FlatBufferBuilder &_fbb, const StatT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); + StatT *UnPack(const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; + void UnPackTo(StatT *_o, const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; + static ::flatbuffers::Offset Pack(::flatbuffers::FlatBufferBuilder &_fbb, const StatT* _o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); }; struct StatBuilder { typedef Stat Table; - flatbuffers::FlatBufferBuilder &fbb_; - flatbuffers::uoffset_t start_; - void add_id(flatbuffers::Offset id) { + ::flatbuffers::FlatBufferBuilder &fbb_; + ::flatbuffers::uoffset_t start_; + void add_id(::flatbuffers::Offset<::flatbuffers::String> id) { fbb_.AddOffset(Stat::VT_ID, id); } void add_val(int64_t val) { @@ -1155,20 +1155,20 @@ struct StatBuilder { void add_count(uint16_t count) { fbb_.AddElement(Stat::VT_COUNT, count, 0); } - explicit StatBuilder(flatbuffers::FlatBufferBuilder &_fbb) + explicit StatBuilder(::flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); } - flatbuffers::Offset Finish() { + ::flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); - auto o = flatbuffers::Offset(end); + auto o = ::flatbuffers::Offset(end); return o; } }; -inline flatbuffers::Offset CreateStat( - flatbuffers::FlatBufferBuilder &_fbb, - flatbuffers::Offset id = 0, +inline ::flatbuffers::Offset CreateStat( + ::flatbuffers::FlatBufferBuilder &_fbb, + ::flatbuffers::Offset<::flatbuffers::String> id = 0, int64_t val = 0, uint16_t count = 0) { StatBuilder builder_(_fbb); @@ -1178,8 +1178,8 @@ inline flatbuffers::Offset CreateStat( return builder_.Finish(); } -inline flatbuffers::Offset CreateStatDirect( - flatbuffers::FlatBufferBuilder &_fbb, +inline ::flatbuffers::Offset CreateStatDirect( + ::flatbuffers::FlatBufferBuilder &_fbb, const char *id = nullptr, int64_t val = 0, uint16_t count = 0) { @@ -1191,17 +1191,17 @@ inline flatbuffers::Offset CreateStatDirect( count); } -flatbuffers::Offset CreateStat(flatbuffers::FlatBufferBuilder &_fbb, const StatT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); +::flatbuffers::Offset CreateStat(::flatbuffers::FlatBufferBuilder &_fbb, const StatT *_o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); -struct ReferrableT : public flatbuffers::NativeTable { +struct ReferrableT : public ::flatbuffers::NativeTable { typedef Referrable TableType; uint64_t id = 0; }; -struct Referrable FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { +struct Referrable FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { typedef ReferrableT NativeTableType; typedef ReferrableBuilder Builder; - static const flatbuffers::TypeTable *MiniReflectTypeTable() { + static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { return ReferrableTypeTable(); } enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { @@ -1219,45 +1219,45 @@ struct Referrable FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { int KeyCompareWithValue(uint64_t _id) const { return static_cast(id() > _id) - static_cast(id() < _id); } - bool Verify(flatbuffers::Verifier &verifier) const { + bool Verify(::flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_ID, 8) && verifier.EndTable(); } - ReferrableT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; - void UnPackTo(ReferrableT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const; - static flatbuffers::Offset Pack(flatbuffers::FlatBufferBuilder &_fbb, const ReferrableT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); + ReferrableT *UnPack(const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; + void UnPackTo(ReferrableT *_o, const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; + static ::flatbuffers::Offset Pack(::flatbuffers::FlatBufferBuilder &_fbb, const ReferrableT* _o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); }; struct ReferrableBuilder { typedef Referrable Table; - flatbuffers::FlatBufferBuilder &fbb_; - flatbuffers::uoffset_t start_; + ::flatbuffers::FlatBufferBuilder &fbb_; + ::flatbuffers::uoffset_t start_; void add_id(uint64_t id) { fbb_.AddElement(Referrable::VT_ID, id, 0); } - explicit ReferrableBuilder(flatbuffers::FlatBufferBuilder &_fbb) + explicit ReferrableBuilder(::flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); } - flatbuffers::Offset Finish() { + ::flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); - auto o = flatbuffers::Offset(end); + auto o = ::flatbuffers::Offset(end); return o; } }; -inline flatbuffers::Offset CreateReferrable( - flatbuffers::FlatBufferBuilder &_fbb, +inline ::flatbuffers::Offset CreateReferrable( + ::flatbuffers::FlatBufferBuilder &_fbb, uint64_t id = 0) { ReferrableBuilder builder_(_fbb); builder_.add_id(id); return builder_.Finish(); } -flatbuffers::Offset CreateReferrable(flatbuffers::FlatBufferBuilder &_fbb, const ReferrableT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); +::flatbuffers::Offset CreateReferrable(::flatbuffers::FlatBufferBuilder &_fbb, const ReferrableT *_o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); -struct MonsterT : public flatbuffers::NativeTable { +struct MonsterT : public ::flatbuffers::NativeTable { typedef Monster TableType; flatbuffers::unique_ptr pos{}; int16_t mana = 150; @@ -1324,10 +1324,10 @@ struct MonsterT : public flatbuffers::NativeTable { }; /// an example documentation comment: "monster object" -struct Monster FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { +struct Monster FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { typedef MonsterT NativeTableType; typedef MonsterBuilder Builder; - static const flatbuffers::TypeTable *MiniReflectTypeTable() { + static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { return MonsterTypeTable(); } enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { @@ -1411,11 +1411,11 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { bool mutate_hp(int16_t _hp = 100) { return SetField(VT_HP, _hp, 100); } - const flatbuffers::String *name() const { - return GetPointer(VT_NAME); + const ::flatbuffers::String *name() const { + return GetPointer(VT_NAME); } - flatbuffers::String *mutable_name() { - return GetPointer(VT_NAME); + ::flatbuffers::String *mutable_name() { + return GetPointer<::flatbuffers::String *>(VT_NAME); } bool KeyCompareLessThan(const Monster * const o) const { return *name() < *o->name(); @@ -1423,11 +1423,11 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { int KeyCompareWithValue(const char *_name) const { return strcmp(name()->c_str(), _name); } - const flatbuffers::Vector *inventory() const { - return GetPointer *>(VT_INVENTORY); + const ::flatbuffers::Vector *inventory() const { + return GetPointer *>(VT_INVENTORY); } - flatbuffers::Vector *mutable_inventory() { - return GetPointer *>(VT_INVENTORY); + ::flatbuffers::Vector *mutable_inventory() { + return GetPointer<::flatbuffers::Vector *>(VT_INVENTORY); } MyGame::Example::Color color() const { return static_cast(GetField(VT_COLOR, 8)); @@ -1454,25 +1454,25 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { void *mutable_test() { return GetPointer(VT_TEST); } - const flatbuffers::Vector *test4() const { - return GetPointer *>(VT_TEST4); + const ::flatbuffers::Vector *test4() const { + return GetPointer *>(VT_TEST4); } - flatbuffers::Vector *mutable_test4() { - return GetPointer *>(VT_TEST4); + ::flatbuffers::Vector *mutable_test4() { + return GetPointer<::flatbuffers::Vector *>(VT_TEST4); } - const flatbuffers::Vector> *testarrayofstring() const { - return GetPointer> *>(VT_TESTARRAYOFSTRING); + const ::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>> *testarrayofstring() const { + return GetPointer> *>(VT_TESTARRAYOFSTRING); } - flatbuffers::Vector> *mutable_testarrayofstring() { - return GetPointer> *>(VT_TESTARRAYOFSTRING); + ::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>> *mutable_testarrayofstring() { + return GetPointer<::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>> *>(VT_TESTARRAYOFSTRING); } /// an example documentation comment: this will end up in the generated code /// multiline too - const flatbuffers::Vector> *testarrayoftables() const { - return GetPointer> *>(VT_TESTARRAYOFTABLES); + const ::flatbuffers::Vector<::flatbuffers::Offset> *testarrayoftables() const { + return GetPointer> *>(VT_TESTARRAYOFTABLES); } - flatbuffers::Vector> *mutable_testarrayoftables() { - return GetPointer> *>(VT_TESTARRAYOFTABLES); + ::flatbuffers::Vector<::flatbuffers::Offset> *mutable_testarrayoftables() { + return GetPointer<::flatbuffers::Vector<::flatbuffers::Offset> *>(VT_TESTARRAYOFTABLES); } const MyGame::Example::Monster *enemy() const { return GetPointer(VT_ENEMY); @@ -1480,14 +1480,14 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { MyGame::Example::Monster *mutable_enemy() { return GetPointer(VT_ENEMY); } - const flatbuffers::Vector *testnestedflatbuffer() const { - return GetPointer *>(VT_TESTNESTEDFLATBUFFER); + const ::flatbuffers::Vector *testnestedflatbuffer() const { + return GetPointer *>(VT_TESTNESTEDFLATBUFFER); } - flatbuffers::Vector *mutable_testnestedflatbuffer() { - return GetPointer *>(VT_TESTNESTEDFLATBUFFER); + ::flatbuffers::Vector *mutable_testnestedflatbuffer() { + return GetPointer<::flatbuffers::Vector *>(VT_TESTNESTEDFLATBUFFER); } const MyGame::Example::Monster *testnestedflatbuffer_nested_root() const { - return flatbuffers::GetRoot(testnestedflatbuffer()->Data()); + return ::flatbuffers::GetRoot(testnestedflatbuffer()->Data()); } const MyGame::Example::Stat *testempty() const { return GetPointer(VT_TESTEMPTY); @@ -1549,11 +1549,11 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { bool mutate_testhashu64_fnv1a(uint64_t _testhashu64_fnv1a = 0) { return SetField(VT_TESTHASHU64_FNV1A, _testhashu64_fnv1a, 0); } - const flatbuffers::Vector *testarrayofbools() const { - return GetPointer *>(VT_TESTARRAYOFBOOLS); + const ::flatbuffers::Vector *testarrayofbools() const { + return GetPointer *>(VT_TESTARRAYOFBOOLS); } - flatbuffers::Vector *mutable_testarrayofbools() { - return GetPointer *>(VT_TESTARRAYOFBOOLS); + ::flatbuffers::Vector *mutable_testarrayofbools() { + return GetPointer<::flatbuffers::Vector *>(VT_TESTARRAYOFBOOLS); } float testf() const { return GetField(VT_TESTF, 3.14159f); @@ -1573,44 +1573,44 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { bool mutate_testf3(float _testf3 = 0.0f) { return SetField(VT_TESTF3, _testf3, 0.0f); } - const flatbuffers::Vector> *testarrayofstring2() const { - return GetPointer> *>(VT_TESTARRAYOFSTRING2); + const ::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>> *testarrayofstring2() const { + return GetPointer> *>(VT_TESTARRAYOFSTRING2); } - flatbuffers::Vector> *mutable_testarrayofstring2() { - return GetPointer> *>(VT_TESTARRAYOFSTRING2); + ::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>> *mutable_testarrayofstring2() { + return GetPointer<::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>> *>(VT_TESTARRAYOFSTRING2); } - const flatbuffers::Vector *testarrayofsortedstruct() const { - return GetPointer *>(VT_TESTARRAYOFSORTEDSTRUCT); + const ::flatbuffers::Vector *testarrayofsortedstruct() const { + return GetPointer *>(VT_TESTARRAYOFSORTEDSTRUCT); } - flatbuffers::Vector *mutable_testarrayofsortedstruct() { - return GetPointer *>(VT_TESTARRAYOFSORTEDSTRUCT); + ::flatbuffers::Vector *mutable_testarrayofsortedstruct() { + return GetPointer<::flatbuffers::Vector *>(VT_TESTARRAYOFSORTEDSTRUCT); } - const flatbuffers::Vector *flex() const { - return GetPointer *>(VT_FLEX); + const ::flatbuffers::Vector *flex() const { + return GetPointer *>(VT_FLEX); } - flatbuffers::Vector *mutable_flex() { - return GetPointer *>(VT_FLEX); + ::flatbuffers::Vector *mutable_flex() { + return GetPointer<::flatbuffers::Vector *>(VT_FLEX); } flexbuffers::Reference flex_flexbuffer_root() const { return flexbuffers::GetRoot(flex()->Data(), flex()->size()); } - const flatbuffers::Vector *test5() const { - return GetPointer *>(VT_TEST5); + const ::flatbuffers::Vector *test5() const { + return GetPointer *>(VT_TEST5); } - flatbuffers::Vector *mutable_test5() { - return GetPointer *>(VT_TEST5); + ::flatbuffers::Vector *mutable_test5() { + return GetPointer<::flatbuffers::Vector *>(VT_TEST5); } - const flatbuffers::Vector *vector_of_longs() const { - return GetPointer *>(VT_VECTOR_OF_LONGS); + const ::flatbuffers::Vector *vector_of_longs() const { + return GetPointer *>(VT_VECTOR_OF_LONGS); } - flatbuffers::Vector *mutable_vector_of_longs() { - return GetPointer *>(VT_VECTOR_OF_LONGS); + ::flatbuffers::Vector *mutable_vector_of_longs() { + return GetPointer<::flatbuffers::Vector *>(VT_VECTOR_OF_LONGS); } - const flatbuffers::Vector *vector_of_doubles() const { - return GetPointer *>(VT_VECTOR_OF_DOUBLES); + const ::flatbuffers::Vector *vector_of_doubles() const { + return GetPointer *>(VT_VECTOR_OF_DOUBLES); } - flatbuffers::Vector *mutable_vector_of_doubles() { - return GetPointer *>(VT_VECTOR_OF_DOUBLES); + ::flatbuffers::Vector *mutable_vector_of_doubles() { + return GetPointer<::flatbuffers::Vector *>(VT_VECTOR_OF_DOUBLES); } const MyGame::InParentNamespace *parent_namespace_test() const { return GetPointer(VT_PARENT_NAMESPACE_TEST); @@ -1618,11 +1618,11 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { MyGame::InParentNamespace *mutable_parent_namespace_test() { return GetPointer(VT_PARENT_NAMESPACE_TEST); } - const flatbuffers::Vector> *vector_of_referrables() const { - return GetPointer> *>(VT_VECTOR_OF_REFERRABLES); + const ::flatbuffers::Vector<::flatbuffers::Offset> *vector_of_referrables() const { + return GetPointer> *>(VT_VECTOR_OF_REFERRABLES); } - flatbuffers::Vector> *mutable_vector_of_referrables() { - return GetPointer> *>(VT_VECTOR_OF_REFERRABLES); + ::flatbuffers::Vector<::flatbuffers::Offset> *mutable_vector_of_referrables() { + return GetPointer<::flatbuffers::Vector<::flatbuffers::Offset> *>(VT_VECTOR_OF_REFERRABLES); } uint64_t single_weak_reference() const { return GetField(VT_SINGLE_WEAK_REFERENCE, 0); @@ -1630,17 +1630,17 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { bool mutate_single_weak_reference(uint64_t _single_weak_reference = 0) { return SetField(VT_SINGLE_WEAK_REFERENCE, _single_weak_reference, 0); } - const flatbuffers::Vector *vector_of_weak_references() const { - return GetPointer *>(VT_VECTOR_OF_WEAK_REFERENCES); + const ::flatbuffers::Vector *vector_of_weak_references() const { + return GetPointer *>(VT_VECTOR_OF_WEAK_REFERENCES); } - flatbuffers::Vector *mutable_vector_of_weak_references() { - return GetPointer *>(VT_VECTOR_OF_WEAK_REFERENCES); + ::flatbuffers::Vector *mutable_vector_of_weak_references() { + return GetPointer<::flatbuffers::Vector *>(VT_VECTOR_OF_WEAK_REFERENCES); } - const flatbuffers::Vector> *vector_of_strong_referrables() const { - return GetPointer> *>(VT_VECTOR_OF_STRONG_REFERRABLES); + const ::flatbuffers::Vector<::flatbuffers::Offset> *vector_of_strong_referrables() const { + return GetPointer> *>(VT_VECTOR_OF_STRONG_REFERRABLES); } - flatbuffers::Vector> *mutable_vector_of_strong_referrables() { - return GetPointer> *>(VT_VECTOR_OF_STRONG_REFERRABLES); + ::flatbuffers::Vector<::flatbuffers::Offset> *mutable_vector_of_strong_referrables() { + return GetPointer<::flatbuffers::Vector<::flatbuffers::Offset> *>(VT_VECTOR_OF_STRONG_REFERRABLES); } uint64_t co_owning_reference() const { return GetField(VT_CO_OWNING_REFERENCE, 0); @@ -1648,11 +1648,11 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { bool mutate_co_owning_reference(uint64_t _co_owning_reference = 0) { return SetField(VT_CO_OWNING_REFERENCE, _co_owning_reference, 0); } - const flatbuffers::Vector *vector_of_co_owning_references() const { - return GetPointer *>(VT_VECTOR_OF_CO_OWNING_REFERENCES); + const ::flatbuffers::Vector *vector_of_co_owning_references() const { + return GetPointer *>(VT_VECTOR_OF_CO_OWNING_REFERENCES); } - flatbuffers::Vector *mutable_vector_of_co_owning_references() { - return GetPointer *>(VT_VECTOR_OF_CO_OWNING_REFERENCES); + ::flatbuffers::Vector *mutable_vector_of_co_owning_references() { + return GetPointer<::flatbuffers::Vector *>(VT_VECTOR_OF_CO_OWNING_REFERENCES); } uint64_t non_owning_reference() const { return GetField(VT_NON_OWNING_REFERENCE, 0); @@ -1660,11 +1660,11 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { bool mutate_non_owning_reference(uint64_t _non_owning_reference = 0) { return SetField(VT_NON_OWNING_REFERENCE, _non_owning_reference, 0); } - const flatbuffers::Vector *vector_of_non_owning_references() const { - return GetPointer *>(VT_VECTOR_OF_NON_OWNING_REFERENCES); + const ::flatbuffers::Vector *vector_of_non_owning_references() const { + return GetPointer *>(VT_VECTOR_OF_NON_OWNING_REFERENCES); } - flatbuffers::Vector *mutable_vector_of_non_owning_references() { - return GetPointer *>(VT_VECTOR_OF_NON_OWNING_REFERENCES); + ::flatbuffers::Vector *mutable_vector_of_non_owning_references() { + return GetPointer<::flatbuffers::Vector *>(VT_VECTOR_OF_NON_OWNING_REFERENCES); } MyGame::Example::AnyUniqueAliases any_unique_type() const { return static_cast(GetField(VT_ANY_UNIQUE_TYPE, 0)); @@ -1703,11 +1703,11 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { void *mutable_any_ambiguous() { return GetPointer(VT_ANY_AMBIGUOUS); } - const flatbuffers::Vector *vector_of_enums() const { - return GetPointer *>(VT_VECTOR_OF_ENUMS); + const ::flatbuffers::Vector *vector_of_enums() const { + return GetPointer *>(VT_VECTOR_OF_ENUMS); } - flatbuffers::Vector *mutable_vector_of_enums() { - return GetPointer *>(VT_VECTOR_OF_ENUMS); + ::flatbuffers::Vector *mutable_vector_of_enums() { + return GetPointer<::flatbuffers::Vector *>(VT_VECTOR_OF_ENUMS); } MyGame::Example::Race signed_enum() const { return static_cast(GetField(VT_SIGNED_ENUM, -1)); @@ -1715,20 +1715,20 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { bool mutate_signed_enum(MyGame::Example::Race _signed_enum = static_cast(-1)) { return SetField(VT_SIGNED_ENUM, static_cast(_signed_enum), -1); } - const flatbuffers::Vector *testrequirednestedflatbuffer() const { - return GetPointer *>(VT_TESTREQUIREDNESTEDFLATBUFFER); + const ::flatbuffers::Vector *testrequirednestedflatbuffer() const { + return GetPointer *>(VT_TESTREQUIREDNESTEDFLATBUFFER); } - flatbuffers::Vector *mutable_testrequirednestedflatbuffer() { - return GetPointer *>(VT_TESTREQUIREDNESTEDFLATBUFFER); + ::flatbuffers::Vector *mutable_testrequirednestedflatbuffer() { + return GetPointer<::flatbuffers::Vector *>(VT_TESTREQUIREDNESTEDFLATBUFFER); } const MyGame::Example::Monster *testrequirednestedflatbuffer_nested_root() const { - return flatbuffers::GetRoot(testrequirednestedflatbuffer()->Data()); + return ::flatbuffers::GetRoot(testrequirednestedflatbuffer()->Data()); } - const flatbuffers::Vector> *scalar_key_sorted_tables() const { - return GetPointer> *>(VT_SCALAR_KEY_SORTED_TABLES); + const ::flatbuffers::Vector<::flatbuffers::Offset> *scalar_key_sorted_tables() const { + return GetPointer> *>(VT_SCALAR_KEY_SORTED_TABLES); } - flatbuffers::Vector> *mutable_scalar_key_sorted_tables() { - return GetPointer> *>(VT_SCALAR_KEY_SORTED_TABLES); + ::flatbuffers::Vector<::flatbuffers::Offset> *mutable_scalar_key_sorted_tables() { + return GetPointer<::flatbuffers::Vector<::flatbuffers::Offset> *>(VT_SCALAR_KEY_SORTED_TABLES); } const MyGame::Example::Test *native_inline() const { return GetStruct(VT_NATIVE_INLINE); @@ -1796,7 +1796,7 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { bool mutate_double_inf_default(double _double_inf_default = std::numeric_limits::infinity()) { return SetField(VT_DOUBLE_INF_DEFAULT, _double_inf_default, std::numeric_limits::infinity()); } - bool Verify(flatbuffers::Verifier &verifier) const { + bool Verify(::flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_POS, 8) && VerifyField(verifier, VT_MANA, 2) && @@ -1897,9 +1897,9 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { VerifyField(verifier, VT_DOUBLE_INF_DEFAULT, 8) && verifier.EndTable(); } - MonsterT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; - void UnPackTo(MonsterT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const; - static flatbuffers::Offset Pack(flatbuffers::FlatBufferBuilder &_fbb, const MonsterT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); + MonsterT *UnPack(const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; + void UnPackTo(MonsterT *_o, const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; + static ::flatbuffers::Offset Pack(::flatbuffers::FlatBufferBuilder &_fbb, const MonsterT* _o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); }; template<> inline const MyGame::Example::Monster *Monster::test_as() const { @@ -1928,8 +1928,8 @@ template<> inline const MyGame::Example2::Monster *Monster::any_unique_as(Monster::VT_HP, hp, 100); } - void add_name(flatbuffers::Offset name) { + void add_name(::flatbuffers::Offset<::flatbuffers::String> name) { fbb_.AddOffset(Monster::VT_NAME, name); } - void add_inventory(flatbuffers::Offset> inventory) { + void add_inventory(::flatbuffers::Offset<::flatbuffers::Vector> inventory) { fbb_.AddOffset(Monster::VT_INVENTORY, inventory); } void add_color(MyGame::Example::Color color) { @@ -1951,25 +1951,25 @@ struct MonsterBuilder { void add_test_type(MyGame::Example::Any test_type) { fbb_.AddElement(Monster::VT_TEST_TYPE, static_cast(test_type), 0); } - void add_test(flatbuffers::Offset test) { + void add_test(::flatbuffers::Offset test) { fbb_.AddOffset(Monster::VT_TEST, test); } - void add_test4(flatbuffers::Offset> test4) { + void add_test4(::flatbuffers::Offset<::flatbuffers::Vector> test4) { fbb_.AddOffset(Monster::VT_TEST4, test4); } - void add_testarrayofstring(flatbuffers::Offset>> testarrayofstring) { + void add_testarrayofstring(::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>>> testarrayofstring) { fbb_.AddOffset(Monster::VT_TESTARRAYOFSTRING, testarrayofstring); } - void add_testarrayoftables(flatbuffers::Offset>> testarrayoftables) { + void add_testarrayoftables(::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset>> testarrayoftables) { fbb_.AddOffset(Monster::VT_TESTARRAYOFTABLES, testarrayoftables); } - void add_enemy(flatbuffers::Offset enemy) { + void add_enemy(::flatbuffers::Offset enemy) { fbb_.AddOffset(Monster::VT_ENEMY, enemy); } - void add_testnestedflatbuffer(flatbuffers::Offset> testnestedflatbuffer) { + void add_testnestedflatbuffer(::flatbuffers::Offset<::flatbuffers::Vector> testnestedflatbuffer) { fbb_.AddOffset(Monster::VT_TESTNESTEDFLATBUFFER, testnestedflatbuffer); } - void add_testempty(flatbuffers::Offset testempty) { + void add_testempty(::flatbuffers::Offset testempty) { fbb_.AddOffset(Monster::VT_TESTEMPTY, testempty); } void add_testbool(bool testbool) { @@ -1999,7 +1999,7 @@ struct MonsterBuilder { void add_testhashu64_fnv1a(uint64_t testhashu64_fnv1a) { fbb_.AddElement(Monster::VT_TESTHASHU64_FNV1A, testhashu64_fnv1a, 0); } - void add_testarrayofbools(flatbuffers::Offset> testarrayofbools) { + void add_testarrayofbools(::flatbuffers::Offset<::flatbuffers::Vector> testarrayofbools) { fbb_.AddOffset(Monster::VT_TESTARRAYOFBOOLS, testarrayofbools); } void add_testf(float testf) { @@ -2011,73 +2011,73 @@ struct MonsterBuilder { void add_testf3(float testf3) { fbb_.AddElement(Monster::VT_TESTF3, testf3, 0.0f); } - void add_testarrayofstring2(flatbuffers::Offset>> testarrayofstring2) { + void add_testarrayofstring2(::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>>> testarrayofstring2) { fbb_.AddOffset(Monster::VT_TESTARRAYOFSTRING2, testarrayofstring2); } - void add_testarrayofsortedstruct(flatbuffers::Offset> testarrayofsortedstruct) { + void add_testarrayofsortedstruct(::flatbuffers::Offset<::flatbuffers::Vector> testarrayofsortedstruct) { fbb_.AddOffset(Monster::VT_TESTARRAYOFSORTEDSTRUCT, testarrayofsortedstruct); } - void add_flex(flatbuffers::Offset> flex) { + void add_flex(::flatbuffers::Offset<::flatbuffers::Vector> flex) { fbb_.AddOffset(Monster::VT_FLEX, flex); } - void add_test5(flatbuffers::Offset> test5) { + void add_test5(::flatbuffers::Offset<::flatbuffers::Vector> test5) { fbb_.AddOffset(Monster::VT_TEST5, test5); } - void add_vector_of_longs(flatbuffers::Offset> vector_of_longs) { + void add_vector_of_longs(::flatbuffers::Offset<::flatbuffers::Vector> vector_of_longs) { fbb_.AddOffset(Monster::VT_VECTOR_OF_LONGS, vector_of_longs); } - void add_vector_of_doubles(flatbuffers::Offset> vector_of_doubles) { + void add_vector_of_doubles(::flatbuffers::Offset<::flatbuffers::Vector> vector_of_doubles) { fbb_.AddOffset(Monster::VT_VECTOR_OF_DOUBLES, vector_of_doubles); } - void add_parent_namespace_test(flatbuffers::Offset parent_namespace_test) { + void add_parent_namespace_test(::flatbuffers::Offset parent_namespace_test) { fbb_.AddOffset(Monster::VT_PARENT_NAMESPACE_TEST, parent_namespace_test); } - void add_vector_of_referrables(flatbuffers::Offset>> vector_of_referrables) { + void add_vector_of_referrables(::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset>> vector_of_referrables) { fbb_.AddOffset(Monster::VT_VECTOR_OF_REFERRABLES, vector_of_referrables); } void add_single_weak_reference(uint64_t single_weak_reference) { fbb_.AddElement(Monster::VT_SINGLE_WEAK_REFERENCE, single_weak_reference, 0); } - void add_vector_of_weak_references(flatbuffers::Offset> vector_of_weak_references) { + void add_vector_of_weak_references(::flatbuffers::Offset<::flatbuffers::Vector> vector_of_weak_references) { fbb_.AddOffset(Monster::VT_VECTOR_OF_WEAK_REFERENCES, vector_of_weak_references); } - void add_vector_of_strong_referrables(flatbuffers::Offset>> vector_of_strong_referrables) { + void add_vector_of_strong_referrables(::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset>> vector_of_strong_referrables) { fbb_.AddOffset(Monster::VT_VECTOR_OF_STRONG_REFERRABLES, vector_of_strong_referrables); } void add_co_owning_reference(uint64_t co_owning_reference) { fbb_.AddElement(Monster::VT_CO_OWNING_REFERENCE, co_owning_reference, 0); } - void add_vector_of_co_owning_references(flatbuffers::Offset> vector_of_co_owning_references) { + void add_vector_of_co_owning_references(::flatbuffers::Offset<::flatbuffers::Vector> vector_of_co_owning_references) { fbb_.AddOffset(Monster::VT_VECTOR_OF_CO_OWNING_REFERENCES, vector_of_co_owning_references); } void add_non_owning_reference(uint64_t non_owning_reference) { fbb_.AddElement(Monster::VT_NON_OWNING_REFERENCE, non_owning_reference, 0); } - void add_vector_of_non_owning_references(flatbuffers::Offset> vector_of_non_owning_references) { + void add_vector_of_non_owning_references(::flatbuffers::Offset<::flatbuffers::Vector> vector_of_non_owning_references) { fbb_.AddOffset(Monster::VT_VECTOR_OF_NON_OWNING_REFERENCES, vector_of_non_owning_references); } void add_any_unique_type(MyGame::Example::AnyUniqueAliases any_unique_type) { fbb_.AddElement(Monster::VT_ANY_UNIQUE_TYPE, static_cast(any_unique_type), 0); } - void add_any_unique(flatbuffers::Offset any_unique) { + void add_any_unique(::flatbuffers::Offset any_unique) { fbb_.AddOffset(Monster::VT_ANY_UNIQUE, any_unique); } void add_any_ambiguous_type(MyGame::Example::AnyAmbiguousAliases any_ambiguous_type) { fbb_.AddElement(Monster::VT_ANY_AMBIGUOUS_TYPE, static_cast(any_ambiguous_type), 0); } - void add_any_ambiguous(flatbuffers::Offset any_ambiguous) { + void add_any_ambiguous(::flatbuffers::Offset any_ambiguous) { fbb_.AddOffset(Monster::VT_ANY_AMBIGUOUS, any_ambiguous); } - void add_vector_of_enums(flatbuffers::Offset> vector_of_enums) { + void add_vector_of_enums(::flatbuffers::Offset<::flatbuffers::Vector> vector_of_enums) { fbb_.AddOffset(Monster::VT_VECTOR_OF_ENUMS, vector_of_enums); } void add_signed_enum(MyGame::Example::Race signed_enum) { fbb_.AddElement(Monster::VT_SIGNED_ENUM, static_cast(signed_enum), -1); } - void add_testrequirednestedflatbuffer(flatbuffers::Offset> testrequirednestedflatbuffer) { + void add_testrequirednestedflatbuffer(::flatbuffers::Offset<::flatbuffers::Vector> testrequirednestedflatbuffer) { fbb_.AddOffset(Monster::VT_TESTREQUIREDNESTEDFLATBUFFER, testrequirednestedflatbuffer); } - void add_scalar_key_sorted_tables(flatbuffers::Offset>> scalar_key_sorted_tables) { + void add_scalar_key_sorted_tables(::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset>> scalar_key_sorted_tables) { fbb_.AddOffset(Monster::VT_SCALAR_KEY_SORTED_TABLES, scalar_key_sorted_tables); } void add_native_inline(const MyGame::Example::Test *native_inline) { @@ -2113,34 +2113,34 @@ struct MonsterBuilder { void add_double_inf_default(double double_inf_default) { fbb_.AddElement(Monster::VT_DOUBLE_INF_DEFAULT, double_inf_default, std::numeric_limits::infinity()); } - explicit MonsterBuilder(flatbuffers::FlatBufferBuilder &_fbb) + explicit MonsterBuilder(::flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); } - flatbuffers::Offset Finish() { + ::flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); - auto o = flatbuffers::Offset(end); + auto o = ::flatbuffers::Offset(end); fbb_.Required(o, Monster::VT_NAME); return o; } }; -inline flatbuffers::Offset CreateMonster( - flatbuffers::FlatBufferBuilder &_fbb, +inline ::flatbuffers::Offset CreateMonster( + ::flatbuffers::FlatBufferBuilder &_fbb, const MyGame::Example::Vec3 *pos = nullptr, int16_t mana = 150, int16_t hp = 100, - flatbuffers::Offset name = 0, - flatbuffers::Offset> inventory = 0, + ::flatbuffers::Offset<::flatbuffers::String> name = 0, + ::flatbuffers::Offset<::flatbuffers::Vector> inventory = 0, MyGame::Example::Color color = MyGame::Example::Color_Blue, MyGame::Example::Any test_type = MyGame::Example::Any_NONE, - flatbuffers::Offset test = 0, - flatbuffers::Offset> test4 = 0, - flatbuffers::Offset>> testarrayofstring = 0, - flatbuffers::Offset>> testarrayoftables = 0, - flatbuffers::Offset enemy = 0, - flatbuffers::Offset> testnestedflatbuffer = 0, - flatbuffers::Offset testempty = 0, + ::flatbuffers::Offset test = 0, + ::flatbuffers::Offset<::flatbuffers::Vector> test4 = 0, + ::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>>> testarrayofstring = 0, + ::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset>> testarrayoftables = 0, + ::flatbuffers::Offset enemy = 0, + ::flatbuffers::Offset<::flatbuffers::Vector> testnestedflatbuffer = 0, + ::flatbuffers::Offset testempty = 0, bool testbool = false, int32_t testhashs32_fnv1 = 0, uint32_t testhashu32_fnv1 = 0, @@ -2150,33 +2150,33 @@ inline flatbuffers::Offset CreateMonster( uint32_t testhashu32_fnv1a = 0, int64_t testhashs64_fnv1a = 0, uint64_t testhashu64_fnv1a = 0, - flatbuffers::Offset> testarrayofbools = 0, + ::flatbuffers::Offset<::flatbuffers::Vector> testarrayofbools = 0, float testf = 3.14159f, float testf2 = 3.0f, float testf3 = 0.0f, - flatbuffers::Offset>> testarrayofstring2 = 0, - flatbuffers::Offset> testarrayofsortedstruct = 0, - flatbuffers::Offset> flex = 0, - flatbuffers::Offset> test5 = 0, - flatbuffers::Offset> vector_of_longs = 0, - flatbuffers::Offset> vector_of_doubles = 0, - flatbuffers::Offset parent_namespace_test = 0, - flatbuffers::Offset>> vector_of_referrables = 0, + ::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>>> testarrayofstring2 = 0, + ::flatbuffers::Offset<::flatbuffers::Vector> testarrayofsortedstruct = 0, + ::flatbuffers::Offset<::flatbuffers::Vector> flex = 0, + ::flatbuffers::Offset<::flatbuffers::Vector> test5 = 0, + ::flatbuffers::Offset<::flatbuffers::Vector> vector_of_longs = 0, + ::flatbuffers::Offset<::flatbuffers::Vector> vector_of_doubles = 0, + ::flatbuffers::Offset parent_namespace_test = 0, + ::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset>> vector_of_referrables = 0, uint64_t single_weak_reference = 0, - flatbuffers::Offset> vector_of_weak_references = 0, - flatbuffers::Offset>> vector_of_strong_referrables = 0, + ::flatbuffers::Offset<::flatbuffers::Vector> vector_of_weak_references = 0, + ::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset>> vector_of_strong_referrables = 0, uint64_t co_owning_reference = 0, - flatbuffers::Offset> vector_of_co_owning_references = 0, + ::flatbuffers::Offset<::flatbuffers::Vector> vector_of_co_owning_references = 0, uint64_t non_owning_reference = 0, - flatbuffers::Offset> vector_of_non_owning_references = 0, + ::flatbuffers::Offset<::flatbuffers::Vector> vector_of_non_owning_references = 0, MyGame::Example::AnyUniqueAliases any_unique_type = MyGame::Example::AnyUniqueAliases_NONE, - flatbuffers::Offset any_unique = 0, + ::flatbuffers::Offset any_unique = 0, MyGame::Example::AnyAmbiguousAliases any_ambiguous_type = MyGame::Example::AnyAmbiguousAliases_NONE, - flatbuffers::Offset any_ambiguous = 0, - flatbuffers::Offset> vector_of_enums = 0, + ::flatbuffers::Offset any_ambiguous = 0, + ::flatbuffers::Offset<::flatbuffers::Vector> vector_of_enums = 0, MyGame::Example::Race signed_enum = MyGame::Example::Race_None, - flatbuffers::Offset> testrequirednestedflatbuffer = 0, - flatbuffers::Offset>> scalar_key_sorted_tables = 0, + ::flatbuffers::Offset<::flatbuffers::Vector> testrequirednestedflatbuffer = 0, + ::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset>> scalar_key_sorted_tables = 0, const MyGame::Example::Test *native_inline = nullptr, MyGame::Example::LongEnum long_enum_non_enum_default = static_cast(0), MyGame::Example::LongEnum long_enum_normal_default = MyGame::Example::LongEnum_LongOne, @@ -2253,8 +2253,8 @@ inline flatbuffers::Offset CreateMonster( return builder_.Finish(); } -inline flatbuffers::Offset CreateMonsterDirect( - flatbuffers::FlatBufferBuilder &_fbb, +inline ::flatbuffers::Offset CreateMonsterDirect( + ::flatbuffers::FlatBufferBuilder &_fbb, const MyGame::Example::Vec3 *pos = nullptr, int16_t mana = 150, int16_t hp = 100, @@ -2262,13 +2262,13 @@ inline flatbuffers::Offset CreateMonsterDirect( const std::vector *inventory = nullptr, MyGame::Example::Color color = MyGame::Example::Color_Blue, MyGame::Example::Any test_type = MyGame::Example::Any_NONE, - flatbuffers::Offset test = 0, + ::flatbuffers::Offset test = 0, const std::vector *test4 = nullptr, - const std::vector> *testarrayofstring = nullptr, - std::vector> *testarrayoftables = nullptr, - flatbuffers::Offset enemy = 0, + const std::vector<::flatbuffers::Offset<::flatbuffers::String>> *testarrayofstring = nullptr, + std::vector<::flatbuffers::Offset> *testarrayoftables = nullptr, + ::flatbuffers::Offset enemy = 0, const std::vector *testnestedflatbuffer = nullptr, - flatbuffers::Offset testempty = 0, + ::flatbuffers::Offset testempty = 0, bool testbool = false, int32_t testhashs32_fnv1 = 0, uint32_t testhashu32_fnv1 = 0, @@ -2282,29 +2282,29 @@ inline flatbuffers::Offset CreateMonsterDirect( float testf = 3.14159f, float testf2 = 3.0f, float testf3 = 0.0f, - const std::vector> *testarrayofstring2 = nullptr, + const std::vector<::flatbuffers::Offset<::flatbuffers::String>> *testarrayofstring2 = nullptr, std::vector *testarrayofsortedstruct = nullptr, const std::vector *flex = nullptr, const std::vector *test5 = nullptr, const std::vector *vector_of_longs = nullptr, const std::vector *vector_of_doubles = nullptr, - flatbuffers::Offset parent_namespace_test = 0, - std::vector> *vector_of_referrables = nullptr, + ::flatbuffers::Offset parent_namespace_test = 0, + std::vector<::flatbuffers::Offset> *vector_of_referrables = nullptr, uint64_t single_weak_reference = 0, const std::vector *vector_of_weak_references = nullptr, - std::vector> *vector_of_strong_referrables = nullptr, + std::vector<::flatbuffers::Offset> *vector_of_strong_referrables = nullptr, uint64_t co_owning_reference = 0, const std::vector *vector_of_co_owning_references = nullptr, uint64_t non_owning_reference = 0, const std::vector *vector_of_non_owning_references = nullptr, MyGame::Example::AnyUniqueAliases any_unique_type = MyGame::Example::AnyUniqueAliases_NONE, - flatbuffers::Offset any_unique = 0, + ::flatbuffers::Offset any_unique = 0, MyGame::Example::AnyAmbiguousAliases any_ambiguous_type = MyGame::Example::AnyAmbiguousAliases_NONE, - flatbuffers::Offset any_ambiguous = 0, + ::flatbuffers::Offset any_ambiguous = 0, const std::vector *vector_of_enums = nullptr, MyGame::Example::Race signed_enum = MyGame::Example::Race_None, const std::vector *testrequirednestedflatbuffer = nullptr, - std::vector> *scalar_key_sorted_tables = nullptr, + std::vector<::flatbuffers::Offset> *scalar_key_sorted_tables = nullptr, const MyGame::Example::Test *native_inline = nullptr, MyGame::Example::LongEnum long_enum_non_enum_default = static_cast(0), MyGame::Example::LongEnum long_enum_normal_default = MyGame::Example::LongEnum_LongOne, @@ -2319,11 +2319,11 @@ inline flatbuffers::Offset CreateMonsterDirect( auto name__ = name ? _fbb.CreateString(name) : 0; auto inventory__ = inventory ? _fbb.CreateVector(*inventory) : 0; auto test4__ = test4 ? _fbb.CreateVectorOfStructs(*test4) : 0; - auto testarrayofstring__ = testarrayofstring ? _fbb.CreateVector>(*testarrayofstring) : 0; + auto testarrayofstring__ = testarrayofstring ? _fbb.CreateVector<::flatbuffers::Offset<::flatbuffers::String>>(*testarrayofstring) : 0; auto testarrayoftables__ = testarrayoftables ? _fbb.CreateVectorOfSortedTables(testarrayoftables) : 0; auto testnestedflatbuffer__ = testnestedflatbuffer ? _fbb.CreateVector(*testnestedflatbuffer) : 0; auto testarrayofbools__ = testarrayofbools ? _fbb.CreateVector(*testarrayofbools) : 0; - auto testarrayofstring2__ = testarrayofstring2 ? _fbb.CreateVector>(*testarrayofstring2) : 0; + auto testarrayofstring2__ = testarrayofstring2 ? _fbb.CreateVector<::flatbuffers::Offset<::flatbuffers::String>>(*testarrayofstring2) : 0; auto testarrayofsortedstruct__ = testarrayofsortedstruct ? _fbb.CreateVectorOfSortedStructs(testarrayofsortedstruct) : 0; auto flex__ = flex ? _fbb.CreateVector(*flex) : 0; auto test5__ = test5 ? _fbb.CreateVectorOfStructs(*test5) : 0; @@ -2402,9 +2402,9 @@ inline flatbuffers::Offset CreateMonsterDirect( double_inf_default); } -flatbuffers::Offset CreateMonster(flatbuffers::FlatBufferBuilder &_fbb, const MonsterT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); +::flatbuffers::Offset CreateMonster(::flatbuffers::FlatBufferBuilder &_fbb, const MonsterT *_o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); -struct TypeAliasesT : public flatbuffers::NativeTable { +struct TypeAliasesT : public ::flatbuffers::NativeTable { typedef TypeAliases TableType; int8_t i8 = 0; uint8_t u8 = 0; @@ -2420,10 +2420,10 @@ struct TypeAliasesT : public flatbuffers::NativeTable { std::vector vf64{}; }; -struct TypeAliases FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { +struct TypeAliases FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { typedef TypeAliasesT NativeTableType; typedef TypeAliasesBuilder Builder; - static const flatbuffers::TypeTable *MiniReflectTypeTable() { + static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { return TypeAliasesTypeTable(); } enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { @@ -2500,19 +2500,19 @@ struct TypeAliases FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { bool mutate_f64(double _f64 = 0.0) { return SetField(VT_F64, _f64, 0.0); } - const flatbuffers::Vector *v8() const { - return GetPointer *>(VT_V8); + const ::flatbuffers::Vector *v8() const { + return GetPointer *>(VT_V8); } - flatbuffers::Vector *mutable_v8() { - return GetPointer *>(VT_V8); + ::flatbuffers::Vector *mutable_v8() { + return GetPointer<::flatbuffers::Vector *>(VT_V8); } - const flatbuffers::Vector *vf64() const { - return GetPointer *>(VT_VF64); + const ::flatbuffers::Vector *vf64() const { + return GetPointer *>(VT_VF64); } - flatbuffers::Vector *mutable_vf64() { - return GetPointer *>(VT_VF64); + ::flatbuffers::Vector *mutable_vf64() { + return GetPointer<::flatbuffers::Vector *>(VT_VF64); } - bool Verify(flatbuffers::Verifier &verifier) const { + bool Verify(::flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_I8, 1) && VerifyField(verifier, VT_U8, 1) && @@ -2530,15 +2530,15 @@ struct TypeAliases FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { verifier.VerifyVector(vf64()) && verifier.EndTable(); } - TypeAliasesT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; - void UnPackTo(TypeAliasesT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const; - static flatbuffers::Offset Pack(flatbuffers::FlatBufferBuilder &_fbb, const TypeAliasesT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); + TypeAliasesT *UnPack(const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; + void UnPackTo(TypeAliasesT *_o, const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; + static ::flatbuffers::Offset Pack(::flatbuffers::FlatBufferBuilder &_fbb, const TypeAliasesT* _o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); }; struct TypeAliasesBuilder { typedef TypeAliases Table; - flatbuffers::FlatBufferBuilder &fbb_; - flatbuffers::uoffset_t start_; + ::flatbuffers::FlatBufferBuilder &fbb_; + ::flatbuffers::uoffset_t start_; void add_i8(int8_t i8) { fbb_.AddElement(TypeAliases::VT_I8, i8, 0); } @@ -2569,25 +2569,25 @@ struct TypeAliasesBuilder { void add_f64(double f64) { fbb_.AddElement(TypeAliases::VT_F64, f64, 0.0); } - void add_v8(flatbuffers::Offset> v8) { + void add_v8(::flatbuffers::Offset<::flatbuffers::Vector> v8) { fbb_.AddOffset(TypeAliases::VT_V8, v8); } - void add_vf64(flatbuffers::Offset> vf64) { + void add_vf64(::flatbuffers::Offset<::flatbuffers::Vector> vf64) { fbb_.AddOffset(TypeAliases::VT_VF64, vf64); } - explicit TypeAliasesBuilder(flatbuffers::FlatBufferBuilder &_fbb) + explicit TypeAliasesBuilder(::flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); } - flatbuffers::Offset Finish() { + ::flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); - auto o = flatbuffers::Offset(end); + auto o = ::flatbuffers::Offset(end); return o; } }; -inline flatbuffers::Offset CreateTypeAliases( - flatbuffers::FlatBufferBuilder &_fbb, +inline ::flatbuffers::Offset CreateTypeAliases( + ::flatbuffers::FlatBufferBuilder &_fbb, int8_t i8 = 0, uint8_t u8 = 0, int16_t i16 = 0, @@ -2598,8 +2598,8 @@ inline flatbuffers::Offset CreateTypeAliases( uint64_t u64 = 0, float f32 = 0.0f, double f64 = 0.0, - flatbuffers::Offset> v8 = 0, - flatbuffers::Offset> vf64 = 0) { + ::flatbuffers::Offset<::flatbuffers::Vector> v8 = 0, + ::flatbuffers::Offset<::flatbuffers::Vector> vf64 = 0) { TypeAliasesBuilder builder_(_fbb); builder_.add_f64(f64); builder_.add_u64(u64); @@ -2616,8 +2616,8 @@ inline flatbuffers::Offset CreateTypeAliases( return builder_.Finish(); } -inline flatbuffers::Offset CreateTypeAliasesDirect( - flatbuffers::FlatBufferBuilder &_fbb, +inline ::flatbuffers::Offset CreateTypeAliasesDirect( + ::flatbuffers::FlatBufferBuilder &_fbb, int8_t i8 = 0, uint8_t u8 = 0, int16_t i16 = 0, @@ -2648,7 +2648,7 @@ inline flatbuffers::Offset CreateTypeAliasesDirect( vf64__); } -flatbuffers::Offset CreateTypeAliases(flatbuffers::FlatBufferBuilder &_fbb, const TypeAliasesT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); +::flatbuffers::Offset CreateTypeAliases(::flatbuffers::FlatBufferBuilder &_fbb, const TypeAliasesT *_o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); } // namespace Example @@ -2662,25 +2662,25 @@ inline bool operator!=(const InParentNamespaceT &lhs, const InParentNamespaceT & } -inline InParentNamespaceT *InParentNamespace::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +inline InParentNamespaceT *InParentNamespace::UnPack(const ::flatbuffers::resolver_function_t *_resolver) const { auto _o = std::unique_ptr(new InParentNamespaceT()); UnPackTo(_o.get(), _resolver); return _o.release(); } -inline void InParentNamespace::UnPackTo(InParentNamespaceT *_o, const flatbuffers::resolver_function_t *_resolver) const { +inline void InParentNamespace::UnPackTo(InParentNamespaceT *_o, const ::flatbuffers::resolver_function_t *_resolver) const { (void)_o; (void)_resolver; } -inline flatbuffers::Offset InParentNamespace::Pack(flatbuffers::FlatBufferBuilder &_fbb, const InParentNamespaceT* _o, const flatbuffers::rehasher_function_t *_rehasher) { +inline ::flatbuffers::Offset InParentNamespace::Pack(::flatbuffers::FlatBufferBuilder &_fbb, const InParentNamespaceT* _o, const ::flatbuffers::rehasher_function_t *_rehasher) { return CreateInParentNamespace(_fbb, _o, _rehasher); } -inline flatbuffers::Offset CreateInParentNamespace(flatbuffers::FlatBufferBuilder &_fbb, const InParentNamespaceT *_o, const flatbuffers::rehasher_function_t *_rehasher) { +inline ::flatbuffers::Offset CreateInParentNamespace(::flatbuffers::FlatBufferBuilder &_fbb, const InParentNamespaceT *_o, const ::flatbuffers::rehasher_function_t *_rehasher) { (void)_rehasher; (void)_o; - struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const InParentNamespaceT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; + struct _VectorArgs { ::flatbuffers::FlatBufferBuilder *__fbb; const InParentNamespaceT* __o; const ::flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; return MyGame::CreateInParentNamespace( _fbb); } @@ -2697,25 +2697,25 @@ inline bool operator!=(const MonsterT &lhs, const MonsterT &rhs) { } -inline MonsterT *Monster::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +inline MonsterT *Monster::UnPack(const ::flatbuffers::resolver_function_t *_resolver) const { auto _o = std::unique_ptr(new MonsterT()); UnPackTo(_o.get(), _resolver); return _o.release(); } -inline void Monster::UnPackTo(MonsterT *_o, const flatbuffers::resolver_function_t *_resolver) const { +inline void Monster::UnPackTo(MonsterT *_o, const ::flatbuffers::resolver_function_t *_resolver) const { (void)_o; (void)_resolver; } -inline flatbuffers::Offset Monster::Pack(flatbuffers::FlatBufferBuilder &_fbb, const MonsterT* _o, const flatbuffers::rehasher_function_t *_rehasher) { +inline ::flatbuffers::Offset Monster::Pack(::flatbuffers::FlatBufferBuilder &_fbb, const MonsterT* _o, const ::flatbuffers::rehasher_function_t *_rehasher) { return CreateMonster(_fbb, _o, _rehasher); } -inline flatbuffers::Offset CreateMonster(flatbuffers::FlatBufferBuilder &_fbb, const MonsterT *_o, const flatbuffers::rehasher_function_t *_rehasher) { +inline ::flatbuffers::Offset CreateMonster(::flatbuffers::FlatBufferBuilder &_fbb, const MonsterT *_o, const ::flatbuffers::rehasher_function_t *_rehasher) { (void)_rehasher; (void)_o; - struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const MonsterT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; + struct _VectorArgs { ::flatbuffers::FlatBufferBuilder *__fbb; const MonsterT* __o; const ::flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; return MyGame::Example2::CreateMonster( _fbb); } @@ -2735,26 +2735,26 @@ inline bool operator!=(const TestSimpleTableWithEnumT &lhs, const TestSimpleTabl } -inline TestSimpleTableWithEnumT *TestSimpleTableWithEnum::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +inline TestSimpleTableWithEnumT *TestSimpleTableWithEnum::UnPack(const ::flatbuffers::resolver_function_t *_resolver) const { auto _o = std::unique_ptr(new TestSimpleTableWithEnumT()); UnPackTo(_o.get(), _resolver); return _o.release(); } -inline void TestSimpleTableWithEnum::UnPackTo(TestSimpleTableWithEnumT *_o, const flatbuffers::resolver_function_t *_resolver) const { +inline void TestSimpleTableWithEnum::UnPackTo(TestSimpleTableWithEnumT *_o, const ::flatbuffers::resolver_function_t *_resolver) const { (void)_o; (void)_resolver; { auto _e = color(); _o->color = _e; } } -inline flatbuffers::Offset TestSimpleTableWithEnum::Pack(flatbuffers::FlatBufferBuilder &_fbb, const TestSimpleTableWithEnumT* _o, const flatbuffers::rehasher_function_t *_rehasher) { +inline ::flatbuffers::Offset TestSimpleTableWithEnum::Pack(::flatbuffers::FlatBufferBuilder &_fbb, const TestSimpleTableWithEnumT* _o, const ::flatbuffers::rehasher_function_t *_rehasher) { return CreateTestSimpleTableWithEnum(_fbb, _o, _rehasher); } -inline flatbuffers::Offset CreateTestSimpleTableWithEnum(flatbuffers::FlatBufferBuilder &_fbb, const TestSimpleTableWithEnumT *_o, const flatbuffers::rehasher_function_t *_rehasher) { +inline ::flatbuffers::Offset CreateTestSimpleTableWithEnum(::flatbuffers::FlatBufferBuilder &_fbb, const TestSimpleTableWithEnumT *_o, const ::flatbuffers::rehasher_function_t *_rehasher) { (void)_rehasher; (void)_o; - struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const TestSimpleTableWithEnumT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; + struct _VectorArgs { ::flatbuffers::FlatBufferBuilder *__fbb; const TestSimpleTableWithEnumT* __o; const ::flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; auto _color = _o->color; return MyGame::Example::CreateTestSimpleTableWithEnum( _fbb, @@ -2774,13 +2774,13 @@ inline bool operator!=(const StatT &lhs, const StatT &rhs) { } -inline StatT *Stat::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +inline StatT *Stat::UnPack(const ::flatbuffers::resolver_function_t *_resolver) const { auto _o = std::unique_ptr(new StatT()); UnPackTo(_o.get(), _resolver); return _o.release(); } -inline void Stat::UnPackTo(StatT *_o, const flatbuffers::resolver_function_t *_resolver) const { +inline void Stat::UnPackTo(StatT *_o, const ::flatbuffers::resolver_function_t *_resolver) const { (void)_o; (void)_resolver; { auto _e = id(); if (_e) _o->id = _e->str(); } @@ -2788,14 +2788,14 @@ inline void Stat::UnPackTo(StatT *_o, const flatbuffers::resolver_function_t *_r { auto _e = count(); _o->count = _e; } } -inline flatbuffers::Offset Stat::Pack(flatbuffers::FlatBufferBuilder &_fbb, const StatT* _o, const flatbuffers::rehasher_function_t *_rehasher) { +inline ::flatbuffers::Offset Stat::Pack(::flatbuffers::FlatBufferBuilder &_fbb, const StatT* _o, const ::flatbuffers::rehasher_function_t *_rehasher) { return CreateStat(_fbb, _o, _rehasher); } -inline flatbuffers::Offset CreateStat(flatbuffers::FlatBufferBuilder &_fbb, const StatT *_o, const flatbuffers::rehasher_function_t *_rehasher) { +inline ::flatbuffers::Offset CreateStat(::flatbuffers::FlatBufferBuilder &_fbb, const StatT *_o, const ::flatbuffers::rehasher_function_t *_rehasher) { (void)_rehasher; (void)_o; - struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const StatT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; + struct _VectorArgs { ::flatbuffers::FlatBufferBuilder *__fbb; const StatT* __o; const ::flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; auto _id = _o->id.empty() ? 0 : _fbb.CreateString(_o->id); auto _val = _o->val; auto _count = _o->count; @@ -2817,26 +2817,26 @@ inline bool operator!=(const ReferrableT &lhs, const ReferrableT &rhs) { } -inline ReferrableT *Referrable::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +inline ReferrableT *Referrable::UnPack(const ::flatbuffers::resolver_function_t *_resolver) const { auto _o = std::unique_ptr(new ReferrableT()); UnPackTo(_o.get(), _resolver); return _o.release(); } -inline void Referrable::UnPackTo(ReferrableT *_o, const flatbuffers::resolver_function_t *_resolver) const { +inline void Referrable::UnPackTo(ReferrableT *_o, const ::flatbuffers::resolver_function_t *_resolver) const { (void)_o; (void)_resolver; { auto _e = id(); _o->id = _e; } } -inline flatbuffers::Offset Referrable::Pack(flatbuffers::FlatBufferBuilder &_fbb, const ReferrableT* _o, const flatbuffers::rehasher_function_t *_rehasher) { +inline ::flatbuffers::Offset Referrable::Pack(::flatbuffers::FlatBufferBuilder &_fbb, const ReferrableT* _o, const ::flatbuffers::rehasher_function_t *_rehasher) { return CreateReferrable(_fbb, _o, _rehasher); } -inline flatbuffers::Offset CreateReferrable(flatbuffers::FlatBufferBuilder &_fbb, const ReferrableT *_o, const flatbuffers::rehasher_function_t *_rehasher) { +inline ::flatbuffers::Offset CreateReferrable(::flatbuffers::FlatBufferBuilder &_fbb, const ReferrableT *_o, const ::flatbuffers::rehasher_function_t *_rehasher) { (void)_rehasher; (void)_o; - struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const ReferrableT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; + struct _VectorArgs { ::flatbuffers::FlatBufferBuilder *__fbb; const ReferrableT* __o; const ::flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; auto _id = _o->id; return MyGame::Example::CreateReferrable( _fbb, @@ -3039,13 +3039,13 @@ inline MonsterT &MonsterT::operator=(MonsterT o) FLATBUFFERS_NOEXCEPT { return *this; } -inline MonsterT *Monster::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +inline MonsterT *Monster::UnPack(const ::flatbuffers::resolver_function_t *_resolver) const { auto _o = std::unique_ptr(new MonsterT()); UnPackTo(_o.get(), _resolver); return _o.release(); } -inline void Monster::UnPackTo(MonsterT *_o, const flatbuffers::resolver_function_t *_resolver) const { +inline void Monster::UnPackTo(MonsterT *_o, const ::flatbuffers::resolver_function_t *_resolver) const { (void)_o; (void)_resolver; { auto _e = pos(); if (_e) _o->pos = flatbuffers::unique_ptr(new MyGame::Example::Vec3(*_e)); } @@ -3056,9 +3056,9 @@ inline void Monster::UnPackTo(MonsterT *_o, const flatbuffers::resolver_function { auto _e = color(); _o->color = _e; } { auto _e = test_type(); _o->test.type = _e; } { auto _e = test(); if (_e) _o->test.value = MyGame::Example::AnyUnion::UnPack(_e, test_type(), _resolver); } - { auto _e = test4(); if (_e) { _o->test4.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->test4[_i] = *_e->Get(_i); } } else { _o->test4.resize(0); } } - { auto _e = testarrayofstring(); if (_e) { _o->testarrayofstring.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->testarrayofstring[_i] = _e->Get(_i)->str(); } } else { _o->testarrayofstring.resize(0); } } - { auto _e = testarrayoftables(); if (_e) { _o->testarrayoftables.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { if(_o->testarrayoftables[_i]) { _e->Get(_i)->UnPackTo(_o->testarrayoftables[_i].get(), _resolver); } else { _o->testarrayoftables[_i] = flatbuffers::unique_ptr(_e->Get(_i)->UnPack(_resolver)); }; } } else { _o->testarrayoftables.resize(0); } } + { auto _e = test4(); if (_e) { _o->test4.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->test4[_i] = *_e->Get(_i); } } else { _o->test4.resize(0); } } + { auto _e = testarrayofstring(); if (_e) { _o->testarrayofstring.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->testarrayofstring[_i] = _e->Get(_i)->str(); } } else { _o->testarrayofstring.resize(0); } } + { auto _e = testarrayoftables(); if (_e) { _o->testarrayoftables.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { if(_o->testarrayoftables[_i]) { _e->Get(_i)->UnPackTo(_o->testarrayoftables[_i].get(), _resolver); } else { _o->testarrayoftables[_i] = flatbuffers::unique_ptr(_e->Get(_i)->UnPack(_resolver)); }; } } else { _o->testarrayoftables.resize(0); } } { auto _e = enemy(); if (_e) { if(_o->enemy) { _e->UnPackTo(_o->enemy.get(), _resolver); } else { _o->enemy = flatbuffers::unique_ptr(_e->UnPack(_resolver)); } } else if (_o->enemy) { _o->enemy.reset(); } } { auto _e = testnestedflatbuffer(); if (_e) { _o->testnestedflatbuffer.resize(_e->size()); std::copy(_e->begin(), _e->end(), _o->testnestedflatbuffer.begin()); } } { auto _e = testempty(); if (_e) { if(_o->testempty) { _e->UnPackTo(_o->testempty.get(), _resolver); } else { _o->testempty = flatbuffers::unique_ptr(_e->UnPack(_resolver)); } } else if (_o->testempty) { _o->testempty.reset(); } } @@ -3068,36 +3068,36 @@ inline void Monster::UnPackTo(MonsterT *_o, const flatbuffers::resolver_function { auto _e = testhashs64_fnv1(); _o->testhashs64_fnv1 = _e; } { auto _e = testhashu64_fnv1(); _o->testhashu64_fnv1 = _e; } { auto _e = testhashs32_fnv1a(); _o->testhashs32_fnv1a = _e; } - { auto _e = testhashu32_fnv1a(); /*scalar resolver, naked*/ if (_resolver) (*_resolver)(reinterpret_cast(&_o->testhashu32_fnv1a), static_cast(_e)); else _o->testhashu32_fnv1a = nullptr; } + { auto _e = testhashu32_fnv1a(); /*scalar resolver, naked*/ if (_resolver) (*_resolver)(reinterpret_cast(&_o->testhashu32_fnv1a), static_cast<::flatbuffers::hash_value_t>(_e)); else _o->testhashu32_fnv1a = nullptr; } { auto _e = testhashs64_fnv1a(); _o->testhashs64_fnv1a = _e; } { auto _e = testhashu64_fnv1a(); _o->testhashu64_fnv1a = _e; } - { auto _e = testarrayofbools(); if (_e) { _o->testarrayofbools.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->testarrayofbools[_i] = _e->Get(_i) != 0; } } else { _o->testarrayofbools.resize(0); } } + { auto _e = testarrayofbools(); if (_e) { _o->testarrayofbools.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->testarrayofbools[_i] = _e->Get(_i) != 0; } } else { _o->testarrayofbools.resize(0); } } { auto _e = testf(); _o->testf = _e; } { auto _e = testf2(); _o->testf2 = _e; } { auto _e = testf3(); _o->testf3 = _e; } - { auto _e = testarrayofstring2(); if (_e) { _o->testarrayofstring2.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->testarrayofstring2[_i] = _e->Get(_i)->str(); } } else { _o->testarrayofstring2.resize(0); } } - { auto _e = testarrayofsortedstruct(); if (_e) { _o->testarrayofsortedstruct.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->testarrayofsortedstruct[_i] = *_e->Get(_i); } } else { _o->testarrayofsortedstruct.resize(0); } } + { auto _e = testarrayofstring2(); if (_e) { _o->testarrayofstring2.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->testarrayofstring2[_i] = _e->Get(_i)->str(); } } else { _o->testarrayofstring2.resize(0); } } + { auto _e = testarrayofsortedstruct(); if (_e) { _o->testarrayofsortedstruct.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->testarrayofsortedstruct[_i] = *_e->Get(_i); } } else { _o->testarrayofsortedstruct.resize(0); } } { auto _e = flex(); if (_e) { _o->flex.resize(_e->size()); std::copy(_e->begin(), _e->end(), _o->flex.begin()); } } - { auto _e = test5(); if (_e) { _o->test5.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->test5[_i] = *_e->Get(_i); } } else { _o->test5.resize(0); } } - { auto _e = vector_of_longs(); if (_e) { _o->vector_of_longs.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->vector_of_longs[_i] = _e->Get(_i); } } else { _o->vector_of_longs.resize(0); } } - { auto _e = vector_of_doubles(); if (_e) { _o->vector_of_doubles.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->vector_of_doubles[_i] = _e->Get(_i); } } else { _o->vector_of_doubles.resize(0); } } + { auto _e = test5(); if (_e) { _o->test5.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->test5[_i] = *_e->Get(_i); } } else { _o->test5.resize(0); } } + { auto _e = vector_of_longs(); if (_e) { _o->vector_of_longs.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->vector_of_longs[_i] = _e->Get(_i); } } else { _o->vector_of_longs.resize(0); } } + { auto _e = vector_of_doubles(); if (_e) { _o->vector_of_doubles.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->vector_of_doubles[_i] = _e->Get(_i); } } else { _o->vector_of_doubles.resize(0); } } { auto _e = parent_namespace_test(); if (_e) { if(_o->parent_namespace_test) { _e->UnPackTo(_o->parent_namespace_test.get(), _resolver); } else { _o->parent_namespace_test = flatbuffers::unique_ptr(_e->UnPack(_resolver)); } } else if (_o->parent_namespace_test) { _o->parent_namespace_test.reset(); } } - { auto _e = vector_of_referrables(); if (_e) { _o->vector_of_referrables.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { if(_o->vector_of_referrables[_i]) { _e->Get(_i)->UnPackTo(_o->vector_of_referrables[_i].get(), _resolver); } else { _o->vector_of_referrables[_i] = flatbuffers::unique_ptr(_e->Get(_i)->UnPack(_resolver)); }; } } else { _o->vector_of_referrables.resize(0); } } - { auto _e = single_weak_reference(); /*scalar resolver, naked*/ if (_resolver) (*_resolver)(reinterpret_cast(&_o->single_weak_reference), static_cast(_e)); else _o->single_weak_reference = nullptr; } - { auto _e = vector_of_weak_references(); if (_e) { _o->vector_of_weak_references.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { /*vector resolver, naked*/ if (_resolver) (*_resolver)(reinterpret_cast(&_o->vector_of_weak_references[_i]), static_cast(_e->Get(_i))); else _o->vector_of_weak_references[_i] = nullptr; } } else { _o->vector_of_weak_references.resize(0); } } - { auto _e = vector_of_strong_referrables(); if (_e) { _o->vector_of_strong_referrables.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { if(_o->vector_of_strong_referrables[_i]) { _e->Get(_i)->UnPackTo(_o->vector_of_strong_referrables[_i].get(), _resolver); } else { _o->vector_of_strong_referrables[_i] = flatbuffers::unique_ptr(_e->Get(_i)->UnPack(_resolver)); }; } } else { _o->vector_of_strong_referrables.resize(0); } } - { auto _e = co_owning_reference(); /*scalar resolver, naked*/ if (_resolver) (*_resolver)(reinterpret_cast(&_o->co_owning_reference), static_cast(_e)); else _o->co_owning_reference = nullptr; } - { auto _e = vector_of_co_owning_references(); if (_e) { _o->vector_of_co_owning_references.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { /*vector resolver, default_ptr_type*/ if (_resolver) (*_resolver)(reinterpret_cast(&_o->vector_of_co_owning_references[_i]), static_cast(_e->Get(_i)));/* else do nothing */; } } else { _o->vector_of_co_owning_references.resize(0); } } - { auto _e = non_owning_reference(); /*scalar resolver, naked*/ if (_resolver) (*_resolver)(reinterpret_cast(&_o->non_owning_reference), static_cast(_e)); else _o->non_owning_reference = nullptr; } - { auto _e = vector_of_non_owning_references(); if (_e) { _o->vector_of_non_owning_references.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { /*vector resolver, naked*/ if (_resolver) (*_resolver)(reinterpret_cast(&_o->vector_of_non_owning_references[_i]), static_cast(_e->Get(_i))); else _o->vector_of_non_owning_references[_i] = nullptr; } } else { _o->vector_of_non_owning_references.resize(0); } } + { auto _e = vector_of_referrables(); if (_e) { _o->vector_of_referrables.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { if(_o->vector_of_referrables[_i]) { _e->Get(_i)->UnPackTo(_o->vector_of_referrables[_i].get(), _resolver); } else { _o->vector_of_referrables[_i] = flatbuffers::unique_ptr(_e->Get(_i)->UnPack(_resolver)); }; } } else { _o->vector_of_referrables.resize(0); } } + { auto _e = single_weak_reference(); /*scalar resolver, naked*/ if (_resolver) (*_resolver)(reinterpret_cast(&_o->single_weak_reference), static_cast<::flatbuffers::hash_value_t>(_e)); else _o->single_weak_reference = nullptr; } + { auto _e = vector_of_weak_references(); if (_e) { _o->vector_of_weak_references.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { /*vector resolver, naked*/ if (_resolver) (*_resolver)(reinterpret_cast(&_o->vector_of_weak_references[_i]), static_cast<::flatbuffers::hash_value_t>(_e->Get(_i))); else _o->vector_of_weak_references[_i] = nullptr; } } else { _o->vector_of_weak_references.resize(0); } } + { auto _e = vector_of_strong_referrables(); if (_e) { _o->vector_of_strong_referrables.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { if(_o->vector_of_strong_referrables[_i]) { _e->Get(_i)->UnPackTo(_o->vector_of_strong_referrables[_i].get(), _resolver); } else { _o->vector_of_strong_referrables[_i] = flatbuffers::unique_ptr(_e->Get(_i)->UnPack(_resolver)); }; } } else { _o->vector_of_strong_referrables.resize(0); } } + { auto _e = co_owning_reference(); /*scalar resolver, naked*/ if (_resolver) (*_resolver)(reinterpret_cast(&_o->co_owning_reference), static_cast<::flatbuffers::hash_value_t>(_e)); else _o->co_owning_reference = nullptr; } + { auto _e = vector_of_co_owning_references(); if (_e) { _o->vector_of_co_owning_references.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { /*vector resolver, default_ptr_type*/ if (_resolver) (*_resolver)(reinterpret_cast(&_o->vector_of_co_owning_references[_i]), static_cast<::flatbuffers::hash_value_t>(_e->Get(_i)));/* else do nothing */; } } else { _o->vector_of_co_owning_references.resize(0); } } + { auto _e = non_owning_reference(); /*scalar resolver, naked*/ if (_resolver) (*_resolver)(reinterpret_cast(&_o->non_owning_reference), static_cast<::flatbuffers::hash_value_t>(_e)); else _o->non_owning_reference = nullptr; } + { auto _e = vector_of_non_owning_references(); if (_e) { _o->vector_of_non_owning_references.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { /*vector resolver, naked*/ if (_resolver) (*_resolver)(reinterpret_cast(&_o->vector_of_non_owning_references[_i]), static_cast<::flatbuffers::hash_value_t>(_e->Get(_i))); else _o->vector_of_non_owning_references[_i] = nullptr; } } else { _o->vector_of_non_owning_references.resize(0); } } { auto _e = any_unique_type(); _o->any_unique.type = _e; } { auto _e = any_unique(); if (_e) _o->any_unique.value = MyGame::Example::AnyUniqueAliasesUnion::UnPack(_e, any_unique_type(), _resolver); } { auto _e = any_ambiguous_type(); _o->any_ambiguous.type = _e; } { auto _e = any_ambiguous(); if (_e) _o->any_ambiguous.value = MyGame::Example::AnyAmbiguousAliasesUnion::UnPack(_e, any_ambiguous_type(), _resolver); } - { auto _e = vector_of_enums(); if (_e) { _o->vector_of_enums.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->vector_of_enums[_i] = static_cast(_e->Get(_i)); } } else { _o->vector_of_enums.resize(0); } } + { auto _e = vector_of_enums(); if (_e) { _o->vector_of_enums.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->vector_of_enums[_i] = static_cast(_e->Get(_i)); } } else { _o->vector_of_enums.resize(0); } } { auto _e = signed_enum(); _o->signed_enum = _e; } { auto _e = testrequirednestedflatbuffer(); if (_e) { _o->testrequirednestedflatbuffer.resize(_e->size()); std::copy(_e->begin(), _e->end(), _o->testrequirednestedflatbuffer.begin()); } } - { auto _e = scalar_key_sorted_tables(); if (_e) { _o->scalar_key_sorted_tables.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { if(_o->scalar_key_sorted_tables[_i]) { _e->Get(_i)->UnPackTo(_o->scalar_key_sorted_tables[_i].get(), _resolver); } else { _o->scalar_key_sorted_tables[_i] = flatbuffers::unique_ptr(_e->Get(_i)->UnPack(_resolver)); }; } } else { _o->scalar_key_sorted_tables.resize(0); } } + { auto _e = scalar_key_sorted_tables(); if (_e) { _o->scalar_key_sorted_tables.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { if(_o->scalar_key_sorted_tables[_i]) { _e->Get(_i)->UnPackTo(_o->scalar_key_sorted_tables[_i].get(), _resolver); } else { _o->scalar_key_sorted_tables[_i] = flatbuffers::unique_ptr(_e->Get(_i)->UnPack(_resolver)); }; } } else { _o->scalar_key_sorted_tables.resize(0); } } { auto _e = native_inline(); if (_e) _o->native_inline = *_e; } { auto _e = long_enum_non_enum_default(); _o->long_enum_non_enum_default = _e; } { auto _e = long_enum_normal_default(); _o->long_enum_normal_default = _e; } @@ -3111,14 +3111,14 @@ inline void Monster::UnPackTo(MonsterT *_o, const flatbuffers::resolver_function { auto _e = double_inf_default(); _o->double_inf_default = _e; } } -inline flatbuffers::Offset Monster::Pack(flatbuffers::FlatBufferBuilder &_fbb, const MonsterT* _o, const flatbuffers::rehasher_function_t *_rehasher) { +inline ::flatbuffers::Offset Monster::Pack(::flatbuffers::FlatBufferBuilder &_fbb, const MonsterT* _o, const ::flatbuffers::rehasher_function_t *_rehasher) { return CreateMonster(_fbb, _o, _rehasher); } -inline flatbuffers::Offset CreateMonster(flatbuffers::FlatBufferBuilder &_fbb, const MonsterT *_o, const flatbuffers::rehasher_function_t *_rehasher) { +inline ::flatbuffers::Offset CreateMonster(::flatbuffers::FlatBufferBuilder &_fbb, const MonsterT *_o, const ::flatbuffers::rehasher_function_t *_rehasher) { (void)_rehasher; (void)_o; - struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const MonsterT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; + struct _VectorArgs { ::flatbuffers::FlatBufferBuilder *__fbb; const MonsterT* __o; const ::flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; auto _pos = _o->pos ? _o->pos.get() : nullptr; auto _mana = _o->mana; auto _hp = _o->hp; @@ -3129,7 +3129,7 @@ inline flatbuffers::Offset CreateMonster(flatbuffers::FlatBufferBuilder auto _test = _o->test.Pack(_fbb); auto _test4 = _o->test4.size() ? _fbb.CreateVectorOfStructs(_o->test4) : 0; auto _testarrayofstring = _o->testarrayofstring.size() ? _fbb.CreateVectorOfStrings(_o->testarrayofstring) : 0; - auto _testarrayoftables = _o->testarrayoftables.size() ? _fbb.CreateVector> (_o->testarrayoftables.size(), [](size_t i, _VectorArgs *__va) { return CreateMonster(*__va->__fbb, __va->__o->testarrayoftables[i].get(), __va->__rehasher); }, &_va ) : 0; + auto _testarrayoftables = _o->testarrayoftables.size() ? _fbb.CreateVector<::flatbuffers::Offset> (_o->testarrayoftables.size(), [](size_t i, _VectorArgs *__va) { return CreateMonster(*__va->__fbb, __va->__o->testarrayoftables[i].get(), __va->__rehasher); }, &_va ) : 0; auto _enemy = _o->enemy ? CreateMonster(_fbb, _o->enemy.get(), _rehasher) : 0; auto _testnestedflatbuffer = _o->testnestedflatbuffer.size() ? _fbb.CreateVector(_o->testnestedflatbuffer) : 0; auto _testempty = _o->testempty ? CreateStat(_fbb, _o->testempty.get(), _rehasher) : 0; @@ -3153,10 +3153,10 @@ inline flatbuffers::Offset CreateMonster(flatbuffers::FlatBufferBuilder auto _vector_of_longs = _o->vector_of_longs.size() ? _fbb.CreateVector(_o->vector_of_longs) : 0; auto _vector_of_doubles = _o->vector_of_doubles.size() ? _fbb.CreateVector(_o->vector_of_doubles) : 0; auto _parent_namespace_test = _o->parent_namespace_test ? CreateInParentNamespace(_fbb, _o->parent_namespace_test.get(), _rehasher) : 0; - auto _vector_of_referrables = _o->vector_of_referrables.size() ? _fbb.CreateVector> (_o->vector_of_referrables.size(), [](size_t i, _VectorArgs *__va) { return CreateReferrable(*__va->__fbb, __va->__o->vector_of_referrables[i].get(), __va->__rehasher); }, &_va ) : 0; + auto _vector_of_referrables = _o->vector_of_referrables.size() ? _fbb.CreateVector<::flatbuffers::Offset> (_o->vector_of_referrables.size(), [](size_t i, _VectorArgs *__va) { return CreateReferrable(*__va->__fbb, __va->__o->vector_of_referrables[i].get(), __va->__rehasher); }, &_va ) : 0; auto _single_weak_reference = _rehasher ? static_cast((*_rehasher)(_o->single_weak_reference)) : 0; auto _vector_of_weak_references = _o->vector_of_weak_references.size() ? _fbb.CreateVector(_o->vector_of_weak_references.size(), [](size_t i, _VectorArgs *__va) { return __va->__rehasher ? static_cast((*__va->__rehasher)(__va->__o->vector_of_weak_references[i])) : 0; }, &_va ) : 0; - auto _vector_of_strong_referrables = _o->vector_of_strong_referrables.size() ? _fbb.CreateVector> (_o->vector_of_strong_referrables.size(), [](size_t i, _VectorArgs *__va) { return CreateReferrable(*__va->__fbb, __va->__o->vector_of_strong_referrables[i].get(), __va->__rehasher); }, &_va ) : 0; + auto _vector_of_strong_referrables = _o->vector_of_strong_referrables.size() ? _fbb.CreateVector<::flatbuffers::Offset> (_o->vector_of_strong_referrables.size(), [](size_t i, _VectorArgs *__va) { return CreateReferrable(*__va->__fbb, __va->__o->vector_of_strong_referrables[i].get(), __va->__rehasher); }, &_va ) : 0; auto _co_owning_reference = _rehasher ? static_cast((*_rehasher)(_o->co_owning_reference)) : 0; auto _vector_of_co_owning_references = _o->vector_of_co_owning_references.size() ? _fbb.CreateVector(_o->vector_of_co_owning_references.size(), [](size_t i, _VectorArgs *__va) { return __va->__rehasher ? static_cast((*__va->__rehasher)(__va->__o->vector_of_co_owning_references[i].get())) : 0; }, &_va ) : 0; auto _non_owning_reference = _rehasher ? static_cast((*_rehasher)(_o->non_owning_reference)) : 0; @@ -3165,10 +3165,10 @@ inline flatbuffers::Offset CreateMonster(flatbuffers::FlatBufferBuilder auto _any_unique = _o->any_unique.Pack(_fbb); auto _any_ambiguous_type = _o->any_ambiguous.type; auto _any_ambiguous = _o->any_ambiguous.Pack(_fbb); - auto _vector_of_enums = _o->vector_of_enums.size() ? _fbb.CreateVectorScalarCast(flatbuffers::data(_o->vector_of_enums), _o->vector_of_enums.size()) : 0; + auto _vector_of_enums = _o->vector_of_enums.size() ? _fbb.CreateVectorScalarCast(::flatbuffers::data(_o->vector_of_enums), _o->vector_of_enums.size()) : 0; auto _signed_enum = _o->signed_enum; auto _testrequirednestedflatbuffer = _o->testrequirednestedflatbuffer.size() ? _fbb.CreateVector(_o->testrequirednestedflatbuffer) : 0; - auto _scalar_key_sorted_tables = _o->scalar_key_sorted_tables.size() ? _fbb.CreateVector> (_o->scalar_key_sorted_tables.size(), [](size_t i, _VectorArgs *__va) { return CreateStat(*__va->__fbb, __va->__o->scalar_key_sorted_tables[i].get(), __va->__rehasher); }, &_va ) : 0; + auto _scalar_key_sorted_tables = _o->scalar_key_sorted_tables.size() ? _fbb.CreateVector<::flatbuffers::Offset> (_o->scalar_key_sorted_tables.size(), [](size_t i, _VectorArgs *__va) { return CreateStat(*__va->__fbb, __va->__o->scalar_key_sorted_tables[i].get(), __va->__rehasher); }, &_va ) : 0; auto _native_inline = &_o->native_inline; auto _long_enum_non_enum_default = _o->long_enum_non_enum_default; auto _long_enum_normal_default = _o->long_enum_normal_default; @@ -3267,13 +3267,13 @@ inline bool operator!=(const TypeAliasesT &lhs, const TypeAliasesT &rhs) { } -inline TypeAliasesT *TypeAliases::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +inline TypeAliasesT *TypeAliases::UnPack(const ::flatbuffers::resolver_function_t *_resolver) const { auto _o = std::unique_ptr(new TypeAliasesT()); UnPackTo(_o.get(), _resolver); return _o.release(); } -inline void TypeAliases::UnPackTo(TypeAliasesT *_o, const flatbuffers::resolver_function_t *_resolver) const { +inline void TypeAliases::UnPackTo(TypeAliasesT *_o, const ::flatbuffers::resolver_function_t *_resolver) const { (void)_o; (void)_resolver; { auto _e = i8(); _o->i8 = _e; } @@ -3287,17 +3287,17 @@ inline void TypeAliases::UnPackTo(TypeAliasesT *_o, const flatbuffers::resolver_ { auto _e = f32(); _o->f32 = _e; } { auto _e = f64(); _o->f64 = _e; } { auto _e = v8(); if (_e) { _o->v8.resize(_e->size()); std::copy(_e->begin(), _e->end(), _o->v8.begin()); } } - { auto _e = vf64(); if (_e) { _o->vf64.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->vf64[_i] = _e->Get(_i); } } else { _o->vf64.resize(0); } } + { auto _e = vf64(); if (_e) { _o->vf64.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->vf64[_i] = _e->Get(_i); } } else { _o->vf64.resize(0); } } } -inline flatbuffers::Offset TypeAliases::Pack(flatbuffers::FlatBufferBuilder &_fbb, const TypeAliasesT* _o, const flatbuffers::rehasher_function_t *_rehasher) { +inline ::flatbuffers::Offset TypeAliases::Pack(::flatbuffers::FlatBufferBuilder &_fbb, const TypeAliasesT* _o, const ::flatbuffers::rehasher_function_t *_rehasher) { return CreateTypeAliases(_fbb, _o, _rehasher); } -inline flatbuffers::Offset CreateTypeAliases(flatbuffers::FlatBufferBuilder &_fbb, const TypeAliasesT *_o, const flatbuffers::rehasher_function_t *_rehasher) { +inline ::flatbuffers::Offset CreateTypeAliases(::flatbuffers::FlatBufferBuilder &_fbb, const TypeAliasesT *_o, const ::flatbuffers::rehasher_function_t *_rehasher) { (void)_rehasher; (void)_o; - struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const TypeAliasesT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; + struct _VectorArgs { ::flatbuffers::FlatBufferBuilder *__fbb; const TypeAliasesT* __o; const ::flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; auto _i8 = _o->i8; auto _u8 = _o->u8; auto _i16 = _o->i16; @@ -3326,7 +3326,7 @@ inline flatbuffers::Offset CreateTypeAliases(flatbuffers::FlatBuffe _vf64); } -inline bool VerifyAny(flatbuffers::Verifier &verifier, const void *obj, Any type) { +inline bool VerifyAny(::flatbuffers::Verifier &verifier, const void *obj, Any type) { switch (type) { case Any_NONE: { return true; @@ -3347,10 +3347,10 @@ inline bool VerifyAny(flatbuffers::Verifier &verifier, const void *obj, Any type } } -inline bool VerifyAnyVector(flatbuffers::Verifier &verifier, const flatbuffers::Vector> *values, const flatbuffers::Vector *types) { +inline bool VerifyAnyVector(::flatbuffers::Verifier &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types) { if (!values || !types) return !values && !types; if (values->size() != types->size()) return false; - for (flatbuffers::uoffset_t i = 0; i < values->size(); ++i) { + for (::flatbuffers::uoffset_t i = 0; i < values->size(); ++i) { if (!VerifyAny( verifier, values->Get(i), types->GetEnum(i))) { return false; @@ -3359,7 +3359,7 @@ inline bool VerifyAnyVector(flatbuffers::Verifier &verifier, const flatbuffers:: return true; } -inline void *AnyUnion::UnPack(const void *obj, Any type, const flatbuffers::resolver_function_t *resolver) { +inline void *AnyUnion::UnPack(const void *obj, Any type, const ::flatbuffers::resolver_function_t *resolver) { (void)resolver; switch (type) { case Any_Monster: { @@ -3378,7 +3378,7 @@ inline void *AnyUnion::UnPack(const void *obj, Any type, const flatbuffers::reso } } -inline flatbuffers::Offset AnyUnion::Pack(flatbuffers::FlatBufferBuilder &_fbb, const flatbuffers::rehasher_function_t *_rehasher) const { +inline ::flatbuffers::Offset AnyUnion::Pack(::flatbuffers::FlatBufferBuilder &_fbb, const ::flatbuffers::rehasher_function_t *_rehasher) const { (void)_rehasher; switch (type) { case Any_Monster: { @@ -3439,7 +3439,7 @@ inline void AnyUnion::Reset() { type = Any_NONE; } -inline bool VerifyAnyUniqueAliases(flatbuffers::Verifier &verifier, const void *obj, AnyUniqueAliases type) { +inline bool VerifyAnyUniqueAliases(::flatbuffers::Verifier &verifier, const void *obj, AnyUniqueAliases type) { switch (type) { case AnyUniqueAliases_NONE: { return true; @@ -3460,10 +3460,10 @@ inline bool VerifyAnyUniqueAliases(flatbuffers::Verifier &verifier, const void * } } -inline bool VerifyAnyUniqueAliasesVector(flatbuffers::Verifier &verifier, const flatbuffers::Vector> *values, const flatbuffers::Vector *types) { +inline bool VerifyAnyUniqueAliasesVector(::flatbuffers::Verifier &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types) { if (!values || !types) return !values && !types; if (values->size() != types->size()) return false; - for (flatbuffers::uoffset_t i = 0; i < values->size(); ++i) { + for (::flatbuffers::uoffset_t i = 0; i < values->size(); ++i) { if (!VerifyAnyUniqueAliases( verifier, values->Get(i), types->GetEnum(i))) { return false; @@ -3472,7 +3472,7 @@ inline bool VerifyAnyUniqueAliasesVector(flatbuffers::Verifier &verifier, const return true; } -inline void *AnyUniqueAliasesUnion::UnPack(const void *obj, AnyUniqueAliases type, const flatbuffers::resolver_function_t *resolver) { +inline void *AnyUniqueAliasesUnion::UnPack(const void *obj, AnyUniqueAliases type, const ::flatbuffers::resolver_function_t *resolver) { (void)resolver; switch (type) { case AnyUniqueAliases_M: { @@ -3491,7 +3491,7 @@ inline void *AnyUniqueAliasesUnion::UnPack(const void *obj, AnyUniqueAliases typ } } -inline flatbuffers::Offset AnyUniqueAliasesUnion::Pack(flatbuffers::FlatBufferBuilder &_fbb, const flatbuffers::rehasher_function_t *_rehasher) const { +inline ::flatbuffers::Offset AnyUniqueAliasesUnion::Pack(::flatbuffers::FlatBufferBuilder &_fbb, const ::flatbuffers::rehasher_function_t *_rehasher) const { (void)_rehasher; switch (type) { case AnyUniqueAliases_M: { @@ -3552,7 +3552,7 @@ inline void AnyUniqueAliasesUnion::Reset() { type = AnyUniqueAliases_NONE; } -inline bool VerifyAnyAmbiguousAliases(flatbuffers::Verifier &verifier, const void *obj, AnyAmbiguousAliases type) { +inline bool VerifyAnyAmbiguousAliases(::flatbuffers::Verifier &verifier, const void *obj, AnyAmbiguousAliases type) { switch (type) { case AnyAmbiguousAliases_NONE: { return true; @@ -3573,10 +3573,10 @@ inline bool VerifyAnyAmbiguousAliases(flatbuffers::Verifier &verifier, const voi } } -inline bool VerifyAnyAmbiguousAliasesVector(flatbuffers::Verifier &verifier, const flatbuffers::Vector> *values, const flatbuffers::Vector *types) { +inline bool VerifyAnyAmbiguousAliasesVector(::flatbuffers::Verifier &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types) { if (!values || !types) return !values && !types; if (values->size() != types->size()) return false; - for (flatbuffers::uoffset_t i = 0; i < values->size(); ++i) { + for (::flatbuffers::uoffset_t i = 0; i < values->size(); ++i) { if (!VerifyAnyAmbiguousAliases( verifier, values->Get(i), types->GetEnum(i))) { return false; @@ -3585,7 +3585,7 @@ inline bool VerifyAnyAmbiguousAliasesVector(flatbuffers::Verifier &verifier, con return true; } -inline void *AnyAmbiguousAliasesUnion::UnPack(const void *obj, AnyAmbiguousAliases type, const flatbuffers::resolver_function_t *resolver) { +inline void *AnyAmbiguousAliasesUnion::UnPack(const void *obj, AnyAmbiguousAliases type, const ::flatbuffers::resolver_function_t *resolver) { (void)resolver; switch (type) { case AnyAmbiguousAliases_M1: { @@ -3604,7 +3604,7 @@ inline void *AnyAmbiguousAliasesUnion::UnPack(const void *obj, AnyAmbiguousAlias } } -inline flatbuffers::Offset AnyAmbiguousAliasesUnion::Pack(flatbuffers::FlatBufferBuilder &_fbb, const flatbuffers::rehasher_function_t *_rehasher) const { +inline ::flatbuffers::Offset AnyAmbiguousAliasesUnion::Pack(::flatbuffers::FlatBufferBuilder &_fbb, const ::flatbuffers::rehasher_function_t *_rehasher) const { (void)_rehasher; switch (type) { case AnyAmbiguousAliases_M1: { @@ -3665,13 +3665,13 @@ inline void AnyAmbiguousAliasesUnion::Reset() { type = AnyAmbiguousAliases_NONE; } -inline const flatbuffers::TypeTable *ColorTypeTable() { - static const flatbuffers::TypeCode type_codes[] = { - { flatbuffers::ET_UCHAR, 0, 0 }, - { flatbuffers::ET_UCHAR, 0, 0 }, - { flatbuffers::ET_UCHAR, 0, 0 } +inline const ::flatbuffers::TypeTable *ColorTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_UCHAR, 0, 0 }, + { ::flatbuffers::ET_UCHAR, 0, 0 }, + { ::flatbuffers::ET_UCHAR, 0, 0 } }; - static const flatbuffers::TypeFunction type_refs[] = { + static const ::flatbuffers::TypeFunction type_refs[] = { MyGame::Example::ColorTypeTable }; static const int64_t values[] = { 1, 2, 8 }; @@ -3680,20 +3680,20 @@ inline const flatbuffers::TypeTable *ColorTypeTable() { "Green", "Blue" }; - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_ENUM, 3, type_codes, type_refs, nullptr, values, names + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_ENUM, 3, type_codes, type_refs, nullptr, values, names }; return &tt; } -inline const flatbuffers::TypeTable *RaceTypeTable() { - static const flatbuffers::TypeCode type_codes[] = { - { flatbuffers::ET_CHAR, 0, 0 }, - { flatbuffers::ET_CHAR, 0, 0 }, - { flatbuffers::ET_CHAR, 0, 0 }, - { flatbuffers::ET_CHAR, 0, 0 } +inline const ::flatbuffers::TypeTable *RaceTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_CHAR, 0, 0 }, + { ::flatbuffers::ET_CHAR, 0, 0 }, + { ::flatbuffers::ET_CHAR, 0, 0 }, + { ::flatbuffers::ET_CHAR, 0, 0 } }; - static const flatbuffers::TypeFunction type_refs[] = { + static const ::flatbuffers::TypeFunction type_refs[] = { MyGame::Example::RaceTypeTable }; static const int64_t values[] = { -1, 0, 1, 2 }; @@ -3703,19 +3703,19 @@ inline const flatbuffers::TypeTable *RaceTypeTable() { "Dwarf", "Elf" }; - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_ENUM, 4, type_codes, type_refs, nullptr, values, names + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_ENUM, 4, type_codes, type_refs, nullptr, values, names }; return &tt; } -inline const flatbuffers::TypeTable *LongEnumTypeTable() { - static const flatbuffers::TypeCode type_codes[] = { - { flatbuffers::ET_ULONG, 0, 0 }, - { flatbuffers::ET_ULONG, 0, 0 }, - { flatbuffers::ET_ULONG, 0, 0 } +inline const ::flatbuffers::TypeTable *LongEnumTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_ULONG, 0, 0 }, + { ::flatbuffers::ET_ULONG, 0, 0 }, + { ::flatbuffers::ET_ULONG, 0, 0 } }; - static const flatbuffers::TypeFunction type_refs[] = { + static const ::flatbuffers::TypeFunction type_refs[] = { MyGame::Example::LongEnumTypeTable }; static const int64_t values[] = { 2ULL, 4ULL, 1099511627776ULL }; @@ -3724,20 +3724,20 @@ inline const flatbuffers::TypeTable *LongEnumTypeTable() { "LongTwo", "LongBig" }; - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_ENUM, 3, type_codes, type_refs, nullptr, values, names + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_ENUM, 3, type_codes, type_refs, nullptr, values, names }; return &tt; } -inline const flatbuffers::TypeTable *AnyTypeTable() { - static const flatbuffers::TypeCode type_codes[] = { - { flatbuffers::ET_SEQUENCE, 0, -1 }, - { flatbuffers::ET_SEQUENCE, 0, 0 }, - { flatbuffers::ET_SEQUENCE, 0, 1 }, - { flatbuffers::ET_SEQUENCE, 0, 2 } +inline const ::flatbuffers::TypeTable *AnyTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_SEQUENCE, 0, -1 }, + { ::flatbuffers::ET_SEQUENCE, 0, 0 }, + { ::flatbuffers::ET_SEQUENCE, 0, 1 }, + { ::flatbuffers::ET_SEQUENCE, 0, 2 } }; - static const flatbuffers::TypeFunction type_refs[] = { + static const ::flatbuffers::TypeFunction type_refs[] = { MyGame::Example::MonsterTypeTable, MyGame::Example::TestSimpleTableWithEnumTypeTable, MyGame::Example2::MonsterTypeTable @@ -3748,20 +3748,20 @@ inline const flatbuffers::TypeTable *AnyTypeTable() { "TestSimpleTableWithEnum", "MyGame_Example2_Monster" }; - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_UNION, 4, type_codes, type_refs, nullptr, nullptr, names + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_UNION, 4, type_codes, type_refs, nullptr, nullptr, names }; return &tt; } -inline const flatbuffers::TypeTable *AnyUniqueAliasesTypeTable() { - static const flatbuffers::TypeCode type_codes[] = { - { flatbuffers::ET_SEQUENCE, 0, -1 }, - { flatbuffers::ET_SEQUENCE, 0, 0 }, - { flatbuffers::ET_SEQUENCE, 0, 1 }, - { flatbuffers::ET_SEQUENCE, 0, 2 } +inline const ::flatbuffers::TypeTable *AnyUniqueAliasesTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_SEQUENCE, 0, -1 }, + { ::flatbuffers::ET_SEQUENCE, 0, 0 }, + { ::flatbuffers::ET_SEQUENCE, 0, 1 }, + { ::flatbuffers::ET_SEQUENCE, 0, 2 } }; - static const flatbuffers::TypeFunction type_refs[] = { + static const ::flatbuffers::TypeFunction type_refs[] = { MyGame::Example::MonsterTypeTable, MyGame::Example::TestSimpleTableWithEnumTypeTable, MyGame::Example2::MonsterTypeTable @@ -3772,20 +3772,20 @@ inline const flatbuffers::TypeTable *AnyUniqueAliasesTypeTable() { "TS", "M2" }; - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_UNION, 4, type_codes, type_refs, nullptr, nullptr, names + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_UNION, 4, type_codes, type_refs, nullptr, nullptr, names }; return &tt; } -inline const flatbuffers::TypeTable *AnyAmbiguousAliasesTypeTable() { - static const flatbuffers::TypeCode type_codes[] = { - { flatbuffers::ET_SEQUENCE, 0, -1 }, - { flatbuffers::ET_SEQUENCE, 0, 0 }, - { flatbuffers::ET_SEQUENCE, 0, 0 }, - { flatbuffers::ET_SEQUENCE, 0, 0 } +inline const ::flatbuffers::TypeTable *AnyAmbiguousAliasesTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_SEQUENCE, 0, -1 }, + { ::flatbuffers::ET_SEQUENCE, 0, 0 }, + { ::flatbuffers::ET_SEQUENCE, 0, 0 }, + { ::flatbuffers::ET_SEQUENCE, 0, 0 } }; - static const flatbuffers::TypeFunction type_refs[] = { + static const ::flatbuffers::TypeFunction type_refs[] = { MyGame::Example::MonsterTypeTable }; static const char * const names[] = { @@ -3794,26 +3794,26 @@ inline const flatbuffers::TypeTable *AnyAmbiguousAliasesTypeTable() { "M2", "M3" }; - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_UNION, 4, type_codes, type_refs, nullptr, nullptr, names + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_UNION, 4, type_codes, type_refs, nullptr, nullptr, names }; return &tt; } } // namespace Example -inline const flatbuffers::TypeTable *InParentNamespaceTypeTable() { - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_TABLE, 0, nullptr, nullptr, nullptr, nullptr, nullptr +inline const ::flatbuffers::TypeTable *InParentNamespaceTypeTable() { + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_TABLE, 0, nullptr, nullptr, nullptr, nullptr, nullptr }; return &tt; } namespace Example2 { -inline const flatbuffers::TypeTable *MonsterTypeTable() { - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_TABLE, 0, nullptr, nullptr, nullptr, nullptr, nullptr +inline const ::flatbuffers::TypeTable *MonsterTypeTable() { + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_TABLE, 0, nullptr, nullptr, nullptr, nullptr, nullptr }; return &tt; } @@ -3822,48 +3822,48 @@ inline const flatbuffers::TypeTable *MonsterTypeTable() { namespace Example { -inline const flatbuffers::TypeTable *TestTypeTable() { - static const flatbuffers::TypeCode type_codes[] = { - { flatbuffers::ET_SHORT, 0, -1 }, - { flatbuffers::ET_CHAR, 0, -1 } +inline const ::flatbuffers::TypeTable *TestTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_SHORT, 0, -1 }, + { ::flatbuffers::ET_CHAR, 0, -1 } }; static const int64_t values[] = { 0, 2, 4 }; static const char * const names[] = { "a", "b" }; - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_STRUCT, 2, type_codes, nullptr, nullptr, values, names + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_STRUCT, 2, type_codes, nullptr, nullptr, values, names }; return &tt; } -inline const flatbuffers::TypeTable *TestSimpleTableWithEnumTypeTable() { - static const flatbuffers::TypeCode type_codes[] = { - { flatbuffers::ET_UCHAR, 0, 0 } +inline const ::flatbuffers::TypeTable *TestSimpleTableWithEnumTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_UCHAR, 0, 0 } }; - static const flatbuffers::TypeFunction type_refs[] = { + static const ::flatbuffers::TypeFunction type_refs[] = { MyGame::Example::ColorTypeTable }; static const char * const names[] = { "color" }; - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_TABLE, 1, type_codes, type_refs, nullptr, nullptr, names + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_TABLE, 1, type_codes, type_refs, nullptr, nullptr, names }; return &tt; } -inline const flatbuffers::TypeTable *Vec3TypeTable() { - static const flatbuffers::TypeCode type_codes[] = { - { flatbuffers::ET_FLOAT, 0, -1 }, - { flatbuffers::ET_FLOAT, 0, -1 }, - { flatbuffers::ET_FLOAT, 0, -1 }, - { flatbuffers::ET_DOUBLE, 0, -1 }, - { flatbuffers::ET_UCHAR, 0, 0 }, - { flatbuffers::ET_SEQUENCE, 0, 1 } +inline const ::flatbuffers::TypeTable *Vec3TypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_FLOAT, 0, -1 }, + { ::flatbuffers::ET_FLOAT, 0, -1 }, + { ::flatbuffers::ET_FLOAT, 0, -1 }, + { ::flatbuffers::ET_DOUBLE, 0, -1 }, + { ::flatbuffers::ET_UCHAR, 0, 0 }, + { ::flatbuffers::ET_SEQUENCE, 0, 1 } }; - static const flatbuffers::TypeFunction type_refs[] = { + static const ::flatbuffers::TypeFunction type_refs[] = { MyGame::Example::ColorTypeTable, MyGame::Example::TestTypeTable }; @@ -3876,35 +3876,35 @@ inline const flatbuffers::TypeTable *Vec3TypeTable() { "test2", "test3" }; - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_STRUCT, 6, type_codes, type_refs, nullptr, values, names + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_STRUCT, 6, type_codes, type_refs, nullptr, values, names }; return &tt; } -inline const flatbuffers::TypeTable *AbilityTypeTable() { - static const flatbuffers::TypeCode type_codes[] = { - { flatbuffers::ET_UINT, 0, -1 }, - { flatbuffers::ET_UINT, 0, -1 } +inline const ::flatbuffers::TypeTable *AbilityTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_UINT, 0, -1 }, + { ::flatbuffers::ET_UINT, 0, -1 } }; static const int64_t values[] = { 0, 4, 8 }; static const char * const names[] = { "id", "distance" }; - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_STRUCT, 2, type_codes, nullptr, nullptr, values, names + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_STRUCT, 2, type_codes, nullptr, nullptr, values, names }; return &tt; } -inline const flatbuffers::TypeTable *StructOfStructsTypeTable() { - static const flatbuffers::TypeCode type_codes[] = { - { flatbuffers::ET_SEQUENCE, 0, 0 }, - { flatbuffers::ET_SEQUENCE, 0, 1 }, - { flatbuffers::ET_SEQUENCE, 0, 0 } +inline const ::flatbuffers::TypeTable *StructOfStructsTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_SEQUENCE, 0, 0 }, + { ::flatbuffers::ET_SEQUENCE, 0, 1 }, + { ::flatbuffers::ET_SEQUENCE, 0, 0 } }; - static const flatbuffers::TypeFunction type_refs[] = { + static const ::flatbuffers::TypeFunction type_refs[] = { MyGame::Example::AbilityTypeTable, MyGame::Example::TestTypeTable }; @@ -3914,125 +3914,125 @@ inline const flatbuffers::TypeTable *StructOfStructsTypeTable() { "b", "c" }; - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_STRUCT, 3, type_codes, type_refs, nullptr, values, names + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_STRUCT, 3, type_codes, type_refs, nullptr, values, names }; return &tt; } -inline const flatbuffers::TypeTable *StructOfStructsOfStructsTypeTable() { - static const flatbuffers::TypeCode type_codes[] = { - { flatbuffers::ET_SEQUENCE, 0, 0 } +inline const ::flatbuffers::TypeTable *StructOfStructsOfStructsTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_SEQUENCE, 0, 0 } }; - static const flatbuffers::TypeFunction type_refs[] = { + static const ::flatbuffers::TypeFunction type_refs[] = { MyGame::Example::StructOfStructsTypeTable }; static const int64_t values[] = { 0, 20 }; static const char * const names[] = { "a" }; - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_STRUCT, 1, type_codes, type_refs, nullptr, values, names + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_STRUCT, 1, type_codes, type_refs, nullptr, values, names }; return &tt; } -inline const flatbuffers::TypeTable *StatTypeTable() { - static const flatbuffers::TypeCode type_codes[] = { - { flatbuffers::ET_STRING, 0, -1 }, - { flatbuffers::ET_LONG, 0, -1 }, - { flatbuffers::ET_USHORT, 0, -1 } +inline const ::flatbuffers::TypeTable *StatTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_STRING, 0, -1 }, + { ::flatbuffers::ET_LONG, 0, -1 }, + { ::flatbuffers::ET_USHORT, 0, -1 } }; static const char * const names[] = { "id", "val", "count" }; - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_TABLE, 3, type_codes, nullptr, nullptr, nullptr, names + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_TABLE, 3, type_codes, nullptr, nullptr, nullptr, names }; return &tt; } -inline const flatbuffers::TypeTable *ReferrableTypeTable() { - static const flatbuffers::TypeCode type_codes[] = { - { flatbuffers::ET_ULONG, 0, -1 } +inline const ::flatbuffers::TypeTable *ReferrableTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_ULONG, 0, -1 } }; static const char * const names[] = { "id" }; - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_TABLE, 1, type_codes, nullptr, nullptr, nullptr, names + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_TABLE, 1, type_codes, nullptr, nullptr, nullptr, names }; return &tt; } -inline const flatbuffers::TypeTable *MonsterTypeTable() { - static const flatbuffers::TypeCode type_codes[] = { - { flatbuffers::ET_SEQUENCE, 0, 0 }, - { flatbuffers::ET_SHORT, 0, -1 }, - { flatbuffers::ET_SHORT, 0, -1 }, - { flatbuffers::ET_STRING, 0, -1 }, - { flatbuffers::ET_BOOL, 0, -1 }, - { flatbuffers::ET_UCHAR, 1, -1 }, - { flatbuffers::ET_UCHAR, 0, 1 }, - { flatbuffers::ET_UTYPE, 0, 2 }, - { flatbuffers::ET_SEQUENCE, 0, 2 }, - { flatbuffers::ET_SEQUENCE, 1, 3 }, - { flatbuffers::ET_STRING, 1, -1 }, - { flatbuffers::ET_SEQUENCE, 1, 4 }, - { flatbuffers::ET_SEQUENCE, 0, 4 }, - { flatbuffers::ET_UCHAR, 1, -1 }, - { flatbuffers::ET_SEQUENCE, 0, 5 }, - { flatbuffers::ET_BOOL, 0, -1 }, - { flatbuffers::ET_INT, 0, -1 }, - { flatbuffers::ET_UINT, 0, -1 }, - { flatbuffers::ET_LONG, 0, -1 }, - { flatbuffers::ET_ULONG, 0, -1 }, - { flatbuffers::ET_INT, 0, -1 }, - { flatbuffers::ET_UINT, 0, -1 }, - { flatbuffers::ET_LONG, 0, -1 }, - { flatbuffers::ET_ULONG, 0, -1 }, - { flatbuffers::ET_BOOL, 1, -1 }, - { flatbuffers::ET_FLOAT, 0, -1 }, - { flatbuffers::ET_FLOAT, 0, -1 }, - { flatbuffers::ET_FLOAT, 0, -1 }, - { flatbuffers::ET_STRING, 1, -1 }, - { flatbuffers::ET_SEQUENCE, 1, 6 }, - { flatbuffers::ET_UCHAR, 1, -1 }, - { flatbuffers::ET_SEQUENCE, 1, 3 }, - { flatbuffers::ET_LONG, 1, -1 }, - { flatbuffers::ET_DOUBLE, 1, -1 }, - { flatbuffers::ET_SEQUENCE, 0, 7 }, - { flatbuffers::ET_SEQUENCE, 1, 8 }, - { flatbuffers::ET_ULONG, 0, -1 }, - { flatbuffers::ET_ULONG, 1, -1 }, - { flatbuffers::ET_SEQUENCE, 1, 8 }, - { flatbuffers::ET_ULONG, 0, -1 }, - { flatbuffers::ET_ULONG, 1, -1 }, - { flatbuffers::ET_ULONG, 0, -1 }, - { flatbuffers::ET_ULONG, 1, -1 }, - { flatbuffers::ET_UTYPE, 0, 9 }, - { flatbuffers::ET_SEQUENCE, 0, 9 }, - { flatbuffers::ET_UTYPE, 0, 10 }, - { flatbuffers::ET_SEQUENCE, 0, 10 }, - { flatbuffers::ET_UCHAR, 1, 1 }, - { flatbuffers::ET_CHAR, 0, 11 }, - { flatbuffers::ET_UCHAR, 1, -1 }, - { flatbuffers::ET_SEQUENCE, 1, 5 }, - { flatbuffers::ET_SEQUENCE, 0, 3 }, - { flatbuffers::ET_ULONG, 0, 12 }, - { flatbuffers::ET_ULONG, 0, 12 }, - { flatbuffers::ET_FLOAT, 0, -1 }, - { flatbuffers::ET_FLOAT, 0, -1 }, - { flatbuffers::ET_FLOAT, 0, -1 }, - { flatbuffers::ET_FLOAT, 0, -1 }, - { flatbuffers::ET_FLOAT, 0, -1 }, - { flatbuffers::ET_FLOAT, 0, -1 }, - { flatbuffers::ET_FLOAT, 0, -1 }, - { flatbuffers::ET_DOUBLE, 0, -1 } +inline const ::flatbuffers::TypeTable *MonsterTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_SEQUENCE, 0, 0 }, + { ::flatbuffers::ET_SHORT, 0, -1 }, + { ::flatbuffers::ET_SHORT, 0, -1 }, + { ::flatbuffers::ET_STRING, 0, -1 }, + { ::flatbuffers::ET_BOOL, 0, -1 }, + { ::flatbuffers::ET_UCHAR, 1, -1 }, + { ::flatbuffers::ET_UCHAR, 0, 1 }, + { ::flatbuffers::ET_UTYPE, 0, 2 }, + { ::flatbuffers::ET_SEQUENCE, 0, 2 }, + { ::flatbuffers::ET_SEQUENCE, 1, 3 }, + { ::flatbuffers::ET_STRING, 1, -1 }, + { ::flatbuffers::ET_SEQUENCE, 1, 4 }, + { ::flatbuffers::ET_SEQUENCE, 0, 4 }, + { ::flatbuffers::ET_UCHAR, 1, -1 }, + { ::flatbuffers::ET_SEQUENCE, 0, 5 }, + { ::flatbuffers::ET_BOOL, 0, -1 }, + { ::flatbuffers::ET_INT, 0, -1 }, + { ::flatbuffers::ET_UINT, 0, -1 }, + { ::flatbuffers::ET_LONG, 0, -1 }, + { ::flatbuffers::ET_ULONG, 0, -1 }, + { ::flatbuffers::ET_INT, 0, -1 }, + { ::flatbuffers::ET_UINT, 0, -1 }, + { ::flatbuffers::ET_LONG, 0, -1 }, + { ::flatbuffers::ET_ULONG, 0, -1 }, + { ::flatbuffers::ET_BOOL, 1, -1 }, + { ::flatbuffers::ET_FLOAT, 0, -1 }, + { ::flatbuffers::ET_FLOAT, 0, -1 }, + { ::flatbuffers::ET_FLOAT, 0, -1 }, + { ::flatbuffers::ET_STRING, 1, -1 }, + { ::flatbuffers::ET_SEQUENCE, 1, 6 }, + { ::flatbuffers::ET_UCHAR, 1, -1 }, + { ::flatbuffers::ET_SEQUENCE, 1, 3 }, + { ::flatbuffers::ET_LONG, 1, -1 }, + { ::flatbuffers::ET_DOUBLE, 1, -1 }, + { ::flatbuffers::ET_SEQUENCE, 0, 7 }, + { ::flatbuffers::ET_SEQUENCE, 1, 8 }, + { ::flatbuffers::ET_ULONG, 0, -1 }, + { ::flatbuffers::ET_ULONG, 1, -1 }, + { ::flatbuffers::ET_SEQUENCE, 1, 8 }, + { ::flatbuffers::ET_ULONG, 0, -1 }, + { ::flatbuffers::ET_ULONG, 1, -1 }, + { ::flatbuffers::ET_ULONG, 0, -1 }, + { ::flatbuffers::ET_ULONG, 1, -1 }, + { ::flatbuffers::ET_UTYPE, 0, 9 }, + { ::flatbuffers::ET_SEQUENCE, 0, 9 }, + { ::flatbuffers::ET_UTYPE, 0, 10 }, + { ::flatbuffers::ET_SEQUENCE, 0, 10 }, + { ::flatbuffers::ET_UCHAR, 1, 1 }, + { ::flatbuffers::ET_CHAR, 0, 11 }, + { ::flatbuffers::ET_UCHAR, 1, -1 }, + { ::flatbuffers::ET_SEQUENCE, 1, 5 }, + { ::flatbuffers::ET_SEQUENCE, 0, 3 }, + { ::flatbuffers::ET_ULONG, 0, 12 }, + { ::flatbuffers::ET_ULONG, 0, 12 }, + { ::flatbuffers::ET_FLOAT, 0, -1 }, + { ::flatbuffers::ET_FLOAT, 0, -1 }, + { ::flatbuffers::ET_FLOAT, 0, -1 }, + { ::flatbuffers::ET_FLOAT, 0, -1 }, + { ::flatbuffers::ET_FLOAT, 0, -1 }, + { ::flatbuffers::ET_FLOAT, 0, -1 }, + { ::flatbuffers::ET_FLOAT, 0, -1 }, + { ::flatbuffers::ET_DOUBLE, 0, -1 } }; - static const flatbuffers::TypeFunction type_refs[] = { + static const ::flatbuffers::TypeFunction type_refs[] = { MyGame::Example::Vec3TypeTable, MyGame::Example::ColorTypeTable, MyGame::Example::AnyTypeTable, @@ -4111,26 +4111,26 @@ inline const flatbuffers::TypeTable *MonsterTypeTable() { "negative_infinity_default", "double_inf_default" }; - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_TABLE, 62, type_codes, type_refs, nullptr, nullptr, names + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_TABLE, 62, type_codes, type_refs, nullptr, nullptr, names }; return &tt; } -inline const flatbuffers::TypeTable *TypeAliasesTypeTable() { - static const flatbuffers::TypeCode type_codes[] = { - { flatbuffers::ET_CHAR, 0, -1 }, - { flatbuffers::ET_UCHAR, 0, -1 }, - { flatbuffers::ET_SHORT, 0, -1 }, - { flatbuffers::ET_USHORT, 0, -1 }, - { flatbuffers::ET_INT, 0, -1 }, - { flatbuffers::ET_UINT, 0, -1 }, - { flatbuffers::ET_LONG, 0, -1 }, - { flatbuffers::ET_ULONG, 0, -1 }, - { flatbuffers::ET_FLOAT, 0, -1 }, - { flatbuffers::ET_DOUBLE, 0, -1 }, - { flatbuffers::ET_CHAR, 1, -1 }, - { flatbuffers::ET_DOUBLE, 1, -1 } +inline const ::flatbuffers::TypeTable *TypeAliasesTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_CHAR, 0, -1 }, + { ::flatbuffers::ET_UCHAR, 0, -1 }, + { ::flatbuffers::ET_SHORT, 0, -1 }, + { ::flatbuffers::ET_USHORT, 0, -1 }, + { ::flatbuffers::ET_INT, 0, -1 }, + { ::flatbuffers::ET_UINT, 0, -1 }, + { ::flatbuffers::ET_LONG, 0, -1 }, + { ::flatbuffers::ET_ULONG, 0, -1 }, + { ::flatbuffers::ET_FLOAT, 0, -1 }, + { ::flatbuffers::ET_DOUBLE, 0, -1 }, + { ::flatbuffers::ET_CHAR, 1, -1 }, + { ::flatbuffers::ET_DOUBLE, 1, -1 } }; static const char * const names[] = { "i8", @@ -4146,26 +4146,26 @@ inline const flatbuffers::TypeTable *TypeAliasesTypeTable() { "v8", "vf64" }; - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_TABLE, 12, type_codes, nullptr, nullptr, nullptr, names + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_TABLE, 12, type_codes, nullptr, nullptr, nullptr, names }; return &tt; } inline const MyGame::Example::Monster *GetMonster(const void *buf) { - return flatbuffers::GetRoot(buf); + return ::flatbuffers::GetRoot(buf); } inline const MyGame::Example::Monster *GetSizePrefixedMonster(const void *buf) { - return flatbuffers::GetSizePrefixedRoot(buf); + return ::flatbuffers::GetSizePrefixedRoot(buf); } inline Monster *GetMutableMonster(void *buf) { - return flatbuffers::GetMutableRoot(buf); + return ::flatbuffers::GetMutableRoot(buf); } inline MyGame::Example::Monster *GetMutableSizePrefixedMonster(void *buf) { - return flatbuffers::GetMutableSizePrefixedRoot(buf); + return ::flatbuffers::GetMutableSizePrefixedRoot(buf); } inline const char *MonsterIdentifier() { @@ -4173,22 +4173,22 @@ inline const char *MonsterIdentifier() { } inline bool MonsterBufferHasIdentifier(const void *buf) { - return flatbuffers::BufferHasIdentifier( + return ::flatbuffers::BufferHasIdentifier( buf, MonsterIdentifier()); } inline bool SizePrefixedMonsterBufferHasIdentifier(const void *buf) { - return flatbuffers::BufferHasIdentifier( + return ::flatbuffers::BufferHasIdentifier( buf, MonsterIdentifier(), true); } inline bool VerifyMonsterBuffer( - flatbuffers::Verifier &verifier) { + ::flatbuffers::Verifier &verifier) { return verifier.VerifyBuffer(MonsterIdentifier()); } inline bool VerifySizePrefixedMonsterBuffer( - flatbuffers::Verifier &verifier) { + ::flatbuffers::Verifier &verifier) { return verifier.VerifySizePrefixedBuffer(MonsterIdentifier()); } @@ -4197,26 +4197,26 @@ inline const char *MonsterExtension() { } inline void FinishMonsterBuffer( - flatbuffers::FlatBufferBuilder &fbb, - flatbuffers::Offset root) { + ::flatbuffers::FlatBufferBuilder &fbb, + ::flatbuffers::Offset root) { fbb.Finish(root, MonsterIdentifier()); } inline void FinishSizePrefixedMonsterBuffer( - flatbuffers::FlatBufferBuilder &fbb, - flatbuffers::Offset root) { + ::flatbuffers::FlatBufferBuilder &fbb, + ::flatbuffers::Offset root) { fbb.FinishSizePrefixed(root, MonsterIdentifier()); } inline flatbuffers::unique_ptr UnPackMonster( const void *buf, - const flatbuffers::resolver_function_t *res = nullptr) { + const ::flatbuffers::resolver_function_t *res = nullptr) { return flatbuffers::unique_ptr(GetMonster(buf)->UnPack(res)); } inline flatbuffers::unique_ptr UnPackSizePrefixedMonster( const void *buf, - const flatbuffers::resolver_function_t *res = nullptr) { + const ::flatbuffers::resolver_function_t *res = nullptr) { return flatbuffers::unique_ptr(GetSizePrefixedMonster(buf)->UnPack(res)); } diff --git a/tests/namespace_test/namespace_test1_generated.h b/tests/namespace_test/namespace_test1_generated.h index bf6ddc6a25..4a40d5c61d 100644 --- a/tests/namespace_test/namespace_test1_generated.h +++ b/tests/namespace_test/namespace_test1_generated.h @@ -27,9 +27,9 @@ bool operator!=(const TableInNestedNST &lhs, const TableInNestedNST &rhs); bool operator==(const StructInNestedNS &lhs, const StructInNestedNS &rhs); bool operator!=(const StructInNestedNS &lhs, const StructInNestedNS &rhs); -inline const flatbuffers::TypeTable *TableInNestedNSTypeTable(); +inline const ::flatbuffers::TypeTable *TableInNestedNSTypeTable(); -inline const flatbuffers::TypeTable *StructInNestedNSTypeTable(); +inline const ::flatbuffers::TypeTable *StructInNestedNSTypeTable(); enum UnionInNestedNS : uint8_t { UnionInNestedNS_NONE = 0, @@ -56,7 +56,7 @@ inline const char * const *EnumNamesUnionInNestedNS() { } inline const char *EnumNameUnionInNestedNS(UnionInNestedNS e) { - if (flatbuffers::IsOutRange(e, UnionInNestedNS_NONE, UnionInNestedNS_TableInNestedNS)) return ""; + if (::flatbuffers::IsOutRange(e, UnionInNestedNS_NONE, UnionInNestedNS_TableInNestedNS)) return ""; const size_t index = static_cast(e); return EnumNamesUnionInNestedNS()[index]; } @@ -104,8 +104,8 @@ struct UnionInNestedNSUnion { } } - static void *UnPack(const void *obj, UnionInNestedNS type, const flatbuffers::resolver_function_t *resolver); - flatbuffers::Offset Pack(flatbuffers::FlatBufferBuilder &_fbb, const flatbuffers::rehasher_function_t *_rehasher = nullptr) const; + static void *UnPack(const void *obj, UnionInNestedNS type, const ::flatbuffers::resolver_function_t *resolver); + ::flatbuffers::Offset Pack(::flatbuffers::FlatBufferBuilder &_fbb, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr) const; NamespaceA::NamespaceB::TableInNestedNST *AsTableInNestedNS() { return type == UnionInNestedNS_TableInNestedNS ? @@ -138,8 +138,8 @@ inline bool operator!=(const UnionInNestedNSUnion &lhs, const UnionInNestedNSUni return !(lhs == rhs); } -bool VerifyUnionInNestedNS(flatbuffers::Verifier &verifier, const void *obj, UnionInNestedNS type); -bool VerifyUnionInNestedNSVector(flatbuffers::Verifier &verifier, const flatbuffers::Vector> *values, const flatbuffers::Vector *types); +bool VerifyUnionInNestedNS(::flatbuffers::Verifier &verifier, const void *obj, UnionInNestedNS type); +bool VerifyUnionInNestedNSVector(::flatbuffers::Verifier &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types); enum EnumInNestedNS : int8_t { EnumInNestedNS_A = 0, @@ -169,7 +169,7 @@ inline const char * const *EnumNamesEnumInNestedNS() { } inline const char *EnumNameEnumInNestedNS(EnumInNestedNS e) { - if (flatbuffers::IsOutRange(e, EnumInNestedNS_A, EnumInNestedNS_C)) return ""; + if (::flatbuffers::IsOutRange(e, EnumInNestedNS_A, EnumInNestedNS_C)) return ""; const size_t index = static_cast(e); return EnumNamesEnumInNestedNS()[index]; } @@ -180,7 +180,7 @@ FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(4) StructInNestedNS FLATBUFFERS_FINAL_CLASS int32_t b_; public: - static const flatbuffers::TypeTable *MiniReflectTypeTable() { + static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { return StructInNestedNSTypeTable(); } static FLATBUFFERS_CONSTEXPR_CPP11 const char *GetFullyQualifiedName() { @@ -191,20 +191,20 @@ FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(4) StructInNestedNS FLATBUFFERS_FINAL_CLASS b_(0) { } StructInNestedNS(int32_t _a, int32_t _b) - : a_(flatbuffers::EndianScalar(_a)), - b_(flatbuffers::EndianScalar(_b)) { + : a_(::flatbuffers::EndianScalar(_a)), + b_(::flatbuffers::EndianScalar(_b)) { } int32_t a() const { - return flatbuffers::EndianScalar(a_); + return ::flatbuffers::EndianScalar(a_); } void mutate_a(int32_t _a) { - flatbuffers::WriteScalar(&a_, _a); + ::flatbuffers::WriteScalar(&a_, _a); } int32_t b() const { - return flatbuffers::EndianScalar(b_); + return ::flatbuffers::EndianScalar(b_); } void mutate_b(int32_t _b) { - flatbuffers::WriteScalar(&b_, _b); + ::flatbuffers::WriteScalar(&b_, _b); } }; FLATBUFFERS_STRUCT_END(StructInNestedNS, 8); @@ -220,7 +220,7 @@ inline bool operator!=(const StructInNestedNS &lhs, const StructInNestedNS &rhs) } -struct TableInNestedNST : public flatbuffers::NativeTable { +struct TableInNestedNST : public ::flatbuffers::NativeTable { typedef TableInNestedNS TableType; static FLATBUFFERS_CONSTEXPR_CPP11 const char *GetFullyQualifiedName() { return "NamespaceA.NamespaceB.TableInNestedNST"; @@ -228,10 +228,10 @@ struct TableInNestedNST : public flatbuffers::NativeTable { int32_t foo = 0; }; -struct TableInNestedNS FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { +struct TableInNestedNS FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { typedef TableInNestedNST NativeTableType; typedef TableInNestedNSBuilder Builder; - static const flatbuffers::TypeTable *MiniReflectTypeTable() { + static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { return TableInNestedNSTypeTable(); } static FLATBUFFERS_CONSTEXPR_CPP11 const char *GetFullyQualifiedName() { @@ -246,43 +246,43 @@ struct TableInNestedNS FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { bool mutate_foo(int32_t _foo = 0) { return SetField(VT_FOO, _foo, 0); } - bool Verify(flatbuffers::Verifier &verifier) const { + bool Verify(::flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_FOO, 4) && verifier.EndTable(); } - TableInNestedNST *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; - void UnPackTo(TableInNestedNST *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const; - static flatbuffers::Offset Pack(flatbuffers::FlatBufferBuilder &_fbb, const TableInNestedNST* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); + TableInNestedNST *UnPack(const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; + void UnPackTo(TableInNestedNST *_o, const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; + static ::flatbuffers::Offset Pack(::flatbuffers::FlatBufferBuilder &_fbb, const TableInNestedNST* _o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); }; struct TableInNestedNSBuilder { typedef TableInNestedNS Table; - flatbuffers::FlatBufferBuilder &fbb_; - flatbuffers::uoffset_t start_; + ::flatbuffers::FlatBufferBuilder &fbb_; + ::flatbuffers::uoffset_t start_; void add_foo(int32_t foo) { fbb_.AddElement(TableInNestedNS::VT_FOO, foo, 0); } - explicit TableInNestedNSBuilder(flatbuffers::FlatBufferBuilder &_fbb) + explicit TableInNestedNSBuilder(::flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); } - flatbuffers::Offset Finish() { + ::flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); - auto o = flatbuffers::Offset(end); + auto o = ::flatbuffers::Offset(end); return o; } }; -inline flatbuffers::Offset CreateTableInNestedNS( - flatbuffers::FlatBufferBuilder &_fbb, +inline ::flatbuffers::Offset CreateTableInNestedNS( + ::flatbuffers::FlatBufferBuilder &_fbb, int32_t foo = 0) { TableInNestedNSBuilder builder_(_fbb); builder_.add_foo(foo); return builder_.Finish(); } -flatbuffers::Offset CreateTableInNestedNS(flatbuffers::FlatBufferBuilder &_fbb, const TableInNestedNST *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); +::flatbuffers::Offset CreateTableInNestedNS(::flatbuffers::FlatBufferBuilder &_fbb, const TableInNestedNST *_o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); inline bool operator==(const TableInNestedNST &lhs, const TableInNestedNST &rhs) { @@ -295,33 +295,33 @@ inline bool operator!=(const TableInNestedNST &lhs, const TableInNestedNST &rhs) } -inline TableInNestedNST *TableInNestedNS::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +inline TableInNestedNST *TableInNestedNS::UnPack(const ::flatbuffers::resolver_function_t *_resolver) const { auto _o = std::unique_ptr(new TableInNestedNST()); UnPackTo(_o.get(), _resolver); return _o.release(); } -inline void TableInNestedNS::UnPackTo(TableInNestedNST *_o, const flatbuffers::resolver_function_t *_resolver) const { +inline void TableInNestedNS::UnPackTo(TableInNestedNST *_o, const ::flatbuffers::resolver_function_t *_resolver) const { (void)_o; (void)_resolver; { auto _e = foo(); _o->foo = _e; } } -inline flatbuffers::Offset TableInNestedNS::Pack(flatbuffers::FlatBufferBuilder &_fbb, const TableInNestedNST* _o, const flatbuffers::rehasher_function_t *_rehasher) { +inline ::flatbuffers::Offset TableInNestedNS::Pack(::flatbuffers::FlatBufferBuilder &_fbb, const TableInNestedNST* _o, const ::flatbuffers::rehasher_function_t *_rehasher) { return CreateTableInNestedNS(_fbb, _o, _rehasher); } -inline flatbuffers::Offset CreateTableInNestedNS(flatbuffers::FlatBufferBuilder &_fbb, const TableInNestedNST *_o, const flatbuffers::rehasher_function_t *_rehasher) { +inline ::flatbuffers::Offset CreateTableInNestedNS(::flatbuffers::FlatBufferBuilder &_fbb, const TableInNestedNST *_o, const ::flatbuffers::rehasher_function_t *_rehasher) { (void)_rehasher; (void)_o; - struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const TableInNestedNST* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; + struct _VectorArgs { ::flatbuffers::FlatBufferBuilder *__fbb; const TableInNestedNST* __o; const ::flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; auto _foo = _o->foo; return NamespaceA::NamespaceB::CreateTableInNestedNS( _fbb, _foo); } -inline bool VerifyUnionInNestedNS(flatbuffers::Verifier &verifier, const void *obj, UnionInNestedNS type) { +inline bool VerifyUnionInNestedNS(::flatbuffers::Verifier &verifier, const void *obj, UnionInNestedNS type) { switch (type) { case UnionInNestedNS_NONE: { return true; @@ -334,10 +334,10 @@ inline bool VerifyUnionInNestedNS(flatbuffers::Verifier &verifier, const void *o } } -inline bool VerifyUnionInNestedNSVector(flatbuffers::Verifier &verifier, const flatbuffers::Vector> *values, const flatbuffers::Vector *types) { +inline bool VerifyUnionInNestedNSVector(::flatbuffers::Verifier &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types) { if (!values || !types) return !values && !types; if (values->size() != types->size()) return false; - for (flatbuffers::uoffset_t i = 0; i < values->size(); ++i) { + for (::flatbuffers::uoffset_t i = 0; i < values->size(); ++i) { if (!VerifyUnionInNestedNS( verifier, values->Get(i), types->GetEnum(i))) { return false; @@ -346,7 +346,7 @@ inline bool VerifyUnionInNestedNSVector(flatbuffers::Verifier &verifier, const f return true; } -inline void *UnionInNestedNSUnion::UnPack(const void *obj, UnionInNestedNS type, const flatbuffers::resolver_function_t *resolver) { +inline void *UnionInNestedNSUnion::UnPack(const void *obj, UnionInNestedNS type, const ::flatbuffers::resolver_function_t *resolver) { (void)resolver; switch (type) { case UnionInNestedNS_TableInNestedNS: { @@ -357,7 +357,7 @@ inline void *UnionInNestedNSUnion::UnPack(const void *obj, UnionInNestedNS type, } } -inline flatbuffers::Offset UnionInNestedNSUnion::Pack(flatbuffers::FlatBufferBuilder &_fbb, const flatbuffers::rehasher_function_t *_rehasher) const { +inline ::flatbuffers::Offset UnionInNestedNSUnion::Pack(::flatbuffers::FlatBufferBuilder &_fbb, const ::flatbuffers::rehasher_function_t *_rehasher) const { (void)_rehasher; switch (type) { case UnionInNestedNS_TableInNestedNS: { @@ -392,31 +392,31 @@ inline void UnionInNestedNSUnion::Reset() { type = UnionInNestedNS_NONE; } -inline const flatbuffers::TypeTable *UnionInNestedNSTypeTable() { - static const flatbuffers::TypeCode type_codes[] = { - { flatbuffers::ET_SEQUENCE, 0, -1 }, - { flatbuffers::ET_SEQUENCE, 0, 0 } +inline const ::flatbuffers::TypeTable *UnionInNestedNSTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_SEQUENCE, 0, -1 }, + { ::flatbuffers::ET_SEQUENCE, 0, 0 } }; - static const flatbuffers::TypeFunction type_refs[] = { + static const ::flatbuffers::TypeFunction type_refs[] = { NamespaceA::NamespaceB::TableInNestedNSTypeTable }; static const char * const names[] = { "NONE", "TableInNestedNS" }; - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_UNION, 2, type_codes, type_refs, nullptr, nullptr, names + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_UNION, 2, type_codes, type_refs, nullptr, nullptr, names }; return &tt; } -inline const flatbuffers::TypeTable *EnumInNestedNSTypeTable() { - static const flatbuffers::TypeCode type_codes[] = { - { flatbuffers::ET_CHAR, 0, 0 }, - { flatbuffers::ET_CHAR, 0, 0 }, - { flatbuffers::ET_CHAR, 0, 0 } +inline const ::flatbuffers::TypeTable *EnumInNestedNSTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_CHAR, 0, 0 }, + { ::flatbuffers::ET_CHAR, 0, 0 }, + { ::flatbuffers::ET_CHAR, 0, 0 } }; - static const flatbuffers::TypeFunction type_refs[] = { + static const ::flatbuffers::TypeFunction type_refs[] = { NamespaceA::NamespaceB::EnumInNestedNSTypeTable }; static const char * const names[] = { @@ -424,37 +424,37 @@ inline const flatbuffers::TypeTable *EnumInNestedNSTypeTable() { "B", "C" }; - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_ENUM, 3, type_codes, type_refs, nullptr, nullptr, names + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_ENUM, 3, type_codes, type_refs, nullptr, nullptr, names }; return &tt; } -inline const flatbuffers::TypeTable *TableInNestedNSTypeTable() { - static const flatbuffers::TypeCode type_codes[] = { - { flatbuffers::ET_INT, 0, -1 } +inline const ::flatbuffers::TypeTable *TableInNestedNSTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_INT, 0, -1 } }; static const char * const names[] = { "foo" }; - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_TABLE, 1, type_codes, nullptr, nullptr, nullptr, names + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_TABLE, 1, type_codes, nullptr, nullptr, nullptr, names }; return &tt; } -inline const flatbuffers::TypeTable *StructInNestedNSTypeTable() { - static const flatbuffers::TypeCode type_codes[] = { - { flatbuffers::ET_INT, 0, -1 }, - { flatbuffers::ET_INT, 0, -1 } +inline const ::flatbuffers::TypeTable *StructInNestedNSTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_INT, 0, -1 }, + { ::flatbuffers::ET_INT, 0, -1 } }; static const int64_t values[] = { 0, 4, 8 }; static const char * const names[] = { "a", "b" }; - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_STRUCT, 2, type_codes, nullptr, nullptr, values, names + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_STRUCT, 2, type_codes, nullptr, nullptr, values, names }; return &tt; } diff --git a/tests/namespace_test/namespace_test2_generated.h b/tests/namespace_test/namespace_test2_generated.h index f5de097e4e..4a32cf847e 100644 --- a/tests/namespace_test/namespace_test2_generated.h +++ b/tests/namespace_test/namespace_test2_generated.h @@ -50,21 +50,21 @@ namespace NamespaceA { bool operator==(const SecondTableInAT &lhs, const SecondTableInAT &rhs); bool operator!=(const SecondTableInAT &lhs, const SecondTableInAT &rhs); -inline const flatbuffers::TypeTable *TableInFirstNSTypeTable(); +inline const ::flatbuffers::TypeTable *TableInFirstNSTypeTable(); } // namespace NamespaceA namespace NamespaceC { -inline const flatbuffers::TypeTable *TableInCTypeTable(); +inline const ::flatbuffers::TypeTable *TableInCTypeTable(); } // namespace NamespaceC namespace NamespaceA { -inline const flatbuffers::TypeTable *SecondTableInATypeTable(); +inline const ::flatbuffers::TypeTable *SecondTableInATypeTable(); -struct TableInFirstNST : public flatbuffers::NativeTable { +struct TableInFirstNST : public ::flatbuffers::NativeTable { typedef TableInFirstNS TableType; static FLATBUFFERS_CONSTEXPR_CPP11 const char *GetFullyQualifiedName() { return "NamespaceA.TableInFirstNST"; @@ -79,10 +79,10 @@ struct TableInFirstNST : public flatbuffers::NativeTable { TableInFirstNST &operator=(TableInFirstNST o) FLATBUFFERS_NOEXCEPT; }; -struct TableInFirstNS FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { +struct TableInFirstNS FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { typedef TableInFirstNST NativeTableType; typedef TableInFirstNSBuilder Builder; - static const flatbuffers::TypeTable *MiniReflectTypeTable() { + static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { return TableInFirstNSTypeTable(); } static FLATBUFFERS_CONSTEXPR_CPP11 const char *GetFullyQualifiedName() { @@ -126,7 +126,7 @@ struct TableInFirstNS FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { NamespaceA::NamespaceB::StructInNestedNS *mutable_foo_struct() { return GetStruct(VT_FOO_STRUCT); } - bool Verify(flatbuffers::Verifier &verifier) const { + bool Verify(::flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && VerifyOffset(verifier, VT_FOO_TABLE) && verifier.VerifyTable(foo_table()) && @@ -137,9 +137,9 @@ struct TableInFirstNS FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { VerifyField(verifier, VT_FOO_STRUCT, 4) && verifier.EndTable(); } - TableInFirstNST *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; - void UnPackTo(TableInFirstNST *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const; - static flatbuffers::Offset Pack(flatbuffers::FlatBufferBuilder &_fbb, const TableInFirstNST* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); + TableInFirstNST *UnPack(const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; + void UnPackTo(TableInFirstNST *_o, const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; + static ::flatbuffers::Offset Pack(::flatbuffers::FlatBufferBuilder &_fbb, const TableInFirstNST* _o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); }; template<> inline const NamespaceA::NamespaceB::TableInNestedNS *TableInFirstNS::foo_union_as() const { @@ -148,9 +148,9 @@ template<> inline const NamespaceA::NamespaceB::TableInNestedNS *TableInFirstNS: struct TableInFirstNSBuilder { typedef TableInFirstNS Table; - flatbuffers::FlatBufferBuilder &fbb_; - flatbuffers::uoffset_t start_; - void add_foo_table(flatbuffers::Offset foo_table) { + ::flatbuffers::FlatBufferBuilder &fbb_; + ::flatbuffers::uoffset_t start_; + void add_foo_table(::flatbuffers::Offset foo_table) { fbb_.AddOffset(TableInFirstNS::VT_FOO_TABLE, foo_table); } void add_foo_enum(NamespaceA::NamespaceB::EnumInNestedNS foo_enum) { @@ -159,29 +159,29 @@ struct TableInFirstNSBuilder { void add_foo_union_type(NamespaceA::NamespaceB::UnionInNestedNS foo_union_type) { fbb_.AddElement(TableInFirstNS::VT_FOO_UNION_TYPE, static_cast(foo_union_type), 0); } - void add_foo_union(flatbuffers::Offset foo_union) { + void add_foo_union(::flatbuffers::Offset foo_union) { fbb_.AddOffset(TableInFirstNS::VT_FOO_UNION, foo_union); } void add_foo_struct(const NamespaceA::NamespaceB::StructInNestedNS *foo_struct) { fbb_.AddStruct(TableInFirstNS::VT_FOO_STRUCT, foo_struct); } - explicit TableInFirstNSBuilder(flatbuffers::FlatBufferBuilder &_fbb) + explicit TableInFirstNSBuilder(::flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); } - flatbuffers::Offset Finish() { + ::flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); - auto o = flatbuffers::Offset(end); + auto o = ::flatbuffers::Offset(end); return o; } }; -inline flatbuffers::Offset CreateTableInFirstNS( - flatbuffers::FlatBufferBuilder &_fbb, - flatbuffers::Offset foo_table = 0, +inline ::flatbuffers::Offset CreateTableInFirstNS( + ::flatbuffers::FlatBufferBuilder &_fbb, + ::flatbuffers::Offset foo_table = 0, NamespaceA::NamespaceB::EnumInNestedNS foo_enum = NamespaceA::NamespaceB::EnumInNestedNS_A, NamespaceA::NamespaceB::UnionInNestedNS foo_union_type = NamespaceA::NamespaceB::UnionInNestedNS_NONE, - flatbuffers::Offset foo_union = 0, + ::flatbuffers::Offset foo_union = 0, const NamespaceA::NamespaceB::StructInNestedNS *foo_struct = nullptr) { TableInFirstNSBuilder builder_(_fbb); builder_.add_foo_struct(foo_struct); @@ -192,13 +192,13 @@ inline flatbuffers::Offset CreateTableInFirstNS( return builder_.Finish(); } -flatbuffers::Offset CreateTableInFirstNS(flatbuffers::FlatBufferBuilder &_fbb, const TableInFirstNST *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); +::flatbuffers::Offset CreateTableInFirstNS(::flatbuffers::FlatBufferBuilder &_fbb, const TableInFirstNST *_o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); } // namespace NamespaceA namespace NamespaceC { -struct TableInCT : public flatbuffers::NativeTable { +struct TableInCT : public ::flatbuffers::NativeTable { typedef TableInC TableType; static FLATBUFFERS_CONSTEXPR_CPP11 const char *GetFullyQualifiedName() { return "NamespaceC.TableInCT"; @@ -211,10 +211,10 @@ struct TableInCT : public flatbuffers::NativeTable { TableInCT &operator=(TableInCT o) FLATBUFFERS_NOEXCEPT; }; -struct TableInC FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { +struct TableInC FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { typedef TableInCT NativeTableType; typedef TableInCBuilder Builder; - static const flatbuffers::TypeTable *MiniReflectTypeTable() { + static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { return TableInCTypeTable(); } static FLATBUFFERS_CONSTEXPR_CPP11 const char *GetFullyQualifiedName() { @@ -236,7 +236,7 @@ struct TableInC FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { NamespaceA::SecondTableInA *mutable_refer_to_a2() { return GetPointer(VT_REFER_TO_A2); } - bool Verify(flatbuffers::Verifier &verifier) const { + bool Verify(::flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && VerifyOffset(verifier, VT_REFER_TO_A1) && verifier.VerifyTable(refer_to_a1()) && @@ -244,49 +244,49 @@ struct TableInC FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { verifier.VerifyTable(refer_to_a2()) && verifier.EndTable(); } - TableInCT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; - void UnPackTo(TableInCT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const; - static flatbuffers::Offset Pack(flatbuffers::FlatBufferBuilder &_fbb, const TableInCT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); + TableInCT *UnPack(const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; + void UnPackTo(TableInCT *_o, const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; + static ::flatbuffers::Offset Pack(::flatbuffers::FlatBufferBuilder &_fbb, const TableInCT* _o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); }; struct TableInCBuilder { typedef TableInC Table; - flatbuffers::FlatBufferBuilder &fbb_; - flatbuffers::uoffset_t start_; - void add_refer_to_a1(flatbuffers::Offset refer_to_a1) { + ::flatbuffers::FlatBufferBuilder &fbb_; + ::flatbuffers::uoffset_t start_; + void add_refer_to_a1(::flatbuffers::Offset refer_to_a1) { fbb_.AddOffset(TableInC::VT_REFER_TO_A1, refer_to_a1); } - void add_refer_to_a2(flatbuffers::Offset refer_to_a2) { + void add_refer_to_a2(::flatbuffers::Offset refer_to_a2) { fbb_.AddOffset(TableInC::VT_REFER_TO_A2, refer_to_a2); } - explicit TableInCBuilder(flatbuffers::FlatBufferBuilder &_fbb) + explicit TableInCBuilder(::flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); } - flatbuffers::Offset Finish() { + ::flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); - auto o = flatbuffers::Offset(end); + auto o = ::flatbuffers::Offset(end); return o; } }; -inline flatbuffers::Offset CreateTableInC( - flatbuffers::FlatBufferBuilder &_fbb, - flatbuffers::Offset refer_to_a1 = 0, - flatbuffers::Offset refer_to_a2 = 0) { +inline ::flatbuffers::Offset CreateTableInC( + ::flatbuffers::FlatBufferBuilder &_fbb, + ::flatbuffers::Offset refer_to_a1 = 0, + ::flatbuffers::Offset refer_to_a2 = 0) { TableInCBuilder builder_(_fbb); builder_.add_refer_to_a2(refer_to_a2); builder_.add_refer_to_a1(refer_to_a1); return builder_.Finish(); } -flatbuffers::Offset CreateTableInC(flatbuffers::FlatBufferBuilder &_fbb, const TableInCT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); +::flatbuffers::Offset CreateTableInC(::flatbuffers::FlatBufferBuilder &_fbb, const TableInCT *_o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); } // namespace NamespaceC namespace NamespaceA { -struct SecondTableInAT : public flatbuffers::NativeTable { +struct SecondTableInAT : public ::flatbuffers::NativeTable { typedef SecondTableInA TableType; static FLATBUFFERS_CONSTEXPR_CPP11 const char *GetFullyQualifiedName() { return "NamespaceA.SecondTableInAT"; @@ -298,10 +298,10 @@ struct SecondTableInAT : public flatbuffers::NativeTable { SecondTableInAT &operator=(SecondTableInAT o) FLATBUFFERS_NOEXCEPT; }; -struct SecondTableInA FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { +struct SecondTableInA FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { typedef SecondTableInAT NativeTableType; typedef SecondTableInABuilder Builder; - static const flatbuffers::TypeTable *MiniReflectTypeTable() { + static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { return SecondTableInATypeTable(); } static FLATBUFFERS_CONSTEXPR_CPP11 const char *GetFullyQualifiedName() { @@ -316,44 +316,44 @@ struct SecondTableInA FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { NamespaceC::TableInC *mutable_refer_to_c() { return GetPointer(VT_REFER_TO_C); } - bool Verify(flatbuffers::Verifier &verifier) const { + bool Verify(::flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && VerifyOffset(verifier, VT_REFER_TO_C) && verifier.VerifyTable(refer_to_c()) && verifier.EndTable(); } - SecondTableInAT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; - void UnPackTo(SecondTableInAT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const; - static flatbuffers::Offset Pack(flatbuffers::FlatBufferBuilder &_fbb, const SecondTableInAT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); + SecondTableInAT *UnPack(const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; + void UnPackTo(SecondTableInAT *_o, const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; + static ::flatbuffers::Offset Pack(::flatbuffers::FlatBufferBuilder &_fbb, const SecondTableInAT* _o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); }; struct SecondTableInABuilder { typedef SecondTableInA Table; - flatbuffers::FlatBufferBuilder &fbb_; - flatbuffers::uoffset_t start_; - void add_refer_to_c(flatbuffers::Offset refer_to_c) { + ::flatbuffers::FlatBufferBuilder &fbb_; + ::flatbuffers::uoffset_t start_; + void add_refer_to_c(::flatbuffers::Offset refer_to_c) { fbb_.AddOffset(SecondTableInA::VT_REFER_TO_C, refer_to_c); } - explicit SecondTableInABuilder(flatbuffers::FlatBufferBuilder &_fbb) + explicit SecondTableInABuilder(::flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); } - flatbuffers::Offset Finish() { + ::flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); - auto o = flatbuffers::Offset(end); + auto o = ::flatbuffers::Offset(end); return o; } }; -inline flatbuffers::Offset CreateSecondTableInA( - flatbuffers::FlatBufferBuilder &_fbb, - flatbuffers::Offset refer_to_c = 0) { +inline ::flatbuffers::Offset CreateSecondTableInA( + ::flatbuffers::FlatBufferBuilder &_fbb, + ::flatbuffers::Offset refer_to_c = 0) { SecondTableInABuilder builder_(_fbb); builder_.add_refer_to_c(refer_to_c); return builder_.Finish(); } -flatbuffers::Offset CreateSecondTableInA(flatbuffers::FlatBufferBuilder &_fbb, const SecondTableInAT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); +::flatbuffers::Offset CreateSecondTableInA(::flatbuffers::FlatBufferBuilder &_fbb, const SecondTableInAT *_o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); inline bool operator==(const TableInFirstNST &lhs, const TableInFirstNST &rhs) { @@ -384,13 +384,13 @@ inline TableInFirstNST &TableInFirstNST::operator=(TableInFirstNST o) FLATBUFFER return *this; } -inline TableInFirstNST *TableInFirstNS::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +inline TableInFirstNST *TableInFirstNS::UnPack(const ::flatbuffers::resolver_function_t *_resolver) const { auto _o = std::unique_ptr(new TableInFirstNST()); UnPackTo(_o.get(), _resolver); return _o.release(); } -inline void TableInFirstNS::UnPackTo(TableInFirstNST *_o, const flatbuffers::resolver_function_t *_resolver) const { +inline void TableInFirstNS::UnPackTo(TableInFirstNST *_o, const ::flatbuffers::resolver_function_t *_resolver) const { (void)_o; (void)_resolver; { auto _e = foo_table(); if (_e) { if(_o->foo_table) { _e->UnPackTo(_o->foo_table.get(), _resolver); } else { _o->foo_table = flatbuffers::unique_ptr(_e->UnPack(_resolver)); } } else if (_o->foo_table) { _o->foo_table.reset(); } } @@ -400,14 +400,14 @@ inline void TableInFirstNS::UnPackTo(TableInFirstNST *_o, const flatbuffers::res { auto _e = foo_struct(); if (_e) _o->foo_struct = flatbuffers::unique_ptr(new NamespaceA::NamespaceB::StructInNestedNS(*_e)); } } -inline flatbuffers::Offset TableInFirstNS::Pack(flatbuffers::FlatBufferBuilder &_fbb, const TableInFirstNST* _o, const flatbuffers::rehasher_function_t *_rehasher) { +inline ::flatbuffers::Offset TableInFirstNS::Pack(::flatbuffers::FlatBufferBuilder &_fbb, const TableInFirstNST* _o, const ::flatbuffers::rehasher_function_t *_rehasher) { return CreateTableInFirstNS(_fbb, _o, _rehasher); } -inline flatbuffers::Offset CreateTableInFirstNS(flatbuffers::FlatBufferBuilder &_fbb, const TableInFirstNST *_o, const flatbuffers::rehasher_function_t *_rehasher) { +inline ::flatbuffers::Offset CreateTableInFirstNS(::flatbuffers::FlatBufferBuilder &_fbb, const TableInFirstNST *_o, const ::flatbuffers::rehasher_function_t *_rehasher) { (void)_rehasher; (void)_o; - struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const TableInFirstNST* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; + struct _VectorArgs { ::flatbuffers::FlatBufferBuilder *__fbb; const TableInFirstNST* __o; const ::flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; auto _foo_table = _o->foo_table ? CreateTableInNestedNS(_fbb, _o->foo_table.get(), _rehasher) : 0; auto _foo_enum = _o->foo_enum; auto _foo_union_type = _o->foo_union.type; @@ -449,27 +449,27 @@ inline TableInCT &TableInCT::operator=(TableInCT o) FLATBUFFERS_NOEXCEPT { return *this; } -inline TableInCT *TableInC::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +inline TableInCT *TableInC::UnPack(const ::flatbuffers::resolver_function_t *_resolver) const { auto _o = std::unique_ptr(new TableInCT()); UnPackTo(_o.get(), _resolver); return _o.release(); } -inline void TableInC::UnPackTo(TableInCT *_o, const flatbuffers::resolver_function_t *_resolver) const { +inline void TableInC::UnPackTo(TableInCT *_o, const ::flatbuffers::resolver_function_t *_resolver) const { (void)_o; (void)_resolver; { auto _e = refer_to_a1(); if (_e) { if(_o->refer_to_a1) { _e->UnPackTo(_o->refer_to_a1.get(), _resolver); } else { _o->refer_to_a1 = flatbuffers::unique_ptr(_e->UnPack(_resolver)); } } else if (_o->refer_to_a1) { _o->refer_to_a1.reset(); } } { auto _e = refer_to_a2(); if (_e) { if(_o->refer_to_a2) { _e->UnPackTo(_o->refer_to_a2.get(), _resolver); } else { _o->refer_to_a2 = flatbuffers::unique_ptr(_e->UnPack(_resolver)); } } else if (_o->refer_to_a2) { _o->refer_to_a2.reset(); } } } -inline flatbuffers::Offset TableInC::Pack(flatbuffers::FlatBufferBuilder &_fbb, const TableInCT* _o, const flatbuffers::rehasher_function_t *_rehasher) { +inline ::flatbuffers::Offset TableInC::Pack(::flatbuffers::FlatBufferBuilder &_fbb, const TableInCT* _o, const ::flatbuffers::rehasher_function_t *_rehasher) { return CreateTableInC(_fbb, _o, _rehasher); } -inline flatbuffers::Offset CreateTableInC(flatbuffers::FlatBufferBuilder &_fbb, const TableInCT *_o, const flatbuffers::rehasher_function_t *_rehasher) { +inline ::flatbuffers::Offset CreateTableInC(::flatbuffers::FlatBufferBuilder &_fbb, const TableInCT *_o, const ::flatbuffers::rehasher_function_t *_rehasher) { (void)_rehasher; (void)_o; - struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const TableInCT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; + struct _VectorArgs { ::flatbuffers::FlatBufferBuilder *__fbb; const TableInCT* __o; const ::flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; auto _refer_to_a1 = _o->refer_to_a1 ? CreateTableInFirstNS(_fbb, _o->refer_to_a1.get(), _rehasher) : 0; auto _refer_to_a2 = _o->refer_to_a2 ? CreateSecondTableInA(_fbb, _o->refer_to_a2.get(), _rehasher) : 0; return NamespaceC::CreateTableInC( @@ -502,41 +502,41 @@ inline SecondTableInAT &SecondTableInAT::operator=(SecondTableInAT o) FLATBUFFER return *this; } -inline SecondTableInAT *SecondTableInA::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +inline SecondTableInAT *SecondTableInA::UnPack(const ::flatbuffers::resolver_function_t *_resolver) const { auto _o = std::unique_ptr(new SecondTableInAT()); UnPackTo(_o.get(), _resolver); return _o.release(); } -inline void SecondTableInA::UnPackTo(SecondTableInAT *_o, const flatbuffers::resolver_function_t *_resolver) const { +inline void SecondTableInA::UnPackTo(SecondTableInAT *_o, const ::flatbuffers::resolver_function_t *_resolver) const { (void)_o; (void)_resolver; { auto _e = refer_to_c(); if (_e) { if(_o->refer_to_c) { _e->UnPackTo(_o->refer_to_c.get(), _resolver); } else { _o->refer_to_c = flatbuffers::unique_ptr(_e->UnPack(_resolver)); } } else if (_o->refer_to_c) { _o->refer_to_c.reset(); } } } -inline flatbuffers::Offset SecondTableInA::Pack(flatbuffers::FlatBufferBuilder &_fbb, const SecondTableInAT* _o, const flatbuffers::rehasher_function_t *_rehasher) { +inline ::flatbuffers::Offset SecondTableInA::Pack(::flatbuffers::FlatBufferBuilder &_fbb, const SecondTableInAT* _o, const ::flatbuffers::rehasher_function_t *_rehasher) { return CreateSecondTableInA(_fbb, _o, _rehasher); } -inline flatbuffers::Offset CreateSecondTableInA(flatbuffers::FlatBufferBuilder &_fbb, const SecondTableInAT *_o, const flatbuffers::rehasher_function_t *_rehasher) { +inline ::flatbuffers::Offset CreateSecondTableInA(::flatbuffers::FlatBufferBuilder &_fbb, const SecondTableInAT *_o, const ::flatbuffers::rehasher_function_t *_rehasher) { (void)_rehasher; (void)_o; - struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const SecondTableInAT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; + struct _VectorArgs { ::flatbuffers::FlatBufferBuilder *__fbb; const SecondTableInAT* __o; const ::flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; auto _refer_to_c = _o->refer_to_c ? CreateTableInC(_fbb, _o->refer_to_c.get(), _rehasher) : 0; return NamespaceA::CreateSecondTableInA( _fbb, _refer_to_c); } -inline const flatbuffers::TypeTable *TableInFirstNSTypeTable() { - static const flatbuffers::TypeCode type_codes[] = { - { flatbuffers::ET_SEQUENCE, 0, 0 }, - { flatbuffers::ET_CHAR, 0, 1 }, - { flatbuffers::ET_UTYPE, 0, 2 }, - { flatbuffers::ET_SEQUENCE, 0, 2 }, - { flatbuffers::ET_SEQUENCE, 0, 3 } +inline const ::flatbuffers::TypeTable *TableInFirstNSTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_SEQUENCE, 0, 0 }, + { ::flatbuffers::ET_CHAR, 0, 1 }, + { ::flatbuffers::ET_UTYPE, 0, 2 }, + { ::flatbuffers::ET_SEQUENCE, 0, 2 }, + { ::flatbuffers::ET_SEQUENCE, 0, 3 } }; - static const flatbuffers::TypeFunction type_refs[] = { + static const ::flatbuffers::TypeFunction type_refs[] = { NamespaceA::NamespaceB::TableInNestedNSTypeTable, NamespaceA::NamespaceB::EnumInNestedNSTypeTable, NamespaceA::NamespaceB::UnionInNestedNSTypeTable, @@ -549,8 +549,8 @@ inline const flatbuffers::TypeTable *TableInFirstNSTypeTable() { "foo_union", "foo_struct" }; - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_TABLE, 5, type_codes, type_refs, nullptr, nullptr, names + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_TABLE, 5, type_codes, type_refs, nullptr, nullptr, names }; return &tt; } @@ -559,12 +559,12 @@ inline const flatbuffers::TypeTable *TableInFirstNSTypeTable() { namespace NamespaceC { -inline const flatbuffers::TypeTable *TableInCTypeTable() { - static const flatbuffers::TypeCode type_codes[] = { - { flatbuffers::ET_SEQUENCE, 0, 0 }, - { flatbuffers::ET_SEQUENCE, 0, 1 } +inline const ::flatbuffers::TypeTable *TableInCTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_SEQUENCE, 0, 0 }, + { ::flatbuffers::ET_SEQUENCE, 0, 1 } }; - static const flatbuffers::TypeFunction type_refs[] = { + static const ::flatbuffers::TypeFunction type_refs[] = { NamespaceA::TableInFirstNSTypeTable, NamespaceA::SecondTableInATypeTable }; @@ -572,8 +572,8 @@ inline const flatbuffers::TypeTable *TableInCTypeTable() { "refer_to_a1", "refer_to_a2" }; - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_TABLE, 2, type_codes, type_refs, nullptr, nullptr, names + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_TABLE, 2, type_codes, type_refs, nullptr, nullptr, names }; return &tt; } @@ -582,18 +582,18 @@ inline const flatbuffers::TypeTable *TableInCTypeTable() { namespace NamespaceA { -inline const flatbuffers::TypeTable *SecondTableInATypeTable() { - static const flatbuffers::TypeCode type_codes[] = { - { flatbuffers::ET_SEQUENCE, 0, 0 } +inline const ::flatbuffers::TypeTable *SecondTableInATypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_SEQUENCE, 0, 0 } }; - static const flatbuffers::TypeFunction type_refs[] = { + static const ::flatbuffers::TypeFunction type_refs[] = { NamespaceC::TableInCTypeTable }; static const char * const names[] = { "refer_to_c" }; - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_TABLE, 1, type_codes, type_refs, nullptr, nullptr, names + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_TABLE, 1, type_codes, type_refs, nullptr, nullptr, names }; return &tt; } diff --git a/tests/native_inline_table_test_generated.h b/tests/native_inline_table_test_generated.h index 4db1c8361b..0b3087d63a 100644 --- a/tests/native_inline_table_test_generated.h +++ b/tests/native_inline_table_test_generated.h @@ -26,19 +26,19 @@ bool operator!=(const NativeInlineTableT &lhs, const NativeInlineTableT &rhs); bool operator==(const TestNativeInlineTableT &lhs, const TestNativeInlineTableT &rhs); bool operator!=(const TestNativeInlineTableT &lhs, const TestNativeInlineTableT &rhs); -inline const flatbuffers::TypeTable *NativeInlineTableTypeTable(); +inline const ::flatbuffers::TypeTable *NativeInlineTableTypeTable(); -inline const flatbuffers::TypeTable *TestNativeInlineTableTypeTable(); +inline const ::flatbuffers::TypeTable *TestNativeInlineTableTypeTable(); -struct NativeInlineTableT : public flatbuffers::NativeTable { +struct NativeInlineTableT : public ::flatbuffers::NativeTable { typedef NativeInlineTable TableType; int32_t a = 0; }; -struct NativeInlineTable FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { +struct NativeInlineTable FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { typedef NativeInlineTableT NativeTableType; typedef NativeInlineTableBuilder Builder; - static const flatbuffers::TypeTable *MiniReflectTypeTable() { + static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { return NativeInlineTableTypeTable(); } enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { @@ -50,112 +50,112 @@ struct NativeInlineTable FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { bool mutate_a(int32_t _a = 0) { return SetField(VT_A, _a, 0); } - bool Verify(flatbuffers::Verifier &verifier) const { + bool Verify(::flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_A, 4) && verifier.EndTable(); } - NativeInlineTableT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; - void UnPackTo(NativeInlineTableT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const; - static flatbuffers::Offset Pack(flatbuffers::FlatBufferBuilder &_fbb, const NativeInlineTableT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); + NativeInlineTableT *UnPack(const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; + void UnPackTo(NativeInlineTableT *_o, const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; + static ::flatbuffers::Offset Pack(::flatbuffers::FlatBufferBuilder &_fbb, const NativeInlineTableT* _o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); }; struct NativeInlineTableBuilder { typedef NativeInlineTable Table; - flatbuffers::FlatBufferBuilder &fbb_; - flatbuffers::uoffset_t start_; + ::flatbuffers::FlatBufferBuilder &fbb_; + ::flatbuffers::uoffset_t start_; void add_a(int32_t a) { fbb_.AddElement(NativeInlineTable::VT_A, a, 0); } - explicit NativeInlineTableBuilder(flatbuffers::FlatBufferBuilder &_fbb) + explicit NativeInlineTableBuilder(::flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); } - flatbuffers::Offset Finish() { + ::flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); - auto o = flatbuffers::Offset(end); + auto o = ::flatbuffers::Offset(end); return o; } }; -inline flatbuffers::Offset CreateNativeInlineTable( - flatbuffers::FlatBufferBuilder &_fbb, +inline ::flatbuffers::Offset CreateNativeInlineTable( + ::flatbuffers::FlatBufferBuilder &_fbb, int32_t a = 0) { NativeInlineTableBuilder builder_(_fbb); builder_.add_a(a); return builder_.Finish(); } -flatbuffers::Offset CreateNativeInlineTable(flatbuffers::FlatBufferBuilder &_fbb, const NativeInlineTableT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); +::flatbuffers::Offset CreateNativeInlineTable(::flatbuffers::FlatBufferBuilder &_fbb, const NativeInlineTableT *_o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); -struct TestNativeInlineTableT : public flatbuffers::NativeTable { +struct TestNativeInlineTableT : public ::flatbuffers::NativeTable { typedef TestNativeInlineTable TableType; std::vector t{}; }; -struct TestNativeInlineTable FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { +struct TestNativeInlineTable FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { typedef TestNativeInlineTableT NativeTableType; typedef TestNativeInlineTableBuilder Builder; - static const flatbuffers::TypeTable *MiniReflectTypeTable() { + static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { return TestNativeInlineTableTypeTable(); } enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { VT_T = 4 }; - const flatbuffers::Vector> *t() const { - return GetPointer> *>(VT_T); + const ::flatbuffers::Vector<::flatbuffers::Offset> *t() const { + return GetPointer> *>(VT_T); } - flatbuffers::Vector> *mutable_t() { - return GetPointer> *>(VT_T); + ::flatbuffers::Vector<::flatbuffers::Offset> *mutable_t() { + return GetPointer<::flatbuffers::Vector<::flatbuffers::Offset> *>(VT_T); } - bool Verify(flatbuffers::Verifier &verifier) const { + bool Verify(::flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && VerifyOffset(verifier, VT_T) && verifier.VerifyVector(t()) && verifier.VerifyVectorOfTables(t()) && verifier.EndTable(); } - TestNativeInlineTableT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; - void UnPackTo(TestNativeInlineTableT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const; - static flatbuffers::Offset Pack(flatbuffers::FlatBufferBuilder &_fbb, const TestNativeInlineTableT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); + TestNativeInlineTableT *UnPack(const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; + void UnPackTo(TestNativeInlineTableT *_o, const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; + static ::flatbuffers::Offset Pack(::flatbuffers::FlatBufferBuilder &_fbb, const TestNativeInlineTableT* _o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); }; struct TestNativeInlineTableBuilder { typedef TestNativeInlineTable Table; - flatbuffers::FlatBufferBuilder &fbb_; - flatbuffers::uoffset_t start_; - void add_t(flatbuffers::Offset>> t) { + ::flatbuffers::FlatBufferBuilder &fbb_; + ::flatbuffers::uoffset_t start_; + void add_t(::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset>> t) { fbb_.AddOffset(TestNativeInlineTable::VT_T, t); } - explicit TestNativeInlineTableBuilder(flatbuffers::FlatBufferBuilder &_fbb) + explicit TestNativeInlineTableBuilder(::flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); } - flatbuffers::Offset Finish() { + ::flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); - auto o = flatbuffers::Offset(end); + auto o = ::flatbuffers::Offset(end); return o; } }; -inline flatbuffers::Offset CreateTestNativeInlineTable( - flatbuffers::FlatBufferBuilder &_fbb, - flatbuffers::Offset>> t = 0) { +inline ::flatbuffers::Offset CreateTestNativeInlineTable( + ::flatbuffers::FlatBufferBuilder &_fbb, + ::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset>> t = 0) { TestNativeInlineTableBuilder builder_(_fbb); builder_.add_t(t); return builder_.Finish(); } -inline flatbuffers::Offset CreateTestNativeInlineTableDirect( - flatbuffers::FlatBufferBuilder &_fbb, - const std::vector> *t = nullptr) { - auto t__ = t ? _fbb.CreateVector>(*t) : 0; +inline ::flatbuffers::Offset CreateTestNativeInlineTableDirect( + ::flatbuffers::FlatBufferBuilder &_fbb, + const std::vector<::flatbuffers::Offset> *t = nullptr) { + auto t__ = t ? _fbb.CreateVector<::flatbuffers::Offset>(*t) : 0; return CreateTestNativeInlineTable( _fbb, t__); } -flatbuffers::Offset CreateTestNativeInlineTable(flatbuffers::FlatBufferBuilder &_fbb, const TestNativeInlineTableT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); +::flatbuffers::Offset CreateTestNativeInlineTable(::flatbuffers::FlatBufferBuilder &_fbb, const TestNativeInlineTableT *_o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); inline bool operator==(const NativeInlineTableT &lhs, const NativeInlineTableT &rhs) { @@ -168,26 +168,26 @@ inline bool operator!=(const NativeInlineTableT &lhs, const NativeInlineTableT & } -inline NativeInlineTableT *NativeInlineTable::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +inline NativeInlineTableT *NativeInlineTable::UnPack(const ::flatbuffers::resolver_function_t *_resolver) const { auto _o = std::unique_ptr(new NativeInlineTableT()); UnPackTo(_o.get(), _resolver); return _o.release(); } -inline void NativeInlineTable::UnPackTo(NativeInlineTableT *_o, const flatbuffers::resolver_function_t *_resolver) const { +inline void NativeInlineTable::UnPackTo(NativeInlineTableT *_o, const ::flatbuffers::resolver_function_t *_resolver) const { (void)_o; (void)_resolver; { auto _e = a(); _o->a = _e; } } -inline flatbuffers::Offset NativeInlineTable::Pack(flatbuffers::FlatBufferBuilder &_fbb, const NativeInlineTableT* _o, const flatbuffers::rehasher_function_t *_rehasher) { +inline ::flatbuffers::Offset NativeInlineTable::Pack(::flatbuffers::FlatBufferBuilder &_fbb, const NativeInlineTableT* _o, const ::flatbuffers::rehasher_function_t *_rehasher) { return CreateNativeInlineTable(_fbb, _o, _rehasher); } -inline flatbuffers::Offset CreateNativeInlineTable(flatbuffers::FlatBufferBuilder &_fbb, const NativeInlineTableT *_o, const flatbuffers::rehasher_function_t *_rehasher) { +inline ::flatbuffers::Offset CreateNativeInlineTable(::flatbuffers::FlatBufferBuilder &_fbb, const NativeInlineTableT *_o, const ::flatbuffers::rehasher_function_t *_rehasher) { (void)_rehasher; (void)_o; - struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const NativeInlineTableT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; + struct _VectorArgs { ::flatbuffers::FlatBufferBuilder *__fbb; const NativeInlineTableT* __o; const ::flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; auto _a = _o->a; return CreateNativeInlineTable( _fbb, @@ -205,57 +205,57 @@ inline bool operator!=(const TestNativeInlineTableT &lhs, const TestNativeInline } -inline TestNativeInlineTableT *TestNativeInlineTable::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +inline TestNativeInlineTableT *TestNativeInlineTable::UnPack(const ::flatbuffers::resolver_function_t *_resolver) const { auto _o = std::unique_ptr(new TestNativeInlineTableT()); UnPackTo(_o.get(), _resolver); return _o.release(); } -inline void TestNativeInlineTable::UnPackTo(TestNativeInlineTableT *_o, const flatbuffers::resolver_function_t *_resolver) const { +inline void TestNativeInlineTable::UnPackTo(TestNativeInlineTableT *_o, const ::flatbuffers::resolver_function_t *_resolver) const { (void)_o; (void)_resolver; - { auto _e = t(); if (_e) { _o->t.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->t[_i] = *flatbuffers::unique_ptr(_e->Get(_i)->UnPack(_resolver)); } } else { _o->t.resize(0); } } + { auto _e = t(); if (_e) { _o->t.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->t[_i] = *flatbuffers::unique_ptr(_e->Get(_i)->UnPack(_resolver)); } } else { _o->t.resize(0); } } } -inline flatbuffers::Offset TestNativeInlineTable::Pack(flatbuffers::FlatBufferBuilder &_fbb, const TestNativeInlineTableT* _o, const flatbuffers::rehasher_function_t *_rehasher) { +inline ::flatbuffers::Offset TestNativeInlineTable::Pack(::flatbuffers::FlatBufferBuilder &_fbb, const TestNativeInlineTableT* _o, const ::flatbuffers::rehasher_function_t *_rehasher) { return CreateTestNativeInlineTable(_fbb, _o, _rehasher); } -inline flatbuffers::Offset CreateTestNativeInlineTable(flatbuffers::FlatBufferBuilder &_fbb, const TestNativeInlineTableT *_o, const flatbuffers::rehasher_function_t *_rehasher) { +inline ::flatbuffers::Offset CreateTestNativeInlineTable(::flatbuffers::FlatBufferBuilder &_fbb, const TestNativeInlineTableT *_o, const ::flatbuffers::rehasher_function_t *_rehasher) { (void)_rehasher; (void)_o; - struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const TestNativeInlineTableT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; - auto _t = _o->t.size() ? _fbb.CreateVector> (_o->t.size(), [](size_t i, _VectorArgs *__va) { return CreateNativeInlineTable(*__va->__fbb, &(__va->__o->t[i]), __va->__rehasher); }, &_va ) : 0; + struct _VectorArgs { ::flatbuffers::FlatBufferBuilder *__fbb; const TestNativeInlineTableT* __o; const ::flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; + auto _t = _o->t.size() ? _fbb.CreateVector<::flatbuffers::Offset> (_o->t.size(), [](size_t i, _VectorArgs *__va) { return CreateNativeInlineTable(*__va->__fbb, &(__va->__o->t[i]), __va->__rehasher); }, &_va ) : 0; return CreateTestNativeInlineTable( _fbb, _t); } -inline const flatbuffers::TypeTable *NativeInlineTableTypeTable() { - static const flatbuffers::TypeCode type_codes[] = { - { flatbuffers::ET_INT, 0, -1 } +inline const ::flatbuffers::TypeTable *NativeInlineTableTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_INT, 0, -1 } }; static const char * const names[] = { "a" }; - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_TABLE, 1, type_codes, nullptr, nullptr, nullptr, names + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_TABLE, 1, type_codes, nullptr, nullptr, nullptr, names }; return &tt; } -inline const flatbuffers::TypeTable *TestNativeInlineTableTypeTable() { - static const flatbuffers::TypeCode type_codes[] = { - { flatbuffers::ET_SEQUENCE, 1, 0 } +inline const ::flatbuffers::TypeTable *TestNativeInlineTableTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_SEQUENCE, 1, 0 } }; - static const flatbuffers::TypeFunction type_refs[] = { + static const ::flatbuffers::TypeFunction type_refs[] = { NativeInlineTableTypeTable }; static const char * const names[] = { "t" }; - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_TABLE, 1, type_codes, type_refs, nullptr, nullptr, names + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_TABLE, 1, type_codes, type_refs, nullptr, nullptr, names }; return &tt; } diff --git a/tests/native_type_test_generated.h b/tests/native_type_test_generated.h index a4117d5f8c..33bd4f2054 100644 --- a/tests/native_type_test_generated.h +++ b/tests/native_type_test_generated.h @@ -25,11 +25,11 @@ struct ApplicationData; struct ApplicationDataBuilder; struct ApplicationDataT; -inline const flatbuffers::TypeTable *Vector3DTypeTable(); +inline const ::flatbuffers::TypeTable *Vector3DTypeTable(); -inline const flatbuffers::TypeTable *Vector3DAltTypeTable(); +inline const ::flatbuffers::TypeTable *Vector3DAltTypeTable(); -inline const flatbuffers::TypeTable *ApplicationDataTypeTable(); +inline const ::flatbuffers::TypeTable *ApplicationDataTypeTable(); FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(4) Vector3D FLATBUFFERS_FINAL_CLASS { private: @@ -38,7 +38,7 @@ FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(4) Vector3D FLATBUFFERS_FINAL_CLASS { float z_; public: - static const flatbuffers::TypeTable *MiniReflectTypeTable() { + static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { return Vector3DTypeTable(); } Vector3D() @@ -47,27 +47,27 @@ FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(4) Vector3D FLATBUFFERS_FINAL_CLASS { z_(0) { } Vector3D(float _x, float _y, float _z) - : x_(flatbuffers::EndianScalar(_x)), - y_(flatbuffers::EndianScalar(_y)), - z_(flatbuffers::EndianScalar(_z)) { + : x_(::flatbuffers::EndianScalar(_x)), + y_(::flatbuffers::EndianScalar(_y)), + z_(::flatbuffers::EndianScalar(_z)) { } float x() const { - return flatbuffers::EndianScalar(x_); + return ::flatbuffers::EndianScalar(x_); } void mutate_x(float _x) { - flatbuffers::WriteScalar(&x_, _x); + ::flatbuffers::WriteScalar(&x_, _x); } float y() const { - return flatbuffers::EndianScalar(y_); + return ::flatbuffers::EndianScalar(y_); } void mutate_y(float _y) { - flatbuffers::WriteScalar(&y_, _y); + ::flatbuffers::WriteScalar(&y_, _y); } float z() const { - return flatbuffers::EndianScalar(z_); + return ::flatbuffers::EndianScalar(z_); } void mutate_z(float _z) { - flatbuffers::WriteScalar(&z_, _z); + ::flatbuffers::WriteScalar(&z_, _z); } }; FLATBUFFERS_STRUCT_END(Vector3D, 12); @@ -79,7 +79,7 @@ FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(4) Vector3DAlt FLATBUFFERS_FINAL_CLASS { float c_; public: - static const flatbuffers::TypeTable *MiniReflectTypeTable() { + static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { return Vector3DAltTypeTable(); } Vector3DAlt() @@ -88,60 +88,60 @@ FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(4) Vector3DAlt FLATBUFFERS_FINAL_CLASS { c_(0) { } Vector3DAlt(float _a, float _b, float _c) - : a_(flatbuffers::EndianScalar(_a)), - b_(flatbuffers::EndianScalar(_b)), - c_(flatbuffers::EndianScalar(_c)) { + : a_(::flatbuffers::EndianScalar(_a)), + b_(::flatbuffers::EndianScalar(_b)), + c_(::flatbuffers::EndianScalar(_c)) { } float a() const { - return flatbuffers::EndianScalar(a_); + return ::flatbuffers::EndianScalar(a_); } void mutate_a(float _a) { - flatbuffers::WriteScalar(&a_, _a); + ::flatbuffers::WriteScalar(&a_, _a); } float b() const { - return flatbuffers::EndianScalar(b_); + return ::flatbuffers::EndianScalar(b_); } void mutate_b(float _b) { - flatbuffers::WriteScalar(&b_, _b); + ::flatbuffers::WriteScalar(&b_, _b); } float c() const { - return flatbuffers::EndianScalar(c_); + return ::flatbuffers::EndianScalar(c_); } void mutate_c(float _c) { - flatbuffers::WriteScalar(&c_, _c); + ::flatbuffers::WriteScalar(&c_, _c); } }; FLATBUFFERS_STRUCT_END(Vector3DAlt, 12); -struct ApplicationDataT : public flatbuffers::NativeTable { +struct ApplicationDataT : public ::flatbuffers::NativeTable { typedef ApplicationData TableType; std::vector vectors{}; std::vector vectors_alt{}; }; -struct ApplicationData FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { +struct ApplicationData FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { typedef ApplicationDataT NativeTableType; typedef ApplicationDataBuilder Builder; - static const flatbuffers::TypeTable *MiniReflectTypeTable() { + static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { return ApplicationDataTypeTable(); } enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { VT_VECTORS = 4, VT_VECTORS_ALT = 6 }; - const flatbuffers::Vector *vectors() const { - return GetPointer *>(VT_VECTORS); + const ::flatbuffers::Vector *vectors() const { + return GetPointer *>(VT_VECTORS); } - flatbuffers::Vector *mutable_vectors() { - return GetPointer *>(VT_VECTORS); + ::flatbuffers::Vector *mutable_vectors() { + return GetPointer<::flatbuffers::Vector *>(VT_VECTORS); } - const flatbuffers::Vector *vectors_alt() const { - return GetPointer *>(VT_VECTORS_ALT); + const ::flatbuffers::Vector *vectors_alt() const { + return GetPointer *>(VT_VECTORS_ALT); } - flatbuffers::Vector *mutable_vectors_alt() { - return GetPointer *>(VT_VECTORS_ALT); + ::flatbuffers::Vector *mutable_vectors_alt() { + return GetPointer<::flatbuffers::Vector *>(VT_VECTORS_ALT); } - bool Verify(flatbuffers::Verifier &verifier) const { + bool Verify(::flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && VerifyOffset(verifier, VT_VECTORS) && verifier.VerifyVector(vectors()) && @@ -149,44 +149,44 @@ struct ApplicationData FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { verifier.VerifyVector(vectors_alt()) && verifier.EndTable(); } - ApplicationDataT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; - void UnPackTo(ApplicationDataT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const; - static flatbuffers::Offset Pack(flatbuffers::FlatBufferBuilder &_fbb, const ApplicationDataT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); + ApplicationDataT *UnPack(const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; + void UnPackTo(ApplicationDataT *_o, const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; + static ::flatbuffers::Offset Pack(::flatbuffers::FlatBufferBuilder &_fbb, const ApplicationDataT* _o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); }; struct ApplicationDataBuilder { typedef ApplicationData Table; - flatbuffers::FlatBufferBuilder &fbb_; - flatbuffers::uoffset_t start_; - void add_vectors(flatbuffers::Offset> vectors) { + ::flatbuffers::FlatBufferBuilder &fbb_; + ::flatbuffers::uoffset_t start_; + void add_vectors(::flatbuffers::Offset<::flatbuffers::Vector> vectors) { fbb_.AddOffset(ApplicationData::VT_VECTORS, vectors); } - void add_vectors_alt(flatbuffers::Offset> vectors_alt) { + void add_vectors_alt(::flatbuffers::Offset<::flatbuffers::Vector> vectors_alt) { fbb_.AddOffset(ApplicationData::VT_VECTORS_ALT, vectors_alt); } - explicit ApplicationDataBuilder(flatbuffers::FlatBufferBuilder &_fbb) + explicit ApplicationDataBuilder(::flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); } - flatbuffers::Offset Finish() { + ::flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); - auto o = flatbuffers::Offset(end); + auto o = ::flatbuffers::Offset(end); return o; } }; -inline flatbuffers::Offset CreateApplicationData( - flatbuffers::FlatBufferBuilder &_fbb, - flatbuffers::Offset> vectors = 0, - flatbuffers::Offset> vectors_alt = 0) { +inline ::flatbuffers::Offset CreateApplicationData( + ::flatbuffers::FlatBufferBuilder &_fbb, + ::flatbuffers::Offset<::flatbuffers::Vector> vectors = 0, + ::flatbuffers::Offset<::flatbuffers::Vector> vectors_alt = 0) { ApplicationDataBuilder builder_(_fbb); builder_.add_vectors_alt(vectors_alt); builder_.add_vectors(vectors); return builder_.Finish(); } -inline flatbuffers::Offset CreateApplicationDataDirect( - flatbuffers::FlatBufferBuilder &_fbb, +inline ::flatbuffers::Offset CreateApplicationDataDirect( + ::flatbuffers::FlatBufferBuilder &_fbb, const std::vector *vectors = nullptr, const std::vector *vectors_alt = nullptr) { auto vectors__ = vectors ? _fbb.CreateVectorOfStructs(*vectors) : 0; @@ -197,42 +197,42 @@ inline flatbuffers::Offset CreateApplicationDataDirect( vectors_alt__); } -flatbuffers::Offset CreateApplicationData(flatbuffers::FlatBufferBuilder &_fbb, const ApplicationDataT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); +::flatbuffers::Offset CreateApplicationData(::flatbuffers::FlatBufferBuilder &_fbb, const ApplicationDataT *_o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); -inline ApplicationDataT *ApplicationData::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +inline ApplicationDataT *ApplicationData::UnPack(const ::flatbuffers::resolver_function_t *_resolver) const { auto _o = std::unique_ptr(new ApplicationDataT()); UnPackTo(_o.get(), _resolver); return _o.release(); } -inline void ApplicationData::UnPackTo(ApplicationDataT *_o, const flatbuffers::resolver_function_t *_resolver) const { +inline void ApplicationData::UnPackTo(ApplicationDataT *_o, const ::flatbuffers::resolver_function_t *_resolver) const { (void)_o; (void)_resolver; - { auto _e = vectors(); if (_e) { _o->vectors.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->vectors[_i] = flatbuffers::UnPack(*_e->Get(_i)); } } else { _o->vectors.resize(0); } } - { auto _e = vectors_alt(); if (_e) { _o->vectors_alt.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->vectors_alt[_i] = flatbuffers::UnPackVector3DAlt(*_e->Get(_i)); } } else { _o->vectors_alt.resize(0); } } + { auto _e = vectors(); if (_e) { _o->vectors.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->vectors[_i] = ::flatbuffers::UnPack(*_e->Get(_i)); } } else { _o->vectors.resize(0); } } + { auto _e = vectors_alt(); if (_e) { _o->vectors_alt.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->vectors_alt[_i] = ::flatbuffers::UnPackVector3DAlt(*_e->Get(_i)); } } else { _o->vectors_alt.resize(0); } } } -inline flatbuffers::Offset ApplicationData::Pack(flatbuffers::FlatBufferBuilder &_fbb, const ApplicationDataT* _o, const flatbuffers::rehasher_function_t *_rehasher) { +inline ::flatbuffers::Offset ApplicationData::Pack(::flatbuffers::FlatBufferBuilder &_fbb, const ApplicationDataT* _o, const ::flatbuffers::rehasher_function_t *_rehasher) { return CreateApplicationData(_fbb, _o, _rehasher); } -inline flatbuffers::Offset CreateApplicationData(flatbuffers::FlatBufferBuilder &_fbb, const ApplicationDataT *_o, const flatbuffers::rehasher_function_t *_rehasher) { +inline ::flatbuffers::Offset CreateApplicationData(::flatbuffers::FlatBufferBuilder &_fbb, const ApplicationDataT *_o, const ::flatbuffers::rehasher_function_t *_rehasher) { (void)_rehasher; (void)_o; - struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const ApplicationDataT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; + struct _VectorArgs { ::flatbuffers::FlatBufferBuilder *__fbb; const ApplicationDataT* __o; const ::flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; auto _vectors = _o->vectors.size() ? _fbb.CreateVectorOfNativeStructs(_o->vectors) : 0; - auto _vectors_alt = _o->vectors_alt.size() ? _fbb.CreateVectorOfNativeStructs(_o->vectors_alt, flatbuffers::PackVector3DAlt) : 0; + auto _vectors_alt = _o->vectors_alt.size() ? _fbb.CreateVectorOfNativeStructs(_o->vectors_alt, ::flatbuffers::PackVector3DAlt) : 0; return Geometry::CreateApplicationData( _fbb, _vectors, _vectors_alt); } -inline const flatbuffers::TypeTable *Vector3DTypeTable() { - static const flatbuffers::TypeCode type_codes[] = { - { flatbuffers::ET_FLOAT, 0, -1 }, - { flatbuffers::ET_FLOAT, 0, -1 }, - { flatbuffers::ET_FLOAT, 0, -1 } +inline const ::flatbuffers::TypeTable *Vector3DTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_FLOAT, 0, -1 }, + { ::flatbuffers::ET_FLOAT, 0, -1 }, + { ::flatbuffers::ET_FLOAT, 0, -1 } }; static const int64_t values[] = { 0, 4, 8, 12 }; static const char * const names[] = { @@ -240,17 +240,17 @@ inline const flatbuffers::TypeTable *Vector3DTypeTable() { "y", "z" }; - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_STRUCT, 3, type_codes, nullptr, nullptr, values, names + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_STRUCT, 3, type_codes, nullptr, nullptr, values, names }; return &tt; } -inline const flatbuffers::TypeTable *Vector3DAltTypeTable() { - static const flatbuffers::TypeCode type_codes[] = { - { flatbuffers::ET_FLOAT, 0, -1 }, - { flatbuffers::ET_FLOAT, 0, -1 }, - { flatbuffers::ET_FLOAT, 0, -1 } +inline const ::flatbuffers::TypeTable *Vector3DAltTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_FLOAT, 0, -1 }, + { ::flatbuffers::ET_FLOAT, 0, -1 }, + { ::flatbuffers::ET_FLOAT, 0, -1 } }; static const int64_t values[] = { 0, 4, 8, 12 }; static const char * const names[] = { @@ -258,18 +258,18 @@ inline const flatbuffers::TypeTable *Vector3DAltTypeTable() { "b", "c" }; - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_STRUCT, 3, type_codes, nullptr, nullptr, values, names + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_STRUCT, 3, type_codes, nullptr, nullptr, values, names }; return &tt; } -inline const flatbuffers::TypeTable *ApplicationDataTypeTable() { - static const flatbuffers::TypeCode type_codes[] = { - { flatbuffers::ET_SEQUENCE, 1, 0 }, - { flatbuffers::ET_SEQUENCE, 1, 1 } +inline const ::flatbuffers::TypeTable *ApplicationDataTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_SEQUENCE, 1, 0 }, + { ::flatbuffers::ET_SEQUENCE, 1, 1 } }; - static const flatbuffers::TypeFunction type_refs[] = { + static const ::flatbuffers::TypeFunction type_refs[] = { Geometry::Vector3DTypeTable, Geometry::Vector3DAltTypeTable }; @@ -277,59 +277,59 @@ inline const flatbuffers::TypeTable *ApplicationDataTypeTable() { "vectors", "vectors_alt" }; - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_TABLE, 2, type_codes, type_refs, nullptr, nullptr, names + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_TABLE, 2, type_codes, type_refs, nullptr, nullptr, names }; return &tt; } inline const Geometry::ApplicationData *GetApplicationData(const void *buf) { - return flatbuffers::GetRoot(buf); + return ::flatbuffers::GetRoot(buf); } inline const Geometry::ApplicationData *GetSizePrefixedApplicationData(const void *buf) { - return flatbuffers::GetSizePrefixedRoot(buf); + return ::flatbuffers::GetSizePrefixedRoot(buf); } inline ApplicationData *GetMutableApplicationData(void *buf) { - return flatbuffers::GetMutableRoot(buf); + return ::flatbuffers::GetMutableRoot(buf); } inline Geometry::ApplicationData *GetMutableSizePrefixedApplicationData(void *buf) { - return flatbuffers::GetMutableSizePrefixedRoot(buf); + return ::flatbuffers::GetMutableSizePrefixedRoot(buf); } inline bool VerifyApplicationDataBuffer( - flatbuffers::Verifier &verifier) { + ::flatbuffers::Verifier &verifier) { return verifier.VerifyBuffer(nullptr); } inline bool VerifySizePrefixedApplicationDataBuffer( - flatbuffers::Verifier &verifier) { + ::flatbuffers::Verifier &verifier) { return verifier.VerifySizePrefixedBuffer(nullptr); } inline void FinishApplicationDataBuffer( - flatbuffers::FlatBufferBuilder &fbb, - flatbuffers::Offset root) { + ::flatbuffers::FlatBufferBuilder &fbb, + ::flatbuffers::Offset root) { fbb.Finish(root); } inline void FinishSizePrefixedApplicationDataBuffer( - flatbuffers::FlatBufferBuilder &fbb, - flatbuffers::Offset root) { + ::flatbuffers::FlatBufferBuilder &fbb, + ::flatbuffers::Offset root) { fbb.FinishSizePrefixed(root); } inline flatbuffers::unique_ptr UnPackApplicationData( const void *buf, - const flatbuffers::resolver_function_t *res = nullptr) { + const ::flatbuffers::resolver_function_t *res = nullptr) { return flatbuffers::unique_ptr(GetApplicationData(buf)->UnPack(res)); } inline flatbuffers::unique_ptr UnPackSizePrefixedApplicationData( const void *buf, - const flatbuffers::resolver_function_t *res = nullptr) { + const ::flatbuffers::resolver_function_t *res = nullptr) { return flatbuffers::unique_ptr(GetSizePrefixedApplicationData(buf)->UnPack(res)); } diff --git a/tests/optional_scalars_generated.h b/tests/optional_scalars_generated.h index 5971aaddb1..9e72405829 100644 --- a/tests/optional_scalars_generated.h +++ b/tests/optional_scalars_generated.h @@ -22,7 +22,7 @@ struct ScalarStuffT; bool operator==(const ScalarStuffT &lhs, const ScalarStuffT &rhs); bool operator!=(const ScalarStuffT &lhs, const ScalarStuffT &rhs); -inline const flatbuffers::TypeTable *ScalarStuffTypeTable(); +inline const ::flatbuffers::TypeTable *ScalarStuffTypeTable(); enum OptionalByte : int8_t { OptionalByte_None = 0, @@ -52,55 +52,55 @@ inline const char * const *EnumNamesOptionalByte() { } inline const char *EnumNameOptionalByte(OptionalByte e) { - if (flatbuffers::IsOutRange(e, OptionalByte_None, OptionalByte_Two)) return ""; + if (::flatbuffers::IsOutRange(e, OptionalByte_None, OptionalByte_Two)) return ""; const size_t index = static_cast(e); return EnumNamesOptionalByte()[index]; } -struct ScalarStuffT : public flatbuffers::NativeTable { +struct ScalarStuffT : public ::flatbuffers::NativeTable { typedef ScalarStuff TableType; int8_t just_i8 = 0; - flatbuffers::Optional maybe_i8 = flatbuffers::nullopt; + ::flatbuffers::Optional maybe_i8 = ::flatbuffers::nullopt; int8_t default_i8 = 42; uint8_t just_u8 = 0; - flatbuffers::Optional maybe_u8 = flatbuffers::nullopt; + ::flatbuffers::Optional maybe_u8 = ::flatbuffers::nullopt; uint8_t default_u8 = 42; int16_t just_i16 = 0; - flatbuffers::Optional maybe_i16 = flatbuffers::nullopt; + ::flatbuffers::Optional maybe_i16 = ::flatbuffers::nullopt; int16_t default_i16 = 42; uint16_t just_u16 = 0; - flatbuffers::Optional maybe_u16 = flatbuffers::nullopt; + ::flatbuffers::Optional maybe_u16 = ::flatbuffers::nullopt; uint16_t default_u16 = 42; int32_t just_i32 = 0; - flatbuffers::Optional maybe_i32 = flatbuffers::nullopt; + ::flatbuffers::Optional maybe_i32 = ::flatbuffers::nullopt; int32_t default_i32 = 42; uint32_t just_u32 = 0; - flatbuffers::Optional maybe_u32 = flatbuffers::nullopt; + ::flatbuffers::Optional maybe_u32 = ::flatbuffers::nullopt; uint32_t default_u32 = 42; int64_t just_i64 = 0; - flatbuffers::Optional maybe_i64 = flatbuffers::nullopt; + ::flatbuffers::Optional maybe_i64 = ::flatbuffers::nullopt; int64_t default_i64 = 42LL; uint64_t just_u64 = 0; - flatbuffers::Optional maybe_u64 = flatbuffers::nullopt; + ::flatbuffers::Optional maybe_u64 = ::flatbuffers::nullopt; uint64_t default_u64 = 42ULL; float just_f32 = 0.0f; - flatbuffers::Optional maybe_f32 = flatbuffers::nullopt; + ::flatbuffers::Optional maybe_f32 = ::flatbuffers::nullopt; float default_f32 = 42.0f; double just_f64 = 0.0; - flatbuffers::Optional maybe_f64 = flatbuffers::nullopt; + ::flatbuffers::Optional maybe_f64 = ::flatbuffers::nullopt; double default_f64 = 42.0; bool just_bool = false; - flatbuffers::Optional maybe_bool = flatbuffers::nullopt; + ::flatbuffers::Optional maybe_bool = ::flatbuffers::nullopt; bool default_bool = true; optional_scalars::OptionalByte just_enum = optional_scalars::OptionalByte_None; - flatbuffers::Optional maybe_enum = flatbuffers::nullopt; + ::flatbuffers::Optional maybe_enum = ::flatbuffers::nullopt; optional_scalars::OptionalByte default_enum = optional_scalars::OptionalByte_One; }; -struct ScalarStuff FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { +struct ScalarStuff FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { typedef ScalarStuffT NativeTableType; typedef ScalarStuffBuilder Builder; - static const flatbuffers::TypeTable *MiniReflectTypeTable() { + static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { return ScalarStuffTypeTable(); } enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { @@ -147,7 +147,7 @@ struct ScalarStuff FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { bool mutate_just_i8(int8_t _just_i8 = 0) { return SetField(VT_JUST_I8, _just_i8, 0); } - flatbuffers::Optional maybe_i8() const { + ::flatbuffers::Optional maybe_i8() const { return GetOptional(VT_MAYBE_I8); } bool mutate_maybe_i8(int8_t _maybe_i8) { @@ -165,7 +165,7 @@ struct ScalarStuff FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { bool mutate_just_u8(uint8_t _just_u8 = 0) { return SetField(VT_JUST_U8, _just_u8, 0); } - flatbuffers::Optional maybe_u8() const { + ::flatbuffers::Optional maybe_u8() const { return GetOptional(VT_MAYBE_U8); } bool mutate_maybe_u8(uint8_t _maybe_u8) { @@ -183,7 +183,7 @@ struct ScalarStuff FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { bool mutate_just_i16(int16_t _just_i16 = 0) { return SetField(VT_JUST_I16, _just_i16, 0); } - flatbuffers::Optional maybe_i16() const { + ::flatbuffers::Optional maybe_i16() const { return GetOptional(VT_MAYBE_I16); } bool mutate_maybe_i16(int16_t _maybe_i16) { @@ -201,7 +201,7 @@ struct ScalarStuff FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { bool mutate_just_u16(uint16_t _just_u16 = 0) { return SetField(VT_JUST_U16, _just_u16, 0); } - flatbuffers::Optional maybe_u16() const { + ::flatbuffers::Optional maybe_u16() const { return GetOptional(VT_MAYBE_U16); } bool mutate_maybe_u16(uint16_t _maybe_u16) { @@ -219,7 +219,7 @@ struct ScalarStuff FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { bool mutate_just_i32(int32_t _just_i32 = 0) { return SetField(VT_JUST_I32, _just_i32, 0); } - flatbuffers::Optional maybe_i32() const { + ::flatbuffers::Optional maybe_i32() const { return GetOptional(VT_MAYBE_I32); } bool mutate_maybe_i32(int32_t _maybe_i32) { @@ -237,7 +237,7 @@ struct ScalarStuff FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { bool mutate_just_u32(uint32_t _just_u32 = 0) { return SetField(VT_JUST_U32, _just_u32, 0); } - flatbuffers::Optional maybe_u32() const { + ::flatbuffers::Optional maybe_u32() const { return GetOptional(VT_MAYBE_U32); } bool mutate_maybe_u32(uint32_t _maybe_u32) { @@ -255,7 +255,7 @@ struct ScalarStuff FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { bool mutate_just_i64(int64_t _just_i64 = 0) { return SetField(VT_JUST_I64, _just_i64, 0); } - flatbuffers::Optional maybe_i64() const { + ::flatbuffers::Optional maybe_i64() const { return GetOptional(VT_MAYBE_I64); } bool mutate_maybe_i64(int64_t _maybe_i64) { @@ -273,7 +273,7 @@ struct ScalarStuff FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { bool mutate_just_u64(uint64_t _just_u64 = 0) { return SetField(VT_JUST_U64, _just_u64, 0); } - flatbuffers::Optional maybe_u64() const { + ::flatbuffers::Optional maybe_u64() const { return GetOptional(VT_MAYBE_U64); } bool mutate_maybe_u64(uint64_t _maybe_u64) { @@ -291,7 +291,7 @@ struct ScalarStuff FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { bool mutate_just_f32(float _just_f32 = 0.0f) { return SetField(VT_JUST_F32, _just_f32, 0.0f); } - flatbuffers::Optional maybe_f32() const { + ::flatbuffers::Optional maybe_f32() const { return GetOptional(VT_MAYBE_F32); } bool mutate_maybe_f32(float _maybe_f32) { @@ -309,7 +309,7 @@ struct ScalarStuff FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { bool mutate_just_f64(double _just_f64 = 0.0) { return SetField(VT_JUST_F64, _just_f64, 0.0); } - flatbuffers::Optional maybe_f64() const { + ::flatbuffers::Optional maybe_f64() const { return GetOptional(VT_MAYBE_F64); } bool mutate_maybe_f64(double _maybe_f64) { @@ -327,7 +327,7 @@ struct ScalarStuff FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { bool mutate_just_bool(bool _just_bool = 0) { return SetField(VT_JUST_BOOL, static_cast(_just_bool), 0); } - flatbuffers::Optional maybe_bool() const { + ::flatbuffers::Optional maybe_bool() const { return GetOptional(VT_MAYBE_BOOL); } bool mutate_maybe_bool(bool _maybe_bool) { @@ -345,7 +345,7 @@ struct ScalarStuff FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { bool mutate_just_enum(optional_scalars::OptionalByte _just_enum = static_cast(0)) { return SetField(VT_JUST_ENUM, static_cast(_just_enum), 0); } - flatbuffers::Optional maybe_enum() const { + ::flatbuffers::Optional maybe_enum() const { return GetOptional(VT_MAYBE_ENUM); } bool mutate_maybe_enum(optional_scalars::OptionalByte _maybe_enum) { @@ -357,7 +357,7 @@ struct ScalarStuff FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { bool mutate_default_enum(optional_scalars::OptionalByte _default_enum = static_cast(1)) { return SetField(VT_DEFAULT_ENUM, static_cast(_default_enum), 1); } - bool Verify(flatbuffers::Verifier &verifier) const { + bool Verify(::flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_JUST_I8, 1) && VerifyField(verifier, VT_MAYBE_I8, 1) && @@ -397,15 +397,15 @@ struct ScalarStuff FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { VerifyField(verifier, VT_DEFAULT_ENUM, 1) && verifier.EndTable(); } - ScalarStuffT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; - void UnPackTo(ScalarStuffT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const; - static flatbuffers::Offset Pack(flatbuffers::FlatBufferBuilder &_fbb, const ScalarStuffT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); + ScalarStuffT *UnPack(const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; + void UnPackTo(ScalarStuffT *_o, const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; + static ::flatbuffers::Offset Pack(::flatbuffers::FlatBufferBuilder &_fbb, const ScalarStuffT* _o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); }; struct ScalarStuffBuilder { typedef ScalarStuff Table; - flatbuffers::FlatBufferBuilder &fbb_; - flatbuffers::uoffset_t start_; + ::flatbuffers::FlatBufferBuilder &fbb_; + ::flatbuffers::uoffset_t start_; void add_just_i8(int8_t just_i8) { fbb_.AddElement(ScalarStuff::VT_JUST_I8, just_i8, 0); } @@ -514,54 +514,54 @@ struct ScalarStuffBuilder { void add_default_enum(optional_scalars::OptionalByte default_enum) { fbb_.AddElement(ScalarStuff::VT_DEFAULT_ENUM, static_cast(default_enum), 1); } - explicit ScalarStuffBuilder(flatbuffers::FlatBufferBuilder &_fbb) + explicit ScalarStuffBuilder(::flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); } - flatbuffers::Offset Finish() { + ::flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); - auto o = flatbuffers::Offset(end); + auto o = ::flatbuffers::Offset(end); return o; } }; -inline flatbuffers::Offset CreateScalarStuff( - flatbuffers::FlatBufferBuilder &_fbb, +inline ::flatbuffers::Offset CreateScalarStuff( + ::flatbuffers::FlatBufferBuilder &_fbb, int8_t just_i8 = 0, - flatbuffers::Optional maybe_i8 = flatbuffers::nullopt, + ::flatbuffers::Optional maybe_i8 = ::flatbuffers::nullopt, int8_t default_i8 = 42, uint8_t just_u8 = 0, - flatbuffers::Optional maybe_u8 = flatbuffers::nullopt, + ::flatbuffers::Optional maybe_u8 = ::flatbuffers::nullopt, uint8_t default_u8 = 42, int16_t just_i16 = 0, - flatbuffers::Optional maybe_i16 = flatbuffers::nullopt, + ::flatbuffers::Optional maybe_i16 = ::flatbuffers::nullopt, int16_t default_i16 = 42, uint16_t just_u16 = 0, - flatbuffers::Optional maybe_u16 = flatbuffers::nullopt, + ::flatbuffers::Optional maybe_u16 = ::flatbuffers::nullopt, uint16_t default_u16 = 42, int32_t just_i32 = 0, - flatbuffers::Optional maybe_i32 = flatbuffers::nullopt, + ::flatbuffers::Optional maybe_i32 = ::flatbuffers::nullopt, int32_t default_i32 = 42, uint32_t just_u32 = 0, - flatbuffers::Optional maybe_u32 = flatbuffers::nullopt, + ::flatbuffers::Optional maybe_u32 = ::flatbuffers::nullopt, uint32_t default_u32 = 42, int64_t just_i64 = 0, - flatbuffers::Optional maybe_i64 = flatbuffers::nullopt, + ::flatbuffers::Optional maybe_i64 = ::flatbuffers::nullopt, int64_t default_i64 = 42LL, uint64_t just_u64 = 0, - flatbuffers::Optional maybe_u64 = flatbuffers::nullopt, + ::flatbuffers::Optional maybe_u64 = ::flatbuffers::nullopt, uint64_t default_u64 = 42ULL, float just_f32 = 0.0f, - flatbuffers::Optional maybe_f32 = flatbuffers::nullopt, + ::flatbuffers::Optional maybe_f32 = ::flatbuffers::nullopt, float default_f32 = 42.0f, double just_f64 = 0.0, - flatbuffers::Optional maybe_f64 = flatbuffers::nullopt, + ::flatbuffers::Optional maybe_f64 = ::flatbuffers::nullopt, double default_f64 = 42.0, bool just_bool = false, - flatbuffers::Optional maybe_bool = flatbuffers::nullopt, + ::flatbuffers::Optional maybe_bool = ::flatbuffers::nullopt, bool default_bool = true, optional_scalars::OptionalByte just_enum = optional_scalars::OptionalByte_None, - flatbuffers::Optional maybe_enum = flatbuffers::nullopt, + ::flatbuffers::Optional maybe_enum = ::flatbuffers::nullopt, optional_scalars::OptionalByte default_enum = optional_scalars::OptionalByte_One) { ScalarStuffBuilder builder_(_fbb); builder_.add_default_f64(default_f64); @@ -603,7 +603,7 @@ inline flatbuffers::Offset CreateScalarStuff( return builder_.Finish(); } -flatbuffers::Offset CreateScalarStuff(flatbuffers::FlatBufferBuilder &_fbb, const ScalarStuffT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); +::flatbuffers::Offset CreateScalarStuff(::flatbuffers::FlatBufferBuilder &_fbb, const ScalarStuffT *_o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); inline bool operator==(const ScalarStuffT &lhs, const ScalarStuffT &rhs) { @@ -651,13 +651,13 @@ inline bool operator!=(const ScalarStuffT &lhs, const ScalarStuffT &rhs) { } -inline ScalarStuffT *ScalarStuff::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +inline ScalarStuffT *ScalarStuff::UnPack(const ::flatbuffers::resolver_function_t *_resolver) const { auto _o = std::unique_ptr(new ScalarStuffT()); UnPackTo(_o.get(), _resolver); return _o.release(); } -inline void ScalarStuff::UnPackTo(ScalarStuffT *_o, const flatbuffers::resolver_function_t *_resolver) const { +inline void ScalarStuff::UnPackTo(ScalarStuffT *_o, const ::flatbuffers::resolver_function_t *_resolver) const { (void)_o; (void)_resolver; { auto _e = just_i8(); _o->just_i8 = _e; } @@ -698,14 +698,14 @@ inline void ScalarStuff::UnPackTo(ScalarStuffT *_o, const flatbuffers::resolver_ { auto _e = default_enum(); _o->default_enum = _e; } } -inline flatbuffers::Offset ScalarStuff::Pack(flatbuffers::FlatBufferBuilder &_fbb, const ScalarStuffT* _o, const flatbuffers::rehasher_function_t *_rehasher) { +inline ::flatbuffers::Offset ScalarStuff::Pack(::flatbuffers::FlatBufferBuilder &_fbb, const ScalarStuffT* _o, const ::flatbuffers::rehasher_function_t *_rehasher) { return CreateScalarStuff(_fbb, _o, _rehasher); } -inline flatbuffers::Offset CreateScalarStuff(flatbuffers::FlatBufferBuilder &_fbb, const ScalarStuffT *_o, const flatbuffers::rehasher_function_t *_rehasher) { +inline ::flatbuffers::Offset CreateScalarStuff(::flatbuffers::FlatBufferBuilder &_fbb, const ScalarStuffT *_o, const ::flatbuffers::rehasher_function_t *_rehasher) { (void)_rehasher; (void)_o; - struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const ScalarStuffT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; + struct _VectorArgs { ::flatbuffers::FlatBufferBuilder *__fbb; const ScalarStuffT* __o; const ::flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; auto _just_i8 = _o->just_i8; auto _maybe_i8 = _o->maybe_i8; auto _default_i8 = _o->default_i8; @@ -782,13 +782,13 @@ inline flatbuffers::Offset CreateScalarStuff(flatbuffers::FlatBuffe _default_enum); } -inline const flatbuffers::TypeTable *OptionalByteTypeTable() { - static const flatbuffers::TypeCode type_codes[] = { - { flatbuffers::ET_CHAR, 0, 0 }, - { flatbuffers::ET_CHAR, 0, 0 }, - { flatbuffers::ET_CHAR, 0, 0 } +inline const ::flatbuffers::TypeTable *OptionalByteTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_CHAR, 0, 0 }, + { ::flatbuffers::ET_CHAR, 0, 0 }, + { ::flatbuffers::ET_CHAR, 0, 0 } }; - static const flatbuffers::TypeFunction type_refs[] = { + static const ::flatbuffers::TypeFunction type_refs[] = { optional_scalars::OptionalByteTypeTable }; static const char * const names[] = { @@ -796,52 +796,52 @@ inline const flatbuffers::TypeTable *OptionalByteTypeTable() { "One", "Two" }; - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_ENUM, 3, type_codes, type_refs, nullptr, nullptr, names + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_ENUM, 3, type_codes, type_refs, nullptr, nullptr, names }; return &tt; } -inline const flatbuffers::TypeTable *ScalarStuffTypeTable() { - static const flatbuffers::TypeCode type_codes[] = { - { flatbuffers::ET_CHAR, 0, -1 }, - { flatbuffers::ET_CHAR, 0, -1 }, - { flatbuffers::ET_CHAR, 0, -1 }, - { flatbuffers::ET_UCHAR, 0, -1 }, - { flatbuffers::ET_UCHAR, 0, -1 }, - { flatbuffers::ET_UCHAR, 0, -1 }, - { flatbuffers::ET_SHORT, 0, -1 }, - { flatbuffers::ET_SHORT, 0, -1 }, - { flatbuffers::ET_SHORT, 0, -1 }, - { flatbuffers::ET_USHORT, 0, -1 }, - { flatbuffers::ET_USHORT, 0, -1 }, - { flatbuffers::ET_USHORT, 0, -1 }, - { flatbuffers::ET_INT, 0, -1 }, - { flatbuffers::ET_INT, 0, -1 }, - { flatbuffers::ET_INT, 0, -1 }, - { flatbuffers::ET_UINT, 0, -1 }, - { flatbuffers::ET_UINT, 0, -1 }, - { flatbuffers::ET_UINT, 0, -1 }, - { flatbuffers::ET_LONG, 0, -1 }, - { flatbuffers::ET_LONG, 0, -1 }, - { flatbuffers::ET_LONG, 0, -1 }, - { flatbuffers::ET_ULONG, 0, -1 }, - { flatbuffers::ET_ULONG, 0, -1 }, - { flatbuffers::ET_ULONG, 0, -1 }, - { flatbuffers::ET_FLOAT, 0, -1 }, - { flatbuffers::ET_FLOAT, 0, -1 }, - { flatbuffers::ET_FLOAT, 0, -1 }, - { flatbuffers::ET_DOUBLE, 0, -1 }, - { flatbuffers::ET_DOUBLE, 0, -1 }, - { flatbuffers::ET_DOUBLE, 0, -1 }, - { flatbuffers::ET_BOOL, 0, -1 }, - { flatbuffers::ET_BOOL, 0, -1 }, - { flatbuffers::ET_BOOL, 0, -1 }, - { flatbuffers::ET_CHAR, 0, 0 }, - { flatbuffers::ET_CHAR, 0, 0 }, - { flatbuffers::ET_CHAR, 0, 0 } +inline const ::flatbuffers::TypeTable *ScalarStuffTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_CHAR, 0, -1 }, + { ::flatbuffers::ET_CHAR, 0, -1 }, + { ::flatbuffers::ET_CHAR, 0, -1 }, + { ::flatbuffers::ET_UCHAR, 0, -1 }, + { ::flatbuffers::ET_UCHAR, 0, -1 }, + { ::flatbuffers::ET_UCHAR, 0, -1 }, + { ::flatbuffers::ET_SHORT, 0, -1 }, + { ::flatbuffers::ET_SHORT, 0, -1 }, + { ::flatbuffers::ET_SHORT, 0, -1 }, + { ::flatbuffers::ET_USHORT, 0, -1 }, + { ::flatbuffers::ET_USHORT, 0, -1 }, + { ::flatbuffers::ET_USHORT, 0, -1 }, + { ::flatbuffers::ET_INT, 0, -1 }, + { ::flatbuffers::ET_INT, 0, -1 }, + { ::flatbuffers::ET_INT, 0, -1 }, + { ::flatbuffers::ET_UINT, 0, -1 }, + { ::flatbuffers::ET_UINT, 0, -1 }, + { ::flatbuffers::ET_UINT, 0, -1 }, + { ::flatbuffers::ET_LONG, 0, -1 }, + { ::flatbuffers::ET_LONG, 0, -1 }, + { ::flatbuffers::ET_LONG, 0, -1 }, + { ::flatbuffers::ET_ULONG, 0, -1 }, + { ::flatbuffers::ET_ULONG, 0, -1 }, + { ::flatbuffers::ET_ULONG, 0, -1 }, + { ::flatbuffers::ET_FLOAT, 0, -1 }, + { ::flatbuffers::ET_FLOAT, 0, -1 }, + { ::flatbuffers::ET_FLOAT, 0, -1 }, + { ::flatbuffers::ET_DOUBLE, 0, -1 }, + { ::flatbuffers::ET_DOUBLE, 0, -1 }, + { ::flatbuffers::ET_DOUBLE, 0, -1 }, + { ::flatbuffers::ET_BOOL, 0, -1 }, + { ::flatbuffers::ET_BOOL, 0, -1 }, + { ::flatbuffers::ET_BOOL, 0, -1 }, + { ::flatbuffers::ET_CHAR, 0, 0 }, + { ::flatbuffers::ET_CHAR, 0, 0 }, + { ::flatbuffers::ET_CHAR, 0, 0 } }; - static const flatbuffers::TypeFunction type_refs[] = { + static const ::flatbuffers::TypeFunction type_refs[] = { optional_scalars::OptionalByteTypeTable }; static const char * const names[] = { @@ -882,26 +882,26 @@ inline const flatbuffers::TypeTable *ScalarStuffTypeTable() { "maybe_enum", "default_enum" }; - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_TABLE, 36, type_codes, type_refs, nullptr, nullptr, names + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_TABLE, 36, type_codes, type_refs, nullptr, nullptr, names }; return &tt; } inline const optional_scalars::ScalarStuff *GetScalarStuff(const void *buf) { - return flatbuffers::GetRoot(buf); + return ::flatbuffers::GetRoot(buf); } inline const optional_scalars::ScalarStuff *GetSizePrefixedScalarStuff(const void *buf) { - return flatbuffers::GetSizePrefixedRoot(buf); + return ::flatbuffers::GetSizePrefixedRoot(buf); } inline ScalarStuff *GetMutableScalarStuff(void *buf) { - return flatbuffers::GetMutableRoot(buf); + return ::flatbuffers::GetMutableRoot(buf); } inline optional_scalars::ScalarStuff *GetMutableSizePrefixedScalarStuff(void *buf) { - return flatbuffers::GetMutableSizePrefixedRoot(buf); + return ::flatbuffers::GetMutableSizePrefixedRoot(buf); } inline const char *ScalarStuffIdentifier() { @@ -909,22 +909,22 @@ inline const char *ScalarStuffIdentifier() { } inline bool ScalarStuffBufferHasIdentifier(const void *buf) { - return flatbuffers::BufferHasIdentifier( + return ::flatbuffers::BufferHasIdentifier( buf, ScalarStuffIdentifier()); } inline bool SizePrefixedScalarStuffBufferHasIdentifier(const void *buf) { - return flatbuffers::BufferHasIdentifier( + return ::flatbuffers::BufferHasIdentifier( buf, ScalarStuffIdentifier(), true); } inline bool VerifyScalarStuffBuffer( - flatbuffers::Verifier &verifier) { + ::flatbuffers::Verifier &verifier) { return verifier.VerifyBuffer(ScalarStuffIdentifier()); } inline bool VerifySizePrefixedScalarStuffBuffer( - flatbuffers::Verifier &verifier) { + ::flatbuffers::Verifier &verifier) { return verifier.VerifySizePrefixedBuffer(ScalarStuffIdentifier()); } @@ -933,26 +933,26 @@ inline const char *ScalarStuffExtension() { } inline void FinishScalarStuffBuffer( - flatbuffers::FlatBufferBuilder &fbb, - flatbuffers::Offset root) { + ::flatbuffers::FlatBufferBuilder &fbb, + ::flatbuffers::Offset root) { fbb.Finish(root, ScalarStuffIdentifier()); } inline void FinishSizePrefixedScalarStuffBuffer( - flatbuffers::FlatBufferBuilder &fbb, - flatbuffers::Offset root) { + ::flatbuffers::FlatBufferBuilder &fbb, + ::flatbuffers::Offset root) { fbb.FinishSizePrefixed(root, ScalarStuffIdentifier()); } inline flatbuffers::unique_ptr UnPackScalarStuff( const void *buf, - const flatbuffers::resolver_function_t *res = nullptr) { + const ::flatbuffers::resolver_function_t *res = nullptr) { return flatbuffers::unique_ptr(GetScalarStuff(buf)->UnPack(res)); } inline flatbuffers::unique_ptr UnPackSizePrefixedScalarStuff( const void *buf, - const flatbuffers::resolver_function_t *res = nullptr) { + const ::flatbuffers::resolver_function_t *res = nullptr) { return flatbuffers::unique_ptr(GetSizePrefixedScalarStuff(buf)->UnPack(res)); } diff --git a/tests/union_vector/union_vector_generated.h b/tests/union_vector/union_vector_generated.h index 56823ce931..4ee71b5829 100644 --- a/tests/union_vector/union_vector_generated.h +++ b/tests/union_vector/union_vector_generated.h @@ -44,17 +44,17 @@ bool operator!=(const HandFanT &lhs, const HandFanT &rhs); bool operator==(const MovieT &lhs, const MovieT &rhs); bool operator!=(const MovieT &lhs, const MovieT &rhs); -inline const flatbuffers::TypeTable *AttackerTypeTable(); +inline const ::flatbuffers::TypeTable *AttackerTypeTable(); -inline const flatbuffers::TypeTable *RapunzelTypeTable(); +inline const ::flatbuffers::TypeTable *RapunzelTypeTable(); -inline const flatbuffers::TypeTable *BookReaderTypeTable(); +inline const ::flatbuffers::TypeTable *BookReaderTypeTable(); -inline const flatbuffers::TypeTable *FallingTubTypeTable(); +inline const ::flatbuffers::TypeTable *FallingTubTypeTable(); -inline const flatbuffers::TypeTable *HandFanTypeTable(); +inline const ::flatbuffers::TypeTable *HandFanTypeTable(); -inline const flatbuffers::TypeTable *MovieTypeTable(); +inline const ::flatbuffers::TypeTable *MovieTypeTable(); enum Character : uint8_t { Character_NONE = 0, @@ -96,7 +96,7 @@ inline const char * const *EnumNamesCharacter() { } inline const char *EnumNameCharacter(Character e) { - if (flatbuffers::IsOutRange(e, Character_NONE, Character_Unused)) return ""; + if (::flatbuffers::IsOutRange(e, Character_NONE, Character_Unused)) return ""; const size_t index = static_cast(e); return EnumNamesCharacter()[index]; } @@ -118,8 +118,8 @@ struct CharacterUnion { void Reset(); - static void *UnPack(const void *obj, Character type, const flatbuffers::resolver_function_t *resolver); - flatbuffers::Offset Pack(flatbuffers::FlatBufferBuilder &_fbb, const flatbuffers::rehasher_function_t *_rehasher = nullptr) const; + static void *UnPack(const void *obj, Character type, const ::flatbuffers::resolver_function_t *resolver); + ::flatbuffers::Offset Pack(::flatbuffers::FlatBufferBuilder &_fbb, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr) const; AttackerT *AsMuLan() { return type == Character_MuLan ? @@ -212,8 +212,8 @@ inline bool operator!=(const CharacterUnion &lhs, const CharacterUnion &rhs) { return !(lhs == rhs); } -bool VerifyCharacter(flatbuffers::Verifier &verifier, const void *obj, Character type); -bool VerifyCharacterVector(flatbuffers::Verifier &verifier, const flatbuffers::Vector> *values, const flatbuffers::Vector *types); +bool VerifyCharacter(::flatbuffers::Verifier &verifier, const void *obj, Character type); +bool VerifyCharacterVector(::flatbuffers::Verifier &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types); enum Gadget : uint8_t { Gadget_NONE = 0, @@ -243,7 +243,7 @@ inline const char * const *EnumNamesGadget() { } inline const char *EnumNameGadget(Gadget e) { - if (flatbuffers::IsOutRange(e, Gadget_NONE, Gadget_HandFan)) return ""; + if (::flatbuffers::IsOutRange(e, Gadget_NONE, Gadget_HandFan)) return ""; const size_t index = static_cast(e); return EnumNamesGadget()[index]; } @@ -299,8 +299,8 @@ struct GadgetUnion { } } - static void *UnPack(const void *obj, Gadget type, const flatbuffers::resolver_function_t *resolver); - flatbuffers::Offset Pack(flatbuffers::FlatBufferBuilder &_fbb, const flatbuffers::rehasher_function_t *_rehasher = nullptr) const; + static void *UnPack(const void *obj, Gadget type, const ::flatbuffers::resolver_function_t *resolver); + ::flatbuffers::Offset Pack(::flatbuffers::FlatBufferBuilder &_fbb, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr) const; FallingTub *AsFallingTub() { return type == Gadget_FallingTub ? @@ -345,28 +345,28 @@ inline bool operator!=(const GadgetUnion &lhs, const GadgetUnion &rhs) { return !(lhs == rhs); } -bool VerifyGadget(flatbuffers::Verifier &verifier, const void *obj, Gadget type); -bool VerifyGadgetVector(flatbuffers::Verifier &verifier, const flatbuffers::Vector> *values, const flatbuffers::Vector *types); +bool VerifyGadget(::flatbuffers::Verifier &verifier, const void *obj, Gadget type); +bool VerifyGadgetVector(::flatbuffers::Verifier &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types); FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(4) Rapunzel FLATBUFFERS_FINAL_CLASS { private: int32_t hair_length_; public: - static const flatbuffers::TypeTable *MiniReflectTypeTable() { + static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { return RapunzelTypeTable(); } Rapunzel() : hair_length_(0) { } Rapunzel(int32_t _hair_length) - : hair_length_(flatbuffers::EndianScalar(_hair_length)) { + : hair_length_(::flatbuffers::EndianScalar(_hair_length)) { } int32_t hair_length() const { - return flatbuffers::EndianScalar(hair_length_); + return ::flatbuffers::EndianScalar(hair_length_); } void mutate_hair_length(int32_t _hair_length) { - flatbuffers::WriteScalar(&hair_length_, _hair_length); + ::flatbuffers::WriteScalar(&hair_length_, _hair_length); } }; FLATBUFFERS_STRUCT_END(Rapunzel, 4); @@ -386,20 +386,20 @@ FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(4) BookReader FLATBUFFERS_FINAL_CLASS { int32_t books_read_; public: - static const flatbuffers::TypeTable *MiniReflectTypeTable() { + static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { return BookReaderTypeTable(); } BookReader() : books_read_(0) { } BookReader(int32_t _books_read) - : books_read_(flatbuffers::EndianScalar(_books_read)) { + : books_read_(::flatbuffers::EndianScalar(_books_read)) { } int32_t books_read() const { - return flatbuffers::EndianScalar(books_read_); + return ::flatbuffers::EndianScalar(books_read_); } void mutate_books_read(int32_t _books_read) { - flatbuffers::WriteScalar(&books_read_, _books_read); + ::flatbuffers::WriteScalar(&books_read_, _books_read); } }; FLATBUFFERS_STRUCT_END(BookReader, 4); @@ -419,20 +419,20 @@ FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(4) FallingTub FLATBUFFERS_FINAL_CLASS { int32_t weight_; public: - static const flatbuffers::TypeTable *MiniReflectTypeTable() { + static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { return FallingTubTypeTable(); } FallingTub() : weight_(0) { } FallingTub(int32_t _weight) - : weight_(flatbuffers::EndianScalar(_weight)) { + : weight_(::flatbuffers::EndianScalar(_weight)) { } int32_t weight() const { - return flatbuffers::EndianScalar(weight_); + return ::flatbuffers::EndianScalar(weight_); } void mutate_weight(int32_t _weight) { - flatbuffers::WriteScalar(&weight_, _weight); + ::flatbuffers::WriteScalar(&weight_, _weight); } }; FLATBUFFERS_STRUCT_END(FallingTub, 4); @@ -447,15 +447,15 @@ inline bool operator!=(const FallingTub &lhs, const FallingTub &rhs) { } -struct AttackerT : public flatbuffers::NativeTable { +struct AttackerT : public ::flatbuffers::NativeTable { typedef Attacker TableType; int32_t sword_attack_damage = 0; }; -struct Attacker FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { +struct Attacker FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { typedef AttackerT NativeTableType; typedef AttackerBuilder Builder; - static const flatbuffers::TypeTable *MiniReflectTypeTable() { + static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { return AttackerTypeTable(); } enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { @@ -467,53 +467,53 @@ struct Attacker FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { bool mutate_sword_attack_damage(int32_t _sword_attack_damage = 0) { return SetField(VT_SWORD_ATTACK_DAMAGE, _sword_attack_damage, 0); } - bool Verify(flatbuffers::Verifier &verifier) const { + bool Verify(::flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_SWORD_ATTACK_DAMAGE, 4) && verifier.EndTable(); } - AttackerT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; - void UnPackTo(AttackerT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const; - static flatbuffers::Offset Pack(flatbuffers::FlatBufferBuilder &_fbb, const AttackerT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); + AttackerT *UnPack(const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; + void UnPackTo(AttackerT *_o, const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; + static ::flatbuffers::Offset Pack(::flatbuffers::FlatBufferBuilder &_fbb, const AttackerT* _o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); }; struct AttackerBuilder { typedef Attacker Table; - flatbuffers::FlatBufferBuilder &fbb_; - flatbuffers::uoffset_t start_; + ::flatbuffers::FlatBufferBuilder &fbb_; + ::flatbuffers::uoffset_t start_; void add_sword_attack_damage(int32_t sword_attack_damage) { fbb_.AddElement(Attacker::VT_SWORD_ATTACK_DAMAGE, sword_attack_damage, 0); } - explicit AttackerBuilder(flatbuffers::FlatBufferBuilder &_fbb) + explicit AttackerBuilder(::flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); } - flatbuffers::Offset Finish() { + ::flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); - auto o = flatbuffers::Offset(end); + auto o = ::flatbuffers::Offset(end); return o; } }; -inline flatbuffers::Offset CreateAttacker( - flatbuffers::FlatBufferBuilder &_fbb, +inline ::flatbuffers::Offset CreateAttacker( + ::flatbuffers::FlatBufferBuilder &_fbb, int32_t sword_attack_damage = 0) { AttackerBuilder builder_(_fbb); builder_.add_sword_attack_damage(sword_attack_damage); return builder_.Finish(); } -flatbuffers::Offset CreateAttacker(flatbuffers::FlatBufferBuilder &_fbb, const AttackerT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); +::flatbuffers::Offset CreateAttacker(::flatbuffers::FlatBufferBuilder &_fbb, const AttackerT *_o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); -struct HandFanT : public flatbuffers::NativeTable { +struct HandFanT : public ::flatbuffers::NativeTable { typedef HandFan TableType; int32_t length = 0; }; -struct HandFan FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { +struct HandFan FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { typedef HandFanT NativeTableType; typedef HandFanBuilder Builder; - static const flatbuffers::TypeTable *MiniReflectTypeTable() { + static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { return HandFanTypeTable(); } enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { @@ -525,54 +525,54 @@ struct HandFan FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { bool mutate_length(int32_t _length = 0) { return SetField(VT_LENGTH, _length, 0); } - bool Verify(flatbuffers::Verifier &verifier) const { + bool Verify(::flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_LENGTH, 4) && verifier.EndTable(); } - HandFanT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; - void UnPackTo(HandFanT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const; - static flatbuffers::Offset Pack(flatbuffers::FlatBufferBuilder &_fbb, const HandFanT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); + HandFanT *UnPack(const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; + void UnPackTo(HandFanT *_o, const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; + static ::flatbuffers::Offset Pack(::flatbuffers::FlatBufferBuilder &_fbb, const HandFanT* _o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); }; struct HandFanBuilder { typedef HandFan Table; - flatbuffers::FlatBufferBuilder &fbb_; - flatbuffers::uoffset_t start_; + ::flatbuffers::FlatBufferBuilder &fbb_; + ::flatbuffers::uoffset_t start_; void add_length(int32_t length) { fbb_.AddElement(HandFan::VT_LENGTH, length, 0); } - explicit HandFanBuilder(flatbuffers::FlatBufferBuilder &_fbb) + explicit HandFanBuilder(::flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); } - flatbuffers::Offset Finish() { + ::flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); - auto o = flatbuffers::Offset(end); + auto o = ::flatbuffers::Offset(end); return o; } }; -inline flatbuffers::Offset CreateHandFan( - flatbuffers::FlatBufferBuilder &_fbb, +inline ::flatbuffers::Offset CreateHandFan( + ::flatbuffers::FlatBufferBuilder &_fbb, int32_t length = 0) { HandFanBuilder builder_(_fbb); builder_.add_length(length); return builder_.Finish(); } -flatbuffers::Offset CreateHandFan(flatbuffers::FlatBufferBuilder &_fbb, const HandFanT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); +::flatbuffers::Offset CreateHandFan(::flatbuffers::FlatBufferBuilder &_fbb, const HandFanT *_o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); -struct MovieT : public flatbuffers::NativeTable { +struct MovieT : public ::flatbuffers::NativeTable { typedef Movie TableType; CharacterUnion main_character{}; std::vector characters{}; }; -struct Movie FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { +struct Movie FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { typedef MovieT NativeTableType; typedef MovieBuilder Builder; - static const flatbuffers::TypeTable *MiniReflectTypeTable() { + static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { return MovieTypeTable(); } enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { @@ -599,28 +599,28 @@ struct Movie FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { const BookReader *main_character_as_BookFan() const { return main_character_type() == Character_BookFan ? static_cast(main_character()) : nullptr; } - const flatbuffers::String *main_character_as_Other() const { - return main_character_type() == Character_Other ? static_cast(main_character()) : nullptr; + const ::flatbuffers::String *main_character_as_Other() const { + return main_character_type() == Character_Other ? static_cast(main_character()) : nullptr; } - const flatbuffers::String *main_character_as_Unused() const { - return main_character_type() == Character_Unused ? static_cast(main_character()) : nullptr; + const ::flatbuffers::String *main_character_as_Unused() const { + return main_character_type() == Character_Unused ? static_cast(main_character()) : nullptr; } void *mutable_main_character() { return GetPointer(VT_MAIN_CHARACTER); } - const flatbuffers::Vector *characters_type() const { - return GetPointer *>(VT_CHARACTERS_TYPE); + const ::flatbuffers::Vector *characters_type() const { + return GetPointer *>(VT_CHARACTERS_TYPE); } - flatbuffers::Vector *mutable_characters_type() { - return GetPointer *>(VT_CHARACTERS_TYPE); + ::flatbuffers::Vector *mutable_characters_type() { + return GetPointer<::flatbuffers::Vector *>(VT_CHARACTERS_TYPE); } - const flatbuffers::Vector> *characters() const { - return GetPointer> *>(VT_CHARACTERS); + const ::flatbuffers::Vector<::flatbuffers::Offset> *characters() const { + return GetPointer> *>(VT_CHARACTERS); } - flatbuffers::Vector> *mutable_characters() { - return GetPointer> *>(VT_CHARACTERS); + ::flatbuffers::Vector<::flatbuffers::Offset> *mutable_characters() { + return GetPointer<::flatbuffers::Vector<::flatbuffers::Offset> *>(VT_CHARACTERS); } - bool Verify(flatbuffers::Verifier &verifier) const { + bool Verify(::flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_MAIN_CHARACTER_TYPE, 1) && VerifyOffset(verifier, VT_MAIN_CHARACTER) && @@ -632,44 +632,44 @@ struct Movie FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { VerifyCharacterVector(verifier, characters(), characters_type()) && verifier.EndTable(); } - MovieT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; - void UnPackTo(MovieT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const; - static flatbuffers::Offset Pack(flatbuffers::FlatBufferBuilder &_fbb, const MovieT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); + MovieT *UnPack(const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; + void UnPackTo(MovieT *_o, const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; + static ::flatbuffers::Offset Pack(::flatbuffers::FlatBufferBuilder &_fbb, const MovieT* _o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); }; struct MovieBuilder { typedef Movie Table; - flatbuffers::FlatBufferBuilder &fbb_; - flatbuffers::uoffset_t start_; + ::flatbuffers::FlatBufferBuilder &fbb_; + ::flatbuffers::uoffset_t start_; void add_main_character_type(Character main_character_type) { fbb_.AddElement(Movie::VT_MAIN_CHARACTER_TYPE, static_cast(main_character_type), 0); } - void add_main_character(flatbuffers::Offset main_character) { + void add_main_character(::flatbuffers::Offset main_character) { fbb_.AddOffset(Movie::VT_MAIN_CHARACTER, main_character); } - void add_characters_type(flatbuffers::Offset> characters_type) { + void add_characters_type(::flatbuffers::Offset<::flatbuffers::Vector> characters_type) { fbb_.AddOffset(Movie::VT_CHARACTERS_TYPE, characters_type); } - void add_characters(flatbuffers::Offset>> characters) { + void add_characters(::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset>> characters) { fbb_.AddOffset(Movie::VT_CHARACTERS, characters); } - explicit MovieBuilder(flatbuffers::FlatBufferBuilder &_fbb) + explicit MovieBuilder(::flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); } - flatbuffers::Offset Finish() { + ::flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); - auto o = flatbuffers::Offset(end); + auto o = ::flatbuffers::Offset(end); return o; } }; -inline flatbuffers::Offset CreateMovie( - flatbuffers::FlatBufferBuilder &_fbb, +inline ::flatbuffers::Offset CreateMovie( + ::flatbuffers::FlatBufferBuilder &_fbb, Character main_character_type = Character_NONE, - flatbuffers::Offset main_character = 0, - flatbuffers::Offset> characters_type = 0, - flatbuffers::Offset>> characters = 0) { + ::flatbuffers::Offset main_character = 0, + ::flatbuffers::Offset<::flatbuffers::Vector> characters_type = 0, + ::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset>> characters = 0) { MovieBuilder builder_(_fbb); builder_.add_characters(characters); builder_.add_characters_type(characters_type); @@ -678,14 +678,14 @@ inline flatbuffers::Offset CreateMovie( return builder_.Finish(); } -inline flatbuffers::Offset CreateMovieDirect( - flatbuffers::FlatBufferBuilder &_fbb, +inline ::flatbuffers::Offset CreateMovieDirect( + ::flatbuffers::FlatBufferBuilder &_fbb, Character main_character_type = Character_NONE, - flatbuffers::Offset main_character = 0, + ::flatbuffers::Offset main_character = 0, const std::vector *characters_type = nullptr, - const std::vector> *characters = nullptr) { + const std::vector<::flatbuffers::Offset> *characters = nullptr) { auto characters_type__ = characters_type ? _fbb.CreateVector(*characters_type) : 0; - auto characters__ = characters ? _fbb.CreateVector>(*characters) : 0; + auto characters__ = characters ? _fbb.CreateVector<::flatbuffers::Offset>(*characters) : 0; return CreateMovie( _fbb, main_character_type, @@ -694,7 +694,7 @@ inline flatbuffers::Offset CreateMovieDirect( characters__); } -flatbuffers::Offset CreateMovie(flatbuffers::FlatBufferBuilder &_fbb, const MovieT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); +::flatbuffers::Offset CreateMovie(::flatbuffers::FlatBufferBuilder &_fbb, const MovieT *_o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); inline bool operator==(const AttackerT &lhs, const AttackerT &rhs) { @@ -707,26 +707,26 @@ inline bool operator!=(const AttackerT &lhs, const AttackerT &rhs) { } -inline AttackerT *Attacker::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +inline AttackerT *Attacker::UnPack(const ::flatbuffers::resolver_function_t *_resolver) const { auto _o = std::unique_ptr(new AttackerT()); UnPackTo(_o.get(), _resolver); return _o.release(); } -inline void Attacker::UnPackTo(AttackerT *_o, const flatbuffers::resolver_function_t *_resolver) const { +inline void Attacker::UnPackTo(AttackerT *_o, const ::flatbuffers::resolver_function_t *_resolver) const { (void)_o; (void)_resolver; { auto _e = sword_attack_damage(); _o->sword_attack_damage = _e; } } -inline flatbuffers::Offset Attacker::Pack(flatbuffers::FlatBufferBuilder &_fbb, const AttackerT* _o, const flatbuffers::rehasher_function_t *_rehasher) { +inline ::flatbuffers::Offset Attacker::Pack(::flatbuffers::FlatBufferBuilder &_fbb, const AttackerT* _o, const ::flatbuffers::rehasher_function_t *_rehasher) { return CreateAttacker(_fbb, _o, _rehasher); } -inline flatbuffers::Offset CreateAttacker(flatbuffers::FlatBufferBuilder &_fbb, const AttackerT *_o, const flatbuffers::rehasher_function_t *_rehasher) { +inline ::flatbuffers::Offset CreateAttacker(::flatbuffers::FlatBufferBuilder &_fbb, const AttackerT *_o, const ::flatbuffers::rehasher_function_t *_rehasher) { (void)_rehasher; (void)_o; - struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const AttackerT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; + struct _VectorArgs { ::flatbuffers::FlatBufferBuilder *__fbb; const AttackerT* __o; const ::flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; auto _sword_attack_damage = _o->sword_attack_damage; return CreateAttacker( _fbb, @@ -744,26 +744,26 @@ inline bool operator!=(const HandFanT &lhs, const HandFanT &rhs) { } -inline HandFanT *HandFan::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +inline HandFanT *HandFan::UnPack(const ::flatbuffers::resolver_function_t *_resolver) const { auto _o = std::unique_ptr(new HandFanT()); UnPackTo(_o.get(), _resolver); return _o.release(); } -inline void HandFan::UnPackTo(HandFanT *_o, const flatbuffers::resolver_function_t *_resolver) const { +inline void HandFan::UnPackTo(HandFanT *_o, const ::flatbuffers::resolver_function_t *_resolver) const { (void)_o; (void)_resolver; { auto _e = length(); _o->length = _e; } } -inline flatbuffers::Offset HandFan::Pack(flatbuffers::FlatBufferBuilder &_fbb, const HandFanT* _o, const flatbuffers::rehasher_function_t *_rehasher) { +inline ::flatbuffers::Offset HandFan::Pack(::flatbuffers::FlatBufferBuilder &_fbb, const HandFanT* _o, const ::flatbuffers::rehasher_function_t *_rehasher) { return CreateHandFan(_fbb, _o, _rehasher); } -inline flatbuffers::Offset CreateHandFan(flatbuffers::FlatBufferBuilder &_fbb, const HandFanT *_o, const flatbuffers::rehasher_function_t *_rehasher) { +inline ::flatbuffers::Offset CreateHandFan(::flatbuffers::FlatBufferBuilder &_fbb, const HandFanT *_o, const ::flatbuffers::rehasher_function_t *_rehasher) { (void)_rehasher; (void)_o; - struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const HandFanT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; + struct _VectorArgs { ::flatbuffers::FlatBufferBuilder *__fbb; const HandFanT* __o; const ::flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; auto _length = _o->length; return CreateHandFan( _fbb, @@ -782,33 +782,33 @@ inline bool operator!=(const MovieT &lhs, const MovieT &rhs) { } -inline MovieT *Movie::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +inline MovieT *Movie::UnPack(const ::flatbuffers::resolver_function_t *_resolver) const { auto _o = std::unique_ptr(new MovieT()); UnPackTo(_o.get(), _resolver); return _o.release(); } -inline void Movie::UnPackTo(MovieT *_o, const flatbuffers::resolver_function_t *_resolver) const { +inline void Movie::UnPackTo(MovieT *_o, const ::flatbuffers::resolver_function_t *_resolver) const { (void)_o; (void)_resolver; { auto _e = main_character_type(); _o->main_character.type = _e; } { auto _e = main_character(); if (_e) _o->main_character.value = CharacterUnion::UnPack(_e, main_character_type(), _resolver); } - { auto _e = characters_type(); if (_e) { _o->characters.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->characters[_i].type = static_cast(_e->Get(_i)); } } else { _o->characters.resize(0); } } - { auto _e = characters(); if (_e) { _o->characters.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->characters[_i].value = CharacterUnion::UnPack(_e->Get(_i), characters_type()->GetEnum(_i), _resolver); } } else { _o->characters.resize(0); } } + { auto _e = characters_type(); if (_e) { _o->characters.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->characters[_i].type = static_cast(_e->Get(_i)); } } else { _o->characters.resize(0); } } + { auto _e = characters(); if (_e) { _o->characters.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->characters[_i].value = CharacterUnion::UnPack(_e->Get(_i), characters_type()->GetEnum(_i), _resolver); } } else { _o->characters.resize(0); } } } -inline flatbuffers::Offset Movie::Pack(flatbuffers::FlatBufferBuilder &_fbb, const MovieT* _o, const flatbuffers::rehasher_function_t *_rehasher) { +inline ::flatbuffers::Offset Movie::Pack(::flatbuffers::FlatBufferBuilder &_fbb, const MovieT* _o, const ::flatbuffers::rehasher_function_t *_rehasher) { return CreateMovie(_fbb, _o, _rehasher); } -inline flatbuffers::Offset CreateMovie(flatbuffers::FlatBufferBuilder &_fbb, const MovieT *_o, const flatbuffers::rehasher_function_t *_rehasher) { +inline ::flatbuffers::Offset CreateMovie(::flatbuffers::FlatBufferBuilder &_fbb, const MovieT *_o, const ::flatbuffers::rehasher_function_t *_rehasher) { (void)_rehasher; (void)_o; - struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const MovieT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; + struct _VectorArgs { ::flatbuffers::FlatBufferBuilder *__fbb; const MovieT* __o; const ::flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; auto _main_character_type = _o->main_character.type; auto _main_character = _o->main_character.Pack(_fbb); auto _characters_type = _o->characters.size() ? _fbb.CreateVector(_o->characters.size(), [](size_t i, _VectorArgs *__va) { return static_cast(__va->__o->characters[i].type); }, &_va) : 0; - auto _characters = _o->characters.size() ? _fbb.CreateVector>(_o->characters.size(), [](size_t i, _VectorArgs *__va) { return __va->__o->characters[i].Pack(*__va->__fbb, __va->__rehasher); }, &_va) : 0; + auto _characters = _o->characters.size() ? _fbb.CreateVector<::flatbuffers::Offset>(_o->characters.size(), [](size_t i, _VectorArgs *__va) { return __va->__o->characters[i].Pack(*__va->__fbb, __va->__rehasher); }, &_va) : 0; return CreateMovie( _fbb, _main_character_type, @@ -817,7 +817,7 @@ inline flatbuffers::Offset CreateMovie(flatbuffers::FlatBufferBuilder &_f _characters); } -inline bool VerifyCharacter(flatbuffers::Verifier &verifier, const void *obj, Character type) { +inline bool VerifyCharacter(::flatbuffers::Verifier &verifier, const void *obj, Character type) { switch (type) { case Character_NONE: { return true; @@ -836,21 +836,21 @@ inline bool VerifyCharacter(flatbuffers::Verifier &verifier, const void *obj, Ch return verifier.VerifyField(static_cast(obj), 0, 4); } case Character_Other: { - auto ptr = reinterpret_cast(obj); + auto ptr = reinterpret_cast(obj); return verifier.VerifyString(ptr); } case Character_Unused: { - auto ptr = reinterpret_cast(obj); + auto ptr = reinterpret_cast(obj); return verifier.VerifyString(ptr); } default: return true; } } -inline bool VerifyCharacterVector(flatbuffers::Verifier &verifier, const flatbuffers::Vector> *values, const flatbuffers::Vector *types) { +inline bool VerifyCharacterVector(::flatbuffers::Verifier &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types) { if (!values || !types) return !values && !types; if (values->size() != types->size()) return false; - for (flatbuffers::uoffset_t i = 0; i < values->size(); ++i) { + for (::flatbuffers::uoffset_t i = 0; i < values->size(); ++i) { if (!VerifyCharacter( verifier, values->Get(i), types->GetEnum(i))) { return false; @@ -859,7 +859,7 @@ inline bool VerifyCharacterVector(flatbuffers::Verifier &verifier, const flatbuf return true; } -inline void *CharacterUnion::UnPack(const void *obj, Character type, const flatbuffers::resolver_function_t *resolver) { +inline void *CharacterUnion::UnPack(const void *obj, Character type, const ::flatbuffers::resolver_function_t *resolver) { (void)resolver; switch (type) { case Character_MuLan: { @@ -879,18 +879,18 @@ inline void *CharacterUnion::UnPack(const void *obj, Character type, const flatb return new BookReader(*ptr); } case Character_Other: { - auto ptr = reinterpret_cast(obj); + auto ptr = reinterpret_cast(obj); return new std::string(ptr->c_str(), ptr->size()); } case Character_Unused: { - auto ptr = reinterpret_cast(obj); + auto ptr = reinterpret_cast(obj); return new std::string(ptr->c_str(), ptr->size()); } default: return nullptr; } } -inline flatbuffers::Offset CharacterUnion::Pack(flatbuffers::FlatBufferBuilder &_fbb, const flatbuffers::rehasher_function_t *_rehasher) const { +inline ::flatbuffers::Offset CharacterUnion::Pack(::flatbuffers::FlatBufferBuilder &_fbb, const ::flatbuffers::rehasher_function_t *_rehasher) const { (void)_rehasher; switch (type) { case Character_MuLan: { @@ -990,7 +990,7 @@ inline void CharacterUnion::Reset() { type = Character_NONE; } -inline bool VerifyGadget(flatbuffers::Verifier &verifier, const void *obj, Gadget type) { +inline bool VerifyGadget(::flatbuffers::Verifier &verifier, const void *obj, Gadget type) { switch (type) { case Gadget_NONE: { return true; @@ -1006,10 +1006,10 @@ inline bool VerifyGadget(flatbuffers::Verifier &verifier, const void *obj, Gadge } } -inline bool VerifyGadgetVector(flatbuffers::Verifier &verifier, const flatbuffers::Vector> *values, const flatbuffers::Vector *types) { +inline bool VerifyGadgetVector(::flatbuffers::Verifier &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types) { if (!values || !types) return !values && !types; if (values->size() != types->size()) return false; - for (flatbuffers::uoffset_t i = 0; i < values->size(); ++i) { + for (::flatbuffers::uoffset_t i = 0; i < values->size(); ++i) { if (!VerifyGadget( verifier, values->Get(i), types->GetEnum(i))) { return false; @@ -1018,7 +1018,7 @@ inline bool VerifyGadgetVector(flatbuffers::Verifier &verifier, const flatbuffer return true; } -inline void *GadgetUnion::UnPack(const void *obj, Gadget type, const flatbuffers::resolver_function_t *resolver) { +inline void *GadgetUnion::UnPack(const void *obj, Gadget type, const ::flatbuffers::resolver_function_t *resolver) { (void)resolver; switch (type) { case Gadget_FallingTub: { @@ -1033,7 +1033,7 @@ inline void *GadgetUnion::UnPack(const void *obj, Gadget type, const flatbuffers } } -inline flatbuffers::Offset GadgetUnion::Pack(flatbuffers::FlatBufferBuilder &_fbb, const flatbuffers::rehasher_function_t *_rehasher) const { +inline ::flatbuffers::Offset GadgetUnion::Pack(::flatbuffers::FlatBufferBuilder &_fbb, const ::flatbuffers::rehasher_function_t *_rehasher) const { (void)_rehasher; switch (type) { case Gadget_FallingTub: { @@ -1081,17 +1081,17 @@ inline void GadgetUnion::Reset() { type = Gadget_NONE; } -inline const flatbuffers::TypeTable *CharacterTypeTable() { - static const flatbuffers::TypeCode type_codes[] = { - { flatbuffers::ET_SEQUENCE, 0, -1 }, - { flatbuffers::ET_SEQUENCE, 0, 0 }, - { flatbuffers::ET_SEQUENCE, 0, 1 }, - { flatbuffers::ET_SEQUENCE, 0, 2 }, - { flatbuffers::ET_SEQUENCE, 0, 2 }, - { flatbuffers::ET_STRING, 0, -1 }, - { flatbuffers::ET_STRING, 0, -1 } +inline const ::flatbuffers::TypeTable *CharacterTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_SEQUENCE, 0, -1 }, + { ::flatbuffers::ET_SEQUENCE, 0, 0 }, + { ::flatbuffers::ET_SEQUENCE, 0, 1 }, + { ::flatbuffers::ET_SEQUENCE, 0, 2 }, + { ::flatbuffers::ET_SEQUENCE, 0, 2 }, + { ::flatbuffers::ET_STRING, 0, -1 }, + { ::flatbuffers::ET_STRING, 0, -1 } }; - static const flatbuffers::TypeFunction type_refs[] = { + static const ::flatbuffers::TypeFunction type_refs[] = { AttackerTypeTable, RapunzelTypeTable, BookReaderTypeTable @@ -1105,19 +1105,19 @@ inline const flatbuffers::TypeTable *CharacterTypeTable() { "Other", "Unused" }; - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_UNION, 7, type_codes, type_refs, nullptr, nullptr, names + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_UNION, 7, type_codes, type_refs, nullptr, nullptr, names }; return &tt; } -inline const flatbuffers::TypeTable *GadgetTypeTable() { - static const flatbuffers::TypeCode type_codes[] = { - { flatbuffers::ET_SEQUENCE, 0, -1 }, - { flatbuffers::ET_SEQUENCE, 0, 0 }, - { flatbuffers::ET_SEQUENCE, 0, 1 } +inline const ::flatbuffers::TypeTable *GadgetTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_SEQUENCE, 0, -1 }, + { ::flatbuffers::ET_SEQUENCE, 0, 0 }, + { ::flatbuffers::ET_SEQUENCE, 0, 1 } }; - static const flatbuffers::TypeFunction type_refs[] = { + static const ::flatbuffers::TypeFunction type_refs[] = { FallingTubTypeTable, HandFanTypeTable }; @@ -1126,88 +1126,88 @@ inline const flatbuffers::TypeTable *GadgetTypeTable() { "FallingTub", "HandFan" }; - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_UNION, 3, type_codes, type_refs, nullptr, nullptr, names + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_UNION, 3, type_codes, type_refs, nullptr, nullptr, names }; return &tt; } -inline const flatbuffers::TypeTable *AttackerTypeTable() { - static const flatbuffers::TypeCode type_codes[] = { - { flatbuffers::ET_INT, 0, -1 } +inline const ::flatbuffers::TypeTable *AttackerTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_INT, 0, -1 } }; static const char * const names[] = { "sword_attack_damage" }; - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_TABLE, 1, type_codes, nullptr, nullptr, nullptr, names + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_TABLE, 1, type_codes, nullptr, nullptr, nullptr, names }; return &tt; } -inline const flatbuffers::TypeTable *RapunzelTypeTable() { - static const flatbuffers::TypeCode type_codes[] = { - { flatbuffers::ET_INT, 0, -1 } +inline const ::flatbuffers::TypeTable *RapunzelTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_INT, 0, -1 } }; static const int64_t values[] = { 0, 4 }; static const char * const names[] = { "hair_length" }; - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_STRUCT, 1, type_codes, nullptr, nullptr, values, names + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_STRUCT, 1, type_codes, nullptr, nullptr, values, names }; return &tt; } -inline const flatbuffers::TypeTable *BookReaderTypeTable() { - static const flatbuffers::TypeCode type_codes[] = { - { flatbuffers::ET_INT, 0, -1 } +inline const ::flatbuffers::TypeTable *BookReaderTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_INT, 0, -1 } }; static const int64_t values[] = { 0, 4 }; static const char * const names[] = { "books_read" }; - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_STRUCT, 1, type_codes, nullptr, nullptr, values, names + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_STRUCT, 1, type_codes, nullptr, nullptr, values, names }; return &tt; } -inline const flatbuffers::TypeTable *FallingTubTypeTable() { - static const flatbuffers::TypeCode type_codes[] = { - { flatbuffers::ET_INT, 0, -1 } +inline const ::flatbuffers::TypeTable *FallingTubTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_INT, 0, -1 } }; static const int64_t values[] = { 0, 4 }; static const char * const names[] = { "weight" }; - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_STRUCT, 1, type_codes, nullptr, nullptr, values, names + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_STRUCT, 1, type_codes, nullptr, nullptr, values, names }; return &tt; } -inline const flatbuffers::TypeTable *HandFanTypeTable() { - static const flatbuffers::TypeCode type_codes[] = { - { flatbuffers::ET_INT, 0, -1 } +inline const ::flatbuffers::TypeTable *HandFanTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_INT, 0, -1 } }; static const char * const names[] = { "length" }; - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_TABLE, 1, type_codes, nullptr, nullptr, nullptr, names + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_TABLE, 1, type_codes, nullptr, nullptr, nullptr, names }; return &tt; } -inline const flatbuffers::TypeTable *MovieTypeTable() { - static const flatbuffers::TypeCode type_codes[] = { - { flatbuffers::ET_UTYPE, 0, 0 }, - { flatbuffers::ET_SEQUENCE, 0, 0 }, - { flatbuffers::ET_UTYPE, 1, 0 }, - { flatbuffers::ET_SEQUENCE, 1, 0 } +inline const ::flatbuffers::TypeTable *MovieTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_UTYPE, 0, 0 }, + { ::flatbuffers::ET_SEQUENCE, 0, 0 }, + { ::flatbuffers::ET_UTYPE, 1, 0 }, + { ::flatbuffers::ET_SEQUENCE, 1, 0 } }; - static const flatbuffers::TypeFunction type_refs[] = { + static const ::flatbuffers::TypeFunction type_refs[] = { CharacterTypeTable }; static const char * const names[] = { @@ -1216,26 +1216,26 @@ inline const flatbuffers::TypeTable *MovieTypeTable() { "characters_type", "characters" }; - static const flatbuffers::TypeTable tt = { - flatbuffers::ST_TABLE, 4, type_codes, type_refs, nullptr, nullptr, names + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_TABLE, 4, type_codes, type_refs, nullptr, nullptr, names }; return &tt; } inline const Movie *GetMovie(const void *buf) { - return flatbuffers::GetRoot(buf); + return ::flatbuffers::GetRoot(buf); } inline const Movie *GetSizePrefixedMovie(const void *buf) { - return flatbuffers::GetSizePrefixedRoot(buf); + return ::flatbuffers::GetSizePrefixedRoot(buf); } inline Movie *GetMutableMovie(void *buf) { - return flatbuffers::GetMutableRoot(buf); + return ::flatbuffers::GetMutableRoot(buf); } inline Movie *GetMutableSizePrefixedMovie(void *buf) { - return flatbuffers::GetMutableSizePrefixedRoot(buf); + return ::flatbuffers::GetMutableSizePrefixedRoot(buf); } inline const char *MovieIdentifier() { @@ -1243,46 +1243,46 @@ inline const char *MovieIdentifier() { } inline bool MovieBufferHasIdentifier(const void *buf) { - return flatbuffers::BufferHasIdentifier( + return ::flatbuffers::BufferHasIdentifier( buf, MovieIdentifier()); } inline bool SizePrefixedMovieBufferHasIdentifier(const void *buf) { - return flatbuffers::BufferHasIdentifier( + return ::flatbuffers::BufferHasIdentifier( buf, MovieIdentifier(), true); } inline bool VerifyMovieBuffer( - flatbuffers::Verifier &verifier) { + ::flatbuffers::Verifier &verifier) { return verifier.VerifyBuffer(MovieIdentifier()); } inline bool VerifySizePrefixedMovieBuffer( - flatbuffers::Verifier &verifier) { + ::flatbuffers::Verifier &verifier) { return verifier.VerifySizePrefixedBuffer(MovieIdentifier()); } inline void FinishMovieBuffer( - flatbuffers::FlatBufferBuilder &fbb, - flatbuffers::Offset root) { + ::flatbuffers::FlatBufferBuilder &fbb, + ::flatbuffers::Offset root) { fbb.Finish(root, MovieIdentifier()); } inline void FinishSizePrefixedMovieBuffer( - flatbuffers::FlatBufferBuilder &fbb, - flatbuffers::Offset root) { + ::flatbuffers::FlatBufferBuilder &fbb, + ::flatbuffers::Offset root) { fbb.FinishSizePrefixed(root, MovieIdentifier()); } inline flatbuffers::unique_ptr UnPackMovie( const void *buf, - const flatbuffers::resolver_function_t *res = nullptr) { + const ::flatbuffers::resolver_function_t *res = nullptr) { return flatbuffers::unique_ptr(GetMovie(buf)->UnPack(res)); } inline flatbuffers::unique_ptr UnPackSizePrefixedMovie( const void *buf, - const flatbuffers::resolver_function_t *res = nullptr) { + const ::flatbuffers::resolver_function_t *res = nullptr) { return flatbuffers::unique_ptr(GetSizePrefixedMovie(buf)->UnPack(res)); } From 06f2a3dce9c2db6c80fbdc590b8b82960cd9e311 Mon Sep 17 00:00:00 2001 From: Derek Bailey Date: Sat, 7 Jan 2023 12:21:25 -0800 Subject: [PATCH 083/571] Increase float to string precision to 17 --- src/idl_parser.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/idl_parser.cpp b/src/idl_parser.cpp index 360f0c744a..06095e6211 100644 --- a/src/idl_parser.cpp +++ b/src/idl_parser.cpp @@ -3903,7 +3903,7 @@ bool FieldDef::Deserialize(Parser &parser, const reflection::Field *field) { if (IsInteger(value.type.base_type)) { value.constant = NumToString(field->default_integer()); } else if (IsFloat(value.type.base_type)) { - value.constant = FloatToString(field->default_real(), 16); + value.constant = FloatToString(field->default_real(), 17); } presence = FieldDef::MakeFieldPresence(field->optional(), field->required()); padding = field->padding(); From b5802b57f2b29a797e45c215f9a2e3b5aaa90f82 Mon Sep 17 00:00:00 2001 From: Stefan F <32997632+stefan301@users.noreply.github.com> Date: Sat, 7 Jan 2023 21:37:22 +0100 Subject: [PATCH 084/571] =?UTF-8?q?Fix=20[C#]=20Object=20API=20-=20Invalid?= =?UTF-8?q?=20Property=20Name=20used=20in=20UnPackTo=20for=20unio=E2=80=A6?= =?UTF-8?q?=20(#7751)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Fix [C#] Object API - Invalid Property Name used in UnPackTo for union fieldhttps://github.com/google/flatbuffers/issues/7750, also fixes invalid Code generated in WriteJson for Unions named Value. * Test added: new schema union_value_collision.fbs with a Union named Value and a union field named value. The generated C# code now compiles when NetTest.bat. The Code generated with an older flatc.exe didn't compile because of a mismatch of the property name (Value vs. Value_). * branch was not up-to-date with master * BASE_OPTS + CPP_OPTS removed and union_value_collision_generated.h deleted Co-authored-by: Derek Bailey --- scripts/generate_code.py | 7 + src/idl_gen_csharp.cpp | 8 +- .../FlatBuffers.Core.Test.csproj | 3 + tests/union_value_collision.fbs | 17 + .../union_value_collision_generated.cs | 331 ++++++++++++++++++ 5 files changed, 362 insertions(+), 4 deletions(-) create mode 100644 tests/union_value_collision.fbs create mode 100644 tests/union_value_collsion/union_value_collision_generated.cs diff --git a/scripts/generate_code.py b/scripts/generate_code.py index c72d18a2a1..1e29d755f2 100755 --- a/scripts/generate_code.py +++ b/scripts/generate_code.py @@ -407,6 +407,13 @@ def glob(path, pattern): flatc(["--csharp", "--gen-object-api"], schema=type_field_collsion_schema) +# Union / value collision +flatc( + CS_OPTS + ["--gen-object-api", "--gen-onefile"], + prefix="union_value_collsion", + schema="union_value_collision.fbs" +) + # Generate string/vector default code for tests flatc(RUST_OPTS, prefix="more_defaults", schema="more_defaults.fbs") diff --git a/src/idl_gen_csharp.cpp b/src/idl_gen_csharp.cpp index 813ad0a650..7f5ca07021 100644 --- a/src/idl_gen_csharp.cpp +++ b/src/idl_gen_csharp.cpp @@ -1525,7 +1525,7 @@ class CSharpGenerator : public BaseGenerator { " _o, " "Newtonsoft.Json.JsonSerializer serializer) {\n"; code += " if (_o == null) return;\n"; - code += " serializer.Serialize(writer, _o.Value);\n"; + code += " serializer.Serialize(writer, _o." + class_member + ");\n"; code += " }\n"; code += " public override object ReadJson(Newtonsoft.Json.JsonReader " @@ -1562,8 +1562,8 @@ class CSharpGenerator : public BaseGenerator { code += " default: break;\n"; } else { auto type_name = GenTypeGet_ObjectAPI(ev.union_type, opts); - code += " case " + Name(enum_def) + "." + Name(ev) + - ": _o.Value = serializer.Deserialize<" + type_name + + code += " case " + Name(enum_def) + "." + Name(ev) + ": _o." + + class_member + " = serializer.Deserialize<" + type_name + ">(reader); break;\n"; } } @@ -1586,7 +1586,7 @@ class CSharpGenerator : public BaseGenerator { auto &code = *code_ptr; std::string varialbe_name = "_o." + camel_name; std::string class_member = "Value"; - if (class_member == camel_name) class_member += "_"; + if (class_member == enum_def.name) class_member += "_"; std::string type_suffix = ""; std::string func_suffix = "()"; std::string indent = " "; diff --git a/tests/FlatBuffers.Test/FlatBuffers.Core.Test.csproj b/tests/FlatBuffers.Test/FlatBuffers.Core.Test.csproj index a7697855da..a82b07af32 100644 --- a/tests/FlatBuffers.Test/FlatBuffers.Core.Test.csproj +++ b/tests/FlatBuffers.Test/FlatBuffers.Core.Test.csproj @@ -169,6 +169,9 @@ nested_namespace_test\nested_namespace_test3_generated.cs + + union_value_collsion\union_value_collision_generated.cs + diff --git a/tests/union_value_collision.fbs b/tests/union_value_collision.fbs new file mode 100644 index 0000000000..2e32245025 --- /dev/null +++ b/tests/union_value_collision.fbs @@ -0,0 +1,17 @@ +namespace union_value_collsion; + +table IntValue { + value:int; +} + +union Value { IntValue } + +union Other { IntValue } + +// This table tests collsions of Unions and fields named value. +table Collision { + some_value : Value; + value : Other; +} + +root_type Collision; \ No newline at end of file diff --git a/tests/union_value_collsion/union_value_collision_generated.cs b/tests/union_value_collsion/union_value_collision_generated.cs new file mode 100644 index 0000000000..ce0acde57c --- /dev/null +++ b/tests/union_value_collsion/union_value_collision_generated.cs @@ -0,0 +1,331 @@ +// +// automatically generated by the FlatBuffers compiler, do not modify +// + +namespace union_value_collsion +{ + +using global::System; +using global::System.Collections.Generic; +using global::Google.FlatBuffers; + +[Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.StringEnumConverter))] +public enum Value : byte +{ + NONE = 0, + IntValue = 1, +}; + +public class ValueUnion { + public Value Type { get; set; } + public object Value_ { get; set; } + + public ValueUnion() { + this.Type = Value.NONE; + this.Value_ = null; + } + + public T As() where T : class { return this.Value_ as T; } + public union_value_collsion.IntValueT AsIntValue() { return this.As(); } + public static ValueUnion FromIntValue(union_value_collsion.IntValueT _intvalue) { return new ValueUnion{ Type = Value.IntValue, Value_ = _intvalue }; } + + public static int Pack(Google.FlatBuffers.FlatBufferBuilder builder, ValueUnion _o) { + switch (_o.Type) { + default: return 0; + case Value.IntValue: return union_value_collsion.IntValue.Pack(builder, _o.AsIntValue()).Value; + } + } +} + +public class ValueUnion_JsonConverter : Newtonsoft.Json.JsonConverter { + public override bool CanConvert(System.Type objectType) { + return objectType == typeof(ValueUnion) || objectType == typeof(System.Collections.Generic.List); + } + public override void WriteJson(Newtonsoft.Json.JsonWriter writer, object value, Newtonsoft.Json.JsonSerializer serializer) { + var _olist = value as System.Collections.Generic.List; + if (_olist != null) { + writer.WriteStartArray(); + foreach (var _o in _olist) { this.WriteJson(writer, _o, serializer); } + writer.WriteEndArray(); + } else { + this.WriteJson(writer, value as ValueUnion, serializer); + } + } + public void WriteJson(Newtonsoft.Json.JsonWriter writer, ValueUnion _o, Newtonsoft.Json.JsonSerializer serializer) { + if (_o == null) return; + serializer.Serialize(writer, _o.Value_); + } + public override object ReadJson(Newtonsoft.Json.JsonReader reader, System.Type objectType, object existingValue, Newtonsoft.Json.JsonSerializer serializer) { + var _olist = existingValue as System.Collections.Generic.List; + if (_olist != null) { + for (var _j = 0; _j < _olist.Count; ++_j) { + reader.Read(); + _olist[_j] = this.ReadJson(reader, _olist[_j], serializer); + } + reader.Read(); + return _olist; + } else { + return this.ReadJson(reader, existingValue as ValueUnion, serializer); + } + } + public ValueUnion ReadJson(Newtonsoft.Json.JsonReader reader, ValueUnion _o, Newtonsoft.Json.JsonSerializer serializer) { + if (_o == null) return null; + switch (_o.Type) { + default: break; + case Value.IntValue: _o.Value_ = serializer.Deserialize(reader); break; + } + return _o; + } +} + +[Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.StringEnumConverter))] +public enum Other : byte +{ + NONE = 0, + IntValue = 1, +}; + +public class OtherUnion { + public Other Type { get; set; } + public object Value { get; set; } + + public OtherUnion() { + this.Type = Other.NONE; + this.Value = null; + } + + public T As() where T : class { return this.Value as T; } + public union_value_collsion.IntValueT AsIntValue() { return this.As(); } + public static OtherUnion FromIntValue(union_value_collsion.IntValueT _intvalue) { return new OtherUnion{ Type = Other.IntValue, Value = _intvalue }; } + + public static int Pack(Google.FlatBuffers.FlatBufferBuilder builder, OtherUnion _o) { + switch (_o.Type) { + default: return 0; + case Other.IntValue: return union_value_collsion.IntValue.Pack(builder, _o.AsIntValue()).Value; + } + } +} + +public class OtherUnion_JsonConverter : Newtonsoft.Json.JsonConverter { + public override bool CanConvert(System.Type objectType) { + return objectType == typeof(OtherUnion) || objectType == typeof(System.Collections.Generic.List); + } + public override void WriteJson(Newtonsoft.Json.JsonWriter writer, object value, Newtonsoft.Json.JsonSerializer serializer) { + var _olist = value as System.Collections.Generic.List; + if (_olist != null) { + writer.WriteStartArray(); + foreach (var _o in _olist) { this.WriteJson(writer, _o, serializer); } + writer.WriteEndArray(); + } else { + this.WriteJson(writer, value as OtherUnion, serializer); + } + } + public void WriteJson(Newtonsoft.Json.JsonWriter writer, OtherUnion _o, Newtonsoft.Json.JsonSerializer serializer) { + if (_o == null) return; + serializer.Serialize(writer, _o.Value); + } + public override object ReadJson(Newtonsoft.Json.JsonReader reader, System.Type objectType, object existingValue, Newtonsoft.Json.JsonSerializer serializer) { + var _olist = existingValue as System.Collections.Generic.List; + if (_olist != null) { + for (var _j = 0; _j < _olist.Count; ++_j) { + reader.Read(); + _olist[_j] = this.ReadJson(reader, _olist[_j], serializer); + } + reader.Read(); + return _olist; + } else { + return this.ReadJson(reader, existingValue as OtherUnion, serializer); + } + } + public OtherUnion ReadJson(Newtonsoft.Json.JsonReader reader, OtherUnion _o, Newtonsoft.Json.JsonSerializer serializer) { + if (_o == null) return null; + switch (_o.Type) { + default: break; + case Other.IntValue: _o.Value = serializer.Deserialize(reader); break; + } + return _o; + } +} + +public struct IntValue : IFlatbufferObject +{ + private Table __p; + public ByteBuffer ByteBuffer { get { return __p.bb; } } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_4(); } + public static IntValue GetRootAsIntValue(ByteBuffer _bb) { return GetRootAsIntValue(_bb, new IntValue()); } + public static IntValue GetRootAsIntValue(ByteBuffer _bb, IntValue obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } + public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } + public IntValue __assign(int _i, ByteBuffer _bb) { __init(_i, _bb); return this; } + + public int Value { get { int o = __p.__offset(4); return o != 0 ? __p.bb.GetInt(o + __p.bb_pos) : (int)0; } } + + public static Offset CreateIntValue(FlatBufferBuilder builder, + int value = 0) { + builder.StartTable(1); + IntValue.AddValue(builder, value); + return IntValue.EndIntValue(builder); + } + + public static void StartIntValue(FlatBufferBuilder builder) { builder.StartTable(1); } + public static void AddValue(FlatBufferBuilder builder, int value) { builder.AddInt(0, value, 0); } + public static Offset EndIntValue(FlatBufferBuilder builder) { + int o = builder.EndTable(); + return new Offset(o); + } + public IntValueT UnPack() { + var _o = new IntValueT(); + this.UnPackTo(_o); + return _o; + } + public void UnPackTo(IntValueT _o) { + _o.Value = this.Value; + } + public static Offset Pack(FlatBufferBuilder builder, IntValueT _o) { + if (_o == null) return default(Offset); + return CreateIntValue( + builder, + _o.Value); + } +} + +public class IntValueT +{ + [Newtonsoft.Json.JsonProperty("value")] + public int Value { get; set; } + + public IntValueT() { + this.Value = 0; + } +} + +public struct Collision : IFlatbufferObject +{ + private Table __p; + public ByteBuffer ByteBuffer { get { return __p.bb; } } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_4(); } + public static Collision GetRootAsCollision(ByteBuffer _bb) { return GetRootAsCollision(_bb, new Collision()); } + public static Collision GetRootAsCollision(ByteBuffer _bb, Collision obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } + public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } + public Collision __assign(int _i, ByteBuffer _bb) { __init(_i, _bb); return this; } + + public union_value_collsion.Value SomeValueType { get { int o = __p.__offset(4); return o != 0 ? (union_value_collsion.Value)__p.bb.Get(o + __p.bb_pos) : union_value_collsion.Value.NONE; } } + public TTable? SomeValue() where TTable : struct, IFlatbufferObject { int o = __p.__offset(6); return o != 0 ? (TTable?)__p.__union(o + __p.bb_pos) : null; } + public union_value_collsion.IntValue SomeValueAsIntValue() { return SomeValue().Value; } + public union_value_collsion.Other ValueType { get { int o = __p.__offset(8); return o != 0 ? (union_value_collsion.Other)__p.bb.Get(o + __p.bb_pos) : union_value_collsion.Other.NONE; } } + public TTable? Value() where TTable : struct, IFlatbufferObject { int o = __p.__offset(10); return o != 0 ? (TTable?)__p.__union(o + __p.bb_pos) : null; } + public union_value_collsion.IntValue ValueAsIntValue() { return Value().Value; } + + public static Offset CreateCollision(FlatBufferBuilder builder, + union_value_collsion.Value some_value_type = union_value_collsion.Value.NONE, + int some_valueOffset = 0, + union_value_collsion.Other value_type = union_value_collsion.Other.NONE, + int valueOffset = 0) { + builder.StartTable(4); + Collision.AddValue(builder, valueOffset); + Collision.AddSomeValue(builder, some_valueOffset); + Collision.AddValueType(builder, value_type); + Collision.AddSomeValueType(builder, some_value_type); + return Collision.EndCollision(builder); + } + + public static void StartCollision(FlatBufferBuilder builder) { builder.StartTable(4); } + public static void AddSomeValueType(FlatBufferBuilder builder, union_value_collsion.Value someValueType) { builder.AddByte(0, (byte)someValueType, 0); } + public static void AddSomeValue(FlatBufferBuilder builder, int someValueOffset) { builder.AddOffset(1, someValueOffset, 0); } + public static void AddValueType(FlatBufferBuilder builder, union_value_collsion.Other valueType) { builder.AddByte(2, (byte)valueType, 0); } + public static void AddValue(FlatBufferBuilder builder, int valueOffset) { builder.AddOffset(3, valueOffset, 0); } + public static Offset EndCollision(FlatBufferBuilder builder) { + int o = builder.EndTable(); + return new Offset(o); + } + public static void FinishCollisionBuffer(FlatBufferBuilder builder, Offset offset) { builder.Finish(offset.Value); } + public static void FinishSizePrefixedCollisionBuffer(FlatBufferBuilder builder, Offset offset) { builder.FinishSizePrefixed(offset.Value); } + public CollisionT UnPack() { + var _o = new CollisionT(); + this.UnPackTo(_o); + return _o; + } + public void UnPackTo(CollisionT _o) { + _o.SomeValue = new union_value_collsion.ValueUnion(); + _o.SomeValue.Type = this.SomeValueType; + switch (this.SomeValueType) { + default: break; + case union_value_collsion.Value.IntValue: + _o.SomeValue.Value_ = this.SomeValue().HasValue ? this.SomeValue().Value.UnPack() : null; + break; + } + _o.Value = new union_value_collsion.OtherUnion(); + _o.Value.Type = this.ValueType; + switch (this.ValueType) { + default: break; + case union_value_collsion.Other.IntValue: + _o.Value.Value = this.Value().HasValue ? this.Value().Value.UnPack() : null; + break; + } + } + public static Offset Pack(FlatBufferBuilder builder, CollisionT _o) { + if (_o == null) return default(Offset); + var _some_value_type = _o.SomeValue == null ? union_value_collsion.Value.NONE : _o.SomeValue.Type; + var _some_value = _o.SomeValue == null ? 0 : union_value_collsion.ValueUnion.Pack(builder, _o.SomeValue); + var _value_type = _o.Value == null ? union_value_collsion.Other.NONE : _o.Value.Type; + var _value = _o.Value == null ? 0 : union_value_collsion.OtherUnion.Pack(builder, _o.Value); + return CreateCollision( + builder, + _some_value_type, + _some_value, + _value_type, + _value); + } +} + +public class CollisionT +{ + [Newtonsoft.Json.JsonProperty("some_value_type")] + private union_value_collsion.Value SomeValueType { + get { + return this.SomeValue != null ? this.SomeValue.Type : union_value_collsion.Value.NONE; + } + set { + this.SomeValue = new union_value_collsion.ValueUnion(); + this.SomeValue.Type = value; + } + } + [Newtonsoft.Json.JsonProperty("some_value")] + [Newtonsoft.Json.JsonConverter(typeof(union_value_collsion.ValueUnion_JsonConverter))] + public union_value_collsion.ValueUnion SomeValue { get; set; } + [Newtonsoft.Json.JsonProperty("value_type")] + private union_value_collsion.Other ValueType { + get { + return this.Value != null ? this.Value.Type : union_value_collsion.Other.NONE; + } + set { + this.Value = new union_value_collsion.OtherUnion(); + this.Value.Type = value; + } + } + [Newtonsoft.Json.JsonProperty("value")] + [Newtonsoft.Json.JsonConverter(typeof(union_value_collsion.OtherUnion_JsonConverter))] + public union_value_collsion.OtherUnion Value { get; set; } + + public CollisionT() { + this.SomeValue = null; + this.Value = null; + } + + public static CollisionT DeserializeFromJson(string jsonText) { + return Newtonsoft.Json.JsonConvert.DeserializeObject(jsonText); + } + public string SerializeToJson() { + return Newtonsoft.Json.JsonConvert.SerializeObject(this, Newtonsoft.Json.Formatting.Indented); + } + public static CollisionT DeserializeFromBinary(byte[] fbBuffer) { + return Collision.GetRootAsCollision(new ByteBuffer(fbBuffer)).UnPack(); + } + public byte[] SerializeToBinary() { + var fbb = new FlatBufferBuilder(0x10000); + Collision.FinishCollisionBuffer(fbb, Collision.Pack(fbb, this)); + return fbb.DataBuffer.ToSizedArray(); + } +} + + +} From c2668fc0e27c9cbcb5c3376442c94170f3d5ab2d Mon Sep 17 00:00:00 2001 From: Chris <6701545+ink-su@users.noreply.github.com> Date: Sat, 7 Jan 2023 13:42:28 -0800 Subject: [PATCH 085/571] Add ts-no-import-ext flag (#7748) Co-authored-by: Derek Bailey --- include/flatbuffers/idl.h | 2 + src/flatc.cpp | 2 + src/idl_gen_ts.cpp | 10 +- tests/ts/TypeScriptTest.py | 6 + .../optional-scalars/optional-byte.js | 7 + .../optional-scalars/optional-byte.ts | 7 + .../optional-scalars/scalar-stuff.js | 344 ++++++++++++++ .../optional-scalars/scalar-stuff.ts | 427 ++++++++++++++++++ tests/ts/no_import_ext/optional_scalars.js | 1 + tests/ts/no_import_ext/optional_scalars.ts | 1 + .../optional_scalars_generated.js | 3 + .../optional_scalars_generated.ts | 4 + tests/ts/tsconfig.json | 3 +- 13 files changed, 812 insertions(+), 5 deletions(-) create mode 100644 tests/ts/no_import_ext/optional-scalars/optional-byte.js create mode 100644 tests/ts/no_import_ext/optional-scalars/optional-byte.ts create mode 100644 tests/ts/no_import_ext/optional-scalars/scalar-stuff.js create mode 100644 tests/ts/no_import_ext/optional-scalars/scalar-stuff.ts create mode 100644 tests/ts/no_import_ext/optional_scalars.js create mode 100644 tests/ts/no_import_ext/optional_scalars.ts create mode 100644 tests/ts/no_import_ext/optional_scalars_generated.js create mode 100644 tests/ts/no_import_ext/optional_scalars_generated.ts diff --git a/include/flatbuffers/idl.h b/include/flatbuffers/idl.h index c4460b3db6..9e5bb25eb2 100644 --- a/include/flatbuffers/idl.h +++ b/include/flatbuffers/idl.h @@ -659,6 +659,7 @@ struct IDLOptions { bool json_nested_flexbuffers; bool json_nested_legacy_flatbuffers; bool ts_flat_file; + bool ts_no_import_ext; bool no_leak_private_annotations; bool require_json_eof; @@ -763,6 +764,7 @@ struct IDLOptions { json_nested_flexbuffers(true), json_nested_legacy_flatbuffers(false), ts_flat_file(false), + ts_no_import_ext(false), no_leak_private_annotations(false), require_json_eof(true), mini_reflect(IDLOptions::kNone), diff --git a/src/flatc.cpp b/src/flatc.cpp index 02119dd63a..3d6856e95f 100644 --- a/src/flatc.cpp +++ b/src/flatc.cpp @@ -613,6 +613,8 @@ int FlatCompiler::Compile(int argc, const char **argv) { opts.json_nested_legacy_flatbuffers = true; } else if (arg == "--ts-flat-files") { opts.ts_flat_file = true; + } else if (arg == "--ts-no-import-ext") { + opts.ts_no_import_ext = true; } else if (arg == "--no-leak-private-annotation") { opts.no_leak_private_annotations = true; } else if (arg == "--annotate") { diff --git a/src/idl_gen_ts.cpp b/src/idl_gen_ts.cpp index ca95e4a382..aac409c972 100644 --- a/src/idl_gen_ts.cpp +++ b/src/idl_gen_ts.cpp @@ -256,15 +256,16 @@ class TsGenerator : public BaseGenerator { // specified here? Should we always be adding the "./" for a relative // path or turn it off if --include-prefix is specified, or something // else? + std::string import_extension = parser_.opts.ts_no_import_ext ? "" : ".js"; std::string include_name = - "./" + flatbuffers::StripExtension(include_file); + "./" + flatbuffers::StripExtension(include_file) + import_extension; code += "import {"; for (const auto &pair : it.second) { code += namer_.EscapeKeyword(pair.first) + " as " + namer_.EscapeKeyword(pair.second) + ", "; } code.resize(code.size() - 2); - code += "} from '" + include_name + ".js';\n"; + code += "} from '" + include_name + "';\n"; } code += "\n"; } @@ -883,10 +884,11 @@ class TsGenerator : public BaseGenerator { import.object_name = object_name; import.bare_file_path = bare_file_path; import.rel_file_path = rel_file_path; + std::string import_extension = parser_.opts.ts_no_import_ext ? "" : ".js"; import.import_statement = "import { " + symbols_expression + " } from '" + - rel_file_path + ".js';"; + rel_file_path + import_extension + "';"; import.export_statement = "export { " + symbols_expression + " } from '." + - bare_file_path + ".js';"; + bare_file_path + import_extension + "';"; import.dependency = &dependency; import.dependent = &dependent; diff --git a/tests/ts/TypeScriptTest.py b/tests/ts/TypeScriptTest.py index bb8dfcad43..4fe7ab6539 100755 --- a/tests/ts/TypeScriptTest.py +++ b/tests/ts/TypeScriptTest.py @@ -84,6 +84,12 @@ def flatc(options, schema, prefix=None, include=None, data=None, cwd=tests_path) 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-mutable", "--gen-object-api"], schema=[ diff --git a/tests/ts/no_import_ext/optional-scalars/optional-byte.js b/tests/ts/no_import_ext/optional-scalars/optional-byte.js new file mode 100644 index 0000000000..8257f93a46 --- /dev/null +++ b/tests/ts/no_import_ext/optional-scalars/optional-byte.js @@ -0,0 +1,7 @@ +// automatically generated by the FlatBuffers compiler, do not modify +export var OptionalByte; +(function (OptionalByte) { + OptionalByte[OptionalByte["None"] = 0] = "None"; + OptionalByte[OptionalByte["One"] = 1] = "One"; + OptionalByte[OptionalByte["Two"] = 2] = "Two"; +})(OptionalByte || (OptionalByte = {})); diff --git a/tests/ts/no_import_ext/optional-scalars/optional-byte.ts b/tests/ts/no_import_ext/optional-scalars/optional-byte.ts new file mode 100644 index 0000000000..f4db265e2b --- /dev/null +++ b/tests/ts/no_import_ext/optional-scalars/optional-byte.ts @@ -0,0 +1,7 @@ +// automatically generated by the FlatBuffers compiler, do not modify + +export enum OptionalByte { + None = 0, + One = 1, + Two = 2 +} diff --git a/tests/ts/no_import_ext/optional-scalars/scalar-stuff.js b/tests/ts/no_import_ext/optional-scalars/scalar-stuff.js new file mode 100644 index 0000000000..41d4bb0e6b --- /dev/null +++ b/tests/ts/no_import_ext/optional-scalars/scalar-stuff.js @@ -0,0 +1,344 @@ +// automatically generated by the FlatBuffers compiler, do not modify +import * as flatbuffers from 'flatbuffers'; +import { OptionalByte } from '../optional-scalars/optional-byte'; +export class ScalarStuff { + constructor() { + this.bb = null; + this.bb_pos = 0; + } + __init(i, bb) { + this.bb_pos = i; + this.bb = bb; + return this; + } + static getRootAsScalarStuff(bb, obj) { + return (obj || new ScalarStuff()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + static getSizePrefixedRootAsScalarStuff(bb, obj) { + bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH); + return (obj || new ScalarStuff()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + static bufferHasIdentifier(bb) { + return bb.__has_identifier('NULL'); + } + justI8() { + const offset = this.bb.__offset(this.bb_pos, 4); + return offset ? this.bb.readInt8(this.bb_pos + offset) : 0; + } + maybeI8() { + const offset = this.bb.__offset(this.bb_pos, 6); + return offset ? this.bb.readInt8(this.bb_pos + offset) : null; + } + defaultI8() { + const offset = this.bb.__offset(this.bb_pos, 8); + return offset ? this.bb.readInt8(this.bb_pos + offset) : 42; + } + justU8() { + const offset = this.bb.__offset(this.bb_pos, 10); + return offset ? this.bb.readUint8(this.bb_pos + offset) : 0; + } + maybeU8() { + const offset = this.bb.__offset(this.bb_pos, 12); + return offset ? this.bb.readUint8(this.bb_pos + offset) : null; + } + defaultU8() { + const offset = this.bb.__offset(this.bb_pos, 14); + return offset ? this.bb.readUint8(this.bb_pos + offset) : 42; + } + justI16() { + const offset = this.bb.__offset(this.bb_pos, 16); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + maybeI16() { + const offset = this.bb.__offset(this.bb_pos, 18); + return offset ? this.bb.readInt16(this.bb_pos + offset) : null; + } + defaultI16() { + const offset = this.bb.__offset(this.bb_pos, 20); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 42; + } + justU16() { + const offset = this.bb.__offset(this.bb_pos, 22); + return offset ? this.bb.readUint16(this.bb_pos + offset) : 0; + } + maybeU16() { + const offset = this.bb.__offset(this.bb_pos, 24); + return offset ? this.bb.readUint16(this.bb_pos + offset) : null; + } + defaultU16() { + const offset = this.bb.__offset(this.bb_pos, 26); + return offset ? this.bb.readUint16(this.bb_pos + offset) : 42; + } + justI32() { + const offset = this.bb.__offset(this.bb_pos, 28); + return offset ? this.bb.readInt32(this.bb_pos + offset) : 0; + } + maybeI32() { + const offset = this.bb.__offset(this.bb_pos, 30); + return offset ? this.bb.readInt32(this.bb_pos + offset) : null; + } + defaultI32() { + const offset = this.bb.__offset(this.bb_pos, 32); + return offset ? this.bb.readInt32(this.bb_pos + offset) : 42; + } + justU32() { + const offset = this.bb.__offset(this.bb_pos, 34); + return offset ? this.bb.readUint32(this.bb_pos + offset) : 0; + } + maybeU32() { + const offset = this.bb.__offset(this.bb_pos, 36); + return offset ? this.bb.readUint32(this.bb_pos + offset) : null; + } + defaultU32() { + const offset = this.bb.__offset(this.bb_pos, 38); + return offset ? this.bb.readUint32(this.bb_pos + offset) : 42; + } + justI64() { + const offset = this.bb.__offset(this.bb_pos, 40); + return offset ? this.bb.readInt64(this.bb_pos + offset) : BigInt('0'); + } + maybeI64() { + const offset = this.bb.__offset(this.bb_pos, 42); + return offset ? this.bb.readInt64(this.bb_pos + offset) : null; + } + defaultI64() { + const offset = this.bb.__offset(this.bb_pos, 44); + return offset ? this.bb.readInt64(this.bb_pos + offset) : BigInt('42'); + } + justU64() { + const offset = this.bb.__offset(this.bb_pos, 46); + return offset ? this.bb.readUint64(this.bb_pos + offset) : BigInt('0'); + } + maybeU64() { + const offset = this.bb.__offset(this.bb_pos, 48); + return offset ? this.bb.readUint64(this.bb_pos + offset) : null; + } + defaultU64() { + const offset = this.bb.__offset(this.bb_pos, 50); + return offset ? this.bb.readUint64(this.bb_pos + offset) : BigInt('42'); + } + justF32() { + const offset = this.bb.__offset(this.bb_pos, 52); + return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0.0; + } + maybeF32() { + const offset = this.bb.__offset(this.bb_pos, 54); + return offset ? this.bb.readFloat32(this.bb_pos + offset) : null; + } + defaultF32() { + const offset = this.bb.__offset(this.bb_pos, 56); + return offset ? this.bb.readFloat32(this.bb_pos + offset) : 42.0; + } + justF64() { + const offset = this.bb.__offset(this.bb_pos, 58); + return offset ? this.bb.readFloat64(this.bb_pos + offset) : 0.0; + } + maybeF64() { + const offset = this.bb.__offset(this.bb_pos, 60); + return offset ? this.bb.readFloat64(this.bb_pos + offset) : null; + } + defaultF64() { + const offset = this.bb.__offset(this.bb_pos, 62); + return offset ? this.bb.readFloat64(this.bb_pos + offset) : 42.0; + } + justBool() { + const offset = this.bb.__offset(this.bb_pos, 64); + return offset ? !!this.bb.readInt8(this.bb_pos + offset) : false; + } + maybeBool() { + const offset = this.bb.__offset(this.bb_pos, 66); + return offset ? !!this.bb.readInt8(this.bb_pos + offset) : null; + } + defaultBool() { + const offset = this.bb.__offset(this.bb_pos, 68); + return offset ? !!this.bb.readInt8(this.bb_pos + offset) : true; + } + justEnum() { + const offset = this.bb.__offset(this.bb_pos, 70); + return offset ? this.bb.readInt8(this.bb_pos + offset) : OptionalByte.None; + } + maybeEnum() { + const offset = this.bb.__offset(this.bb_pos, 72); + return offset ? this.bb.readInt8(this.bb_pos + offset) : null; + } + defaultEnum() { + const offset = this.bb.__offset(this.bb_pos, 74); + return offset ? this.bb.readInt8(this.bb_pos + offset) : OptionalByte.One; + } + static getFullyQualifiedName() { + return 'optional_scalars.ScalarStuff'; + } + static startScalarStuff(builder) { + builder.startObject(36); + } + static addJustI8(builder, justI8) { + builder.addFieldInt8(0, justI8, 0); + } + static addMaybeI8(builder, maybeI8) { + builder.addFieldInt8(1, maybeI8, 0); + } + static addDefaultI8(builder, defaultI8) { + builder.addFieldInt8(2, defaultI8, 42); + } + static addJustU8(builder, justU8) { + builder.addFieldInt8(3, justU8, 0); + } + static addMaybeU8(builder, maybeU8) { + builder.addFieldInt8(4, maybeU8, 0); + } + static addDefaultU8(builder, defaultU8) { + builder.addFieldInt8(5, defaultU8, 42); + } + static addJustI16(builder, justI16) { + builder.addFieldInt16(6, justI16, 0); + } + static addMaybeI16(builder, maybeI16) { + builder.addFieldInt16(7, maybeI16, 0); + } + static addDefaultI16(builder, defaultI16) { + builder.addFieldInt16(8, defaultI16, 42); + } + static addJustU16(builder, justU16) { + builder.addFieldInt16(9, justU16, 0); + } + static addMaybeU16(builder, maybeU16) { + builder.addFieldInt16(10, maybeU16, 0); + } + static addDefaultU16(builder, defaultU16) { + builder.addFieldInt16(11, defaultU16, 42); + } + static addJustI32(builder, justI32) { + builder.addFieldInt32(12, justI32, 0); + } + static addMaybeI32(builder, maybeI32) { + builder.addFieldInt32(13, maybeI32, 0); + } + static addDefaultI32(builder, defaultI32) { + builder.addFieldInt32(14, defaultI32, 42); + } + static addJustU32(builder, justU32) { + builder.addFieldInt32(15, justU32, 0); + } + static addMaybeU32(builder, maybeU32) { + builder.addFieldInt32(16, maybeU32, 0); + } + static addDefaultU32(builder, defaultU32) { + builder.addFieldInt32(17, defaultU32, 42); + } + static addJustI64(builder, justI64) { + builder.addFieldInt64(18, justI64, BigInt('0')); + } + static addMaybeI64(builder, maybeI64) { + builder.addFieldInt64(19, maybeI64, BigInt(0)); + } + static addDefaultI64(builder, defaultI64) { + builder.addFieldInt64(20, defaultI64, BigInt('42')); + } + static addJustU64(builder, justU64) { + builder.addFieldInt64(21, justU64, BigInt('0')); + } + static addMaybeU64(builder, maybeU64) { + builder.addFieldInt64(22, maybeU64, BigInt(0)); + } + static addDefaultU64(builder, defaultU64) { + builder.addFieldInt64(23, defaultU64, BigInt('42')); + } + static addJustF32(builder, justF32) { + builder.addFieldFloat32(24, justF32, 0.0); + } + static addMaybeF32(builder, maybeF32) { + builder.addFieldFloat32(25, maybeF32, 0); + } + static addDefaultF32(builder, defaultF32) { + builder.addFieldFloat32(26, defaultF32, 42.0); + } + static addJustF64(builder, justF64) { + builder.addFieldFloat64(27, justF64, 0.0); + } + static addMaybeF64(builder, maybeF64) { + builder.addFieldFloat64(28, maybeF64, 0); + } + static addDefaultF64(builder, defaultF64) { + builder.addFieldFloat64(29, defaultF64, 42.0); + } + static addJustBool(builder, justBool) { + builder.addFieldInt8(30, +justBool, +false); + } + static addMaybeBool(builder, maybeBool) { + builder.addFieldInt8(31, +maybeBool, 0); + } + static addDefaultBool(builder, defaultBool) { + builder.addFieldInt8(32, +defaultBool, +true); + } + static addJustEnum(builder, justEnum) { + builder.addFieldInt8(33, justEnum, OptionalByte.None); + } + static addMaybeEnum(builder, maybeEnum) { + builder.addFieldInt8(34, maybeEnum, 0); + } + static addDefaultEnum(builder, defaultEnum) { + builder.addFieldInt8(35, defaultEnum, OptionalByte.One); + } + static endScalarStuff(builder) { + const offset = builder.endObject(); + return offset; + } + static finishScalarStuffBuffer(builder, offset) { + builder.finish(offset, 'NULL'); + } + static finishSizePrefixedScalarStuffBuffer(builder, offset) { + builder.finish(offset, 'NULL', true); + } + static createScalarStuff(builder, justI8, maybeI8, defaultI8, justU8, maybeU8, defaultU8, justI16, maybeI16, defaultI16, justU16, maybeU16, defaultU16, justI32, maybeI32, defaultI32, justU32, maybeU32, defaultU32, justI64, maybeI64, defaultI64, justU64, maybeU64, defaultU64, justF32, maybeF32, defaultF32, justF64, maybeF64, defaultF64, justBool, maybeBool, defaultBool, justEnum, maybeEnum, defaultEnum) { + ScalarStuff.startScalarStuff(builder); + ScalarStuff.addJustI8(builder, justI8); + if (maybeI8 !== null) + ScalarStuff.addMaybeI8(builder, maybeI8); + ScalarStuff.addDefaultI8(builder, defaultI8); + ScalarStuff.addJustU8(builder, justU8); + if (maybeU8 !== null) + ScalarStuff.addMaybeU8(builder, maybeU8); + ScalarStuff.addDefaultU8(builder, defaultU8); + ScalarStuff.addJustI16(builder, justI16); + if (maybeI16 !== null) + ScalarStuff.addMaybeI16(builder, maybeI16); + ScalarStuff.addDefaultI16(builder, defaultI16); + ScalarStuff.addJustU16(builder, justU16); + if (maybeU16 !== null) + ScalarStuff.addMaybeU16(builder, maybeU16); + ScalarStuff.addDefaultU16(builder, defaultU16); + ScalarStuff.addJustI32(builder, justI32); + if (maybeI32 !== null) + ScalarStuff.addMaybeI32(builder, maybeI32); + ScalarStuff.addDefaultI32(builder, defaultI32); + ScalarStuff.addJustU32(builder, justU32); + if (maybeU32 !== null) + ScalarStuff.addMaybeU32(builder, maybeU32); + ScalarStuff.addDefaultU32(builder, defaultU32); + ScalarStuff.addJustI64(builder, justI64); + if (maybeI64 !== null) + ScalarStuff.addMaybeI64(builder, maybeI64); + ScalarStuff.addDefaultI64(builder, defaultI64); + ScalarStuff.addJustU64(builder, justU64); + if (maybeU64 !== null) + ScalarStuff.addMaybeU64(builder, maybeU64); + ScalarStuff.addDefaultU64(builder, defaultU64); + ScalarStuff.addJustF32(builder, justF32); + if (maybeF32 !== null) + ScalarStuff.addMaybeF32(builder, maybeF32); + ScalarStuff.addDefaultF32(builder, defaultF32); + ScalarStuff.addJustF64(builder, justF64); + if (maybeF64 !== null) + ScalarStuff.addMaybeF64(builder, maybeF64); + ScalarStuff.addDefaultF64(builder, defaultF64); + ScalarStuff.addJustBool(builder, justBool); + if (maybeBool !== null) + ScalarStuff.addMaybeBool(builder, maybeBool); + ScalarStuff.addDefaultBool(builder, defaultBool); + ScalarStuff.addJustEnum(builder, justEnum); + if (maybeEnum !== null) + ScalarStuff.addMaybeEnum(builder, maybeEnum); + ScalarStuff.addDefaultEnum(builder, defaultEnum); + return ScalarStuff.endScalarStuff(builder); + } +} diff --git a/tests/ts/no_import_ext/optional-scalars/scalar-stuff.ts b/tests/ts/no_import_ext/optional-scalars/scalar-stuff.ts new file mode 100644 index 0000000000..d6256c384a --- /dev/null +++ b/tests/ts/no_import_ext/optional-scalars/scalar-stuff.ts @@ -0,0 +1,427 @@ +// automatically generated by the FlatBuffers compiler, do not modify + +import * as flatbuffers from 'flatbuffers'; + +import { OptionalByte } from '../optional-scalars/optional-byte'; + + +export class ScalarStuff { + bb: flatbuffers.ByteBuffer|null = null; + bb_pos = 0; + __init(i:number, bb:flatbuffers.ByteBuffer):ScalarStuff { + this.bb_pos = i; + this.bb = bb; + return this; +} + +static getRootAsScalarStuff(bb:flatbuffers.ByteBuffer, obj?:ScalarStuff):ScalarStuff { + return (obj || new ScalarStuff()).__init(bb.readInt32(bb.position()) + bb.position(), bb); +} + +static getSizePrefixedRootAsScalarStuff(bb:flatbuffers.ByteBuffer, obj?:ScalarStuff):ScalarStuff { + bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH); + return (obj || new ScalarStuff()).__init(bb.readInt32(bb.position()) + bb.position(), bb); +} + +static bufferHasIdentifier(bb:flatbuffers.ByteBuffer):boolean { + return bb.__has_identifier('NULL'); +} + +justI8():number { + const offset = this.bb!.__offset(this.bb_pos, 4); + return offset ? this.bb!.readInt8(this.bb_pos + offset) : 0; +} + +maybeI8():number|null { + const offset = this.bb!.__offset(this.bb_pos, 6); + return offset ? this.bb!.readInt8(this.bb_pos + offset) : null; +} + +defaultI8():number { + const offset = this.bb!.__offset(this.bb_pos, 8); + return offset ? this.bb!.readInt8(this.bb_pos + offset) : 42; +} + +justU8():number { + const offset = this.bb!.__offset(this.bb_pos, 10); + return offset ? this.bb!.readUint8(this.bb_pos + offset) : 0; +} + +maybeU8():number|null { + const offset = this.bb!.__offset(this.bb_pos, 12); + return offset ? this.bb!.readUint8(this.bb_pos + offset) : null; +} + +defaultU8():number { + const offset = this.bb!.__offset(this.bb_pos, 14); + return offset ? this.bb!.readUint8(this.bb_pos + offset) : 42; +} + +justI16():number { + const offset = this.bb!.__offset(this.bb_pos, 16); + return offset ? this.bb!.readInt16(this.bb_pos + offset) : 0; +} + +maybeI16():number|null { + const offset = this.bb!.__offset(this.bb_pos, 18); + return offset ? this.bb!.readInt16(this.bb_pos + offset) : null; +} + +defaultI16():number { + const offset = this.bb!.__offset(this.bb_pos, 20); + return offset ? this.bb!.readInt16(this.bb_pos + offset) : 42; +} + +justU16():number { + const offset = this.bb!.__offset(this.bb_pos, 22); + return offset ? this.bb!.readUint16(this.bb_pos + offset) : 0; +} + +maybeU16():number|null { + const offset = this.bb!.__offset(this.bb_pos, 24); + return offset ? this.bb!.readUint16(this.bb_pos + offset) : null; +} + +defaultU16():number { + const offset = this.bb!.__offset(this.bb_pos, 26); + return offset ? this.bb!.readUint16(this.bb_pos + offset) : 42; +} + +justI32():number { + const offset = this.bb!.__offset(this.bb_pos, 28); + return offset ? this.bb!.readInt32(this.bb_pos + offset) : 0; +} + +maybeI32():number|null { + const offset = this.bb!.__offset(this.bb_pos, 30); + return offset ? this.bb!.readInt32(this.bb_pos + offset) : null; +} + +defaultI32():number { + const offset = this.bb!.__offset(this.bb_pos, 32); + return offset ? this.bb!.readInt32(this.bb_pos + offset) : 42; +} + +justU32():number { + const offset = this.bb!.__offset(this.bb_pos, 34); + return offset ? this.bb!.readUint32(this.bb_pos + offset) : 0; +} + +maybeU32():number|null { + const offset = this.bb!.__offset(this.bb_pos, 36); + return offset ? this.bb!.readUint32(this.bb_pos + offset) : null; +} + +defaultU32():number { + const offset = this.bb!.__offset(this.bb_pos, 38); + return offset ? this.bb!.readUint32(this.bb_pos + offset) : 42; +} + +justI64():bigint { + const offset = this.bb!.__offset(this.bb_pos, 40); + return offset ? this.bb!.readInt64(this.bb_pos + offset) : BigInt('0'); +} + +maybeI64():bigint|null { + const offset = this.bb!.__offset(this.bb_pos, 42); + return offset ? this.bb!.readInt64(this.bb_pos + offset) : null; +} + +defaultI64():bigint { + const offset = this.bb!.__offset(this.bb_pos, 44); + return offset ? this.bb!.readInt64(this.bb_pos + offset) : BigInt('42'); +} + +justU64():bigint { + const offset = this.bb!.__offset(this.bb_pos, 46); + return offset ? this.bb!.readUint64(this.bb_pos + offset) : BigInt('0'); +} + +maybeU64():bigint|null { + const offset = this.bb!.__offset(this.bb_pos, 48); + return offset ? this.bb!.readUint64(this.bb_pos + offset) : null; +} + +defaultU64():bigint { + const offset = this.bb!.__offset(this.bb_pos, 50); + return offset ? this.bb!.readUint64(this.bb_pos + offset) : BigInt('42'); +} + +justF32():number { + const offset = this.bb!.__offset(this.bb_pos, 52); + return offset ? this.bb!.readFloat32(this.bb_pos + offset) : 0.0; +} + +maybeF32():number|null { + const offset = this.bb!.__offset(this.bb_pos, 54); + return offset ? this.bb!.readFloat32(this.bb_pos + offset) : null; +} + +defaultF32():number { + const offset = this.bb!.__offset(this.bb_pos, 56); + return offset ? this.bb!.readFloat32(this.bb_pos + offset) : 42.0; +} + +justF64():number { + const offset = this.bb!.__offset(this.bb_pos, 58); + return offset ? this.bb!.readFloat64(this.bb_pos + offset) : 0.0; +} + +maybeF64():number|null { + const offset = this.bb!.__offset(this.bb_pos, 60); + return offset ? this.bb!.readFloat64(this.bb_pos + offset) : null; +} + +defaultF64():number { + const offset = this.bb!.__offset(this.bb_pos, 62); + return offset ? this.bb!.readFloat64(this.bb_pos + offset) : 42.0; +} + +justBool():boolean { + const offset = this.bb!.__offset(this.bb_pos, 64); + return offset ? !!this.bb!.readInt8(this.bb_pos + offset) : false; +} + +maybeBool():boolean|null { + const offset = this.bb!.__offset(this.bb_pos, 66); + return offset ? !!this.bb!.readInt8(this.bb_pos + offset) : null; +} + +defaultBool():boolean { + const offset = this.bb!.__offset(this.bb_pos, 68); + return offset ? !!this.bb!.readInt8(this.bb_pos + offset) : true; +} + +justEnum():OptionalByte { + const offset = this.bb!.__offset(this.bb_pos, 70); + return offset ? this.bb!.readInt8(this.bb_pos + offset) : OptionalByte.None; +} + +maybeEnum():OptionalByte|null { + const offset = this.bb!.__offset(this.bb_pos, 72); + return offset ? this.bb!.readInt8(this.bb_pos + offset) : null; +} + +defaultEnum():OptionalByte { + const offset = this.bb!.__offset(this.bb_pos, 74); + return offset ? this.bb!.readInt8(this.bb_pos + offset) : OptionalByte.One; +} + +static getFullyQualifiedName():string { + return 'optional_scalars.ScalarStuff'; +} + +static startScalarStuff(builder:flatbuffers.Builder) { + builder.startObject(36); +} + +static addJustI8(builder:flatbuffers.Builder, justI8:number) { + builder.addFieldInt8(0, justI8, 0); +} + +static addMaybeI8(builder:flatbuffers.Builder, maybeI8:number) { + builder.addFieldInt8(1, maybeI8, 0); +} + +static addDefaultI8(builder:flatbuffers.Builder, defaultI8:number) { + builder.addFieldInt8(2, defaultI8, 42); +} + +static addJustU8(builder:flatbuffers.Builder, justU8:number) { + builder.addFieldInt8(3, justU8, 0); +} + +static addMaybeU8(builder:flatbuffers.Builder, maybeU8:number) { + builder.addFieldInt8(4, maybeU8, 0); +} + +static addDefaultU8(builder:flatbuffers.Builder, defaultU8:number) { + builder.addFieldInt8(5, defaultU8, 42); +} + +static addJustI16(builder:flatbuffers.Builder, justI16:number) { + builder.addFieldInt16(6, justI16, 0); +} + +static addMaybeI16(builder:flatbuffers.Builder, maybeI16:number) { + builder.addFieldInt16(7, maybeI16, 0); +} + +static addDefaultI16(builder:flatbuffers.Builder, defaultI16:number) { + builder.addFieldInt16(8, defaultI16, 42); +} + +static addJustU16(builder:flatbuffers.Builder, justU16:number) { + builder.addFieldInt16(9, justU16, 0); +} + +static addMaybeU16(builder:flatbuffers.Builder, maybeU16:number) { + builder.addFieldInt16(10, maybeU16, 0); +} + +static addDefaultU16(builder:flatbuffers.Builder, defaultU16:number) { + builder.addFieldInt16(11, defaultU16, 42); +} + +static addJustI32(builder:flatbuffers.Builder, justI32:number) { + builder.addFieldInt32(12, justI32, 0); +} + +static addMaybeI32(builder:flatbuffers.Builder, maybeI32:number) { + builder.addFieldInt32(13, maybeI32, 0); +} + +static addDefaultI32(builder:flatbuffers.Builder, defaultI32:number) { + builder.addFieldInt32(14, defaultI32, 42); +} + +static addJustU32(builder:flatbuffers.Builder, justU32:number) { + builder.addFieldInt32(15, justU32, 0); +} + +static addMaybeU32(builder:flatbuffers.Builder, maybeU32:number) { + builder.addFieldInt32(16, maybeU32, 0); +} + +static addDefaultU32(builder:flatbuffers.Builder, defaultU32:number) { + builder.addFieldInt32(17, defaultU32, 42); +} + +static addJustI64(builder:flatbuffers.Builder, justI64:bigint) { + builder.addFieldInt64(18, justI64, BigInt('0')); +} + +static addMaybeI64(builder:flatbuffers.Builder, maybeI64:bigint) { + builder.addFieldInt64(19, maybeI64, BigInt(0)); +} + +static addDefaultI64(builder:flatbuffers.Builder, defaultI64:bigint) { + builder.addFieldInt64(20, defaultI64, BigInt('42')); +} + +static addJustU64(builder:flatbuffers.Builder, justU64:bigint) { + builder.addFieldInt64(21, justU64, BigInt('0')); +} + +static addMaybeU64(builder:flatbuffers.Builder, maybeU64:bigint) { + builder.addFieldInt64(22, maybeU64, BigInt(0)); +} + +static addDefaultU64(builder:flatbuffers.Builder, defaultU64:bigint) { + builder.addFieldInt64(23, defaultU64, BigInt('42')); +} + +static addJustF32(builder:flatbuffers.Builder, justF32:number) { + builder.addFieldFloat32(24, justF32, 0.0); +} + +static addMaybeF32(builder:flatbuffers.Builder, maybeF32:number) { + builder.addFieldFloat32(25, maybeF32, 0); +} + +static addDefaultF32(builder:flatbuffers.Builder, defaultF32:number) { + builder.addFieldFloat32(26, defaultF32, 42.0); +} + +static addJustF64(builder:flatbuffers.Builder, justF64:number) { + builder.addFieldFloat64(27, justF64, 0.0); +} + +static addMaybeF64(builder:flatbuffers.Builder, maybeF64:number) { + builder.addFieldFloat64(28, maybeF64, 0); +} + +static addDefaultF64(builder:flatbuffers.Builder, defaultF64:number) { + builder.addFieldFloat64(29, defaultF64, 42.0); +} + +static addJustBool(builder:flatbuffers.Builder, justBool:boolean) { + builder.addFieldInt8(30, +justBool, +false); +} + +static addMaybeBool(builder:flatbuffers.Builder, maybeBool:boolean) { + builder.addFieldInt8(31, +maybeBool, 0); +} + +static addDefaultBool(builder:flatbuffers.Builder, defaultBool:boolean) { + builder.addFieldInt8(32, +defaultBool, +true); +} + +static addJustEnum(builder:flatbuffers.Builder, justEnum:OptionalByte) { + builder.addFieldInt8(33, justEnum, OptionalByte.None); +} + +static addMaybeEnum(builder:flatbuffers.Builder, maybeEnum:OptionalByte) { + builder.addFieldInt8(34, maybeEnum, 0); +} + +static addDefaultEnum(builder:flatbuffers.Builder, defaultEnum:OptionalByte) { + builder.addFieldInt8(35, defaultEnum, OptionalByte.One); +} + +static endScalarStuff(builder:flatbuffers.Builder):flatbuffers.Offset { + const offset = builder.endObject(); + return offset; +} + +static finishScalarStuffBuffer(builder:flatbuffers.Builder, offset:flatbuffers.Offset) { + builder.finish(offset, 'NULL'); +} + +static finishSizePrefixedScalarStuffBuffer(builder:flatbuffers.Builder, offset:flatbuffers.Offset) { + builder.finish(offset, 'NULL', true); +} + +static createScalarStuff(builder:flatbuffers.Builder, justI8:number, maybeI8:number|null, defaultI8:number, justU8:number, maybeU8:number|null, defaultU8:number, justI16:number, maybeI16:number|null, defaultI16:number, justU16:number, maybeU16:number|null, defaultU16:number, justI32:number, maybeI32:number|null, defaultI32:number, justU32:number, maybeU32:number|null, defaultU32:number, justI64:bigint, maybeI64:bigint|null, defaultI64:bigint, justU64:bigint, maybeU64:bigint|null, defaultU64:bigint, justF32:number, maybeF32:number|null, defaultF32:number, justF64:number, maybeF64:number|null, defaultF64:number, justBool:boolean, maybeBool:boolean|null, defaultBool:boolean, justEnum:OptionalByte, maybeEnum:OptionalByte|null, defaultEnum:OptionalByte):flatbuffers.Offset { + ScalarStuff.startScalarStuff(builder); + ScalarStuff.addJustI8(builder, justI8); + if (maybeI8 !== null) + ScalarStuff.addMaybeI8(builder, maybeI8); + ScalarStuff.addDefaultI8(builder, defaultI8); + ScalarStuff.addJustU8(builder, justU8); + if (maybeU8 !== null) + ScalarStuff.addMaybeU8(builder, maybeU8); + ScalarStuff.addDefaultU8(builder, defaultU8); + ScalarStuff.addJustI16(builder, justI16); + if (maybeI16 !== null) + ScalarStuff.addMaybeI16(builder, maybeI16); + ScalarStuff.addDefaultI16(builder, defaultI16); + ScalarStuff.addJustU16(builder, justU16); + if (maybeU16 !== null) + ScalarStuff.addMaybeU16(builder, maybeU16); + ScalarStuff.addDefaultU16(builder, defaultU16); + ScalarStuff.addJustI32(builder, justI32); + if (maybeI32 !== null) + ScalarStuff.addMaybeI32(builder, maybeI32); + ScalarStuff.addDefaultI32(builder, defaultI32); + ScalarStuff.addJustU32(builder, justU32); + if (maybeU32 !== null) + ScalarStuff.addMaybeU32(builder, maybeU32); + ScalarStuff.addDefaultU32(builder, defaultU32); + ScalarStuff.addJustI64(builder, justI64); + if (maybeI64 !== null) + ScalarStuff.addMaybeI64(builder, maybeI64); + ScalarStuff.addDefaultI64(builder, defaultI64); + ScalarStuff.addJustU64(builder, justU64); + if (maybeU64 !== null) + ScalarStuff.addMaybeU64(builder, maybeU64); + ScalarStuff.addDefaultU64(builder, defaultU64); + ScalarStuff.addJustF32(builder, justF32); + if (maybeF32 !== null) + ScalarStuff.addMaybeF32(builder, maybeF32); + ScalarStuff.addDefaultF32(builder, defaultF32); + ScalarStuff.addJustF64(builder, justF64); + if (maybeF64 !== null) + ScalarStuff.addMaybeF64(builder, maybeF64); + ScalarStuff.addDefaultF64(builder, defaultF64); + ScalarStuff.addJustBool(builder, justBool); + if (maybeBool !== null) + ScalarStuff.addMaybeBool(builder, maybeBool); + ScalarStuff.addDefaultBool(builder, defaultBool); + ScalarStuff.addJustEnum(builder, justEnum); + if (maybeEnum !== null) + ScalarStuff.addMaybeEnum(builder, maybeEnum); + ScalarStuff.addDefaultEnum(builder, defaultEnum); + return ScalarStuff.endScalarStuff(builder); +} +} diff --git a/tests/ts/no_import_ext/optional_scalars.js b/tests/ts/no_import_ext/optional_scalars.js new file mode 100644 index 0000000000..6d9830c022 --- /dev/null +++ b/tests/ts/no_import_ext/optional_scalars.js @@ -0,0 +1 @@ +export { OptionalByte } from './optional-scalars/optional-byte'; diff --git a/tests/ts/no_import_ext/optional_scalars.ts b/tests/ts/no_import_ext/optional_scalars.ts new file mode 100644 index 0000000000..6d9830c022 --- /dev/null +++ b/tests/ts/no_import_ext/optional_scalars.ts @@ -0,0 +1 @@ +export { OptionalByte } from './optional-scalars/optional-byte'; diff --git a/tests/ts/no_import_ext/optional_scalars_generated.js b/tests/ts/no_import_ext/optional_scalars_generated.js new file mode 100644 index 0000000000..09e2631cfc --- /dev/null +++ b/tests/ts/no_import_ext/optional_scalars_generated.js @@ -0,0 +1,3 @@ +// automatically generated by the FlatBuffers compiler, do not modify +export { OptionalByte } from './optional-scalars/optional-byte'; +export { ScalarStuff } from './optional-scalars/scalar-stuff'; diff --git a/tests/ts/no_import_ext/optional_scalars_generated.ts b/tests/ts/no_import_ext/optional_scalars_generated.ts new file mode 100644 index 0000000000..4a83c439fc --- /dev/null +++ b/tests/ts/no_import_ext/optional_scalars_generated.ts @@ -0,0 +1,4 @@ +// automatically generated by the FlatBuffers compiler, do not modify + +export { OptionalByte } from './optional-scalars/optional-byte'; +export { ScalarStuff } from './optional-scalars/scalar-stuff'; diff --git a/tests/ts/tsconfig.json b/tests/ts/tsconfig.json index 4678c63e6c..aa5f55bc64 100644 --- a/tests/ts/tsconfig.json +++ b/tests/ts/tsconfig.json @@ -21,6 +21,7 @@ "optional_scalars/**/*.ts", "namespace_test/**/*.ts", "union_vector/**/*.ts", - "arrays_test_complex/**/*.ts" + "arrays_test_complex/**/*.ts", + "no_import_ext/**/*.ts" ] } From 5638a6a900f35587e9475493cf3d682e3c89782b Mon Sep 17 00:00:00 2001 From: Saman <100295082+enum-class@users.noreply.github.com> Date: Sun, 8 Jan 2023 11:40:03 +0800 Subject: [PATCH 086/571] Minor improvement (#7766) --- include/flatbuffers/detached_buffer.h | 4 ++-- include/flatbuffers/flatbuffer_builder.h | 4 ++-- include/flatbuffers/flexbuffers.h | 2 +- include/flatbuffers/vector_downward.h | 4 ++-- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/include/flatbuffers/detached_buffer.h b/include/flatbuffers/detached_buffer.h index 760a088453..5e900baeb5 100644 --- a/include/flatbuffers/detached_buffer.h +++ b/include/flatbuffers/detached_buffer.h @@ -45,7 +45,7 @@ class DetachedBuffer { cur_(cur), size_(sz) {} - DetachedBuffer(DetachedBuffer &&other) + DetachedBuffer(DetachedBuffer &&other) noexcept : allocator_(other.allocator_), own_allocator_(other.own_allocator_), buf_(other.buf_), @@ -55,7 +55,7 @@ class DetachedBuffer { other.reset(); } - DetachedBuffer &operator=(DetachedBuffer &&other) { + DetachedBuffer &operator=(DetachedBuffer &&other) noexcept { if (this == &other) return *this; destroy(); diff --git a/include/flatbuffers/flatbuffer_builder.h b/include/flatbuffers/flatbuffer_builder.h index 090a60e4f1..a1d3d60a79 100644 --- a/include/flatbuffers/flatbuffer_builder.h +++ b/include/flatbuffers/flatbuffer_builder.h @@ -98,7 +98,7 @@ class FlatBufferBuilder { } /// @brief Move constructor for FlatBufferBuilder. - FlatBufferBuilder(FlatBufferBuilder &&other) + FlatBufferBuilder(FlatBufferBuilder &&other) noexcept : buf_(1024, nullptr, false, AlignOf()), num_field_loc(0), max_voffset_(0), @@ -116,7 +116,7 @@ class FlatBufferBuilder { } /// @brief Move assignment operator for FlatBufferBuilder. - FlatBufferBuilder &operator=(FlatBufferBuilder &&other) { + FlatBufferBuilder &operator=(FlatBufferBuilder &&other) noexcept { // Move construct a temporary and swap idiom FlatBufferBuilder temp(std::move(other)); Swap(temp); diff --git a/include/flatbuffers/flexbuffers.h b/include/flatbuffers/flexbuffers.h index dd35b87dc9..a0ee670035 100644 --- a/include/flatbuffers/flexbuffers.h +++ b/include/flatbuffers/flexbuffers.h @@ -1845,7 +1845,7 @@ class Verifier FLATBUFFERS_FINAL_CLASS { uint8_t len = 0; auto vtype = ToFixedTypedVectorElementType(r.type_, &len); if (!VerifyType(vtype)) return false; - return VerifyFromPointer(p, r.byte_width_ * len); + return VerifyFromPointer(p, static_cast(r.byte_width_) * len); } default: return false; } diff --git a/include/flatbuffers/vector_downward.h b/include/flatbuffers/vector_downward.h index 2dbaa60055..e0aed840b0 100644 --- a/include/flatbuffers/vector_downward.h +++ b/include/flatbuffers/vector_downward.h @@ -45,7 +45,7 @@ class vector_downward { cur_(nullptr), scratch_(nullptr) {} - vector_downward(vector_downward &&other) + vector_downward(vector_downward &&other) noexcept // clang-format on : allocator_(other.allocator_), own_allocator_(other.own_allocator_), @@ -66,7 +66,7 @@ class vector_downward { other.scratch_ = nullptr; } - vector_downward &operator=(vector_downward &&other) { + vector_downward &operator=(vector_downward &&other) noexcept { // Move construct a temporary and swap idiom vector_downward temp(std::move(other)); swap(temp); From 641fbe46583c04c56bf33284ceb7971102ea4583 Mon Sep 17 00:00:00 2001 From: Derek Bailey Date: Sun, 8 Jan 2023 13:29:00 -0800 Subject: [PATCH 087/571] Refactor FlatC to receive `FlatCOptions` (#7770) * Refactor FlatC to receive `FlatCOptions` * switch to c++11 unique_ptr --- include/flatbuffers/flatc.h | 45 +++++- include/flatbuffers/idl.h | 11 +- src/flatc.cpp | 307 ++++++++++++++++++++---------------- src/flatc_main.cpp | 8 +- 4 files changed, 224 insertions(+), 147 deletions(-) diff --git a/include/flatbuffers/flatc.h b/include/flatbuffers/flatc.h index af4ccae70b..23eefaa0d4 100644 --- a/include/flatbuffers/flatc.h +++ b/include/flatbuffers/flatc.h @@ -19,6 +19,7 @@ #include #include +#include #include #include "flatbuffers/bfbs_generator.h" @@ -31,6 +32,30 @@ namespace flatbuffers { extern void LogCompilerWarn(const std::string &warn); extern void LogCompilerError(const std::string &err); +struct FlatCOptions { + IDLOptions opts; + + std::string program_name; + + std::string output_path; + + std::vector filenames; + + std::list include_directories_storage; + std::vector include_directories; + std::vector conform_include_directories; + std::vector generator_enabled; + size_t binary_files_from = std::numeric_limits::max(); + std::string conform_to_schema; + std::string annotate_schema; + bool any_generator = false; + bool print_make_rules = false; + bool raw_binary = false; + bool schema_binary = false; + bool grpc_enabled = false; + bool requires_bfbs = false; +}; + struct FlatCOption { std::string short_opt; std::string long_opt; @@ -85,15 +110,18 @@ class FlatCompiler { explicit FlatCompiler(const InitParams ¶ms) : params_(params) {} - int Compile(int argc, const char **argv); + int Compile(const FlatCOptions &options); + + std::string GetShortUsageString(const std::string& program_name) const; + std::string GetUsageString(const std::string& program_name) const; - std::string GetShortUsageString(const char *program_name) const; - std::string GetUsageString(const char *program_name) const; + // Parse the FlatC options from command line arguments. + FlatCOptions ParseFromCommandLineArguments(int argc, const char **argv); private: void ParseFile(flatbuffers::Parser &parser, const std::string &filename, const std::string &contents, - std::vector &include_directories) const; + const std::vector &include_directories) const; void LoadBinarySchema(Parser &parser, const std::string &filename, const std::string &contents); @@ -105,9 +133,16 @@ class FlatCompiler { void AnnotateBinaries(const uint8_t *binary_schema, uint64_t binary_schema_size, - const std::string & schema_filename, + const std::string &schema_filename, const std::vector &binary_files); + void ValidateOptions(const FlatCOptions &options); + + Parser GetConformParser(const FlatCOptions &options); + + std::unique_ptr GenerateCode(const FlatCOptions &options, + Parser &conform_parser); + InitParams params_; }; diff --git a/include/flatbuffers/idl.h b/include/flatbuffers/idl.h index 9e5bb25eb2..f6526bd5e4 100644 --- a/include/flatbuffers/idl.h +++ b/include/flatbuffers/idl.h @@ -298,7 +298,7 @@ struct FieldDef : public Definition { presence(kDefault), nested_flatbuffer(nullptr), padding(0), - sibling_union_field(nullptr){} + sibling_union_field(nullptr) {} Offset Serialize(FlatBufferBuilder *builder, uint16_t id, const Parser &parser) const; @@ -803,7 +803,7 @@ struct ParserState { FLATBUFFERS_ASSERT(cursor_ && line_start_ && cursor_ >= line_start_); return static_cast(cursor_ - line_start_); } - + const char *prev_cursor_; const char *cursor_; const char *line_start_; @@ -910,6 +910,13 @@ class Parser : public ParserState { known_attributes_["private"] = true; } + // Copying is not allowed + Parser(const Parser &) = delete; + Parser &operator=(const Parser &) = delete; + + Parser(Parser &&) = default; + Parser &operator=(Parser &&) = default; + ~Parser() { for (auto it = namespaces_.begin(); it != namespaces_.end(); ++it) { delete *it; diff --git a/src/flatc.cpp b/src/flatc.cpp index 3d6856e95f..4827ee770f 100644 --- a/src/flatc.cpp +++ b/src/flatc.cpp @@ -19,10 +19,12 @@ #include #include #include +#include #include #include "annotated_binary_text_gen.h" #include "binary_annotator.h" +#include "flatbuffers/idl.h" #include "flatbuffers/util.h" namespace flatbuffers { @@ -32,17 +34,19 @@ static const char *FLATC_VERSION() { return FLATBUFFERS_VERSION(); } void FlatCompiler::ParseFile( flatbuffers::Parser &parser, const std::string &filename, const std::string &contents, - std::vector &include_directories) const { + const std::vector &include_directories) const { auto local_include_directory = flatbuffers::StripFileName(filename); - include_directories.push_back(local_include_directory.c_str()); - include_directories.push_back(nullptr); - if (!parser.Parse(contents.c_str(), &include_directories[0], - filename.c_str())) { + + std::vector inc_directories; + inc_directories.insert(inc_directories.end(), include_directories.begin(), + include_directories.end()); + inc_directories.push_back(local_include_directory.c_str()); + inc_directories.push_back(nullptr); + + if (!parser.Parse(contents.c_str(), &inc_directories[0], filename.c_str())) { Error(parser.error_, false, false); } if (!parser.error_.empty()) { Warn(parser.error_, false); } - include_directories.pop_back(); - include_directories.pop_back(); } void FlatCompiler::LoadBinarySchema(flatbuffers::Parser &parser, @@ -63,7 +67,7 @@ void FlatCompiler::Error(const std::string &err, bool usage, params_.error_fn(this, err, usage, show_exe_name); } -const static FlatCOption options[] = { +const static FlatCOption flatc_options[] = { { "o", "", "PATH", "Prefix PATH to all generated files." }, { "I", "", "PATH", "Search for includes in the specified path." }, { "M", "", "", "Print make rules for generated files." }, @@ -300,7 +304,8 @@ static void AppendShortOption(std::stringstream &ss, if (!option.long_opt.empty()) { ss << "--" << option.long_opt; } } -std::string FlatCompiler::GetShortUsageString(const char *program_name) const { +std::string FlatCompiler::GetShortUsageString( + const std::string &program_name) const { std::stringstream ss; ss << "Usage: " << program_name << " ["; for (size_t i = 0; i < params_.num_generators; ++i) { @@ -308,7 +313,7 @@ std::string FlatCompiler::GetShortUsageString(const char *program_name) const { AppendShortOption(ss, g.option); ss << ", "; } - for (const FlatCOption &option : options) { + for (const FlatCOption &option : flatc_options) { AppendShortOption(ss, option); ss << ", "; } @@ -320,7 +325,8 @@ std::string FlatCompiler::GetShortUsageString(const char *program_name) const { return ss_textwrap.str(); } -std::string FlatCompiler::GetUsageString(const char *program_name) const { +std::string FlatCompiler::GetUsageString( + const std::string &program_name) const { std::stringstream ss; ss << "Usage: " << program_name << " [OPTION]... FILE... [-- BINARY_FILE...]\n"; @@ -330,7 +336,7 @@ std::string FlatCompiler::GetUsageString(const char *program_name) const { } ss << "\n"; - for (const FlatCOption &option : options) { + for (const FlatCOption &option : flatc_options) { AppendOption(ss, option, 80, 25); } ss << "\n"; @@ -341,7 +347,7 @@ std::string FlatCompiler::GetUsageString(const char *program_name) const { "after the -- must be binary flatbuffer format files. Output files are " "named using the base file name of the input, and written to the current " "directory or the path given by -o. example: " + - std::string(program_name) + " -c -b schema1.fbs schema2.fbs data.json"; + program_name + " -c -b schema1.fbs schema2.fbs data.json"; AppendTextWrappedString(ss, files_description, 80, 0); ss << "\n"; return ss.str(); @@ -379,48 +385,34 @@ void FlatCompiler::AnnotateBinaries( } } -int FlatCompiler::Compile(int argc, const char **argv) { - if (params_.generators == nullptr || params_.num_generators == 0) { - return 0; - } - +FlatCOptions FlatCompiler::ParseFromCommandLineArguments(int argc, + const char **argv) { if (argc <= 1) { Error("Need to provide at least one argument."); } - flatbuffers::IDLOptions opts; - std::string output_path; - - bool any_generator = false; - bool print_make_rules = false; - bool raw_binary = false; - bool schema_binary = false; - bool grpc_enabled = false; - bool requires_bfbs = false; - std::vector filenames; - std::list include_directories_storage; - std::vector include_directories; - std::vector conform_include_directories; - std::vector generator_enabled(params_.num_generators, false); - size_t binary_files_from = std::numeric_limits::max(); - std::string conform_to_schema; - std::string annotate_schema; - - const char *program_name = argv[0]; + FlatCOptions options; + + // Default all generates to disabled. + options.generator_enabled.resize(params_.num_generators, false); + + options.program_name = std::string(argv[0]); + + IDLOptions &opts = options.opts; for (int argi = 1; argi < argc; argi++) { std::string arg = argv[argi]; if (arg[0] == '-') { - if (filenames.size() && arg[1] != '-') + if (options.filenames.size() && arg[1] != '-') Error("invalid option location: " + arg, true); if (arg == "-o") { if (++argi >= argc) Error("missing path following: " + arg, true); - output_path = flatbuffers::ConCatPathFileName( + options.output_path = flatbuffers::ConCatPathFileName( flatbuffers::PosixPath(argv[argi]), ""); } else if (arg == "-I") { if (++argi >= argc) Error("missing path following: " + arg, true); - include_directories_storage.push_back( + options.include_directories_storage.push_back( flatbuffers::PosixPath(argv[argi])); - include_directories.push_back( - include_directories_storage.back().c_str()); + options.include_directories.push_back( + options.include_directories_storage.back().c_str()); } else if (arg == "--bfbs-filenames") { if (++argi > argc) Error("missing path following: " + arg, true); opts.project_root = argv[argi]; @@ -428,13 +420,13 @@ int FlatCompiler::Compile(int argc, const char **argv) { Error(arg + " is not a directory: " + opts.project_root); } else if (arg == "--conform") { if (++argi >= argc) Error("missing path following: " + arg, true); - conform_to_schema = flatbuffers::PosixPath(argv[argi]); + options.conform_to_schema = flatbuffers::PosixPath(argv[argi]); } else if (arg == "--conform-includes") { if (++argi >= argc) Error("missing path following: " + arg, true); - include_directories_storage.push_back( + options.include_directories_storage.push_back( flatbuffers::PosixPath(argv[argi])); - conform_include_directories.push_back( - include_directories_storage.back().c_str()); + options.conform_include_directories.push_back( + options.include_directories_storage.back().c_str()); } else if (arg == "--include-prefix") { if (++argi >= argc) Error("missing path following: " + arg, true); opts.include_prefix = flatbuffers::ConCatPathFileName( @@ -531,11 +523,11 @@ int FlatCompiler::Compile(int argc, const char **argv) { opts.one_file = true; opts.include_dependence_headers = false; } else if (arg == "--raw-binary") { - raw_binary = true; + options.raw_binary = true; } else if (arg == "--size-prefixed") { opts.size_prefixed = true; } else if (arg == "--") { // Separator between text and binary inputs. - binary_files_from = filenames.size(); + options.binary_files_from = options.filenames.size(); } else if (arg == "--proto") { opts.proto_mode = true; } else if (arg == "--proto-namespace-suffix") { @@ -544,17 +536,17 @@ int FlatCompiler::Compile(int argc, const char **argv) { } else if (arg == "--oneof-union") { opts.proto_oneof_union = true; } else if (arg == "--schema") { - schema_binary = true; + options.schema_binary = true; } else if (arg == "-M") { - print_make_rules = true; + options.print_make_rules = true; } else if (arg == "--version") { printf("flatc version %s\n", FLATC_VERSION()); exit(0); } else if (arg == "--help" || arg == "-h") { - printf("%s\n", GetUsageString(program_name).c_str()); + printf("%s\n", GetUsageString(options.program_name).c_str()); exit(0); } else if (arg == "--grpc") { - grpc_enabled = true; + options.grpc_enabled = true; } else if (arg == "--bfbs-comments") { opts.binary_schema_comments = true; } else if (arg == "--bfbs-builtins") { @@ -619,17 +611,17 @@ int FlatCompiler::Compile(int argc, const char **argv) { opts.no_leak_private_annotations = true; } else if (arg == "--annotate") { if (++argi >= argc) Error("missing path following: " + arg, true); - annotate_schema = flatbuffers::PosixPath(argv[argi]); + options.annotate_schema = flatbuffers::PosixPath(argv[argi]); } else { for (size_t i = 0; i < params_.num_generators; ++i) { if (arg == "--" + params_.generators[i].option.long_opt || arg == "-" + params_.generators[i].option.short_opt) { - generator_enabled[i] = true; - any_generator = true; + options.generator_enabled[i] = true; + options.any_generator = true; opts.lang_to_generate |= params_.generators[i].lang; if (params_.generators[i].bfbs_generator) { opts.binary_schema_comments = true; - requires_bfbs = true; + options.requires_bfbs = true; } goto found; } @@ -639,17 +631,23 @@ int FlatCompiler::Compile(int argc, const char **argv) { found:; } } else { - filenames.push_back(flatbuffers::PosixPath(argv[argi])); + options.filenames.push_back(flatbuffers::PosixPath(argv[argi])); } } - if (!filenames.size()) Error("missing input files", false, true); + return options; +} + +void FlatCompiler::ValidateOptions(const FlatCOptions &options) { + const IDLOptions &opts = options.opts; + + if (!options.filenames.size()) Error("missing input files", false, true); if (opts.proto_mode) { - if (any_generator) + if (options.any_generator) Error("cannot generate code directly from .proto files", true); - } else if (!any_generator && conform_to_schema.empty() && - annotate_schema.empty()) { + } else if (!options.any_generator && options.conform_to_schema.empty() && + options.annotate_schema.empty()) { Error("no options: specify at least one generator.", true); } @@ -658,80 +656,45 @@ int FlatCompiler::Compile(int argc, const char **argv) { "--cs-gen-json-serializer requires --gen-object-api to be set as " "well."); } +} +flatbuffers::Parser FlatCompiler::GetConformParser( + const FlatCOptions &options) { flatbuffers::Parser conform_parser; - if (!conform_to_schema.empty()) { + if (!options.conform_to_schema.empty()) { std::string contents; - if (!flatbuffers::LoadFile(conform_to_schema.c_str(), true, &contents)) - Error("unable to load schema: " + conform_to_schema); + if (!flatbuffers::LoadFile(options.conform_to_schema.c_str(), true, + &contents)) { + Error("unable to load schema: " + options.conform_to_schema); + } - if (flatbuffers::GetExtension(conform_to_schema) == + if (flatbuffers::GetExtension(options.conform_to_schema) == reflection::SchemaExtension()) { - LoadBinarySchema(conform_parser, conform_to_schema, contents); + LoadBinarySchema(conform_parser, options.conform_to_schema, contents); } else { - ParseFile(conform_parser, conform_to_schema, contents, - conform_include_directories); + ParseFile(conform_parser, options.conform_to_schema, contents, + options.conform_include_directories); } } + return conform_parser; +} - if (!annotate_schema.empty()) { - const std::string ext = flatbuffers::GetExtension(annotate_schema); - if (!(ext == reflection::SchemaExtension() || ext == "fbs")) { - Error("Expected a `.bfbs` or `.fbs` schema, got: " + annotate_schema); - } - - const bool is_binary_schema = ext == reflection::SchemaExtension(); - - std::string schema_contents; - if (!flatbuffers::LoadFile(annotate_schema.c_str(), - /*binary=*/is_binary_schema, &schema_contents)) { - Error("unable to load schema: " + annotate_schema); - } - - const uint8_t *binary_schema = nullptr; - uint64_t binary_schema_size = 0; - - IDLOptions binary_opts; - binary_opts.lang_to_generate |= flatbuffers::IDLOptions::kBinary; - flatbuffers::Parser parser(binary_opts); - - if (is_binary_schema) { - binary_schema = - reinterpret_cast(schema_contents.c_str()); - binary_schema_size = schema_contents.size(); - } else { - // If we need to generate the .bfbs file from the provided schema file - // (.fbs) - ParseFile(parser, annotate_schema, schema_contents, include_directories); - parser.Serialize(); - - binary_schema = parser.builder_.GetBufferPointer(); - binary_schema_size = parser.builder_.GetSize(); - } - - if (binary_schema == nullptr || !binary_schema_size) { - Error("could not parse a value binary schema from: " + annotate_schema); - } - - // Annotate the provided files with the binary_schema. - AnnotateBinaries(binary_schema, binary_schema_size, annotate_schema, - filenames); - - // We don't support doing anything else after annotating a binary. - return 0; - } +std::unique_ptr FlatCompiler::GenerateCode(const FlatCOptions &options, + Parser &conform_parser) { + std::unique_ptr parser = + std::unique_ptr(new Parser(options.opts)); - std::unique_ptr parser(new flatbuffers::Parser(opts)); + for (auto file_it = options.filenames.begin(); + file_it != options.filenames.end(); ++file_it) { + IDLOptions opts = options.opts; - for (auto file_it = filenames.begin(); file_it != filenames.end(); - ++file_it) { auto &filename = *file_it; std::string contents; if (!flatbuffers::LoadFile(filename.c_str(), true, &contents)) Error("unable to load file: " + filename); - bool is_binary = - static_cast(file_it - filenames.begin()) >= binary_files_from; + bool is_binary = static_cast(file_it - options.filenames.begin()) >= + options.binary_files_from; auto ext = flatbuffers::GetExtension(filename); const bool is_schema = ext == "fbs" || ext == "proto"; if (is_schema && opts.project_root.empty()) { @@ -743,7 +706,7 @@ int FlatCompiler::Compile(int argc, const char **argv) { parser->builder_.PushFlatBuffer( reinterpret_cast(contents.c_str()), contents.length()); - if (!raw_binary) { + if (!options.raw_binary) { // Generally reading binaries that do not correspond to the schema // will crash, and sadly there's no way around that when the binary // does not contain a file identifier. @@ -773,12 +736,12 @@ int FlatCompiler::Compile(int argc, const char **argv) { // If we're processing multiple schemas, make sure to start each // one from scratch. If it depends on previous schemas it must do // so explicitly using an include. - parser.reset(new flatbuffers::Parser(opts)); + parser.reset(new Parser(opts)); } // Try to parse the file contents (binary schema/flexbuffer/textual // schema) if (is_binary_schema) { - LoadBinarySchema(*parser.get(), filename, contents); + LoadBinarySchema(*parser, filename, contents); } else if (opts.use_flexbuffers) { if (opts.lang_to_generate == IDLOptions::kJson) { auto data = reinterpret_cast(contents.c_str()); @@ -789,10 +752,10 @@ int FlatCompiler::Compile(int argc, const char **argv) { parser->flex_root_ = flexbuffers::GetRoot(data, size); } else { parser->flex_builder_.Clear(); - ParseFile(*parser.get(), filename, contents, include_directories); + ParseFile(*parser, filename, contents, options.include_directories); } } else { - ParseFile(*parser.get(), filename, contents, include_directories); + ParseFile(*parser, filename, contents, options.include_directories); if (!is_schema && !parser->builder_.GetSize()) { // If a file doesn't end in .fbs, it must be json/binary. Ensure we // didn't just parse a schema with a different extension. @@ -801,14 +764,15 @@ int FlatCompiler::Compile(int argc, const char **argv) { true); } } - if ((is_schema || is_binary_schema) && !conform_to_schema.empty()) { + if ((is_schema || is_binary_schema) && + !options.conform_to_schema.empty()) { auto err = parser->ConformTo(conform_parser); if (!err.empty()) Error("schemas don\'t conform: " + err, false); } - if (schema_binary || opts.binary_schema_gen_embed) { + if (options.schema_binary || opts.binary_schema_gen_embed) { parser->Serialize(); } - if (schema_binary) { + if (options.schema_binary) { parser->file_extension_ = reflection::SchemaExtension(); } } @@ -819,16 +783,16 @@ int FlatCompiler::Compile(int argc, const char **argv) { // the serialized buffer and length. const uint8_t *bfbs_buffer = nullptr; int64_t bfbs_length = 0; - if (requires_bfbs) { + if (options.requires_bfbs) { parser->Serialize(); bfbs_buffer = parser->builder_.GetBufferPointer(); bfbs_length = parser->builder_.GetSize(); } for (size_t i = 0; i < params_.num_generators; ++i) { - if (generator_enabled[i]) { - if (!print_make_rules) { - flatbuffers::EnsureDirExists(output_path); + if (options.generator_enabled[i]) { + if (!options.print_make_rules) { + flatbuffers::EnsureDirExists(options.output_path); // Prefer bfbs generators if present. if (params_.generators[i].bfbs_generator) { @@ -843,7 +807,7 @@ int FlatCompiler::Compile(int argc, const char **argv) { } else { if ((!params_.generators[i].schema_only || (is_schema || is_binary_schema)) && - !params_.generators[i].generate(*parser.get(), output_path, + !params_.generators[i].generate(*parser, options.output_path, filebase)) { Error(std::string("Unable to generate ") + params_.generators[i].lang_name + " for " + filebase); @@ -855,16 +819,16 @@ int FlatCompiler::Compile(int argc, const char **argv) { params_.generators[i].lang_name); } else { std::string make_rule = params_.generators[i].make_rule( - *parser.get(), output_path, filename); + *parser, options.output_path, filename); if (!make_rule.empty()) printf("%s\n", flatbuffers::WordWrap(make_rule, 80, " ", " \\").c_str()); } } - if (grpc_enabled) { + if (options.grpc_enabled) { if (params_.generators[i].generateGRPC != nullptr) { - if (!params_.generators[i].generateGRPC(*parser.get(), output_path, - filebase)) { + if (!params_.generators[i].generateGRPC( + *parser, options.output_path, filebase)) { Error(std::string("Unable to generate GRPC interface for ") + params_.generators[i].lang_name); } @@ -883,19 +847,84 @@ int FlatCompiler::Compile(int argc, const char **argv) { Error("root type must be a table"); } - if (opts.proto_mode) GenerateFBS(*parser.get(), output_path, filebase); + if (opts.proto_mode) GenerateFBS(*parser, options.output_path, filebase); // We do not want to generate code for the definitions in this file // in any files coming up next. parser->MarkGenerated(); } + return parser; +} + +int FlatCompiler::Compile(const FlatCOptions &options) { + if (params_.generators == nullptr || params_.num_generators == 0) { + return 0; + } + + // TODO(derekbailey): change to std::optional + Parser conform_parser = GetConformParser(options); + + // TODO(derekbailey): split to own method. + if (!options.annotate_schema.empty()) { + const std::string ext = flatbuffers::GetExtension(options.annotate_schema); + if (!(ext == reflection::SchemaExtension() || ext == "fbs")) { + Error("Expected a `.bfbs` or `.fbs` schema, got: " + + options.annotate_schema); + } + + const bool is_binary_schema = ext == reflection::SchemaExtension(); + + std::string schema_contents; + if (!flatbuffers::LoadFile(options.annotate_schema.c_str(), + /*binary=*/is_binary_schema, &schema_contents)) { + Error("unable to load schema: " + options.annotate_schema); + } + + const uint8_t *binary_schema = nullptr; + uint64_t binary_schema_size = 0; + + IDLOptions binary_opts; + binary_opts.lang_to_generate |= flatbuffers::IDLOptions::kBinary; + Parser parser(binary_opts); + + if (is_binary_schema) { + binary_schema = + reinterpret_cast(schema_contents.c_str()); + binary_schema_size = schema_contents.size(); + } else { + // If we need to generate the .bfbs file from the provided schema file + // (.fbs) + ParseFile(parser, options.annotate_schema, schema_contents, + options.include_directories); + parser.Serialize(); + + binary_schema = parser.builder_.GetBufferPointer(); + binary_schema_size = parser.builder_.GetSize(); + } + + if (binary_schema == nullptr || !binary_schema_size) { + Error("could not parse a value binary schema from: " + + options.annotate_schema); + } + + // Annotate the provided files with the binary_schema. + AnnotateBinaries(binary_schema, binary_schema_size, options.annotate_schema, + options.filenames); + + // We don't support doing anything else after annotating a binary. + return 0; + } + + std::unique_ptr parser = GenerateCode(options, conform_parser); + // Once all the files have been parsed, run any generators Parsing Completed // function for final generation. for (size_t i = 0; i < params_.num_generators; ++i) { - if (generator_enabled[i] && + if (options.generator_enabled[i] && params_.generators[i].parsing_completed != nullptr) { - if (!params_.generators[i].parsing_completed(*parser, output_path)) { + if (!params_.generators[i].parsing_completed(*parser, + options.output_path)) { Error("failed running parsing completed for " + std::string(params_.generators[i].lang_name)); } diff --git a/src/flatc_main.cpp b/src/flatc_main.cpp index f2aa781a37..dc9e362513 100644 --- a/src/flatc_main.cpp +++ b/src/flatc_main.cpp @@ -158,5 +158,11 @@ int main(int argc, const char *argv[]) { params.error_fn = Error; flatbuffers::FlatCompiler flatc(params); - return flatc.Compile(argc, argv); + + // Create the FlatC options by parsing the command line arguments. + const flatbuffers::FlatCOptions &options = + flatc.ParseFromCommandLineArguments(argc, argv); + + // Compile with the extracted FlatC options. + return flatc.Compile(options); } From 3b8644d32c50e86872584829af4b8caf180235ab Mon Sep 17 00:00:00 2001 From: Derek Bailey Date: Sun, 8 Jan 2023 15:01:33 -0800 Subject: [PATCH 088/571] Defined CodeGenerator Interface and implement C++ (#7771) --- BUILD.bazel | 1 + CMakeLists.txt | 1 + include/flatbuffers/code_generator.h | 73 ++++++++++++++++++ include/flatbuffers/flatc.h | 19 ++++- src/flatc.cpp | 107 ++++++++++++++++++++++++--- src/flatc_main.cpp | 9 +++ src/idl_gen_cpp.cpp | 47 ++++++++++++ 7 files changed, 243 insertions(+), 14 deletions(-) create mode 100644 include/flatbuffers/code_generator.h diff --git a/BUILD.bazel b/BUILD.bazel index f2aac0ae38..f88da4155d 100644 --- a/BUILD.bazel +++ b/BUILD.bazel @@ -44,6 +44,7 @@ filegroup( "include/flatbuffers/bfbs_generator.h", "include/flatbuffers/buffer.h", "include/flatbuffers/buffer_ref.h", + "include/flatbuffers/code_generator.h", "include/flatbuffers/code_generators.h", "include/flatbuffers/default_allocator.h", "include/flatbuffers/detached_buffer.h", diff --git a/CMakeLists.txt b/CMakeLists.txt index 525075a318..c56fb381c7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -141,6 +141,7 @@ set(FlatBuffers_Library_SRCS include/flatbuffers/buffer_ref.h include/flatbuffers/default_allocator.h include/flatbuffers/detached_buffer.h + include/flatbuffers/code_generator.h include/flatbuffers/flatbuffer_builder.h include/flatbuffers/flatbuffers.h include/flatbuffers/flexbuffers.h diff --git a/include/flatbuffers/code_generator.h b/include/flatbuffers/code_generator.h new file mode 100644 index 0000000000..af8292fae5 --- /dev/null +++ b/include/flatbuffers/code_generator.h @@ -0,0 +1,73 @@ +/* + * Copyright 2023 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. + */ + +#ifndef FLATBUFFERS_CODE_GENERATOR_H_ +#define FLATBUFFERS_CODE_GENERATOR_H_ + +#include + +#include "flatbuffers/idl.h" + +namespace flatbuffers { + +// An code generator interface for producing converting flatbuffer schema into +// code. +class CodeGenerator { + public: + virtual ~CodeGenerator() = default; + + enum Status { + OK = 0, + ERROR = 1, + NOT_IMPLEMENTED = 2, + }; + + // Generate code from the provided `parser`. + // + // DEPRECATED: prefer using the other overload of GenerateCode for bfbs. + virtual Status GenerateCode(const Parser &parser, const std::string &path, + const std::string &filename) = 0; + + // Generate code from the provided `buffer` of given `length`. The buffer is a + // serialized reflection.fbs. + virtual Status GenerateCode(const uint8_t *buffer, int64_t length) = 0; + + virtual Status GenerateMakeRule(const Parser &parser, const std::string &path, + const std::string &filename, + std::string &output) = 0; + + virtual Status GenerateGrpcCode(const Parser &parser, const std::string &path, + const std::string &filename) = 0; + + virtual bool IsSchemaOnly() const = 0; + + virtual bool SupportsBfbsGeneration() const = 0; + + virtual IDLOptions::Language Language() const = 0; + virtual std::string LanguageName() const = 0; + + protected: + CodeGenerator() = default; + + private: + // Copying is not supported. + CodeGenerator(const CodeGenerator &) = delete; + CodeGenerator &operator=(const CodeGenerator &) = delete; +}; + +} // namespace flatbuffers + +#endif // FLATBUFFERS_CODE_GENERATOR_H_ diff --git a/include/flatbuffers/flatc.h b/include/flatbuffers/flatc.h index 23eefaa0d4..4a85961ca0 100644 --- a/include/flatbuffers/flatc.h +++ b/include/flatbuffers/flatc.h @@ -20,15 +20,21 @@ #include #include #include +#include #include #include "flatbuffers/bfbs_generator.h" +#include "flatbuffers/code_generator.h" #include "flatbuffers/flatbuffers.h" #include "flatbuffers/idl.h" #include "flatbuffers/util.h" namespace flatbuffers { +// TODO(derekbailey): It would be better to define these as normal includes and +// not as extern functions. But this can be done at a later time. +extern std::unique_ptr NewCppCodeGenerator(); + extern void LogCompilerWarn(const std::string &warn); extern void LogCompilerError(const std::string &err); @@ -54,6 +60,8 @@ struct FlatCOptions { bool schema_binary = false; bool grpc_enabled = false; bool requires_bfbs = false; + + std::vector> generators; }; struct FlatCOption { @@ -110,10 +118,13 @@ class FlatCompiler { explicit FlatCompiler(const InitParams ¶ms) : params_(params) {} + bool RegisterCodeGenerator(const std::string& flag, + std::shared_ptr code_generator); + int Compile(const FlatCOptions &options); - std::string GetShortUsageString(const std::string& program_name) const; - std::string GetUsageString(const std::string& program_name) const; + std::string GetShortUsageString(const std::string &program_name) const; + std::string GetUsageString(const std::string &program_name) const; // Parse the FlatC options from command line arguments. FlatCOptions ParseFromCommandLineArguments(int argc, const char **argv); @@ -141,7 +152,9 @@ class FlatCompiler { Parser GetConformParser(const FlatCOptions &options); std::unique_ptr GenerateCode(const FlatCOptions &options, - Parser &conform_parser); + Parser &conform_parser); + + std::map> code_generators_; InitParams params_; }; diff --git a/src/flatc.cpp b/src/flatc.cpp index 4827ee770f..c61efd4c6c 100644 --- a/src/flatc.cpp +++ b/src/flatc.cpp @@ -24,6 +24,7 @@ #include "annotated_binary_text_gen.h" #include "binary_annotator.h" +#include "flatbuffers/code_generator.h" #include "flatbuffers/idl.h" #include "flatbuffers/util.h" @@ -308,6 +309,7 @@ std::string FlatCompiler::GetShortUsageString( const std::string &program_name) const { std::stringstream ss; ss << "Usage: " << program_name << " ["; + // TODO(derekbailey): These should be generated from this.generators for (size_t i = 0; i < params_.num_generators; ++i) { const Generator &g = params_.generators[i]; AppendShortOption(ss, g.option); @@ -330,6 +332,7 @@ std::string FlatCompiler::GetUsageString( std::stringstream ss; ss << "Usage: " << program_name << " [OPTION]... FILE... [-- BINARY_FILE...]\n"; + // TODO(derekbailey): These should be generated from this.generators for (size_t i = 0; i < params_.num_generators; ++i) { const Generator &g = params_.generators[i]; AppendOption(ss, g.option, 80, 25); @@ -613,20 +616,41 @@ FlatCOptions FlatCompiler::ParseFromCommandLineArguments(int argc, if (++argi >= argc) Error("missing path following: " + arg, true); options.annotate_schema = flatbuffers::PosixPath(argv[argi]); } else { - for (size_t i = 0; i < params_.num_generators; ++i) { - if (arg == "--" + params_.generators[i].option.long_opt || - arg == "-" + params_.generators[i].option.short_opt) { - options.generator_enabled[i] = true; - options.any_generator = true; - opts.lang_to_generate |= params_.generators[i].lang; - if (params_.generators[i].bfbs_generator) { - opts.binary_schema_comments = true; - options.requires_bfbs = true; + // Look up if the command line argument refers to a code generator. + auto code_generator_it = code_generators_.find(arg); + if (code_generator_it != code_generators_.end()) { + std::shared_ptr code_generator = + code_generator_it->second; + + // TODO(derekbailey): remove in favor of just checking if + // generators.empty(). + options.any_generator = true; + opts.lang_to_generate |= code_generator->Language(); + + if (code_generator->SupportsBfbsGeneration()) { + opts.binary_schema_comments = true; + options.requires_bfbs = true; + } + + options.generators.push_back(std::move(code_generator)); + } else { + // TODO(derekbailey): deprecate the following logic in favor of the + // code generator map above. + for (size_t i = 0; i < params_.num_generators; ++i) { + if (arg == "--" + params_.generators[i].option.long_opt || + arg == "-" + params_.generators[i].option.short_opt) { + options.generator_enabled[i] = true; + options.any_generator = true; + opts.lang_to_generate |= params_.generators[i].lang; + if (params_.generators[i].bfbs_generator) { + opts.binary_schema_comments = true; + options.requires_bfbs = true; + } + goto found; } - goto found; } + Error("unknown commandline argument: " + arg, true); } - Error("unknown commandline argument: " + arg, true); found:; } @@ -789,6 +813,57 @@ std::unique_ptr FlatCompiler::GenerateCode(const FlatCOptions &options, bfbs_length = parser->builder_.GetSize(); } + for (const std::shared_ptr &code_generator : + options.generators) { + if (options.print_make_rules) { + std::string make_rule; + const CodeGenerator::Status status = code_generator->GenerateMakeRule( + *parser, options.output_path, filename, make_rule); + if (status == CodeGenerator::Status::OK && !make_rule.empty()) { + printf("%s\n", + flatbuffers::WordWrap(make_rule, 80, " ", " \\").c_str()); + } else { + Error("Cannot generate make rule for " + + code_generator->LanguageName()); + } + } else { + flatbuffers::EnsureDirExists(options.output_path); + + // Prefer bfbs generators if present. + if (code_generator->SupportsBfbsGeneration()) { + const CodeGenerator::Status status = + code_generator->GenerateCode(bfbs_buffer, bfbs_length); + if (status != CodeGenerator::Status::OK) { + Error("Unable to generate " + code_generator->LanguageName() + + " for " + filebase + " using bfbs generator."); + } + } else { + if ((!code_generator->IsSchemaOnly() || + (is_schema || is_binary_schema)) && + code_generator->GenerateCode(*parser, options.output_path, + filebase) != + CodeGenerator::Status::OK) { + Error("Unable to generate " + code_generator->LanguageName() + + " for " + filebase); + } + } + } + + if (options.grpc_enabled) { + const CodeGenerator::Status status = code_generator->GenerateGrpcCode( + *parser, options.output_path, filebase); + + if (status == CodeGenerator::Status::NOT_IMPLEMENTED) { + Warn("GRPC interface generator not implemented for " + + code_generator->LanguageName()); + } else if (status == CodeGenerator::Status::ERROR) { + Error("Unable to generate GRPC interface for " + + code_generator->LanguageName()); + } + } + } + + // TODO(derekbailey): Deprecate the following in favor to the above. for (size_t i = 0; i < params_.num_generators; ++i) { if (options.generator_enabled[i]) { if (!options.print_make_rules) { @@ -934,4 +1009,14 @@ int FlatCompiler::Compile(const FlatCOptions &options) { return 0; } +bool FlatCompiler::RegisterCodeGenerator( + const std::string &flag, std::shared_ptr code_generator) { + if (code_generators_.find(flag) != code_generators_.end()) { + Error("multiple generators registered under: " + flag, false, false); + return false; + } + code_generators_[flag] = std::move(code_generator); + return true; +} + } // namespace flatbuffers diff --git a/src/flatc_main.cpp b/src/flatc_main.cpp index dc9e362513..5092c29fd3 100644 --- a/src/flatc_main.cpp +++ b/src/flatc_main.cpp @@ -20,9 +20,12 @@ #include "bfbs_gen_lua.h" #include "bfbs_gen_nim.h" #include "flatbuffers/base.h" +#include "flatbuffers/code_generator.h" #include "flatbuffers/flatc.h" #include "flatbuffers/util.h" + + static const char *g_program_name = nullptr; static void Warn(const flatbuffers::FlatCompiler *flatc, @@ -159,6 +162,12 @@ int main(int argc, const char *argv[]) { flatbuffers::FlatCompiler flatc(params); + std::shared_ptr cpp_generator = + flatbuffers::NewCppCodeGenerator(); + + flatc.RegisterCodeGenerator("--cpp", cpp_generator); + flatc.RegisterCodeGenerator("-c", cpp_generator); + // Create the FlatC options by parsing the command line arguments. const flatbuffers::FlatCOptions &options = flatc.ParseFromCommandLineArguments(argc, argv); diff --git a/src/idl_gen_cpp.cpp b/src/idl_gen_cpp.cpp index 262eb1ab07..ad534b64d9 100644 --- a/src/idl_gen_cpp.cpp +++ b/src/idl_gen_cpp.cpp @@ -17,6 +17,7 @@ // independent from idl_parser, since this code is not needed for most clients #include +#include #include #include @@ -3871,4 +3872,50 @@ std::string CPPMakeRule(const Parser &parser, const std::string &path, return make_rule; } +namespace { + +class CppCodeGenerator : public CodeGenerator { + public: + Status GenerateCode(const Parser &parser, const std::string &path, + const std::string &filename) override { + if (!GenerateCPP(parser, path, filename)) { return Status::ERROR; } + return Status::OK; + } + + // Generate code from the provided `buffer` of given `length`. The buffer is a + // serialized reflection.fbs. + Status GenerateCode(const uint8_t *buffer, int64_t length) override { + (void) buffer; + (void) length; + return Status::NOT_IMPLEMENTED; + } + + Status GenerateMakeRule(const Parser &parser, const std::string &path, + const std::string &filename, + std::string &output) override { + output = CPPMakeRule(parser, path, filename); + return Status::OK; + } + + Status GenerateGrpcCode(const Parser &parser, const std::string &path, + const std::string &filename) override { + if (!GenerateCppGRPC(parser, path, filename)) { return Status::ERROR; } + return Status::OK; + } + + bool IsSchemaOnly() const override { return true; } + + bool SupportsBfbsGeneration() const override { return false; } + + IDLOptions::Language Language() const override { return IDLOptions::kCpp; } + + std::string LanguageName() const override { return "C++"; } +}; + +} // namespace + +std::unique_ptr NewCppCodeGenerator() { + return std::unique_ptr(new CppCodeGenerator()); +} + } // namespace flatbuffers From ca6381bcc84f1d4d84b2b8d4f33d7f6f4f3d9a47 Mon Sep 17 00:00:00 2001 From: Ben Beasley Date: Mon, 9 Jan 2023 13:32:50 -0500 Subject: [PATCH 089/571] Fix a typo in a Python test name (#7774) --- tests/py_test.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/py_test.py b/tests/py_test.py index 204a96dd4b..623760b064 100644 --- a/tests/py_test.py +++ b/tests/py_test.py @@ -131,7 +131,7 @@ def test_wire_format(self): class TestObjectBasedAPI(unittest.TestCase): """ Tests the generated object based API.""" - def test_consistenty_with_repeated_pack_and_unpack(self): + def test_consistency_with_repeated_pack_and_unpack(self): """ Checks the serialization and deserialization between a buffer and its python object. It tests in the same way as the C++ object API test, From 7bf83f5ea06149866193163b29794ca80133e14c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= Date: Tue, 10 Jan 2023 18:31:49 +0100 Subject: [PATCH 090/571] Use full project version as SOVERSION for the shared library (#7777) Since flatbuffers is using calendar versioning and does not provide any ABI stability guarantees, use the complete version as SOVERSION for the shared library rather than just the major component. This prevents breaking reverse dependencies on incompatible upgrades. Fixes #7759 --- CMake/CMakeLists_legacy.cmake.in | 12 +++++------- CMakeLists.txt | 12 +++++------- 2 files changed, 10 insertions(+), 14 deletions(-) diff --git a/CMake/CMakeLists_legacy.cmake.in b/CMake/CMakeLists_legacy.cmake.in index 9e1af2bff0..5d70577ae5 100644 --- a/CMake/CMakeLists_legacy.cmake.in +++ b/CMake/CMakeLists_legacy.cmake.in @@ -438,14 +438,12 @@ endif() if(FLATBUFFERS_BUILD_SHAREDLIB) add_library(flatbuffers_shared SHARED ${FlatBuffers_Library_SRCS}) - # Shared object version: "major.minor.micro" - # - micro updated every release when there is no API/ABI changes - # - minor updated when there are additions in API/ABI - # - major (ABI number) updated when there are changes in ABI (or removals) - set(FlatBuffers_Library_SONAME_MAJOR ${VERSION_MAJOR}) - set(FlatBuffers_Library_SONAME_FULL "${FlatBuffers_Library_SONAME_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}") + # FlatBuffers use calendar-based versioning and do not provide any ABI + # stability guarantees. Therefore, always use the full version as SOVERSION + # in order to avoid breaking reverse dependencies on upgrades. + set(FlatBuffers_Library_SONAME_FULL "${PROJECT_VERSION}") set_target_properties(flatbuffers_shared PROPERTIES OUTPUT_NAME flatbuffers - SOVERSION "${FlatBuffers_Library_SONAME_MAJOR}" + SOVERSION "${FlatBuffers_Library_SONAME_FULL}" VERSION "${FlatBuffers_Library_SONAME_FULL}") if(FLATBUFFERS_ENABLE_PCH) add_pch_to_target(flatbuffers_shared include/flatbuffers/pch/pch.h) diff --git a/CMakeLists.txt b/CMakeLists.txt index c56fb381c7..2310c83510 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -525,14 +525,12 @@ endif() if(FLATBUFFERS_BUILD_SHAREDLIB) add_library(flatbuffers_shared SHARED ${FlatBuffers_Library_SRCS}) target_link_libraries(flatbuffers_shared PRIVATE $) - # Shared object version: "major.minor.micro" - # - micro updated every release when there is no API/ABI changes - # - minor updated when there are additions in API/ABI - # - major (ABI number) updated when there are changes in ABI (or removals) - set(FlatBuffers_Library_SONAME_MAJOR ${VERSION_MAJOR}) - set(FlatBuffers_Library_SONAME_FULL "${FlatBuffers_Library_SONAME_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}") + # FlatBuffers use calendar-based versioning and do not provide any ABI + # stability guarantees. Therefore, always use the full version as SOVERSION + # in order to avoid breaking reverse dependencies on upgrades. + set(FlatBuffers_Library_SONAME_FULL "${PROJECT_VERSION}") set_target_properties(flatbuffers_shared PROPERTIES OUTPUT_NAME flatbuffers - SOVERSION "${FlatBuffers_Library_SONAME_MAJOR}" + SOVERSION "${FlatBuffers_Library_SONAME_FULL}" VERSION "${FlatBuffers_Library_SONAME_FULL}") if(FLATBUFFERS_ENABLE_PCH) add_pch_to_target(flatbuffers_shared include/flatbuffers/pch/pch.h) From b50b6be60a3647b5a320498b9534b6f74450c2b1 Mon Sep 17 00:00:00 2001 From: Anton Bobukh Date: Tue, 10 Jan 2023 10:03:39 -0800 Subject: [PATCH 091/571] [Kotlin] Control the generation of reflection with --reflect-names (#7775) * [Kotlin] Control the generation of reflection with --reflect-names. Tested: ``` $ cmake -G "Unix Makefiles" && make && ./tests/flatc/main.py ... KotlinTests.EnumValAttributes [PASSED] KotlinTests.EnumValAttributes_ReflectNames [PASSED] KotlinTests: 2 of 2 passsed ... 35 of 35 tests passed ``` * [Kotlin] Fix SampleBinary by converting Byte to UByte for ubyte fields. * [Kotlin] Annotate all generated classes with kotlin.ExperimentalUnsignedTypes. --- samples/SampleBinary.kt | 5 +-- src/idl_gen_kotlin.cpp | 7 +++- tests/DictionaryLookup/LongFloatEntry.kt | 1 + tests/DictionaryLookup/LongFloatMap.kt | 1 + tests/MyGame/Example/Ability.kt | 1 + tests/MyGame/Example/Any.kt | 1 + tests/MyGame/Example/AnyAmbiguousAliases.kt | 1 + tests/MyGame/Example/AnyUniqueAliases.kt | 1 + tests/MyGame/Example/Color.kt | 1 + tests/MyGame/Example/LongEnum.kt | 1 + tests/MyGame/Example/Monster.kt | 1 + tests/MyGame/Example/Race.kt | 1 + tests/MyGame/Example/Referrable.kt | 1 + tests/MyGame/Example/Stat.kt | 1 + tests/MyGame/Example/StructOfStructs.kt | 1 + .../Example/StructOfStructsOfStructs.kt | 1 + tests/MyGame/Example/Test.kt | 1 + .../MyGame/Example/TestSimpleTableWithEnum.kt | 1 + tests/MyGame/Example/TypeAliases.kt | 1 + tests/MyGame/Example/Vec3.kt | 1 + tests/MyGame/Example2/Monster.kt | 1 + tests/MyGame/InParentNamespace.kt | 1 + tests/MyGame/MonsterExtra.kt | 1 + tests/flatc/flatc_kotlin_tests.py | 32 +++++++++++++++++++ tests/flatc/main.py | 3 +- tests/optional_scalars/OptionalByte.kt | 3 +- tests/optional_scalars/ScalarStuff.kt | 1 + tests/union_vector/Attacker.kt | 1 + tests/union_vector/BookReader.kt | 1 + tests/union_vector/Character.kt | 1 + tests/union_vector/FallingTub.kt | 1 + tests/union_vector/Gadget.kt | 1 + tests/union_vector/HandFan.kt | 1 + tests/union_vector/Movie.kt | 1 + tests/union_vector/Rapunzel.kt | 1 + 35 files changed, 74 insertions(+), 6 deletions(-) create mode 100644 tests/flatc/flatc_kotlin_tests.py diff --git a/samples/SampleBinary.kt b/samples/SampleBinary.kt index 2974f36a91..04a749c759 100644 --- a/samples/SampleBinary.kt +++ b/samples/SampleBinary.kt @@ -24,6 +24,7 @@ import MyGame.Sample.Weapon import com.google.flatbuffers.FlatBufferBuilder +@kotlin.ExperimentalUnsignedTypes class SampleBinary { companion object { @@ -45,7 +46,7 @@ class SampleBinary { // Serialize the FlatBuffer data. val name = builder.createString("Orc") - val treasure = byteArrayOf(0, 1, 2, 3, 4, 5, 6, 7, 8, 9) + val treasure = byteArrayOf(0, 1, 2, 3, 4, 5, 6, 7, 8, 9).asUByteArray() val inv = Monster.createInventoryVector(builder, treasure) val weapons = Monster.createWeaponsVector(builder, weaps) val pos = Vec3.createVec3(builder, 1.0f, 2.0f, 3.0f) @@ -85,7 +86,7 @@ class SampleBinary { // Get and test the `inventory` FlatBuffer `vector`. for (i in 0 until monster.inventoryLength) { - assert(monster.inventory(i) == i.toByte().toInt()) + assert(monster.inventory(i) == i.toUByte()) } // Get and test the `weapons` FlatBuffer `vector` of `table`s. diff --git a/src/idl_gen_kotlin.cpp b/src/idl_gen_kotlin.cpp index b19f2a3d51..2cbed65233 100644 --- a/src/idl_gen_kotlin.cpp +++ b/src/idl_gen_kotlin.cpp @@ -287,6 +287,7 @@ class KotlinGenerator : public BaseGenerator { GenerateComment(enum_def.doc_comment, writer, &comment_config); writer += "@Suppress(\"unused\")"; + writer += "@kotlin.ExperimentalUnsignedTypes"; writer += "class " + namer_.Type(enum_def) + " private constructor() {"; writer.IncrementIdentLevel(); @@ -313,7 +314,10 @@ class KotlinGenerator : public BaseGenerator { // Average distance between values above which we consider a table // "too sparse". Change at will. static const uint64_t kMaxSparseness = 5; - if (range / static_cast(enum_def.size()) < kMaxSparseness) { + bool generate_names = + range / static_cast(enum_def.size()) < kMaxSparseness && + parser_.opts.mini_reflect == IDLOptions::kTypesAndNames; + if (generate_names) { GeneratePropertyOneLine(writer, "names", "Array", [&]() { writer += "arrayOf(\\"; auto val = enum_def.Vals().front(); @@ -489,6 +493,7 @@ class KotlinGenerator : public BaseGenerator { writer.SetValue("superclass", fixed ? "Struct" : "Table"); writer += "@Suppress(\"unused\")"; + writer += "@kotlin.ExperimentalUnsignedTypes"; writer += "class {{struct_name}} : {{superclass}}() {\n"; writer.IncrementIdentLevel(); diff --git a/tests/DictionaryLookup/LongFloatEntry.kt b/tests/DictionaryLookup/LongFloatEntry.kt index d49afa4500..5ba11bfd58 100644 --- a/tests/DictionaryLookup/LongFloatEntry.kt +++ b/tests/DictionaryLookup/LongFloatEntry.kt @@ -19,6 +19,7 @@ import java.nio.ByteOrder import kotlin.math.sign @Suppress("unused") +@kotlin.ExperimentalUnsignedTypes class LongFloatEntry : Table() { fun __init(_i: Int, _bb: ByteBuffer) { diff --git a/tests/DictionaryLookup/LongFloatMap.kt b/tests/DictionaryLookup/LongFloatMap.kt index bc1541f478..bb0cd3e475 100644 --- a/tests/DictionaryLookup/LongFloatMap.kt +++ b/tests/DictionaryLookup/LongFloatMap.kt @@ -19,6 +19,7 @@ import java.nio.ByteOrder import kotlin.math.sign @Suppress("unused") +@kotlin.ExperimentalUnsignedTypes class LongFloatMap : Table() { fun __init(_i: Int, _bb: ByteBuffer) { diff --git a/tests/MyGame/Example/Ability.kt b/tests/MyGame/Example/Ability.kt index dc2b0b8640..a3e17bef1a 100644 --- a/tests/MyGame/Example/Ability.kt +++ b/tests/MyGame/Example/Ability.kt @@ -19,6 +19,7 @@ import java.nio.ByteOrder import kotlin.math.sign @Suppress("unused") +@kotlin.ExperimentalUnsignedTypes class Ability : Struct() { fun __init(_i: Int, _bb: ByteBuffer) { diff --git a/tests/MyGame/Example/Any.kt b/tests/MyGame/Example/Any.kt index 5a7ecf7659..8818c3903f 100644 --- a/tests/MyGame/Example/Any.kt +++ b/tests/MyGame/Example/Any.kt @@ -3,6 +3,7 @@ package MyGame.Example @Suppress("unused") +@kotlin.ExperimentalUnsignedTypes class Any_ private constructor() { companion object { const val NONE: UByte = 0u diff --git a/tests/MyGame/Example/AnyAmbiguousAliases.kt b/tests/MyGame/Example/AnyAmbiguousAliases.kt index c38923b9e9..4043096546 100644 --- a/tests/MyGame/Example/AnyAmbiguousAliases.kt +++ b/tests/MyGame/Example/AnyAmbiguousAliases.kt @@ -3,6 +3,7 @@ package MyGame.Example @Suppress("unused") +@kotlin.ExperimentalUnsignedTypes class AnyAmbiguousAliases private constructor() { companion object { const val NONE: UByte = 0u diff --git a/tests/MyGame/Example/AnyUniqueAliases.kt b/tests/MyGame/Example/AnyUniqueAliases.kt index 2db45a6c2c..8be0cc8260 100644 --- a/tests/MyGame/Example/AnyUniqueAliases.kt +++ b/tests/MyGame/Example/AnyUniqueAliases.kt @@ -3,6 +3,7 @@ package MyGame.Example @Suppress("unused") +@kotlin.ExperimentalUnsignedTypes class AnyUniqueAliases private constructor() { companion object { const val NONE: UByte = 0u diff --git a/tests/MyGame/Example/Color.kt b/tests/MyGame/Example/Color.kt index 0af56e1ee3..61a313e63e 100644 --- a/tests/MyGame/Example/Color.kt +++ b/tests/MyGame/Example/Color.kt @@ -6,6 +6,7 @@ package MyGame.Example * Composite components of Monster color. */ @Suppress("unused") +@kotlin.ExperimentalUnsignedTypes class Color private constructor() { companion object { const val Red: UByte = 1u diff --git a/tests/MyGame/Example/LongEnum.kt b/tests/MyGame/Example/LongEnum.kt index ecb5aabf92..328c9c4f2d 100644 --- a/tests/MyGame/Example/LongEnum.kt +++ b/tests/MyGame/Example/LongEnum.kt @@ -3,6 +3,7 @@ package MyGame.Example @Suppress("unused") +@kotlin.ExperimentalUnsignedTypes class LongEnum private constructor() { companion object { const val LongOne: ULong = 2UL diff --git a/tests/MyGame/Example/Monster.kt b/tests/MyGame/Example/Monster.kt index be60c702f4..9d547fe49e 100644 --- a/tests/MyGame/Example/Monster.kt +++ b/tests/MyGame/Example/Monster.kt @@ -22,6 +22,7 @@ import kotlin.math.sign * an example documentation comment: "monster object" */ @Suppress("unused") +@kotlin.ExperimentalUnsignedTypes class Monster : Table() { fun __init(_i: Int, _bb: ByteBuffer) { diff --git a/tests/MyGame/Example/Race.kt b/tests/MyGame/Example/Race.kt index 6f770a3c9a..9cf8857231 100644 --- a/tests/MyGame/Example/Race.kt +++ b/tests/MyGame/Example/Race.kt @@ -3,6 +3,7 @@ package MyGame.Example @Suppress("unused") +@kotlin.ExperimentalUnsignedTypes class Race private constructor() { companion object { const val None: Byte = -1 diff --git a/tests/MyGame/Example/Referrable.kt b/tests/MyGame/Example/Referrable.kt index 819af37073..9d4d2e6a95 100644 --- a/tests/MyGame/Example/Referrable.kt +++ b/tests/MyGame/Example/Referrable.kt @@ -19,6 +19,7 @@ import java.nio.ByteOrder import kotlin.math.sign @Suppress("unused") +@kotlin.ExperimentalUnsignedTypes class Referrable : Table() { fun __init(_i: Int, _bb: ByteBuffer) { diff --git a/tests/MyGame/Example/Stat.kt b/tests/MyGame/Example/Stat.kt index 7968681684..752d7a2a03 100644 --- a/tests/MyGame/Example/Stat.kt +++ b/tests/MyGame/Example/Stat.kt @@ -19,6 +19,7 @@ import java.nio.ByteOrder import kotlin.math.sign @Suppress("unused") +@kotlin.ExperimentalUnsignedTypes class Stat : Table() { fun __init(_i: Int, _bb: ByteBuffer) { diff --git a/tests/MyGame/Example/StructOfStructs.kt b/tests/MyGame/Example/StructOfStructs.kt index e7a27a2315..89fd831f6b 100644 --- a/tests/MyGame/Example/StructOfStructs.kt +++ b/tests/MyGame/Example/StructOfStructs.kt @@ -19,6 +19,7 @@ import java.nio.ByteOrder import kotlin.math.sign @Suppress("unused") +@kotlin.ExperimentalUnsignedTypes class StructOfStructs : Struct() { fun __init(_i: Int, _bb: ByteBuffer) { diff --git a/tests/MyGame/Example/StructOfStructsOfStructs.kt b/tests/MyGame/Example/StructOfStructsOfStructs.kt index 5fb1a1ef55..24bd1cfad3 100644 --- a/tests/MyGame/Example/StructOfStructsOfStructs.kt +++ b/tests/MyGame/Example/StructOfStructsOfStructs.kt @@ -19,6 +19,7 @@ import java.nio.ByteOrder import kotlin.math.sign @Suppress("unused") +@kotlin.ExperimentalUnsignedTypes class StructOfStructsOfStructs : Struct() { fun __init(_i: Int, _bb: ByteBuffer) { diff --git a/tests/MyGame/Example/Test.kt b/tests/MyGame/Example/Test.kt index c2ce96e9b4..c910b3e048 100644 --- a/tests/MyGame/Example/Test.kt +++ b/tests/MyGame/Example/Test.kt @@ -19,6 +19,7 @@ import java.nio.ByteOrder import kotlin.math.sign @Suppress("unused") +@kotlin.ExperimentalUnsignedTypes class Test : Struct() { fun __init(_i: Int, _bb: ByteBuffer) { diff --git a/tests/MyGame/Example/TestSimpleTableWithEnum.kt b/tests/MyGame/Example/TestSimpleTableWithEnum.kt index fec981f1e1..e2992993f0 100644 --- a/tests/MyGame/Example/TestSimpleTableWithEnum.kt +++ b/tests/MyGame/Example/TestSimpleTableWithEnum.kt @@ -19,6 +19,7 @@ import java.nio.ByteOrder import kotlin.math.sign @Suppress("unused") +@kotlin.ExperimentalUnsignedTypes class TestSimpleTableWithEnum : Table() { fun __init(_i: Int, _bb: ByteBuffer) { diff --git a/tests/MyGame/Example/TypeAliases.kt b/tests/MyGame/Example/TypeAliases.kt index 6d77d95950..cd7c78fe57 100644 --- a/tests/MyGame/Example/TypeAliases.kt +++ b/tests/MyGame/Example/TypeAliases.kt @@ -19,6 +19,7 @@ import java.nio.ByteOrder import kotlin.math.sign @Suppress("unused") +@kotlin.ExperimentalUnsignedTypes class TypeAliases : Table() { fun __init(_i: Int, _bb: ByteBuffer) { diff --git a/tests/MyGame/Example/Vec3.kt b/tests/MyGame/Example/Vec3.kt index 9e1f89ed88..59a431d7a4 100644 --- a/tests/MyGame/Example/Vec3.kt +++ b/tests/MyGame/Example/Vec3.kt @@ -19,6 +19,7 @@ import java.nio.ByteOrder import kotlin.math.sign @Suppress("unused") +@kotlin.ExperimentalUnsignedTypes class Vec3 : Struct() { fun __init(_i: Int, _bb: ByteBuffer) { diff --git a/tests/MyGame/Example2/Monster.kt b/tests/MyGame/Example2/Monster.kt index 8455c0a223..22ccf279f8 100644 --- a/tests/MyGame/Example2/Monster.kt +++ b/tests/MyGame/Example2/Monster.kt @@ -19,6 +19,7 @@ import java.nio.ByteOrder import kotlin.math.sign @Suppress("unused") +@kotlin.ExperimentalUnsignedTypes class Monster : Table() { fun __init(_i: Int, _bb: ByteBuffer) { diff --git a/tests/MyGame/InParentNamespace.kt b/tests/MyGame/InParentNamespace.kt index 84a8cff4c2..acea6920c8 100644 --- a/tests/MyGame/InParentNamespace.kt +++ b/tests/MyGame/InParentNamespace.kt @@ -19,6 +19,7 @@ import java.nio.ByteOrder import kotlin.math.sign @Suppress("unused") +@kotlin.ExperimentalUnsignedTypes class InParentNamespace : Table() { fun __init(_i: Int, _bb: ByteBuffer) { diff --git a/tests/MyGame/MonsterExtra.kt b/tests/MyGame/MonsterExtra.kt index d1e75a2894..e150e6d807 100644 --- a/tests/MyGame/MonsterExtra.kt +++ b/tests/MyGame/MonsterExtra.kt @@ -19,6 +19,7 @@ import java.nio.ByteOrder import kotlin.math.sign @Suppress("unused") +@kotlin.ExperimentalUnsignedTypes class MonsterExtra : Table() { fun __init(_i: Int, _bb: ByteBuffer) { diff --git a/tests/flatc/flatc_kotlin_tests.py b/tests/flatc/flatc_kotlin_tests.py new file mode 100644 index 0000000000..bca3cba33e --- /dev/null +++ b/tests/flatc/flatc_kotlin_tests.py @@ -0,0 +1,32 @@ +# Copyright 2022 Google Inc. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from flatc_test import * + + +class KotlinTests: + + def EnumValAttributes(self): + flatc(["--kotlin", "enum_val_attributes.fbs"]) + + subject = assert_file_exists("ValAttributes.kt") + assert_file_doesnt_contains(subject, 'val names : Array = arrayOf("Val1", "Val2", "Val3")') + assert_file_doesnt_contains(subject, 'fun name(e: Int) : String = names[e]') + + def EnumValAttributes_ReflectNames(self): + flatc(["--kotlin", "--reflect-names", "enum_val_attributes.fbs"]) + + subject = assert_file_exists("ValAttributes.kt") + assert_file_contains(subject, 'val names : Array = arrayOf("Val1", "Val2", "Val3")') + assert_file_contains(subject, 'fun name(e: Int) : String = names[e]') diff --git a/tests/flatc/main.py b/tests/flatc/main.py index 3bc231848a..b296c475f3 100755 --- a/tests/flatc/main.py +++ b/tests/flatc/main.py @@ -18,10 +18,11 @@ from flatc_test import run_all from flatc_cpp_tests import CppTests +from flatc_kotlin_tests import KotlinTests from flatc_ts_tests import TsTests from flatc_schema_tests import SchemaTests -passing, failing = run_all(CppTests, TsTests, SchemaTests) +passing, failing = run_all(CppTests, KotlinTests, TsTests, SchemaTests) print("") print("{0} of {1} tests passed".format(passing, passing + failing)) diff --git a/tests/optional_scalars/OptionalByte.kt b/tests/optional_scalars/OptionalByte.kt index afb36909c8..1379cd105b 100644 --- a/tests/optional_scalars/OptionalByte.kt +++ b/tests/optional_scalars/OptionalByte.kt @@ -3,12 +3,11 @@ package optional_scalars @Suppress("unused") +@kotlin.ExperimentalUnsignedTypes class OptionalByte private constructor() { companion object { const val None: Byte = 0 const val One: Byte = 1 const val Two: Byte = 2 - val names : Array = arrayOf("None", "One", "Two") - fun name(e: Int) : String = names[e] } } diff --git a/tests/optional_scalars/ScalarStuff.kt b/tests/optional_scalars/ScalarStuff.kt index bc3ef4bb56..ba498ed74a 100644 --- a/tests/optional_scalars/ScalarStuff.kt +++ b/tests/optional_scalars/ScalarStuff.kt @@ -19,6 +19,7 @@ import java.nio.ByteOrder import kotlin.math.sign @Suppress("unused") +@kotlin.ExperimentalUnsignedTypes class ScalarStuff : Table() { fun __init(_i: Int, _bb: ByteBuffer) { diff --git a/tests/union_vector/Attacker.kt b/tests/union_vector/Attacker.kt index 6823eed158..f71a6c0526 100644 --- a/tests/union_vector/Attacker.kt +++ b/tests/union_vector/Attacker.kt @@ -17,6 +17,7 @@ import java.nio.ByteOrder import kotlin.math.sign @Suppress("unused") +@kotlin.ExperimentalUnsignedTypes class Attacker : Table() { fun __init(_i: Int, _bb: ByteBuffer) { diff --git a/tests/union_vector/BookReader.kt b/tests/union_vector/BookReader.kt index 87dff73286..ddeb09dda3 100644 --- a/tests/union_vector/BookReader.kt +++ b/tests/union_vector/BookReader.kt @@ -17,6 +17,7 @@ import java.nio.ByteOrder import kotlin.math.sign @Suppress("unused") +@kotlin.ExperimentalUnsignedTypes class BookReader : Struct() { fun __init(_i: Int, _bb: ByteBuffer) { diff --git a/tests/union_vector/Character.kt b/tests/union_vector/Character.kt index 2e80a35f1f..302b7e50fc 100644 --- a/tests/union_vector/Character.kt +++ b/tests/union_vector/Character.kt @@ -1,6 +1,7 @@ // automatically generated by the FlatBuffers compiler, do not modify @Suppress("unused") +@kotlin.ExperimentalUnsignedTypes class Character_ private constructor() { companion object { const val NONE: UByte = 0u diff --git a/tests/union_vector/FallingTub.kt b/tests/union_vector/FallingTub.kt index 43e477a393..0f167250aa 100644 --- a/tests/union_vector/FallingTub.kt +++ b/tests/union_vector/FallingTub.kt @@ -17,6 +17,7 @@ import java.nio.ByteOrder import kotlin.math.sign @Suppress("unused") +@kotlin.ExperimentalUnsignedTypes class FallingTub : Struct() { fun __init(_i: Int, _bb: ByteBuffer) { diff --git a/tests/union_vector/Gadget.kt b/tests/union_vector/Gadget.kt index 4fb3b10070..c537a4f30f 100644 --- a/tests/union_vector/Gadget.kt +++ b/tests/union_vector/Gadget.kt @@ -1,6 +1,7 @@ // automatically generated by the FlatBuffers compiler, do not modify @Suppress("unused") +@kotlin.ExperimentalUnsignedTypes class Gadget private constructor() { companion object { const val NONE: UByte = 0u diff --git a/tests/union_vector/HandFan.kt b/tests/union_vector/HandFan.kt index debcb4c5cd..d60ba28407 100644 --- a/tests/union_vector/HandFan.kt +++ b/tests/union_vector/HandFan.kt @@ -17,6 +17,7 @@ import java.nio.ByteOrder import kotlin.math.sign @Suppress("unused") +@kotlin.ExperimentalUnsignedTypes class HandFan : Table() { fun __init(_i: Int, _bb: ByteBuffer) { diff --git a/tests/union_vector/Movie.kt b/tests/union_vector/Movie.kt index ee07eef6a8..8d3e4106ed 100644 --- a/tests/union_vector/Movie.kt +++ b/tests/union_vector/Movie.kt @@ -17,6 +17,7 @@ import java.nio.ByteOrder import kotlin.math.sign @Suppress("unused") +@kotlin.ExperimentalUnsignedTypes class Movie : Table() { fun __init(_i: Int, _bb: ByteBuffer) { diff --git a/tests/union_vector/Rapunzel.kt b/tests/union_vector/Rapunzel.kt index e3296e1933..d51402a250 100644 --- a/tests/union_vector/Rapunzel.kt +++ b/tests/union_vector/Rapunzel.kt @@ -17,6 +17,7 @@ import java.nio.ByteOrder import kotlin.math.sign @Suppress("unused") +@kotlin.ExperimentalUnsignedTypes class Rapunzel : Struct() { fun __init(_i: Int, _bb: ByteBuffer) { From b23493a7d2e58bdc62a35be256e55c32185fe223 Mon Sep 17 00:00:00 2001 From: Ben Beasley Date: Tue, 10 Jan 2023 13:20:08 -0500 Subject: [PATCH 092/571] Fix Python host-endianness dependencies (#7773) * In Python tests, use host-endian-independent dtypes * Fix host endianness dependence in Python flexbuffers Co-authored-by: Derek Bailey --- python/flatbuffers/flexbuffers.py | 10 +++++----- tests/py_flexbuffers_test.py | 6 +++--- tests/py_test.py | 30 +++++++++++++++--------------- 3 files changed, 23 insertions(+), 23 deletions(-) diff --git a/python/flatbuffers/flexbuffers.py b/python/flatbuffers/flexbuffers.py index aaa02fdaf3..34d42a6986 100644 --- a/python/flatbuffers/flexbuffers.py +++ b/python/flatbuffers/flexbuffers.py @@ -75,7 +75,7 @@ def I(value): @staticmethod def F(value): """Returns the `BitWidth` to encode floating point value.""" - if struct.unpack('f', struct.pack('f', value))[0] == value: + if struct.unpack(' Date: Tue, 10 Jan 2023 19:43:17 +0100 Subject: [PATCH 093/571] [TS]: builder, Fix requiredField(). Verity that the field is present in the vtable (#7739) (#7752) * [TS]: Fix vtable creation for consecutive required fileds (#7739) * handle feedback * comment the schema * comment change in builder.ts * [TS]: builder, Fix requiredField() Verifty that the field is present in the vtable. * restore monsterdata binary file Co-authored-by: Derek Bailey --- tests/required_strings.fbs | 12 +++++ tests/ts/JavaScriptRequiredStringTest.js | 32 ++++++++++++ tests/ts/TypeScriptTest.py | 3 +- tests/ts/required-strings/foo.js | 49 +++++++++++++++++++ tests/ts/required-strings/foo.ts | 62 ++++++++++++++++++++++++ tests/ts/required_strings_generated.js | 2 + tests/ts/required_strings_generated.ts | 2 + ts/builder.ts | 3 +- 8 files changed, 163 insertions(+), 2 deletions(-) create mode 100644 tests/required_strings.fbs create mode 100644 tests/ts/JavaScriptRequiredStringTest.js create mode 100644 tests/ts/required-strings/foo.js create mode 100644 tests/ts/required-strings/foo.ts create mode 100644 tests/ts/required_strings_generated.js create mode 100644 tests/ts/required_strings_generated.ts diff --git a/tests/required_strings.fbs b/tests/required_strings.fbs new file mode 100644 index 0000000000..98556d4ff9 --- /dev/null +++ b/tests/required_strings.fbs @@ -0,0 +1,12 @@ +namespace required_strings; + +/** + * Foo defines a type where both fields are mandatory. + * The creation of a Foo buffer must throw if either of the fields is missing. + * + * https://github.com/google/flatbuffers/issues/7739 + */ +table Foo { + str_a:string (required); + str_b:string (required); +} diff --git a/tests/ts/JavaScriptRequiredStringTest.js b/tests/ts/JavaScriptRequiredStringTest.js new file mode 100644 index 0000000000..6023ef8032 --- /dev/null +++ b/tests/ts/JavaScriptRequiredStringTest.js @@ -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(); diff --git a/tests/ts/TypeScriptTest.py b/tests/ts/TypeScriptTest.py index 4fe7ab6539..4a4ccb2ae3 100755 --- a/tests/ts/TypeScriptTest.py +++ b/tests/ts/TypeScriptTest.py @@ -134,4 +134,5 @@ def flatc(options, schema, prefix=None, include=None, data=None, cwd=tests_path) check_call(NODE_CMD + ["JavaScriptTest"]) check_call(NODE_CMD + ["JavaScriptUnionVectorTest"]) check_call(NODE_CMD + ["JavaScriptFlexBuffersTest"]) -check_call(NODE_CMD + ["JavaScriptComplexArraysTest"]) \ No newline at end of file +check_call(NODE_CMD + ["JavaScriptComplexArraysTest"]) +check_call(NODE_CMD + ["JavaScriptRequiredStringTest"]) diff --git a/tests/ts/required-strings/foo.js b/tests/ts/required-strings/foo.js new file mode 100644 index 0000000000..774fcca143 --- /dev/null +++ b/tests/ts/required-strings/foo.js @@ -0,0 +1,49 @@ +// automatically generated by the FlatBuffers compiler, do not modify +import * as flatbuffers from 'flatbuffers'; +export class Foo { + constructor() { + this.bb = null; + this.bb_pos = 0; + } + __init(i, bb) { + this.bb_pos = i; + this.bb = bb; + return this; + } + static getRootAsFoo(bb, obj) { + return (obj || new Foo()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + static getSizePrefixedRootAsFoo(bb, obj) { + bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH); + return (obj || new Foo()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + strA(optionalEncoding) { + const offset = this.bb.__offset(this.bb_pos, 4); + return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; + } + strB(optionalEncoding) { + const offset = this.bb.__offset(this.bb_pos, 6); + return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; + } + static startFoo(builder) { + builder.startObject(2); + } + static addStrA(builder, strAOffset) { + builder.addFieldOffset(0, strAOffset, 0); + } + static addStrB(builder, strBOffset) { + builder.addFieldOffset(1, strBOffset, 0); + } + static endFoo(builder) { + const offset = builder.endObject(); + builder.requiredField(offset, 4); // str_a + builder.requiredField(offset, 6); // str_b + return offset; + } + static createFoo(builder, strAOffset, strBOffset) { + Foo.startFoo(builder); + Foo.addStrA(builder, strAOffset); + Foo.addStrB(builder, strBOffset); + return Foo.endFoo(builder); + } +} diff --git a/tests/ts/required-strings/foo.ts b/tests/ts/required-strings/foo.ts new file mode 100644 index 0000000000..8ae6666ce4 --- /dev/null +++ b/tests/ts/required-strings/foo.ts @@ -0,0 +1,62 @@ +// automatically generated by the FlatBuffers compiler, do not modify + +import * as flatbuffers from 'flatbuffers'; + +export class Foo { + bb: flatbuffers.ByteBuffer|null = null; + bb_pos = 0; + __init(i:number, bb:flatbuffers.ByteBuffer):Foo { + this.bb_pos = i; + this.bb = bb; + return this; +} + +static getRootAsFoo(bb:flatbuffers.ByteBuffer, obj?:Foo):Foo { + return (obj || new Foo()).__init(bb.readInt32(bb.position()) + bb.position(), bb); +} + +static getSizePrefixedRootAsFoo(bb:flatbuffers.ByteBuffer, obj?:Foo):Foo { + bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH); + return (obj || new Foo()).__init(bb.readInt32(bb.position()) + bb.position(), bb); +} + +strA():string|null +strA(optionalEncoding:flatbuffers.Encoding):string|Uint8Array|null +strA(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; +} + +strB():string|null +strB(optionalEncoding:flatbuffers.Encoding):string|Uint8Array|null +strB(optionalEncoding?:any):string|Uint8Array|null { + const offset = this.bb!.__offset(this.bb_pos, 6); + return offset ? this.bb!.__string(this.bb_pos + offset, optionalEncoding) : null; +} + +static startFoo(builder:flatbuffers.Builder) { + builder.startObject(2); +} + +static addStrA(builder:flatbuffers.Builder, strAOffset:flatbuffers.Offset) { + builder.addFieldOffset(0, strAOffset, 0); +} + +static addStrB(builder:flatbuffers.Builder, strBOffset:flatbuffers.Offset) { + builder.addFieldOffset(1, strBOffset, 0); +} + +static endFoo(builder:flatbuffers.Builder):flatbuffers.Offset { + const offset = builder.endObject(); + builder.requiredField(offset, 4) // str_a + builder.requiredField(offset, 6) // str_b + return offset; +} + +static createFoo(builder:flatbuffers.Builder, strAOffset:flatbuffers.Offset, strBOffset:flatbuffers.Offset):flatbuffers.Offset { + Foo.startFoo(builder); + Foo.addStrA(builder, strAOffset); + Foo.addStrB(builder, strBOffset); + return Foo.endFoo(builder); +} +} diff --git a/tests/ts/required_strings_generated.js b/tests/ts/required_strings_generated.js new file mode 100644 index 0000000000..9f9cf01780 --- /dev/null +++ b/tests/ts/required_strings_generated.js @@ -0,0 +1,2 @@ +"use strict"; +// automatically generated by the FlatBuffers compiler, do not modify diff --git a/tests/ts/required_strings_generated.ts b/tests/ts/required_strings_generated.ts new file mode 100644 index 0000000000..b7d545f8dc --- /dev/null +++ b/tests/ts/required_strings_generated.ts @@ -0,0 +1,2 @@ +// automatically generated by the FlatBuffers compiler, do not modify + diff --git a/ts/builder.ts b/ts/builder.ts index f1a2b419a4..4ba340352d 100644 --- a/ts/builder.ts +++ b/ts/builder.ts @@ -458,7 +458,8 @@ export class Builder { requiredField(table: Offset, field: number): void { const table_start = this.bb.capacity() - table; const vtable_start = table_start - this.bb.readInt32(table_start); - const ok = this.bb.readInt16(vtable_start + field) != 0; + const ok = field < this.bb.readInt16(vtable_start) && + this.bb.readInt16(vtable_start + field) != 0; // If this fails, the caller will show what field needs to be set. if (!ok) { From 4e75867bd2ad0f1c01aa5457713264a48d87339e Mon Sep 17 00:00:00 2001 From: Ben Beasley Date: Tue, 10 Jan 2023 14:30:30 -0500 Subject: [PATCH 094/571] Stop using deprecated imp package in Python tests (#7769) It is deprecated in favour of importlib and slated for removal in Python 3.12. Since the return value of imp.find_module('numpy') is unused, the only effect of calling this function is to raise an ImportError when numpy is not available; importing numpy directly is already sufficient to do this. The imp package is still used in python/flatbuffers/compat.py, but only on Python 2, where it is not deprecated and will not be removed. Co-authored-by: Derek Bailey --- tests/py_test.py | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/tests/py_test.py b/tests/py_test.py index 672dd32017..0947adfa31 100644 --- a/tests/py_test.py +++ b/tests/py_test.py @@ -15,7 +15,6 @@ import os.path import sys -import imp PY_VERSION = sys.version_info[:2] import ctypes @@ -695,7 +694,6 @@ def asserter(stmt): ])) try: - imp.find_module('numpy') # if numpy exists, then we should be able to get the # vector as a numpy array import numpy as np @@ -1074,7 +1072,6 @@ def test_create_byte_vector(self): def test_create_numpy_vector_int8(self): try: - imp.find_module('numpy') # if numpy exists, then we should be able to get the # vector as a numpy array import numpy as np @@ -1120,7 +1117,6 @@ def test_create_numpy_vector_int8(self): def test_create_numpy_vector_uint16(self): try: - imp.find_module('numpy') # if numpy exists, then we should be able to get the # vector as a numpy array import numpy as np @@ -1174,7 +1170,6 @@ def test_create_numpy_vector_uint16(self): def test_create_numpy_vector_int64(self): try: - imp.find_module('numpy') # if numpy exists, then we should be able to get the # vector as a numpy array import numpy as np @@ -1261,7 +1256,6 @@ def test_create_numpy_vector_int64(self): def test_create_numpy_vector_float32(self): try: - imp.find_module('numpy') # if numpy exists, then we should be able to get the # vector as a numpy array import numpy as np @@ -1324,7 +1318,6 @@ def test_create_numpy_vector_float32(self): def test_create_numpy_vector_float64(self): try: - imp.find_module('numpy') # if numpy exists, then we should be able to get the # vector as a numpy array import numpy as np @@ -1411,7 +1404,6 @@ def test_create_numpy_vector_float64(self): def test_create_numpy_vector_bool(self): try: - imp.find_module('numpy') # if numpy exists, then we should be able to get the # vector as a numpy array import numpy as np @@ -1458,7 +1450,6 @@ def test_create_numpy_vector_bool(self): def test_create_numpy_vector_reject_strings(self): try: - imp.find_module('numpy') # if numpy exists, then we should be able to get the # vector as a numpy array import numpy as np @@ -1476,7 +1467,6 @@ def test_create_numpy_vector_reject_strings(self): def test_create_numpy_vector_reject_object(self): try: - imp.find_module('numpy') # if numpy exists, then we should be able to get the # vector as a numpy array import numpy as np @@ -2343,9 +2333,10 @@ def test_nondefault_monster_testnestedflatbuffer(self): self.assertEqual(2, mon2.Testnestedflatbuffer(1)) self.assertEqual(4, mon2.Testnestedflatbuffer(2)) try: - imp.find_module('numpy') # if numpy exists, then we should be able to get the # vector as a numpy array + import numpy as np + self.assertEqual([0, 2, 4], mon2.TestnestedflatbufferAsNumpy().tolist()) except ImportError: assertRaises(self, lambda: mon2.TestnestedflatbufferAsNumpy(), From 40758674b18ab4aa0800ff6883fbe5a2fd7ea728 Mon Sep 17 00:00:00 2001 From: Ben Beasley Date: Tue, 10 Jan 2023 14:36:39 -0500 Subject: [PATCH 095/571] Fix some identity/equality confusion in Python tests (#7768) Comparing short strings, small integers, and Booleans by identity (memory address) can work due to optimizations in the Python interpreter, but it is neither formally correct nor reliable. Use equality comparisons instead. Co-authored-by: Derek Bailey --- tests/py_test.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/py_test.py b/tests/py_test.py index 0947adfa31..dc7b734b52 100644 --- a/tests/py_test.py +++ b/tests/py_test.py @@ -194,13 +194,13 @@ def test_default_values_with_pack_and_unpack(self): self.assertEqual(monster2.InventoryAsNumpy(), 0) self.assertEqual(monster2.InventoryLength(), 0) self.assertTrue(monster2.InventoryIsNone()) - self.assertTrue(monster2.Color() is 8) + self.assertEqual(monster2.Color(), 8) self.assertEqual(monster2.TestType(), 0) self.assertTrue(monster2.Test() is None) self.assertTrue(monster2.Test4(0) is None) self.assertEqual(monster2.Test4Length(), 0) self.assertTrue(monster2.Test4IsNone()) - self.assertTrue(monster2.Testarrayofstring(0) is '') + self.assertEqual(monster2.Testarrayofstring(0), '') self.assertEqual(monster2.TestarrayofstringLength(), 0) self.assertTrue(monster2.TestarrayofstringIsNone()) self.assertTrue(monster2.Testarrayoftables(0) is None) @@ -212,7 +212,7 @@ def test_default_values_with_pack_and_unpack(self): self.assertEqual(monster2.TestnestedflatbufferLength(), 0) self.assertTrue(monster2.TestnestedflatbufferIsNone()) self.assertTrue(monster2.Testempty() is None) - self.assertTrue(monster2.Testbool() is False) + self.assertFalse(monster2.Testbool()) self.assertEqual(monster2.Testhashs32Fnv1(), 0) self.assertEqual(monster2.Testhashu32Fnv1(), 0) self.assertEqual(monster2.Testhashs64Fnv1(), 0) @@ -228,7 +228,7 @@ def test_default_values_with_pack_and_unpack(self): self.assertEqual(monster2.Testf(), 3.14159) self.assertEqual(monster2.Testf2(), 3.0) self.assertEqual(monster2.Testf3(), 0.0) - self.assertTrue(monster2.Testarrayofstring2(0) is '') + self.assertEqual(monster2.Testarrayofstring2(0), '') self.assertEqual(monster2.Testarrayofstring2Length(), 0) self.assertTrue(monster2.Testarrayofstring2IsNone()) self.assertTrue(monster2.Testarrayofsortedstruct(0) is None) From 62e4d2e5b2152a0936a4df7bf585ee3ffcaca4c6 Mon Sep 17 00:00:00 2001 From: Saman <100295082+enum-class@users.noreply.github.com> Date: Wed, 11 Jan 2023 04:04:25 +0800 Subject: [PATCH 096/571] Fix binary output different in different platform (#7718) * Fix binary output different in different platform, due to the nan serialization * Add check generated code on windows ci * Remove resdundant script * Fix eof, and check script * Minor bug in gen code script * Fix windows script, remove redundant scripts * Undelete redundante codes * Fix github action * Ignore eof generate grpc Co-authored-by: Derek Bailey --- .github/workflows/build.yml | 16 ++++++++ include/flatbuffers/util.h | 2 + scripts/check-grpc-generated-code.py | 2 +- scripts/check_generate_code.py | 4 +- scripts/generate_code.py | 58 +--------------------------- scripts/generate_grpc_examples.py | 2 +- scripts/util.py | 37 +++++++++++++----- 7 files changed, 52 insertions(+), 69 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 60832d1289..24d4030df9 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -343,6 +343,22 @@ jobs: - name: Generate gRPC run: scripts/check-grpc-generated-code.py + build-generator-windows: + name: Check Generated Code on Windows + runs-on: windows-2019 + steps: + - uses: actions/checkout@v3 + - name: Add msbuild to PATH + uses: microsoft/setup-msbuild@v1.1 + - name: cmake + run: cmake -G "Visual Studio 16 2019" -A x64 -DCMAKE_BUILD_TYPE=Release -DFLATBUFFERS_BUILD_CPP17=ON -DFLATBUFFERS_STRICT_MODE=ON . + - name: build + run: msbuild.exe FlatBuffers.sln /p:Configuration=Release /p:Platform=x64 + - name: Generate + run: python3 scripts/check_generate_code.py --flatc Release\flatc.exe + - name: Generate gRPC + run: python3 scripts/check-grpc-generated-code.py --flatc Release\flatc.exe + build-benchmarks: name: Build Benchmarks (on Linux) runs-on: ubuntu-latest diff --git a/include/flatbuffers/util.h b/include/flatbuffers/util.h index 74edbce467..6d0cd2c0c4 100644 --- a/include/flatbuffers/util.h +++ b/include/flatbuffers/util.h @@ -31,6 +31,7 @@ # include #endif // FLATBUFFERS_PREFER_PRINTF +#include #include #include @@ -313,6 +314,7 @@ inline bool StringToFloatImpl(T *val, const char *const str) { strtoval_impl(val, str, const_cast(&end)); auto done = (end != str) && (*end == '\0'); if (!done) *val = 0; // erase partial result + if (done && std::isnan(*val)) { *val = std::numeric_limits::quiet_NaN(); } return done; } diff --git a/scripts/check-grpc-generated-code.py b/scripts/check-grpc-generated-code.py index c9a43837a3..25b4331e25 100755 --- a/scripts/check-grpc-generated-code.py +++ b/scripts/check-grpc-generated-code.py @@ -29,7 +29,7 @@ print("Generating GRPC code...") generate_grpc_examples.GenerateGRPCExamples() -result = subprocess.run(["git", "diff", "--quiet"], cwd=root_path) +result = subprocess.run(["git", "diff", "--quiet", "--ignore-cr-at-eol"], cwd=root_path) if result.returncode != 0: print( diff --git a/scripts/check_generate_code.py b/scripts/check_generate_code.py index 038dc4e530..aa66734c9b 100755 --- a/scripts/check_generate_code.py +++ b/scripts/check_generate_code.py @@ -26,7 +26,7 @@ # Get the root path as an absolute path, so all derived paths are absolute. root_path = script_path.parent.absolute() -result = subprocess.run(["git", "diff", "--quiet"], cwd=root_path) +result = subprocess.run(["git", "diff", "--quiet", "--ignore-cr-at-eol"], cwd=root_path) if result.returncode != 0: print( @@ -46,7 +46,7 @@ gen_cmd = ["py"] + gen_cmd subprocess.run(gen_cmd, cwd=root_path) -result = subprocess.run(["git", "diff", "--quiet"], cwd=root_path) +result = subprocess.run(["git", "diff", "--quiet", "--ignore-cr-at-eol"], cwd=root_path) if result.returncode != 0: print( diff --git a/scripts/generate_code.py b/scripts/generate_code.py index 1e29d755f2..1a622ab8a1 100755 --- a/scripts/generate_code.py +++ b/scripts/generate_code.py @@ -14,73 +14,19 @@ # See the License for the specific language governing permissions and # limitations under the License. -import argparse import filecmp import glob -import platform import shutil import subprocess import generate_grpc_examples from pathlib import Path - -parser = argparse.ArgumentParser() -parser.add_argument( - "--flatc", - help="path of the Flat C compiler relative to the root directory", -) -parser.add_argument("--cpp-0x", action="store_true", help="use --cpp-std c++ox") -parser.add_argument( - "--skip-monster-extra", - action="store_true", - help="skip generating tests involving monster_extra.fbs", -) -parser.add_argument( - "--skip-gen-reflection", - action="store_true", - help="skip generating the reflection.fbs files", -) -args = parser.parse_args() - -# Get the path where this script is located so we can invoke the script from -# any directory and have the paths work correctly. -script_path = Path(__file__).parent.resolve() - -# Get the root path as an absolute path, so all derived paths are absolute. -root_path = script_path.parent.absolute() - -# Get the location of the flatc executable, reading from the first command line -# argument or defaulting to default names. -flatc_exe = Path( - ("flatc" if not platform.system() == "Windows" else "flatc.exe") - if not args.flatc - else args.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) +from util import flatc, root_path, tests_path, args, flatc_path # Specify the other paths that will be referenced -tests_path = Path(root_path, "tests") swift_code_gen = Path(root_path, "tests/swift/tests/CodeGenerationTests") samples_path = Path(root_path, "samples") reflection_path = Path(root_path, "reflection") -# Execute the flatc compiler with the specified parameters -def flatc(options, schema, prefix=None, include=None, data=None, cwd=tests_path): - 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 - result = subprocess.run(cmd, cwd=str(cwd), check=True) - - # Generate the code for flatbuffers reflection schema def flatc_reflection(options, location, target): full_options = ["--no-prefix"] + options @@ -150,7 +96,7 @@ def glob(path, pattern): "--swift", "--gen-json-emit", "--bfbs-filenames", - swift_code_gen + str(swift_code_gen) ] JAVA_OPTS = ["--java"] KOTLIN_OPTS = ["--kotlin"] diff --git a/scripts/generate_grpc_examples.py b/scripts/generate_grpc_examples.py index c5dbba51e9..2192619d39 100755 --- a/scripts/generate_grpc_examples.py +++ b/scripts/generate_grpc_examples.py @@ -19,7 +19,7 @@ grpc_examples_path = Path(root_path, "grpc/examples") -greeter_schema = Path(grpc_examples_path, "greeter.fbs") +greeter_schema = str(Path(grpc_examples_path, "greeter.fbs")) COMMON_ARGS = [ "--grpc", diff --git a/scripts/util.py b/scripts/util.py index 365ba2de98..5df9531cbc 100644 --- a/scripts/util.py +++ b/scripts/util.py @@ -12,20 +12,44 @@ # See the License for the specific language governing permissions and # limitations under the License. +import argparse import platform import subprocess from pathlib import Path +parser = argparse.ArgumentParser() +parser.add_argument( + "--flatc", + help="path of the Flat C compiler relative to the root directory", +) +parser.add_argument("--cpp-0x", action="store_true", help="use --cpp-std c++ox") +parser.add_argument( + "--skip-monster-extra", + action="store_true", + help="skip generating tests involving monster_extra.fbs", +) +parser.add_argument( + "--skip-gen-reflection", + action="store_true", + help="skip generating the reflection.fbs files", +) +args = parser.parse_args() + # Get the path where this script is located so we can invoke the script from # any directory and have the paths work correctly. script_path = Path(__file__).parent.resolve() # Get the root path as an absolute path, so all derived paths are absolute. root_path = script_path.parent.absolute() +tests_path = Path(root_path, "tests") # Get the location of the flatc executable, reading from the first command line # argument or defaulting to default names. -flatc_exe = Path("flatc" if not platform.system() == "Windows" else "flatc.exe") +flatc_exe = Path( + ("flatc" if not platform.system() == "Windows" else "flatc.exe") + if not args.flatc + else args.flatc +) # Find and assert flatc compiler is present. if root_path in flatc_exe.parents: @@ -34,18 +58,13 @@ assert flatc_path.exists(), "Cannot find the flatc compiler " + str(flatc_path) # Execute the flatc compiler with the specified parameters -def flatc(options, schema, prefix=None, include=None, data=None, cwd=root_path): +def flatc(options, schema, prefix=None, include=None, data=None, cwd=tests_path): cmd = [str(flatc_path)] + options if prefix: cmd += ["-o"] + [prefix] if include: cmd += ["-I"] + [include] - if isinstance(schema, Path): - cmd += [str(schema)] - elif isinstance(schema, str): - cmd += [schema] - else: - cmd += schema + cmd += [schema] if isinstance(schema, str) else schema if data: cmd += [data] if isinstance(data, str) else data - return subprocess.check_call(cmd, cwd=str(cwd)) + result = subprocess.run(cmd, cwd=str(cwd), check=True) From 81799203f111fb65ade3aebcc895d33feea9180f Mon Sep 17 00:00:00 2001 From: Michael Le Date: Wed, 18 Jan 2023 23:40:50 -0800 Subject: [PATCH 097/571] Remove go.mod to resolve ambiguous import issue (#7783) --- go/go.mod | 3 --- 1 file changed, 3 deletions(-) delete mode 100644 go/go.mod diff --git a/go/go.mod b/go/go.mod deleted file mode 100644 index ac07b0db4a..0000000000 --- a/go/go.mod +++ /dev/null @@ -1,3 +0,0 @@ -module github.com/google/flatbuffers/go - -go 1.19 From 991b39edbe437a8ee0ebefe815387a05004d5486 Mon Sep 17 00:00:00 2001 From: liu Date: Thu, 19 Jan 2023 15:48:09 +0800 Subject: [PATCH 098/571] Use CMAKE_CURRENT_SOURCE_DIR in benchmark cpp path (#7781) Co-authored-by: Derek Bailey --- benchmarks/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/benchmarks/CMakeLists.txt b/benchmarks/CMakeLists.txt index 272a2b7b6c..2842d60d92 100644 --- a/benchmarks/CMakeLists.txt +++ b/benchmarks/CMakeLists.txt @@ -27,7 +27,7 @@ FetchContent_MakeAvailable( googlebenchmark ) -set(CPP_BENCH_DIR cpp) +set(CPP_BENCH_DIR ${CMAKE_CURRENT_SOURCE_DIR}/cpp) set(CPP_FB_BENCH_DIR ${CPP_BENCH_DIR}/flatbuffers) set(CPP_RAW_BENCH_DIR ${CPP_BENCH_DIR}/raw) set(CPP_BENCH_FBS ${CPP_FB_BENCH_DIR}/bench.fbs) From 1703662285f5b2a2ee1a151b17755fd709ad2e13 Mon Sep 17 00:00:00 2001 From: Michael Le Date: Sat, 21 Jan 2023 12:03:17 -0800 Subject: [PATCH 099/571] Flatbuffers Version 23.1.20 (#7794) * Flatbuffers Version 23.1.20 * Fix warnings * Fix warnings --- CHANGELOG.md | 4 +++ CMake/Version.cmake | 2 +- FlatBuffers.podspec | 2 +- .../main/java/generated/com/fbs/app/Animal.kt | 2 +- dart/pubspec.yaml | 2 +- .../Sources/Model/greeter_generated.swift | 4 +-- include/flatbuffers/base.h | 2 +- include/flatbuffers/reflection_generated.h | 2 +- .../com/google/flatbuffers/Constants.java | 2 +- net/FlatBuffers/FlatBufferConstants.cs | 2 +- net/FlatBuffers/Google.FlatBuffers.csproj | 2 +- package.json | 2 +- python/flatbuffers/_version.py | 2 +- python/setup.py | 2 +- rust/flatbuffers/Cargo.toml | 2 +- samples/monster_generated.h | 2 +- samples/monster_generated.swift | 8 ++--- src/annotated_binary_text_gen.cpp | 6 ++-- src/binary_annotator.h | 4 +-- src/idl_gen_csharp.cpp | 2 +- src/idl_gen_java.cpp | 2 +- src/idl_gen_kotlin.cpp | 2 +- src/idl_gen_swift.cpp | 2 +- swift/Sources/FlatBuffers/Constants.swift | 2 +- tests/Abc.nim | 2 +- tests/DictionaryLookup/LongFloatEntry.java | 2 +- tests/DictionaryLookup/LongFloatEntry.kt | 2 +- tests/DictionaryLookup/LongFloatMap.java | 2 +- tests/DictionaryLookup/LongFloatMap.kt | 2 +- tests/KeywordTest/KeywordsInTable.cs | 2 +- tests/KeywordTest/Table2.cs | 2 +- tests/MoreDefaults.nim | 2 +- tests/MyGame/Example/Ability.lua | 2 +- tests/MyGame/Example/Ability.nim | 2 +- tests/MyGame/Example/Any.lua | 2 +- tests/MyGame/Example/Any.nim | 2 +- tests/MyGame/Example/AnyAmbiguousAliases.lua | 2 +- tests/MyGame/Example/AnyAmbiguousAliases.nim | 2 +- tests/MyGame/Example/AnyUniqueAliases.lua | 2 +- tests/MyGame/Example/AnyUniqueAliases.nim | 2 +- tests/MyGame/Example/ArrayTable.cs | 2 +- tests/MyGame/Example/ArrayTable.java | 2 +- tests/MyGame/Example/Color.lua | 2 +- tests/MyGame/Example/Color.nim | 2 +- tests/MyGame/Example/LongEnum.lua | 2 +- tests/MyGame/Example/LongEnum.nim | 2 +- tests/MyGame/Example/Monster.cs | 2 +- tests/MyGame/Example/Monster.java | 2 +- tests/MyGame/Example/Monster.kt | 2 +- tests/MyGame/Example/Monster.lua | 2 +- tests/MyGame/Example/Monster.nim | 2 +- tests/MyGame/Example/Race.lua | 2 +- tests/MyGame/Example/Race.nim | 2 +- tests/MyGame/Example/Referrable.cs | 2 +- tests/MyGame/Example/Referrable.java | 2 +- tests/MyGame/Example/Referrable.kt | 2 +- tests/MyGame/Example/Referrable.lua | 2 +- tests/MyGame/Example/Referrable.nim | 2 +- tests/MyGame/Example/Stat.cs | 2 +- tests/MyGame/Example/Stat.java | 2 +- tests/MyGame/Example/Stat.kt | 2 +- tests/MyGame/Example/Stat.lua | 2 +- tests/MyGame/Example/Stat.nim | 2 +- tests/MyGame/Example/StructOfStructs.lua | 2 +- tests/MyGame/Example/StructOfStructs.nim | 2 +- .../Example/StructOfStructsOfStructs.lua | 2 +- .../Example/StructOfStructsOfStructs.nim | 2 +- tests/MyGame/Example/Test.lua | 2 +- tests/MyGame/Example/Test.nim | 2 +- .../MyGame/Example/TestSimpleTableWithEnum.cs | 2 +- .../Example/TestSimpleTableWithEnum.java | 2 +- .../MyGame/Example/TestSimpleTableWithEnum.kt | 2 +- .../Example/TestSimpleTableWithEnum.lua | 2 +- .../Example/TestSimpleTableWithEnum.nim | 2 +- tests/MyGame/Example/TypeAliases.cs | 2 +- tests/MyGame/Example/TypeAliases.java | 2 +- tests/MyGame/Example/TypeAliases.kt | 2 +- tests/MyGame/Example/TypeAliases.lua | 2 +- tests/MyGame/Example/TypeAliases.nim | 2 +- tests/MyGame/Example/Vec3.lua | 2 +- tests/MyGame/Example/Vec3.nim | 2 +- tests/MyGame/Example2/Monster.cs | 2 +- tests/MyGame/Example2/Monster.java | 2 +- tests/MyGame/Example2/Monster.kt | 2 +- tests/MyGame/Example2/Monster.lua | 2 +- tests/MyGame/Example2/Monster.nim | 2 +- tests/MyGame/InParentNamespace.cs | 2 +- tests/MyGame/InParentNamespace.java | 2 +- tests/MyGame/InParentNamespace.kt | 2 +- tests/MyGame/InParentNamespace.lua | 2 +- tests/MyGame/InParentNamespace.nim | 2 +- tests/MyGame/MonsterExtra.cs | 2 +- tests/MyGame/MonsterExtra.java | 2 +- tests/MyGame/MonsterExtra.kt | 2 +- tests/MyGame/OtherNameSpace/FromInclude.lua | 2 +- tests/MyGame/OtherNameSpace/FromInclude.nim | 2 +- tests/MyGame/OtherNameSpace/TableB.lua | 2 +- tests/MyGame/OtherNameSpace/TableB.nim | 2 +- tests/MyGame/OtherNameSpace/Unused.lua | 2 +- tests/MyGame/OtherNameSpace/Unused.nim | 2 +- tests/Property.nim | 2 +- tests/TableA.lua | 2 +- tests/TableA.nim | 2 +- tests/TestMutatingBool.nim | 2 +- tests/alignment_test_generated.h | 2 +- tests/arrays_test_generated.h | 2 +- .../generated_cpp17/monster_test_generated.h | 2 +- .../optional_scalars_generated.h | 2 +- .../generated_cpp17/union_vector_generated.h | 2 +- tests/evolution_test/evolution_v1_generated.h | 2 +- tests/evolution_test/evolution_v2_generated.h | 2 +- tests/key_field/key_field_sample_generated.h | 2 +- tests/monster_extra_generated.h | 2 +- tests/monster_test_bfbs_generated.h | 2 +- tests/monster_test_generated.h | 2 +- .../ext_only/monster_test_generated.hpp | 2 +- .../filesuffix_only/monster_test_suffix.h | 2 +- .../monster_test_suffix.hpp | 2 +- .../NamespaceA/NamespaceB/TableInNestedNS.cs | 2 +- .../NamespaceB/TableInNestedNS.java | 2 +- .../NamespaceA/NamespaceB/TableInNestedNS.kt | 2 +- .../NamespaceA/SecondTableInA.cs | 2 +- .../NamespaceA/SecondTableInA.java | 2 +- .../NamespaceA/SecondTableInA.kt | 2 +- .../NamespaceA/TableInFirstNS.cs | 2 +- .../NamespaceA/TableInFirstNS.java | 2 +- .../NamespaceA/TableInFirstNS.kt | 2 +- tests/namespace_test/NamespaceC/TableInC.cs | 2 +- tests/namespace_test/NamespaceC/TableInC.java | 2 +- tests/namespace_test/NamespaceC/TableInC.kt | 2 +- .../namespace_test1_generated.h | 2 +- .../namespace_test2_generated.h | 2 +- tests/native_inline_table_test_generated.h | 2 +- tests/native_type_test_generated.h | 2 +- .../nested_namespace_test3_generated.cs | 2 +- tests/optional_scalars/OptionalByte.nim | 2 +- tests/optional_scalars/ScalarStuff.cs | 2 +- tests/optional_scalars/ScalarStuff.java | 2 +- tests/optional_scalars/ScalarStuff.kt | 2 +- tests/optional_scalars/ScalarStuff.nim | 2 +- tests/optional_scalars_generated.h | 2 +- .../monster_test_generated.swift | 34 +++++++++---------- .../test_import_generated.swift | 2 +- .../test_no_include_generated.swift | 8 ++--- .../SwiftFlatBuffers/fuzzer_generated.swift | 10 +++--- .../MutatingBool_generated.swift | 6 ++-- .../monster_test_generated.swift | 34 +++++++++---------- .../more_defaults_generated.swift | 2 +- .../nan_inf_test_generated.swift | 2 +- .../optional_scalars_generated.swift | 2 +- .../union_vector_generated.swift | 18 +++++----- .../vector_has_test_generated.swift | 2 +- tests/type_field_collsion/Collision.cs | 2 +- .../union_value_collision_generated.cs | 4 +-- tests/union_vector/Attacker.cs | 2 +- tests/union_vector/Attacker.java | 2 +- tests/union_vector/Attacker.kt | 2 +- tests/union_vector/HandFan.cs | 2 +- tests/union_vector/HandFan.java | 2 +- tests/union_vector/HandFan.kt | 2 +- tests/union_vector/Movie.cs | 2 +- tests/union_vector/Movie.java | 2 +- tests/union_vector/Movie.kt | 2 +- tests/union_vector/union_vector_generated.h | 2 +- 164 files changed, 224 insertions(+), 220 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 612af432e6..80cb6de1d1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,10 @@ All major or breaking changes will be documented in this file, as well as any new features that should be highlighted. Minor fixes or improvements are not necessarily listed. +## [23.1.20 (Jan 20 2023)](https://github.com/google/flatbuffers/releases/tag/v23.1.20) + +* Removed go.mod files after some versioning issues were being report ([#7780](https://github.com/google/flatbuffers/issues/7780)). + ## [23.1.4 (Jan 4 2023)](https://github.com/google/flatbuffers/releases/tag/v23.1.4) * Major release! Just kidding, we are continuing the diff --git a/CMake/Version.cmake b/CMake/Version.cmake index d0295379b0..bd21f262c5 100644 --- a/CMake/Version.cmake +++ b/CMake/Version.cmake @@ -1,6 +1,6 @@ set(VERSION_MAJOR 23) set(VERSION_MINOR 1) -set(VERSION_PATCH 4) +set(VERSION_PATCH 20) set(VERSION_COMMIT 0) if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/.git") diff --git a/FlatBuffers.podspec b/FlatBuffers.podspec index d2b4be20a3..4c21d345bf 100644 --- a/FlatBuffers.podspec +++ b/FlatBuffers.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = 'FlatBuffers' - s.version = '23.1.4' + s.version = '23.1.20' s.summary = 'FlatBuffers: Memory Efficient Serialization Library' s.description = "FlatBuffers is a cross platform serialization library architected for diff --git a/android/app/src/main/java/generated/com/fbs/app/Animal.kt b/android/app/src/main/java/generated/com/fbs/app/Animal.kt index 7e5db153e5..9492e24723 100644 --- a/android/app/src/main/java/generated/com/fbs/app/Animal.kt +++ b/android/app/src/main/java/generated/com/fbs/app/Animal.kt @@ -48,7 +48,7 @@ class Animal : Table() { return if(o != 0) bb.getShort(o + bb_pos).toUShort() else 0u } companion object { - fun validateVersion() = Constants.FLATBUFFERS_23_1_4() + fun validateVersion() = Constants.FLATBUFFERS_23_1_20() fun getRootAsAnimal(_bb: ByteBuffer): Animal = getRootAsAnimal(_bb, Animal()) fun getRootAsAnimal(_bb: ByteBuffer, obj: Animal): Animal { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/dart/pubspec.yaml b/dart/pubspec.yaml index 04a5e68d00..147eab1bb4 100644 --- a/dart/pubspec.yaml +++ b/dart/pubspec.yaml @@ -1,5 +1,5 @@ name: flat_buffers -version: 23.1.4 +version: 23.1.20 description: FlatBuffers reading and writing library for Dart. Based on original work by Konstantin Scheglov and Paul Berry of the Dart SDK team. homepage: https://github.com/google/flatbuffers documentation: https://google.github.io/flatbuffers/index.html diff --git a/grpc/examples/swift/Greeter/Sources/Model/greeter_generated.swift b/grpc/examples/swift/Greeter/Sources/Model/greeter_generated.swift index 4097defca1..ffeb405083 100644 --- a/grpc/examples/swift/Greeter/Sources/Model/greeter_generated.swift +++ b/grpc/examples/swift/Greeter/Sources/Model/greeter_generated.swift @@ -6,7 +6,7 @@ import FlatBuffers public struct models_HelloReply: FlatBufferObject, Verifiable { - static func validateVersion() { FlatBuffersVersion_23_1_4() } + static func validateVersion() { FlatBuffersVersion_23_1_20() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -53,7 +53,7 @@ extension models_HelloReply: Encodable { public struct models_HelloRequest: FlatBufferObject, Verifiable { - static func validateVersion() { FlatBuffersVersion_23_1_4() } + static func validateVersion() { FlatBuffersVersion_23_1_20() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table diff --git a/include/flatbuffers/base.h b/include/flatbuffers/base.h index 816a26d702..4d101c82e3 100644 --- a/include/flatbuffers/base.h +++ b/include/flatbuffers/base.h @@ -140,7 +140,7 @@ #define FLATBUFFERS_VERSION_MAJOR 23 #define FLATBUFFERS_VERSION_MINOR 1 -#define FLATBUFFERS_VERSION_REVISION 4 +#define FLATBUFFERS_VERSION_REVISION 20 #define FLATBUFFERS_STRING_EXPAND(X) #X #define FLATBUFFERS_STRING(X) FLATBUFFERS_STRING_EXPAND(X) namespace flatbuffers { diff --git a/include/flatbuffers/reflection_generated.h b/include/flatbuffers/reflection_generated.h index 6581c865c7..97cc0e5b67 100644 --- a/include/flatbuffers/reflection_generated.h +++ b/include/flatbuffers/reflection_generated.h @@ -10,7 +10,7 @@ // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && FLATBUFFERS_VERSION_MINOR == 1 && - FLATBUFFERS_VERSION_REVISION == 4, + FLATBUFFERS_VERSION_REVISION == 20, "Non-compatible flatbuffers version included"); namespace reflection { diff --git a/java/src/main/java/com/google/flatbuffers/Constants.java b/java/src/main/java/com/google/flatbuffers/Constants.java index 988e664159..f67494a0b9 100644 --- a/java/src/main/java/com/google/flatbuffers/Constants.java +++ b/java/src/main/java/com/google/flatbuffers/Constants.java @@ -46,7 +46,7 @@ public class Constants { Changes to the Java implementation need to be sure to change the version here and in the code generator on every possible incompatible change */ - public static void FLATBUFFERS_23_1_4() {} + public static void FLATBUFFERS_23_1_20() {} } /// @endcond diff --git a/net/FlatBuffers/FlatBufferConstants.cs b/net/FlatBuffers/FlatBufferConstants.cs index aa7312e1a5..20b319e6e5 100644 --- a/net/FlatBuffers/FlatBufferConstants.cs +++ b/net/FlatBuffers/FlatBufferConstants.cs @@ -32,6 +32,6 @@ the runtime and generated code are modified in sync. Changes to the C# implementation need to be sure to change the version here and in the code generator on every possible incompatible change */ - public static void FLATBUFFERS_23_1_4() {} + public static void FLATBUFFERS_23_1_20() {} } } diff --git a/net/FlatBuffers/Google.FlatBuffers.csproj b/net/FlatBuffers/Google.FlatBuffers.csproj index 957b3cca03..c5fcb7f85a 100644 --- a/net/FlatBuffers/Google.FlatBuffers.csproj +++ b/net/FlatBuffers/Google.FlatBuffers.csproj @@ -3,7 +3,7 @@ netstandard2.1;netstandard2.0;net46 A cross-platform memory efficient serialization library - 23.1.4 + 23.1.20 Google LLC https://github.com/google/flatbuffers https://github.com/google/flatbuffers diff --git a/package.json b/package.json index a642fbd53d..1282dbe881 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "flatbuffers", - "version": "23.1.4", + "version": "23.1.20", "description": "Memory Efficient Serialization Library", "files": [ "js/**/*.js", diff --git a/python/flatbuffers/_version.py b/python/flatbuffers/_version.py index 05edb88818..12993c2fdf 100644 --- a/python/flatbuffers/_version.py +++ b/python/flatbuffers/_version.py @@ -14,4 +14,4 @@ # Placeholder, to be updated during the release process # by the setup.py -__version__ = u"23.1.4" +__version__ = u"23.1.20" diff --git a/python/setup.py b/python/setup.py index 890ef749e7..09e7aa69cc 100644 --- a/python/setup.py +++ b/python/setup.py @@ -16,7 +16,7 @@ setup( name='flatbuffers', - version='23.1.4', + version='23.1.20', license='Apache 2.0', license_files='../LICENSE.txt', author='Derek Bailey', diff --git a/rust/flatbuffers/Cargo.toml b/rust/flatbuffers/Cargo.toml index fd363fcb57..73e814ee00 100644 --- a/rust/flatbuffers/Cargo.toml +++ b/rust/flatbuffers/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "flatbuffers" -version = "23.1.4" +version = "23.1.20" edition = "2018" authors = ["Robert Winslow ", "FlatBuffers Maintainers"] license = "Apache-2.0" diff --git a/samples/monster_generated.h b/samples/monster_generated.h index 1cf8e7a1b5..fde1bbc15a 100644 --- a/samples/monster_generated.h +++ b/samples/monster_generated.h @@ -10,7 +10,7 @@ // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && FLATBUFFERS_VERSION_MINOR == 1 && - FLATBUFFERS_VERSION_REVISION == 4, + FLATBUFFERS_VERSION_REVISION == 20, "Non-compatible flatbuffers version included"); namespace MyGame { diff --git a/samples/monster_generated.swift b/samples/monster_generated.swift index 3be230371e..ca32460e45 100644 --- a/samples/monster_generated.swift +++ b/samples/monster_generated.swift @@ -36,7 +36,7 @@ public enum MyGame_Sample_Equipment: UInt8, UnionEnum { public struct MyGame_Sample_Vec3: NativeStruct, Verifiable, FlatbuffersInitializable { - static func validateVersion() { FlatBuffersVersion_23_1_4() } + static func validateVersion() { FlatBuffersVersion_23_1_20() } private var _x: Float32 private var _y: Float32 @@ -72,7 +72,7 @@ public struct MyGame_Sample_Vec3: NativeStruct, Verifiable, FlatbuffersInitializ public struct MyGame_Sample_Vec3_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_23_1_4() } + static func validateVersion() { FlatBuffersVersion_23_1_20() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -88,7 +88,7 @@ public struct MyGame_Sample_Vec3_Mutable: FlatBufferObject { public struct MyGame_Sample_Monster: FlatBufferObject, Verifiable { - static func validateVersion() { FlatBuffersVersion_23_1_4() } + static func validateVersion() { FlatBuffersVersion_23_1_20() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -200,7 +200,7 @@ public struct MyGame_Sample_Monster: FlatBufferObject, Verifiable { public struct MyGame_Sample_Weapon: FlatBufferObject, Verifiable { - static func validateVersion() { FlatBuffersVersion_23_1_4() } + static func validateVersion() { FlatBuffersVersion_23_1_20() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table diff --git a/src/annotated_binary_text_gen.cpp b/src/annotated_binary_text_gen.cpp index 1c7a4dd623..9596be2144 100644 --- a/src/annotated_binary_text_gen.cpp +++ b/src/annotated_binary_text_gen.cpp @@ -278,7 +278,7 @@ static std::string GenerateDocumentation(const BinaryRegion ®ion, { std::stringstream ss; - ss << std::setw(output_config.largest_type_string) << std::left; + ss << std::setw(static_cast(output_config.largest_type_string)) << std::left; ss << GenerateTypeString(region); s += ss.str(); } @@ -293,7 +293,7 @@ static std::string GenerateDocumentation(const BinaryRegion ®ion, const std::string value = ToValueString(region, binary, output_config); std::stringstream ss; - ss << std::setw(output_config.largest_value_string) << std::left; + ss << std::setw(static_cast(output_config.largest_value_string)) << std::left; ss << value.substr(0, output_config.max_bytes_per_line); s += ss.str(); @@ -301,7 +301,7 @@ static std::string GenerateDocumentation(const BinaryRegion ®ion, value.substr(std::min(output_config.max_bytes_per_line, value.size())); } else { std::stringstream ss; - ss << std::setw(output_config.largest_value_string) << std::left; + ss << std::setw(static_cast(output_config.largest_value_string)) << std::left; ss << ToValueString(region, binary, output_config); s += ss.str(); } diff --git a/src/binary_annotator.h b/src/binary_annotator.h index bcf7dfcb12..21db19d22b 100644 --- a/src/binary_annotator.h +++ b/src/binary_annotator.h @@ -52,14 +52,14 @@ enum class BinaryRegionType { template static inline std::string ToHex(T i, size_t width = sizeof(T)) { std::stringstream stream; - stream << std::hex << std::uppercase << std::setfill('0') << std::setw(width) + stream << std::hex << std::uppercase << std::setfill('0') << std::setw(static_cast(width)) << i; return stream.str(); } // Specialized version for uint8_t that don't work well with std::hex. static inline std::string ToHex(uint8_t i) { - return ToHex(static_cast(i), 2); + return ToHex(static_cast(i), 2); } enum class BinaryRegionStatus { diff --git a/src/idl_gen_csharp.cpp b/src/idl_gen_csharp.cpp index 7f5ca07021..234ba972be 100644 --- a/src/idl_gen_csharp.cpp +++ b/src/idl_gen_csharp.cpp @@ -655,7 +655,7 @@ class CSharpGenerator : public BaseGenerator { // Force compile time error if not using the same version runtime. code += " public static void ValidateVersion() {"; code += " FlatBufferConstants."; - code += "FLATBUFFERS_23_1_4(); "; + code += "FLATBUFFERS_23_1_20(); "; code += "}\n"; // Generate a special accessor for the table that when used as the root diff --git a/src/idl_gen_java.cpp b/src/idl_gen_java.cpp index eb56e098b5..70436cf238 100644 --- a/src/idl_gen_java.cpp +++ b/src/idl_gen_java.cpp @@ -683,7 +683,7 @@ class JavaGenerator : public BaseGenerator { // Force compile time error if not using the same version runtime. code += " public static void ValidateVersion() {"; code += " Constants."; - code += "FLATBUFFERS_23_1_4(); "; + code += "FLATBUFFERS_23_1_20(); "; code += "}\n"; // Generate a special accessor for the table that when used as the root diff --git a/src/idl_gen_kotlin.cpp b/src/idl_gen_kotlin.cpp index 2cbed65233..cf05bd4e1f 100644 --- a/src/idl_gen_kotlin.cpp +++ b/src/idl_gen_kotlin.cpp @@ -524,7 +524,7 @@ class KotlinGenerator : public BaseGenerator { // runtime. GenerateFunOneLine( writer, "validateVersion", "", "", - [&]() { writer += "Constants.FLATBUFFERS_23_1_4()"; }, + [&]() { writer += "Constants.FLATBUFFERS_23_1_20()"; }, options.gen_jvmstatic); GenerateGetRootAsAccessors(namer_.Type(struct_def), writer, options); diff --git a/src/idl_gen_swift.cpp b/src/idl_gen_swift.cpp index d7d254567a..b80505d5f2 100644 --- a/src/idl_gen_swift.cpp +++ b/src/idl_gen_swift.cpp @@ -1840,7 +1840,7 @@ class SwiftGenerator : public BaseGenerator { } std::string ValidateFunc() { - return "static func validateVersion() { FlatBuffersVersion_23_1_4() }"; + return "static func validateVersion() { FlatBuffersVersion_23_1_20() }"; } std::string GenType(const Type &type, diff --git a/swift/Sources/FlatBuffers/Constants.swift b/swift/Sources/FlatBuffers/Constants.swift index d7436dd484..507307e11c 100644 --- a/swift/Sources/FlatBuffers/Constants.swift +++ b/swift/Sources/FlatBuffers/Constants.swift @@ -119,4 +119,4 @@ extension UInt64: Scalar, Verifiable { public typealias NumericValue = UInt64 } -public func FlatBuffersVersion_23_1_4() {} +public func FlatBuffersVersion_23_1_20() {} diff --git a/tests/Abc.nim b/tests/Abc.nim index feef3e1fc5..67111ec17c 100644 --- a/tests/Abc.nim +++ b/tests/Abc.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.4 + flatc version: 23.1.20 Declared by : ]# diff --git a/tests/DictionaryLookup/LongFloatEntry.java b/tests/DictionaryLookup/LongFloatEntry.java index eed8961571..dde0b25cc5 100644 --- a/tests/DictionaryLookup/LongFloatEntry.java +++ b/tests/DictionaryLookup/LongFloatEntry.java @@ -21,7 +21,7 @@ @SuppressWarnings("unused") public final class LongFloatEntry extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_23_1_4(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_1_20(); } public static LongFloatEntry getRootAsLongFloatEntry(ByteBuffer _bb) { return getRootAsLongFloatEntry(_bb, new LongFloatEntry()); } public static LongFloatEntry getRootAsLongFloatEntry(ByteBuffer _bb, LongFloatEntry obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/tests/DictionaryLookup/LongFloatEntry.kt b/tests/DictionaryLookup/LongFloatEntry.kt index 5ba11bfd58..3b4670496d 100644 --- a/tests/DictionaryLookup/LongFloatEntry.kt +++ b/tests/DictionaryLookup/LongFloatEntry.kt @@ -45,7 +45,7 @@ class LongFloatEntry : Table() { return (val_1 - val_2).sign } companion object { - fun validateVersion() = Constants.FLATBUFFERS_23_1_4() + fun validateVersion() = Constants.FLATBUFFERS_23_1_20() fun getRootAsLongFloatEntry(_bb: ByteBuffer): LongFloatEntry = getRootAsLongFloatEntry(_bb, LongFloatEntry()) fun getRootAsLongFloatEntry(_bb: ByteBuffer, obj: LongFloatEntry): LongFloatEntry { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/DictionaryLookup/LongFloatMap.java b/tests/DictionaryLookup/LongFloatMap.java index 40e2dba708..84908caa2d 100644 --- a/tests/DictionaryLookup/LongFloatMap.java +++ b/tests/DictionaryLookup/LongFloatMap.java @@ -21,7 +21,7 @@ @SuppressWarnings("unused") public final class LongFloatMap extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_23_1_4(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_1_20(); } public static LongFloatMap getRootAsLongFloatMap(ByteBuffer _bb) { return getRootAsLongFloatMap(_bb, new LongFloatMap()); } public static LongFloatMap getRootAsLongFloatMap(ByteBuffer _bb, LongFloatMap obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/tests/DictionaryLookup/LongFloatMap.kt b/tests/DictionaryLookup/LongFloatMap.kt index bb0cd3e475..35e102a555 100644 --- a/tests/DictionaryLookup/LongFloatMap.kt +++ b/tests/DictionaryLookup/LongFloatMap.kt @@ -59,7 +59,7 @@ class LongFloatMap : Table() { } } companion object { - fun validateVersion() = Constants.FLATBUFFERS_23_1_4() + fun validateVersion() = Constants.FLATBUFFERS_23_1_20() fun getRootAsLongFloatMap(_bb: ByteBuffer): LongFloatMap = getRootAsLongFloatMap(_bb, LongFloatMap()) fun getRootAsLongFloatMap(_bb: ByteBuffer, obj: LongFloatMap): LongFloatMap { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/KeywordTest/KeywordsInTable.cs b/tests/KeywordTest/KeywordsInTable.cs index 7229671baf..1da6032809 100644 --- a/tests/KeywordTest/KeywordsInTable.cs +++ b/tests/KeywordTest/KeywordsInTable.cs @@ -13,7 +13,7 @@ public struct KeywordsInTable : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_4(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_20(); } public static KeywordsInTable GetRootAsKeywordsInTable(ByteBuffer _bb) { return GetRootAsKeywordsInTable(_bb, new KeywordsInTable()); } public static KeywordsInTable GetRootAsKeywordsInTable(ByteBuffer _bb, KeywordsInTable obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/KeywordTest/Table2.cs b/tests/KeywordTest/Table2.cs index 0daa1d54a5..bad536d1b3 100644 --- a/tests/KeywordTest/Table2.cs +++ b/tests/KeywordTest/Table2.cs @@ -13,7 +13,7 @@ public struct Table2 : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_4(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_20(); } public static Table2 GetRootAsTable2(ByteBuffer _bb) { return GetRootAsTable2(_bb, new Table2()); } public static Table2 GetRootAsTable2(ByteBuffer _bb, Table2 obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/MoreDefaults.nim b/tests/MoreDefaults.nim index b8eef46106..8a441ebc15 100644 --- a/tests/MoreDefaults.nim +++ b/tests/MoreDefaults.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.4 + flatc version: 23.1.20 Declared by : ]# diff --git a/tests/MyGame/Example/Ability.lua b/tests/MyGame/Example/Ability.lua index 597f98fd4d..99413559e0 100644 --- a/tests/MyGame/Example/Ability.lua +++ b/tests/MyGame/Example/Ability.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.4 + flatc version: 23.1.20 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/Ability.nim b/tests/MyGame/Example/Ability.nim index 8055913a43..4a15f779f0 100644 --- a/tests/MyGame/Example/Ability.nim +++ b/tests/MyGame/Example/Ability.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.4 + flatc version: 23.1.20 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example/Any.lua b/tests/MyGame/Example/Any.lua index 48c33e0aaa..6991a9cb7f 100644 --- a/tests/MyGame/Example/Any.lua +++ b/tests/MyGame/Example/Any.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.4 + flatc version: 23.1.20 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/Any.nim b/tests/MyGame/Example/Any.nim index 6ee2758962..58e47c3b16 100644 --- a/tests/MyGame/Example/Any.nim +++ b/tests/MyGame/Example/Any.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.4 + flatc version: 23.1.20 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example/AnyAmbiguousAliases.lua b/tests/MyGame/Example/AnyAmbiguousAliases.lua index 8ea3ea134c..8164f70497 100644 --- a/tests/MyGame/Example/AnyAmbiguousAliases.lua +++ b/tests/MyGame/Example/AnyAmbiguousAliases.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.4 + flatc version: 23.1.20 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/AnyAmbiguousAliases.nim b/tests/MyGame/Example/AnyAmbiguousAliases.nim index 3a77474fc6..549ac47215 100644 --- a/tests/MyGame/Example/AnyAmbiguousAliases.nim +++ b/tests/MyGame/Example/AnyAmbiguousAliases.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.4 + flatc version: 23.1.20 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example/AnyUniqueAliases.lua b/tests/MyGame/Example/AnyUniqueAliases.lua index bb6d59f2bd..9edf470dad 100644 --- a/tests/MyGame/Example/AnyUniqueAliases.lua +++ b/tests/MyGame/Example/AnyUniqueAliases.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.4 + flatc version: 23.1.20 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/AnyUniqueAliases.nim b/tests/MyGame/Example/AnyUniqueAliases.nim index 4c11a1cd9b..4876163d0e 100644 --- a/tests/MyGame/Example/AnyUniqueAliases.nim +++ b/tests/MyGame/Example/AnyUniqueAliases.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.4 + flatc version: 23.1.20 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example/ArrayTable.cs b/tests/MyGame/Example/ArrayTable.cs index 98668c2c35..7cba26de6f 100644 --- a/tests/MyGame/Example/ArrayTable.cs +++ b/tests/MyGame/Example/ArrayTable.cs @@ -13,7 +13,7 @@ public struct ArrayTable : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_4(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_20(); } public static ArrayTable GetRootAsArrayTable(ByteBuffer _bb) { return GetRootAsArrayTable(_bb, new ArrayTable()); } public static ArrayTable GetRootAsArrayTable(ByteBuffer _bb, ArrayTable obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public static bool ArrayTableBufferHasIdentifier(ByteBuffer _bb) { return Table.__has_identifier(_bb, "ARRT"); } diff --git a/tests/MyGame/Example/ArrayTable.java b/tests/MyGame/Example/ArrayTable.java index 3bc791e25e..fa21aab087 100644 --- a/tests/MyGame/Example/ArrayTable.java +++ b/tests/MyGame/Example/ArrayTable.java @@ -21,7 +21,7 @@ @SuppressWarnings("unused") public final class ArrayTable extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_23_1_4(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_1_20(); } public static ArrayTable getRootAsArrayTable(ByteBuffer _bb) { return getRootAsArrayTable(_bb, new ArrayTable()); } public static ArrayTable getRootAsArrayTable(ByteBuffer _bb, ArrayTable obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public static boolean ArrayTableBufferHasIdentifier(ByteBuffer _bb) { return __has_identifier(_bb, "ARRT"); } diff --git a/tests/MyGame/Example/Color.lua b/tests/MyGame/Example/Color.lua index c44e4fd172..2f920a5a99 100644 --- a/tests/MyGame/Example/Color.lua +++ b/tests/MyGame/Example/Color.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.4 + flatc version: 23.1.20 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/Color.nim b/tests/MyGame/Example/Color.nim index 8f17105f55..364881f1a6 100644 --- a/tests/MyGame/Example/Color.nim +++ b/tests/MyGame/Example/Color.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.4 + flatc version: 23.1.20 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example/LongEnum.lua b/tests/MyGame/Example/LongEnum.lua index 393c22b384..a84fd58bf2 100644 --- a/tests/MyGame/Example/LongEnum.lua +++ b/tests/MyGame/Example/LongEnum.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.4 + flatc version: 23.1.20 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/LongEnum.nim b/tests/MyGame/Example/LongEnum.nim index 6ebeceab18..f265313489 100644 --- a/tests/MyGame/Example/LongEnum.nim +++ b/tests/MyGame/Example/LongEnum.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.4 + flatc version: 23.1.20 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example/Monster.cs b/tests/MyGame/Example/Monster.cs index f103b29e71..707a1e711e 100644 --- a/tests/MyGame/Example/Monster.cs +++ b/tests/MyGame/Example/Monster.cs @@ -14,7 +14,7 @@ public struct Monster : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_4(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_20(); } public static Monster GetRootAsMonster(ByteBuffer _bb) { return GetRootAsMonster(_bb, new Monster()); } public static Monster GetRootAsMonster(ByteBuffer _bb, Monster obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public static bool MonsterBufferHasIdentifier(ByteBuffer _bb) { return Table.__has_identifier(_bb, "MONS"); } diff --git a/tests/MyGame/Example/Monster.java b/tests/MyGame/Example/Monster.java index 82f472eb90..68e89778b3 100644 --- a/tests/MyGame/Example/Monster.java +++ b/tests/MyGame/Example/Monster.java @@ -24,7 +24,7 @@ */ @SuppressWarnings("unused") public final class Monster extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_23_1_4(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_1_20(); } public static Monster getRootAsMonster(ByteBuffer _bb) { return getRootAsMonster(_bb, new Monster()); } public static Monster getRootAsMonster(ByteBuffer _bb, Monster obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public static boolean MonsterBufferHasIdentifier(ByteBuffer _bb) { return __has_identifier(_bb, "MONS"); } diff --git a/tests/MyGame/Example/Monster.kt b/tests/MyGame/Example/Monster.kt index 9d547fe49e..83e6881d67 100644 --- a/tests/MyGame/Example/Monster.kt +++ b/tests/MyGame/Example/Monster.kt @@ -1003,7 +1003,7 @@ class Monster : Table() { return compareStrings(__offset(10, o1, _bb), __offset(10, o2, _bb), _bb) } companion object { - fun validateVersion() = Constants.FLATBUFFERS_23_1_4() + fun validateVersion() = Constants.FLATBUFFERS_23_1_20() fun getRootAsMonster(_bb: ByteBuffer): Monster = getRootAsMonster(_bb, Monster()) fun getRootAsMonster(_bb: ByteBuffer, obj: Monster): Monster { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/MyGame/Example/Monster.lua b/tests/MyGame/Example/Monster.lua index 266bbf44de..664388f379 100644 --- a/tests/MyGame/Example/Monster.lua +++ b/tests/MyGame/Example/Monster.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.4 + flatc version: 23.1.20 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/Monster.nim b/tests/MyGame/Example/Monster.nim index 78b62de167..47188a70b0 100644 --- a/tests/MyGame/Example/Monster.nim +++ b/tests/MyGame/Example/Monster.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.4 + flatc version: 23.1.20 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example/Race.lua b/tests/MyGame/Example/Race.lua index c3898b39a9..81eb469d5f 100644 --- a/tests/MyGame/Example/Race.lua +++ b/tests/MyGame/Example/Race.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.4 + flatc version: 23.1.20 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/Race.nim b/tests/MyGame/Example/Race.nim index 09be510eb9..6a36b2eb97 100644 --- a/tests/MyGame/Example/Race.nim +++ b/tests/MyGame/Example/Race.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.4 + flatc version: 23.1.20 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example/Referrable.cs b/tests/MyGame/Example/Referrable.cs index 7e558d2ef0..cbad13c2b9 100644 --- a/tests/MyGame/Example/Referrable.cs +++ b/tests/MyGame/Example/Referrable.cs @@ -13,7 +13,7 @@ public struct Referrable : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_4(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_20(); } public static Referrable GetRootAsReferrable(ByteBuffer _bb) { return GetRootAsReferrable(_bb, new Referrable()); } public static Referrable GetRootAsReferrable(ByteBuffer _bb, Referrable obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/MyGame/Example/Referrable.java b/tests/MyGame/Example/Referrable.java index 32a71932bc..8f8cd67c15 100644 --- a/tests/MyGame/Example/Referrable.java +++ b/tests/MyGame/Example/Referrable.java @@ -21,7 +21,7 @@ @SuppressWarnings("unused") public final class Referrable extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_23_1_4(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_1_20(); } public static Referrable getRootAsReferrable(ByteBuffer _bb) { return getRootAsReferrable(_bb, new Referrable()); } public static Referrable getRootAsReferrable(ByteBuffer _bb, Referrable obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/tests/MyGame/Example/Referrable.kt b/tests/MyGame/Example/Referrable.kt index 9d4d2e6a95..922523f554 100644 --- a/tests/MyGame/Example/Referrable.kt +++ b/tests/MyGame/Example/Referrable.kt @@ -49,7 +49,7 @@ class Referrable : Table() { return (val_1 - val_2).sign } companion object { - fun validateVersion() = Constants.FLATBUFFERS_23_1_4() + fun validateVersion() = Constants.FLATBUFFERS_23_1_20() fun getRootAsReferrable(_bb: ByteBuffer): Referrable = getRootAsReferrable(_bb, Referrable()) fun getRootAsReferrable(_bb: ByteBuffer, obj: Referrable): Referrable { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/MyGame/Example/Referrable.lua b/tests/MyGame/Example/Referrable.lua index 85441cec6c..2dc2fd7176 100644 --- a/tests/MyGame/Example/Referrable.lua +++ b/tests/MyGame/Example/Referrable.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.4 + flatc version: 23.1.20 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/Referrable.nim b/tests/MyGame/Example/Referrable.nim index ade809b92b..b6d83034b5 100644 --- a/tests/MyGame/Example/Referrable.nim +++ b/tests/MyGame/Example/Referrable.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.4 + flatc version: 23.1.20 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example/Stat.cs b/tests/MyGame/Example/Stat.cs index 8ce5429217..f19a4fdd7f 100644 --- a/tests/MyGame/Example/Stat.cs +++ b/tests/MyGame/Example/Stat.cs @@ -13,7 +13,7 @@ public struct Stat : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_4(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_20(); } public static Stat GetRootAsStat(ByteBuffer _bb) { return GetRootAsStat(_bb, new Stat()); } public static Stat GetRootAsStat(ByteBuffer _bb, Stat obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/MyGame/Example/Stat.java b/tests/MyGame/Example/Stat.java index 0705ff0b99..55317190e6 100644 --- a/tests/MyGame/Example/Stat.java +++ b/tests/MyGame/Example/Stat.java @@ -21,7 +21,7 @@ @SuppressWarnings("unused") public final class Stat extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_23_1_4(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_1_20(); } public static Stat getRootAsStat(ByteBuffer _bb) { return getRootAsStat(_bb, new Stat()); } public static Stat getRootAsStat(ByteBuffer _bb, Stat obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/tests/MyGame/Example/Stat.kt b/tests/MyGame/Example/Stat.kt index 752d7a2a03..b0e6066193 100644 --- a/tests/MyGame/Example/Stat.kt +++ b/tests/MyGame/Example/Stat.kt @@ -74,7 +74,7 @@ class Stat : Table() { return (val_1 - val_2).sign } companion object { - fun validateVersion() = Constants.FLATBUFFERS_23_1_4() + fun validateVersion() = Constants.FLATBUFFERS_23_1_20() fun getRootAsStat(_bb: ByteBuffer): Stat = getRootAsStat(_bb, Stat()) fun getRootAsStat(_bb: ByteBuffer, obj: Stat): Stat { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/MyGame/Example/Stat.lua b/tests/MyGame/Example/Stat.lua index e8bef4915d..d84a2fae00 100644 --- a/tests/MyGame/Example/Stat.lua +++ b/tests/MyGame/Example/Stat.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.4 + flatc version: 23.1.20 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/Stat.nim b/tests/MyGame/Example/Stat.nim index 38f4a21797..ef79249cdc 100644 --- a/tests/MyGame/Example/Stat.nim +++ b/tests/MyGame/Example/Stat.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.4 + flatc version: 23.1.20 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example/StructOfStructs.lua b/tests/MyGame/Example/StructOfStructs.lua index a8eb665453..b4421f0979 100644 --- a/tests/MyGame/Example/StructOfStructs.lua +++ b/tests/MyGame/Example/StructOfStructs.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.4 + flatc version: 23.1.20 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/StructOfStructs.nim b/tests/MyGame/Example/StructOfStructs.nim index 426e2a351e..62245358cf 100644 --- a/tests/MyGame/Example/StructOfStructs.nim +++ b/tests/MyGame/Example/StructOfStructs.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.4 + flatc version: 23.1.20 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example/StructOfStructsOfStructs.lua b/tests/MyGame/Example/StructOfStructsOfStructs.lua index 82247b2b3d..548bd2b385 100644 --- a/tests/MyGame/Example/StructOfStructsOfStructs.lua +++ b/tests/MyGame/Example/StructOfStructsOfStructs.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.4 + flatc version: 23.1.20 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/StructOfStructsOfStructs.nim b/tests/MyGame/Example/StructOfStructsOfStructs.nim index 98286d9e8c..04f941c10c 100644 --- a/tests/MyGame/Example/StructOfStructsOfStructs.nim +++ b/tests/MyGame/Example/StructOfStructsOfStructs.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.4 + flatc version: 23.1.20 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example/Test.lua b/tests/MyGame/Example/Test.lua index 0d175561a3..2b1e01bf96 100644 --- a/tests/MyGame/Example/Test.lua +++ b/tests/MyGame/Example/Test.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.4 + flatc version: 23.1.20 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/Test.nim b/tests/MyGame/Example/Test.nim index a5006e529f..45f16c9a1e 100644 --- a/tests/MyGame/Example/Test.nim +++ b/tests/MyGame/Example/Test.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.4 + flatc version: 23.1.20 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example/TestSimpleTableWithEnum.cs b/tests/MyGame/Example/TestSimpleTableWithEnum.cs index bc96886416..bb38aa6337 100644 --- a/tests/MyGame/Example/TestSimpleTableWithEnum.cs +++ b/tests/MyGame/Example/TestSimpleTableWithEnum.cs @@ -13,7 +13,7 @@ internal partial struct TestSimpleTableWithEnum : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_4(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_20(); } public static TestSimpleTableWithEnum GetRootAsTestSimpleTableWithEnum(ByteBuffer _bb) { return GetRootAsTestSimpleTableWithEnum(_bb, new TestSimpleTableWithEnum()); } public static TestSimpleTableWithEnum GetRootAsTestSimpleTableWithEnum(ByteBuffer _bb, TestSimpleTableWithEnum obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/MyGame/Example/TestSimpleTableWithEnum.java b/tests/MyGame/Example/TestSimpleTableWithEnum.java index 2585e03828..c084eedd69 100644 --- a/tests/MyGame/Example/TestSimpleTableWithEnum.java +++ b/tests/MyGame/Example/TestSimpleTableWithEnum.java @@ -21,7 +21,7 @@ @SuppressWarnings("unused") final class TestSimpleTableWithEnum extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_23_1_4(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_1_20(); } public static TestSimpleTableWithEnum getRootAsTestSimpleTableWithEnum(ByteBuffer _bb) { return getRootAsTestSimpleTableWithEnum(_bb, new TestSimpleTableWithEnum()); } public static TestSimpleTableWithEnum getRootAsTestSimpleTableWithEnum(ByteBuffer _bb, TestSimpleTableWithEnum obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/tests/MyGame/Example/TestSimpleTableWithEnum.kt b/tests/MyGame/Example/TestSimpleTableWithEnum.kt index e2992993f0..190cbdd2aa 100644 --- a/tests/MyGame/Example/TestSimpleTableWithEnum.kt +++ b/tests/MyGame/Example/TestSimpleTableWithEnum.kt @@ -44,7 +44,7 @@ class TestSimpleTableWithEnum : Table() { } } companion object { - fun validateVersion() = Constants.FLATBUFFERS_23_1_4() + fun validateVersion() = Constants.FLATBUFFERS_23_1_20() fun getRootAsTestSimpleTableWithEnum(_bb: ByteBuffer): TestSimpleTableWithEnum = getRootAsTestSimpleTableWithEnum(_bb, TestSimpleTableWithEnum()) fun getRootAsTestSimpleTableWithEnum(_bb: ByteBuffer, obj: TestSimpleTableWithEnum): TestSimpleTableWithEnum { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/MyGame/Example/TestSimpleTableWithEnum.lua b/tests/MyGame/Example/TestSimpleTableWithEnum.lua index 7b81714a6b..514c967ec3 100644 --- a/tests/MyGame/Example/TestSimpleTableWithEnum.lua +++ b/tests/MyGame/Example/TestSimpleTableWithEnum.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.4 + flatc version: 23.1.20 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/TestSimpleTableWithEnum.nim b/tests/MyGame/Example/TestSimpleTableWithEnum.nim index 396e539da1..f81265d32c 100644 --- a/tests/MyGame/Example/TestSimpleTableWithEnum.nim +++ b/tests/MyGame/Example/TestSimpleTableWithEnum.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.4 + flatc version: 23.1.20 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example/TypeAliases.cs b/tests/MyGame/Example/TypeAliases.cs index a1f09d1e50..d0fc56cd3e 100644 --- a/tests/MyGame/Example/TypeAliases.cs +++ b/tests/MyGame/Example/TypeAliases.cs @@ -13,7 +13,7 @@ public struct TypeAliases : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_4(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_20(); } public static TypeAliases GetRootAsTypeAliases(ByteBuffer _bb) { return GetRootAsTypeAliases(_bb, new TypeAliases()); } public static TypeAliases GetRootAsTypeAliases(ByteBuffer _bb, TypeAliases obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/MyGame/Example/TypeAliases.java b/tests/MyGame/Example/TypeAliases.java index 2810f88b9d..2f70e1cce2 100644 --- a/tests/MyGame/Example/TypeAliases.java +++ b/tests/MyGame/Example/TypeAliases.java @@ -21,7 +21,7 @@ @SuppressWarnings("unused") public final class TypeAliases extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_23_1_4(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_1_20(); } public static TypeAliases getRootAsTypeAliases(ByteBuffer _bb) { return getRootAsTypeAliases(_bb, new TypeAliases()); } public static TypeAliases getRootAsTypeAliases(ByteBuffer _bb, TypeAliases obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/tests/MyGame/Example/TypeAliases.kt b/tests/MyGame/Example/TypeAliases.kt index cd7c78fe57..7482ad2c63 100644 --- a/tests/MyGame/Example/TypeAliases.kt +++ b/tests/MyGame/Example/TypeAliases.kt @@ -216,7 +216,7 @@ class TypeAliases : Table() { } } companion object { - fun validateVersion() = Constants.FLATBUFFERS_23_1_4() + fun validateVersion() = Constants.FLATBUFFERS_23_1_20() fun getRootAsTypeAliases(_bb: ByteBuffer): TypeAliases = getRootAsTypeAliases(_bb, TypeAliases()) fun getRootAsTypeAliases(_bb: ByteBuffer, obj: TypeAliases): TypeAliases { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/MyGame/Example/TypeAliases.lua b/tests/MyGame/Example/TypeAliases.lua index bdb7b0d923..d1ed077144 100644 --- a/tests/MyGame/Example/TypeAliases.lua +++ b/tests/MyGame/Example/TypeAliases.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.4 + flatc version: 23.1.20 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/TypeAliases.nim b/tests/MyGame/Example/TypeAliases.nim index 4fbb2714f3..d2f05d8d58 100644 --- a/tests/MyGame/Example/TypeAliases.nim +++ b/tests/MyGame/Example/TypeAliases.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.4 + flatc version: 23.1.20 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example/Vec3.lua b/tests/MyGame/Example/Vec3.lua index de447c4849..10e2921ab8 100644 --- a/tests/MyGame/Example/Vec3.lua +++ b/tests/MyGame/Example/Vec3.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.4 + flatc version: 23.1.20 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/Vec3.nim b/tests/MyGame/Example/Vec3.nim index 1590f3d15f..9e7cc632c0 100644 --- a/tests/MyGame/Example/Vec3.nim +++ b/tests/MyGame/Example/Vec3.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.4 + flatc version: 23.1.20 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example2/Monster.cs b/tests/MyGame/Example2/Monster.cs index e97eac35ca..88eab3eed4 100644 --- a/tests/MyGame/Example2/Monster.cs +++ b/tests/MyGame/Example2/Monster.cs @@ -13,7 +13,7 @@ public struct Monster : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_4(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_20(); } public static Monster GetRootAsMonster(ByteBuffer _bb) { return GetRootAsMonster(_bb, new Monster()); } public static Monster GetRootAsMonster(ByteBuffer _bb, Monster obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/MyGame/Example2/Monster.java b/tests/MyGame/Example2/Monster.java index 631f63dbdd..bf8dc5a571 100644 --- a/tests/MyGame/Example2/Monster.java +++ b/tests/MyGame/Example2/Monster.java @@ -21,7 +21,7 @@ @SuppressWarnings("unused") public final class Monster extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_23_1_4(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_1_20(); } public static Monster getRootAsMonster(ByteBuffer _bb) { return getRootAsMonster(_bb, new Monster()); } public static Monster getRootAsMonster(ByteBuffer _bb, Monster obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/tests/MyGame/Example2/Monster.kt b/tests/MyGame/Example2/Monster.kt index 22ccf279f8..950fabc178 100644 --- a/tests/MyGame/Example2/Monster.kt +++ b/tests/MyGame/Example2/Monster.kt @@ -30,7 +30,7 @@ class Monster : Table() { return this } companion object { - fun validateVersion() = Constants.FLATBUFFERS_23_1_4() + fun validateVersion() = Constants.FLATBUFFERS_23_1_20() fun getRootAsMonster(_bb: ByteBuffer): Monster = getRootAsMonster(_bb, Monster()) fun getRootAsMonster(_bb: ByteBuffer, obj: Monster): Monster { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/MyGame/Example2/Monster.lua b/tests/MyGame/Example2/Monster.lua index 9a5dac7084..1e40b8719e 100644 --- a/tests/MyGame/Example2/Monster.lua +++ b/tests/MyGame/Example2/Monster.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.4 + flatc version: 23.1.20 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example2/Monster.nim b/tests/MyGame/Example2/Monster.nim index 8307a2ea14..1b6dfc5e5c 100644 --- a/tests/MyGame/Example2/Monster.nim +++ b/tests/MyGame/Example2/Monster.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.4 + flatc version: 23.1.20 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/InParentNamespace.cs b/tests/MyGame/InParentNamespace.cs index c35209e085..178399cc30 100644 --- a/tests/MyGame/InParentNamespace.cs +++ b/tests/MyGame/InParentNamespace.cs @@ -13,7 +13,7 @@ public struct InParentNamespace : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_4(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_20(); } public static InParentNamespace GetRootAsInParentNamespace(ByteBuffer _bb) { return GetRootAsInParentNamespace(_bb, new InParentNamespace()); } public static InParentNamespace GetRootAsInParentNamespace(ByteBuffer _bb, InParentNamespace obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/MyGame/InParentNamespace.java b/tests/MyGame/InParentNamespace.java index 4402e55d3b..9ce3c82ed4 100644 --- a/tests/MyGame/InParentNamespace.java +++ b/tests/MyGame/InParentNamespace.java @@ -21,7 +21,7 @@ @SuppressWarnings("unused") public final class InParentNamespace extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_23_1_4(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_1_20(); } public static InParentNamespace getRootAsInParentNamespace(ByteBuffer _bb) { return getRootAsInParentNamespace(_bb, new InParentNamespace()); } public static InParentNamespace getRootAsInParentNamespace(ByteBuffer _bb, InParentNamespace obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/tests/MyGame/InParentNamespace.kt b/tests/MyGame/InParentNamespace.kt index acea6920c8..878ad4455d 100644 --- a/tests/MyGame/InParentNamespace.kt +++ b/tests/MyGame/InParentNamespace.kt @@ -30,7 +30,7 @@ class InParentNamespace : Table() { return this } companion object { - fun validateVersion() = Constants.FLATBUFFERS_23_1_4() + fun validateVersion() = Constants.FLATBUFFERS_23_1_20() fun getRootAsInParentNamespace(_bb: ByteBuffer): InParentNamespace = getRootAsInParentNamespace(_bb, InParentNamespace()) fun getRootAsInParentNamespace(_bb: ByteBuffer, obj: InParentNamespace): InParentNamespace { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/MyGame/InParentNamespace.lua b/tests/MyGame/InParentNamespace.lua index e16903f449..fade421f66 100644 --- a/tests/MyGame/InParentNamespace.lua +++ b/tests/MyGame/InParentNamespace.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.4 + flatc version: 23.1.20 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/InParentNamespace.nim b/tests/MyGame/InParentNamespace.nim index 771991a041..11c7e595da 100644 --- a/tests/MyGame/InParentNamespace.nim +++ b/tests/MyGame/InParentNamespace.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.4 + flatc version: 23.1.20 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/MonsterExtra.cs b/tests/MyGame/MonsterExtra.cs index d74115df24..e7a41ce342 100644 --- a/tests/MyGame/MonsterExtra.cs +++ b/tests/MyGame/MonsterExtra.cs @@ -13,7 +13,7 @@ public struct MonsterExtra : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_4(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_20(); } public static MonsterExtra GetRootAsMonsterExtra(ByteBuffer _bb) { return GetRootAsMonsterExtra(_bb, new MonsterExtra()); } public static MonsterExtra GetRootAsMonsterExtra(ByteBuffer _bb, MonsterExtra obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public static bool MonsterExtraBufferHasIdentifier(ByteBuffer _bb) { return Table.__has_identifier(_bb, "MONE"); } diff --git a/tests/MyGame/MonsterExtra.java b/tests/MyGame/MonsterExtra.java index da9883f103..061408c5bb 100644 --- a/tests/MyGame/MonsterExtra.java +++ b/tests/MyGame/MonsterExtra.java @@ -21,7 +21,7 @@ @SuppressWarnings("unused") public final class MonsterExtra extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_23_1_4(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_1_20(); } public static MonsterExtra getRootAsMonsterExtra(ByteBuffer _bb) { return getRootAsMonsterExtra(_bb, new MonsterExtra()); } public static MonsterExtra getRootAsMonsterExtra(ByteBuffer _bb, MonsterExtra obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public static boolean MonsterExtraBufferHasIdentifier(ByteBuffer _bb) { return __has_identifier(_bb, "MONE"); } diff --git a/tests/MyGame/MonsterExtra.kt b/tests/MyGame/MonsterExtra.kt index e150e6d807..5ee9d8d410 100644 --- a/tests/MyGame/MonsterExtra.kt +++ b/tests/MyGame/MonsterExtra.kt @@ -188,7 +188,7 @@ class MonsterExtra : Table() { } } companion object { - fun validateVersion() = Constants.FLATBUFFERS_23_1_4() + fun validateVersion() = Constants.FLATBUFFERS_23_1_20() fun getRootAsMonsterExtra(_bb: ByteBuffer): MonsterExtra = getRootAsMonsterExtra(_bb, MonsterExtra()) fun getRootAsMonsterExtra(_bb: ByteBuffer, obj: MonsterExtra): MonsterExtra { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/MyGame/OtherNameSpace/FromInclude.lua b/tests/MyGame/OtherNameSpace/FromInclude.lua index ac6828d3b2..66aa3f4d94 100644 --- a/tests/MyGame/OtherNameSpace/FromInclude.lua +++ b/tests/MyGame/OtherNameSpace/FromInclude.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.4 + flatc version: 23.1.20 Declared by : //include_test/sub/include_test2.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/OtherNameSpace/FromInclude.nim b/tests/MyGame/OtherNameSpace/FromInclude.nim index 3df2b2c0a7..533063b06f 100644 --- a/tests/MyGame/OtherNameSpace/FromInclude.nim +++ b/tests/MyGame/OtherNameSpace/FromInclude.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.4 + flatc version: 23.1.20 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/OtherNameSpace/TableB.lua b/tests/MyGame/OtherNameSpace/TableB.lua index 541eeaed86..dcc9a2339d 100644 --- a/tests/MyGame/OtherNameSpace/TableB.lua +++ b/tests/MyGame/OtherNameSpace/TableB.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.4 + flatc version: 23.1.20 Declared by : //include_test/sub/include_test2.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/OtherNameSpace/TableB.nim b/tests/MyGame/OtherNameSpace/TableB.nim index 2b45b5f936..8dca3751f5 100644 --- a/tests/MyGame/OtherNameSpace/TableB.nim +++ b/tests/MyGame/OtherNameSpace/TableB.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.4 + flatc version: 23.1.20 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/OtherNameSpace/Unused.lua b/tests/MyGame/OtherNameSpace/Unused.lua index 77400d69dd..0b3f64a465 100644 --- a/tests/MyGame/OtherNameSpace/Unused.lua +++ b/tests/MyGame/OtherNameSpace/Unused.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.4 + flatc version: 23.1.20 Declared by : //include_test/sub/include_test2.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/OtherNameSpace/Unused.nim b/tests/MyGame/OtherNameSpace/Unused.nim index 9459a0d78a..1ef0beab4b 100644 --- a/tests/MyGame/OtherNameSpace/Unused.nim +++ b/tests/MyGame/OtherNameSpace/Unused.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.4 + flatc version: 23.1.20 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/Property.nim b/tests/Property.nim index 3790fa8d8a..85e491c105 100644 --- a/tests/Property.nim +++ b/tests/Property.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.4 + flatc version: 23.1.20 Declared by : ]# diff --git a/tests/TableA.lua b/tests/TableA.lua index a21d8f8e8b..2f48c052bb 100644 --- a/tests/TableA.lua +++ b/tests/TableA.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.4 + flatc version: 23.1.20 Declared by : //include_test/include_test1.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/TableA.nim b/tests/TableA.nim index cd69f9b844..e8e1c2885d 100644 --- a/tests/TableA.nim +++ b/tests/TableA.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.4 + flatc version: 23.1.20 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/TestMutatingBool.nim b/tests/TestMutatingBool.nim index a54b8c71a9..32abd8f85c 100644 --- a/tests/TestMutatingBool.nim +++ b/tests/TestMutatingBool.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.4 + flatc version: 23.1.20 Declared by : ]# diff --git a/tests/alignment_test_generated.h b/tests/alignment_test_generated.h index e4dd301ead..8e5a732fe7 100644 --- a/tests/alignment_test_generated.h +++ b/tests/alignment_test_generated.h @@ -10,7 +10,7 @@ // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && FLATBUFFERS_VERSION_MINOR == 1 && - FLATBUFFERS_VERSION_REVISION == 4, + FLATBUFFERS_VERSION_REVISION == 20, "Non-compatible flatbuffers version included"); struct BadAlignmentSmall; diff --git a/tests/arrays_test_generated.h b/tests/arrays_test_generated.h index 1edf7da861..5681f03599 100644 --- a/tests/arrays_test_generated.h +++ b/tests/arrays_test_generated.h @@ -10,7 +10,7 @@ // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && FLATBUFFERS_VERSION_MINOR == 1 && - FLATBUFFERS_VERSION_REVISION == 4, + FLATBUFFERS_VERSION_REVISION == 20, "Non-compatible flatbuffers version included"); namespace MyGame { diff --git a/tests/cpp17/generated_cpp17/monster_test_generated.h b/tests/cpp17/generated_cpp17/monster_test_generated.h index 5127d24ff5..08cac39f67 100644 --- a/tests/cpp17/generated_cpp17/monster_test_generated.h +++ b/tests/cpp17/generated_cpp17/monster_test_generated.h @@ -12,7 +12,7 @@ // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && FLATBUFFERS_VERSION_MINOR == 1 && - FLATBUFFERS_VERSION_REVISION == 4, + FLATBUFFERS_VERSION_REVISION == 20, "Non-compatible flatbuffers version included"); namespace MyGame { diff --git a/tests/cpp17/generated_cpp17/optional_scalars_generated.h b/tests/cpp17/generated_cpp17/optional_scalars_generated.h index 9c672c57a9..d8d27c6c1b 100644 --- a/tests/cpp17/generated_cpp17/optional_scalars_generated.h +++ b/tests/cpp17/generated_cpp17/optional_scalars_generated.h @@ -10,7 +10,7 @@ // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && FLATBUFFERS_VERSION_MINOR == 1 && - FLATBUFFERS_VERSION_REVISION == 4, + FLATBUFFERS_VERSION_REVISION == 20, "Non-compatible flatbuffers version included"); namespace optional_scalars { diff --git a/tests/cpp17/generated_cpp17/union_vector_generated.h b/tests/cpp17/generated_cpp17/union_vector_generated.h index 6939b8a675..ad7ba7aee0 100644 --- a/tests/cpp17/generated_cpp17/union_vector_generated.h +++ b/tests/cpp17/generated_cpp17/union_vector_generated.h @@ -10,7 +10,7 @@ // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && FLATBUFFERS_VERSION_MINOR == 1 && - FLATBUFFERS_VERSION_REVISION == 4, + FLATBUFFERS_VERSION_REVISION == 20, "Non-compatible flatbuffers version included"); struct Attacker; diff --git a/tests/evolution_test/evolution_v1_generated.h b/tests/evolution_test/evolution_v1_generated.h index 9b404b86bc..028fbbcd2b 100644 --- a/tests/evolution_test/evolution_v1_generated.h +++ b/tests/evolution_test/evolution_v1_generated.h @@ -10,7 +10,7 @@ // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && FLATBUFFERS_VERSION_MINOR == 1 && - FLATBUFFERS_VERSION_REVISION == 4, + FLATBUFFERS_VERSION_REVISION == 20, "Non-compatible flatbuffers version included"); namespace Evolution { diff --git a/tests/evolution_test/evolution_v2_generated.h b/tests/evolution_test/evolution_v2_generated.h index efd51c973b..4bda60f12e 100644 --- a/tests/evolution_test/evolution_v2_generated.h +++ b/tests/evolution_test/evolution_v2_generated.h @@ -10,7 +10,7 @@ // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && FLATBUFFERS_VERSION_MINOR == 1 && - FLATBUFFERS_VERSION_REVISION == 4, + FLATBUFFERS_VERSION_REVISION == 20, "Non-compatible flatbuffers version included"); namespace Evolution { diff --git a/tests/key_field/key_field_sample_generated.h b/tests/key_field/key_field_sample_generated.h index 6718f6edca..5ceba6edd3 100644 --- a/tests/key_field/key_field_sample_generated.h +++ b/tests/key_field/key_field_sample_generated.h @@ -10,7 +10,7 @@ // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && FLATBUFFERS_VERSION_MINOR == 1 && - FLATBUFFERS_VERSION_REVISION == 4, + FLATBUFFERS_VERSION_REVISION == 20, "Non-compatible flatbuffers version included"); namespace keyfield { diff --git a/tests/monster_extra_generated.h b/tests/monster_extra_generated.h index 09d58c25b2..8767073985 100644 --- a/tests/monster_extra_generated.h +++ b/tests/monster_extra_generated.h @@ -10,7 +10,7 @@ // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && FLATBUFFERS_VERSION_MINOR == 1 && - FLATBUFFERS_VERSION_REVISION == 4, + FLATBUFFERS_VERSION_REVISION == 20, "Non-compatible flatbuffers version included"); namespace MyGame { diff --git a/tests/monster_test_bfbs_generated.h b/tests/monster_test_bfbs_generated.h index 0bc7301321..a8ef27b3ab 100644 --- a/tests/monster_test_bfbs_generated.h +++ b/tests/monster_test_bfbs_generated.h @@ -10,7 +10,7 @@ // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && FLATBUFFERS_VERSION_MINOR == 1 && - FLATBUFFERS_VERSION_REVISION == 4, + FLATBUFFERS_VERSION_REVISION == 20, "Non-compatible flatbuffers version included"); namespace MyGame { diff --git a/tests/monster_test_generated.h b/tests/monster_test_generated.h index bd32dc3106..9fd47d5809 100644 --- a/tests/monster_test_generated.h +++ b/tests/monster_test_generated.h @@ -12,7 +12,7 @@ // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && FLATBUFFERS_VERSION_MINOR == 1 && - FLATBUFFERS_VERSION_REVISION == 4, + FLATBUFFERS_VERSION_REVISION == 20, "Non-compatible flatbuffers version included"); namespace MyGame { diff --git a/tests/monster_test_suffix/ext_only/monster_test_generated.hpp b/tests/monster_test_suffix/ext_only/monster_test_generated.hpp index bd32dc3106..9fd47d5809 100644 --- a/tests/monster_test_suffix/ext_only/monster_test_generated.hpp +++ b/tests/monster_test_suffix/ext_only/monster_test_generated.hpp @@ -12,7 +12,7 @@ // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && FLATBUFFERS_VERSION_MINOR == 1 && - FLATBUFFERS_VERSION_REVISION == 4, + FLATBUFFERS_VERSION_REVISION == 20, "Non-compatible flatbuffers version included"); namespace MyGame { diff --git a/tests/monster_test_suffix/filesuffix_only/monster_test_suffix.h b/tests/monster_test_suffix/filesuffix_only/monster_test_suffix.h index bd32dc3106..9fd47d5809 100644 --- a/tests/monster_test_suffix/filesuffix_only/monster_test_suffix.h +++ b/tests/monster_test_suffix/filesuffix_only/monster_test_suffix.h @@ -12,7 +12,7 @@ // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && FLATBUFFERS_VERSION_MINOR == 1 && - FLATBUFFERS_VERSION_REVISION == 4, + FLATBUFFERS_VERSION_REVISION == 20, "Non-compatible flatbuffers version included"); namespace MyGame { diff --git a/tests/monster_test_suffix/monster_test_suffix.hpp b/tests/monster_test_suffix/monster_test_suffix.hpp index bd32dc3106..9fd47d5809 100644 --- a/tests/monster_test_suffix/monster_test_suffix.hpp +++ b/tests/monster_test_suffix/monster_test_suffix.hpp @@ -12,7 +12,7 @@ // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && FLATBUFFERS_VERSION_MINOR == 1 && - FLATBUFFERS_VERSION_REVISION == 4, + FLATBUFFERS_VERSION_REVISION == 20, "Non-compatible flatbuffers version included"); namespace MyGame { diff --git a/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.cs b/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.cs index bed405121c..c968dc5a73 100644 --- a/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.cs +++ b/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.cs @@ -13,7 +13,7 @@ public struct TableInNestedNS : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_4(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_20(); } public static TableInNestedNS GetRootAsTableInNestedNS(ByteBuffer _bb) { return GetRootAsTableInNestedNS(_bb, new TableInNestedNS()); } public static TableInNestedNS GetRootAsTableInNestedNS(ByteBuffer _bb, TableInNestedNS obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.java b/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.java index e38df6b91d..314c94f95f 100644 --- a/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.java +++ b/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.java @@ -9,7 +9,7 @@ @SuppressWarnings("unused") public final class TableInNestedNS extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_23_1_4(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_1_20(); } public static TableInNestedNS getRootAsTableInNestedNS(ByteBuffer _bb) { return getRootAsTableInNestedNS(_bb, new TableInNestedNS()); } public static TableInNestedNS getRootAsTableInNestedNS(ByteBuffer _bb, TableInNestedNS obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.kt b/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.kt index 6a96c23d09..4cb9318675 100644 --- a/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.kt +++ b/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.kt @@ -44,7 +44,7 @@ class TableInNestedNS : Table() { } } companion object { - fun validateVersion() = Constants.FLATBUFFERS_23_1_4() + fun validateVersion() = Constants.FLATBUFFERS_23_1_20() fun getRootAsTableInNestedNS(_bb: ByteBuffer): TableInNestedNS = getRootAsTableInNestedNS(_bb, TableInNestedNS()) fun getRootAsTableInNestedNS(_bb: ByteBuffer, obj: TableInNestedNS): TableInNestedNS { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/namespace_test/NamespaceA/SecondTableInA.cs b/tests/namespace_test/NamespaceA/SecondTableInA.cs index 8540bcd512..930cf2a8ae 100644 --- a/tests/namespace_test/NamespaceA/SecondTableInA.cs +++ b/tests/namespace_test/NamespaceA/SecondTableInA.cs @@ -13,7 +13,7 @@ public struct SecondTableInA : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_4(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_20(); } public static SecondTableInA GetRootAsSecondTableInA(ByteBuffer _bb) { return GetRootAsSecondTableInA(_bb, new SecondTableInA()); } public static SecondTableInA GetRootAsSecondTableInA(ByteBuffer _bb, SecondTableInA obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/namespace_test/NamespaceA/SecondTableInA.java b/tests/namespace_test/NamespaceA/SecondTableInA.java index 3680f74f82..21e0137454 100644 --- a/tests/namespace_test/NamespaceA/SecondTableInA.java +++ b/tests/namespace_test/NamespaceA/SecondTableInA.java @@ -9,7 +9,7 @@ @SuppressWarnings("unused") public final class SecondTableInA extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_23_1_4(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_1_20(); } public static SecondTableInA getRootAsSecondTableInA(ByteBuffer _bb) { return getRootAsSecondTableInA(_bb, new SecondTableInA()); } public static SecondTableInA getRootAsSecondTableInA(ByteBuffer _bb, SecondTableInA obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/tests/namespace_test/NamespaceA/SecondTableInA.kt b/tests/namespace_test/NamespaceA/SecondTableInA.kt index 68e4b59385..414f3599ac 100644 --- a/tests/namespace_test/NamespaceA/SecondTableInA.kt +++ b/tests/namespace_test/NamespaceA/SecondTableInA.kt @@ -39,7 +39,7 @@ class SecondTableInA : Table() { } } companion object { - fun validateVersion() = Constants.FLATBUFFERS_23_1_4() + fun validateVersion() = Constants.FLATBUFFERS_23_1_20() fun getRootAsSecondTableInA(_bb: ByteBuffer): SecondTableInA = getRootAsSecondTableInA(_bb, SecondTableInA()) fun getRootAsSecondTableInA(_bb: ByteBuffer, obj: SecondTableInA): SecondTableInA { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/namespace_test/NamespaceA/TableInFirstNS.cs b/tests/namespace_test/NamespaceA/TableInFirstNS.cs index 07151f9b29..4bbe8880ea 100644 --- a/tests/namespace_test/NamespaceA/TableInFirstNS.cs +++ b/tests/namespace_test/NamespaceA/TableInFirstNS.cs @@ -13,7 +13,7 @@ public struct TableInFirstNS : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_4(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_20(); } public static TableInFirstNS GetRootAsTableInFirstNS(ByteBuffer _bb) { return GetRootAsTableInFirstNS(_bb, new TableInFirstNS()); } public static TableInFirstNS GetRootAsTableInFirstNS(ByteBuffer _bb, TableInFirstNS obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/namespace_test/NamespaceA/TableInFirstNS.java b/tests/namespace_test/NamespaceA/TableInFirstNS.java index 62d2331d75..7ecdc0a869 100644 --- a/tests/namespace_test/NamespaceA/TableInFirstNS.java +++ b/tests/namespace_test/NamespaceA/TableInFirstNS.java @@ -9,7 +9,7 @@ @SuppressWarnings("unused") public final class TableInFirstNS extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_23_1_4(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_1_20(); } public static TableInFirstNS getRootAsTableInFirstNS(ByteBuffer _bb) { return getRootAsTableInFirstNS(_bb, new TableInFirstNS()); } public static TableInFirstNS getRootAsTableInFirstNS(ByteBuffer _bb, TableInFirstNS obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/tests/namespace_test/NamespaceA/TableInFirstNS.kt b/tests/namespace_test/NamespaceA/TableInFirstNS.kt index b4a8ff58e8..8e48e3102b 100644 --- a/tests/namespace_test/NamespaceA/TableInFirstNS.kt +++ b/tests/namespace_test/NamespaceA/TableInFirstNS.kt @@ -79,7 +79,7 @@ class TableInFirstNS : Table() { } } companion object { - fun validateVersion() = Constants.FLATBUFFERS_23_1_4() + fun validateVersion() = Constants.FLATBUFFERS_23_1_20() fun getRootAsTableInFirstNS(_bb: ByteBuffer): TableInFirstNS = getRootAsTableInFirstNS(_bb, TableInFirstNS()) fun getRootAsTableInFirstNS(_bb: ByteBuffer, obj: TableInFirstNS): TableInFirstNS { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/namespace_test/NamespaceC/TableInC.cs b/tests/namespace_test/NamespaceC/TableInC.cs index 657c87f1da..7807922056 100644 --- a/tests/namespace_test/NamespaceC/TableInC.cs +++ b/tests/namespace_test/NamespaceC/TableInC.cs @@ -13,7 +13,7 @@ public struct TableInC : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_4(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_20(); } public static TableInC GetRootAsTableInC(ByteBuffer _bb) { return GetRootAsTableInC(_bb, new TableInC()); } public static TableInC GetRootAsTableInC(ByteBuffer _bb, TableInC obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/namespace_test/NamespaceC/TableInC.java b/tests/namespace_test/NamespaceC/TableInC.java index e3a94b0ec0..30107b91a9 100644 --- a/tests/namespace_test/NamespaceC/TableInC.java +++ b/tests/namespace_test/NamespaceC/TableInC.java @@ -9,7 +9,7 @@ @SuppressWarnings("unused") public final class TableInC extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_23_1_4(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_1_20(); } public static TableInC getRootAsTableInC(ByteBuffer _bb) { return getRootAsTableInC(_bb, new TableInC()); } public static TableInC getRootAsTableInC(ByteBuffer _bb, TableInC obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/tests/namespace_test/NamespaceC/TableInC.kt b/tests/namespace_test/NamespaceC/TableInC.kt index a3365d4fed..83196bc493 100644 --- a/tests/namespace_test/NamespaceC/TableInC.kt +++ b/tests/namespace_test/NamespaceC/TableInC.kt @@ -48,7 +48,7 @@ class TableInC : Table() { } } companion object { - fun validateVersion() = Constants.FLATBUFFERS_23_1_4() + fun validateVersion() = Constants.FLATBUFFERS_23_1_20() fun getRootAsTableInC(_bb: ByteBuffer): TableInC = getRootAsTableInC(_bb, TableInC()) fun getRootAsTableInC(_bb: ByteBuffer, obj: TableInC): TableInC { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/namespace_test/namespace_test1_generated.h b/tests/namespace_test/namespace_test1_generated.h index 4a40d5c61d..39cc822cd4 100644 --- a/tests/namespace_test/namespace_test1_generated.h +++ b/tests/namespace_test/namespace_test1_generated.h @@ -10,7 +10,7 @@ // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && FLATBUFFERS_VERSION_MINOR == 1 && - FLATBUFFERS_VERSION_REVISION == 4, + FLATBUFFERS_VERSION_REVISION == 20, "Non-compatible flatbuffers version included"); namespace NamespaceA { diff --git a/tests/namespace_test/namespace_test2_generated.h b/tests/namespace_test/namespace_test2_generated.h index 4a32cf847e..c2b5a650f5 100644 --- a/tests/namespace_test/namespace_test2_generated.h +++ b/tests/namespace_test/namespace_test2_generated.h @@ -10,7 +10,7 @@ // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && FLATBUFFERS_VERSION_MINOR == 1 && - FLATBUFFERS_VERSION_REVISION == 4, + FLATBUFFERS_VERSION_REVISION == 20, "Non-compatible flatbuffers version included"); namespace NamespaceA { diff --git a/tests/native_inline_table_test_generated.h b/tests/native_inline_table_test_generated.h index 0b3087d63a..525f531b8b 100644 --- a/tests/native_inline_table_test_generated.h +++ b/tests/native_inline_table_test_generated.h @@ -10,7 +10,7 @@ // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && FLATBUFFERS_VERSION_MINOR == 1 && - FLATBUFFERS_VERSION_REVISION == 4, + FLATBUFFERS_VERSION_REVISION == 20, "Non-compatible flatbuffers version included"); struct NativeInlineTable; diff --git a/tests/native_type_test_generated.h b/tests/native_type_test_generated.h index 33bd4f2054..9f792736c3 100644 --- a/tests/native_type_test_generated.h +++ b/tests/native_type_test_generated.h @@ -10,7 +10,7 @@ // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && FLATBUFFERS_VERSION_MINOR == 1 && - FLATBUFFERS_VERSION_REVISION == 4, + FLATBUFFERS_VERSION_REVISION == 20, "Non-compatible flatbuffers version included"); #include "native_type_test_impl.h" diff --git a/tests/nested_namespace_test/nested_namespace_test3_generated.cs b/tests/nested_namespace_test/nested_namespace_test3_generated.cs index 7993bf3f91..e62bd42935 100644 --- a/tests/nested_namespace_test/nested_namespace_test3_generated.cs +++ b/tests/nested_namespace_test/nested_namespace_test3_generated.cs @@ -13,7 +13,7 @@ public struct ColorTestTable : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_4(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_20(); } public static ColorTestTable GetRootAsColorTestTable(ByteBuffer _bb) { return GetRootAsColorTestTable(_bb, new ColorTestTable()); } public static ColorTestTable GetRootAsColorTestTable(ByteBuffer _bb, ColorTestTable obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/optional_scalars/OptionalByte.nim b/tests/optional_scalars/OptionalByte.nim index ccd94711d6..1d58290473 100644 --- a/tests/optional_scalars/OptionalByte.nim +++ b/tests/optional_scalars/OptionalByte.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.4 + flatc version: 23.1.20 Declared by : Rooting type : optional_scalars.ScalarStuff () diff --git a/tests/optional_scalars/ScalarStuff.cs b/tests/optional_scalars/ScalarStuff.cs index 619b620739..2f4b19cf0b 100644 --- a/tests/optional_scalars/ScalarStuff.cs +++ b/tests/optional_scalars/ScalarStuff.cs @@ -13,7 +13,7 @@ public struct ScalarStuff : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_4(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_20(); } public static ScalarStuff GetRootAsScalarStuff(ByteBuffer _bb) { return GetRootAsScalarStuff(_bb, new ScalarStuff()); } public static ScalarStuff GetRootAsScalarStuff(ByteBuffer _bb, ScalarStuff obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public static bool ScalarStuffBufferHasIdentifier(ByteBuffer _bb) { return Table.__has_identifier(_bb, "NULL"); } diff --git a/tests/optional_scalars/ScalarStuff.java b/tests/optional_scalars/ScalarStuff.java index c077204a98..0a2dd2de94 100644 --- a/tests/optional_scalars/ScalarStuff.java +++ b/tests/optional_scalars/ScalarStuff.java @@ -21,7 +21,7 @@ @SuppressWarnings("unused") public final class ScalarStuff extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_23_1_4(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_1_20(); } public static ScalarStuff getRootAsScalarStuff(ByteBuffer _bb) { return getRootAsScalarStuff(_bb, new ScalarStuff()); } public static ScalarStuff getRootAsScalarStuff(ByteBuffer _bb, ScalarStuff obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public static boolean ScalarStuffBufferHasIdentifier(ByteBuffer _bb) { return __has_identifier(_bb, "NULL"); } diff --git a/tests/optional_scalars/ScalarStuff.kt b/tests/optional_scalars/ScalarStuff.kt index ba498ed74a..1c872f6742 100644 --- a/tests/optional_scalars/ScalarStuff.kt +++ b/tests/optional_scalars/ScalarStuff.kt @@ -210,7 +210,7 @@ class ScalarStuff : Table() { return if(o != 0) bb.get(o + bb_pos) else 1 } companion object { - fun validateVersion() = Constants.FLATBUFFERS_23_1_4() + fun validateVersion() = Constants.FLATBUFFERS_23_1_20() fun getRootAsScalarStuff(_bb: ByteBuffer): ScalarStuff = getRootAsScalarStuff(_bb, ScalarStuff()) fun getRootAsScalarStuff(_bb: ByteBuffer, obj: ScalarStuff): ScalarStuff { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/optional_scalars/ScalarStuff.nim b/tests/optional_scalars/ScalarStuff.nim index 9446063ddb..97132ad82a 100644 --- a/tests/optional_scalars/ScalarStuff.nim +++ b/tests/optional_scalars/ScalarStuff.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.4 + flatc version: 23.1.20 Declared by : Rooting type : optional_scalars.ScalarStuff () diff --git a/tests/optional_scalars_generated.h b/tests/optional_scalars_generated.h index 9e72405829..a6836ff46b 100644 --- a/tests/optional_scalars_generated.h +++ b/tests/optional_scalars_generated.h @@ -10,7 +10,7 @@ // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && FLATBUFFERS_VERSION_MINOR == 1 && - FLATBUFFERS_VERSION_REVISION == 4, + FLATBUFFERS_VERSION_REVISION == 20, "Non-compatible flatbuffers version included"); namespace optional_scalars { diff --git a/tests/swift/Wasm.tests/Tests/FlatBuffers.Test.Swift.WasmTests/monster_test_generated.swift b/tests/swift/Wasm.tests/Tests/FlatBuffers.Test.Swift.WasmTests/monster_test_generated.swift index 974c5d48b5..40b63b396c 100644 --- a/tests/swift/Wasm.tests/Tests/FlatBuffers.Test.Swift.WasmTests/monster_test_generated.swift +++ b/tests/swift/Wasm.tests/Tests/FlatBuffers.Test.Swift.WasmTests/monster_test_generated.swift @@ -237,7 +237,7 @@ public struct MyGame_Example_AnyAmbiguousAliasesUnion { } public struct MyGame_Example_Test: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject { - static func validateVersion() { FlatBuffersVersion_23_1_4() } + static func validateVersion() { FlatBuffersVersion_23_1_20() } private var _a: Int16 private var _b: Int8 @@ -291,7 +291,7 @@ extension MyGame_Example_Test: Encodable { public struct MyGame_Example_Test_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_23_1_4() } + static func validateVersion() { FlatBuffersVersion_23_1_20() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -318,7 +318,7 @@ public struct MyGame_Example_Test_Mutable: FlatBufferObject { public struct MyGame_Example_Vec3: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject { - static func validateVersion() { FlatBuffersVersion_23_1_4() } + static func validateVersion() { FlatBuffersVersion_23_1_20() } private var _x: Float32 private var _y: Float32 @@ -413,7 +413,7 @@ extension MyGame_Example_Vec3: Encodable { public struct MyGame_Example_Vec3_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_23_1_4() } + static func validateVersion() { FlatBuffersVersion_23_1_20() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -447,7 +447,7 @@ public struct MyGame_Example_Vec3_Mutable: FlatBufferObject { public struct MyGame_Example_Ability: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject { - static func validateVersion() { FlatBuffersVersion_23_1_4() } + static func validateVersion() { FlatBuffersVersion_23_1_20() } private var _id: UInt32 private var _distance: UInt32 @@ -500,7 +500,7 @@ extension MyGame_Example_Ability: Encodable { public struct MyGame_Example_Ability_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_23_1_4() } + static func validateVersion() { FlatBuffersVersion_23_1_20() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -527,7 +527,7 @@ public struct MyGame_Example_Ability_Mutable: FlatBufferObject { public struct MyGame_Example_StructOfStructs: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject { - static func validateVersion() { FlatBuffersVersion_23_1_4() } + static func validateVersion() { FlatBuffersVersion_23_1_20() } private var _a: MyGame_Example_Ability private var _b: MyGame_Example_Test @@ -587,7 +587,7 @@ extension MyGame_Example_StructOfStructs: Encodable { public struct MyGame_Example_StructOfStructs_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_23_1_4() } + static func validateVersion() { FlatBuffersVersion_23_1_20() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -613,7 +613,7 @@ public struct MyGame_Example_StructOfStructs_Mutable: FlatBufferObject { public struct MyGame_Example_StructOfStructsOfStructs: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject { - static func validateVersion() { FlatBuffersVersion_23_1_4() } + static func validateVersion() { FlatBuffersVersion_23_1_20() } private var _a: MyGame_Example_StructOfStructs @@ -655,7 +655,7 @@ extension MyGame_Example_StructOfStructsOfStructs: Encodable { public struct MyGame_Example_StructOfStructsOfStructs_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_23_1_4() } + static func validateVersion() { FlatBuffersVersion_23_1_20() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -679,7 +679,7 @@ public struct MyGame_Example_StructOfStructsOfStructs_Mutable: FlatBufferObject public struct MyGame_InParentNamespace: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_23_1_4() } + static func validateVersion() { FlatBuffersVersion_23_1_20() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -731,7 +731,7 @@ public class MyGame_InParentNamespaceT: NativeObject { } public struct MyGame_Example2_Monster: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_23_1_4() } + static func validateVersion() { FlatBuffersVersion_23_1_20() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -783,7 +783,7 @@ public class MyGame_Example2_MonsterT: NativeObject { } internal struct MyGame_Example_TestSimpleTableWithEnum: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_23_1_4() } + static func validateVersion() { FlatBuffersVersion_23_1_20() } internal var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -864,7 +864,7 @@ internal class MyGame_Example_TestSimpleTableWithEnumT: NativeObject { } public struct MyGame_Example_Stat: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_23_1_4() } + static func validateVersion() { FlatBuffersVersion_23_1_20() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -1003,7 +1003,7 @@ public class MyGame_Example_StatT: NativeObject { } public struct MyGame_Example_Referrable: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_23_1_4() } + static func validateVersion() { FlatBuffersVersion_23_1_20() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -1109,7 +1109,7 @@ public class MyGame_Example_ReferrableT: NativeObject { /// an example documentation comment: "monster object" public struct MyGame_Example_Monster: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_23_1_4() } + static func validateVersion() { FlatBuffersVersion_23_1_20() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -2405,7 +2405,7 @@ public class MyGame_Example_MonsterT: NativeObject { } public struct MyGame_Example_TypeAliases: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_23_1_4() } + static func validateVersion() { FlatBuffersVersion_23_1_20() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table diff --git a/tests/swift/tests/CodeGenerationTests/test_import_generated.swift b/tests/swift/tests/CodeGenerationTests/test_import_generated.swift index aaeb0c0428..9ff125da79 100644 --- a/tests/swift/tests/CodeGenerationTests/test_import_generated.swift +++ b/tests/swift/tests/CodeGenerationTests/test_import_generated.swift @@ -6,7 +6,7 @@ internal struct Message: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_23_1_4() } + static func validateVersion() { FlatBuffersVersion_23_1_20() } internal var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table diff --git a/tests/swift/tests/CodeGenerationTests/test_no_include_generated.swift b/tests/swift/tests/CodeGenerationTests/test_no_include_generated.swift index 608424fa90..235eee3122 100644 --- a/tests/swift/tests/CodeGenerationTests/test_no_include_generated.swift +++ b/tests/swift/tests/CodeGenerationTests/test_no_include_generated.swift @@ -4,7 +4,7 @@ public struct BytesCount: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject { - static func validateVersion() { FlatBuffersVersion_23_1_4() } + static func validateVersion() { FlatBuffersVersion_23_1_20() } private var _x: Int64 @@ -47,7 +47,7 @@ extension BytesCount: Encodable { public struct BytesCount_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_23_1_4() } + static func validateVersion() { FlatBuffersVersion_23_1_20() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -72,7 +72,7 @@ public struct BytesCount_Mutable: FlatBufferObject { public struct InternalMessage: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_23_1_4() } + static func validateVersion() { FlatBuffersVersion_23_1_20() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -155,7 +155,7 @@ public class InternalMessageT: NativeObject { } public struct Message: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_23_1_4() } + static func validateVersion() { FlatBuffersVersion_23_1_20() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table diff --git a/tests/swift/tests/Sources/SwiftFlatBuffers/fuzzer_generated.swift b/tests/swift/tests/Sources/SwiftFlatBuffers/fuzzer_generated.swift index d4a3053109..67fe9f200b 100644 --- a/tests/swift/tests/Sources/SwiftFlatBuffers/fuzzer_generated.swift +++ b/tests/swift/tests/Sources/SwiftFlatBuffers/fuzzer_generated.swift @@ -32,7 +32,7 @@ extension Color: Encodable { public struct Test: NativeStruct, Verifiable, FlatbuffersInitializable { - static func validateVersion() { FlatBuffersVersion_23_1_4() } + static func validateVersion() { FlatBuffersVersion_23_1_20() } private var _a: Int16 private var _b: Int8 @@ -81,7 +81,7 @@ extension Test: Encodable { public struct Test_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_23_1_4() } + static func validateVersion() { FlatBuffersVersion_23_1_20() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -93,7 +93,7 @@ public struct Test_Mutable: FlatBufferObject { public struct Vec3: NativeStruct, Verifiable, FlatbuffersInitializable { - static func validateVersion() { FlatBuffersVersion_23_1_4() } + static func validateVersion() { FlatBuffersVersion_23_1_20() } private var _x: Float32 private var _y: Float32 @@ -178,7 +178,7 @@ extension Vec3: Encodable { public struct Vec3_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_23_1_4() } + static func validateVersion() { FlatBuffersVersion_23_1_20() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -195,7 +195,7 @@ public struct Vec3_Mutable: FlatBufferObject { /// an example documentation comment: "monster object" public struct Monster: FlatBufferObject, Verifiable { - static func validateVersion() { FlatBuffersVersion_23_1_4() } + static func validateVersion() { FlatBuffersVersion_23_1_20() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table diff --git a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/MutatingBool_generated.swift b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/MutatingBool_generated.swift index 0b4f39e48c..b38b5a76aa 100644 --- a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/MutatingBool_generated.swift +++ b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/MutatingBool_generated.swift @@ -6,7 +6,7 @@ import FlatBuffers public struct Property: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject { - static func validateVersion() { FlatBuffersVersion_23_1_4() } + static func validateVersion() { FlatBuffersVersion_23_1_20() } private var _property: Bool @@ -49,7 +49,7 @@ extension Property: Encodable { public struct Property_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_23_1_4() } + static func validateVersion() { FlatBuffersVersion_23_1_20() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -74,7 +74,7 @@ public struct Property_Mutable: FlatBufferObject { public struct TestMutatingBool: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_23_1_4() } + static func validateVersion() { FlatBuffersVersion_23_1_20() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table diff --git a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/monster_test_generated.swift b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/monster_test_generated.swift index 974c5d48b5..40b63b396c 100644 --- a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/monster_test_generated.swift +++ b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/monster_test_generated.swift @@ -237,7 +237,7 @@ public struct MyGame_Example_AnyAmbiguousAliasesUnion { } public struct MyGame_Example_Test: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject { - static func validateVersion() { FlatBuffersVersion_23_1_4() } + static func validateVersion() { FlatBuffersVersion_23_1_20() } private var _a: Int16 private var _b: Int8 @@ -291,7 +291,7 @@ extension MyGame_Example_Test: Encodable { public struct MyGame_Example_Test_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_23_1_4() } + static func validateVersion() { FlatBuffersVersion_23_1_20() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -318,7 +318,7 @@ public struct MyGame_Example_Test_Mutable: FlatBufferObject { public struct MyGame_Example_Vec3: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject { - static func validateVersion() { FlatBuffersVersion_23_1_4() } + static func validateVersion() { FlatBuffersVersion_23_1_20() } private var _x: Float32 private var _y: Float32 @@ -413,7 +413,7 @@ extension MyGame_Example_Vec3: Encodable { public struct MyGame_Example_Vec3_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_23_1_4() } + static func validateVersion() { FlatBuffersVersion_23_1_20() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -447,7 +447,7 @@ public struct MyGame_Example_Vec3_Mutable: FlatBufferObject { public struct MyGame_Example_Ability: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject { - static func validateVersion() { FlatBuffersVersion_23_1_4() } + static func validateVersion() { FlatBuffersVersion_23_1_20() } private var _id: UInt32 private var _distance: UInt32 @@ -500,7 +500,7 @@ extension MyGame_Example_Ability: Encodable { public struct MyGame_Example_Ability_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_23_1_4() } + static func validateVersion() { FlatBuffersVersion_23_1_20() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -527,7 +527,7 @@ public struct MyGame_Example_Ability_Mutable: FlatBufferObject { public struct MyGame_Example_StructOfStructs: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject { - static func validateVersion() { FlatBuffersVersion_23_1_4() } + static func validateVersion() { FlatBuffersVersion_23_1_20() } private var _a: MyGame_Example_Ability private var _b: MyGame_Example_Test @@ -587,7 +587,7 @@ extension MyGame_Example_StructOfStructs: Encodable { public struct MyGame_Example_StructOfStructs_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_23_1_4() } + static func validateVersion() { FlatBuffersVersion_23_1_20() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -613,7 +613,7 @@ public struct MyGame_Example_StructOfStructs_Mutable: FlatBufferObject { public struct MyGame_Example_StructOfStructsOfStructs: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject { - static func validateVersion() { FlatBuffersVersion_23_1_4() } + static func validateVersion() { FlatBuffersVersion_23_1_20() } private var _a: MyGame_Example_StructOfStructs @@ -655,7 +655,7 @@ extension MyGame_Example_StructOfStructsOfStructs: Encodable { public struct MyGame_Example_StructOfStructsOfStructs_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_23_1_4() } + static func validateVersion() { FlatBuffersVersion_23_1_20() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -679,7 +679,7 @@ public struct MyGame_Example_StructOfStructsOfStructs_Mutable: FlatBufferObject public struct MyGame_InParentNamespace: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_23_1_4() } + static func validateVersion() { FlatBuffersVersion_23_1_20() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -731,7 +731,7 @@ public class MyGame_InParentNamespaceT: NativeObject { } public struct MyGame_Example2_Monster: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_23_1_4() } + static func validateVersion() { FlatBuffersVersion_23_1_20() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -783,7 +783,7 @@ public class MyGame_Example2_MonsterT: NativeObject { } internal struct MyGame_Example_TestSimpleTableWithEnum: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_23_1_4() } + static func validateVersion() { FlatBuffersVersion_23_1_20() } internal var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -864,7 +864,7 @@ internal class MyGame_Example_TestSimpleTableWithEnumT: NativeObject { } public struct MyGame_Example_Stat: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_23_1_4() } + static func validateVersion() { FlatBuffersVersion_23_1_20() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -1003,7 +1003,7 @@ public class MyGame_Example_StatT: NativeObject { } public struct MyGame_Example_Referrable: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_23_1_4() } + static func validateVersion() { FlatBuffersVersion_23_1_20() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -1109,7 +1109,7 @@ public class MyGame_Example_ReferrableT: NativeObject { /// an example documentation comment: "monster object" public struct MyGame_Example_Monster: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_23_1_4() } + static func validateVersion() { FlatBuffersVersion_23_1_20() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -2405,7 +2405,7 @@ public class MyGame_Example_MonsterT: NativeObject { } public struct MyGame_Example_TypeAliases: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_23_1_4() } + static func validateVersion() { FlatBuffersVersion_23_1_20() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table diff --git a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/more_defaults_generated.swift b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/more_defaults_generated.swift index d18f40911e..f5d32a9a24 100644 --- a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/more_defaults_generated.swift +++ b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/more_defaults_generated.swift @@ -29,7 +29,7 @@ extension ABC: Encodable { public struct MoreDefaults: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_23_1_4() } + static func validateVersion() { FlatBuffersVersion_23_1_20() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table diff --git a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/nan_inf_test_generated.swift b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/nan_inf_test_generated.swift index 1c2faac4d5..e0d2953fd8 100644 --- a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/nan_inf_test_generated.swift +++ b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/nan_inf_test_generated.swift @@ -6,7 +6,7 @@ import FlatBuffers public struct Swift_Tests_NanInfTable: FlatBufferObject, Verifiable { - static func validateVersion() { FlatBuffersVersion_23_1_4() } + static func validateVersion() { FlatBuffersVersion_23_1_20() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table diff --git a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/optional_scalars_generated.swift b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/optional_scalars_generated.swift index dfbfa9d4af..b258dff181 100644 --- a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/optional_scalars_generated.swift +++ b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/optional_scalars_generated.swift @@ -29,7 +29,7 @@ extension optional_scalars_OptionalByte: Encodable { public struct optional_scalars_ScalarStuff: FlatBufferObject, Verifiable { - static func validateVersion() { FlatBuffersVersion_23_1_4() } + static func validateVersion() { FlatBuffersVersion_23_1_20() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table diff --git a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/union_vector_generated.swift b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/union_vector_generated.swift index b80cc12dc1..34bfb3888a 100644 --- a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/union_vector_generated.swift +++ b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/union_vector_generated.swift @@ -120,7 +120,7 @@ public struct GadgetUnion { } public struct Rapunzel: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject { - static func validateVersion() { FlatBuffersVersion_23_1_4() } + static func validateVersion() { FlatBuffersVersion_23_1_20() } private var _hairLength: Int32 @@ -163,7 +163,7 @@ extension Rapunzel: Encodable { public struct Rapunzel_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_23_1_4() } + static func validateVersion() { FlatBuffersVersion_23_1_20() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -188,7 +188,7 @@ public struct Rapunzel_Mutable: FlatBufferObject { public struct BookReader: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject { - static func validateVersion() { FlatBuffersVersion_23_1_4() } + static func validateVersion() { FlatBuffersVersion_23_1_20() } private var _booksRead: Int32 @@ -231,7 +231,7 @@ extension BookReader: Encodable { public struct BookReader_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_23_1_4() } + static func validateVersion() { FlatBuffersVersion_23_1_20() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -256,7 +256,7 @@ public struct BookReader_Mutable: FlatBufferObject { public struct FallingTub: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject { - static func validateVersion() { FlatBuffersVersion_23_1_4() } + static func validateVersion() { FlatBuffersVersion_23_1_20() } private var _weight: Int32 @@ -299,7 +299,7 @@ extension FallingTub: Encodable { public struct FallingTub_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_23_1_4() } + static func validateVersion() { FlatBuffersVersion_23_1_20() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -324,7 +324,7 @@ public struct FallingTub_Mutable: FlatBufferObject { public struct Attacker: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_23_1_4() } + static func validateVersion() { FlatBuffersVersion_23_1_20() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -405,7 +405,7 @@ public class AttackerT: NativeObject { } public struct HandFan: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_23_1_4() } + static func validateVersion() { FlatBuffersVersion_23_1_20() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -486,7 +486,7 @@ public class HandFanT: NativeObject { } public struct Movie: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_23_1_4() } + static func validateVersion() { FlatBuffersVersion_23_1_20() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table diff --git a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/vector_has_test_generated.swift b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/vector_has_test_generated.swift index 0e07c65a11..077faa83fb 100644 --- a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/vector_has_test_generated.swift +++ b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/vector_has_test_generated.swift @@ -6,7 +6,7 @@ import FlatBuffers public struct Swift_Tests_Vectors: FlatBufferObject, Verifiable { - static func validateVersion() { FlatBuffersVersion_23_1_4() } + static func validateVersion() { FlatBuffersVersion_23_1_20() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table diff --git a/tests/type_field_collsion/Collision.cs b/tests/type_field_collsion/Collision.cs index cb46dac280..6640130402 100644 --- a/tests/type_field_collsion/Collision.cs +++ b/tests/type_field_collsion/Collision.cs @@ -13,7 +13,7 @@ public struct Collision : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_4(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_20(); } public static Collision GetRootAsCollision(ByteBuffer _bb) { return GetRootAsCollision(_bb, new Collision()); } public static Collision GetRootAsCollision(ByteBuffer _bb, Collision obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/union_value_collsion/union_value_collision_generated.cs b/tests/union_value_collsion/union_value_collision_generated.cs index ce0acde57c..94874267c1 100644 --- a/tests/union_value_collsion/union_value_collision_generated.cs +++ b/tests/union_value_collsion/union_value_collision_generated.cs @@ -151,7 +151,7 @@ public struct IntValue : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_4(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_20(); } public static IntValue GetRootAsIntValue(ByteBuffer _bb) { return GetRootAsIntValue(_bb, new IntValue()); } public static IntValue GetRootAsIntValue(ByteBuffer _bb, IntValue obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } @@ -202,7 +202,7 @@ public struct Collision : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_4(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_20(); } public static Collision GetRootAsCollision(ByteBuffer _bb) { return GetRootAsCollision(_bb, new Collision()); } public static Collision GetRootAsCollision(ByteBuffer _bb, Collision obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/union_vector/Attacker.cs b/tests/union_vector/Attacker.cs index 0fc8a08be5..391cf3b451 100644 --- a/tests/union_vector/Attacker.cs +++ b/tests/union_vector/Attacker.cs @@ -10,7 +10,7 @@ public struct Attacker : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_4(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_20(); } public static Attacker GetRootAsAttacker(ByteBuffer _bb) { return GetRootAsAttacker(_bb, new Attacker()); } public static Attacker GetRootAsAttacker(ByteBuffer _bb, Attacker obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/union_vector/Attacker.java b/tests/union_vector/Attacker.java index 6e672dd6a0..2debd845b6 100644 --- a/tests/union_vector/Attacker.java +++ b/tests/union_vector/Attacker.java @@ -19,7 +19,7 @@ @SuppressWarnings("unused") public final class Attacker extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_23_1_4(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_1_20(); } public static Attacker getRootAsAttacker(ByteBuffer _bb) { return getRootAsAttacker(_bb, new Attacker()); } public static Attacker getRootAsAttacker(ByteBuffer _bb, Attacker obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/tests/union_vector/Attacker.kt b/tests/union_vector/Attacker.kt index f71a6c0526..ecac323417 100644 --- a/tests/union_vector/Attacker.kt +++ b/tests/union_vector/Attacker.kt @@ -42,7 +42,7 @@ class Attacker : Table() { } } companion object { - fun validateVersion() = Constants.FLATBUFFERS_23_1_4() + fun validateVersion() = Constants.FLATBUFFERS_23_1_20() fun getRootAsAttacker(_bb: ByteBuffer): Attacker = getRootAsAttacker(_bb, Attacker()) fun getRootAsAttacker(_bb: ByteBuffer, obj: Attacker): Attacker { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/union_vector/HandFan.cs b/tests/union_vector/HandFan.cs index f848c01c93..5e41071b9d 100644 --- a/tests/union_vector/HandFan.cs +++ b/tests/union_vector/HandFan.cs @@ -10,7 +10,7 @@ public struct HandFan : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_4(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_20(); } public static HandFan GetRootAsHandFan(ByteBuffer _bb) { return GetRootAsHandFan(_bb, new HandFan()); } public static HandFan GetRootAsHandFan(ByteBuffer _bb, HandFan obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/union_vector/HandFan.java b/tests/union_vector/HandFan.java index 26478ba466..74ac1af037 100644 --- a/tests/union_vector/HandFan.java +++ b/tests/union_vector/HandFan.java @@ -19,7 +19,7 @@ @SuppressWarnings("unused") public final class HandFan extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_23_1_4(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_1_20(); } public static HandFan getRootAsHandFan(ByteBuffer _bb) { return getRootAsHandFan(_bb, new HandFan()); } public static HandFan getRootAsHandFan(ByteBuffer _bb, HandFan obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/tests/union_vector/HandFan.kt b/tests/union_vector/HandFan.kt index d60ba28407..19ee45e7ea 100644 --- a/tests/union_vector/HandFan.kt +++ b/tests/union_vector/HandFan.kt @@ -42,7 +42,7 @@ class HandFan : Table() { } } companion object { - fun validateVersion() = Constants.FLATBUFFERS_23_1_4() + fun validateVersion() = Constants.FLATBUFFERS_23_1_20() fun getRootAsHandFan(_bb: ByteBuffer): HandFan = getRootAsHandFan(_bb, HandFan()) fun getRootAsHandFan(_bb: ByteBuffer, obj: HandFan): HandFan { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/union_vector/Movie.cs b/tests/union_vector/Movie.cs index dea01607e4..22489e269d 100644 --- a/tests/union_vector/Movie.cs +++ b/tests/union_vector/Movie.cs @@ -10,7 +10,7 @@ public struct Movie : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_4(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_20(); } public static Movie GetRootAsMovie(ByteBuffer _bb) { return GetRootAsMovie(_bb, new Movie()); } public static Movie GetRootAsMovie(ByteBuffer _bb, Movie obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public static bool MovieBufferHasIdentifier(ByteBuffer _bb) { return Table.__has_identifier(_bb, "MOVI"); } diff --git a/tests/union_vector/Movie.java b/tests/union_vector/Movie.java index 56e8bf9341..13f9604255 100644 --- a/tests/union_vector/Movie.java +++ b/tests/union_vector/Movie.java @@ -19,7 +19,7 @@ @SuppressWarnings("unused") public final class Movie extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_23_1_4(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_1_20(); } public static Movie getRootAsMovie(ByteBuffer _bb) { return getRootAsMovie(_bb, new Movie()); } public static Movie getRootAsMovie(ByteBuffer _bb, Movie obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public static boolean MovieBufferHasIdentifier(ByteBuffer _bb) { return __has_identifier(_bb, "MOVI"); } diff --git a/tests/union_vector/Movie.kt b/tests/union_vector/Movie.kt index 8d3e4106ed..f607c4cc01 100644 --- a/tests/union_vector/Movie.kt +++ b/tests/union_vector/Movie.kt @@ -80,7 +80,7 @@ class Movie : Table() { val o = __offset(10); return if (o != 0) __vector_len(o) else 0 } companion object { - fun validateVersion() = Constants.FLATBUFFERS_23_1_4() + fun validateVersion() = Constants.FLATBUFFERS_23_1_20() fun getRootAsMovie(_bb: ByteBuffer): Movie = getRootAsMovie(_bb, Movie()) fun getRootAsMovie(_bb: ByteBuffer, obj: Movie): Movie { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/union_vector/union_vector_generated.h b/tests/union_vector/union_vector_generated.h index 4ee71b5829..609e83ffae 100644 --- a/tests/union_vector/union_vector_generated.h +++ b/tests/union_vector/union_vector_generated.h @@ -10,7 +10,7 @@ // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && FLATBUFFERS_VERSION_MINOR == 1 && - FLATBUFFERS_VERSION_REVISION == 4, + FLATBUFFERS_VERSION_REVISION == 20, "Non-compatible flatbuffers version included"); struct Attacker; From ef76b5ece4d6ff06bebf04f42e41a50427263ae3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Harrtell?= Date: Sat, 21 Jan 2023 21:22:22 +0100 Subject: [PATCH 100/571] [TS/JS] Entry point per namespace and reworked 1.x compatible single file build (#7510) * [TS/JS] Entry point per namespace * Fix handling of outputpath and array_test * Attempt to fix generate_code * Fix cwd for ts in generate_code * Attempt to fixup bazel and some docs * Add --ts-flat-files to bazel build to get bundle * Move to DEFAULT_FLATC_TS_ARGS * Attempt to add esbuild * Attempt to use npm instead * Remove futile attempt to add esbuild * Attempt to as bazel esbuild * Shuffle * Upgrade bazel deps * Revert failed attempts to get bazel working * Ignore flatc tests for now * Add esbuild dependency * `package.json` Include esbuild * `WORKSPACE` Add fetching esbuild binary * Update WORKSPACE * Unfreeze Lockfile * Update WORKSPACE * Update BUILD.bazel * Rework to suggest instead of running external bundler * Add esbuild generation to test script * Prelim bundle test * Run test JavaScriptTest from flatbuffers 1.x * Deps upgrade * Clang format fix * Revert bazel changes * Fix newline * Generate with type declarations * Handle "empty" root namespace * Adjust tests for typescript_keywords.ts * Separate test procedure for old node resolution module output * Fix rel path for root level re-exports * Bazel support for esbuild-based flatc Unfortunately, we lose typing information because the new esbuild method of generating single files does not generate type information. The method used here is a bit hack-ish because it relies on parsing the console output of flatc to figure out what to do. * Try to fix bazel build for when node isn't present on host * Auto formatting fixes * Fix missing generated code Co-authored-by: Derek Bailey Co-authored-by: James Kuszmaul --- .github/workflows/build.yml | 18 +- WORKSPACE | 6 +- build_defs.bzl | 24 +- docs/source/Tutorial.md | 7 +- grpc/examples/ts/greeter/src/greeter.ts | 5 +- grpc/examples/ts/greeter/src/models.ts | 4 + include/flatbuffers/idl.h | 6 +- package.json | 26 +- reflection/ts/BUILD.bazel | 1 - rollup.config.js | 8 - scripts/generate_code.py | 43 +- src/flatc.cpp | 12 +- src/idl_gen_ts.cpp | 262 +- tests/my-game/example/ability.js | 54 - tests/my-game/example/ability.ts | 77 - .../my-game/example/any-ambiguous-aliases.js | 27 - .../my-game/example/any-ambiguous-aliases.ts | 38 - tests/my-game/example/any-unique-aliases.js | 29 - tests/my-game/example/any-unique-aliases.ts | 40 - tests/my-game/example/any.js | 29 - tests/my-game/example/any.ts | 40 - tests/my-game/example/color.js | 17 - tests/my-game/example/color.ts | 19 - tests/my-game/example/long-enum.ts | 7 - tests/my-game/example/monster.js | 1125 -------- tests/my-game/example/monster.ts | 1434 --------- tests/my-game/example/race.js | 8 - tests/my-game/example/race.ts | 8 - tests/my-game/example/referrable.js | 70 - tests/my-game/example/referrable.ts | 95 - tests/my-game/example/stat.js | 99 - tests/my-game/example/stat.ts | 138 - .../example/struct-of-structs-of-structs.ts | 74 - tests/my-game/example/struct-of-structs.js | 62 - tests/my-game/example/struct-of-structs.ts | 88 - .../example/test-simple-table-with-enum.js | 71 - .../example/test-simple-table-with-enum.ts | 96 - tests/my-game/example/test.js | 55 - tests/my-game/example/test.ts | 78 - tests/my-game/example/type-aliases.js | 290 -- tests/my-game/example/type-aliases.ts | 405 --- tests/my-game/example/vec3.js | 98 - tests/my-game/example/vec3.ts | 137 - tests/my-game/example2/monster.js | 50 - tests/my-game/example2/monster.ts | 66 - tests/my-game/in-parent-namespace.js | 50 - tests/my-game/in-parent-namespace.ts | 66 - .../namespace-b/enum-in-nested-n-s.js | 7 - .../namespace-b/struct-in-nested-n-s.js | 54 - .../namespace-b/struct-in-nested-n-s.ts | 77 - .../namespace-b/table-in-nested-n-s.js | 64 - .../namespace-b/table-in-nested-n-s.ts | 87 - .../namespace-b/union-in-nested-n-s.js | 21 - .../namespace-b/union-in-nested-n-s.ts | 33 - .../namespace-a/second-table-in-a.js | 58 - .../namespace-a/second-table-in-a.ts | 79 - .../namespace-a/table-in-first-n-s.js | 119 - .../namespace-a/table-in-first-n-s.ts | 150 - .../namespace_test/namespace-c/table-in-c.js | 67 - .../namespace_test/namespace-c/table-in-c.ts | 90 - tests/namespace_test/namespace_test1.ts | 3 - tests/namespace_test/namespace_test2.ts | 7 - tests/optional-scalars/scalar-stuff.ts | 423 --- tests/optional_scalars/optional-byte.js | 7 - tests/optional_scalars/optional-byte.ts | 8 - tests/optional_scalars/scalar-stuff.js | 341 --- tests/optional_scalars/scalar-stuff.ts | 423 --- tests/ts/JavaScriptComplexArraysTest.js | 15 +- tests/ts/JavaScriptTestv1.cjs | 367 +++ tests/ts/TypeScriptTest.py | 42 +- .../arrays_test_complex_generated.cjs | 451 +++ .../arrays_test_complex_generated.js | 409 --- .../arrays_test_complex_generated.ts | 626 ---- .../arrays_test_complex/my-game/example.d.ts | 6 + .../ts/arrays_test_complex/my-game/example.js | 7 + .../ts/arrays_test_complex/my-game/example.ts | 8 + .../my-game/example/array-struct.d.ts | 31 + .../my-game/example/array-struct.js | 98 + .../my-game/example/array-struct.ts | 166 ++ .../my-game/example/array-table.d.ts | 28 + .../my-game/example/array-table.js | 74 + .../my-game/example/array-table.ts | 102 + .../my-game/example/inner-struct.d.ts | 23 + .../my-game/example/inner-struct.js | 61 + .../my-game/example/inner-struct.ts | 91 + .../my-game/example/nested-struct.d.ts | 27 + .../my-game/example/nested-struct.js | 80 + .../my-game/example/nested-struct.ts | 135 + .../my-game/example/outer-struct.d.ts | 28 + .../my-game/example/outer-struct.js | 95 + .../my-game/example/outer-struct.ts | 152 + .../my-game/example/test-enum.d.ts | 5 + .../my-game/example/test-enum.js | 7 + .../my-game/example/test-enum.ts} | 3 +- tests/ts/foobar.d.ts | 1 + tests/ts/foobar.js | 2 + ...nsitive_include_generated.ts => foobar.ts} | 6 +- tests/ts/foobar/abc.d.ts | 3 + tests/ts/foobar/abc.js | 2 +- tests/ts/foobar/class.d.ts | 3 + tests/ts/foobar/class.js | 2 +- tests/ts/monster_test.d.ts | 2 + tests/ts/monster_test.js | 20 +- tests/ts/monster_test.ts | 21 +- tests/ts/monster_test_generated.cjs | 2565 +++++++++++++++++ tests/ts/monster_test_generated.ts | 19 - tests/ts/monster_test_grpc.d.ts | 94 - tests/ts/monster_test_grpc.js | 80 - tests/ts/monsterdata_javascript_wire.mon | Bin 744 -> 224 bytes tests/ts/my-game.d.ts | 4 + tests/ts/my-game.js | 5 + tests/ts/my-game.ts | 6 + tests/ts/my-game/example.d.ts | 16 + tests/ts/my-game/example.js | 17 + tests/ts/my-game/example.ts | 18 + tests/ts/my-game/example/ability.d.ts | 21 + .../example/any-ambiguous-aliases.d.ts | 9 + .../my-game/example/any-ambiguous-aliases.js | 2 +- .../my-game/example/any-unique-aliases.d.ts | 11 + .../ts/my-game/example/any-unique-aliases.js | 2 +- tests/ts/my-game/example/any.d.ts | 11 + tests/ts/my-game/example/any.js | 2 +- tests/ts/my-game/example/color.d.ts | 15 + tests/ts/my-game/example/color.js | 2 +- tests/ts/my-game/example/long-enum.d.ts | 5 + tests/ts/my-game/example/long-enum.js | 2 +- tests/ts/my-game/example/monster.d.ts | 325 +++ tests/ts/my-game/example/race.d.ts | 6 + tests/ts/my-game/example/race.js | 2 +- tests/ts/my-game/example/referrable.d.ts | 24 + tests/ts/my-game/example/stat.d.ts | 32 + .../example/struct-of-structs-of-structs.d.ts | 18 + .../example/struct-of-structs-of-structs.js | 3 +- .../ts/my-game/example/struct-of-structs.d.ts | 23 + tests/ts/my-game/example/struct-of-structs.js | 3 +- .../example/test-simple-table-with-enum.d.ts | 25 + tests/ts/my-game/example/test.d.ts | 21 + tests/ts/my-game/example/type-aliases.d.ts | 82 + tests/ts/my-game/example/vec3.d.ts | 34 + tests/ts/my-game/example/vec3.js | 3 +- tests/ts/my-game/example2.d.ts | 1 + tests/ts/my-game/example2.js | 2 + tests/ts/my-game/example2.ts | 3 + tests/ts/my-game/example2/monster.d.ts | 20 + tests/ts/my-game/in-parent-namespace.d.ts | 20 + tests/ts/my-game/other-name-space.d.ts | 3 + tests/ts/my-game/other-name-space.js | 4 + tests/ts/my-game/other-name-space.ts | 5 + .../other-name-space/from-include.d.ts | 3 + .../my-game/other-name-space/from-include.js | 5 + .../my-game/other-name-space/from-include.ts} | 6 +- .../ts/my-game/other-name-space/table-b.d.ts | 24 + tests/ts/my-game/other-name-space/table-b.js | 64 + tests/ts/my-game/other-name-space/table-b.ts | 87 + tests/ts/my-game/other-name-space/unused.d.ts | 18 + .../my-game/other-name-space/unused.js} | 24 +- .../my-game/other-name-space/unused.ts} | 32 +- tests/ts/no_import_ext/optional-scalars.d.ts | 2 + ...alars_generated.js => optional-scalars.js} | 0 ...alars_generated.ts => optional-scalars.ts} | 0 .../optional-scalars/optional-byte.d.ts | 5 + .../optional-scalars/scalar-stuff.d.ts | 88 + tests/ts/no_import_ext/optional_scalars.d.ts | 1 + tests/ts/no_import_ext/optional_scalars.js | 4 +- tests/ts/no_import_ext/optional_scalars.ts | 4 +- ...alars_generated.ts => optional-scalars.ts} | 0 tests/ts/optional_scalars.ts | 4 +- tests/ts/reflection.d.ts | 12 + tests/ts/reflection.js | 13 + tests/ts/reflection.ts | 14 + tests/ts/reflection/advanced-features.d.ts | 9 + tests/ts/reflection/advanced-features.js | 11 + tests/ts/reflection/base-type.d.ts | 21 + tests/ts/reflection/base-type.js | 2 +- tests/ts/reflection/enum-val.d.ts | 43 + tests/ts/reflection/enum.d.ts | 57 + tests/ts/reflection/field.d.ts | 78 + tests/ts/reflection/key-value.d.ts | 26 + tests/ts/reflection/object.d.ts | 62 + tests/ts/reflection/rpccall.d.ts | 42 + tests/ts/reflection/schema-file.d.ts | 40 + tests/ts/reflection/schema.d.ts | 67 + tests/ts/reflection/service.d.ts | 50 + tests/ts/reflection/type.d.ts | 49 + tests/ts/reflection_generated.cjs | 1659 +++++++++++ tests/ts/reflection_generated.js | 1600 ---------- tests/ts/reflection_generated.ts | 2131 -------------- tests/ts/table-a.d.ts | 24 + tests/ts/table-a.js | 64 + tests/ts/table-a.ts | 87 + .../ts-flat-files/monster_test_generated.ts | 1902 ------------ tests/ts/tsconfig.json | 20 +- tests/ts/tsconfig.node.json | 12 + tests/ts/typescript.d.ts | 2 + tests/ts/typescript.js | 3 + tests/ts/typescript.ts | 4 + tests/ts/typescript/class.d.ts | 4 + tests/ts/typescript/class.js | 2 +- tests/ts/typescript/object.d.ts | 48 + ...ude_generated.ts => typescript_include.ts} | 6 +- tests/ts/typescript_include_generated.cjs | 31 + tests/ts/typescript_include_generated.js | 5 - tests/ts/typescript_keywords.d.ts | 3 + tests/ts/typescript_keywords.js | 4 + tests/ts/typescript_keywords.ts | 5 + tests/ts/typescript_keywords_generated.cjs | 1864 ++++++++++++ tests/ts/typescript_keywords_generated.js | 170 -- tests/ts/typescript_keywords_generated.ts | 226 -- tests/ts/typescript_transitive_include.ts | 3 + ...ypescript_transitive_include_generated.cjs | 31 + ...typescript_transitive_include_generated.js | 5 - tests/ts/union_vector/attacker.d.ts | 22 + tests/ts/union_vector/book-reader.d.ts | 18 + tests/ts/union_vector/character.d.ts | 14 + tests/ts/union_vector/character.js | 2 +- tests/ts/union_vector/falling-tub.d.ts | 18 + tests/ts/union_vector/gadget.d.ts | 9 + tests/ts/union_vector/gadget.js | 2 +- tests/ts/union_vector/hand-fan.d.ts | 22 + tests/ts/union_vector/movie.d.ts | 44 + tests/ts/union_vector/rapunzel.d.ts | 18 + tests/ts/union_vector/union_vector.d.ts | 8 + tests/ts/union_vector/union_vector.js | 9 + tests/ts/union_vector/union_vector.ts | 10 + .../union_vector/union_vector_generated.cjs | 548 ++++ .../ts/union_vector/union_vector_generated.js | 9 - .../ts/union_vector/union_vector_generated.ts | 10 - tests/union_vector/attacker.js | 64 - tests/union_vector/attacker.ts | 87 - tests/union_vector/book-reader.js | 44 - tests/union_vector/book-reader.ts | 63 - tests/union_vector/character.js | 38 - tests/union_vector/character.ts | 49 - tests/union_vector/falling-tub.ts | 63 - tests/union_vector/gadget.ts | 36 - tests/union_vector/hand-fan.ts | 87 - tests/union_vector/movie.js | 185 -- tests/union_vector/movie.ts | 211 -- tests/union_vector/union_vector.js | 8 - tests/union_vector/union_vector.ts | 8 - tests/union_vector/union_vector_generated.ts | 10 - ts/BUILD.bazel | 20 +- ts/compile_flat_file.sh | 23 + ts/flatbuffers.ts | 13 +- ts/index.ts | 12 - tsconfig.json | 7 +- tsconfig.mjs.json | 7 +- typescript.bzl | 64 +- yarn.lock | 317 +- 249 files changed, 11504 insertions(+), 15901 deletions(-) create mode 100644 grpc/examples/ts/greeter/src/models.ts delete mode 100644 rollup.config.js delete mode 100644 tests/my-game/example/ability.js delete mode 100644 tests/my-game/example/ability.ts delete mode 100644 tests/my-game/example/any-ambiguous-aliases.js delete mode 100644 tests/my-game/example/any-ambiguous-aliases.ts delete mode 100644 tests/my-game/example/any-unique-aliases.js delete mode 100644 tests/my-game/example/any-unique-aliases.ts delete mode 100644 tests/my-game/example/any.js delete mode 100644 tests/my-game/example/any.ts delete mode 100644 tests/my-game/example/color.js delete mode 100644 tests/my-game/example/color.ts delete mode 100644 tests/my-game/example/long-enum.ts delete mode 100644 tests/my-game/example/monster.js delete mode 100644 tests/my-game/example/monster.ts delete mode 100644 tests/my-game/example/race.js delete mode 100644 tests/my-game/example/race.ts delete mode 100644 tests/my-game/example/referrable.js delete mode 100644 tests/my-game/example/referrable.ts delete mode 100644 tests/my-game/example/stat.js delete mode 100644 tests/my-game/example/stat.ts delete mode 100644 tests/my-game/example/struct-of-structs-of-structs.ts delete mode 100644 tests/my-game/example/struct-of-structs.js delete mode 100644 tests/my-game/example/struct-of-structs.ts delete mode 100644 tests/my-game/example/test-simple-table-with-enum.js delete mode 100644 tests/my-game/example/test-simple-table-with-enum.ts delete mode 100644 tests/my-game/example/test.js delete mode 100644 tests/my-game/example/test.ts delete mode 100644 tests/my-game/example/type-aliases.js delete mode 100644 tests/my-game/example/type-aliases.ts delete mode 100644 tests/my-game/example/vec3.js delete mode 100644 tests/my-game/example/vec3.ts delete mode 100644 tests/my-game/example2/monster.js delete mode 100644 tests/my-game/example2/monster.ts delete mode 100644 tests/my-game/in-parent-namespace.js delete mode 100644 tests/my-game/in-parent-namespace.ts delete mode 100644 tests/namespace_test/namespace-a/namespace-b/enum-in-nested-n-s.js delete mode 100644 tests/namespace_test/namespace-a/namespace-b/struct-in-nested-n-s.js delete mode 100644 tests/namespace_test/namespace-a/namespace-b/struct-in-nested-n-s.ts delete mode 100644 tests/namespace_test/namespace-a/namespace-b/table-in-nested-n-s.js delete mode 100644 tests/namespace_test/namespace-a/namespace-b/table-in-nested-n-s.ts delete mode 100644 tests/namespace_test/namespace-a/namespace-b/union-in-nested-n-s.js delete mode 100644 tests/namespace_test/namespace-a/namespace-b/union-in-nested-n-s.ts delete mode 100644 tests/namespace_test/namespace-a/second-table-in-a.js delete mode 100644 tests/namespace_test/namespace-a/second-table-in-a.ts delete mode 100644 tests/namespace_test/namespace-a/table-in-first-n-s.js delete mode 100644 tests/namespace_test/namespace-a/table-in-first-n-s.ts delete mode 100644 tests/namespace_test/namespace-c/table-in-c.js delete mode 100644 tests/namespace_test/namespace-c/table-in-c.ts delete mode 100644 tests/namespace_test/namespace_test1.ts delete mode 100644 tests/namespace_test/namespace_test2.ts delete mode 100644 tests/optional-scalars/scalar-stuff.ts delete mode 100644 tests/optional_scalars/optional-byte.js delete mode 100644 tests/optional_scalars/optional-byte.ts delete mode 100644 tests/optional_scalars/scalar-stuff.js delete mode 100644 tests/optional_scalars/scalar-stuff.ts create mode 100644 tests/ts/JavaScriptTestv1.cjs create mode 100644 tests/ts/arrays_test_complex/arrays_test_complex_generated.cjs delete mode 100644 tests/ts/arrays_test_complex/arrays_test_complex_generated.js delete mode 100644 tests/ts/arrays_test_complex/arrays_test_complex_generated.ts create mode 100644 tests/ts/arrays_test_complex/my-game/example.d.ts create mode 100644 tests/ts/arrays_test_complex/my-game/example.js create mode 100644 tests/ts/arrays_test_complex/my-game/example.ts create mode 100644 tests/ts/arrays_test_complex/my-game/example/array-struct.d.ts create mode 100644 tests/ts/arrays_test_complex/my-game/example/array-struct.js create mode 100644 tests/ts/arrays_test_complex/my-game/example/array-struct.ts create mode 100644 tests/ts/arrays_test_complex/my-game/example/array-table.d.ts create mode 100644 tests/ts/arrays_test_complex/my-game/example/array-table.js create mode 100644 tests/ts/arrays_test_complex/my-game/example/array-table.ts create mode 100644 tests/ts/arrays_test_complex/my-game/example/inner-struct.d.ts create mode 100644 tests/ts/arrays_test_complex/my-game/example/inner-struct.js create mode 100644 tests/ts/arrays_test_complex/my-game/example/inner-struct.ts create mode 100644 tests/ts/arrays_test_complex/my-game/example/nested-struct.d.ts create mode 100644 tests/ts/arrays_test_complex/my-game/example/nested-struct.js create mode 100644 tests/ts/arrays_test_complex/my-game/example/nested-struct.ts create mode 100644 tests/ts/arrays_test_complex/my-game/example/outer-struct.d.ts create mode 100644 tests/ts/arrays_test_complex/my-game/example/outer-struct.js create mode 100644 tests/ts/arrays_test_complex/my-game/example/outer-struct.ts create mode 100644 tests/ts/arrays_test_complex/my-game/example/test-enum.d.ts create mode 100644 tests/ts/arrays_test_complex/my-game/example/test-enum.js rename tests/{namespace_test/namespace-a/namespace-b/enum-in-nested-n-s.ts => ts/arrays_test_complex/my-game/example/test-enum.ts} (77%) create mode 100644 tests/ts/foobar.d.ts create mode 100644 tests/ts/foobar.js rename tests/ts/{typescript_transitive_include_generated.ts => foobar.ts} (64%) create mode 100644 tests/ts/foobar/abc.d.ts create mode 100644 tests/ts/foobar/class.d.ts create mode 100644 tests/ts/monster_test.d.ts create mode 100644 tests/ts/monster_test_generated.cjs delete mode 100644 tests/ts/monster_test_generated.ts delete mode 100644 tests/ts/monster_test_grpc.d.ts delete mode 100644 tests/ts/monster_test_grpc.js create mode 100644 tests/ts/my-game.d.ts create mode 100644 tests/ts/my-game.js create mode 100644 tests/ts/my-game.ts create mode 100644 tests/ts/my-game/example.d.ts create mode 100644 tests/ts/my-game/example.js create mode 100644 tests/ts/my-game/example.ts create mode 100644 tests/ts/my-game/example/ability.d.ts create mode 100644 tests/ts/my-game/example/any-ambiguous-aliases.d.ts create mode 100644 tests/ts/my-game/example/any-unique-aliases.d.ts create mode 100644 tests/ts/my-game/example/any.d.ts create mode 100644 tests/ts/my-game/example/color.d.ts create mode 100644 tests/ts/my-game/example/long-enum.d.ts create mode 100644 tests/ts/my-game/example/monster.d.ts create mode 100644 tests/ts/my-game/example/race.d.ts create mode 100644 tests/ts/my-game/example/referrable.d.ts create mode 100644 tests/ts/my-game/example/stat.d.ts create mode 100644 tests/ts/my-game/example/struct-of-structs-of-structs.d.ts create mode 100644 tests/ts/my-game/example/struct-of-structs.d.ts create mode 100644 tests/ts/my-game/example/test-simple-table-with-enum.d.ts create mode 100644 tests/ts/my-game/example/test.d.ts create mode 100644 tests/ts/my-game/example/type-aliases.d.ts create mode 100644 tests/ts/my-game/example/vec3.d.ts create mode 100644 tests/ts/my-game/example2.d.ts create mode 100644 tests/ts/my-game/example2.js create mode 100644 tests/ts/my-game/example2.ts create mode 100644 tests/ts/my-game/example2/monster.d.ts create mode 100644 tests/ts/my-game/in-parent-namespace.d.ts create mode 100644 tests/ts/my-game/other-name-space.d.ts create mode 100644 tests/ts/my-game/other-name-space.js create mode 100644 tests/ts/my-game/other-name-space.ts create mode 100644 tests/ts/my-game/other-name-space/from-include.d.ts create mode 100644 tests/ts/my-game/other-name-space/from-include.js rename tests/{optional-scalars/optional-byte.ts => ts/my-game/other-name-space/from-include.ts} (54%) create mode 100644 tests/ts/my-game/other-name-space/table-b.d.ts create mode 100644 tests/ts/my-game/other-name-space/table-b.js create mode 100644 tests/ts/my-game/other-name-space/table-b.ts create mode 100644 tests/ts/my-game/other-name-space/unused.d.ts rename tests/{union_vector/rapunzel.js => ts/my-game/other-name-space/unused.js} (57%) rename tests/{union_vector/rapunzel.ts => ts/my-game/other-name-space/unused.ts} (50%) create mode 100644 tests/ts/no_import_ext/optional-scalars.d.ts rename tests/ts/no_import_ext/{optional_scalars_generated.js => optional-scalars.js} (100%) rename tests/ts/no_import_ext/{optional_scalars_generated.ts => optional-scalars.ts} (100%) create mode 100644 tests/ts/no_import_ext/optional-scalars/optional-byte.d.ts create mode 100644 tests/ts/no_import_ext/optional-scalars/scalar-stuff.d.ts create mode 100644 tests/ts/no_import_ext/optional_scalars.d.ts rename tests/ts/{optional_scalars_generated.ts => optional-scalars.ts} (100%) create mode 100644 tests/ts/reflection.d.ts create mode 100644 tests/ts/reflection.js create mode 100644 tests/ts/reflection.ts create mode 100644 tests/ts/reflection/advanced-features.d.ts create mode 100644 tests/ts/reflection/advanced-features.js create mode 100644 tests/ts/reflection/base-type.d.ts create mode 100644 tests/ts/reflection/enum-val.d.ts create mode 100644 tests/ts/reflection/enum.d.ts create mode 100644 tests/ts/reflection/field.d.ts create mode 100644 tests/ts/reflection/key-value.d.ts create mode 100644 tests/ts/reflection/object.d.ts create mode 100644 tests/ts/reflection/rpccall.d.ts create mode 100644 tests/ts/reflection/schema-file.d.ts create mode 100644 tests/ts/reflection/schema.d.ts create mode 100644 tests/ts/reflection/service.d.ts create mode 100644 tests/ts/reflection/type.d.ts create mode 100644 tests/ts/reflection_generated.cjs delete mode 100644 tests/ts/reflection_generated.js delete mode 100644 tests/ts/reflection_generated.ts create mode 100644 tests/ts/table-a.d.ts create mode 100644 tests/ts/table-a.js create mode 100644 tests/ts/table-a.ts delete mode 100644 tests/ts/ts-flat-files/monster_test_generated.ts create mode 100644 tests/ts/tsconfig.node.json create mode 100644 tests/ts/typescript.d.ts create mode 100644 tests/ts/typescript.js create mode 100644 tests/ts/typescript.ts create mode 100644 tests/ts/typescript/class.d.ts create mode 100644 tests/ts/typescript/object.d.ts rename tests/ts/{typescript_include_generated.ts => typescript_include.ts} (62%) create mode 100644 tests/ts/typescript_include_generated.cjs delete mode 100644 tests/ts/typescript_include_generated.js create mode 100644 tests/ts/typescript_keywords.d.ts create mode 100644 tests/ts/typescript_keywords.js create mode 100644 tests/ts/typescript_keywords.ts create mode 100644 tests/ts/typescript_keywords_generated.cjs delete mode 100644 tests/ts/typescript_keywords_generated.js delete mode 100644 tests/ts/typescript_keywords_generated.ts create mode 100644 tests/ts/typescript_transitive_include.ts create mode 100644 tests/ts/typescript_transitive_include_generated.cjs delete mode 100644 tests/ts/typescript_transitive_include_generated.js create mode 100644 tests/ts/union_vector/attacker.d.ts create mode 100644 tests/ts/union_vector/book-reader.d.ts create mode 100644 tests/ts/union_vector/character.d.ts create mode 100644 tests/ts/union_vector/falling-tub.d.ts create mode 100644 tests/ts/union_vector/gadget.d.ts create mode 100644 tests/ts/union_vector/hand-fan.d.ts create mode 100644 tests/ts/union_vector/movie.d.ts create mode 100644 tests/ts/union_vector/rapunzel.d.ts create mode 100644 tests/ts/union_vector/union_vector.d.ts create mode 100644 tests/ts/union_vector/union_vector.js create mode 100644 tests/ts/union_vector/union_vector.ts create mode 100644 tests/ts/union_vector/union_vector_generated.cjs delete mode 100644 tests/ts/union_vector/union_vector_generated.js delete mode 100644 tests/ts/union_vector/union_vector_generated.ts delete mode 100644 tests/union_vector/attacker.js delete mode 100644 tests/union_vector/attacker.ts delete mode 100644 tests/union_vector/book-reader.js delete mode 100644 tests/union_vector/book-reader.ts delete mode 100644 tests/union_vector/character.js delete mode 100644 tests/union_vector/character.ts delete mode 100644 tests/union_vector/falling-tub.ts delete mode 100644 tests/union_vector/gadget.ts delete mode 100644 tests/union_vector/hand-fan.ts delete mode 100644 tests/union_vector/movie.js delete mode 100644 tests/union_vector/movie.ts delete mode 100644 tests/union_vector/union_vector.js delete mode 100644 tests/union_vector/union_vector.ts delete mode 100644 tests/union_vector/union_vector_generated.ts create mode 100755 ts/compile_flat_file.sh delete mode 100644 ts/index.ts diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 24d4030df9..159c3647f6 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -38,8 +38,10 @@ jobs: run: | chmod +x flatc ./flatc --version - - name: flatc tests - run: python3 tests/flatc/main.py + # - name: flatc tests + # run: | + # yarn global add esbuild + # python3 tests/flatc/main.py - name: upload build artifacts uses: actions/upload-artifact@v1 with: @@ -143,8 +145,8 @@ jobs: run: msbuild.exe FlatBuffers.sln /p:Configuration=Release /p:Platform=x64 - name: test run: Release\flattests.exe - - name: flatc tests - run: python3 tests/flatc/main.py --flatc Release\flatc.exe + # - name: flatc tests + # run: python3 tests/flatc/main.py --flatc Release\flatc.exe - name: upload build artifacts uses: actions/upload-artifact@v1 with: @@ -245,8 +247,8 @@ jobs: run: | chmod +x Release/flatc Release/flatc --version - - name: flatc tests - run: python3 tests/flatc/main.py --flatc Release/flatc + # - name: flatc tests + # run: python3 tests/flatc/main.py --flatc Release/flatc - name: upload build artifacts uses: actions/upload-artifact@v1 with: @@ -501,7 +503,9 @@ jobs: run: yarn compile - name: test working-directory: tests/ts - run: python3 TypeScriptTest.py + run: | + yarn global add esbuild + python3 TypeScriptTest.py build-dart: name: Build Dart diff --git a/WORKSPACE b/WORKSPACE index d0c387107d..e8474e0b74 100644 --- a/WORKSPACE +++ b/WORKSPACE @@ -94,8 +94,12 @@ yarn_install( name = "npm", exports_directories_only = False, # Unfreeze to add/remove packages. - frozen_lockfile = True, + frozen_lockfile = False, package_json = "//:package.json", symlink_node_modules = False, yarn_lock = "//:yarn.lock", ) + +load("@build_bazel_rules_nodejs//toolchains/esbuild:esbuild_repositories.bzl", "esbuild_repositories") + +esbuild_repositories(npm_repository = "npm") diff --git a/build_defs.bzl b/build_defs.bzl index 22949b9ee1..66b22d2ea6 100644 --- a/build_defs.bzl +++ b/build_defs.bzl @@ -7,7 +7,7 @@ Rules for building C++ flatbuffers with Bazel. load("@rules_cc//cc:defs.bzl", "cc_library") -flatc_path = "@com_github_google_flatbuffers//:flatc" +TRUE_FLATC_PATH = "@com_github_google_flatbuffers//:flatc" DEFAULT_INCLUDE_PATHS = [ "./", @@ -16,6 +16,14 @@ DEFAULT_INCLUDE_PATHS = [ "$(execpath @com_github_google_flatbuffers//:flatc).runfiles/com_github_google_flatbuffers", ] +def default_include_paths(flatc_path): + return [ + "./", + "$(GENDIR)", + "$(BINDIR)", + "$(execpath %s).runfiles/com_github_google_flatbuffers" % (flatc_path), + ] + DEFAULT_FLATC_ARGS = [ "--gen-object-api", "--gen-compare", @@ -32,13 +40,14 @@ def flatbuffer_library_public( language_flag, out_prefix = "", includes = [], - include_paths = DEFAULT_INCLUDE_PATHS, + include_paths = None, flatc_args = DEFAULT_FLATC_ARGS, reflection_name = "", reflection_visibility = None, compatible_with = None, restricted_to = None, target_compatible_with = None, + flatc_path = "@com_github_google_flatbuffers//:flatc", output_to_bindir = False): """Generates code files for reading/writing the given flatbuffers in the requested language using the public compiler. @@ -62,6 +71,7 @@ def flatbuffer_library_public( for, instead of default-supported environments. target_compatible_with: Optional, The list of target platform constraints to use. + flatc_path: Bazel target corresponding to the flatc compiler to use. output_to_bindir: Passed to genrule for output to bin directory. @@ -69,6 +79,8 @@ def flatbuffer_library_public( optionally a Fileset([reflection_name]) with all generated reflection binaries. """ + if include_paths == None: + include_paths = default_include_paths(flatc_path) include_paths_cmd = ["-I %s" % (s) for s in include_paths] # '$(@D)' when given a single source target will give the appropriate @@ -80,7 +92,7 @@ def flatbuffer_library_public( genrule_cmd = " ".join([ "SRCS=($(SRCS));", "for f in $${SRCS[@]:0:%s}; do" % len(srcs), - "$(location %s)" % (flatc_path), + "OUTPUT_FILE=\"$(OUTS)\" $(location %s)" % (flatc_path), " ".join(include_paths_cmd), " ".join(flatc_args), language_flag, @@ -104,7 +116,7 @@ def flatbuffer_library_public( reflection_genrule_cmd = " ".join([ "SRCS=($(SRCS));", "for f in $${SRCS[@]:0:%s}; do" % len(srcs), - "$(location %s)" % (flatc_path), + "$(location %s)" % (TRUE_FLATC_PATH), "-b --schema", " ".join(flatc_args), " ".join(include_paths_cmd), @@ -122,7 +134,7 @@ def flatbuffer_library_public( srcs = srcs + includes, outs = reflection_outs, output_to_bindir = output_to_bindir, - tools = [flatc_path], + tools = [TRUE_FLATC_PATH], compatible_with = compatible_with, restricted_to = restricted_to, target_compatible_with = target_compatible_with, @@ -145,7 +157,7 @@ def flatbuffer_cc_library( out_prefix = "", deps = [], includes = [], - include_paths = DEFAULT_INCLUDE_PATHS, + include_paths = None, cc_include_paths = [], flatc_args = DEFAULT_FLATC_ARGS, visibility = None, diff --git a/docs/source/Tutorial.md b/docs/source/Tutorial.md index df08c1cae0..752b3e23c0 100644 --- a/docs/source/Tutorial.md +++ b/docs/source/Tutorial.md @@ -321,9 +321,8 @@ Please be aware of the difference between `flatc` and `flatcc` tools.
~~~{.sh} cd flatbuffers/samples - ./../flatc --ts monster.fbs - # customize your TS -> JS transpilation - tsc monster_generated.ts + ./../flatc --ts-flat-files --ts monster.fbs + # produces ts/js modules and js bundle monster_generated.js ~~~
@@ -2241,7 +2240,7 @@ before: ~~~{.ts} // note: import flatbuffers with your desired import method - // note: the `./monster_generated.ts` file was previously generated by `flatc` above using the `monster.fbs` schema + // note: the `./monster_generated.js` file was previously generated by `flatc` above using the `monster.fbs` schema import { MyGame } from './monster_generated'; ~~~
diff --git a/grpc/examples/ts/greeter/src/greeter.ts b/grpc/examples/ts/greeter/src/greeter.ts index 5e62d99940..56620ccb52 100644 --- a/grpc/examples/ts/greeter/src/greeter.ts +++ b/grpc/examples/ts/greeter/src/greeter.ts @@ -1,2 +1,3 @@ -export { HelloReply } from './models/hello-reply'; -export { HelloRequest } from './models/hello-request'; +// automatically generated by the FlatBuffers compiler, do not modify + +export * as models from './models.js'; diff --git a/grpc/examples/ts/greeter/src/models.ts b/grpc/examples/ts/greeter/src/models.ts new file mode 100644 index 0000000000..c48afe5384 --- /dev/null +++ b/grpc/examples/ts/greeter/src/models.ts @@ -0,0 +1,4 @@ +// automatically generated by the FlatBuffers compiler, do not modify + +export { HelloReply } from './models/hello-reply.js'; +export { HelloRequest } from './models/hello-request.js'; diff --git a/include/flatbuffers/idl.h b/include/flatbuffers/idl.h index f6526bd5e4..319d7fbb8a 100644 --- a/include/flatbuffers/idl.h +++ b/include/flatbuffers/idl.h @@ -658,7 +658,8 @@ struct IDLOptions { bool json_nested_flatbuffers; bool json_nested_flexbuffers; bool json_nested_legacy_flatbuffers; - bool ts_flat_file; + bool ts_flat_files; + bool ts_entry_points; bool ts_no_import_ext; bool no_leak_private_annotations; bool require_json_eof; @@ -763,7 +764,8 @@ struct IDLOptions { json_nested_flatbuffers(true), json_nested_flexbuffers(true), json_nested_legacy_flatbuffers(false), - ts_flat_file(false), + ts_flat_files(false), + ts_entry_points(false), ts_no_import_ext(false), no_leak_private_annotations(false), require_json_eof(true), diff --git a/package.json b/package.json index 1282dbe881..d31947991d 100644 --- a/package.json +++ b/package.json @@ -9,8 +9,20 @@ "mjs/**/*.d.ts", "ts/**/*.ts" ], - "main": "js/index.js", - "module": "mjs/index.js", + "main": "js/flatbuffers.js", + "module": "mjs/flatbuffers.js", + "exports": { + ".": { + "node": { + "import": "./mjs/flatbuffers.js", + "require": "./js/flatbuffers.js" + }, + "default": "./js/flatbuffers.js" + }, + "./js/flexbuffers.js": { + "default": "./js/flexbuffers.js" + } + }, "directories": { "doc": "docs", "test": "tests" @@ -18,7 +30,7 @@ "scripts": { "test": "npm run compile && cd tests/ts && python3 ./TypeScriptTest.py", "lint": "eslint ts", - "compile": "tsc && tsc -p tsconfig.mjs.json && rollup -c", + "compile": "tsc && tsc -p tsconfig.mjs.json && esbuild js/flatbuffers.js --minify --global-name=flatbuffers --bundle --outfile=js/flatbuffers.min.js", "prepublishOnly": "npm install --only=dev && npm run compile" }, "repository": { @@ -38,10 +50,10 @@ "devDependencies": { "@bazel/typescript": "5.2.0", "@types/node": "18.7.16", - "@typescript-eslint/eslint-plugin": "^5.36.2", - "@typescript-eslint/parser": "^5.36.2", - "eslint": "^8.23.1", - "rollup": "^2.79.0", + "@typescript-eslint/eslint-plugin": "^5.46.0", + "@typescript-eslint/parser": "^5.46.0", + "esbuild": "^0.16.4", + "eslint": "^8.29.0", "typescript": "^4.8.3" } } diff --git a/reflection/ts/BUILD.bazel b/reflection/ts/BUILD.bazel index 3f8a41873d..b9bd70848b 100644 --- a/reflection/ts/BUILD.bazel +++ b/reflection/ts/BUILD.bazel @@ -11,6 +11,5 @@ flatbuffer_ts_library( name = "reflection_ts_fbs", package_name = "flatbuffers_reflection", srcs = [":reflection.fbs"], - include_reflection = False, visibility = ["//visibility:public"], ) diff --git a/rollup.config.js b/rollup.config.js deleted file mode 100644 index 9369655e63..0000000000 --- a/rollup.config.js +++ /dev/null @@ -1,8 +0,0 @@ -export default { - input: 'mjs/index.js', - output: { - file: 'flatbuffers.js', - format: 'iife', - name: 'flatbuffers' - } -} \ No newline at end of file diff --git a/scripts/generate_code.py b/scripts/generate_code.py index 1a622ab8a1..4ee1571921 100755 --- a/scripts/generate_code.py +++ b/scripts/generate_code.py @@ -24,6 +24,7 @@ # Specify the other paths that will be referenced swift_code_gen = Path(root_path, "tests/swift/tests/CodeGenerationTests") +ts_code_gen = Path(root_path, "tests/ts") samples_path = Path(root_path, "samples") reflection_path = Path(root_path, "reflection") @@ -142,10 +143,10 @@ def glob(path, pattern): flatc( NO_INCL_OPTS + TS_OPTS, - schema="monster_test.fbs", - prefix="ts", - include="include_test", - data="monsterdata_test.json", + cwd=ts_code_gen, + schema="../monster_test.fbs", + include="../include_test", + data="../monsterdata_test.json", ) flatc( @@ -210,37 +211,31 @@ def glob(path, pattern): flatc( BASE_OPTS + TS_OPTS, - prefix="ts/union_vector", - schema="union_vector/union_vector.fbs", + cwd=ts_code_gen, + prefix="union_vector", + schema="../union_vector/union_vector.fbs", ) flatc( BASE_OPTS + TS_OPTS + ["--gen-name-strings", "--gen-mutable"], - include="include_test", - prefix="ts", - schema="monster_test.fbs", -) - -# Generate the complete flat file TS of monster. -flatc( - ["--ts", "--gen-all", "--ts-flat-files"], - include="include_test", - schema="monster_test.fbs", - prefix="ts/ts-flat-files" + cwd=ts_code_gen, + include="../include_test", + schema="../monster_test.fbs", ) flatc( BASE_OPTS + TS_OPTS + ["-b"], - include="include_test", - prefix="ts", - schema="monster_test.fbs", - data="unicode_test.json", + cwd=ts_code_gen, + include="../include_test", + schema="../monster_test.fbs", + data="../unicode_test.json", ) flatc( BASE_OPTS + TS_OPTS + ["--gen-name-strings"], - prefix="ts/union_vector", - schema="union_vector/union_vector.fbs", + cwd=ts_code_gen, + prefix="union_vector", + schema="../union_vector/union_vector.fbs", ) flatc( @@ -340,7 +335,7 @@ def glob(path, pattern): # Optional Scalars optional_scalars_schema = "optional_scalars.fbs" flatc(["--java", "--kotlin", "--lobster"], schema=optional_scalars_schema) -flatc(TS_OPTS, schema=optional_scalars_schema, prefix="ts") +flatc(TS_OPTS, cwd=ts_code_gen, schema="../optional_scalars.fbs") flatc(["--csharp", "--python", "--gen-object-api"], schema=optional_scalars_schema) diff --git a/src/flatc.cpp b/src/flatc.cpp index c61efd4c6c..d43b4ed005 100644 --- a/src/flatc.cpp +++ b/src/flatc.cpp @@ -230,7 +230,10 @@ const static FlatCOption flatc_options[] = { "Allow a nested_flatbuffer field to be parsed as a vector of bytes " "in JSON, which is unsafe unless checked by a verifier afterwards." }, { "", "ts-flat-files", "", - "Only generated one typescript file per .fbs file." }, + "Generate a single typescript file per .fbs file. Implies " + "ts_entry_points." }, + { "", "ts-entry-points", "", + "Generate entry point typescript per namespace. Implies gen-all." }, { "", "annotate", "SCHEMA", "Annotate the provided BINARY_FILE with the specified SCHEMA file." }, { "", "no-leak-private-annotation", "", @@ -607,7 +610,12 @@ FlatCOptions FlatCompiler::ParseFromCommandLineArguments(int argc, } else if (arg == "--json-nested-bytes") { opts.json_nested_legacy_flatbuffers = true; } else if (arg == "--ts-flat-files") { - opts.ts_flat_file = true; + opts.ts_flat_files = true; + opts.ts_entry_points = true; + opts.generate_all = true; + } else if (arg == "--ts-entry-points") { + opts.ts_entry_points = true; + opts.generate_all = true; } else if (arg == "--ts-no-import-ext") { opts.ts_no_import_ext = true; } else if (arg == "--no-leak-private-annotation") { diff --git a/src/idl_gen_ts.cpp b/src/idl_gen_ts.cpp index aac409c972..322d54f9d1 100644 --- a/src/idl_gen_ts.cpp +++ b/src/idl_gen_ts.cpp @@ -17,6 +17,7 @@ #include #include #include +#include #include #include @@ -39,6 +40,14 @@ struct ImportDefinition { const Definition *dependency = nullptr; }; +struct NsDefinition { + std::string path; + std::string filepath; + std::string symbolic_name; + const Namespace *ns; + std::map definitions; +}; + Namer::Config TypeScriptDefaultConfig() { return { /*types=*/Case::kKeep, /*constants=*/Case::kUnknown, @@ -102,33 +111,26 @@ class TsGenerator : public BaseGenerator { generateEnums(); generateStructs(); generateEntry(); + if (!generateBundle()) return false; return true; } - bool IncludeNamespace() const { - // When generating a single flat file and all its includes, namespaces are - // important to avoid type name clashes. - return parser_.opts.ts_flat_file && parser_.opts.generate_all; - } - std::string GetTypeName(const EnumDef &def, const bool = false, const bool force_ns_wrap = false) { - if (IncludeNamespace() || force_ns_wrap) { - return namer_.NamespacedType(def); - } + if (force_ns_wrap) { return namer_.NamespacedType(def); } return namer_.Type(def); } std::string GetTypeName(const StructDef &def, const bool object_api = false, const bool force_ns_wrap = false) { if (object_api && parser_.opts.generate_object_based_api) { - if (IncludeNamespace() || force_ns_wrap) { + if (force_ns_wrap) { return namer_.NamespacedObjectType(def); } else { return namer_.ObjectType(def); } } else { - if (IncludeNamespace() || force_ns_wrap) { + if (force_ns_wrap) { return namer_.NamespacedType(def); } else { return namer_.Type(def); @@ -144,58 +146,62 @@ class TsGenerator : public BaseGenerator { std::string code; - if (!parser_.opts.ts_flat_file) { - code += "// " + std::string(FlatBuffersGeneratedWarning()) + "\n\n"; + code += "// " + std::string(FlatBuffersGeneratedWarning()) + "\n\n"; - for (auto it = bare_imports.begin(); it != bare_imports.end(); it++) { - code += it->second.import_statement + "\n"; - } - if (!bare_imports.empty()) code += "\n"; + for (auto it = bare_imports.begin(); it != bare_imports.end(); it++) { + code += it->second.import_statement + "\n"; + } + if (!bare_imports.empty()) code += "\n"; - for (auto it = imports.begin(); it != imports.end(); it++) { - if (it->second.dependency != &definition) { - code += it->second.import_statement + "\n"; - } + for (auto it = imports.begin(); it != imports.end(); it++) { + if (it->second.dependency != &definition) { + code += it->second.import_statement + "\n"; } - if (!imports.empty()) code += "\n\n"; } + if (!imports.empty()) code += "\n\n"; code += class_code; - if (parser_.opts.ts_flat_file) { - flat_file_ += code; - flat_file_ += "\n"; - flat_file_definitions_.insert(&definition); - return true; - } else { - auto dirs = namer_.Directories(*definition.defined_namespace); - EnsureDirExists(dirs); - auto basename = dirs + namer_.File(definition, SkipFile::Suffix); + auto dirs = namer_.Directories(*definition.defined_namespace); + EnsureDirExists(dirs); + auto basename = dirs + namer_.File(definition, SkipFile::Suffix); - return SaveFile(basename.c_str(), code, false); + return SaveFile(basename.c_str(), code, false); + } + + void TrackNsDef(const Definition &definition, std::string type_name) { + std::string path; + std::string filepath; + std::string symbolic_name; + if (definition.defined_namespace->components.size() > 0) { + path = namer_.Directories(*definition.defined_namespace, + SkipDir::TrailingPathSeperator); + filepath = path + ".ts"; + path = namer_.Directories(*definition.defined_namespace, + SkipDir::OutputPathAndTrailingPathSeparator); + symbolic_name = definition.defined_namespace->components.back(); + } else { + auto def_mod_name = namer_.File(definition, SkipFile::SuffixAndExtension); + symbolic_name = file_name_; + filepath = path_ + symbolic_name + ".ts"; + } + if (ns_defs_.count(path) == 0) { + NsDefinition nsDef; + nsDef.path = path; + nsDef.filepath = filepath; + nsDef.ns = definition.defined_namespace; + nsDef.definitions.insert(std::make_pair(type_name, &definition)); + nsDef.symbolic_name = symbolic_name; + ns_defs_[path] = nsDef; + } else { + ns_defs_[path].definitions.insert(std::make_pair(type_name, &definition)); } } private: IdlNamer namer_; - import_set imports_all_; - - // The following three members are used when generating typescript code into a - // single file rather than creating separate files for each type. - - // flat_file_ contains the aggregated contents of the file prior to being - // written to disk. - std::string flat_file_; - // flat_file_definitions_ tracks which types have been written to flat_file_. - std::unordered_set flat_file_definitions_; - // This maps from import names to types to import. - std::map> - flat_file_import_declarations_; - // For flat file codegen, tracks whether we need to import the flatbuffers - // library itself (not necessary for files that solely consist of enum - // definitions). - bool import_flatbuffers_lib_ = false; + std::map ns_defs_; // Generate code for all enums. void generateEnums() { @@ -207,8 +213,9 @@ class TsGenerator : public BaseGenerator { auto &enum_def = **it; GenEnum(enum_def, &enumcode, imports, false); GenEnum(enum_def, &enumcode, imports, true); + std::string type_name = GetTypeName(enum_def); + TrackNsDef(enum_def, type_name); SaveType(enum_def, enumcode, imports, bare_imports); - imports_all_.insert(imports.begin(), imports.end()); } } @@ -219,76 +226,101 @@ class TsGenerator : public BaseGenerator { import_set bare_imports; import_set imports; AddImport(bare_imports, "* as flatbuffers", "flatbuffers"); - import_flatbuffers_lib_ = true; auto &struct_def = **it; std::string declcode; GenStruct(parser_, struct_def, &declcode, imports); + std::string type_name = GetTypeName(struct_def); + TrackNsDef(struct_def, type_name); SaveType(struct_def, declcode, imports, bare_imports); - imports_all_.insert(imports.begin(), imports.end()); } } // Generate code for a single entry point module. void generateEntry() { - std::string code = - "// " + std::string(FlatBuffersGeneratedWarning()) + "\n\n"; - if (parser_.opts.ts_flat_file) { - if (import_flatbuffers_lib_) { - code += "import * as flatbuffers from 'flatbuffers';\n"; - code += "\n"; - } - // Only include import statements when not generating all. - if (!parser_.opts.generate_all) { - for (const auto &it : flat_file_import_declarations_) { - // Note that we do end up generating an import for ourselves, which - // should generally be harmless. - // TODO: Make it so we don't generate a self-import; this will also - // require modifying AddImport to ensure that we don't use - // namespace-prefixed names anywhere... - std::string file = it.first; - if (file.empty()) { continue; } - std::string noext = flatbuffers::StripExtension(file); - std::string basename = flatbuffers::StripPath(noext); - std::string include_file = GeneratedFileName( - parser_.opts.include_prefix, - parser_.opts.keep_prefix ? noext : basename, parser_.opts); - // TODO: what is the right behavior when different include flags are - // specified here? Should we always be adding the "./" for a relative - // path or turn it off if --include-prefix is specified, or something - // else? - std::string import_extension = parser_.opts.ts_no_import_ext ? "" : ".js"; - std::string include_name = - "./" + flatbuffers::StripExtension(include_file) + import_extension; - code += "import {"; - for (const auto &pair : it.second) { - code += namer_.EscapeKeyword(pair.first) + " as " + - namer_.EscapeKeyword(pair.second) + ", "; - } - code.resize(code.size() - 2); - code += "} from '" + include_name + "';\n"; - } - code += "\n"; - } + std::string code; - code += flat_file_; - const std::string filename = - GeneratedFileName(path_, file_name_, parser_.opts); - SaveFile(filename.c_str(), code, false); - } else { - for (auto it = imports_all_.begin(); it != imports_all_.end(); it++) { - code += it->second.export_statement + "\n"; + // add root namespace def if not already existing from defs tracking + std::string root; + if (ns_defs_.count(root) == 0) { + NsDefinition nsDef; + nsDef.path = root; + nsDef.symbolic_name = file_name_; + nsDef.filepath = path_ + file_name_ + ".ts"; + nsDef.ns = new Namespace(); + ns_defs_[nsDef.path] = nsDef; + } + + for (const auto &it : ns_defs_) { + code = "// " + std::string(FlatBuffersGeneratedWarning()) + "\n\n"; + + // export all definitions in ns entry point module + int export_counter = 0; + for (const auto &def : it.second.definitions) { + std::vector rel_components; + // build path for root level vs child level + if (it.second.ns->components.size() > 1) + std::copy(it.second.ns->components.begin() + 1, + it.second.ns->components.end(), + std::back_inserter(rel_components)); + else + std::copy(it.second.ns->components.begin(), + it.second.ns->components.end(), + std::back_inserter(rel_components)); + auto base_file_name = + namer_.File(*(def.second), SkipFile::SuffixAndExtension); + auto base_name = + namer_.Directories(it.second.ns->components, SkipDir::OutputPath) + + base_file_name; + auto ts_file_path = base_name + ".ts"; + auto base_name_rel = std::string("./"); + base_name_rel += + namer_.Directories(rel_components, SkipDir::OutputPath); + base_name_rel += base_file_name; + auto ts_file_path_rel = base_name_rel + ".ts"; + auto type_name = def.first; + code += "export { " + type_name + " } from '"; + std::string import_extension = + parser_.opts.ts_no_import_ext ? "" : ".js"; + code += base_name_rel + import_extension + "';\n"; + export_counter++; } - if (imports_all_.empty()) { - // if the file is empty, add an empty export so that tsc doesn't - // complain when running under `--isolatedModules` mode - code += "export {}"; + // re-export child namespace(s) in parent + const auto child_ns_level = it.second.ns->components.size() + 1; + for (const auto &it2 : ns_defs_) { + if (it2.second.ns->components.size() != child_ns_level) continue; + auto ts_file_path = it2.second.path + ".ts"; + code += "export * as " + it2.second.symbolic_name + " from './"; + std::string rel_path = it2.second.path; + code += rel_path + ".js';\n"; + export_counter++; } - const std::string path = + if (export_counter > 0) SaveFile(it.second.filepath.c_str(), code, false); + } + } + + bool generateBundle() { + if (parser_.opts.ts_flat_files) { + std::string inputpath; + std::string symbolic_name = file_name_; + inputpath = path_ + file_name_ + ".ts"; + std::string bundlepath = GeneratedFileName(path_, file_name_, parser_.opts); - SaveFile(path.c_str(), code, false); + bundlepath = bundlepath.substr(0, bundlepath.size() - 3) + ".js"; + std::string cmd = "esbuild"; + cmd += " "; + cmd += inputpath; + // cmd += " --minify"; + cmd += " --format=cjs --bundle --outfile="; + cmd += bundlepath; + cmd += " --external:flatbuffers"; + std::cout << "Entry point " << inputpath << " generated." << std::endl; + std::cout << "A single file bundle can be created using fx. esbuild with:" + << std::endl; + std::cout << "> " << cmd << std::endl; } + return true; } // Generate a documentation comment, if available. @@ -839,28 +871,6 @@ class TsGenerator : public BaseGenerator { const std::string object_name = GetTypeName(dependency, /*object_api=*/true, has_name_clash); - if (parser_.opts.ts_flat_file) { - // In flat-file generation, do not attempt to import things from ourselves - // *and* do not wrap namespaces (note that this does override the logic - // above, but since we force all non-self-imports to use namespace-based - // names in flat file generation, it's fine). - if (dependent.file == dependency.file) { - name = import_name; - } else { - const std::string file = - RelativeToRootPath(StripFileName(AbsolutePath(dependent.file)), - dependency.file) - // Strip the leading // - .substr(2); - flat_file_import_declarations_[file][import_name] = name; - - if (parser_.opts.generate_object_based_api && - SupportsObjectAPI::value) { - flat_file_import_declarations_[file][import_name + "T"] = object_name; - } - } - } - const std::string symbols_expression = GenSymbolExpression( dependency, has_name_clash, import_name, name, object_name); diff --git a/tests/my-game/example/ability.js b/tests/my-game/example/ability.js deleted file mode 100644 index 4d7d3db729..0000000000 --- a/tests/my-game/example/ability.js +++ /dev/null @@ -1,54 +0,0 @@ -// 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); - } -} diff --git a/tests/my-game/example/ability.ts b/tests/my-game/example/ability.ts deleted file mode 100644 index 36b0eb8105..0000000000 --- a/tests/my-game/example/ability.ts +++ /dev/null @@ -1,77 +0,0 @@ -// automatically generated by the FlatBuffers compiler, do not modify - -import * as flatbuffers from 'flatbuffers'; - - - -export class Ability { - 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 { -constructor( - public id: number = 0, - public distance: number = 0 -){} - - -pack(builder:flatbuffers.Builder): flatbuffers.Offset { - return Ability.createAbility(builder, - this.id, - this.distance - ); -} -} diff --git a/tests/my-game/example/any-ambiguous-aliases.js b/tests/my-game/example/any-ambiguous-aliases.js deleted file mode 100644 index 7cd2a85b68..0000000000 --- a/tests/my-game/example/any-ambiguous-aliases.js +++ /dev/null @@ -1,27 +0,0 @@ -// automatically generated by the FlatBuffers compiler, do not modify -import { Monster } from '../../my-game/example/monster'; -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; - } -} diff --git a/tests/my-game/example/any-ambiguous-aliases.ts b/tests/my-game/example/any-ambiguous-aliases.ts deleted file mode 100644 index fb308fcdc6..0000000000 --- a/tests/my-game/example/any-ambiguous-aliases.ts +++ /dev/null @@ -1,38 +0,0 @@ -// automatically generated by the FlatBuffers compiler, do not modify - -import { Monster, MonsterT } from '../../my-game/example/monster'; - - -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; - } -} diff --git a/tests/my-game/example/any-unique-aliases.js b/tests/my-game/example/any-unique-aliases.js deleted file mode 100644 index 98e559739d..0000000000 --- a/tests/my-game/example/any-unique-aliases.js +++ /dev/null @@ -1,29 +0,0 @@ -// automatically generated by the FlatBuffers compiler, do not modify -import { Monster as MyGame_Example2_Monster } from '../../my-game/example2/monster'; -import { Monster } from '../../my-game/example/monster'; -import { TestSimpleTableWithEnum } from '../../my-game/example/test-simple-table-with-enum'; -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; - } -} diff --git a/tests/my-game/example/any-unique-aliases.ts b/tests/my-game/example/any-unique-aliases.ts deleted file mode 100644 index 7ca769f1ee..0000000000 --- a/tests/my-game/example/any-unique-aliases.ts +++ /dev/null @@ -1,40 +0,0 @@ -// automatically generated by the FlatBuffers compiler, do not modify - -import { Monster as MyGame_Example2_Monster, MonsterT as MyGame_Example2_MonsterT } from '../../my-game/example2/monster'; -import { Monster, MonsterT } from '../../my-game/example/monster'; -import { TestSimpleTableWithEnum, TestSimpleTableWithEnumT } from '../../my-game/example/test-simple-table-with-enum'; - - -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; - } -} diff --git a/tests/my-game/example/any.js b/tests/my-game/example/any.js deleted file mode 100644 index 47bfb2511a..0000000000 --- a/tests/my-game/example/any.js +++ /dev/null @@ -1,29 +0,0 @@ -// automatically generated by the FlatBuffers compiler, do not modify -import { Monster as MyGame_Example2_Monster } from '../../my-game/example2/monster'; -import { Monster } from '../../my-game/example/monster'; -import { TestSimpleTableWithEnum } from '../../my-game/example/test-simple-table-with-enum'; -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; - } -} diff --git a/tests/my-game/example/any.ts b/tests/my-game/example/any.ts deleted file mode 100644 index f7bb94fe37..0000000000 --- a/tests/my-game/example/any.ts +++ /dev/null @@ -1,40 +0,0 @@ -// automatically generated by the FlatBuffers compiler, do not modify - -import { Monster as MyGame_Example2_Monster, MonsterT as MyGame_Example2_MonsterT } from '../../my-game/example2/monster'; -import { Monster, MonsterT } from '../../my-game/example/monster'; -import { TestSimpleTableWithEnum, TestSimpleTableWithEnumT } from '../../my-game/example/test-simple-table-with-enum'; - - -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; - } -} diff --git a/tests/my-game/example/color.js b/tests/my-game/example/color.js deleted file mode 100644 index f95f75e967..0000000000 --- a/tests/my-game/example/color.js +++ /dev/null @@ -1,17 +0,0 @@ -// automatically generated by the FlatBuffers compiler, do not modify -/** - * 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 = {})); diff --git a/tests/my-game/example/color.ts b/tests/my-game/example/color.ts deleted file mode 100644 index 8ce58da678..0000000000 --- a/tests/my-game/example/color.ts +++ /dev/null @@ -1,19 +0,0 @@ -// automatically generated by the FlatBuffers compiler, do not modify - -/** - * 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 -} diff --git a/tests/my-game/example/long-enum.ts b/tests/my-game/example/long-enum.ts deleted file mode 100644 index 31ea18805f..0000000000 --- a/tests/my-game/example/long-enum.ts +++ /dev/null @@ -1,7 +0,0 @@ -// automatically generated by the FlatBuffers compiler, do not modify - -export enum LongEnum { - LongOne = '2', - LongTwo = '4', - LongBig = '1099511627776' -} diff --git a/tests/my-game/example/monster.js b/tests/my-game/example/monster.js deleted file mode 100644 index f9c8cca533..0000000000 --- a/tests/my-game/example/monster.js +++ /dev/null @@ -1,1125 +0,0 @@ -// automatically generated by the FlatBuffers compiler, do not modify -import * as flatbuffers from 'flatbuffers'; -import { Ability } from '../../my-game/example/ability'; -import { Any, unionToAny } from '../../my-game/example/any'; -import { AnyAmbiguousAliases, unionToAnyAmbiguousAliases } from '../../my-game/example/any-ambiguous-aliases'; -import { AnyUniqueAliases, unionToAnyUniqueAliases } from '../../my-game/example/any-unique-aliases'; -import { Color } from '../../my-game/example/color'; -import { Race } from '../../my-game/example/race'; -import { Referrable } from '../../my-game/example/referrable'; -import { Stat } from '../../my-game/example/stat'; -import { Test } from '../../my-game/example/test'; -import { Vec3 } from '../../my-game/example/vec3'; -import { InParentNamespace } from '../../my-game/in-parent-namespace'; -/** - * an example documentation comment: "monster object" - */ -export class Monster { - constructor() { - this.bb = null; - this.bb_pos = 0; - } - __init(i, bb) { - this.bb_pos = i; - this.bb = bb; - return this; - } - static getRootAsMonster(bb, obj) { - return (obj || new Monster()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - static getSizePrefixedRootAsMonster(bb, obj) { - bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH); - return (obj || new Monster()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - static bufferHasIdentifier(bb) { - return bb.__has_identifier('MONS'); - } - pos(obj) { - const offset = this.bb.__offset(this.bb_pos, 4); - return offset ? (obj || new Vec3()).__init(this.bb_pos + offset, this.bb) : null; - } - mana() { - const offset = this.bb.__offset(this.bb_pos, 6); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 150; - } - mutate_mana(value) { - const offset = this.bb.__offset(this.bb_pos, 6); - if (offset === 0) { - return false; - } - this.bb.writeInt16(this.bb_pos + offset, value); - return true; - } - hp() { - const offset = this.bb.__offset(this.bb_pos, 8); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 100; - } - mutate_hp(value) { - const offset = this.bb.__offset(this.bb_pos, 8); - if (offset === 0) { - return false; - } - this.bb.writeInt16(this.bb_pos + offset, value); - return true; - } - name(optionalEncoding) { - const offset = this.bb.__offset(this.bb_pos, 10); - return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; - } - inventory(index) { - const offset = this.bb.__offset(this.bb_pos, 14); - return offset ? this.bb.readUint8(this.bb.__vector(this.bb_pos + offset) + index) : 0; - } - inventoryLength() { - const offset = this.bb.__offset(this.bb_pos, 14); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - inventoryArray() { - const offset = this.bb.__offset(this.bb_pos, 14); - return offset ? new Uint8Array(this.bb.bytes().buffer, this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + offset), this.bb.__vector_len(this.bb_pos + offset)) : null; - } - color() { - const offset = this.bb.__offset(this.bb_pos, 16); - return offset ? this.bb.readUint8(this.bb_pos + offset) : Color.Blue; - } - mutate_color(value) { - const offset = this.bb.__offset(this.bb_pos, 16); - if (offset === 0) { - return false; - } - this.bb.writeUint8(this.bb_pos + offset, value); - return true; - } - testType() { - const offset = this.bb.__offset(this.bb_pos, 18); - return offset ? this.bb.readUint8(this.bb_pos + offset) : Any.NONE; - } - test(obj) { - const offset = this.bb.__offset(this.bb_pos, 20); - return offset ? this.bb.__union(obj, this.bb_pos + offset) : null; - } - test4(index, obj) { - const offset = this.bb.__offset(this.bb_pos, 22); - return offset ? (obj || new Test()).__init(this.bb.__vector(this.bb_pos + offset) + index * 4, this.bb) : null; - } - test4Length() { - const offset = this.bb.__offset(this.bb_pos, 22); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - testarrayofstring(index, optionalEncoding) { - const offset = this.bb.__offset(this.bb_pos, 24); - return offset ? this.bb.__string(this.bb.__vector(this.bb_pos + offset) + index * 4, optionalEncoding) : null; - } - testarrayofstringLength() { - const offset = this.bb.__offset(this.bb_pos, 24); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - /** - * an example documentation comment: this will end up in the generated code - * multiline too - */ - testarrayoftables(index, obj) { - const offset = this.bb.__offset(this.bb_pos, 26); - return offset ? (obj || new Monster()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; - } - testarrayoftablesLength() { - const offset = this.bb.__offset(this.bb_pos, 26); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - enemy(obj) { - const offset = this.bb.__offset(this.bb_pos, 28); - return offset ? (obj || new Monster()).__init(this.bb.__indirect(this.bb_pos + offset), this.bb) : null; - } - testnestedflatbuffer(index) { - const offset = this.bb.__offset(this.bb_pos, 30); - return offset ? this.bb.readUint8(this.bb.__vector(this.bb_pos + offset) + index) : 0; - } - testnestedflatbufferLength() { - const offset = this.bb.__offset(this.bb_pos, 30); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - testnestedflatbufferArray() { - const offset = this.bb.__offset(this.bb_pos, 30); - return offset ? new Uint8Array(this.bb.bytes().buffer, this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + offset), this.bb.__vector_len(this.bb_pos + offset)) : null; - } - testempty(obj) { - const offset = this.bb.__offset(this.bb_pos, 32); - return offset ? (obj || new Stat()).__init(this.bb.__indirect(this.bb_pos + offset), this.bb) : null; - } - testbool() { - const offset = this.bb.__offset(this.bb_pos, 34); - return offset ? !!this.bb.readInt8(this.bb_pos + offset) : false; - } - mutate_testbool(value) { - const offset = this.bb.__offset(this.bb_pos, 34); - if (offset === 0) { - return false; - } - this.bb.writeInt8(this.bb_pos + offset, +value); - return true; - } - testhashs32Fnv1() { - const offset = this.bb.__offset(this.bb_pos, 36); - return offset ? this.bb.readInt32(this.bb_pos + offset) : 0; - } - mutate_testhashs32_fnv1(value) { - const offset = this.bb.__offset(this.bb_pos, 36); - if (offset === 0) { - return false; - } - this.bb.writeInt32(this.bb_pos + offset, value); - return true; - } - testhashu32Fnv1() { - const offset = this.bb.__offset(this.bb_pos, 38); - return offset ? this.bb.readUint32(this.bb_pos + offset) : 0; - } - mutate_testhashu32_fnv1(value) { - const offset = this.bb.__offset(this.bb_pos, 38); - if (offset === 0) { - return false; - } - this.bb.writeUint32(this.bb_pos + offset, value); - return true; - } - testhashs64Fnv1() { - const offset = this.bb.__offset(this.bb_pos, 40); - return offset ? this.bb.readInt64(this.bb_pos + offset) : BigInt('0'); - } - mutate_testhashs64_fnv1(value) { - const offset = this.bb.__offset(this.bb_pos, 40); - if (offset === 0) { - return false; - } - this.bb.writeInt64(this.bb_pos + offset, value); - return true; - } - testhashu64Fnv1() { - const offset = this.bb.__offset(this.bb_pos, 42); - return offset ? this.bb.readUint64(this.bb_pos + offset) : BigInt('0'); - } - mutate_testhashu64_fnv1(value) { - const offset = this.bb.__offset(this.bb_pos, 42); - if (offset === 0) { - return false; - } - this.bb.writeUint64(this.bb_pos + offset, value); - return true; - } - testhashs32Fnv1a() { - const offset = this.bb.__offset(this.bb_pos, 44); - return offset ? this.bb.readInt32(this.bb_pos + offset) : 0; - } - mutate_testhashs32_fnv1a(value) { - const offset = this.bb.__offset(this.bb_pos, 44); - if (offset === 0) { - return false; - } - this.bb.writeInt32(this.bb_pos + offset, value); - return true; - } - testhashu32Fnv1a() { - const offset = this.bb.__offset(this.bb_pos, 46); - return offset ? this.bb.readUint32(this.bb_pos + offset) : 0; - } - mutate_testhashu32_fnv1a(value) { - const offset = this.bb.__offset(this.bb_pos, 46); - if (offset === 0) { - return false; - } - this.bb.writeUint32(this.bb_pos + offset, value); - return true; - } - testhashs64Fnv1a() { - const offset = this.bb.__offset(this.bb_pos, 48); - return offset ? this.bb.readInt64(this.bb_pos + offset) : BigInt('0'); - } - mutate_testhashs64_fnv1a(value) { - const offset = this.bb.__offset(this.bb_pos, 48); - if (offset === 0) { - return false; - } - this.bb.writeInt64(this.bb_pos + offset, value); - return true; - } - testhashu64Fnv1a() { - const offset = this.bb.__offset(this.bb_pos, 50); - return offset ? this.bb.readUint64(this.bb_pos + offset) : BigInt('0'); - } - mutate_testhashu64_fnv1a(value) { - const offset = this.bb.__offset(this.bb_pos, 50); - if (offset === 0) { - return false; - } - this.bb.writeUint64(this.bb_pos + offset, value); - return true; - } - testarrayofbools(index) { - const offset = this.bb.__offset(this.bb_pos, 52); - return offset ? !!this.bb.readInt8(this.bb.__vector(this.bb_pos + offset) + index) : false; - } - testarrayofboolsLength() { - const offset = this.bb.__offset(this.bb_pos, 52); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - testarrayofboolsArray() { - const offset = this.bb.__offset(this.bb_pos, 52); - return offset ? new Int8Array(this.bb.bytes().buffer, this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + offset), this.bb.__vector_len(this.bb_pos + offset)) : null; - } - testf() { - const offset = this.bb.__offset(this.bb_pos, 54); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 3.14159; - } - mutate_testf(value) { - const offset = this.bb.__offset(this.bb_pos, 54); - if (offset === 0) { - return false; - } - this.bb.writeFloat32(this.bb_pos + offset, value); - return true; - } - testf2() { - const offset = this.bb.__offset(this.bb_pos, 56); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 3.0; - } - mutate_testf2(value) { - const offset = this.bb.__offset(this.bb_pos, 56); - if (offset === 0) { - return false; - } - this.bb.writeFloat32(this.bb_pos + offset, value); - return true; - } - testf3() { - const offset = this.bb.__offset(this.bb_pos, 58); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0.0; - } - mutate_testf3(value) { - const offset = this.bb.__offset(this.bb_pos, 58); - if (offset === 0) { - return false; - } - this.bb.writeFloat32(this.bb_pos + offset, value); - return true; - } - testarrayofstring2(index, optionalEncoding) { - const offset = this.bb.__offset(this.bb_pos, 60); - return offset ? this.bb.__string(this.bb.__vector(this.bb_pos + offset) + index * 4, optionalEncoding) : null; - } - testarrayofstring2Length() { - const offset = this.bb.__offset(this.bb_pos, 60); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - testarrayofsortedstruct(index, obj) { - const offset = this.bb.__offset(this.bb_pos, 62); - return offset ? (obj || new Ability()).__init(this.bb.__vector(this.bb_pos + offset) + index * 8, this.bb) : null; - } - testarrayofsortedstructLength() { - const offset = this.bb.__offset(this.bb_pos, 62); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - flex(index) { - const offset = this.bb.__offset(this.bb_pos, 64); - return offset ? this.bb.readUint8(this.bb.__vector(this.bb_pos + offset) + index) : 0; - } - flexLength() { - const offset = this.bb.__offset(this.bb_pos, 64); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - flexArray() { - const offset = this.bb.__offset(this.bb_pos, 64); - return offset ? new Uint8Array(this.bb.bytes().buffer, this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + offset), this.bb.__vector_len(this.bb_pos + offset)) : null; - } - test5(index, obj) { - const offset = this.bb.__offset(this.bb_pos, 66); - return offset ? (obj || new Test()).__init(this.bb.__vector(this.bb_pos + offset) + index * 4, this.bb) : null; - } - test5Length() { - const offset = this.bb.__offset(this.bb_pos, 66); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - vectorOfLongs(index) { - const offset = this.bb.__offset(this.bb_pos, 68); - return offset ? this.bb.readInt64(this.bb.__vector(this.bb_pos + offset) + index * 8) : BigInt(0); - } - vectorOfLongsLength() { - const offset = this.bb.__offset(this.bb_pos, 68); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - vectorOfDoubles(index) { - const offset = this.bb.__offset(this.bb_pos, 70); - return offset ? this.bb.readFloat64(this.bb.__vector(this.bb_pos + offset) + index * 8) : 0; - } - vectorOfDoublesLength() { - const offset = this.bb.__offset(this.bb_pos, 70); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - vectorOfDoublesArray() { - const offset = this.bb.__offset(this.bb_pos, 70); - return offset ? new Float64Array(this.bb.bytes().buffer, this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + offset), this.bb.__vector_len(this.bb_pos + offset)) : null; - } - parentNamespaceTest(obj) { - const offset = this.bb.__offset(this.bb_pos, 72); - return offset ? (obj || new InParentNamespace()).__init(this.bb.__indirect(this.bb_pos + offset), this.bb) : null; - } - vectorOfReferrables(index, obj) { - const offset = this.bb.__offset(this.bb_pos, 74); - return offset ? (obj || new Referrable()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; - } - vectorOfReferrablesLength() { - const offset = this.bb.__offset(this.bb_pos, 74); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - singleWeakReference() { - const offset = this.bb.__offset(this.bb_pos, 76); - return offset ? this.bb.readUint64(this.bb_pos + offset) : BigInt('0'); - } - mutate_single_weak_reference(value) { - const offset = this.bb.__offset(this.bb_pos, 76); - if (offset === 0) { - return false; - } - this.bb.writeUint64(this.bb_pos + offset, value); - return true; - } - vectorOfWeakReferences(index) { - const offset = this.bb.__offset(this.bb_pos, 78); - return offset ? this.bb.readUint64(this.bb.__vector(this.bb_pos + offset) + index * 8) : BigInt(0); - } - vectorOfWeakReferencesLength() { - const offset = this.bb.__offset(this.bb_pos, 78); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - vectorOfStrongReferrables(index, obj) { - const offset = this.bb.__offset(this.bb_pos, 80); - return offset ? (obj || new Referrable()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; - } - vectorOfStrongReferrablesLength() { - const offset = this.bb.__offset(this.bb_pos, 80); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - coOwningReference() { - const offset = this.bb.__offset(this.bb_pos, 82); - return offset ? this.bb.readUint64(this.bb_pos + offset) : BigInt('0'); - } - mutate_co_owning_reference(value) { - const offset = this.bb.__offset(this.bb_pos, 82); - if (offset === 0) { - return false; - } - this.bb.writeUint64(this.bb_pos + offset, value); - return true; - } - vectorOfCoOwningReferences(index) { - const offset = this.bb.__offset(this.bb_pos, 84); - return offset ? this.bb.readUint64(this.bb.__vector(this.bb_pos + offset) + index * 8) : BigInt(0); - } - vectorOfCoOwningReferencesLength() { - const offset = this.bb.__offset(this.bb_pos, 84); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - nonOwningReference() { - const offset = this.bb.__offset(this.bb_pos, 86); - return offset ? this.bb.readUint64(this.bb_pos + offset) : BigInt('0'); - } - mutate_non_owning_reference(value) { - const offset = this.bb.__offset(this.bb_pos, 86); - if (offset === 0) { - return false; - } - this.bb.writeUint64(this.bb_pos + offset, value); - return true; - } - vectorOfNonOwningReferences(index) { - const offset = this.bb.__offset(this.bb_pos, 88); - return offset ? this.bb.readUint64(this.bb.__vector(this.bb_pos + offset) + index * 8) : BigInt(0); - } - vectorOfNonOwningReferencesLength() { - const offset = this.bb.__offset(this.bb_pos, 88); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - anyUniqueType() { - const offset = this.bb.__offset(this.bb_pos, 90); - return offset ? this.bb.readUint8(this.bb_pos + offset) : AnyUniqueAliases.NONE; - } - anyUnique(obj) { - const offset = this.bb.__offset(this.bb_pos, 92); - return offset ? this.bb.__union(obj, this.bb_pos + offset) : null; - } - anyAmbiguousType() { - const offset = this.bb.__offset(this.bb_pos, 94); - return offset ? this.bb.readUint8(this.bb_pos + offset) : AnyAmbiguousAliases.NONE; - } - anyAmbiguous(obj) { - const offset = this.bb.__offset(this.bb_pos, 96); - return offset ? this.bb.__union(obj, this.bb_pos + offset) : null; - } - vectorOfEnums(index) { - const offset = this.bb.__offset(this.bb_pos, 98); - return offset ? this.bb.readUint8(this.bb.__vector(this.bb_pos + offset) + index) : 0; - } - vectorOfEnumsLength() { - const offset = this.bb.__offset(this.bb_pos, 98); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - vectorOfEnumsArray() { - const offset = this.bb.__offset(this.bb_pos, 98); - return offset ? new Uint8Array(this.bb.bytes().buffer, this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + offset), this.bb.__vector_len(this.bb_pos + offset)) : null; - } - signedEnum() { - const offset = this.bb.__offset(this.bb_pos, 100); - return offset ? this.bb.readInt8(this.bb_pos + offset) : Race.None; - } - mutate_signed_enum(value) { - const offset = this.bb.__offset(this.bb_pos, 100); - if (offset === 0) { - return false; - } - this.bb.writeInt8(this.bb_pos + offset, value); - return true; - } - testrequirednestedflatbuffer(index) { - const offset = this.bb.__offset(this.bb_pos, 102); - return offset ? this.bb.readUint8(this.bb.__vector(this.bb_pos + offset) + index) : 0; - } - testrequirednestedflatbufferLength() { - const offset = this.bb.__offset(this.bb_pos, 102); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - testrequirednestedflatbufferArray() { - const offset = this.bb.__offset(this.bb_pos, 102); - return offset ? new Uint8Array(this.bb.bytes().buffer, this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + offset), this.bb.__vector_len(this.bb_pos + offset)) : null; - } - scalarKeySortedTables(index, obj) { - const offset = this.bb.__offset(this.bb_pos, 104); - return offset ? (obj || new Stat()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; - } - scalarKeySortedTablesLength() { - const offset = this.bb.__offset(this.bb_pos, 104); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - nativeInline(obj) { - const offset = this.bb.__offset(this.bb_pos, 106); - return offset ? (obj || new Test()).__init(this.bb_pos + offset, this.bb) : null; - } - longEnumNonEnumDefault() { - const offset = this.bb.__offset(this.bb_pos, 108); - return offset ? this.bb.readUint64(this.bb_pos + offset) : BigInt('0'); - } - mutate_long_enum_non_enum_default(value) { - const offset = this.bb.__offset(this.bb_pos, 108); - if (offset === 0) { - return false; - } - this.bb.writeUint64(this.bb_pos + offset, value); - return true; - } - longEnumNormalDefault() { - const offset = this.bb.__offset(this.bb_pos, 110); - return offset ? this.bb.readUint64(this.bb_pos + offset) : BigInt('2'); - } - mutate_long_enum_normal_default(value) { - const offset = this.bb.__offset(this.bb_pos, 110); - if (offset === 0) { - return false; - } - this.bb.writeUint64(this.bb_pos + offset, value); - return true; - } - static getFullyQualifiedName() { - return 'MyGame_Example_Monster'; - } - static startMonster(builder) { - builder.startObject(54); - } - static addPos(builder, posOffset) { - builder.addFieldStruct(0, posOffset, 0); - } - static addMana(builder, mana) { - builder.addFieldInt16(1, mana, 150); - } - static addHp(builder, hp) { - builder.addFieldInt16(2, hp, 100); - } - static addName(builder, nameOffset) { - builder.addFieldOffset(3, nameOffset, 0); - } - static addInventory(builder, inventoryOffset) { - builder.addFieldOffset(5, inventoryOffset, 0); - } - static createInventoryVector(builder, data) { - builder.startVector(1, data.length, 1); - for (let i = data.length - 1; i >= 0; i--) { - builder.addInt8(data[i]); - } - return builder.endVector(); - } - static startInventoryVector(builder, numElems) { - builder.startVector(1, numElems, 1); - } - static addColor(builder, color) { - builder.addFieldInt8(6, color, Color.Blue); - } - static addTestType(builder, testType) { - builder.addFieldInt8(7, testType, Any.NONE); - } - static addTest(builder, testOffset) { - builder.addFieldOffset(8, testOffset, 0); - } - static addTest4(builder, test4Offset) { - builder.addFieldOffset(9, test4Offset, 0); - } - static startTest4Vector(builder, numElems) { - builder.startVector(4, numElems, 2); - } - static addTestarrayofstring(builder, testarrayofstringOffset) { - builder.addFieldOffset(10, testarrayofstringOffset, 0); - } - static createTestarrayofstringVector(builder, data) { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]); - } - return builder.endVector(); - } - static startTestarrayofstringVector(builder, numElems) { - builder.startVector(4, numElems, 4); - } - static addTestarrayoftables(builder, testarrayoftablesOffset) { - builder.addFieldOffset(11, testarrayoftablesOffset, 0); - } - static createTestarrayoftablesVector(builder, data) { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]); - } - return builder.endVector(); - } - static startTestarrayoftablesVector(builder, numElems) { - builder.startVector(4, numElems, 4); - } - static addEnemy(builder, enemyOffset) { - builder.addFieldOffset(12, enemyOffset, 0); - } - static addTestnestedflatbuffer(builder, testnestedflatbufferOffset) { - builder.addFieldOffset(13, testnestedflatbufferOffset, 0); - } - static createTestnestedflatbufferVector(builder, data) { - builder.startVector(1, data.length, 1); - for (let i = data.length - 1; i >= 0; i--) { - builder.addInt8(data[i]); - } - return builder.endVector(); - } - static startTestnestedflatbufferVector(builder, numElems) { - builder.startVector(1, numElems, 1); - } - static addTestempty(builder, testemptyOffset) { - builder.addFieldOffset(14, testemptyOffset, 0); - } - static addTestbool(builder, testbool) { - builder.addFieldInt8(15, +testbool, +false); - } - static addTesthashs32Fnv1(builder, testhashs32Fnv1) { - builder.addFieldInt32(16, testhashs32Fnv1, 0); - } - static addTesthashu32Fnv1(builder, testhashu32Fnv1) { - builder.addFieldInt32(17, testhashu32Fnv1, 0); - } - static addTesthashs64Fnv1(builder, testhashs64Fnv1) { - builder.addFieldInt64(18, testhashs64Fnv1, BigInt('0')); - } - static addTesthashu64Fnv1(builder, testhashu64Fnv1) { - builder.addFieldInt64(19, testhashu64Fnv1, BigInt('0')); - } - static addTesthashs32Fnv1a(builder, testhashs32Fnv1a) { - builder.addFieldInt32(20, testhashs32Fnv1a, 0); - } - static addTesthashu32Fnv1a(builder, testhashu32Fnv1a) { - builder.addFieldInt32(21, testhashu32Fnv1a, 0); - } - static addTesthashs64Fnv1a(builder, testhashs64Fnv1a) { - builder.addFieldInt64(22, testhashs64Fnv1a, BigInt('0')); - } - static addTesthashu64Fnv1a(builder, testhashu64Fnv1a) { - builder.addFieldInt64(23, testhashu64Fnv1a, BigInt('0')); - } - static addTestarrayofbools(builder, testarrayofboolsOffset) { - builder.addFieldOffset(24, testarrayofboolsOffset, 0); - } - static createTestarrayofboolsVector(builder, data) { - builder.startVector(1, data.length, 1); - for (let i = data.length - 1; i >= 0; i--) { - builder.addInt8(+data[i]); - } - return builder.endVector(); - } - static startTestarrayofboolsVector(builder, numElems) { - builder.startVector(1, numElems, 1); - } - static addTestf(builder, testf) { - builder.addFieldFloat32(25, testf, 3.14159); - } - static addTestf2(builder, testf2) { - builder.addFieldFloat32(26, testf2, 3.0); - } - static addTestf3(builder, testf3) { - builder.addFieldFloat32(27, testf3, 0.0); - } - static addTestarrayofstring2(builder, testarrayofstring2Offset) { - builder.addFieldOffset(28, testarrayofstring2Offset, 0); - } - static createTestarrayofstring2Vector(builder, data) { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]); - } - return builder.endVector(); - } - static startTestarrayofstring2Vector(builder, numElems) { - builder.startVector(4, numElems, 4); - } - static addTestarrayofsortedstruct(builder, testarrayofsortedstructOffset) { - builder.addFieldOffset(29, testarrayofsortedstructOffset, 0); - } - static startTestarrayofsortedstructVector(builder, numElems) { - builder.startVector(8, numElems, 4); - } - static addFlex(builder, flexOffset) { - builder.addFieldOffset(30, flexOffset, 0); - } - static createFlexVector(builder, data) { - builder.startVector(1, data.length, 1); - for (let i = data.length - 1; i >= 0; i--) { - builder.addInt8(data[i]); - } - return builder.endVector(); - } - static startFlexVector(builder, numElems) { - builder.startVector(1, numElems, 1); - } - static addTest5(builder, test5Offset) { - builder.addFieldOffset(31, test5Offset, 0); - } - static startTest5Vector(builder, numElems) { - builder.startVector(4, numElems, 2); - } - static addVectorOfLongs(builder, vectorOfLongsOffset) { - builder.addFieldOffset(32, vectorOfLongsOffset, 0); - } - static createVectorOfLongsVector(builder, data) { - builder.startVector(8, data.length, 8); - for (let i = data.length - 1; i >= 0; i--) { - builder.addInt64(data[i]); - } - return builder.endVector(); - } - static startVectorOfLongsVector(builder, numElems) { - builder.startVector(8, numElems, 8); - } - static addVectorOfDoubles(builder, vectorOfDoublesOffset) { - builder.addFieldOffset(33, vectorOfDoublesOffset, 0); - } - static createVectorOfDoublesVector(builder, data) { - builder.startVector(8, data.length, 8); - for (let i = data.length - 1; i >= 0; i--) { - builder.addFloat64(data[i]); - } - return builder.endVector(); - } - static startVectorOfDoublesVector(builder, numElems) { - builder.startVector(8, numElems, 8); - } - static addParentNamespaceTest(builder, parentNamespaceTestOffset) { - builder.addFieldOffset(34, parentNamespaceTestOffset, 0); - } - static addVectorOfReferrables(builder, vectorOfReferrablesOffset) { - builder.addFieldOffset(35, vectorOfReferrablesOffset, 0); - } - static createVectorOfReferrablesVector(builder, data) { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]); - } - return builder.endVector(); - } - static startVectorOfReferrablesVector(builder, numElems) { - builder.startVector(4, numElems, 4); - } - static addSingleWeakReference(builder, singleWeakReference) { - builder.addFieldInt64(36, singleWeakReference, BigInt('0')); - } - static addVectorOfWeakReferences(builder, vectorOfWeakReferencesOffset) { - builder.addFieldOffset(37, vectorOfWeakReferencesOffset, 0); - } - static createVectorOfWeakReferencesVector(builder, data) { - builder.startVector(8, data.length, 8); - for (let i = data.length - 1; i >= 0; i--) { - builder.addInt64(data[i]); - } - return builder.endVector(); - } - static startVectorOfWeakReferencesVector(builder, numElems) { - builder.startVector(8, numElems, 8); - } - static addVectorOfStrongReferrables(builder, vectorOfStrongReferrablesOffset) { - builder.addFieldOffset(38, vectorOfStrongReferrablesOffset, 0); - } - static createVectorOfStrongReferrablesVector(builder, data) { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]); - } - return builder.endVector(); - } - static startVectorOfStrongReferrablesVector(builder, numElems) { - builder.startVector(4, numElems, 4); - } - static addCoOwningReference(builder, coOwningReference) { - builder.addFieldInt64(39, coOwningReference, BigInt('0')); - } - static addVectorOfCoOwningReferences(builder, vectorOfCoOwningReferencesOffset) { - builder.addFieldOffset(40, vectorOfCoOwningReferencesOffset, 0); - } - static createVectorOfCoOwningReferencesVector(builder, data) { - builder.startVector(8, data.length, 8); - for (let i = data.length - 1; i >= 0; i--) { - builder.addInt64(data[i]); - } - return builder.endVector(); - } - static startVectorOfCoOwningReferencesVector(builder, numElems) { - builder.startVector(8, numElems, 8); - } - static addNonOwningReference(builder, nonOwningReference) { - builder.addFieldInt64(41, nonOwningReference, BigInt('0')); - } - static addVectorOfNonOwningReferences(builder, vectorOfNonOwningReferencesOffset) { - builder.addFieldOffset(42, vectorOfNonOwningReferencesOffset, 0); - } - static createVectorOfNonOwningReferencesVector(builder, data) { - builder.startVector(8, data.length, 8); - for (let i = data.length - 1; i >= 0; i--) { - builder.addInt64(data[i]); - } - return builder.endVector(); - } - static startVectorOfNonOwningReferencesVector(builder, numElems) { - builder.startVector(8, numElems, 8); - } - static addAnyUniqueType(builder, anyUniqueType) { - builder.addFieldInt8(43, anyUniqueType, AnyUniqueAliases.NONE); - } - static addAnyUnique(builder, anyUniqueOffset) { - builder.addFieldOffset(44, anyUniqueOffset, 0); - } - static addAnyAmbiguousType(builder, anyAmbiguousType) { - builder.addFieldInt8(45, anyAmbiguousType, AnyAmbiguousAliases.NONE); - } - static addAnyAmbiguous(builder, anyAmbiguousOffset) { - builder.addFieldOffset(46, anyAmbiguousOffset, 0); - } - static addVectorOfEnums(builder, vectorOfEnumsOffset) { - builder.addFieldOffset(47, vectorOfEnumsOffset, 0); - } - static createVectorOfEnumsVector(builder, data) { - builder.startVector(1, data.length, 1); - for (let i = data.length - 1; i >= 0; i--) { - builder.addInt8(data[i]); - } - return builder.endVector(); - } - static startVectorOfEnumsVector(builder, numElems) { - builder.startVector(1, numElems, 1); - } - static addSignedEnum(builder, signedEnum) { - builder.addFieldInt8(48, signedEnum, Race.None); - } - static addTestrequirednestedflatbuffer(builder, testrequirednestedflatbufferOffset) { - builder.addFieldOffset(49, testrequirednestedflatbufferOffset, 0); - } - static createTestrequirednestedflatbufferVector(builder, data) { - builder.startVector(1, data.length, 1); - for (let i = data.length - 1; i >= 0; i--) { - builder.addInt8(data[i]); - } - return builder.endVector(); - } - static startTestrequirednestedflatbufferVector(builder, numElems) { - builder.startVector(1, numElems, 1); - } - static addScalarKeySortedTables(builder, scalarKeySortedTablesOffset) { - builder.addFieldOffset(50, scalarKeySortedTablesOffset, 0); - } - static createScalarKeySortedTablesVector(builder, data) { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]); - } - return builder.endVector(); - } - static startScalarKeySortedTablesVector(builder, numElems) { - builder.startVector(4, numElems, 4); - } - static addNativeInline(builder, nativeInlineOffset) { - builder.addFieldStruct(51, nativeInlineOffset, 0); - } - static addLongEnumNonEnumDefault(builder, longEnumNonEnumDefault) { - builder.addFieldInt64(52, longEnumNonEnumDefault, BigInt('0')); - } - static addLongEnumNormalDefault(builder, longEnumNormalDefault) { - builder.addFieldInt64(53, longEnumNormalDefault, BigInt('2')); - } - static endMonster(builder) { - const offset = builder.endObject(); - builder.requiredField(offset, 10); // name - return offset; - } - static finishMonsterBuffer(builder, offset) { - builder.finish(offset, 'MONS'); - } - static finishSizePrefixedMonsterBuffer(builder, offset) { - builder.finish(offset, 'MONS', true); - } - serialize() { - return this.bb.bytes(); - } - static deserialize(buffer) { - return Monster.getRootAsMonster(new flatbuffers.ByteBuffer(buffer)); - } - unpack() { - return new MonsterT((this.pos() !== null ? this.pos().unpack() : null), this.mana(), this.hp(), this.name(), this.bb.createScalarList(this.inventory.bind(this), this.inventoryLength()), this.color(), this.testType(), (() => { - let temp = unionToAny(this.testType(), this.test.bind(this)); - if (temp === null) { - return null; - } - return temp.unpack(); - })(), this.bb.createObjList(this.test4.bind(this), this.test4Length()), this.bb.createScalarList(this.testarrayofstring.bind(this), this.testarrayofstringLength()), this.bb.createObjList(this.testarrayoftables.bind(this), this.testarrayoftablesLength()), (this.enemy() !== null ? this.enemy().unpack() : null), this.bb.createScalarList(this.testnestedflatbuffer.bind(this), this.testnestedflatbufferLength()), (this.testempty() !== null ? this.testempty().unpack() : null), this.testbool(), this.testhashs32Fnv1(), this.testhashu32Fnv1(), this.testhashs64Fnv1(), this.testhashu64Fnv1(), this.testhashs32Fnv1a(), this.testhashu32Fnv1a(), this.testhashs64Fnv1a(), this.testhashu64Fnv1a(), this.bb.createScalarList(this.testarrayofbools.bind(this), this.testarrayofboolsLength()), this.testf(), this.testf2(), this.testf3(), this.bb.createScalarList(this.testarrayofstring2.bind(this), this.testarrayofstring2Length()), this.bb.createObjList(this.testarrayofsortedstruct.bind(this), this.testarrayofsortedstructLength()), this.bb.createScalarList(this.flex.bind(this), this.flexLength()), this.bb.createObjList(this.test5.bind(this), this.test5Length()), this.bb.createScalarList(this.vectorOfLongs.bind(this), this.vectorOfLongsLength()), this.bb.createScalarList(this.vectorOfDoubles.bind(this), this.vectorOfDoublesLength()), (this.parentNamespaceTest() !== null ? this.parentNamespaceTest().unpack() : null), this.bb.createObjList(this.vectorOfReferrables.bind(this), this.vectorOfReferrablesLength()), this.singleWeakReference(), this.bb.createScalarList(this.vectorOfWeakReferences.bind(this), this.vectorOfWeakReferencesLength()), this.bb.createObjList(this.vectorOfStrongReferrables.bind(this), this.vectorOfStrongReferrablesLength()), this.coOwningReference(), this.bb.createScalarList(this.vectorOfCoOwningReferences.bind(this), this.vectorOfCoOwningReferencesLength()), this.nonOwningReference(), this.bb.createScalarList(this.vectorOfNonOwningReferences.bind(this), this.vectorOfNonOwningReferencesLength()), this.anyUniqueType(), (() => { - let temp = unionToAnyUniqueAliases(this.anyUniqueType(), this.anyUnique.bind(this)); - if (temp === null) { - return null; - } - return temp.unpack(); - })(), this.anyAmbiguousType(), (() => { - let temp = unionToAnyAmbiguousAliases(this.anyAmbiguousType(), this.anyAmbiguous.bind(this)); - if (temp === null) { - return null; - } - return temp.unpack(); - })(), this.bb.createScalarList(this.vectorOfEnums.bind(this), this.vectorOfEnumsLength()), this.signedEnum(), this.bb.createScalarList(this.testrequirednestedflatbuffer.bind(this), this.testrequirednestedflatbufferLength()), this.bb.createObjList(this.scalarKeySortedTables.bind(this), this.scalarKeySortedTablesLength()), (this.nativeInline() !== null ? this.nativeInline().unpack() : null), this.longEnumNonEnumDefault(), this.longEnumNormalDefault()); - } - unpackTo(_o) { - _o.pos = (this.pos() !== null ? this.pos().unpack() : null); - _o.mana = this.mana(); - _o.hp = this.hp(); - _o.name = this.name(); - _o.inventory = this.bb.createScalarList(this.inventory.bind(this), this.inventoryLength()); - _o.color = this.color(); - _o.testType = this.testType(); - _o.test = (() => { - let temp = unionToAny(this.testType(), this.test.bind(this)); - if (temp === null) { - return null; - } - return temp.unpack(); - })(); - _o.test4 = this.bb.createObjList(this.test4.bind(this), this.test4Length()); - _o.testarrayofstring = this.bb.createScalarList(this.testarrayofstring.bind(this), this.testarrayofstringLength()); - _o.testarrayoftables = this.bb.createObjList(this.testarrayoftables.bind(this), this.testarrayoftablesLength()); - _o.enemy = (this.enemy() !== null ? this.enemy().unpack() : null); - _o.testnestedflatbuffer = this.bb.createScalarList(this.testnestedflatbuffer.bind(this), this.testnestedflatbufferLength()); - _o.testempty = (this.testempty() !== null ? this.testempty().unpack() : null); - _o.testbool = this.testbool(); - _o.testhashs32Fnv1 = this.testhashs32Fnv1(); - _o.testhashu32Fnv1 = this.testhashu32Fnv1(); - _o.testhashs64Fnv1 = this.testhashs64Fnv1(); - _o.testhashu64Fnv1 = this.testhashu64Fnv1(); - _o.testhashs32Fnv1a = this.testhashs32Fnv1a(); - _o.testhashu32Fnv1a = this.testhashu32Fnv1a(); - _o.testhashs64Fnv1a = this.testhashs64Fnv1a(); - _o.testhashu64Fnv1a = this.testhashu64Fnv1a(); - _o.testarrayofbools = this.bb.createScalarList(this.testarrayofbools.bind(this), this.testarrayofboolsLength()); - _o.testf = this.testf(); - _o.testf2 = this.testf2(); - _o.testf3 = this.testf3(); - _o.testarrayofstring2 = this.bb.createScalarList(this.testarrayofstring2.bind(this), this.testarrayofstring2Length()); - _o.testarrayofsortedstruct = this.bb.createObjList(this.testarrayofsortedstruct.bind(this), this.testarrayofsortedstructLength()); - _o.flex = this.bb.createScalarList(this.flex.bind(this), this.flexLength()); - _o.test5 = this.bb.createObjList(this.test5.bind(this), this.test5Length()); - _o.vectorOfLongs = this.bb.createScalarList(this.vectorOfLongs.bind(this), this.vectorOfLongsLength()); - _o.vectorOfDoubles = this.bb.createScalarList(this.vectorOfDoubles.bind(this), this.vectorOfDoublesLength()); - _o.parentNamespaceTest = (this.parentNamespaceTest() !== null ? this.parentNamespaceTest().unpack() : null); - _o.vectorOfReferrables = this.bb.createObjList(this.vectorOfReferrables.bind(this), this.vectorOfReferrablesLength()); - _o.singleWeakReference = this.singleWeakReference(); - _o.vectorOfWeakReferences = this.bb.createScalarList(this.vectorOfWeakReferences.bind(this), this.vectorOfWeakReferencesLength()); - _o.vectorOfStrongReferrables = this.bb.createObjList(this.vectorOfStrongReferrables.bind(this), this.vectorOfStrongReferrablesLength()); - _o.coOwningReference = this.coOwningReference(); - _o.vectorOfCoOwningReferences = this.bb.createScalarList(this.vectorOfCoOwningReferences.bind(this), this.vectorOfCoOwningReferencesLength()); - _o.nonOwningReference = this.nonOwningReference(); - _o.vectorOfNonOwningReferences = this.bb.createScalarList(this.vectorOfNonOwningReferences.bind(this), this.vectorOfNonOwningReferencesLength()); - _o.anyUniqueType = this.anyUniqueType(); - _o.anyUnique = (() => { - let temp = unionToAnyUniqueAliases(this.anyUniqueType(), this.anyUnique.bind(this)); - if (temp === null) { - return null; - } - return temp.unpack(); - })(); - _o.anyAmbiguousType = this.anyAmbiguousType(); - _o.anyAmbiguous = (() => { - let temp = unionToAnyAmbiguousAliases(this.anyAmbiguousType(), this.anyAmbiguous.bind(this)); - if (temp === null) { - return null; - } - return temp.unpack(); - })(); - _o.vectorOfEnums = this.bb.createScalarList(this.vectorOfEnums.bind(this), this.vectorOfEnumsLength()); - _o.signedEnum = this.signedEnum(); - _o.testrequirednestedflatbuffer = this.bb.createScalarList(this.testrequirednestedflatbuffer.bind(this), this.testrequirednestedflatbufferLength()); - _o.scalarKeySortedTables = this.bb.createObjList(this.scalarKeySortedTables.bind(this), this.scalarKeySortedTablesLength()); - _o.nativeInline = (this.nativeInline() !== null ? this.nativeInline().unpack() : null); - _o.longEnumNonEnumDefault = this.longEnumNonEnumDefault(); - _o.longEnumNormalDefault = this.longEnumNormalDefault(); - } -} -export class MonsterT { - constructor(pos = null, mana = 150, hp = 100, name = null, inventory = [], color = Color.Blue, testType = Any.NONE, test = null, test4 = [], testarrayofstring = [], testarrayoftables = [], enemy = null, testnestedflatbuffer = [], testempty = null, testbool = false, testhashs32Fnv1 = 0, testhashu32Fnv1 = 0, testhashs64Fnv1 = BigInt('0'), testhashu64Fnv1 = BigInt('0'), testhashs32Fnv1a = 0, testhashu32Fnv1a = 0, testhashs64Fnv1a = BigInt('0'), testhashu64Fnv1a = BigInt('0'), testarrayofbools = [], testf = 3.14159, testf2 = 3.0, testf3 = 0.0, testarrayofstring2 = [], testarrayofsortedstruct = [], flex = [], test5 = [], vectorOfLongs = [], vectorOfDoubles = [], parentNamespaceTest = null, vectorOfReferrables = [], singleWeakReference = BigInt('0'), vectorOfWeakReferences = [], vectorOfStrongReferrables = [], coOwningReference = BigInt('0'), vectorOfCoOwningReferences = [], nonOwningReference = BigInt('0'), vectorOfNonOwningReferences = [], anyUniqueType = AnyUniqueAliases.NONE, anyUnique = null, anyAmbiguousType = AnyAmbiguousAliases.NONE, anyAmbiguous = null, vectorOfEnums = [], signedEnum = Race.None, testrequirednestedflatbuffer = [], scalarKeySortedTables = [], nativeInline = null, longEnumNonEnumDefault = BigInt('0'), longEnumNormalDefault = BigInt('2')) { - this.pos = pos; - this.mana = mana; - this.hp = hp; - this.name = name; - this.inventory = inventory; - this.color = color; - this.testType = testType; - this.test = test; - this.test4 = test4; - this.testarrayofstring = testarrayofstring; - this.testarrayoftables = testarrayoftables; - this.enemy = enemy; - this.testnestedflatbuffer = testnestedflatbuffer; - this.testempty = testempty; - this.testbool = testbool; - this.testhashs32Fnv1 = testhashs32Fnv1; - this.testhashu32Fnv1 = testhashu32Fnv1; - this.testhashs64Fnv1 = testhashs64Fnv1; - this.testhashu64Fnv1 = testhashu64Fnv1; - this.testhashs32Fnv1a = testhashs32Fnv1a; - this.testhashu32Fnv1a = testhashu32Fnv1a; - this.testhashs64Fnv1a = testhashs64Fnv1a; - this.testhashu64Fnv1a = testhashu64Fnv1a; - this.testarrayofbools = testarrayofbools; - this.testf = testf; - this.testf2 = testf2; - this.testf3 = testf3; - this.testarrayofstring2 = testarrayofstring2; - this.testarrayofsortedstruct = testarrayofsortedstruct; - this.flex = flex; - this.test5 = test5; - this.vectorOfLongs = vectorOfLongs; - this.vectorOfDoubles = vectorOfDoubles; - this.parentNamespaceTest = parentNamespaceTest; - this.vectorOfReferrables = vectorOfReferrables; - this.singleWeakReference = singleWeakReference; - this.vectorOfWeakReferences = vectorOfWeakReferences; - this.vectorOfStrongReferrables = vectorOfStrongReferrables; - this.coOwningReference = coOwningReference; - this.vectorOfCoOwningReferences = vectorOfCoOwningReferences; - this.nonOwningReference = nonOwningReference; - this.vectorOfNonOwningReferences = vectorOfNonOwningReferences; - this.anyUniqueType = anyUniqueType; - this.anyUnique = anyUnique; - this.anyAmbiguousType = anyAmbiguousType; - this.anyAmbiguous = anyAmbiguous; - this.vectorOfEnums = vectorOfEnums; - this.signedEnum = signedEnum; - this.testrequirednestedflatbuffer = testrequirednestedflatbuffer; - this.scalarKeySortedTables = scalarKeySortedTables; - this.nativeInline = nativeInline; - this.longEnumNonEnumDefault = longEnumNonEnumDefault; - this.longEnumNormalDefault = longEnumNormalDefault; - } - pack(builder) { - const name = (this.name !== null ? builder.createString(this.name) : 0); - const inventory = Monster.createInventoryVector(builder, this.inventory); - const test = builder.createObjectOffset(this.test); - const test4 = builder.createStructOffsetList(this.test4, Monster.startTest4Vector); - const testarrayofstring = Monster.createTestarrayofstringVector(builder, builder.createObjectOffsetList(this.testarrayofstring)); - const testarrayoftables = Monster.createTestarrayoftablesVector(builder, builder.createObjectOffsetList(this.testarrayoftables)); - const enemy = (this.enemy !== null ? this.enemy.pack(builder) : 0); - const testnestedflatbuffer = Monster.createTestnestedflatbufferVector(builder, this.testnestedflatbuffer); - const testempty = (this.testempty !== null ? this.testempty.pack(builder) : 0); - const testarrayofbools = Monster.createTestarrayofboolsVector(builder, this.testarrayofbools); - const testarrayofstring2 = Monster.createTestarrayofstring2Vector(builder, builder.createObjectOffsetList(this.testarrayofstring2)); - const testarrayofsortedstruct = builder.createStructOffsetList(this.testarrayofsortedstruct, Monster.startTestarrayofsortedstructVector); - const flex = Monster.createFlexVector(builder, this.flex); - const test5 = builder.createStructOffsetList(this.test5, Monster.startTest5Vector); - const vectorOfLongs = Monster.createVectorOfLongsVector(builder, this.vectorOfLongs); - const vectorOfDoubles = Monster.createVectorOfDoublesVector(builder, this.vectorOfDoubles); - const parentNamespaceTest = (this.parentNamespaceTest !== null ? this.parentNamespaceTest.pack(builder) : 0); - const vectorOfReferrables = Monster.createVectorOfReferrablesVector(builder, builder.createObjectOffsetList(this.vectorOfReferrables)); - const vectorOfWeakReferences = Monster.createVectorOfWeakReferencesVector(builder, this.vectorOfWeakReferences); - const vectorOfStrongReferrables = Monster.createVectorOfStrongReferrablesVector(builder, builder.createObjectOffsetList(this.vectorOfStrongReferrables)); - const vectorOfCoOwningReferences = Monster.createVectorOfCoOwningReferencesVector(builder, this.vectorOfCoOwningReferences); - const vectorOfNonOwningReferences = Monster.createVectorOfNonOwningReferencesVector(builder, this.vectorOfNonOwningReferences); - const anyUnique = builder.createObjectOffset(this.anyUnique); - const anyAmbiguous = builder.createObjectOffset(this.anyAmbiguous); - const vectorOfEnums = Monster.createVectorOfEnumsVector(builder, this.vectorOfEnums); - const testrequirednestedflatbuffer = Monster.createTestrequirednestedflatbufferVector(builder, this.testrequirednestedflatbuffer); - const scalarKeySortedTables = Monster.createScalarKeySortedTablesVector(builder, builder.createObjectOffsetList(this.scalarKeySortedTables)); - Monster.startMonster(builder); - Monster.addPos(builder, (this.pos !== null ? this.pos.pack(builder) : 0)); - Monster.addMana(builder, this.mana); - Monster.addHp(builder, this.hp); - Monster.addName(builder, name); - Monster.addInventory(builder, inventory); - Monster.addColor(builder, this.color); - Monster.addTestType(builder, this.testType); - Monster.addTest(builder, test); - Monster.addTest4(builder, test4); - Monster.addTestarrayofstring(builder, testarrayofstring); - Monster.addTestarrayoftables(builder, testarrayoftables); - Monster.addEnemy(builder, enemy); - Monster.addTestnestedflatbuffer(builder, testnestedflatbuffer); - Monster.addTestempty(builder, testempty); - Monster.addTestbool(builder, this.testbool); - Monster.addTesthashs32Fnv1(builder, this.testhashs32Fnv1); - Monster.addTesthashu32Fnv1(builder, this.testhashu32Fnv1); - Monster.addTesthashs64Fnv1(builder, this.testhashs64Fnv1); - Monster.addTesthashu64Fnv1(builder, this.testhashu64Fnv1); - Monster.addTesthashs32Fnv1a(builder, this.testhashs32Fnv1a); - Monster.addTesthashu32Fnv1a(builder, this.testhashu32Fnv1a); - Monster.addTesthashs64Fnv1a(builder, this.testhashs64Fnv1a); - Monster.addTesthashu64Fnv1a(builder, this.testhashu64Fnv1a); - Monster.addTestarrayofbools(builder, testarrayofbools); - Monster.addTestf(builder, this.testf); - Monster.addTestf2(builder, this.testf2); - Monster.addTestf3(builder, this.testf3); - Monster.addTestarrayofstring2(builder, testarrayofstring2); - Monster.addTestarrayofsortedstruct(builder, testarrayofsortedstruct); - Monster.addFlex(builder, flex); - Monster.addTest5(builder, test5); - Monster.addVectorOfLongs(builder, vectorOfLongs); - Monster.addVectorOfDoubles(builder, vectorOfDoubles); - Monster.addParentNamespaceTest(builder, parentNamespaceTest); - Monster.addVectorOfReferrables(builder, vectorOfReferrables); - Monster.addSingleWeakReference(builder, this.singleWeakReference); - Monster.addVectorOfWeakReferences(builder, vectorOfWeakReferences); - Monster.addVectorOfStrongReferrables(builder, vectorOfStrongReferrables); - Monster.addCoOwningReference(builder, this.coOwningReference); - Monster.addVectorOfCoOwningReferences(builder, vectorOfCoOwningReferences); - Monster.addNonOwningReference(builder, this.nonOwningReference); - Monster.addVectorOfNonOwningReferences(builder, vectorOfNonOwningReferences); - Monster.addAnyUniqueType(builder, this.anyUniqueType); - Monster.addAnyUnique(builder, anyUnique); - Monster.addAnyAmbiguousType(builder, this.anyAmbiguousType); - Monster.addAnyAmbiguous(builder, anyAmbiguous); - Monster.addVectorOfEnums(builder, vectorOfEnums); - Monster.addSignedEnum(builder, this.signedEnum); - Monster.addTestrequirednestedflatbuffer(builder, testrequirednestedflatbuffer); - Monster.addScalarKeySortedTables(builder, scalarKeySortedTables); - Monster.addNativeInline(builder, (this.nativeInline !== null ? this.nativeInline.pack(builder) : 0)); - Monster.addLongEnumNonEnumDefault(builder, this.longEnumNonEnumDefault); - Monster.addLongEnumNormalDefault(builder, this.longEnumNormalDefault); - return Monster.endMonster(builder); - } -} diff --git a/tests/my-game/example/monster.ts b/tests/my-game/example/monster.ts deleted file mode 100644 index d65b7c3a9a..0000000000 --- a/tests/my-game/example/monster.ts +++ /dev/null @@ -1,1434 +0,0 @@ -// automatically generated by the FlatBuffers compiler, do not modify - -import * as flatbuffers from 'flatbuffers'; - -import { Monster as MyGame_Example2_Monster, MonsterT as MyGame_Example2_MonsterT } from '../../my-game/example2/monster'; -import { Ability, AbilityT } from '../../my-game/example/ability'; -import { Any, unionToAny, unionListToAny } from '../../my-game/example/any'; -import { AnyAmbiguousAliases, unionToAnyAmbiguousAliases, unionListToAnyAmbiguousAliases } from '../../my-game/example/any-ambiguous-aliases'; -import { AnyUniqueAliases, unionToAnyUniqueAliases, unionListToAnyUniqueAliases } from '../../my-game/example/any-unique-aliases'; -import { Color } from '../../my-game/example/color'; -import { Race } from '../../my-game/example/race'; -import { Referrable, ReferrableT } from '../../my-game/example/referrable'; -import { Stat, StatT } from '../../my-game/example/stat'; -import { Test, TestT } from '../../my-game/example/test'; -import { TestSimpleTableWithEnum, TestSimpleTableWithEnumT } from '../../my-game/example/test-simple-table-with-enum'; -import { Vec3, Vec3T } from '../../my-game/example/vec3'; -import { InParentNamespace, InParentNamespaceT } from '../../my-game/in-parent-namespace'; - - -/** - * an example documentation comment: "monster object" - */ -export class Monster { - bb: flatbuffers.ByteBuffer|null = null; - bb_pos = 0; - __init(i:number, bb:flatbuffers.ByteBuffer):Monster { - this.bb_pos = i; - this.bb = bb; - return this; -} - -static getRootAsMonster(bb:flatbuffers.ByteBuffer, obj?:Monster):Monster { - return (obj || new Monster()).__init(bb.readInt32(bb.position()) + bb.position(), bb); -} - -static getSizePrefixedRootAsMonster(bb:flatbuffers.ByteBuffer, obj?:Monster):Monster { - bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH); - return (obj || new Monster()).__init(bb.readInt32(bb.position()) + bb.position(), bb); -} - -static bufferHasIdentifier(bb:flatbuffers.ByteBuffer):boolean { - return bb.__has_identifier('MONS'); -} - -pos(obj?:Vec3):Vec3|null { - const offset = this.bb!.__offset(this.bb_pos, 4); - return offset ? (obj || new Vec3()).__init(this.bb_pos + offset, this.bb!) : null; -} - -mana():number { - const offset = this.bb!.__offset(this.bb_pos, 6); - return offset ? this.bb!.readInt16(this.bb_pos + offset) : 150; -} - -mutate_mana(value:number):boolean { - const offset = this.bb!.__offset(this.bb_pos, 6); - - if (offset === 0) { - return false; - } - - this.bb!.writeInt16(this.bb_pos + offset, value); - return true; -} - -hp():number { - const offset = this.bb!.__offset(this.bb_pos, 8); - return offset ? this.bb!.readInt16(this.bb_pos + offset) : 100; -} - -mutate_hp(value:number):boolean { - const offset = this.bb!.__offset(this.bb_pos, 8); - - if (offset === 0) { - return false; - } - - this.bb!.writeInt16(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, 10); - return offset ? this.bb!.__string(this.bb_pos + offset, optionalEncoding) : null; -} - -inventory(index: number):number|null { - const offset = this.bb!.__offset(this.bb_pos, 14); - return offset ? this.bb!.readUint8(this.bb!.__vector(this.bb_pos + offset) + index) : 0; -} - -inventoryLength():number { - const offset = this.bb!.__offset(this.bb_pos, 14); - return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0; -} - -inventoryArray():Uint8Array|null { - const offset = this.bb!.__offset(this.bb_pos, 14); - return offset ? new Uint8Array(this.bb!.bytes().buffer, this.bb!.bytes().byteOffset + this.bb!.__vector(this.bb_pos + offset), this.bb!.__vector_len(this.bb_pos + offset)) : null; -} - -color():Color { - const offset = this.bb!.__offset(this.bb_pos, 16); - return offset ? this.bb!.readUint8(this.bb_pos + offset) : Color.Blue; -} - -mutate_color(value:Color):boolean { - const offset = this.bb!.__offset(this.bb_pos, 16); - - if (offset === 0) { - return false; - } - - this.bb!.writeUint8(this.bb_pos + offset, value); - return true; -} - -testType():Any { - const offset = this.bb!.__offset(this.bb_pos, 18); - return offset ? this.bb!.readUint8(this.bb_pos + offset) : Any.NONE; -} - -test(obj:any):any|null { - const offset = this.bb!.__offset(this.bb_pos, 20); - return offset ? this.bb!.__union(obj, this.bb_pos + offset) : null; -} - -test4(index: number, obj?:Test):Test|null { - const offset = this.bb!.__offset(this.bb_pos, 22); - return offset ? (obj || new Test()).__init(this.bb!.__vector(this.bb_pos + offset) + index * 4, this.bb!) : null; -} - -test4Length():number { - const offset = this.bb!.__offset(this.bb_pos, 22); - return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0; -} - -testarrayofstring(index: number):string -testarrayofstring(index: number,optionalEncoding:flatbuffers.Encoding):string|Uint8Array -testarrayofstring(index: number,optionalEncoding?:any):string|Uint8Array|null { - const offset = this.bb!.__offset(this.bb_pos, 24); - return offset ? this.bb!.__string(this.bb!.__vector(this.bb_pos + offset) + index * 4, optionalEncoding) : null; -} - -testarrayofstringLength():number { - const offset = this.bb!.__offset(this.bb_pos, 24); - return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0; -} - -/** - * an example documentation comment: this will end up in the generated code - * multiline too - */ -testarrayoftables(index: number, obj?:Monster):Monster|null { - const offset = this.bb!.__offset(this.bb_pos, 26); - return offset ? (obj || new Monster()).__init(this.bb!.__indirect(this.bb!.__vector(this.bb_pos + offset) + index * 4), this.bb!) : null; -} - -testarrayoftablesLength():number { - const offset = this.bb!.__offset(this.bb_pos, 26); - return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0; -} - -enemy(obj?:Monster):Monster|null { - const offset = this.bb!.__offset(this.bb_pos, 28); - return offset ? (obj || new Monster()).__init(this.bb!.__indirect(this.bb_pos + offset), this.bb!) : null; -} - -testnestedflatbuffer(index: number):number|null { - const offset = this.bb!.__offset(this.bb_pos, 30); - return offset ? this.bb!.readUint8(this.bb!.__vector(this.bb_pos + offset) + index) : 0; -} - -testnestedflatbufferLength():number { - const offset = this.bb!.__offset(this.bb_pos, 30); - return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0; -} - -testnestedflatbufferArray():Uint8Array|null { - const offset = this.bb!.__offset(this.bb_pos, 30); - return offset ? new Uint8Array(this.bb!.bytes().buffer, this.bb!.bytes().byteOffset + this.bb!.__vector(this.bb_pos + offset), this.bb!.__vector_len(this.bb_pos + offset)) : null; -} - -testempty(obj?:Stat):Stat|null { - const offset = this.bb!.__offset(this.bb_pos, 32); - return offset ? (obj || new Stat()).__init(this.bb!.__indirect(this.bb_pos + offset), this.bb!) : null; -} - -testbool():boolean { - const offset = this.bb!.__offset(this.bb_pos, 34); - return offset ? !!this.bb!.readInt8(this.bb_pos + offset) : false; -} - -mutate_testbool(value:boolean):boolean { - const offset = this.bb!.__offset(this.bb_pos, 34); - - if (offset === 0) { - return false; - } - - this.bb!.writeInt8(this.bb_pos + offset, +value); - return true; -} - -testhashs32Fnv1():number { - const offset = this.bb!.__offset(this.bb_pos, 36); - return offset ? this.bb!.readInt32(this.bb_pos + offset) : 0; -} - -mutate_testhashs32_fnv1(value:number):boolean { - const offset = this.bb!.__offset(this.bb_pos, 36); - - if (offset === 0) { - return false; - } - - this.bb!.writeInt32(this.bb_pos + offset, value); - return true; -} - -testhashu32Fnv1():number { - const offset = this.bb!.__offset(this.bb_pos, 38); - return offset ? this.bb!.readUint32(this.bb_pos + offset) : 0; -} - -mutate_testhashu32_fnv1(value:number):boolean { - const offset = this.bb!.__offset(this.bb_pos, 38); - - if (offset === 0) { - return false; - } - - this.bb!.writeUint32(this.bb_pos + offset, value); - return true; -} - -testhashs64Fnv1():bigint { - const offset = this.bb!.__offset(this.bb_pos, 40); - return offset ? this.bb!.readInt64(this.bb_pos + offset) : BigInt('0'); -} - -mutate_testhashs64_fnv1(value:bigint):boolean { - const offset = this.bb!.__offset(this.bb_pos, 40); - - if (offset === 0) { - return false; - } - - this.bb!.writeInt64(this.bb_pos + offset, value); - return true; -} - -testhashu64Fnv1():bigint { - const offset = this.bb!.__offset(this.bb_pos, 42); - return offset ? this.bb!.readUint64(this.bb_pos + offset) : BigInt('0'); -} - -mutate_testhashu64_fnv1(value:bigint):boolean { - const offset = this.bb!.__offset(this.bb_pos, 42); - - if (offset === 0) { - return false; - } - - this.bb!.writeUint64(this.bb_pos + offset, value); - return true; -} - -testhashs32Fnv1a():number { - const offset = this.bb!.__offset(this.bb_pos, 44); - return offset ? this.bb!.readInt32(this.bb_pos + offset) : 0; -} - -mutate_testhashs32_fnv1a(value:number):boolean { - const offset = this.bb!.__offset(this.bb_pos, 44); - - if (offset === 0) { - return false; - } - - this.bb!.writeInt32(this.bb_pos + offset, value); - return true; -} - -testhashu32Fnv1a():number { - const offset = this.bb!.__offset(this.bb_pos, 46); - return offset ? this.bb!.readUint32(this.bb_pos + offset) : 0; -} - -mutate_testhashu32_fnv1a(value:number):boolean { - const offset = this.bb!.__offset(this.bb_pos, 46); - - if (offset === 0) { - return false; - } - - this.bb!.writeUint32(this.bb_pos + offset, value); - return true; -} - -testhashs64Fnv1a():bigint { - const offset = this.bb!.__offset(this.bb_pos, 48); - return offset ? this.bb!.readInt64(this.bb_pos + offset) : BigInt('0'); -} - -mutate_testhashs64_fnv1a(value:bigint):boolean { - const offset = this.bb!.__offset(this.bb_pos, 48); - - if (offset === 0) { - return false; - } - - this.bb!.writeInt64(this.bb_pos + offset, value); - return true; -} - -testhashu64Fnv1a():bigint { - const offset = this.bb!.__offset(this.bb_pos, 50); - return offset ? this.bb!.readUint64(this.bb_pos + offset) : BigInt('0'); -} - -mutate_testhashu64_fnv1a(value:bigint):boolean { - const offset = this.bb!.__offset(this.bb_pos, 50); - - if (offset === 0) { - return false; - } - - this.bb!.writeUint64(this.bb_pos + offset, value); - return true; -} - -testarrayofbools(index: number):boolean|null { - const offset = this.bb!.__offset(this.bb_pos, 52); - return offset ? !!this.bb!.readInt8(this.bb!.__vector(this.bb_pos + offset) + index) : false; -} - -testarrayofboolsLength():number { - const offset = this.bb!.__offset(this.bb_pos, 52); - return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0; -} - -testarrayofboolsArray():Int8Array|null { - const offset = this.bb!.__offset(this.bb_pos, 52); - return offset ? new Int8Array(this.bb!.bytes().buffer, this.bb!.bytes().byteOffset + this.bb!.__vector(this.bb_pos + offset), this.bb!.__vector_len(this.bb_pos + offset)) : null; -} - -testf():number { - const offset = this.bb!.__offset(this.bb_pos, 54); - return offset ? this.bb!.readFloat32(this.bb_pos + offset) : 3.14159; -} - -mutate_testf(value:number):boolean { - const offset = this.bb!.__offset(this.bb_pos, 54); - - if (offset === 0) { - return false; - } - - this.bb!.writeFloat32(this.bb_pos + offset, value); - return true; -} - -testf2():number { - const offset = this.bb!.__offset(this.bb_pos, 56); - return offset ? this.bb!.readFloat32(this.bb_pos + offset) : 3.0; -} - -mutate_testf2(value:number):boolean { - const offset = this.bb!.__offset(this.bb_pos, 56); - - if (offset === 0) { - return false; - } - - this.bb!.writeFloat32(this.bb_pos + offset, value); - return true; -} - -testf3():number { - const offset = this.bb!.__offset(this.bb_pos, 58); - return offset ? this.bb!.readFloat32(this.bb_pos + offset) : 0.0; -} - -mutate_testf3(value:number):boolean { - const offset = this.bb!.__offset(this.bb_pos, 58); - - if (offset === 0) { - return false; - } - - this.bb!.writeFloat32(this.bb_pos + offset, value); - return true; -} - -testarrayofstring2(index: number):string -testarrayofstring2(index: number,optionalEncoding:flatbuffers.Encoding):string|Uint8Array -testarrayofstring2(index: number,optionalEncoding?:any):string|Uint8Array|null { - const offset = this.bb!.__offset(this.bb_pos, 60); - return offset ? this.bb!.__string(this.bb!.__vector(this.bb_pos + offset) + index * 4, optionalEncoding) : null; -} - -testarrayofstring2Length():number { - const offset = this.bb!.__offset(this.bb_pos, 60); - return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0; -} - -testarrayofsortedstruct(index: number, obj?:Ability):Ability|null { - const offset = this.bb!.__offset(this.bb_pos, 62); - return offset ? (obj || new Ability()).__init(this.bb!.__vector(this.bb_pos + offset) + index * 8, this.bb!) : null; -} - -testarrayofsortedstructLength():number { - const offset = this.bb!.__offset(this.bb_pos, 62); - return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0; -} - -flex(index: number):number|null { - const offset = this.bb!.__offset(this.bb_pos, 64); - return offset ? this.bb!.readUint8(this.bb!.__vector(this.bb_pos + offset) + index) : 0; -} - -flexLength():number { - const offset = this.bb!.__offset(this.bb_pos, 64); - return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0; -} - -flexArray():Uint8Array|null { - const offset = this.bb!.__offset(this.bb_pos, 64); - return offset ? new Uint8Array(this.bb!.bytes().buffer, this.bb!.bytes().byteOffset + this.bb!.__vector(this.bb_pos + offset), this.bb!.__vector_len(this.bb_pos + offset)) : null; -} - -test5(index: number, obj?:Test):Test|null { - const offset = this.bb!.__offset(this.bb_pos, 66); - return offset ? (obj || new Test()).__init(this.bb!.__vector(this.bb_pos + offset) + index * 4, this.bb!) : null; -} - -test5Length():number { - const offset = this.bb!.__offset(this.bb_pos, 66); - return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0; -} - -vectorOfLongs(index: number):bigint|null { - const offset = this.bb!.__offset(this.bb_pos, 68); - return offset ? this.bb!.readInt64(this.bb!.__vector(this.bb_pos + offset) + index * 8) : BigInt(0); -} - -vectorOfLongsLength():number { - const offset = this.bb!.__offset(this.bb_pos, 68); - return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0; -} - -vectorOfDoubles(index: number):number|null { - const offset = this.bb!.__offset(this.bb_pos, 70); - return offset ? this.bb!.readFloat64(this.bb!.__vector(this.bb_pos + offset) + index * 8) : 0; -} - -vectorOfDoublesLength():number { - const offset = this.bb!.__offset(this.bb_pos, 70); - return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0; -} - -vectorOfDoublesArray():Float64Array|null { - const offset = this.bb!.__offset(this.bb_pos, 70); - return offset ? new Float64Array(this.bb!.bytes().buffer, this.bb!.bytes().byteOffset + this.bb!.__vector(this.bb_pos + offset), this.bb!.__vector_len(this.bb_pos + offset)) : null; -} - -parentNamespaceTest(obj?:InParentNamespace):InParentNamespace|null { - const offset = this.bb!.__offset(this.bb_pos, 72); - return offset ? (obj || new InParentNamespace()).__init(this.bb!.__indirect(this.bb_pos + offset), this.bb!) : null; -} - -vectorOfReferrables(index: number, obj?:Referrable):Referrable|null { - const offset = this.bb!.__offset(this.bb_pos, 74); - return offset ? (obj || new Referrable()).__init(this.bb!.__indirect(this.bb!.__vector(this.bb_pos + offset) + index * 4), this.bb!) : null; -} - -vectorOfReferrablesLength():number { - const offset = this.bb!.__offset(this.bb_pos, 74); - return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0; -} - -singleWeakReference():bigint { - const offset = this.bb!.__offset(this.bb_pos, 76); - return offset ? this.bb!.readUint64(this.bb_pos + offset) : BigInt('0'); -} - -mutate_single_weak_reference(value:bigint):boolean { - const offset = this.bb!.__offset(this.bb_pos, 76); - - if (offset === 0) { - return false; - } - - this.bb!.writeUint64(this.bb_pos + offset, value); - return true; -} - -vectorOfWeakReferences(index: number):bigint|null { - const offset = this.bb!.__offset(this.bb_pos, 78); - return offset ? this.bb!.readUint64(this.bb!.__vector(this.bb_pos + offset) + index * 8) : BigInt(0); -} - -vectorOfWeakReferencesLength():number { - const offset = this.bb!.__offset(this.bb_pos, 78); - return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0; -} - -vectorOfStrongReferrables(index: number, obj?:Referrable):Referrable|null { - const offset = this.bb!.__offset(this.bb_pos, 80); - return offset ? (obj || new Referrable()).__init(this.bb!.__indirect(this.bb!.__vector(this.bb_pos + offset) + index * 4), this.bb!) : null; -} - -vectorOfStrongReferrablesLength():number { - const offset = this.bb!.__offset(this.bb_pos, 80); - return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0; -} - -coOwningReference():bigint { - const offset = this.bb!.__offset(this.bb_pos, 82); - return offset ? this.bb!.readUint64(this.bb_pos + offset) : BigInt('0'); -} - -mutate_co_owning_reference(value:bigint):boolean { - const offset = this.bb!.__offset(this.bb_pos, 82); - - if (offset === 0) { - return false; - } - - this.bb!.writeUint64(this.bb_pos + offset, value); - return true; -} - -vectorOfCoOwningReferences(index: number):bigint|null { - const offset = this.bb!.__offset(this.bb_pos, 84); - return offset ? this.bb!.readUint64(this.bb!.__vector(this.bb_pos + offset) + index * 8) : BigInt(0); -} - -vectorOfCoOwningReferencesLength():number { - const offset = this.bb!.__offset(this.bb_pos, 84); - return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0; -} - -nonOwningReference():bigint { - const offset = this.bb!.__offset(this.bb_pos, 86); - return offset ? this.bb!.readUint64(this.bb_pos + offset) : BigInt('0'); -} - -mutate_non_owning_reference(value:bigint):boolean { - const offset = this.bb!.__offset(this.bb_pos, 86); - - if (offset === 0) { - return false; - } - - this.bb!.writeUint64(this.bb_pos + offset, value); - return true; -} - -vectorOfNonOwningReferences(index: number):bigint|null { - const offset = this.bb!.__offset(this.bb_pos, 88); - return offset ? this.bb!.readUint64(this.bb!.__vector(this.bb_pos + offset) + index * 8) : BigInt(0); -} - -vectorOfNonOwningReferencesLength():number { - const offset = this.bb!.__offset(this.bb_pos, 88); - return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0; -} - -anyUniqueType():AnyUniqueAliases { - const offset = this.bb!.__offset(this.bb_pos, 90); - return offset ? this.bb!.readUint8(this.bb_pos + offset) : AnyUniqueAliases.NONE; -} - -anyUnique(obj:any):any|null { - const offset = this.bb!.__offset(this.bb_pos, 92); - return offset ? this.bb!.__union(obj, this.bb_pos + offset) : null; -} - -anyAmbiguousType():AnyAmbiguousAliases { - const offset = this.bb!.__offset(this.bb_pos, 94); - return offset ? this.bb!.readUint8(this.bb_pos + offset) : AnyAmbiguousAliases.NONE; -} - -anyAmbiguous(obj:any):any|null { - const offset = this.bb!.__offset(this.bb_pos, 96); - return offset ? this.bb!.__union(obj, this.bb_pos + offset) : null; -} - -vectorOfEnums(index: number):Color|null { - const offset = this.bb!.__offset(this.bb_pos, 98); - return offset ? this.bb!.readUint8(this.bb!.__vector(this.bb_pos + offset) + index) : 0; -} - -vectorOfEnumsLength():number { - const offset = this.bb!.__offset(this.bb_pos, 98); - return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0; -} - -vectorOfEnumsArray():Uint8Array|null { - const offset = this.bb!.__offset(this.bb_pos, 98); - return offset ? new Uint8Array(this.bb!.bytes().buffer, this.bb!.bytes().byteOffset + this.bb!.__vector(this.bb_pos + offset), this.bb!.__vector_len(this.bb_pos + offset)) : null; -} - -signedEnum():Race { - const offset = this.bb!.__offset(this.bb_pos, 100); - return offset ? this.bb!.readInt8(this.bb_pos + offset) : Race.None; -} - -mutate_signed_enum(value:Race):boolean { - const offset = this.bb!.__offset(this.bb_pos, 100); - - if (offset === 0) { - return false; - } - - this.bb!.writeInt8(this.bb_pos + offset, value); - return true; -} - -testrequirednestedflatbuffer(index: number):number|null { - const offset = this.bb!.__offset(this.bb_pos, 102); - return offset ? this.bb!.readUint8(this.bb!.__vector(this.bb_pos + offset) + index) : 0; -} - -testrequirednestedflatbufferLength():number { - const offset = this.bb!.__offset(this.bb_pos, 102); - return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0; -} - -testrequirednestedflatbufferArray():Uint8Array|null { - const offset = this.bb!.__offset(this.bb_pos, 102); - return offset ? new Uint8Array(this.bb!.bytes().buffer, this.bb!.bytes().byteOffset + this.bb!.__vector(this.bb_pos + offset), this.bb!.__vector_len(this.bb_pos + offset)) : null; -} - -scalarKeySortedTables(index: number, obj?:Stat):Stat|null { - const offset = this.bb!.__offset(this.bb_pos, 104); - return offset ? (obj || new Stat()).__init(this.bb!.__indirect(this.bb!.__vector(this.bb_pos + offset) + index * 4), this.bb!) : null; -} - -scalarKeySortedTablesLength():number { - const offset = this.bb!.__offset(this.bb_pos, 104); - return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0; -} - -nativeInline(obj?:Test):Test|null { - const offset = this.bb!.__offset(this.bb_pos, 106); - return offset ? (obj || new Test()).__init(this.bb_pos + offset, this.bb!) : null; -} - -longEnumNonEnumDefault():bigint { - const offset = this.bb!.__offset(this.bb_pos, 108); - return offset ? this.bb!.readUint64(this.bb_pos + offset) : BigInt('0'); -} - -mutate_long_enum_non_enum_default(value:bigint):boolean { - const offset = this.bb!.__offset(this.bb_pos, 108); - - if (offset === 0) { - return false; - } - - this.bb!.writeUint64(this.bb_pos + offset, value); - return true; -} - -longEnumNormalDefault():bigint { - const offset = this.bb!.__offset(this.bb_pos, 110); - return offset ? this.bb!.readUint64(this.bb_pos + offset) : BigInt('2'); -} - -mutate_long_enum_normal_default(value:bigint):boolean { - const offset = this.bb!.__offset(this.bb_pos, 110); - - if (offset === 0) { - return false; - } - - this.bb!.writeUint64(this.bb_pos + offset, value); - return true; -} - -static getFullyQualifiedName():string { - return 'MyGame_Example_Monster'; -} - -static startMonster(builder:flatbuffers.Builder) { - builder.startObject(54); -} - -static addPos(builder:flatbuffers.Builder, posOffset:flatbuffers.Offset) { - builder.addFieldStruct(0, posOffset, 0); -} - -static addMana(builder:flatbuffers.Builder, mana:number) { - builder.addFieldInt16(1, mana, 150); -} - -static addHp(builder:flatbuffers.Builder, hp:number) { - builder.addFieldInt16(2, hp, 100); -} - -static addName(builder:flatbuffers.Builder, nameOffset:flatbuffers.Offset) { - builder.addFieldOffset(3, nameOffset, 0); -} - -static addInventory(builder:flatbuffers.Builder, inventoryOffset:flatbuffers.Offset) { - builder.addFieldOffset(5, inventoryOffset, 0); -} - -static createInventoryVector(builder:flatbuffers.Builder, data:number[]|Uint8Array):flatbuffers.Offset { - builder.startVector(1, data.length, 1); - for (let i = data.length - 1; i >= 0; i--) { - builder.addInt8(data[i]!); - } - return builder.endVector(); -} - -static startInventoryVector(builder:flatbuffers.Builder, numElems:number) { - builder.startVector(1, numElems, 1); -} - -static addColor(builder:flatbuffers.Builder, color:Color) { - builder.addFieldInt8(6, color, Color.Blue); -} - -static addTestType(builder:flatbuffers.Builder, testType:Any) { - builder.addFieldInt8(7, testType, Any.NONE); -} - -static addTest(builder:flatbuffers.Builder, testOffset:flatbuffers.Offset) { - builder.addFieldOffset(8, testOffset, 0); -} - -static addTest4(builder:flatbuffers.Builder, test4Offset:flatbuffers.Offset) { - builder.addFieldOffset(9, test4Offset, 0); -} - -static startTest4Vector(builder:flatbuffers.Builder, numElems:number) { - builder.startVector(4, numElems, 2); -} - -static addTestarrayofstring(builder:flatbuffers.Builder, testarrayofstringOffset:flatbuffers.Offset) { - builder.addFieldOffset(10, testarrayofstringOffset, 0); -} - -static createTestarrayofstringVector(builder:flatbuffers.Builder, data:flatbuffers.Offset[]):flatbuffers.Offset { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]!); - } - return builder.endVector(); -} - -static startTestarrayofstringVector(builder:flatbuffers.Builder, numElems:number) { - builder.startVector(4, numElems, 4); -} - -static addTestarrayoftables(builder:flatbuffers.Builder, testarrayoftablesOffset:flatbuffers.Offset) { - builder.addFieldOffset(11, testarrayoftablesOffset, 0); -} - -static createTestarrayoftablesVector(builder:flatbuffers.Builder, data:flatbuffers.Offset[]):flatbuffers.Offset { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]!); - } - return builder.endVector(); -} - -static startTestarrayoftablesVector(builder:flatbuffers.Builder, numElems:number) { - builder.startVector(4, numElems, 4); -} - -static addEnemy(builder:flatbuffers.Builder, enemyOffset:flatbuffers.Offset) { - builder.addFieldOffset(12, enemyOffset, 0); -} - -static addTestnestedflatbuffer(builder:flatbuffers.Builder, testnestedflatbufferOffset:flatbuffers.Offset) { - builder.addFieldOffset(13, testnestedflatbufferOffset, 0); -} - -static createTestnestedflatbufferVector(builder:flatbuffers.Builder, data:number[]|Uint8Array):flatbuffers.Offset { - builder.startVector(1, data.length, 1); - for (let i = data.length - 1; i >= 0; i--) { - builder.addInt8(data[i]!); - } - return builder.endVector(); -} - -static startTestnestedflatbufferVector(builder:flatbuffers.Builder, numElems:number) { - builder.startVector(1, numElems, 1); -} - -static addTestempty(builder:flatbuffers.Builder, testemptyOffset:flatbuffers.Offset) { - builder.addFieldOffset(14, testemptyOffset, 0); -} - -static addTestbool(builder:flatbuffers.Builder, testbool:boolean) { - builder.addFieldInt8(15, +testbool, +false); -} - -static addTesthashs32Fnv1(builder:flatbuffers.Builder, testhashs32Fnv1:number) { - builder.addFieldInt32(16, testhashs32Fnv1, 0); -} - -static addTesthashu32Fnv1(builder:flatbuffers.Builder, testhashu32Fnv1:number) { - builder.addFieldInt32(17, testhashu32Fnv1, 0); -} - -static addTesthashs64Fnv1(builder:flatbuffers.Builder, testhashs64Fnv1:bigint) { - builder.addFieldInt64(18, testhashs64Fnv1, BigInt('0')); -} - -static addTesthashu64Fnv1(builder:flatbuffers.Builder, testhashu64Fnv1:bigint) { - builder.addFieldInt64(19, testhashu64Fnv1, BigInt('0')); -} - -static addTesthashs32Fnv1a(builder:flatbuffers.Builder, testhashs32Fnv1a:number) { - builder.addFieldInt32(20, testhashs32Fnv1a, 0); -} - -static addTesthashu32Fnv1a(builder:flatbuffers.Builder, testhashu32Fnv1a:number) { - builder.addFieldInt32(21, testhashu32Fnv1a, 0); -} - -static addTesthashs64Fnv1a(builder:flatbuffers.Builder, testhashs64Fnv1a:bigint) { - builder.addFieldInt64(22, testhashs64Fnv1a, BigInt('0')); -} - -static addTesthashu64Fnv1a(builder:flatbuffers.Builder, testhashu64Fnv1a:bigint) { - builder.addFieldInt64(23, testhashu64Fnv1a, BigInt('0')); -} - -static addTestarrayofbools(builder:flatbuffers.Builder, testarrayofboolsOffset:flatbuffers.Offset) { - builder.addFieldOffset(24, testarrayofboolsOffset, 0); -} - -static createTestarrayofboolsVector(builder:flatbuffers.Builder, data:boolean[]):flatbuffers.Offset { - builder.startVector(1, data.length, 1); - for (let i = data.length - 1; i >= 0; i--) { - builder.addInt8(+data[i]!); - } - return builder.endVector(); -} - -static startTestarrayofboolsVector(builder:flatbuffers.Builder, numElems:number) { - builder.startVector(1, numElems, 1); -} - -static addTestf(builder:flatbuffers.Builder, testf:number) { - builder.addFieldFloat32(25, testf, 3.14159); -} - -static addTestf2(builder:flatbuffers.Builder, testf2:number) { - builder.addFieldFloat32(26, testf2, 3.0); -} - -static addTestf3(builder:flatbuffers.Builder, testf3:number) { - builder.addFieldFloat32(27, testf3, 0.0); -} - -static addTestarrayofstring2(builder:flatbuffers.Builder, testarrayofstring2Offset:flatbuffers.Offset) { - builder.addFieldOffset(28, testarrayofstring2Offset, 0); -} - -static createTestarrayofstring2Vector(builder:flatbuffers.Builder, data:flatbuffers.Offset[]):flatbuffers.Offset { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]!); - } - return builder.endVector(); -} - -static startTestarrayofstring2Vector(builder:flatbuffers.Builder, numElems:number) { - builder.startVector(4, numElems, 4); -} - -static addTestarrayofsortedstruct(builder:flatbuffers.Builder, testarrayofsortedstructOffset:flatbuffers.Offset) { - builder.addFieldOffset(29, testarrayofsortedstructOffset, 0); -} - -static startTestarrayofsortedstructVector(builder:flatbuffers.Builder, numElems:number) { - builder.startVector(8, numElems, 4); -} - -static addFlex(builder:flatbuffers.Builder, flexOffset:flatbuffers.Offset) { - builder.addFieldOffset(30, flexOffset, 0); -} - -static createFlexVector(builder:flatbuffers.Builder, data:number[]|Uint8Array):flatbuffers.Offset { - builder.startVector(1, data.length, 1); - for (let i = data.length - 1; i >= 0; i--) { - builder.addInt8(data[i]!); - } - return builder.endVector(); -} - -static startFlexVector(builder:flatbuffers.Builder, numElems:number) { - builder.startVector(1, numElems, 1); -} - -static addTest5(builder:flatbuffers.Builder, test5Offset:flatbuffers.Offset) { - builder.addFieldOffset(31, test5Offset, 0); -} - -static startTest5Vector(builder:flatbuffers.Builder, numElems:number) { - builder.startVector(4, numElems, 2); -} - -static addVectorOfLongs(builder:flatbuffers.Builder, vectorOfLongsOffset:flatbuffers.Offset) { - builder.addFieldOffset(32, vectorOfLongsOffset, 0); -} - -static createVectorOfLongsVector(builder:flatbuffers.Builder, data:bigint[]):flatbuffers.Offset { - builder.startVector(8, data.length, 8); - for (let i = data.length - 1; i >= 0; i--) { - builder.addInt64(data[i]!); - } - return builder.endVector(); -} - -static startVectorOfLongsVector(builder:flatbuffers.Builder, numElems:number) { - builder.startVector(8, numElems, 8); -} - -static addVectorOfDoubles(builder:flatbuffers.Builder, vectorOfDoublesOffset:flatbuffers.Offset) { - builder.addFieldOffset(33, vectorOfDoublesOffset, 0); -} - -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 createVectorOfDoublesVector(builder:flatbuffers.Builder, data:number[]|Float64Array|Uint8Array):flatbuffers.Offset { - builder.startVector(8, data.length, 8); - for (let i = data.length - 1; i >= 0; i--) { - builder.addFloat64(data[i]!); - } - return builder.endVector(); -} - -static startVectorOfDoublesVector(builder:flatbuffers.Builder, numElems:number) { - builder.startVector(8, numElems, 8); -} - -static addParentNamespaceTest(builder:flatbuffers.Builder, parentNamespaceTestOffset:flatbuffers.Offset) { - builder.addFieldOffset(34, parentNamespaceTestOffset, 0); -} - -static addVectorOfReferrables(builder:flatbuffers.Builder, vectorOfReferrablesOffset:flatbuffers.Offset) { - builder.addFieldOffset(35, vectorOfReferrablesOffset, 0); -} - -static createVectorOfReferrablesVector(builder:flatbuffers.Builder, data:flatbuffers.Offset[]):flatbuffers.Offset { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]!); - } - return builder.endVector(); -} - -static startVectorOfReferrablesVector(builder:flatbuffers.Builder, numElems:number) { - builder.startVector(4, numElems, 4); -} - -static addSingleWeakReference(builder:flatbuffers.Builder, singleWeakReference:bigint) { - builder.addFieldInt64(36, singleWeakReference, BigInt('0')); -} - -static addVectorOfWeakReferences(builder:flatbuffers.Builder, vectorOfWeakReferencesOffset:flatbuffers.Offset) { - builder.addFieldOffset(37, vectorOfWeakReferencesOffset, 0); -} - -static createVectorOfWeakReferencesVector(builder:flatbuffers.Builder, data:bigint[]):flatbuffers.Offset { - builder.startVector(8, data.length, 8); - for (let i = data.length - 1; i >= 0; i--) { - builder.addInt64(data[i]!); - } - return builder.endVector(); -} - -static startVectorOfWeakReferencesVector(builder:flatbuffers.Builder, numElems:number) { - builder.startVector(8, numElems, 8); -} - -static addVectorOfStrongReferrables(builder:flatbuffers.Builder, vectorOfStrongReferrablesOffset:flatbuffers.Offset) { - builder.addFieldOffset(38, vectorOfStrongReferrablesOffset, 0); -} - -static createVectorOfStrongReferrablesVector(builder:flatbuffers.Builder, data:flatbuffers.Offset[]):flatbuffers.Offset { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]!); - } - return builder.endVector(); -} - -static startVectorOfStrongReferrablesVector(builder:flatbuffers.Builder, numElems:number) { - builder.startVector(4, numElems, 4); -} - -static addCoOwningReference(builder:flatbuffers.Builder, coOwningReference:bigint) { - builder.addFieldInt64(39, coOwningReference, BigInt('0')); -} - -static addVectorOfCoOwningReferences(builder:flatbuffers.Builder, vectorOfCoOwningReferencesOffset:flatbuffers.Offset) { - builder.addFieldOffset(40, vectorOfCoOwningReferencesOffset, 0); -} - -static createVectorOfCoOwningReferencesVector(builder:flatbuffers.Builder, data:bigint[]):flatbuffers.Offset { - builder.startVector(8, data.length, 8); - for (let i = data.length - 1; i >= 0; i--) { - builder.addInt64(data[i]!); - } - return builder.endVector(); -} - -static startVectorOfCoOwningReferencesVector(builder:flatbuffers.Builder, numElems:number) { - builder.startVector(8, numElems, 8); -} - -static addNonOwningReference(builder:flatbuffers.Builder, nonOwningReference:bigint) { - builder.addFieldInt64(41, nonOwningReference, BigInt('0')); -} - -static addVectorOfNonOwningReferences(builder:flatbuffers.Builder, vectorOfNonOwningReferencesOffset:flatbuffers.Offset) { - builder.addFieldOffset(42, vectorOfNonOwningReferencesOffset, 0); -} - -static createVectorOfNonOwningReferencesVector(builder:flatbuffers.Builder, data:bigint[]):flatbuffers.Offset { - builder.startVector(8, data.length, 8); - for (let i = data.length - 1; i >= 0; i--) { - builder.addInt64(data[i]!); - } - return builder.endVector(); -} - -static startVectorOfNonOwningReferencesVector(builder:flatbuffers.Builder, numElems:number) { - builder.startVector(8, numElems, 8); -} - -static addAnyUniqueType(builder:flatbuffers.Builder, anyUniqueType:AnyUniqueAliases) { - builder.addFieldInt8(43, anyUniqueType, AnyUniqueAliases.NONE); -} - -static addAnyUnique(builder:flatbuffers.Builder, anyUniqueOffset:flatbuffers.Offset) { - builder.addFieldOffset(44, anyUniqueOffset, 0); -} - -static addAnyAmbiguousType(builder:flatbuffers.Builder, anyAmbiguousType:AnyAmbiguousAliases) { - builder.addFieldInt8(45, anyAmbiguousType, AnyAmbiguousAliases.NONE); -} - -static addAnyAmbiguous(builder:flatbuffers.Builder, anyAmbiguousOffset:flatbuffers.Offset) { - builder.addFieldOffset(46, anyAmbiguousOffset, 0); -} - -static addVectorOfEnums(builder:flatbuffers.Builder, vectorOfEnumsOffset:flatbuffers.Offset) { - builder.addFieldOffset(47, vectorOfEnumsOffset, 0); -} - -static createVectorOfEnumsVector(builder:flatbuffers.Builder, data:Color[]):flatbuffers.Offset { - builder.startVector(1, data.length, 1); - for (let i = data.length - 1; i >= 0; i--) { - builder.addInt8(data[i]!); - } - return builder.endVector(); -} - -static startVectorOfEnumsVector(builder:flatbuffers.Builder, numElems:number) { - builder.startVector(1, numElems, 1); -} - -static addSignedEnum(builder:flatbuffers.Builder, signedEnum:Race) { - builder.addFieldInt8(48, signedEnum, Race.None); -} - -static addTestrequirednestedflatbuffer(builder:flatbuffers.Builder, testrequirednestedflatbufferOffset:flatbuffers.Offset) { - builder.addFieldOffset(49, testrequirednestedflatbufferOffset, 0); -} - -static createTestrequirednestedflatbufferVector(builder:flatbuffers.Builder, data:number[]|Uint8Array):flatbuffers.Offset { - builder.startVector(1, data.length, 1); - for (let i = data.length - 1; i >= 0; i--) { - builder.addInt8(data[i]!); - } - return builder.endVector(); -} - -static startTestrequirednestedflatbufferVector(builder:flatbuffers.Builder, numElems:number) { - builder.startVector(1, numElems, 1); -} - -static addScalarKeySortedTables(builder:flatbuffers.Builder, scalarKeySortedTablesOffset:flatbuffers.Offset) { - builder.addFieldOffset(50, scalarKeySortedTablesOffset, 0); -} - -static createScalarKeySortedTablesVector(builder:flatbuffers.Builder, data:flatbuffers.Offset[]):flatbuffers.Offset { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]!); - } - return builder.endVector(); -} - -static startScalarKeySortedTablesVector(builder:flatbuffers.Builder, numElems:number) { - builder.startVector(4, numElems, 4); -} - -static addNativeInline(builder:flatbuffers.Builder, nativeInlineOffset:flatbuffers.Offset) { - builder.addFieldStruct(51, nativeInlineOffset, 0); -} - -static addLongEnumNonEnumDefault(builder:flatbuffers.Builder, longEnumNonEnumDefault:bigint) { - builder.addFieldInt64(52, longEnumNonEnumDefault, BigInt('0')); -} - -static addLongEnumNormalDefault(builder:flatbuffers.Builder, longEnumNormalDefault:bigint) { - builder.addFieldInt64(53, longEnumNormalDefault, BigInt('2')); -} - -static endMonster(builder:flatbuffers.Builder):flatbuffers.Offset { - const offset = builder.endObject(); - builder.requiredField(offset, 10) // name - return offset; -} - -static finishMonsterBuffer(builder:flatbuffers.Builder, offset:flatbuffers.Offset) { - builder.finish(offset, 'MONS'); -} - -static finishSizePrefixedMonsterBuffer(builder:flatbuffers.Builder, offset:flatbuffers.Offset) { - builder.finish(offset, 'MONS', true); -} - - -serialize():Uint8Array { - return this.bb!.bytes(); -} - -static deserialize(buffer: Uint8Array):Monster { - return Monster.getRootAsMonster(new flatbuffers.ByteBuffer(buffer)) -} - -unpack(): MonsterT { - return new MonsterT( - (this.pos() !== null ? this.pos()!.unpack() : null), - this.mana(), - this.hp(), - this.name(), - this.bb!.createScalarList(this.inventory.bind(this), this.inventoryLength()), - this.color(), - this.testType(), - (() => { - let temp = unionToAny(this.testType(), this.test.bind(this)); - if(temp === null) { return null; } - return temp.unpack() - })(), - this.bb!.createObjList(this.test4.bind(this), this.test4Length()), - this.bb!.createScalarList(this.testarrayofstring.bind(this), this.testarrayofstringLength()), - this.bb!.createObjList(this.testarrayoftables.bind(this), this.testarrayoftablesLength()), - (this.enemy() !== null ? this.enemy()!.unpack() : null), - this.bb!.createScalarList(this.testnestedflatbuffer.bind(this), this.testnestedflatbufferLength()), - (this.testempty() !== null ? this.testempty()!.unpack() : null), - this.testbool(), - this.testhashs32Fnv1(), - this.testhashu32Fnv1(), - this.testhashs64Fnv1(), - this.testhashu64Fnv1(), - this.testhashs32Fnv1a(), - this.testhashu32Fnv1a(), - this.testhashs64Fnv1a(), - this.testhashu64Fnv1a(), - this.bb!.createScalarList(this.testarrayofbools.bind(this), this.testarrayofboolsLength()), - this.testf(), - this.testf2(), - this.testf3(), - this.bb!.createScalarList(this.testarrayofstring2.bind(this), this.testarrayofstring2Length()), - this.bb!.createObjList(this.testarrayofsortedstruct.bind(this), this.testarrayofsortedstructLength()), - this.bb!.createScalarList(this.flex.bind(this), this.flexLength()), - this.bb!.createObjList(this.test5.bind(this), this.test5Length()), - this.bb!.createScalarList(this.vectorOfLongs.bind(this), this.vectorOfLongsLength()), - this.bb!.createScalarList(this.vectorOfDoubles.bind(this), this.vectorOfDoublesLength()), - (this.parentNamespaceTest() !== null ? this.parentNamespaceTest()!.unpack() : null), - this.bb!.createObjList(this.vectorOfReferrables.bind(this), this.vectorOfReferrablesLength()), - this.singleWeakReference(), - this.bb!.createScalarList(this.vectorOfWeakReferences.bind(this), this.vectorOfWeakReferencesLength()), - this.bb!.createObjList(this.vectorOfStrongReferrables.bind(this), this.vectorOfStrongReferrablesLength()), - this.coOwningReference(), - this.bb!.createScalarList(this.vectorOfCoOwningReferences.bind(this), this.vectorOfCoOwningReferencesLength()), - this.nonOwningReference(), - this.bb!.createScalarList(this.vectorOfNonOwningReferences.bind(this), this.vectorOfNonOwningReferencesLength()), - this.anyUniqueType(), - (() => { - let temp = unionToAnyUniqueAliases(this.anyUniqueType(), this.anyUnique.bind(this)); - if(temp === null) { return null; } - return temp.unpack() - })(), - this.anyAmbiguousType(), - (() => { - let temp = unionToAnyAmbiguousAliases(this.anyAmbiguousType(), this.anyAmbiguous.bind(this)); - if(temp === null) { return null; } - return temp.unpack() - })(), - this.bb!.createScalarList(this.vectorOfEnums.bind(this), this.vectorOfEnumsLength()), - this.signedEnum(), - this.bb!.createScalarList(this.testrequirednestedflatbuffer.bind(this), this.testrequirednestedflatbufferLength()), - this.bb!.createObjList(this.scalarKeySortedTables.bind(this), this.scalarKeySortedTablesLength()), - (this.nativeInline() !== null ? this.nativeInline()!.unpack() : null), - this.longEnumNonEnumDefault(), - this.longEnumNormalDefault() - ); -} - - -unpackTo(_o: MonsterT): void { - _o.pos = (this.pos() !== null ? this.pos()!.unpack() : null); - _o.mana = this.mana(); - _o.hp = this.hp(); - _o.name = this.name(); - _o.inventory = this.bb!.createScalarList(this.inventory.bind(this), this.inventoryLength()); - _o.color = this.color(); - _o.testType = this.testType(); - _o.test = (() => { - let temp = unionToAny(this.testType(), this.test.bind(this)); - if(temp === null) { return null; } - return temp.unpack() - })(); - _o.test4 = this.bb!.createObjList(this.test4.bind(this), this.test4Length()); - _o.testarrayofstring = this.bb!.createScalarList(this.testarrayofstring.bind(this), this.testarrayofstringLength()); - _o.testarrayoftables = this.bb!.createObjList(this.testarrayoftables.bind(this), this.testarrayoftablesLength()); - _o.enemy = (this.enemy() !== null ? this.enemy()!.unpack() : null); - _o.testnestedflatbuffer = this.bb!.createScalarList(this.testnestedflatbuffer.bind(this), this.testnestedflatbufferLength()); - _o.testempty = (this.testempty() !== null ? this.testempty()!.unpack() : null); - _o.testbool = this.testbool(); - _o.testhashs32Fnv1 = this.testhashs32Fnv1(); - _o.testhashu32Fnv1 = this.testhashu32Fnv1(); - _o.testhashs64Fnv1 = this.testhashs64Fnv1(); - _o.testhashu64Fnv1 = this.testhashu64Fnv1(); - _o.testhashs32Fnv1a = this.testhashs32Fnv1a(); - _o.testhashu32Fnv1a = this.testhashu32Fnv1a(); - _o.testhashs64Fnv1a = this.testhashs64Fnv1a(); - _o.testhashu64Fnv1a = this.testhashu64Fnv1a(); - _o.testarrayofbools = this.bb!.createScalarList(this.testarrayofbools.bind(this), this.testarrayofboolsLength()); - _o.testf = this.testf(); - _o.testf2 = this.testf2(); - _o.testf3 = this.testf3(); - _o.testarrayofstring2 = this.bb!.createScalarList(this.testarrayofstring2.bind(this), this.testarrayofstring2Length()); - _o.testarrayofsortedstruct = this.bb!.createObjList(this.testarrayofsortedstruct.bind(this), this.testarrayofsortedstructLength()); - _o.flex = this.bb!.createScalarList(this.flex.bind(this), this.flexLength()); - _o.test5 = this.bb!.createObjList(this.test5.bind(this), this.test5Length()); - _o.vectorOfLongs = this.bb!.createScalarList(this.vectorOfLongs.bind(this), this.vectorOfLongsLength()); - _o.vectorOfDoubles = this.bb!.createScalarList(this.vectorOfDoubles.bind(this), this.vectorOfDoublesLength()); - _o.parentNamespaceTest = (this.parentNamespaceTest() !== null ? this.parentNamespaceTest()!.unpack() : null); - _o.vectorOfReferrables = this.bb!.createObjList(this.vectorOfReferrables.bind(this), this.vectorOfReferrablesLength()); - _o.singleWeakReference = this.singleWeakReference(); - _o.vectorOfWeakReferences = this.bb!.createScalarList(this.vectorOfWeakReferences.bind(this), this.vectorOfWeakReferencesLength()); - _o.vectorOfStrongReferrables = this.bb!.createObjList(this.vectorOfStrongReferrables.bind(this), this.vectorOfStrongReferrablesLength()); - _o.coOwningReference = this.coOwningReference(); - _o.vectorOfCoOwningReferences = this.bb!.createScalarList(this.vectorOfCoOwningReferences.bind(this), this.vectorOfCoOwningReferencesLength()); - _o.nonOwningReference = this.nonOwningReference(); - _o.vectorOfNonOwningReferences = this.bb!.createScalarList(this.vectorOfNonOwningReferences.bind(this), this.vectorOfNonOwningReferencesLength()); - _o.anyUniqueType = this.anyUniqueType(); - _o.anyUnique = (() => { - let temp = unionToAnyUniqueAliases(this.anyUniqueType(), this.anyUnique.bind(this)); - if(temp === null) { return null; } - return temp.unpack() - })(); - _o.anyAmbiguousType = this.anyAmbiguousType(); - _o.anyAmbiguous = (() => { - let temp = unionToAnyAmbiguousAliases(this.anyAmbiguousType(), this.anyAmbiguous.bind(this)); - if(temp === null) { return null; } - return temp.unpack() - })(); - _o.vectorOfEnums = this.bb!.createScalarList(this.vectorOfEnums.bind(this), this.vectorOfEnumsLength()); - _o.signedEnum = this.signedEnum(); - _o.testrequirednestedflatbuffer = this.bb!.createScalarList(this.testrequirednestedflatbuffer.bind(this), this.testrequirednestedflatbufferLength()); - _o.scalarKeySortedTables = this.bb!.createObjList(this.scalarKeySortedTables.bind(this), this.scalarKeySortedTablesLength()); - _o.nativeInline = (this.nativeInline() !== null ? this.nativeInline()!.unpack() : null); - _o.longEnumNonEnumDefault = this.longEnumNonEnumDefault(); - _o.longEnumNormalDefault = this.longEnumNormalDefault(); -} -} - -export class MonsterT { -constructor( - public pos: Vec3T|null = null, - public mana: number = 150, - public hp: number = 100, - public name: string|Uint8Array|null = null, - public inventory: (number)[] = [], - public color: Color = Color.Blue, - public testType: Any = Any.NONE, - public test: MonsterT|MyGame_Example2_MonsterT|TestSimpleTableWithEnumT|null = null, - public test4: (TestT)[] = [], - public testarrayofstring: (string)[] = [], - public testarrayoftables: (MonsterT)[] = [], - public enemy: MonsterT|null = null, - public testnestedflatbuffer: (number)[] = [], - public testempty: StatT|null = null, - public testbool: boolean = false, - public testhashs32Fnv1: number = 0, - public testhashu32Fnv1: number = 0, - public testhashs64Fnv1: bigint = BigInt('0'), - public testhashu64Fnv1: bigint = BigInt('0'), - public testhashs32Fnv1a: number = 0, - public testhashu32Fnv1a: number = 0, - public testhashs64Fnv1a: bigint = BigInt('0'), - public testhashu64Fnv1a: bigint = BigInt('0'), - public testarrayofbools: (boolean)[] = [], - public testf: number = 3.14159, - public testf2: number = 3.0, - public testf3: number = 0.0, - public testarrayofstring2: (string)[] = [], - public testarrayofsortedstruct: (AbilityT)[] = [], - public flex: (number)[] = [], - public test5: (TestT)[] = [], - public vectorOfLongs: (bigint)[] = [], - public vectorOfDoubles: (number)[] = [], - public parentNamespaceTest: InParentNamespaceT|null = null, - public vectorOfReferrables: (ReferrableT)[] = [], - public singleWeakReference: bigint = BigInt('0'), - public vectorOfWeakReferences: (bigint)[] = [], - public vectorOfStrongReferrables: (ReferrableT)[] = [], - public coOwningReference: bigint = BigInt('0'), - public vectorOfCoOwningReferences: (bigint)[] = [], - public nonOwningReference: bigint = BigInt('0'), - public vectorOfNonOwningReferences: (bigint)[] = [], - public anyUniqueType: AnyUniqueAliases = AnyUniqueAliases.NONE, - public anyUnique: MonsterT|MyGame_Example2_MonsterT|TestSimpleTableWithEnumT|null = null, - public anyAmbiguousType: AnyAmbiguousAliases = AnyAmbiguousAliases.NONE, - public anyAmbiguous: MonsterT|null = null, - public vectorOfEnums: (Color)[] = [], - public signedEnum: Race = Race.None, - public testrequirednestedflatbuffer: (number)[] = [], - public scalarKeySortedTables: (StatT)[] = [], - public nativeInline: TestT|null = null, - public longEnumNonEnumDefault: bigint = BigInt('0'), - public longEnumNormalDefault: bigint = BigInt('2') -){} - - -pack(builder:flatbuffers.Builder): flatbuffers.Offset { - const name = (this.name !== null ? builder.createString(this.name!) : 0); - const inventory = Monster.createInventoryVector(builder, this.inventory); - const test = builder.createObjectOffset(this.test); - const test4 = builder.createStructOffsetList(this.test4, Monster.startTest4Vector); - const testarrayofstring = Monster.createTestarrayofstringVector(builder, builder.createObjectOffsetList(this.testarrayofstring)); - const testarrayoftables = Monster.createTestarrayoftablesVector(builder, builder.createObjectOffsetList(this.testarrayoftables)); - const enemy = (this.enemy !== null ? this.enemy!.pack(builder) : 0); - const testnestedflatbuffer = Monster.createTestnestedflatbufferVector(builder, this.testnestedflatbuffer); - const testempty = (this.testempty !== null ? this.testempty!.pack(builder) : 0); - const testarrayofbools = Monster.createTestarrayofboolsVector(builder, this.testarrayofbools); - const testarrayofstring2 = Monster.createTestarrayofstring2Vector(builder, builder.createObjectOffsetList(this.testarrayofstring2)); - const testarrayofsortedstruct = builder.createStructOffsetList(this.testarrayofsortedstruct, Monster.startTestarrayofsortedstructVector); - const flex = Monster.createFlexVector(builder, this.flex); - const test5 = builder.createStructOffsetList(this.test5, Monster.startTest5Vector); - const vectorOfLongs = Monster.createVectorOfLongsVector(builder, this.vectorOfLongs); - const vectorOfDoubles = Monster.createVectorOfDoublesVector(builder, this.vectorOfDoubles); - const parentNamespaceTest = (this.parentNamespaceTest !== null ? this.parentNamespaceTest!.pack(builder) : 0); - const vectorOfReferrables = Monster.createVectorOfReferrablesVector(builder, builder.createObjectOffsetList(this.vectorOfReferrables)); - const vectorOfWeakReferences = Monster.createVectorOfWeakReferencesVector(builder, this.vectorOfWeakReferences); - const vectorOfStrongReferrables = Monster.createVectorOfStrongReferrablesVector(builder, builder.createObjectOffsetList(this.vectorOfStrongReferrables)); - const vectorOfCoOwningReferences = Monster.createVectorOfCoOwningReferencesVector(builder, this.vectorOfCoOwningReferences); - const vectorOfNonOwningReferences = Monster.createVectorOfNonOwningReferencesVector(builder, this.vectorOfNonOwningReferences); - const anyUnique = builder.createObjectOffset(this.anyUnique); - const anyAmbiguous = builder.createObjectOffset(this.anyAmbiguous); - const vectorOfEnums = Monster.createVectorOfEnumsVector(builder, this.vectorOfEnums); - const testrequirednestedflatbuffer = Monster.createTestrequirednestedflatbufferVector(builder, this.testrequirednestedflatbuffer); - const scalarKeySortedTables = Monster.createScalarKeySortedTablesVector(builder, builder.createObjectOffsetList(this.scalarKeySortedTables)); - - Monster.startMonster(builder); - Monster.addPos(builder, (this.pos !== null ? this.pos!.pack(builder) : 0)); - Monster.addMana(builder, this.mana); - Monster.addHp(builder, this.hp); - Monster.addName(builder, name); - Monster.addInventory(builder, inventory); - Monster.addColor(builder, this.color); - Monster.addTestType(builder, this.testType); - Monster.addTest(builder, test); - Monster.addTest4(builder, test4); - Monster.addTestarrayofstring(builder, testarrayofstring); - Monster.addTestarrayoftables(builder, testarrayoftables); - Monster.addEnemy(builder, enemy); - Monster.addTestnestedflatbuffer(builder, testnestedflatbuffer); - Monster.addTestempty(builder, testempty); - Monster.addTestbool(builder, this.testbool); - Monster.addTesthashs32Fnv1(builder, this.testhashs32Fnv1); - Monster.addTesthashu32Fnv1(builder, this.testhashu32Fnv1); - Monster.addTesthashs64Fnv1(builder, this.testhashs64Fnv1); - Monster.addTesthashu64Fnv1(builder, this.testhashu64Fnv1); - Monster.addTesthashs32Fnv1a(builder, this.testhashs32Fnv1a); - Monster.addTesthashu32Fnv1a(builder, this.testhashu32Fnv1a); - Monster.addTesthashs64Fnv1a(builder, this.testhashs64Fnv1a); - Monster.addTesthashu64Fnv1a(builder, this.testhashu64Fnv1a); - Monster.addTestarrayofbools(builder, testarrayofbools); - Monster.addTestf(builder, this.testf); - Monster.addTestf2(builder, this.testf2); - Monster.addTestf3(builder, this.testf3); - Monster.addTestarrayofstring2(builder, testarrayofstring2); - Monster.addTestarrayofsortedstruct(builder, testarrayofsortedstruct); - Monster.addFlex(builder, flex); - Monster.addTest5(builder, test5); - Monster.addVectorOfLongs(builder, vectorOfLongs); - Monster.addVectorOfDoubles(builder, vectorOfDoubles); - Monster.addParentNamespaceTest(builder, parentNamespaceTest); - Monster.addVectorOfReferrables(builder, vectorOfReferrables); - Monster.addSingleWeakReference(builder, this.singleWeakReference); - Monster.addVectorOfWeakReferences(builder, vectorOfWeakReferences); - Monster.addVectorOfStrongReferrables(builder, vectorOfStrongReferrables); - Monster.addCoOwningReference(builder, this.coOwningReference); - Monster.addVectorOfCoOwningReferences(builder, vectorOfCoOwningReferences); - Monster.addNonOwningReference(builder, this.nonOwningReference); - Monster.addVectorOfNonOwningReferences(builder, vectorOfNonOwningReferences); - Monster.addAnyUniqueType(builder, this.anyUniqueType); - Monster.addAnyUnique(builder, anyUnique); - Monster.addAnyAmbiguousType(builder, this.anyAmbiguousType); - Monster.addAnyAmbiguous(builder, anyAmbiguous); - Monster.addVectorOfEnums(builder, vectorOfEnums); - Monster.addSignedEnum(builder, this.signedEnum); - Monster.addTestrequirednestedflatbuffer(builder, testrequirednestedflatbuffer); - Monster.addScalarKeySortedTables(builder, scalarKeySortedTables); - Monster.addNativeInline(builder, (this.nativeInline !== null ? this.nativeInline!.pack(builder) : 0)); - Monster.addLongEnumNonEnumDefault(builder, this.longEnumNonEnumDefault); - Monster.addLongEnumNormalDefault(builder, this.longEnumNormalDefault); - - return Monster.endMonster(builder); -} -} diff --git a/tests/my-game/example/race.js b/tests/my-game/example/race.js deleted file mode 100644 index 74f51057ab..0000000000 --- a/tests/my-game/example/race.js +++ /dev/null @@ -1,8 +0,0 @@ -// automatically generated by the FlatBuffers compiler, do not modify -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 = {})); diff --git a/tests/my-game/example/race.ts b/tests/my-game/example/race.ts deleted file mode 100644 index 8cb9654ae3..0000000000 --- a/tests/my-game/example/race.ts +++ /dev/null @@ -1,8 +0,0 @@ -// automatically generated by the FlatBuffers compiler, do not modify - -export enum Race { - None = -1, - Human = 0, - Dwarf = 1, - Elf = 2 -} diff --git a/tests/my-game/example/referrable.js b/tests/my-game/example/referrable.js deleted file mode 100644 index 367034b064..0000000000 --- a/tests/my-game/example/referrable.js +++ /dev/null @@ -1,70 +0,0 @@ -// automatically generated by the FlatBuffers compiler, do not modify -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); - } -} diff --git a/tests/my-game/example/referrable.ts b/tests/my-game/example/referrable.ts deleted file mode 100644 index ec02980037..0000000000 --- a/tests/my-game/example/referrable.ts +++ /dev/null @@ -1,95 +0,0 @@ -// automatically generated by the FlatBuffers compiler, do not modify - -import * as flatbuffers from 'flatbuffers'; - - - -export class Referrable { - 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 { -constructor( - public id: bigint = BigInt('0') -){} - - -pack(builder:flatbuffers.Builder): flatbuffers.Offset { - return Referrable.createReferrable(builder, - this.id - ); -} -} diff --git a/tests/my-game/example/stat.js b/tests/my-game/example/stat.js deleted file mode 100644 index 43b569f4e3..0000000000 --- a/tests/my-game/example/stat.js +++ /dev/null @@ -1,99 +0,0 @@ -// automatically generated by the FlatBuffers compiler, do not modify -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); - } -} diff --git a/tests/my-game/example/stat.ts b/tests/my-game/example/stat.ts deleted file mode 100644 index e45259950a..0000000000 --- a/tests/my-game/example/stat.ts +++ /dev/null @@ -1,138 +0,0 @@ -// automatically generated by the FlatBuffers compiler, do not modify - -import * as flatbuffers from 'flatbuffers'; - - - -export class Stat { - 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 { -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 - ); -} -} diff --git a/tests/my-game/example/struct-of-structs-of-structs.ts b/tests/my-game/example/struct-of-structs-of-structs.ts deleted file mode 100644 index afe869fa7b..0000000000 --- a/tests/my-game/example/struct-of-structs-of-structs.ts +++ /dev/null @@ -1,74 +0,0 @@ -// automatically generated by the FlatBuffers compiler, do not modify - -import * as flatbuffers from 'flatbuffers'; - -import { StructOfStructs, StructOfStructsT } from '../../my-game/example/struct-of-structs'; - - -export class StructOfStructsOfStructs { - 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 { -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) - ); -} -} diff --git a/tests/my-game/example/struct-of-structs.js b/tests/my-game/example/struct-of-structs.js deleted file mode 100644 index 09c79108fb..0000000000 --- a/tests/my-game/example/struct-of-structs.js +++ /dev/null @@ -1,62 +0,0 @@ -// automatically generated by the FlatBuffers compiler, do not modify -import { Ability } from '../../my-game/example/ability'; -import { Test } from '../../my-game/example/test'; -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) { - var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m; - return StructOfStructs.createStructOfStructs(builder, ((_b = (_a = this.a) === null || _a === void 0 ? void 0 : _a.id) !== null && _b !== void 0 ? _b : 0), ((_d = (_c = this.a) === null || _c === void 0 ? void 0 : _c.distance) !== null && _d !== void 0 ? _d : 0), ((_f = (_e = this.b) === null || _e === void 0 ? void 0 : _e.a) !== null && _f !== void 0 ? _f : 0), ((_h = (_g = this.b) === null || _g === void 0 ? void 0 : _g.b) !== null && _h !== void 0 ? _h : 0), ((_k = (_j = this.c) === null || _j === void 0 ? void 0 : _j.id) !== null && _k !== void 0 ? _k : 0), ((_m = (_l = this.c) === null || _l === void 0 ? void 0 : _l.distance) !== null && _m !== void 0 ? _m : 0)); - } -} diff --git a/tests/my-game/example/struct-of-structs.ts b/tests/my-game/example/struct-of-structs.ts deleted file mode 100644 index 0cb87ded50..0000000000 --- a/tests/my-game/example/struct-of-structs.ts +++ /dev/null @@ -1,88 +0,0 @@ -// automatically generated by the FlatBuffers compiler, do not modify - -import * as flatbuffers from 'flatbuffers'; - -import { Ability, AbilityT } from '../../my-game/example/ability'; -import { Test, TestT } from '../../my-game/example/test'; - - -export class StructOfStructs { - bb: flatbuffers.ByteBuffer|null = null; - bb_pos = 0; - __init(i:number, bb:flatbuffers.ByteBuffer):StructOfStructs { - this.bb_pos = i; - this.bb = bb; - return this; -} - -a(obj?:Ability):Ability|null { - return (obj || new Ability()).__init(this.bb_pos, this.bb!); -} - -b(obj?:Test):Test|null { - return (obj || new Test()).__init(this.bb_pos + 8, this.bb!); -} - -c(obj?:Ability):Ability|null { - return (obj || new Ability()).__init(this.bb_pos + 12, this.bb!); -} - -static getFullyQualifiedName():string { - return 'MyGame_Example_StructOfStructs'; -} - -static sizeOf():number { - return 20; -} - -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 { - 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(): StructOfStructsT { - 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: StructOfStructsT): void { - _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( - public a: AbilityT|null = null, - public b: TestT|null = null, - public c: AbilityT|null = null -){} - - -pack(builder:flatbuffers.Builder): flatbuffers.Offset { - 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) - ); -} -} diff --git a/tests/my-game/example/test-simple-table-with-enum.js b/tests/my-game/example/test-simple-table-with-enum.js deleted file mode 100644 index a31d011adf..0000000000 --- a/tests/my-game/example/test-simple-table-with-enum.js +++ /dev/null @@ -1,71 +0,0 @@ -// automatically generated by the FlatBuffers compiler, do not modify -import * as flatbuffers from 'flatbuffers'; -import { Color } from '../../my-game/example/color'; -export class TestSimpleTableWithEnum { - constructor() { - this.bb = null; - this.bb_pos = 0; - } - __init(i, bb) { - this.bb_pos = i; - this.bb = bb; - return this; - } - static getRootAsTestSimpleTableWithEnum(bb, obj) { - return (obj || new TestSimpleTableWithEnum()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - static getSizePrefixedRootAsTestSimpleTableWithEnum(bb, obj) { - bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH); - return (obj || new TestSimpleTableWithEnum()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - color() { - const offset = this.bb.__offset(this.bb_pos, 4); - return offset ? this.bb.readUint8(this.bb_pos + offset) : Color.Green; - } - mutate_color(value) { - const offset = this.bb.__offset(this.bb_pos, 4); - if (offset === 0) { - return false; - } - this.bb.writeUint8(this.bb_pos + offset, value); - return true; - } - static getFullyQualifiedName() { - return 'MyGame_Example_TestSimpleTableWithEnum'; - } - static startTestSimpleTableWithEnum(builder) { - builder.startObject(1); - } - static addColor(builder, color) { - builder.addFieldInt8(0, color, Color.Green); - } - static endTestSimpleTableWithEnum(builder) { - const offset = builder.endObject(); - return offset; - } - static createTestSimpleTableWithEnum(builder, color) { - TestSimpleTableWithEnum.startTestSimpleTableWithEnum(builder); - TestSimpleTableWithEnum.addColor(builder, color); - return TestSimpleTableWithEnum.endTestSimpleTableWithEnum(builder); - } - serialize() { - return this.bb.bytes(); - } - static deserialize(buffer) { - return TestSimpleTableWithEnum.getRootAsTestSimpleTableWithEnum(new flatbuffers.ByteBuffer(buffer)); - } - unpack() { - return new TestSimpleTableWithEnumT(this.color()); - } - unpackTo(_o) { - _o.color = this.color(); - } -} -export class TestSimpleTableWithEnumT { - constructor(color = Color.Green) { - this.color = color; - } - pack(builder) { - return TestSimpleTableWithEnum.createTestSimpleTableWithEnum(builder, this.color); - } -} diff --git a/tests/my-game/example/test-simple-table-with-enum.ts b/tests/my-game/example/test-simple-table-with-enum.ts deleted file mode 100644 index 86a19aa504..0000000000 --- a/tests/my-game/example/test-simple-table-with-enum.ts +++ /dev/null @@ -1,96 +0,0 @@ -// automatically generated by the FlatBuffers compiler, do not modify - -import * as flatbuffers from 'flatbuffers'; - -import { Color } from '../../my-game/example/color'; - - -export class TestSimpleTableWithEnum { - bb: flatbuffers.ByteBuffer|null = null; - bb_pos = 0; - __init(i:number, bb:flatbuffers.ByteBuffer):TestSimpleTableWithEnum { - this.bb_pos = i; - this.bb = bb; - return this; -} - -static getRootAsTestSimpleTableWithEnum(bb:flatbuffers.ByteBuffer, obj?:TestSimpleTableWithEnum):TestSimpleTableWithEnum { - return (obj || new TestSimpleTableWithEnum()).__init(bb.readInt32(bb.position()) + bb.position(), bb); -} - -static getSizePrefixedRootAsTestSimpleTableWithEnum(bb:flatbuffers.ByteBuffer, obj?:TestSimpleTableWithEnum):TestSimpleTableWithEnum { - bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH); - return (obj || new TestSimpleTableWithEnum()).__init(bb.readInt32(bb.position()) + bb.position(), bb); -} - -color():Color { - const offset = this.bb!.__offset(this.bb_pos, 4); - return offset ? this.bb!.readUint8(this.bb_pos + offset) : Color.Green; -} - -mutate_color(value:Color):boolean { - const offset = this.bb!.__offset(this.bb_pos, 4); - - if (offset === 0) { - return false; - } - - this.bb!.writeUint8(this.bb_pos + offset, value); - return true; -} - -static getFullyQualifiedName():string { - return 'MyGame_Example_TestSimpleTableWithEnum'; -} - -static startTestSimpleTableWithEnum(builder:flatbuffers.Builder) { - builder.startObject(1); -} - -static addColor(builder:flatbuffers.Builder, color:Color) { - builder.addFieldInt8(0, color, Color.Green); -} - -static endTestSimpleTableWithEnum(builder:flatbuffers.Builder):flatbuffers.Offset { - const offset = builder.endObject(); - return offset; -} - -static createTestSimpleTableWithEnum(builder:flatbuffers.Builder, color:Color):flatbuffers.Offset { - TestSimpleTableWithEnum.startTestSimpleTableWithEnum(builder); - TestSimpleTableWithEnum.addColor(builder, color); - return TestSimpleTableWithEnum.endTestSimpleTableWithEnum(builder); -} - -serialize():Uint8Array { - return this.bb!.bytes(); -} - -static deserialize(buffer: Uint8Array):TestSimpleTableWithEnum { - return TestSimpleTableWithEnum.getRootAsTestSimpleTableWithEnum(new flatbuffers.ByteBuffer(buffer)) -} - -unpack(): TestSimpleTableWithEnumT { - return new TestSimpleTableWithEnumT( - this.color() - ); -} - - -unpackTo(_o: TestSimpleTableWithEnumT): void { - _o.color = this.color(); -} -} - -export class TestSimpleTableWithEnumT { -constructor( - public color: Color = Color.Green -){} - - -pack(builder:flatbuffers.Builder): flatbuffers.Offset { - return TestSimpleTableWithEnum.createTestSimpleTableWithEnum(builder, - this.color - ); -} -} diff --git a/tests/my-game/example/test.js b/tests/my-game/example/test.js deleted file mode 100644 index 9c43619e21..0000000000 --- a/tests/my-game/example/test.js +++ /dev/null @@ -1,55 +0,0 @@ -// automatically generated by the FlatBuffers compiler, do not modify -export class Test { - constructor() { - this.bb = null; - this.bb_pos = 0; - } - __init(i, bb) { - this.bb_pos = i; - this.bb = bb; - return this; - } - a() { - return this.bb.readInt16(this.bb_pos); - } - mutate_a(value) { - this.bb.writeInt16(this.bb_pos + 0, value); - return true; - } - b() { - return this.bb.readInt8(this.bb_pos + 2); - } - mutate_b(value) { - this.bb.writeInt8(this.bb_pos + 2, value); - return true; - } - static getFullyQualifiedName() { - return 'MyGame_Example_Test'; - } - static sizeOf() { - return 4; - } - static createTest(builder, a, b) { - builder.prep(2, 4); - builder.pad(1); - builder.writeInt8(b); - builder.writeInt16(a); - return builder.offset(); - } - unpack() { - return new TestT(this.a(), this.b()); - } - unpackTo(_o) { - _o.a = this.a(); - _o.b = this.b(); - } -} -export class TestT { - constructor(a = 0, b = 0) { - this.a = a; - this.b = b; - } - pack(builder) { - return Test.createTest(builder, this.a, this.b); - } -} diff --git a/tests/my-game/example/test.ts b/tests/my-game/example/test.ts deleted file mode 100644 index b3d84eece9..0000000000 --- a/tests/my-game/example/test.ts +++ /dev/null @@ -1,78 +0,0 @@ -// automatically generated by the FlatBuffers compiler, do not modify - -import * as flatbuffers from 'flatbuffers'; - - - -export class Test { - bb: flatbuffers.ByteBuffer|null = null; - bb_pos = 0; - __init(i:number, bb:flatbuffers.ByteBuffer):Test { - this.bb_pos = i; - this.bb = bb; - return this; -} - -a():number { - return this.bb!.readInt16(this.bb_pos); -} - -mutate_a(value:number):boolean { - this.bb!.writeInt16(this.bb_pos + 0, value); - return true; -} - -b():number { - return this.bb!.readInt8(this.bb_pos + 2); -} - -mutate_b(value:number):boolean { - this.bb!.writeInt8(this.bb_pos + 2, value); - return true; -} - -static getFullyQualifiedName():string { - return 'MyGame_Example_Test'; -} - -static sizeOf():number { - return 4; -} - -static createTest(builder:flatbuffers.Builder, a: number, b: number):flatbuffers.Offset { - builder.prep(2, 4); - builder.pad(1); - builder.writeInt8(b); - builder.writeInt16(a); - return builder.offset(); -} - - -unpack(): TestT { - return new TestT( - this.a(), - this.b() - ); -} - - -unpackTo(_o: TestT): void { - _o.a = this.a(); - _o.b = this.b(); -} -} - -export class TestT { -constructor( - public a: number = 0, - public b: number = 0 -){} - - -pack(builder:flatbuffers.Builder): flatbuffers.Offset { - return Test.createTest(builder, - this.a, - this.b - ); -} -} diff --git a/tests/my-game/example/type-aliases.js b/tests/my-game/example/type-aliases.js deleted file mode 100644 index a4b5f89e3f..0000000000 --- a/tests/my-game/example/type-aliases.js +++ /dev/null @@ -1,290 +0,0 @@ -// automatically generated by the FlatBuffers compiler, do not modify -import * as flatbuffers from 'flatbuffers'; -export class TypeAliases { - constructor() { - this.bb = null; - this.bb_pos = 0; - } - __init(i, bb) { - this.bb_pos = i; - this.bb = bb; - return this; - } - static getRootAsTypeAliases(bb, obj) { - return (obj || new TypeAliases()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - static getSizePrefixedRootAsTypeAliases(bb, obj) { - bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH); - return (obj || new TypeAliases()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - i8() { - const offset = this.bb.__offset(this.bb_pos, 4); - return offset ? this.bb.readInt8(this.bb_pos + offset) : 0; - } - mutate_i8(value) { - const offset = this.bb.__offset(this.bb_pos, 4); - if (offset === 0) { - return false; - } - this.bb.writeInt8(this.bb_pos + offset, value); - return true; - } - u8() { - const offset = this.bb.__offset(this.bb_pos, 6); - return offset ? this.bb.readUint8(this.bb_pos + offset) : 0; - } - mutate_u8(value) { - const offset = this.bb.__offset(this.bb_pos, 6); - if (offset === 0) { - return false; - } - this.bb.writeUint8(this.bb_pos + offset, value); - return true; - } - i16() { - const offset = this.bb.__offset(this.bb_pos, 8); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - mutate_i16(value) { - const offset = this.bb.__offset(this.bb_pos, 8); - if (offset === 0) { - return false; - } - this.bb.writeInt16(this.bb_pos + offset, value); - return true; - } - u16() { - const offset = this.bb.__offset(this.bb_pos, 10); - return offset ? this.bb.readUint16(this.bb_pos + offset) : 0; - } - mutate_u16(value) { - const offset = this.bb.__offset(this.bb_pos, 10); - if (offset === 0) { - return false; - } - this.bb.writeUint16(this.bb_pos + offset, value); - return true; - } - i32() { - const offset = this.bb.__offset(this.bb_pos, 12); - return offset ? this.bb.readInt32(this.bb_pos + offset) : 0; - } - mutate_i32(value) { - const offset = this.bb.__offset(this.bb_pos, 12); - if (offset === 0) { - return false; - } - this.bb.writeInt32(this.bb_pos + offset, value); - return true; - } - u32() { - const offset = this.bb.__offset(this.bb_pos, 14); - return offset ? this.bb.readUint32(this.bb_pos + offset) : 0; - } - mutate_u32(value) { - const offset = this.bb.__offset(this.bb_pos, 14); - if (offset === 0) { - return false; - } - this.bb.writeUint32(this.bb_pos + offset, value); - return true; - } - i64() { - const offset = this.bb.__offset(this.bb_pos, 16); - return offset ? this.bb.readInt64(this.bb_pos + offset) : BigInt('0'); - } - mutate_i64(value) { - const offset = this.bb.__offset(this.bb_pos, 16); - if (offset === 0) { - return false; - } - this.bb.writeInt64(this.bb_pos + offset, value); - return true; - } - u64() { - const offset = this.bb.__offset(this.bb_pos, 18); - return offset ? this.bb.readUint64(this.bb_pos + offset) : BigInt('0'); - } - mutate_u64(value) { - const offset = this.bb.__offset(this.bb_pos, 18); - if (offset === 0) { - return false; - } - this.bb.writeUint64(this.bb_pos + offset, value); - return true; - } - f32() { - const offset = this.bb.__offset(this.bb_pos, 20); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0.0; - } - mutate_f32(value) { - const offset = this.bb.__offset(this.bb_pos, 20); - if (offset === 0) { - return false; - } - this.bb.writeFloat32(this.bb_pos + offset, value); - return true; - } - f64() { - const offset = this.bb.__offset(this.bb_pos, 22); - return offset ? this.bb.readFloat64(this.bb_pos + offset) : 0.0; - } - mutate_f64(value) { - const offset = this.bb.__offset(this.bb_pos, 22); - if (offset === 0) { - return false; - } - this.bb.writeFloat64(this.bb_pos + offset, value); - return true; - } - v8(index) { - const offset = this.bb.__offset(this.bb_pos, 24); - return offset ? this.bb.readInt8(this.bb.__vector(this.bb_pos + offset) + index) : 0; - } - v8Length() { - const offset = this.bb.__offset(this.bb_pos, 24); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - v8Array() { - const offset = this.bb.__offset(this.bb_pos, 24); - return offset ? new Int8Array(this.bb.bytes().buffer, this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + offset), this.bb.__vector_len(this.bb_pos + offset)) : null; - } - vf64(index) { - const offset = this.bb.__offset(this.bb_pos, 26); - return offset ? this.bb.readFloat64(this.bb.__vector(this.bb_pos + offset) + index * 8) : 0; - } - vf64Length() { - const offset = this.bb.__offset(this.bb_pos, 26); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - vf64Array() { - const offset = this.bb.__offset(this.bb_pos, 26); - return offset ? new Float64Array(this.bb.bytes().buffer, this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + offset), this.bb.__vector_len(this.bb_pos + offset)) : null; - } - static getFullyQualifiedName() { - return 'MyGame_Example_TypeAliases'; - } - static startTypeAliases(builder) { - builder.startObject(12); - } - static addI8(builder, i8) { - builder.addFieldInt8(0, i8, 0); - } - static addU8(builder, u8) { - builder.addFieldInt8(1, u8, 0); - } - static addI16(builder, i16) { - builder.addFieldInt16(2, i16, 0); - } - static addU16(builder, u16) { - builder.addFieldInt16(3, u16, 0); - } - static addI32(builder, i32) { - builder.addFieldInt32(4, i32, 0); - } - static addU32(builder, u32) { - builder.addFieldInt32(5, u32, 0); - } - static addI64(builder, i64) { - builder.addFieldInt64(6, i64, BigInt('0')); - } - static addU64(builder, u64) { - builder.addFieldInt64(7, u64, BigInt('0')); - } - static addF32(builder, f32) { - builder.addFieldFloat32(8, f32, 0.0); - } - static addF64(builder, f64) { - builder.addFieldFloat64(9, f64, 0.0); - } - static addV8(builder, v8Offset) { - builder.addFieldOffset(10, v8Offset, 0); - } - static createV8Vector(builder, data) { - builder.startVector(1, data.length, 1); - for (let i = data.length - 1; i >= 0; i--) { - builder.addInt8(data[i]); - } - return builder.endVector(); - } - static startV8Vector(builder, numElems) { - builder.startVector(1, numElems, 1); - } - static addVf64(builder, vf64Offset) { - builder.addFieldOffset(11, vf64Offset, 0); - } - static createVf64Vector(builder, data) { - builder.startVector(8, data.length, 8); - for (let i = data.length - 1; i >= 0; i--) { - builder.addFloat64(data[i]); - } - return builder.endVector(); - } - static startVf64Vector(builder, numElems) { - builder.startVector(8, numElems, 8); - } - static endTypeAliases(builder) { - const offset = builder.endObject(); - return offset; - } - static createTypeAliases(builder, i8, u8, i16, u16, i32, u32, i64, u64, f32, f64, v8Offset, vf64Offset) { - TypeAliases.startTypeAliases(builder); - TypeAliases.addI8(builder, i8); - TypeAliases.addU8(builder, u8); - TypeAliases.addI16(builder, i16); - TypeAliases.addU16(builder, u16); - TypeAliases.addI32(builder, i32); - TypeAliases.addU32(builder, u32); - TypeAliases.addI64(builder, i64); - TypeAliases.addU64(builder, u64); - TypeAliases.addF32(builder, f32); - TypeAliases.addF64(builder, f64); - TypeAliases.addV8(builder, v8Offset); - TypeAliases.addVf64(builder, vf64Offset); - return TypeAliases.endTypeAliases(builder); - } - serialize() { - return this.bb.bytes(); - } - static deserialize(buffer) { - return TypeAliases.getRootAsTypeAliases(new flatbuffers.ByteBuffer(buffer)); - } - unpack() { - return new TypeAliasesT(this.i8(), this.u8(), this.i16(), this.u16(), this.i32(), this.u32(), this.i64(), this.u64(), this.f32(), this.f64(), this.bb.createScalarList(this.v8.bind(this), this.v8Length()), this.bb.createScalarList(this.vf64.bind(this), this.vf64Length())); - } - unpackTo(_o) { - _o.i8 = this.i8(); - _o.u8 = this.u8(); - _o.i16 = this.i16(); - _o.u16 = this.u16(); - _o.i32 = this.i32(); - _o.u32 = this.u32(); - _o.i64 = this.i64(); - _o.u64 = this.u64(); - _o.f32 = this.f32(); - _o.f64 = this.f64(); - _o.v8 = this.bb.createScalarList(this.v8.bind(this), this.v8Length()); - _o.vf64 = this.bb.createScalarList(this.vf64.bind(this), this.vf64Length()); - } -} -export class TypeAliasesT { - constructor(i8 = 0, u8 = 0, i16 = 0, u16 = 0, i32 = 0, u32 = 0, i64 = BigInt('0'), u64 = BigInt('0'), f32 = 0.0, f64 = 0.0, v8 = [], vf64 = []) { - this.i8 = i8; - this.u8 = u8; - this.i16 = i16; - this.u16 = u16; - this.i32 = i32; - this.u32 = u32; - this.i64 = i64; - this.u64 = u64; - this.f32 = f32; - this.f64 = f64; - this.v8 = v8; - this.vf64 = vf64; - } - pack(builder) { - const v8 = TypeAliases.createV8Vector(builder, this.v8); - const vf64 = TypeAliases.createVf64Vector(builder, this.vf64); - return TypeAliases.createTypeAliases(builder, this.i8, this.u8, this.i16, this.u16, this.i32, this.u32, this.i64, this.u64, this.f32, this.f64, v8, vf64); - } -} diff --git a/tests/my-game/example/type-aliases.ts b/tests/my-game/example/type-aliases.ts deleted file mode 100644 index 805c8cf3fc..0000000000 --- a/tests/my-game/example/type-aliases.ts +++ /dev/null @@ -1,405 +0,0 @@ -// automatically generated by the FlatBuffers compiler, do not modify - -import * as flatbuffers from 'flatbuffers'; - - - -export class TypeAliases { - bb: flatbuffers.ByteBuffer|null = null; - bb_pos = 0; - __init(i:number, bb:flatbuffers.ByteBuffer):TypeAliases { - this.bb_pos = i; - this.bb = bb; - return this; -} - -static getRootAsTypeAliases(bb:flatbuffers.ByteBuffer, obj?:TypeAliases):TypeAliases { - return (obj || new TypeAliases()).__init(bb.readInt32(bb.position()) + bb.position(), bb); -} - -static getSizePrefixedRootAsTypeAliases(bb:flatbuffers.ByteBuffer, obj?:TypeAliases):TypeAliases { - bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH); - return (obj || new TypeAliases()).__init(bb.readInt32(bb.position()) + bb.position(), bb); -} - -i8():number { - const offset = this.bb!.__offset(this.bb_pos, 4); - return offset ? this.bb!.readInt8(this.bb_pos + offset) : 0; -} - -mutate_i8(value:number):boolean { - const offset = this.bb!.__offset(this.bb_pos, 4); - - if (offset === 0) { - return false; - } - - this.bb!.writeInt8(this.bb_pos + offset, value); - return true; -} - -u8():number { - const offset = this.bb!.__offset(this.bb_pos, 6); - return offset ? this.bb!.readUint8(this.bb_pos + offset) : 0; -} - -mutate_u8(value:number):boolean { - const offset = this.bb!.__offset(this.bb_pos, 6); - - if (offset === 0) { - return false; - } - - this.bb!.writeUint8(this.bb_pos + offset, value); - return true; -} - -i16():number { - const offset = this.bb!.__offset(this.bb_pos, 8); - return offset ? this.bb!.readInt16(this.bb_pos + offset) : 0; -} - -mutate_i16(value:number):boolean { - const offset = this.bb!.__offset(this.bb_pos, 8); - - if (offset === 0) { - return false; - } - - this.bb!.writeInt16(this.bb_pos + offset, value); - return true; -} - -u16():number { - const offset = this.bb!.__offset(this.bb_pos, 10); - return offset ? this.bb!.readUint16(this.bb_pos + offset) : 0; -} - -mutate_u16(value:number):boolean { - const offset = this.bb!.__offset(this.bb_pos, 10); - - if (offset === 0) { - return false; - } - - this.bb!.writeUint16(this.bb_pos + offset, value); - return true; -} - -i32():number { - const offset = this.bb!.__offset(this.bb_pos, 12); - return offset ? this.bb!.readInt32(this.bb_pos + offset) : 0; -} - -mutate_i32(value:number):boolean { - const offset = this.bb!.__offset(this.bb_pos, 12); - - if (offset === 0) { - return false; - } - - this.bb!.writeInt32(this.bb_pos + offset, value); - return true; -} - -u32():number { - const offset = this.bb!.__offset(this.bb_pos, 14); - return offset ? this.bb!.readUint32(this.bb_pos + offset) : 0; -} - -mutate_u32(value:number):boolean { - const offset = this.bb!.__offset(this.bb_pos, 14); - - if (offset === 0) { - return false; - } - - this.bb!.writeUint32(this.bb_pos + offset, value); - return true; -} - -i64():bigint { - const offset = this.bb!.__offset(this.bb_pos, 16); - return offset ? this.bb!.readInt64(this.bb_pos + offset) : BigInt('0'); -} - -mutate_i64(value:bigint):boolean { - const offset = this.bb!.__offset(this.bb_pos, 16); - - if (offset === 0) { - return false; - } - - this.bb!.writeInt64(this.bb_pos + offset, value); - return true; -} - -u64():bigint { - const offset = this.bb!.__offset(this.bb_pos, 18); - return offset ? this.bb!.readUint64(this.bb_pos + offset) : BigInt('0'); -} - -mutate_u64(value:bigint):boolean { - const offset = this.bb!.__offset(this.bb_pos, 18); - - if (offset === 0) { - return false; - } - - this.bb!.writeUint64(this.bb_pos + offset, value); - return true; -} - -f32():number { - const offset = this.bb!.__offset(this.bb_pos, 20); - return offset ? this.bb!.readFloat32(this.bb_pos + offset) : 0.0; -} - -mutate_f32(value:number):boolean { - const offset = this.bb!.__offset(this.bb_pos, 20); - - if (offset === 0) { - return false; - } - - this.bb!.writeFloat32(this.bb_pos + offset, value); - return true; -} - -f64():number { - const offset = this.bb!.__offset(this.bb_pos, 22); - return offset ? this.bb!.readFloat64(this.bb_pos + offset) : 0.0; -} - -mutate_f64(value:number):boolean { - const offset = this.bb!.__offset(this.bb_pos, 22); - - if (offset === 0) { - return false; - } - - this.bb!.writeFloat64(this.bb_pos + offset, value); - return true; -} - -v8(index: number):number|null { - const offset = this.bb!.__offset(this.bb_pos, 24); - return offset ? this.bb!.readInt8(this.bb!.__vector(this.bb_pos + offset) + index) : 0; -} - -v8Length():number { - const offset = this.bb!.__offset(this.bb_pos, 24); - return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0; -} - -v8Array():Int8Array|null { - const offset = this.bb!.__offset(this.bb_pos, 24); - return offset ? new Int8Array(this.bb!.bytes().buffer, this.bb!.bytes().byteOffset + this.bb!.__vector(this.bb_pos + offset), this.bb!.__vector_len(this.bb_pos + offset)) : null; -} - -vf64(index: number):number|null { - const offset = this.bb!.__offset(this.bb_pos, 26); - return offset ? this.bb!.readFloat64(this.bb!.__vector(this.bb_pos + offset) + index * 8) : 0; -} - -vf64Length():number { - const offset = this.bb!.__offset(this.bb_pos, 26); - return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0; -} - -vf64Array():Float64Array|null { - const offset = this.bb!.__offset(this.bb_pos, 26); - return offset ? new Float64Array(this.bb!.bytes().buffer, this.bb!.bytes().byteOffset + this.bb!.__vector(this.bb_pos + offset), this.bb!.__vector_len(this.bb_pos + offset)) : null; -} - -static getFullyQualifiedName():string { - return 'MyGame_Example_TypeAliases'; -} - -static startTypeAliases(builder:flatbuffers.Builder) { - builder.startObject(12); -} - -static addI8(builder:flatbuffers.Builder, i8:number) { - builder.addFieldInt8(0, i8, 0); -} - -static addU8(builder:flatbuffers.Builder, u8:number) { - builder.addFieldInt8(1, u8, 0); -} - -static addI16(builder:flatbuffers.Builder, i16:number) { - builder.addFieldInt16(2, i16, 0); -} - -static addU16(builder:flatbuffers.Builder, u16:number) { - builder.addFieldInt16(3, u16, 0); -} - -static addI32(builder:flatbuffers.Builder, i32:number) { - builder.addFieldInt32(4, i32, 0); -} - -static addU32(builder:flatbuffers.Builder, u32:number) { - builder.addFieldInt32(5, u32, 0); -} - -static addI64(builder:flatbuffers.Builder, i64:bigint) { - builder.addFieldInt64(6, i64, BigInt('0')); -} - -static addU64(builder:flatbuffers.Builder, u64:bigint) { - builder.addFieldInt64(7, u64, BigInt('0')); -} - -static addF32(builder:flatbuffers.Builder, f32:number) { - builder.addFieldFloat32(8, f32, 0.0); -} - -static addF64(builder:flatbuffers.Builder, f64:number) { - builder.addFieldFloat64(9, f64, 0.0); -} - -static addV8(builder:flatbuffers.Builder, v8Offset:flatbuffers.Offset) { - builder.addFieldOffset(10, v8Offset, 0); -} - -static createV8Vector(builder:flatbuffers.Builder, data:number[]|Int8Array):flatbuffers.Offset; -/** - * @deprecated This Uint8Array overload will be removed in the future. - */ -static createV8Vector(builder:flatbuffers.Builder, data:number[]|Uint8Array):flatbuffers.Offset; -static createV8Vector(builder:flatbuffers.Builder, data:number[]|Int8Array|Uint8Array):flatbuffers.Offset { - builder.startVector(1, data.length, 1); - for (let i = data.length - 1; i >= 0; i--) { - builder.addInt8(data[i]!); - } - return builder.endVector(); -} - -static startV8Vector(builder:flatbuffers.Builder, numElems:number) { - builder.startVector(1, numElems, 1); -} - -static addVf64(builder:flatbuffers.Builder, vf64Offset:flatbuffers.Offset) { - builder.addFieldOffset(11, vf64Offset, 0); -} - -static createVf64Vector(builder:flatbuffers.Builder, data:number[]|Float64Array):flatbuffers.Offset; -/** - * @deprecated This Uint8Array overload will be removed in the future. - */ -static createVf64Vector(builder:flatbuffers.Builder, data:number[]|Uint8Array):flatbuffers.Offset; -static createVf64Vector(builder:flatbuffers.Builder, data:number[]|Float64Array|Uint8Array):flatbuffers.Offset { - builder.startVector(8, data.length, 8); - for (let i = data.length - 1; i >= 0; i--) { - builder.addFloat64(data[i]!); - } - return builder.endVector(); -} - -static startVf64Vector(builder:flatbuffers.Builder, numElems:number) { - builder.startVector(8, numElems, 8); -} - -static endTypeAliases(builder:flatbuffers.Builder):flatbuffers.Offset { - const offset = builder.endObject(); - return offset; -} - -static createTypeAliases(builder:flatbuffers.Builder, i8:number, u8:number, i16:number, u16:number, i32:number, u32:number, i64:bigint, u64:bigint, f32:number, f64:number, v8Offset:flatbuffers.Offset, vf64Offset:flatbuffers.Offset):flatbuffers.Offset { - TypeAliases.startTypeAliases(builder); - TypeAliases.addI8(builder, i8); - TypeAliases.addU8(builder, u8); - TypeAliases.addI16(builder, i16); - TypeAliases.addU16(builder, u16); - TypeAliases.addI32(builder, i32); - TypeAliases.addU32(builder, u32); - TypeAliases.addI64(builder, i64); - TypeAliases.addU64(builder, u64); - TypeAliases.addF32(builder, f32); - TypeAliases.addF64(builder, f64); - TypeAliases.addV8(builder, v8Offset); - TypeAliases.addVf64(builder, vf64Offset); - return TypeAliases.endTypeAliases(builder); -} - -serialize():Uint8Array { - return this.bb!.bytes(); -} - -static deserialize(buffer: Uint8Array):TypeAliases { - return TypeAliases.getRootAsTypeAliases(new flatbuffers.ByteBuffer(buffer)) -} - -unpack(): TypeAliasesT { - return new TypeAliasesT( - this.i8(), - this.u8(), - this.i16(), - this.u16(), - this.i32(), - this.u32(), - this.i64(), - this.u64(), - this.f32(), - this.f64(), - this.bb!.createScalarList(this.v8.bind(this), this.v8Length()), - this.bb!.createScalarList(this.vf64.bind(this), this.vf64Length()) - ); -} - - -unpackTo(_o: TypeAliasesT): void { - _o.i8 = this.i8(); - _o.u8 = this.u8(); - _o.i16 = this.i16(); - _o.u16 = this.u16(); - _o.i32 = this.i32(); - _o.u32 = this.u32(); - _o.i64 = this.i64(); - _o.u64 = this.u64(); - _o.f32 = this.f32(); - _o.f64 = this.f64(); - _o.v8 = this.bb!.createScalarList(this.v8.bind(this), this.v8Length()); - _o.vf64 = this.bb!.createScalarList(this.vf64.bind(this), this.vf64Length()); -} -} - -export class TypeAliasesT { -constructor( - public i8: number = 0, - public u8: number = 0, - public i16: number = 0, - public u16: number = 0, - public i32: number = 0, - public u32: number = 0, - public i64: bigint = BigInt('0'), - public u64: bigint = BigInt('0'), - public f32: number = 0.0, - public f64: number = 0.0, - public v8: (number)[] = [], - public vf64: (number)[] = [] -){} - - -pack(builder:flatbuffers.Builder): flatbuffers.Offset { - const v8 = TypeAliases.createV8Vector(builder, this.v8); - const vf64 = TypeAliases.createVf64Vector(builder, this.vf64); - - return TypeAliases.createTypeAliases(builder, - this.i8, - this.u8, - this.i16, - this.u16, - this.i32, - this.u32, - this.i64, - this.u64, - this.f32, - this.f64, - v8, - vf64 - ); -} -} diff --git a/tests/my-game/example/vec3.js b/tests/my-game/example/vec3.js deleted file mode 100644 index 82b2eab02c..0000000000 --- a/tests/my-game/example/vec3.js +++ /dev/null @@ -1,98 +0,0 @@ -// automatically generated by the FlatBuffers compiler, do not modify -import { Test } from '../../my-game/example/test'; -export class Vec3 { - constructor() { - this.bb = null; - this.bb_pos = 0; - } - __init(i, bb) { - this.bb_pos = i; - this.bb = bb; - return this; - } - x() { - return this.bb.readFloat32(this.bb_pos); - } - mutate_x(value) { - this.bb.writeFloat32(this.bb_pos + 0, value); - return true; - } - y() { - return this.bb.readFloat32(this.bb_pos + 4); - } - mutate_y(value) { - this.bb.writeFloat32(this.bb_pos + 4, value); - return true; - } - z() { - return this.bb.readFloat32(this.bb_pos + 8); - } - mutate_z(value) { - this.bb.writeFloat32(this.bb_pos + 8, value); - return true; - } - test1() { - return this.bb.readFloat64(this.bb_pos + 16); - } - mutate_test1(value) { - this.bb.writeFloat64(this.bb_pos + 16, value); - return true; - } - test2() { - return this.bb.readUint8(this.bb_pos + 24); - } - mutate_test2(value) { - this.bb.writeUint8(this.bb_pos + 24, value); - return true; - } - test3(obj) { - return (obj || new Test()).__init(this.bb_pos + 26, this.bb); - } - static getFullyQualifiedName() { - return 'MyGame_Example_Vec3'; - } - static sizeOf() { - return 32; - } - static createVec3(builder, x, y, z, test1, test2, test3_a, test3_b) { - builder.prep(8, 32); - builder.pad(2); - builder.prep(2, 4); - builder.pad(1); - builder.writeInt8(test3_b); - builder.writeInt16(test3_a); - builder.pad(1); - builder.writeInt8(test2); - builder.writeFloat64(test1); - builder.pad(4); - builder.writeFloat32(z); - builder.writeFloat32(y); - builder.writeFloat32(x); - return builder.offset(); - } - unpack() { - return new Vec3T(this.x(), this.y(), this.z(), this.test1(), this.test2(), (this.test3() !== null ? this.test3().unpack() : null)); - } - unpackTo(_o) { - _o.x = this.x(); - _o.y = this.y(); - _o.z = this.z(); - _o.test1 = this.test1(); - _o.test2 = this.test2(); - _o.test3 = (this.test3() !== null ? this.test3().unpack() : null); - } -} -export class Vec3T { - constructor(x = 0.0, y = 0.0, z = 0.0, test1 = 0.0, test2 = 0, test3 = null) { - this.x = x; - this.y = y; - this.z = z; - this.test1 = test1; - this.test2 = test2; - this.test3 = test3; - } - pack(builder) { - var _a, _b, _c, _d; - return Vec3.createVec3(builder, this.x, this.y, this.z, this.test1, this.test2, ((_b = (_a = this.test3) === null || _a === void 0 ? void 0 : _a.a) !== null && _b !== void 0 ? _b : 0), ((_d = (_c = this.test3) === null || _c === void 0 ? void 0 : _c.b) !== null && _d !== void 0 ? _d : 0)); - } -} diff --git a/tests/my-game/example/vec3.ts b/tests/my-game/example/vec3.ts deleted file mode 100644 index 3c692e28d6..0000000000 --- a/tests/my-game/example/vec3.ts +++ /dev/null @@ -1,137 +0,0 @@ -// automatically generated by the FlatBuffers compiler, do not modify - -import * as flatbuffers from 'flatbuffers'; - -import { Color } from '../../my-game/example/color'; -import { Test, TestT } from '../../my-game/example/test'; - - -export class Vec3 { - bb: flatbuffers.ByteBuffer|null = null; - bb_pos = 0; - __init(i:number, bb:flatbuffers.ByteBuffer):Vec3 { - this.bb_pos = i; - this.bb = bb; - return this; -} - -x():number { - return this.bb!.readFloat32(this.bb_pos); -} - -mutate_x(value:number):boolean { - this.bb!.writeFloat32(this.bb_pos + 0, value); - return true; -} - -y():number { - return this.bb!.readFloat32(this.bb_pos + 4); -} - -mutate_y(value:number):boolean { - this.bb!.writeFloat32(this.bb_pos + 4, value); - return true; -} - -z():number { - return this.bb!.readFloat32(this.bb_pos + 8); -} - -mutate_z(value:number):boolean { - this.bb!.writeFloat32(this.bb_pos + 8, value); - return true; -} - -test1():number { - return this.bb!.readFloat64(this.bb_pos + 16); -} - -mutate_test1(value:number):boolean { - this.bb!.writeFloat64(this.bb_pos + 16, value); - return true; -} - -test2():Color { - return this.bb!.readUint8(this.bb_pos + 24); -} - -mutate_test2(value:Color):boolean { - this.bb!.writeUint8(this.bb_pos + 24, value); - return true; -} - -test3(obj?:Test):Test|null { - return (obj || new Test()).__init(this.bb_pos + 26, this.bb!); -} - -static getFullyQualifiedName():string { - return 'MyGame_Example_Vec3'; -} - -static sizeOf():number { - return 32; -} - -static createVec3(builder:flatbuffers.Builder, x: number, y: number, z: number, test1: number, test2: Color, test3_a: number, test3_b: number):flatbuffers.Offset { - builder.prep(8, 32); - builder.pad(2); - builder.prep(2, 4); - builder.pad(1); - builder.writeInt8(test3_b); - builder.writeInt16(test3_a); - builder.pad(1); - builder.writeInt8(test2); - builder.writeFloat64(test1); - builder.pad(4); - builder.writeFloat32(z); - builder.writeFloat32(y); - builder.writeFloat32(x); - return builder.offset(); -} - - -unpack(): Vec3T { - return new Vec3T( - this.x(), - this.y(), - this.z(), - this.test1(), - this.test2(), - (this.test3() !== null ? this.test3()!.unpack() : null) - ); -} - - -unpackTo(_o: Vec3T): void { - _o.x = this.x(); - _o.y = this.y(); - _o.z = this.z(); - _o.test1 = this.test1(); - _o.test2 = this.test2(); - _o.test3 = (this.test3() !== null ? this.test3()!.unpack() : null); -} -} - -export class Vec3T { -constructor( - public x: number = 0.0, - public y: number = 0.0, - public z: number = 0.0, - public test1: number = 0.0, - public test2: Color = 0, - public test3: TestT|null = null -){} - - -pack(builder:flatbuffers.Builder): flatbuffers.Offset { - return Vec3.createVec3(builder, - this.x, - this.y, - this.z, - this.test1, - this.test2, - (this.test3?.a ?? 0), - (this.test3?.b ?? 0) - ); -} -} diff --git a/tests/my-game/example2/monster.js b/tests/my-game/example2/monster.js deleted file mode 100644 index f50a2c85af..0000000000 --- a/tests/my-game/example2/monster.js +++ /dev/null @@ -1,50 +0,0 @@ -// automatically generated by the FlatBuffers compiler, do not modify -import * as flatbuffers from 'flatbuffers'; -export class Monster { - constructor() { - this.bb = null; - this.bb_pos = 0; - } - __init(i, bb) { - this.bb_pos = i; - this.bb = bb; - return this; - } - static getRootAsMonster(bb, obj) { - return (obj || new Monster()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - static getSizePrefixedRootAsMonster(bb, obj) { - bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH); - return (obj || new Monster()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - static getFullyQualifiedName() { - return 'MyGame_Example2_Monster'; - } - static startMonster(builder) { - builder.startObject(0); - } - static endMonster(builder) { - const offset = builder.endObject(); - return offset; - } - static createMonster(builder) { - Monster.startMonster(builder); - return Monster.endMonster(builder); - } - serialize() { - return this.bb.bytes(); - } - static deserialize(buffer) { - return Monster.getRootAsMonster(new flatbuffers.ByteBuffer(buffer)); - } - unpack() { - return new MonsterT(); - } - unpackTo(_o) { } -} -export class MonsterT { - constructor() { } - pack(builder) { - return Monster.createMonster(builder); - } -} diff --git a/tests/my-game/example2/monster.ts b/tests/my-game/example2/monster.ts deleted file mode 100644 index 7240476bef..0000000000 --- a/tests/my-game/example2/monster.ts +++ /dev/null @@ -1,66 +0,0 @@ -// automatically generated by the FlatBuffers compiler, do not modify - -import * as flatbuffers from 'flatbuffers'; - - - -export class Monster { - bb: flatbuffers.ByteBuffer|null = null; - bb_pos = 0; - __init(i:number, bb:flatbuffers.ByteBuffer):Monster { - this.bb_pos = i; - this.bb = bb; - return this; -} - -static getRootAsMonster(bb:flatbuffers.ByteBuffer, obj?:Monster):Monster { - return (obj || new Monster()).__init(bb.readInt32(bb.position()) + bb.position(), bb); -} - -static getSizePrefixedRootAsMonster(bb:flatbuffers.ByteBuffer, obj?:Monster):Monster { - bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH); - return (obj || new Monster()).__init(bb.readInt32(bb.position()) + bb.position(), bb); -} - -static getFullyQualifiedName():string { - return 'MyGame_Example2_Monster'; -} - -static startMonster(builder:flatbuffers.Builder) { - builder.startObject(0); -} - -static endMonster(builder:flatbuffers.Builder):flatbuffers.Offset { - const offset = builder.endObject(); - return offset; -} - -static createMonster(builder:flatbuffers.Builder):flatbuffers.Offset { - Monster.startMonster(builder); - return Monster.endMonster(builder); -} - -serialize():Uint8Array { - return this.bb!.bytes(); -} - -static deserialize(buffer: Uint8Array):Monster { - return Monster.getRootAsMonster(new flatbuffers.ByteBuffer(buffer)) -} - -unpack(): MonsterT { - return new MonsterT(); -} - - -unpackTo(_o: MonsterT): void {} -} - -export class MonsterT { -constructor(){} - - -pack(builder:flatbuffers.Builder): flatbuffers.Offset { - return Monster.createMonster(builder); -} -} diff --git a/tests/my-game/in-parent-namespace.js b/tests/my-game/in-parent-namespace.js deleted file mode 100644 index 24b0ed7878..0000000000 --- a/tests/my-game/in-parent-namespace.js +++ /dev/null @@ -1,50 +0,0 @@ -// automatically generated by the FlatBuffers compiler, do not modify -import * as flatbuffers from 'flatbuffers'; -export class InParentNamespace { - constructor() { - this.bb = null; - this.bb_pos = 0; - } - __init(i, bb) { - this.bb_pos = i; - this.bb = bb; - return this; - } - static getRootAsInParentNamespace(bb, obj) { - return (obj || new InParentNamespace()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - static getSizePrefixedRootAsInParentNamespace(bb, obj) { - bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH); - return (obj || new InParentNamespace()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - static getFullyQualifiedName() { - return 'MyGame_InParentNamespace'; - } - static startInParentNamespace(builder) { - builder.startObject(0); - } - static endInParentNamespace(builder) { - const offset = builder.endObject(); - return offset; - } - static createInParentNamespace(builder) { - InParentNamespace.startInParentNamespace(builder); - return InParentNamespace.endInParentNamespace(builder); - } - serialize() { - return this.bb.bytes(); - } - static deserialize(buffer) { - return InParentNamespace.getRootAsInParentNamespace(new flatbuffers.ByteBuffer(buffer)); - } - unpack() { - return new InParentNamespaceT(); - } - unpackTo(_o) { } -} -export class InParentNamespaceT { - constructor() { } - pack(builder) { - return InParentNamespace.createInParentNamespace(builder); - } -} diff --git a/tests/my-game/in-parent-namespace.ts b/tests/my-game/in-parent-namespace.ts deleted file mode 100644 index 0de94df5e6..0000000000 --- a/tests/my-game/in-parent-namespace.ts +++ /dev/null @@ -1,66 +0,0 @@ -// automatically generated by the FlatBuffers compiler, do not modify - -import * as flatbuffers from 'flatbuffers'; - - - -export class InParentNamespace { - bb: flatbuffers.ByteBuffer|null = null; - bb_pos = 0; - __init(i:number, bb:flatbuffers.ByteBuffer):InParentNamespace { - this.bb_pos = i; - this.bb = bb; - return this; -} - -static getRootAsInParentNamespace(bb:flatbuffers.ByteBuffer, obj?:InParentNamespace):InParentNamespace { - return (obj || new InParentNamespace()).__init(bb.readInt32(bb.position()) + bb.position(), bb); -} - -static getSizePrefixedRootAsInParentNamespace(bb:flatbuffers.ByteBuffer, obj?:InParentNamespace):InParentNamespace { - bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH); - return (obj || new InParentNamespace()).__init(bb.readInt32(bb.position()) + bb.position(), bb); -} - -static getFullyQualifiedName():string { - return 'MyGame_InParentNamespace'; -} - -static startInParentNamespace(builder:flatbuffers.Builder) { - builder.startObject(0); -} - -static endInParentNamespace(builder:flatbuffers.Builder):flatbuffers.Offset { - const offset = builder.endObject(); - return offset; -} - -static createInParentNamespace(builder:flatbuffers.Builder):flatbuffers.Offset { - InParentNamespace.startInParentNamespace(builder); - return InParentNamespace.endInParentNamespace(builder); -} - -serialize():Uint8Array { - return this.bb!.bytes(); -} - -static deserialize(buffer: Uint8Array):InParentNamespace { - return InParentNamespace.getRootAsInParentNamespace(new flatbuffers.ByteBuffer(buffer)) -} - -unpack(): InParentNamespaceT { - return new InParentNamespaceT(); -} - - -unpackTo(_o: InParentNamespaceT): void {} -} - -export class InParentNamespaceT { -constructor(){} - - -pack(builder:flatbuffers.Builder): flatbuffers.Offset { - return InParentNamespace.createInParentNamespace(builder); -} -} diff --git a/tests/namespace_test/namespace-a/namespace-b/enum-in-nested-n-s.js b/tests/namespace_test/namespace-a/namespace-b/enum-in-nested-n-s.js deleted file mode 100644 index 9105ed44f8..0000000000 --- a/tests/namespace_test/namespace-a/namespace-b/enum-in-nested-n-s.js +++ /dev/null @@ -1,7 +0,0 @@ -// automatically generated by the FlatBuffers compiler, do not modify -export var EnumInNestedNS; -(function (EnumInNestedNS) { - EnumInNestedNS[EnumInNestedNS["A"] = 0] = "A"; - EnumInNestedNS[EnumInNestedNS["B"] = 1] = "B"; - EnumInNestedNS[EnumInNestedNS["C"] = 2] = "C"; -})(EnumInNestedNS || (EnumInNestedNS = {})); diff --git a/tests/namespace_test/namespace-a/namespace-b/struct-in-nested-n-s.js b/tests/namespace_test/namespace-a/namespace-b/struct-in-nested-n-s.js deleted file mode 100644 index 918e238e0a..0000000000 --- a/tests/namespace_test/namespace-a/namespace-b/struct-in-nested-n-s.js +++ /dev/null @@ -1,54 +0,0 @@ -// automatically generated by the FlatBuffers compiler, do not modify -export class StructInNestedNS { - constructor() { - this.bb = null; - this.bb_pos = 0; - } - __init(i, bb) { - this.bb_pos = i; - this.bb = bb; - return this; - } - a() { - return this.bb.readInt32(this.bb_pos); - } - mutate_a(value) { - this.bb.writeInt32(this.bb_pos + 0, value); - return true; - } - b() { - return this.bb.readInt32(this.bb_pos + 4); - } - mutate_b(value) { - this.bb.writeInt32(this.bb_pos + 4, value); - return true; - } - static getFullyQualifiedName() { - return 'NamespaceA.NamespaceB.StructInNestedNS'; - } - static sizeOf() { - return 8; - } - static createStructInNestedNS(builder, a, b) { - builder.prep(4, 8); - builder.writeInt32(b); - builder.writeInt32(a); - return builder.offset(); - } - unpack() { - return new StructInNestedNST(this.a(), this.b()); - } - unpackTo(_o) { - _o.a = this.a(); - _o.b = this.b(); - } -} -export class StructInNestedNST { - constructor(a = 0, b = 0) { - this.a = a; - this.b = b; - } - pack(builder) { - return StructInNestedNS.createStructInNestedNS(builder, this.a, this.b); - } -} diff --git a/tests/namespace_test/namespace-a/namespace-b/struct-in-nested-n-s.ts b/tests/namespace_test/namespace-a/namespace-b/struct-in-nested-n-s.ts deleted file mode 100644 index 4b10118e13..0000000000 --- a/tests/namespace_test/namespace-a/namespace-b/struct-in-nested-n-s.ts +++ /dev/null @@ -1,77 +0,0 @@ -// automatically generated by the FlatBuffers compiler, do not modify - -import * as flatbuffers from 'flatbuffers'; - - - -export class StructInNestedNS { - bb: flatbuffers.ByteBuffer|null = null; - bb_pos = 0; -__init(i:number, bb:flatbuffers.ByteBuffer):StructInNestedNS { - this.bb_pos = i; - this.bb = bb; - return this; -} - -a():number { - return this.bb!.readInt32(this.bb_pos); -} - -mutate_a(value:number):boolean { - this.bb!.writeInt32(this.bb_pos + 0, value); - return true; -} - -b():number { - return this.bb!.readInt32(this.bb_pos + 4); -} - -mutate_b(value:number):boolean { - this.bb!.writeInt32(this.bb_pos + 4, value); - return true; -} - -static getFullyQualifiedName():string { - return 'NamespaceA.NamespaceB.StructInNestedNS'; -} - -static sizeOf():number { - return 8; -} - -static createStructInNestedNS(builder:flatbuffers.Builder, a: number, b: number):flatbuffers.Offset { - builder.prep(4, 8); - builder.writeInt32(b); - builder.writeInt32(a); - return builder.offset(); -} - - -unpack(): StructInNestedNST { - return new StructInNestedNST( - this.a(), - this.b() - ); -} - - -unpackTo(_o: StructInNestedNST): void { - _o.a = this.a(); - _o.b = this.b(); -} -} - -export class StructInNestedNST { -constructor( - public a: number = 0, - public b: number = 0 -){} - - -pack(builder:flatbuffers.Builder): flatbuffers.Offset { - return StructInNestedNS.createStructInNestedNS(builder, - this.a, - this.b - ); -} -} diff --git a/tests/namespace_test/namespace-a/namespace-b/table-in-nested-n-s.js b/tests/namespace_test/namespace-a/namespace-b/table-in-nested-n-s.js deleted file mode 100644 index fca1668c46..0000000000 --- a/tests/namespace_test/namespace-a/namespace-b/table-in-nested-n-s.js +++ /dev/null @@ -1,64 +0,0 @@ -// automatically generated by the FlatBuffers compiler, do not modify -import * as flatbuffers from 'flatbuffers'; -export class TableInNestedNS { - constructor() { - this.bb = null; - this.bb_pos = 0; - } - __init(i, bb) { - this.bb_pos = i; - this.bb = bb; - return this; - } - static getRootAsTableInNestedNS(bb, obj) { - return (obj || new TableInNestedNS()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - static getSizePrefixedRootAsTableInNestedNS(bb, obj) { - bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH); - return (obj || new TableInNestedNS()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - foo() { - const offset = this.bb.__offset(this.bb_pos, 4); - return offset ? this.bb.readInt32(this.bb_pos + offset) : 0; - } - mutate_foo(value) { - const offset = this.bb.__offset(this.bb_pos, 4); - if (offset === 0) { - return false; - } - this.bb.writeInt32(this.bb_pos + offset, value); - return true; - } - static getFullyQualifiedName() { - return 'NamespaceA.NamespaceB.TableInNestedNS'; - } - static startTableInNestedNS(builder) { - builder.startObject(1); - } - static addFoo(builder, foo) { - builder.addFieldInt32(0, foo, 0); - } - static endTableInNestedNS(builder) { - const offset = builder.endObject(); - return offset; - } - static createTableInNestedNS(builder, foo) { - TableInNestedNS.startTableInNestedNS(builder); - TableInNestedNS.addFoo(builder, foo); - return TableInNestedNS.endTableInNestedNS(builder); - } - unpack() { - return new TableInNestedNST(this.foo()); - } - unpackTo(_o) { - _o.foo = this.foo(); - } -} -export class TableInNestedNST { - constructor(foo = 0) { - this.foo = foo; - } - pack(builder) { - return TableInNestedNS.createTableInNestedNS(builder, this.foo); - } -} diff --git a/tests/namespace_test/namespace-a/namespace-b/table-in-nested-n-s.ts b/tests/namespace_test/namespace-a/namespace-b/table-in-nested-n-s.ts deleted file mode 100644 index 5279fdbd57..0000000000 --- a/tests/namespace_test/namespace-a/namespace-b/table-in-nested-n-s.ts +++ /dev/null @@ -1,87 +0,0 @@ -// automatically generated by the FlatBuffers compiler, do not modify - -import * as flatbuffers from 'flatbuffers'; - - - -export class TableInNestedNS { - bb: flatbuffers.ByteBuffer|null = null; - bb_pos = 0; -__init(i:number, bb:flatbuffers.ByteBuffer):TableInNestedNS { - this.bb_pos = i; - this.bb = bb; - return this; -} - -static getRootAsTableInNestedNS(bb:flatbuffers.ByteBuffer, obj?:TableInNestedNS):TableInNestedNS { - return (obj || new TableInNestedNS()).__init(bb.readInt32(bb.position()) + bb.position(), bb); -} - -static getSizePrefixedRootAsTableInNestedNS(bb:flatbuffers.ByteBuffer, obj?:TableInNestedNS):TableInNestedNS { - bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH); - return (obj || new TableInNestedNS()).__init(bb.readInt32(bb.position()) + bb.position(), bb); -} - -foo():number { - const offset = this.bb!.__offset(this.bb_pos, 4); - return offset ? this.bb!.readInt32(this.bb_pos + offset) : 0; -} - -mutate_foo(value:number):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; -} - -static getFullyQualifiedName():string { - return 'NamespaceA.NamespaceB.TableInNestedNS'; -} - -static startTableInNestedNS(builder:flatbuffers.Builder) { - builder.startObject(1); -} - -static addFoo(builder:flatbuffers.Builder, foo:number) { - builder.addFieldInt32(0, foo, 0); -} - -static endTableInNestedNS(builder:flatbuffers.Builder):flatbuffers.Offset { - const offset = builder.endObject(); - return offset; -} - -static createTableInNestedNS(builder:flatbuffers.Builder, foo:number):flatbuffers.Offset { - TableInNestedNS.startTableInNestedNS(builder); - TableInNestedNS.addFoo(builder, foo); - return TableInNestedNS.endTableInNestedNS(builder); -} - -unpack(): TableInNestedNST { - return new TableInNestedNST( - this.foo() - ); -} - - -unpackTo(_o: TableInNestedNST): void { - _o.foo = this.foo(); -} -} - -export class TableInNestedNST { -constructor( - public foo: number = 0 -){} - - -pack(builder:flatbuffers.Builder): flatbuffers.Offset { - return TableInNestedNS.createTableInNestedNS(builder, - this.foo - ); -} -} diff --git a/tests/namespace_test/namespace-a/namespace-b/union-in-nested-n-s.js b/tests/namespace_test/namespace-a/namespace-b/union-in-nested-n-s.js deleted file mode 100644 index b820bceacd..0000000000 --- a/tests/namespace_test/namespace-a/namespace-b/union-in-nested-n-s.js +++ /dev/null @@ -1,21 +0,0 @@ -// automatically generated by the FlatBuffers compiler, do not modify -import { TableInNestedNS } from '../../namespace-a/namespace-b/table-in-nested-n-s'; -export var UnionInNestedNS; -(function (UnionInNestedNS) { - UnionInNestedNS[UnionInNestedNS["NONE"] = 0] = "NONE"; - UnionInNestedNS[UnionInNestedNS["TableInNestedNS"] = 1] = "TableInNestedNS"; -})(UnionInNestedNS || (UnionInNestedNS = {})); -export function unionToUnionInNestedNS(type, accessor) { - switch (UnionInNestedNS[type]) { - case 'NONE': return null; - case 'TableInNestedNS': return accessor(new TableInNestedNS()); - default: return null; - } -} -export function unionListToUnionInNestedNS(type, accessor, index) { - switch (UnionInNestedNS[type]) { - case 'NONE': return null; - case 'TableInNestedNS': return accessor(index, new TableInNestedNS()); - default: return null; - } -} diff --git a/tests/namespace_test/namespace-a/namespace-b/union-in-nested-n-s.ts b/tests/namespace_test/namespace-a/namespace-b/union-in-nested-n-s.ts deleted file mode 100644 index 441ebf76c9..0000000000 --- a/tests/namespace_test/namespace-a/namespace-b/union-in-nested-n-s.ts +++ /dev/null @@ -1,33 +0,0 @@ -// automatically generated by the FlatBuffers compiler, do not modify - -import { TableInNestedNS, TableInNestedNST } from '../../namespace-a/namespace-b/table-in-nested-n-s'; - - -export enum UnionInNestedNS{ - NONE = 0, - TableInNestedNS = 1 -} - -export function unionToUnionInNestedNS( - type: UnionInNestedNS, - accessor: (obj:TableInNestedNS) => TableInNestedNS|null -): TableInNestedNS|null { - switch(UnionInNestedNS[type]) { - case 'NONE': return null; - case 'TableInNestedNS': return accessor(new TableInNestedNS())! as TableInNestedNS; - default: return null; - } -} - -export function unionListToUnionInNestedNS( - type: UnionInNestedNS, - accessor: (index: number, obj:TableInNestedNS) => TableInNestedNS|null, - index: number -): TableInNestedNS|null { - switch(UnionInNestedNS[type]) { - case 'NONE': return null; - case 'TableInNestedNS': return accessor(index, new TableInNestedNS())! as TableInNestedNS; - default: return null; - } -} - diff --git a/tests/namespace_test/namespace-a/second-table-in-a.js b/tests/namespace_test/namespace-a/second-table-in-a.js deleted file mode 100644 index fe848e01f1..0000000000 --- a/tests/namespace_test/namespace-a/second-table-in-a.js +++ /dev/null @@ -1,58 +0,0 @@ -// automatically generated by the FlatBuffers compiler, do not modify -import * as flatbuffers from 'flatbuffers'; -import { TableInC } from '../namespace-c/table-in-c'; -export class SecondTableInA { - constructor() { - this.bb = null; - this.bb_pos = 0; - } - __init(i, bb) { - this.bb_pos = i; - this.bb = bb; - return this; - } - static getRootAsSecondTableInA(bb, obj) { - return (obj || new SecondTableInA()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - static getSizePrefixedRootAsSecondTableInA(bb, obj) { - bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH); - return (obj || new SecondTableInA()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - referToC(obj) { - const offset = this.bb.__offset(this.bb_pos, 4); - return offset ? (obj || new TableInC()).__init(this.bb.__indirect(this.bb_pos + offset), this.bb) : null; - } - static getFullyQualifiedName() { - return 'NamespaceA.SecondTableInA'; - } - static startSecondTableInA(builder) { - builder.startObject(1); - } - static addReferToC(builder, referToCOffset) { - builder.addFieldOffset(0, referToCOffset, 0); - } - static endSecondTableInA(builder) { - const offset = builder.endObject(); - return offset; - } - static createSecondTableInA(builder, referToCOffset) { - SecondTableInA.startSecondTableInA(builder); - SecondTableInA.addReferToC(builder, referToCOffset); - return SecondTableInA.endSecondTableInA(builder); - } - unpack() { - return new SecondTableInAT((this.referToC() !== null ? this.referToC().unpack() : null)); - } - unpackTo(_o) { - _o.referToC = (this.referToC() !== null ? this.referToC().unpack() : null); - } -} -export class SecondTableInAT { - constructor(referToC = null) { - this.referToC = referToC; - } - pack(builder) { - const referToC = (this.referToC !== null ? this.referToC.pack(builder) : 0); - return SecondTableInA.createSecondTableInA(builder, referToC); - } -} diff --git a/tests/namespace_test/namespace-a/second-table-in-a.ts b/tests/namespace_test/namespace-a/second-table-in-a.ts deleted file mode 100644 index 9be34024c7..0000000000 --- a/tests/namespace_test/namespace-a/second-table-in-a.ts +++ /dev/null @@ -1,79 +0,0 @@ -// automatically generated by the FlatBuffers compiler, do not modify - -import * as flatbuffers from 'flatbuffers'; - -import { TableInC, TableInCT } from '../namespace-c/table-in-c'; - - -export class SecondTableInA { - bb: flatbuffers.ByteBuffer|null = null; - bb_pos = 0; -__init(i:number, bb:flatbuffers.ByteBuffer):SecondTableInA { - this.bb_pos = i; - this.bb = bb; - return this; -} - -static getRootAsSecondTableInA(bb:flatbuffers.ByteBuffer, obj?:SecondTableInA):SecondTableInA { - return (obj || new SecondTableInA()).__init(bb.readInt32(bb.position()) + bb.position(), bb); -} - -static getSizePrefixedRootAsSecondTableInA(bb:flatbuffers.ByteBuffer, obj?:SecondTableInA):SecondTableInA { - bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH); - return (obj || new SecondTableInA()).__init(bb.readInt32(bb.position()) + bb.position(), bb); -} - -referToC(obj?:TableInC):TableInC|null { - const offset = this.bb!.__offset(this.bb_pos, 4); - return offset ? (obj || new TableInC()).__init(this.bb!.__indirect(this.bb_pos + offset), this.bb!) : null; -} - -static getFullyQualifiedName():string { - return 'NamespaceA.SecondTableInA'; -} - -static startSecondTableInA(builder:flatbuffers.Builder) { - builder.startObject(1); -} - -static addReferToC(builder:flatbuffers.Builder, referToCOffset:flatbuffers.Offset) { - builder.addFieldOffset(0, referToCOffset, 0); -} - -static endSecondTableInA(builder:flatbuffers.Builder):flatbuffers.Offset { - const offset = builder.endObject(); - return offset; -} - -static createSecondTableInA(builder:flatbuffers.Builder, referToCOffset:flatbuffers.Offset):flatbuffers.Offset { - SecondTableInA.startSecondTableInA(builder); - SecondTableInA.addReferToC(builder, referToCOffset); - return SecondTableInA.endSecondTableInA(builder); -} - -unpack(): SecondTableInAT { - return new SecondTableInAT( - (this.referToC() !== null ? this.referToC()!.unpack() : null) - ); -} - - -unpackTo(_o: SecondTableInAT): void { - _o.referToC = (this.referToC() !== null ? this.referToC()!.unpack() : null); -} -} - -export class SecondTableInAT { -constructor( - public referToC: TableInCT|null = null -){} - - -pack(builder:flatbuffers.Builder): flatbuffers.Offset { - const referToC = (this.referToC !== null ? this.referToC!.pack(builder) : 0); - - return SecondTableInA.createSecondTableInA(builder, - referToC - ); -} -} diff --git a/tests/namespace_test/namespace-a/table-in-first-n-s.js b/tests/namespace_test/namespace-a/table-in-first-n-s.js deleted file mode 100644 index 91bcc8569f..0000000000 --- a/tests/namespace_test/namespace-a/table-in-first-n-s.js +++ /dev/null @@ -1,119 +0,0 @@ -// automatically generated by the FlatBuffers compiler, do not modify -import * as flatbuffers from 'flatbuffers'; -import { EnumInNestedNS } from '../namespace-a/namespace-b/enum-in-nested-n-s'; -import { StructInNestedNS } from '../namespace-a/namespace-b/struct-in-nested-n-s'; -import { TableInNestedNS } from '../namespace-a/namespace-b/table-in-nested-n-s'; -import { UnionInNestedNS, unionToUnionInNestedNS } from '../namespace-a/namespace-b/union-in-nested-n-s'; -export class TableInFirstNS { - constructor() { - this.bb = null; - this.bb_pos = 0; - } - __init(i, bb) { - this.bb_pos = i; - this.bb = bb; - return this; - } - static getRootAsTableInFirstNS(bb, obj) { - return (obj || new TableInFirstNS()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - static getSizePrefixedRootAsTableInFirstNS(bb, obj) { - bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH); - return (obj || new TableInFirstNS()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - fooTable(obj) { - const offset = this.bb.__offset(this.bb_pos, 4); - return offset ? (obj || new TableInNestedNS()).__init(this.bb.__indirect(this.bb_pos + offset), this.bb) : null; - } - fooEnum() { - const offset = this.bb.__offset(this.bb_pos, 6); - return offset ? this.bb.readInt8(this.bb_pos + offset) : EnumInNestedNS.A; - } - mutate_foo_enum(value) { - const offset = this.bb.__offset(this.bb_pos, 6); - if (offset === 0) { - return false; - } - this.bb.writeInt8(this.bb_pos + offset, value); - return true; - } - fooUnionType() { - const offset = this.bb.__offset(this.bb_pos, 8); - return offset ? this.bb.readUint8(this.bb_pos + offset) : UnionInNestedNS.NONE; - } - fooUnion(obj) { - const offset = this.bb.__offset(this.bb_pos, 10); - return offset ? this.bb.__union(obj, this.bb_pos + offset) : null; - } - fooStruct(obj) { - const offset = this.bb.__offset(this.bb_pos, 12); - return offset ? (obj || new StructInNestedNS()).__init(this.bb_pos + offset, this.bb) : null; - } - static getFullyQualifiedName() { - return 'NamespaceA.TableInFirstNS'; - } - static startTableInFirstNS(builder) { - builder.startObject(5); - } - static addFooTable(builder, fooTableOffset) { - builder.addFieldOffset(0, fooTableOffset, 0); - } - static addFooEnum(builder, fooEnum) { - builder.addFieldInt8(1, fooEnum, EnumInNestedNS.A); - } - static addFooUnionType(builder, fooUnionType) { - builder.addFieldInt8(2, fooUnionType, UnionInNestedNS.NONE); - } - static addFooUnion(builder, fooUnionOffset) { - builder.addFieldOffset(3, fooUnionOffset, 0); - } - static addFooStruct(builder, fooStructOffset) { - builder.addFieldStruct(4, fooStructOffset, 0); - } - static endTableInFirstNS(builder) { - const offset = builder.endObject(); - return offset; - } - unpack() { - return new TableInFirstNST((this.fooTable() !== null ? this.fooTable().unpack() : null), this.fooEnum(), this.fooUnionType(), (() => { - let temp = unionToUnionInNestedNS(this.fooUnionType(), this.fooUnion.bind(this)); - if (temp === null) { - return null; - } - return temp.unpack(); - })(), (this.fooStruct() !== null ? this.fooStruct().unpack() : null)); - } - unpackTo(_o) { - _o.fooTable = (this.fooTable() !== null ? this.fooTable().unpack() : null); - _o.fooEnum = this.fooEnum(); - _o.fooUnionType = this.fooUnionType(); - _o.fooUnion = (() => { - let temp = unionToUnionInNestedNS(this.fooUnionType(), this.fooUnion.bind(this)); - if (temp === null) { - return null; - } - return temp.unpack(); - })(); - _o.fooStruct = (this.fooStruct() !== null ? this.fooStruct().unpack() : null); - } -} -export class TableInFirstNST { - constructor(fooTable = null, fooEnum = EnumInNestedNS.A, fooUnionType = UnionInNestedNS.NONE, fooUnion = null, fooStruct = null) { - this.fooTable = fooTable; - this.fooEnum = fooEnum; - this.fooUnionType = fooUnionType; - this.fooUnion = fooUnion; - this.fooStruct = fooStruct; - } - pack(builder) { - const fooTable = (this.fooTable !== null ? this.fooTable.pack(builder) : 0); - const fooUnion = builder.createObjectOffset(this.fooUnion); - TableInFirstNS.startTableInFirstNS(builder); - TableInFirstNS.addFooTable(builder, fooTable); - TableInFirstNS.addFooEnum(builder, this.fooEnum); - TableInFirstNS.addFooUnionType(builder, this.fooUnionType); - TableInFirstNS.addFooUnion(builder, fooUnion); - TableInFirstNS.addFooStruct(builder, (this.fooStruct !== null ? this.fooStruct.pack(builder) : 0)); - return TableInFirstNS.endTableInFirstNS(builder); - } -} diff --git a/tests/namespace_test/namespace-a/table-in-first-n-s.ts b/tests/namespace_test/namespace-a/table-in-first-n-s.ts deleted file mode 100644 index 8e4d706bd2..0000000000 --- a/tests/namespace_test/namespace-a/table-in-first-n-s.ts +++ /dev/null @@ -1,150 +0,0 @@ -// automatically generated by the FlatBuffers compiler, do not modify - -import * as flatbuffers from 'flatbuffers'; - -import { EnumInNestedNS } from '../namespace-a/namespace-b/enum-in-nested-n-s'; -import { StructInNestedNS, StructInNestedNST } from '../namespace-a/namespace-b/struct-in-nested-n-s'; -import { TableInNestedNS, TableInNestedNST } from '../namespace-a/namespace-b/table-in-nested-n-s'; -import { UnionInNestedNS, unionToUnionInNestedNS, unionListToUnionInNestedNS } from '../namespace-a/namespace-b/union-in-nested-n-s'; - - -export class TableInFirstNS { - bb: flatbuffers.ByteBuffer|null = null; - bb_pos = 0; -__init(i:number, bb:flatbuffers.ByteBuffer):TableInFirstNS { - this.bb_pos = i; - this.bb = bb; - return this; -} - -static getRootAsTableInFirstNS(bb:flatbuffers.ByteBuffer, obj?:TableInFirstNS):TableInFirstNS { - return (obj || new TableInFirstNS()).__init(bb.readInt32(bb.position()) + bb.position(), bb); -} - -static getSizePrefixedRootAsTableInFirstNS(bb:flatbuffers.ByteBuffer, obj?:TableInFirstNS):TableInFirstNS { - bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH); - return (obj || new TableInFirstNS()).__init(bb.readInt32(bb.position()) + bb.position(), bb); -} - -fooTable(obj?:TableInNestedNS):TableInNestedNS|null { - const offset = this.bb!.__offset(this.bb_pos, 4); - return offset ? (obj || new TableInNestedNS()).__init(this.bb!.__indirect(this.bb_pos + offset), this.bb!) : null; -} - -fooEnum():EnumInNestedNS { - const offset = this.bb!.__offset(this.bb_pos, 6); - return offset ? this.bb!.readInt8(this.bb_pos + offset) : EnumInNestedNS.A; -} - -mutate_foo_enum(value:EnumInNestedNS):boolean { - const offset = this.bb!.__offset(this.bb_pos, 6); - - if (offset === 0) { - return false; - } - - this.bb!.writeInt8(this.bb_pos + offset, value); - return true; -} - -fooUnionType():UnionInNestedNS { - const offset = this.bb!.__offset(this.bb_pos, 8); - return offset ? this.bb!.readUint8(this.bb_pos + offset) : UnionInNestedNS.NONE; -} - -fooUnion(obj:any):any|null { - const offset = this.bb!.__offset(this.bb_pos, 10); - return offset ? this.bb!.__union(obj, this.bb_pos + offset) : null; -} - -fooStruct(obj?:StructInNestedNS):StructInNestedNS|null { - const offset = this.bb!.__offset(this.bb_pos, 12); - return offset ? (obj || new StructInNestedNS()).__init(this.bb_pos + offset, this.bb!) : null; -} - -static getFullyQualifiedName():string { - return 'NamespaceA.TableInFirstNS'; -} - -static startTableInFirstNS(builder:flatbuffers.Builder) { - builder.startObject(5); -} - -static addFooTable(builder:flatbuffers.Builder, fooTableOffset:flatbuffers.Offset) { - builder.addFieldOffset(0, fooTableOffset, 0); -} - -static addFooEnum(builder:flatbuffers.Builder, fooEnum:EnumInNestedNS) { - builder.addFieldInt8(1, fooEnum, EnumInNestedNS.A); -} - -static addFooUnionType(builder:flatbuffers.Builder, fooUnionType:UnionInNestedNS) { - builder.addFieldInt8(2, fooUnionType, UnionInNestedNS.NONE); -} - -static addFooUnion(builder:flatbuffers.Builder, fooUnionOffset:flatbuffers.Offset) { - builder.addFieldOffset(3, fooUnionOffset, 0); -} - -static addFooStruct(builder:flatbuffers.Builder, fooStructOffset:flatbuffers.Offset) { - builder.addFieldStruct(4, fooStructOffset, 0); -} - -static endTableInFirstNS(builder:flatbuffers.Builder):flatbuffers.Offset { - const offset = builder.endObject(); - return offset; -} - - -unpack(): TableInFirstNST { - return new TableInFirstNST( - (this.fooTable() !== null ? this.fooTable()!.unpack() : null), - this.fooEnum(), - this.fooUnionType(), - (() => { - let temp = unionToUnionInNestedNS(this.fooUnionType(), this.fooUnion.bind(this)); - if(temp === null) { return null; } - return temp.unpack() - })(), - (this.fooStruct() !== null ? this.fooStruct()!.unpack() : null) - ); -} - - -unpackTo(_o: TableInFirstNST): void { - _o.fooTable = (this.fooTable() !== null ? this.fooTable()!.unpack() : null); - _o.fooEnum = this.fooEnum(); - _o.fooUnionType = this.fooUnionType(); - _o.fooUnion = (() => { - let temp = unionToUnionInNestedNS(this.fooUnionType(), this.fooUnion.bind(this)); - if(temp === null) { return null; } - return temp.unpack() - })(); - _o.fooStruct = (this.fooStruct() !== null ? this.fooStruct()!.unpack() : null); -} -} - -export class TableInFirstNST { -constructor( - public fooTable: TableInNestedNST|null = null, - public fooEnum: EnumInNestedNS = EnumInNestedNS.A, - public fooUnionType: UnionInNestedNS = UnionInNestedNS.NONE, - public fooUnion: TableInNestedNST|null = null, - public fooStruct: StructInNestedNST|null = null -){} - - -pack(builder:flatbuffers.Builder): flatbuffers.Offset { - const fooTable = (this.fooTable !== null ? this.fooTable!.pack(builder) : 0); - const fooUnion = builder.createObjectOffset(this.fooUnion); - - TableInFirstNS.startTableInFirstNS(builder); - TableInFirstNS.addFooTable(builder, fooTable); - TableInFirstNS.addFooEnum(builder, this.fooEnum); - TableInFirstNS.addFooUnionType(builder, this.fooUnionType); - TableInFirstNS.addFooUnion(builder, fooUnion); - TableInFirstNS.addFooStruct(builder, (this.fooStruct !== null ? this.fooStruct!.pack(builder) : 0)); - - return TableInFirstNS.endTableInFirstNS(builder); -} -} diff --git a/tests/namespace_test/namespace-c/table-in-c.js b/tests/namespace_test/namespace-c/table-in-c.js deleted file mode 100644 index d097a3c3b3..0000000000 --- a/tests/namespace_test/namespace-c/table-in-c.js +++ /dev/null @@ -1,67 +0,0 @@ -// automatically generated by the FlatBuffers compiler, do not modify -import * as flatbuffers from 'flatbuffers'; -import { SecondTableInA } from '../namespace-a/second-table-in-a'; -import { TableInFirstNS } from '../namespace-a/table-in-first-n-s'; -export class TableInC { - constructor() { - this.bb = null; - this.bb_pos = 0; - } - __init(i, bb) { - this.bb_pos = i; - this.bb = bb; - return this; - } - static getRootAsTableInC(bb, obj) { - return (obj || new TableInC()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - static getSizePrefixedRootAsTableInC(bb, obj) { - bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH); - return (obj || new TableInC()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - referToA1(obj) { - const offset = this.bb.__offset(this.bb_pos, 4); - return offset ? (obj || new TableInFirstNS()).__init(this.bb.__indirect(this.bb_pos + offset), this.bb) : null; - } - referToA2(obj) { - const offset = this.bb.__offset(this.bb_pos, 6); - return offset ? (obj || new SecondTableInA()).__init(this.bb.__indirect(this.bb_pos + offset), this.bb) : null; - } - static getFullyQualifiedName() { - return 'NamespaceC.TableInC'; - } - static startTableInC(builder) { - builder.startObject(2); - } - static addReferToA1(builder, referToA1Offset) { - builder.addFieldOffset(0, referToA1Offset, 0); - } - static addReferToA2(builder, referToA2Offset) { - builder.addFieldOffset(1, referToA2Offset, 0); - } - static endTableInC(builder) { - const offset = builder.endObject(); - return offset; - } - unpack() { - return new TableInCT((this.referToA1() !== null ? this.referToA1().unpack() : null), (this.referToA2() !== null ? this.referToA2().unpack() : null)); - } - unpackTo(_o) { - _o.referToA1 = (this.referToA1() !== null ? this.referToA1().unpack() : null); - _o.referToA2 = (this.referToA2() !== null ? this.referToA2().unpack() : null); - } -} -export class TableInCT { - constructor(referToA1 = null, referToA2 = null) { - this.referToA1 = referToA1; - this.referToA2 = referToA2; - } - pack(builder) { - const referToA1 = (this.referToA1 !== null ? this.referToA1.pack(builder) : 0); - const referToA2 = (this.referToA2 !== null ? this.referToA2.pack(builder) : 0); - TableInC.startTableInC(builder); - TableInC.addReferToA1(builder, referToA1); - TableInC.addReferToA2(builder, referToA2); - return TableInC.endTableInC(builder); - } -} diff --git a/tests/namespace_test/namespace-c/table-in-c.ts b/tests/namespace_test/namespace-c/table-in-c.ts deleted file mode 100644 index 7b924b8876..0000000000 --- a/tests/namespace_test/namespace-c/table-in-c.ts +++ /dev/null @@ -1,90 +0,0 @@ -// automatically generated by the FlatBuffers compiler, do not modify - -import * as flatbuffers from 'flatbuffers'; - -import { SecondTableInA, SecondTableInAT } from '../namespace-a/second-table-in-a'; -import { TableInFirstNS, TableInFirstNST } from '../namespace-a/table-in-first-n-s'; - - -export class TableInC { - bb: flatbuffers.ByteBuffer|null = null; - bb_pos = 0; -__init(i:number, bb:flatbuffers.ByteBuffer):TableInC { - this.bb_pos = i; - this.bb = bb; - return this; -} - -static getRootAsTableInC(bb:flatbuffers.ByteBuffer, obj?:TableInC):TableInC { - return (obj || new TableInC()).__init(bb.readInt32(bb.position()) + bb.position(), bb); -} - -static getSizePrefixedRootAsTableInC(bb:flatbuffers.ByteBuffer, obj?:TableInC):TableInC { - bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH); - return (obj || new TableInC()).__init(bb.readInt32(bb.position()) + bb.position(), bb); -} - -referToA1(obj?:TableInFirstNS):TableInFirstNS|null { - const offset = this.bb!.__offset(this.bb_pos, 4); - return offset ? (obj || new TableInFirstNS()).__init(this.bb!.__indirect(this.bb_pos + offset), this.bb!) : null; -} - -referToA2(obj?:SecondTableInA):SecondTableInA|null { - const offset = this.bb!.__offset(this.bb_pos, 6); - return offset ? (obj || new SecondTableInA()).__init(this.bb!.__indirect(this.bb_pos + offset), this.bb!) : null; -} - -static getFullyQualifiedName():string { - return 'NamespaceC.TableInC'; -} - -static startTableInC(builder:flatbuffers.Builder) { - builder.startObject(2); -} - -static addReferToA1(builder:flatbuffers.Builder, referToA1Offset:flatbuffers.Offset) { - builder.addFieldOffset(0, referToA1Offset, 0); -} - -static addReferToA2(builder:flatbuffers.Builder, referToA2Offset:flatbuffers.Offset) { - builder.addFieldOffset(1, referToA2Offset, 0); -} - -static endTableInC(builder:flatbuffers.Builder):flatbuffers.Offset { - const offset = builder.endObject(); - return offset; -} - - -unpack(): TableInCT { - return new TableInCT( - (this.referToA1() !== null ? this.referToA1()!.unpack() : null), - (this.referToA2() !== null ? this.referToA2()!.unpack() : null) - ); -} - - -unpackTo(_o: TableInCT): void { - _o.referToA1 = (this.referToA1() !== null ? this.referToA1()!.unpack() : null); - _o.referToA2 = (this.referToA2() !== null ? this.referToA2()!.unpack() : null); -} -} - -export class TableInCT { -constructor( - public referToA1: TableInFirstNST|null = null, - public referToA2: SecondTableInAT|null = null -){} - - -pack(builder:flatbuffers.Builder): flatbuffers.Offset { - const referToA1 = (this.referToA1 !== null ? this.referToA1!.pack(builder) : 0); - const referToA2 = (this.referToA2 !== null ? this.referToA2!.pack(builder) : 0); - - TableInC.startTableInC(builder); - TableInC.addReferToA1(builder, referToA1); - TableInC.addReferToA2(builder, referToA2); - - return TableInC.endTableInC(builder); -} -} diff --git a/tests/namespace_test/namespace_test1.ts b/tests/namespace_test/namespace_test1.ts deleted file mode 100644 index 9d8cf3342d..0000000000 --- a/tests/namespace_test/namespace_test1.ts +++ /dev/null @@ -1,3 +0,0 @@ -export { StructInNestedNS, StructInNestedNST } from './namespace-a/namespace-b/struct-in-nested-n-s'; -export { TableInNestedNS, TableInNestedNST } from './namespace-a/namespace-b/table-in-nested-n-s'; -export { UnionInNestedNS, unionToUnionInNestedNS, unionListToUnionInNestedNS } from './namespace-a/namespace-b/union-in-nested-n-s'; diff --git a/tests/namespace_test/namespace_test2.ts b/tests/namespace_test/namespace_test2.ts deleted file mode 100644 index 01f1bd4cfd..0000000000 --- a/tests/namespace_test/namespace_test2.ts +++ /dev/null @@ -1,7 +0,0 @@ -export { EnumInNestedNS } from './namespace-a/namespace-b/enum-in-nested-n-s'; -export { StructInNestedNS, StructInNestedNST } from './namespace-a/namespace-b/struct-in-nested-n-s'; -export { TableInNestedNS, TableInNestedNST } from './namespace-a/namespace-b/table-in-nested-n-s'; -export { UnionInNestedNS, unionToUnionInNestedNS, unionListToUnionInNestedNS } from './namespace-a/namespace-b/union-in-nested-n-s'; -export { SecondTableInA, SecondTableInAT } from './namespace-a/second-table-in-a'; -export { TableInFirstNS, TableInFirstNST } from './namespace-a/table-in-first-n-s'; -export { TableInC, TableInCT } from './namespace-c/table-in-c'; diff --git a/tests/optional-scalars/scalar-stuff.ts b/tests/optional-scalars/scalar-stuff.ts deleted file mode 100644 index 7c8fd516d4..0000000000 --- a/tests/optional-scalars/scalar-stuff.ts +++ /dev/null @@ -1,423 +0,0 @@ -// automatically generated by the FlatBuffers compiler, do not modify - -import * as flatbuffers from 'flatbuffers'; - -import { OptionalByte } from '../optional-scalars/optional-byte'; - - -export class ScalarStuff { - bb: flatbuffers.ByteBuffer|null = null; - bb_pos = 0; - __init(i:number, bb:flatbuffers.ByteBuffer):ScalarStuff { - this.bb_pos = i; - this.bb = bb; - return this; -} - -static getRootAsScalarStuff(bb:flatbuffers.ByteBuffer, obj?:ScalarStuff):ScalarStuff { - return (obj || new ScalarStuff()).__init(bb.readInt32(bb.position()) + bb.position(), bb); -} - -static getSizePrefixedRootAsScalarStuff(bb:flatbuffers.ByteBuffer, obj?:ScalarStuff):ScalarStuff { - bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH); - return (obj || new ScalarStuff()).__init(bb.readInt32(bb.position()) + bb.position(), bb); -} - -static bufferHasIdentifier(bb:flatbuffers.ByteBuffer):boolean { - return bb.__has_identifier('NULL'); -} - -justI8():number { - const offset = this.bb!.__offset(this.bb_pos, 4); - return offset ? this.bb!.readInt8(this.bb_pos + offset) : 0; -} - -maybeI8():number|null { - const offset = this.bb!.__offset(this.bb_pos, 6); - return offset ? this.bb!.readInt8(this.bb_pos + offset) : null; -} - -defaultI8():number { - const offset = this.bb!.__offset(this.bb_pos, 8); - return offset ? this.bb!.readInt8(this.bb_pos + offset) : 42; -} - -justU8():number { - const offset = this.bb!.__offset(this.bb_pos, 10); - return offset ? this.bb!.readUint8(this.bb_pos + offset) : 0; -} - -maybeU8():number|null { - const offset = this.bb!.__offset(this.bb_pos, 12); - return offset ? this.bb!.readUint8(this.bb_pos + offset) : null; -} - -defaultU8():number { - const offset = this.bb!.__offset(this.bb_pos, 14); - return offset ? this.bb!.readUint8(this.bb_pos + offset) : 42; -} - -justI16():number { - const offset = this.bb!.__offset(this.bb_pos, 16); - return offset ? this.bb!.readInt16(this.bb_pos + offset) : 0; -} - -maybeI16():number|null { - const offset = this.bb!.__offset(this.bb_pos, 18); - return offset ? this.bb!.readInt16(this.bb_pos + offset) : null; -} - -defaultI16():number { - const offset = this.bb!.__offset(this.bb_pos, 20); - return offset ? this.bb!.readInt16(this.bb_pos + offset) : 42; -} - -justU16():number { - const offset = this.bb!.__offset(this.bb_pos, 22); - return offset ? this.bb!.readUint16(this.bb_pos + offset) : 0; -} - -maybeU16():number|null { - const offset = this.bb!.__offset(this.bb_pos, 24); - return offset ? this.bb!.readUint16(this.bb_pos + offset) : null; -} - -defaultU16():number { - const offset = this.bb!.__offset(this.bb_pos, 26); - return offset ? this.bb!.readUint16(this.bb_pos + offset) : 42; -} - -justI32():number { - const offset = this.bb!.__offset(this.bb_pos, 28); - return offset ? this.bb!.readInt32(this.bb_pos + offset) : 0; -} - -maybeI32():number|null { - const offset = this.bb!.__offset(this.bb_pos, 30); - return offset ? this.bb!.readInt32(this.bb_pos + offset) : null; -} - -defaultI32():number { - const offset = this.bb!.__offset(this.bb_pos, 32); - return offset ? this.bb!.readInt32(this.bb_pos + offset) : 42; -} - -justU32():number { - const offset = this.bb!.__offset(this.bb_pos, 34); - return offset ? this.bb!.readUint32(this.bb_pos + offset) : 0; -} - -maybeU32():number|null { - const offset = this.bb!.__offset(this.bb_pos, 36); - return offset ? this.bb!.readUint32(this.bb_pos + offset) : null; -} - -defaultU32():number { - const offset = this.bb!.__offset(this.bb_pos, 38); - return offset ? this.bb!.readUint32(this.bb_pos + offset) : 42; -} - -justI64():bigint { - const offset = this.bb!.__offset(this.bb_pos, 40); - return offset ? this.bb!.readInt64(this.bb_pos + offset) : BigInt('0'); -} - -maybeI64():bigint|null { - const offset = this.bb!.__offset(this.bb_pos, 42); - return offset ? this.bb!.readInt64(this.bb_pos + offset) : null; -} - -defaultI64():bigint { - const offset = this.bb!.__offset(this.bb_pos, 44); - return offset ? this.bb!.readInt64(this.bb_pos + offset) : BigInt('42'); -} - -justU64():bigint { - const offset = this.bb!.__offset(this.bb_pos, 46); - return offset ? this.bb!.readUint64(this.bb_pos + offset) : BigInt('0'); -} - -maybeU64():bigint|null { - const offset = this.bb!.__offset(this.bb_pos, 48); - return offset ? this.bb!.readUint64(this.bb_pos + offset) : null; -} - -defaultU64():bigint { - const offset = this.bb!.__offset(this.bb_pos, 50); - return offset ? this.bb!.readUint64(this.bb_pos + offset) : BigInt('42'); -} - -justF32():number { - const offset = this.bb!.__offset(this.bb_pos, 52); - return offset ? this.bb!.readFloat32(this.bb_pos + offset) : 0.0; -} - -maybeF32():number|null { - const offset = this.bb!.__offset(this.bb_pos, 54); - return offset ? this.bb!.readFloat32(this.bb_pos + offset) : null; -} - -defaultF32():number { - const offset = this.bb!.__offset(this.bb_pos, 56); - return offset ? this.bb!.readFloat32(this.bb_pos + offset) : 42.0; -} - -justF64():number { - const offset = this.bb!.__offset(this.bb_pos, 58); - return offset ? this.bb!.readFloat64(this.bb_pos + offset) : 0.0; -} - -maybeF64():number|null { - const offset = this.bb!.__offset(this.bb_pos, 60); - return offset ? this.bb!.readFloat64(this.bb_pos + offset) : null; -} - -defaultF64():number { - const offset = this.bb!.__offset(this.bb_pos, 62); - return offset ? this.bb!.readFloat64(this.bb_pos + offset) : 42.0; -} - -justBool():boolean { - const offset = this.bb!.__offset(this.bb_pos, 64); - return offset ? !!this.bb!.readInt8(this.bb_pos + offset) : false; -} - -maybeBool():boolean|null { - const offset = this.bb!.__offset(this.bb_pos, 66); - return offset ? !!this.bb!.readInt8(this.bb_pos + offset) : null; -} - -defaultBool():boolean { - const offset = this.bb!.__offset(this.bb_pos, 68); - return offset ? !!this.bb!.readInt8(this.bb_pos + offset) : true; -} - -justEnum():OptionalByte { - const offset = this.bb!.__offset(this.bb_pos, 70); - return offset ? this.bb!.readInt8(this.bb_pos + offset) : OptionalByte.None; -} - -maybeEnum():OptionalByte|null { - const offset = this.bb!.__offset(this.bb_pos, 72); - return offset ? this.bb!.readInt8(this.bb_pos + offset) : null; -} - -defaultEnum():OptionalByte { - const offset = this.bb!.__offset(this.bb_pos, 74); - return offset ? this.bb!.readInt8(this.bb_pos + offset) : OptionalByte.One; -} - -static startScalarStuff(builder:flatbuffers.Builder) { - builder.startObject(36); -} - -static addJustI8(builder:flatbuffers.Builder, justI8:number) { - builder.addFieldInt8(0, justI8, 0); -} - -static addMaybeI8(builder:flatbuffers.Builder, maybeI8:number) { - builder.addFieldInt8(1, maybeI8, 0); -} - -static addDefaultI8(builder:flatbuffers.Builder, defaultI8:number) { - builder.addFieldInt8(2, defaultI8, 42); -} - -static addJustU8(builder:flatbuffers.Builder, justU8:number) { - builder.addFieldInt8(3, justU8, 0); -} - -static addMaybeU8(builder:flatbuffers.Builder, maybeU8:number) { - builder.addFieldInt8(4, maybeU8, 0); -} - -static addDefaultU8(builder:flatbuffers.Builder, defaultU8:number) { - builder.addFieldInt8(5, defaultU8, 42); -} - -static addJustI16(builder:flatbuffers.Builder, justI16:number) { - builder.addFieldInt16(6, justI16, 0); -} - -static addMaybeI16(builder:flatbuffers.Builder, maybeI16:number) { - builder.addFieldInt16(7, maybeI16, 0); -} - -static addDefaultI16(builder:flatbuffers.Builder, defaultI16:number) { - builder.addFieldInt16(8, defaultI16, 42); -} - -static addJustU16(builder:flatbuffers.Builder, justU16:number) { - builder.addFieldInt16(9, justU16, 0); -} - -static addMaybeU16(builder:flatbuffers.Builder, maybeU16:number) { - builder.addFieldInt16(10, maybeU16, 0); -} - -static addDefaultU16(builder:flatbuffers.Builder, defaultU16:number) { - builder.addFieldInt16(11, defaultU16, 42); -} - -static addJustI32(builder:flatbuffers.Builder, justI32:number) { - builder.addFieldInt32(12, justI32, 0); -} - -static addMaybeI32(builder:flatbuffers.Builder, maybeI32:number) { - builder.addFieldInt32(13, maybeI32, 0); -} - -static addDefaultI32(builder:flatbuffers.Builder, defaultI32:number) { - builder.addFieldInt32(14, defaultI32, 42); -} - -static addJustU32(builder:flatbuffers.Builder, justU32:number) { - builder.addFieldInt32(15, justU32, 0); -} - -static addMaybeU32(builder:flatbuffers.Builder, maybeU32:number) { - builder.addFieldInt32(16, maybeU32, 0); -} - -static addDefaultU32(builder:flatbuffers.Builder, defaultU32:number) { - builder.addFieldInt32(17, defaultU32, 42); -} - -static addJustI64(builder:flatbuffers.Builder, justI64:bigint) { - builder.addFieldInt64(18, justI64, BigInt('0')); -} - -static addMaybeI64(builder:flatbuffers.Builder, maybeI64:bigint) { - builder.addFieldInt64(19, maybeI64, BigInt(0)); -} - -static addDefaultI64(builder:flatbuffers.Builder, defaultI64:bigint) { - builder.addFieldInt64(20, defaultI64, BigInt('42')); -} - -static addJustU64(builder:flatbuffers.Builder, justU64:bigint) { - builder.addFieldInt64(21, justU64, BigInt('0')); -} - -static addMaybeU64(builder:flatbuffers.Builder, maybeU64:bigint) { - builder.addFieldInt64(22, maybeU64, BigInt(0)); -} - -static addDefaultU64(builder:flatbuffers.Builder, defaultU64:bigint) { - builder.addFieldInt64(23, defaultU64, BigInt('42')); -} - -static addJustF32(builder:flatbuffers.Builder, justF32:number) { - builder.addFieldFloat32(24, justF32, 0.0); -} - -static addMaybeF32(builder:flatbuffers.Builder, maybeF32:number) { - builder.addFieldFloat32(25, maybeF32, 0); -} - -static addDefaultF32(builder:flatbuffers.Builder, defaultF32:number) { - builder.addFieldFloat32(26, defaultF32, 42.0); -} - -static addJustF64(builder:flatbuffers.Builder, justF64:number) { - builder.addFieldFloat64(27, justF64, 0.0); -} - -static addMaybeF64(builder:flatbuffers.Builder, maybeF64:number) { - builder.addFieldFloat64(28, maybeF64, 0); -} - -static addDefaultF64(builder:flatbuffers.Builder, defaultF64:number) { - builder.addFieldFloat64(29, defaultF64, 42.0); -} - -static addJustBool(builder:flatbuffers.Builder, justBool:boolean) { - builder.addFieldInt8(30, +justBool, +false); -} - -static addMaybeBool(builder:flatbuffers.Builder, maybeBool:boolean) { - builder.addFieldInt8(31, +maybeBool, 0); -} - -static addDefaultBool(builder:flatbuffers.Builder, defaultBool:boolean) { - builder.addFieldInt8(32, +defaultBool, +true); -} - -static addJustEnum(builder:flatbuffers.Builder, justEnum:OptionalByte) { - builder.addFieldInt8(33, justEnum, OptionalByte.None); -} - -static addMaybeEnum(builder:flatbuffers.Builder, maybeEnum:OptionalByte) { - builder.addFieldInt8(34, maybeEnum, 0); -} - -static addDefaultEnum(builder:flatbuffers.Builder, defaultEnum:OptionalByte) { - builder.addFieldInt8(35, defaultEnum, OptionalByte.One); -} - -static endScalarStuff(builder:flatbuffers.Builder):flatbuffers.Offset { - const offset = builder.endObject(); - return offset; -} - -static finishScalarStuffBuffer(builder:flatbuffers.Builder, offset:flatbuffers.Offset) { - builder.finish(offset, 'NULL'); -} - -static finishSizePrefixedScalarStuffBuffer(builder:flatbuffers.Builder, offset:flatbuffers.Offset) { - builder.finish(offset, 'NULL', true); -} - -static createScalarStuff(builder:flatbuffers.Builder, justI8:number, maybeI8:number|null, defaultI8:number, justU8:number, maybeU8:number|null, defaultU8:number, justI16:number, maybeI16:number|null, defaultI16:number, justU16:number, maybeU16:number|null, defaultU16:number, justI32:number, maybeI32:number|null, defaultI32:number, justU32:number, maybeU32:number|null, defaultU32:number, justI64:bigint, maybeI64:bigint|null, defaultI64:bigint, justU64:bigint, maybeU64:bigint|null, defaultU64:bigint, justF32:number, maybeF32:number|null, defaultF32:number, justF64:number, maybeF64:number|null, defaultF64:number, justBool:boolean, maybeBool:boolean|null, defaultBool:boolean, justEnum:OptionalByte, maybeEnum:OptionalByte|null, defaultEnum:OptionalByte):flatbuffers.Offset { - ScalarStuff.startScalarStuff(builder); - ScalarStuff.addJustI8(builder, justI8); - if (maybeI8 !== null) - ScalarStuff.addMaybeI8(builder, maybeI8); - ScalarStuff.addDefaultI8(builder, defaultI8); - ScalarStuff.addJustU8(builder, justU8); - if (maybeU8 !== null) - ScalarStuff.addMaybeU8(builder, maybeU8); - ScalarStuff.addDefaultU8(builder, defaultU8); - ScalarStuff.addJustI16(builder, justI16); - if (maybeI16 !== null) - ScalarStuff.addMaybeI16(builder, maybeI16); - ScalarStuff.addDefaultI16(builder, defaultI16); - ScalarStuff.addJustU16(builder, justU16); - if (maybeU16 !== null) - ScalarStuff.addMaybeU16(builder, maybeU16); - ScalarStuff.addDefaultU16(builder, defaultU16); - ScalarStuff.addJustI32(builder, justI32); - if (maybeI32 !== null) - ScalarStuff.addMaybeI32(builder, maybeI32); - ScalarStuff.addDefaultI32(builder, defaultI32); - ScalarStuff.addJustU32(builder, justU32); - if (maybeU32 !== null) - ScalarStuff.addMaybeU32(builder, maybeU32); - ScalarStuff.addDefaultU32(builder, defaultU32); - ScalarStuff.addJustI64(builder, justI64); - if (maybeI64 !== null) - ScalarStuff.addMaybeI64(builder, maybeI64); - ScalarStuff.addDefaultI64(builder, defaultI64); - ScalarStuff.addJustU64(builder, justU64); - if (maybeU64 !== null) - ScalarStuff.addMaybeU64(builder, maybeU64); - ScalarStuff.addDefaultU64(builder, defaultU64); - ScalarStuff.addJustF32(builder, justF32); - if (maybeF32 !== null) - ScalarStuff.addMaybeF32(builder, maybeF32); - ScalarStuff.addDefaultF32(builder, defaultF32); - ScalarStuff.addJustF64(builder, justF64); - if (maybeF64 !== null) - ScalarStuff.addMaybeF64(builder, maybeF64); - ScalarStuff.addDefaultF64(builder, defaultF64); - ScalarStuff.addJustBool(builder, justBool); - if (maybeBool !== null) - ScalarStuff.addMaybeBool(builder, maybeBool); - ScalarStuff.addDefaultBool(builder, defaultBool); - ScalarStuff.addJustEnum(builder, justEnum); - if (maybeEnum !== null) - ScalarStuff.addMaybeEnum(builder, maybeEnum); - ScalarStuff.addDefaultEnum(builder, defaultEnum); - return ScalarStuff.endScalarStuff(builder); -} -} diff --git a/tests/optional_scalars/optional-byte.js b/tests/optional_scalars/optional-byte.js deleted file mode 100644 index 8257f93a46..0000000000 --- a/tests/optional_scalars/optional-byte.js +++ /dev/null @@ -1,7 +0,0 @@ -// automatically generated by the FlatBuffers compiler, do not modify -export var OptionalByte; -(function (OptionalByte) { - OptionalByte[OptionalByte["None"] = 0] = "None"; - OptionalByte[OptionalByte["One"] = 1] = "One"; - OptionalByte[OptionalByte["Two"] = 2] = "Two"; -})(OptionalByte || (OptionalByte = {})); diff --git a/tests/optional_scalars/optional-byte.ts b/tests/optional_scalars/optional-byte.ts deleted file mode 100644 index 1db479f1a5..0000000000 --- a/tests/optional_scalars/optional-byte.ts +++ /dev/null @@ -1,8 +0,0 @@ -// automatically generated by the FlatBuffers compiler, do not modify - -export enum OptionalByte{ - None = 0, - One = 1, - Two = 2 -} - diff --git a/tests/optional_scalars/scalar-stuff.js b/tests/optional_scalars/scalar-stuff.js deleted file mode 100644 index f02b885ad6..0000000000 --- a/tests/optional_scalars/scalar-stuff.js +++ /dev/null @@ -1,341 +0,0 @@ -// automatically generated by the FlatBuffers compiler, do not modify -import * as flatbuffers from 'flatbuffers'; -import { OptionalByte } from '../optional_scalars/optional-byte'; -export class ScalarStuff { - constructor() { - this.bb = null; - this.bb_pos = 0; - } - __init(i, bb) { - this.bb_pos = i; - this.bb = bb; - return this; - } - static getRootAsScalarStuff(bb, obj) { - return (obj || new ScalarStuff()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - static getSizePrefixedRootAsScalarStuff(bb, obj) { - bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH); - return (obj || new ScalarStuff()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - static bufferHasIdentifier(bb) { - return bb.__has_identifier('NULL'); - } - justI8() { - const offset = this.bb.__offset(this.bb_pos, 4); - return offset ? this.bb.readInt8(this.bb_pos + offset) : 0; - } - maybeI8() { - const offset = this.bb.__offset(this.bb_pos, 6); - return offset ? this.bb.readInt8(this.bb_pos + offset) : null; - } - defaultI8() { - const offset = this.bb.__offset(this.bb_pos, 8); - return offset ? this.bb.readInt8(this.bb_pos + offset) : 42; - } - justU8() { - const offset = this.bb.__offset(this.bb_pos, 10); - return offset ? this.bb.readUint8(this.bb_pos + offset) : 0; - } - maybeU8() { - const offset = this.bb.__offset(this.bb_pos, 12); - return offset ? this.bb.readUint8(this.bb_pos + offset) : null; - } - defaultU8() { - const offset = this.bb.__offset(this.bb_pos, 14); - return offset ? this.bb.readUint8(this.bb_pos + offset) : 42; - } - justI16() { - const offset = this.bb.__offset(this.bb_pos, 16); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; - } - maybeI16() { - const offset = this.bb.__offset(this.bb_pos, 18); - return offset ? this.bb.readInt16(this.bb_pos + offset) : null; - } - defaultI16() { - const offset = this.bb.__offset(this.bb_pos, 20); - return offset ? this.bb.readInt16(this.bb_pos + offset) : 42; - } - justU16() { - const offset = this.bb.__offset(this.bb_pos, 22); - return offset ? this.bb.readUint16(this.bb_pos + offset) : 0; - } - maybeU16() { - const offset = this.bb.__offset(this.bb_pos, 24); - return offset ? this.bb.readUint16(this.bb_pos + offset) : null; - } - defaultU16() { - const offset = this.bb.__offset(this.bb_pos, 26); - return offset ? this.bb.readUint16(this.bb_pos + offset) : 42; - } - justI32() { - const offset = this.bb.__offset(this.bb_pos, 28); - return offset ? this.bb.readInt32(this.bb_pos + offset) : 0; - } - maybeI32() { - const offset = this.bb.__offset(this.bb_pos, 30); - return offset ? this.bb.readInt32(this.bb_pos + offset) : null; - } - defaultI32() { - const offset = this.bb.__offset(this.bb_pos, 32); - return offset ? this.bb.readInt32(this.bb_pos + offset) : 42; - } - justU32() { - const offset = this.bb.__offset(this.bb_pos, 34); - return offset ? this.bb.readUint32(this.bb_pos + offset) : 0; - } - maybeU32() { - const offset = this.bb.__offset(this.bb_pos, 36); - return offset ? this.bb.readUint32(this.bb_pos + offset) : null; - } - defaultU32() { - const offset = this.bb.__offset(this.bb_pos, 38); - return offset ? this.bb.readUint32(this.bb_pos + offset) : 42; - } - justI64() { - const offset = this.bb.__offset(this.bb_pos, 40); - return offset ? this.bb.readInt64(this.bb_pos + offset) : BigInt('0'); - } - maybeI64() { - const offset = this.bb.__offset(this.bb_pos, 42); - return offset ? this.bb.readInt64(this.bb_pos + offset) : null; - } - defaultI64() { - const offset = this.bb.__offset(this.bb_pos, 44); - return offset ? this.bb.readInt64(this.bb_pos + offset) : BigInt('42'); - } - justU64() { - const offset = this.bb.__offset(this.bb_pos, 46); - return offset ? this.bb.readUint64(this.bb_pos + offset) : BigInt('0'); - } - maybeU64() { - const offset = this.bb.__offset(this.bb_pos, 48); - return offset ? this.bb.readUint64(this.bb_pos + offset) : null; - } - defaultU64() { - const offset = this.bb.__offset(this.bb_pos, 50); - return offset ? this.bb.readUint64(this.bb_pos + offset) : BigInt('42'); - } - justF32() { - const offset = this.bb.__offset(this.bb_pos, 52); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0.0; - } - maybeF32() { - const offset = this.bb.__offset(this.bb_pos, 54); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : null; - } - defaultF32() { - const offset = this.bb.__offset(this.bb_pos, 56); - return offset ? this.bb.readFloat32(this.bb_pos + offset) : 42.0; - } - justF64() { - const offset = this.bb.__offset(this.bb_pos, 58); - return offset ? this.bb.readFloat64(this.bb_pos + offset) : 0.0; - } - maybeF64() { - const offset = this.bb.__offset(this.bb_pos, 60); - return offset ? this.bb.readFloat64(this.bb_pos + offset) : null; - } - defaultF64() { - const offset = this.bb.__offset(this.bb_pos, 62); - return offset ? this.bb.readFloat64(this.bb_pos + offset) : 42.0; - } - justBool() { - const offset = this.bb.__offset(this.bb_pos, 64); - return offset ? !!this.bb.readInt8(this.bb_pos + offset) : false; - } - maybeBool() { - const offset = this.bb.__offset(this.bb_pos, 66); - return offset ? !!this.bb.readInt8(this.bb_pos + offset) : null; - } - defaultBool() { - const offset = this.bb.__offset(this.bb_pos, 68); - return offset ? !!this.bb.readInt8(this.bb_pos + offset) : true; - } - justEnum() { - const offset = this.bb.__offset(this.bb_pos, 70); - return offset ? this.bb.readInt8(this.bb_pos + offset) : OptionalByte.None; - } - maybeEnum() { - const offset = this.bb.__offset(this.bb_pos, 72); - return offset ? this.bb.readInt8(this.bb_pos + offset) : null; - } - defaultEnum() { - const offset = this.bb.__offset(this.bb_pos, 74); - return offset ? this.bb.readInt8(this.bb_pos + offset) : OptionalByte.One; - } - static startScalarStuff(builder) { - builder.startObject(36); - } - static addJustI8(builder, justI8) { - builder.addFieldInt8(0, justI8, 0); - } - static addMaybeI8(builder, maybeI8) { - builder.addFieldInt8(1, maybeI8, 0); - } - static addDefaultI8(builder, defaultI8) { - builder.addFieldInt8(2, defaultI8, 42); - } - static addJustU8(builder, justU8) { - builder.addFieldInt8(3, justU8, 0); - } - static addMaybeU8(builder, maybeU8) { - builder.addFieldInt8(4, maybeU8, 0); - } - static addDefaultU8(builder, defaultU8) { - builder.addFieldInt8(5, defaultU8, 42); - } - static addJustI16(builder, justI16) { - builder.addFieldInt16(6, justI16, 0); - } - static addMaybeI16(builder, maybeI16) { - builder.addFieldInt16(7, maybeI16, 0); - } - static addDefaultI16(builder, defaultI16) { - builder.addFieldInt16(8, defaultI16, 42); - } - static addJustU16(builder, justU16) { - builder.addFieldInt16(9, justU16, 0); - } - static addMaybeU16(builder, maybeU16) { - builder.addFieldInt16(10, maybeU16, 0); - } - static addDefaultU16(builder, defaultU16) { - builder.addFieldInt16(11, defaultU16, 42); - } - static addJustI32(builder, justI32) { - builder.addFieldInt32(12, justI32, 0); - } - static addMaybeI32(builder, maybeI32) { - builder.addFieldInt32(13, maybeI32, 0); - } - static addDefaultI32(builder, defaultI32) { - builder.addFieldInt32(14, defaultI32, 42); - } - static addJustU32(builder, justU32) { - builder.addFieldInt32(15, justU32, 0); - } - static addMaybeU32(builder, maybeU32) { - builder.addFieldInt32(16, maybeU32, 0); - } - static addDefaultU32(builder, defaultU32) { - builder.addFieldInt32(17, defaultU32, 42); - } - static addJustI64(builder, justI64) { - builder.addFieldInt64(18, justI64, BigInt('0')); - } - static addMaybeI64(builder, maybeI64) { - builder.addFieldInt64(19, maybeI64, BigInt(0)); - } - static addDefaultI64(builder, defaultI64) { - builder.addFieldInt64(20, defaultI64, BigInt('42')); - } - static addJustU64(builder, justU64) { - builder.addFieldInt64(21, justU64, BigInt('0')); - } - static addMaybeU64(builder, maybeU64) { - builder.addFieldInt64(22, maybeU64, BigInt(0)); - } - static addDefaultU64(builder, defaultU64) { - builder.addFieldInt64(23, defaultU64, BigInt('42')); - } - static addJustF32(builder, justF32) { - builder.addFieldFloat32(24, justF32, 0.0); - } - static addMaybeF32(builder, maybeF32) { - builder.addFieldFloat32(25, maybeF32, 0); - } - static addDefaultF32(builder, defaultF32) { - builder.addFieldFloat32(26, defaultF32, 42.0); - } - static addJustF64(builder, justF64) { - builder.addFieldFloat64(27, justF64, 0.0); - } - static addMaybeF64(builder, maybeF64) { - builder.addFieldFloat64(28, maybeF64, 0); - } - static addDefaultF64(builder, defaultF64) { - builder.addFieldFloat64(29, defaultF64, 42.0); - } - static addJustBool(builder, justBool) { - builder.addFieldInt8(30, +justBool, +false); - } - static addMaybeBool(builder, maybeBool) { - builder.addFieldInt8(31, +maybeBool, 0); - } - static addDefaultBool(builder, defaultBool) { - builder.addFieldInt8(32, +defaultBool, +true); - } - static addJustEnum(builder, justEnum) { - builder.addFieldInt8(33, justEnum, OptionalByte.None); - } - static addMaybeEnum(builder, maybeEnum) { - builder.addFieldInt8(34, maybeEnum, 0); - } - static addDefaultEnum(builder, defaultEnum) { - builder.addFieldInt8(35, defaultEnum, OptionalByte.One); - } - static endScalarStuff(builder) { - const offset = builder.endObject(); - return offset; - } - static finishScalarStuffBuffer(builder, offset) { - builder.finish(offset, 'NULL'); - } - static finishSizePrefixedScalarStuffBuffer(builder, offset) { - builder.finish(offset, 'NULL', true); - } - static createScalarStuff(builder, justI8, maybeI8, defaultI8, justU8, maybeU8, defaultU8, justI16, maybeI16, defaultI16, justU16, maybeU16, defaultU16, justI32, maybeI32, defaultI32, justU32, maybeU32, defaultU32, justI64, maybeI64, defaultI64, justU64, maybeU64, defaultU64, justF32, maybeF32, defaultF32, justF64, maybeF64, defaultF64, justBool, maybeBool, defaultBool, justEnum, maybeEnum, defaultEnum) { - ScalarStuff.startScalarStuff(builder); - ScalarStuff.addJustI8(builder, justI8); - if (maybeI8 !== null) - ScalarStuff.addMaybeI8(builder, maybeI8); - ScalarStuff.addDefaultI8(builder, defaultI8); - ScalarStuff.addJustU8(builder, justU8); - if (maybeU8 !== null) - ScalarStuff.addMaybeU8(builder, maybeU8); - ScalarStuff.addDefaultU8(builder, defaultU8); - ScalarStuff.addJustI16(builder, justI16); - if (maybeI16 !== null) - ScalarStuff.addMaybeI16(builder, maybeI16); - ScalarStuff.addDefaultI16(builder, defaultI16); - ScalarStuff.addJustU16(builder, justU16); - if (maybeU16 !== null) - ScalarStuff.addMaybeU16(builder, maybeU16); - ScalarStuff.addDefaultU16(builder, defaultU16); - ScalarStuff.addJustI32(builder, justI32); - if (maybeI32 !== null) - ScalarStuff.addMaybeI32(builder, maybeI32); - ScalarStuff.addDefaultI32(builder, defaultI32); - ScalarStuff.addJustU32(builder, justU32); - if (maybeU32 !== null) - ScalarStuff.addMaybeU32(builder, maybeU32); - ScalarStuff.addDefaultU32(builder, defaultU32); - ScalarStuff.addJustI64(builder, justI64); - if (maybeI64 !== null) - ScalarStuff.addMaybeI64(builder, maybeI64); - ScalarStuff.addDefaultI64(builder, defaultI64); - ScalarStuff.addJustU64(builder, justU64); - if (maybeU64 !== null) - ScalarStuff.addMaybeU64(builder, maybeU64); - ScalarStuff.addDefaultU64(builder, defaultU64); - ScalarStuff.addJustF32(builder, justF32); - if (maybeF32 !== null) - ScalarStuff.addMaybeF32(builder, maybeF32); - ScalarStuff.addDefaultF32(builder, defaultF32); - ScalarStuff.addJustF64(builder, justF64); - if (maybeF64 !== null) - ScalarStuff.addMaybeF64(builder, maybeF64); - ScalarStuff.addDefaultF64(builder, defaultF64); - ScalarStuff.addJustBool(builder, justBool); - if (maybeBool !== null) - ScalarStuff.addMaybeBool(builder, maybeBool); - ScalarStuff.addDefaultBool(builder, defaultBool); - ScalarStuff.addJustEnum(builder, justEnum); - if (maybeEnum !== null) - ScalarStuff.addMaybeEnum(builder, maybeEnum); - ScalarStuff.addDefaultEnum(builder, defaultEnum); - return ScalarStuff.endScalarStuff(builder); - } -} diff --git a/tests/optional_scalars/scalar-stuff.ts b/tests/optional_scalars/scalar-stuff.ts deleted file mode 100644 index 38d7cccb99..0000000000 --- a/tests/optional_scalars/scalar-stuff.ts +++ /dev/null @@ -1,423 +0,0 @@ -// automatically generated by the FlatBuffers compiler, do not modify - -import * as flatbuffers from 'flatbuffers'; - -import { OptionalByte } from '../optional_scalars/optional-byte'; - - -export class ScalarStuff { - bb: flatbuffers.ByteBuffer|null = null; - bb_pos = 0; -__init(i:number, bb:flatbuffers.ByteBuffer):ScalarStuff { - this.bb_pos = i; - this.bb = bb; - return this; -} - -static getRootAsScalarStuff(bb:flatbuffers.ByteBuffer, obj?:ScalarStuff):ScalarStuff { - return (obj || new ScalarStuff()).__init(bb.readInt32(bb.position()) + bb.position(), bb); -} - -static getSizePrefixedRootAsScalarStuff(bb:flatbuffers.ByteBuffer, obj?:ScalarStuff):ScalarStuff { - bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH); - return (obj || new ScalarStuff()).__init(bb.readInt32(bb.position()) + bb.position(), bb); -} - -static bufferHasIdentifier(bb:flatbuffers.ByteBuffer):boolean { - return bb.__has_identifier('NULL'); -} - -justI8():number { - const offset = this.bb!.__offset(this.bb_pos, 4); - return offset ? this.bb!.readInt8(this.bb_pos + offset) : 0; -} - -maybeI8():number|null { - const offset = this.bb!.__offset(this.bb_pos, 6); - return offset ? this.bb!.readInt8(this.bb_pos + offset) : null; -} - -defaultI8():number { - const offset = this.bb!.__offset(this.bb_pos, 8); - return offset ? this.bb!.readInt8(this.bb_pos + offset) : 42; -} - -justU8():number { - const offset = this.bb!.__offset(this.bb_pos, 10); - return offset ? this.bb!.readUint8(this.bb_pos + offset) : 0; -} - -maybeU8():number|null { - const offset = this.bb!.__offset(this.bb_pos, 12); - return offset ? this.bb!.readUint8(this.bb_pos + offset) : null; -} - -defaultU8():number { - const offset = this.bb!.__offset(this.bb_pos, 14); - return offset ? this.bb!.readUint8(this.bb_pos + offset) : 42; -} - -justI16():number { - const offset = this.bb!.__offset(this.bb_pos, 16); - return offset ? this.bb!.readInt16(this.bb_pos + offset) : 0; -} - -maybeI16():number|null { - const offset = this.bb!.__offset(this.bb_pos, 18); - return offset ? this.bb!.readInt16(this.bb_pos + offset) : null; -} - -defaultI16():number { - const offset = this.bb!.__offset(this.bb_pos, 20); - return offset ? this.bb!.readInt16(this.bb_pos + offset) : 42; -} - -justU16():number { - const offset = this.bb!.__offset(this.bb_pos, 22); - return offset ? this.bb!.readUint16(this.bb_pos + offset) : 0; -} - -maybeU16():number|null { - const offset = this.bb!.__offset(this.bb_pos, 24); - return offset ? this.bb!.readUint16(this.bb_pos + offset) : null; -} - -defaultU16():number { - const offset = this.bb!.__offset(this.bb_pos, 26); - return offset ? this.bb!.readUint16(this.bb_pos + offset) : 42; -} - -justI32():number { - const offset = this.bb!.__offset(this.bb_pos, 28); - return offset ? this.bb!.readInt32(this.bb_pos + offset) : 0; -} - -maybeI32():number|null { - const offset = this.bb!.__offset(this.bb_pos, 30); - return offset ? this.bb!.readInt32(this.bb_pos + offset) : null; -} - -defaultI32():number { - const offset = this.bb!.__offset(this.bb_pos, 32); - return offset ? this.bb!.readInt32(this.bb_pos + offset) : 42; -} - -justU32():number { - const offset = this.bb!.__offset(this.bb_pos, 34); - return offset ? this.bb!.readUint32(this.bb_pos + offset) : 0; -} - -maybeU32():number|null { - const offset = this.bb!.__offset(this.bb_pos, 36); - return offset ? this.bb!.readUint32(this.bb_pos + offset) : null; -} - -defaultU32():number { - const offset = this.bb!.__offset(this.bb_pos, 38); - return offset ? this.bb!.readUint32(this.bb_pos + offset) : 42; -} - -justI64():bigint { - const offset = this.bb!.__offset(this.bb_pos, 40); - return offset ? this.bb!.readInt64(this.bb_pos + offset) : BigInt('0'); -} - -maybeI64():bigint|null { - const offset = this.bb!.__offset(this.bb_pos, 42); - return offset ? this.bb!.readInt64(this.bb_pos + offset) : null; -} - -defaultI64():bigint { - const offset = this.bb!.__offset(this.bb_pos, 44); - return offset ? this.bb!.readInt64(this.bb_pos + offset) : BigInt('42'); -} - -justU64():bigint { - const offset = this.bb!.__offset(this.bb_pos, 46); - return offset ? this.bb!.readUint64(this.bb_pos + offset) : BigInt('0'); -} - -maybeU64():bigint|null { - const offset = this.bb!.__offset(this.bb_pos, 48); - return offset ? this.bb!.readUint64(this.bb_pos + offset) : null; -} - -defaultU64():bigint { - const offset = this.bb!.__offset(this.bb_pos, 50); - return offset ? this.bb!.readUint64(this.bb_pos + offset) : BigInt('42'); -} - -justF32():number { - const offset = this.bb!.__offset(this.bb_pos, 52); - return offset ? this.bb!.readFloat32(this.bb_pos + offset) : 0.0; -} - -maybeF32():number|null { - const offset = this.bb!.__offset(this.bb_pos, 54); - return offset ? this.bb!.readFloat32(this.bb_pos + offset) : null; -} - -defaultF32():number { - const offset = this.bb!.__offset(this.bb_pos, 56); - return offset ? this.bb!.readFloat32(this.bb_pos + offset) : 42.0; -} - -justF64():number { - const offset = this.bb!.__offset(this.bb_pos, 58); - return offset ? this.bb!.readFloat64(this.bb_pos + offset) : 0.0; -} - -maybeF64():number|null { - const offset = this.bb!.__offset(this.bb_pos, 60); - return offset ? this.bb!.readFloat64(this.bb_pos + offset) : null; -} - -defaultF64():number { - const offset = this.bb!.__offset(this.bb_pos, 62); - return offset ? this.bb!.readFloat64(this.bb_pos + offset) : 42.0; -} - -justBool():boolean { - const offset = this.bb!.__offset(this.bb_pos, 64); - return offset ? !!this.bb!.readInt8(this.bb_pos + offset) : false; -} - -maybeBool():boolean|null { - const offset = this.bb!.__offset(this.bb_pos, 66); - return offset ? !!this.bb!.readInt8(this.bb_pos + offset) : null; -} - -defaultBool():boolean { - const offset = this.bb!.__offset(this.bb_pos, 68); - return offset ? !!this.bb!.readInt8(this.bb_pos + offset) : true; -} - -justEnum():OptionalByte { - const offset = this.bb!.__offset(this.bb_pos, 70); - return offset ? this.bb!.readInt8(this.bb_pos + offset) : OptionalByte.None; -} - -maybeEnum():OptionalByte|null { - const offset = this.bb!.__offset(this.bb_pos, 72); - return offset ? this.bb!.readInt8(this.bb_pos + offset) : null; -} - -defaultEnum():OptionalByte { - const offset = this.bb!.__offset(this.bb_pos, 74); - return offset ? this.bb!.readInt8(this.bb_pos + offset) : OptionalByte.One; -} - -static startScalarStuff(builder:flatbuffers.Builder) { - builder.startObject(36); -} - -static addJustI8(builder:flatbuffers.Builder, justI8:number) { - builder.addFieldInt8(0, justI8, 0); -} - -static addMaybeI8(builder:flatbuffers.Builder, maybeI8:number) { - builder.addFieldInt8(1, maybeI8, 0); -} - -static addDefaultI8(builder:flatbuffers.Builder, defaultI8:number) { - builder.addFieldInt8(2, defaultI8, 42); -} - -static addJustU8(builder:flatbuffers.Builder, justU8:number) { - builder.addFieldInt8(3, justU8, 0); -} - -static addMaybeU8(builder:flatbuffers.Builder, maybeU8:number) { - builder.addFieldInt8(4, maybeU8, 0); -} - -static addDefaultU8(builder:flatbuffers.Builder, defaultU8:number) { - builder.addFieldInt8(5, defaultU8, 42); -} - -static addJustI16(builder:flatbuffers.Builder, justI16:number) { - builder.addFieldInt16(6, justI16, 0); -} - -static addMaybeI16(builder:flatbuffers.Builder, maybeI16:number) { - builder.addFieldInt16(7, maybeI16, 0); -} - -static addDefaultI16(builder:flatbuffers.Builder, defaultI16:number) { - builder.addFieldInt16(8, defaultI16, 42); -} - -static addJustU16(builder:flatbuffers.Builder, justU16:number) { - builder.addFieldInt16(9, justU16, 0); -} - -static addMaybeU16(builder:flatbuffers.Builder, maybeU16:number) { - builder.addFieldInt16(10, maybeU16, 0); -} - -static addDefaultU16(builder:flatbuffers.Builder, defaultU16:number) { - builder.addFieldInt16(11, defaultU16, 42); -} - -static addJustI32(builder:flatbuffers.Builder, justI32:number) { - builder.addFieldInt32(12, justI32, 0); -} - -static addMaybeI32(builder:flatbuffers.Builder, maybeI32:number) { - builder.addFieldInt32(13, maybeI32, 0); -} - -static addDefaultI32(builder:flatbuffers.Builder, defaultI32:number) { - builder.addFieldInt32(14, defaultI32, 42); -} - -static addJustU32(builder:flatbuffers.Builder, justU32:number) { - builder.addFieldInt32(15, justU32, 0); -} - -static addMaybeU32(builder:flatbuffers.Builder, maybeU32:number) { - builder.addFieldInt32(16, maybeU32, 0); -} - -static addDefaultU32(builder:flatbuffers.Builder, defaultU32:number) { - builder.addFieldInt32(17, defaultU32, 42); -} - -static addJustI64(builder:flatbuffers.Builder, justI64:bigint) { - builder.addFieldInt64(18, justI64, BigInt('0')); -} - -static addMaybeI64(builder:flatbuffers.Builder, maybeI64:bigint) { - builder.addFieldInt64(19, maybeI64, BigInt(0)); -} - -static addDefaultI64(builder:flatbuffers.Builder, defaultI64:bigint) { - builder.addFieldInt64(20, defaultI64, BigInt('42')); -} - -static addJustU64(builder:flatbuffers.Builder, justU64:bigint) { - builder.addFieldInt64(21, justU64, BigInt('0')); -} - -static addMaybeU64(builder:flatbuffers.Builder, maybeU64:bigint) { - builder.addFieldInt64(22, maybeU64, BigInt(0)); -} - -static addDefaultU64(builder:flatbuffers.Builder, defaultU64:bigint) { - builder.addFieldInt64(23, defaultU64, BigInt('42')); -} - -static addJustF32(builder:flatbuffers.Builder, justF32:number) { - builder.addFieldFloat32(24, justF32, 0.0); -} - -static addMaybeF32(builder:flatbuffers.Builder, maybeF32:number) { - builder.addFieldFloat32(25, maybeF32, 0); -} - -static addDefaultF32(builder:flatbuffers.Builder, defaultF32:number) { - builder.addFieldFloat32(26, defaultF32, 42.0); -} - -static addJustF64(builder:flatbuffers.Builder, justF64:number) { - builder.addFieldFloat64(27, justF64, 0.0); -} - -static addMaybeF64(builder:flatbuffers.Builder, maybeF64:number) { - builder.addFieldFloat64(28, maybeF64, 0); -} - -static addDefaultF64(builder:flatbuffers.Builder, defaultF64:number) { - builder.addFieldFloat64(29, defaultF64, 42.0); -} - -static addJustBool(builder:flatbuffers.Builder, justBool:boolean) { - builder.addFieldInt8(30, +justBool, +false); -} - -static addMaybeBool(builder:flatbuffers.Builder, maybeBool:boolean) { - builder.addFieldInt8(31, +maybeBool, 0); -} - -static addDefaultBool(builder:flatbuffers.Builder, defaultBool:boolean) { - builder.addFieldInt8(32, +defaultBool, +true); -} - -static addJustEnum(builder:flatbuffers.Builder, justEnum:OptionalByte) { - builder.addFieldInt8(33, justEnum, OptionalByte.None); -} - -static addMaybeEnum(builder:flatbuffers.Builder, maybeEnum:OptionalByte) { - builder.addFieldInt8(34, maybeEnum, 0); -} - -static addDefaultEnum(builder:flatbuffers.Builder, defaultEnum:OptionalByte) { - builder.addFieldInt8(35, defaultEnum, OptionalByte.One); -} - -static endScalarStuff(builder:flatbuffers.Builder):flatbuffers.Offset { - const offset = builder.endObject(); - return offset; -} - -static finishScalarStuffBuffer(builder:flatbuffers.Builder, offset:flatbuffers.Offset) { - builder.finish(offset, 'NULL'); -} - -static finishSizePrefixedScalarStuffBuffer(builder:flatbuffers.Builder, offset:flatbuffers.Offset) { - builder.finish(offset, 'NULL', true); -} - -static createScalarStuff(builder:flatbuffers.Builder, justI8:number, maybeI8:number|null, defaultI8:number, justU8:number, maybeU8:number|null, defaultU8:number, justI16:number, maybeI16:number|null, defaultI16:number, justU16:number, maybeU16:number|null, defaultU16:number, justI32:number, maybeI32:number|null, defaultI32:number, justU32:number, maybeU32:number|null, defaultU32:number, justI64:bigint, maybeI64:bigint|null, defaultI64:bigint, justU64:bigint, maybeU64:bigint|null, defaultU64:bigint, justF32:number, maybeF32:number|null, defaultF32:number, justF64:number, maybeF64:number|null, defaultF64:number, justBool:boolean, maybeBool:boolean|null, defaultBool:boolean, justEnum:OptionalByte, maybeEnum:OptionalByte|null, defaultEnum:OptionalByte):flatbuffers.Offset { - ScalarStuff.startScalarStuff(builder); - ScalarStuff.addJustI8(builder, justI8); - if (maybeI8 !== null) - ScalarStuff.addMaybeI8(builder, maybeI8); - ScalarStuff.addDefaultI8(builder, defaultI8); - ScalarStuff.addJustU8(builder, justU8); - if (maybeU8 !== null) - ScalarStuff.addMaybeU8(builder, maybeU8); - ScalarStuff.addDefaultU8(builder, defaultU8); - ScalarStuff.addJustI16(builder, justI16); - if (maybeI16 !== null) - ScalarStuff.addMaybeI16(builder, maybeI16); - ScalarStuff.addDefaultI16(builder, defaultI16); - ScalarStuff.addJustU16(builder, justU16); - if (maybeU16 !== null) - ScalarStuff.addMaybeU16(builder, maybeU16); - ScalarStuff.addDefaultU16(builder, defaultU16); - ScalarStuff.addJustI32(builder, justI32); - if (maybeI32 !== null) - ScalarStuff.addMaybeI32(builder, maybeI32); - ScalarStuff.addDefaultI32(builder, defaultI32); - ScalarStuff.addJustU32(builder, justU32); - if (maybeU32 !== null) - ScalarStuff.addMaybeU32(builder, maybeU32); - ScalarStuff.addDefaultU32(builder, defaultU32); - ScalarStuff.addJustI64(builder, justI64); - if (maybeI64 !== null) - ScalarStuff.addMaybeI64(builder, maybeI64); - ScalarStuff.addDefaultI64(builder, defaultI64); - ScalarStuff.addJustU64(builder, justU64); - if (maybeU64 !== null) - ScalarStuff.addMaybeU64(builder, maybeU64); - ScalarStuff.addDefaultU64(builder, defaultU64); - ScalarStuff.addJustF32(builder, justF32); - if (maybeF32 !== null) - ScalarStuff.addMaybeF32(builder, maybeF32); - ScalarStuff.addDefaultF32(builder, defaultF32); - ScalarStuff.addJustF64(builder, justF64); - if (maybeF64 !== null) - ScalarStuff.addMaybeF64(builder, maybeF64); - ScalarStuff.addDefaultF64(builder, defaultF64); - ScalarStuff.addJustBool(builder, justBool); - if (maybeBool !== null) - ScalarStuff.addMaybeBool(builder, maybeBool); - ScalarStuff.addDefaultBool(builder, defaultBool); - ScalarStuff.addJustEnum(builder, justEnum); - if (maybeEnum !== null) - ScalarStuff.addMaybeEnum(builder, maybeEnum); - ScalarStuff.addDefaultEnum(builder, defaultEnum); - return ScalarStuff.endScalarStuff(builder); -} -} diff --git a/tests/ts/JavaScriptComplexArraysTest.js b/tests/ts/JavaScriptComplexArraysTest.js index f8601edfbe..36469e577e 100644 --- a/tests/ts/JavaScriptComplexArraysTest.js +++ b/tests/ts/JavaScriptComplexArraysTest.js @@ -3,15 +3,12 @@ import assert from 'assert'; import { readFileSync, writeFileSync } from 'fs'; import * as flatbuffers from 'flatbuffers'; -import { - ArrayStructT, - ArrayTable, - ArrayTableT, - InnerStructT, - NestedStructT, - OuterStructT, - TestEnum, -} from './arrays_test_complex/arrays_test_complex_generated.js'; +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(); diff --git a/tests/ts/JavaScriptTestv1.cjs b/tests/ts/JavaScriptTestv1.cjs new file mode 100644 index 0000000000..6ca2727507 --- /dev/null +++ b/tests/ts/JavaScriptTestv1.cjs @@ -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(); \ No newline at end of file diff --git a/tests/ts/TypeScriptTest.py b/tests/ts/TypeScriptTest.py index 4a4ccb2ae3..de607983ea 100755 --- a/tests/ts/TypeScriptTest.py +++ b/tests/ts/TypeScriptTest.py @@ -44,6 +44,7 @@ def check_call(args, cwd=tests_path): # 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] @@ -54,17 +55,23 @@ def flatc(options, schema, prefix=None, include=None, data=None, cwd=tests_path) 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"]) -print("Invoking flatc...") flatc( - options=["--ts", "--reflect-names", "--gen-name-strings", "--gen-mutable", "--gen-object-api"], + 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"], @@ -74,10 +81,11 @@ def flatc(options, schema, prefix=None, include=None, data=None, cwd=tests_path) ) flatc( - options=["--ts", "--reflect-names", "--gen-name-strings", "--gen-mutable", "--gen-object-api"], + 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"], @@ -91,31 +99,14 @@ def flatc(options, schema, prefix=None, include=None, data=None, cwd=tests_path) ) flatc( - options=["--ts", "--reflect-names", "--gen-name-strings", "--gen-mutable", "--gen-object-api"], - schema=[ - "typescript_keywords.fbs", - "test_dir/typescript_include.fbs", - "test_dir/typescript_transitive_include.fbs", - "../../reflection/reflection.fbs", - ], - include="../../", -) - -flatc( - options=["--ts", "--reflect-names", "--ts-flat-files", "--gen-name-strings", "--gen-object-api"], + 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-flat-files", - ], + 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", @@ -124,15 +115,18 @@ def flatc(options, schema, prefix=None, include=None, data=None, cwd=tests_path) ], include="../../", ) +esbuild("typescript_keywords.ts", "typescript_keywords_generated.cjs") 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 + ["JavaScriptTestv1.cjs", "./monster_test_generated.cjs"]) check_call(NODE_CMD + ["JavaScriptUnionVectorTest"]) check_call(NODE_CMD + ["JavaScriptFlexBuffersTest"]) check_call(NODE_CMD + ["JavaScriptComplexArraysTest"]) -check_call(NODE_CMD + ["JavaScriptRequiredStringTest"]) diff --git a/tests/ts/arrays_test_complex/arrays_test_complex_generated.cjs b/tests/ts/arrays_test_complex/arrays_test_complex_generated.cjs new file mode 100644 index 0000000000..35f3db731b --- /dev/null +++ b/tests/ts/arrays_test_complex/arrays_test_complex_generated.cjs @@ -0,0 +1,451 @@ +"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( + 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, + ArrayTable: () => ArrayTable, + InnerStruct: () => InnerStruct, + NestedStruct: () => NestedStruct, + OuterStruct: () => OuterStruct, + 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 || (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 { + 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); + } +}; diff --git a/tests/ts/arrays_test_complex/arrays_test_complex_generated.js b/tests/ts/arrays_test_complex/arrays_test_complex_generated.js deleted file mode 100644 index f2811a1349..0000000000 --- a/tests/ts/arrays_test_complex/arrays_test_complex_generated.js +++ /dev/null @@ -1,409 +0,0 @@ -// automatically generated by the FlatBuffers compiler, do not modify -import * as flatbuffers from 'flatbuffers'; -export var TestEnum; -(function (TestEnum) { - TestEnum[TestEnum["A"] = 0] = "A"; - TestEnum[TestEnum["B"] = 1] = "B"; - TestEnum[TestEnum["C"] = 2] = "C"; -})(TestEnum || (TestEnum = {})); -export class InnerStruct { - constructor() { - this.bb = null; - this.bb_pos = 0; - } - __init(i, bb) { - this.bb_pos = i; - this.bb = bb; - return this; - } - a() { - return this.bb.readFloat64(this.bb_pos); - } - b(index) { - return this.bb.readUint8(this.bb_pos + 8 + index); - } - c() { - return this.bb.readInt8(this.bb_pos + 21); - } - dUnderscore() { - return this.bb.readInt64(this.bb_pos + 24); - } - static getFullyQualifiedName() { - return 'MyGame.Example.InnerStruct'; - } - static sizeOf() { - return 32; - } - static createInnerStruct(builder, a, b, c, d_underscore) { - var _a; - builder.prep(8, 32); - builder.writeInt64(BigInt(d_underscore !== null && d_underscore !== void 0 ? d_underscore : 0)); - builder.pad(2); - builder.writeInt8(c); - for (let i = 12; i >= 0; --i) { - builder.writeInt8(((_a = b === null || b === void 0 ? void 0 : b[i]) !== null && _a !== void 0 ? _a : 0)); - } - builder.writeFloat64(a); - return builder.offset(); - } - unpack() { - return new InnerStructT(this.a(), this.bb.createScalarList(this.b.bind(this), 13), this.c(), this.dUnderscore()); - } - unpackTo(_o) { - _o.a = this.a(); - _o.b = this.bb.createScalarList(this.b.bind(this), 13); - _o.c = this.c(); - _o.dUnderscore = this.dUnderscore(); - } -} -export class InnerStructT { - constructor(a = 0.0, b = [], c = 0, dUnderscore = BigInt('0')) { - this.a = a; - this.b = b; - this.c = c; - this.dUnderscore = dUnderscore; - } - pack(builder) { - return InnerStruct.createInnerStruct(builder, this.a, this.b, this.c, this.dUnderscore); - } -} -export class OuterStruct { - constructor() { - this.bb = null; - this.bb_pos = 0; - } - __init(i, bb) { - this.bb_pos = i; - this.bb = bb; - return this; - } - a() { - return !!this.bb.readInt8(this.bb_pos); - } - b() { - return this.bb.readFloat64(this.bb_pos + 8); - } - cUnderscore(obj) { - return (obj || new InnerStruct()).__init(this.bb_pos + 16, this.bb); - } - d(index, obj) { - return (obj || new InnerStruct()).__init(this.bb_pos + 48 + index * 32, this.bb); - } - e(obj) { - return (obj || new InnerStruct()).__init(this.bb_pos + 144, this.bb); - } - f(index) { - return this.bb.readFloat64(this.bb_pos + 176 + index * 8); - } - static getFullyQualifiedName() { - return 'MyGame.Example.OuterStruct'; - } - static sizeOf() { - return 208; - } - static createOuterStruct(builder, a, b, c_underscore_a, c_underscore_b, c_underscore_c, c_underscore_d_underscore, d, e_a, e_b, e_c, e_d_underscore, f) { - var _a, _b, _c; - builder.prep(8, 208); - for (let i = 3; i >= 0; --i) { - builder.writeFloat64(((_a = f === null || f === void 0 ? void 0 : f[i]) !== null && _a !== void 0 ? _a : 0)); - } - builder.prep(8, 32); - builder.writeInt64(BigInt(e_d_underscore !== null && e_d_underscore !== void 0 ? e_d_underscore : 0)); - builder.pad(2); - builder.writeInt8(e_c); - for (let i = 12; i >= 0; --i) { - builder.writeInt8(((_b = e_b === null || e_b === void 0 ? void 0 : e_b[i]) !== null && _b !== void 0 ? _b : 0)); - } - builder.writeFloat64(e_a); - for (let i = 2; i >= 0; --i) { - const item = d === null || d === void 0 ? void 0 : d[i]; - if (item instanceof InnerStructT) { - item.pack(builder); - continue; - } - InnerStruct.createInnerStruct(builder, item === null || item === void 0 ? void 0 : item.a, item === null || item === void 0 ? void 0 : item.b, item === null || item === void 0 ? void 0 : item.c, item === null || item === void 0 ? void 0 : item.dUnderscore); - } - builder.prep(8, 32); - builder.writeInt64(BigInt(c_underscore_d_underscore !== null && c_underscore_d_underscore !== void 0 ? c_underscore_d_underscore : 0)); - builder.pad(2); - builder.writeInt8(c_underscore_c); - for (let i = 12; i >= 0; --i) { - builder.writeInt8(((_c = c_underscore_b === null || c_underscore_b === void 0 ? void 0 : c_underscore_b[i]) !== null && _c !== void 0 ? _c : 0)); - } - builder.writeFloat64(c_underscore_a); - builder.writeFloat64(b); - builder.pad(7); - builder.writeInt8(Number(Boolean(a))); - return builder.offset(); - } - unpack() { - return new OuterStructT(this.a(), this.b(), (this.cUnderscore() !== null ? this.cUnderscore().unpack() : null), this.bb.createObjList(this.d.bind(this), 3), (this.e() !== null ? this.e().unpack() : null), this.bb.createScalarList(this.f.bind(this), 4)); - } - unpackTo(_o) { - _o.a = this.a(); - _o.b = this.b(); - _o.cUnderscore = (this.cUnderscore() !== null ? this.cUnderscore().unpack() : null); - _o.d = this.bb.createObjList(this.d.bind(this), 3); - _o.e = (this.e() !== null ? this.e().unpack() : null); - _o.f = this.bb.createScalarList(this.f.bind(this), 4); - } -} -export class OuterStructT { - constructor(a = false, b = 0.0, cUnderscore = null, d = [], e = null, f = []) { - this.a = a; - this.b = b; - this.cUnderscore = cUnderscore; - this.d = d; - this.e = e; - this.f = f; - } - pack(builder) { - var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _p, _q, _r, _s; - return OuterStruct.createOuterStruct(builder, this.a, this.b, ((_b = (_a = this.cUnderscore) === null || _a === void 0 ? void 0 : _a.a) !== null && _b !== void 0 ? _b : 0), ((_d = (_c = this.cUnderscore) === null || _c === void 0 ? void 0 : _c.b) !== null && _d !== void 0 ? _d : []), ((_f = (_e = this.cUnderscore) === null || _e === void 0 ? void 0 : _e.c) !== null && _f !== void 0 ? _f : 0), ((_h = (_g = this.cUnderscore) === null || _g === void 0 ? void 0 : _g.dUnderscore) !== null && _h !== void 0 ? _h : BigInt(0)), this.d, ((_k = (_j = this.e) === null || _j === void 0 ? void 0 : _j.a) !== null && _k !== void 0 ? _k : 0), ((_m = (_l = this.e) === null || _l === void 0 ? void 0 : _l.b) !== null && _m !== void 0 ? _m : []), ((_q = (_p = this.e) === null || _p === void 0 ? void 0 : _p.c) !== null && _q !== void 0 ? _q : 0), ((_s = (_r = this.e) === null || _r === void 0 ? void 0 : _r.dUnderscore) !== null && _s !== void 0 ? _s : BigInt(0)), this.f); - } -} -export class NestedStruct { - constructor() { - this.bb = null; - this.bb_pos = 0; - } - __init(i, bb) { - this.bb_pos = i; - this.bb = bb; - return this; - } - a(index) { - return this.bb.readInt32(this.bb_pos + 0 + index * 4); - } - b() { - return this.bb.readInt8(this.bb_pos + 8); - } - cUnderscore(index) { - return this.bb.readInt8(this.bb_pos + 9 + index); - } - dOuter(index, obj) { - return (obj || new OuterStruct()).__init(this.bb_pos + 16 + index * 208, this.bb); - } - e(index) { - return this.bb.readInt64(this.bb_pos + 1056 + index * 8); - } - static getFullyQualifiedName() { - return 'MyGame.Example.NestedStruct'; - } - static sizeOf() { - return 1072; - } - static createNestedStruct(builder, a, b, c_underscore, d_outer, e) { - var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _p, _q, _r, _s, _t, _u, _v; - builder.prep(8, 1072); - for (let i = 1; i >= 0; --i) { - builder.writeInt64(BigInt((_a = e === null || e === void 0 ? void 0 : e[i]) !== null && _a !== void 0 ? _a : 0)); - } - for (let i = 4; i >= 0; --i) { - const item = d_outer === null || d_outer === void 0 ? void 0 : d_outer[i]; - if (item instanceof OuterStructT) { - item.pack(builder); - continue; - } - OuterStruct.createOuterStruct(builder, item === null || item === void 0 ? void 0 : item.a, item === null || item === void 0 ? void 0 : item.b, ((_c = (_b = item === null || item === void 0 ? void 0 : item.cUnderscore) === null || _b === void 0 ? void 0 : _b.a) !== null && _c !== void 0 ? _c : 0), ((_e = (_d = item === null || item === void 0 ? void 0 : item.cUnderscore) === null || _d === void 0 ? void 0 : _d.b) !== null && _e !== void 0 ? _e : []), ((_g = (_f = item === null || item === void 0 ? void 0 : item.cUnderscore) === null || _f === void 0 ? void 0 : _f.c) !== null && _g !== void 0 ? _g : 0), ((_j = (_h = item === null || item === void 0 ? void 0 : item.cUnderscore) === null || _h === void 0 ? void 0 : _h.dUnderscore) !== null && _j !== void 0 ? _j : BigInt(0)), item === null || item === void 0 ? void 0 : item.d, ((_l = (_k = item === null || item === void 0 ? void 0 : item.e) === null || _k === void 0 ? void 0 : _k.a) !== null && _l !== void 0 ? _l : 0), ((_p = (_m = item === null || item === void 0 ? void 0 : item.e) === null || _m === void 0 ? void 0 : _m.b) !== null && _p !== void 0 ? _p : []), ((_r = (_q = item === null || item === void 0 ? void 0 : item.e) === null || _q === void 0 ? void 0 : _q.c) !== null && _r !== void 0 ? _r : 0), ((_t = (_s = item === null || item === void 0 ? void 0 : item.e) === null || _s === void 0 ? void 0 : _s.dUnderscore) !== null && _t !== void 0 ? _t : BigInt(0)), item === null || item === void 0 ? void 0 : item.f); - } - builder.pad(5); - for (let i = 1; i >= 0; --i) { - builder.writeInt8(((_u = c_underscore === null || c_underscore === void 0 ? void 0 : c_underscore[i]) !== null && _u !== void 0 ? _u : 0)); - } - builder.writeInt8(b); - for (let i = 1; i >= 0; --i) { - builder.writeInt32(((_v = a === null || a === void 0 ? void 0 : a[i]) !== null && _v !== void 0 ? _v : 0)); - } - return builder.offset(); - } - unpack() { - return new NestedStructT(this.bb.createScalarList(this.a.bind(this), 2), this.b(), this.bb.createScalarList(this.cUnderscore.bind(this), 2), this.bb.createObjList(this.dOuter.bind(this), 5), this.bb.createScalarList(this.e.bind(this), 2)); - } - unpackTo(_o) { - _o.a = this.bb.createScalarList(this.a.bind(this), 2); - _o.b = this.b(); - _o.cUnderscore = this.bb.createScalarList(this.cUnderscore.bind(this), 2); - _o.dOuter = this.bb.createObjList(this.dOuter.bind(this), 5); - _o.e = this.bb.createScalarList(this.e.bind(this), 2); - } -} -export class NestedStructT { - constructor(a = [], b = TestEnum.A, cUnderscore = [TestEnum.A, TestEnum.A], dOuter = [], e = []) { - this.a = a; - this.b = b; - this.cUnderscore = cUnderscore; - this.dOuter = dOuter; - this.e = e; - } - pack(builder) { - return NestedStruct.createNestedStruct(builder, this.a, this.b, this.cUnderscore, this.dOuter, this.e); - } -} -export class ArrayStruct { - constructor() { - this.bb = null; - this.bb_pos = 0; - } - __init(i, bb) { - this.bb_pos = i; - this.bb = bb; - return this; - } - aUnderscore() { - return this.bb.readFloat32(this.bb_pos); - } - bUnderscore(index) { - return this.bb.readInt32(this.bb_pos + 4 + index * 4); - } - c() { - return this.bb.readInt8(this.bb_pos + 64); - } - d(index, obj) { - return (obj || new NestedStruct()).__init(this.bb_pos + 72 + index * 1072, this.bb); - } - e() { - return this.bb.readInt32(this.bb_pos + 2216); - } - f(index, obj) { - return (obj || new OuterStruct()).__init(this.bb_pos + 2224 + index * 208, this.bb); - } - g(index) { - return this.bb.readInt64(this.bb_pos + 2640 + index * 8); - } - static getFullyQualifiedName() { - return 'MyGame.Example.ArrayStruct'; - } - static sizeOf() { - return 2656; - } - static createArrayStruct(builder, a_underscore, b_underscore, c, d, e, f, g) { - var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _p, _q, _r, _s, _t, _u; - builder.prep(8, 2656); - for (let i = 1; i >= 0; --i) { - builder.writeInt64(BigInt((_a = g === null || g === void 0 ? void 0 : g[i]) !== null && _a !== void 0 ? _a : 0)); - } - for (let i = 1; i >= 0; --i) { - const item = f === null || f === void 0 ? void 0 : f[i]; - if (item instanceof OuterStructT) { - item.pack(builder); - continue; - } - OuterStruct.createOuterStruct(builder, item === null || item === void 0 ? void 0 : item.a, item === null || item === void 0 ? void 0 : item.b, ((_c = (_b = item === null || item === void 0 ? void 0 : item.cUnderscore) === null || _b === void 0 ? void 0 : _b.a) !== null && _c !== void 0 ? _c : 0), ((_e = (_d = item === null || item === void 0 ? void 0 : item.cUnderscore) === null || _d === void 0 ? void 0 : _d.b) !== null && _e !== void 0 ? _e : []), ((_g = (_f = item === null || item === void 0 ? void 0 : item.cUnderscore) === null || _f === void 0 ? void 0 : _f.c) !== null && _g !== void 0 ? _g : 0), ((_j = (_h = item === null || item === void 0 ? void 0 : item.cUnderscore) === null || _h === void 0 ? void 0 : _h.dUnderscore) !== null && _j !== void 0 ? _j : BigInt(0)), item === null || item === void 0 ? void 0 : item.d, ((_l = (_k = item === null || item === void 0 ? void 0 : item.e) === null || _k === void 0 ? void 0 : _k.a) !== null && _l !== void 0 ? _l : 0), ((_p = (_m = item === null || item === void 0 ? void 0 : item.e) === null || _m === void 0 ? void 0 : _m.b) !== null && _p !== void 0 ? _p : []), ((_r = (_q = item === null || item === void 0 ? void 0 : item.e) === null || _q === void 0 ? void 0 : _q.c) !== null && _r !== void 0 ? _r : 0), ((_t = (_s = item === null || item === void 0 ? void 0 : item.e) === null || _s === void 0 ? void 0 : _s.dUnderscore) !== null && _t !== void 0 ? _t : BigInt(0)), item === null || item === void 0 ? void 0 : item.f); - } - builder.pad(4); - builder.writeInt32(e); - for (let i = 1; i >= 0; --i) { - const item = d === null || d === void 0 ? void 0 : d[i]; - if (item instanceof NestedStructT) { - item.pack(builder); - continue; - } - NestedStruct.createNestedStruct(builder, item === null || item === void 0 ? void 0 : item.a, item === null || item === void 0 ? void 0 : item.b, item === null || item === void 0 ? void 0 : item.cUnderscore, item === null || item === void 0 ? void 0 : item.dOuter, item === null || item === void 0 ? void 0 : item.e); - } - builder.pad(7); - builder.writeInt8(c); - for (let i = 14; i >= 0; --i) { - builder.writeInt32(((_u = b_underscore === null || b_underscore === void 0 ? void 0 : b_underscore[i]) !== null && _u !== void 0 ? _u : 0)); - } - builder.writeFloat32(a_underscore); - return builder.offset(); - } - unpack() { - return new ArrayStructT(this.aUnderscore(), this.bb.createScalarList(this.bUnderscore.bind(this), 15), this.c(), this.bb.createObjList(this.d.bind(this), 2), this.e(), this.bb.createObjList(this.f.bind(this), 2), this.bb.createScalarList(this.g.bind(this), 2)); - } - unpackTo(_o) { - _o.aUnderscore = this.aUnderscore(); - _o.bUnderscore = this.bb.createScalarList(this.bUnderscore.bind(this), 15); - _o.c = this.c(); - _o.d = this.bb.createObjList(this.d.bind(this), 2); - _o.e = this.e(); - _o.f = this.bb.createObjList(this.f.bind(this), 2); - _o.g = this.bb.createScalarList(this.g.bind(this), 2); - } -} -export class ArrayStructT { - constructor(aUnderscore = 0.0, bUnderscore = [], c = 0, d = [], e = 0, f = [], g = []) { - this.aUnderscore = aUnderscore; - this.bUnderscore = bUnderscore; - this.c = c; - this.d = d; - this.e = e; - this.f = f; - this.g = g; - } - pack(builder) { - return ArrayStruct.createArrayStruct(builder, this.aUnderscore, this.bUnderscore, this.c, this.d, this.e, this.f, this.g); - } -} -export class ArrayTable { - constructor() { - this.bb = null; - this.bb_pos = 0; - } - __init(i, bb) { - this.bb_pos = i; - this.bb = bb; - return this; - } - static getRootAsArrayTable(bb, obj) { - return (obj || new ArrayTable()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - static getSizePrefixedRootAsArrayTable(bb, obj) { - bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH); - return (obj || new ArrayTable()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - static bufferHasIdentifier(bb) { - return bb.__has_identifier('RHUB'); - } - a(optionalEncoding) { - const offset = this.bb.__offset(this.bb_pos, 4); - return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; - } - cUnderscore(obj) { - const offset = this.bb.__offset(this.bb_pos, 6); - return offset ? (obj || new ArrayStruct()).__init(this.bb_pos + offset, this.bb) : null; - } - static getFullyQualifiedName() { - return 'MyGame.Example.ArrayTable'; - } - static startArrayTable(builder) { - builder.startObject(2); - } - static addA(builder, aOffset) { - builder.addFieldOffset(0, aOffset, 0); - } - static addCUnderscore(builder, cUnderscoreOffset) { - builder.addFieldStruct(1, cUnderscoreOffset, 0); - } - static endArrayTable(builder) { - const offset = builder.endObject(); - return offset; - } - static finishArrayTableBuffer(builder, offset) { - builder.finish(offset, 'RHUB'); - } - static finishSizePrefixedArrayTableBuffer(builder, offset) { - builder.finish(offset, 'RHUB', true); - } - unpack() { - return new ArrayTableT(this.a(), (this.cUnderscore() !== null ? this.cUnderscore().unpack() : null)); - } - unpackTo(_o) { - _o.a = this.a(); - _o.cUnderscore = (this.cUnderscore() !== null ? this.cUnderscore().unpack() : null); - } -} -export class ArrayTableT { - constructor(a = null, cUnderscore = null) { - this.a = a; - this.cUnderscore = cUnderscore; - } - pack(builder) { - const a = (this.a !== null ? builder.createString(this.a) : 0); - ArrayTable.startArrayTable(builder); - ArrayTable.addA(builder, a); - ArrayTable.addCUnderscore(builder, (this.cUnderscore !== null ? this.cUnderscore.pack(builder) : 0)); - return ArrayTable.endArrayTable(builder); - } -} diff --git a/tests/ts/arrays_test_complex/arrays_test_complex_generated.ts b/tests/ts/arrays_test_complex/arrays_test_complex_generated.ts deleted file mode 100644 index 4686a56281..0000000000 --- a/tests/ts/arrays_test_complex/arrays_test_complex_generated.ts +++ /dev/null @@ -1,626 +0,0 @@ -// automatically generated by the FlatBuffers compiler, do not modify - -import * as flatbuffers from 'flatbuffers'; - - -export enum TestEnum { - A = 0, - B = 1, - C = 2 -} - -export class InnerStruct implements flatbuffers.IUnpackableObject { - 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(this.b.bind(this), 13), - this.c(), - this.dUnderscore() - ); -} - - -unpackTo(_o: InnerStructT): void { - _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 implements flatbuffers.IGeneratedObject { -constructor( - public a: number = 0.0, - public b: (number)[] = [], - public c: number = 0, - public dUnderscore: bigint = BigInt('0') -){} - - -pack(builder:flatbuffers.Builder): flatbuffers.Offset { - return InnerStruct.createInnerStruct(builder, - this.a, - this.b, - this.c, - this.dUnderscore - ); -} -} - -export class OuterStruct implements flatbuffers.IUnpackableObject { - 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(this.d.bind(this), 3), - (this.e() !== null ? this.e()!.unpack() : null), - this.bb!.createScalarList(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(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 implements flatbuffers.IGeneratedObject { -constructor( - public a: boolean = false, - public b: number = 0.0, - public cUnderscore: InnerStructT|null = null, - public d: (InnerStructT)[] = [], - public e: InnerStructT|null = null, - public f: (number)[] = [] -){} - - -pack(builder:flatbuffers.Builder): flatbuffers.Offset { - return OuterStruct.createOuterStruct(builder, - this.a, - this.b, - (this.cUnderscore?.a ?? 0), - (this.cUnderscore?.b ?? []), - (this.cUnderscore?.c ?? 0), - (this.cUnderscore?.dUnderscore ?? BigInt(0)), - this.d, - (this.e?.a ?? 0), - (this.e?.b ?? []), - (this.e?.c ?? 0), - (this.e?.dUnderscore ?? BigInt(0)), - this.f - ); -} -} - -export class NestedStruct implements flatbuffers.IUnpackableObject { - 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(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: NestedStructT): void { - _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 implements flatbuffers.IGeneratedObject { -constructor( - public a: (number)[] = [], - public b: TestEnum = TestEnum.A, - public cUnderscore: (TestEnum)[] = [TestEnum.A, TestEnum.A], - public dOuter: (OuterStructT)[] = [], - public e: (bigint)[] = [] -){} - - -pack(builder:flatbuffers.Builder): flatbuffers.Offset { - return NestedStruct.createNestedStruct(builder, - this.a, - this.b, - this.cUnderscore, - this.dOuter, - this.e - ); -} -} - -export class ArrayStruct implements flatbuffers.IUnpackableObject { - 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(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: ArrayStructT): void { - _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 implements flatbuffers.IGeneratedObject { -constructor( - public aUnderscore: number = 0.0, - public bUnderscore: (number)[] = [], - public c: number = 0, - public d: (NestedStructT)[] = [], - public e: number = 0, - public f: (OuterStructT)[] = [], - public g: (bigint)[] = [] -){} - - -pack(builder:flatbuffers.Builder): flatbuffers.Offset { - return ArrayStruct.createArrayStruct(builder, - this.aUnderscore, - this.bUnderscore, - this.c, - this.d, - this.e, - this.f, - this.g - ); -} -} - -export class ArrayTable implements flatbuffers.IUnpackableObject { - bb: flatbuffers.ByteBuffer|null = null; - bb_pos = 0; - __init(i:number, bb:flatbuffers.ByteBuffer):ArrayTable { - this.bb_pos = i; - this.bb = bb; - return this; -} - -static getRootAsArrayTable(bb:flatbuffers.ByteBuffer, obj?:ArrayTable):ArrayTable { - return (obj || new ArrayTable()).__init(bb.readInt32(bb.position()) + bb.position(), bb); -} - -static getSizePrefixedRootAsArrayTable(bb:flatbuffers.ByteBuffer, obj?:ArrayTable):ArrayTable { - bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH); - return (obj || new ArrayTable()).__init(bb.readInt32(bb.position()) + bb.position(), bb); -} - -static bufferHasIdentifier(bb:flatbuffers.ByteBuffer):boolean { - return bb.__has_identifier('RHUB'); -} - -a():string|null -a(optionalEncoding:flatbuffers.Encoding):string|Uint8Array|null -a(optionalEncoding?:any):string|Uint8Array|null { - const offset = this.bb!.__offset(this.bb_pos, 4); - return offset ? this.bb!.__string(this.bb_pos + offset, optionalEncoding) : null; -} - -cUnderscore(obj?:ArrayStruct):ArrayStruct|null { - const offset = this.bb!.__offset(this.bb_pos, 6); - return offset ? (obj || new ArrayStruct()).__init(this.bb_pos + offset, this.bb!) : null; -} - -static getFullyQualifiedName():string { - return 'MyGame.Example.ArrayTable'; -} - -static startArrayTable(builder:flatbuffers.Builder) { - builder.startObject(2); -} - -static addA(builder:flatbuffers.Builder, aOffset:flatbuffers.Offset) { - builder.addFieldOffset(0, aOffset, 0); -} - -static addCUnderscore(builder:flatbuffers.Builder, cUnderscoreOffset:flatbuffers.Offset) { - builder.addFieldStruct(1, cUnderscoreOffset, 0); -} - -static endArrayTable(builder:flatbuffers.Builder):flatbuffers.Offset { - const offset = builder.endObject(); - return offset; -} - -static finishArrayTableBuffer(builder:flatbuffers.Builder, offset:flatbuffers.Offset) { - builder.finish(offset, 'RHUB'); -} - -static finishSizePrefixedArrayTableBuffer(builder:flatbuffers.Builder, offset:flatbuffers.Offset) { - builder.finish(offset, 'RHUB', true); -} - - -unpack(): ArrayTableT { - return new ArrayTableT( - this.a(), - (this.cUnderscore() !== null ? this.cUnderscore()!.unpack() : null) - ); -} - - -unpackTo(_o: ArrayTableT): void { - _o.a = this.a(); - _o.cUnderscore = (this.cUnderscore() !== null ? this.cUnderscore()!.unpack() : null); -} -} - -export class ArrayTableT implements flatbuffers.IGeneratedObject { -constructor( - public a: string|Uint8Array|null = null, - public cUnderscore: ArrayStructT|null = null -){} - - -pack(builder:flatbuffers.Builder): flatbuffers.Offset { - const a = (this.a !== null ? builder.createString(this.a!) : 0); - - ArrayTable.startArrayTable(builder); - ArrayTable.addA(builder, a); - ArrayTable.addCUnderscore(builder, (this.cUnderscore !== null ? this.cUnderscore!.pack(builder) : 0)); - - return ArrayTable.endArrayTable(builder); -} -} - diff --git a/tests/ts/arrays_test_complex/my-game/example.d.ts b/tests/ts/arrays_test_complex/my-game/example.d.ts new file mode 100644 index 0000000000..93eb52518e --- /dev/null +++ b/tests/ts/arrays_test_complex/my-game/example.d.ts @@ -0,0 +1,6 @@ +export { ArrayStruct } from './example/array-struct.js'; +export { ArrayTable } from './example/array-table.js'; +export { InnerStruct } from './example/inner-struct.js'; +export { NestedStruct } from './example/nested-struct.js'; +export { OuterStruct } from './example/outer-struct.js'; +export { TestEnum } from './example/test-enum.js'; diff --git a/tests/ts/arrays_test_complex/my-game/example.js b/tests/ts/arrays_test_complex/my-game/example.js new file mode 100644 index 0000000000..bc149dab9c --- /dev/null +++ b/tests/ts/arrays_test_complex/my-game/example.js @@ -0,0 +1,7 @@ +// automatically generated by the FlatBuffers compiler, do not modify +export { ArrayStruct } from './example/array-struct.js'; +export { ArrayTable } from './example/array-table.js'; +export { InnerStruct } from './example/inner-struct.js'; +export { NestedStruct } from './example/nested-struct.js'; +export { OuterStruct } from './example/outer-struct.js'; +export { TestEnum } from './example/test-enum.js'; diff --git a/tests/ts/arrays_test_complex/my-game/example.ts b/tests/ts/arrays_test_complex/my-game/example.ts new file mode 100644 index 0000000000..9643b93b1b --- /dev/null +++ b/tests/ts/arrays_test_complex/my-game/example.ts @@ -0,0 +1,8 @@ +// automatically generated by the FlatBuffers compiler, do not modify + +export { ArrayStruct } from './example/array-struct.js'; +export { ArrayTable } from './example/array-table.js'; +export { InnerStruct } from './example/inner-struct.js'; +export { NestedStruct } from './example/nested-struct.js'; +export { OuterStruct } from './example/outer-struct.js'; +export { TestEnum } from './example/test-enum.js'; diff --git a/tests/ts/arrays_test_complex/my-game/example/array-struct.d.ts b/tests/ts/arrays_test_complex/my-game/example/array-struct.d.ts new file mode 100644 index 0000000000..80acd75076 --- /dev/null +++ b/tests/ts/arrays_test_complex/my-game/example/array-struct.d.ts @@ -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 { + 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; +} diff --git a/tests/ts/arrays_test_complex/my-game/example/array-struct.js b/tests/ts/arrays_test_complex/my-game/example/array-struct.js new file mode 100644 index 0000000000..9350571d52 --- /dev/null +++ b/tests/ts/arrays_test_complex/my-game/example/array-struct.js @@ -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); + } +} diff --git a/tests/ts/arrays_test_complex/my-game/example/array-struct.ts b/tests/ts/arrays_test_complex/my-game/example/array-struct.ts new file mode 100644 index 0000000000..eb81e05d47 --- /dev/null +++ b/tests/ts/arrays_test_complex/my-game/example/array-struct.ts @@ -0,0 +1,166 @@ +// automatically generated by the FlatBuffers compiler, do not modify + +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 { + 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(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: ArrayStructT): void { + _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 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 + ); +} +} diff --git a/tests/ts/arrays_test_complex/my-game/example/array-table.d.ts b/tests/ts/arrays_test_complex/my-game/example/array-table.d.ts new file mode 100644 index 0000000000..d4ddd06776 --- /dev/null +++ b/tests/ts/arrays_test_complex/my-game/example/array-table.d.ts @@ -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 { + 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; +} diff --git a/tests/ts/arrays_test_complex/my-game/example/array-table.js b/tests/ts/arrays_test_complex/my-game/example/array-table.js new file mode 100644 index 0000000000..b171023b1f --- /dev/null +++ b/tests/ts/arrays_test_complex/my-game/example/array-table.js @@ -0,0 +1,74 @@ +// automatically generated by the FlatBuffers compiler, do not modify +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); + } +} diff --git a/tests/ts/arrays_test_complex/my-game/example/array-table.ts b/tests/ts/arrays_test_complex/my-game/example/array-table.ts new file mode 100644 index 0000000000..b744aa3e17 --- /dev/null +++ b/tests/ts/arrays_test_complex/my-game/example/array-table.ts @@ -0,0 +1,102 @@ +// automatically generated by the FlatBuffers compiler, do not modify + +import * as flatbuffers from 'flatbuffers'; + +import { ArrayStruct, ArrayStructT } from '../../my-game/example/array-struct.js'; + + +export class ArrayTable implements flatbuffers.IUnpackableObject { + bb: flatbuffers.ByteBuffer|null = null; + bb_pos = 0; + __init(i:number, bb:flatbuffers.ByteBuffer):ArrayTable { + this.bb_pos = i; + this.bb = bb; + return this; +} + +static getRootAsArrayTable(bb:flatbuffers.ByteBuffer, obj?:ArrayTable):ArrayTable { + return (obj || new ArrayTable()).__init(bb.readInt32(bb.position()) + bb.position(), bb); +} + +static getSizePrefixedRootAsArrayTable(bb:flatbuffers.ByteBuffer, obj?:ArrayTable):ArrayTable { + bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH); + return (obj || new ArrayTable()).__init(bb.readInt32(bb.position()) + bb.position(), bb); +} + +static bufferHasIdentifier(bb:flatbuffers.ByteBuffer):boolean { + return bb.__has_identifier('RHUB'); +} + +a():string|null +a(optionalEncoding:flatbuffers.Encoding):string|Uint8Array|null +a(optionalEncoding?:any):string|Uint8Array|null { + const offset = this.bb!.__offset(this.bb_pos, 4); + return offset ? this.bb!.__string(this.bb_pos + offset, optionalEncoding) : null; +} + +cUnderscore(obj?:ArrayStruct):ArrayStruct|null { + const offset = this.bb!.__offset(this.bb_pos, 6); + return offset ? (obj || new ArrayStruct()).__init(this.bb_pos + offset, this.bb!) : null; +} + +static getFullyQualifiedName():string { + return 'MyGame.Example.ArrayTable'; +} + +static startArrayTable(builder:flatbuffers.Builder) { + builder.startObject(2); +} + +static addA(builder:flatbuffers.Builder, aOffset:flatbuffers.Offset) { + builder.addFieldOffset(0, aOffset, 0); +} + +static addCUnderscore(builder:flatbuffers.Builder, cUnderscoreOffset:flatbuffers.Offset) { + builder.addFieldStruct(1, cUnderscoreOffset, 0); +} + +static endArrayTable(builder:flatbuffers.Builder):flatbuffers.Offset { + const offset = builder.endObject(); + return offset; +} + +static finishArrayTableBuffer(builder:flatbuffers.Builder, offset:flatbuffers.Offset) { + builder.finish(offset, 'RHUB'); +} + +static finishSizePrefixedArrayTableBuffer(builder:flatbuffers.Builder, offset:flatbuffers.Offset) { + builder.finish(offset, 'RHUB', true); +} + + +unpack(): ArrayTableT { + return new ArrayTableT( + this.a(), + (this.cUnderscore() !== null ? this.cUnderscore()!.unpack() : null) + ); +} + + +unpackTo(_o: ArrayTableT): void { + _o.a = this.a(); + _o.cUnderscore = (this.cUnderscore() !== null ? this.cUnderscore()!.unpack() : null); +} +} + +export class ArrayTableT implements flatbuffers.IGeneratedObject { +constructor( + public a: string|Uint8Array|null = null, + public cUnderscore: ArrayStructT|null = null +){} + + +pack(builder:flatbuffers.Builder): flatbuffers.Offset { + const a = (this.a !== null ? builder.createString(this.a!) : 0); + + ArrayTable.startArrayTable(builder); + ArrayTable.addA(builder, a); + ArrayTable.addCUnderscore(builder, (this.cUnderscore !== null ? this.cUnderscore!.pack(builder) : 0)); + + return ArrayTable.endArrayTable(builder); +} +} diff --git a/tests/ts/arrays_test_complex/my-game/example/inner-struct.d.ts b/tests/ts/arrays_test_complex/my-game/example/inner-struct.d.ts new file mode 100644 index 0000000000..a54d02bcb1 --- /dev/null +++ b/tests/ts/arrays_test_complex/my-game/example/inner-struct.d.ts @@ -0,0 +1,23 @@ +import * as flatbuffers from 'flatbuffers'; +export declare class InnerStruct implements flatbuffers.IUnpackableObject { + 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; +} diff --git a/tests/ts/arrays_test_complex/my-game/example/inner-struct.js b/tests/ts/arrays_test_complex/my-game/example/inner-struct.js new file mode 100644 index 0000000000..e8ed973622 --- /dev/null +++ b/tests/ts/arrays_test_complex/my-game/example/inner-struct.js @@ -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); + } +} diff --git a/tests/ts/arrays_test_complex/my-game/example/inner-struct.ts b/tests/ts/arrays_test_complex/my-game/example/inner-struct.ts new file mode 100644 index 0000000000..4ebaafba2a --- /dev/null +++ b/tests/ts/arrays_test_complex/my-game/example/inner-struct.ts @@ -0,0 +1,91 @@ +// automatically generated by the FlatBuffers compiler, do not modify + +import * as flatbuffers from 'flatbuffers'; + + + +export class InnerStruct implements flatbuffers.IUnpackableObject { + 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(this.b.bind(this), 13), + this.c(), + this.dUnderscore() + ); +} + + +unpackTo(_o: InnerStructT): void { + _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 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 + ); +} +} diff --git a/tests/ts/arrays_test_complex/my-game/example/nested-struct.d.ts b/tests/ts/arrays_test_complex/my-game/example/nested-struct.d.ts new file mode 100644 index 0000000000..98fe48d0ab --- /dev/null +++ b/tests/ts/arrays_test_complex/my-game/example/nested-struct.d.ts @@ -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 { + 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; +} diff --git a/tests/ts/arrays_test_complex/my-game/example/nested-struct.js b/tests/ts/arrays_test_complex/my-game/example/nested-struct.js new file mode 100644 index 0000000000..067061769a --- /dev/null +++ b/tests/ts/arrays_test_complex/my-game/example/nested-struct.js @@ -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); + } +} diff --git a/tests/ts/arrays_test_complex/my-game/example/nested-struct.ts b/tests/ts/arrays_test_complex/my-game/example/nested-struct.ts new file mode 100644 index 0000000000..39e62600de --- /dev/null +++ b/tests/ts/arrays_test_complex/my-game/example/nested-struct.ts @@ -0,0 +1,135 @@ +// automatically generated by the FlatBuffers compiler, do not modify + +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 { + 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(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: NestedStructT): void { + _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 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 + ); +} +} diff --git a/tests/ts/arrays_test_complex/my-game/example/outer-struct.d.ts b/tests/ts/arrays_test_complex/my-game/example/outer-struct.d.ts new file mode 100644 index 0000000000..9c62cea782 --- /dev/null +++ b/tests/ts/arrays_test_complex/my-game/example/outer-struct.d.ts @@ -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 { + 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; +} diff --git a/tests/ts/arrays_test_complex/my-game/example/outer-struct.js b/tests/ts/arrays_test_complex/my-game/example/outer-struct.js new file mode 100644 index 0000000000..fab2c9633a --- /dev/null +++ b/tests/ts/arrays_test_complex/my-game/example/outer-struct.js @@ -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); + } +} diff --git a/tests/ts/arrays_test_complex/my-game/example/outer-struct.ts b/tests/ts/arrays_test_complex/my-game/example/outer-struct.ts new file mode 100644 index 0000000000..50fb64b63a --- /dev/null +++ b/tests/ts/arrays_test_complex/my-game/example/outer-struct.ts @@ -0,0 +1,152 @@ +// automatically generated by the FlatBuffers compiler, do not modify + +import * as flatbuffers from 'flatbuffers'; + +import { InnerStruct, InnerStructT } from '../../my-game/example/inner-struct.js'; + + +export class OuterStruct implements flatbuffers.IUnpackableObject { + 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(this.d.bind(this), 3), + (this.e() !== null ? this.e()!.unpack() : null), + this.bb!.createScalarList(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(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 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 + ); +} +} diff --git a/tests/ts/arrays_test_complex/my-game/example/test-enum.d.ts b/tests/ts/arrays_test_complex/my-game/example/test-enum.d.ts new file mode 100644 index 0000000000..291e04971f --- /dev/null +++ b/tests/ts/arrays_test_complex/my-game/example/test-enum.d.ts @@ -0,0 +1,5 @@ +export declare enum TestEnum { + A = 0, + B = 1, + C = 2 +} diff --git a/tests/ts/arrays_test_complex/my-game/example/test-enum.js b/tests/ts/arrays_test_complex/my-game/example/test-enum.js new file mode 100644 index 0000000000..1fb1550535 --- /dev/null +++ b/tests/ts/arrays_test_complex/my-game/example/test-enum.js @@ -0,0 +1,7 @@ +// automatically generated by the FlatBuffers compiler, do not modify +export var TestEnum; +(function (TestEnum) { + TestEnum[TestEnum["A"] = 0] = "A"; + TestEnum[TestEnum["B"] = 1] = "B"; + TestEnum[TestEnum["C"] = 2] = "C"; +})(TestEnum = TestEnum || (TestEnum = {})); diff --git a/tests/namespace_test/namespace-a/namespace-b/enum-in-nested-n-s.ts b/tests/ts/arrays_test_complex/my-game/example/test-enum.ts similarity index 77% rename from tests/namespace_test/namespace-a/namespace-b/enum-in-nested-n-s.ts rename to tests/ts/arrays_test_complex/my-game/example/test-enum.ts index 676b7e43dd..a450fc82a7 100644 --- a/tests/namespace_test/namespace-a/namespace-b/enum-in-nested-n-s.ts +++ b/tests/ts/arrays_test_complex/my-game/example/test-enum.ts @@ -1,8 +1,7 @@ // automatically generated by the FlatBuffers compiler, do not modify -export enum EnumInNestedNS{ +export enum TestEnum { A = 0, B = 1, C = 2 } - diff --git a/tests/ts/foobar.d.ts b/tests/ts/foobar.d.ts new file mode 100644 index 0000000000..c920a8c3c1 --- /dev/null +++ b/tests/ts/foobar.d.ts @@ -0,0 +1 @@ +export { Abc } from './foobar/abc.js'; diff --git a/tests/ts/foobar.js b/tests/ts/foobar.js new file mode 100644 index 0000000000..6a84acc5e1 --- /dev/null +++ b/tests/ts/foobar.js @@ -0,0 +1,2 @@ +// automatically generated by the FlatBuffers compiler, do not modify +export { Abc } from './foobar/abc.js'; diff --git a/tests/ts/typescript_transitive_include_generated.ts b/tests/ts/foobar.ts similarity index 64% rename from tests/ts/typescript_transitive_include_generated.ts rename to tests/ts/foobar.ts index 6bb1601482..067b4860ee 100644 --- a/tests/ts/typescript_transitive_include_generated.ts +++ b/tests/ts/foobar.ts @@ -1,7 +1,3 @@ // automatically generated by the FlatBuffers compiler, do not modify - -export enum Abc { - a = 0 -} - +export { Abc } from './foobar/abc.js'; diff --git a/tests/ts/foobar/abc.d.ts b/tests/ts/foobar/abc.d.ts new file mode 100644 index 0000000000..874a35db0e --- /dev/null +++ b/tests/ts/foobar/abc.d.ts @@ -0,0 +1,3 @@ +export declare enum Abc { + a = 0 +} diff --git a/tests/ts/foobar/abc.js b/tests/ts/foobar/abc.js index cdef988d94..40f0d7a2b4 100644 --- a/tests/ts/foobar/abc.js +++ b/tests/ts/foobar/abc.js @@ -2,4 +2,4 @@ export var Abc; (function (Abc) { Abc[Abc["a"] = 0] = "a"; -})(Abc || (Abc = {})); +})(Abc = Abc || (Abc = {})); diff --git a/tests/ts/foobar/class.d.ts b/tests/ts/foobar/class.d.ts new file mode 100644 index 0000000000..2815be18c2 --- /dev/null +++ b/tests/ts/foobar/class.d.ts @@ -0,0 +1,3 @@ +export declare enum class_ { + arguments_ = 0 +} diff --git a/tests/ts/foobar/class.js b/tests/ts/foobar/class.js index e0e1df1bea..d278ac9463 100644 --- a/tests/ts/foobar/class.js +++ b/tests/ts/foobar/class.js @@ -2,4 +2,4 @@ export var class_; (function (class_) { class_[class_["arguments_"] = 0] = "arguments_"; -})(class_ || (class_ = {})); +})(class_ = class_ || (class_ = {})); diff --git a/tests/ts/monster_test.d.ts b/tests/ts/monster_test.d.ts new file mode 100644 index 0000000000..b8d81d45fc --- /dev/null +++ b/tests/ts/monster_test.d.ts @@ -0,0 +1,2 @@ +export { TableA } from './table-a.js'; +export * as MyGame from './my-game.js'; diff --git a/tests/ts/monster_test.js b/tests/ts/monster_test.js index afc333eeb9..da2897c6e9 100644 --- a/tests/ts/monster_test.js +++ b/tests/ts/monster_test.js @@ -1,17 +1,3 @@ -export { Monster as MyGameExample2Monster, MonsterT as MyGameExample2MonsterT } from './my-game/example2/monster'; -export { Ability, AbilityT } from './my-game/example/ability'; -export { Any, unionToAny, unionListToAny } from './my-game/example/any'; -export { AnyAmbiguousAliases, unionToAnyAmbiguousAliases, unionListToAnyAmbiguousAliases } from './my-game/example/any-ambiguous-aliases'; -export { AnyUniqueAliases, unionToAnyUniqueAliases, unionListToAnyUniqueAliases } from './my-game/example/any-unique-aliases'; -export { Color } from './my-game/example/color'; -export { Monster, MonsterT } from './my-game/example/monster'; -export { Race } from './my-game/example/race'; -export { Referrable, ReferrableT } from './my-game/example/referrable'; -export { Stat, StatT } from './my-game/example/stat'; -export { StructOfStructs, StructOfStructsT } from './my-game/example/struct-of-structs'; -export { StructOfStructsOfStructs, StructOfStructsOfStructsT } from './my-game/example/struct-of-structs-of-structs'; -export { Test, TestT } from './my-game/example/test'; -export { TestSimpleTableWithEnum, TestSimpleTableWithEnumT } from './my-game/example/test-simple-table-with-enum'; -export { TypeAliases, TypeAliasesT } from './my-game/example/type-aliases'; -export { Vec3, Vec3T } from './my-game/example/vec3'; -export { InParentNamespace, InParentNamespaceT } from './my-game/in-parent-namespace'; +// automatically generated by the FlatBuffers compiler, do not modify +export { TableA } from './table-a.js'; +export * as MyGame from './my-game.js'; diff --git a/tests/ts/monster_test.ts b/tests/ts/monster_test.ts index afc333eeb9..771db3b38e 100644 --- a/tests/ts/monster_test.ts +++ b/tests/ts/monster_test.ts @@ -1,17 +1,4 @@ -export { Monster as MyGameExample2Monster, MonsterT as MyGameExample2MonsterT } from './my-game/example2/monster'; -export { Ability, AbilityT } from './my-game/example/ability'; -export { Any, unionToAny, unionListToAny } from './my-game/example/any'; -export { AnyAmbiguousAliases, unionToAnyAmbiguousAliases, unionListToAnyAmbiguousAliases } from './my-game/example/any-ambiguous-aliases'; -export { AnyUniqueAliases, unionToAnyUniqueAliases, unionListToAnyUniqueAliases } from './my-game/example/any-unique-aliases'; -export { Color } from './my-game/example/color'; -export { Monster, MonsterT } from './my-game/example/monster'; -export { Race } from './my-game/example/race'; -export { Referrable, ReferrableT } from './my-game/example/referrable'; -export { Stat, StatT } from './my-game/example/stat'; -export { StructOfStructs, StructOfStructsT } from './my-game/example/struct-of-structs'; -export { StructOfStructsOfStructs, StructOfStructsOfStructsT } from './my-game/example/struct-of-structs-of-structs'; -export { Test, TestT } from './my-game/example/test'; -export { TestSimpleTableWithEnum, TestSimpleTableWithEnumT } from './my-game/example/test-simple-table-with-enum'; -export { TypeAliases, TypeAliasesT } from './my-game/example/type-aliases'; -export { Vec3, Vec3T } from './my-game/example/vec3'; -export { InParentNamespace, InParentNamespaceT } from './my-game/in-parent-namespace'; +// automatically generated by the FlatBuffers compiler, do not modify + +export { TableA } from './table-a.js'; +export * as MyGame from './my-game.js'; diff --git a/tests/ts/monster_test_generated.cjs b/tests/ts/monster_test_generated.cjs new file mode 100644 index 0000000000..eafb6a4ae9 --- /dev/null +++ b/tests/ts/monster_test_generated.cjs @@ -0,0 +1,2565 @@ +"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( + isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, + mod +)); +var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); + +// monster_test.ts +var monster_test_exports = {}; +__export(monster_test_exports, { + MyGame: () => my_game_exports, + TableA: () => TableA +}); +module.exports = __toCommonJS(monster_test_exports); + +// table-a.js +var flatbuffers2 = __toESM(require("flatbuffers"), 1); + +// my-game/other-name-space/table-b.js +var flatbuffers = __toESM(require("flatbuffers"), 1); +var TableB = class { + constructor() { + this.bb = null; + this.bb_pos = 0; + } + __init(i, bb) { + this.bb_pos = i; + this.bb = bb; + return this; + } + static getRootAsTableB(bb, obj) { + return (obj || new TableB()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + static getSizePrefixedRootAsTableB(bb, obj) { + bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH); + return (obj || new TableB()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + a(obj) { + const offset = this.bb.__offset(this.bb_pos, 4); + return offset ? (obj || new TableA()).__init(this.bb.__indirect(this.bb_pos + offset), this.bb) : null; + } + static getFullyQualifiedName() { + return "MyGame.OtherNameSpace.TableB"; + } + static startTableB(builder) { + builder.startObject(1); + } + static addA(builder, aOffset) { + builder.addFieldOffset(0, aOffset, 0); + } + static endTableB(builder) { + const offset = builder.endObject(); + return offset; + } + static createTableB(builder, aOffset) { + TableB.startTableB(builder); + TableB.addA(builder, aOffset); + return TableB.endTableB(builder); + } + serialize() { + return this.bb.bytes(); + } + static deserialize(buffer) { + return TableB.getRootAsTableB(new flatbuffers.ByteBuffer(buffer)); + } + unpack() { + return new TableBT(this.a() !== null ? this.a().unpack() : null); + } + unpackTo(_o) { + _o.a = this.a() !== null ? this.a().unpack() : null; + } +}; +var TableBT = class { + constructor(a = null) { + this.a = a; + } + pack(builder) { + const a = this.a !== null ? this.a.pack(builder) : 0; + return TableB.createTableB(builder, a); + } +}; + +// table-a.js +var TableA = class { + constructor() { + this.bb = null; + this.bb_pos = 0; + } + __init(i, bb) { + this.bb_pos = i; + this.bb = bb; + return this; + } + static getRootAsTableA(bb, obj) { + return (obj || new TableA()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + static getSizePrefixedRootAsTableA(bb, obj) { + bb.setPosition(bb.position() + flatbuffers2.SIZE_PREFIX_LENGTH); + return (obj || new TableA()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + b(obj) { + const offset = this.bb.__offset(this.bb_pos, 4); + return offset ? (obj || new TableB()).__init(this.bb.__indirect(this.bb_pos + offset), this.bb) : null; + } + static getFullyQualifiedName() { + return "TableA"; + } + static startTableA(builder) { + builder.startObject(1); + } + static addB(builder, bOffset) { + builder.addFieldOffset(0, bOffset, 0); + } + static endTableA(builder) { + const offset = builder.endObject(); + return offset; + } + static createTableA(builder, bOffset) { + TableA.startTableA(builder); + TableA.addB(builder, bOffset); + return TableA.endTableA(builder); + } + serialize() { + return this.bb.bytes(); + } + static deserialize(buffer) { + return TableA.getRootAsTableA(new flatbuffers2.ByteBuffer(buffer)); + } + unpack() { + return new TableAT(this.b() !== null ? this.b().unpack() : null); + } + unpackTo(_o) { + _o.b = this.b() !== null ? this.b().unpack() : null; + } +}; +var TableAT = class { + constructor(b = null) { + this.b = b; + } + pack(builder) { + const b = this.b !== null ? this.b.pack(builder) : 0; + return TableA.createTableA(builder, b); + } +}; + +// my-game.js +var my_game_exports = {}; +__export(my_game_exports, { + Example: () => example_exports, + Example2: () => example2_exports, + InParentNamespace: () => InParentNamespace, + OtherNameSpace: () => other_name_space_exports +}); + +// my-game/in-parent-namespace.js +var flatbuffers3 = __toESM(require("flatbuffers"), 1); +var InParentNamespace = class { + constructor() { + this.bb = null; + this.bb_pos = 0; + } + __init(i, bb) { + this.bb_pos = i; + this.bb = bb; + return this; + } + static getRootAsInParentNamespace(bb, obj) { + return (obj || new InParentNamespace()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + static getSizePrefixedRootAsInParentNamespace(bb, obj) { + bb.setPosition(bb.position() + flatbuffers3.SIZE_PREFIX_LENGTH); + return (obj || new InParentNamespace()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + static getFullyQualifiedName() { + return "MyGame.InParentNamespace"; + } + static startInParentNamespace(builder) { + builder.startObject(0); + } + static endInParentNamespace(builder) { + const offset = builder.endObject(); + return offset; + } + static createInParentNamespace(builder) { + InParentNamespace.startInParentNamespace(builder); + return InParentNamespace.endInParentNamespace(builder); + } + serialize() { + return this.bb.bytes(); + } + static deserialize(buffer) { + return InParentNamespace.getRootAsInParentNamespace(new flatbuffers3.ByteBuffer(buffer)); + } + unpack() { + return new InParentNamespaceT(); + } + unpackTo(_o) { + } +}; +var InParentNamespaceT = class { + constructor() { + } + pack(builder) { + return InParentNamespace.createInParentNamespace(builder); + } +}; + +// my-game/example.js +var example_exports = {}; +__export(example_exports, { + Ability: () => Ability, + Any: () => Any, + AnyAmbiguousAliases: () => AnyAmbiguousAliases, + AnyUniqueAliases: () => AnyUniqueAliases, + Color: () => Color, + LongEnum: () => LongEnum, + Monster: () => Monster2, + Race: () => Race, + Referrable: () => Referrable, + Stat: () => Stat, + StructOfStructs: () => StructOfStructs, + StructOfStructsOfStructs: () => StructOfStructsOfStructs, + Test: () => Test, + TestSimpleTableWithEnum: () => TestSimpleTableWithEnum, + TypeAliases: () => TypeAliases, + Vec3: () => Vec3 +}); + +// my-game/example/ability.js +var Ability = class { + 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(); + } +}; +var AbilityT = class { + constructor(id = 0, distance = 0) { + this.id = id; + this.distance = distance; + } + pack(builder) { + return Ability.createAbility(builder, this.id, this.distance); + } +}; + +// my-game/example2/monster.js +var flatbuffers4 = __toESM(require("flatbuffers"), 1); +var Monster = class { + constructor() { + this.bb = null; + this.bb_pos = 0; + } + __init(i, bb) { + this.bb_pos = i; + this.bb = bb; + return this; + } + static getRootAsMonster(bb, obj) { + return (obj || new Monster()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + static getSizePrefixedRootAsMonster(bb, obj) { + bb.setPosition(bb.position() + flatbuffers4.SIZE_PREFIX_LENGTH); + return (obj || new Monster()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + static getFullyQualifiedName() { + return "MyGame.Example2.Monster"; + } + static startMonster(builder) { + builder.startObject(0); + } + static endMonster(builder) { + const offset = builder.endObject(); + return offset; + } + static createMonster(builder) { + Monster.startMonster(builder); + return Monster.endMonster(builder); + } + serialize() { + return this.bb.bytes(); + } + static deserialize(buffer) { + return Monster.getRootAsMonster(new flatbuffers4.ByteBuffer(buffer)); + } + unpack() { + return new MonsterT(); + } + unpackTo(_o) { + } +}; +var MonsterT = class { + constructor() { + } + pack(builder) { + return Monster.createMonster(builder); + } +}; + +// my-game/example/monster.js +var flatbuffers8 = __toESM(require("flatbuffers"), 1); + +// my-game/example/any-ambiguous-aliases.js +var AnyAmbiguousAliases; +(function(AnyAmbiguousAliases2) { + AnyAmbiguousAliases2[AnyAmbiguousAliases2["NONE"] = 0] = "NONE"; + AnyAmbiguousAliases2[AnyAmbiguousAliases2["M1"] = 1] = "M1"; + AnyAmbiguousAliases2[AnyAmbiguousAliases2["M2"] = 2] = "M2"; + AnyAmbiguousAliases2[AnyAmbiguousAliases2["M3"] = 3] = "M3"; +})(AnyAmbiguousAliases = AnyAmbiguousAliases || (AnyAmbiguousAliases = {})); +function unionToAnyAmbiguousAliases(type, accessor) { + switch (AnyAmbiguousAliases[type]) { + case "NONE": + return null; + case "M1": + return accessor(new Monster2()); + case "M2": + return accessor(new Monster2()); + case "M3": + return accessor(new Monster2()); + default: + return null; + } +} + +// my-game/example/test-simple-table-with-enum.js +var flatbuffers5 = __toESM(require("flatbuffers"), 1); + +// my-game/example/color.js +var Color; +(function(Color2) { + Color2[Color2["Red"] = 1] = "Red"; + Color2[Color2["Green"] = 2] = "Green"; + Color2[Color2["Blue"] = 8] = "Blue"; +})(Color = Color || (Color = {})); + +// my-game/example/test-simple-table-with-enum.js +var TestSimpleTableWithEnum = class { + constructor() { + this.bb = null; + this.bb_pos = 0; + } + __init(i, bb) { + this.bb_pos = i; + this.bb = bb; + return this; + } + static getRootAsTestSimpleTableWithEnum(bb, obj) { + return (obj || new TestSimpleTableWithEnum()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + static getSizePrefixedRootAsTestSimpleTableWithEnum(bb, obj) { + bb.setPosition(bb.position() + flatbuffers5.SIZE_PREFIX_LENGTH); + return (obj || new TestSimpleTableWithEnum()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + color() { + const offset = this.bb.__offset(this.bb_pos, 4); + return offset ? this.bb.readUint8(this.bb_pos + offset) : Color.Green; + } + mutate_color(value) { + const offset = this.bb.__offset(this.bb_pos, 4); + if (offset === 0) { + return false; + } + this.bb.writeUint8(this.bb_pos + offset, value); + return true; + } + static getFullyQualifiedName() { + return "MyGame.Example.TestSimpleTableWithEnum"; + } + static startTestSimpleTableWithEnum(builder) { + builder.startObject(1); + } + static addColor(builder, color) { + builder.addFieldInt8(0, color, Color.Green); + } + static endTestSimpleTableWithEnum(builder) { + const offset = builder.endObject(); + return offset; + } + static createTestSimpleTableWithEnum(builder, color) { + TestSimpleTableWithEnum.startTestSimpleTableWithEnum(builder); + TestSimpleTableWithEnum.addColor(builder, color); + return TestSimpleTableWithEnum.endTestSimpleTableWithEnum(builder); + } + serialize() { + return this.bb.bytes(); + } + static deserialize(buffer) { + return TestSimpleTableWithEnum.getRootAsTestSimpleTableWithEnum(new flatbuffers5.ByteBuffer(buffer)); + } + unpack() { + return new TestSimpleTableWithEnumT(this.color()); + } + unpackTo(_o) { + _o.color = this.color(); + } +}; +var TestSimpleTableWithEnumT = class { + constructor(color = Color.Green) { + this.color = color; + } + pack(builder) { + return TestSimpleTableWithEnum.createTestSimpleTableWithEnum(builder, this.color); + } +}; + +// my-game/example/any-unique-aliases.js +var AnyUniqueAliases; +(function(AnyUniqueAliases2) { + AnyUniqueAliases2[AnyUniqueAliases2["NONE"] = 0] = "NONE"; + AnyUniqueAliases2[AnyUniqueAliases2["M"] = 1] = "M"; + AnyUniqueAliases2[AnyUniqueAliases2["TS"] = 2] = "TS"; + AnyUniqueAliases2[AnyUniqueAliases2["M2"] = 3] = "M2"; +})(AnyUniqueAliases = AnyUniqueAliases || (AnyUniqueAliases = {})); +function unionToAnyUniqueAliases(type, accessor) { + switch (AnyUniqueAliases[type]) { + case "NONE": + return null; + case "M": + return accessor(new Monster2()); + case "TS": + return accessor(new TestSimpleTableWithEnum()); + case "M2": + return accessor(new Monster()); + default: + return null; + } +} + +// my-game/example/race.js +var Race; +(function(Race2) { + Race2[Race2["None"] = -1] = "None"; + Race2[Race2["Human"] = 0] = "Human"; + Race2[Race2["Dwarf"] = 1] = "Dwarf"; + Race2[Race2["Elf"] = 2] = "Elf"; +})(Race = Race || (Race = {})); + +// my-game/example/referrable.js +var flatbuffers6 = __toESM(require("flatbuffers"), 1); +var Referrable = class { + 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() + flatbuffers6.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 flatbuffers6.ByteBuffer(buffer)); + } + unpack() { + return new ReferrableT(this.id()); + } + unpackTo(_o) { + _o.id = this.id(); + } +}; +var ReferrableT = class { + constructor(id = BigInt("0")) { + this.id = id; + } + pack(builder) { + return Referrable.createReferrable(builder, this.id); + } +}; + +// my-game/example/stat.js +var flatbuffers7 = __toESM(require("flatbuffers"), 1); +var Stat = class { + 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() + flatbuffers7.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 flatbuffers7.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(); + } +}; +var StatT = class { + 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); + } +}; + +// my-game/example/test.js +var Test = 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.readInt16(this.bb_pos); + } + mutate_a(value) { + this.bb.writeInt16(this.bb_pos + 0, value); + return true; + } + b() { + return this.bb.readInt8(this.bb_pos + 2); + } + mutate_b(value) { + this.bb.writeInt8(this.bb_pos + 2, value); + return true; + } + static getFullyQualifiedName() { + return "MyGame.Example.Test"; + } + static sizeOf() { + return 4; + } + static createTest(builder, a, b) { + builder.prep(2, 4); + builder.pad(1); + builder.writeInt8(b); + builder.writeInt16(a); + return builder.offset(); + } + unpack() { + return new TestT(this.a(), this.b()); + } + unpackTo(_o) { + _o.a = this.a(); + _o.b = this.b(); + } +}; +var TestT = class { + constructor(a = 0, b = 0) { + this.a = a; + this.b = b; + } + pack(builder) { + return Test.createTest(builder, this.a, this.b); + } +}; + +// my-game/example/vec3.js +var Vec3 = class { + constructor() { + this.bb = null; + this.bb_pos = 0; + } + __init(i, bb) { + this.bb_pos = i; + this.bb = bb; + return this; + } + x() { + return this.bb.readFloat32(this.bb_pos); + } + mutate_x(value) { + this.bb.writeFloat32(this.bb_pos + 0, value); + return true; + } + y() { + return this.bb.readFloat32(this.bb_pos + 4); + } + mutate_y(value) { + this.bb.writeFloat32(this.bb_pos + 4, value); + return true; + } + z() { + return this.bb.readFloat32(this.bb_pos + 8); + } + mutate_z(value) { + this.bb.writeFloat32(this.bb_pos + 8, value); + return true; + } + test1() { + return this.bb.readFloat64(this.bb_pos + 16); + } + mutate_test1(value) { + this.bb.writeFloat64(this.bb_pos + 16, value); + return true; + } + test2() { + return this.bb.readUint8(this.bb_pos + 24); + } + mutate_test2(value) { + this.bb.writeUint8(this.bb_pos + 24, value); + return true; + } + test3(obj) { + return (obj || new Test()).__init(this.bb_pos + 26, this.bb); + } + static getFullyQualifiedName() { + return "MyGame.Example.Vec3"; + } + static sizeOf() { + return 32; + } + static createVec3(builder, x, y, z, test1, test2, test3_a, test3_b) { + builder.prep(8, 32); + builder.pad(2); + builder.prep(2, 4); + builder.pad(1); + builder.writeInt8(test3_b); + builder.writeInt16(test3_a); + builder.pad(1); + builder.writeInt8(test2); + builder.writeFloat64(test1); + builder.pad(4); + builder.writeFloat32(z); + builder.writeFloat32(y); + builder.writeFloat32(x); + return builder.offset(); + } + unpack() { + return new Vec3T(this.x(), this.y(), this.z(), this.test1(), this.test2(), this.test3() !== null ? this.test3().unpack() : null); + } + unpackTo(_o) { + _o.x = this.x(); + _o.y = this.y(); + _o.z = this.z(); + _o.test1 = this.test1(); + _o.test2 = this.test2(); + _o.test3 = this.test3() !== null ? this.test3().unpack() : null; + } +}; +var Vec3T = class { + constructor(x = 0, y = 0, z = 0, test1 = 0, test2 = 0, test3 = null) { + this.x = x; + this.y = y; + this.z = z; + this.test1 = test1; + this.test2 = test2; + this.test3 = test3; + } + pack(builder) { + return Vec3.createVec3(builder, this.x, this.y, this.z, this.test1, this.test2, this.test3?.a ?? 0, this.test3?.b ?? 0); + } +}; + +// my-game/example/monster.js +var Monster2 = class { + constructor() { + this.bb = null; + this.bb_pos = 0; + } + __init(i, bb) { + this.bb_pos = i; + this.bb = bb; + return this; + } + static getRootAsMonster(bb, obj) { + return (obj || new Monster2()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + static getSizePrefixedRootAsMonster(bb, obj) { + bb.setPosition(bb.position() + flatbuffers8.SIZE_PREFIX_LENGTH); + return (obj || new Monster2()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + static bufferHasIdentifier(bb) { + return bb.__has_identifier("MONS"); + } + pos(obj) { + const offset = this.bb.__offset(this.bb_pos, 4); + return offset ? (obj || new Vec3()).__init(this.bb_pos + offset, this.bb) : null; + } + mana() { + const offset = this.bb.__offset(this.bb_pos, 6); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 150; + } + mutate_mana(value) { + const offset = this.bb.__offset(this.bb_pos, 6); + if (offset === 0) { + return false; + } + this.bb.writeInt16(this.bb_pos + offset, value); + return true; + } + hp() { + const offset = this.bb.__offset(this.bb_pos, 8); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 100; + } + mutate_hp(value) { + const offset = this.bb.__offset(this.bb_pos, 8); + if (offset === 0) { + return false; + } + this.bb.writeInt16(this.bb_pos + offset, value); + return true; + } + name(optionalEncoding) { + const offset = this.bb.__offset(this.bb_pos, 10); + return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; + } + inventory(index) { + const offset = this.bb.__offset(this.bb_pos, 14); + return offset ? this.bb.readUint8(this.bb.__vector(this.bb_pos + offset) + index) : 0; + } + inventoryLength() { + const offset = this.bb.__offset(this.bb_pos, 14); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + inventoryArray() { + const offset = this.bb.__offset(this.bb_pos, 14); + return offset ? new Uint8Array(this.bb.bytes().buffer, this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + offset), this.bb.__vector_len(this.bb_pos + offset)) : null; + } + color() { + const offset = this.bb.__offset(this.bb_pos, 16); + return offset ? this.bb.readUint8(this.bb_pos + offset) : Color.Blue; + } + mutate_color(value) { + const offset = this.bb.__offset(this.bb_pos, 16); + if (offset === 0) { + return false; + } + this.bb.writeUint8(this.bb_pos + offset, value); + return true; + } + testType() { + const offset = this.bb.__offset(this.bb_pos, 18); + return offset ? this.bb.readUint8(this.bb_pos + offset) : Any.NONE; + } + test(obj) { + const offset = this.bb.__offset(this.bb_pos, 20); + return offset ? this.bb.__union(obj, this.bb_pos + offset) : null; + } + test4(index, obj) { + const offset = this.bb.__offset(this.bb_pos, 22); + return offset ? (obj || new Test()).__init(this.bb.__vector(this.bb_pos + offset) + index * 4, this.bb) : null; + } + test4Length() { + const offset = this.bb.__offset(this.bb_pos, 22); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + testarrayofstring(index, optionalEncoding) { + const offset = this.bb.__offset(this.bb_pos, 24); + return offset ? this.bb.__string(this.bb.__vector(this.bb_pos + offset) + index * 4, optionalEncoding) : null; + } + testarrayofstringLength() { + const offset = this.bb.__offset(this.bb_pos, 24); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + testarrayoftables(index, obj) { + const offset = this.bb.__offset(this.bb_pos, 26); + return offset ? (obj || new Monster2()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; + } + testarrayoftablesLength() { + const offset = this.bb.__offset(this.bb_pos, 26); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + enemy(obj) { + const offset = this.bb.__offset(this.bb_pos, 28); + return offset ? (obj || new Monster2()).__init(this.bb.__indirect(this.bb_pos + offset), this.bb) : null; + } + testnestedflatbuffer(index) { + const offset = this.bb.__offset(this.bb_pos, 30); + return offset ? this.bb.readUint8(this.bb.__vector(this.bb_pos + offset) + index) : 0; + } + testnestedflatbufferLength() { + const offset = this.bb.__offset(this.bb_pos, 30); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + testnestedflatbufferArray() { + const offset = this.bb.__offset(this.bb_pos, 30); + return offset ? new Uint8Array(this.bb.bytes().buffer, this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + offset), this.bb.__vector_len(this.bb_pos + offset)) : null; + } + testempty(obj) { + const offset = this.bb.__offset(this.bb_pos, 32); + return offset ? (obj || new Stat()).__init(this.bb.__indirect(this.bb_pos + offset), this.bb) : null; + } + testbool() { + const offset = this.bb.__offset(this.bb_pos, 34); + return offset ? !!this.bb.readInt8(this.bb_pos + offset) : false; + } + mutate_testbool(value) { + const offset = this.bb.__offset(this.bb_pos, 34); + if (offset === 0) { + return false; + } + this.bb.writeInt8(this.bb_pos + offset, +value); + return true; + } + testhashs32Fnv1() { + const offset = this.bb.__offset(this.bb_pos, 36); + return offset ? this.bb.readInt32(this.bb_pos + offset) : 0; + } + mutate_testhashs32_fnv1(value) { + const offset = this.bb.__offset(this.bb_pos, 36); + if (offset === 0) { + return false; + } + this.bb.writeInt32(this.bb_pos + offset, value); + return true; + } + testhashu32Fnv1() { + const offset = this.bb.__offset(this.bb_pos, 38); + return offset ? this.bb.readUint32(this.bb_pos + offset) : 0; + } + mutate_testhashu32_fnv1(value) { + const offset = this.bb.__offset(this.bb_pos, 38); + if (offset === 0) { + return false; + } + this.bb.writeUint32(this.bb_pos + offset, value); + return true; + } + testhashs64Fnv1() { + const offset = this.bb.__offset(this.bb_pos, 40); + return offset ? this.bb.readInt64(this.bb_pos + offset) : BigInt("0"); + } + mutate_testhashs64_fnv1(value) { + const offset = this.bb.__offset(this.bb_pos, 40); + if (offset === 0) { + return false; + } + this.bb.writeInt64(this.bb_pos + offset, value); + return true; + } + testhashu64Fnv1() { + const offset = this.bb.__offset(this.bb_pos, 42); + return offset ? this.bb.readUint64(this.bb_pos + offset) : BigInt("0"); + } + mutate_testhashu64_fnv1(value) { + const offset = this.bb.__offset(this.bb_pos, 42); + if (offset === 0) { + return false; + } + this.bb.writeUint64(this.bb_pos + offset, value); + return true; + } + testhashs32Fnv1a() { + const offset = this.bb.__offset(this.bb_pos, 44); + return offset ? this.bb.readInt32(this.bb_pos + offset) : 0; + } + mutate_testhashs32_fnv1a(value) { + const offset = this.bb.__offset(this.bb_pos, 44); + if (offset === 0) { + return false; + } + this.bb.writeInt32(this.bb_pos + offset, value); + return true; + } + testhashu32Fnv1a() { + const offset = this.bb.__offset(this.bb_pos, 46); + return offset ? this.bb.readUint32(this.bb_pos + offset) : 0; + } + mutate_testhashu32_fnv1a(value) { + const offset = this.bb.__offset(this.bb_pos, 46); + if (offset === 0) { + return false; + } + this.bb.writeUint32(this.bb_pos + offset, value); + return true; + } + testhashs64Fnv1a() { + const offset = this.bb.__offset(this.bb_pos, 48); + return offset ? this.bb.readInt64(this.bb_pos + offset) : BigInt("0"); + } + mutate_testhashs64_fnv1a(value) { + const offset = this.bb.__offset(this.bb_pos, 48); + if (offset === 0) { + return false; + } + this.bb.writeInt64(this.bb_pos + offset, value); + return true; + } + testhashu64Fnv1a() { + const offset = this.bb.__offset(this.bb_pos, 50); + return offset ? this.bb.readUint64(this.bb_pos + offset) : BigInt("0"); + } + mutate_testhashu64_fnv1a(value) { + const offset = this.bb.__offset(this.bb_pos, 50); + if (offset === 0) { + return false; + } + this.bb.writeUint64(this.bb_pos + offset, value); + return true; + } + testarrayofbools(index) { + const offset = this.bb.__offset(this.bb_pos, 52); + return offset ? !!this.bb.readInt8(this.bb.__vector(this.bb_pos + offset) + index) : false; + } + testarrayofboolsLength() { + const offset = this.bb.__offset(this.bb_pos, 52); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + testarrayofboolsArray() { + const offset = this.bb.__offset(this.bb_pos, 52); + return offset ? new Int8Array(this.bb.bytes().buffer, this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + offset), this.bb.__vector_len(this.bb_pos + offset)) : null; + } + testf() { + const offset = this.bb.__offset(this.bb_pos, 54); + return offset ? this.bb.readFloat32(this.bb_pos + offset) : 3.14159; + } + mutate_testf(value) { + const offset = this.bb.__offset(this.bb_pos, 54); + if (offset === 0) { + return false; + } + this.bb.writeFloat32(this.bb_pos + offset, value); + return true; + } + testf2() { + const offset = this.bb.__offset(this.bb_pos, 56); + return offset ? this.bb.readFloat32(this.bb_pos + offset) : 3; + } + mutate_testf2(value) { + const offset = this.bb.__offset(this.bb_pos, 56); + if (offset === 0) { + return false; + } + this.bb.writeFloat32(this.bb_pos + offset, value); + return true; + } + testf3() { + const offset = this.bb.__offset(this.bb_pos, 58); + return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; + } + mutate_testf3(value) { + const offset = this.bb.__offset(this.bb_pos, 58); + if (offset === 0) { + return false; + } + this.bb.writeFloat32(this.bb_pos + offset, value); + return true; + } + testarrayofstring2(index, optionalEncoding) { + const offset = this.bb.__offset(this.bb_pos, 60); + return offset ? this.bb.__string(this.bb.__vector(this.bb_pos + offset) + index * 4, optionalEncoding) : null; + } + testarrayofstring2Length() { + const offset = this.bb.__offset(this.bb_pos, 60); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + testarrayofsortedstruct(index, obj) { + const offset = this.bb.__offset(this.bb_pos, 62); + return offset ? (obj || new Ability()).__init(this.bb.__vector(this.bb_pos + offset) + index * 8, this.bb) : null; + } + testarrayofsortedstructLength() { + const offset = this.bb.__offset(this.bb_pos, 62); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + flex(index) { + const offset = this.bb.__offset(this.bb_pos, 64); + return offset ? this.bb.readUint8(this.bb.__vector(this.bb_pos + offset) + index) : 0; + } + flexLength() { + const offset = this.bb.__offset(this.bb_pos, 64); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + flexArray() { + const offset = this.bb.__offset(this.bb_pos, 64); + return offset ? new Uint8Array(this.bb.bytes().buffer, this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + offset), this.bb.__vector_len(this.bb_pos + offset)) : null; + } + test5(index, obj) { + const offset = this.bb.__offset(this.bb_pos, 66); + return offset ? (obj || new Test()).__init(this.bb.__vector(this.bb_pos + offset) + index * 4, this.bb) : null; + } + test5Length() { + const offset = this.bb.__offset(this.bb_pos, 66); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + vectorOfLongs(index) { + const offset = this.bb.__offset(this.bb_pos, 68); + return offset ? this.bb.readInt64(this.bb.__vector(this.bb_pos + offset) + index * 8) : BigInt(0); + } + vectorOfLongsLength() { + const offset = this.bb.__offset(this.bb_pos, 68); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + vectorOfDoubles(index) { + const offset = this.bb.__offset(this.bb_pos, 70); + return offset ? this.bb.readFloat64(this.bb.__vector(this.bb_pos + offset) + index * 8) : 0; + } + vectorOfDoublesLength() { + const offset = this.bb.__offset(this.bb_pos, 70); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + vectorOfDoublesArray() { + const offset = this.bb.__offset(this.bb_pos, 70); + return offset ? new Float64Array(this.bb.bytes().buffer, this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + offset), this.bb.__vector_len(this.bb_pos + offset)) : null; + } + parentNamespaceTest(obj) { + const offset = this.bb.__offset(this.bb_pos, 72); + return offset ? (obj || new InParentNamespace()).__init(this.bb.__indirect(this.bb_pos + offset), this.bb) : null; + } + vectorOfReferrables(index, obj) { + const offset = this.bb.__offset(this.bb_pos, 74); + return offset ? (obj || new Referrable()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; + } + vectorOfReferrablesLength() { + const offset = this.bb.__offset(this.bb_pos, 74); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + singleWeakReference() { + const offset = this.bb.__offset(this.bb_pos, 76); + return offset ? this.bb.readUint64(this.bb_pos + offset) : BigInt("0"); + } + mutate_single_weak_reference(value) { + const offset = this.bb.__offset(this.bb_pos, 76); + if (offset === 0) { + return false; + } + this.bb.writeUint64(this.bb_pos + offset, value); + return true; + } + vectorOfWeakReferences(index) { + const offset = this.bb.__offset(this.bb_pos, 78); + return offset ? this.bb.readUint64(this.bb.__vector(this.bb_pos + offset) + index * 8) : BigInt(0); + } + vectorOfWeakReferencesLength() { + const offset = this.bb.__offset(this.bb_pos, 78); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + vectorOfStrongReferrables(index, obj) { + const offset = this.bb.__offset(this.bb_pos, 80); + return offset ? (obj || new Referrable()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; + } + vectorOfStrongReferrablesLength() { + const offset = this.bb.__offset(this.bb_pos, 80); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + coOwningReference() { + const offset = this.bb.__offset(this.bb_pos, 82); + return offset ? this.bb.readUint64(this.bb_pos + offset) : BigInt("0"); + } + mutate_co_owning_reference(value) { + const offset = this.bb.__offset(this.bb_pos, 82); + if (offset === 0) { + return false; + } + this.bb.writeUint64(this.bb_pos + offset, value); + return true; + } + vectorOfCoOwningReferences(index) { + const offset = this.bb.__offset(this.bb_pos, 84); + return offset ? this.bb.readUint64(this.bb.__vector(this.bb_pos + offset) + index * 8) : BigInt(0); + } + vectorOfCoOwningReferencesLength() { + const offset = this.bb.__offset(this.bb_pos, 84); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + nonOwningReference() { + const offset = this.bb.__offset(this.bb_pos, 86); + return offset ? this.bb.readUint64(this.bb_pos + offset) : BigInt("0"); + } + mutate_non_owning_reference(value) { + const offset = this.bb.__offset(this.bb_pos, 86); + if (offset === 0) { + return false; + } + this.bb.writeUint64(this.bb_pos + offset, value); + return true; + } + vectorOfNonOwningReferences(index) { + const offset = this.bb.__offset(this.bb_pos, 88); + return offset ? this.bb.readUint64(this.bb.__vector(this.bb_pos + offset) + index * 8) : BigInt(0); + } + vectorOfNonOwningReferencesLength() { + const offset = this.bb.__offset(this.bb_pos, 88); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + anyUniqueType() { + const offset = this.bb.__offset(this.bb_pos, 90); + return offset ? this.bb.readUint8(this.bb_pos + offset) : AnyUniqueAliases.NONE; + } + anyUnique(obj) { + const offset = this.bb.__offset(this.bb_pos, 92); + return offset ? this.bb.__union(obj, this.bb_pos + offset) : null; + } + anyAmbiguousType() { + const offset = this.bb.__offset(this.bb_pos, 94); + return offset ? this.bb.readUint8(this.bb_pos + offset) : AnyAmbiguousAliases.NONE; + } + anyAmbiguous(obj) { + const offset = this.bb.__offset(this.bb_pos, 96); + return offset ? this.bb.__union(obj, this.bb_pos + offset) : null; + } + vectorOfEnums(index) { + const offset = this.bb.__offset(this.bb_pos, 98); + return offset ? this.bb.readUint8(this.bb.__vector(this.bb_pos + offset) + index) : 0; + } + vectorOfEnumsLength() { + const offset = this.bb.__offset(this.bb_pos, 98); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + vectorOfEnumsArray() { + const offset = this.bb.__offset(this.bb_pos, 98); + return offset ? new Uint8Array(this.bb.bytes().buffer, this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + offset), this.bb.__vector_len(this.bb_pos + offset)) : null; + } + signedEnum() { + const offset = this.bb.__offset(this.bb_pos, 100); + return offset ? this.bb.readInt8(this.bb_pos + offset) : Race.None; + } + mutate_signed_enum(value) { + const offset = this.bb.__offset(this.bb_pos, 100); + if (offset === 0) { + return false; + } + this.bb.writeInt8(this.bb_pos + offset, value); + return true; + } + testrequirednestedflatbuffer(index) { + const offset = this.bb.__offset(this.bb_pos, 102); + return offset ? this.bb.readUint8(this.bb.__vector(this.bb_pos + offset) + index) : 0; + } + testrequirednestedflatbufferLength() { + const offset = this.bb.__offset(this.bb_pos, 102); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + testrequirednestedflatbufferArray() { + const offset = this.bb.__offset(this.bb_pos, 102); + return offset ? new Uint8Array(this.bb.bytes().buffer, this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + offset), this.bb.__vector_len(this.bb_pos + offset)) : null; + } + scalarKeySortedTables(index, obj) { + const offset = this.bb.__offset(this.bb_pos, 104); + return offset ? (obj || new Stat()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; + } + scalarKeySortedTablesLength() { + const offset = this.bb.__offset(this.bb_pos, 104); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + nativeInline(obj) { + const offset = this.bb.__offset(this.bb_pos, 106); + return offset ? (obj || new Test()).__init(this.bb_pos + offset, this.bb) : null; + } + longEnumNonEnumDefault() { + const offset = this.bb.__offset(this.bb_pos, 108); + return offset ? this.bb.readUint64(this.bb_pos + offset) : BigInt("0"); + } + mutate_long_enum_non_enum_default(value) { + const offset = this.bb.__offset(this.bb_pos, 108); + if (offset === 0) { + return false; + } + this.bb.writeUint64(this.bb_pos + offset, value); + return true; + } + longEnumNormalDefault() { + const offset = this.bb.__offset(this.bb_pos, 110); + return offset ? this.bb.readUint64(this.bb_pos + offset) : BigInt("2"); + } + mutate_long_enum_normal_default(value) { + const offset = this.bb.__offset(this.bb_pos, 110); + if (offset === 0) { + return false; + } + this.bb.writeUint64(this.bb_pos + offset, value); + return true; + } + nanDefault() { + const offset = this.bb.__offset(this.bb_pos, 112); + return offset ? this.bb.readFloat32(this.bb_pos + offset) : NaN; + } + mutate_nan_default(value) { + const offset = this.bb.__offset(this.bb_pos, 112); + if (offset === 0) { + return false; + } + this.bb.writeFloat32(this.bb_pos + offset, value); + return true; + } + infDefault() { + const offset = this.bb.__offset(this.bb_pos, 114); + return offset ? this.bb.readFloat32(this.bb_pos + offset) : Infinity; + } + mutate_inf_default(value) { + const offset = this.bb.__offset(this.bb_pos, 114); + if (offset === 0) { + return false; + } + this.bb.writeFloat32(this.bb_pos + offset, value); + return true; + } + positiveInfDefault() { + const offset = this.bb.__offset(this.bb_pos, 116); + return offset ? this.bb.readFloat32(this.bb_pos + offset) : Infinity; + } + mutate_positive_inf_default(value) { + const offset = this.bb.__offset(this.bb_pos, 116); + if (offset === 0) { + return false; + } + this.bb.writeFloat32(this.bb_pos + offset, value); + return true; + } + infinityDefault() { + const offset = this.bb.__offset(this.bb_pos, 118); + return offset ? this.bb.readFloat32(this.bb_pos + offset) : Infinity; + } + mutate_infinity_default(value) { + const offset = this.bb.__offset(this.bb_pos, 118); + if (offset === 0) { + return false; + } + this.bb.writeFloat32(this.bb_pos + offset, value); + return true; + } + positiveInfinityDefault() { + const offset = this.bb.__offset(this.bb_pos, 120); + return offset ? this.bb.readFloat32(this.bb_pos + offset) : Infinity; + } + mutate_positive_infinity_default(value) { + const offset = this.bb.__offset(this.bb_pos, 120); + if (offset === 0) { + return false; + } + this.bb.writeFloat32(this.bb_pos + offset, value); + return true; + } + negativeInfDefault() { + const offset = this.bb.__offset(this.bb_pos, 122); + return offset ? this.bb.readFloat32(this.bb_pos + offset) : -Infinity; + } + mutate_negative_inf_default(value) { + const offset = this.bb.__offset(this.bb_pos, 122); + if (offset === 0) { + return false; + } + this.bb.writeFloat32(this.bb_pos + offset, value); + return true; + } + negativeInfinityDefault() { + const offset = this.bb.__offset(this.bb_pos, 124); + return offset ? this.bb.readFloat32(this.bb_pos + offset) : -Infinity; + } + mutate_negative_infinity_default(value) { + const offset = this.bb.__offset(this.bb_pos, 124); + if (offset === 0) { + return false; + } + this.bb.writeFloat32(this.bb_pos + offset, value); + return true; + } + doubleInfDefault() { + const offset = this.bb.__offset(this.bb_pos, 126); + return offset ? this.bb.readFloat64(this.bb_pos + offset) : Infinity; + } + mutate_double_inf_default(value) { + const offset = this.bb.__offset(this.bb_pos, 126); + if (offset === 0) { + return false; + } + this.bb.writeFloat64(this.bb_pos + offset, value); + return true; + } + static getFullyQualifiedName() { + return "MyGame.Example.Monster"; + } + static startMonster(builder) { + builder.startObject(62); + } + static addPos(builder, posOffset) { + builder.addFieldStruct(0, posOffset, 0); + } + static addMana(builder, mana) { + builder.addFieldInt16(1, mana, 150); + } + static addHp(builder, hp) { + builder.addFieldInt16(2, hp, 100); + } + static addName(builder, nameOffset) { + builder.addFieldOffset(3, nameOffset, 0); + } + static addInventory(builder, inventoryOffset) { + builder.addFieldOffset(5, inventoryOffset, 0); + } + static createInventoryVector(builder, data) { + builder.startVector(1, data.length, 1); + for (let i = data.length - 1; i >= 0; i--) { + builder.addInt8(data[i]); + } + return builder.endVector(); + } + static startInventoryVector(builder, numElems) { + builder.startVector(1, numElems, 1); + } + static addColor(builder, color) { + builder.addFieldInt8(6, color, Color.Blue); + } + static addTestType(builder, testType) { + builder.addFieldInt8(7, testType, Any.NONE); + } + static addTest(builder, testOffset) { + builder.addFieldOffset(8, testOffset, 0); + } + static addTest4(builder, test4Offset) { + builder.addFieldOffset(9, test4Offset, 0); + } + static startTest4Vector(builder, numElems) { + builder.startVector(4, numElems, 2); + } + static addTestarrayofstring(builder, testarrayofstringOffset) { + builder.addFieldOffset(10, testarrayofstringOffset, 0); + } + static createTestarrayofstringVector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) { + builder.addOffset(data[i]); + } + return builder.endVector(); + } + static startTestarrayofstringVector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static addTestarrayoftables(builder, testarrayoftablesOffset) { + builder.addFieldOffset(11, testarrayoftablesOffset, 0); + } + static createTestarrayoftablesVector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) { + builder.addOffset(data[i]); + } + return builder.endVector(); + } + static startTestarrayoftablesVector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static addEnemy(builder, enemyOffset) { + builder.addFieldOffset(12, enemyOffset, 0); + } + static addTestnestedflatbuffer(builder, testnestedflatbufferOffset) { + builder.addFieldOffset(13, testnestedflatbufferOffset, 0); + } + static createTestnestedflatbufferVector(builder, data) { + builder.startVector(1, data.length, 1); + for (let i = data.length - 1; i >= 0; i--) { + builder.addInt8(data[i]); + } + return builder.endVector(); + } + static startTestnestedflatbufferVector(builder, numElems) { + builder.startVector(1, numElems, 1); + } + static addTestempty(builder, testemptyOffset) { + builder.addFieldOffset(14, testemptyOffset, 0); + } + static addTestbool(builder, testbool) { + builder.addFieldInt8(15, +testbool, 0); + } + static addTesthashs32Fnv1(builder, testhashs32Fnv1) { + builder.addFieldInt32(16, testhashs32Fnv1, 0); + } + static addTesthashu32Fnv1(builder, testhashu32Fnv1) { + builder.addFieldInt32(17, testhashu32Fnv1, 0); + } + static addTesthashs64Fnv1(builder, testhashs64Fnv1) { + builder.addFieldInt64(18, testhashs64Fnv1, BigInt("0")); + } + static addTesthashu64Fnv1(builder, testhashu64Fnv1) { + builder.addFieldInt64(19, testhashu64Fnv1, BigInt("0")); + } + static addTesthashs32Fnv1a(builder, testhashs32Fnv1a) { + builder.addFieldInt32(20, testhashs32Fnv1a, 0); + } + static addTesthashu32Fnv1a(builder, testhashu32Fnv1a) { + builder.addFieldInt32(21, testhashu32Fnv1a, 0); + } + static addTesthashs64Fnv1a(builder, testhashs64Fnv1a) { + builder.addFieldInt64(22, testhashs64Fnv1a, BigInt("0")); + } + static addTesthashu64Fnv1a(builder, testhashu64Fnv1a) { + builder.addFieldInt64(23, testhashu64Fnv1a, BigInt("0")); + } + static addTestarrayofbools(builder, testarrayofboolsOffset) { + builder.addFieldOffset(24, testarrayofboolsOffset, 0); + } + static createTestarrayofboolsVector(builder, data) { + builder.startVector(1, data.length, 1); + for (let i = data.length - 1; i >= 0; i--) { + builder.addInt8(+data[i]); + } + return builder.endVector(); + } + static startTestarrayofboolsVector(builder, numElems) { + builder.startVector(1, numElems, 1); + } + static addTestf(builder, testf) { + builder.addFieldFloat32(25, testf, 3.14159); + } + static addTestf2(builder, testf2) { + builder.addFieldFloat32(26, testf2, 3); + } + static addTestf3(builder, testf3) { + builder.addFieldFloat32(27, testf3, 0); + } + static addTestarrayofstring2(builder, testarrayofstring2Offset) { + builder.addFieldOffset(28, testarrayofstring2Offset, 0); + } + static createTestarrayofstring2Vector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) { + builder.addOffset(data[i]); + } + return builder.endVector(); + } + static startTestarrayofstring2Vector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static addTestarrayofsortedstruct(builder, testarrayofsortedstructOffset) { + builder.addFieldOffset(29, testarrayofsortedstructOffset, 0); + } + static startTestarrayofsortedstructVector(builder, numElems) { + builder.startVector(8, numElems, 4); + } + static addFlex(builder, flexOffset) { + builder.addFieldOffset(30, flexOffset, 0); + } + static createFlexVector(builder, data) { + builder.startVector(1, data.length, 1); + for (let i = data.length - 1; i >= 0; i--) { + builder.addInt8(data[i]); + } + return builder.endVector(); + } + static startFlexVector(builder, numElems) { + builder.startVector(1, numElems, 1); + } + static addTest5(builder, test5Offset) { + builder.addFieldOffset(31, test5Offset, 0); + } + static startTest5Vector(builder, numElems) { + builder.startVector(4, numElems, 2); + } + static addVectorOfLongs(builder, vectorOfLongsOffset) { + builder.addFieldOffset(32, vectorOfLongsOffset, 0); + } + static createVectorOfLongsVector(builder, data) { + builder.startVector(8, data.length, 8); + for (let i = data.length - 1; i >= 0; i--) { + builder.addInt64(data[i]); + } + return builder.endVector(); + } + static startVectorOfLongsVector(builder, numElems) { + builder.startVector(8, numElems, 8); + } + static addVectorOfDoubles(builder, vectorOfDoublesOffset) { + builder.addFieldOffset(33, vectorOfDoublesOffset, 0); + } + static createVectorOfDoublesVector(builder, data) { + builder.startVector(8, data.length, 8); + for (let i = data.length - 1; i >= 0; i--) { + builder.addFloat64(data[i]); + } + return builder.endVector(); + } + static startVectorOfDoublesVector(builder, numElems) { + builder.startVector(8, numElems, 8); + } + static addParentNamespaceTest(builder, parentNamespaceTestOffset) { + builder.addFieldOffset(34, parentNamespaceTestOffset, 0); + } + static addVectorOfReferrables(builder, vectorOfReferrablesOffset) { + builder.addFieldOffset(35, vectorOfReferrablesOffset, 0); + } + static createVectorOfReferrablesVector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) { + builder.addOffset(data[i]); + } + return builder.endVector(); + } + static startVectorOfReferrablesVector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static addSingleWeakReference(builder, singleWeakReference) { + builder.addFieldInt64(36, singleWeakReference, BigInt("0")); + } + static addVectorOfWeakReferences(builder, vectorOfWeakReferencesOffset) { + builder.addFieldOffset(37, vectorOfWeakReferencesOffset, 0); + } + static createVectorOfWeakReferencesVector(builder, data) { + builder.startVector(8, data.length, 8); + for (let i = data.length - 1; i >= 0; i--) { + builder.addInt64(data[i]); + } + return builder.endVector(); + } + static startVectorOfWeakReferencesVector(builder, numElems) { + builder.startVector(8, numElems, 8); + } + static addVectorOfStrongReferrables(builder, vectorOfStrongReferrablesOffset) { + builder.addFieldOffset(38, vectorOfStrongReferrablesOffset, 0); + } + static createVectorOfStrongReferrablesVector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) { + builder.addOffset(data[i]); + } + return builder.endVector(); + } + static startVectorOfStrongReferrablesVector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static addCoOwningReference(builder, coOwningReference) { + builder.addFieldInt64(39, coOwningReference, BigInt("0")); + } + static addVectorOfCoOwningReferences(builder, vectorOfCoOwningReferencesOffset) { + builder.addFieldOffset(40, vectorOfCoOwningReferencesOffset, 0); + } + static createVectorOfCoOwningReferencesVector(builder, data) { + builder.startVector(8, data.length, 8); + for (let i = data.length - 1; i >= 0; i--) { + builder.addInt64(data[i]); + } + return builder.endVector(); + } + static startVectorOfCoOwningReferencesVector(builder, numElems) { + builder.startVector(8, numElems, 8); + } + static addNonOwningReference(builder, nonOwningReference) { + builder.addFieldInt64(41, nonOwningReference, BigInt("0")); + } + static addVectorOfNonOwningReferences(builder, vectorOfNonOwningReferencesOffset) { + builder.addFieldOffset(42, vectorOfNonOwningReferencesOffset, 0); + } + static createVectorOfNonOwningReferencesVector(builder, data) { + builder.startVector(8, data.length, 8); + for (let i = data.length - 1; i >= 0; i--) { + builder.addInt64(data[i]); + } + return builder.endVector(); + } + static startVectorOfNonOwningReferencesVector(builder, numElems) { + builder.startVector(8, numElems, 8); + } + static addAnyUniqueType(builder, anyUniqueType) { + builder.addFieldInt8(43, anyUniqueType, AnyUniqueAliases.NONE); + } + static addAnyUnique(builder, anyUniqueOffset) { + builder.addFieldOffset(44, anyUniqueOffset, 0); + } + static addAnyAmbiguousType(builder, anyAmbiguousType) { + builder.addFieldInt8(45, anyAmbiguousType, AnyAmbiguousAliases.NONE); + } + static addAnyAmbiguous(builder, anyAmbiguousOffset) { + builder.addFieldOffset(46, anyAmbiguousOffset, 0); + } + static addVectorOfEnums(builder, vectorOfEnumsOffset) { + builder.addFieldOffset(47, vectorOfEnumsOffset, 0); + } + static createVectorOfEnumsVector(builder, data) { + builder.startVector(1, data.length, 1); + for (let i = data.length - 1; i >= 0; i--) { + builder.addInt8(data[i]); + } + return builder.endVector(); + } + static startVectorOfEnumsVector(builder, numElems) { + builder.startVector(1, numElems, 1); + } + static addSignedEnum(builder, signedEnum) { + builder.addFieldInt8(48, signedEnum, Race.None); + } + static addTestrequirednestedflatbuffer(builder, testrequirednestedflatbufferOffset) { + builder.addFieldOffset(49, testrequirednestedflatbufferOffset, 0); + } + static createTestrequirednestedflatbufferVector(builder, data) { + builder.startVector(1, data.length, 1); + for (let i = data.length - 1; i >= 0; i--) { + builder.addInt8(data[i]); + } + return builder.endVector(); + } + static startTestrequirednestedflatbufferVector(builder, numElems) { + builder.startVector(1, numElems, 1); + } + static addScalarKeySortedTables(builder, scalarKeySortedTablesOffset) { + builder.addFieldOffset(50, scalarKeySortedTablesOffset, 0); + } + static createScalarKeySortedTablesVector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) { + builder.addOffset(data[i]); + } + return builder.endVector(); + } + static startScalarKeySortedTablesVector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static addNativeInline(builder, nativeInlineOffset) { + builder.addFieldStruct(51, nativeInlineOffset, 0); + } + static addLongEnumNonEnumDefault(builder, longEnumNonEnumDefault) { + builder.addFieldInt64(52, longEnumNonEnumDefault, BigInt("0")); + } + static addLongEnumNormalDefault(builder, longEnumNormalDefault) { + builder.addFieldInt64(53, longEnumNormalDefault, BigInt("2")); + } + static addNanDefault(builder, nanDefault) { + builder.addFieldFloat32(54, nanDefault, NaN); + } + static addInfDefault(builder, infDefault) { + builder.addFieldFloat32(55, infDefault, Infinity); + } + static addPositiveInfDefault(builder, positiveInfDefault) { + builder.addFieldFloat32(56, positiveInfDefault, Infinity); + } + static addInfinityDefault(builder, infinityDefault) { + builder.addFieldFloat32(57, infinityDefault, Infinity); + } + static addPositiveInfinityDefault(builder, positiveInfinityDefault) { + builder.addFieldFloat32(58, positiveInfinityDefault, Infinity); + } + static addNegativeInfDefault(builder, negativeInfDefault) { + builder.addFieldFloat32(59, negativeInfDefault, -Infinity); + } + static addNegativeInfinityDefault(builder, negativeInfinityDefault) { + builder.addFieldFloat32(60, negativeInfinityDefault, -Infinity); + } + static addDoubleInfDefault(builder, doubleInfDefault) { + builder.addFieldFloat64(61, doubleInfDefault, Infinity); + } + static endMonster(builder) { + const offset = builder.endObject(); + builder.requiredField(offset, 10); + return offset; + } + static finishMonsterBuffer(builder, offset) { + builder.finish(offset, "MONS"); + } + static finishSizePrefixedMonsterBuffer(builder, offset) { + builder.finish(offset, "MONS", true); + } + serialize() { + return this.bb.bytes(); + } + static deserialize(buffer) { + return Monster2.getRootAsMonster(new flatbuffers8.ByteBuffer(buffer)); + } + unpack() { + return new MonsterT2(this.pos() !== null ? this.pos().unpack() : null, this.mana(), this.hp(), this.name(), this.bb.createScalarList(this.inventory.bind(this), this.inventoryLength()), this.color(), this.testType(), (() => { + const temp = unionToAny(this.testType(), this.test.bind(this)); + if (temp === null) { + return null; + } + return temp.unpack(); + })(), this.bb.createObjList(this.test4.bind(this), this.test4Length()), this.bb.createScalarList(this.testarrayofstring.bind(this), this.testarrayofstringLength()), this.bb.createObjList(this.testarrayoftables.bind(this), this.testarrayoftablesLength()), this.enemy() !== null ? this.enemy().unpack() : null, this.bb.createScalarList(this.testnestedflatbuffer.bind(this), this.testnestedflatbufferLength()), this.testempty() !== null ? this.testempty().unpack() : null, this.testbool(), this.testhashs32Fnv1(), this.testhashu32Fnv1(), this.testhashs64Fnv1(), this.testhashu64Fnv1(), this.testhashs32Fnv1a(), this.testhashu32Fnv1a(), this.testhashs64Fnv1a(), this.testhashu64Fnv1a(), this.bb.createScalarList(this.testarrayofbools.bind(this), this.testarrayofboolsLength()), this.testf(), this.testf2(), this.testf3(), this.bb.createScalarList(this.testarrayofstring2.bind(this), this.testarrayofstring2Length()), this.bb.createObjList(this.testarrayofsortedstruct.bind(this), this.testarrayofsortedstructLength()), this.bb.createScalarList(this.flex.bind(this), this.flexLength()), this.bb.createObjList(this.test5.bind(this), this.test5Length()), this.bb.createScalarList(this.vectorOfLongs.bind(this), this.vectorOfLongsLength()), this.bb.createScalarList(this.vectorOfDoubles.bind(this), this.vectorOfDoublesLength()), this.parentNamespaceTest() !== null ? this.parentNamespaceTest().unpack() : null, this.bb.createObjList(this.vectorOfReferrables.bind(this), this.vectorOfReferrablesLength()), this.singleWeakReference(), this.bb.createScalarList(this.vectorOfWeakReferences.bind(this), this.vectorOfWeakReferencesLength()), this.bb.createObjList(this.vectorOfStrongReferrables.bind(this), this.vectorOfStrongReferrablesLength()), this.coOwningReference(), this.bb.createScalarList(this.vectorOfCoOwningReferences.bind(this), this.vectorOfCoOwningReferencesLength()), this.nonOwningReference(), this.bb.createScalarList(this.vectorOfNonOwningReferences.bind(this), this.vectorOfNonOwningReferencesLength()), this.anyUniqueType(), (() => { + const temp = unionToAnyUniqueAliases(this.anyUniqueType(), this.anyUnique.bind(this)); + if (temp === null) { + return null; + } + return temp.unpack(); + })(), this.anyAmbiguousType(), (() => { + const temp = unionToAnyAmbiguousAliases(this.anyAmbiguousType(), this.anyAmbiguous.bind(this)); + if (temp === null) { + return null; + } + return temp.unpack(); + })(), this.bb.createScalarList(this.vectorOfEnums.bind(this), this.vectorOfEnumsLength()), this.signedEnum(), this.bb.createScalarList(this.testrequirednestedflatbuffer.bind(this), this.testrequirednestedflatbufferLength()), this.bb.createObjList(this.scalarKeySortedTables.bind(this), this.scalarKeySortedTablesLength()), this.nativeInline() !== null ? this.nativeInline().unpack() : null, this.longEnumNonEnumDefault(), this.longEnumNormalDefault(), this.nanDefault(), this.infDefault(), this.positiveInfDefault(), this.infinityDefault(), this.positiveInfinityDefault(), this.negativeInfDefault(), this.negativeInfinityDefault(), this.doubleInfDefault()); + } + unpackTo(_o) { + _o.pos = this.pos() !== null ? this.pos().unpack() : null; + _o.mana = this.mana(); + _o.hp = this.hp(); + _o.name = this.name(); + _o.inventory = this.bb.createScalarList(this.inventory.bind(this), this.inventoryLength()); + _o.color = this.color(); + _o.testType = this.testType(); + _o.test = (() => { + const temp = unionToAny(this.testType(), this.test.bind(this)); + if (temp === null) { + return null; + } + return temp.unpack(); + })(); + _o.test4 = this.bb.createObjList(this.test4.bind(this), this.test4Length()); + _o.testarrayofstring = this.bb.createScalarList(this.testarrayofstring.bind(this), this.testarrayofstringLength()); + _o.testarrayoftables = this.bb.createObjList(this.testarrayoftables.bind(this), this.testarrayoftablesLength()); + _o.enemy = this.enemy() !== null ? this.enemy().unpack() : null; + _o.testnestedflatbuffer = this.bb.createScalarList(this.testnestedflatbuffer.bind(this), this.testnestedflatbufferLength()); + _o.testempty = this.testempty() !== null ? this.testempty().unpack() : null; + _o.testbool = this.testbool(); + _o.testhashs32Fnv1 = this.testhashs32Fnv1(); + _o.testhashu32Fnv1 = this.testhashu32Fnv1(); + _o.testhashs64Fnv1 = this.testhashs64Fnv1(); + _o.testhashu64Fnv1 = this.testhashu64Fnv1(); + _o.testhashs32Fnv1a = this.testhashs32Fnv1a(); + _o.testhashu32Fnv1a = this.testhashu32Fnv1a(); + _o.testhashs64Fnv1a = this.testhashs64Fnv1a(); + _o.testhashu64Fnv1a = this.testhashu64Fnv1a(); + _o.testarrayofbools = this.bb.createScalarList(this.testarrayofbools.bind(this), this.testarrayofboolsLength()); + _o.testf = this.testf(); + _o.testf2 = this.testf2(); + _o.testf3 = this.testf3(); + _o.testarrayofstring2 = this.bb.createScalarList(this.testarrayofstring2.bind(this), this.testarrayofstring2Length()); + _o.testarrayofsortedstruct = this.bb.createObjList(this.testarrayofsortedstruct.bind(this), this.testarrayofsortedstructLength()); + _o.flex = this.bb.createScalarList(this.flex.bind(this), this.flexLength()); + _o.test5 = this.bb.createObjList(this.test5.bind(this), this.test5Length()); + _o.vectorOfLongs = this.bb.createScalarList(this.vectorOfLongs.bind(this), this.vectorOfLongsLength()); + _o.vectorOfDoubles = this.bb.createScalarList(this.vectorOfDoubles.bind(this), this.vectorOfDoublesLength()); + _o.parentNamespaceTest = this.parentNamespaceTest() !== null ? this.parentNamespaceTest().unpack() : null; + _o.vectorOfReferrables = this.bb.createObjList(this.vectorOfReferrables.bind(this), this.vectorOfReferrablesLength()); + _o.singleWeakReference = this.singleWeakReference(); + _o.vectorOfWeakReferences = this.bb.createScalarList(this.vectorOfWeakReferences.bind(this), this.vectorOfWeakReferencesLength()); + _o.vectorOfStrongReferrables = this.bb.createObjList(this.vectorOfStrongReferrables.bind(this), this.vectorOfStrongReferrablesLength()); + _o.coOwningReference = this.coOwningReference(); + _o.vectorOfCoOwningReferences = this.bb.createScalarList(this.vectorOfCoOwningReferences.bind(this), this.vectorOfCoOwningReferencesLength()); + _o.nonOwningReference = this.nonOwningReference(); + _o.vectorOfNonOwningReferences = this.bb.createScalarList(this.vectorOfNonOwningReferences.bind(this), this.vectorOfNonOwningReferencesLength()); + _o.anyUniqueType = this.anyUniqueType(); + _o.anyUnique = (() => { + const temp = unionToAnyUniqueAliases(this.anyUniqueType(), this.anyUnique.bind(this)); + if (temp === null) { + return null; + } + return temp.unpack(); + })(); + _o.anyAmbiguousType = this.anyAmbiguousType(); + _o.anyAmbiguous = (() => { + const temp = unionToAnyAmbiguousAliases(this.anyAmbiguousType(), this.anyAmbiguous.bind(this)); + if (temp === null) { + return null; + } + return temp.unpack(); + })(); + _o.vectorOfEnums = this.bb.createScalarList(this.vectorOfEnums.bind(this), this.vectorOfEnumsLength()); + _o.signedEnum = this.signedEnum(); + _o.testrequirednestedflatbuffer = this.bb.createScalarList(this.testrequirednestedflatbuffer.bind(this), this.testrequirednestedflatbufferLength()); + _o.scalarKeySortedTables = this.bb.createObjList(this.scalarKeySortedTables.bind(this), this.scalarKeySortedTablesLength()); + _o.nativeInline = this.nativeInline() !== null ? this.nativeInline().unpack() : null; + _o.longEnumNonEnumDefault = this.longEnumNonEnumDefault(); + _o.longEnumNormalDefault = this.longEnumNormalDefault(); + _o.nanDefault = this.nanDefault(); + _o.infDefault = this.infDefault(); + _o.positiveInfDefault = this.positiveInfDefault(); + _o.infinityDefault = this.infinityDefault(); + _o.positiveInfinityDefault = this.positiveInfinityDefault(); + _o.negativeInfDefault = this.negativeInfDefault(); + _o.negativeInfinityDefault = this.negativeInfinityDefault(); + _o.doubleInfDefault = this.doubleInfDefault(); + } +}; +var MonsterT2 = class { + constructor(pos = null, mana = 150, hp = 100, name = null, inventory = [], color = Color.Blue, testType = Any.NONE, test = null, test4 = [], testarrayofstring = [], testarrayoftables = [], enemy = null, testnestedflatbuffer = [], testempty = null, testbool = false, testhashs32Fnv1 = 0, testhashu32Fnv1 = 0, testhashs64Fnv1 = BigInt("0"), testhashu64Fnv1 = BigInt("0"), testhashs32Fnv1a = 0, testhashu32Fnv1a = 0, testhashs64Fnv1a = BigInt("0"), testhashu64Fnv1a = BigInt("0"), testarrayofbools = [], testf = 3.14159, testf2 = 3, testf3 = 0, testarrayofstring2 = [], testarrayofsortedstruct = [], flex = [], test5 = [], vectorOfLongs = [], vectorOfDoubles = [], parentNamespaceTest = null, vectorOfReferrables = [], singleWeakReference = BigInt("0"), vectorOfWeakReferences = [], vectorOfStrongReferrables = [], coOwningReference = BigInt("0"), vectorOfCoOwningReferences = [], nonOwningReference = BigInt("0"), vectorOfNonOwningReferences = [], anyUniqueType = AnyUniqueAliases.NONE, anyUnique = null, anyAmbiguousType = AnyAmbiguousAliases.NONE, anyAmbiguous = null, vectorOfEnums = [], signedEnum = Race.None, testrequirednestedflatbuffer = [], scalarKeySortedTables = [], nativeInline = null, longEnumNonEnumDefault = BigInt("0"), longEnumNormalDefault = BigInt("2"), nanDefault = NaN, infDefault = Infinity, positiveInfDefault = Infinity, infinityDefault = Infinity, positiveInfinityDefault = Infinity, negativeInfDefault = -Infinity, negativeInfinityDefault = -Infinity, doubleInfDefault = Infinity) { + this.pos = pos; + this.mana = mana; + this.hp = hp; + this.name = name; + this.inventory = inventory; + this.color = color; + this.testType = testType; + this.test = test; + this.test4 = test4; + this.testarrayofstring = testarrayofstring; + this.testarrayoftables = testarrayoftables; + this.enemy = enemy; + this.testnestedflatbuffer = testnestedflatbuffer; + this.testempty = testempty; + this.testbool = testbool; + this.testhashs32Fnv1 = testhashs32Fnv1; + this.testhashu32Fnv1 = testhashu32Fnv1; + this.testhashs64Fnv1 = testhashs64Fnv1; + this.testhashu64Fnv1 = testhashu64Fnv1; + this.testhashs32Fnv1a = testhashs32Fnv1a; + this.testhashu32Fnv1a = testhashu32Fnv1a; + this.testhashs64Fnv1a = testhashs64Fnv1a; + this.testhashu64Fnv1a = testhashu64Fnv1a; + this.testarrayofbools = testarrayofbools; + this.testf = testf; + this.testf2 = testf2; + this.testf3 = testf3; + this.testarrayofstring2 = testarrayofstring2; + this.testarrayofsortedstruct = testarrayofsortedstruct; + this.flex = flex; + this.test5 = test5; + this.vectorOfLongs = vectorOfLongs; + this.vectorOfDoubles = vectorOfDoubles; + this.parentNamespaceTest = parentNamespaceTest; + this.vectorOfReferrables = vectorOfReferrables; + this.singleWeakReference = singleWeakReference; + this.vectorOfWeakReferences = vectorOfWeakReferences; + this.vectorOfStrongReferrables = vectorOfStrongReferrables; + this.coOwningReference = coOwningReference; + this.vectorOfCoOwningReferences = vectorOfCoOwningReferences; + this.nonOwningReference = nonOwningReference; + this.vectorOfNonOwningReferences = vectorOfNonOwningReferences; + this.anyUniqueType = anyUniqueType; + this.anyUnique = anyUnique; + this.anyAmbiguousType = anyAmbiguousType; + this.anyAmbiguous = anyAmbiguous; + this.vectorOfEnums = vectorOfEnums; + this.signedEnum = signedEnum; + this.testrequirednestedflatbuffer = testrequirednestedflatbuffer; + this.scalarKeySortedTables = scalarKeySortedTables; + this.nativeInline = nativeInline; + this.longEnumNonEnumDefault = longEnumNonEnumDefault; + this.longEnumNormalDefault = longEnumNormalDefault; + this.nanDefault = nanDefault; + this.infDefault = infDefault; + this.positiveInfDefault = positiveInfDefault; + this.infinityDefault = infinityDefault; + this.positiveInfinityDefault = positiveInfinityDefault; + this.negativeInfDefault = negativeInfDefault; + this.negativeInfinityDefault = negativeInfinityDefault; + this.doubleInfDefault = doubleInfDefault; + } + pack(builder) { + const name = this.name !== null ? builder.createString(this.name) : 0; + const inventory = Monster2.createInventoryVector(builder, this.inventory); + const test = builder.createObjectOffset(this.test); + const test4 = builder.createStructOffsetList(this.test4, Monster2.startTest4Vector); + const testarrayofstring = Monster2.createTestarrayofstringVector(builder, builder.createObjectOffsetList(this.testarrayofstring)); + const testarrayoftables = Monster2.createTestarrayoftablesVector(builder, builder.createObjectOffsetList(this.testarrayoftables)); + const enemy = this.enemy !== null ? this.enemy.pack(builder) : 0; + const testnestedflatbuffer = Monster2.createTestnestedflatbufferVector(builder, this.testnestedflatbuffer); + const testempty = this.testempty !== null ? this.testempty.pack(builder) : 0; + const testarrayofbools = Monster2.createTestarrayofboolsVector(builder, this.testarrayofbools); + const testarrayofstring2 = Monster2.createTestarrayofstring2Vector(builder, builder.createObjectOffsetList(this.testarrayofstring2)); + const testarrayofsortedstruct = builder.createStructOffsetList(this.testarrayofsortedstruct, Monster2.startTestarrayofsortedstructVector); + const flex = Monster2.createFlexVector(builder, this.flex); + const test5 = builder.createStructOffsetList(this.test5, Monster2.startTest5Vector); + const vectorOfLongs = Monster2.createVectorOfLongsVector(builder, this.vectorOfLongs); + const vectorOfDoubles = Monster2.createVectorOfDoublesVector(builder, this.vectorOfDoubles); + const parentNamespaceTest = this.parentNamespaceTest !== null ? this.parentNamespaceTest.pack(builder) : 0; + const vectorOfReferrables = Monster2.createVectorOfReferrablesVector(builder, builder.createObjectOffsetList(this.vectorOfReferrables)); + const vectorOfWeakReferences = Monster2.createVectorOfWeakReferencesVector(builder, this.vectorOfWeakReferences); + const vectorOfStrongReferrables = Monster2.createVectorOfStrongReferrablesVector(builder, builder.createObjectOffsetList(this.vectorOfStrongReferrables)); + const vectorOfCoOwningReferences = Monster2.createVectorOfCoOwningReferencesVector(builder, this.vectorOfCoOwningReferences); + const vectorOfNonOwningReferences = Monster2.createVectorOfNonOwningReferencesVector(builder, this.vectorOfNonOwningReferences); + const anyUnique = builder.createObjectOffset(this.anyUnique); + const anyAmbiguous = builder.createObjectOffset(this.anyAmbiguous); + const vectorOfEnums = Monster2.createVectorOfEnumsVector(builder, this.vectorOfEnums); + const testrequirednestedflatbuffer = Monster2.createTestrequirednestedflatbufferVector(builder, this.testrequirednestedflatbuffer); + const scalarKeySortedTables = Monster2.createScalarKeySortedTablesVector(builder, builder.createObjectOffsetList(this.scalarKeySortedTables)); + Monster2.startMonster(builder); + Monster2.addPos(builder, this.pos !== null ? this.pos.pack(builder) : 0); + Monster2.addMana(builder, this.mana); + Monster2.addHp(builder, this.hp); + Monster2.addName(builder, name); + Monster2.addInventory(builder, inventory); + Monster2.addColor(builder, this.color); + Monster2.addTestType(builder, this.testType); + Monster2.addTest(builder, test); + Monster2.addTest4(builder, test4); + Monster2.addTestarrayofstring(builder, testarrayofstring); + Monster2.addTestarrayoftables(builder, testarrayoftables); + Monster2.addEnemy(builder, enemy); + Monster2.addTestnestedflatbuffer(builder, testnestedflatbuffer); + Monster2.addTestempty(builder, testempty); + Monster2.addTestbool(builder, this.testbool); + Monster2.addTesthashs32Fnv1(builder, this.testhashs32Fnv1); + Monster2.addTesthashu32Fnv1(builder, this.testhashu32Fnv1); + Monster2.addTesthashs64Fnv1(builder, this.testhashs64Fnv1); + Monster2.addTesthashu64Fnv1(builder, this.testhashu64Fnv1); + Monster2.addTesthashs32Fnv1a(builder, this.testhashs32Fnv1a); + Monster2.addTesthashu32Fnv1a(builder, this.testhashu32Fnv1a); + Monster2.addTesthashs64Fnv1a(builder, this.testhashs64Fnv1a); + Monster2.addTesthashu64Fnv1a(builder, this.testhashu64Fnv1a); + Monster2.addTestarrayofbools(builder, testarrayofbools); + Monster2.addTestf(builder, this.testf); + Monster2.addTestf2(builder, this.testf2); + Monster2.addTestf3(builder, this.testf3); + Monster2.addTestarrayofstring2(builder, testarrayofstring2); + Monster2.addTestarrayofsortedstruct(builder, testarrayofsortedstruct); + Monster2.addFlex(builder, flex); + Monster2.addTest5(builder, test5); + Monster2.addVectorOfLongs(builder, vectorOfLongs); + Monster2.addVectorOfDoubles(builder, vectorOfDoubles); + Monster2.addParentNamespaceTest(builder, parentNamespaceTest); + Monster2.addVectorOfReferrables(builder, vectorOfReferrables); + Monster2.addSingleWeakReference(builder, this.singleWeakReference); + Monster2.addVectorOfWeakReferences(builder, vectorOfWeakReferences); + Monster2.addVectorOfStrongReferrables(builder, vectorOfStrongReferrables); + Monster2.addCoOwningReference(builder, this.coOwningReference); + Monster2.addVectorOfCoOwningReferences(builder, vectorOfCoOwningReferences); + Monster2.addNonOwningReference(builder, this.nonOwningReference); + Monster2.addVectorOfNonOwningReferences(builder, vectorOfNonOwningReferences); + Monster2.addAnyUniqueType(builder, this.anyUniqueType); + Monster2.addAnyUnique(builder, anyUnique); + Monster2.addAnyAmbiguousType(builder, this.anyAmbiguousType); + Monster2.addAnyAmbiguous(builder, anyAmbiguous); + Monster2.addVectorOfEnums(builder, vectorOfEnums); + Monster2.addSignedEnum(builder, this.signedEnum); + Monster2.addTestrequirednestedflatbuffer(builder, testrequirednestedflatbuffer); + Monster2.addScalarKeySortedTables(builder, scalarKeySortedTables); + Monster2.addNativeInline(builder, this.nativeInline !== null ? this.nativeInline.pack(builder) : 0); + Monster2.addLongEnumNonEnumDefault(builder, this.longEnumNonEnumDefault); + Monster2.addLongEnumNormalDefault(builder, this.longEnumNormalDefault); + Monster2.addNanDefault(builder, this.nanDefault); + Monster2.addInfDefault(builder, this.infDefault); + Monster2.addPositiveInfDefault(builder, this.positiveInfDefault); + Monster2.addInfinityDefault(builder, this.infinityDefault); + Monster2.addPositiveInfinityDefault(builder, this.positiveInfinityDefault); + Monster2.addNegativeInfDefault(builder, this.negativeInfDefault); + Monster2.addNegativeInfinityDefault(builder, this.negativeInfinityDefault); + Monster2.addDoubleInfDefault(builder, this.doubleInfDefault); + return Monster2.endMonster(builder); + } +}; + +// my-game/example/any.js +var Any; +(function(Any2) { + Any2[Any2["NONE"] = 0] = "NONE"; + Any2[Any2["Monster"] = 1] = "Monster"; + Any2[Any2["TestSimpleTableWithEnum"] = 2] = "TestSimpleTableWithEnum"; + Any2[Any2["MyGame_Example2_Monster"] = 3] = "MyGame_Example2_Monster"; +})(Any = Any || (Any = {})); +function unionToAny(type, accessor) { + switch (Any[type]) { + case "NONE": + return null; + case "Monster": + return accessor(new Monster2()); + case "TestSimpleTableWithEnum": + return accessor(new TestSimpleTableWithEnum()); + case "MyGame_Example2_Monster": + return accessor(new Monster()); + default: + return null; + } +} + +// my-game/example/long-enum.js +var LongEnum; +(function(LongEnum2) { + LongEnum2["LongOne"] = "2"; + LongEnum2["LongTwo"] = "4"; + LongEnum2["LongBig"] = "1099511627776"; +})(LongEnum = LongEnum || (LongEnum = {})); + +// my-game/example/struct-of-structs.js +var StructOfStructs = class { + 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; + } +}; +var StructOfStructsT = class { + 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); + } +}; + +// my-game/example/struct-of-structs-of-structs.js +var StructOfStructsOfStructs = class { + 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; + } +}; +var StructOfStructsOfStructsT = class { + 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); + } +}; + +// my-game/example/type-aliases.js +var flatbuffers9 = __toESM(require("flatbuffers"), 1); +var TypeAliases = class { + constructor() { + this.bb = null; + this.bb_pos = 0; + } + __init(i, bb) { + this.bb_pos = i; + this.bb = bb; + return this; + } + static getRootAsTypeAliases(bb, obj) { + return (obj || new TypeAliases()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + static getSizePrefixedRootAsTypeAliases(bb, obj) { + bb.setPosition(bb.position() + flatbuffers9.SIZE_PREFIX_LENGTH); + return (obj || new TypeAliases()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + i8() { + const offset = this.bb.__offset(this.bb_pos, 4); + return offset ? this.bb.readInt8(this.bb_pos + offset) : 0; + } + mutate_i8(value) { + const offset = this.bb.__offset(this.bb_pos, 4); + if (offset === 0) { + return false; + } + this.bb.writeInt8(this.bb_pos + offset, value); + return true; + } + u8() { + const offset = this.bb.__offset(this.bb_pos, 6); + return offset ? this.bb.readUint8(this.bb_pos + offset) : 0; + } + mutate_u8(value) { + const offset = this.bb.__offset(this.bb_pos, 6); + if (offset === 0) { + return false; + } + this.bb.writeUint8(this.bb_pos + offset, value); + return true; + } + i16() { + const offset = this.bb.__offset(this.bb_pos, 8); + return offset ? this.bb.readInt16(this.bb_pos + offset) : 0; + } + mutate_i16(value) { + const offset = this.bb.__offset(this.bb_pos, 8); + if (offset === 0) { + return false; + } + this.bb.writeInt16(this.bb_pos + offset, value); + return true; + } + u16() { + const offset = this.bb.__offset(this.bb_pos, 10); + return offset ? this.bb.readUint16(this.bb_pos + offset) : 0; + } + mutate_u16(value) { + const offset = this.bb.__offset(this.bb_pos, 10); + if (offset === 0) { + return false; + } + this.bb.writeUint16(this.bb_pos + offset, value); + return true; + } + i32() { + const offset = this.bb.__offset(this.bb_pos, 12); + return offset ? this.bb.readInt32(this.bb_pos + offset) : 0; + } + mutate_i32(value) { + const offset = this.bb.__offset(this.bb_pos, 12); + if (offset === 0) { + return false; + } + this.bb.writeInt32(this.bb_pos + offset, value); + return true; + } + u32() { + const offset = this.bb.__offset(this.bb_pos, 14); + return offset ? this.bb.readUint32(this.bb_pos + offset) : 0; + } + mutate_u32(value) { + const offset = this.bb.__offset(this.bb_pos, 14); + if (offset === 0) { + return false; + } + this.bb.writeUint32(this.bb_pos + offset, value); + return true; + } + i64() { + const offset = this.bb.__offset(this.bb_pos, 16); + return offset ? this.bb.readInt64(this.bb_pos + offset) : BigInt("0"); + } + mutate_i64(value) { + const offset = this.bb.__offset(this.bb_pos, 16); + if (offset === 0) { + return false; + } + this.bb.writeInt64(this.bb_pos + offset, value); + return true; + } + u64() { + const offset = this.bb.__offset(this.bb_pos, 18); + return offset ? this.bb.readUint64(this.bb_pos + offset) : BigInt("0"); + } + mutate_u64(value) { + const offset = this.bb.__offset(this.bb_pos, 18); + if (offset === 0) { + return false; + } + this.bb.writeUint64(this.bb_pos + offset, value); + return true; + } + f32() { + const offset = this.bb.__offset(this.bb_pos, 20); + return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0; + } + mutate_f32(value) { + const offset = this.bb.__offset(this.bb_pos, 20); + if (offset === 0) { + return false; + } + this.bb.writeFloat32(this.bb_pos + offset, value); + return true; + } + f64() { + const offset = this.bb.__offset(this.bb_pos, 22); + return offset ? this.bb.readFloat64(this.bb_pos + offset) : 0; + } + mutate_f64(value) { + const offset = this.bb.__offset(this.bb_pos, 22); + if (offset === 0) { + return false; + } + this.bb.writeFloat64(this.bb_pos + offset, value); + return true; + } + v8(index) { + const offset = this.bb.__offset(this.bb_pos, 24); + return offset ? this.bb.readInt8(this.bb.__vector(this.bb_pos + offset) + index) : 0; + } + v8Length() { + const offset = this.bb.__offset(this.bb_pos, 24); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + v8Array() { + const offset = this.bb.__offset(this.bb_pos, 24); + return offset ? new Int8Array(this.bb.bytes().buffer, this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + offset), this.bb.__vector_len(this.bb_pos + offset)) : null; + } + vf64(index) { + const offset = this.bb.__offset(this.bb_pos, 26); + return offset ? this.bb.readFloat64(this.bb.__vector(this.bb_pos + offset) + index * 8) : 0; + } + vf64Length() { + const offset = this.bb.__offset(this.bb_pos, 26); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + vf64Array() { + const offset = this.bb.__offset(this.bb_pos, 26); + return offset ? new Float64Array(this.bb.bytes().buffer, this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + offset), this.bb.__vector_len(this.bb_pos + offset)) : null; + } + static getFullyQualifiedName() { + return "MyGame.Example.TypeAliases"; + } + static startTypeAliases(builder) { + builder.startObject(12); + } + static addI8(builder, i8) { + builder.addFieldInt8(0, i8, 0); + } + static addU8(builder, u8) { + builder.addFieldInt8(1, u8, 0); + } + static addI16(builder, i16) { + builder.addFieldInt16(2, i16, 0); + } + static addU16(builder, u16) { + builder.addFieldInt16(3, u16, 0); + } + static addI32(builder, i32) { + builder.addFieldInt32(4, i32, 0); + } + static addU32(builder, u32) { + builder.addFieldInt32(5, u32, 0); + } + static addI64(builder, i64) { + builder.addFieldInt64(6, i64, BigInt("0")); + } + static addU64(builder, u64) { + builder.addFieldInt64(7, u64, BigInt("0")); + } + static addF32(builder, f32) { + builder.addFieldFloat32(8, f32, 0); + } + static addF64(builder, f64) { + builder.addFieldFloat64(9, f64, 0); + } + static addV8(builder, v8Offset) { + builder.addFieldOffset(10, v8Offset, 0); + } + static createV8Vector(builder, data) { + builder.startVector(1, data.length, 1); + for (let i = data.length - 1; i >= 0; i--) { + builder.addInt8(data[i]); + } + return builder.endVector(); + } + static startV8Vector(builder, numElems) { + builder.startVector(1, numElems, 1); + } + static addVf64(builder, vf64Offset) { + builder.addFieldOffset(11, vf64Offset, 0); + } + static createVf64Vector(builder, data) { + builder.startVector(8, data.length, 8); + for (let i = data.length - 1; i >= 0; i--) { + builder.addFloat64(data[i]); + } + return builder.endVector(); + } + static startVf64Vector(builder, numElems) { + builder.startVector(8, numElems, 8); + } + static endTypeAliases(builder) { + const offset = builder.endObject(); + return offset; + } + static createTypeAliases(builder, i8, u8, i16, u16, i32, u32, i64, u64, f32, f64, v8Offset, vf64Offset) { + TypeAliases.startTypeAliases(builder); + TypeAliases.addI8(builder, i8); + TypeAliases.addU8(builder, u8); + TypeAliases.addI16(builder, i16); + TypeAliases.addU16(builder, u16); + TypeAliases.addI32(builder, i32); + TypeAliases.addU32(builder, u32); + TypeAliases.addI64(builder, i64); + TypeAliases.addU64(builder, u64); + TypeAliases.addF32(builder, f32); + TypeAliases.addF64(builder, f64); + TypeAliases.addV8(builder, v8Offset); + TypeAliases.addVf64(builder, vf64Offset); + return TypeAliases.endTypeAliases(builder); + } + serialize() { + return this.bb.bytes(); + } + static deserialize(buffer) { + return TypeAliases.getRootAsTypeAliases(new flatbuffers9.ByteBuffer(buffer)); + } + unpack() { + return new TypeAliasesT(this.i8(), this.u8(), this.i16(), this.u16(), this.i32(), this.u32(), this.i64(), this.u64(), this.f32(), this.f64(), this.bb.createScalarList(this.v8.bind(this), this.v8Length()), this.bb.createScalarList(this.vf64.bind(this), this.vf64Length())); + } + unpackTo(_o) { + _o.i8 = this.i8(); + _o.u8 = this.u8(); + _o.i16 = this.i16(); + _o.u16 = this.u16(); + _o.i32 = this.i32(); + _o.u32 = this.u32(); + _o.i64 = this.i64(); + _o.u64 = this.u64(); + _o.f32 = this.f32(); + _o.f64 = this.f64(); + _o.v8 = this.bb.createScalarList(this.v8.bind(this), this.v8Length()); + _o.vf64 = this.bb.createScalarList(this.vf64.bind(this), this.vf64Length()); + } +}; +var TypeAliasesT = class { + constructor(i8 = 0, u8 = 0, i16 = 0, u16 = 0, i32 = 0, u32 = 0, i64 = BigInt("0"), u64 = BigInt("0"), f32 = 0, f64 = 0, v8 = [], vf64 = []) { + this.i8 = i8; + this.u8 = u8; + this.i16 = i16; + this.u16 = u16; + this.i32 = i32; + this.u32 = u32; + this.i64 = i64; + this.u64 = u64; + this.f32 = f32; + this.f64 = f64; + this.v8 = v8; + this.vf64 = vf64; + } + pack(builder) { + const v8 = TypeAliases.createV8Vector(builder, this.v8); + const vf64 = TypeAliases.createVf64Vector(builder, this.vf64); + return TypeAliases.createTypeAliases(builder, this.i8, this.u8, this.i16, this.u16, this.i32, this.u32, this.i64, this.u64, this.f32, this.f64, v8, vf64); + } +}; + +// my-game/example2.js +var example2_exports = {}; +__export(example2_exports, { + Monster: () => Monster +}); + +// my-game/other-name-space.js +var other_name_space_exports = {}; +__export(other_name_space_exports, { + FromInclude: () => FromInclude, + TableB: () => TableB, + Unused: () => Unused +}); + +// my-game/other-name-space/from-include.js +var FromInclude; +(function(FromInclude2) { + FromInclude2["IncludeVal"] = "0"; +})(FromInclude = FromInclude || (FromInclude = {})); + +// my-game/other-name-space/unused.js +var Unused = 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.readInt32(this.bb_pos); + } + mutate_a(value) { + this.bb.writeInt32(this.bb_pos + 0, value); + return true; + } + static getFullyQualifiedName() { + return "MyGame.OtherNameSpace.Unused"; + } + static sizeOf() { + return 4; + } + static createUnused(builder, a) { + builder.prep(4, 4); + builder.writeInt32(a); + return builder.offset(); + } + unpack() { + return new UnusedT(this.a()); + } + unpackTo(_o) { + _o.a = this.a(); + } +}; +var UnusedT = class { + constructor(a = 0) { + this.a = a; + } + pack(builder) { + return Unused.createUnused(builder, this.a); + } +}; diff --git a/tests/ts/monster_test_generated.ts b/tests/ts/monster_test_generated.ts deleted file mode 100644 index 18aec071fb..0000000000 --- a/tests/ts/monster_test_generated.ts +++ /dev/null @@ -1,19 +0,0 @@ -// automatically generated by the FlatBuffers compiler, do not modify - -export { Monster as MyGame_Example2_Monster, MonsterT as MyGame_Example2_MonsterT } from './my-game/example2/monster.js'; -export { Ability, AbilityT } from './my-game/example/ability.js'; -export { Any, unionToAny, unionListToAny } from './my-game/example/any.js'; -export { AnyAmbiguousAliases, unionToAnyAmbiguousAliases, unionListToAnyAmbiguousAliases } from './my-game/example/any-ambiguous-aliases.js'; -export { AnyUniqueAliases, unionToAnyUniqueAliases, unionListToAnyUniqueAliases } from './my-game/example/any-unique-aliases.js'; -export { Color } from './my-game/example/color.js'; -export { Monster, MonsterT } from './my-game/example/monster.js'; -export { Race } from './my-game/example/race.js'; -export { Referrable, ReferrableT } from './my-game/example/referrable.js'; -export { Stat, StatT } from './my-game/example/stat.js'; -export { StructOfStructs, StructOfStructsT } from './my-game/example/struct-of-structs.js'; -export { StructOfStructsOfStructs, StructOfStructsOfStructsT } from './my-game/example/struct-of-structs-of-structs.js'; -export { Test, TestT } from './my-game/example/test.js'; -export { TestSimpleTableWithEnum, TestSimpleTableWithEnumT } from './my-game/example/test-simple-table-with-enum.js'; -export { TypeAliases, TypeAliasesT } from './my-game/example/type-aliases.js'; -export { Vec3, Vec3T } from './my-game/example/vec3.js'; -export { InParentNamespace, InParentNamespaceT } from './my-game/in-parent-namespace.js'; diff --git a/tests/ts/monster_test_grpc.d.ts b/tests/ts/monster_test_grpc.d.ts deleted file mode 100644 index e7a71d1a9d..0000000000 --- a/tests/ts/monster_test_grpc.d.ts +++ /dev/null @@ -1,94 +0,0 @@ -// Generated GRPC code for FlatBuffers TS *** DO NOT EDIT *** -import * as flatbuffers from 'flatbuffers'; -import { Stat as MyGame_Example_Stat } from './my-game/example/stat'; -import { Monster as MyGame_Example_Monster } from './my-game/example/monster'; - -import * as grpc from '@grpc/grpc-js'; - -interface IMonsterStorageService extends grpc.ServiceDefinition { - Store: IMonsterStorageService_IStore; - Retrieve: IMonsterStorageService_IRetrieve; - GetMaxHitPoint: IMonsterStorageService_IGetMaxHitPoint; - GetMinMaxHitPoints: IMonsterStorageService_IGetMinMaxHitPoints; -} -interface IMonsterStorageService_IStore extends grpc.MethodDefinition { - path: string; // /MyGame.Example.MonsterStorage/Store - requestStream: boolean; // false - responseStream: boolean; // false - requestSerialize: grpc.serialize; - requestDeserialize: grpc.deserialize; - responseSerialize: grpc.serialize; - responseDeserialize: grpc.deserialize; -} - -interface IMonsterStorageService_IRetrieve extends grpc.MethodDefinition { - path: string; // /MyGame.Example.MonsterStorage/Retrieve - requestStream: boolean; // false - responseStream: boolean; // true - requestSerialize: grpc.serialize; - requestDeserialize: grpc.deserialize; - responseSerialize: grpc.serialize; - responseDeserialize: grpc.deserialize; -} - -interface IMonsterStorageService_IGetMaxHitPoint extends grpc.MethodDefinition { - path: string; // /MyGame.Example.MonsterStorage/GetMaxHitPoint - requestStream: boolean; // true - responseStream: boolean; // false - requestSerialize: grpc.serialize; - requestDeserialize: grpc.deserialize; - responseSerialize: grpc.serialize; - responseDeserialize: grpc.deserialize; -} - -interface IMonsterStorageService_IGetMinMaxHitPoints extends grpc.MethodDefinition { - path: string; // /MyGame.Example.MonsterStorage/GetMinMaxHitPoints - requestStream: boolean; // true - responseStream: boolean; // true - requestSerialize: grpc.serialize; - requestDeserialize: grpc.deserialize; - responseSerialize: grpc.serialize; - responseDeserialize: grpc.deserialize; -} - - -export const MonsterStorageService: IMonsterStorageService; - -export interface IMonsterStorageServer extends grpc.UntypedServiceImplementation { - Store: grpc.handleUnaryCall; - Retrieve: grpc.handleServerStreamingCall; - GetMaxHitPoint: grpc.handleClientStreamingCall; - GetMinMaxHitPoints: grpc.handleBidiStreamingCall; -} - -export interface IMonsterStorageClient { - Store(request: MyGame_Example_Monster, callback: (error: grpc.ServiceError | null, response: MyGame_Example_Stat) => void): grpc.ClientUnaryCall; - Store(request: MyGame_Example_Monster, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: MyGame_Example_Stat) => void): grpc.ClientUnaryCall; - Store(request: MyGame_Example_Monster, metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: MyGame_Example_Stat) => void): grpc.ClientUnaryCall; - Retrieve(request: MyGame_Example_Stat, metadata: grpc.Metadata): grpc.ClientReadableStream; - Retrieve(request: MyGame_Example_Stat, options: Partial): grpc.ClientReadableStream; - GetMaxHitPoint(callback: (error: grpc.ServiceError | null, response: MyGame_Example_Monster) => void): grpc.ClientWritableStream; - GetMaxHitPoint(metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: MyGame_Example_Monster) => void): grpc.ClientWritableStream; - GetMaxHitPoint(options: Partial, callback: (error: grpc.ServiceError | null, response: MyGame_Example_Monster) => void): grpc.ClientWritableStream; - GetMaxHitPoint(metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: MyGame_Example_Monster) => void): grpc.ClientWritableStream; - GetMinMaxHitPoints(): grpc.ClientDuplexStream; - GetMinMaxHitPoints(options: Partial): grpc.ClientDuplexStream; - GetMinMaxHitPoints(metadata: grpc.Metadata, options?: Partial): grpc.ClientDuplexStream; -} - -export class MonsterStorageClient extends grpc.Client implements IMonsterStorageClient { - constructor(address: string, credentials: grpc.ChannelCredentials, options?: object); - public Store(request: MyGame_Example_Monster, callback: (error: grpc.ServiceError | null, response: MyGame_Example_Stat) => void): grpc.ClientUnaryCall; - public Store(request: MyGame_Example_Monster, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: MyGame_Example_Stat) => void): grpc.ClientUnaryCall; - public Store(request: MyGame_Example_Monster, metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: MyGame_Example_Stat) => void): grpc.ClientUnaryCall; - public Retrieve(request: MyGame_Example_Stat, metadata: grpc.Metadata): grpc.ClientReadableStream; - public Retrieve(request: MyGame_Example_Stat, options: Partial): grpc.ClientReadableStream; - public GetMaxHitPoint(callback: (error: grpc.ServiceError | null, response: MyGame_Example_Monster) => void): grpc.ClientWritableStream; - public GetMaxHitPoint(metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: MyGame_Example_Monster) => void): grpc.ClientWritableStream; - public GetMaxHitPoint(options: Partial, callback: (error: grpc.ServiceError | null, response: MyGame_Example_Monster) => void): grpc.ClientWritableStream; - public GetMaxHitPoint(metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: MyGame_Example_Monster) => void): grpc.ClientWritableStream; - public GetMinMaxHitPoints(): grpc.ClientDuplexStream; - public GetMinMaxHitPoints(options: Partial): grpc.ClientDuplexStream; - public GetMinMaxHitPoints(metadata: grpc.Metadata, options?: Partial): grpc.ClientDuplexStream; -} - diff --git a/tests/ts/monster_test_grpc.js b/tests/ts/monster_test_grpc.js deleted file mode 100644 index 34f8cb22ea..0000000000 --- a/tests/ts/monster_test_grpc.js +++ /dev/null @@ -1,80 +0,0 @@ -// Generated GRPC code for FlatBuffers TS *** DO NOT EDIT *** -import * as flatbuffers from 'flatbuffers'; -import { Stat as MyGame_Example_Stat } from './my-game/example/stat'; -import { Monster as MyGame_Example_Monster } from './my-game/example/monster'; - -var grpc = require('@grpc/grpc-js'); - -function serialize_MyGame_Example_Stat(buffer_args) { - if (!(buffer_args instanceof MyGame_Example_Stat)) { - throw new Error('Expected argument of type Stat'); - } - return Buffer.from(buffer_args.serialize()); -} - -function deserialize_MyGame_Example_Stat(buffer) { - return MyGame_Example_Stat.getRootAsStat(new flatbuffers.ByteBuffer(buffer)) -} - - -function serialize_MyGame_Example_Monster(buffer_args) { - if (!(buffer_args instanceof MyGame_Example_Monster)) { - throw new Error('Expected argument of type Monster'); - } - return Buffer.from(buffer_args.serialize()); -} - -function deserialize_MyGame_Example_Monster(buffer) { - return MyGame_Example_Monster.getRootAsMonster(new flatbuffers.ByteBuffer(buffer)) -} - - - - -var MonsterStorageService = exports.MonsterStorageService = { - Store: { - path: '/MyGame.Example.MonsterStorage/Store', - requestStream: false, - responseStream: false, - requestType: flatbuffers.ByteBuffer, - responseType: MyGame_Example_Stat, - requestSerialize: serialize_MyGame_Example_Monster, - requestDeserialize: deserialize_MyGame_Example_Monster, - responseSerialize: serialize_MyGame_Example_Stat, - responseDeserialize: deserialize_MyGame_Example_Stat, - }, - Retrieve: { - path: '/MyGame.Example.MonsterStorage/Retrieve', - requestStream: false, - responseStream: true, - requestType: flatbuffers.ByteBuffer, - responseType: MyGame_Example_Monster, - requestSerialize: serialize_MyGame_Example_Stat, - requestDeserialize: deserialize_MyGame_Example_Stat, - responseSerialize: serialize_MyGame_Example_Monster, - responseDeserialize: deserialize_MyGame_Example_Monster, - }, - GetMaxHitPoint: { - path: '/MyGame.Example.MonsterStorage/GetMaxHitPoint', - requestStream: true, - responseStream: false, - requestType: flatbuffers.ByteBuffer, - responseType: MyGame_Example_Stat, - requestSerialize: serialize_MyGame_Example_Monster, - requestDeserialize: deserialize_MyGame_Example_Monster, - responseSerialize: serialize_MyGame_Example_Stat, - responseDeserialize: deserialize_MyGame_Example_Stat, - }, - GetMinMaxHitPoints: { - path: '/MyGame.Example.MonsterStorage/GetMinMaxHitPoints', - requestStream: true, - responseStream: true, - requestType: flatbuffers.ByteBuffer, - responseType: MyGame_Example_Stat, - requestSerialize: serialize_MyGame_Example_Monster, - requestDeserialize: deserialize_MyGame_Example_Monster, - responseSerialize: serialize_MyGame_Example_Stat, - responseDeserialize: deserialize_MyGame_Example_Stat, - }, -}; -exports.MonsterStorageClient = grpc.makeGenericClientConstructor(MonsterStorageService); diff --git a/tests/ts/monsterdata_javascript_wire.mon b/tests/ts/monsterdata_javascript_wire.mon index 8e270b35b229ef7fcd1db058b5c15ea04e132f66..7b0dc5b641924d9e21d804ce14e64edf7d720733 100644 GIT binary patch delta 108 zcmaFC`hd|(hk=2?*WWK#g~5YC1;|!nkO7hsKrGH6z`(=60c1e{J6ImbW^@1&2|!!| h#6ZB<03_0uaYDL@pt43LxnVi6#Q00AJy!@vRMu>frZfdlm|KoS{u0Qu;+2Pn1x3kC`? z&H)lIya&j(U<49C@ee@y2bdiI { + 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; +} diff --git a/tests/ts/my-game/example/any-ambiguous-aliases.d.ts b/tests/ts/my-game/example/any-ambiguous-aliases.d.ts new file mode 100644 index 0000000000..d625b0abb2 --- /dev/null +++ b/tests/ts/my-game/example/any-ambiguous-aliases.d.ts @@ -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; diff --git a/tests/ts/my-game/example/any-ambiguous-aliases.js b/tests/ts/my-game/example/any-ambiguous-aliases.js index ca8190848a..7d379dc764 100644 --- a/tests/ts/my-game/example/any-ambiguous-aliases.js +++ b/tests/ts/my-game/example/any-ambiguous-aliases.js @@ -6,7 +6,7 @@ export var AnyAmbiguousAliases; AnyAmbiguousAliases[AnyAmbiguousAliases["M1"] = 1] = "M1"; AnyAmbiguousAliases[AnyAmbiguousAliases["M2"] = 2] = "M2"; AnyAmbiguousAliases[AnyAmbiguousAliases["M3"] = 3] = "M3"; -})(AnyAmbiguousAliases || (AnyAmbiguousAliases = {})); +})(AnyAmbiguousAliases = AnyAmbiguousAliases || (AnyAmbiguousAliases = {})); export function unionToAnyAmbiguousAliases(type, accessor) { switch (AnyAmbiguousAliases[type]) { case 'NONE': return null; diff --git a/tests/ts/my-game/example/any-unique-aliases.d.ts b/tests/ts/my-game/example/any-unique-aliases.d.ts new file mode 100644 index 0000000000..14463bc5e1 --- /dev/null +++ b/tests/ts/my-game/example/any-unique-aliases.d.ts @@ -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; diff --git a/tests/ts/my-game/example/any-unique-aliases.js b/tests/ts/my-game/example/any-unique-aliases.js index d1ac6bff1a..a7fa2c02c2 100644 --- a/tests/ts/my-game/example/any-unique-aliases.js +++ b/tests/ts/my-game/example/any-unique-aliases.js @@ -8,7 +8,7 @@ export var AnyUniqueAliases; AnyUniqueAliases[AnyUniqueAliases["M"] = 1] = "M"; AnyUniqueAliases[AnyUniqueAliases["TS"] = 2] = "TS"; AnyUniqueAliases[AnyUniqueAliases["M2"] = 3] = "M2"; -})(AnyUniqueAliases || (AnyUniqueAliases = {})); +})(AnyUniqueAliases = AnyUniqueAliases || (AnyUniqueAliases = {})); export function unionToAnyUniqueAliases(type, accessor) { switch (AnyUniqueAliases[type]) { case 'NONE': return null; diff --git a/tests/ts/my-game/example/any.d.ts b/tests/ts/my-game/example/any.d.ts new file mode 100644 index 0000000000..6d3e84c9cb --- /dev/null +++ b/tests/ts/my-game/example/any.d.ts @@ -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; diff --git a/tests/ts/my-game/example/any.js b/tests/ts/my-game/example/any.js index 27be8f4080..2b1c0184d2 100644 --- a/tests/ts/my-game/example/any.js +++ b/tests/ts/my-game/example/any.js @@ -8,7 +8,7 @@ export var Any; Any[Any["Monster"] = 1] = "Monster"; Any[Any["TestSimpleTableWithEnum"] = 2] = "TestSimpleTableWithEnum"; Any[Any["MyGame_Example2_Monster"] = 3] = "MyGame_Example2_Monster"; -})(Any || (Any = {})); +})(Any = Any || (Any = {})); export function unionToAny(type, accessor) { switch (Any[type]) { case 'NONE': return null; diff --git a/tests/ts/my-game/example/color.d.ts b/tests/ts/my-game/example/color.d.ts new file mode 100644 index 0000000000..79906f4b1e --- /dev/null +++ b/tests/ts/my-game/example/color.d.ts @@ -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 +} diff --git a/tests/ts/my-game/example/color.js b/tests/ts/my-game/example/color.js index f95f75e967..0a057ccf64 100644 --- a/tests/ts/my-game/example/color.js +++ b/tests/ts/my-game/example/color.js @@ -14,4 +14,4 @@ export var Color; * \brief color Blue (1u << 3) */ Color[Color["Blue"] = 8] = "Blue"; -})(Color || (Color = {})); +})(Color = Color || (Color = {})); diff --git a/tests/ts/my-game/example/long-enum.d.ts b/tests/ts/my-game/example/long-enum.d.ts new file mode 100644 index 0000000000..72e656f14a --- /dev/null +++ b/tests/ts/my-game/example/long-enum.d.ts @@ -0,0 +1,5 @@ +export declare enum LongEnum { + LongOne = "2", + LongTwo = "4", + LongBig = "1099511627776" +} diff --git a/tests/ts/my-game/example/long-enum.js b/tests/ts/my-game/example/long-enum.js index 040d8a672f..0180c2bdf9 100644 --- a/tests/ts/my-game/example/long-enum.js +++ b/tests/ts/my-game/example/long-enum.js @@ -4,4 +4,4 @@ export var LongEnum; LongEnum["LongOne"] = "2"; LongEnum["LongTwo"] = "4"; LongEnum["LongBig"] = "1099511627776"; -})(LongEnum || (LongEnum = {})); +})(LongEnum = LongEnum || (LongEnum = {})); diff --git a/tests/ts/my-game/example/monster.d.ts b/tests/ts/my-game/example/monster.d.ts new file mode 100644 index 0000000000..86488391cb --- /dev/null +++ b/tests/ts/my-game/example/monster.d.ts @@ -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 { + 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(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(obj: any): any | null; + anyAmbiguousType(): AnyAmbiguousAliases; + anyAmbiguous(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; +} diff --git a/tests/ts/my-game/example/race.d.ts b/tests/ts/my-game/example/race.d.ts new file mode 100644 index 0000000000..393807db47 --- /dev/null +++ b/tests/ts/my-game/example/race.d.ts @@ -0,0 +1,6 @@ +export declare enum Race { + None = -1, + Human = 0, + Dwarf = 1, + Elf = 2 +} diff --git a/tests/ts/my-game/example/race.js b/tests/ts/my-game/example/race.js index 74f51057ab..11c7a41ecf 100644 --- a/tests/ts/my-game/example/race.js +++ b/tests/ts/my-game/example/race.js @@ -5,4 +5,4 @@ export var Race; Race[Race["Human"] = 0] = "Human"; Race[Race["Dwarf"] = 1] = "Dwarf"; Race[Race["Elf"] = 2] = "Elf"; -})(Race || (Race = {})); +})(Race = Race || (Race = {})); diff --git a/tests/ts/my-game/example/referrable.d.ts b/tests/ts/my-game/example/referrable.d.ts new file mode 100644 index 0000000000..e1967fd883 --- /dev/null +++ b/tests/ts/my-game/example/referrable.d.ts @@ -0,0 +1,24 @@ +import * as flatbuffers from 'flatbuffers'; +export declare class Referrable implements flatbuffers.IUnpackableObject { + 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; +} diff --git a/tests/ts/my-game/example/stat.d.ts b/tests/ts/my-game/example/stat.d.ts new file mode 100644 index 0000000000..9ccb1aa48e --- /dev/null +++ b/tests/ts/my-game/example/stat.d.ts @@ -0,0 +1,32 @@ +import * as flatbuffers from 'flatbuffers'; +export declare class Stat implements flatbuffers.IUnpackableObject { + 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; +} diff --git a/tests/ts/my-game/example/struct-of-structs-of-structs.d.ts b/tests/ts/my-game/example/struct-of-structs-of-structs.d.ts new file mode 100644 index 0000000000..bd676b7c7c --- /dev/null +++ b/tests/ts/my-game/example/struct-of-structs-of-structs.d.ts @@ -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 { + 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; +} diff --git a/tests/ts/my-game/example/struct-of-structs-of-structs.js b/tests/ts/my-game/example/struct-of-structs-of-structs.js index 97f65877dd..0fc45ae160 100644 --- a/tests/ts/my-game/example/struct-of-structs-of-structs.js +++ b/tests/ts/my-game/example/struct-of-structs-of-structs.js @@ -46,7 +46,6 @@ export class StructOfStructsOfStructsT { this.a = a; } pack(builder) { - var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _p, _q, _r, _s, _t, _u; - return StructOfStructsOfStructs.createStructOfStructsOfStructs(builder, ((_c = (_b = (_a = this.a) === null || _a === void 0 ? void 0 : _a.a) === null || _b === void 0 ? void 0 : _b.id) !== null && _c !== void 0 ? _c : 0), ((_f = (_e = (_d = this.a) === null || _d === void 0 ? void 0 : _d.a) === null || _e === void 0 ? void 0 : _e.distance) !== null && _f !== void 0 ? _f : 0), ((_j = (_h = (_g = this.a) === null || _g === void 0 ? void 0 : _g.b) === null || _h === void 0 ? void 0 : _h.a) !== null && _j !== void 0 ? _j : 0), ((_m = (_l = (_k = this.a) === null || _k === void 0 ? void 0 : _k.b) === null || _l === void 0 ? void 0 : _l.b) !== null && _m !== void 0 ? _m : 0), ((_r = (_q = (_p = this.a) === null || _p === void 0 ? void 0 : _p.c) === null || _q === void 0 ? void 0 : _q.id) !== null && _r !== void 0 ? _r : 0), ((_u = (_t = (_s = this.a) === null || _s === void 0 ? void 0 : _s.c) === null || _t === void 0 ? void 0 : _t.distance) !== null && _u !== void 0 ? _u : 0)); + 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)); } } diff --git a/tests/ts/my-game/example/struct-of-structs.d.ts b/tests/ts/my-game/example/struct-of-structs.d.ts new file mode 100644 index 0000000000..cb299c4d2c --- /dev/null +++ b/tests/ts/my-game/example/struct-of-structs.d.ts @@ -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 { + 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; +} diff --git a/tests/ts/my-game/example/struct-of-structs.js b/tests/ts/my-game/example/struct-of-structs.js index 3d79d39471..1f41f85a8b 100644 --- a/tests/ts/my-game/example/struct-of-structs.js +++ b/tests/ts/my-game/example/struct-of-structs.js @@ -56,7 +56,6 @@ export class StructOfStructsT { this.c = c; } pack(builder) { - var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m; - return StructOfStructs.createStructOfStructs(builder, ((_b = (_a = this.a) === null || _a === void 0 ? void 0 : _a.id) !== null && _b !== void 0 ? _b : 0), ((_d = (_c = this.a) === null || _c === void 0 ? void 0 : _c.distance) !== null && _d !== void 0 ? _d : 0), ((_f = (_e = this.b) === null || _e === void 0 ? void 0 : _e.a) !== null && _f !== void 0 ? _f : 0), ((_h = (_g = this.b) === null || _g === void 0 ? void 0 : _g.b) !== null && _h !== void 0 ? _h : 0), ((_k = (_j = this.c) === null || _j === void 0 ? void 0 : _j.id) !== null && _k !== void 0 ? _k : 0), ((_m = (_l = this.c) === null || _l === void 0 ? void 0 : _l.distance) !== null && _m !== void 0 ? _m : 0)); + 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)); } } diff --git a/tests/ts/my-game/example/test-simple-table-with-enum.d.ts b/tests/ts/my-game/example/test-simple-table-with-enum.d.ts new file mode 100644 index 0000000000..7a3f6905c3 --- /dev/null +++ b/tests/ts/my-game/example/test-simple-table-with-enum.d.ts @@ -0,0 +1,25 @@ +import * as flatbuffers from 'flatbuffers'; +import { Color } from '../../my-game/example/color.js'; +export declare class TestSimpleTableWithEnum implements flatbuffers.IUnpackableObject { + bb: flatbuffers.ByteBuffer | null; + bb_pos: number; + __init(i: number, bb: flatbuffers.ByteBuffer): TestSimpleTableWithEnum; + static getRootAsTestSimpleTableWithEnum(bb: flatbuffers.ByteBuffer, obj?: TestSimpleTableWithEnum): TestSimpleTableWithEnum; + static getSizePrefixedRootAsTestSimpleTableWithEnum(bb: flatbuffers.ByteBuffer, obj?: TestSimpleTableWithEnum): TestSimpleTableWithEnum; + color(): Color; + mutate_color(value: Color): boolean; + static getFullyQualifiedName(): string; + static startTestSimpleTableWithEnum(builder: flatbuffers.Builder): void; + static addColor(builder: flatbuffers.Builder, color: Color): void; + static endTestSimpleTableWithEnum(builder: flatbuffers.Builder): flatbuffers.Offset; + static createTestSimpleTableWithEnum(builder: flatbuffers.Builder, color: Color): flatbuffers.Offset; + serialize(): Uint8Array; + static deserialize(buffer: Uint8Array): TestSimpleTableWithEnum; + unpack(): TestSimpleTableWithEnumT; + unpackTo(_o: TestSimpleTableWithEnumT): void; +} +export declare class TestSimpleTableWithEnumT implements flatbuffers.IGeneratedObject { + color: Color; + constructor(color?: Color); + pack(builder: flatbuffers.Builder): flatbuffers.Offset; +} diff --git a/tests/ts/my-game/example/test.d.ts b/tests/ts/my-game/example/test.d.ts new file mode 100644 index 0000000000..98764dcf7b --- /dev/null +++ b/tests/ts/my-game/example/test.d.ts @@ -0,0 +1,21 @@ +import * as flatbuffers from 'flatbuffers'; +export declare class Test implements flatbuffers.IUnpackableObject { + bb: flatbuffers.ByteBuffer | null; + bb_pos: number; + __init(i: number, bb: flatbuffers.ByteBuffer): Test; + a(): number; + mutate_a(value: number): boolean; + b(): number; + mutate_b(value: number): boolean; + static getFullyQualifiedName(): string; + static sizeOf(): number; + static createTest(builder: flatbuffers.Builder, a: number, b: number): flatbuffers.Offset; + unpack(): TestT; + unpackTo(_o: TestT): void; +} +export declare class TestT implements flatbuffers.IGeneratedObject { + a: number; + b: number; + constructor(a?: number, b?: number); + pack(builder: flatbuffers.Builder): flatbuffers.Offset; +} diff --git a/tests/ts/my-game/example/type-aliases.d.ts b/tests/ts/my-game/example/type-aliases.d.ts new file mode 100644 index 0000000000..b552add17d --- /dev/null +++ b/tests/ts/my-game/example/type-aliases.d.ts @@ -0,0 +1,82 @@ +import * as flatbuffers from 'flatbuffers'; +export declare class TypeAliases implements flatbuffers.IUnpackableObject { + bb: flatbuffers.ByteBuffer | null; + bb_pos: number; + __init(i: number, bb: flatbuffers.ByteBuffer): TypeAliases; + static getRootAsTypeAliases(bb: flatbuffers.ByteBuffer, obj?: TypeAliases): TypeAliases; + static getSizePrefixedRootAsTypeAliases(bb: flatbuffers.ByteBuffer, obj?: TypeAliases): TypeAliases; + i8(): number; + mutate_i8(value: number): boolean; + u8(): number; + mutate_u8(value: number): boolean; + i16(): number; + mutate_i16(value: number): boolean; + u16(): number; + mutate_u16(value: number): boolean; + i32(): number; + mutate_i32(value: number): boolean; + u32(): number; + mutate_u32(value: number): boolean; + i64(): bigint; + mutate_i64(value: bigint): boolean; + u64(): bigint; + mutate_u64(value: bigint): boolean; + f32(): number; + mutate_f32(value: number): boolean; + f64(): number; + mutate_f64(value: number): boolean; + v8(index: number): number | null; + v8Length(): number; + v8Array(): Int8Array | null; + vf64(index: number): number | null; + vf64Length(): number; + vf64Array(): Float64Array | null; + static getFullyQualifiedName(): string; + static startTypeAliases(builder: flatbuffers.Builder): void; + static addI8(builder: flatbuffers.Builder, i8: number): void; + static addU8(builder: flatbuffers.Builder, u8: number): void; + static addI16(builder: flatbuffers.Builder, i16: number): void; + static addU16(builder: flatbuffers.Builder, u16: number): void; + static addI32(builder: flatbuffers.Builder, i32: number): void; + static addU32(builder: flatbuffers.Builder, u32: number): void; + static addI64(builder: flatbuffers.Builder, i64: bigint): void; + static addU64(builder: flatbuffers.Builder, u64: bigint): void; + static addF32(builder: flatbuffers.Builder, f32: number): void; + static addF64(builder: flatbuffers.Builder, f64: number): void; + static addV8(builder: flatbuffers.Builder, v8Offset: flatbuffers.Offset): void; + static createV8Vector(builder: flatbuffers.Builder, data: number[] | Int8Array): flatbuffers.Offset; + /** + * @deprecated This Uint8Array overload will be removed in the future. + */ + static createV8Vector(builder: flatbuffers.Builder, data: number[] | Uint8Array): flatbuffers.Offset; + static startV8Vector(builder: flatbuffers.Builder, numElems: number): void; + static addVf64(builder: flatbuffers.Builder, vf64Offset: flatbuffers.Offset): void; + static createVf64Vector(builder: flatbuffers.Builder, data: number[] | Float64Array): flatbuffers.Offset; + /** + * @deprecated This Uint8Array overload will be removed in the future. + */ + static createVf64Vector(builder: flatbuffers.Builder, data: number[] | Uint8Array): flatbuffers.Offset; + static startVf64Vector(builder: flatbuffers.Builder, numElems: number): void; + static endTypeAliases(builder: flatbuffers.Builder): flatbuffers.Offset; + static createTypeAliases(builder: flatbuffers.Builder, i8: number, u8: number, i16: number, u16: number, i32: number, u32: number, i64: bigint, u64: bigint, f32: number, f64: number, v8Offset: flatbuffers.Offset, vf64Offset: flatbuffers.Offset): flatbuffers.Offset; + serialize(): Uint8Array; + static deserialize(buffer: Uint8Array): TypeAliases; + unpack(): TypeAliasesT; + unpackTo(_o: TypeAliasesT): void; +} +export declare class TypeAliasesT implements flatbuffers.IGeneratedObject { + i8: number; + u8: number; + i16: number; + u16: number; + i32: number; + u32: number; + i64: bigint; + u64: bigint; + f32: number; + f64: number; + v8: (number)[]; + vf64: (number)[]; + constructor(i8?: number, u8?: number, i16?: number, u16?: number, i32?: number, u32?: number, i64?: bigint, u64?: bigint, f32?: number, f64?: number, v8?: (number)[], vf64?: (number)[]); + pack(builder: flatbuffers.Builder): flatbuffers.Offset; +} diff --git a/tests/ts/my-game/example/vec3.d.ts b/tests/ts/my-game/example/vec3.d.ts new file mode 100644 index 0000000000..c5a6be285c --- /dev/null +++ b/tests/ts/my-game/example/vec3.d.ts @@ -0,0 +1,34 @@ +import * as flatbuffers from 'flatbuffers'; +import { Color } from '../../my-game/example/color.js'; +import { Test, TestT } from '../../my-game/example/test.js'; +export declare class Vec3 implements flatbuffers.IUnpackableObject { + bb: flatbuffers.ByteBuffer | null; + bb_pos: number; + __init(i: number, bb: flatbuffers.ByteBuffer): Vec3; + x(): number; + mutate_x(value: number): boolean; + y(): number; + mutate_y(value: number): boolean; + z(): number; + mutate_z(value: number): boolean; + test1(): number; + mutate_test1(value: number): boolean; + test2(): Color; + mutate_test2(value: Color): boolean; + test3(obj?: Test): Test | null; + static getFullyQualifiedName(): string; + static sizeOf(): number; + static createVec3(builder: flatbuffers.Builder, x: number, y: number, z: number, test1: number, test2: Color, test3_a: number, test3_b: number): flatbuffers.Offset; + unpack(): Vec3T; + unpackTo(_o: Vec3T): void; +} +export declare class Vec3T implements flatbuffers.IGeneratedObject { + x: number; + y: number; + z: number; + test1: number; + test2: Color; + test3: TestT | null; + constructor(x?: number, y?: number, z?: number, test1?: number, test2?: Color, test3?: TestT | null); + pack(builder: flatbuffers.Builder): flatbuffers.Offset; +} diff --git a/tests/ts/my-game/example/vec3.js b/tests/ts/my-game/example/vec3.js index f880f118e3..655fa7e5ee 100644 --- a/tests/ts/my-game/example/vec3.js +++ b/tests/ts/my-game/example/vec3.js @@ -92,7 +92,6 @@ export class Vec3T { this.test3 = test3; } pack(builder) { - var _a, _b, _c, _d; - return Vec3.createVec3(builder, this.x, this.y, this.z, this.test1, this.test2, ((_b = (_a = this.test3) === null || _a === void 0 ? void 0 : _a.a) !== null && _b !== void 0 ? _b : 0), ((_d = (_c = this.test3) === null || _c === void 0 ? void 0 : _c.b) !== null && _d !== void 0 ? _d : 0)); + return Vec3.createVec3(builder, this.x, this.y, this.z, this.test1, this.test2, (this.test3?.a ?? 0), (this.test3?.b ?? 0)); } } diff --git a/tests/ts/my-game/example2.d.ts b/tests/ts/my-game/example2.d.ts new file mode 100644 index 0000000000..6d0d750861 --- /dev/null +++ b/tests/ts/my-game/example2.d.ts @@ -0,0 +1 @@ +export { Monster } from './example2/monster.js'; diff --git a/tests/ts/my-game/example2.js b/tests/ts/my-game/example2.js new file mode 100644 index 0000000000..edab044cad --- /dev/null +++ b/tests/ts/my-game/example2.js @@ -0,0 +1,2 @@ +// automatically generated by the FlatBuffers compiler, do not modify +export { Monster } from './example2/monster.js'; diff --git a/tests/ts/my-game/example2.ts b/tests/ts/my-game/example2.ts new file mode 100644 index 0000000000..faf5b6381f --- /dev/null +++ b/tests/ts/my-game/example2.ts @@ -0,0 +1,3 @@ +// automatically generated by the FlatBuffers compiler, do not modify + +export { Monster } from './example2/monster.js'; diff --git a/tests/ts/my-game/example2/monster.d.ts b/tests/ts/my-game/example2/monster.d.ts new file mode 100644 index 0000000000..9da773b7d4 --- /dev/null +++ b/tests/ts/my-game/example2/monster.d.ts @@ -0,0 +1,20 @@ +import * as flatbuffers from 'flatbuffers'; +export declare class Monster implements flatbuffers.IUnpackableObject { + 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 getFullyQualifiedName(): string; + static startMonster(builder: flatbuffers.Builder): void; + static endMonster(builder: flatbuffers.Builder): flatbuffers.Offset; + static createMonster(builder: flatbuffers.Builder): flatbuffers.Offset; + serialize(): Uint8Array; + static deserialize(buffer: Uint8Array): Monster; + unpack(): MonsterT; + unpackTo(_o: MonsterT): void; +} +export declare class MonsterT implements flatbuffers.IGeneratedObject { + constructor(); + pack(builder: flatbuffers.Builder): flatbuffers.Offset; +} diff --git a/tests/ts/my-game/in-parent-namespace.d.ts b/tests/ts/my-game/in-parent-namespace.d.ts new file mode 100644 index 0000000000..07dc15659a --- /dev/null +++ b/tests/ts/my-game/in-parent-namespace.d.ts @@ -0,0 +1,20 @@ +import * as flatbuffers from 'flatbuffers'; +export declare class InParentNamespace implements flatbuffers.IUnpackableObject { + bb: flatbuffers.ByteBuffer | null; + bb_pos: number; + __init(i: number, bb: flatbuffers.ByteBuffer): InParentNamespace; + static getRootAsInParentNamespace(bb: flatbuffers.ByteBuffer, obj?: InParentNamespace): InParentNamespace; + static getSizePrefixedRootAsInParentNamespace(bb: flatbuffers.ByteBuffer, obj?: InParentNamespace): InParentNamespace; + static getFullyQualifiedName(): string; + static startInParentNamespace(builder: flatbuffers.Builder): void; + static endInParentNamespace(builder: flatbuffers.Builder): flatbuffers.Offset; + static createInParentNamespace(builder: flatbuffers.Builder): flatbuffers.Offset; + serialize(): Uint8Array; + static deserialize(buffer: Uint8Array): InParentNamespace; + unpack(): InParentNamespaceT; + unpackTo(_o: InParentNamespaceT): void; +} +export declare class InParentNamespaceT implements flatbuffers.IGeneratedObject { + constructor(); + pack(builder: flatbuffers.Builder): flatbuffers.Offset; +} diff --git a/tests/ts/my-game/other-name-space.d.ts b/tests/ts/my-game/other-name-space.d.ts new file mode 100644 index 0000000000..d6cab69e85 --- /dev/null +++ b/tests/ts/my-game/other-name-space.d.ts @@ -0,0 +1,3 @@ +export { FromInclude } from './other-name-space/from-include.js'; +export { TableB } from './other-name-space/table-b.js'; +export { Unused } from './other-name-space/unused.js'; diff --git a/tests/ts/my-game/other-name-space.js b/tests/ts/my-game/other-name-space.js new file mode 100644 index 0000000000..12e8e5a6a2 --- /dev/null +++ b/tests/ts/my-game/other-name-space.js @@ -0,0 +1,4 @@ +// automatically generated by the FlatBuffers compiler, do not modify +export { FromInclude } from './other-name-space/from-include.js'; +export { TableB } from './other-name-space/table-b.js'; +export { Unused } from './other-name-space/unused.js'; diff --git a/tests/ts/my-game/other-name-space.ts b/tests/ts/my-game/other-name-space.ts new file mode 100644 index 0000000000..ea4a261ff0 --- /dev/null +++ b/tests/ts/my-game/other-name-space.ts @@ -0,0 +1,5 @@ +// automatically generated by the FlatBuffers compiler, do not modify + +export { FromInclude } from './other-name-space/from-include.js'; +export { TableB } from './other-name-space/table-b.js'; +export { Unused } from './other-name-space/unused.js'; diff --git a/tests/ts/my-game/other-name-space/from-include.d.ts b/tests/ts/my-game/other-name-space/from-include.d.ts new file mode 100644 index 0000000000..dc12fa4b68 --- /dev/null +++ b/tests/ts/my-game/other-name-space/from-include.d.ts @@ -0,0 +1,3 @@ +export declare enum FromInclude { + IncludeVal = "0" +} diff --git a/tests/ts/my-game/other-name-space/from-include.js b/tests/ts/my-game/other-name-space/from-include.js new file mode 100644 index 0000000000..c6e6d08339 --- /dev/null +++ b/tests/ts/my-game/other-name-space/from-include.js @@ -0,0 +1,5 @@ +// automatically generated by the FlatBuffers compiler, do not modify +export var FromInclude; +(function (FromInclude) { + FromInclude["IncludeVal"] = "0"; +})(FromInclude = FromInclude || (FromInclude = {})); diff --git a/tests/optional-scalars/optional-byte.ts b/tests/ts/my-game/other-name-space/from-include.ts similarity index 54% rename from tests/optional-scalars/optional-byte.ts rename to tests/ts/my-game/other-name-space/from-include.ts index f4db265e2b..bdc066d5fe 100644 --- a/tests/optional-scalars/optional-byte.ts +++ b/tests/ts/my-game/other-name-space/from-include.ts @@ -1,7 +1,5 @@ // automatically generated by the FlatBuffers compiler, do not modify -export enum OptionalByte { - None = 0, - One = 1, - Two = 2 +export enum FromInclude { + IncludeVal = '0' } diff --git a/tests/ts/my-game/other-name-space/table-b.d.ts b/tests/ts/my-game/other-name-space/table-b.d.ts new file mode 100644 index 0000000000..d4e1bcfc58 --- /dev/null +++ b/tests/ts/my-game/other-name-space/table-b.d.ts @@ -0,0 +1,24 @@ +import * as flatbuffers from 'flatbuffers'; +import { TableA, TableAT } from '../../table-a.js'; +export declare class TableB implements flatbuffers.IUnpackableObject { + bb: flatbuffers.ByteBuffer | null; + bb_pos: number; + __init(i: number, bb: flatbuffers.ByteBuffer): TableB; + static getRootAsTableB(bb: flatbuffers.ByteBuffer, obj?: TableB): TableB; + static getSizePrefixedRootAsTableB(bb: flatbuffers.ByteBuffer, obj?: TableB): TableB; + a(obj?: TableA): TableA | null; + static getFullyQualifiedName(): string; + static startTableB(builder: flatbuffers.Builder): void; + static addA(builder: flatbuffers.Builder, aOffset: flatbuffers.Offset): void; + static endTableB(builder: flatbuffers.Builder): flatbuffers.Offset; + static createTableB(builder: flatbuffers.Builder, aOffset: flatbuffers.Offset): flatbuffers.Offset; + serialize(): Uint8Array; + static deserialize(buffer: Uint8Array): TableB; + unpack(): TableBT; + unpackTo(_o: TableBT): void; +} +export declare class TableBT implements flatbuffers.IGeneratedObject { + a: TableAT | null; + constructor(a?: TableAT | null); + pack(builder: flatbuffers.Builder): flatbuffers.Offset; +} diff --git a/tests/ts/my-game/other-name-space/table-b.js b/tests/ts/my-game/other-name-space/table-b.js new file mode 100644 index 0000000000..5d95132028 --- /dev/null +++ b/tests/ts/my-game/other-name-space/table-b.js @@ -0,0 +1,64 @@ +// automatically generated by the FlatBuffers compiler, do not modify +import * as flatbuffers from 'flatbuffers'; +import { TableA } from '../../table-a.js'; +export class TableB { + constructor() { + this.bb = null; + this.bb_pos = 0; + } + __init(i, bb) { + this.bb_pos = i; + this.bb = bb; + return this; + } + static getRootAsTableB(bb, obj) { + return (obj || new TableB()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + static getSizePrefixedRootAsTableB(bb, obj) { + bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH); + return (obj || new TableB()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + a(obj) { + const offset = this.bb.__offset(this.bb_pos, 4); + return offset ? (obj || new TableA()).__init(this.bb.__indirect(this.bb_pos + offset), this.bb) : null; + } + static getFullyQualifiedName() { + return 'MyGame.OtherNameSpace.TableB'; + } + static startTableB(builder) { + builder.startObject(1); + } + static addA(builder, aOffset) { + builder.addFieldOffset(0, aOffset, 0); + } + static endTableB(builder) { + const offset = builder.endObject(); + return offset; + } + static createTableB(builder, aOffset) { + TableB.startTableB(builder); + TableB.addA(builder, aOffset); + return TableB.endTableB(builder); + } + serialize() { + return this.bb.bytes(); + } + static deserialize(buffer) { + return TableB.getRootAsTableB(new flatbuffers.ByteBuffer(buffer)); + } + unpack() { + return new TableBT((this.a() !== null ? this.a().unpack() : null)); + } + unpackTo(_o) { + _o.a = (this.a() !== null ? this.a().unpack() : null); + } +} +export class TableBT { + constructor(a = null) { + this.a = a; + } + pack(builder) { + const a = (this.a !== null ? this.a.pack(builder) : 0); + return TableB.createTableB(builder, a); + } +} diff --git a/tests/ts/my-game/other-name-space/table-b.ts b/tests/ts/my-game/other-name-space/table-b.ts new file mode 100644 index 0000000000..d18712b261 --- /dev/null +++ b/tests/ts/my-game/other-name-space/table-b.ts @@ -0,0 +1,87 @@ +// automatically generated by the FlatBuffers compiler, do not modify + +import * as flatbuffers from 'flatbuffers'; + +import { TableA, TableAT } from '../../table-a.js'; + + +export class TableB implements flatbuffers.IUnpackableObject { + bb: flatbuffers.ByteBuffer|null = null; + bb_pos = 0; + __init(i:number, bb:flatbuffers.ByteBuffer):TableB { + this.bb_pos = i; + this.bb = bb; + return this; +} + +static getRootAsTableB(bb:flatbuffers.ByteBuffer, obj?:TableB):TableB { + return (obj || new TableB()).__init(bb.readInt32(bb.position()) + bb.position(), bb); +} + +static getSizePrefixedRootAsTableB(bb:flatbuffers.ByteBuffer, obj?:TableB):TableB { + bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH); + return (obj || new TableB()).__init(bb.readInt32(bb.position()) + bb.position(), bb); +} + +a(obj?:TableA):TableA|null { + const offset = this.bb!.__offset(this.bb_pos, 4); + return offset ? (obj || new TableA()).__init(this.bb!.__indirect(this.bb_pos + offset), this.bb!) : null; +} + +static getFullyQualifiedName():string { + return 'MyGame.OtherNameSpace.TableB'; +} + +static startTableB(builder:flatbuffers.Builder) { + builder.startObject(1); +} + +static addA(builder:flatbuffers.Builder, aOffset:flatbuffers.Offset) { + builder.addFieldOffset(0, aOffset, 0); +} + +static endTableB(builder:flatbuffers.Builder):flatbuffers.Offset { + const offset = builder.endObject(); + return offset; +} + +static createTableB(builder:flatbuffers.Builder, aOffset:flatbuffers.Offset):flatbuffers.Offset { + TableB.startTableB(builder); + TableB.addA(builder, aOffset); + return TableB.endTableB(builder); +} + +serialize():Uint8Array { + return this.bb!.bytes(); +} + +static deserialize(buffer: Uint8Array):TableB { + return TableB.getRootAsTableB(new flatbuffers.ByteBuffer(buffer)) +} + +unpack(): TableBT { + return new TableBT( + (this.a() !== null ? this.a()!.unpack() : null) + ); +} + + +unpackTo(_o: TableBT): void { + _o.a = (this.a() !== null ? this.a()!.unpack() : null); +} +} + +export class TableBT implements flatbuffers.IGeneratedObject { +constructor( + public a: TableAT|null = null +){} + + +pack(builder:flatbuffers.Builder): flatbuffers.Offset { + const a = (this.a !== null ? this.a!.pack(builder) : 0); + + return TableB.createTableB(builder, + a + ); +} +} diff --git a/tests/ts/my-game/other-name-space/unused.d.ts b/tests/ts/my-game/other-name-space/unused.d.ts new file mode 100644 index 0000000000..6d929f24b3 --- /dev/null +++ b/tests/ts/my-game/other-name-space/unused.d.ts @@ -0,0 +1,18 @@ +import * as flatbuffers from 'flatbuffers'; +export declare class Unused implements flatbuffers.IUnpackableObject { + bb: flatbuffers.ByteBuffer | null; + bb_pos: number; + __init(i: number, bb: flatbuffers.ByteBuffer): Unused; + a(): number; + mutate_a(value: number): boolean; + static getFullyQualifiedName(): string; + static sizeOf(): number; + static createUnused(builder: flatbuffers.Builder, a: number): flatbuffers.Offset; + unpack(): UnusedT; + unpackTo(_o: UnusedT): void; +} +export declare class UnusedT implements flatbuffers.IGeneratedObject { + a: number; + constructor(a?: number); + pack(builder: flatbuffers.Builder): flatbuffers.Offset; +} diff --git a/tests/union_vector/rapunzel.js b/tests/ts/my-game/other-name-space/unused.js similarity index 57% rename from tests/union_vector/rapunzel.js rename to tests/ts/my-game/other-name-space/unused.js index 67a5e4453b..0b42918d1e 100644 --- a/tests/union_vector/rapunzel.js +++ b/tests/ts/my-game/other-name-space/unused.js @@ -1,5 +1,5 @@ // automatically generated by the FlatBuffers compiler, do not modify -export class Rapunzel { +export class Unused { constructor() { this.bb = null; this.bb_pos = 0; @@ -9,36 +9,36 @@ export class Rapunzel { this.bb = bb; return this; } - hairLength() { + a() { return this.bb.readInt32(this.bb_pos); } - mutate_hair_length(value) { + mutate_a(value) { this.bb.writeInt32(this.bb_pos + 0, value); return true; } static getFullyQualifiedName() { - return 'Rapunzel'; + return 'MyGame.OtherNameSpace.Unused'; } static sizeOf() { return 4; } - static createRapunzel(builder, hair_length) { + static createUnused(builder, a) { builder.prep(4, 4); - builder.writeInt32(hair_length); + builder.writeInt32(a); return builder.offset(); } unpack() { - return new RapunzelT(this.hairLength()); + return new UnusedT(this.a()); } unpackTo(_o) { - _o.hairLength = this.hairLength(); + _o.a = this.a(); } } -export class RapunzelT { - constructor(hairLength = 0) { - this.hairLength = hairLength; +export class UnusedT { + constructor(a = 0) { + this.a = a; } pack(builder) { - return Rapunzel.createRapunzel(builder, this.hairLength); + return Unused.createUnused(builder, this.a); } } diff --git a/tests/union_vector/rapunzel.ts b/tests/ts/my-game/other-name-space/unused.ts similarity index 50% rename from tests/union_vector/rapunzel.ts rename to tests/ts/my-game/other-name-space/unused.ts index e1dc63ddf5..7f3dbd5089 100644 --- a/tests/union_vector/rapunzel.ts +++ b/tests/ts/my-game/other-name-space/unused.ts @@ -4,60 +4,60 @@ import * as flatbuffers from 'flatbuffers'; -export class Rapunzel { +export class Unused implements flatbuffers.IUnpackableObject { bb: flatbuffers.ByteBuffer|null = null; bb_pos = 0; - __init(i:number, bb:flatbuffers.ByteBuffer):Rapunzel { + __init(i:number, bb:flatbuffers.ByteBuffer):Unused { this.bb_pos = i; this.bb = bb; return this; } -hairLength():number { +a():number { return this.bb!.readInt32(this.bb_pos); } -mutate_hair_length(value:number):boolean { +mutate_a(value:number):boolean { this.bb!.writeInt32(this.bb_pos + 0, value); return true; } static getFullyQualifiedName():string { - return 'Rapunzel'; + return 'MyGame.OtherNameSpace.Unused'; } static sizeOf():number { return 4; } -static createRapunzel(builder:flatbuffers.Builder, hair_length: number):flatbuffers.Offset { +static createUnused(builder:flatbuffers.Builder, a: number):flatbuffers.Offset { builder.prep(4, 4); - builder.writeInt32(hair_length); + builder.writeInt32(a); return builder.offset(); } -unpack(): RapunzelT { - return new RapunzelT( - this.hairLength() +unpack(): UnusedT { + return new UnusedT( + this.a() ); } -unpackTo(_o: RapunzelT): void { - _o.hairLength = this.hairLength(); +unpackTo(_o: UnusedT): void { + _o.a = this.a(); } } -export class RapunzelT { +export class UnusedT implements flatbuffers.IGeneratedObject { constructor( - public hairLength: number = 0 + public a: number = 0 ){} pack(builder:flatbuffers.Builder): flatbuffers.Offset { - return Rapunzel.createRapunzel(builder, - this.hairLength + return Unused.createUnused(builder, + this.a ); } } diff --git a/tests/ts/no_import_ext/optional-scalars.d.ts b/tests/ts/no_import_ext/optional-scalars.d.ts new file mode 100644 index 0000000000..40a0ac6fea --- /dev/null +++ b/tests/ts/no_import_ext/optional-scalars.d.ts @@ -0,0 +1,2 @@ +export { OptionalByte } from './optional-scalars/optional-byte'; +export { ScalarStuff } from './optional-scalars/scalar-stuff'; diff --git a/tests/ts/no_import_ext/optional_scalars_generated.js b/tests/ts/no_import_ext/optional-scalars.js similarity index 100% rename from tests/ts/no_import_ext/optional_scalars_generated.js rename to tests/ts/no_import_ext/optional-scalars.js diff --git a/tests/ts/no_import_ext/optional_scalars_generated.ts b/tests/ts/no_import_ext/optional-scalars.ts similarity index 100% rename from tests/ts/no_import_ext/optional_scalars_generated.ts rename to tests/ts/no_import_ext/optional-scalars.ts diff --git a/tests/ts/no_import_ext/optional-scalars/optional-byte.d.ts b/tests/ts/no_import_ext/optional-scalars/optional-byte.d.ts new file mode 100644 index 0000000000..fc5b5fecd7 --- /dev/null +++ b/tests/ts/no_import_ext/optional-scalars/optional-byte.d.ts @@ -0,0 +1,5 @@ +export declare enum OptionalByte { + None = 0, + One = 1, + Two = 2 +} diff --git a/tests/ts/no_import_ext/optional-scalars/scalar-stuff.d.ts b/tests/ts/no_import_ext/optional-scalars/scalar-stuff.d.ts new file mode 100644 index 0000000000..c8e01a3056 --- /dev/null +++ b/tests/ts/no_import_ext/optional-scalars/scalar-stuff.d.ts @@ -0,0 +1,88 @@ +import * as flatbuffers from 'flatbuffers'; +import { OptionalByte } from '../optional-scalars/optional-byte'; +export declare class ScalarStuff { + bb: flatbuffers.ByteBuffer | null; + bb_pos: number; + __init(i: number, bb: flatbuffers.ByteBuffer): ScalarStuff; + static getRootAsScalarStuff(bb: flatbuffers.ByteBuffer, obj?: ScalarStuff): ScalarStuff; + static getSizePrefixedRootAsScalarStuff(bb: flatbuffers.ByteBuffer, obj?: ScalarStuff): ScalarStuff; + static bufferHasIdentifier(bb: flatbuffers.ByteBuffer): boolean; + justI8(): number; + maybeI8(): number | null; + defaultI8(): number; + justU8(): number; + maybeU8(): number | null; + defaultU8(): number; + justI16(): number; + maybeI16(): number | null; + defaultI16(): number; + justU16(): number; + maybeU16(): number | null; + defaultU16(): number; + justI32(): number; + maybeI32(): number | null; + defaultI32(): number; + justU32(): number; + maybeU32(): number | null; + defaultU32(): number; + justI64(): bigint; + maybeI64(): bigint | null; + defaultI64(): bigint; + justU64(): bigint; + maybeU64(): bigint | null; + defaultU64(): bigint; + justF32(): number; + maybeF32(): number | null; + defaultF32(): number; + justF64(): number; + maybeF64(): number | null; + defaultF64(): number; + justBool(): boolean; + maybeBool(): boolean | null; + defaultBool(): boolean; + justEnum(): OptionalByte; + maybeEnum(): OptionalByte | null; + defaultEnum(): OptionalByte; + static getFullyQualifiedName(): string; + static startScalarStuff(builder: flatbuffers.Builder): void; + static addJustI8(builder: flatbuffers.Builder, justI8: number): void; + static addMaybeI8(builder: flatbuffers.Builder, maybeI8: number): void; + static addDefaultI8(builder: flatbuffers.Builder, defaultI8: number): void; + static addJustU8(builder: flatbuffers.Builder, justU8: number): void; + static addMaybeU8(builder: flatbuffers.Builder, maybeU8: number): void; + static addDefaultU8(builder: flatbuffers.Builder, defaultU8: number): void; + static addJustI16(builder: flatbuffers.Builder, justI16: number): void; + static addMaybeI16(builder: flatbuffers.Builder, maybeI16: number): void; + static addDefaultI16(builder: flatbuffers.Builder, defaultI16: number): void; + static addJustU16(builder: flatbuffers.Builder, justU16: number): void; + static addMaybeU16(builder: flatbuffers.Builder, maybeU16: number): void; + static addDefaultU16(builder: flatbuffers.Builder, defaultU16: number): void; + static addJustI32(builder: flatbuffers.Builder, justI32: number): void; + static addMaybeI32(builder: flatbuffers.Builder, maybeI32: number): void; + static addDefaultI32(builder: flatbuffers.Builder, defaultI32: number): void; + static addJustU32(builder: flatbuffers.Builder, justU32: number): void; + static addMaybeU32(builder: flatbuffers.Builder, maybeU32: number): void; + static addDefaultU32(builder: flatbuffers.Builder, defaultU32: number): void; + static addJustI64(builder: flatbuffers.Builder, justI64: bigint): void; + static addMaybeI64(builder: flatbuffers.Builder, maybeI64: bigint): void; + static addDefaultI64(builder: flatbuffers.Builder, defaultI64: bigint): void; + static addJustU64(builder: flatbuffers.Builder, justU64: bigint): void; + static addMaybeU64(builder: flatbuffers.Builder, maybeU64: bigint): void; + static addDefaultU64(builder: flatbuffers.Builder, defaultU64: bigint): void; + static addJustF32(builder: flatbuffers.Builder, justF32: number): void; + static addMaybeF32(builder: flatbuffers.Builder, maybeF32: number): void; + static addDefaultF32(builder: flatbuffers.Builder, defaultF32: number): void; + static addJustF64(builder: flatbuffers.Builder, justF64: number): void; + static addMaybeF64(builder: flatbuffers.Builder, maybeF64: number): void; + static addDefaultF64(builder: flatbuffers.Builder, defaultF64: number): void; + static addJustBool(builder: flatbuffers.Builder, justBool: boolean): void; + static addMaybeBool(builder: flatbuffers.Builder, maybeBool: boolean): void; + static addDefaultBool(builder: flatbuffers.Builder, defaultBool: boolean): void; + static addJustEnum(builder: flatbuffers.Builder, justEnum: OptionalByte): void; + static addMaybeEnum(builder: flatbuffers.Builder, maybeEnum: OptionalByte): void; + static addDefaultEnum(builder: flatbuffers.Builder, defaultEnum: OptionalByte): void; + static endScalarStuff(builder: flatbuffers.Builder): flatbuffers.Offset; + static finishScalarStuffBuffer(builder: flatbuffers.Builder, offset: flatbuffers.Offset): void; + static finishSizePrefixedScalarStuffBuffer(builder: flatbuffers.Builder, offset: flatbuffers.Offset): void; + static createScalarStuff(builder: flatbuffers.Builder, justI8: number, maybeI8: number | null, defaultI8: number, justU8: number, maybeU8: number | null, defaultU8: number, justI16: number, maybeI16: number | null, defaultI16: number, justU16: number, maybeU16: number | null, defaultU16: number, justI32: number, maybeI32: number | null, defaultI32: number, justU32: number, maybeU32: number | null, defaultU32: number, justI64: bigint, maybeI64: bigint | null, defaultI64: bigint, justU64: bigint, maybeU64: bigint | null, defaultU64: bigint, justF32: number, maybeF32: number | null, defaultF32: number, justF64: number, maybeF64: number | null, defaultF64: number, justBool: boolean, maybeBool: boolean | null, defaultBool: boolean, justEnum: OptionalByte, maybeEnum: OptionalByte | null, defaultEnum: OptionalByte): flatbuffers.Offset; +} diff --git a/tests/ts/no_import_ext/optional_scalars.d.ts b/tests/ts/no_import_ext/optional_scalars.d.ts new file mode 100644 index 0000000000..de14740c35 --- /dev/null +++ b/tests/ts/no_import_ext/optional_scalars.d.ts @@ -0,0 +1 @@ +export * as optional_scalars from './optional-scalars.js'; diff --git a/tests/ts/no_import_ext/optional_scalars.js b/tests/ts/no_import_ext/optional_scalars.js index 6d9830c022..d519b38fa4 100644 --- a/tests/ts/no_import_ext/optional_scalars.js +++ b/tests/ts/no_import_ext/optional_scalars.js @@ -1 +1,3 @@ -export { OptionalByte } from './optional-scalars/optional-byte'; +// automatically generated by the FlatBuffers compiler, do not modify +import * as optional_scalars_1 from './optional-scalars.js'; +export { optional_scalars_1 as optional_scalars }; diff --git a/tests/ts/no_import_ext/optional_scalars.ts b/tests/ts/no_import_ext/optional_scalars.ts index 6d9830c022..18ded6e4f7 100644 --- a/tests/ts/no_import_ext/optional_scalars.ts +++ b/tests/ts/no_import_ext/optional_scalars.ts @@ -1 +1,3 @@ -export { OptionalByte } from './optional-scalars/optional-byte'; +// automatically generated by the FlatBuffers compiler, do not modify + +export * as optional_scalars from './optional-scalars.js'; diff --git a/tests/ts/optional_scalars_generated.ts b/tests/ts/optional-scalars.ts similarity index 100% rename from tests/ts/optional_scalars_generated.ts rename to tests/ts/optional-scalars.ts diff --git a/tests/ts/optional_scalars.ts b/tests/ts/optional_scalars.ts index 6d9830c022..18ded6e4f7 100644 --- a/tests/ts/optional_scalars.ts +++ b/tests/ts/optional_scalars.ts @@ -1 +1,3 @@ -export { OptionalByte } from './optional-scalars/optional-byte'; +// automatically generated by the FlatBuffers compiler, do not modify + +export * as optional_scalars from './optional-scalars.js'; diff --git a/tests/ts/reflection.d.ts b/tests/ts/reflection.d.ts new file mode 100644 index 0000000000..f296e54f0b --- /dev/null +++ b/tests/ts/reflection.d.ts @@ -0,0 +1,12 @@ +export { AdvancedFeatures } from './reflection/advanced-features.js'; +export { BaseType } from './reflection/base-type.js'; +export { Enum } from './reflection/enum.js'; +export { EnumVal } from './reflection/enum-val.js'; +export { Field } from './reflection/field.js'; +export { KeyValue } from './reflection/key-value.js'; +export { Object_ } from './reflection/object.js'; +export { RPCCall } from './reflection/rpccall.js'; +export { Schema } from './reflection/schema.js'; +export { SchemaFile } from './reflection/schema-file.js'; +export { Service } from './reflection/service.js'; +export { Type } from './reflection/type.js'; diff --git a/tests/ts/reflection.js b/tests/ts/reflection.js new file mode 100644 index 0000000000..881519a286 --- /dev/null +++ b/tests/ts/reflection.js @@ -0,0 +1,13 @@ +// automatically generated by the FlatBuffers compiler, do not modify +export { AdvancedFeatures } from './reflection/advanced-features.js'; +export { BaseType } from './reflection/base-type.js'; +export { Enum } from './reflection/enum.js'; +export { EnumVal } from './reflection/enum-val.js'; +export { Field } from './reflection/field.js'; +export { KeyValue } from './reflection/key-value.js'; +export { Object_ } from './reflection/object.js'; +export { RPCCall } from './reflection/rpccall.js'; +export { Schema } from './reflection/schema.js'; +export { SchemaFile } from './reflection/schema-file.js'; +export { Service } from './reflection/service.js'; +export { Type } from './reflection/type.js'; diff --git a/tests/ts/reflection.ts b/tests/ts/reflection.ts new file mode 100644 index 0000000000..8440332d16 --- /dev/null +++ b/tests/ts/reflection.ts @@ -0,0 +1,14 @@ +// automatically generated by the FlatBuffers compiler, do not modify + +export { AdvancedFeatures } from './reflection/advanced-features.js'; +export { BaseType } from './reflection/base-type.js'; +export { Enum } from './reflection/enum.js'; +export { EnumVal } from './reflection/enum-val.js'; +export { Field } from './reflection/field.js'; +export { KeyValue } from './reflection/key-value.js'; +export { Object_ } from './reflection/object.js'; +export { RPCCall } from './reflection/rpccall.js'; +export { Schema } from './reflection/schema.js'; +export { SchemaFile } from './reflection/schema-file.js'; +export { Service } from './reflection/service.js'; +export { Type } from './reflection/type.js'; diff --git a/tests/ts/reflection/advanced-features.d.ts b/tests/ts/reflection/advanced-features.d.ts new file mode 100644 index 0000000000..a51745e45e --- /dev/null +++ b/tests/ts/reflection/advanced-features.d.ts @@ -0,0 +1,9 @@ +/** + * New schema language features that are not supported by old code generators. + */ +export declare enum AdvancedFeatures { + AdvancedArrayFeatures = "1", + AdvancedUnionFeatures = "2", + OptionalScalars = "4", + DefaultVectorsAndStrings = "8" +} diff --git a/tests/ts/reflection/advanced-features.js b/tests/ts/reflection/advanced-features.js new file mode 100644 index 0000000000..432bb44f52 --- /dev/null +++ b/tests/ts/reflection/advanced-features.js @@ -0,0 +1,11 @@ +// automatically generated by the FlatBuffers compiler, do not modify +/** + * New schema language features that are not supported by old code generators. + */ +export var AdvancedFeatures; +(function (AdvancedFeatures) { + AdvancedFeatures["AdvancedArrayFeatures"] = "1"; + AdvancedFeatures["AdvancedUnionFeatures"] = "2"; + AdvancedFeatures["OptionalScalars"] = "4"; + AdvancedFeatures["DefaultVectorsAndStrings"] = "8"; +})(AdvancedFeatures = AdvancedFeatures || (AdvancedFeatures = {})); diff --git a/tests/ts/reflection/base-type.d.ts b/tests/ts/reflection/base-type.d.ts new file mode 100644 index 0000000000..43ff4feb77 --- /dev/null +++ b/tests/ts/reflection/base-type.d.ts @@ -0,0 +1,21 @@ +export declare enum BaseType { + None = 0, + UType = 1, + Bool = 2, + Byte = 3, + UByte = 4, + Short = 5, + UShort = 6, + Int = 7, + UInt = 8, + Long = 9, + ULong = 10, + Float = 11, + Double = 12, + String = 13, + Vector = 14, + Obj = 15, + Union = 16, + Array = 17, + MaxBaseType = 18 +} diff --git a/tests/ts/reflection/base-type.js b/tests/ts/reflection/base-type.js index dccd0ac9e5..b49e64b3be 100644 --- a/tests/ts/reflection/base-type.js +++ b/tests/ts/reflection/base-type.js @@ -20,4 +20,4 @@ export var BaseType; BaseType[BaseType["Union"] = 16] = "Union"; BaseType[BaseType["Array"] = 17] = "Array"; BaseType[BaseType["MaxBaseType"] = 18] = "MaxBaseType"; -})(BaseType || (BaseType = {})); +})(BaseType = BaseType || (BaseType = {})); diff --git a/tests/ts/reflection/enum-val.d.ts b/tests/ts/reflection/enum-val.d.ts new file mode 100644 index 0000000000..ba436fffa2 --- /dev/null +++ b/tests/ts/reflection/enum-val.d.ts @@ -0,0 +1,43 @@ +import * as flatbuffers from 'flatbuffers'; +import { KeyValue, KeyValueT } from '../reflection/key-value.js'; +import { Type, TypeT } from '../reflection/type.js'; +export declare class EnumVal implements flatbuffers.IUnpackableObject { + bb: flatbuffers.ByteBuffer | null; + bb_pos: number; + __init(i: number, bb: flatbuffers.ByteBuffer): EnumVal; + static getRootAsEnumVal(bb: flatbuffers.ByteBuffer, obj?: EnumVal): EnumVal; + static getSizePrefixedRootAsEnumVal(bb: flatbuffers.ByteBuffer, obj?: EnumVal): EnumVal; + name(): string | null; + name(optionalEncoding: flatbuffers.Encoding): string | Uint8Array | null; + value(): bigint; + mutate_value(value: bigint): boolean; + unionType(obj?: Type): Type | null; + documentation(index: number): string; + documentation(index: number, optionalEncoding: flatbuffers.Encoding): string | Uint8Array; + documentationLength(): number; + attributes(index: number, obj?: KeyValue): KeyValue | null; + attributesLength(): number; + static getFullyQualifiedName(): string; + static startEnumVal(builder: flatbuffers.Builder): void; + static addName(builder: flatbuffers.Builder, nameOffset: flatbuffers.Offset): void; + static addValue(builder: flatbuffers.Builder, value: bigint): void; + static addUnionType(builder: flatbuffers.Builder, unionTypeOffset: flatbuffers.Offset): void; + static addDocumentation(builder: flatbuffers.Builder, documentationOffset: flatbuffers.Offset): void; + static createDocumentationVector(builder: flatbuffers.Builder, data: flatbuffers.Offset[]): flatbuffers.Offset; + static startDocumentationVector(builder: flatbuffers.Builder, numElems: number): void; + static addAttributes(builder: flatbuffers.Builder, attributesOffset: flatbuffers.Offset): void; + static createAttributesVector(builder: flatbuffers.Builder, data: flatbuffers.Offset[]): flatbuffers.Offset; + static startAttributesVector(builder: flatbuffers.Builder, numElems: number): void; + static endEnumVal(builder: flatbuffers.Builder): flatbuffers.Offset; + unpack(): EnumValT; + unpackTo(_o: EnumValT): void; +} +export declare class EnumValT implements flatbuffers.IGeneratedObject { + name: string | Uint8Array | null; + value: bigint; + unionType: TypeT | null; + documentation: (string)[]; + attributes: (KeyValueT)[]; + constructor(name?: string | Uint8Array | null, value?: bigint, unionType?: TypeT | null, documentation?: (string)[], attributes?: (KeyValueT)[]); + pack(builder: flatbuffers.Builder): flatbuffers.Offset; +} diff --git a/tests/ts/reflection/enum.d.ts b/tests/ts/reflection/enum.d.ts new file mode 100644 index 0000000000..e4226bf524 --- /dev/null +++ b/tests/ts/reflection/enum.d.ts @@ -0,0 +1,57 @@ +import * as flatbuffers from 'flatbuffers'; +import { EnumVal, EnumValT } from '../reflection/enum-val.js'; +import { KeyValue, KeyValueT } from '../reflection/key-value.js'; +import { Type, TypeT } from '../reflection/type.js'; +export declare class Enum implements flatbuffers.IUnpackableObject { + bb: flatbuffers.ByteBuffer | null; + bb_pos: number; + __init(i: number, bb: flatbuffers.ByteBuffer): Enum; + static getRootAsEnum(bb: flatbuffers.ByteBuffer, obj?: Enum): Enum; + static getSizePrefixedRootAsEnum(bb: flatbuffers.ByteBuffer, obj?: Enum): Enum; + name(): string | null; + name(optionalEncoding: flatbuffers.Encoding): string | Uint8Array | null; + values(index: number, obj?: EnumVal): EnumVal | null; + valuesLength(): number; + isUnion(): boolean; + mutate_is_union(value: boolean): boolean; + underlyingType(obj?: Type): Type | null; + attributes(index: number, obj?: KeyValue): KeyValue | null; + attributesLength(): number; + documentation(index: number): string; + documentation(index: number, optionalEncoding: flatbuffers.Encoding): string | Uint8Array; + documentationLength(): number; + /** + * File that this Enum is declared in. + */ + declarationFile(): string | null; + declarationFile(optionalEncoding: flatbuffers.Encoding): string | Uint8Array | null; + static getFullyQualifiedName(): string; + static startEnum(builder: flatbuffers.Builder): void; + static addName(builder: flatbuffers.Builder, nameOffset: flatbuffers.Offset): void; + static addValues(builder: flatbuffers.Builder, valuesOffset: flatbuffers.Offset): void; + static createValuesVector(builder: flatbuffers.Builder, data: flatbuffers.Offset[]): flatbuffers.Offset; + static startValuesVector(builder: flatbuffers.Builder, numElems: number): void; + static addIsUnion(builder: flatbuffers.Builder, isUnion: boolean): void; + static addUnderlyingType(builder: flatbuffers.Builder, underlyingTypeOffset: flatbuffers.Offset): void; + static addAttributes(builder: flatbuffers.Builder, attributesOffset: flatbuffers.Offset): void; + static createAttributesVector(builder: flatbuffers.Builder, data: flatbuffers.Offset[]): flatbuffers.Offset; + static startAttributesVector(builder: flatbuffers.Builder, numElems: number): void; + static addDocumentation(builder: flatbuffers.Builder, documentationOffset: flatbuffers.Offset): void; + static createDocumentationVector(builder: flatbuffers.Builder, data: flatbuffers.Offset[]): flatbuffers.Offset; + static startDocumentationVector(builder: flatbuffers.Builder, numElems: number): void; + static addDeclarationFile(builder: flatbuffers.Builder, declarationFileOffset: flatbuffers.Offset): void; + static endEnum(builder: flatbuffers.Builder): flatbuffers.Offset; + unpack(): EnumT; + unpackTo(_o: EnumT): void; +} +export declare class EnumT implements flatbuffers.IGeneratedObject { + name: string | Uint8Array | null; + values: (EnumValT)[]; + isUnion: boolean; + underlyingType: TypeT | null; + attributes: (KeyValueT)[]; + documentation: (string)[]; + declarationFile: string | Uint8Array | null; + constructor(name?: string | Uint8Array | null, values?: (EnumValT)[], isUnion?: boolean, underlyingType?: TypeT | null, attributes?: (KeyValueT)[], documentation?: (string)[], declarationFile?: string | Uint8Array | null); + pack(builder: flatbuffers.Builder): flatbuffers.Offset; +} diff --git a/tests/ts/reflection/field.d.ts b/tests/ts/reflection/field.d.ts new file mode 100644 index 0000000000..42a2142b6d --- /dev/null +++ b/tests/ts/reflection/field.d.ts @@ -0,0 +1,78 @@ +import * as flatbuffers from 'flatbuffers'; +import { KeyValue, KeyValueT } from '../reflection/key-value.js'; +import { Type, TypeT } from '../reflection/type.js'; +export declare class Field implements flatbuffers.IUnpackableObject { + bb: flatbuffers.ByteBuffer | null; + bb_pos: number; + __init(i: number, bb: flatbuffers.ByteBuffer): Field; + static getRootAsField(bb: flatbuffers.ByteBuffer, obj?: Field): Field; + static getSizePrefixedRootAsField(bb: flatbuffers.ByteBuffer, obj?: Field): Field; + name(): string | null; + name(optionalEncoding: flatbuffers.Encoding): string | Uint8Array | null; + type(obj?: Type): Type | null; + id(): number; + mutate_id(value: number): boolean; + offset(): number; + mutate_offset(value: number): boolean; + defaultInteger(): bigint; + mutate_default_integer(value: bigint): boolean; + defaultReal(): number; + mutate_default_real(value: number): boolean; + deprecated(): boolean; + mutate_deprecated(value: boolean): boolean; + required(): boolean; + mutate_required(value: boolean): boolean; + key(): boolean; + mutate_key(value: boolean): boolean; + attributes(index: number, obj?: KeyValue): KeyValue | null; + attributesLength(): number; + documentation(index: number): string; + documentation(index: number, optionalEncoding: flatbuffers.Encoding): string | Uint8Array; + documentationLength(): number; + optional(): boolean; + mutate_optional(value: boolean): boolean; + /** + * Number of padding octets to always add after this field. Structs only. + */ + padding(): number; + mutate_padding(value: number): boolean; + static getFullyQualifiedName(): string; + static startField(builder: flatbuffers.Builder): void; + static addName(builder: flatbuffers.Builder, nameOffset: flatbuffers.Offset): void; + static addType(builder: flatbuffers.Builder, typeOffset: flatbuffers.Offset): void; + static addId(builder: flatbuffers.Builder, id: number): void; + static addOffset(builder: flatbuffers.Builder, offset: number): void; + static addDefaultInteger(builder: flatbuffers.Builder, defaultInteger: bigint): void; + static addDefaultReal(builder: flatbuffers.Builder, defaultReal: number): void; + static addDeprecated(builder: flatbuffers.Builder, deprecated: boolean): void; + static addRequired(builder: flatbuffers.Builder, required: boolean): void; + static addKey(builder: flatbuffers.Builder, key: boolean): void; + static addAttributes(builder: flatbuffers.Builder, attributesOffset: flatbuffers.Offset): void; + static createAttributesVector(builder: flatbuffers.Builder, data: flatbuffers.Offset[]): flatbuffers.Offset; + static startAttributesVector(builder: flatbuffers.Builder, numElems: number): void; + static addDocumentation(builder: flatbuffers.Builder, documentationOffset: flatbuffers.Offset): void; + static createDocumentationVector(builder: flatbuffers.Builder, data: flatbuffers.Offset[]): flatbuffers.Offset; + static startDocumentationVector(builder: flatbuffers.Builder, numElems: number): void; + static addOptional(builder: flatbuffers.Builder, optional: boolean): void; + static addPadding(builder: flatbuffers.Builder, padding: number): void; + static endField(builder: flatbuffers.Builder): flatbuffers.Offset; + unpack(): FieldT; + unpackTo(_o: FieldT): void; +} +export declare class FieldT implements flatbuffers.IGeneratedObject { + name: string | Uint8Array | null; + type: TypeT | null; + id: number; + offset: number; + defaultInteger: bigint; + defaultReal: number; + deprecated: boolean; + required: boolean; + key: boolean; + attributes: (KeyValueT)[]; + documentation: (string)[]; + optional: boolean; + padding: number; + constructor(name?: string | Uint8Array | null, type?: TypeT | null, id?: number, offset?: number, defaultInteger?: bigint, defaultReal?: number, deprecated?: boolean, required?: boolean, key?: boolean, attributes?: (KeyValueT)[], documentation?: (string)[], optional?: boolean, padding?: number); + pack(builder: flatbuffers.Builder): flatbuffers.Offset; +} diff --git a/tests/ts/reflection/key-value.d.ts b/tests/ts/reflection/key-value.d.ts new file mode 100644 index 0000000000..23f5f1d442 --- /dev/null +++ b/tests/ts/reflection/key-value.d.ts @@ -0,0 +1,26 @@ +import * as flatbuffers from 'flatbuffers'; +export declare class KeyValue implements flatbuffers.IUnpackableObject { + bb: flatbuffers.ByteBuffer | null; + bb_pos: number; + __init(i: number, bb: flatbuffers.ByteBuffer): KeyValue; + static getRootAsKeyValue(bb: flatbuffers.ByteBuffer, obj?: KeyValue): KeyValue; + static getSizePrefixedRootAsKeyValue(bb: flatbuffers.ByteBuffer, obj?: KeyValue): KeyValue; + key(): string | null; + key(optionalEncoding: flatbuffers.Encoding): string | Uint8Array | null; + value(): string | null; + value(optionalEncoding: flatbuffers.Encoding): string | Uint8Array | null; + static getFullyQualifiedName(): string; + static startKeyValue(builder: flatbuffers.Builder): void; + static addKey(builder: flatbuffers.Builder, keyOffset: flatbuffers.Offset): void; + static addValue(builder: flatbuffers.Builder, valueOffset: flatbuffers.Offset): void; + static endKeyValue(builder: flatbuffers.Builder): flatbuffers.Offset; + static createKeyValue(builder: flatbuffers.Builder, keyOffset: flatbuffers.Offset, valueOffset: flatbuffers.Offset): flatbuffers.Offset; + unpack(): KeyValueT; + unpackTo(_o: KeyValueT): void; +} +export declare class KeyValueT implements flatbuffers.IGeneratedObject { + key: string | Uint8Array | null; + value: string | Uint8Array | null; + constructor(key?: string | Uint8Array | null, value?: string | Uint8Array | null); + pack(builder: flatbuffers.Builder): flatbuffers.Offset; +} diff --git a/tests/ts/reflection/object.d.ts b/tests/ts/reflection/object.d.ts new file mode 100644 index 0000000000..8f8c5400df --- /dev/null +++ b/tests/ts/reflection/object.d.ts @@ -0,0 +1,62 @@ +import * as flatbuffers from 'flatbuffers'; +import { Field, FieldT } from '../reflection/field.js'; +import { KeyValue, KeyValueT } from '../reflection/key-value.js'; +export declare class Object_ implements flatbuffers.IUnpackableObject { + bb: flatbuffers.ByteBuffer | null; + bb_pos: number; + __init(i: number, bb: flatbuffers.ByteBuffer): Object_; + static getRootAsObject(bb: flatbuffers.ByteBuffer, obj?: Object_): Object_; + static getSizePrefixedRootAsObject(bb: flatbuffers.ByteBuffer, obj?: Object_): Object_; + name(): string | null; + name(optionalEncoding: flatbuffers.Encoding): string | Uint8Array | null; + fields(index: number, obj?: Field): Field | null; + fieldsLength(): number; + isStruct(): boolean; + mutate_is_struct(value: boolean): boolean; + minalign(): number; + mutate_minalign(value: number): boolean; + bytesize(): number; + mutate_bytesize(value: number): boolean; + attributes(index: number, obj?: KeyValue): KeyValue | null; + attributesLength(): number; + documentation(index: number): string; + documentation(index: number, optionalEncoding: flatbuffers.Encoding): string | Uint8Array; + documentationLength(): number; + /** + * File that this Object is declared in. + */ + declarationFile(): string | null; + declarationFile(optionalEncoding: flatbuffers.Encoding): string | Uint8Array | null; + static getFullyQualifiedName(): string; + static startObject(builder: flatbuffers.Builder): void; + static addName(builder: flatbuffers.Builder, nameOffset: flatbuffers.Offset): void; + static addFields(builder: flatbuffers.Builder, fieldsOffset: flatbuffers.Offset): void; + static createFieldsVector(builder: flatbuffers.Builder, data: flatbuffers.Offset[]): flatbuffers.Offset; + static startFieldsVector(builder: flatbuffers.Builder, numElems: number): void; + static addIsStruct(builder: flatbuffers.Builder, isStruct: boolean): void; + static addMinalign(builder: flatbuffers.Builder, minalign: number): void; + static addBytesize(builder: flatbuffers.Builder, bytesize: number): void; + static addAttributes(builder: flatbuffers.Builder, attributesOffset: flatbuffers.Offset): void; + static createAttributesVector(builder: flatbuffers.Builder, data: flatbuffers.Offset[]): flatbuffers.Offset; + static startAttributesVector(builder: flatbuffers.Builder, numElems: number): void; + static addDocumentation(builder: flatbuffers.Builder, documentationOffset: flatbuffers.Offset): void; + static createDocumentationVector(builder: flatbuffers.Builder, data: flatbuffers.Offset[]): flatbuffers.Offset; + static startDocumentationVector(builder: flatbuffers.Builder, numElems: number): void; + static addDeclarationFile(builder: flatbuffers.Builder, declarationFileOffset: flatbuffers.Offset): void; + static endObject(builder: flatbuffers.Builder): flatbuffers.Offset; + static createObject(builder: flatbuffers.Builder, nameOffset: flatbuffers.Offset, fieldsOffset: flatbuffers.Offset, isStruct: boolean, minalign: number, bytesize: number, attributesOffset: flatbuffers.Offset, documentationOffset: flatbuffers.Offset, declarationFileOffset: flatbuffers.Offset): flatbuffers.Offset; + unpack(): Object_T; + unpackTo(_o: Object_T): void; +} +export declare class Object_T implements flatbuffers.IGeneratedObject { + name: string | Uint8Array | null; + fields: (FieldT)[]; + isStruct: boolean; + minalign: number; + bytesize: number; + attributes: (KeyValueT)[]; + documentation: (string)[]; + declarationFile: string | Uint8Array | null; + constructor(name?: string | Uint8Array | null, fields?: (FieldT)[], isStruct?: boolean, minalign?: number, bytesize?: number, attributes?: (KeyValueT)[], documentation?: (string)[], declarationFile?: string | Uint8Array | null); + pack(builder: flatbuffers.Builder): flatbuffers.Offset; +} diff --git a/tests/ts/reflection/rpccall.d.ts b/tests/ts/reflection/rpccall.d.ts new file mode 100644 index 0000000000..e70ba91749 --- /dev/null +++ b/tests/ts/reflection/rpccall.d.ts @@ -0,0 +1,42 @@ +import * as flatbuffers from 'flatbuffers'; +import { KeyValue, KeyValueT } from '../reflection/key-value.js'; +import { Object_, Object_T } from '../reflection/object.js'; +export declare class RPCCall implements flatbuffers.IUnpackableObject { + bb: flatbuffers.ByteBuffer | null; + bb_pos: number; + __init(i: number, bb: flatbuffers.ByteBuffer): RPCCall; + static getRootAsRPCCall(bb: flatbuffers.ByteBuffer, obj?: RPCCall): RPCCall; + static getSizePrefixedRootAsRPCCall(bb: flatbuffers.ByteBuffer, obj?: RPCCall): RPCCall; + name(): string | null; + name(optionalEncoding: flatbuffers.Encoding): string | Uint8Array | null; + request(obj?: Object_): Object_ | null; + response(obj?: Object_): Object_ | null; + attributes(index: number, obj?: KeyValue): KeyValue | null; + attributesLength(): number; + documentation(index: number): string; + documentation(index: number, optionalEncoding: flatbuffers.Encoding): string | Uint8Array; + documentationLength(): number; + static getFullyQualifiedName(): string; + static startRPCCall(builder: flatbuffers.Builder): void; + static addName(builder: flatbuffers.Builder, nameOffset: flatbuffers.Offset): void; + static addRequest(builder: flatbuffers.Builder, requestOffset: flatbuffers.Offset): void; + static addResponse(builder: flatbuffers.Builder, responseOffset: flatbuffers.Offset): void; + static addAttributes(builder: flatbuffers.Builder, attributesOffset: flatbuffers.Offset): void; + static createAttributesVector(builder: flatbuffers.Builder, data: flatbuffers.Offset[]): flatbuffers.Offset; + static startAttributesVector(builder: flatbuffers.Builder, numElems: number): void; + static addDocumentation(builder: flatbuffers.Builder, documentationOffset: flatbuffers.Offset): void; + static createDocumentationVector(builder: flatbuffers.Builder, data: flatbuffers.Offset[]): flatbuffers.Offset; + static startDocumentationVector(builder: flatbuffers.Builder, numElems: number): void; + static endRPCCall(builder: flatbuffers.Builder): flatbuffers.Offset; + unpack(): RPCCallT; + unpackTo(_o: RPCCallT): void; +} +export declare class RPCCallT implements flatbuffers.IGeneratedObject { + name: string | Uint8Array | null; + request: Object_T | null; + response: Object_T | null; + attributes: (KeyValueT)[]; + documentation: (string)[]; + constructor(name?: string | Uint8Array | null, request?: Object_T | null, response?: Object_T | null, attributes?: (KeyValueT)[], documentation?: (string)[]); + pack(builder: flatbuffers.Builder): flatbuffers.Offset; +} diff --git a/tests/ts/reflection/schema-file.d.ts b/tests/ts/reflection/schema-file.d.ts new file mode 100644 index 0000000000..18f943caa4 --- /dev/null +++ b/tests/ts/reflection/schema-file.d.ts @@ -0,0 +1,40 @@ +import * as flatbuffers from 'flatbuffers'; +/** + * File specific information. + * Symbols declared within a file may be recovered by iterating over all + * symbols and examining the `declaration_file` field. + */ +export declare class SchemaFile implements flatbuffers.IUnpackableObject { + bb: flatbuffers.ByteBuffer | null; + bb_pos: number; + __init(i: number, bb: flatbuffers.ByteBuffer): SchemaFile; + static getRootAsSchemaFile(bb: flatbuffers.ByteBuffer, obj?: SchemaFile): SchemaFile; + static getSizePrefixedRootAsSchemaFile(bb: flatbuffers.ByteBuffer, obj?: SchemaFile): SchemaFile; + /** + * Filename, relative to project root. + */ + filename(): string | null; + filename(optionalEncoding: flatbuffers.Encoding): string | Uint8Array | null; + /** + * Names of included files, relative to project root. + */ + includedFilenames(index: number): string; + includedFilenames(index: number, optionalEncoding: flatbuffers.Encoding): string | Uint8Array; + includedFilenamesLength(): number; + static getFullyQualifiedName(): string; + static startSchemaFile(builder: flatbuffers.Builder): void; + static addFilename(builder: flatbuffers.Builder, filenameOffset: flatbuffers.Offset): void; + static addIncludedFilenames(builder: flatbuffers.Builder, includedFilenamesOffset: flatbuffers.Offset): void; + static createIncludedFilenamesVector(builder: flatbuffers.Builder, data: flatbuffers.Offset[]): flatbuffers.Offset; + static startIncludedFilenamesVector(builder: flatbuffers.Builder, numElems: number): void; + static endSchemaFile(builder: flatbuffers.Builder): flatbuffers.Offset; + static createSchemaFile(builder: flatbuffers.Builder, filenameOffset: flatbuffers.Offset, includedFilenamesOffset: flatbuffers.Offset): flatbuffers.Offset; + unpack(): SchemaFileT; + unpackTo(_o: SchemaFileT): void; +} +export declare class SchemaFileT implements flatbuffers.IGeneratedObject { + filename: string | Uint8Array | null; + includedFilenames: (string)[]; + constructor(filename?: string | Uint8Array | null, includedFilenames?: (string)[]); + pack(builder: flatbuffers.Builder): flatbuffers.Offset; +} diff --git a/tests/ts/reflection/schema.d.ts b/tests/ts/reflection/schema.d.ts new file mode 100644 index 0000000000..40a38afa16 --- /dev/null +++ b/tests/ts/reflection/schema.d.ts @@ -0,0 +1,67 @@ +import * as flatbuffers from 'flatbuffers'; +import { Enum, EnumT } from '../reflection/enum.js'; +import { Object_, Object_T } from '../reflection/object.js'; +import { SchemaFile, SchemaFileT } from '../reflection/schema-file.js'; +import { Service, ServiceT } from '../reflection/service.js'; +export declare class Schema implements flatbuffers.IUnpackableObject { + bb: flatbuffers.ByteBuffer | null; + bb_pos: number; + __init(i: number, bb: flatbuffers.ByteBuffer): Schema; + static getRootAsSchema(bb: flatbuffers.ByteBuffer, obj?: Schema): Schema; + static getSizePrefixedRootAsSchema(bb: flatbuffers.ByteBuffer, obj?: Schema): Schema; + static bufferHasIdentifier(bb: flatbuffers.ByteBuffer): boolean; + objects(index: number, obj?: Object_): Object_ | null; + objectsLength(): number; + enums(index: number, obj?: Enum): Enum | null; + enumsLength(): number; + fileIdent(): string | null; + fileIdent(optionalEncoding: flatbuffers.Encoding): string | Uint8Array | null; + fileExt(): string | null; + fileExt(optionalEncoding: flatbuffers.Encoding): string | Uint8Array | null; + rootTable(obj?: Object_): Object_ | null; + services(index: number, obj?: Service): Service | null; + servicesLength(): number; + advancedFeatures(): bigint; + mutate_advanced_features(value: bigint): boolean; + /** + * All the files used in this compilation. Files are relative to where + * flatc was invoked. + */ + fbsFiles(index: number, obj?: SchemaFile): SchemaFile | null; + fbsFilesLength(): number; + static getFullyQualifiedName(): string; + static startSchema(builder: flatbuffers.Builder): void; + static addObjects(builder: flatbuffers.Builder, objectsOffset: flatbuffers.Offset): void; + static createObjectsVector(builder: flatbuffers.Builder, data: flatbuffers.Offset[]): flatbuffers.Offset; + static startObjectsVector(builder: flatbuffers.Builder, numElems: number): void; + static addEnums(builder: flatbuffers.Builder, enumsOffset: flatbuffers.Offset): void; + static createEnumsVector(builder: flatbuffers.Builder, data: flatbuffers.Offset[]): flatbuffers.Offset; + static startEnumsVector(builder: flatbuffers.Builder, numElems: number): void; + static addFileIdent(builder: flatbuffers.Builder, fileIdentOffset: flatbuffers.Offset): void; + static addFileExt(builder: flatbuffers.Builder, fileExtOffset: flatbuffers.Offset): void; + static addRootTable(builder: flatbuffers.Builder, rootTableOffset: flatbuffers.Offset): void; + static addServices(builder: flatbuffers.Builder, servicesOffset: flatbuffers.Offset): void; + static createServicesVector(builder: flatbuffers.Builder, data: flatbuffers.Offset[]): flatbuffers.Offset; + static startServicesVector(builder: flatbuffers.Builder, numElems: number): void; + static addAdvancedFeatures(builder: flatbuffers.Builder, advancedFeatures: bigint): void; + static addFbsFiles(builder: flatbuffers.Builder, fbsFilesOffset: flatbuffers.Offset): void; + static createFbsFilesVector(builder: flatbuffers.Builder, data: flatbuffers.Offset[]): flatbuffers.Offset; + static startFbsFilesVector(builder: flatbuffers.Builder, numElems: number): void; + static endSchema(builder: flatbuffers.Builder): flatbuffers.Offset; + static finishSchemaBuffer(builder: flatbuffers.Builder, offset: flatbuffers.Offset): void; + static finishSizePrefixedSchemaBuffer(builder: flatbuffers.Builder, offset: flatbuffers.Offset): void; + unpack(): SchemaT; + unpackTo(_o: SchemaT): void; +} +export declare class SchemaT implements flatbuffers.IGeneratedObject { + objects: (Object_T)[]; + enums: (EnumT)[]; + fileIdent: string | Uint8Array | null; + fileExt: string | Uint8Array | null; + rootTable: Object_T | null; + services: (ServiceT)[]; + advancedFeatures: bigint; + fbsFiles: (SchemaFileT)[]; + constructor(objects?: (Object_T)[], enums?: (EnumT)[], fileIdent?: string | Uint8Array | null, fileExt?: string | Uint8Array | null, rootTable?: Object_T | null, services?: (ServiceT)[], advancedFeatures?: bigint, fbsFiles?: (SchemaFileT)[]); + pack(builder: flatbuffers.Builder): flatbuffers.Offset; +} diff --git a/tests/ts/reflection/service.d.ts b/tests/ts/reflection/service.d.ts new file mode 100644 index 0000000000..6bea22bb6f --- /dev/null +++ b/tests/ts/reflection/service.d.ts @@ -0,0 +1,50 @@ +import * as flatbuffers from 'flatbuffers'; +import { KeyValue, KeyValueT } from '../reflection/key-value.js'; +import { RPCCall, RPCCallT } from '../reflection/rpccall.js'; +export declare class Service implements flatbuffers.IUnpackableObject { + bb: flatbuffers.ByteBuffer | null; + bb_pos: number; + __init(i: number, bb: flatbuffers.ByteBuffer): Service; + static getRootAsService(bb: flatbuffers.ByteBuffer, obj?: Service): Service; + static getSizePrefixedRootAsService(bb: flatbuffers.ByteBuffer, obj?: Service): Service; + name(): string | null; + name(optionalEncoding: flatbuffers.Encoding): string | Uint8Array | null; + calls(index: number, obj?: RPCCall): RPCCall | null; + callsLength(): number; + attributes(index: number, obj?: KeyValue): KeyValue | null; + attributesLength(): number; + documentation(index: number): string; + documentation(index: number, optionalEncoding: flatbuffers.Encoding): string | Uint8Array; + documentationLength(): number; + /** + * File that this Service is declared in. + */ + declarationFile(): string | null; + declarationFile(optionalEncoding: flatbuffers.Encoding): string | Uint8Array | null; + static getFullyQualifiedName(): string; + static startService(builder: flatbuffers.Builder): void; + static addName(builder: flatbuffers.Builder, nameOffset: flatbuffers.Offset): void; + static addCalls(builder: flatbuffers.Builder, callsOffset: flatbuffers.Offset): void; + static createCallsVector(builder: flatbuffers.Builder, data: flatbuffers.Offset[]): flatbuffers.Offset; + static startCallsVector(builder: flatbuffers.Builder, numElems: number): void; + static addAttributes(builder: flatbuffers.Builder, attributesOffset: flatbuffers.Offset): void; + static createAttributesVector(builder: flatbuffers.Builder, data: flatbuffers.Offset[]): flatbuffers.Offset; + static startAttributesVector(builder: flatbuffers.Builder, numElems: number): void; + static addDocumentation(builder: flatbuffers.Builder, documentationOffset: flatbuffers.Offset): void; + static createDocumentationVector(builder: flatbuffers.Builder, data: flatbuffers.Offset[]): flatbuffers.Offset; + static startDocumentationVector(builder: flatbuffers.Builder, numElems: number): void; + static addDeclarationFile(builder: flatbuffers.Builder, declarationFileOffset: flatbuffers.Offset): void; + static endService(builder: flatbuffers.Builder): flatbuffers.Offset; + static createService(builder: flatbuffers.Builder, nameOffset: flatbuffers.Offset, callsOffset: flatbuffers.Offset, attributesOffset: flatbuffers.Offset, documentationOffset: flatbuffers.Offset, declarationFileOffset: flatbuffers.Offset): flatbuffers.Offset; + unpack(): ServiceT; + unpackTo(_o: ServiceT): void; +} +export declare class ServiceT implements flatbuffers.IGeneratedObject { + name: string | Uint8Array | null; + calls: (RPCCallT)[]; + attributes: (KeyValueT)[]; + documentation: (string)[]; + declarationFile: string | Uint8Array | null; + constructor(name?: string | Uint8Array | null, calls?: (RPCCallT)[], attributes?: (KeyValueT)[], documentation?: (string)[], declarationFile?: string | Uint8Array | null); + pack(builder: flatbuffers.Builder): flatbuffers.Offset; +} diff --git a/tests/ts/reflection/type.d.ts b/tests/ts/reflection/type.d.ts new file mode 100644 index 0000000000..811732c6f4 --- /dev/null +++ b/tests/ts/reflection/type.d.ts @@ -0,0 +1,49 @@ +import * as flatbuffers from 'flatbuffers'; +import { BaseType } from '../reflection/base-type.js'; +export declare class Type implements flatbuffers.IUnpackableObject { + bb: flatbuffers.ByteBuffer | null; + bb_pos: number; + __init(i: number, bb: flatbuffers.ByteBuffer): Type; + static getRootAsType(bb: flatbuffers.ByteBuffer, obj?: Type): Type; + static getSizePrefixedRootAsType(bb: flatbuffers.ByteBuffer, obj?: Type): Type; + baseType(): BaseType; + mutate_base_type(value: BaseType): boolean; + element(): BaseType; + mutate_element(value: BaseType): boolean; + index(): number; + mutate_index(value: number): boolean; + fixedLength(): number; + mutate_fixed_length(value: number): boolean; + /** + * The size (octets) of the `base_type` field. + */ + baseSize(): number; + mutate_base_size(value: number): boolean; + /** + * The size (octets) of the `element` field, if present. + */ + elementSize(): number; + mutate_element_size(value: number): boolean; + static getFullyQualifiedName(): string; + static startType(builder: flatbuffers.Builder): void; + static addBaseType(builder: flatbuffers.Builder, baseType: BaseType): void; + static addElement(builder: flatbuffers.Builder, element: BaseType): void; + static addIndex(builder: flatbuffers.Builder, index: number): void; + static addFixedLength(builder: flatbuffers.Builder, fixedLength: number): void; + static addBaseSize(builder: flatbuffers.Builder, baseSize: number): void; + static addElementSize(builder: flatbuffers.Builder, elementSize: number): void; + static endType(builder: flatbuffers.Builder): flatbuffers.Offset; + static createType(builder: flatbuffers.Builder, baseType: BaseType, element: BaseType, index: number, fixedLength: number, baseSize: number, elementSize: number): flatbuffers.Offset; + unpack(): TypeT; + unpackTo(_o: TypeT): void; +} +export declare class TypeT implements flatbuffers.IGeneratedObject { + baseType: BaseType; + element: BaseType; + index: number; + fixedLength: number; + baseSize: number; + elementSize: number; + constructor(baseType?: BaseType, element?: BaseType, index?: number, fixedLength?: number, baseSize?: number, elementSize?: number); + pack(builder: flatbuffers.Builder): flatbuffers.Offset; +} diff --git a/tests/ts/reflection_generated.cjs b/tests/ts/reflection_generated.cjs new file mode 100644 index 0000000000..45a4a1e711 --- /dev/null +++ b/tests/ts/reflection_generated.cjs @@ -0,0 +1,1659 @@ +"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( + isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, + mod +)); +var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); + +// reflection.ts +var reflection_exports = {}; +__export(reflection_exports, { + AdvancedFeatures: () => AdvancedFeatures, + BaseType: () => BaseType, + Enum: () => Enum, + EnumVal: () => EnumVal, + Field: () => Field, + KeyValue: () => KeyValue, + Object_: () => Object_, + RPCCall: () => RPCCall, + Schema: () => Schema, + SchemaFile: () => SchemaFile, + Service: () => Service, + Type: () => Type +}); +module.exports = __toCommonJS(reflection_exports); + +// reflection/advanced-features.ts +var AdvancedFeatures = /* @__PURE__ */ ((AdvancedFeatures2) => { + AdvancedFeatures2["AdvancedArrayFeatures"] = "1"; + AdvancedFeatures2["AdvancedUnionFeatures"] = "2"; + AdvancedFeatures2["OptionalScalars"] = "4"; + AdvancedFeatures2["DefaultVectorsAndStrings"] = "8"; + return AdvancedFeatures2; +})(AdvancedFeatures || {}); + +// reflection/base-type.js +var BaseType; +(function(BaseType2) { + BaseType2[BaseType2["None"] = 0] = "None"; + BaseType2[BaseType2["UType"] = 1] = "UType"; + BaseType2[BaseType2["Bool"] = 2] = "Bool"; + BaseType2[BaseType2["Byte"] = 3] = "Byte"; + BaseType2[BaseType2["UByte"] = 4] = "UByte"; + BaseType2[BaseType2["Short"] = 5] = "Short"; + BaseType2[BaseType2["UShort"] = 6] = "UShort"; + BaseType2[BaseType2["Int"] = 7] = "Int"; + BaseType2[BaseType2["UInt"] = 8] = "UInt"; + BaseType2[BaseType2["Long"] = 9] = "Long"; + BaseType2[BaseType2["ULong"] = 10] = "ULong"; + BaseType2[BaseType2["Float"] = 11] = "Float"; + BaseType2[BaseType2["Double"] = 12] = "Double"; + BaseType2[BaseType2["String"] = 13] = "String"; + BaseType2[BaseType2["Vector"] = 14] = "Vector"; + BaseType2[BaseType2["Obj"] = 15] = "Obj"; + BaseType2[BaseType2["Union"] = 16] = "Union"; + BaseType2[BaseType2["Array"] = 17] = "Array"; + BaseType2[BaseType2["MaxBaseType"] = 18] = "MaxBaseType"; +})(BaseType = BaseType || (BaseType = {})); + +// reflection/enum.js +var flatbuffers4 = __toESM(require("flatbuffers"), 1); + +// reflection/enum-val.js +var flatbuffers3 = __toESM(require("flatbuffers"), 1); + +// reflection/key-value.js +var flatbuffers = __toESM(require("flatbuffers"), 1); +var KeyValue = class { + constructor() { + this.bb = null; + this.bb_pos = 0; + } + __init(i, bb) { + this.bb_pos = i; + this.bb = bb; + return this; + } + static getRootAsKeyValue(bb, obj) { + return (obj || new KeyValue()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + static getSizePrefixedRootAsKeyValue(bb, obj) { + bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH); + return (obj || new KeyValue()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + key(optionalEncoding) { + const offset = this.bb.__offset(this.bb_pos, 4); + return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; + } + value(optionalEncoding) { + const offset = this.bb.__offset(this.bb_pos, 6); + return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; + } + static getFullyQualifiedName() { + return "reflection_KeyValue"; + } + static startKeyValue(builder) { + builder.startObject(2); + } + static addKey(builder, keyOffset) { + builder.addFieldOffset(0, keyOffset, 0); + } + static addValue(builder, valueOffset) { + builder.addFieldOffset(1, valueOffset, 0); + } + static endKeyValue(builder) { + const offset = builder.endObject(); + builder.requiredField(offset, 4); + return offset; + } + static createKeyValue(builder, keyOffset, valueOffset) { + KeyValue.startKeyValue(builder); + KeyValue.addKey(builder, keyOffset); + KeyValue.addValue(builder, valueOffset); + return KeyValue.endKeyValue(builder); + } + unpack() { + return new KeyValueT(this.key(), this.value()); + } + unpackTo(_o) { + _o.key = this.key(); + _o.value = this.value(); + } +}; +var KeyValueT = class { + constructor(key = null, value = null) { + this.key = key; + this.value = value; + } + pack(builder) { + const key = this.key !== null ? builder.createString(this.key) : 0; + const value = this.value !== null ? builder.createString(this.value) : 0; + return KeyValue.createKeyValue(builder, key, value); + } +}; + +// reflection/type.js +var flatbuffers2 = __toESM(require("flatbuffers"), 1); +var Type = class { + constructor() { + this.bb = null; + this.bb_pos = 0; + } + __init(i, bb) { + this.bb_pos = i; + this.bb = bb; + return this; + } + static getRootAsType(bb, obj) { + return (obj || new Type()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + static getSizePrefixedRootAsType(bb, obj) { + bb.setPosition(bb.position() + flatbuffers2.SIZE_PREFIX_LENGTH); + return (obj || new Type()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + baseType() { + const offset = this.bb.__offset(this.bb_pos, 4); + return offset ? this.bb.readInt8(this.bb_pos + offset) : BaseType.None; + } + mutate_base_type(value) { + const offset = this.bb.__offset(this.bb_pos, 4); + if (offset === 0) { + return false; + } + this.bb.writeInt8(this.bb_pos + offset, value); + return true; + } + element() { + const offset = this.bb.__offset(this.bb_pos, 6); + return offset ? this.bb.readInt8(this.bb_pos + offset) : BaseType.None; + } + mutate_element(value) { + const offset = this.bb.__offset(this.bb_pos, 6); + if (offset === 0) { + return false; + } + this.bb.writeInt8(this.bb_pos + offset, value); + return true; + } + index() { + const offset = this.bb.__offset(this.bb_pos, 8); + return offset ? this.bb.readInt32(this.bb_pos + offset) : -1; + } + mutate_index(value) { + const offset = this.bb.__offset(this.bb_pos, 8); + if (offset === 0) { + return false; + } + this.bb.writeInt32(this.bb_pos + offset, value); + return true; + } + fixedLength() { + const offset = this.bb.__offset(this.bb_pos, 10); + return offset ? this.bb.readUint16(this.bb_pos + offset) : 0; + } + mutate_fixed_length(value) { + const offset = this.bb.__offset(this.bb_pos, 10); + if (offset === 0) { + return false; + } + this.bb.writeUint16(this.bb_pos + offset, value); + return true; + } + baseSize() { + const offset = this.bb.__offset(this.bb_pos, 12); + return offset ? this.bb.readUint32(this.bb_pos + offset) : 4; + } + mutate_base_size(value) { + const offset = this.bb.__offset(this.bb_pos, 12); + if (offset === 0) { + return false; + } + this.bb.writeUint32(this.bb_pos + offset, value); + return true; + } + elementSize() { + const offset = this.bb.__offset(this.bb_pos, 14); + return offset ? this.bb.readUint32(this.bb_pos + offset) : 0; + } + mutate_element_size(value) { + const offset = this.bb.__offset(this.bb_pos, 14); + if (offset === 0) { + return false; + } + this.bb.writeUint32(this.bb_pos + offset, value); + return true; + } + static getFullyQualifiedName() { + return "reflection_Type"; + } + static startType(builder) { + builder.startObject(6); + } + static addBaseType(builder, baseType) { + builder.addFieldInt8(0, baseType, BaseType.None); + } + static addElement(builder, element) { + builder.addFieldInt8(1, element, BaseType.None); + } + static addIndex(builder, index) { + builder.addFieldInt32(2, index, -1); + } + static addFixedLength(builder, fixedLength) { + builder.addFieldInt16(3, fixedLength, 0); + } + static addBaseSize(builder, baseSize) { + builder.addFieldInt32(4, baseSize, 4); + } + static addElementSize(builder, elementSize) { + builder.addFieldInt32(5, elementSize, 0); + } + static endType(builder) { + const offset = builder.endObject(); + return offset; + } + static createType(builder, baseType, element, index, fixedLength, baseSize, elementSize) { + Type.startType(builder); + Type.addBaseType(builder, baseType); + Type.addElement(builder, element); + Type.addIndex(builder, index); + Type.addFixedLength(builder, fixedLength); + Type.addBaseSize(builder, baseSize); + Type.addElementSize(builder, elementSize); + return Type.endType(builder); + } + unpack() { + return new TypeT(this.baseType(), this.element(), this.index(), this.fixedLength(), this.baseSize(), this.elementSize()); + } + unpackTo(_o) { + _o.baseType = this.baseType(); + _o.element = this.element(); + _o.index = this.index(); + _o.fixedLength = this.fixedLength(); + _o.baseSize = this.baseSize(); + _o.elementSize = this.elementSize(); + } +}; +var TypeT = class { + constructor(baseType = BaseType.None, element = BaseType.None, index = -1, fixedLength = 0, baseSize = 4, elementSize = 0) { + this.baseType = baseType; + this.element = element; + this.index = index; + this.fixedLength = fixedLength; + this.baseSize = baseSize; + this.elementSize = elementSize; + } + pack(builder) { + return Type.createType(builder, this.baseType, this.element, this.index, this.fixedLength, this.baseSize, this.elementSize); + } +}; + +// reflection/enum-val.js +var EnumVal = class { + constructor() { + this.bb = null; + this.bb_pos = 0; + } + __init(i, bb) { + this.bb_pos = i; + this.bb = bb; + return this; + } + static getRootAsEnumVal(bb, obj) { + return (obj || new EnumVal()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + static getSizePrefixedRootAsEnumVal(bb, obj) { + bb.setPosition(bb.position() + flatbuffers3.SIZE_PREFIX_LENGTH); + return (obj || new EnumVal()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + name(optionalEncoding) { + const offset = this.bb.__offset(this.bb_pos, 4); + return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; + } + value() { + const offset = this.bb.__offset(this.bb_pos, 6); + return offset ? this.bb.readInt64(this.bb_pos + offset) : BigInt("0"); + } + mutate_value(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; + } + unionType(obj) { + const offset = this.bb.__offset(this.bb_pos, 10); + return offset ? (obj || new Type()).__init(this.bb.__indirect(this.bb_pos + offset), this.bb) : null; + } + documentation(index, optionalEncoding) { + const offset = this.bb.__offset(this.bb_pos, 12); + return offset ? this.bb.__string(this.bb.__vector(this.bb_pos + offset) + index * 4, optionalEncoding) : null; + } + documentationLength() { + const offset = this.bb.__offset(this.bb_pos, 12); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + attributes(index, obj) { + const offset = this.bb.__offset(this.bb_pos, 14); + return offset ? (obj || new KeyValue()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; + } + attributesLength() { + const offset = this.bb.__offset(this.bb_pos, 14); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + static getFullyQualifiedName() { + return "reflection_EnumVal"; + } + static startEnumVal(builder) { + builder.startObject(6); + } + static addName(builder, nameOffset) { + builder.addFieldOffset(0, nameOffset, 0); + } + static addValue(builder, value) { + builder.addFieldInt64(1, value, BigInt("0")); + } + static addUnionType(builder, unionTypeOffset) { + builder.addFieldOffset(3, unionTypeOffset, 0); + } + static addDocumentation(builder, documentationOffset) { + builder.addFieldOffset(4, documentationOffset, 0); + } + static createDocumentationVector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) { + builder.addOffset(data[i]); + } + return builder.endVector(); + } + static startDocumentationVector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static addAttributes(builder, attributesOffset) { + builder.addFieldOffset(5, attributesOffset, 0); + } + static createAttributesVector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) { + builder.addOffset(data[i]); + } + return builder.endVector(); + } + static startAttributesVector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static endEnumVal(builder) { + const offset = builder.endObject(); + builder.requiredField(offset, 4); + return offset; + } + unpack() { + return new EnumValT(this.name(), this.value(), this.unionType() !== null ? this.unionType().unpack() : null, this.bb.createScalarList(this.documentation.bind(this), this.documentationLength()), this.bb.createObjList(this.attributes.bind(this), this.attributesLength())); + } + unpackTo(_o) { + _o.name = this.name(); + _o.value = this.value(); + _o.unionType = this.unionType() !== null ? this.unionType().unpack() : null; + _o.documentation = this.bb.createScalarList(this.documentation.bind(this), this.documentationLength()); + _o.attributes = this.bb.createObjList(this.attributes.bind(this), this.attributesLength()); + } +}; +var EnumValT = class { + constructor(name = null, value = BigInt("0"), unionType = null, documentation = [], attributes = []) { + this.name = name; + this.value = value; + this.unionType = unionType; + this.documentation = documentation; + this.attributes = attributes; + } + pack(builder) { + const name = this.name !== null ? builder.createString(this.name) : 0; + const unionType = this.unionType !== null ? this.unionType.pack(builder) : 0; + const documentation = EnumVal.createDocumentationVector(builder, builder.createObjectOffsetList(this.documentation)); + const attributes = EnumVal.createAttributesVector(builder, builder.createObjectOffsetList(this.attributes)); + EnumVal.startEnumVal(builder); + EnumVal.addName(builder, name); + EnumVal.addValue(builder, this.value); + EnumVal.addUnionType(builder, unionType); + EnumVal.addDocumentation(builder, documentation); + EnumVal.addAttributes(builder, attributes); + return EnumVal.endEnumVal(builder); + } +}; + +// reflection/enum.js +var Enum = class { + constructor() { + this.bb = null; + this.bb_pos = 0; + } + __init(i, bb) { + this.bb_pos = i; + this.bb = bb; + return this; + } + static getRootAsEnum(bb, obj) { + return (obj || new Enum()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + static getSizePrefixedRootAsEnum(bb, obj) { + bb.setPosition(bb.position() + flatbuffers4.SIZE_PREFIX_LENGTH); + return (obj || new Enum()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + name(optionalEncoding) { + const offset = this.bb.__offset(this.bb_pos, 4); + return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; + } + values(index, obj) { + const offset = this.bb.__offset(this.bb_pos, 6); + return offset ? (obj || new EnumVal()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; + } + valuesLength() { + const offset = this.bb.__offset(this.bb_pos, 6); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + isUnion() { + const offset = this.bb.__offset(this.bb_pos, 8); + return offset ? !!this.bb.readInt8(this.bb_pos + offset) : false; + } + mutate_is_union(value) { + const offset = this.bb.__offset(this.bb_pos, 8); + if (offset === 0) { + return false; + } + this.bb.writeInt8(this.bb_pos + offset, +value); + return true; + } + underlyingType(obj) { + const offset = this.bb.__offset(this.bb_pos, 10); + return offset ? (obj || new Type()).__init(this.bb.__indirect(this.bb_pos + offset), this.bb) : null; + } + attributes(index, obj) { + const offset = this.bb.__offset(this.bb_pos, 12); + return offset ? (obj || new KeyValue()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; + } + attributesLength() { + const offset = this.bb.__offset(this.bb_pos, 12); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + documentation(index, optionalEncoding) { + const offset = this.bb.__offset(this.bb_pos, 14); + return offset ? this.bb.__string(this.bb.__vector(this.bb_pos + offset) + index * 4, optionalEncoding) : null; + } + documentationLength() { + const offset = this.bb.__offset(this.bb_pos, 14); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + declarationFile(optionalEncoding) { + const offset = this.bb.__offset(this.bb_pos, 16); + return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; + } + static getFullyQualifiedName() { + return "reflection_Enum"; + } + static startEnum(builder) { + builder.startObject(7); + } + static addName(builder, nameOffset) { + builder.addFieldOffset(0, nameOffset, 0); + } + static addValues(builder, valuesOffset) { + builder.addFieldOffset(1, valuesOffset, 0); + } + static createValuesVector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) { + builder.addOffset(data[i]); + } + return builder.endVector(); + } + static startValuesVector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static addIsUnion(builder, isUnion) { + builder.addFieldInt8(2, +isUnion, 0); + } + static addUnderlyingType(builder, underlyingTypeOffset) { + builder.addFieldOffset(3, underlyingTypeOffset, 0); + } + static addAttributes(builder, attributesOffset) { + builder.addFieldOffset(4, attributesOffset, 0); + } + static createAttributesVector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) { + builder.addOffset(data[i]); + } + return builder.endVector(); + } + static startAttributesVector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static addDocumentation(builder, documentationOffset) { + builder.addFieldOffset(5, documentationOffset, 0); + } + static createDocumentationVector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) { + builder.addOffset(data[i]); + } + return builder.endVector(); + } + static startDocumentationVector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static addDeclarationFile(builder, declarationFileOffset) { + builder.addFieldOffset(6, declarationFileOffset, 0); + } + static endEnum(builder) { + const offset = builder.endObject(); + builder.requiredField(offset, 4); + builder.requiredField(offset, 6); + builder.requiredField(offset, 10); + return offset; + } + unpack() { + return new EnumT(this.name(), this.bb.createObjList(this.values.bind(this), this.valuesLength()), this.isUnion(), this.underlyingType() !== null ? this.underlyingType().unpack() : null, this.bb.createObjList(this.attributes.bind(this), this.attributesLength()), this.bb.createScalarList(this.documentation.bind(this), this.documentationLength()), this.declarationFile()); + } + unpackTo(_o) { + _o.name = this.name(); + _o.values = this.bb.createObjList(this.values.bind(this), this.valuesLength()); + _o.isUnion = this.isUnion(); + _o.underlyingType = this.underlyingType() !== null ? this.underlyingType().unpack() : null; + _o.attributes = this.bb.createObjList(this.attributes.bind(this), this.attributesLength()); + _o.documentation = this.bb.createScalarList(this.documentation.bind(this), this.documentationLength()); + _o.declarationFile = this.declarationFile(); + } +}; +var EnumT = class { + constructor(name = null, values = [], isUnion = false, underlyingType = null, attributes = [], documentation = [], declarationFile = null) { + this.name = name; + this.values = values; + this.isUnion = isUnion; + this.underlyingType = underlyingType; + this.attributes = attributes; + this.documentation = documentation; + this.declarationFile = declarationFile; + } + pack(builder) { + const name = this.name !== null ? builder.createString(this.name) : 0; + const values = Enum.createValuesVector(builder, builder.createObjectOffsetList(this.values)); + const underlyingType = this.underlyingType !== null ? this.underlyingType.pack(builder) : 0; + const attributes = Enum.createAttributesVector(builder, builder.createObjectOffsetList(this.attributes)); + const documentation = Enum.createDocumentationVector(builder, builder.createObjectOffsetList(this.documentation)); + const declarationFile = this.declarationFile !== null ? builder.createString(this.declarationFile) : 0; + Enum.startEnum(builder); + Enum.addName(builder, name); + Enum.addValues(builder, values); + Enum.addIsUnion(builder, this.isUnion); + Enum.addUnderlyingType(builder, underlyingType); + Enum.addAttributes(builder, attributes); + Enum.addDocumentation(builder, documentation); + Enum.addDeclarationFile(builder, declarationFile); + return Enum.endEnum(builder); + } +}; + +// reflection/field.js +var flatbuffers5 = __toESM(require("flatbuffers"), 1); +var Field = class { + constructor() { + this.bb = null; + this.bb_pos = 0; + } + __init(i, bb) { + this.bb_pos = i; + this.bb = bb; + return this; + } + static getRootAsField(bb, obj) { + return (obj || new Field()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + static getSizePrefixedRootAsField(bb, obj) { + bb.setPosition(bb.position() + flatbuffers5.SIZE_PREFIX_LENGTH); + return (obj || new Field()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + name(optionalEncoding) { + const offset = this.bb.__offset(this.bb_pos, 4); + return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; + } + type(obj) { + const offset = this.bb.__offset(this.bb_pos, 6); + return offset ? (obj || new Type()).__init(this.bb.__indirect(this.bb_pos + offset), this.bb) : null; + } + id() { + const offset = this.bb.__offset(this.bb_pos, 8); + return offset ? this.bb.readUint16(this.bb_pos + offset) : 0; + } + mutate_id(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; + } + offset() { + const offset = this.bb.__offset(this.bb_pos, 10); + return offset ? this.bb.readUint16(this.bb_pos + offset) : 0; + } + mutate_offset(value) { + const offset = this.bb.__offset(this.bb_pos, 10); + if (offset === 0) { + return false; + } + this.bb.writeUint16(this.bb_pos + offset, value); + return true; + } + defaultInteger() { + const offset = this.bb.__offset(this.bb_pos, 12); + return offset ? this.bb.readInt64(this.bb_pos + offset) : BigInt("0"); + } + mutate_default_integer(value) { + const offset = this.bb.__offset(this.bb_pos, 12); + if (offset === 0) { + return false; + } + this.bb.writeInt64(this.bb_pos + offset, value); + return true; + } + defaultReal() { + const offset = this.bb.__offset(this.bb_pos, 14); + return offset ? this.bb.readFloat64(this.bb_pos + offset) : 0; + } + mutate_default_real(value) { + const offset = this.bb.__offset(this.bb_pos, 14); + if (offset === 0) { + return false; + } + this.bb.writeFloat64(this.bb_pos + offset, value); + return true; + } + deprecated() { + const offset = this.bb.__offset(this.bb_pos, 16); + return offset ? !!this.bb.readInt8(this.bb_pos + offset) : false; + } + mutate_deprecated(value) { + const offset = this.bb.__offset(this.bb_pos, 16); + if (offset === 0) { + return false; + } + this.bb.writeInt8(this.bb_pos + offset, +value); + return true; + } + required() { + const offset = this.bb.__offset(this.bb_pos, 18); + return offset ? !!this.bb.readInt8(this.bb_pos + offset) : false; + } + mutate_required(value) { + const offset = this.bb.__offset(this.bb_pos, 18); + if (offset === 0) { + return false; + } + this.bb.writeInt8(this.bb_pos + offset, +value); + return true; + } + key() { + const offset = this.bb.__offset(this.bb_pos, 20); + return offset ? !!this.bb.readInt8(this.bb_pos + offset) : false; + } + mutate_key(value) { + const offset = this.bb.__offset(this.bb_pos, 20); + if (offset === 0) { + return false; + } + this.bb.writeInt8(this.bb_pos + offset, +value); + return true; + } + attributes(index, obj) { + const offset = this.bb.__offset(this.bb_pos, 22); + return offset ? (obj || new KeyValue()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; + } + attributesLength() { + const offset = this.bb.__offset(this.bb_pos, 22); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + documentation(index, optionalEncoding) { + const offset = this.bb.__offset(this.bb_pos, 24); + return offset ? this.bb.__string(this.bb.__vector(this.bb_pos + offset) + index * 4, optionalEncoding) : null; + } + documentationLength() { + const offset = this.bb.__offset(this.bb_pos, 24); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + optional() { + const offset = this.bb.__offset(this.bb_pos, 26); + return offset ? !!this.bb.readInt8(this.bb_pos + offset) : false; + } + mutate_optional(value) { + const offset = this.bb.__offset(this.bb_pos, 26); + if (offset === 0) { + return false; + } + this.bb.writeInt8(this.bb_pos + offset, +value); + return true; + } + padding() { + const offset = this.bb.__offset(this.bb_pos, 28); + return offset ? this.bb.readUint16(this.bb_pos + offset) : 0; + } + mutate_padding(value) { + const offset = this.bb.__offset(this.bb_pos, 28); + if (offset === 0) { + return false; + } + this.bb.writeUint16(this.bb_pos + offset, value); + return true; + } + static getFullyQualifiedName() { + return "reflection_Field"; + } + static startField(builder) { + builder.startObject(13); + } + static addName(builder, nameOffset) { + builder.addFieldOffset(0, nameOffset, 0); + } + static addType(builder, typeOffset) { + builder.addFieldOffset(1, typeOffset, 0); + } + static addId(builder, id) { + builder.addFieldInt16(2, id, 0); + } + static addOffset(builder, offset) { + builder.addFieldInt16(3, offset, 0); + } + static addDefaultInteger(builder, defaultInteger) { + builder.addFieldInt64(4, defaultInteger, BigInt("0")); + } + static addDefaultReal(builder, defaultReal) { + builder.addFieldFloat64(5, defaultReal, 0); + } + static addDeprecated(builder, deprecated) { + builder.addFieldInt8(6, +deprecated, 0); + } + static addRequired(builder, required) { + builder.addFieldInt8(7, +required, 0); + } + static addKey(builder, key) { + builder.addFieldInt8(8, +key, 0); + } + static addAttributes(builder, attributesOffset) { + builder.addFieldOffset(9, attributesOffset, 0); + } + static createAttributesVector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) { + builder.addOffset(data[i]); + } + return builder.endVector(); + } + static startAttributesVector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static addDocumentation(builder, documentationOffset) { + builder.addFieldOffset(10, documentationOffset, 0); + } + static createDocumentationVector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) { + builder.addOffset(data[i]); + } + return builder.endVector(); + } + static startDocumentationVector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static addOptional(builder, optional) { + builder.addFieldInt8(11, +optional, 0); + } + static addPadding(builder, padding) { + builder.addFieldInt16(12, padding, 0); + } + static endField(builder) { + const offset = builder.endObject(); + builder.requiredField(offset, 4); + builder.requiredField(offset, 6); + return offset; + } + unpack() { + return new FieldT(this.name(), this.type() !== null ? this.type().unpack() : null, this.id(), this.offset(), this.defaultInteger(), this.defaultReal(), this.deprecated(), this.required(), this.key(), this.bb.createObjList(this.attributes.bind(this), this.attributesLength()), this.bb.createScalarList(this.documentation.bind(this), this.documentationLength()), this.optional(), this.padding()); + } + unpackTo(_o) { + _o.name = this.name(); + _o.type = this.type() !== null ? this.type().unpack() : null; + _o.id = this.id(); + _o.offset = this.offset(); + _o.defaultInteger = this.defaultInteger(); + _o.defaultReal = this.defaultReal(); + _o.deprecated = this.deprecated(); + _o.required = this.required(); + _o.key = this.key(); + _o.attributes = this.bb.createObjList(this.attributes.bind(this), this.attributesLength()); + _o.documentation = this.bb.createScalarList(this.documentation.bind(this), this.documentationLength()); + _o.optional = this.optional(); + _o.padding = this.padding(); + } +}; +var FieldT = class { + constructor(name = null, type = null, id = 0, offset = 0, defaultInteger = BigInt("0"), defaultReal = 0, deprecated = false, required = false, key = false, attributes = [], documentation = [], optional = false, padding = 0) { + this.name = name; + this.type = type; + this.id = id; + this.offset = offset; + this.defaultInteger = defaultInteger; + this.defaultReal = defaultReal; + this.deprecated = deprecated; + this.required = required; + this.key = key; + this.attributes = attributes; + this.documentation = documentation; + this.optional = optional; + this.padding = padding; + } + pack(builder) { + const name = this.name !== null ? builder.createString(this.name) : 0; + const type = this.type !== null ? this.type.pack(builder) : 0; + const attributes = Field.createAttributesVector(builder, builder.createObjectOffsetList(this.attributes)); + const documentation = Field.createDocumentationVector(builder, builder.createObjectOffsetList(this.documentation)); + Field.startField(builder); + Field.addName(builder, name); + Field.addType(builder, type); + Field.addId(builder, this.id); + Field.addOffset(builder, this.offset); + Field.addDefaultInteger(builder, this.defaultInteger); + Field.addDefaultReal(builder, this.defaultReal); + Field.addDeprecated(builder, this.deprecated); + Field.addRequired(builder, this.required); + Field.addKey(builder, this.key); + Field.addAttributes(builder, attributes); + Field.addDocumentation(builder, documentation); + Field.addOptional(builder, this.optional); + Field.addPadding(builder, this.padding); + return Field.endField(builder); + } +}; + +// reflection/object.js +var flatbuffers6 = __toESM(require("flatbuffers"), 1); +var Object_ = class { + constructor() { + this.bb = null; + this.bb_pos = 0; + } + __init(i, bb) { + this.bb_pos = i; + this.bb = bb; + return this; + } + static getRootAsObject(bb, obj) { + return (obj || new Object_()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + static getSizePrefixedRootAsObject(bb, obj) { + bb.setPosition(bb.position() + flatbuffers6.SIZE_PREFIX_LENGTH); + return (obj || new Object_()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + name(optionalEncoding) { + const offset = this.bb.__offset(this.bb_pos, 4); + return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; + } + fields(index, obj) { + const offset = this.bb.__offset(this.bb_pos, 6); + return offset ? (obj || new Field()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; + } + fieldsLength() { + const offset = this.bb.__offset(this.bb_pos, 6); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + isStruct() { + const offset = this.bb.__offset(this.bb_pos, 8); + return offset ? !!this.bb.readInt8(this.bb_pos + offset) : false; + } + mutate_is_struct(value) { + const offset = this.bb.__offset(this.bb_pos, 8); + if (offset === 0) { + return false; + } + this.bb.writeInt8(this.bb_pos + offset, +value); + return true; + } + minalign() { + const offset = this.bb.__offset(this.bb_pos, 10); + return offset ? this.bb.readInt32(this.bb_pos + offset) : 0; + } + mutate_minalign(value) { + const offset = this.bb.__offset(this.bb_pos, 10); + if (offset === 0) { + return false; + } + this.bb.writeInt32(this.bb_pos + offset, value); + return true; + } + bytesize() { + const offset = this.bb.__offset(this.bb_pos, 12); + return offset ? this.bb.readInt32(this.bb_pos + offset) : 0; + } + mutate_bytesize(value) { + const offset = this.bb.__offset(this.bb_pos, 12); + if (offset === 0) { + return false; + } + this.bb.writeInt32(this.bb_pos + offset, value); + return true; + } + attributes(index, obj) { + const offset = this.bb.__offset(this.bb_pos, 14); + return offset ? (obj || new KeyValue()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; + } + attributesLength() { + const offset = this.bb.__offset(this.bb_pos, 14); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + documentation(index, optionalEncoding) { + const offset = this.bb.__offset(this.bb_pos, 16); + return offset ? this.bb.__string(this.bb.__vector(this.bb_pos + offset) + index * 4, optionalEncoding) : null; + } + documentationLength() { + const offset = this.bb.__offset(this.bb_pos, 16); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + declarationFile(optionalEncoding) { + const offset = this.bb.__offset(this.bb_pos, 18); + return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; + } + static getFullyQualifiedName() { + return "reflection_Object"; + } + static startObject(builder) { + builder.startObject(8); + } + static addName(builder, nameOffset) { + builder.addFieldOffset(0, nameOffset, 0); + } + static addFields(builder, fieldsOffset) { + builder.addFieldOffset(1, fieldsOffset, 0); + } + static createFieldsVector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) { + builder.addOffset(data[i]); + } + return builder.endVector(); + } + static startFieldsVector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static addIsStruct(builder, isStruct) { + builder.addFieldInt8(2, +isStruct, 0); + } + static addMinalign(builder, minalign) { + builder.addFieldInt32(3, minalign, 0); + } + static addBytesize(builder, bytesize) { + builder.addFieldInt32(4, bytesize, 0); + } + static addAttributes(builder, attributesOffset) { + builder.addFieldOffset(5, attributesOffset, 0); + } + static createAttributesVector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) { + builder.addOffset(data[i]); + } + return builder.endVector(); + } + static startAttributesVector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static addDocumentation(builder, documentationOffset) { + builder.addFieldOffset(6, documentationOffset, 0); + } + static createDocumentationVector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) { + builder.addOffset(data[i]); + } + return builder.endVector(); + } + static startDocumentationVector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static addDeclarationFile(builder, declarationFileOffset) { + builder.addFieldOffset(7, declarationFileOffset, 0); + } + static endObject(builder) { + const offset = builder.endObject(); + builder.requiredField(offset, 4); + builder.requiredField(offset, 6); + return offset; + } + static createObject(builder, nameOffset, fieldsOffset, isStruct, minalign, bytesize, attributesOffset, documentationOffset, declarationFileOffset) { + Object_.startObject(builder); + Object_.addName(builder, nameOffset); + Object_.addFields(builder, fieldsOffset); + Object_.addIsStruct(builder, isStruct); + Object_.addMinalign(builder, minalign); + Object_.addBytesize(builder, bytesize); + Object_.addAttributes(builder, attributesOffset); + Object_.addDocumentation(builder, documentationOffset); + Object_.addDeclarationFile(builder, declarationFileOffset); + return Object_.endObject(builder); + } + unpack() { + return new Object_T(this.name(), this.bb.createObjList(this.fields.bind(this), this.fieldsLength()), this.isStruct(), this.minalign(), this.bytesize(), this.bb.createObjList(this.attributes.bind(this), this.attributesLength()), this.bb.createScalarList(this.documentation.bind(this), this.documentationLength()), this.declarationFile()); + } + unpackTo(_o) { + _o.name = this.name(); + _o.fields = this.bb.createObjList(this.fields.bind(this), this.fieldsLength()); + _o.isStruct = this.isStruct(); + _o.minalign = this.minalign(); + _o.bytesize = this.bytesize(); + _o.attributes = this.bb.createObjList(this.attributes.bind(this), this.attributesLength()); + _o.documentation = this.bb.createScalarList(this.documentation.bind(this), this.documentationLength()); + _o.declarationFile = this.declarationFile(); + } +}; +var Object_T = class { + constructor(name = null, fields = [], isStruct = false, minalign = 0, bytesize = 0, attributes = [], documentation = [], declarationFile = null) { + this.name = name; + this.fields = fields; + this.isStruct = isStruct; + this.minalign = minalign; + this.bytesize = bytesize; + this.attributes = attributes; + this.documentation = documentation; + this.declarationFile = declarationFile; + } + pack(builder) { + const name = this.name !== null ? builder.createString(this.name) : 0; + const fields = Object_.createFieldsVector(builder, builder.createObjectOffsetList(this.fields)); + const attributes = Object_.createAttributesVector(builder, builder.createObjectOffsetList(this.attributes)); + const documentation = Object_.createDocumentationVector(builder, builder.createObjectOffsetList(this.documentation)); + const declarationFile = this.declarationFile !== null ? builder.createString(this.declarationFile) : 0; + return Object_.createObject(builder, name, fields, this.isStruct, this.minalign, this.bytesize, attributes, documentation, declarationFile); + } +}; + +// reflection/rpccall.js +var flatbuffers7 = __toESM(require("flatbuffers"), 1); +var RPCCall = class { + constructor() { + this.bb = null; + this.bb_pos = 0; + } + __init(i, bb) { + this.bb_pos = i; + this.bb = bb; + return this; + } + static getRootAsRPCCall(bb, obj) { + return (obj || new RPCCall()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + static getSizePrefixedRootAsRPCCall(bb, obj) { + bb.setPosition(bb.position() + flatbuffers7.SIZE_PREFIX_LENGTH); + return (obj || new RPCCall()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + name(optionalEncoding) { + const offset = this.bb.__offset(this.bb_pos, 4); + return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; + } + request(obj) { + const offset = this.bb.__offset(this.bb_pos, 6); + return offset ? (obj || new Object_()).__init(this.bb.__indirect(this.bb_pos + offset), this.bb) : null; + } + response(obj) { + const offset = this.bb.__offset(this.bb_pos, 8); + return offset ? (obj || new Object_()).__init(this.bb.__indirect(this.bb_pos + offset), this.bb) : null; + } + attributes(index, obj) { + const offset = this.bb.__offset(this.bb_pos, 10); + return offset ? (obj || new KeyValue()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; + } + attributesLength() { + const offset = this.bb.__offset(this.bb_pos, 10); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + documentation(index, optionalEncoding) { + const offset = this.bb.__offset(this.bb_pos, 12); + return offset ? this.bb.__string(this.bb.__vector(this.bb_pos + offset) + index * 4, optionalEncoding) : null; + } + documentationLength() { + const offset = this.bb.__offset(this.bb_pos, 12); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + static getFullyQualifiedName() { + return "reflection_RPCCall"; + } + static startRPCCall(builder) { + builder.startObject(5); + } + static addName(builder, nameOffset) { + builder.addFieldOffset(0, nameOffset, 0); + } + static addRequest(builder, requestOffset) { + builder.addFieldOffset(1, requestOffset, 0); + } + static addResponse(builder, responseOffset) { + builder.addFieldOffset(2, responseOffset, 0); + } + static addAttributes(builder, attributesOffset) { + builder.addFieldOffset(3, attributesOffset, 0); + } + static createAttributesVector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) { + builder.addOffset(data[i]); + } + return builder.endVector(); + } + static startAttributesVector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static addDocumentation(builder, documentationOffset) { + builder.addFieldOffset(4, documentationOffset, 0); + } + static createDocumentationVector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) { + builder.addOffset(data[i]); + } + return builder.endVector(); + } + static startDocumentationVector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static endRPCCall(builder) { + const offset = builder.endObject(); + builder.requiredField(offset, 4); + builder.requiredField(offset, 6); + builder.requiredField(offset, 8); + return offset; + } + unpack() { + return new RPCCallT(this.name(), this.request() !== null ? this.request().unpack() : null, this.response() !== null ? this.response().unpack() : null, this.bb.createObjList(this.attributes.bind(this), this.attributesLength()), this.bb.createScalarList(this.documentation.bind(this), this.documentationLength())); + } + unpackTo(_o) { + _o.name = this.name(); + _o.request = this.request() !== null ? this.request().unpack() : null; + _o.response = this.response() !== null ? this.response().unpack() : null; + _o.attributes = this.bb.createObjList(this.attributes.bind(this), this.attributesLength()); + _o.documentation = this.bb.createScalarList(this.documentation.bind(this), this.documentationLength()); + } +}; +var RPCCallT = class { + constructor(name = null, request = null, response = null, attributes = [], documentation = []) { + this.name = name; + this.request = request; + this.response = response; + this.attributes = attributes; + this.documentation = documentation; + } + pack(builder) { + const name = this.name !== null ? builder.createString(this.name) : 0; + const request = this.request !== null ? this.request.pack(builder) : 0; + const response = this.response !== null ? this.response.pack(builder) : 0; + const attributes = RPCCall.createAttributesVector(builder, builder.createObjectOffsetList(this.attributes)); + const documentation = RPCCall.createDocumentationVector(builder, builder.createObjectOffsetList(this.documentation)); + RPCCall.startRPCCall(builder); + RPCCall.addName(builder, name); + RPCCall.addRequest(builder, request); + RPCCall.addResponse(builder, response); + RPCCall.addAttributes(builder, attributes); + RPCCall.addDocumentation(builder, documentation); + return RPCCall.endRPCCall(builder); + } +}; + +// reflection/schema.js +var flatbuffers10 = __toESM(require("flatbuffers"), 1); + +// reflection/schema-file.js +var flatbuffers8 = __toESM(require("flatbuffers"), 1); +var SchemaFile = class { + constructor() { + this.bb = null; + this.bb_pos = 0; + } + __init(i, bb) { + this.bb_pos = i; + this.bb = bb; + return this; + } + static getRootAsSchemaFile(bb, obj) { + return (obj || new SchemaFile()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + static getSizePrefixedRootAsSchemaFile(bb, obj) { + bb.setPosition(bb.position() + flatbuffers8.SIZE_PREFIX_LENGTH); + return (obj || new SchemaFile()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + filename(optionalEncoding) { + const offset = this.bb.__offset(this.bb_pos, 4); + return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; + } + includedFilenames(index, optionalEncoding) { + const offset = this.bb.__offset(this.bb_pos, 6); + return offset ? this.bb.__string(this.bb.__vector(this.bb_pos + offset) + index * 4, optionalEncoding) : null; + } + includedFilenamesLength() { + const offset = this.bb.__offset(this.bb_pos, 6); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + static getFullyQualifiedName() { + return "reflection_SchemaFile"; + } + static startSchemaFile(builder) { + builder.startObject(2); + } + static addFilename(builder, filenameOffset) { + builder.addFieldOffset(0, filenameOffset, 0); + } + static addIncludedFilenames(builder, includedFilenamesOffset) { + builder.addFieldOffset(1, includedFilenamesOffset, 0); + } + static createIncludedFilenamesVector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) { + builder.addOffset(data[i]); + } + return builder.endVector(); + } + static startIncludedFilenamesVector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static endSchemaFile(builder) { + const offset = builder.endObject(); + builder.requiredField(offset, 4); + return offset; + } + static createSchemaFile(builder, filenameOffset, includedFilenamesOffset) { + SchemaFile.startSchemaFile(builder); + SchemaFile.addFilename(builder, filenameOffset); + SchemaFile.addIncludedFilenames(builder, includedFilenamesOffset); + return SchemaFile.endSchemaFile(builder); + } + unpack() { + return new SchemaFileT(this.filename(), this.bb.createScalarList(this.includedFilenames.bind(this), this.includedFilenamesLength())); + } + unpackTo(_o) { + _o.filename = this.filename(); + _o.includedFilenames = this.bb.createScalarList(this.includedFilenames.bind(this), this.includedFilenamesLength()); + } +}; +var SchemaFileT = class { + constructor(filename = null, includedFilenames = []) { + this.filename = filename; + this.includedFilenames = includedFilenames; + } + pack(builder) { + const filename = this.filename !== null ? builder.createString(this.filename) : 0; + const includedFilenames = SchemaFile.createIncludedFilenamesVector(builder, builder.createObjectOffsetList(this.includedFilenames)); + return SchemaFile.createSchemaFile(builder, filename, includedFilenames); + } +}; + +// reflection/service.js +var flatbuffers9 = __toESM(require("flatbuffers"), 1); +var Service = class { + constructor() { + this.bb = null; + this.bb_pos = 0; + } + __init(i, bb) { + this.bb_pos = i; + this.bb = bb; + return this; + } + static getRootAsService(bb, obj) { + return (obj || new Service()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + static getSizePrefixedRootAsService(bb, obj) { + bb.setPosition(bb.position() + flatbuffers9.SIZE_PREFIX_LENGTH); + return (obj || new Service()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + name(optionalEncoding) { + const offset = this.bb.__offset(this.bb_pos, 4); + return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; + } + calls(index, obj) { + const offset = this.bb.__offset(this.bb_pos, 6); + return offset ? (obj || new RPCCall()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; + } + callsLength() { + const offset = this.bb.__offset(this.bb_pos, 6); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + attributes(index, obj) { + const offset = this.bb.__offset(this.bb_pos, 8); + return offset ? (obj || new KeyValue()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; + } + attributesLength() { + const offset = this.bb.__offset(this.bb_pos, 8); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + documentation(index, optionalEncoding) { + const offset = this.bb.__offset(this.bb_pos, 10); + return offset ? this.bb.__string(this.bb.__vector(this.bb_pos + offset) + index * 4, optionalEncoding) : null; + } + documentationLength() { + const offset = this.bb.__offset(this.bb_pos, 10); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + declarationFile(optionalEncoding) { + const offset = this.bb.__offset(this.bb_pos, 12); + return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; + } + static getFullyQualifiedName() { + return "reflection_Service"; + } + static startService(builder) { + builder.startObject(5); + } + static addName(builder, nameOffset) { + builder.addFieldOffset(0, nameOffset, 0); + } + static addCalls(builder, callsOffset) { + builder.addFieldOffset(1, callsOffset, 0); + } + static createCallsVector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) { + builder.addOffset(data[i]); + } + return builder.endVector(); + } + static startCallsVector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static addAttributes(builder, attributesOffset) { + builder.addFieldOffset(2, attributesOffset, 0); + } + static createAttributesVector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) { + builder.addOffset(data[i]); + } + return builder.endVector(); + } + static startAttributesVector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static addDocumentation(builder, documentationOffset) { + builder.addFieldOffset(3, documentationOffset, 0); + } + static createDocumentationVector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) { + builder.addOffset(data[i]); + } + return builder.endVector(); + } + static startDocumentationVector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static addDeclarationFile(builder, declarationFileOffset) { + builder.addFieldOffset(4, declarationFileOffset, 0); + } + static endService(builder) { + const offset = builder.endObject(); + builder.requiredField(offset, 4); + return offset; + } + static createService(builder, nameOffset, callsOffset, attributesOffset, documentationOffset, declarationFileOffset) { + Service.startService(builder); + Service.addName(builder, nameOffset); + Service.addCalls(builder, callsOffset); + Service.addAttributes(builder, attributesOffset); + Service.addDocumentation(builder, documentationOffset); + Service.addDeclarationFile(builder, declarationFileOffset); + return Service.endService(builder); + } + unpack() { + return new ServiceT(this.name(), this.bb.createObjList(this.calls.bind(this), this.callsLength()), this.bb.createObjList(this.attributes.bind(this), this.attributesLength()), this.bb.createScalarList(this.documentation.bind(this), this.documentationLength()), this.declarationFile()); + } + unpackTo(_o) { + _o.name = this.name(); + _o.calls = this.bb.createObjList(this.calls.bind(this), this.callsLength()); + _o.attributes = this.bb.createObjList(this.attributes.bind(this), this.attributesLength()); + _o.documentation = this.bb.createScalarList(this.documentation.bind(this), this.documentationLength()); + _o.declarationFile = this.declarationFile(); + } +}; +var ServiceT = class { + constructor(name = null, calls = [], attributes = [], documentation = [], declarationFile = null) { + this.name = name; + this.calls = calls; + this.attributes = attributes; + this.documentation = documentation; + this.declarationFile = declarationFile; + } + pack(builder) { + const name = this.name !== null ? builder.createString(this.name) : 0; + const calls = Service.createCallsVector(builder, builder.createObjectOffsetList(this.calls)); + const attributes = Service.createAttributesVector(builder, builder.createObjectOffsetList(this.attributes)); + const documentation = Service.createDocumentationVector(builder, builder.createObjectOffsetList(this.documentation)); + const declarationFile = this.declarationFile !== null ? builder.createString(this.declarationFile) : 0; + return Service.createService(builder, name, calls, attributes, documentation, declarationFile); + } +}; + +// reflection/schema.js +var Schema = class { + constructor() { + this.bb = null; + this.bb_pos = 0; + } + __init(i, bb) { + this.bb_pos = i; + this.bb = bb; + return this; + } + static getRootAsSchema(bb, obj) { + return (obj || new Schema()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + static getSizePrefixedRootAsSchema(bb, obj) { + bb.setPosition(bb.position() + flatbuffers10.SIZE_PREFIX_LENGTH); + return (obj || new Schema()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + static bufferHasIdentifier(bb) { + return bb.__has_identifier("BFBS"); + } + objects(index, obj) { + const offset = this.bb.__offset(this.bb_pos, 4); + return offset ? (obj || new Object_()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; + } + objectsLength() { + const offset = this.bb.__offset(this.bb_pos, 4); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + enums(index, obj) { + const offset = this.bb.__offset(this.bb_pos, 6); + return offset ? (obj || new Enum()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; + } + enumsLength() { + const offset = this.bb.__offset(this.bb_pos, 6); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + fileIdent(optionalEncoding) { + const offset = this.bb.__offset(this.bb_pos, 8); + return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; + } + fileExt(optionalEncoding) { + const offset = this.bb.__offset(this.bb_pos, 10); + return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; + } + rootTable(obj) { + const offset = this.bb.__offset(this.bb_pos, 12); + return offset ? (obj || new Object_()).__init(this.bb.__indirect(this.bb_pos + offset), this.bb) : null; + } + services(index, obj) { + const offset = this.bb.__offset(this.bb_pos, 14); + return offset ? (obj || new Service()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; + } + servicesLength() { + const offset = this.bb.__offset(this.bb_pos, 14); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + advancedFeatures() { + const offset = this.bb.__offset(this.bb_pos, 16); + return offset ? this.bb.readUint64(this.bb_pos + offset) : BigInt("0"); + } + mutate_advanced_features(value) { + const offset = this.bb.__offset(this.bb_pos, 16); + if (offset === 0) { + return false; + } + this.bb.writeUint64(this.bb_pos + offset, value); + return true; + } + fbsFiles(index, obj) { + const offset = this.bb.__offset(this.bb_pos, 18); + return offset ? (obj || new SchemaFile()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; + } + fbsFilesLength() { + const offset = this.bb.__offset(this.bb_pos, 18); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + static getFullyQualifiedName() { + return "reflection_Schema"; + } + static startSchema(builder) { + builder.startObject(8); + } + static addObjects(builder, objectsOffset) { + builder.addFieldOffset(0, objectsOffset, 0); + } + static createObjectsVector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) { + builder.addOffset(data[i]); + } + return builder.endVector(); + } + static startObjectsVector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static addEnums(builder, enumsOffset) { + builder.addFieldOffset(1, enumsOffset, 0); + } + static createEnumsVector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) { + builder.addOffset(data[i]); + } + return builder.endVector(); + } + static startEnumsVector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static addFileIdent(builder, fileIdentOffset) { + builder.addFieldOffset(2, fileIdentOffset, 0); + } + static addFileExt(builder, fileExtOffset) { + builder.addFieldOffset(3, fileExtOffset, 0); + } + static addRootTable(builder, rootTableOffset) { + builder.addFieldOffset(4, rootTableOffset, 0); + } + static addServices(builder, servicesOffset) { + builder.addFieldOffset(5, servicesOffset, 0); + } + static createServicesVector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) { + builder.addOffset(data[i]); + } + return builder.endVector(); + } + static startServicesVector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static addAdvancedFeatures(builder, advancedFeatures) { + builder.addFieldInt64(6, advancedFeatures, BigInt("0")); + } + static addFbsFiles(builder, fbsFilesOffset) { + builder.addFieldOffset(7, fbsFilesOffset, 0); + } + static createFbsFilesVector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) { + builder.addOffset(data[i]); + } + return builder.endVector(); + } + static startFbsFilesVector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static endSchema(builder) { + const offset = builder.endObject(); + builder.requiredField(offset, 4); + builder.requiredField(offset, 6); + return offset; + } + static finishSchemaBuffer(builder, offset) { + builder.finish(offset, "BFBS"); + } + static finishSizePrefixedSchemaBuffer(builder, offset) { + builder.finish(offset, "BFBS", true); + } + unpack() { + return new SchemaT(this.bb.createObjList(this.objects.bind(this), this.objectsLength()), this.bb.createObjList(this.enums.bind(this), this.enumsLength()), this.fileIdent(), this.fileExt(), this.rootTable() !== null ? this.rootTable().unpack() : null, this.bb.createObjList(this.services.bind(this), this.servicesLength()), this.advancedFeatures(), this.bb.createObjList(this.fbsFiles.bind(this), this.fbsFilesLength())); + } + unpackTo(_o) { + _o.objects = this.bb.createObjList(this.objects.bind(this), this.objectsLength()); + _o.enums = this.bb.createObjList(this.enums.bind(this), this.enumsLength()); + _o.fileIdent = this.fileIdent(); + _o.fileExt = this.fileExt(); + _o.rootTable = this.rootTable() !== null ? this.rootTable().unpack() : null; + _o.services = this.bb.createObjList(this.services.bind(this), this.servicesLength()); + _o.advancedFeatures = this.advancedFeatures(); + _o.fbsFiles = this.bb.createObjList(this.fbsFiles.bind(this), this.fbsFilesLength()); + } +}; +var SchemaT = class { + constructor(objects = [], enums = [], fileIdent = null, fileExt = null, rootTable = null, services = [], advancedFeatures = BigInt("0"), fbsFiles = []) { + this.objects = objects; + this.enums = enums; + this.fileIdent = fileIdent; + this.fileExt = fileExt; + this.rootTable = rootTable; + this.services = services; + this.advancedFeatures = advancedFeatures; + this.fbsFiles = fbsFiles; + } + pack(builder) { + const objects = Schema.createObjectsVector(builder, builder.createObjectOffsetList(this.objects)); + const enums = Schema.createEnumsVector(builder, builder.createObjectOffsetList(this.enums)); + const fileIdent = this.fileIdent !== null ? builder.createString(this.fileIdent) : 0; + const fileExt = this.fileExt !== null ? builder.createString(this.fileExt) : 0; + const rootTable = this.rootTable !== null ? this.rootTable.pack(builder) : 0; + const services = Schema.createServicesVector(builder, builder.createObjectOffsetList(this.services)); + const fbsFiles = Schema.createFbsFilesVector(builder, builder.createObjectOffsetList(this.fbsFiles)); + Schema.startSchema(builder); + Schema.addObjects(builder, objects); + Schema.addEnums(builder, enums); + Schema.addFileIdent(builder, fileIdent); + Schema.addFileExt(builder, fileExt); + Schema.addRootTable(builder, rootTable); + Schema.addServices(builder, services); + Schema.addAdvancedFeatures(builder, this.advancedFeatures); + Schema.addFbsFiles(builder, fbsFiles); + return Schema.endSchema(builder); + } +}; diff --git a/tests/ts/reflection_generated.js b/tests/ts/reflection_generated.js deleted file mode 100644 index 7e27373bb5..0000000000 --- a/tests/ts/reflection_generated.js +++ /dev/null @@ -1,1600 +0,0 @@ -// automatically generated by the FlatBuffers compiler, do not modify -import * as flatbuffers from 'flatbuffers'; -export var BaseType; -(function (BaseType) { - BaseType[BaseType["None"] = 0] = "None"; - BaseType[BaseType["UType"] = 1] = "UType"; - BaseType[BaseType["Bool"] = 2] = "Bool"; - BaseType[BaseType["Byte"] = 3] = "Byte"; - BaseType[BaseType["UByte"] = 4] = "UByte"; - BaseType[BaseType["Short"] = 5] = "Short"; - BaseType[BaseType["UShort"] = 6] = "UShort"; - BaseType[BaseType["Int"] = 7] = "Int"; - BaseType[BaseType["UInt"] = 8] = "UInt"; - BaseType[BaseType["Long"] = 9] = "Long"; - BaseType[BaseType["ULong"] = 10] = "ULong"; - BaseType[BaseType["Float"] = 11] = "Float"; - BaseType[BaseType["Double"] = 12] = "Double"; - BaseType[BaseType["String"] = 13] = "String"; - BaseType[BaseType["Vector"] = 14] = "Vector"; - BaseType[BaseType["Obj"] = 15] = "Obj"; - BaseType[BaseType["Union"] = 16] = "Union"; - BaseType[BaseType["Array"] = 17] = "Array"; - BaseType[BaseType["MaxBaseType"] = 18] = "MaxBaseType"; -})(BaseType || (BaseType = {})); -/** - * New schema language features that are not supported by old code generators. - */ -export var AdvancedFeatures; -(function (AdvancedFeatures) { - AdvancedFeatures["AdvancedArrayFeatures"] = "1"; - AdvancedFeatures["AdvancedUnionFeatures"] = "2"; - AdvancedFeatures["OptionalScalars"] = "4"; - AdvancedFeatures["DefaultVectorsAndStrings"] = "8"; -})(AdvancedFeatures || (AdvancedFeatures = {})); -export class Type { - constructor() { - this.bb = null; - this.bb_pos = 0; - } - __init(i, bb) { - this.bb_pos = i; - this.bb = bb; - return this; - } - static getRootAsType(bb, obj) { - return (obj || new Type()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - static getSizePrefixedRootAsType(bb, obj) { - bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH); - return (obj || new Type()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - baseType() { - const offset = this.bb.__offset(this.bb_pos, 4); - return offset ? this.bb.readInt8(this.bb_pos + offset) : BaseType.None; - } - mutate_base_type(value) { - const offset = this.bb.__offset(this.bb_pos, 4); - if (offset === 0) { - return false; - } - this.bb.writeInt8(this.bb_pos + offset, value); - return true; - } - element() { - const offset = this.bb.__offset(this.bb_pos, 6); - return offset ? this.bb.readInt8(this.bb_pos + offset) : BaseType.None; - } - mutate_element(value) { - const offset = this.bb.__offset(this.bb_pos, 6); - if (offset === 0) { - return false; - } - this.bb.writeInt8(this.bb_pos + offset, value); - return true; - } - index() { - const offset = this.bb.__offset(this.bb_pos, 8); - return offset ? this.bb.readInt32(this.bb_pos + offset) : -1; - } - mutate_index(value) { - const offset = this.bb.__offset(this.bb_pos, 8); - if (offset === 0) { - return false; - } - this.bb.writeInt32(this.bb_pos + offset, value); - return true; - } - fixedLength() { - const offset = this.bb.__offset(this.bb_pos, 10); - return offset ? this.bb.readUint16(this.bb_pos + offset) : 0; - } - mutate_fixed_length(value) { - const offset = this.bb.__offset(this.bb_pos, 10); - if (offset === 0) { - return false; - } - this.bb.writeUint16(this.bb_pos + offset, value); - return true; - } - /** - * The size (octets) of the `base_type` field. - */ - baseSize() { - const offset = this.bb.__offset(this.bb_pos, 12); - return offset ? this.bb.readUint32(this.bb_pos + offset) : 4; - } - mutate_base_size(value) { - const offset = this.bb.__offset(this.bb_pos, 12); - if (offset === 0) { - return false; - } - this.bb.writeUint32(this.bb_pos + offset, value); - return true; - } - /** - * The size (octets) of the `element` field, if present. - */ - elementSize() { - const offset = this.bb.__offset(this.bb_pos, 14); - return offset ? this.bb.readUint32(this.bb_pos + offset) : 0; - } - mutate_element_size(value) { - const offset = this.bb.__offset(this.bb_pos, 14); - if (offset === 0) { - return false; - } - this.bb.writeUint32(this.bb_pos + offset, value); - return true; - } - static getFullyQualifiedName() { - return 'reflection.Type'; - } - static startType(builder) { - builder.startObject(6); - } - static addBaseType(builder, baseType) { - builder.addFieldInt8(0, baseType, BaseType.None); - } - static addElement(builder, element) { - builder.addFieldInt8(1, element, BaseType.None); - } - static addIndex(builder, index) { - builder.addFieldInt32(2, index, -1); - } - static addFixedLength(builder, fixedLength) { - builder.addFieldInt16(3, fixedLength, 0); - } - static addBaseSize(builder, baseSize) { - builder.addFieldInt32(4, baseSize, 4); - } - static addElementSize(builder, elementSize) { - builder.addFieldInt32(5, elementSize, 0); - } - static endType(builder) { - const offset = builder.endObject(); - return offset; - } - static createType(builder, baseType, element, index, fixedLength, baseSize, elementSize) { - Type.startType(builder); - Type.addBaseType(builder, baseType); - Type.addElement(builder, element); - Type.addIndex(builder, index); - Type.addFixedLength(builder, fixedLength); - Type.addBaseSize(builder, baseSize); - Type.addElementSize(builder, elementSize); - return Type.endType(builder); - } - unpack() { - return new TypeT(this.baseType(), this.element(), this.index(), this.fixedLength(), this.baseSize(), this.elementSize()); - } - unpackTo(_o) { - _o.baseType = this.baseType(); - _o.element = this.element(); - _o.index = this.index(); - _o.fixedLength = this.fixedLength(); - _o.baseSize = this.baseSize(); - _o.elementSize = this.elementSize(); - } -} -export class TypeT { - constructor(baseType = BaseType.None, element = BaseType.None, index = -1, fixedLength = 0, baseSize = 4, elementSize = 0) { - this.baseType = baseType; - this.element = element; - this.index = index; - this.fixedLength = fixedLength; - this.baseSize = baseSize; - this.elementSize = elementSize; - } - pack(builder) { - return Type.createType(builder, this.baseType, this.element, this.index, this.fixedLength, this.baseSize, this.elementSize); - } -} -export class KeyValue { - constructor() { - this.bb = null; - this.bb_pos = 0; - } - __init(i, bb) { - this.bb_pos = i; - this.bb = bb; - return this; - } - static getRootAsKeyValue(bb, obj) { - return (obj || new KeyValue()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - static getSizePrefixedRootAsKeyValue(bb, obj) { - bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH); - return (obj || new KeyValue()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - key(optionalEncoding) { - const offset = this.bb.__offset(this.bb_pos, 4); - return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; - } - value(optionalEncoding) { - const offset = this.bb.__offset(this.bb_pos, 6); - return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; - } - static getFullyQualifiedName() { - return 'reflection.KeyValue'; - } - static startKeyValue(builder) { - builder.startObject(2); - } - static addKey(builder, keyOffset) { - builder.addFieldOffset(0, keyOffset, 0); - } - static addValue(builder, valueOffset) { - builder.addFieldOffset(1, valueOffset, 0); - } - static endKeyValue(builder) { - const offset = builder.endObject(); - builder.requiredField(offset, 4); // key - return offset; - } - static createKeyValue(builder, keyOffset, valueOffset) { - KeyValue.startKeyValue(builder); - KeyValue.addKey(builder, keyOffset); - KeyValue.addValue(builder, valueOffset); - return KeyValue.endKeyValue(builder); - } - unpack() { - return new KeyValueT(this.key(), this.value()); - } - unpackTo(_o) { - _o.key = this.key(); - _o.value = this.value(); - } -} -export class KeyValueT { - constructor(key = null, value = null) { - this.key = key; - this.value = value; - } - pack(builder) { - const key = (this.key !== null ? builder.createString(this.key) : 0); - const value = (this.value !== null ? builder.createString(this.value) : 0); - return KeyValue.createKeyValue(builder, key, value); - } -} -export class EnumVal { - constructor() { - this.bb = null; - this.bb_pos = 0; - } - __init(i, bb) { - this.bb_pos = i; - this.bb = bb; - return this; - } - static getRootAsEnumVal(bb, obj) { - return (obj || new EnumVal()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - static getSizePrefixedRootAsEnumVal(bb, obj) { - bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH); - return (obj || new EnumVal()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - name(optionalEncoding) { - const offset = this.bb.__offset(this.bb_pos, 4); - return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; - } - value() { - const offset = this.bb.__offset(this.bb_pos, 6); - return offset ? this.bb.readInt64(this.bb_pos + offset) : BigInt('0'); - } - mutate_value(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; - } - unionType(obj) { - const offset = this.bb.__offset(this.bb_pos, 10); - return offset ? (obj || new Type()).__init(this.bb.__indirect(this.bb_pos + offset), this.bb) : null; - } - documentation(index, optionalEncoding) { - const offset = this.bb.__offset(this.bb_pos, 12); - return offset ? this.bb.__string(this.bb.__vector(this.bb_pos + offset) + index * 4, optionalEncoding) : null; - } - documentationLength() { - const offset = this.bb.__offset(this.bb_pos, 12); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - attributes(index, obj) { - const offset = this.bb.__offset(this.bb_pos, 14); - return offset ? (obj || new KeyValue()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; - } - attributesLength() { - const offset = this.bb.__offset(this.bb_pos, 14); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - static getFullyQualifiedName() { - return 'reflection.EnumVal'; - } - static startEnumVal(builder) { - builder.startObject(6); - } - static addName(builder, nameOffset) { - builder.addFieldOffset(0, nameOffset, 0); - } - static addValue(builder, value) { - builder.addFieldInt64(1, value, BigInt('0')); - } - static addUnionType(builder, unionTypeOffset) { - builder.addFieldOffset(3, unionTypeOffset, 0); - } - static addDocumentation(builder, documentationOffset) { - builder.addFieldOffset(4, documentationOffset, 0); - } - static createDocumentationVector(builder, data) { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]); - } - return builder.endVector(); - } - static startDocumentationVector(builder, numElems) { - builder.startVector(4, numElems, 4); - } - static addAttributes(builder, attributesOffset) { - builder.addFieldOffset(5, attributesOffset, 0); - } - static createAttributesVector(builder, data) { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]); - } - return builder.endVector(); - } - static startAttributesVector(builder, numElems) { - builder.startVector(4, numElems, 4); - } - static endEnumVal(builder) { - const offset = builder.endObject(); - builder.requiredField(offset, 4); // name - return offset; - } - unpack() { - return new EnumValT(this.name(), this.value(), (this.unionType() !== null ? this.unionType().unpack() : null), this.bb.createScalarList(this.documentation.bind(this), this.documentationLength()), this.bb.createObjList(this.attributes.bind(this), this.attributesLength())); - } - unpackTo(_o) { - _o.name = this.name(); - _o.value = this.value(); - _o.unionType = (this.unionType() !== null ? this.unionType().unpack() : null); - _o.documentation = this.bb.createScalarList(this.documentation.bind(this), this.documentationLength()); - _o.attributes = this.bb.createObjList(this.attributes.bind(this), this.attributesLength()); - } -} -export class EnumValT { - constructor(name = null, value = BigInt('0'), unionType = null, documentation = [], attributes = []) { - this.name = name; - this.value = value; - this.unionType = unionType; - this.documentation = documentation; - this.attributes = attributes; - } - pack(builder) { - const name = (this.name !== null ? builder.createString(this.name) : 0); - const unionType = (this.unionType !== null ? this.unionType.pack(builder) : 0); - const documentation = EnumVal.createDocumentationVector(builder, builder.createObjectOffsetList(this.documentation)); - const attributes = EnumVal.createAttributesVector(builder, builder.createObjectOffsetList(this.attributes)); - EnumVal.startEnumVal(builder); - EnumVal.addName(builder, name); - EnumVal.addValue(builder, this.value); - EnumVal.addUnionType(builder, unionType); - EnumVal.addDocumentation(builder, documentation); - EnumVal.addAttributes(builder, attributes); - return EnumVal.endEnumVal(builder); - } -} -export class Enum { - constructor() { - this.bb = null; - this.bb_pos = 0; - } - __init(i, bb) { - this.bb_pos = i; - this.bb = bb; - return this; - } - static getRootAsEnum(bb, obj) { - return (obj || new Enum()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - static getSizePrefixedRootAsEnum(bb, obj) { - bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH); - return (obj || new Enum()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - name(optionalEncoding) { - const offset = this.bb.__offset(this.bb_pos, 4); - return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; - } - values(index, obj) { - const offset = this.bb.__offset(this.bb_pos, 6); - return offset ? (obj || new EnumVal()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; - } - valuesLength() { - const offset = this.bb.__offset(this.bb_pos, 6); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - isUnion() { - const offset = this.bb.__offset(this.bb_pos, 8); - return offset ? !!this.bb.readInt8(this.bb_pos + offset) : false; - } - mutate_is_union(value) { - const offset = this.bb.__offset(this.bb_pos, 8); - if (offset === 0) { - return false; - } - this.bb.writeInt8(this.bb_pos + offset, +value); - return true; - } - underlyingType(obj) { - const offset = this.bb.__offset(this.bb_pos, 10); - return offset ? (obj || new Type()).__init(this.bb.__indirect(this.bb_pos + offset), this.bb) : null; - } - attributes(index, obj) { - const offset = this.bb.__offset(this.bb_pos, 12); - return offset ? (obj || new KeyValue()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; - } - attributesLength() { - const offset = this.bb.__offset(this.bb_pos, 12); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - documentation(index, optionalEncoding) { - const offset = this.bb.__offset(this.bb_pos, 14); - return offset ? this.bb.__string(this.bb.__vector(this.bb_pos + offset) + index * 4, optionalEncoding) : null; - } - documentationLength() { - const offset = this.bb.__offset(this.bb_pos, 14); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - declarationFile(optionalEncoding) { - const offset = this.bb.__offset(this.bb_pos, 16); - return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; - } - static getFullyQualifiedName() { - return 'reflection.Enum'; - } - static startEnum(builder) { - builder.startObject(7); - } - static addName(builder, nameOffset) { - builder.addFieldOffset(0, nameOffset, 0); - } - static addValues(builder, valuesOffset) { - builder.addFieldOffset(1, valuesOffset, 0); - } - static createValuesVector(builder, data) { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]); - } - return builder.endVector(); - } - static startValuesVector(builder, numElems) { - builder.startVector(4, numElems, 4); - } - static addIsUnion(builder, isUnion) { - builder.addFieldInt8(2, +isUnion, +false); - } - static addUnderlyingType(builder, underlyingTypeOffset) { - builder.addFieldOffset(3, underlyingTypeOffset, 0); - } - static addAttributes(builder, attributesOffset) { - builder.addFieldOffset(4, attributesOffset, 0); - } - static createAttributesVector(builder, data) { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]); - } - return builder.endVector(); - } - static startAttributesVector(builder, numElems) { - builder.startVector(4, numElems, 4); - } - static addDocumentation(builder, documentationOffset) { - builder.addFieldOffset(5, documentationOffset, 0); - } - static createDocumentationVector(builder, data) { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]); - } - return builder.endVector(); - } - static startDocumentationVector(builder, numElems) { - builder.startVector(4, numElems, 4); - } - static addDeclarationFile(builder, declarationFileOffset) { - builder.addFieldOffset(6, declarationFileOffset, 0); - } - static endEnum(builder) { - const offset = builder.endObject(); - builder.requiredField(offset, 4); // name - builder.requiredField(offset, 6); // values - builder.requiredField(offset, 10); // underlying_type - return offset; - } - unpack() { - return new EnumT(this.name(), this.bb.createObjList(this.values.bind(this), this.valuesLength()), this.isUnion(), (this.underlyingType() !== null ? this.underlyingType().unpack() : null), this.bb.createObjList(this.attributes.bind(this), this.attributesLength()), this.bb.createScalarList(this.documentation.bind(this), this.documentationLength()), this.declarationFile()); - } - unpackTo(_o) { - _o.name = this.name(); - _o.values = this.bb.createObjList(this.values.bind(this), this.valuesLength()); - _o.isUnion = this.isUnion(); - _o.underlyingType = (this.underlyingType() !== null ? this.underlyingType().unpack() : null); - _o.attributes = this.bb.createObjList(this.attributes.bind(this), this.attributesLength()); - _o.documentation = this.bb.createScalarList(this.documentation.bind(this), this.documentationLength()); - _o.declarationFile = this.declarationFile(); - } -} -export class EnumT { - constructor(name = null, values = [], isUnion = false, underlyingType = null, attributes = [], documentation = [], declarationFile = null) { - this.name = name; - this.values = values; - this.isUnion = isUnion; - this.underlyingType = underlyingType; - this.attributes = attributes; - this.documentation = documentation; - this.declarationFile = declarationFile; - } - pack(builder) { - const name = (this.name !== null ? builder.createString(this.name) : 0); - const values = Enum.createValuesVector(builder, builder.createObjectOffsetList(this.values)); - const underlyingType = (this.underlyingType !== null ? this.underlyingType.pack(builder) : 0); - const attributes = Enum.createAttributesVector(builder, builder.createObjectOffsetList(this.attributes)); - const documentation = Enum.createDocumentationVector(builder, builder.createObjectOffsetList(this.documentation)); - const declarationFile = (this.declarationFile !== null ? builder.createString(this.declarationFile) : 0); - Enum.startEnum(builder); - Enum.addName(builder, name); - Enum.addValues(builder, values); - Enum.addIsUnion(builder, this.isUnion); - Enum.addUnderlyingType(builder, underlyingType); - Enum.addAttributes(builder, attributes); - Enum.addDocumentation(builder, documentation); - Enum.addDeclarationFile(builder, declarationFile); - return Enum.endEnum(builder); - } -} -export class Field { - constructor() { - this.bb = null; - this.bb_pos = 0; - } - __init(i, bb) { - this.bb_pos = i; - this.bb = bb; - return this; - } - static getRootAsField(bb, obj) { - return (obj || new Field()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - static getSizePrefixedRootAsField(bb, obj) { - bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH); - return (obj || new Field()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - name(optionalEncoding) { - const offset = this.bb.__offset(this.bb_pos, 4); - return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; - } - type(obj) { - const offset = this.bb.__offset(this.bb_pos, 6); - return offset ? (obj || new Type()).__init(this.bb.__indirect(this.bb_pos + offset), this.bb) : null; - } - id() { - const offset = this.bb.__offset(this.bb_pos, 8); - return offset ? this.bb.readUint16(this.bb_pos + offset) : 0; - } - mutate_id(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; - } - offset() { - const offset = this.bb.__offset(this.bb_pos, 10); - return offset ? this.bb.readUint16(this.bb_pos + offset) : 0; - } - mutate_offset(value) { - const offset = this.bb.__offset(this.bb_pos, 10); - if (offset === 0) { - return false; - } - this.bb.writeUint16(this.bb_pos + offset, value); - return true; - } - defaultInteger() { - const offset = this.bb.__offset(this.bb_pos, 12); - return offset ? this.bb.readInt64(this.bb_pos + offset) : BigInt('0'); - } - mutate_default_integer(value) { - const offset = this.bb.__offset(this.bb_pos, 12); - if (offset === 0) { - return false; - } - this.bb.writeInt64(this.bb_pos + offset, value); - return true; - } - defaultReal() { - const offset = this.bb.__offset(this.bb_pos, 14); - return offset ? this.bb.readFloat64(this.bb_pos + offset) : 0.0; - } - mutate_default_real(value) { - const offset = this.bb.__offset(this.bb_pos, 14); - if (offset === 0) { - return false; - } - this.bb.writeFloat64(this.bb_pos + offset, value); - return true; - } - deprecated() { - const offset = this.bb.__offset(this.bb_pos, 16); - return offset ? !!this.bb.readInt8(this.bb_pos + offset) : false; - } - mutate_deprecated(value) { - const offset = this.bb.__offset(this.bb_pos, 16); - if (offset === 0) { - return false; - } - this.bb.writeInt8(this.bb_pos + offset, +value); - return true; - } - required() { - const offset = this.bb.__offset(this.bb_pos, 18); - return offset ? !!this.bb.readInt8(this.bb_pos + offset) : false; - } - mutate_required(value) { - const offset = this.bb.__offset(this.bb_pos, 18); - if (offset === 0) { - return false; - } - this.bb.writeInt8(this.bb_pos + offset, +value); - return true; - } - key() { - const offset = this.bb.__offset(this.bb_pos, 20); - return offset ? !!this.bb.readInt8(this.bb_pos + offset) : false; - } - mutate_key(value) { - const offset = this.bb.__offset(this.bb_pos, 20); - if (offset === 0) { - return false; - } - this.bb.writeInt8(this.bb_pos + offset, +value); - return true; - } - attributes(index, obj) { - const offset = this.bb.__offset(this.bb_pos, 22); - return offset ? (obj || new KeyValue()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; - } - attributesLength() { - const offset = this.bb.__offset(this.bb_pos, 22); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - documentation(index, optionalEncoding) { - const offset = this.bb.__offset(this.bb_pos, 24); - return offset ? this.bb.__string(this.bb.__vector(this.bb_pos + offset) + index * 4, optionalEncoding) : null; - } - documentationLength() { - const offset = this.bb.__offset(this.bb_pos, 24); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - optional() { - const offset = this.bb.__offset(this.bb_pos, 26); - return offset ? !!this.bb.readInt8(this.bb_pos + offset) : false; - } - mutate_optional(value) { - const offset = this.bb.__offset(this.bb_pos, 26); - if (offset === 0) { - return false; - } - this.bb.writeInt8(this.bb_pos + offset, +value); - return true; - } - /** - * Number of padding octets to always add after this field. Structs only. - */ - padding() { - const offset = this.bb.__offset(this.bb_pos, 28); - return offset ? this.bb.readUint16(this.bb_pos + offset) : 0; - } - mutate_padding(value) { - const offset = this.bb.__offset(this.bb_pos, 28); - if (offset === 0) { - return false; - } - this.bb.writeUint16(this.bb_pos + offset, value); - return true; - } - static getFullyQualifiedName() { - return 'reflection.Field'; - } - static startField(builder) { - builder.startObject(13); - } - static addName(builder, nameOffset) { - builder.addFieldOffset(0, nameOffset, 0); - } - static addType(builder, typeOffset) { - builder.addFieldOffset(1, typeOffset, 0); - } - static addId(builder, id) { - builder.addFieldInt16(2, id, 0); - } - static addOffset(builder, offset) { - builder.addFieldInt16(3, offset, 0); - } - static addDefaultInteger(builder, defaultInteger) { - builder.addFieldInt64(4, defaultInteger, BigInt('0')); - } - static addDefaultReal(builder, defaultReal) { - builder.addFieldFloat64(5, defaultReal, 0.0); - } - static addDeprecated(builder, deprecated) { - builder.addFieldInt8(6, +deprecated, +false); - } - static addRequired(builder, required) { - builder.addFieldInt8(7, +required, +false); - } - static addKey(builder, key) { - builder.addFieldInt8(8, +key, +false); - } - static addAttributes(builder, attributesOffset) { - builder.addFieldOffset(9, attributesOffset, 0); - } - static createAttributesVector(builder, data) { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]); - } - return builder.endVector(); - } - static startAttributesVector(builder, numElems) { - builder.startVector(4, numElems, 4); - } - static addDocumentation(builder, documentationOffset) { - builder.addFieldOffset(10, documentationOffset, 0); - } - static createDocumentationVector(builder, data) { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]); - } - return builder.endVector(); - } - static startDocumentationVector(builder, numElems) { - builder.startVector(4, numElems, 4); - } - static addOptional(builder, optional) { - builder.addFieldInt8(11, +optional, +false); - } - static addPadding(builder, padding) { - builder.addFieldInt16(12, padding, 0); - } - static endField(builder) { - const offset = builder.endObject(); - builder.requiredField(offset, 4); // name - builder.requiredField(offset, 6); // type - return offset; - } - unpack() { - return new FieldT(this.name(), (this.type() !== null ? this.type().unpack() : null), this.id(), this.offset(), this.defaultInteger(), this.defaultReal(), this.deprecated(), this.required(), this.key(), this.bb.createObjList(this.attributes.bind(this), this.attributesLength()), this.bb.createScalarList(this.documentation.bind(this), this.documentationLength()), this.optional(), this.padding()); - } - unpackTo(_o) { - _o.name = this.name(); - _o.type = (this.type() !== null ? this.type().unpack() : null); - _o.id = this.id(); - _o.offset = this.offset(); - _o.defaultInteger = this.defaultInteger(); - _o.defaultReal = this.defaultReal(); - _o.deprecated = this.deprecated(); - _o.required = this.required(); - _o.key = this.key(); - _o.attributes = this.bb.createObjList(this.attributes.bind(this), this.attributesLength()); - _o.documentation = this.bb.createScalarList(this.documentation.bind(this), this.documentationLength()); - _o.optional = this.optional(); - _o.padding = this.padding(); - } -} -export class FieldT { - constructor(name = null, type = null, id = 0, offset = 0, defaultInteger = BigInt('0'), defaultReal = 0.0, deprecated = false, required = false, key = false, attributes = [], documentation = [], optional = false, padding = 0) { - this.name = name; - this.type = type; - this.id = id; - this.offset = offset; - this.defaultInteger = defaultInteger; - this.defaultReal = defaultReal; - this.deprecated = deprecated; - this.required = required; - this.key = key; - this.attributes = attributes; - this.documentation = documentation; - this.optional = optional; - this.padding = padding; - } - pack(builder) { - const name = (this.name !== null ? builder.createString(this.name) : 0); - const type = (this.type !== null ? this.type.pack(builder) : 0); - const attributes = Field.createAttributesVector(builder, builder.createObjectOffsetList(this.attributes)); - const documentation = Field.createDocumentationVector(builder, builder.createObjectOffsetList(this.documentation)); - Field.startField(builder); - Field.addName(builder, name); - Field.addType(builder, type); - Field.addId(builder, this.id); - Field.addOffset(builder, this.offset); - Field.addDefaultInteger(builder, this.defaultInteger); - Field.addDefaultReal(builder, this.defaultReal); - Field.addDeprecated(builder, this.deprecated); - Field.addRequired(builder, this.required); - Field.addKey(builder, this.key); - Field.addAttributes(builder, attributes); - Field.addDocumentation(builder, documentation); - Field.addOptional(builder, this.optional); - Field.addPadding(builder, this.padding); - return Field.endField(builder); - } -} -export class Object_ { - constructor() { - this.bb = null; - this.bb_pos = 0; - } - __init(i, bb) { - this.bb_pos = i; - this.bb = bb; - return this; - } - static getRootAsObject(bb, obj) { - return (obj || new Object_()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - static getSizePrefixedRootAsObject(bb, obj) { - bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH); - return (obj || new Object_()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - name(optionalEncoding) { - const offset = this.bb.__offset(this.bb_pos, 4); - return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; - } - fields(index, obj) { - const offset = this.bb.__offset(this.bb_pos, 6); - return offset ? (obj || new Field()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; - } - fieldsLength() { - const offset = this.bb.__offset(this.bb_pos, 6); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - isStruct() { - const offset = this.bb.__offset(this.bb_pos, 8); - return offset ? !!this.bb.readInt8(this.bb_pos + offset) : false; - } - mutate_is_struct(value) { - const offset = this.bb.__offset(this.bb_pos, 8); - if (offset === 0) { - return false; - } - this.bb.writeInt8(this.bb_pos + offset, +value); - return true; - } - minalign() { - const offset = this.bb.__offset(this.bb_pos, 10); - return offset ? this.bb.readInt32(this.bb_pos + offset) : 0; - } - mutate_minalign(value) { - const offset = this.bb.__offset(this.bb_pos, 10); - if (offset === 0) { - return false; - } - this.bb.writeInt32(this.bb_pos + offset, value); - return true; - } - bytesize() { - const offset = this.bb.__offset(this.bb_pos, 12); - return offset ? this.bb.readInt32(this.bb_pos + offset) : 0; - } - mutate_bytesize(value) { - const offset = this.bb.__offset(this.bb_pos, 12); - if (offset === 0) { - return false; - } - this.bb.writeInt32(this.bb_pos + offset, value); - return true; - } - attributes(index, obj) { - const offset = this.bb.__offset(this.bb_pos, 14); - return offset ? (obj || new KeyValue()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; - } - attributesLength() { - const offset = this.bb.__offset(this.bb_pos, 14); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - documentation(index, optionalEncoding) { - const offset = this.bb.__offset(this.bb_pos, 16); - return offset ? this.bb.__string(this.bb.__vector(this.bb_pos + offset) + index * 4, optionalEncoding) : null; - } - documentationLength() { - const offset = this.bb.__offset(this.bb_pos, 16); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - declarationFile(optionalEncoding) { - const offset = this.bb.__offset(this.bb_pos, 18); - return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; - } - static getFullyQualifiedName() { - return 'reflection.Object'; - } - static startObject(builder) { - builder.startObject(8); - } - static addName(builder, nameOffset) { - builder.addFieldOffset(0, nameOffset, 0); - } - static addFields(builder, fieldsOffset) { - builder.addFieldOffset(1, fieldsOffset, 0); - } - static createFieldsVector(builder, data) { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]); - } - return builder.endVector(); - } - static startFieldsVector(builder, numElems) { - builder.startVector(4, numElems, 4); - } - static addIsStruct(builder, isStruct) { - builder.addFieldInt8(2, +isStruct, +false); - } - static addMinalign(builder, minalign) { - builder.addFieldInt32(3, minalign, 0); - } - static addBytesize(builder, bytesize) { - builder.addFieldInt32(4, bytesize, 0); - } - static addAttributes(builder, attributesOffset) { - builder.addFieldOffset(5, attributesOffset, 0); - } - static createAttributesVector(builder, data) { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]); - } - return builder.endVector(); - } - static startAttributesVector(builder, numElems) { - builder.startVector(4, numElems, 4); - } - static addDocumentation(builder, documentationOffset) { - builder.addFieldOffset(6, documentationOffset, 0); - } - static createDocumentationVector(builder, data) { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]); - } - return builder.endVector(); - } - static startDocumentationVector(builder, numElems) { - builder.startVector(4, numElems, 4); - } - static addDeclarationFile(builder, declarationFileOffset) { - builder.addFieldOffset(7, declarationFileOffset, 0); - } - static endObject(builder) { - const offset = builder.endObject(); - builder.requiredField(offset, 4); // name - builder.requiredField(offset, 6); // fields - return offset; - } - static createObject(builder, nameOffset, fieldsOffset, isStruct, minalign, bytesize, attributesOffset, documentationOffset, declarationFileOffset) { - Object_.startObject(builder); - Object_.addName(builder, nameOffset); - Object_.addFields(builder, fieldsOffset); - Object_.addIsStruct(builder, isStruct); - Object_.addMinalign(builder, minalign); - Object_.addBytesize(builder, bytesize); - Object_.addAttributes(builder, attributesOffset); - Object_.addDocumentation(builder, documentationOffset); - Object_.addDeclarationFile(builder, declarationFileOffset); - return Object_.endObject(builder); - } - unpack() { - return new Object_T(this.name(), this.bb.createObjList(this.fields.bind(this), this.fieldsLength()), this.isStruct(), this.minalign(), this.bytesize(), this.bb.createObjList(this.attributes.bind(this), this.attributesLength()), this.bb.createScalarList(this.documentation.bind(this), this.documentationLength()), this.declarationFile()); - } - unpackTo(_o) { - _o.name = this.name(); - _o.fields = this.bb.createObjList(this.fields.bind(this), this.fieldsLength()); - _o.isStruct = this.isStruct(); - _o.minalign = this.minalign(); - _o.bytesize = this.bytesize(); - _o.attributes = this.bb.createObjList(this.attributes.bind(this), this.attributesLength()); - _o.documentation = this.bb.createScalarList(this.documentation.bind(this), this.documentationLength()); - _o.declarationFile = this.declarationFile(); - } -} -export class Object_T { - constructor(name = null, fields = [], isStruct = false, minalign = 0, bytesize = 0, attributes = [], documentation = [], declarationFile = null) { - this.name = name; - this.fields = fields; - this.isStruct = isStruct; - this.minalign = minalign; - this.bytesize = bytesize; - this.attributes = attributes; - this.documentation = documentation; - this.declarationFile = declarationFile; - } - pack(builder) { - const name = (this.name !== null ? builder.createString(this.name) : 0); - const fields = Object_.createFieldsVector(builder, builder.createObjectOffsetList(this.fields)); - const attributes = Object_.createAttributesVector(builder, builder.createObjectOffsetList(this.attributes)); - const documentation = Object_.createDocumentationVector(builder, builder.createObjectOffsetList(this.documentation)); - const declarationFile = (this.declarationFile !== null ? builder.createString(this.declarationFile) : 0); - return Object_.createObject(builder, name, fields, this.isStruct, this.minalign, this.bytesize, attributes, documentation, declarationFile); - } -} -export class RPCCall { - constructor() { - this.bb = null; - this.bb_pos = 0; - } - __init(i, bb) { - this.bb_pos = i; - this.bb = bb; - return this; - } - static getRootAsRPCCall(bb, obj) { - return (obj || new RPCCall()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - static getSizePrefixedRootAsRPCCall(bb, obj) { - bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH); - return (obj || new RPCCall()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - name(optionalEncoding) { - const offset = this.bb.__offset(this.bb_pos, 4); - return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; - } - request(obj) { - const offset = this.bb.__offset(this.bb_pos, 6); - return offset ? (obj || new Object_()).__init(this.bb.__indirect(this.bb_pos + offset), this.bb) : null; - } - response(obj) { - const offset = this.bb.__offset(this.bb_pos, 8); - return offset ? (obj || new Object_()).__init(this.bb.__indirect(this.bb_pos + offset), this.bb) : null; - } - attributes(index, obj) { - const offset = this.bb.__offset(this.bb_pos, 10); - return offset ? (obj || new KeyValue()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; - } - attributesLength() { - const offset = this.bb.__offset(this.bb_pos, 10); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - documentation(index, optionalEncoding) { - const offset = this.bb.__offset(this.bb_pos, 12); - return offset ? this.bb.__string(this.bb.__vector(this.bb_pos + offset) + index * 4, optionalEncoding) : null; - } - documentationLength() { - const offset = this.bb.__offset(this.bb_pos, 12); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - static getFullyQualifiedName() { - return 'reflection.RPCCall'; - } - static startRPCCall(builder) { - builder.startObject(5); - } - static addName(builder, nameOffset) { - builder.addFieldOffset(0, nameOffset, 0); - } - static addRequest(builder, requestOffset) { - builder.addFieldOffset(1, requestOffset, 0); - } - static addResponse(builder, responseOffset) { - builder.addFieldOffset(2, responseOffset, 0); - } - static addAttributes(builder, attributesOffset) { - builder.addFieldOffset(3, attributesOffset, 0); - } - static createAttributesVector(builder, data) { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]); - } - return builder.endVector(); - } - static startAttributesVector(builder, numElems) { - builder.startVector(4, numElems, 4); - } - static addDocumentation(builder, documentationOffset) { - builder.addFieldOffset(4, documentationOffset, 0); - } - static createDocumentationVector(builder, data) { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]); - } - return builder.endVector(); - } - static startDocumentationVector(builder, numElems) { - builder.startVector(4, numElems, 4); - } - static endRPCCall(builder) { - const offset = builder.endObject(); - builder.requiredField(offset, 4); // name - builder.requiredField(offset, 6); // request - builder.requiredField(offset, 8); // response - return offset; - } - unpack() { - return new RPCCallT(this.name(), (this.request() !== null ? this.request().unpack() : null), (this.response() !== null ? this.response().unpack() : null), this.bb.createObjList(this.attributes.bind(this), this.attributesLength()), this.bb.createScalarList(this.documentation.bind(this), this.documentationLength())); - } - unpackTo(_o) { - _o.name = this.name(); - _o.request = (this.request() !== null ? this.request().unpack() : null); - _o.response = (this.response() !== null ? this.response().unpack() : null); - _o.attributes = this.bb.createObjList(this.attributes.bind(this), this.attributesLength()); - _o.documentation = this.bb.createScalarList(this.documentation.bind(this), this.documentationLength()); - } -} -export class RPCCallT { - constructor(name = null, request = null, response = null, attributes = [], documentation = []) { - this.name = name; - this.request = request; - this.response = response; - this.attributes = attributes; - this.documentation = documentation; - } - pack(builder) { - const name = (this.name !== null ? builder.createString(this.name) : 0); - const request = (this.request !== null ? this.request.pack(builder) : 0); - const response = (this.response !== null ? this.response.pack(builder) : 0); - const attributes = RPCCall.createAttributesVector(builder, builder.createObjectOffsetList(this.attributes)); - const documentation = RPCCall.createDocumentationVector(builder, builder.createObjectOffsetList(this.documentation)); - RPCCall.startRPCCall(builder); - RPCCall.addName(builder, name); - RPCCall.addRequest(builder, request); - RPCCall.addResponse(builder, response); - RPCCall.addAttributes(builder, attributes); - RPCCall.addDocumentation(builder, documentation); - return RPCCall.endRPCCall(builder); - } -} -export class Service { - constructor() { - this.bb = null; - this.bb_pos = 0; - } - __init(i, bb) { - this.bb_pos = i; - this.bb = bb; - return this; - } - static getRootAsService(bb, obj) { - return (obj || new Service()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - static getSizePrefixedRootAsService(bb, obj) { - bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH); - return (obj || new Service()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - name(optionalEncoding) { - const offset = this.bb.__offset(this.bb_pos, 4); - return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; - } - calls(index, obj) { - const offset = this.bb.__offset(this.bb_pos, 6); - return offset ? (obj || new RPCCall()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; - } - callsLength() { - const offset = this.bb.__offset(this.bb_pos, 6); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - attributes(index, obj) { - const offset = this.bb.__offset(this.bb_pos, 8); - return offset ? (obj || new KeyValue()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; - } - attributesLength() { - const offset = this.bb.__offset(this.bb_pos, 8); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - documentation(index, optionalEncoding) { - const offset = this.bb.__offset(this.bb_pos, 10); - return offset ? this.bb.__string(this.bb.__vector(this.bb_pos + offset) + index * 4, optionalEncoding) : null; - } - documentationLength() { - const offset = this.bb.__offset(this.bb_pos, 10); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - declarationFile(optionalEncoding) { - const offset = this.bb.__offset(this.bb_pos, 12); - return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; - } - static getFullyQualifiedName() { - return 'reflection.Service'; - } - static startService(builder) { - builder.startObject(5); - } - static addName(builder, nameOffset) { - builder.addFieldOffset(0, nameOffset, 0); - } - static addCalls(builder, callsOffset) { - builder.addFieldOffset(1, callsOffset, 0); - } - static createCallsVector(builder, data) { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]); - } - return builder.endVector(); - } - static startCallsVector(builder, numElems) { - builder.startVector(4, numElems, 4); - } - static addAttributes(builder, attributesOffset) { - builder.addFieldOffset(2, attributesOffset, 0); - } - static createAttributesVector(builder, data) { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]); - } - return builder.endVector(); - } - static startAttributesVector(builder, numElems) { - builder.startVector(4, numElems, 4); - } - static addDocumentation(builder, documentationOffset) { - builder.addFieldOffset(3, documentationOffset, 0); - } - static createDocumentationVector(builder, data) { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]); - } - return builder.endVector(); - } - static startDocumentationVector(builder, numElems) { - builder.startVector(4, numElems, 4); - } - static addDeclarationFile(builder, declarationFileOffset) { - builder.addFieldOffset(4, declarationFileOffset, 0); - } - static endService(builder) { - const offset = builder.endObject(); - builder.requiredField(offset, 4); // name - return offset; - } - static createService(builder, nameOffset, callsOffset, attributesOffset, documentationOffset, declarationFileOffset) { - Service.startService(builder); - Service.addName(builder, nameOffset); - Service.addCalls(builder, callsOffset); - Service.addAttributes(builder, attributesOffset); - Service.addDocumentation(builder, documentationOffset); - Service.addDeclarationFile(builder, declarationFileOffset); - return Service.endService(builder); - } - unpack() { - return new ServiceT(this.name(), this.bb.createObjList(this.calls.bind(this), this.callsLength()), this.bb.createObjList(this.attributes.bind(this), this.attributesLength()), this.bb.createScalarList(this.documentation.bind(this), this.documentationLength()), this.declarationFile()); - } - unpackTo(_o) { - _o.name = this.name(); - _o.calls = this.bb.createObjList(this.calls.bind(this), this.callsLength()); - _o.attributes = this.bb.createObjList(this.attributes.bind(this), this.attributesLength()); - _o.documentation = this.bb.createScalarList(this.documentation.bind(this), this.documentationLength()); - _o.declarationFile = this.declarationFile(); - } -} -export class ServiceT { - constructor(name = null, calls = [], attributes = [], documentation = [], declarationFile = null) { - this.name = name; - this.calls = calls; - this.attributes = attributes; - this.documentation = documentation; - this.declarationFile = declarationFile; - } - pack(builder) { - const name = (this.name !== null ? builder.createString(this.name) : 0); - const calls = Service.createCallsVector(builder, builder.createObjectOffsetList(this.calls)); - const attributes = Service.createAttributesVector(builder, builder.createObjectOffsetList(this.attributes)); - const documentation = Service.createDocumentationVector(builder, builder.createObjectOffsetList(this.documentation)); - const declarationFile = (this.declarationFile !== null ? builder.createString(this.declarationFile) : 0); - return Service.createService(builder, name, calls, attributes, documentation, declarationFile); - } -} -/** - * File specific information. - * Symbols declared within a file may be recovered by iterating over all - * symbols and examining the `declaration_file` field. - */ -export class SchemaFile { - constructor() { - this.bb = null; - this.bb_pos = 0; - } - __init(i, bb) { - this.bb_pos = i; - this.bb = bb; - return this; - } - static getRootAsSchemaFile(bb, obj) { - return (obj || new SchemaFile()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - static getSizePrefixedRootAsSchemaFile(bb, obj) { - bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH); - return (obj || new SchemaFile()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - filename(optionalEncoding) { - const offset = this.bb.__offset(this.bb_pos, 4); - return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; - } - includedFilenames(index, optionalEncoding) { - const offset = this.bb.__offset(this.bb_pos, 6); - return offset ? this.bb.__string(this.bb.__vector(this.bb_pos + offset) + index * 4, optionalEncoding) : null; - } - includedFilenamesLength() { - const offset = this.bb.__offset(this.bb_pos, 6); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - static getFullyQualifiedName() { - return 'reflection.SchemaFile'; - } - static startSchemaFile(builder) { - builder.startObject(2); - } - static addFilename(builder, filenameOffset) { - builder.addFieldOffset(0, filenameOffset, 0); - } - static addIncludedFilenames(builder, includedFilenamesOffset) { - builder.addFieldOffset(1, includedFilenamesOffset, 0); - } - static createIncludedFilenamesVector(builder, data) { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]); - } - return builder.endVector(); - } - static startIncludedFilenamesVector(builder, numElems) { - builder.startVector(4, numElems, 4); - } - static endSchemaFile(builder) { - const offset = builder.endObject(); - builder.requiredField(offset, 4); // filename - return offset; - } - static createSchemaFile(builder, filenameOffset, includedFilenamesOffset) { - SchemaFile.startSchemaFile(builder); - SchemaFile.addFilename(builder, filenameOffset); - SchemaFile.addIncludedFilenames(builder, includedFilenamesOffset); - return SchemaFile.endSchemaFile(builder); - } - unpack() { - return new SchemaFileT(this.filename(), this.bb.createScalarList(this.includedFilenames.bind(this), this.includedFilenamesLength())); - } - unpackTo(_o) { - _o.filename = this.filename(); - _o.includedFilenames = this.bb.createScalarList(this.includedFilenames.bind(this), this.includedFilenamesLength()); - } -} -export class SchemaFileT { - constructor(filename = null, includedFilenames = []) { - this.filename = filename; - this.includedFilenames = includedFilenames; - } - pack(builder) { - const filename = (this.filename !== null ? builder.createString(this.filename) : 0); - const includedFilenames = SchemaFile.createIncludedFilenamesVector(builder, builder.createObjectOffsetList(this.includedFilenames)); - return SchemaFile.createSchemaFile(builder, filename, includedFilenames); - } -} -export class Schema { - constructor() { - this.bb = null; - this.bb_pos = 0; - } - __init(i, bb) { - this.bb_pos = i; - this.bb = bb; - return this; - } - static getRootAsSchema(bb, obj) { - return (obj || new Schema()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - static getSizePrefixedRootAsSchema(bb, obj) { - bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH); - return (obj || new Schema()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - static bufferHasIdentifier(bb) { - return bb.__has_identifier('BFBS'); - } - objects(index, obj) { - const offset = this.bb.__offset(this.bb_pos, 4); - return offset ? (obj || new Object_()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; - } - objectsLength() { - const offset = this.bb.__offset(this.bb_pos, 4); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - enums(index, obj) { - const offset = this.bb.__offset(this.bb_pos, 6); - return offset ? (obj || new Enum()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; - } - enumsLength() { - const offset = this.bb.__offset(this.bb_pos, 6); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - fileIdent(optionalEncoding) { - const offset = this.bb.__offset(this.bb_pos, 8); - return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; - } - fileExt(optionalEncoding) { - const offset = this.bb.__offset(this.bb_pos, 10); - return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; - } - rootTable(obj) { - const offset = this.bb.__offset(this.bb_pos, 12); - return offset ? (obj || new Object_()).__init(this.bb.__indirect(this.bb_pos + offset), this.bb) : null; - } - services(index, obj) { - const offset = this.bb.__offset(this.bb_pos, 14); - return offset ? (obj || new Service()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; - } - servicesLength() { - const offset = this.bb.__offset(this.bb_pos, 14); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - advancedFeatures() { - const offset = this.bb.__offset(this.bb_pos, 16); - return offset ? this.bb.readUint64(this.bb_pos + offset) : BigInt('0'); - } - mutate_advanced_features(value) { - const offset = this.bb.__offset(this.bb_pos, 16); - if (offset === 0) { - return false; - } - this.bb.writeUint64(this.bb_pos + offset, value); - return true; - } - /** - * All the files used in this compilation. Files are relative to where - * flatc was invoked. - */ - fbsFiles(index, obj) { - const offset = this.bb.__offset(this.bb_pos, 18); - return offset ? (obj || new SchemaFile()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; - } - fbsFilesLength() { - const offset = this.bb.__offset(this.bb_pos, 18); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - static getFullyQualifiedName() { - return 'reflection.Schema'; - } - static startSchema(builder) { - builder.startObject(8); - } - static addObjects(builder, objectsOffset) { - builder.addFieldOffset(0, objectsOffset, 0); - } - static createObjectsVector(builder, data) { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]); - } - return builder.endVector(); - } - static startObjectsVector(builder, numElems) { - builder.startVector(4, numElems, 4); - } - static addEnums(builder, enumsOffset) { - builder.addFieldOffset(1, enumsOffset, 0); - } - static createEnumsVector(builder, data) { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]); - } - return builder.endVector(); - } - static startEnumsVector(builder, numElems) { - builder.startVector(4, numElems, 4); - } - static addFileIdent(builder, fileIdentOffset) { - builder.addFieldOffset(2, fileIdentOffset, 0); - } - static addFileExt(builder, fileExtOffset) { - builder.addFieldOffset(3, fileExtOffset, 0); - } - static addRootTable(builder, rootTableOffset) { - builder.addFieldOffset(4, rootTableOffset, 0); - } - static addServices(builder, servicesOffset) { - builder.addFieldOffset(5, servicesOffset, 0); - } - static createServicesVector(builder, data) { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]); - } - return builder.endVector(); - } - static startServicesVector(builder, numElems) { - builder.startVector(4, numElems, 4); - } - static addAdvancedFeatures(builder, advancedFeatures) { - builder.addFieldInt64(6, advancedFeatures, BigInt('0')); - } - static addFbsFiles(builder, fbsFilesOffset) { - builder.addFieldOffset(7, fbsFilesOffset, 0); - } - static createFbsFilesVector(builder, data) { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]); - } - return builder.endVector(); - } - static startFbsFilesVector(builder, numElems) { - builder.startVector(4, numElems, 4); - } - static endSchema(builder) { - const offset = builder.endObject(); - builder.requiredField(offset, 4); // objects - builder.requiredField(offset, 6); // enums - return offset; - } - static finishSchemaBuffer(builder, offset) { - builder.finish(offset, 'BFBS'); - } - static finishSizePrefixedSchemaBuffer(builder, offset) { - builder.finish(offset, 'BFBS', true); - } - unpack() { - return new SchemaT(this.bb.createObjList(this.objects.bind(this), this.objectsLength()), this.bb.createObjList(this.enums.bind(this), this.enumsLength()), this.fileIdent(), this.fileExt(), (this.rootTable() !== null ? this.rootTable().unpack() : null), this.bb.createObjList(this.services.bind(this), this.servicesLength()), this.advancedFeatures(), this.bb.createObjList(this.fbsFiles.bind(this), this.fbsFilesLength())); - } - unpackTo(_o) { - _o.objects = this.bb.createObjList(this.objects.bind(this), this.objectsLength()); - _o.enums = this.bb.createObjList(this.enums.bind(this), this.enumsLength()); - _o.fileIdent = this.fileIdent(); - _o.fileExt = this.fileExt(); - _o.rootTable = (this.rootTable() !== null ? this.rootTable().unpack() : null); - _o.services = this.bb.createObjList(this.services.bind(this), this.servicesLength()); - _o.advancedFeatures = this.advancedFeatures(); - _o.fbsFiles = this.bb.createObjList(this.fbsFiles.bind(this), this.fbsFilesLength()); - } -} -export class SchemaT { - constructor(objects = [], enums = [], fileIdent = null, fileExt = null, rootTable = null, services = [], advancedFeatures = BigInt('0'), fbsFiles = []) { - this.objects = objects; - this.enums = enums; - this.fileIdent = fileIdent; - this.fileExt = fileExt; - this.rootTable = rootTable; - this.services = services; - this.advancedFeatures = advancedFeatures; - this.fbsFiles = fbsFiles; - } - pack(builder) { - const objects = Schema.createObjectsVector(builder, builder.createObjectOffsetList(this.objects)); - const enums = Schema.createEnumsVector(builder, builder.createObjectOffsetList(this.enums)); - const fileIdent = (this.fileIdent !== null ? builder.createString(this.fileIdent) : 0); - const fileExt = (this.fileExt !== null ? builder.createString(this.fileExt) : 0); - const rootTable = (this.rootTable !== null ? this.rootTable.pack(builder) : 0); - const services = Schema.createServicesVector(builder, builder.createObjectOffsetList(this.services)); - const fbsFiles = Schema.createFbsFilesVector(builder, builder.createObjectOffsetList(this.fbsFiles)); - Schema.startSchema(builder); - Schema.addObjects(builder, objects); - Schema.addEnums(builder, enums); - Schema.addFileIdent(builder, fileIdent); - Schema.addFileExt(builder, fileExt); - Schema.addRootTable(builder, rootTable); - Schema.addServices(builder, services); - Schema.addAdvancedFeatures(builder, this.advancedFeatures); - Schema.addFbsFiles(builder, fbsFiles); - return Schema.endSchema(builder); - } -} diff --git a/tests/ts/reflection_generated.ts b/tests/ts/reflection_generated.ts deleted file mode 100644 index 63d6228790..0000000000 --- a/tests/ts/reflection_generated.ts +++ /dev/null @@ -1,2131 +0,0 @@ -// automatically generated by the FlatBuffers compiler, do not modify - -import * as flatbuffers from 'flatbuffers'; - - -export enum BaseType { - None = 0, - UType = 1, - Bool = 2, - Byte = 3, - UByte = 4, - Short = 5, - UShort = 6, - Int = 7, - UInt = 8, - Long = 9, - ULong = 10, - Float = 11, - Double = 12, - String = 13, - Vector = 14, - Obj = 15, - Union = 16, - Array = 17, - MaxBaseType = 18 -} - -/** - * New schema language features that are not supported by old code generators. - */ -export enum AdvancedFeatures { - AdvancedArrayFeatures = '1', - AdvancedUnionFeatures = '2', - OptionalScalars = '4', - DefaultVectorsAndStrings = '8' -} - -export class Type implements flatbuffers.IUnpackableObject { - bb: flatbuffers.ByteBuffer|null = null; - bb_pos = 0; - __init(i:number, bb:flatbuffers.ByteBuffer):Type { - this.bb_pos = i; - this.bb = bb; - return this; -} - -static getRootAsType(bb:flatbuffers.ByteBuffer, obj?:Type):Type { - return (obj || new Type()).__init(bb.readInt32(bb.position()) + bb.position(), bb); -} - -static getSizePrefixedRootAsType(bb:flatbuffers.ByteBuffer, obj?:Type):Type { - bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH); - return (obj || new Type()).__init(bb.readInt32(bb.position()) + bb.position(), bb); -} - -baseType():BaseType { - const offset = this.bb!.__offset(this.bb_pos, 4); - return offset ? this.bb!.readInt8(this.bb_pos + offset) : BaseType.None; -} - -mutate_base_type(value:BaseType):boolean { - const offset = this.bb!.__offset(this.bb_pos, 4); - - if (offset === 0) { - return false; - } - - this.bb!.writeInt8(this.bb_pos + offset, value); - return true; -} - -element():BaseType { - const offset = this.bb!.__offset(this.bb_pos, 6); - return offset ? this.bb!.readInt8(this.bb_pos + offset) : BaseType.None; -} - -mutate_element(value:BaseType):boolean { - const offset = this.bb!.__offset(this.bb_pos, 6); - - if (offset === 0) { - return false; - } - - this.bb!.writeInt8(this.bb_pos + offset, value); - return true; -} - -index():number { - const offset = this.bb!.__offset(this.bb_pos, 8); - return offset ? this.bb!.readInt32(this.bb_pos + offset) : -1; -} - -mutate_index(value:number):boolean { - const offset = this.bb!.__offset(this.bb_pos, 8); - - if (offset === 0) { - return false; - } - - this.bb!.writeInt32(this.bb_pos + offset, value); - return true; -} - -fixedLength():number { - const offset = this.bb!.__offset(this.bb_pos, 10); - return offset ? this.bb!.readUint16(this.bb_pos + offset) : 0; -} - -mutate_fixed_length(value:number):boolean { - const offset = this.bb!.__offset(this.bb_pos, 10); - - if (offset === 0) { - return false; - } - - this.bb!.writeUint16(this.bb_pos + offset, value); - return true; -} - -/** - * The size (octets) of the `base_type` field. - */ -baseSize():number { - const offset = this.bb!.__offset(this.bb_pos, 12); - return offset ? this.bb!.readUint32(this.bb_pos + offset) : 4; -} - -mutate_base_size(value:number):boolean { - const offset = this.bb!.__offset(this.bb_pos, 12); - - if (offset === 0) { - return false; - } - - this.bb!.writeUint32(this.bb_pos + offset, value); - return true; -} - -/** - * The size (octets) of the `element` field, if present. - */ -elementSize():number { - const offset = this.bb!.__offset(this.bb_pos, 14); - return offset ? this.bb!.readUint32(this.bb_pos + offset) : 0; -} - -mutate_element_size(value:number):boolean { - const offset = this.bb!.__offset(this.bb_pos, 14); - - if (offset === 0) { - return false; - } - - this.bb!.writeUint32(this.bb_pos + offset, value); - return true; -} - -static getFullyQualifiedName():string { - return 'reflection.Type'; -} - -static startType(builder:flatbuffers.Builder) { - builder.startObject(6); -} - -static addBaseType(builder:flatbuffers.Builder, baseType:BaseType) { - builder.addFieldInt8(0, baseType, BaseType.None); -} - -static addElement(builder:flatbuffers.Builder, element:BaseType) { - builder.addFieldInt8(1, element, BaseType.None); -} - -static addIndex(builder:flatbuffers.Builder, index:number) { - builder.addFieldInt32(2, index, -1); -} - -static addFixedLength(builder:flatbuffers.Builder, fixedLength:number) { - builder.addFieldInt16(3, fixedLength, 0); -} - -static addBaseSize(builder:flatbuffers.Builder, baseSize:number) { - builder.addFieldInt32(4, baseSize, 4); -} - -static addElementSize(builder:flatbuffers.Builder, elementSize:number) { - builder.addFieldInt32(5, elementSize, 0); -} - -static endType(builder:flatbuffers.Builder):flatbuffers.Offset { - const offset = builder.endObject(); - return offset; -} - -static createType(builder:flatbuffers.Builder, baseType:BaseType, element:BaseType, index:number, fixedLength:number, baseSize:number, elementSize:number):flatbuffers.Offset { - Type.startType(builder); - Type.addBaseType(builder, baseType); - Type.addElement(builder, element); - Type.addIndex(builder, index); - Type.addFixedLength(builder, fixedLength); - Type.addBaseSize(builder, baseSize); - Type.addElementSize(builder, elementSize); - return Type.endType(builder); -} - -unpack(): TypeT { - return new TypeT( - this.baseType(), - this.element(), - this.index(), - this.fixedLength(), - this.baseSize(), - this.elementSize() - ); -} - - -unpackTo(_o: TypeT): void { - _o.baseType = this.baseType(); - _o.element = this.element(); - _o.index = this.index(); - _o.fixedLength = this.fixedLength(); - _o.baseSize = this.baseSize(); - _o.elementSize = this.elementSize(); -} -} - -export class TypeT implements flatbuffers.IGeneratedObject { -constructor( - public baseType: BaseType = BaseType.None, - public element: BaseType = BaseType.None, - public index: number = -1, - public fixedLength: number = 0, - public baseSize: number = 4, - public elementSize: number = 0 -){} - - -pack(builder:flatbuffers.Builder): flatbuffers.Offset { - return Type.createType(builder, - this.baseType, - this.element, - this.index, - this.fixedLength, - this.baseSize, - this.elementSize - ); -} -} - -export class KeyValue implements flatbuffers.IUnpackableObject { - bb: flatbuffers.ByteBuffer|null = null; - bb_pos = 0; - __init(i:number, bb:flatbuffers.ByteBuffer):KeyValue { - this.bb_pos = i; - this.bb = bb; - return this; -} - -static getRootAsKeyValue(bb:flatbuffers.ByteBuffer, obj?:KeyValue):KeyValue { - return (obj || new KeyValue()).__init(bb.readInt32(bb.position()) + bb.position(), bb); -} - -static getSizePrefixedRootAsKeyValue(bb:flatbuffers.ByteBuffer, obj?:KeyValue):KeyValue { - bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH); - return (obj || new KeyValue()).__init(bb.readInt32(bb.position()) + bb.position(), bb); -} - -key():string|null -key(optionalEncoding:flatbuffers.Encoding):string|Uint8Array|null -key(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; -} - -value():string|null -value(optionalEncoding:flatbuffers.Encoding):string|Uint8Array|null -value(optionalEncoding?:any):string|Uint8Array|null { - const offset = this.bb!.__offset(this.bb_pos, 6); - return offset ? this.bb!.__string(this.bb_pos + offset, optionalEncoding) : null; -} - -static getFullyQualifiedName():string { - return 'reflection.KeyValue'; -} - -static startKeyValue(builder:flatbuffers.Builder) { - builder.startObject(2); -} - -static addKey(builder:flatbuffers.Builder, keyOffset:flatbuffers.Offset) { - builder.addFieldOffset(0, keyOffset, 0); -} - -static addValue(builder:flatbuffers.Builder, valueOffset:flatbuffers.Offset) { - builder.addFieldOffset(1, valueOffset, 0); -} - -static endKeyValue(builder:flatbuffers.Builder):flatbuffers.Offset { - const offset = builder.endObject(); - builder.requiredField(offset, 4) // key - return offset; -} - -static createKeyValue(builder:flatbuffers.Builder, keyOffset:flatbuffers.Offset, valueOffset:flatbuffers.Offset):flatbuffers.Offset { - KeyValue.startKeyValue(builder); - KeyValue.addKey(builder, keyOffset); - KeyValue.addValue(builder, valueOffset); - return KeyValue.endKeyValue(builder); -} - -unpack(): KeyValueT { - return new KeyValueT( - this.key(), - this.value() - ); -} - - -unpackTo(_o: KeyValueT): void { - _o.key = this.key(); - _o.value = this.value(); -} -} - -export class KeyValueT implements flatbuffers.IGeneratedObject { -constructor( - public key: string|Uint8Array|null = null, - public value: string|Uint8Array|null = null -){} - - -pack(builder:flatbuffers.Builder): flatbuffers.Offset { - const key = (this.key !== null ? builder.createString(this.key!) : 0); - const value = (this.value !== null ? builder.createString(this.value!) : 0); - - return KeyValue.createKeyValue(builder, - key, - value - ); -} -} - -export class EnumVal implements flatbuffers.IUnpackableObject { - bb: flatbuffers.ByteBuffer|null = null; - bb_pos = 0; - __init(i:number, bb:flatbuffers.ByteBuffer):EnumVal { - this.bb_pos = i; - this.bb = bb; - return this; -} - -static getRootAsEnumVal(bb:flatbuffers.ByteBuffer, obj?:EnumVal):EnumVal { - return (obj || new EnumVal()).__init(bb.readInt32(bb.position()) + bb.position(), bb); -} - -static getSizePrefixedRootAsEnumVal(bb:flatbuffers.ByteBuffer, obj?:EnumVal):EnumVal { - bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH); - return (obj || new EnumVal()).__init(bb.readInt32(bb.position()) + bb.position(), bb); -} - -name():string|null -name(optionalEncoding:flatbuffers.Encoding):string|Uint8Array|null -name(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; -} - -value():bigint { - const offset = this.bb!.__offset(this.bb_pos, 6); - return offset ? this.bb!.readInt64(this.bb_pos + offset) : BigInt('0'); -} - -mutate_value(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; -} - -unionType(obj?:Type):Type|null { - const offset = this.bb!.__offset(this.bb_pos, 10); - return offset ? (obj || new Type()).__init(this.bb!.__indirect(this.bb_pos + offset), this.bb!) : null; -} - -documentation(index: number):string -documentation(index: number,optionalEncoding:flatbuffers.Encoding):string|Uint8Array -documentation(index: number,optionalEncoding?:any):string|Uint8Array|null { - const offset = this.bb!.__offset(this.bb_pos, 12); - return offset ? this.bb!.__string(this.bb!.__vector(this.bb_pos + offset) + index * 4, optionalEncoding) : null; -} - -documentationLength():number { - const offset = this.bb!.__offset(this.bb_pos, 12); - return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0; -} - -attributes(index: number, obj?:KeyValue):KeyValue|null { - const offset = this.bb!.__offset(this.bb_pos, 14); - return offset ? (obj || new KeyValue()).__init(this.bb!.__indirect(this.bb!.__vector(this.bb_pos + offset) + index * 4), this.bb!) : null; -} - -attributesLength():number { - const offset = this.bb!.__offset(this.bb_pos, 14); - return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0; -} - -static getFullyQualifiedName():string { - return 'reflection.EnumVal'; -} - -static startEnumVal(builder:flatbuffers.Builder) { - builder.startObject(6); -} - -static addName(builder:flatbuffers.Builder, nameOffset:flatbuffers.Offset) { - builder.addFieldOffset(0, nameOffset, 0); -} - -static addValue(builder:flatbuffers.Builder, value:bigint) { - builder.addFieldInt64(1, value, BigInt('0')); -} - -static addUnionType(builder:flatbuffers.Builder, unionTypeOffset:flatbuffers.Offset) { - builder.addFieldOffset(3, unionTypeOffset, 0); -} - -static addDocumentation(builder:flatbuffers.Builder, documentationOffset:flatbuffers.Offset) { - builder.addFieldOffset(4, documentationOffset, 0); -} - -static createDocumentationVector(builder:flatbuffers.Builder, data:flatbuffers.Offset[]):flatbuffers.Offset { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]!); - } - return builder.endVector(); -} - -static startDocumentationVector(builder:flatbuffers.Builder, numElems:number) { - builder.startVector(4, numElems, 4); -} - -static addAttributes(builder:flatbuffers.Builder, attributesOffset:flatbuffers.Offset) { - builder.addFieldOffset(5, attributesOffset, 0); -} - -static createAttributesVector(builder:flatbuffers.Builder, data:flatbuffers.Offset[]):flatbuffers.Offset { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]!); - } - return builder.endVector(); -} - -static startAttributesVector(builder:flatbuffers.Builder, numElems:number) { - builder.startVector(4, numElems, 4); -} - -static endEnumVal(builder:flatbuffers.Builder):flatbuffers.Offset { - const offset = builder.endObject(); - builder.requiredField(offset, 4) // name - return offset; -} - - -unpack(): EnumValT { - return new EnumValT( - this.name(), - this.value(), - (this.unionType() !== null ? this.unionType()!.unpack() : null), - this.bb!.createScalarList(this.documentation.bind(this), this.documentationLength()), - this.bb!.createObjList(this.attributes.bind(this), this.attributesLength()) - ); -} - - -unpackTo(_o: EnumValT): void { - _o.name = this.name(); - _o.value = this.value(); - _o.unionType = (this.unionType() !== null ? this.unionType()!.unpack() : null); - _o.documentation = this.bb!.createScalarList(this.documentation.bind(this), this.documentationLength()); - _o.attributes = this.bb!.createObjList(this.attributes.bind(this), this.attributesLength()); -} -} - -export class EnumValT implements flatbuffers.IGeneratedObject { -constructor( - public name: string|Uint8Array|null = null, - public value: bigint = BigInt('0'), - public unionType: TypeT|null = null, - public documentation: (string)[] = [], - public attributes: (KeyValueT)[] = [] -){} - - -pack(builder:flatbuffers.Builder): flatbuffers.Offset { - const name = (this.name !== null ? builder.createString(this.name!) : 0); - const unionType = (this.unionType !== null ? this.unionType!.pack(builder) : 0); - const documentation = EnumVal.createDocumentationVector(builder, builder.createObjectOffsetList(this.documentation)); - const attributes = EnumVal.createAttributesVector(builder, builder.createObjectOffsetList(this.attributes)); - - EnumVal.startEnumVal(builder); - EnumVal.addName(builder, name); - EnumVal.addValue(builder, this.value); - EnumVal.addUnionType(builder, unionType); - EnumVal.addDocumentation(builder, documentation); - EnumVal.addAttributes(builder, attributes); - - return EnumVal.endEnumVal(builder); -} -} - -export class Enum implements flatbuffers.IUnpackableObject { - bb: flatbuffers.ByteBuffer|null = null; - bb_pos = 0; - __init(i:number, bb:flatbuffers.ByteBuffer):Enum { - this.bb_pos = i; - this.bb = bb; - return this; -} - -static getRootAsEnum(bb:flatbuffers.ByteBuffer, obj?:Enum):Enum { - return (obj || new Enum()).__init(bb.readInt32(bb.position()) + bb.position(), bb); -} - -static getSizePrefixedRootAsEnum(bb:flatbuffers.ByteBuffer, obj?:Enum):Enum { - bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH); - return (obj || new Enum()).__init(bb.readInt32(bb.position()) + bb.position(), bb); -} - -name():string|null -name(optionalEncoding:flatbuffers.Encoding):string|Uint8Array|null -name(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; -} - -values(index: number, obj?:EnumVal):EnumVal|null { - const offset = this.bb!.__offset(this.bb_pos, 6); - return offset ? (obj || new EnumVal()).__init(this.bb!.__indirect(this.bb!.__vector(this.bb_pos + offset) + index * 4), this.bb!) : null; -} - -valuesLength():number { - const offset = this.bb!.__offset(this.bb_pos, 6); - return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0; -} - -isUnion():boolean { - const offset = this.bb!.__offset(this.bb_pos, 8); - return offset ? !!this.bb!.readInt8(this.bb_pos + offset) : false; -} - -mutate_is_union(value:boolean):boolean { - const offset = this.bb!.__offset(this.bb_pos, 8); - - if (offset === 0) { - return false; - } - - this.bb!.writeInt8(this.bb_pos + offset, +value); - return true; -} - -underlyingType(obj?:Type):Type|null { - const offset = this.bb!.__offset(this.bb_pos, 10); - return offset ? (obj || new Type()).__init(this.bb!.__indirect(this.bb_pos + offset), this.bb!) : null; -} - -attributes(index: number, obj?:KeyValue):KeyValue|null { - const offset = this.bb!.__offset(this.bb_pos, 12); - return offset ? (obj || new KeyValue()).__init(this.bb!.__indirect(this.bb!.__vector(this.bb_pos + offset) + index * 4), this.bb!) : null; -} - -attributesLength():number { - const offset = this.bb!.__offset(this.bb_pos, 12); - return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0; -} - -documentation(index: number):string -documentation(index: number,optionalEncoding:flatbuffers.Encoding):string|Uint8Array -documentation(index: number,optionalEncoding?:any):string|Uint8Array|null { - const offset = this.bb!.__offset(this.bb_pos, 14); - return offset ? this.bb!.__string(this.bb!.__vector(this.bb_pos + offset) + index * 4, optionalEncoding) : null; -} - -documentationLength():number { - const offset = this.bb!.__offset(this.bb_pos, 14); - return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0; -} - -/** - * File that this Enum is declared in. - */ -declarationFile():string|null -declarationFile(optionalEncoding:flatbuffers.Encoding):string|Uint8Array|null -declarationFile(optionalEncoding?:any):string|Uint8Array|null { - const offset = this.bb!.__offset(this.bb_pos, 16); - return offset ? this.bb!.__string(this.bb_pos + offset, optionalEncoding) : null; -} - -static getFullyQualifiedName():string { - return 'reflection.Enum'; -} - -static startEnum(builder:flatbuffers.Builder) { - builder.startObject(7); -} - -static addName(builder:flatbuffers.Builder, nameOffset:flatbuffers.Offset) { - builder.addFieldOffset(0, nameOffset, 0); -} - -static addValues(builder:flatbuffers.Builder, valuesOffset:flatbuffers.Offset) { - builder.addFieldOffset(1, valuesOffset, 0); -} - -static createValuesVector(builder:flatbuffers.Builder, data:flatbuffers.Offset[]):flatbuffers.Offset { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]!); - } - return builder.endVector(); -} - -static startValuesVector(builder:flatbuffers.Builder, numElems:number) { - builder.startVector(4, numElems, 4); -} - -static addIsUnion(builder:flatbuffers.Builder, isUnion:boolean) { - builder.addFieldInt8(2, +isUnion, +false); -} - -static addUnderlyingType(builder:flatbuffers.Builder, underlyingTypeOffset:flatbuffers.Offset) { - builder.addFieldOffset(3, underlyingTypeOffset, 0); -} - -static addAttributes(builder:flatbuffers.Builder, attributesOffset:flatbuffers.Offset) { - builder.addFieldOffset(4, attributesOffset, 0); -} - -static createAttributesVector(builder:flatbuffers.Builder, data:flatbuffers.Offset[]):flatbuffers.Offset { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]!); - } - return builder.endVector(); -} - -static startAttributesVector(builder:flatbuffers.Builder, numElems:number) { - builder.startVector(4, numElems, 4); -} - -static addDocumentation(builder:flatbuffers.Builder, documentationOffset:flatbuffers.Offset) { - builder.addFieldOffset(5, documentationOffset, 0); -} - -static createDocumentationVector(builder:flatbuffers.Builder, data:flatbuffers.Offset[]):flatbuffers.Offset { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]!); - } - return builder.endVector(); -} - -static startDocumentationVector(builder:flatbuffers.Builder, numElems:number) { - builder.startVector(4, numElems, 4); -} - -static addDeclarationFile(builder:flatbuffers.Builder, declarationFileOffset:flatbuffers.Offset) { - builder.addFieldOffset(6, declarationFileOffset, 0); -} - -static endEnum(builder:flatbuffers.Builder):flatbuffers.Offset { - const offset = builder.endObject(); - builder.requiredField(offset, 4) // name - builder.requiredField(offset, 6) // values - builder.requiredField(offset, 10) // underlying_type - return offset; -} - - -unpack(): EnumT { - return new EnumT( - this.name(), - this.bb!.createObjList(this.values.bind(this), this.valuesLength()), - this.isUnion(), - (this.underlyingType() !== null ? this.underlyingType()!.unpack() : null), - this.bb!.createObjList(this.attributes.bind(this), this.attributesLength()), - this.bb!.createScalarList(this.documentation.bind(this), this.documentationLength()), - this.declarationFile() - ); -} - - -unpackTo(_o: EnumT): void { - _o.name = this.name(); - _o.values = this.bb!.createObjList(this.values.bind(this), this.valuesLength()); - _o.isUnion = this.isUnion(); - _o.underlyingType = (this.underlyingType() !== null ? this.underlyingType()!.unpack() : null); - _o.attributes = this.bb!.createObjList(this.attributes.bind(this), this.attributesLength()); - _o.documentation = this.bb!.createScalarList(this.documentation.bind(this), this.documentationLength()); - _o.declarationFile = this.declarationFile(); -} -} - -export class EnumT implements flatbuffers.IGeneratedObject { -constructor( - public name: string|Uint8Array|null = null, - public values: (EnumValT)[] = [], - public isUnion: boolean = false, - public underlyingType: TypeT|null = null, - public attributes: (KeyValueT)[] = [], - public documentation: (string)[] = [], - public declarationFile: string|Uint8Array|null = null -){} - - -pack(builder:flatbuffers.Builder): flatbuffers.Offset { - const name = (this.name !== null ? builder.createString(this.name!) : 0); - const values = Enum.createValuesVector(builder, builder.createObjectOffsetList(this.values)); - const underlyingType = (this.underlyingType !== null ? this.underlyingType!.pack(builder) : 0); - const attributes = Enum.createAttributesVector(builder, builder.createObjectOffsetList(this.attributes)); - const documentation = Enum.createDocumentationVector(builder, builder.createObjectOffsetList(this.documentation)); - const declarationFile = (this.declarationFile !== null ? builder.createString(this.declarationFile!) : 0); - - Enum.startEnum(builder); - Enum.addName(builder, name); - Enum.addValues(builder, values); - Enum.addIsUnion(builder, this.isUnion); - Enum.addUnderlyingType(builder, underlyingType); - Enum.addAttributes(builder, attributes); - Enum.addDocumentation(builder, documentation); - Enum.addDeclarationFile(builder, declarationFile); - - return Enum.endEnum(builder); -} -} - -export class Field implements flatbuffers.IUnpackableObject { - bb: flatbuffers.ByteBuffer|null = null; - bb_pos = 0; - __init(i:number, bb:flatbuffers.ByteBuffer):Field { - this.bb_pos = i; - this.bb = bb; - return this; -} - -static getRootAsField(bb:flatbuffers.ByteBuffer, obj?:Field):Field { - return (obj || new Field()).__init(bb.readInt32(bb.position()) + bb.position(), bb); -} - -static getSizePrefixedRootAsField(bb:flatbuffers.ByteBuffer, obj?:Field):Field { - bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH); - return (obj || new Field()).__init(bb.readInt32(bb.position()) + bb.position(), bb); -} - -name():string|null -name(optionalEncoding:flatbuffers.Encoding):string|Uint8Array|null -name(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; -} - -type(obj?:Type):Type|null { - const offset = this.bb!.__offset(this.bb_pos, 6); - return offset ? (obj || new Type()).__init(this.bb!.__indirect(this.bb_pos + offset), this.bb!) : null; -} - -id():number { - const offset = this.bb!.__offset(this.bb_pos, 8); - return offset ? this.bb!.readUint16(this.bb_pos + offset) : 0; -} - -mutate_id(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; -} - -offset():number { - const offset = this.bb!.__offset(this.bb_pos, 10); - return offset ? this.bb!.readUint16(this.bb_pos + offset) : 0; -} - -mutate_offset(value:number):boolean { - const offset = this.bb!.__offset(this.bb_pos, 10); - - if (offset === 0) { - return false; - } - - this.bb!.writeUint16(this.bb_pos + offset, value); - return true; -} - -defaultInteger():bigint { - const offset = this.bb!.__offset(this.bb_pos, 12); - return offset ? this.bb!.readInt64(this.bb_pos + offset) : BigInt('0'); -} - -mutate_default_integer(value:bigint):boolean { - const offset = this.bb!.__offset(this.bb_pos, 12); - - if (offset === 0) { - return false; - } - - this.bb!.writeInt64(this.bb_pos + offset, value); - return true; -} - -defaultReal():number { - const offset = this.bb!.__offset(this.bb_pos, 14); - return offset ? this.bb!.readFloat64(this.bb_pos + offset) : 0.0; -} - -mutate_default_real(value:number):boolean { - const offset = this.bb!.__offset(this.bb_pos, 14); - - if (offset === 0) { - return false; - } - - this.bb!.writeFloat64(this.bb_pos + offset, value); - return true; -} - -deprecated():boolean { - const offset = this.bb!.__offset(this.bb_pos, 16); - return offset ? !!this.bb!.readInt8(this.bb_pos + offset) : false; -} - -mutate_deprecated(value:boolean):boolean { - const offset = this.bb!.__offset(this.bb_pos, 16); - - if (offset === 0) { - return false; - } - - this.bb!.writeInt8(this.bb_pos + offset, +value); - return true; -} - -required():boolean { - const offset = this.bb!.__offset(this.bb_pos, 18); - return offset ? !!this.bb!.readInt8(this.bb_pos + offset) : false; -} - -mutate_required(value:boolean):boolean { - const offset = this.bb!.__offset(this.bb_pos, 18); - - if (offset === 0) { - return false; - } - - this.bb!.writeInt8(this.bb_pos + offset, +value); - return true; -} - -key():boolean { - const offset = this.bb!.__offset(this.bb_pos, 20); - return offset ? !!this.bb!.readInt8(this.bb_pos + offset) : false; -} - -mutate_key(value:boolean):boolean { - const offset = this.bb!.__offset(this.bb_pos, 20); - - if (offset === 0) { - return false; - } - - this.bb!.writeInt8(this.bb_pos + offset, +value); - return true; -} - -attributes(index: number, obj?:KeyValue):KeyValue|null { - const offset = this.bb!.__offset(this.bb_pos, 22); - return offset ? (obj || new KeyValue()).__init(this.bb!.__indirect(this.bb!.__vector(this.bb_pos + offset) + index * 4), this.bb!) : null; -} - -attributesLength():number { - const offset = this.bb!.__offset(this.bb_pos, 22); - return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0; -} - -documentation(index: number):string -documentation(index: number,optionalEncoding:flatbuffers.Encoding):string|Uint8Array -documentation(index: number,optionalEncoding?:any):string|Uint8Array|null { - const offset = this.bb!.__offset(this.bb_pos, 24); - return offset ? this.bb!.__string(this.bb!.__vector(this.bb_pos + offset) + index * 4, optionalEncoding) : null; -} - -documentationLength():number { - const offset = this.bb!.__offset(this.bb_pos, 24); - return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0; -} - -optional():boolean { - const offset = this.bb!.__offset(this.bb_pos, 26); - return offset ? !!this.bb!.readInt8(this.bb_pos + offset) : false; -} - -mutate_optional(value:boolean):boolean { - const offset = this.bb!.__offset(this.bb_pos, 26); - - if (offset === 0) { - return false; - } - - this.bb!.writeInt8(this.bb_pos + offset, +value); - return true; -} - -/** - * Number of padding octets to always add after this field. Structs only. - */ -padding():number { - const offset = this.bb!.__offset(this.bb_pos, 28); - return offset ? this.bb!.readUint16(this.bb_pos + offset) : 0; -} - -mutate_padding(value:number):boolean { - const offset = this.bb!.__offset(this.bb_pos, 28); - - if (offset === 0) { - return false; - } - - this.bb!.writeUint16(this.bb_pos + offset, value); - return true; -} - -static getFullyQualifiedName():string { - return 'reflection.Field'; -} - -static startField(builder:flatbuffers.Builder) { - builder.startObject(13); -} - -static addName(builder:flatbuffers.Builder, nameOffset:flatbuffers.Offset) { - builder.addFieldOffset(0, nameOffset, 0); -} - -static addType(builder:flatbuffers.Builder, typeOffset:flatbuffers.Offset) { - builder.addFieldOffset(1, typeOffset, 0); -} - -static addId(builder:flatbuffers.Builder, id:number) { - builder.addFieldInt16(2, id, 0); -} - -static addOffset(builder:flatbuffers.Builder, offset:number) { - builder.addFieldInt16(3, offset, 0); -} - -static addDefaultInteger(builder:flatbuffers.Builder, defaultInteger:bigint) { - builder.addFieldInt64(4, defaultInteger, BigInt('0')); -} - -static addDefaultReal(builder:flatbuffers.Builder, defaultReal:number) { - builder.addFieldFloat64(5, defaultReal, 0.0); -} - -static addDeprecated(builder:flatbuffers.Builder, deprecated:boolean) { - builder.addFieldInt8(6, +deprecated, +false); -} - -static addRequired(builder:flatbuffers.Builder, required:boolean) { - builder.addFieldInt8(7, +required, +false); -} - -static addKey(builder:flatbuffers.Builder, key:boolean) { - builder.addFieldInt8(8, +key, +false); -} - -static addAttributes(builder:flatbuffers.Builder, attributesOffset:flatbuffers.Offset) { - builder.addFieldOffset(9, attributesOffset, 0); -} - -static createAttributesVector(builder:flatbuffers.Builder, data:flatbuffers.Offset[]):flatbuffers.Offset { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]!); - } - return builder.endVector(); -} - -static startAttributesVector(builder:flatbuffers.Builder, numElems:number) { - builder.startVector(4, numElems, 4); -} - -static addDocumentation(builder:flatbuffers.Builder, documentationOffset:flatbuffers.Offset) { - builder.addFieldOffset(10, documentationOffset, 0); -} - -static createDocumentationVector(builder:flatbuffers.Builder, data:flatbuffers.Offset[]):flatbuffers.Offset { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]!); - } - return builder.endVector(); -} - -static startDocumentationVector(builder:flatbuffers.Builder, numElems:number) { - builder.startVector(4, numElems, 4); -} - -static addOptional(builder:flatbuffers.Builder, optional:boolean) { - builder.addFieldInt8(11, +optional, +false); -} - -static addPadding(builder:flatbuffers.Builder, padding:number) { - builder.addFieldInt16(12, padding, 0); -} - -static endField(builder:flatbuffers.Builder):flatbuffers.Offset { - const offset = builder.endObject(); - builder.requiredField(offset, 4) // name - builder.requiredField(offset, 6) // type - return offset; -} - - -unpack(): FieldT { - return new FieldT( - this.name(), - (this.type() !== null ? this.type()!.unpack() : null), - this.id(), - this.offset(), - this.defaultInteger(), - this.defaultReal(), - this.deprecated(), - this.required(), - this.key(), - this.bb!.createObjList(this.attributes.bind(this), this.attributesLength()), - this.bb!.createScalarList(this.documentation.bind(this), this.documentationLength()), - this.optional(), - this.padding() - ); -} - - -unpackTo(_o: FieldT): void { - _o.name = this.name(); - _o.type = (this.type() !== null ? this.type()!.unpack() : null); - _o.id = this.id(); - _o.offset = this.offset(); - _o.defaultInteger = this.defaultInteger(); - _o.defaultReal = this.defaultReal(); - _o.deprecated = this.deprecated(); - _o.required = this.required(); - _o.key = this.key(); - _o.attributes = this.bb!.createObjList(this.attributes.bind(this), this.attributesLength()); - _o.documentation = this.bb!.createScalarList(this.documentation.bind(this), this.documentationLength()); - _o.optional = this.optional(); - _o.padding = this.padding(); -} -} - -export class FieldT implements flatbuffers.IGeneratedObject { -constructor( - public name: string|Uint8Array|null = null, - public type: TypeT|null = null, - public id: number = 0, - public offset: number = 0, - public defaultInteger: bigint = BigInt('0'), - public defaultReal: number = 0.0, - public deprecated: boolean = false, - public required: boolean = false, - public key: boolean = false, - public attributes: (KeyValueT)[] = [], - public documentation: (string)[] = [], - public optional: boolean = false, - public padding: number = 0 -){} - - -pack(builder:flatbuffers.Builder): flatbuffers.Offset { - const name = (this.name !== null ? builder.createString(this.name!) : 0); - const type = (this.type !== null ? this.type!.pack(builder) : 0); - const attributes = Field.createAttributesVector(builder, builder.createObjectOffsetList(this.attributes)); - const documentation = Field.createDocumentationVector(builder, builder.createObjectOffsetList(this.documentation)); - - Field.startField(builder); - Field.addName(builder, name); - Field.addType(builder, type); - Field.addId(builder, this.id); - Field.addOffset(builder, this.offset); - Field.addDefaultInteger(builder, this.defaultInteger); - Field.addDefaultReal(builder, this.defaultReal); - Field.addDeprecated(builder, this.deprecated); - Field.addRequired(builder, this.required); - Field.addKey(builder, this.key); - Field.addAttributes(builder, attributes); - Field.addDocumentation(builder, documentation); - Field.addOptional(builder, this.optional); - Field.addPadding(builder, this.padding); - - return Field.endField(builder); -} -} - -export class Object_ implements flatbuffers.IUnpackableObject { - bb: flatbuffers.ByteBuffer|null = null; - bb_pos = 0; - __init(i:number, bb:flatbuffers.ByteBuffer):Object_ { - this.bb_pos = i; - this.bb = bb; - return this; -} - -static getRootAsObject(bb:flatbuffers.ByteBuffer, obj?:Object_):Object_ { - return (obj || new Object_()).__init(bb.readInt32(bb.position()) + bb.position(), bb); -} - -static getSizePrefixedRootAsObject(bb:flatbuffers.ByteBuffer, obj?:Object_):Object_ { - bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH); - return (obj || new Object_()).__init(bb.readInt32(bb.position()) + bb.position(), bb); -} - -name():string|null -name(optionalEncoding:flatbuffers.Encoding):string|Uint8Array|null -name(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; -} - -fields(index: number, obj?:Field):Field|null { - const offset = this.bb!.__offset(this.bb_pos, 6); - return offset ? (obj || new Field()).__init(this.bb!.__indirect(this.bb!.__vector(this.bb_pos + offset) + index * 4), this.bb!) : null; -} - -fieldsLength():number { - const offset = this.bb!.__offset(this.bb_pos, 6); - return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0; -} - -isStruct():boolean { - const offset = this.bb!.__offset(this.bb_pos, 8); - return offset ? !!this.bb!.readInt8(this.bb_pos + offset) : false; -} - -mutate_is_struct(value:boolean):boolean { - const offset = this.bb!.__offset(this.bb_pos, 8); - - if (offset === 0) { - return false; - } - - this.bb!.writeInt8(this.bb_pos + offset, +value); - return true; -} - -minalign():number { - const offset = this.bb!.__offset(this.bb_pos, 10); - return offset ? this.bb!.readInt32(this.bb_pos + offset) : 0; -} - -mutate_minalign(value:number):boolean { - const offset = this.bb!.__offset(this.bb_pos, 10); - - if (offset === 0) { - return false; - } - - this.bb!.writeInt32(this.bb_pos + offset, value); - return true; -} - -bytesize():number { - const offset = this.bb!.__offset(this.bb_pos, 12); - return offset ? this.bb!.readInt32(this.bb_pos + offset) : 0; -} - -mutate_bytesize(value:number):boolean { - const offset = this.bb!.__offset(this.bb_pos, 12); - - if (offset === 0) { - return false; - } - - this.bb!.writeInt32(this.bb_pos + offset, value); - return true; -} - -attributes(index: number, obj?:KeyValue):KeyValue|null { - const offset = this.bb!.__offset(this.bb_pos, 14); - return offset ? (obj || new KeyValue()).__init(this.bb!.__indirect(this.bb!.__vector(this.bb_pos + offset) + index * 4), this.bb!) : null; -} - -attributesLength():number { - const offset = this.bb!.__offset(this.bb_pos, 14); - return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0; -} - -documentation(index: number):string -documentation(index: number,optionalEncoding:flatbuffers.Encoding):string|Uint8Array -documentation(index: number,optionalEncoding?:any):string|Uint8Array|null { - const offset = this.bb!.__offset(this.bb_pos, 16); - return offset ? this.bb!.__string(this.bb!.__vector(this.bb_pos + offset) + index * 4, optionalEncoding) : null; -} - -documentationLength():number { - const offset = this.bb!.__offset(this.bb_pos, 16); - return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0; -} - -/** - * File that this Object is declared in. - */ -declarationFile():string|null -declarationFile(optionalEncoding:flatbuffers.Encoding):string|Uint8Array|null -declarationFile(optionalEncoding?:any):string|Uint8Array|null { - const offset = this.bb!.__offset(this.bb_pos, 18); - return offset ? this.bb!.__string(this.bb_pos + offset, optionalEncoding) : null; -} - -static getFullyQualifiedName():string { - return 'reflection.Object'; -} - -static startObject(builder:flatbuffers.Builder) { - builder.startObject(8); -} - -static addName(builder:flatbuffers.Builder, nameOffset:flatbuffers.Offset) { - builder.addFieldOffset(0, nameOffset, 0); -} - -static addFields(builder:flatbuffers.Builder, fieldsOffset:flatbuffers.Offset) { - builder.addFieldOffset(1, fieldsOffset, 0); -} - -static createFieldsVector(builder:flatbuffers.Builder, data:flatbuffers.Offset[]):flatbuffers.Offset { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]!); - } - return builder.endVector(); -} - -static startFieldsVector(builder:flatbuffers.Builder, numElems:number) { - builder.startVector(4, numElems, 4); -} - -static addIsStruct(builder:flatbuffers.Builder, isStruct:boolean) { - builder.addFieldInt8(2, +isStruct, +false); -} - -static addMinalign(builder:flatbuffers.Builder, minalign:number) { - builder.addFieldInt32(3, minalign, 0); -} - -static addBytesize(builder:flatbuffers.Builder, bytesize:number) { - builder.addFieldInt32(4, bytesize, 0); -} - -static addAttributes(builder:flatbuffers.Builder, attributesOffset:flatbuffers.Offset) { - builder.addFieldOffset(5, attributesOffset, 0); -} - -static createAttributesVector(builder:flatbuffers.Builder, data:flatbuffers.Offset[]):flatbuffers.Offset { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]!); - } - return builder.endVector(); -} - -static startAttributesVector(builder:flatbuffers.Builder, numElems:number) { - builder.startVector(4, numElems, 4); -} - -static addDocumentation(builder:flatbuffers.Builder, documentationOffset:flatbuffers.Offset) { - builder.addFieldOffset(6, documentationOffset, 0); -} - -static createDocumentationVector(builder:flatbuffers.Builder, data:flatbuffers.Offset[]):flatbuffers.Offset { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]!); - } - return builder.endVector(); -} - -static startDocumentationVector(builder:flatbuffers.Builder, numElems:number) { - builder.startVector(4, numElems, 4); -} - -static addDeclarationFile(builder:flatbuffers.Builder, declarationFileOffset:flatbuffers.Offset) { - builder.addFieldOffset(7, declarationFileOffset, 0); -} - -static endObject(builder:flatbuffers.Builder):flatbuffers.Offset { - const offset = builder.endObject(); - builder.requiredField(offset, 4) // name - builder.requiredField(offset, 6) // fields - return offset; -} - -static createObject(builder:flatbuffers.Builder, nameOffset:flatbuffers.Offset, fieldsOffset:flatbuffers.Offset, isStruct:boolean, minalign:number, bytesize:number, attributesOffset:flatbuffers.Offset, documentationOffset:flatbuffers.Offset, declarationFileOffset:flatbuffers.Offset):flatbuffers.Offset { - Object_.startObject(builder); - Object_.addName(builder, nameOffset); - Object_.addFields(builder, fieldsOffset); - Object_.addIsStruct(builder, isStruct); - Object_.addMinalign(builder, minalign); - Object_.addBytesize(builder, bytesize); - Object_.addAttributes(builder, attributesOffset); - Object_.addDocumentation(builder, documentationOffset); - Object_.addDeclarationFile(builder, declarationFileOffset); - return Object_.endObject(builder); -} - -unpack(): Object_T { - return new Object_T( - this.name(), - this.bb!.createObjList(this.fields.bind(this), this.fieldsLength()), - this.isStruct(), - this.minalign(), - this.bytesize(), - this.bb!.createObjList(this.attributes.bind(this), this.attributesLength()), - this.bb!.createScalarList(this.documentation.bind(this), this.documentationLength()), - this.declarationFile() - ); -} - - -unpackTo(_o: Object_T): void { - _o.name = this.name(); - _o.fields = this.bb!.createObjList(this.fields.bind(this), this.fieldsLength()); - _o.isStruct = this.isStruct(); - _o.minalign = this.minalign(); - _o.bytesize = this.bytesize(); - _o.attributes = this.bb!.createObjList(this.attributes.bind(this), this.attributesLength()); - _o.documentation = this.bb!.createScalarList(this.documentation.bind(this), this.documentationLength()); - _o.declarationFile = this.declarationFile(); -} -} - -export class Object_T implements flatbuffers.IGeneratedObject { -constructor( - public name: string|Uint8Array|null = null, - public fields: (FieldT)[] = [], - public isStruct: boolean = false, - public minalign: number = 0, - public bytesize: number = 0, - public attributes: (KeyValueT)[] = [], - public documentation: (string)[] = [], - public declarationFile: string|Uint8Array|null = null -){} - - -pack(builder:flatbuffers.Builder): flatbuffers.Offset { - const name = (this.name !== null ? builder.createString(this.name!) : 0); - const fields = Object_.createFieldsVector(builder, builder.createObjectOffsetList(this.fields)); - const attributes = Object_.createAttributesVector(builder, builder.createObjectOffsetList(this.attributes)); - const documentation = Object_.createDocumentationVector(builder, builder.createObjectOffsetList(this.documentation)); - const declarationFile = (this.declarationFile !== null ? builder.createString(this.declarationFile!) : 0); - - return Object_.createObject(builder, - name, - fields, - this.isStruct, - this.minalign, - this.bytesize, - attributes, - documentation, - declarationFile - ); -} -} - -export class RPCCall implements flatbuffers.IUnpackableObject { - bb: flatbuffers.ByteBuffer|null = null; - bb_pos = 0; - __init(i:number, bb:flatbuffers.ByteBuffer):RPCCall { - this.bb_pos = i; - this.bb = bb; - return this; -} - -static getRootAsRPCCall(bb:flatbuffers.ByteBuffer, obj?:RPCCall):RPCCall { - return (obj || new RPCCall()).__init(bb.readInt32(bb.position()) + bb.position(), bb); -} - -static getSizePrefixedRootAsRPCCall(bb:flatbuffers.ByteBuffer, obj?:RPCCall):RPCCall { - bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH); - return (obj || new RPCCall()).__init(bb.readInt32(bb.position()) + bb.position(), bb); -} - -name():string|null -name(optionalEncoding:flatbuffers.Encoding):string|Uint8Array|null -name(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; -} - -request(obj?:Object_):Object_|null { - const offset = this.bb!.__offset(this.bb_pos, 6); - return offset ? (obj || new Object_()).__init(this.bb!.__indirect(this.bb_pos + offset), this.bb!) : null; -} - -response(obj?:Object_):Object_|null { - const offset = this.bb!.__offset(this.bb_pos, 8); - return offset ? (obj || new Object_()).__init(this.bb!.__indirect(this.bb_pos + offset), this.bb!) : null; -} - -attributes(index: number, obj?:KeyValue):KeyValue|null { - const offset = this.bb!.__offset(this.bb_pos, 10); - return offset ? (obj || new KeyValue()).__init(this.bb!.__indirect(this.bb!.__vector(this.bb_pos + offset) + index * 4), this.bb!) : null; -} - -attributesLength():number { - const offset = this.bb!.__offset(this.bb_pos, 10); - return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0; -} - -documentation(index: number):string -documentation(index: number,optionalEncoding:flatbuffers.Encoding):string|Uint8Array -documentation(index: number,optionalEncoding?:any):string|Uint8Array|null { - const offset = this.bb!.__offset(this.bb_pos, 12); - return offset ? this.bb!.__string(this.bb!.__vector(this.bb_pos + offset) + index * 4, optionalEncoding) : null; -} - -documentationLength():number { - const offset = this.bb!.__offset(this.bb_pos, 12); - return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0; -} - -static getFullyQualifiedName():string { - return 'reflection.RPCCall'; -} - -static startRPCCall(builder:flatbuffers.Builder) { - builder.startObject(5); -} - -static addName(builder:flatbuffers.Builder, nameOffset:flatbuffers.Offset) { - builder.addFieldOffset(0, nameOffset, 0); -} - -static addRequest(builder:flatbuffers.Builder, requestOffset:flatbuffers.Offset) { - builder.addFieldOffset(1, requestOffset, 0); -} - -static addResponse(builder:flatbuffers.Builder, responseOffset:flatbuffers.Offset) { - builder.addFieldOffset(2, responseOffset, 0); -} - -static addAttributes(builder:flatbuffers.Builder, attributesOffset:flatbuffers.Offset) { - builder.addFieldOffset(3, attributesOffset, 0); -} - -static createAttributesVector(builder:flatbuffers.Builder, data:flatbuffers.Offset[]):flatbuffers.Offset { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]!); - } - return builder.endVector(); -} - -static startAttributesVector(builder:flatbuffers.Builder, numElems:number) { - builder.startVector(4, numElems, 4); -} - -static addDocumentation(builder:flatbuffers.Builder, documentationOffset:flatbuffers.Offset) { - builder.addFieldOffset(4, documentationOffset, 0); -} - -static createDocumentationVector(builder:flatbuffers.Builder, data:flatbuffers.Offset[]):flatbuffers.Offset { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]!); - } - return builder.endVector(); -} - -static startDocumentationVector(builder:flatbuffers.Builder, numElems:number) { - builder.startVector(4, numElems, 4); -} - -static endRPCCall(builder:flatbuffers.Builder):flatbuffers.Offset { - const offset = builder.endObject(); - builder.requiredField(offset, 4) // name - builder.requiredField(offset, 6) // request - builder.requiredField(offset, 8) // response - return offset; -} - - -unpack(): RPCCallT { - return new RPCCallT( - this.name(), - (this.request() !== null ? this.request()!.unpack() : null), - (this.response() !== null ? this.response()!.unpack() : null), - this.bb!.createObjList(this.attributes.bind(this), this.attributesLength()), - this.bb!.createScalarList(this.documentation.bind(this), this.documentationLength()) - ); -} - - -unpackTo(_o: RPCCallT): void { - _o.name = this.name(); - _o.request = (this.request() !== null ? this.request()!.unpack() : null); - _o.response = (this.response() !== null ? this.response()!.unpack() : null); - _o.attributes = this.bb!.createObjList(this.attributes.bind(this), this.attributesLength()); - _o.documentation = this.bb!.createScalarList(this.documentation.bind(this), this.documentationLength()); -} -} - -export class RPCCallT implements flatbuffers.IGeneratedObject { -constructor( - public name: string|Uint8Array|null = null, - public request: Object_T|null = null, - public response: Object_T|null = null, - public attributes: (KeyValueT)[] = [], - public documentation: (string)[] = [] -){} - - -pack(builder:flatbuffers.Builder): flatbuffers.Offset { - const name = (this.name !== null ? builder.createString(this.name!) : 0); - const request = (this.request !== null ? this.request!.pack(builder) : 0); - const response = (this.response !== null ? this.response!.pack(builder) : 0); - const attributes = RPCCall.createAttributesVector(builder, builder.createObjectOffsetList(this.attributes)); - const documentation = RPCCall.createDocumentationVector(builder, builder.createObjectOffsetList(this.documentation)); - - RPCCall.startRPCCall(builder); - RPCCall.addName(builder, name); - RPCCall.addRequest(builder, request); - RPCCall.addResponse(builder, response); - RPCCall.addAttributes(builder, attributes); - RPCCall.addDocumentation(builder, documentation); - - return RPCCall.endRPCCall(builder); -} -} - -export class Service implements flatbuffers.IUnpackableObject { - bb: flatbuffers.ByteBuffer|null = null; - bb_pos = 0; - __init(i:number, bb:flatbuffers.ByteBuffer):Service { - this.bb_pos = i; - this.bb = bb; - return this; -} - -static getRootAsService(bb:flatbuffers.ByteBuffer, obj?:Service):Service { - return (obj || new Service()).__init(bb.readInt32(bb.position()) + bb.position(), bb); -} - -static getSizePrefixedRootAsService(bb:flatbuffers.ByteBuffer, obj?:Service):Service { - bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH); - return (obj || new Service()).__init(bb.readInt32(bb.position()) + bb.position(), bb); -} - -name():string|null -name(optionalEncoding:flatbuffers.Encoding):string|Uint8Array|null -name(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; -} - -calls(index: number, obj?:RPCCall):RPCCall|null { - const offset = this.bb!.__offset(this.bb_pos, 6); - return offset ? (obj || new RPCCall()).__init(this.bb!.__indirect(this.bb!.__vector(this.bb_pos + offset) + index * 4), this.bb!) : null; -} - -callsLength():number { - const offset = this.bb!.__offset(this.bb_pos, 6); - return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0; -} - -attributes(index: number, obj?:KeyValue):KeyValue|null { - const offset = this.bb!.__offset(this.bb_pos, 8); - return offset ? (obj || new KeyValue()).__init(this.bb!.__indirect(this.bb!.__vector(this.bb_pos + offset) + index * 4), this.bb!) : null; -} - -attributesLength():number { - const offset = this.bb!.__offset(this.bb_pos, 8); - return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0; -} - -documentation(index: number):string -documentation(index: number,optionalEncoding:flatbuffers.Encoding):string|Uint8Array -documentation(index: number,optionalEncoding?:any):string|Uint8Array|null { - const offset = this.bb!.__offset(this.bb_pos, 10); - return offset ? this.bb!.__string(this.bb!.__vector(this.bb_pos + offset) + index * 4, optionalEncoding) : null; -} - -documentationLength():number { - const offset = this.bb!.__offset(this.bb_pos, 10); - return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0; -} - -/** - * File that this Service is declared in. - */ -declarationFile():string|null -declarationFile(optionalEncoding:flatbuffers.Encoding):string|Uint8Array|null -declarationFile(optionalEncoding?:any):string|Uint8Array|null { - const offset = this.bb!.__offset(this.bb_pos, 12); - return offset ? this.bb!.__string(this.bb_pos + offset, optionalEncoding) : null; -} - -static getFullyQualifiedName():string { - return 'reflection.Service'; -} - -static startService(builder:flatbuffers.Builder) { - builder.startObject(5); -} - -static addName(builder:flatbuffers.Builder, nameOffset:flatbuffers.Offset) { - builder.addFieldOffset(0, nameOffset, 0); -} - -static addCalls(builder:flatbuffers.Builder, callsOffset:flatbuffers.Offset) { - builder.addFieldOffset(1, callsOffset, 0); -} - -static createCallsVector(builder:flatbuffers.Builder, data:flatbuffers.Offset[]):flatbuffers.Offset { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]!); - } - return builder.endVector(); -} - -static startCallsVector(builder:flatbuffers.Builder, numElems:number) { - builder.startVector(4, numElems, 4); -} - -static addAttributes(builder:flatbuffers.Builder, attributesOffset:flatbuffers.Offset) { - builder.addFieldOffset(2, attributesOffset, 0); -} - -static createAttributesVector(builder:flatbuffers.Builder, data:flatbuffers.Offset[]):flatbuffers.Offset { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]!); - } - return builder.endVector(); -} - -static startAttributesVector(builder:flatbuffers.Builder, numElems:number) { - builder.startVector(4, numElems, 4); -} - -static addDocumentation(builder:flatbuffers.Builder, documentationOffset:flatbuffers.Offset) { - builder.addFieldOffset(3, documentationOffset, 0); -} - -static createDocumentationVector(builder:flatbuffers.Builder, data:flatbuffers.Offset[]):flatbuffers.Offset { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]!); - } - return builder.endVector(); -} - -static startDocumentationVector(builder:flatbuffers.Builder, numElems:number) { - builder.startVector(4, numElems, 4); -} - -static addDeclarationFile(builder:flatbuffers.Builder, declarationFileOffset:flatbuffers.Offset) { - builder.addFieldOffset(4, declarationFileOffset, 0); -} - -static endService(builder:flatbuffers.Builder):flatbuffers.Offset { - const offset = builder.endObject(); - builder.requiredField(offset, 4) // name - return offset; -} - -static createService(builder:flatbuffers.Builder, nameOffset:flatbuffers.Offset, callsOffset:flatbuffers.Offset, attributesOffset:flatbuffers.Offset, documentationOffset:flatbuffers.Offset, declarationFileOffset:flatbuffers.Offset):flatbuffers.Offset { - Service.startService(builder); - Service.addName(builder, nameOffset); - Service.addCalls(builder, callsOffset); - Service.addAttributes(builder, attributesOffset); - Service.addDocumentation(builder, documentationOffset); - Service.addDeclarationFile(builder, declarationFileOffset); - return Service.endService(builder); -} - -unpack(): ServiceT { - return new ServiceT( - this.name(), - this.bb!.createObjList(this.calls.bind(this), this.callsLength()), - this.bb!.createObjList(this.attributes.bind(this), this.attributesLength()), - this.bb!.createScalarList(this.documentation.bind(this), this.documentationLength()), - this.declarationFile() - ); -} - - -unpackTo(_o: ServiceT): void { - _o.name = this.name(); - _o.calls = this.bb!.createObjList(this.calls.bind(this), this.callsLength()); - _o.attributes = this.bb!.createObjList(this.attributes.bind(this), this.attributesLength()); - _o.documentation = this.bb!.createScalarList(this.documentation.bind(this), this.documentationLength()); - _o.declarationFile = this.declarationFile(); -} -} - -export class ServiceT implements flatbuffers.IGeneratedObject { -constructor( - public name: string|Uint8Array|null = null, - public calls: (RPCCallT)[] = [], - public attributes: (KeyValueT)[] = [], - public documentation: (string)[] = [], - public declarationFile: string|Uint8Array|null = null -){} - - -pack(builder:flatbuffers.Builder): flatbuffers.Offset { - const name = (this.name !== null ? builder.createString(this.name!) : 0); - const calls = Service.createCallsVector(builder, builder.createObjectOffsetList(this.calls)); - const attributes = Service.createAttributesVector(builder, builder.createObjectOffsetList(this.attributes)); - const documentation = Service.createDocumentationVector(builder, builder.createObjectOffsetList(this.documentation)); - const declarationFile = (this.declarationFile !== null ? builder.createString(this.declarationFile!) : 0); - - return Service.createService(builder, - name, - calls, - attributes, - documentation, - declarationFile - ); -} -} - -/** - * File specific information. - * Symbols declared within a file may be recovered by iterating over all - * symbols and examining the `declaration_file` field. - */ -export class SchemaFile implements flatbuffers.IUnpackableObject { - bb: flatbuffers.ByteBuffer|null = null; - bb_pos = 0; - __init(i:number, bb:flatbuffers.ByteBuffer):SchemaFile { - this.bb_pos = i; - this.bb = bb; - return this; -} - -static getRootAsSchemaFile(bb:flatbuffers.ByteBuffer, obj?:SchemaFile):SchemaFile { - return (obj || new SchemaFile()).__init(bb.readInt32(bb.position()) + bb.position(), bb); -} - -static getSizePrefixedRootAsSchemaFile(bb:flatbuffers.ByteBuffer, obj?:SchemaFile):SchemaFile { - bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH); - return (obj || new SchemaFile()).__init(bb.readInt32(bb.position()) + bb.position(), bb); -} - -/** - * Filename, relative to project root. - */ -filename():string|null -filename(optionalEncoding:flatbuffers.Encoding):string|Uint8Array|null -filename(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; -} - -/** - * Names of included files, relative to project root. - */ -includedFilenames(index: number):string -includedFilenames(index: number,optionalEncoding:flatbuffers.Encoding):string|Uint8Array -includedFilenames(index: number,optionalEncoding?:any):string|Uint8Array|null { - const offset = this.bb!.__offset(this.bb_pos, 6); - return offset ? this.bb!.__string(this.bb!.__vector(this.bb_pos + offset) + index * 4, optionalEncoding) : null; -} - -includedFilenamesLength():number { - const offset = this.bb!.__offset(this.bb_pos, 6); - return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0; -} - -static getFullyQualifiedName():string { - return 'reflection.SchemaFile'; -} - -static startSchemaFile(builder:flatbuffers.Builder) { - builder.startObject(2); -} - -static addFilename(builder:flatbuffers.Builder, filenameOffset:flatbuffers.Offset) { - builder.addFieldOffset(0, filenameOffset, 0); -} - -static addIncludedFilenames(builder:flatbuffers.Builder, includedFilenamesOffset:flatbuffers.Offset) { - builder.addFieldOffset(1, includedFilenamesOffset, 0); -} - -static createIncludedFilenamesVector(builder:flatbuffers.Builder, data:flatbuffers.Offset[]):flatbuffers.Offset { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]!); - } - return builder.endVector(); -} - -static startIncludedFilenamesVector(builder:flatbuffers.Builder, numElems:number) { - builder.startVector(4, numElems, 4); -} - -static endSchemaFile(builder:flatbuffers.Builder):flatbuffers.Offset { - const offset = builder.endObject(); - builder.requiredField(offset, 4) // filename - return offset; -} - -static createSchemaFile(builder:flatbuffers.Builder, filenameOffset:flatbuffers.Offset, includedFilenamesOffset:flatbuffers.Offset):flatbuffers.Offset { - SchemaFile.startSchemaFile(builder); - SchemaFile.addFilename(builder, filenameOffset); - SchemaFile.addIncludedFilenames(builder, includedFilenamesOffset); - return SchemaFile.endSchemaFile(builder); -} - -unpack(): SchemaFileT { - return new SchemaFileT( - this.filename(), - this.bb!.createScalarList(this.includedFilenames.bind(this), this.includedFilenamesLength()) - ); -} - - -unpackTo(_o: SchemaFileT): void { - _o.filename = this.filename(); - _o.includedFilenames = this.bb!.createScalarList(this.includedFilenames.bind(this), this.includedFilenamesLength()); -} -} - -export class SchemaFileT implements flatbuffers.IGeneratedObject { -constructor( - public filename: string|Uint8Array|null = null, - public includedFilenames: (string)[] = [] -){} - - -pack(builder:flatbuffers.Builder): flatbuffers.Offset { - const filename = (this.filename !== null ? builder.createString(this.filename!) : 0); - const includedFilenames = SchemaFile.createIncludedFilenamesVector(builder, builder.createObjectOffsetList(this.includedFilenames)); - - return SchemaFile.createSchemaFile(builder, - filename, - includedFilenames - ); -} -} - -export class Schema implements flatbuffers.IUnpackableObject { - bb: flatbuffers.ByteBuffer|null = null; - bb_pos = 0; - __init(i:number, bb:flatbuffers.ByteBuffer):Schema { - this.bb_pos = i; - this.bb = bb; - return this; -} - -static getRootAsSchema(bb:flatbuffers.ByteBuffer, obj?:Schema):Schema { - return (obj || new Schema()).__init(bb.readInt32(bb.position()) + bb.position(), bb); -} - -static getSizePrefixedRootAsSchema(bb:flatbuffers.ByteBuffer, obj?:Schema):Schema { - bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH); - return (obj || new Schema()).__init(bb.readInt32(bb.position()) + bb.position(), bb); -} - -static bufferHasIdentifier(bb:flatbuffers.ByteBuffer):boolean { - return bb.__has_identifier('BFBS'); -} - -objects(index: number, obj?:Object_):Object_|null { - const offset = this.bb!.__offset(this.bb_pos, 4); - return offset ? (obj || new Object_()).__init(this.bb!.__indirect(this.bb!.__vector(this.bb_pos + offset) + index * 4), this.bb!) : null; -} - -objectsLength():number { - const offset = this.bb!.__offset(this.bb_pos, 4); - return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0; -} - -enums(index: number, obj?:Enum):Enum|null { - const offset = this.bb!.__offset(this.bb_pos, 6); - return offset ? (obj || new Enum()).__init(this.bb!.__indirect(this.bb!.__vector(this.bb_pos + offset) + index * 4), this.bb!) : null; -} - -enumsLength():number { - const offset = this.bb!.__offset(this.bb_pos, 6); - return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0; -} - -fileIdent():string|null -fileIdent(optionalEncoding:flatbuffers.Encoding):string|Uint8Array|null -fileIdent(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; -} - -fileExt():string|null -fileExt(optionalEncoding:flatbuffers.Encoding):string|Uint8Array|null -fileExt(optionalEncoding?:any):string|Uint8Array|null { - const offset = this.bb!.__offset(this.bb_pos, 10); - return offset ? this.bb!.__string(this.bb_pos + offset, optionalEncoding) : null; -} - -rootTable(obj?:Object_):Object_|null { - const offset = this.bb!.__offset(this.bb_pos, 12); - return offset ? (obj || new Object_()).__init(this.bb!.__indirect(this.bb_pos + offset), this.bb!) : null; -} - -services(index: number, obj?:Service):Service|null { - const offset = this.bb!.__offset(this.bb_pos, 14); - return offset ? (obj || new Service()).__init(this.bb!.__indirect(this.bb!.__vector(this.bb_pos + offset) + index * 4), this.bb!) : null; -} - -servicesLength():number { - const offset = this.bb!.__offset(this.bb_pos, 14); - return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0; -} - -advancedFeatures():bigint { - const offset = this.bb!.__offset(this.bb_pos, 16); - return offset ? this.bb!.readUint64(this.bb_pos + offset) : BigInt('0'); -} - -mutate_advanced_features(value:bigint):boolean { - const offset = this.bb!.__offset(this.bb_pos, 16); - - if (offset === 0) { - return false; - } - - this.bb!.writeUint64(this.bb_pos + offset, value); - return true; -} - -/** - * All the files used in this compilation. Files are relative to where - * flatc was invoked. - */ -fbsFiles(index: number, obj?:SchemaFile):SchemaFile|null { - const offset = this.bb!.__offset(this.bb_pos, 18); - return offset ? (obj || new SchemaFile()).__init(this.bb!.__indirect(this.bb!.__vector(this.bb_pos + offset) + index * 4), this.bb!) : null; -} - -fbsFilesLength():number { - const offset = this.bb!.__offset(this.bb_pos, 18); - return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0; -} - -static getFullyQualifiedName():string { - return 'reflection.Schema'; -} - -static startSchema(builder:flatbuffers.Builder) { - builder.startObject(8); -} - -static addObjects(builder:flatbuffers.Builder, objectsOffset:flatbuffers.Offset) { - builder.addFieldOffset(0, objectsOffset, 0); -} - -static createObjectsVector(builder:flatbuffers.Builder, data:flatbuffers.Offset[]):flatbuffers.Offset { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]!); - } - return builder.endVector(); -} - -static startObjectsVector(builder:flatbuffers.Builder, numElems:number) { - builder.startVector(4, numElems, 4); -} - -static addEnums(builder:flatbuffers.Builder, enumsOffset:flatbuffers.Offset) { - builder.addFieldOffset(1, enumsOffset, 0); -} - -static createEnumsVector(builder:flatbuffers.Builder, data:flatbuffers.Offset[]):flatbuffers.Offset { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]!); - } - return builder.endVector(); -} - -static startEnumsVector(builder:flatbuffers.Builder, numElems:number) { - builder.startVector(4, numElems, 4); -} - -static addFileIdent(builder:flatbuffers.Builder, fileIdentOffset:flatbuffers.Offset) { - builder.addFieldOffset(2, fileIdentOffset, 0); -} - -static addFileExt(builder:flatbuffers.Builder, fileExtOffset:flatbuffers.Offset) { - builder.addFieldOffset(3, fileExtOffset, 0); -} - -static addRootTable(builder:flatbuffers.Builder, rootTableOffset:flatbuffers.Offset) { - builder.addFieldOffset(4, rootTableOffset, 0); -} - -static addServices(builder:flatbuffers.Builder, servicesOffset:flatbuffers.Offset) { - builder.addFieldOffset(5, servicesOffset, 0); -} - -static createServicesVector(builder:flatbuffers.Builder, data:flatbuffers.Offset[]):flatbuffers.Offset { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]!); - } - return builder.endVector(); -} - -static startServicesVector(builder:flatbuffers.Builder, numElems:number) { - builder.startVector(4, numElems, 4); -} - -static addAdvancedFeatures(builder:flatbuffers.Builder, advancedFeatures:bigint) { - builder.addFieldInt64(6, advancedFeatures, BigInt('0')); -} - -static addFbsFiles(builder:flatbuffers.Builder, fbsFilesOffset:flatbuffers.Offset) { - builder.addFieldOffset(7, fbsFilesOffset, 0); -} - -static createFbsFilesVector(builder:flatbuffers.Builder, data:flatbuffers.Offset[]):flatbuffers.Offset { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]!); - } - return builder.endVector(); -} - -static startFbsFilesVector(builder:flatbuffers.Builder, numElems:number) { - builder.startVector(4, numElems, 4); -} - -static endSchema(builder:flatbuffers.Builder):flatbuffers.Offset { - const offset = builder.endObject(); - builder.requiredField(offset, 4) // objects - builder.requiredField(offset, 6) // enums - return offset; -} - -static finishSchemaBuffer(builder:flatbuffers.Builder, offset:flatbuffers.Offset) { - builder.finish(offset, 'BFBS'); -} - -static finishSizePrefixedSchemaBuffer(builder:flatbuffers.Builder, offset:flatbuffers.Offset) { - builder.finish(offset, 'BFBS', true); -} - - -unpack(): SchemaT { - return new SchemaT( - this.bb!.createObjList(this.objects.bind(this), this.objectsLength()), - this.bb!.createObjList(this.enums.bind(this), this.enumsLength()), - this.fileIdent(), - this.fileExt(), - (this.rootTable() !== null ? this.rootTable()!.unpack() : null), - this.bb!.createObjList(this.services.bind(this), this.servicesLength()), - this.advancedFeatures(), - this.bb!.createObjList(this.fbsFiles.bind(this), this.fbsFilesLength()) - ); -} - - -unpackTo(_o: SchemaT): void { - _o.objects = this.bb!.createObjList(this.objects.bind(this), this.objectsLength()); - _o.enums = this.bb!.createObjList(this.enums.bind(this), this.enumsLength()); - _o.fileIdent = this.fileIdent(); - _o.fileExt = this.fileExt(); - _o.rootTable = (this.rootTable() !== null ? this.rootTable()!.unpack() : null); - _o.services = this.bb!.createObjList(this.services.bind(this), this.servicesLength()); - _o.advancedFeatures = this.advancedFeatures(); - _o.fbsFiles = this.bb!.createObjList(this.fbsFiles.bind(this), this.fbsFilesLength()); -} -} - -export class SchemaT implements flatbuffers.IGeneratedObject { -constructor( - public objects: (Object_T)[] = [], - public enums: (EnumT)[] = [], - public fileIdent: string|Uint8Array|null = null, - public fileExt: string|Uint8Array|null = null, - public rootTable: Object_T|null = null, - public services: (ServiceT)[] = [], - public advancedFeatures: bigint = BigInt('0'), - public fbsFiles: (SchemaFileT)[] = [] -){} - - -pack(builder:flatbuffers.Builder): flatbuffers.Offset { - const objects = Schema.createObjectsVector(builder, builder.createObjectOffsetList(this.objects)); - const enums = Schema.createEnumsVector(builder, builder.createObjectOffsetList(this.enums)); - const fileIdent = (this.fileIdent !== null ? builder.createString(this.fileIdent!) : 0); - const fileExt = (this.fileExt !== null ? builder.createString(this.fileExt!) : 0); - const rootTable = (this.rootTable !== null ? this.rootTable!.pack(builder) : 0); - const services = Schema.createServicesVector(builder, builder.createObjectOffsetList(this.services)); - const fbsFiles = Schema.createFbsFilesVector(builder, builder.createObjectOffsetList(this.fbsFiles)); - - Schema.startSchema(builder); - Schema.addObjects(builder, objects); - Schema.addEnums(builder, enums); - Schema.addFileIdent(builder, fileIdent); - Schema.addFileExt(builder, fileExt); - Schema.addRootTable(builder, rootTable); - Schema.addServices(builder, services); - Schema.addAdvancedFeatures(builder, this.advancedFeatures); - Schema.addFbsFiles(builder, fbsFiles); - - return Schema.endSchema(builder); -} -} - diff --git a/tests/ts/table-a.d.ts b/tests/ts/table-a.d.ts new file mode 100644 index 0000000000..f6708354c3 --- /dev/null +++ b/tests/ts/table-a.d.ts @@ -0,0 +1,24 @@ +import * as flatbuffers from 'flatbuffers'; +import { TableB, TableBT } from './my-game/other-name-space/table-b.js'; +export declare class TableA implements flatbuffers.IUnpackableObject { + bb: flatbuffers.ByteBuffer | null; + bb_pos: number; + __init(i: number, bb: flatbuffers.ByteBuffer): TableA; + static getRootAsTableA(bb: flatbuffers.ByteBuffer, obj?: TableA): TableA; + static getSizePrefixedRootAsTableA(bb: flatbuffers.ByteBuffer, obj?: TableA): TableA; + b(obj?: TableB): TableB | null; + static getFullyQualifiedName(): string; + static startTableA(builder: flatbuffers.Builder): void; + static addB(builder: flatbuffers.Builder, bOffset: flatbuffers.Offset): void; + static endTableA(builder: flatbuffers.Builder): flatbuffers.Offset; + static createTableA(builder: flatbuffers.Builder, bOffset: flatbuffers.Offset): flatbuffers.Offset; + serialize(): Uint8Array; + static deserialize(buffer: Uint8Array): TableA; + unpack(): TableAT; + unpackTo(_o: TableAT): void; +} +export declare class TableAT implements flatbuffers.IGeneratedObject { + b: TableBT | null; + constructor(b?: TableBT | null); + pack(builder: flatbuffers.Builder): flatbuffers.Offset; +} diff --git a/tests/ts/table-a.js b/tests/ts/table-a.js new file mode 100644 index 0000000000..f0ade0dd6f --- /dev/null +++ b/tests/ts/table-a.js @@ -0,0 +1,64 @@ +// automatically generated by the FlatBuffers compiler, do not modify +import * as flatbuffers from 'flatbuffers'; +import { TableB } from './my-game/other-name-space/table-b.js'; +export class TableA { + constructor() { + this.bb = null; + this.bb_pos = 0; + } + __init(i, bb) { + this.bb_pos = i; + this.bb = bb; + return this; + } + static getRootAsTableA(bb, obj) { + return (obj || new TableA()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + static getSizePrefixedRootAsTableA(bb, obj) { + bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH); + return (obj || new TableA()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + b(obj) { + const offset = this.bb.__offset(this.bb_pos, 4); + return offset ? (obj || new TableB()).__init(this.bb.__indirect(this.bb_pos + offset), this.bb) : null; + } + static getFullyQualifiedName() { + return 'TableA'; + } + static startTableA(builder) { + builder.startObject(1); + } + static addB(builder, bOffset) { + builder.addFieldOffset(0, bOffset, 0); + } + static endTableA(builder) { + const offset = builder.endObject(); + return offset; + } + static createTableA(builder, bOffset) { + TableA.startTableA(builder); + TableA.addB(builder, bOffset); + return TableA.endTableA(builder); + } + serialize() { + return this.bb.bytes(); + } + static deserialize(buffer) { + return TableA.getRootAsTableA(new flatbuffers.ByteBuffer(buffer)); + } + unpack() { + return new TableAT((this.b() !== null ? this.b().unpack() : null)); + } + unpackTo(_o) { + _o.b = (this.b() !== null ? this.b().unpack() : null); + } +} +export class TableAT { + constructor(b = null) { + this.b = b; + } + pack(builder) { + const b = (this.b !== null ? this.b.pack(builder) : 0); + return TableA.createTableA(builder, b); + } +} diff --git a/tests/ts/table-a.ts b/tests/ts/table-a.ts new file mode 100644 index 0000000000..5ed4b315c4 --- /dev/null +++ b/tests/ts/table-a.ts @@ -0,0 +1,87 @@ +// automatically generated by the FlatBuffers compiler, do not modify + +import * as flatbuffers from 'flatbuffers'; + +import { TableB, TableBT } from './my-game/other-name-space/table-b.js'; + + +export class TableA implements flatbuffers.IUnpackableObject { + bb: flatbuffers.ByteBuffer|null = null; + bb_pos = 0; + __init(i:number, bb:flatbuffers.ByteBuffer):TableA { + this.bb_pos = i; + this.bb = bb; + return this; +} + +static getRootAsTableA(bb:flatbuffers.ByteBuffer, obj?:TableA):TableA { + return (obj || new TableA()).__init(bb.readInt32(bb.position()) + bb.position(), bb); +} + +static getSizePrefixedRootAsTableA(bb:flatbuffers.ByteBuffer, obj?:TableA):TableA { + bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH); + return (obj || new TableA()).__init(bb.readInt32(bb.position()) + bb.position(), bb); +} + +b(obj?:TableB):TableB|null { + const offset = this.bb!.__offset(this.bb_pos, 4); + return offset ? (obj || new TableB()).__init(this.bb!.__indirect(this.bb_pos + offset), this.bb!) : null; +} + +static getFullyQualifiedName():string { + return 'TableA'; +} + +static startTableA(builder:flatbuffers.Builder) { + builder.startObject(1); +} + +static addB(builder:flatbuffers.Builder, bOffset:flatbuffers.Offset) { + builder.addFieldOffset(0, bOffset, 0); +} + +static endTableA(builder:flatbuffers.Builder):flatbuffers.Offset { + const offset = builder.endObject(); + return offset; +} + +static createTableA(builder:flatbuffers.Builder, bOffset:flatbuffers.Offset):flatbuffers.Offset { + TableA.startTableA(builder); + TableA.addB(builder, bOffset); + return TableA.endTableA(builder); +} + +serialize():Uint8Array { + return this.bb!.bytes(); +} + +static deserialize(buffer: Uint8Array):TableA { + return TableA.getRootAsTableA(new flatbuffers.ByteBuffer(buffer)) +} + +unpack(): TableAT { + return new TableAT( + (this.b() !== null ? this.b()!.unpack() : null) + ); +} + + +unpackTo(_o: TableAT): void { + _o.b = (this.b() !== null ? this.b()!.unpack() : null); +} +} + +export class TableAT implements flatbuffers.IGeneratedObject { +constructor( + public b: TableBT|null = null +){} + + +pack(builder:flatbuffers.Builder): flatbuffers.Offset { + const b = (this.b !== null ? this.b!.pack(builder) : 0); + + return TableA.createTableA(builder, + b + ); +} +} diff --git a/tests/ts/ts-flat-files/monster_test_generated.ts b/tests/ts/ts-flat-files/monster_test_generated.ts deleted file mode 100644 index f1566c61d2..0000000000 --- a/tests/ts/ts-flat-files/monster_test_generated.ts +++ /dev/null @@ -1,1902 +0,0 @@ -// automatically generated by the FlatBuffers compiler, do not modify - -import * as flatbuffers from 'flatbuffers'; - -export enum MyGame_OtherNameSpace_FromInclude { - IncludeVal = '0' -} - -/** - * Composite components of Monster color. - */ -export enum MyGame_Example_Color { - Red = 1, - - /** - * \brief color Green - * Green is bit_flag with value (1u << 1) - */ - Green = 2, - - /** - * \brief color Blue (1u << 3) - */ - Blue = 8 -} - -export enum MyGame_Example_Race { - None = -1, - Human = 0, - Dwarf = 1, - Elf = 2 -} - -export enum MyGame_Example_LongEnum { - LongOne = '2', - LongTwo = '4', - LongBig = '1099511627776' -} - -export enum MyGame_Example_Any { - NONE = 0, - Monster = 1, - TestSimpleTableWithEnum = 2, - MyGame_Example2_Monster = 3 -} - -export function unionToAny( - type: MyGame_Example_Any, - accessor: (obj:MyGame_Example2_Monster|MyGame_Example_Monster|MyGame_Example_TestSimpleTableWithEnum) => MyGame_Example2_Monster|MyGame_Example_Monster|MyGame_Example_TestSimpleTableWithEnum|null -): MyGame_Example2_Monster|MyGame_Example_Monster|MyGame_Example_TestSimpleTableWithEnum|null { - switch(MyGame_Example_Any[type]) { - case 'NONE': return null; - case 'Monster': return accessor(new MyGame_Example_Monster())! as MyGame_Example_Monster; - case 'TestSimpleTableWithEnum': return accessor(new MyGame_Example_TestSimpleTableWithEnum())! as MyGame_Example_TestSimpleTableWithEnum; - case 'MyGame_Example2_Monster': return accessor(new MyGame_Example2_Monster())! as MyGame_Example2_Monster; - default: return null; - } -} - -export function unionListToAny( - type: MyGame_Example_Any, - accessor: (index: number, obj:MyGame_Example2_Monster|MyGame_Example_Monster|MyGame_Example_TestSimpleTableWithEnum) => MyGame_Example2_Monster|MyGame_Example_Monster|MyGame_Example_TestSimpleTableWithEnum|null, - index: number -): MyGame_Example2_Monster|MyGame_Example_Monster|MyGame_Example_TestSimpleTableWithEnum|null { - switch(MyGame_Example_Any[type]) { - case 'NONE': return null; - case 'Monster': return accessor(index, new MyGame_Example_Monster())! as MyGame_Example_Monster; - case 'TestSimpleTableWithEnum': return accessor(index, new MyGame_Example_TestSimpleTableWithEnum())! as MyGame_Example_TestSimpleTableWithEnum; - case 'MyGame_Example2_Monster': return accessor(index, new MyGame_Example2_Monster())! as MyGame_Example2_Monster; - default: return null; - } -} - -export enum MyGame_Example_AnyUniqueAliases { - NONE = 0, - M = 1, - TS = 2, - M2 = 3 -} - -export function unionToAnyUniqueAliases( - type: MyGame_Example_AnyUniqueAliases, - accessor: (obj:MyGame_Example2_Monster|MyGame_Example_Monster|MyGame_Example_TestSimpleTableWithEnum) => MyGame_Example2_Monster|MyGame_Example_Monster|MyGame_Example_TestSimpleTableWithEnum|null -): MyGame_Example2_Monster|MyGame_Example_Monster|MyGame_Example_TestSimpleTableWithEnum|null { - switch(MyGame_Example_AnyUniqueAliases[type]) { - case 'NONE': return null; - case 'M': return accessor(new MyGame_Example_Monster())! as MyGame_Example_Monster; - case 'TS': return accessor(new MyGame_Example_TestSimpleTableWithEnum())! as MyGame_Example_TestSimpleTableWithEnum; - case 'M2': return accessor(new MyGame_Example2_Monster())! as MyGame_Example2_Monster; - default: return null; - } -} - -export function unionListToAnyUniqueAliases( - type: MyGame_Example_AnyUniqueAliases, - accessor: (index: number, obj:MyGame_Example2_Monster|MyGame_Example_Monster|MyGame_Example_TestSimpleTableWithEnum) => MyGame_Example2_Monster|MyGame_Example_Monster|MyGame_Example_TestSimpleTableWithEnum|null, - index: number -): MyGame_Example2_Monster|MyGame_Example_Monster|MyGame_Example_TestSimpleTableWithEnum|null { - switch(MyGame_Example_AnyUniqueAliases[type]) { - case 'NONE': return null; - case 'M': return accessor(index, new MyGame_Example_Monster())! as MyGame_Example_Monster; - case 'TS': return accessor(index, new MyGame_Example_TestSimpleTableWithEnum())! as MyGame_Example_TestSimpleTableWithEnum; - case 'M2': return accessor(index, new MyGame_Example2_Monster())! as MyGame_Example2_Monster; - default: return null; - } -} - -export enum MyGame_Example_AnyAmbiguousAliases { - NONE = 0, - M1 = 1, - M2 = 2, - M3 = 3 -} - -export function unionToAnyAmbiguousAliases( - type: MyGame_Example_AnyAmbiguousAliases, - accessor: (obj:MyGame_Example_Monster) => MyGame_Example_Monster|null -): MyGame_Example_Monster|null { - switch(MyGame_Example_AnyAmbiguousAliases[type]) { - case 'NONE': return null; - case 'M1': return accessor(new MyGame_Example_Monster())! as MyGame_Example_Monster; - case 'M2': return accessor(new MyGame_Example_Monster())! as MyGame_Example_Monster; - case 'M3': return accessor(new MyGame_Example_Monster())! as MyGame_Example_Monster; - default: return null; - } -} - -export function unionListToAnyAmbiguousAliases( - type: MyGame_Example_AnyAmbiguousAliases, - accessor: (index: number, obj:MyGame_Example_Monster) => MyGame_Example_Monster|null, - index: number -): MyGame_Example_Monster|null { - switch(MyGame_Example_AnyAmbiguousAliases[type]) { - case 'NONE': return null; - case 'M1': return accessor(index, new MyGame_Example_Monster())! as MyGame_Example_Monster; - case 'M2': return accessor(index, new MyGame_Example_Monster())! as MyGame_Example_Monster; - case 'M3': return accessor(index, new MyGame_Example_Monster())! as MyGame_Example_Monster; - default: return null; - } -} - -export class MyGame_OtherNameSpace_Unused { - bb: flatbuffers.ByteBuffer|null = null; - bb_pos = 0; - __init(i:number, bb:flatbuffers.ByteBuffer):MyGame_OtherNameSpace_Unused { - this.bb_pos = i; - this.bb = bb; - return this; -} - -a():number { - return this.bb!.readInt32(this.bb_pos); -} - -static sizeOf():number { - return 4; -} - -static createUnused(builder:flatbuffers.Builder, a: number):flatbuffers.Offset { - builder.prep(4, 4); - builder.writeInt32(a); - return builder.offset(); -} - -} - -export class MyGame_OtherNameSpace_TableB { - bb: flatbuffers.ByteBuffer|null = null; - bb_pos = 0; - __init(i:number, bb:flatbuffers.ByteBuffer):MyGame_OtherNameSpace_TableB { - this.bb_pos = i; - this.bb = bb; - return this; -} - -static getRootAsTableB(bb:flatbuffers.ByteBuffer, obj?:MyGame_OtherNameSpace_TableB):MyGame_OtherNameSpace_TableB { - return (obj || new MyGame_OtherNameSpace_TableB()).__init(bb.readInt32(bb.position()) + bb.position(), bb); -} - -static getSizePrefixedRootAsTableB(bb:flatbuffers.ByteBuffer, obj?:MyGame_OtherNameSpace_TableB):MyGame_OtherNameSpace_TableB { - bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH); - return (obj || new MyGame_OtherNameSpace_TableB()).__init(bb.readInt32(bb.position()) + bb.position(), bb); -} - -a(obj?:TableA):TableA|null { - const offset = this.bb!.__offset(this.bb_pos, 4); - return offset ? (obj || new TableA()).__init(this.bb!.__indirect(this.bb_pos + offset), this.bb!) : null; -} - -static startTableB(builder:flatbuffers.Builder) { - builder.startObject(1); -} - -static addA(builder:flatbuffers.Builder, aOffset:flatbuffers.Offset) { - builder.addFieldOffset(0, aOffset, 0); -} - -static endTableB(builder:flatbuffers.Builder):flatbuffers.Offset { - const offset = builder.endObject(); - return offset; -} - -static createTableB(builder:flatbuffers.Builder, aOffset:flatbuffers.Offset):flatbuffers.Offset { - MyGame_OtherNameSpace_TableB.startTableB(builder); - MyGame_OtherNameSpace_TableB.addA(builder, aOffset); - return MyGame_OtherNameSpace_TableB.endTableB(builder); -} - -serialize():Uint8Array { - return this.bb!.bytes(); -} - -static deserialize(buffer: Uint8Array):TableB { - return MyGame_OtherNameSpace_TableB.getRootAsTableB(new flatbuffers.ByteBuffer(buffer)) -} -} - -export class TableA { - bb: flatbuffers.ByteBuffer|null = null; - bb_pos = 0; - __init(i:number, bb:flatbuffers.ByteBuffer):TableA { - this.bb_pos = i; - this.bb = bb; - return this; -} - -static getRootAsTableA(bb:flatbuffers.ByteBuffer, obj?:TableA):TableA { - return (obj || new TableA()).__init(bb.readInt32(bb.position()) + bb.position(), bb); -} - -static getSizePrefixedRootAsTableA(bb:flatbuffers.ByteBuffer, obj?:TableA):TableA { - bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH); - return (obj || new TableA()).__init(bb.readInt32(bb.position()) + bb.position(), bb); -} - -b(obj?:MyGame_OtherNameSpace_TableB):MyGame_OtherNameSpace_TableB|null { - const offset = this.bb!.__offset(this.bb_pos, 4); - return offset ? (obj || new MyGame_OtherNameSpace_TableB()).__init(this.bb!.__indirect(this.bb_pos + offset), this.bb!) : null; -} - -static startTableA(builder:flatbuffers.Builder) { - builder.startObject(1); -} - -static addB(builder:flatbuffers.Builder, bOffset:flatbuffers.Offset) { - builder.addFieldOffset(0, bOffset, 0); -} - -static endTableA(builder:flatbuffers.Builder):flatbuffers.Offset { - const offset = builder.endObject(); - return offset; -} - -static createTableA(builder:flatbuffers.Builder, bOffset:flatbuffers.Offset):flatbuffers.Offset { - TableA.startTableA(builder); - TableA.addB(builder, bOffset); - return TableA.endTableA(builder); -} - -serialize():Uint8Array { - return this.bb!.bytes(); -} - -static deserialize(buffer: Uint8Array):TableA { - return TableA.getRootAsTableA(new flatbuffers.ByteBuffer(buffer)) -} -} - -export class MyGame_InParentNamespace { - bb: flatbuffers.ByteBuffer|null = null; - bb_pos = 0; - __init(i:number, bb:flatbuffers.ByteBuffer):MyGame_InParentNamespace { - this.bb_pos = i; - this.bb = bb; - return this; -} - -static getRootAsInParentNamespace(bb:flatbuffers.ByteBuffer, obj?:MyGame_InParentNamespace):MyGame_InParentNamespace { - return (obj || new MyGame_InParentNamespace()).__init(bb.readInt32(bb.position()) + bb.position(), bb); -} - -static getSizePrefixedRootAsInParentNamespace(bb:flatbuffers.ByteBuffer, obj?:MyGame_InParentNamespace):MyGame_InParentNamespace { - bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH); - return (obj || new MyGame_InParentNamespace()).__init(bb.readInt32(bb.position()) + bb.position(), bb); -} - -static startInParentNamespace(builder:flatbuffers.Builder) { - builder.startObject(0); -} - -static endInParentNamespace(builder:flatbuffers.Builder):flatbuffers.Offset { - const offset = builder.endObject(); - return offset; -} - -static createInParentNamespace(builder:flatbuffers.Builder):flatbuffers.Offset { - MyGame_InParentNamespace.startInParentNamespace(builder); - return MyGame_InParentNamespace.endInParentNamespace(builder); -} - -serialize():Uint8Array { - return this.bb!.bytes(); -} - -static deserialize(buffer: Uint8Array):InParentNamespace { - return MyGame_InParentNamespace.getRootAsInParentNamespace(new flatbuffers.ByteBuffer(buffer)) -} -} - -export class MyGame_Example2_Monster { - bb: flatbuffers.ByteBuffer|null = null; - bb_pos = 0; - __init(i:number, bb:flatbuffers.ByteBuffer):MyGame_Example2_Monster { - this.bb_pos = i; - this.bb = bb; - return this; -} - -static getRootAsMonster(bb:flatbuffers.ByteBuffer, obj?:MyGame_Example2_Monster):MyGame_Example2_Monster { - return (obj || new MyGame_Example2_Monster()).__init(bb.readInt32(bb.position()) + bb.position(), bb); -} - -static getSizePrefixedRootAsMonster(bb:flatbuffers.ByteBuffer, obj?:MyGame_Example2_Monster):MyGame_Example2_Monster { - bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH); - return (obj || new MyGame_Example2_Monster()).__init(bb.readInt32(bb.position()) + bb.position(), bb); -} - -static startMonster(builder:flatbuffers.Builder) { - builder.startObject(0); -} - -static endMonster(builder:flatbuffers.Builder):flatbuffers.Offset { - const offset = builder.endObject(); - return offset; -} - -static createMonster(builder:flatbuffers.Builder):flatbuffers.Offset { - MyGame_Example2_Monster.startMonster(builder); - return MyGame_Example2_Monster.endMonster(builder); -} - -serialize():Uint8Array { - return this.bb!.bytes(); -} - -static deserialize(buffer: Uint8Array):Monster { - return MyGame_Example2_Monster.getRootAsMonster(new flatbuffers.ByteBuffer(buffer)) -} -} - -export class MyGame_Example_Test { - bb: flatbuffers.ByteBuffer|null = null; - bb_pos = 0; - __init(i:number, bb:flatbuffers.ByteBuffer):MyGame_Example_Test { - this.bb_pos = i; - this.bb = bb; - return this; -} - -a():number { - return this.bb!.readInt16(this.bb_pos); -} - -b():number { - return this.bb!.readInt8(this.bb_pos + 2); -} - -static sizeOf():number { - return 4; -} - -static createTest(builder:flatbuffers.Builder, a: number, b: number):flatbuffers.Offset { - builder.prep(2, 4); - builder.pad(1); - builder.writeInt8(b); - builder.writeInt16(a); - return builder.offset(); -} - -} - -export class MyGame_Example_TestSimpleTableWithEnum { - bb: flatbuffers.ByteBuffer|null = null; - bb_pos = 0; - __init(i:number, bb:flatbuffers.ByteBuffer):MyGame_Example_TestSimpleTableWithEnum { - this.bb_pos = i; - this.bb = bb; - return this; -} - -static getRootAsTestSimpleTableWithEnum(bb:flatbuffers.ByteBuffer, obj?:MyGame_Example_TestSimpleTableWithEnum):MyGame_Example_TestSimpleTableWithEnum { - return (obj || new MyGame_Example_TestSimpleTableWithEnum()).__init(bb.readInt32(bb.position()) + bb.position(), bb); -} - -static getSizePrefixedRootAsTestSimpleTableWithEnum(bb:flatbuffers.ByteBuffer, obj?:MyGame_Example_TestSimpleTableWithEnum):MyGame_Example_TestSimpleTableWithEnum { - bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH); - return (obj || new MyGame_Example_TestSimpleTableWithEnum()).__init(bb.readInt32(bb.position()) + bb.position(), bb); -} - -color():MyGame_Example_Color { - const offset = this.bb!.__offset(this.bb_pos, 4); - return offset ? this.bb!.readUint8(this.bb_pos + offset) : MyGame_Example_Color.Green; -} - -static startTestSimpleTableWithEnum(builder:flatbuffers.Builder) { - builder.startObject(1); -} - -static addColor(builder:flatbuffers.Builder, color:MyGame_Example_Color) { - builder.addFieldInt8(0, color, MyGame_Example_Color.Green); -} - -static endTestSimpleTableWithEnum(builder:flatbuffers.Builder):flatbuffers.Offset { - const offset = builder.endObject(); - return offset; -} - -static createTestSimpleTableWithEnum(builder:flatbuffers.Builder, color:MyGame_Example_Color):flatbuffers.Offset { - MyGame_Example_TestSimpleTableWithEnum.startTestSimpleTableWithEnum(builder); - MyGame_Example_TestSimpleTableWithEnum.addColor(builder, color); - return MyGame_Example_TestSimpleTableWithEnum.endTestSimpleTableWithEnum(builder); -} - -serialize():Uint8Array { - return this.bb!.bytes(); -} - -static deserialize(buffer: Uint8Array):TestSimpleTableWithEnum { - return MyGame_Example_TestSimpleTableWithEnum.getRootAsTestSimpleTableWithEnum(new flatbuffers.ByteBuffer(buffer)) -} -} - -export class MyGame_Example_Vec3 { - bb: flatbuffers.ByteBuffer|null = null; - bb_pos = 0; - __init(i:number, bb:flatbuffers.ByteBuffer):MyGame_Example_Vec3 { - this.bb_pos = i; - this.bb = bb; - return this; -} - -x():number { - return this.bb!.readFloat32(this.bb_pos); -} - -y():number { - return this.bb!.readFloat32(this.bb_pos + 4); -} - -z():number { - return this.bb!.readFloat32(this.bb_pos + 8); -} - -test1():number { - return this.bb!.readFloat64(this.bb_pos + 16); -} - -test2():MyGame_Example_Color { - return this.bb!.readUint8(this.bb_pos + 24); -} - -test3(obj?:MyGame_Example_Test):MyGame_Example_Test|null { - return (obj || new MyGame_Example_Test()).__init(this.bb_pos + 26, this.bb!); -} - -static sizeOf():number { - return 32; -} - -static createVec3(builder:flatbuffers.Builder, x: number, y: number, z: number, test1: number, test2: MyGame_Example_Color, test3_a: number, test3_b: number):flatbuffers.Offset { - builder.prep(8, 32); - builder.pad(2); - builder.prep(2, 4); - builder.pad(1); - builder.writeInt8(test3_b); - builder.writeInt16(test3_a); - builder.pad(1); - builder.writeInt8(test2); - builder.writeFloat64(test1); - builder.pad(4); - builder.writeFloat32(z); - builder.writeFloat32(y); - builder.writeFloat32(x); - return builder.offset(); -} - -} - -export class MyGame_Example_Ability { - bb: flatbuffers.ByteBuffer|null = null; - bb_pos = 0; - __init(i:number, bb:flatbuffers.ByteBuffer):MyGame_Example_Ability { - this.bb_pos = i; - this.bb = bb; - return this; -} - -id():number { - return this.bb!.readUint32(this.bb_pos); -} - -distance():number { - return this.bb!.readUint32(this.bb_pos + 4); -} - -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(); -} - -} - -export class MyGame_Example_StructOfStructs { - bb: flatbuffers.ByteBuffer|null = null; - bb_pos = 0; - __init(i:number, bb:flatbuffers.ByteBuffer):MyGame_Example_StructOfStructs { - this.bb_pos = i; - this.bb = bb; - return this; -} - -a(obj?:MyGame_Example_Ability):MyGame_Example_Ability|null { - return (obj || new MyGame_Example_Ability()).__init(this.bb_pos, this.bb!); -} - -b(obj?:MyGame_Example_Test):MyGame_Example_Test|null { - return (obj || new MyGame_Example_Test()).__init(this.bb_pos + 8, this.bb!); -} - -c(obj?:MyGame_Example_Ability):MyGame_Example_Ability|null { - return (obj || new MyGame_Example_Ability()).__init(this.bb_pos + 12, this.bb!); -} - -static sizeOf():number { - return 20; -} - -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 { - 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(); -} - -} - -export class MyGame_Example_StructOfStructsOfStructs { - bb: flatbuffers.ByteBuffer|null = null; - bb_pos = 0; - __init(i:number, bb:flatbuffers.ByteBuffer):MyGame_Example_StructOfStructsOfStructs { - this.bb_pos = i; - this.bb = bb; - return this; -} - -a(obj?:MyGame_Example_StructOfStructs):MyGame_Example_StructOfStructs|null { - return (obj || new MyGame_Example_StructOfStructs()).__init(this.bb_pos, this.bb!); -} - -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(); -} - -} - -export class MyGame_Example_Stat { - bb: flatbuffers.ByteBuffer|null = null; - bb_pos = 0; - __init(i:number, bb:flatbuffers.ByteBuffer):MyGame_Example_Stat { - this.bb_pos = i; - this.bb = bb; - return this; -} - -static getRootAsStat(bb:flatbuffers.ByteBuffer, obj?:MyGame_Example_Stat):MyGame_Example_Stat { - return (obj || new MyGame_Example_Stat()).__init(bb.readInt32(bb.position()) + bb.position(), bb); -} - -static getSizePrefixedRootAsStat(bb:flatbuffers.ByteBuffer, obj?:MyGame_Example_Stat):MyGame_Example_Stat { - bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH); - return (obj || new MyGame_Example_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'); -} - -count():number { - const offset = this.bb!.__offset(this.bb_pos, 8); - return offset ? this.bb!.readUint16(this.bb_pos + offset) : 0; -} - -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 { - MyGame_Example_Stat.startStat(builder); - MyGame_Example_Stat.addId(builder, idOffset); - MyGame_Example_Stat.addVal(builder, val); - MyGame_Example_Stat.addCount(builder, count); - return MyGame_Example_Stat.endStat(builder); -} - -serialize():Uint8Array { - return this.bb!.bytes(); -} - -static deserialize(buffer: Uint8Array):Stat { - return MyGame_Example_Stat.getRootAsStat(new flatbuffers.ByteBuffer(buffer)) -} -} - -export class MyGame_Example_Referrable { - bb: flatbuffers.ByteBuffer|null = null; - bb_pos = 0; - __init(i:number, bb:flatbuffers.ByteBuffer):MyGame_Example_Referrable { - this.bb_pos = i; - this.bb = bb; - return this; -} - -static getRootAsReferrable(bb:flatbuffers.ByteBuffer, obj?:MyGame_Example_Referrable):MyGame_Example_Referrable { - return (obj || new MyGame_Example_Referrable()).__init(bb.readInt32(bb.position()) + bb.position(), bb); -} - -static getSizePrefixedRootAsReferrable(bb:flatbuffers.ByteBuffer, obj?:MyGame_Example_Referrable):MyGame_Example_Referrable { - bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH); - return (obj || new MyGame_Example_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'); -} - -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 { - MyGame_Example_Referrable.startReferrable(builder); - MyGame_Example_Referrable.addId(builder, id); - return MyGame_Example_Referrable.endReferrable(builder); -} - -serialize():Uint8Array { - return this.bb!.bytes(); -} - -static deserialize(buffer: Uint8Array):Referrable { - return MyGame_Example_Referrable.getRootAsReferrable(new flatbuffers.ByteBuffer(buffer)) -} -} - -/** - * an example documentation comment: "monster object" - */ -export class MyGame_Example_Monster { - bb: flatbuffers.ByteBuffer|null = null; - bb_pos = 0; - __init(i:number, bb:flatbuffers.ByteBuffer):MyGame_Example_Monster { - this.bb_pos = i; - this.bb = bb; - return this; -} - -static getRootAsMonster(bb:flatbuffers.ByteBuffer, obj?:MyGame_Example_Monster):MyGame_Example_Monster { - return (obj || new MyGame_Example_Monster()).__init(bb.readInt32(bb.position()) + bb.position(), bb); -} - -static getSizePrefixedRootAsMonster(bb:flatbuffers.ByteBuffer, obj?:MyGame_Example_Monster):MyGame_Example_Monster { - bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH); - return (obj || new MyGame_Example_Monster()).__init(bb.readInt32(bb.position()) + bb.position(), bb); -} - -static bufferHasIdentifier(bb:flatbuffers.ByteBuffer):boolean { - return bb.__has_identifier('MONS'); -} - -pos(obj?:MyGame_Example_Vec3):MyGame_Example_Vec3|null { - const offset = this.bb!.__offset(this.bb_pos, 4); - return offset ? (obj || new MyGame_Example_Vec3()).__init(this.bb_pos + offset, this.bb!) : null; -} - -mana():number { - const offset = this.bb!.__offset(this.bb_pos, 6); - return offset ? this.bb!.readInt16(this.bb_pos + offset) : 150; -} - -hp():number { - const offset = this.bb!.__offset(this.bb_pos, 8); - return offset ? this.bb!.readInt16(this.bb_pos + offset) : 100; -} - -name():string|null -name(optionalEncoding:flatbuffers.Encoding):string|Uint8Array|null -name(optionalEncoding?:any):string|Uint8Array|null { - const offset = this.bb!.__offset(this.bb_pos, 10); - return offset ? this.bb!.__string(this.bb_pos + offset, optionalEncoding) : null; -} - -inventory(index: number):number|null { - const offset = this.bb!.__offset(this.bb_pos, 14); - return offset ? this.bb!.readUint8(this.bb!.__vector(this.bb_pos + offset) + index) : 0; -} - -inventoryLength():number { - const offset = this.bb!.__offset(this.bb_pos, 14); - return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0; -} - -inventoryArray():Uint8Array|null { - const offset = this.bb!.__offset(this.bb_pos, 14); - return offset ? new Uint8Array(this.bb!.bytes().buffer, this.bb!.bytes().byteOffset + this.bb!.__vector(this.bb_pos + offset), this.bb!.__vector_len(this.bb_pos + offset)) : null; -} - -color():MyGame_Example_Color { - const offset = this.bb!.__offset(this.bb_pos, 16); - return offset ? this.bb!.readUint8(this.bb_pos + offset) : MyGame_Example_Color.Blue; -} - -testType():MyGame_Example_Any { - const offset = this.bb!.__offset(this.bb_pos, 18); - return offset ? this.bb!.readUint8(this.bb_pos + offset) : MyGame_Example_Any.NONE; -} - -test(obj:any):any|null { - const offset = this.bb!.__offset(this.bb_pos, 20); - return offset ? this.bb!.__union(obj, this.bb_pos + offset) : null; -} - -test4(index: number, obj?:MyGame_Example_Test):MyGame_Example_Test|null { - const offset = this.bb!.__offset(this.bb_pos, 22); - return offset ? (obj || new MyGame_Example_Test()).__init(this.bb!.__vector(this.bb_pos + offset) + index * 4, this.bb!) : null; -} - -test4Length():number { - const offset = this.bb!.__offset(this.bb_pos, 22); - return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0; -} - -testarrayofstring(index: number):string -testarrayofstring(index: number,optionalEncoding:flatbuffers.Encoding):string|Uint8Array -testarrayofstring(index: number,optionalEncoding?:any):string|Uint8Array|null { - const offset = this.bb!.__offset(this.bb_pos, 24); - return offset ? this.bb!.__string(this.bb!.__vector(this.bb_pos + offset) + index * 4, optionalEncoding) : null; -} - -testarrayofstringLength():number { - const offset = this.bb!.__offset(this.bb_pos, 24); - return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0; -} - -/** - * an example documentation comment: this will end up in the generated code - * multiline too - */ -testarrayoftables(index: number, obj?:MyGame_Example_Monster):MyGame_Example_Monster|null { - const offset = this.bb!.__offset(this.bb_pos, 26); - return offset ? (obj || new MyGame_Example_Monster()).__init(this.bb!.__indirect(this.bb!.__vector(this.bb_pos + offset) + index * 4), this.bb!) : null; -} - -testarrayoftablesLength():number { - const offset = this.bb!.__offset(this.bb_pos, 26); - return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0; -} - -enemy(obj?:MyGame_Example_Monster):MyGame_Example_Monster|null { - const offset = this.bb!.__offset(this.bb_pos, 28); - return offset ? (obj || new MyGame_Example_Monster()).__init(this.bb!.__indirect(this.bb_pos + offset), this.bb!) : null; -} - -testnestedflatbuffer(index: number):number|null { - const offset = this.bb!.__offset(this.bb_pos, 30); - return offset ? this.bb!.readUint8(this.bb!.__vector(this.bb_pos + offset) + index) : 0; -} - -testnestedflatbufferLength():number { - const offset = this.bb!.__offset(this.bb_pos, 30); - return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0; -} - -testnestedflatbufferArray():Uint8Array|null { - const offset = this.bb!.__offset(this.bb_pos, 30); - return offset ? new Uint8Array(this.bb!.bytes().buffer, this.bb!.bytes().byteOffset + this.bb!.__vector(this.bb_pos + offset), this.bb!.__vector_len(this.bb_pos + offset)) : null; -} - -testempty(obj?:MyGame_Example_Stat):MyGame_Example_Stat|null { - const offset = this.bb!.__offset(this.bb_pos, 32); - return offset ? (obj || new MyGame_Example_Stat()).__init(this.bb!.__indirect(this.bb_pos + offset), this.bb!) : null; -} - -testbool():boolean { - const offset = this.bb!.__offset(this.bb_pos, 34); - return offset ? !!this.bb!.readInt8(this.bb_pos + offset) : false; -} - -testhashs32Fnv1():number { - const offset = this.bb!.__offset(this.bb_pos, 36); - return offset ? this.bb!.readInt32(this.bb_pos + offset) : 0; -} - -testhashu32Fnv1():number { - const offset = this.bb!.__offset(this.bb_pos, 38); - return offset ? this.bb!.readUint32(this.bb_pos + offset) : 0; -} - -testhashs64Fnv1():bigint { - const offset = this.bb!.__offset(this.bb_pos, 40); - return offset ? this.bb!.readInt64(this.bb_pos + offset) : BigInt('0'); -} - -testhashu64Fnv1():bigint { - const offset = this.bb!.__offset(this.bb_pos, 42); - return offset ? this.bb!.readUint64(this.bb_pos + offset) : BigInt('0'); -} - -testhashs32Fnv1a():number { - const offset = this.bb!.__offset(this.bb_pos, 44); - return offset ? this.bb!.readInt32(this.bb_pos + offset) : 0; -} - -testhashu32Fnv1a():number { - const offset = this.bb!.__offset(this.bb_pos, 46); - return offset ? this.bb!.readUint32(this.bb_pos + offset) : 0; -} - -testhashs64Fnv1a():bigint { - const offset = this.bb!.__offset(this.bb_pos, 48); - return offset ? this.bb!.readInt64(this.bb_pos + offset) : BigInt('0'); -} - -testhashu64Fnv1a():bigint { - const offset = this.bb!.__offset(this.bb_pos, 50); - return offset ? this.bb!.readUint64(this.bb_pos + offset) : BigInt('0'); -} - -testarrayofbools(index: number):boolean|null { - const offset = this.bb!.__offset(this.bb_pos, 52); - return offset ? !!this.bb!.readInt8(this.bb!.__vector(this.bb_pos + offset) + index) : false; -} - -testarrayofboolsLength():number { - const offset = this.bb!.__offset(this.bb_pos, 52); - return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0; -} - -testarrayofboolsArray():Int8Array|null { - const offset = this.bb!.__offset(this.bb_pos, 52); - return offset ? new Int8Array(this.bb!.bytes().buffer, this.bb!.bytes().byteOffset + this.bb!.__vector(this.bb_pos + offset), this.bb!.__vector_len(this.bb_pos + offset)) : null; -} - -testf():number { - const offset = this.bb!.__offset(this.bb_pos, 54); - return offset ? this.bb!.readFloat32(this.bb_pos + offset) : 3.14159; -} - -testf2():number { - const offset = this.bb!.__offset(this.bb_pos, 56); - return offset ? this.bb!.readFloat32(this.bb_pos + offset) : 3.0; -} - -testf3():number { - const offset = this.bb!.__offset(this.bb_pos, 58); - return offset ? this.bb!.readFloat32(this.bb_pos + offset) : 0.0; -} - -testarrayofstring2(index: number):string -testarrayofstring2(index: number,optionalEncoding:flatbuffers.Encoding):string|Uint8Array -testarrayofstring2(index: number,optionalEncoding?:any):string|Uint8Array|null { - const offset = this.bb!.__offset(this.bb_pos, 60); - return offset ? this.bb!.__string(this.bb!.__vector(this.bb_pos + offset) + index * 4, optionalEncoding) : null; -} - -testarrayofstring2Length():number { - const offset = this.bb!.__offset(this.bb_pos, 60); - return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0; -} - -testarrayofsortedstruct(index: number, obj?:MyGame_Example_Ability):MyGame_Example_Ability|null { - const offset = this.bb!.__offset(this.bb_pos, 62); - return offset ? (obj || new MyGame_Example_Ability()).__init(this.bb!.__vector(this.bb_pos + offset) + index * 8, this.bb!) : null; -} - -testarrayofsortedstructLength():number { - const offset = this.bb!.__offset(this.bb_pos, 62); - return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0; -} - -flex(index: number):number|null { - const offset = this.bb!.__offset(this.bb_pos, 64); - return offset ? this.bb!.readUint8(this.bb!.__vector(this.bb_pos + offset) + index) : 0; -} - -flexLength():number { - const offset = this.bb!.__offset(this.bb_pos, 64); - return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0; -} - -flexArray():Uint8Array|null { - const offset = this.bb!.__offset(this.bb_pos, 64); - return offset ? new Uint8Array(this.bb!.bytes().buffer, this.bb!.bytes().byteOffset + this.bb!.__vector(this.bb_pos + offset), this.bb!.__vector_len(this.bb_pos + offset)) : null; -} - -test5(index: number, obj?:MyGame_Example_Test):MyGame_Example_Test|null { - const offset = this.bb!.__offset(this.bb_pos, 66); - return offset ? (obj || new MyGame_Example_Test()).__init(this.bb!.__vector(this.bb_pos + offset) + index * 4, this.bb!) : null; -} - -test5Length():number { - const offset = this.bb!.__offset(this.bb_pos, 66); - return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0; -} - -vectorOfLongs(index: number):bigint|null { - const offset = this.bb!.__offset(this.bb_pos, 68); - return offset ? this.bb!.readInt64(this.bb!.__vector(this.bb_pos + offset) + index * 8) : BigInt(0); -} - -vectorOfLongsLength():number { - const offset = this.bb!.__offset(this.bb_pos, 68); - return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0; -} - -vectorOfDoubles(index: number):number|null { - const offset = this.bb!.__offset(this.bb_pos, 70); - return offset ? this.bb!.readFloat64(this.bb!.__vector(this.bb_pos + offset) + index * 8) : 0; -} - -vectorOfDoublesLength():number { - const offset = this.bb!.__offset(this.bb_pos, 70); - return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0; -} - -vectorOfDoublesArray():Float64Array|null { - const offset = this.bb!.__offset(this.bb_pos, 70); - return offset ? new Float64Array(this.bb!.bytes().buffer, this.bb!.bytes().byteOffset + this.bb!.__vector(this.bb_pos + offset), this.bb!.__vector_len(this.bb_pos + offset)) : null; -} - -parentNamespaceTest(obj?:MyGame_InParentNamespace):MyGame_InParentNamespace|null { - const offset = this.bb!.__offset(this.bb_pos, 72); - return offset ? (obj || new MyGame_InParentNamespace()).__init(this.bb!.__indirect(this.bb_pos + offset), this.bb!) : null; -} - -vectorOfReferrables(index: number, obj?:MyGame_Example_Referrable):MyGame_Example_Referrable|null { - const offset = this.bb!.__offset(this.bb_pos, 74); - return offset ? (obj || new MyGame_Example_Referrable()).__init(this.bb!.__indirect(this.bb!.__vector(this.bb_pos + offset) + index * 4), this.bb!) : null; -} - -vectorOfReferrablesLength():number { - const offset = this.bb!.__offset(this.bb_pos, 74); - return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0; -} - -singleWeakReference():bigint { - const offset = this.bb!.__offset(this.bb_pos, 76); - return offset ? this.bb!.readUint64(this.bb_pos + offset) : BigInt('0'); -} - -vectorOfWeakReferences(index: number):bigint|null { - const offset = this.bb!.__offset(this.bb_pos, 78); - return offset ? this.bb!.readUint64(this.bb!.__vector(this.bb_pos + offset) + index * 8) : BigInt(0); -} - -vectorOfWeakReferencesLength():number { - const offset = this.bb!.__offset(this.bb_pos, 78); - return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0; -} - -vectorOfStrongReferrables(index: number, obj?:MyGame_Example_Referrable):MyGame_Example_Referrable|null { - const offset = this.bb!.__offset(this.bb_pos, 80); - return offset ? (obj || new MyGame_Example_Referrable()).__init(this.bb!.__indirect(this.bb!.__vector(this.bb_pos + offset) + index * 4), this.bb!) : null; -} - -vectorOfStrongReferrablesLength():number { - const offset = this.bb!.__offset(this.bb_pos, 80); - return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0; -} - -coOwningReference():bigint { - const offset = this.bb!.__offset(this.bb_pos, 82); - return offset ? this.bb!.readUint64(this.bb_pos + offset) : BigInt('0'); -} - -vectorOfCoOwningReferences(index: number):bigint|null { - const offset = this.bb!.__offset(this.bb_pos, 84); - return offset ? this.bb!.readUint64(this.bb!.__vector(this.bb_pos + offset) + index * 8) : BigInt(0); -} - -vectorOfCoOwningReferencesLength():number { - const offset = this.bb!.__offset(this.bb_pos, 84); - return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0; -} - -nonOwningReference():bigint { - const offset = this.bb!.__offset(this.bb_pos, 86); - return offset ? this.bb!.readUint64(this.bb_pos + offset) : BigInt('0'); -} - -vectorOfNonOwningReferences(index: number):bigint|null { - const offset = this.bb!.__offset(this.bb_pos, 88); - return offset ? this.bb!.readUint64(this.bb!.__vector(this.bb_pos + offset) + index * 8) : BigInt(0); -} - -vectorOfNonOwningReferencesLength():number { - const offset = this.bb!.__offset(this.bb_pos, 88); - return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0; -} - -anyUniqueType():MyGame_Example_AnyUniqueAliases { - const offset = this.bb!.__offset(this.bb_pos, 90); - return offset ? this.bb!.readUint8(this.bb_pos + offset) : MyGame_Example_AnyUniqueAliases.NONE; -} - -anyUnique(obj:any):any|null { - const offset = this.bb!.__offset(this.bb_pos, 92); - return offset ? this.bb!.__union(obj, this.bb_pos + offset) : null; -} - -anyAmbiguousType():MyGame_Example_AnyAmbiguousAliases { - const offset = this.bb!.__offset(this.bb_pos, 94); - return offset ? this.bb!.readUint8(this.bb_pos + offset) : MyGame_Example_AnyAmbiguousAliases.NONE; -} - -anyAmbiguous(obj:any):any|null { - const offset = this.bb!.__offset(this.bb_pos, 96); - return offset ? this.bb!.__union(obj, this.bb_pos + offset) : null; -} - -vectorOfEnums(index: number):MyGame_Example_Color|null { - const offset = this.bb!.__offset(this.bb_pos, 98); - return offset ? this.bb!.readUint8(this.bb!.__vector(this.bb_pos + offset) + index) : 0; -} - -vectorOfEnumsLength():number { - const offset = this.bb!.__offset(this.bb_pos, 98); - return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0; -} - -vectorOfEnumsArray():Uint8Array|null { - const offset = this.bb!.__offset(this.bb_pos, 98); - return offset ? new Uint8Array(this.bb!.bytes().buffer, this.bb!.bytes().byteOffset + this.bb!.__vector(this.bb_pos + offset), this.bb!.__vector_len(this.bb_pos + offset)) : null; -} - -signedEnum():MyGame_Example_Race { - const offset = this.bb!.__offset(this.bb_pos, 100); - return offset ? this.bb!.readInt8(this.bb_pos + offset) : MyGame_Example_Race.None; -} - -testrequirednestedflatbuffer(index: number):number|null { - const offset = this.bb!.__offset(this.bb_pos, 102); - return offset ? this.bb!.readUint8(this.bb!.__vector(this.bb_pos + offset) + index) : 0; -} - -testrequirednestedflatbufferLength():number { - const offset = this.bb!.__offset(this.bb_pos, 102); - return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0; -} - -testrequirednestedflatbufferArray():Uint8Array|null { - const offset = this.bb!.__offset(this.bb_pos, 102); - return offset ? new Uint8Array(this.bb!.bytes().buffer, this.bb!.bytes().byteOffset + this.bb!.__vector(this.bb_pos + offset), this.bb!.__vector_len(this.bb_pos + offset)) : null; -} - -scalarKeySortedTables(index: number, obj?:MyGame_Example_Stat):MyGame_Example_Stat|null { - const offset = this.bb!.__offset(this.bb_pos, 104); - return offset ? (obj || new MyGame_Example_Stat()).__init(this.bb!.__indirect(this.bb!.__vector(this.bb_pos + offset) + index * 4), this.bb!) : null; -} - -scalarKeySortedTablesLength():number { - const offset = this.bb!.__offset(this.bb_pos, 104); - return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0; -} - -nativeInline(obj?:MyGame_Example_Test):MyGame_Example_Test|null { - const offset = this.bb!.__offset(this.bb_pos, 106); - return offset ? (obj || new MyGame_Example_Test()).__init(this.bb_pos + offset, this.bb!) : null; -} - -longEnumNonEnumDefault():bigint { - const offset = this.bb!.__offset(this.bb_pos, 108); - return offset ? this.bb!.readUint64(this.bb_pos + offset) : BigInt('0'); -} - -longEnumNormalDefault():bigint { - const offset = this.bb!.__offset(this.bb_pos, 110); - return offset ? this.bb!.readUint64(this.bb_pos + offset) : BigInt('2'); -} - -nanDefault():number { - const offset = this.bb!.__offset(this.bb_pos, 112); - return offset ? this.bb!.readFloat32(this.bb_pos + offset) : NaN; -} - -infDefault():number { - const offset = this.bb!.__offset(this.bb_pos, 114); - return offset ? this.bb!.readFloat32(this.bb_pos + offset) : Infinity; -} - -positiveInfDefault():number { - const offset = this.bb!.__offset(this.bb_pos, 116); - return offset ? this.bb!.readFloat32(this.bb_pos + offset) : Infinity; -} - -infinityDefault():number { - const offset = this.bb!.__offset(this.bb_pos, 118); - return offset ? this.bb!.readFloat32(this.bb_pos + offset) : Infinity; -} - -positiveInfinityDefault():number { - const offset = this.bb!.__offset(this.bb_pos, 120); - return offset ? this.bb!.readFloat32(this.bb_pos + offset) : Infinity; -} - -negativeInfDefault():number { - const offset = this.bb!.__offset(this.bb_pos, 122); - return offset ? this.bb!.readFloat32(this.bb_pos + offset) : -Infinity; -} - -negativeInfinityDefault():number { - const offset = this.bb!.__offset(this.bb_pos, 124); - return offset ? this.bb!.readFloat32(this.bb_pos + offset) : -Infinity; -} - -doubleInfDefault():number { - const offset = this.bb!.__offset(this.bb_pos, 126); - return offset ? this.bb!.readFloat64(this.bb_pos + offset) : Infinity; -} - -static startMonster(builder:flatbuffers.Builder) { - builder.startObject(62); -} - -static addPos(builder:flatbuffers.Builder, posOffset:flatbuffers.Offset) { - builder.addFieldStruct(0, posOffset, 0); -} - -static addMana(builder:flatbuffers.Builder, mana:number) { - builder.addFieldInt16(1, mana, 150); -} - -static addHp(builder:flatbuffers.Builder, hp:number) { - builder.addFieldInt16(2, hp, 100); -} - -static addName(builder:flatbuffers.Builder, nameOffset:flatbuffers.Offset) { - builder.addFieldOffset(3, nameOffset, 0); -} - -static addInventory(builder:flatbuffers.Builder, inventoryOffset:flatbuffers.Offset) { - builder.addFieldOffset(5, inventoryOffset, 0); -} - -static createInventoryVector(builder:flatbuffers.Builder, data:number[]|Uint8Array):flatbuffers.Offset { - builder.startVector(1, data.length, 1); - for (let i = data.length - 1; i >= 0; i--) { - builder.addInt8(data[i]!); - } - return builder.endVector(); -} - -static startInventoryVector(builder:flatbuffers.Builder, numElems:number) { - builder.startVector(1, numElems, 1); -} - -static addColor(builder:flatbuffers.Builder, color:MyGame_Example_Color) { - builder.addFieldInt8(6, color, MyGame_Example_Color.Blue); -} - -static addTestType(builder:flatbuffers.Builder, testType:MyGame_Example_Any) { - builder.addFieldInt8(7, testType, MyGame_Example_Any.NONE); -} - -static addTest(builder:flatbuffers.Builder, testOffset:flatbuffers.Offset) { - builder.addFieldOffset(8, testOffset, 0); -} - -static addTest4(builder:flatbuffers.Builder, test4Offset:flatbuffers.Offset) { - builder.addFieldOffset(9, test4Offset, 0); -} - -static startTest4Vector(builder:flatbuffers.Builder, numElems:number) { - builder.startVector(4, numElems, 2); -} - -static addTestarrayofstring(builder:flatbuffers.Builder, testarrayofstringOffset:flatbuffers.Offset) { - builder.addFieldOffset(10, testarrayofstringOffset, 0); -} - -static createTestarrayofstringVector(builder:flatbuffers.Builder, data:flatbuffers.Offset[]):flatbuffers.Offset { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]!); - } - return builder.endVector(); -} - -static startTestarrayofstringVector(builder:flatbuffers.Builder, numElems:number) { - builder.startVector(4, numElems, 4); -} - -static addTestarrayoftables(builder:flatbuffers.Builder, testarrayoftablesOffset:flatbuffers.Offset) { - builder.addFieldOffset(11, testarrayoftablesOffset, 0); -} - -static createTestarrayoftablesVector(builder:flatbuffers.Builder, data:flatbuffers.Offset[]):flatbuffers.Offset { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]!); - } - return builder.endVector(); -} - -static startTestarrayoftablesVector(builder:flatbuffers.Builder, numElems:number) { - builder.startVector(4, numElems, 4); -} - -static addEnemy(builder:flatbuffers.Builder, enemyOffset:flatbuffers.Offset) { - builder.addFieldOffset(12, enemyOffset, 0); -} - -static addTestnestedflatbuffer(builder:flatbuffers.Builder, testnestedflatbufferOffset:flatbuffers.Offset) { - builder.addFieldOffset(13, testnestedflatbufferOffset, 0); -} - -static createTestnestedflatbufferVector(builder:flatbuffers.Builder, data:number[]|Uint8Array):flatbuffers.Offset { - builder.startVector(1, data.length, 1); - for (let i = data.length - 1; i >= 0; i--) { - builder.addInt8(data[i]!); - } - return builder.endVector(); -} - -static startTestnestedflatbufferVector(builder:flatbuffers.Builder, numElems:number) { - builder.startVector(1, numElems, 1); -} - -static addTestempty(builder:flatbuffers.Builder, testemptyOffset:flatbuffers.Offset) { - builder.addFieldOffset(14, testemptyOffset, 0); -} - -static addTestbool(builder:flatbuffers.Builder, testbool:boolean) { - builder.addFieldInt8(15, +testbool, +false); -} - -static addTesthashs32Fnv1(builder:flatbuffers.Builder, testhashs32Fnv1:number) { - builder.addFieldInt32(16, testhashs32Fnv1, 0); -} - -static addTesthashu32Fnv1(builder:flatbuffers.Builder, testhashu32Fnv1:number) { - builder.addFieldInt32(17, testhashu32Fnv1, 0); -} - -static addTesthashs64Fnv1(builder:flatbuffers.Builder, testhashs64Fnv1:bigint) { - builder.addFieldInt64(18, testhashs64Fnv1, BigInt('0')); -} - -static addTesthashu64Fnv1(builder:flatbuffers.Builder, testhashu64Fnv1:bigint) { - builder.addFieldInt64(19, testhashu64Fnv1, BigInt('0')); -} - -static addTesthashs32Fnv1a(builder:flatbuffers.Builder, testhashs32Fnv1a:number) { - builder.addFieldInt32(20, testhashs32Fnv1a, 0); -} - -static addTesthashu32Fnv1a(builder:flatbuffers.Builder, testhashu32Fnv1a:number) { - builder.addFieldInt32(21, testhashu32Fnv1a, 0); -} - -static addTesthashs64Fnv1a(builder:flatbuffers.Builder, testhashs64Fnv1a:bigint) { - builder.addFieldInt64(22, testhashs64Fnv1a, BigInt('0')); -} - -static addTesthashu64Fnv1a(builder:flatbuffers.Builder, testhashu64Fnv1a:bigint) { - builder.addFieldInt64(23, testhashu64Fnv1a, BigInt('0')); -} - -static addTestarrayofbools(builder:flatbuffers.Builder, testarrayofboolsOffset:flatbuffers.Offset) { - builder.addFieldOffset(24, testarrayofboolsOffset, 0); -} - -static createTestarrayofboolsVector(builder:flatbuffers.Builder, data:boolean[]):flatbuffers.Offset { - builder.startVector(1, data.length, 1); - for (let i = data.length - 1; i >= 0; i--) { - builder.addInt8(+data[i]!); - } - return builder.endVector(); -} - -static startTestarrayofboolsVector(builder:flatbuffers.Builder, numElems:number) { - builder.startVector(1, numElems, 1); -} - -static addTestf(builder:flatbuffers.Builder, testf:number) { - builder.addFieldFloat32(25, testf, 3.14159); -} - -static addTestf2(builder:flatbuffers.Builder, testf2:number) { - builder.addFieldFloat32(26, testf2, 3.0); -} - -static addTestf3(builder:flatbuffers.Builder, testf3:number) { - builder.addFieldFloat32(27, testf3, 0.0); -} - -static addTestarrayofstring2(builder:flatbuffers.Builder, testarrayofstring2Offset:flatbuffers.Offset) { - builder.addFieldOffset(28, testarrayofstring2Offset, 0); -} - -static createTestarrayofstring2Vector(builder:flatbuffers.Builder, data:flatbuffers.Offset[]):flatbuffers.Offset { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]!); - } - return builder.endVector(); -} - -static startTestarrayofstring2Vector(builder:flatbuffers.Builder, numElems:number) { - builder.startVector(4, numElems, 4); -} - -static addTestarrayofsortedstruct(builder:flatbuffers.Builder, testarrayofsortedstructOffset:flatbuffers.Offset) { - builder.addFieldOffset(29, testarrayofsortedstructOffset, 0); -} - -static startTestarrayofsortedstructVector(builder:flatbuffers.Builder, numElems:number) { - builder.startVector(8, numElems, 4); -} - -static addFlex(builder:flatbuffers.Builder, flexOffset:flatbuffers.Offset) { - builder.addFieldOffset(30, flexOffset, 0); -} - -static createFlexVector(builder:flatbuffers.Builder, data:number[]|Uint8Array):flatbuffers.Offset { - builder.startVector(1, data.length, 1); - for (let i = data.length - 1; i >= 0; i--) { - builder.addInt8(data[i]!); - } - return builder.endVector(); -} - -static startFlexVector(builder:flatbuffers.Builder, numElems:number) { - builder.startVector(1, numElems, 1); -} - -static addTest5(builder:flatbuffers.Builder, test5Offset:flatbuffers.Offset) { - builder.addFieldOffset(31, test5Offset, 0); -} - -static startTest5Vector(builder:flatbuffers.Builder, numElems:number) { - builder.startVector(4, numElems, 2); -} - -static addVectorOfLongs(builder:flatbuffers.Builder, vectorOfLongsOffset:flatbuffers.Offset) { - builder.addFieldOffset(32, vectorOfLongsOffset, 0); -} - -static createVectorOfLongsVector(builder:flatbuffers.Builder, data:bigint[]):flatbuffers.Offset { - builder.startVector(8, data.length, 8); - for (let i = data.length - 1; i >= 0; i--) { - builder.addInt64(data[i]!); - } - return builder.endVector(); -} - -static startVectorOfLongsVector(builder:flatbuffers.Builder, numElems:number) { - builder.startVector(8, numElems, 8); -} - -static addVectorOfDoubles(builder:flatbuffers.Builder, vectorOfDoublesOffset:flatbuffers.Offset) { - builder.addFieldOffset(33, vectorOfDoublesOffset, 0); -} - -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 createVectorOfDoublesVector(builder:flatbuffers.Builder, data:number[]|Float64Array|Uint8Array):flatbuffers.Offset { - builder.startVector(8, data.length, 8); - for (let i = data.length - 1; i >= 0; i--) { - builder.addFloat64(data[i]!); - } - return builder.endVector(); -} - -static startVectorOfDoublesVector(builder:flatbuffers.Builder, numElems:number) { - builder.startVector(8, numElems, 8); -} - -static addParentNamespaceTest(builder:flatbuffers.Builder, parentNamespaceTestOffset:flatbuffers.Offset) { - builder.addFieldOffset(34, parentNamespaceTestOffset, 0); -} - -static addVectorOfReferrables(builder:flatbuffers.Builder, vectorOfReferrablesOffset:flatbuffers.Offset) { - builder.addFieldOffset(35, vectorOfReferrablesOffset, 0); -} - -static createVectorOfReferrablesVector(builder:flatbuffers.Builder, data:flatbuffers.Offset[]):flatbuffers.Offset { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]!); - } - return builder.endVector(); -} - -static startVectorOfReferrablesVector(builder:flatbuffers.Builder, numElems:number) { - builder.startVector(4, numElems, 4); -} - -static addSingleWeakReference(builder:flatbuffers.Builder, singleWeakReference:bigint) { - builder.addFieldInt64(36, singleWeakReference, BigInt('0')); -} - -static addVectorOfWeakReferences(builder:flatbuffers.Builder, vectorOfWeakReferencesOffset:flatbuffers.Offset) { - builder.addFieldOffset(37, vectorOfWeakReferencesOffset, 0); -} - -static createVectorOfWeakReferencesVector(builder:flatbuffers.Builder, data:bigint[]):flatbuffers.Offset { - builder.startVector(8, data.length, 8); - for (let i = data.length - 1; i >= 0; i--) { - builder.addInt64(data[i]!); - } - return builder.endVector(); -} - -static startVectorOfWeakReferencesVector(builder:flatbuffers.Builder, numElems:number) { - builder.startVector(8, numElems, 8); -} - -static addVectorOfStrongReferrables(builder:flatbuffers.Builder, vectorOfStrongReferrablesOffset:flatbuffers.Offset) { - builder.addFieldOffset(38, vectorOfStrongReferrablesOffset, 0); -} - -static createVectorOfStrongReferrablesVector(builder:flatbuffers.Builder, data:flatbuffers.Offset[]):flatbuffers.Offset { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]!); - } - return builder.endVector(); -} - -static startVectorOfStrongReferrablesVector(builder:flatbuffers.Builder, numElems:number) { - builder.startVector(4, numElems, 4); -} - -static addCoOwningReference(builder:flatbuffers.Builder, coOwningReference:bigint) { - builder.addFieldInt64(39, coOwningReference, BigInt('0')); -} - -static addVectorOfCoOwningReferences(builder:flatbuffers.Builder, vectorOfCoOwningReferencesOffset:flatbuffers.Offset) { - builder.addFieldOffset(40, vectorOfCoOwningReferencesOffset, 0); -} - -static createVectorOfCoOwningReferencesVector(builder:flatbuffers.Builder, data:bigint[]):flatbuffers.Offset { - builder.startVector(8, data.length, 8); - for (let i = data.length - 1; i >= 0; i--) { - builder.addInt64(data[i]!); - } - return builder.endVector(); -} - -static startVectorOfCoOwningReferencesVector(builder:flatbuffers.Builder, numElems:number) { - builder.startVector(8, numElems, 8); -} - -static addNonOwningReference(builder:flatbuffers.Builder, nonOwningReference:bigint) { - builder.addFieldInt64(41, nonOwningReference, BigInt('0')); -} - -static addVectorOfNonOwningReferences(builder:flatbuffers.Builder, vectorOfNonOwningReferencesOffset:flatbuffers.Offset) { - builder.addFieldOffset(42, vectorOfNonOwningReferencesOffset, 0); -} - -static createVectorOfNonOwningReferencesVector(builder:flatbuffers.Builder, data:bigint[]):flatbuffers.Offset { - builder.startVector(8, data.length, 8); - for (let i = data.length - 1; i >= 0; i--) { - builder.addInt64(data[i]!); - } - return builder.endVector(); -} - -static startVectorOfNonOwningReferencesVector(builder:flatbuffers.Builder, numElems:number) { - builder.startVector(8, numElems, 8); -} - -static addAnyUniqueType(builder:flatbuffers.Builder, anyUniqueType:MyGame_Example_AnyUniqueAliases) { - builder.addFieldInt8(43, anyUniqueType, MyGame_Example_AnyUniqueAliases.NONE); -} - -static addAnyUnique(builder:flatbuffers.Builder, anyUniqueOffset:flatbuffers.Offset) { - builder.addFieldOffset(44, anyUniqueOffset, 0); -} - -static addAnyAmbiguousType(builder:flatbuffers.Builder, anyAmbiguousType:MyGame_Example_AnyAmbiguousAliases) { - builder.addFieldInt8(45, anyAmbiguousType, MyGame_Example_AnyAmbiguousAliases.NONE); -} - -static addAnyAmbiguous(builder:flatbuffers.Builder, anyAmbiguousOffset:flatbuffers.Offset) { - builder.addFieldOffset(46, anyAmbiguousOffset, 0); -} - -static addVectorOfEnums(builder:flatbuffers.Builder, vectorOfEnumsOffset:flatbuffers.Offset) { - builder.addFieldOffset(47, vectorOfEnumsOffset, 0); -} - -static createVectorOfEnumsVector(builder:flatbuffers.Builder, data:MyGame_Example_Color[]):flatbuffers.Offset { - builder.startVector(1, data.length, 1); - for (let i = data.length - 1; i >= 0; i--) { - builder.addInt8(data[i]!); - } - return builder.endVector(); -} - -static startVectorOfEnumsVector(builder:flatbuffers.Builder, numElems:number) { - builder.startVector(1, numElems, 1); -} - -static addSignedEnum(builder:flatbuffers.Builder, signedEnum:MyGame_Example_Race) { - builder.addFieldInt8(48, signedEnum, MyGame_Example_Race.None); -} - -static addTestrequirednestedflatbuffer(builder:flatbuffers.Builder, testrequirednestedflatbufferOffset:flatbuffers.Offset) { - builder.addFieldOffset(49, testrequirednestedflatbufferOffset, 0); -} - -static createTestrequirednestedflatbufferVector(builder:flatbuffers.Builder, data:number[]|Uint8Array):flatbuffers.Offset { - builder.startVector(1, data.length, 1); - for (let i = data.length - 1; i >= 0; i--) { - builder.addInt8(data[i]!); - } - return builder.endVector(); -} - -static startTestrequirednestedflatbufferVector(builder:flatbuffers.Builder, numElems:number) { - builder.startVector(1, numElems, 1); -} - -static addScalarKeySortedTables(builder:flatbuffers.Builder, scalarKeySortedTablesOffset:flatbuffers.Offset) { - builder.addFieldOffset(50, scalarKeySortedTablesOffset, 0); -} - -static createScalarKeySortedTablesVector(builder:flatbuffers.Builder, data:flatbuffers.Offset[]):flatbuffers.Offset { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]!); - } - return builder.endVector(); -} - -static startScalarKeySortedTablesVector(builder:flatbuffers.Builder, numElems:number) { - builder.startVector(4, numElems, 4); -} - -static addNativeInline(builder:flatbuffers.Builder, nativeInlineOffset:flatbuffers.Offset) { - builder.addFieldStruct(51, nativeInlineOffset, 0); -} - -static addLongEnumNonEnumDefault(builder:flatbuffers.Builder, longEnumNonEnumDefault:bigint) { - builder.addFieldInt64(52, longEnumNonEnumDefault, BigInt('0')); -} - -static addLongEnumNormalDefault(builder:flatbuffers.Builder, longEnumNormalDefault:bigint) { - builder.addFieldInt64(53, longEnumNormalDefault, BigInt('2')); -} - -static addNanDefault(builder:flatbuffers.Builder, nanDefault:number) { - builder.addFieldFloat32(54, nanDefault, NaN); -} - -static addInfDefault(builder:flatbuffers.Builder, infDefault:number) { - builder.addFieldFloat32(55, infDefault, Infinity); -} - -static addPositiveInfDefault(builder:flatbuffers.Builder, positiveInfDefault:number) { - builder.addFieldFloat32(56, positiveInfDefault, Infinity); -} - -static addInfinityDefault(builder:flatbuffers.Builder, infinityDefault:number) { - builder.addFieldFloat32(57, infinityDefault, Infinity); -} - -static addPositiveInfinityDefault(builder:flatbuffers.Builder, positiveInfinityDefault:number) { - builder.addFieldFloat32(58, positiveInfinityDefault, Infinity); -} - -static addNegativeInfDefault(builder:flatbuffers.Builder, negativeInfDefault:number) { - builder.addFieldFloat32(59, negativeInfDefault, -Infinity); -} - -static addNegativeInfinityDefault(builder:flatbuffers.Builder, negativeInfinityDefault:number) { - builder.addFieldFloat32(60, negativeInfinityDefault, -Infinity); -} - -static addDoubleInfDefault(builder:flatbuffers.Builder, doubleInfDefault:number) { - builder.addFieldFloat64(61, doubleInfDefault, Infinity); -} - -static endMonster(builder:flatbuffers.Builder):flatbuffers.Offset { - const offset = builder.endObject(); - builder.requiredField(offset, 10) // name - return offset; -} - -static finishMonsterBuffer(builder:flatbuffers.Builder, offset:flatbuffers.Offset) { - builder.finish(offset, 'MONS'); -} - -static finishSizePrefixedMonsterBuffer(builder:flatbuffers.Builder, offset:flatbuffers.Offset) { - builder.finish(offset, 'MONS', true); -} - - -serialize():Uint8Array { - return this.bb!.bytes(); -} - -static deserialize(buffer: Uint8Array):Monster { - return MyGame_Example_Monster.getRootAsMonster(new flatbuffers.ByteBuffer(buffer)) -} -} - -export class MyGame_Example_TypeAliases { - bb: flatbuffers.ByteBuffer|null = null; - bb_pos = 0; - __init(i:number, bb:flatbuffers.ByteBuffer):MyGame_Example_TypeAliases { - this.bb_pos = i; - this.bb = bb; - return this; -} - -static getRootAsTypeAliases(bb:flatbuffers.ByteBuffer, obj?:MyGame_Example_TypeAliases):MyGame_Example_TypeAliases { - return (obj || new MyGame_Example_TypeAliases()).__init(bb.readInt32(bb.position()) + bb.position(), bb); -} - -static getSizePrefixedRootAsTypeAliases(bb:flatbuffers.ByteBuffer, obj?:MyGame_Example_TypeAliases):MyGame_Example_TypeAliases { - bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH); - return (obj || new MyGame_Example_TypeAliases()).__init(bb.readInt32(bb.position()) + bb.position(), bb); -} - -i8():number { - const offset = this.bb!.__offset(this.bb_pos, 4); - return offset ? this.bb!.readInt8(this.bb_pos + offset) : 0; -} - -u8():number { - const offset = this.bb!.__offset(this.bb_pos, 6); - return offset ? this.bb!.readUint8(this.bb_pos + offset) : 0; -} - -i16():number { - const offset = this.bb!.__offset(this.bb_pos, 8); - return offset ? this.bb!.readInt16(this.bb_pos + offset) : 0; -} - -u16():number { - const offset = this.bb!.__offset(this.bb_pos, 10); - return offset ? this.bb!.readUint16(this.bb_pos + offset) : 0; -} - -i32():number { - const offset = this.bb!.__offset(this.bb_pos, 12); - return offset ? this.bb!.readInt32(this.bb_pos + offset) : 0; -} - -u32():number { - const offset = this.bb!.__offset(this.bb_pos, 14); - return offset ? this.bb!.readUint32(this.bb_pos + offset) : 0; -} - -i64():bigint { - const offset = this.bb!.__offset(this.bb_pos, 16); - return offset ? this.bb!.readInt64(this.bb_pos + offset) : BigInt('0'); -} - -u64():bigint { - const offset = this.bb!.__offset(this.bb_pos, 18); - return offset ? this.bb!.readUint64(this.bb_pos + offset) : BigInt('0'); -} - -f32():number { - const offset = this.bb!.__offset(this.bb_pos, 20); - return offset ? this.bb!.readFloat32(this.bb_pos + offset) : 0.0; -} - -f64():number { - const offset = this.bb!.__offset(this.bb_pos, 22); - return offset ? this.bb!.readFloat64(this.bb_pos + offset) : 0.0; -} - -v8(index: number):number|null { - const offset = this.bb!.__offset(this.bb_pos, 24); - return offset ? this.bb!.readInt8(this.bb!.__vector(this.bb_pos + offset) + index) : 0; -} - -v8Length():number { - const offset = this.bb!.__offset(this.bb_pos, 24); - return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0; -} - -v8Array():Int8Array|null { - const offset = this.bb!.__offset(this.bb_pos, 24); - return offset ? new Int8Array(this.bb!.bytes().buffer, this.bb!.bytes().byteOffset + this.bb!.__vector(this.bb_pos + offset), this.bb!.__vector_len(this.bb_pos + offset)) : null; -} - -vf64(index: number):number|null { - const offset = this.bb!.__offset(this.bb_pos, 26); - return offset ? this.bb!.readFloat64(this.bb!.__vector(this.bb_pos + offset) + index * 8) : 0; -} - -vf64Length():number { - const offset = this.bb!.__offset(this.bb_pos, 26); - return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0; -} - -vf64Array():Float64Array|null { - const offset = this.bb!.__offset(this.bb_pos, 26); - return offset ? new Float64Array(this.bb!.bytes().buffer, this.bb!.bytes().byteOffset + this.bb!.__vector(this.bb_pos + offset), this.bb!.__vector_len(this.bb_pos + offset)) : null; -} - -static startTypeAliases(builder:flatbuffers.Builder) { - builder.startObject(12); -} - -static addI8(builder:flatbuffers.Builder, i8:number) { - builder.addFieldInt8(0, i8, 0); -} - -static addU8(builder:flatbuffers.Builder, u8:number) { - builder.addFieldInt8(1, u8, 0); -} - -static addI16(builder:flatbuffers.Builder, i16:number) { - builder.addFieldInt16(2, i16, 0); -} - -static addU16(builder:flatbuffers.Builder, u16:number) { - builder.addFieldInt16(3, u16, 0); -} - -static addI32(builder:flatbuffers.Builder, i32:number) { - builder.addFieldInt32(4, i32, 0); -} - -static addU32(builder:flatbuffers.Builder, u32:number) { - builder.addFieldInt32(5, u32, 0); -} - -static addI64(builder:flatbuffers.Builder, i64:bigint) { - builder.addFieldInt64(6, i64, BigInt('0')); -} - -static addU64(builder:flatbuffers.Builder, u64:bigint) { - builder.addFieldInt64(7, u64, BigInt('0')); -} - -static addF32(builder:flatbuffers.Builder, f32:number) { - builder.addFieldFloat32(8, f32, 0.0); -} - -static addF64(builder:flatbuffers.Builder, f64:number) { - builder.addFieldFloat64(9, f64, 0.0); -} - -static addV8(builder:flatbuffers.Builder, v8Offset:flatbuffers.Offset) { - builder.addFieldOffset(10, v8Offset, 0); -} - -static createV8Vector(builder:flatbuffers.Builder, data:number[]|Int8Array):flatbuffers.Offset; -/** - * @deprecated This Uint8Array overload will be removed in the future. - */ -static createV8Vector(builder:flatbuffers.Builder, data:number[]|Uint8Array):flatbuffers.Offset; -static createV8Vector(builder:flatbuffers.Builder, data:number[]|Int8Array|Uint8Array):flatbuffers.Offset { - builder.startVector(1, data.length, 1); - for (let i = data.length - 1; i >= 0; i--) { - builder.addInt8(data[i]!); - } - return builder.endVector(); -} - -static startV8Vector(builder:flatbuffers.Builder, numElems:number) { - builder.startVector(1, numElems, 1); -} - -static addVf64(builder:flatbuffers.Builder, vf64Offset:flatbuffers.Offset) { - builder.addFieldOffset(11, vf64Offset, 0); -} - -static createVf64Vector(builder:flatbuffers.Builder, data:number[]|Float64Array):flatbuffers.Offset; -/** - * @deprecated This Uint8Array overload will be removed in the future. - */ -static createVf64Vector(builder:flatbuffers.Builder, data:number[]|Uint8Array):flatbuffers.Offset; -static createVf64Vector(builder:flatbuffers.Builder, data:number[]|Float64Array|Uint8Array):flatbuffers.Offset { - builder.startVector(8, data.length, 8); - for (let i = data.length - 1; i >= 0; i--) { - builder.addFloat64(data[i]!); - } - return builder.endVector(); -} - -static startVf64Vector(builder:flatbuffers.Builder, numElems:number) { - builder.startVector(8, numElems, 8); -} - -static endTypeAliases(builder:flatbuffers.Builder):flatbuffers.Offset { - const offset = builder.endObject(); - return offset; -} - -static createTypeAliases(builder:flatbuffers.Builder, i8:number, u8:number, i16:number, u16:number, i32:number, u32:number, i64:bigint, u64:bigint, f32:number, f64:number, v8Offset:flatbuffers.Offset, vf64Offset:flatbuffers.Offset):flatbuffers.Offset { - MyGame_Example_TypeAliases.startTypeAliases(builder); - MyGame_Example_TypeAliases.addI8(builder, i8); - MyGame_Example_TypeAliases.addU8(builder, u8); - MyGame_Example_TypeAliases.addI16(builder, i16); - MyGame_Example_TypeAliases.addU16(builder, u16); - MyGame_Example_TypeAliases.addI32(builder, i32); - MyGame_Example_TypeAliases.addU32(builder, u32); - MyGame_Example_TypeAliases.addI64(builder, i64); - MyGame_Example_TypeAliases.addU64(builder, u64); - MyGame_Example_TypeAliases.addF32(builder, f32); - MyGame_Example_TypeAliases.addF64(builder, f64); - MyGame_Example_TypeAliases.addV8(builder, v8Offset); - MyGame_Example_TypeAliases.addVf64(builder, vf64Offset); - return MyGame_Example_TypeAliases.endTypeAliases(builder); -} - -serialize():Uint8Array { - return this.bb!.bytes(); -} - -static deserialize(buffer: Uint8Array):TypeAliases { - return MyGame_Example_TypeAliases.getRootAsTypeAliases(new flatbuffers.ByteBuffer(buffer)) -} -} - diff --git a/tests/ts/tsconfig.json b/tests/ts/tsconfig.json index aa5f55bc64..d9ef7410c3 100644 --- a/tests/ts/tsconfig.json +++ b/tests/ts/tsconfig.json @@ -1,27 +1,19 @@ { "compilerOptions": { - "target": "ES6", - "lib": ["ES2015", "ES2020.BigInt", "DOM"], - "moduleResolution": "Node", - "noImplicitAny": true, - "strict": true, - "noUnusedParameters": false, - "noUnusedLocals": false, - "noImplicitReturns": true, - "strictNullChecks": true, - "baseUrl": ".", - "noEmit": false + "target": "ES2020", + "lib": ["ES2020", "DOM"], + "module": "NodeNext", + "declaration": true, + "strict": true }, "include": [ "monster_test.ts", "typescript_keywords.ts", - "typescript_keywords_generated.ts", "my-game/**/*.ts", "typescript/**/*.ts", "optional_scalars/**/*.ts", "namespace_test/**/*.ts", "union_vector/**/*.ts", - "arrays_test_complex/**/*.ts", - "no_import_ext/**/*.ts" + "arrays_test_complex/**/*.ts" ] } diff --git a/tests/ts/tsconfig.node.json b/tests/ts/tsconfig.node.json new file mode 100644 index 0000000000..63cc868274 --- /dev/null +++ b/tests/ts/tsconfig.node.json @@ -0,0 +1,12 @@ +{ + "compilerOptions": { + "target": "ES2020", + "lib": ["ES2020", "DOM"], + "moduleResolution": "node", + "declaration": true, + "strict": true + }, + "include": [ + "no_import_ext/**/*.ts" + ] +} diff --git a/tests/ts/typescript.d.ts b/tests/ts/typescript.d.ts new file mode 100644 index 0000000000..3c9fcbf2f0 --- /dev/null +++ b/tests/ts/typescript.d.ts @@ -0,0 +1,2 @@ +export { Object_ } from './typescript/object.js'; +export { class_ } from './typescript/class.js'; diff --git a/tests/ts/typescript.js b/tests/ts/typescript.js new file mode 100644 index 0000000000..0ea0702fc6 --- /dev/null +++ b/tests/ts/typescript.js @@ -0,0 +1,3 @@ +// automatically generated by the FlatBuffers compiler, do not modify +export { Object_ } from './typescript/object.js'; +export { class_ } from './typescript/class.js'; diff --git a/tests/ts/typescript.ts b/tests/ts/typescript.ts new file mode 100644 index 0000000000..216026ef09 --- /dev/null +++ b/tests/ts/typescript.ts @@ -0,0 +1,4 @@ +// automatically generated by the FlatBuffers compiler, do not modify + +export { Object_ } from './typescript/object.js'; +export { class_ } from './typescript/class.js'; diff --git a/tests/ts/typescript/class.d.ts b/tests/ts/typescript/class.d.ts new file mode 100644 index 0000000000..ff6c542226 --- /dev/null +++ b/tests/ts/typescript/class.d.ts @@ -0,0 +1,4 @@ +export declare enum class_ { + new_ = 0, + instanceof_ = 1 +} diff --git a/tests/ts/typescript/class.js b/tests/ts/typescript/class.js index 9b0f2c00b6..5d84d974a5 100644 --- a/tests/ts/typescript/class.js +++ b/tests/ts/typescript/class.js @@ -3,4 +3,4 @@ export var class_; (function (class_) { class_[class_["new_"] = 0] = "new_"; class_[class_["instanceof_"] = 1] = "instanceof_"; -})(class_ || (class_ = {})); +})(class_ = class_ || (class_ = {})); diff --git a/tests/ts/typescript/object.d.ts b/tests/ts/typescript/object.d.ts new file mode 100644 index 0000000000..c8e8b75e8a --- /dev/null +++ b/tests/ts/typescript/object.d.ts @@ -0,0 +1,48 @@ +import * as flatbuffers from 'flatbuffers'; +import { Abc } from '../foobar/abc.js'; +import { class_ as foobar_class_ } from '../foobar/class.js'; +import { Schema, SchemaT } from '../reflection/schema.js'; +import { class_ } from '../typescript/class.js'; +export declare class Object_ implements flatbuffers.IUnpackableObject { + bb: flatbuffers.ByteBuffer | null; + bb_pos: number; + __init(i: number, bb: flatbuffers.ByteBuffer): Object_; + static getRootAsObject(bb: flatbuffers.ByteBuffer, obj?: Object_): Object_; + static getSizePrefixedRootAsObject(bb: flatbuffers.ByteBuffer, obj?: Object_): Object_; + return_(): number; + mutate_return(value: number): boolean; + if_(): number; + mutate_if(value: number): boolean; + switch_(): number; + mutate_switch(value: number): boolean; + enum_(): class_; + mutate_enum(value: class_): boolean; + enum2(): foobar_class_; + mutate_enum2(value: foobar_class_): boolean; + enum3(): Abc; + mutate_enum3(value: Abc): boolean; + reflect(obj?: Schema): Schema | null; + static getFullyQualifiedName(): string; + static startObject(builder: flatbuffers.Builder): void; + static addReturn(builder: flatbuffers.Builder, return_: number): void; + static addIf(builder: flatbuffers.Builder, if_: number): void; + static addSwitch(builder: flatbuffers.Builder, switch_: number): void; + static addEnum(builder: flatbuffers.Builder, enum_: class_): void; + static addEnum2(builder: flatbuffers.Builder, enum2: foobar_class_): void; + static addEnum3(builder: flatbuffers.Builder, enum3: Abc): void; + static addReflect(builder: flatbuffers.Builder, reflectOffset: flatbuffers.Offset): void; + static endObject(builder: flatbuffers.Builder): flatbuffers.Offset; + unpack(): Object_T; + unpackTo(_o: Object_T): void; +} +export declare class Object_T implements flatbuffers.IGeneratedObject { + return_: number; + if_: number; + switch_: number; + enum_: class_; + enum2: foobar_class_; + enum3: Abc; + reflect: SchemaT | null; + constructor(return_?: number, if_?: number, switch_?: number, enum_?: class_, enum2?: foobar_class_, enum3?: Abc, reflect?: SchemaT | null); + pack(builder: flatbuffers.Builder): flatbuffers.Offset; +} diff --git a/tests/ts/typescript_include_generated.ts b/tests/ts/typescript_include.ts similarity index 62% rename from tests/ts/typescript_include_generated.ts rename to tests/ts/typescript_include.ts index d419431cfd..b3242dd94e 100644 --- a/tests/ts/typescript_include_generated.ts +++ b/tests/ts/typescript_include.ts @@ -1,7 +1,3 @@ // automatically generated by the FlatBuffers compiler, do not modify - -export enum class_ { - arguments_ = 0 -} - +export * as foobar from './foobar.js'; diff --git a/tests/ts/typescript_include_generated.cjs b/tests/ts/typescript_include_generated.cjs new file mode 100644 index 0000000000..a54eecfb4b --- /dev/null +++ b/tests/ts/typescript_include_generated.cjs @@ -0,0 +1,31 @@ +"use strict"; +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +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 __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); + +// foobar.ts +var foobar_exports = {}; +__export(foobar_exports, { + Abc: () => Abc +}); +module.exports = __toCommonJS(foobar_exports); + +// foobar/abc.js +var Abc; +(function(Abc2) { + Abc2[Abc2["a"] = 0] = "a"; +})(Abc = Abc || (Abc = {})); diff --git a/tests/ts/typescript_include_generated.js b/tests/ts/typescript_include_generated.js deleted file mode 100644 index e0e1df1bea..0000000000 --- a/tests/ts/typescript_include_generated.js +++ /dev/null @@ -1,5 +0,0 @@ -// automatically generated by the FlatBuffers compiler, do not modify -export var class_; -(function (class_) { - class_[class_["arguments_"] = 0] = "arguments_"; -})(class_ || (class_ = {})); diff --git a/tests/ts/typescript_keywords.d.ts b/tests/ts/typescript_keywords.d.ts new file mode 100644 index 0000000000..cd607f1f9f --- /dev/null +++ b/tests/ts/typescript_keywords.d.ts @@ -0,0 +1,3 @@ +export * as foobar from './foobar.js'; +export * as reflection from './reflection.js'; +export * as typescript from './typescript.js'; diff --git a/tests/ts/typescript_keywords.js b/tests/ts/typescript_keywords.js new file mode 100644 index 0000000000..4d637f9ae2 --- /dev/null +++ b/tests/ts/typescript_keywords.js @@ -0,0 +1,4 @@ +// automatically generated by the FlatBuffers compiler, do not modify +export * as foobar from './foobar.js'; +export * as reflection from './reflection.js'; +export * as typescript from './typescript.js'; diff --git a/tests/ts/typescript_keywords.ts b/tests/ts/typescript_keywords.ts new file mode 100644 index 0000000000..dda7dd409e --- /dev/null +++ b/tests/ts/typescript_keywords.ts @@ -0,0 +1,5 @@ +// automatically generated by the FlatBuffers compiler, do not modify + +export * as foobar from './foobar.js'; +export * as reflection from './reflection.js'; +export * as typescript from './typescript.js'; diff --git a/tests/ts/typescript_keywords_generated.cjs b/tests/ts/typescript_keywords_generated.cjs new file mode 100644 index 0000000000..6560143608 --- /dev/null +++ b/tests/ts/typescript_keywords_generated.cjs @@ -0,0 +1,1864 @@ +"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( + isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, + mod +)); +var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); + +// typescript_keywords.ts +var typescript_keywords_exports = {}; +__export(typescript_keywords_exports, { + foobar: () => foobar_exports, + reflection: () => reflection_exports, + typescript: () => typescript_exports +}); +module.exports = __toCommonJS(typescript_keywords_exports); + +// foobar.js +var foobar_exports = {}; +__export(foobar_exports, { + Abc: () => Abc +}); + +// foobar/abc.js +var Abc; +(function(Abc2) { + Abc2[Abc2["a"] = 0] = "a"; +})(Abc = Abc || (Abc = {})); + +// reflection.js +var reflection_exports = {}; +__export(reflection_exports, { + AdvancedFeatures: () => AdvancedFeatures, + BaseType: () => BaseType, + Enum: () => Enum, + EnumVal: () => EnumVal, + Field: () => Field, + KeyValue: () => KeyValue, + Object_: () => Object_, + RPCCall: () => RPCCall, + Schema: () => Schema, + SchemaFile: () => SchemaFile, + Service: () => Service, + Type: () => Type +}); + +// reflection/advanced-features.js +var AdvancedFeatures; +(function(AdvancedFeatures2) { + AdvancedFeatures2["AdvancedArrayFeatures"] = "1"; + AdvancedFeatures2["AdvancedUnionFeatures"] = "2"; + AdvancedFeatures2["OptionalScalars"] = "4"; + AdvancedFeatures2["DefaultVectorsAndStrings"] = "8"; +})(AdvancedFeatures = AdvancedFeatures || (AdvancedFeatures = {})); + +// reflection/base-type.js +var BaseType; +(function(BaseType2) { + BaseType2[BaseType2["None"] = 0] = "None"; + BaseType2[BaseType2["UType"] = 1] = "UType"; + BaseType2[BaseType2["Bool"] = 2] = "Bool"; + BaseType2[BaseType2["Byte"] = 3] = "Byte"; + BaseType2[BaseType2["UByte"] = 4] = "UByte"; + BaseType2[BaseType2["Short"] = 5] = "Short"; + BaseType2[BaseType2["UShort"] = 6] = "UShort"; + BaseType2[BaseType2["Int"] = 7] = "Int"; + BaseType2[BaseType2["UInt"] = 8] = "UInt"; + BaseType2[BaseType2["Long"] = 9] = "Long"; + BaseType2[BaseType2["ULong"] = 10] = "ULong"; + BaseType2[BaseType2["Float"] = 11] = "Float"; + BaseType2[BaseType2["Double"] = 12] = "Double"; + BaseType2[BaseType2["String"] = 13] = "String"; + BaseType2[BaseType2["Vector"] = 14] = "Vector"; + BaseType2[BaseType2["Obj"] = 15] = "Obj"; + BaseType2[BaseType2["Union"] = 16] = "Union"; + BaseType2[BaseType2["Array"] = 17] = "Array"; + BaseType2[BaseType2["MaxBaseType"] = 18] = "MaxBaseType"; +})(BaseType = BaseType || (BaseType = {})); + +// reflection/enum.js +var flatbuffers4 = __toESM(require("flatbuffers"), 1); + +// reflection/enum-val.js +var flatbuffers3 = __toESM(require("flatbuffers"), 1); + +// reflection/key-value.js +var flatbuffers = __toESM(require("flatbuffers"), 1); +var KeyValue = class { + constructor() { + this.bb = null; + this.bb_pos = 0; + } + __init(i, bb) { + this.bb_pos = i; + this.bb = bb; + return this; + } + static getRootAsKeyValue(bb, obj) { + return (obj || new KeyValue()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + static getSizePrefixedRootAsKeyValue(bb, obj) { + bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH); + return (obj || new KeyValue()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + key(optionalEncoding) { + const offset = this.bb.__offset(this.bb_pos, 4); + return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; + } + value(optionalEncoding) { + const offset = this.bb.__offset(this.bb_pos, 6); + return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; + } + static getFullyQualifiedName() { + return "reflection.KeyValue"; + } + static startKeyValue(builder) { + builder.startObject(2); + } + static addKey(builder, keyOffset) { + builder.addFieldOffset(0, keyOffset, 0); + } + static addValue(builder, valueOffset) { + builder.addFieldOffset(1, valueOffset, 0); + } + static endKeyValue(builder) { + const offset = builder.endObject(); + builder.requiredField(offset, 4); + return offset; + } + static createKeyValue(builder, keyOffset, valueOffset) { + KeyValue.startKeyValue(builder); + KeyValue.addKey(builder, keyOffset); + KeyValue.addValue(builder, valueOffset); + return KeyValue.endKeyValue(builder); + } + unpack() { + return new KeyValueT(this.key(), this.value()); + } + unpackTo(_o) { + _o.key = this.key(); + _o.value = this.value(); + } +}; +var KeyValueT = class { + constructor(key = null, value = null) { + this.key = key; + this.value = value; + } + pack(builder) { + const key = this.key !== null ? builder.createString(this.key) : 0; + const value = this.value !== null ? builder.createString(this.value) : 0; + return KeyValue.createKeyValue(builder, key, value); + } +}; + +// reflection/type.js +var flatbuffers2 = __toESM(require("flatbuffers"), 1); +var Type = class { + constructor() { + this.bb = null; + this.bb_pos = 0; + } + __init(i, bb) { + this.bb_pos = i; + this.bb = bb; + return this; + } + static getRootAsType(bb, obj) { + return (obj || new Type()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + static getSizePrefixedRootAsType(bb, obj) { + bb.setPosition(bb.position() + flatbuffers2.SIZE_PREFIX_LENGTH); + return (obj || new Type()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + baseType() { + const offset = this.bb.__offset(this.bb_pos, 4); + return offset ? this.bb.readInt8(this.bb_pos + offset) : BaseType.None; + } + mutate_base_type(value) { + const offset = this.bb.__offset(this.bb_pos, 4); + if (offset === 0) { + return false; + } + this.bb.writeInt8(this.bb_pos + offset, value); + return true; + } + element() { + const offset = this.bb.__offset(this.bb_pos, 6); + return offset ? this.bb.readInt8(this.bb_pos + offset) : BaseType.None; + } + mutate_element(value) { + const offset = this.bb.__offset(this.bb_pos, 6); + if (offset === 0) { + return false; + } + this.bb.writeInt8(this.bb_pos + offset, value); + return true; + } + index() { + const offset = this.bb.__offset(this.bb_pos, 8); + return offset ? this.bb.readInt32(this.bb_pos + offset) : -1; + } + mutate_index(value) { + const offset = this.bb.__offset(this.bb_pos, 8); + if (offset === 0) { + return false; + } + this.bb.writeInt32(this.bb_pos + offset, value); + return true; + } + fixedLength() { + const offset = this.bb.__offset(this.bb_pos, 10); + return offset ? this.bb.readUint16(this.bb_pos + offset) : 0; + } + mutate_fixed_length(value) { + const offset = this.bb.__offset(this.bb_pos, 10); + if (offset === 0) { + return false; + } + this.bb.writeUint16(this.bb_pos + offset, value); + return true; + } + baseSize() { + const offset = this.bb.__offset(this.bb_pos, 12); + return offset ? this.bb.readUint32(this.bb_pos + offset) : 4; + } + mutate_base_size(value) { + const offset = this.bb.__offset(this.bb_pos, 12); + if (offset === 0) { + return false; + } + this.bb.writeUint32(this.bb_pos + offset, value); + return true; + } + elementSize() { + const offset = this.bb.__offset(this.bb_pos, 14); + return offset ? this.bb.readUint32(this.bb_pos + offset) : 0; + } + mutate_element_size(value) { + const offset = this.bb.__offset(this.bb_pos, 14); + if (offset === 0) { + return false; + } + this.bb.writeUint32(this.bb_pos + offset, value); + return true; + } + static getFullyQualifiedName() { + return "reflection.Type"; + } + static startType(builder) { + builder.startObject(6); + } + static addBaseType(builder, baseType) { + builder.addFieldInt8(0, baseType, BaseType.None); + } + static addElement(builder, element) { + builder.addFieldInt8(1, element, BaseType.None); + } + static addIndex(builder, index) { + builder.addFieldInt32(2, index, -1); + } + static addFixedLength(builder, fixedLength) { + builder.addFieldInt16(3, fixedLength, 0); + } + static addBaseSize(builder, baseSize) { + builder.addFieldInt32(4, baseSize, 4); + } + static addElementSize(builder, elementSize) { + builder.addFieldInt32(5, elementSize, 0); + } + static endType(builder) { + const offset = builder.endObject(); + return offset; + } + static createType(builder, baseType, element, index, fixedLength, baseSize, elementSize) { + Type.startType(builder); + Type.addBaseType(builder, baseType); + Type.addElement(builder, element); + Type.addIndex(builder, index); + Type.addFixedLength(builder, fixedLength); + Type.addBaseSize(builder, baseSize); + Type.addElementSize(builder, elementSize); + return Type.endType(builder); + } + unpack() { + return new TypeT(this.baseType(), this.element(), this.index(), this.fixedLength(), this.baseSize(), this.elementSize()); + } + unpackTo(_o) { + _o.baseType = this.baseType(); + _o.element = this.element(); + _o.index = this.index(); + _o.fixedLength = this.fixedLength(); + _o.baseSize = this.baseSize(); + _o.elementSize = this.elementSize(); + } +}; +var TypeT = class { + constructor(baseType = BaseType.None, element = BaseType.None, index = -1, fixedLength = 0, baseSize = 4, elementSize = 0) { + this.baseType = baseType; + this.element = element; + this.index = index; + this.fixedLength = fixedLength; + this.baseSize = baseSize; + this.elementSize = elementSize; + } + pack(builder) { + return Type.createType(builder, this.baseType, this.element, this.index, this.fixedLength, this.baseSize, this.elementSize); + } +}; + +// reflection/enum-val.js +var EnumVal = class { + constructor() { + this.bb = null; + this.bb_pos = 0; + } + __init(i, bb) { + this.bb_pos = i; + this.bb = bb; + return this; + } + static getRootAsEnumVal(bb, obj) { + return (obj || new EnumVal()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + static getSizePrefixedRootAsEnumVal(bb, obj) { + bb.setPosition(bb.position() + flatbuffers3.SIZE_PREFIX_LENGTH); + return (obj || new EnumVal()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + name(optionalEncoding) { + const offset = this.bb.__offset(this.bb_pos, 4); + return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; + } + value() { + const offset = this.bb.__offset(this.bb_pos, 6); + return offset ? this.bb.readInt64(this.bb_pos + offset) : BigInt("0"); + } + mutate_value(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; + } + unionType(obj) { + const offset = this.bb.__offset(this.bb_pos, 10); + return offset ? (obj || new Type()).__init(this.bb.__indirect(this.bb_pos + offset), this.bb) : null; + } + documentation(index, optionalEncoding) { + const offset = this.bb.__offset(this.bb_pos, 12); + return offset ? this.bb.__string(this.bb.__vector(this.bb_pos + offset) + index * 4, optionalEncoding) : null; + } + documentationLength() { + const offset = this.bb.__offset(this.bb_pos, 12); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + attributes(index, obj) { + const offset = this.bb.__offset(this.bb_pos, 14); + return offset ? (obj || new KeyValue()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; + } + attributesLength() { + const offset = this.bb.__offset(this.bb_pos, 14); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + static getFullyQualifiedName() { + return "reflection.EnumVal"; + } + static startEnumVal(builder) { + builder.startObject(6); + } + static addName(builder, nameOffset) { + builder.addFieldOffset(0, nameOffset, 0); + } + static addValue(builder, value) { + builder.addFieldInt64(1, value, BigInt("0")); + } + static addUnionType(builder, unionTypeOffset) { + builder.addFieldOffset(3, unionTypeOffset, 0); + } + static addDocumentation(builder, documentationOffset) { + builder.addFieldOffset(4, documentationOffset, 0); + } + static createDocumentationVector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) { + builder.addOffset(data[i]); + } + return builder.endVector(); + } + static startDocumentationVector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static addAttributes(builder, attributesOffset) { + builder.addFieldOffset(5, attributesOffset, 0); + } + static createAttributesVector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) { + builder.addOffset(data[i]); + } + return builder.endVector(); + } + static startAttributesVector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static endEnumVal(builder) { + const offset = builder.endObject(); + builder.requiredField(offset, 4); + return offset; + } + unpack() { + return new EnumValT(this.name(), this.value(), this.unionType() !== null ? this.unionType().unpack() : null, this.bb.createScalarList(this.documentation.bind(this), this.documentationLength()), this.bb.createObjList(this.attributes.bind(this), this.attributesLength())); + } + unpackTo(_o) { + _o.name = this.name(); + _o.value = this.value(); + _o.unionType = this.unionType() !== null ? this.unionType().unpack() : null; + _o.documentation = this.bb.createScalarList(this.documentation.bind(this), this.documentationLength()); + _o.attributes = this.bb.createObjList(this.attributes.bind(this), this.attributesLength()); + } +}; +var EnumValT = class { + constructor(name = null, value = BigInt("0"), unionType = null, documentation = [], attributes = []) { + this.name = name; + this.value = value; + this.unionType = unionType; + this.documentation = documentation; + this.attributes = attributes; + } + pack(builder) { + const name = this.name !== null ? builder.createString(this.name) : 0; + const unionType = this.unionType !== null ? this.unionType.pack(builder) : 0; + const documentation = EnumVal.createDocumentationVector(builder, builder.createObjectOffsetList(this.documentation)); + const attributes = EnumVal.createAttributesVector(builder, builder.createObjectOffsetList(this.attributes)); + EnumVal.startEnumVal(builder); + EnumVal.addName(builder, name); + EnumVal.addValue(builder, this.value); + EnumVal.addUnionType(builder, unionType); + EnumVal.addDocumentation(builder, documentation); + EnumVal.addAttributes(builder, attributes); + return EnumVal.endEnumVal(builder); + } +}; + +// reflection/enum.js +var Enum = class { + constructor() { + this.bb = null; + this.bb_pos = 0; + } + __init(i, bb) { + this.bb_pos = i; + this.bb = bb; + return this; + } + static getRootAsEnum(bb, obj) { + return (obj || new Enum()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + static getSizePrefixedRootAsEnum(bb, obj) { + bb.setPosition(bb.position() + flatbuffers4.SIZE_PREFIX_LENGTH); + return (obj || new Enum()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + name(optionalEncoding) { + const offset = this.bb.__offset(this.bb_pos, 4); + return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; + } + values(index, obj) { + const offset = this.bb.__offset(this.bb_pos, 6); + return offset ? (obj || new EnumVal()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; + } + valuesLength() { + const offset = this.bb.__offset(this.bb_pos, 6); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + isUnion() { + const offset = this.bb.__offset(this.bb_pos, 8); + return offset ? !!this.bb.readInt8(this.bb_pos + offset) : false; + } + mutate_is_union(value) { + const offset = this.bb.__offset(this.bb_pos, 8); + if (offset === 0) { + return false; + } + this.bb.writeInt8(this.bb_pos + offset, +value); + return true; + } + underlyingType(obj) { + const offset = this.bb.__offset(this.bb_pos, 10); + return offset ? (obj || new Type()).__init(this.bb.__indirect(this.bb_pos + offset), this.bb) : null; + } + attributes(index, obj) { + const offset = this.bb.__offset(this.bb_pos, 12); + return offset ? (obj || new KeyValue()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; + } + attributesLength() { + const offset = this.bb.__offset(this.bb_pos, 12); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + documentation(index, optionalEncoding) { + const offset = this.bb.__offset(this.bb_pos, 14); + return offset ? this.bb.__string(this.bb.__vector(this.bb_pos + offset) + index * 4, optionalEncoding) : null; + } + documentationLength() { + const offset = this.bb.__offset(this.bb_pos, 14); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + declarationFile(optionalEncoding) { + const offset = this.bb.__offset(this.bb_pos, 16); + return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; + } + static getFullyQualifiedName() { + return "reflection.Enum"; + } + static startEnum(builder) { + builder.startObject(7); + } + static addName(builder, nameOffset) { + builder.addFieldOffset(0, nameOffset, 0); + } + static addValues(builder, valuesOffset) { + builder.addFieldOffset(1, valuesOffset, 0); + } + static createValuesVector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) { + builder.addOffset(data[i]); + } + return builder.endVector(); + } + static startValuesVector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static addIsUnion(builder, isUnion) { + builder.addFieldInt8(2, +isUnion, 0); + } + static addUnderlyingType(builder, underlyingTypeOffset) { + builder.addFieldOffset(3, underlyingTypeOffset, 0); + } + static addAttributes(builder, attributesOffset) { + builder.addFieldOffset(4, attributesOffset, 0); + } + static createAttributesVector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) { + builder.addOffset(data[i]); + } + return builder.endVector(); + } + static startAttributesVector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static addDocumentation(builder, documentationOffset) { + builder.addFieldOffset(5, documentationOffset, 0); + } + static createDocumentationVector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) { + builder.addOffset(data[i]); + } + return builder.endVector(); + } + static startDocumentationVector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static addDeclarationFile(builder, declarationFileOffset) { + builder.addFieldOffset(6, declarationFileOffset, 0); + } + static endEnum(builder) { + const offset = builder.endObject(); + builder.requiredField(offset, 4); + builder.requiredField(offset, 6); + builder.requiredField(offset, 10); + return offset; + } + unpack() { + return new EnumT(this.name(), this.bb.createObjList(this.values.bind(this), this.valuesLength()), this.isUnion(), this.underlyingType() !== null ? this.underlyingType().unpack() : null, this.bb.createObjList(this.attributes.bind(this), this.attributesLength()), this.bb.createScalarList(this.documentation.bind(this), this.documentationLength()), this.declarationFile()); + } + unpackTo(_o) { + _o.name = this.name(); + _o.values = this.bb.createObjList(this.values.bind(this), this.valuesLength()); + _o.isUnion = this.isUnion(); + _o.underlyingType = this.underlyingType() !== null ? this.underlyingType().unpack() : null; + _o.attributes = this.bb.createObjList(this.attributes.bind(this), this.attributesLength()); + _o.documentation = this.bb.createScalarList(this.documentation.bind(this), this.documentationLength()); + _o.declarationFile = this.declarationFile(); + } +}; +var EnumT = class { + constructor(name = null, values = [], isUnion = false, underlyingType = null, attributes = [], documentation = [], declarationFile = null) { + this.name = name; + this.values = values; + this.isUnion = isUnion; + this.underlyingType = underlyingType; + this.attributes = attributes; + this.documentation = documentation; + this.declarationFile = declarationFile; + } + pack(builder) { + const name = this.name !== null ? builder.createString(this.name) : 0; + const values = Enum.createValuesVector(builder, builder.createObjectOffsetList(this.values)); + const underlyingType = this.underlyingType !== null ? this.underlyingType.pack(builder) : 0; + const attributes = Enum.createAttributesVector(builder, builder.createObjectOffsetList(this.attributes)); + const documentation = Enum.createDocumentationVector(builder, builder.createObjectOffsetList(this.documentation)); + const declarationFile = this.declarationFile !== null ? builder.createString(this.declarationFile) : 0; + Enum.startEnum(builder); + Enum.addName(builder, name); + Enum.addValues(builder, values); + Enum.addIsUnion(builder, this.isUnion); + Enum.addUnderlyingType(builder, underlyingType); + Enum.addAttributes(builder, attributes); + Enum.addDocumentation(builder, documentation); + Enum.addDeclarationFile(builder, declarationFile); + return Enum.endEnum(builder); + } +}; + +// reflection/field.js +var flatbuffers5 = __toESM(require("flatbuffers"), 1); +var Field = class { + constructor() { + this.bb = null; + this.bb_pos = 0; + } + __init(i, bb) { + this.bb_pos = i; + this.bb = bb; + return this; + } + static getRootAsField(bb, obj) { + return (obj || new Field()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + static getSizePrefixedRootAsField(bb, obj) { + bb.setPosition(bb.position() + flatbuffers5.SIZE_PREFIX_LENGTH); + return (obj || new Field()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + name(optionalEncoding) { + const offset = this.bb.__offset(this.bb_pos, 4); + return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; + } + type(obj) { + const offset = this.bb.__offset(this.bb_pos, 6); + return offset ? (obj || new Type()).__init(this.bb.__indirect(this.bb_pos + offset), this.bb) : null; + } + id() { + const offset = this.bb.__offset(this.bb_pos, 8); + return offset ? this.bb.readUint16(this.bb_pos + offset) : 0; + } + mutate_id(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; + } + offset() { + const offset = this.bb.__offset(this.bb_pos, 10); + return offset ? this.bb.readUint16(this.bb_pos + offset) : 0; + } + mutate_offset(value) { + const offset = this.bb.__offset(this.bb_pos, 10); + if (offset === 0) { + return false; + } + this.bb.writeUint16(this.bb_pos + offset, value); + return true; + } + defaultInteger() { + const offset = this.bb.__offset(this.bb_pos, 12); + return offset ? this.bb.readInt64(this.bb_pos + offset) : BigInt("0"); + } + mutate_default_integer(value) { + const offset = this.bb.__offset(this.bb_pos, 12); + if (offset === 0) { + return false; + } + this.bb.writeInt64(this.bb_pos + offset, value); + return true; + } + defaultReal() { + const offset = this.bb.__offset(this.bb_pos, 14); + return offset ? this.bb.readFloat64(this.bb_pos + offset) : 0; + } + mutate_default_real(value) { + const offset = this.bb.__offset(this.bb_pos, 14); + if (offset === 0) { + return false; + } + this.bb.writeFloat64(this.bb_pos + offset, value); + return true; + } + deprecated() { + const offset = this.bb.__offset(this.bb_pos, 16); + return offset ? !!this.bb.readInt8(this.bb_pos + offset) : false; + } + mutate_deprecated(value) { + const offset = this.bb.__offset(this.bb_pos, 16); + if (offset === 0) { + return false; + } + this.bb.writeInt8(this.bb_pos + offset, +value); + return true; + } + required() { + const offset = this.bb.__offset(this.bb_pos, 18); + return offset ? !!this.bb.readInt8(this.bb_pos + offset) : false; + } + mutate_required(value) { + const offset = this.bb.__offset(this.bb_pos, 18); + if (offset === 0) { + return false; + } + this.bb.writeInt8(this.bb_pos + offset, +value); + return true; + } + key() { + const offset = this.bb.__offset(this.bb_pos, 20); + return offset ? !!this.bb.readInt8(this.bb_pos + offset) : false; + } + mutate_key(value) { + const offset = this.bb.__offset(this.bb_pos, 20); + if (offset === 0) { + return false; + } + this.bb.writeInt8(this.bb_pos + offset, +value); + return true; + } + attributes(index, obj) { + const offset = this.bb.__offset(this.bb_pos, 22); + return offset ? (obj || new KeyValue()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; + } + attributesLength() { + const offset = this.bb.__offset(this.bb_pos, 22); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + documentation(index, optionalEncoding) { + const offset = this.bb.__offset(this.bb_pos, 24); + return offset ? this.bb.__string(this.bb.__vector(this.bb_pos + offset) + index * 4, optionalEncoding) : null; + } + documentationLength() { + const offset = this.bb.__offset(this.bb_pos, 24); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + optional() { + const offset = this.bb.__offset(this.bb_pos, 26); + return offset ? !!this.bb.readInt8(this.bb_pos + offset) : false; + } + mutate_optional(value) { + const offset = this.bb.__offset(this.bb_pos, 26); + if (offset === 0) { + return false; + } + this.bb.writeInt8(this.bb_pos + offset, +value); + return true; + } + padding() { + const offset = this.bb.__offset(this.bb_pos, 28); + return offset ? this.bb.readUint16(this.bb_pos + offset) : 0; + } + mutate_padding(value) { + const offset = this.bb.__offset(this.bb_pos, 28); + if (offset === 0) { + return false; + } + this.bb.writeUint16(this.bb_pos + offset, value); + return true; + } + static getFullyQualifiedName() { + return "reflection.Field"; + } + static startField(builder) { + builder.startObject(13); + } + static addName(builder, nameOffset) { + builder.addFieldOffset(0, nameOffset, 0); + } + static addType(builder, typeOffset) { + builder.addFieldOffset(1, typeOffset, 0); + } + static addId(builder, id) { + builder.addFieldInt16(2, id, 0); + } + static addOffset(builder, offset) { + builder.addFieldInt16(3, offset, 0); + } + static addDefaultInteger(builder, defaultInteger) { + builder.addFieldInt64(4, defaultInteger, BigInt("0")); + } + static addDefaultReal(builder, defaultReal) { + builder.addFieldFloat64(5, defaultReal, 0); + } + static addDeprecated(builder, deprecated) { + builder.addFieldInt8(6, +deprecated, 0); + } + static addRequired(builder, required) { + builder.addFieldInt8(7, +required, 0); + } + static addKey(builder, key) { + builder.addFieldInt8(8, +key, 0); + } + static addAttributes(builder, attributesOffset) { + builder.addFieldOffset(9, attributesOffset, 0); + } + static createAttributesVector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) { + builder.addOffset(data[i]); + } + return builder.endVector(); + } + static startAttributesVector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static addDocumentation(builder, documentationOffset) { + builder.addFieldOffset(10, documentationOffset, 0); + } + static createDocumentationVector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) { + builder.addOffset(data[i]); + } + return builder.endVector(); + } + static startDocumentationVector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static addOptional(builder, optional) { + builder.addFieldInt8(11, +optional, 0); + } + static addPadding(builder, padding) { + builder.addFieldInt16(12, padding, 0); + } + static endField(builder) { + const offset = builder.endObject(); + builder.requiredField(offset, 4); + builder.requiredField(offset, 6); + return offset; + } + unpack() { + return new FieldT(this.name(), this.type() !== null ? this.type().unpack() : null, this.id(), this.offset(), this.defaultInteger(), this.defaultReal(), this.deprecated(), this.required(), this.key(), this.bb.createObjList(this.attributes.bind(this), this.attributesLength()), this.bb.createScalarList(this.documentation.bind(this), this.documentationLength()), this.optional(), this.padding()); + } + unpackTo(_o) { + _o.name = this.name(); + _o.type = this.type() !== null ? this.type().unpack() : null; + _o.id = this.id(); + _o.offset = this.offset(); + _o.defaultInteger = this.defaultInteger(); + _o.defaultReal = this.defaultReal(); + _o.deprecated = this.deprecated(); + _o.required = this.required(); + _o.key = this.key(); + _o.attributes = this.bb.createObjList(this.attributes.bind(this), this.attributesLength()); + _o.documentation = this.bb.createScalarList(this.documentation.bind(this), this.documentationLength()); + _o.optional = this.optional(); + _o.padding = this.padding(); + } +}; +var FieldT = class { + constructor(name = null, type = null, id = 0, offset = 0, defaultInteger = BigInt("0"), defaultReal = 0, deprecated = false, required = false, key = false, attributes = [], documentation = [], optional = false, padding = 0) { + this.name = name; + this.type = type; + this.id = id; + this.offset = offset; + this.defaultInteger = defaultInteger; + this.defaultReal = defaultReal; + this.deprecated = deprecated; + this.required = required; + this.key = key; + this.attributes = attributes; + this.documentation = documentation; + this.optional = optional; + this.padding = padding; + } + pack(builder) { + const name = this.name !== null ? builder.createString(this.name) : 0; + const type = this.type !== null ? this.type.pack(builder) : 0; + const attributes = Field.createAttributesVector(builder, builder.createObjectOffsetList(this.attributes)); + const documentation = Field.createDocumentationVector(builder, builder.createObjectOffsetList(this.documentation)); + Field.startField(builder); + Field.addName(builder, name); + Field.addType(builder, type); + Field.addId(builder, this.id); + Field.addOffset(builder, this.offset); + Field.addDefaultInteger(builder, this.defaultInteger); + Field.addDefaultReal(builder, this.defaultReal); + Field.addDeprecated(builder, this.deprecated); + Field.addRequired(builder, this.required); + Field.addKey(builder, this.key); + Field.addAttributes(builder, attributes); + Field.addDocumentation(builder, documentation); + Field.addOptional(builder, this.optional); + Field.addPadding(builder, this.padding); + return Field.endField(builder); + } +}; + +// reflection/object.js +var flatbuffers6 = __toESM(require("flatbuffers"), 1); +var Object_ = class { + constructor() { + this.bb = null; + this.bb_pos = 0; + } + __init(i, bb) { + this.bb_pos = i; + this.bb = bb; + return this; + } + static getRootAsObject(bb, obj) { + return (obj || new Object_()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + static getSizePrefixedRootAsObject(bb, obj) { + bb.setPosition(bb.position() + flatbuffers6.SIZE_PREFIX_LENGTH); + return (obj || new Object_()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + name(optionalEncoding) { + const offset = this.bb.__offset(this.bb_pos, 4); + return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; + } + fields(index, obj) { + const offset = this.bb.__offset(this.bb_pos, 6); + return offset ? (obj || new Field()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; + } + fieldsLength() { + const offset = this.bb.__offset(this.bb_pos, 6); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + isStruct() { + const offset = this.bb.__offset(this.bb_pos, 8); + return offset ? !!this.bb.readInt8(this.bb_pos + offset) : false; + } + mutate_is_struct(value) { + const offset = this.bb.__offset(this.bb_pos, 8); + if (offset === 0) { + return false; + } + this.bb.writeInt8(this.bb_pos + offset, +value); + return true; + } + minalign() { + const offset = this.bb.__offset(this.bb_pos, 10); + return offset ? this.bb.readInt32(this.bb_pos + offset) : 0; + } + mutate_minalign(value) { + const offset = this.bb.__offset(this.bb_pos, 10); + if (offset === 0) { + return false; + } + this.bb.writeInt32(this.bb_pos + offset, value); + return true; + } + bytesize() { + const offset = this.bb.__offset(this.bb_pos, 12); + return offset ? this.bb.readInt32(this.bb_pos + offset) : 0; + } + mutate_bytesize(value) { + const offset = this.bb.__offset(this.bb_pos, 12); + if (offset === 0) { + return false; + } + this.bb.writeInt32(this.bb_pos + offset, value); + return true; + } + attributes(index, obj) { + const offset = this.bb.__offset(this.bb_pos, 14); + return offset ? (obj || new KeyValue()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; + } + attributesLength() { + const offset = this.bb.__offset(this.bb_pos, 14); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + documentation(index, optionalEncoding) { + const offset = this.bb.__offset(this.bb_pos, 16); + return offset ? this.bb.__string(this.bb.__vector(this.bb_pos + offset) + index * 4, optionalEncoding) : null; + } + documentationLength() { + const offset = this.bb.__offset(this.bb_pos, 16); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + declarationFile(optionalEncoding) { + const offset = this.bb.__offset(this.bb_pos, 18); + return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; + } + static getFullyQualifiedName() { + return "reflection.Object"; + } + static startObject(builder) { + builder.startObject(8); + } + static addName(builder, nameOffset) { + builder.addFieldOffset(0, nameOffset, 0); + } + static addFields(builder, fieldsOffset) { + builder.addFieldOffset(1, fieldsOffset, 0); + } + static createFieldsVector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) { + builder.addOffset(data[i]); + } + return builder.endVector(); + } + static startFieldsVector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static addIsStruct(builder, isStruct) { + builder.addFieldInt8(2, +isStruct, 0); + } + static addMinalign(builder, minalign) { + builder.addFieldInt32(3, minalign, 0); + } + static addBytesize(builder, bytesize) { + builder.addFieldInt32(4, bytesize, 0); + } + static addAttributes(builder, attributesOffset) { + builder.addFieldOffset(5, attributesOffset, 0); + } + static createAttributesVector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) { + builder.addOffset(data[i]); + } + return builder.endVector(); + } + static startAttributesVector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static addDocumentation(builder, documentationOffset) { + builder.addFieldOffset(6, documentationOffset, 0); + } + static createDocumentationVector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) { + builder.addOffset(data[i]); + } + return builder.endVector(); + } + static startDocumentationVector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static addDeclarationFile(builder, declarationFileOffset) { + builder.addFieldOffset(7, declarationFileOffset, 0); + } + static endObject(builder) { + const offset = builder.endObject(); + builder.requiredField(offset, 4); + builder.requiredField(offset, 6); + return offset; + } + static createObject(builder, nameOffset, fieldsOffset, isStruct, minalign, bytesize, attributesOffset, documentationOffset, declarationFileOffset) { + Object_.startObject(builder); + Object_.addName(builder, nameOffset); + Object_.addFields(builder, fieldsOffset); + Object_.addIsStruct(builder, isStruct); + Object_.addMinalign(builder, minalign); + Object_.addBytesize(builder, bytesize); + Object_.addAttributes(builder, attributesOffset); + Object_.addDocumentation(builder, documentationOffset); + Object_.addDeclarationFile(builder, declarationFileOffset); + return Object_.endObject(builder); + } + unpack() { + return new Object_T(this.name(), this.bb.createObjList(this.fields.bind(this), this.fieldsLength()), this.isStruct(), this.minalign(), this.bytesize(), this.bb.createObjList(this.attributes.bind(this), this.attributesLength()), this.bb.createScalarList(this.documentation.bind(this), this.documentationLength()), this.declarationFile()); + } + unpackTo(_o) { + _o.name = this.name(); + _o.fields = this.bb.createObjList(this.fields.bind(this), this.fieldsLength()); + _o.isStruct = this.isStruct(); + _o.minalign = this.minalign(); + _o.bytesize = this.bytesize(); + _o.attributes = this.bb.createObjList(this.attributes.bind(this), this.attributesLength()); + _o.documentation = this.bb.createScalarList(this.documentation.bind(this), this.documentationLength()); + _o.declarationFile = this.declarationFile(); + } +}; +var Object_T = class { + constructor(name = null, fields = [], isStruct = false, minalign = 0, bytesize = 0, attributes = [], documentation = [], declarationFile = null) { + this.name = name; + this.fields = fields; + this.isStruct = isStruct; + this.minalign = minalign; + this.bytesize = bytesize; + this.attributes = attributes; + this.documentation = documentation; + this.declarationFile = declarationFile; + } + pack(builder) { + const name = this.name !== null ? builder.createString(this.name) : 0; + const fields = Object_.createFieldsVector(builder, builder.createObjectOffsetList(this.fields)); + const attributes = Object_.createAttributesVector(builder, builder.createObjectOffsetList(this.attributes)); + const documentation = Object_.createDocumentationVector(builder, builder.createObjectOffsetList(this.documentation)); + const declarationFile = this.declarationFile !== null ? builder.createString(this.declarationFile) : 0; + return Object_.createObject(builder, name, fields, this.isStruct, this.minalign, this.bytesize, attributes, documentation, declarationFile); + } +}; + +// reflection/rpccall.js +var flatbuffers7 = __toESM(require("flatbuffers"), 1); +var RPCCall = class { + constructor() { + this.bb = null; + this.bb_pos = 0; + } + __init(i, bb) { + this.bb_pos = i; + this.bb = bb; + return this; + } + static getRootAsRPCCall(bb, obj) { + return (obj || new RPCCall()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + static getSizePrefixedRootAsRPCCall(bb, obj) { + bb.setPosition(bb.position() + flatbuffers7.SIZE_PREFIX_LENGTH); + return (obj || new RPCCall()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + name(optionalEncoding) { + const offset = this.bb.__offset(this.bb_pos, 4); + return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; + } + request(obj) { + const offset = this.bb.__offset(this.bb_pos, 6); + return offset ? (obj || new Object_()).__init(this.bb.__indirect(this.bb_pos + offset), this.bb) : null; + } + response(obj) { + const offset = this.bb.__offset(this.bb_pos, 8); + return offset ? (obj || new Object_()).__init(this.bb.__indirect(this.bb_pos + offset), this.bb) : null; + } + attributes(index, obj) { + const offset = this.bb.__offset(this.bb_pos, 10); + return offset ? (obj || new KeyValue()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; + } + attributesLength() { + const offset = this.bb.__offset(this.bb_pos, 10); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + documentation(index, optionalEncoding) { + const offset = this.bb.__offset(this.bb_pos, 12); + return offset ? this.bb.__string(this.bb.__vector(this.bb_pos + offset) + index * 4, optionalEncoding) : null; + } + documentationLength() { + const offset = this.bb.__offset(this.bb_pos, 12); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + static getFullyQualifiedName() { + return "reflection.RPCCall"; + } + static startRPCCall(builder) { + builder.startObject(5); + } + static addName(builder, nameOffset) { + builder.addFieldOffset(0, nameOffset, 0); + } + static addRequest(builder, requestOffset) { + builder.addFieldOffset(1, requestOffset, 0); + } + static addResponse(builder, responseOffset) { + builder.addFieldOffset(2, responseOffset, 0); + } + static addAttributes(builder, attributesOffset) { + builder.addFieldOffset(3, attributesOffset, 0); + } + static createAttributesVector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) { + builder.addOffset(data[i]); + } + return builder.endVector(); + } + static startAttributesVector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static addDocumentation(builder, documentationOffset) { + builder.addFieldOffset(4, documentationOffset, 0); + } + static createDocumentationVector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) { + builder.addOffset(data[i]); + } + return builder.endVector(); + } + static startDocumentationVector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static endRPCCall(builder) { + const offset = builder.endObject(); + builder.requiredField(offset, 4); + builder.requiredField(offset, 6); + builder.requiredField(offset, 8); + return offset; + } + unpack() { + return new RPCCallT(this.name(), this.request() !== null ? this.request().unpack() : null, this.response() !== null ? this.response().unpack() : null, this.bb.createObjList(this.attributes.bind(this), this.attributesLength()), this.bb.createScalarList(this.documentation.bind(this), this.documentationLength())); + } + unpackTo(_o) { + _o.name = this.name(); + _o.request = this.request() !== null ? this.request().unpack() : null; + _o.response = this.response() !== null ? this.response().unpack() : null; + _o.attributes = this.bb.createObjList(this.attributes.bind(this), this.attributesLength()); + _o.documentation = this.bb.createScalarList(this.documentation.bind(this), this.documentationLength()); + } +}; +var RPCCallT = class { + constructor(name = null, request = null, response = null, attributes = [], documentation = []) { + this.name = name; + this.request = request; + this.response = response; + this.attributes = attributes; + this.documentation = documentation; + } + pack(builder) { + const name = this.name !== null ? builder.createString(this.name) : 0; + const request = this.request !== null ? this.request.pack(builder) : 0; + const response = this.response !== null ? this.response.pack(builder) : 0; + const attributes = RPCCall.createAttributesVector(builder, builder.createObjectOffsetList(this.attributes)); + const documentation = RPCCall.createDocumentationVector(builder, builder.createObjectOffsetList(this.documentation)); + RPCCall.startRPCCall(builder); + RPCCall.addName(builder, name); + RPCCall.addRequest(builder, request); + RPCCall.addResponse(builder, response); + RPCCall.addAttributes(builder, attributes); + RPCCall.addDocumentation(builder, documentation); + return RPCCall.endRPCCall(builder); + } +}; + +// reflection/schema.js +var flatbuffers10 = __toESM(require("flatbuffers"), 1); + +// reflection/schema-file.js +var flatbuffers8 = __toESM(require("flatbuffers"), 1); +var SchemaFile = class { + constructor() { + this.bb = null; + this.bb_pos = 0; + } + __init(i, bb) { + this.bb_pos = i; + this.bb = bb; + return this; + } + static getRootAsSchemaFile(bb, obj) { + return (obj || new SchemaFile()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + static getSizePrefixedRootAsSchemaFile(bb, obj) { + bb.setPosition(bb.position() + flatbuffers8.SIZE_PREFIX_LENGTH); + return (obj || new SchemaFile()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + filename(optionalEncoding) { + const offset = this.bb.__offset(this.bb_pos, 4); + return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; + } + includedFilenames(index, optionalEncoding) { + const offset = this.bb.__offset(this.bb_pos, 6); + return offset ? this.bb.__string(this.bb.__vector(this.bb_pos + offset) + index * 4, optionalEncoding) : null; + } + includedFilenamesLength() { + const offset = this.bb.__offset(this.bb_pos, 6); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + static getFullyQualifiedName() { + return "reflection.SchemaFile"; + } + static startSchemaFile(builder) { + builder.startObject(2); + } + static addFilename(builder, filenameOffset) { + builder.addFieldOffset(0, filenameOffset, 0); + } + static addIncludedFilenames(builder, includedFilenamesOffset) { + builder.addFieldOffset(1, includedFilenamesOffset, 0); + } + static createIncludedFilenamesVector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) { + builder.addOffset(data[i]); + } + return builder.endVector(); + } + static startIncludedFilenamesVector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static endSchemaFile(builder) { + const offset = builder.endObject(); + builder.requiredField(offset, 4); + return offset; + } + static createSchemaFile(builder, filenameOffset, includedFilenamesOffset) { + SchemaFile.startSchemaFile(builder); + SchemaFile.addFilename(builder, filenameOffset); + SchemaFile.addIncludedFilenames(builder, includedFilenamesOffset); + return SchemaFile.endSchemaFile(builder); + } + unpack() { + return new SchemaFileT(this.filename(), this.bb.createScalarList(this.includedFilenames.bind(this), this.includedFilenamesLength())); + } + unpackTo(_o) { + _o.filename = this.filename(); + _o.includedFilenames = this.bb.createScalarList(this.includedFilenames.bind(this), this.includedFilenamesLength()); + } +}; +var SchemaFileT = class { + constructor(filename = null, includedFilenames = []) { + this.filename = filename; + this.includedFilenames = includedFilenames; + } + pack(builder) { + const filename = this.filename !== null ? builder.createString(this.filename) : 0; + const includedFilenames = SchemaFile.createIncludedFilenamesVector(builder, builder.createObjectOffsetList(this.includedFilenames)); + return SchemaFile.createSchemaFile(builder, filename, includedFilenames); + } +}; + +// reflection/service.js +var flatbuffers9 = __toESM(require("flatbuffers"), 1); +var Service = class { + constructor() { + this.bb = null; + this.bb_pos = 0; + } + __init(i, bb) { + this.bb_pos = i; + this.bb = bb; + return this; + } + static getRootAsService(bb, obj) { + return (obj || new Service()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + static getSizePrefixedRootAsService(bb, obj) { + bb.setPosition(bb.position() + flatbuffers9.SIZE_PREFIX_LENGTH); + return (obj || new Service()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + name(optionalEncoding) { + const offset = this.bb.__offset(this.bb_pos, 4); + return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; + } + calls(index, obj) { + const offset = this.bb.__offset(this.bb_pos, 6); + return offset ? (obj || new RPCCall()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; + } + callsLength() { + const offset = this.bb.__offset(this.bb_pos, 6); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + attributes(index, obj) { + const offset = this.bb.__offset(this.bb_pos, 8); + return offset ? (obj || new KeyValue()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; + } + attributesLength() { + const offset = this.bb.__offset(this.bb_pos, 8); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + documentation(index, optionalEncoding) { + const offset = this.bb.__offset(this.bb_pos, 10); + return offset ? this.bb.__string(this.bb.__vector(this.bb_pos + offset) + index * 4, optionalEncoding) : null; + } + documentationLength() { + const offset = this.bb.__offset(this.bb_pos, 10); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + declarationFile(optionalEncoding) { + const offset = this.bb.__offset(this.bb_pos, 12); + return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; + } + static getFullyQualifiedName() { + return "reflection.Service"; + } + static startService(builder) { + builder.startObject(5); + } + static addName(builder, nameOffset) { + builder.addFieldOffset(0, nameOffset, 0); + } + static addCalls(builder, callsOffset) { + builder.addFieldOffset(1, callsOffset, 0); + } + static createCallsVector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) { + builder.addOffset(data[i]); + } + return builder.endVector(); + } + static startCallsVector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static addAttributes(builder, attributesOffset) { + builder.addFieldOffset(2, attributesOffset, 0); + } + static createAttributesVector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) { + builder.addOffset(data[i]); + } + return builder.endVector(); + } + static startAttributesVector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static addDocumentation(builder, documentationOffset) { + builder.addFieldOffset(3, documentationOffset, 0); + } + static createDocumentationVector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) { + builder.addOffset(data[i]); + } + return builder.endVector(); + } + static startDocumentationVector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static addDeclarationFile(builder, declarationFileOffset) { + builder.addFieldOffset(4, declarationFileOffset, 0); + } + static endService(builder) { + const offset = builder.endObject(); + builder.requiredField(offset, 4); + return offset; + } + static createService(builder, nameOffset, callsOffset, attributesOffset, documentationOffset, declarationFileOffset) { + Service.startService(builder); + Service.addName(builder, nameOffset); + Service.addCalls(builder, callsOffset); + Service.addAttributes(builder, attributesOffset); + Service.addDocumentation(builder, documentationOffset); + Service.addDeclarationFile(builder, declarationFileOffset); + return Service.endService(builder); + } + unpack() { + return new ServiceT(this.name(), this.bb.createObjList(this.calls.bind(this), this.callsLength()), this.bb.createObjList(this.attributes.bind(this), this.attributesLength()), this.bb.createScalarList(this.documentation.bind(this), this.documentationLength()), this.declarationFile()); + } + unpackTo(_o) { + _o.name = this.name(); + _o.calls = this.bb.createObjList(this.calls.bind(this), this.callsLength()); + _o.attributes = this.bb.createObjList(this.attributes.bind(this), this.attributesLength()); + _o.documentation = this.bb.createScalarList(this.documentation.bind(this), this.documentationLength()); + _o.declarationFile = this.declarationFile(); + } +}; +var ServiceT = class { + constructor(name = null, calls = [], attributes = [], documentation = [], declarationFile = null) { + this.name = name; + this.calls = calls; + this.attributes = attributes; + this.documentation = documentation; + this.declarationFile = declarationFile; + } + pack(builder) { + const name = this.name !== null ? builder.createString(this.name) : 0; + const calls = Service.createCallsVector(builder, builder.createObjectOffsetList(this.calls)); + const attributes = Service.createAttributesVector(builder, builder.createObjectOffsetList(this.attributes)); + const documentation = Service.createDocumentationVector(builder, builder.createObjectOffsetList(this.documentation)); + const declarationFile = this.declarationFile !== null ? builder.createString(this.declarationFile) : 0; + return Service.createService(builder, name, calls, attributes, documentation, declarationFile); + } +}; + +// reflection/schema.js +var Schema = class { + constructor() { + this.bb = null; + this.bb_pos = 0; + } + __init(i, bb) { + this.bb_pos = i; + this.bb = bb; + return this; + } + static getRootAsSchema(bb, obj) { + return (obj || new Schema()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + static getSizePrefixedRootAsSchema(bb, obj) { + bb.setPosition(bb.position() + flatbuffers10.SIZE_PREFIX_LENGTH); + return (obj || new Schema()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + static bufferHasIdentifier(bb) { + return bb.__has_identifier("BFBS"); + } + objects(index, obj) { + const offset = this.bb.__offset(this.bb_pos, 4); + return offset ? (obj || new Object_()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; + } + objectsLength() { + const offset = this.bb.__offset(this.bb_pos, 4); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + enums(index, obj) { + const offset = this.bb.__offset(this.bb_pos, 6); + return offset ? (obj || new Enum()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; + } + enumsLength() { + const offset = this.bb.__offset(this.bb_pos, 6); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + fileIdent(optionalEncoding) { + const offset = this.bb.__offset(this.bb_pos, 8); + return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; + } + fileExt(optionalEncoding) { + const offset = this.bb.__offset(this.bb_pos, 10); + return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; + } + rootTable(obj) { + const offset = this.bb.__offset(this.bb_pos, 12); + return offset ? (obj || new Object_()).__init(this.bb.__indirect(this.bb_pos + offset), this.bb) : null; + } + services(index, obj) { + const offset = this.bb.__offset(this.bb_pos, 14); + return offset ? (obj || new Service()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; + } + servicesLength() { + const offset = this.bb.__offset(this.bb_pos, 14); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + advancedFeatures() { + const offset = this.bb.__offset(this.bb_pos, 16); + return offset ? this.bb.readUint64(this.bb_pos + offset) : BigInt("0"); + } + mutate_advanced_features(value) { + const offset = this.bb.__offset(this.bb_pos, 16); + if (offset === 0) { + return false; + } + this.bb.writeUint64(this.bb_pos + offset, value); + return true; + } + fbsFiles(index, obj) { + const offset = this.bb.__offset(this.bb_pos, 18); + return offset ? (obj || new SchemaFile()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; + } + fbsFilesLength() { + const offset = this.bb.__offset(this.bb_pos, 18); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + static getFullyQualifiedName() { + return "reflection.Schema"; + } + static startSchema(builder) { + builder.startObject(8); + } + static addObjects(builder, objectsOffset) { + builder.addFieldOffset(0, objectsOffset, 0); + } + static createObjectsVector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) { + builder.addOffset(data[i]); + } + return builder.endVector(); + } + static startObjectsVector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static addEnums(builder, enumsOffset) { + builder.addFieldOffset(1, enumsOffset, 0); + } + static createEnumsVector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) { + builder.addOffset(data[i]); + } + return builder.endVector(); + } + static startEnumsVector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static addFileIdent(builder, fileIdentOffset) { + builder.addFieldOffset(2, fileIdentOffset, 0); + } + static addFileExt(builder, fileExtOffset) { + builder.addFieldOffset(3, fileExtOffset, 0); + } + static addRootTable(builder, rootTableOffset) { + builder.addFieldOffset(4, rootTableOffset, 0); + } + static addServices(builder, servicesOffset) { + builder.addFieldOffset(5, servicesOffset, 0); + } + static createServicesVector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) { + builder.addOffset(data[i]); + } + return builder.endVector(); + } + static startServicesVector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static addAdvancedFeatures(builder, advancedFeatures) { + builder.addFieldInt64(6, advancedFeatures, BigInt("0")); + } + static addFbsFiles(builder, fbsFilesOffset) { + builder.addFieldOffset(7, fbsFilesOffset, 0); + } + static createFbsFilesVector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) { + builder.addOffset(data[i]); + } + return builder.endVector(); + } + static startFbsFilesVector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static endSchema(builder) { + const offset = builder.endObject(); + builder.requiredField(offset, 4); + builder.requiredField(offset, 6); + return offset; + } + static finishSchemaBuffer(builder, offset) { + builder.finish(offset, "BFBS"); + } + static finishSizePrefixedSchemaBuffer(builder, offset) { + builder.finish(offset, "BFBS", true); + } + unpack() { + return new SchemaT(this.bb.createObjList(this.objects.bind(this), this.objectsLength()), this.bb.createObjList(this.enums.bind(this), this.enumsLength()), this.fileIdent(), this.fileExt(), this.rootTable() !== null ? this.rootTable().unpack() : null, this.bb.createObjList(this.services.bind(this), this.servicesLength()), this.advancedFeatures(), this.bb.createObjList(this.fbsFiles.bind(this), this.fbsFilesLength())); + } + unpackTo(_o) { + _o.objects = this.bb.createObjList(this.objects.bind(this), this.objectsLength()); + _o.enums = this.bb.createObjList(this.enums.bind(this), this.enumsLength()); + _o.fileIdent = this.fileIdent(); + _o.fileExt = this.fileExt(); + _o.rootTable = this.rootTable() !== null ? this.rootTable().unpack() : null; + _o.services = this.bb.createObjList(this.services.bind(this), this.servicesLength()); + _o.advancedFeatures = this.advancedFeatures(); + _o.fbsFiles = this.bb.createObjList(this.fbsFiles.bind(this), this.fbsFilesLength()); + } +}; +var SchemaT = class { + constructor(objects = [], enums = [], fileIdent = null, fileExt = null, rootTable = null, services = [], advancedFeatures = BigInt("0"), fbsFiles = []) { + this.objects = objects; + this.enums = enums; + this.fileIdent = fileIdent; + this.fileExt = fileExt; + this.rootTable = rootTable; + this.services = services; + this.advancedFeatures = advancedFeatures; + this.fbsFiles = fbsFiles; + } + pack(builder) { + const objects = Schema.createObjectsVector(builder, builder.createObjectOffsetList(this.objects)); + const enums = Schema.createEnumsVector(builder, builder.createObjectOffsetList(this.enums)); + const fileIdent = this.fileIdent !== null ? builder.createString(this.fileIdent) : 0; + const fileExt = this.fileExt !== null ? builder.createString(this.fileExt) : 0; + const rootTable = this.rootTable !== null ? this.rootTable.pack(builder) : 0; + const services = Schema.createServicesVector(builder, builder.createObjectOffsetList(this.services)); + const fbsFiles = Schema.createFbsFilesVector(builder, builder.createObjectOffsetList(this.fbsFiles)); + Schema.startSchema(builder); + Schema.addObjects(builder, objects); + Schema.addEnums(builder, enums); + Schema.addFileIdent(builder, fileIdent); + Schema.addFileExt(builder, fileExt); + Schema.addRootTable(builder, rootTable); + Schema.addServices(builder, services); + Schema.addAdvancedFeatures(builder, this.advancedFeatures); + Schema.addFbsFiles(builder, fbsFiles); + return Schema.endSchema(builder); + } +}; + +// typescript.js +var typescript_exports = {}; +__export(typescript_exports, { + Object_: () => Object_2, + class_: () => class_2 +}); + +// typescript/object.js +var flatbuffers11 = __toESM(require("flatbuffers"), 1); + +// foobar/class.js +var class_; +(function(class_3) { + class_3[class_3["arguments_"] = 0] = "arguments_"; +})(class_ = class_ || (class_ = {})); + +// typescript/class.js +var class_2; +(function(class_3) { + class_3[class_3["new_"] = 0] = "new_"; + class_3[class_3["instanceof_"] = 1] = "instanceof_"; +})(class_2 = class_2 || (class_2 = {})); + +// typescript/object.js +var Object_2 = class { + constructor() { + this.bb = null; + this.bb_pos = 0; + } + __init(i, bb) { + this.bb_pos = i; + this.bb = bb; + return this; + } + static getRootAsObject(bb, obj) { + return (obj || new Object_2()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + static getSizePrefixedRootAsObject(bb, obj) { + bb.setPosition(bb.position() + flatbuffers11.SIZE_PREFIX_LENGTH); + return (obj || new Object_2()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + return_() { + const offset = this.bb.__offset(this.bb_pos, 4); + return offset ? this.bb.readInt32(this.bb_pos + offset) : 0; + } + mutate_return(value) { + const offset = this.bb.__offset(this.bb_pos, 4); + if (offset === 0) { + return false; + } + this.bb.writeInt32(this.bb_pos + offset, value); + return true; + } + if_() { + const offset = this.bb.__offset(this.bb_pos, 6); + return offset ? this.bb.readInt32(this.bb_pos + offset) : 0; + } + mutate_if(value) { + const offset = this.bb.__offset(this.bb_pos, 6); + if (offset === 0) { + return false; + } + this.bb.writeInt32(this.bb_pos + offset, value); + return true; + } + switch_() { + const offset = this.bb.__offset(this.bb_pos, 8); + return offset ? this.bb.readInt32(this.bb_pos + offset) : 0; + } + mutate_switch(value) { + const offset = this.bb.__offset(this.bb_pos, 8); + if (offset === 0) { + return false; + } + this.bb.writeInt32(this.bb_pos + offset, value); + return true; + } + enum_() { + const offset = this.bb.__offset(this.bb_pos, 10); + return offset ? this.bb.readInt32(this.bb_pos + offset) : class_2.new_; + } + mutate_enum(value) { + const offset = this.bb.__offset(this.bb_pos, 10); + if (offset === 0) { + return false; + } + this.bb.writeInt32(this.bb_pos + offset, value); + return true; + } + enum2() { + const offset = this.bb.__offset(this.bb_pos, 12); + return offset ? this.bb.readInt32(this.bb_pos + offset) : class_.arguments_; + } + mutate_enum2(value) { + const offset = this.bb.__offset(this.bb_pos, 12); + if (offset === 0) { + return false; + } + this.bb.writeInt32(this.bb_pos + offset, value); + return true; + } + enum3() { + const offset = this.bb.__offset(this.bb_pos, 14); + return offset ? this.bb.readInt32(this.bb_pos + offset) : Abc.a; + } + mutate_enum3(value) { + const offset = this.bb.__offset(this.bb_pos, 14); + if (offset === 0) { + return false; + } + this.bb.writeInt32(this.bb_pos + offset, value); + return true; + } + reflect(obj) { + const offset = this.bb.__offset(this.bb_pos, 16); + return offset ? (obj || new Schema()).__init(this.bb.__indirect(this.bb_pos + offset), this.bb) : null; + } + static getFullyQualifiedName() { + return "typescript.Object"; + } + static startObject(builder) { + builder.startObject(7); + } + static addReturn(builder, return_) { + builder.addFieldInt32(0, return_, 0); + } + static addIf(builder, if_) { + builder.addFieldInt32(1, if_, 0); + } + static addSwitch(builder, switch_) { + builder.addFieldInt32(2, switch_, 0); + } + static addEnum(builder, enum_) { + builder.addFieldInt32(3, enum_, class_2.new_); + } + static addEnum2(builder, enum2) { + builder.addFieldInt32(4, enum2, class_.arguments_); + } + static addEnum3(builder, enum3) { + builder.addFieldInt32(5, enum3, Abc.a); + } + static addReflect(builder, reflectOffset) { + builder.addFieldOffset(6, reflectOffset, 0); + } + static endObject(builder) { + const offset = builder.endObject(); + return offset; + } + unpack() { + return new Object_T2(this.return_(), this.if_(), this.switch_(), this.enum_(), this.enum2(), this.enum3(), this.reflect() !== null ? this.reflect().unpack() : null); + } + unpackTo(_o) { + _o.return_ = this.return_(); + _o.if_ = this.if_(); + _o.switch_ = this.switch_(); + _o.enum_ = this.enum_(); + _o.enum2 = this.enum2(); + _o.enum3 = this.enum3(); + _o.reflect = this.reflect() !== null ? this.reflect().unpack() : null; + } +}; +var Object_T2 = class { + constructor(return_ = 0, if_ = 0, switch_ = 0, enum_ = class_2.new_, enum2 = class_.arguments_, enum3 = Abc.a, reflect = null) { + this.return_ = return_; + this.if_ = if_; + this.switch_ = switch_; + this.enum_ = enum_; + this.enum2 = enum2; + this.enum3 = enum3; + this.reflect = reflect; + } + pack(builder) { + const reflect = this.reflect !== null ? this.reflect.pack(builder) : 0; + Object_2.startObject(builder); + Object_2.addReturn(builder, this.return_); + Object_2.addIf(builder, this.if_); + Object_2.addSwitch(builder, this.switch_); + Object_2.addEnum(builder, this.enum_); + Object_2.addEnum2(builder, this.enum2); + Object_2.addEnum3(builder, this.enum3); + Object_2.addReflect(builder, reflect); + return Object_2.endObject(builder); + } +}; diff --git a/tests/ts/typescript_keywords_generated.js b/tests/ts/typescript_keywords_generated.js deleted file mode 100644 index 3ada0d6126..0000000000 --- a/tests/ts/typescript_keywords_generated.js +++ /dev/null @@ -1,170 +0,0 @@ -// automatically generated by the FlatBuffers compiler, do not modify -import * as flatbuffers from 'flatbuffers'; -import { Schema as Schema } from './reflection_generated.js'; -import { class_ as foobar_class_ } from './typescript_include_generated.js'; -import { Abc as Abc } from './typescript_transitive_include_generated.js'; -export var class_; -(function (class_) { - class_[class_["new_"] = 0] = "new_"; - class_[class_["instanceof_"] = 1] = "instanceof_"; -})(class_ || (class_ = {})); -export class Object_ { - constructor() { - this.bb = null; - this.bb_pos = 0; - } - __init(i, bb) { - this.bb_pos = i; - this.bb = bb; - return this; - } - static getRootAsObject(bb, obj) { - return (obj || new Object_()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - static getSizePrefixedRootAsObject(bb, obj) { - bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH); - return (obj || new Object_()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - return_() { - const offset = this.bb.__offset(this.bb_pos, 4); - return offset ? this.bb.readInt32(this.bb_pos + offset) : 0; - } - mutate_return(value) { - const offset = this.bb.__offset(this.bb_pos, 4); - if (offset === 0) { - return false; - } - this.bb.writeInt32(this.bb_pos + offset, value); - return true; - } - if_() { - const offset = this.bb.__offset(this.bb_pos, 6); - return offset ? this.bb.readInt32(this.bb_pos + offset) : 0; - } - mutate_if(value) { - const offset = this.bb.__offset(this.bb_pos, 6); - if (offset === 0) { - return false; - } - this.bb.writeInt32(this.bb_pos + offset, value); - return true; - } - switch_() { - const offset = this.bb.__offset(this.bb_pos, 8); - return offset ? this.bb.readInt32(this.bb_pos + offset) : 0; - } - mutate_switch(value) { - const offset = this.bb.__offset(this.bb_pos, 8); - if (offset === 0) { - return false; - } - this.bb.writeInt32(this.bb_pos + offset, value); - return true; - } - enum_() { - const offset = this.bb.__offset(this.bb_pos, 10); - return offset ? this.bb.readInt32(this.bb_pos + offset) : class_.new_; - } - mutate_enum(value) { - const offset = this.bb.__offset(this.bb_pos, 10); - if (offset === 0) { - return false; - } - this.bb.writeInt32(this.bb_pos + offset, value); - return true; - } - enum2() { - const offset = this.bb.__offset(this.bb_pos, 12); - return offset ? this.bb.readInt32(this.bb_pos + offset) : foobar_class_.arguments_; - } - mutate_enum2(value) { - const offset = this.bb.__offset(this.bb_pos, 12); - if (offset === 0) { - return false; - } - this.bb.writeInt32(this.bb_pos + offset, value); - return true; - } - enum3() { - const offset = this.bb.__offset(this.bb_pos, 14); - return offset ? this.bb.readInt32(this.bb_pos + offset) : Abc.a; - } - mutate_enum3(value) { - const offset = this.bb.__offset(this.bb_pos, 14); - if (offset === 0) { - return false; - } - this.bb.writeInt32(this.bb_pos + offset, value); - return true; - } - reflect(obj) { - const offset = this.bb.__offset(this.bb_pos, 16); - return offset ? (obj || new Schema()).__init(this.bb.__indirect(this.bb_pos + offset), this.bb) : null; - } - static getFullyQualifiedName() { - return 'typescript.Object'; - } - static startObject(builder) { - builder.startObject(7); - } - static addReturn(builder, return_) { - builder.addFieldInt32(0, return_, 0); - } - static addIf(builder, if_) { - builder.addFieldInt32(1, if_, 0); - } - static addSwitch(builder, switch_) { - builder.addFieldInt32(2, switch_, 0); - } - static addEnum(builder, enum_) { - builder.addFieldInt32(3, enum_, class_.new_); - } - static addEnum2(builder, enum2) { - builder.addFieldInt32(4, enum2, foobar_class_.arguments_); - } - static addEnum3(builder, enum3) { - builder.addFieldInt32(5, enum3, Abc.a); - } - static addReflect(builder, reflectOffset) { - builder.addFieldOffset(6, reflectOffset, 0); - } - static endObject(builder) { - const offset = builder.endObject(); - return offset; - } - unpack() { - return new Object_T(this.return_(), this.if_(), this.switch_(), this.enum_(), this.enum2(), this.enum3(), (this.reflect() !== null ? this.reflect().unpack() : null)); - } - unpackTo(_o) { - _o.return_ = this.return_(); - _o.if_ = this.if_(); - _o.switch_ = this.switch_(); - _o.enum_ = this.enum_(); - _o.enum2 = this.enum2(); - _o.enum3 = this.enum3(); - _o.reflect = (this.reflect() !== null ? this.reflect().unpack() : null); - } -} -export class Object_T { - constructor(return_ = 0, if_ = 0, switch_ = 0, enum_ = class_.new_, enum2 = foobar_class_.arguments_, enum3 = Abc.a, reflect = null) { - this.return_ = return_; - this.if_ = if_; - this.switch_ = switch_; - this.enum_ = enum_; - this.enum2 = enum2; - this.enum3 = enum3; - this.reflect = reflect; - } - pack(builder) { - const reflect = (this.reflect !== null ? this.reflect.pack(builder) : 0); - Object_.startObject(builder); - Object_.addReturn(builder, this.return_); - Object_.addIf(builder, this.if_); - Object_.addSwitch(builder, this.switch_); - Object_.addEnum(builder, this.enum_); - Object_.addEnum2(builder, this.enum2); - Object_.addEnum3(builder, this.enum3); - Object_.addReflect(builder, reflect); - return Object_.endObject(builder); - } -} diff --git a/tests/ts/typescript_keywords_generated.ts b/tests/ts/typescript_keywords_generated.ts deleted file mode 100644 index 8ea31944a7..0000000000 --- a/tests/ts/typescript_keywords_generated.ts +++ /dev/null @@ -1,226 +0,0 @@ -// automatically generated by the FlatBuffers compiler, do not modify - -import * as flatbuffers from 'flatbuffers'; - -import {Schema as Schema, SchemaT as SchemaT} from './reflection_generated.js'; -import {class_ as foobar_class_} from './typescript_include_generated.js'; -import {Abc as Abc} from './typescript_transitive_include_generated.js'; - -export enum class_ { - new_ = 0, - instanceof_ = 1 -} - -export class Object_ implements flatbuffers.IUnpackableObject { - bb: flatbuffers.ByteBuffer|null = null; - bb_pos = 0; - __init(i:number, bb:flatbuffers.ByteBuffer):Object_ { - this.bb_pos = i; - this.bb = bb; - return this; -} - -static getRootAsObject(bb:flatbuffers.ByteBuffer, obj?:Object_):Object_ { - return (obj || new Object_()).__init(bb.readInt32(bb.position()) + bb.position(), bb); -} - -static getSizePrefixedRootAsObject(bb:flatbuffers.ByteBuffer, obj?:Object_):Object_ { - bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH); - return (obj || new Object_()).__init(bb.readInt32(bb.position()) + bb.position(), bb); -} - -return_():number { - const offset = this.bb!.__offset(this.bb_pos, 4); - return offset ? this.bb!.readInt32(this.bb_pos + offset) : 0; -} - -mutate_return(value:number):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; -} - -if_():number { - const offset = this.bb!.__offset(this.bb_pos, 6); - return offset ? this.bb!.readInt32(this.bb_pos + offset) : 0; -} - -mutate_if(value:number):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; -} - -switch_():number { - const offset = this.bb!.__offset(this.bb_pos, 8); - return offset ? this.bb!.readInt32(this.bb_pos + offset) : 0; -} - -mutate_switch(value:number):boolean { - const offset = this.bb!.__offset(this.bb_pos, 8); - - if (offset === 0) { - return false; - } - - this.bb!.writeInt32(this.bb_pos + offset, value); - return true; -} - -enum_():class_ { - const offset = this.bb!.__offset(this.bb_pos, 10); - return offset ? this.bb!.readInt32(this.bb_pos + offset) : class_.new_; -} - -mutate_enum(value:class_):boolean { - const offset = this.bb!.__offset(this.bb_pos, 10); - - if (offset === 0) { - return false; - } - - this.bb!.writeInt32(this.bb_pos + offset, value); - return true; -} - -enum2():foobar_class_ { - const offset = this.bb!.__offset(this.bb_pos, 12); - return offset ? this.bb!.readInt32(this.bb_pos + offset) : foobar_class_.arguments_; -} - -mutate_enum2(value:foobar_class_):boolean { - const offset = this.bb!.__offset(this.bb_pos, 12); - - if (offset === 0) { - return false; - } - - this.bb!.writeInt32(this.bb_pos + offset, value); - return true; -} - -enum3():Abc { - const offset = this.bb!.__offset(this.bb_pos, 14); - return offset ? this.bb!.readInt32(this.bb_pos + offset) : Abc.a; -} - -mutate_enum3(value:Abc):boolean { - const offset = this.bb!.__offset(this.bb_pos, 14); - - if (offset === 0) { - return false; - } - - this.bb!.writeInt32(this.bb_pos + offset, value); - return true; -} - -reflect(obj?:Schema):Schema|null { - const offset = this.bb!.__offset(this.bb_pos, 16); - return offset ? (obj || new Schema()).__init(this.bb!.__indirect(this.bb_pos + offset), this.bb!) : null; -} - -static getFullyQualifiedName():string { - return 'typescript.Object'; -} - -static startObject(builder:flatbuffers.Builder) { - builder.startObject(7); -} - -static addReturn(builder:flatbuffers.Builder, return_:number) { - builder.addFieldInt32(0, return_, 0); -} - -static addIf(builder:flatbuffers.Builder, if_:number) { - builder.addFieldInt32(1, if_, 0); -} - -static addSwitch(builder:flatbuffers.Builder, switch_:number) { - builder.addFieldInt32(2, switch_, 0); -} - -static addEnum(builder:flatbuffers.Builder, enum_:class_) { - builder.addFieldInt32(3, enum_, class_.new_); -} - -static addEnum2(builder:flatbuffers.Builder, enum2:foobar_class_) { - builder.addFieldInt32(4, enum2, foobar_class_.arguments_); -} - -static addEnum3(builder:flatbuffers.Builder, enum3:Abc) { - builder.addFieldInt32(5, enum3, Abc.a); -} - -static addReflect(builder:flatbuffers.Builder, reflectOffset:flatbuffers.Offset) { - builder.addFieldOffset(6, reflectOffset, 0); -} - -static endObject(builder:flatbuffers.Builder):flatbuffers.Offset { - const offset = builder.endObject(); - return offset; -} - - -unpack(): Object_T { - return new Object_T( - this.return_(), - this.if_(), - this.switch_(), - this.enum_(), - this.enum2(), - this.enum3(), - (this.reflect() !== null ? this.reflect()!.unpack() : null) - ); -} - - -unpackTo(_o: Object_T): void { - _o.return_ = this.return_(); - _o.if_ = this.if_(); - _o.switch_ = this.switch_(); - _o.enum_ = this.enum_(); - _o.enum2 = this.enum2(); - _o.enum3 = this.enum3(); - _o.reflect = (this.reflect() !== null ? this.reflect()!.unpack() : null); -} -} - -export class Object_T implements flatbuffers.IGeneratedObject { -constructor( - public return_: number = 0, - public if_: number = 0, - public switch_: number = 0, - public enum_: class_ = class_.new_, - public enum2: foobar_class_ = foobar_class_.arguments_, - public enum3: Abc = Abc.a, - public reflect: SchemaT|null = null -){} - - -pack(builder:flatbuffers.Builder): flatbuffers.Offset { - const reflect = (this.reflect !== null ? this.reflect!.pack(builder) : 0); - - Object_.startObject(builder); - Object_.addReturn(builder, this.return_); - Object_.addIf(builder, this.if_); - Object_.addSwitch(builder, this.switch_); - Object_.addEnum(builder, this.enum_); - Object_.addEnum2(builder, this.enum2); - Object_.addEnum3(builder, this.enum3); - Object_.addReflect(builder, reflect); - - return Object_.endObject(builder); -} -} - diff --git a/tests/ts/typescript_transitive_include.ts b/tests/ts/typescript_transitive_include.ts new file mode 100644 index 0000000000..b3242dd94e --- /dev/null +++ b/tests/ts/typescript_transitive_include.ts @@ -0,0 +1,3 @@ +// automatically generated by the FlatBuffers compiler, do not modify + +export * as foobar from './foobar.js'; diff --git a/tests/ts/typescript_transitive_include_generated.cjs b/tests/ts/typescript_transitive_include_generated.cjs new file mode 100644 index 0000000000..a54eecfb4b --- /dev/null +++ b/tests/ts/typescript_transitive_include_generated.cjs @@ -0,0 +1,31 @@ +"use strict"; +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +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 __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); + +// foobar.ts +var foobar_exports = {}; +__export(foobar_exports, { + Abc: () => Abc +}); +module.exports = __toCommonJS(foobar_exports); + +// foobar/abc.js +var Abc; +(function(Abc2) { + Abc2[Abc2["a"] = 0] = "a"; +})(Abc = Abc || (Abc = {})); diff --git a/tests/ts/typescript_transitive_include_generated.js b/tests/ts/typescript_transitive_include_generated.js deleted file mode 100644 index cdef988d94..0000000000 --- a/tests/ts/typescript_transitive_include_generated.js +++ /dev/null @@ -1,5 +0,0 @@ -// automatically generated by the FlatBuffers compiler, do not modify -export var Abc; -(function (Abc) { - Abc[Abc["a"] = 0] = "a"; -})(Abc || (Abc = {})); diff --git a/tests/ts/union_vector/attacker.d.ts b/tests/ts/union_vector/attacker.d.ts new file mode 100644 index 0000000000..302e1d0e95 --- /dev/null +++ b/tests/ts/union_vector/attacker.d.ts @@ -0,0 +1,22 @@ +import * as flatbuffers from 'flatbuffers'; +export declare class Attacker implements flatbuffers.IUnpackableObject { + bb: flatbuffers.ByteBuffer | null; + bb_pos: number; + __init(i: number, bb: flatbuffers.ByteBuffer): Attacker; + static getRootAsAttacker(bb: flatbuffers.ByteBuffer, obj?: Attacker): Attacker; + static getSizePrefixedRootAsAttacker(bb: flatbuffers.ByteBuffer, obj?: Attacker): Attacker; + swordAttackDamage(): number; + mutate_sword_attack_damage(value: number): boolean; + static getFullyQualifiedName(): string; + static startAttacker(builder: flatbuffers.Builder): void; + static addSwordAttackDamage(builder: flatbuffers.Builder, swordAttackDamage: number): void; + static endAttacker(builder: flatbuffers.Builder): flatbuffers.Offset; + static createAttacker(builder: flatbuffers.Builder, swordAttackDamage: number): flatbuffers.Offset; + unpack(): AttackerT; + unpackTo(_o: AttackerT): void; +} +export declare class AttackerT implements flatbuffers.IGeneratedObject { + swordAttackDamage: number; + constructor(swordAttackDamage?: number); + pack(builder: flatbuffers.Builder): flatbuffers.Offset; +} diff --git a/tests/ts/union_vector/book-reader.d.ts b/tests/ts/union_vector/book-reader.d.ts new file mode 100644 index 0000000000..42b7198fef --- /dev/null +++ b/tests/ts/union_vector/book-reader.d.ts @@ -0,0 +1,18 @@ +import * as flatbuffers from 'flatbuffers'; +export declare class BookReader implements flatbuffers.IUnpackableObject { + bb: flatbuffers.ByteBuffer | null; + bb_pos: number; + __init(i: number, bb: flatbuffers.ByteBuffer): BookReader; + booksRead(): number; + mutate_books_read(value: number): boolean; + static getFullyQualifiedName(): string; + static sizeOf(): number; + static createBookReader(builder: flatbuffers.Builder, books_read: number): flatbuffers.Offset; + unpack(): BookReaderT; + unpackTo(_o: BookReaderT): void; +} +export declare class BookReaderT implements flatbuffers.IGeneratedObject { + booksRead: number; + constructor(booksRead?: number); + pack(builder: flatbuffers.Builder): flatbuffers.Offset; +} diff --git a/tests/ts/union_vector/character.d.ts b/tests/ts/union_vector/character.d.ts new file mode 100644 index 0000000000..dbdb4d960c --- /dev/null +++ b/tests/ts/union_vector/character.d.ts @@ -0,0 +1,14 @@ +import { Attacker } from './attacker.js'; +import { BookReader } from './book-reader.js'; +import { Rapunzel } from './rapunzel.js'; +export declare enum Character { + NONE = 0, + MuLan = 1, + Rapunzel = 2, + Belle = 3, + BookFan = 4, + Other = 5, + Unused = 6 +} +export declare function unionToCharacter(type: Character, accessor: (obj: Attacker | BookReader | Rapunzel | string) => Attacker | BookReader | Rapunzel | string | null): Attacker | BookReader | Rapunzel | string | null; +export declare function unionListToCharacter(type: Character, accessor: (index: number, obj: Attacker | BookReader | Rapunzel | string) => Attacker | BookReader | Rapunzel | string | null, index: number): Attacker | BookReader | Rapunzel | string | null; diff --git a/tests/ts/union_vector/character.js b/tests/ts/union_vector/character.js index 04e3294ccd..0ef2ed16d8 100644 --- a/tests/ts/union_vector/character.js +++ b/tests/ts/union_vector/character.js @@ -11,7 +11,7 @@ export var Character; Character[Character["BookFan"] = 4] = "BookFan"; Character[Character["Other"] = 5] = "Other"; Character[Character["Unused"] = 6] = "Unused"; -})(Character || (Character = {})); +})(Character = Character || (Character = {})); export function unionToCharacter(type, accessor) { switch (Character[type]) { case 'NONE': return null; diff --git a/tests/ts/union_vector/falling-tub.d.ts b/tests/ts/union_vector/falling-tub.d.ts new file mode 100644 index 0000000000..3cde3fc714 --- /dev/null +++ b/tests/ts/union_vector/falling-tub.d.ts @@ -0,0 +1,18 @@ +import * as flatbuffers from 'flatbuffers'; +export declare class FallingTub implements flatbuffers.IUnpackableObject { + bb: flatbuffers.ByteBuffer | null; + bb_pos: number; + __init(i: number, bb: flatbuffers.ByteBuffer): FallingTub; + weight(): number; + mutate_weight(value: number): boolean; + static getFullyQualifiedName(): string; + static sizeOf(): number; + static createFallingTub(builder: flatbuffers.Builder, weight: number): flatbuffers.Offset; + unpack(): FallingTubT; + unpackTo(_o: FallingTubT): void; +} +export declare class FallingTubT implements flatbuffers.IGeneratedObject { + weight: number; + constructor(weight?: number); + pack(builder: flatbuffers.Builder): flatbuffers.Offset; +} diff --git a/tests/ts/union_vector/gadget.d.ts b/tests/ts/union_vector/gadget.d.ts new file mode 100644 index 0000000000..46eaa5e7c6 --- /dev/null +++ b/tests/ts/union_vector/gadget.d.ts @@ -0,0 +1,9 @@ +import { FallingTub } from './falling-tub.js'; +import { HandFan } from './hand-fan.js'; +export declare enum Gadget { + NONE = 0, + FallingTub = 1, + HandFan = 2 +} +export declare function unionToGadget(type: Gadget, accessor: (obj: FallingTub | HandFan) => FallingTub | HandFan | null): FallingTub | HandFan | null; +export declare function unionListToGadget(type: Gadget, accessor: (index: number, obj: FallingTub | HandFan) => FallingTub | HandFan | null, index: number): FallingTub | HandFan | null; diff --git a/tests/ts/union_vector/gadget.js b/tests/ts/union_vector/gadget.js index 202a214b5d..5eb339b948 100644 --- a/tests/ts/union_vector/gadget.js +++ b/tests/ts/union_vector/gadget.js @@ -6,7 +6,7 @@ export var Gadget; Gadget[Gadget["NONE"] = 0] = "NONE"; Gadget[Gadget["FallingTub"] = 1] = "FallingTub"; Gadget[Gadget["HandFan"] = 2] = "HandFan"; -})(Gadget || (Gadget = {})); +})(Gadget = Gadget || (Gadget = {})); export function unionToGadget(type, accessor) { switch (Gadget[type]) { case 'NONE': return null; diff --git a/tests/ts/union_vector/hand-fan.d.ts b/tests/ts/union_vector/hand-fan.d.ts new file mode 100644 index 0000000000..a1981dfdfd --- /dev/null +++ b/tests/ts/union_vector/hand-fan.d.ts @@ -0,0 +1,22 @@ +import * as flatbuffers from 'flatbuffers'; +export declare class HandFan implements flatbuffers.IUnpackableObject { + bb: flatbuffers.ByteBuffer | null; + bb_pos: number; + __init(i: number, bb: flatbuffers.ByteBuffer): HandFan; + static getRootAsHandFan(bb: flatbuffers.ByteBuffer, obj?: HandFan): HandFan; + static getSizePrefixedRootAsHandFan(bb: flatbuffers.ByteBuffer, obj?: HandFan): HandFan; + length(): number; + mutate_length(value: number): boolean; + static getFullyQualifiedName(): string; + static startHandFan(builder: flatbuffers.Builder): void; + static addLength(builder: flatbuffers.Builder, length: number): void; + static endHandFan(builder: flatbuffers.Builder): flatbuffers.Offset; + static createHandFan(builder: flatbuffers.Builder, length: number): flatbuffers.Offset; + unpack(): HandFanT; + unpackTo(_o: HandFanT): void; +} +export declare class HandFanT implements flatbuffers.IGeneratedObject { + length: number; + constructor(length?: number); + pack(builder: flatbuffers.Builder): flatbuffers.Offset; +} diff --git a/tests/ts/union_vector/movie.d.ts b/tests/ts/union_vector/movie.d.ts new file mode 100644 index 0000000000..68c9e1671d --- /dev/null +++ b/tests/ts/union_vector/movie.d.ts @@ -0,0 +1,44 @@ +import * as flatbuffers from 'flatbuffers'; +import { AttackerT } from './attacker.js'; +import { BookReaderT } from './book-reader.js'; +import { Character } from './character.js'; +import { RapunzelT } from './rapunzel.js'; +export declare class Movie implements flatbuffers.IUnpackableObject { + bb: flatbuffers.ByteBuffer | null; + bb_pos: number; + __init(i: number, bb: flatbuffers.ByteBuffer): Movie; + static getRootAsMovie(bb: flatbuffers.ByteBuffer, obj?: Movie): Movie; + static getSizePrefixedRootAsMovie(bb: flatbuffers.ByteBuffer, obj?: Movie): Movie; + static bufferHasIdentifier(bb: flatbuffers.ByteBuffer): boolean; + mainCharacterType(): Character; + mainCharacter(obj: any | string): any | string | null; + charactersType(index: number): Character | null; + charactersTypeLength(): number; + charactersTypeArray(): Uint8Array | null; + characters(index: number, obj: any | string): any | string | null; + charactersLength(): number; + static getFullyQualifiedName(): string; + static startMovie(builder: flatbuffers.Builder): void; + static addMainCharacterType(builder: flatbuffers.Builder, mainCharacterType: Character): void; + static addMainCharacter(builder: flatbuffers.Builder, mainCharacterOffset: flatbuffers.Offset): void; + static addCharactersType(builder: flatbuffers.Builder, charactersTypeOffset: flatbuffers.Offset): void; + static createCharactersTypeVector(builder: flatbuffers.Builder, data: Character[]): flatbuffers.Offset; + static startCharactersTypeVector(builder: flatbuffers.Builder, numElems: number): void; + static addCharacters(builder: flatbuffers.Builder, charactersOffset: flatbuffers.Offset): void; + static createCharactersVector(builder: flatbuffers.Builder, data: flatbuffers.Offset[]): flatbuffers.Offset; + static startCharactersVector(builder: flatbuffers.Builder, numElems: number): void; + static endMovie(builder: flatbuffers.Builder): flatbuffers.Offset; + static finishMovieBuffer(builder: flatbuffers.Builder, offset: flatbuffers.Offset): void; + static finishSizePrefixedMovieBuffer(builder: flatbuffers.Builder, offset: flatbuffers.Offset): void; + static createMovie(builder: flatbuffers.Builder, mainCharacterType: Character, mainCharacterOffset: flatbuffers.Offset, charactersTypeOffset: flatbuffers.Offset, charactersOffset: flatbuffers.Offset): flatbuffers.Offset; + unpack(): MovieT; + unpackTo(_o: MovieT): void; +} +export declare class MovieT implements flatbuffers.IGeneratedObject { + mainCharacterType: Character; + mainCharacter: AttackerT | BookReaderT | RapunzelT | string | null; + charactersType: (Character)[]; + characters: (AttackerT | BookReaderT | RapunzelT | string)[]; + constructor(mainCharacterType?: Character, mainCharacter?: AttackerT | BookReaderT | RapunzelT | string | null, charactersType?: (Character)[], characters?: (AttackerT | BookReaderT | RapunzelT | string)[]); + pack(builder: flatbuffers.Builder): flatbuffers.Offset; +} diff --git a/tests/ts/union_vector/rapunzel.d.ts b/tests/ts/union_vector/rapunzel.d.ts new file mode 100644 index 0000000000..c28f1b87d0 --- /dev/null +++ b/tests/ts/union_vector/rapunzel.d.ts @@ -0,0 +1,18 @@ +import * as flatbuffers from 'flatbuffers'; +export declare class Rapunzel implements flatbuffers.IUnpackableObject { + bb: flatbuffers.ByteBuffer | null; + bb_pos: number; + __init(i: number, bb: flatbuffers.ByteBuffer): Rapunzel; + hairLength(): number; + mutate_hair_length(value: number): boolean; + static getFullyQualifiedName(): string; + static sizeOf(): number; + static createRapunzel(builder: flatbuffers.Builder, hair_length: number): flatbuffers.Offset; + unpack(): RapunzelT; + unpackTo(_o: RapunzelT): void; +} +export declare class RapunzelT implements flatbuffers.IGeneratedObject { + hairLength: number; + constructor(hairLength?: number); + pack(builder: flatbuffers.Builder): flatbuffers.Offset; +} diff --git a/tests/ts/union_vector/union_vector.d.ts b/tests/ts/union_vector/union_vector.d.ts new file mode 100644 index 0000000000..3e2be4f470 --- /dev/null +++ b/tests/ts/union_vector/union_vector.d.ts @@ -0,0 +1,8 @@ +export { Attacker } from './attacker.js'; +export { BookReader } from './book-reader.js'; +export { Character } from './character.js'; +export { FallingTub } from './falling-tub.js'; +export { Gadget } from './gadget.js'; +export { HandFan } from './hand-fan.js'; +export { Movie } from './movie.js'; +export { Rapunzel } from './rapunzel.js'; diff --git a/tests/ts/union_vector/union_vector.js b/tests/ts/union_vector/union_vector.js new file mode 100644 index 0000000000..29b895f59f --- /dev/null +++ b/tests/ts/union_vector/union_vector.js @@ -0,0 +1,9 @@ +// automatically generated by the FlatBuffers compiler, do not modify +export { Attacker } from './attacker.js'; +export { BookReader } from './book-reader.js'; +export { Character } from './character.js'; +export { FallingTub } from './falling-tub.js'; +export { Gadget } from './gadget.js'; +export { HandFan } from './hand-fan.js'; +export { Movie } from './movie.js'; +export { Rapunzel } from './rapunzel.js'; diff --git a/tests/ts/union_vector/union_vector.ts b/tests/ts/union_vector/union_vector.ts new file mode 100644 index 0000000000..22209859ec --- /dev/null +++ b/tests/ts/union_vector/union_vector.ts @@ -0,0 +1,10 @@ +// automatically generated by the FlatBuffers compiler, do not modify + +export { Attacker } from './attacker.js'; +export { BookReader } from './book-reader.js'; +export { Character } from './character.js'; +export { FallingTub } from './falling-tub.js'; +export { Gadget } from './gadget.js'; +export { HandFan } from './hand-fan.js'; +export { Movie } from './movie.js'; +export { Rapunzel } from './rapunzel.js'; diff --git a/tests/ts/union_vector/union_vector_generated.cjs b/tests/ts/union_vector/union_vector_generated.cjs new file mode 100644 index 0000000000..0677b13754 --- /dev/null +++ b/tests/ts/union_vector/union_vector_generated.cjs @@ -0,0 +1,548 @@ +"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( + isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, + mod +)); +var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); + +// union_vector/union_vector.ts +var union_vector_exports = {}; +__export(union_vector_exports, { + Attacker: () => Attacker, + BookReader: () => BookReader, + Character: () => Character, + FallingTub: () => FallingTub, + Gadget: () => Gadget, + HandFan: () => HandFan, + Movie: () => Movie, + Rapunzel: () => Rapunzel +}); +module.exports = __toCommonJS(union_vector_exports); + +// union_vector/attacker.js +var flatbuffers = __toESM(require("flatbuffers"), 1); +var Attacker = class { + constructor() { + this.bb = null; + this.bb_pos = 0; + } + __init(i, bb) { + this.bb_pos = i; + this.bb = bb; + return this; + } + static getRootAsAttacker(bb, obj) { + return (obj || new Attacker()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + static getSizePrefixedRootAsAttacker(bb, obj) { + bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH); + return (obj || new Attacker()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + swordAttackDamage() { + const offset = this.bb.__offset(this.bb_pos, 4); + return offset ? this.bb.readInt32(this.bb_pos + offset) : 0; + } + mutate_sword_attack_damage(value) { + const offset = this.bb.__offset(this.bb_pos, 4); + if (offset === 0) { + return false; + } + this.bb.writeInt32(this.bb_pos + offset, value); + return true; + } + static getFullyQualifiedName() { + return "Attacker"; + } + static startAttacker(builder) { + builder.startObject(1); + } + static addSwordAttackDamage(builder, swordAttackDamage) { + builder.addFieldInt32(0, swordAttackDamage, 0); + } + static endAttacker(builder) { + const offset = builder.endObject(); + return offset; + } + static createAttacker(builder, swordAttackDamage) { + Attacker.startAttacker(builder); + Attacker.addSwordAttackDamage(builder, swordAttackDamage); + return Attacker.endAttacker(builder); + } + unpack() { + return new AttackerT(this.swordAttackDamage()); + } + unpackTo(_o) { + _o.swordAttackDamage = this.swordAttackDamage(); + } +}; +var AttackerT = class { + constructor(swordAttackDamage = 0) { + this.swordAttackDamage = swordAttackDamage; + } + pack(builder) { + return Attacker.createAttacker(builder, this.swordAttackDamage); + } +}; + +// union_vector/book-reader.js +var BookReader = class { + constructor() { + this.bb = null; + this.bb_pos = 0; + } + __init(i, bb) { + this.bb_pos = i; + this.bb = bb; + return this; + } + booksRead() { + return this.bb.readInt32(this.bb_pos); + } + mutate_books_read(value) { + this.bb.writeInt32(this.bb_pos + 0, value); + return true; + } + static getFullyQualifiedName() { + return "BookReader"; + } + static sizeOf() { + return 4; + } + static createBookReader(builder, books_read) { + builder.prep(4, 4); + builder.writeInt32(books_read); + return builder.offset(); + } + unpack() { + return new BookReaderT(this.booksRead()); + } + unpackTo(_o) { + _o.booksRead = this.booksRead(); + } +}; +var BookReaderT = class { + constructor(booksRead = 0) { + this.booksRead = booksRead; + } + pack(builder) { + return BookReader.createBookReader(builder, this.booksRead); + } +}; + +// union_vector/rapunzel.js +var Rapunzel = class { + constructor() { + this.bb = null; + this.bb_pos = 0; + } + __init(i, bb) { + this.bb_pos = i; + this.bb = bb; + return this; + } + hairLength() { + return this.bb.readInt32(this.bb_pos); + } + mutate_hair_length(value) { + this.bb.writeInt32(this.bb_pos + 0, value); + return true; + } + static getFullyQualifiedName() { + return "Rapunzel"; + } + static sizeOf() { + return 4; + } + static createRapunzel(builder, hair_length) { + builder.prep(4, 4); + builder.writeInt32(hair_length); + return builder.offset(); + } + unpack() { + return new RapunzelT(this.hairLength()); + } + unpackTo(_o) { + _o.hairLength = this.hairLength(); + } +}; +var RapunzelT = class { + constructor(hairLength = 0) { + this.hairLength = hairLength; + } + pack(builder) { + return Rapunzel.createRapunzel(builder, this.hairLength); + } +}; + +// union_vector/character.js +var Character; +(function(Character2) { + Character2[Character2["NONE"] = 0] = "NONE"; + Character2[Character2["MuLan"] = 1] = "MuLan"; + Character2[Character2["Rapunzel"] = 2] = "Rapunzel"; + Character2[Character2["Belle"] = 3] = "Belle"; + Character2[Character2["BookFan"] = 4] = "BookFan"; + Character2[Character2["Other"] = 5] = "Other"; + Character2[Character2["Unused"] = 6] = "Unused"; +})(Character = Character || (Character = {})); +function unionToCharacter(type, accessor) { + switch (Character[type]) { + case "NONE": + return null; + case "MuLan": + return accessor(new Attacker()); + case "Rapunzel": + return accessor(new Rapunzel()); + case "Belle": + return accessor(new BookReader()); + case "BookFan": + return accessor(new BookReader()); + case "Other": + return accessor(""); + case "Unused": + return accessor(""); + default: + return null; + } +} +function unionListToCharacter(type, accessor, index) { + switch (Character[type]) { + case "NONE": + return null; + case "MuLan": + return accessor(index, new Attacker()); + case "Rapunzel": + return accessor(index, new Rapunzel()); + case "Belle": + return accessor(index, new BookReader()); + case "BookFan": + return accessor(index, new BookReader()); + case "Other": + return accessor(index, ""); + case "Unused": + return accessor(index, ""); + default: + return null; + } +} + +// union_vector/falling-tub.js +var FallingTub = class { + constructor() { + this.bb = null; + this.bb_pos = 0; + } + __init(i, bb) { + this.bb_pos = i; + this.bb = bb; + return this; + } + weight() { + return this.bb.readInt32(this.bb_pos); + } + mutate_weight(value) { + this.bb.writeInt32(this.bb_pos + 0, value); + return true; + } + static getFullyQualifiedName() { + return "FallingTub"; + } + static sizeOf() { + return 4; + } + static createFallingTub(builder, weight) { + builder.prep(4, 4); + builder.writeInt32(weight); + return builder.offset(); + } + unpack() { + return new FallingTubT(this.weight()); + } + unpackTo(_o) { + _o.weight = this.weight(); + } +}; +var FallingTubT = class { + constructor(weight = 0) { + this.weight = weight; + } + pack(builder) { + return FallingTub.createFallingTub(builder, this.weight); + } +}; + +// union_vector/hand-fan.js +var flatbuffers2 = __toESM(require("flatbuffers"), 1); +var HandFan = class { + constructor() { + this.bb = null; + this.bb_pos = 0; + } + __init(i, bb) { + this.bb_pos = i; + this.bb = bb; + return this; + } + static getRootAsHandFan(bb, obj) { + return (obj || new HandFan()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + static getSizePrefixedRootAsHandFan(bb, obj) { + bb.setPosition(bb.position() + flatbuffers2.SIZE_PREFIX_LENGTH); + return (obj || new HandFan()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + length() { + const offset = this.bb.__offset(this.bb_pos, 4); + return offset ? this.bb.readInt32(this.bb_pos + offset) : 0; + } + mutate_length(value) { + const offset = this.bb.__offset(this.bb_pos, 4); + if (offset === 0) { + return false; + } + this.bb.writeInt32(this.bb_pos + offset, value); + return true; + } + static getFullyQualifiedName() { + return "HandFan"; + } + static startHandFan(builder) { + builder.startObject(1); + } + static addLength(builder, length) { + builder.addFieldInt32(0, length, 0); + } + static endHandFan(builder) { + const offset = builder.endObject(); + return offset; + } + static createHandFan(builder, length) { + HandFan.startHandFan(builder); + HandFan.addLength(builder, length); + return HandFan.endHandFan(builder); + } + unpack() { + return new HandFanT(this.length()); + } + unpackTo(_o) { + _o.length = this.length(); + } +}; +var HandFanT = class { + constructor(length = 0) { + this.length = length; + } + pack(builder) { + return HandFan.createHandFan(builder, this.length); + } +}; + +// union_vector/gadget.js +var Gadget; +(function(Gadget2) { + Gadget2[Gadget2["NONE"] = 0] = "NONE"; + Gadget2[Gadget2["FallingTub"] = 1] = "FallingTub"; + Gadget2[Gadget2["HandFan"] = 2] = "HandFan"; +})(Gadget = Gadget || (Gadget = {})); + +// union_vector/movie.js +var flatbuffers3 = __toESM(require("flatbuffers"), 1); +var Movie = class { + constructor() { + this.bb = null; + this.bb_pos = 0; + } + __init(i, bb) { + this.bb_pos = i; + this.bb = bb; + return this; + } + static getRootAsMovie(bb, obj) { + return (obj || new Movie()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + static getSizePrefixedRootAsMovie(bb, obj) { + bb.setPosition(bb.position() + flatbuffers3.SIZE_PREFIX_LENGTH); + return (obj || new Movie()).__init(bb.readInt32(bb.position()) + bb.position(), bb); + } + static bufferHasIdentifier(bb) { + return bb.__has_identifier("MOVI"); + } + mainCharacterType() { + const offset = this.bb.__offset(this.bb_pos, 4); + return offset ? this.bb.readUint8(this.bb_pos + offset) : Character.NONE; + } + mainCharacter(obj) { + const offset = this.bb.__offset(this.bb_pos, 6); + return offset ? this.bb.__union_with_string(obj, this.bb_pos + offset) : null; + } + charactersType(index) { + const offset = this.bb.__offset(this.bb_pos, 8); + return offset ? this.bb.readUint8(this.bb.__vector(this.bb_pos + offset) + index) : 0; + } + charactersTypeLength() { + const offset = this.bb.__offset(this.bb_pos, 8); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + charactersTypeArray() { + const offset = this.bb.__offset(this.bb_pos, 8); + return offset ? new Uint8Array(this.bb.bytes().buffer, this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + offset), this.bb.__vector_len(this.bb_pos + offset)) : null; + } + characters(index, obj) { + const offset = this.bb.__offset(this.bb_pos, 10); + return offset ? this.bb.__union_with_string(obj, this.bb.__vector(this.bb_pos + offset) + index * 4) : null; + } + charactersLength() { + const offset = this.bb.__offset(this.bb_pos, 10); + return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; + } + static getFullyQualifiedName() { + return "Movie"; + } + static startMovie(builder) { + builder.startObject(4); + } + static addMainCharacterType(builder, mainCharacterType) { + builder.addFieldInt8(0, mainCharacterType, Character.NONE); + } + static addMainCharacter(builder, mainCharacterOffset) { + builder.addFieldOffset(1, mainCharacterOffset, 0); + } + static addCharactersType(builder, charactersTypeOffset) { + builder.addFieldOffset(2, charactersTypeOffset, 0); + } + static createCharactersTypeVector(builder, data) { + builder.startVector(1, data.length, 1); + for (let i = data.length - 1; i >= 0; i--) { + builder.addInt8(data[i]); + } + return builder.endVector(); + } + static startCharactersTypeVector(builder, numElems) { + builder.startVector(1, numElems, 1); + } + static addCharacters(builder, charactersOffset) { + builder.addFieldOffset(3, charactersOffset, 0); + } + static createCharactersVector(builder, data) { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) { + builder.addOffset(data[i]); + } + return builder.endVector(); + } + static startCharactersVector(builder, numElems) { + builder.startVector(4, numElems, 4); + } + static endMovie(builder) { + const offset = builder.endObject(); + return offset; + } + static finishMovieBuffer(builder, offset) { + builder.finish(offset, "MOVI"); + } + static finishSizePrefixedMovieBuffer(builder, offset) { + builder.finish(offset, "MOVI", true); + } + static createMovie(builder, mainCharacterType, mainCharacterOffset, charactersTypeOffset, charactersOffset) { + Movie.startMovie(builder); + Movie.addMainCharacterType(builder, mainCharacterType); + Movie.addMainCharacter(builder, mainCharacterOffset); + Movie.addCharactersType(builder, charactersTypeOffset); + Movie.addCharacters(builder, charactersOffset); + return Movie.endMovie(builder); + } + unpack() { + return new MovieT(this.mainCharacterType(), (() => { + const temp = unionToCharacter(this.mainCharacterType(), this.mainCharacter.bind(this)); + if (temp === null) { + return null; + } + if (typeof temp === "string") { + return temp; + } + return temp.unpack(); + })(), this.bb.createScalarList(this.charactersType.bind(this), this.charactersTypeLength()), (() => { + const ret = []; + for (let targetEnumIndex = 0; targetEnumIndex < this.charactersTypeLength(); ++targetEnumIndex) { + const targetEnum = this.charactersType(targetEnumIndex); + if (targetEnum === null || Character[targetEnum] === "NONE") { + continue; + } + const temp = unionListToCharacter(targetEnum, this.characters.bind(this), targetEnumIndex); + if (temp === null) { + continue; + } + if (typeof temp === "string") { + ret.push(temp); + continue; + } + ret.push(temp.unpack()); + } + return ret; + })()); + } + unpackTo(_o) { + _o.mainCharacterType = this.mainCharacterType(); + _o.mainCharacter = (() => { + const temp = unionToCharacter(this.mainCharacterType(), this.mainCharacter.bind(this)); + if (temp === null) { + return null; + } + if (typeof temp === "string") { + return temp; + } + return temp.unpack(); + })(); + _o.charactersType = this.bb.createScalarList(this.charactersType.bind(this), this.charactersTypeLength()); + _o.characters = (() => { + const ret = []; + for (let targetEnumIndex = 0; targetEnumIndex < this.charactersTypeLength(); ++targetEnumIndex) { + const targetEnum = this.charactersType(targetEnumIndex); + if (targetEnum === null || Character[targetEnum] === "NONE") { + continue; + } + const temp = unionListToCharacter(targetEnum, this.characters.bind(this), targetEnumIndex); + if (temp === null) { + continue; + } + if (typeof temp === "string") { + ret.push(temp); + continue; + } + ret.push(temp.unpack()); + } + return ret; + })(); + } +}; +var MovieT = class { + constructor(mainCharacterType = Character.NONE, mainCharacter = null, charactersType = [], characters = []) { + this.mainCharacterType = mainCharacterType; + this.mainCharacter = mainCharacter; + this.charactersType = charactersType; + this.characters = characters; + } + pack(builder) { + const mainCharacter = builder.createObjectOffset(this.mainCharacter); + const charactersType = Movie.createCharactersTypeVector(builder, this.charactersType); + const characters = Movie.createCharactersVector(builder, builder.createObjectOffsetList(this.characters)); + return Movie.createMovie(builder, this.mainCharacterType, mainCharacter, charactersType, characters); + } +}; diff --git a/tests/ts/union_vector/union_vector_generated.js b/tests/ts/union_vector/union_vector_generated.js deleted file mode 100644 index 69ea199096..0000000000 --- a/tests/ts/union_vector/union_vector_generated.js +++ /dev/null @@ -1,9 +0,0 @@ -// automatically generated by the FlatBuffers compiler, do not modify -export { Attacker, AttackerT } from './attacker.js'; -export { BookReader, BookReaderT } from './book-reader.js'; -export { Character, unionToCharacter, unionListToCharacter } from './character.js'; -export { FallingTub, FallingTubT } from './falling-tub.js'; -export { Gadget, unionToGadget, unionListToGadget } from './gadget.js'; -export { HandFan, HandFanT } from './hand-fan.js'; -export { Movie, MovieT } from './movie.js'; -export { Rapunzel, RapunzelT } from './rapunzel.js'; diff --git a/tests/ts/union_vector/union_vector_generated.ts b/tests/ts/union_vector/union_vector_generated.ts deleted file mode 100644 index 5527abe17d..0000000000 --- a/tests/ts/union_vector/union_vector_generated.ts +++ /dev/null @@ -1,10 +0,0 @@ -// automatically generated by the FlatBuffers compiler, do not modify - -export { Attacker, AttackerT } from './attacker.js'; -export { BookReader, BookReaderT } from './book-reader.js'; -export { Character, unionToCharacter, unionListToCharacter } from './character.js'; -export { FallingTub, FallingTubT } from './falling-tub.js'; -export { Gadget, unionToGadget, unionListToGadget } from './gadget.js'; -export { HandFan, HandFanT } from './hand-fan.js'; -export { Movie, MovieT } from './movie.js'; -export { Rapunzel, RapunzelT } from './rapunzel.js'; diff --git a/tests/union_vector/attacker.js b/tests/union_vector/attacker.js deleted file mode 100644 index 32be94e2cb..0000000000 --- a/tests/union_vector/attacker.js +++ /dev/null @@ -1,64 +0,0 @@ -// automatically generated by the FlatBuffers compiler, do not modify -import * as flatbuffers from 'flatbuffers'; -export class Attacker { - constructor() { - this.bb = null; - this.bb_pos = 0; - } - __init(i, bb) { - this.bb_pos = i; - this.bb = bb; - return this; - } - static getRootAsAttacker(bb, obj) { - return (obj || new Attacker()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - static getSizePrefixedRootAsAttacker(bb, obj) { - bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH); - return (obj || new Attacker()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - swordAttackDamage() { - const offset = this.bb.__offset(this.bb_pos, 4); - return offset ? this.bb.readInt32(this.bb_pos + offset) : 0; - } - mutate_sword_attack_damage(value) { - const offset = this.bb.__offset(this.bb_pos, 4); - if (offset === 0) { - return false; - } - this.bb.writeInt32(this.bb_pos + offset, value); - return true; - } - static getFullyQualifiedName() { - return 'Attacker'; - } - static startAttacker(builder) { - builder.startObject(1); - } - static addSwordAttackDamage(builder, swordAttackDamage) { - builder.addFieldInt32(0, swordAttackDamage, 0); - } - static endAttacker(builder) { - const offset = builder.endObject(); - return offset; - } - static createAttacker(builder, swordAttackDamage) { - Attacker.startAttacker(builder); - Attacker.addSwordAttackDamage(builder, swordAttackDamage); - return Attacker.endAttacker(builder); - } - unpack() { - return new AttackerT(this.swordAttackDamage()); - } - unpackTo(_o) { - _o.swordAttackDamage = this.swordAttackDamage(); - } -} -export class AttackerT { - constructor(swordAttackDamage = 0) { - this.swordAttackDamage = swordAttackDamage; - } - pack(builder) { - return Attacker.createAttacker(builder, this.swordAttackDamage); - } -} diff --git a/tests/union_vector/attacker.ts b/tests/union_vector/attacker.ts deleted file mode 100644 index 6b3fc0fc14..0000000000 --- a/tests/union_vector/attacker.ts +++ /dev/null @@ -1,87 +0,0 @@ -// automatically generated by the FlatBuffers compiler, do not modify - -import * as flatbuffers from 'flatbuffers'; - - - -export class Attacker { - bb: flatbuffers.ByteBuffer|null = null; - bb_pos = 0; - __init(i:number, bb:flatbuffers.ByteBuffer):Attacker { - this.bb_pos = i; - this.bb = bb; - return this; -} - -static getRootAsAttacker(bb:flatbuffers.ByteBuffer, obj?:Attacker):Attacker { - return (obj || new Attacker()).__init(bb.readInt32(bb.position()) + bb.position(), bb); -} - -static getSizePrefixedRootAsAttacker(bb:flatbuffers.ByteBuffer, obj?:Attacker):Attacker { - bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH); - return (obj || new Attacker()).__init(bb.readInt32(bb.position()) + bb.position(), bb); -} - -swordAttackDamage():number { - const offset = this.bb!.__offset(this.bb_pos, 4); - return offset ? this.bb!.readInt32(this.bb_pos + offset) : 0; -} - -mutate_sword_attack_damage(value:number):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; -} - -static getFullyQualifiedName():string { - return 'Attacker'; -} - -static startAttacker(builder:flatbuffers.Builder) { - builder.startObject(1); -} - -static addSwordAttackDamage(builder:flatbuffers.Builder, swordAttackDamage:number) { - builder.addFieldInt32(0, swordAttackDamage, 0); -} - -static endAttacker(builder:flatbuffers.Builder):flatbuffers.Offset { - const offset = builder.endObject(); - return offset; -} - -static createAttacker(builder:flatbuffers.Builder, swordAttackDamage:number):flatbuffers.Offset { - Attacker.startAttacker(builder); - Attacker.addSwordAttackDamage(builder, swordAttackDamage); - return Attacker.endAttacker(builder); -} - -unpack(): AttackerT { - return new AttackerT( - this.swordAttackDamage() - ); -} - - -unpackTo(_o: AttackerT): void { - _o.swordAttackDamage = this.swordAttackDamage(); -} -} - -export class AttackerT { -constructor( - public swordAttackDamage: number = 0 -){} - - -pack(builder:flatbuffers.Builder): flatbuffers.Offset { - return Attacker.createAttacker(builder, - this.swordAttackDamage - ); -} -} diff --git a/tests/union_vector/book-reader.js b/tests/union_vector/book-reader.js deleted file mode 100644 index 0d9e1a57cd..0000000000 --- a/tests/union_vector/book-reader.js +++ /dev/null @@ -1,44 +0,0 @@ -// automatically generated by the FlatBuffers compiler, do not modify -export class BookReader { - constructor() { - this.bb = null; - this.bb_pos = 0; - } - __init(i, bb) { - this.bb_pos = i; - this.bb = bb; - return this; - } - booksRead() { - return this.bb.readInt32(this.bb_pos); - } - mutate_books_read(value) { - this.bb.writeInt32(this.bb_pos + 0, value); - return true; - } - static getFullyQualifiedName() { - return 'BookReader'; - } - static sizeOf() { - return 4; - } - static createBookReader(builder, books_read) { - builder.prep(4, 4); - builder.writeInt32(books_read); - return builder.offset(); - } - unpack() { - return new BookReaderT(this.booksRead()); - } - unpackTo(_o) { - _o.booksRead = this.booksRead(); - } -} -export class BookReaderT { - constructor(booksRead = 0) { - this.booksRead = booksRead; - } - pack(builder) { - return BookReader.createBookReader(builder, this.booksRead); - } -} diff --git a/tests/union_vector/book-reader.ts b/tests/union_vector/book-reader.ts deleted file mode 100644 index 7a31278125..0000000000 --- a/tests/union_vector/book-reader.ts +++ /dev/null @@ -1,63 +0,0 @@ -// automatically generated by the FlatBuffers compiler, do not modify - -import * as flatbuffers from 'flatbuffers'; - - - -export class BookReader { - bb: flatbuffers.ByteBuffer|null = null; - bb_pos = 0; - __init(i:number, bb:flatbuffers.ByteBuffer):BookReader { - this.bb_pos = i; - this.bb = bb; - return this; -} - -booksRead():number { - return this.bb!.readInt32(this.bb_pos); -} - -mutate_books_read(value:number):boolean { - this.bb!.writeInt32(this.bb_pos + 0, value); - return true; -} - -static getFullyQualifiedName():string { - return 'BookReader'; -} - -static sizeOf():number { - return 4; -} - -static createBookReader(builder:flatbuffers.Builder, books_read: number):flatbuffers.Offset { - builder.prep(4, 4); - builder.writeInt32(books_read); - return builder.offset(); -} - - -unpack(): BookReaderT { - return new BookReaderT( - this.booksRead() - ); -} - - -unpackTo(_o: BookReaderT): void { - _o.booksRead = this.booksRead(); -} -} - -export class BookReaderT { -constructor( - public booksRead: number = 0 -){} - - -pack(builder:flatbuffers.Builder): flatbuffers.Offset { - return BookReader.createBookReader(builder, - this.booksRead - ); -} -} diff --git a/tests/union_vector/character.js b/tests/union_vector/character.js deleted file mode 100644 index c060298171..0000000000 --- a/tests/union_vector/character.js +++ /dev/null @@ -1,38 +0,0 @@ -// automatically generated by the FlatBuffers compiler, do not modify -import { Attacker } from './attacker'; -import { BookReader } from './book-reader'; -import { Rapunzel } from './rapunzel'; -export var Character; -(function (Character) { - Character[Character["NONE"] = 0] = "NONE"; - Character[Character["MuLan"] = 1] = "MuLan"; - Character[Character["Rapunzel"] = 2] = "Rapunzel"; - Character[Character["Belle"] = 3] = "Belle"; - Character[Character["BookFan"] = 4] = "BookFan"; - Character[Character["Other"] = 5] = "Other"; - Character[Character["Unused"] = 6] = "Unused"; -})(Character || (Character = {})); -export function unionToCharacter(type, accessor) { - switch (Character[type]) { - case 'NONE': return null; - case 'MuLan': return accessor(new Attacker()); - case 'Rapunzel': return accessor(new Rapunzel()); - case 'Belle': return accessor(new BookReader()); - case 'BookFan': return accessor(new BookReader()); - case 'Other': return accessor(''); - case 'Unused': return accessor(''); - default: return null; - } -} -export function unionListToCharacter(type, accessor, index) { - switch (Character[type]) { - case 'NONE': return null; - case 'MuLan': return accessor(index, new Attacker()); - case 'Rapunzel': return accessor(index, new Rapunzel()); - case 'Belle': return accessor(index, new BookReader()); - case 'BookFan': return accessor(index, new BookReader()); - case 'Other': return accessor(index, ''); - case 'Unused': return accessor(index, ''); - default: return null; - } -} diff --git a/tests/union_vector/character.ts b/tests/union_vector/character.ts deleted file mode 100644 index d8ffbc2a1e..0000000000 --- a/tests/union_vector/character.ts +++ /dev/null @@ -1,49 +0,0 @@ -// automatically generated by the FlatBuffers compiler, do not modify - -import { Attacker, AttackerT } from './attacker'; -import { BookReader, BookReaderT } from './book-reader'; -import { Rapunzel, RapunzelT } from './rapunzel'; - - -export enum Character { - NONE = 0, - MuLan = 1, - Rapunzel = 2, - Belle = 3, - BookFan = 4, - Other = 5, - Unused = 6 -} - -export function unionToCharacter( - type: Character, - accessor: (obj:Attacker|BookReader|Rapunzel|string) => Attacker|BookReader|Rapunzel|string|null -): Attacker|BookReader|Rapunzel|string|null { - switch(Character[type]) { - case 'NONE': return null; - case 'MuLan': return accessor(new Attacker())! as Attacker; - case 'Rapunzel': return accessor(new Rapunzel())! as Rapunzel; - case 'Belle': return accessor(new BookReader())! as BookReader; - case 'BookFan': return accessor(new BookReader())! as BookReader; - case 'Other': return accessor('') as string; - case 'Unused': return accessor('') as string; - default: return null; - } -} - -export function unionListToCharacter( - type: Character, - accessor: (index: number, obj:Attacker|BookReader|Rapunzel|string) => Attacker|BookReader|Rapunzel|string|null, - index: number -): Attacker|BookReader|Rapunzel|string|null { - switch(Character[type]) { - case 'NONE': return null; - case 'MuLan': return accessor(index, new Attacker())! as Attacker; - case 'Rapunzel': return accessor(index, new Rapunzel())! as Rapunzel; - case 'Belle': return accessor(index, new BookReader())! as BookReader; - case 'BookFan': return accessor(index, new BookReader())! as BookReader; - case 'Other': return accessor(index, '') as string; - case 'Unused': return accessor(index, '') as string; - default: return null; - } -} diff --git a/tests/union_vector/falling-tub.ts b/tests/union_vector/falling-tub.ts deleted file mode 100644 index b32f99d0ff..0000000000 --- a/tests/union_vector/falling-tub.ts +++ /dev/null @@ -1,63 +0,0 @@ -// automatically generated by the FlatBuffers compiler, do not modify - -import * as flatbuffers from 'flatbuffers'; - - - -export class FallingTub { - bb: flatbuffers.ByteBuffer|null = null; - bb_pos = 0; - __init(i:number, bb:flatbuffers.ByteBuffer):FallingTub { - this.bb_pos = i; - this.bb = bb; - return this; -} - -weight():number { - return this.bb!.readInt32(this.bb_pos); -} - -mutate_weight(value:number):boolean { - this.bb!.writeInt32(this.bb_pos + 0, value); - return true; -} - -static getFullyQualifiedName():string { - return 'FallingTub'; -} - -static sizeOf():number { - return 4; -} - -static createFallingTub(builder:flatbuffers.Builder, weight: number):flatbuffers.Offset { - builder.prep(4, 4); - builder.writeInt32(weight); - return builder.offset(); -} - - -unpack(): FallingTubT { - return new FallingTubT( - this.weight() - ); -} - - -unpackTo(_o: FallingTubT): void { - _o.weight = this.weight(); -} -} - -export class FallingTubT { -constructor( - public weight: number = 0 -){} - - -pack(builder:flatbuffers.Builder): flatbuffers.Offset { - return FallingTub.createFallingTub(builder, - this.weight - ); -} -} diff --git a/tests/union_vector/gadget.ts b/tests/union_vector/gadget.ts deleted file mode 100644 index 328071ebbc..0000000000 --- a/tests/union_vector/gadget.ts +++ /dev/null @@ -1,36 +0,0 @@ -// automatically generated by the FlatBuffers compiler, do not modify - -import { FallingTub, FallingTubT } from './falling-tub'; -import { HandFan, HandFanT } from './hand-fan'; - - -export enum Gadget { - NONE = 0, - FallingTub = 1, - HandFan = 2 -} - -export function unionToGadget( - type: Gadget, - accessor: (obj:FallingTub|HandFan) => FallingTub|HandFan|null -): FallingTub|HandFan|null { - switch(Gadget[type]) { - case 'NONE': return null; - case 'FallingTub': return accessor(new FallingTub())! as FallingTub; - case 'HandFan': return accessor(new HandFan())! as HandFan; - default: return null; - } -} - -export function unionListToGadget( - type: Gadget, - accessor: (index: number, obj:FallingTub|HandFan) => FallingTub|HandFan|null, - index: number -): FallingTub|HandFan|null { - switch(Gadget[type]) { - case 'NONE': return null; - case 'FallingTub': return accessor(index, new FallingTub())! as FallingTub; - case 'HandFan': return accessor(index, new HandFan())! as HandFan; - default: return null; - } -} diff --git a/tests/union_vector/hand-fan.ts b/tests/union_vector/hand-fan.ts deleted file mode 100644 index f90b4dd319..0000000000 --- a/tests/union_vector/hand-fan.ts +++ /dev/null @@ -1,87 +0,0 @@ -// automatically generated by the FlatBuffers compiler, do not modify - -import * as flatbuffers from 'flatbuffers'; - - - -export class HandFan { - bb: flatbuffers.ByteBuffer|null = null; - bb_pos = 0; - __init(i:number, bb:flatbuffers.ByteBuffer):HandFan { - this.bb_pos = i; - this.bb = bb; - return this; -} - -static getRootAsHandFan(bb:flatbuffers.ByteBuffer, obj?:HandFan):HandFan { - return (obj || new HandFan()).__init(bb.readInt32(bb.position()) + bb.position(), bb); -} - -static getSizePrefixedRootAsHandFan(bb:flatbuffers.ByteBuffer, obj?:HandFan):HandFan { - bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH); - return (obj || new HandFan()).__init(bb.readInt32(bb.position()) + bb.position(), bb); -} - -length():number { - const offset = this.bb!.__offset(this.bb_pos, 4); - return offset ? this.bb!.readInt32(this.bb_pos + offset) : 0; -} - -mutate_length(value:number):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; -} - -static getFullyQualifiedName():string { - return 'HandFan'; -} - -static startHandFan(builder:flatbuffers.Builder) { - builder.startObject(1); -} - -static addLength(builder:flatbuffers.Builder, length:number) { - builder.addFieldInt32(0, length, 0); -} - -static endHandFan(builder:flatbuffers.Builder):flatbuffers.Offset { - const offset = builder.endObject(); - return offset; -} - -static createHandFan(builder:flatbuffers.Builder, length:number):flatbuffers.Offset { - HandFan.startHandFan(builder); - HandFan.addLength(builder, length); - return HandFan.endHandFan(builder); -} - -unpack(): HandFanT { - return new HandFanT( - this.length() - ); -} - - -unpackTo(_o: HandFanT): void { - _o.length = this.length(); -} -} - -export class HandFanT { -constructor( - public length: number = 0 -){} - - -pack(builder:flatbuffers.Builder): flatbuffers.Offset { - return HandFan.createHandFan(builder, - this.length - ); -} -} diff --git a/tests/union_vector/movie.js b/tests/union_vector/movie.js deleted file mode 100644 index b4d8099441..0000000000 --- a/tests/union_vector/movie.js +++ /dev/null @@ -1,185 +0,0 @@ -// automatically generated by the FlatBuffers compiler, do not modify -import * as flatbuffers from 'flatbuffers'; -import { Character, unionToCharacter, unionListToCharacter } from './character'; -export class Movie { - constructor() { - this.bb = null; - this.bb_pos = 0; - } - __init(i, bb) { - this.bb_pos = i; - this.bb = bb; - return this; - } - static getRootAsMovie(bb, obj) { - return (obj || new Movie()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - static getSizePrefixedRootAsMovie(bb, obj) { - bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH); - return (obj || new Movie()).__init(bb.readInt32(bb.position()) + bb.position(), bb); - } - static bufferHasIdentifier(bb) { - return bb.__has_identifier('MOVI'); - } - mainCharacterType() { - const offset = this.bb.__offset(this.bb_pos, 4); - return offset ? this.bb.readUint8(this.bb_pos + offset) : Character.NONE; - } - mainCharacter(obj) { - const offset = this.bb.__offset(this.bb_pos, 6); - return offset ? this.bb.__union_with_string(obj, this.bb_pos + offset) : null; - } - charactersType(index) { - const offset = this.bb.__offset(this.bb_pos, 8); - return offset ? this.bb.readUint8(this.bb.__vector(this.bb_pos + offset) + index) : 0; - } - charactersTypeLength() { - const offset = this.bb.__offset(this.bb_pos, 8); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - charactersTypeArray() { - const offset = this.bb.__offset(this.bb_pos, 8); - return offset ? new Uint8Array(this.bb.bytes().buffer, this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + offset), this.bb.__vector_len(this.bb_pos + offset)) : null; - } - characters(index, obj) { - const offset = this.bb.__offset(this.bb_pos, 10); - return offset ? this.bb.__union_with_string(obj, this.bb.__vector(this.bb_pos + offset) + index * 4) : null; - } - charactersLength() { - const offset = this.bb.__offset(this.bb_pos, 10); - return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; - } - static getFullyQualifiedName() { - return 'Movie'; - } - static startMovie(builder) { - builder.startObject(4); - } - static addMainCharacterType(builder, mainCharacterType) { - builder.addFieldInt8(0, mainCharacterType, Character.NONE); - } - static addMainCharacter(builder, mainCharacterOffset) { - builder.addFieldOffset(1, mainCharacterOffset, 0); - } - static addCharactersType(builder, charactersTypeOffset) { - builder.addFieldOffset(2, charactersTypeOffset, 0); - } - static createCharactersTypeVector(builder, data) { - builder.startVector(1, data.length, 1); - for (let i = data.length - 1; i >= 0; i--) { - builder.addInt8(data[i]); - } - return builder.endVector(); - } - static startCharactersTypeVector(builder, numElems) { - builder.startVector(1, numElems, 1); - } - static addCharacters(builder, charactersOffset) { - builder.addFieldOffset(3, charactersOffset, 0); - } - static createCharactersVector(builder, data) { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]); - } - return builder.endVector(); - } - static startCharactersVector(builder, numElems) { - builder.startVector(4, numElems, 4); - } - static endMovie(builder) { - const offset = builder.endObject(); - return offset; - } - static finishMovieBuffer(builder, offset) { - builder.finish(offset, 'MOVI'); - } - static finishSizePrefixedMovieBuffer(builder, offset) { - builder.finish(offset, 'MOVI', true); - } - static createMovie(builder, mainCharacterType, mainCharacterOffset, charactersTypeOffset, charactersOffset) { - Movie.startMovie(builder); - Movie.addMainCharacterType(builder, mainCharacterType); - Movie.addMainCharacter(builder, mainCharacterOffset); - Movie.addCharactersType(builder, charactersTypeOffset); - Movie.addCharacters(builder, charactersOffset); - return Movie.endMovie(builder); - } - unpack() { - return new MovieT(this.mainCharacterType(), (() => { - let temp = unionToCharacter(this.mainCharacterType(), this.mainCharacter.bind(this)); - if (temp === null) { - return null; - } - if (typeof temp === 'string') { - return temp; - } - return temp.unpack(); - })(), this.bb.createScalarList(this.charactersType.bind(this), this.charactersTypeLength()), (() => { - let ret = []; - for (let targetEnumIndex = 0; targetEnumIndex < this.charactersTypeLength(); ++targetEnumIndex) { - let targetEnum = this.charactersType(targetEnumIndex); - if (targetEnum === null || Character[targetEnum] === 'NONE') { - continue; - } - let temp = unionListToCharacter(targetEnum, this.characters.bind(this), targetEnumIndex); - if (temp === null) { - continue; - } - if (typeof temp === 'string') { - ret.push(temp); - continue; - } - ret.push(temp.unpack()); - } - return ret; - })()); - } - unpackTo(_o) { - _o.mainCharacterType = this.mainCharacterType(); - _o.mainCharacter = (() => { - let temp = unionToCharacter(this.mainCharacterType(), this.mainCharacter.bind(this)); - if (temp === null) { - return null; - } - if (typeof temp === 'string') { - return temp; - } - return temp.unpack(); - })(); - _o.charactersType = this.bb.createScalarList(this.charactersType.bind(this), this.charactersTypeLength()); - _o.characters = (() => { - let ret = []; - for (let targetEnumIndex = 0; targetEnumIndex < this.charactersTypeLength(); ++targetEnumIndex) { - let targetEnum = this.charactersType(targetEnumIndex); - if (targetEnum === null || Character[targetEnum] === 'NONE') { - continue; - } - let temp = unionListToCharacter(targetEnum, this.characters.bind(this), targetEnumIndex); - if (temp === null) { - continue; - } - if (typeof temp === 'string') { - ret.push(temp); - continue; - } - ret.push(temp.unpack()); - } - return ret; - })(); - } -} -export class MovieT { - constructor(mainCharacterType = Character.NONE, mainCharacter = null, charactersType = [], characters = []) { - this.mainCharacterType = mainCharacterType; - this.mainCharacter = mainCharacter; - this.charactersType = charactersType; - this.characters = characters; - } - pack(builder) { - const mainCharacter = builder.createObjectOffset(this.mainCharacter); - const charactersType = Movie.createCharactersTypeVector(builder, this.charactersType); - const characters = Movie.createCharactersVector(builder, builder.createObjectOffsetList(this.characters)); - return Movie.createMovie(builder, this.mainCharacterType, mainCharacter, charactersType, characters); - } -} diff --git a/tests/union_vector/movie.ts b/tests/union_vector/movie.ts deleted file mode 100644 index fceadaa297..0000000000 --- a/tests/union_vector/movie.ts +++ /dev/null @@ -1,211 +0,0 @@ -// automatically generated by the FlatBuffers compiler, do not modify - -import * as flatbuffers from 'flatbuffers'; - -import { Attacker, AttackerT } from './attacker'; -import { BookReader, BookReaderT } from './book-reader'; -import { Character, unionToCharacter, unionListToCharacter } from './character'; -import { Rapunzel, RapunzelT } from './rapunzel'; - - -export class Movie { - bb: flatbuffers.ByteBuffer|null = null; - bb_pos = 0; - __init(i:number, bb:flatbuffers.ByteBuffer):Movie { - this.bb_pos = i; - this.bb = bb; - return this; -} - -static getRootAsMovie(bb:flatbuffers.ByteBuffer, obj?:Movie):Movie { - return (obj || new Movie()).__init(bb.readInt32(bb.position()) + bb.position(), bb); -} - -static getSizePrefixedRootAsMovie(bb:flatbuffers.ByteBuffer, obj?:Movie):Movie { - bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH); - return (obj || new Movie()).__init(bb.readInt32(bb.position()) + bb.position(), bb); -} - -static bufferHasIdentifier(bb:flatbuffers.ByteBuffer):boolean { - return bb.__has_identifier('MOVI'); -} - -mainCharacterType():Character { - const offset = this.bb!.__offset(this.bb_pos, 4); - return offset ? this.bb!.readUint8(this.bb_pos + offset) : Character.NONE; -} - -mainCharacter(obj:any|string):any|string|null { - const offset = this.bb!.__offset(this.bb_pos, 6); - return offset ? this.bb!.__union_with_string(obj, this.bb_pos + offset) : null; -} - -charactersType(index: number):Character|null { - const offset = this.bb!.__offset(this.bb_pos, 8); - return offset ? this.bb!.readUint8(this.bb!.__vector(this.bb_pos + offset) + index) : 0; -} - -charactersTypeLength():number { - const offset = this.bb!.__offset(this.bb_pos, 8); - return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0; -} - -charactersTypeArray():Uint8Array|null { - const offset = this.bb!.__offset(this.bb_pos, 8); - return offset ? new Uint8Array(this.bb!.bytes().buffer, this.bb!.bytes().byteOffset + this.bb!.__vector(this.bb_pos + offset), this.bb!.__vector_len(this.bb_pos + offset)) : null; -} - -characters(index: number, obj:any|string):any|string|null { - const offset = this.bb!.__offset(this.bb_pos, 10); - return offset ? this.bb!.__union_with_string(obj, this.bb!.__vector(this.bb_pos + offset) + index * 4) : null; -} - -charactersLength():number { - const offset = this.bb!.__offset(this.bb_pos, 10); - return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0; -} - -static getFullyQualifiedName():string { - return 'Movie'; -} - -static startMovie(builder:flatbuffers.Builder) { - builder.startObject(4); -} - -static addMainCharacterType(builder:flatbuffers.Builder, mainCharacterType:Character) { - builder.addFieldInt8(0, mainCharacterType, Character.NONE); -} - -static addMainCharacter(builder:flatbuffers.Builder, mainCharacterOffset:flatbuffers.Offset) { - builder.addFieldOffset(1, mainCharacterOffset, 0); -} - -static addCharactersType(builder:flatbuffers.Builder, charactersTypeOffset:flatbuffers.Offset) { - builder.addFieldOffset(2, charactersTypeOffset, 0); -} - -static createCharactersTypeVector(builder:flatbuffers.Builder, data:Character[]):flatbuffers.Offset { - builder.startVector(1, data.length, 1); - for (let i = data.length - 1; i >= 0; i--) { - builder.addInt8(data[i]!); - } - return builder.endVector(); -} - -static startCharactersTypeVector(builder:flatbuffers.Builder, numElems:number) { - builder.startVector(1, numElems, 1); -} - -static addCharacters(builder:flatbuffers.Builder, charactersOffset:flatbuffers.Offset) { - builder.addFieldOffset(3, charactersOffset, 0); -} - -static createCharactersVector(builder:flatbuffers.Builder, data:flatbuffers.Offset[]):flatbuffers.Offset { - builder.startVector(4, data.length, 4); - for (let i = data.length - 1; i >= 0; i--) { - builder.addOffset(data[i]!); - } - return builder.endVector(); -} - -static startCharactersVector(builder:flatbuffers.Builder, numElems:number) { - builder.startVector(4, numElems, 4); -} - -static endMovie(builder:flatbuffers.Builder):flatbuffers.Offset { - const offset = builder.endObject(); - return offset; -} - -static finishMovieBuffer(builder:flatbuffers.Builder, offset:flatbuffers.Offset) { - builder.finish(offset, 'MOVI'); -} - -static finishSizePrefixedMovieBuffer(builder:flatbuffers.Builder, offset:flatbuffers.Offset) { - builder.finish(offset, 'MOVI', true); -} - -static createMovie(builder:flatbuffers.Builder, mainCharacterType:Character, mainCharacterOffset:flatbuffers.Offset, charactersTypeOffset:flatbuffers.Offset, charactersOffset:flatbuffers.Offset):flatbuffers.Offset { - Movie.startMovie(builder); - Movie.addMainCharacterType(builder, mainCharacterType); - Movie.addMainCharacter(builder, mainCharacterOffset); - Movie.addCharactersType(builder, charactersTypeOffset); - Movie.addCharacters(builder, charactersOffset); - return Movie.endMovie(builder); -} - -unpack(): MovieT { - return new MovieT( - this.mainCharacterType(), - (() => { - let temp = unionToCharacter(this.mainCharacterType(), this.mainCharacter.bind(this)); - if(temp === null) { return null; } - if(typeof temp === 'string') { return temp; } - return temp.unpack() - })(), - this.bb!.createScalarList(this.charactersType.bind(this), this.charactersTypeLength()), - (() => { - let ret = []; - for(let targetEnumIndex = 0; targetEnumIndex < this.charactersTypeLength(); ++targetEnumIndex) { - let targetEnum = this.charactersType(targetEnumIndex); - if(targetEnum === null || Character[targetEnum!] === 'NONE') { continue; } - - let temp = unionListToCharacter(targetEnum, this.characters.bind(this), targetEnumIndex); - if(temp === null) { continue; } - if(typeof temp === 'string') { ret.push(temp); continue; } - ret.push(temp.unpack()); - } - return ret; - })() - ); -} - - -unpackTo(_o: MovieT): void { - _o.mainCharacterType = this.mainCharacterType(); - _o.mainCharacter = (() => { - let temp = unionToCharacter(this.mainCharacterType(), this.mainCharacter.bind(this)); - if(temp === null) { return null; } - if(typeof temp === 'string') { return temp; } - return temp.unpack() - })(); - _o.charactersType = this.bb!.createScalarList(this.charactersType.bind(this), this.charactersTypeLength()); - _o.characters = (() => { - let ret = []; - for(let targetEnumIndex = 0; targetEnumIndex < this.charactersTypeLength(); ++targetEnumIndex) { - let targetEnum = this.charactersType(targetEnumIndex); - if(targetEnum === null || Character[targetEnum!] === 'NONE') { continue; } - - let temp = unionListToCharacter(targetEnum, this.characters.bind(this), targetEnumIndex); - if(temp === null) { continue; } - if(typeof temp === 'string') { ret.push(temp); continue; } - ret.push(temp.unpack()); - } - return ret; - })(); -} -} - -export class MovieT { -constructor( - public mainCharacterType: Character = Character.NONE, - public mainCharacter: AttackerT|BookReaderT|RapunzelT|string|null = null, - public charactersType: (Character)[] = [], - public characters: (AttackerT|BookReaderT|RapunzelT|string)[] = [] -){} - - -pack(builder:flatbuffers.Builder): flatbuffers.Offset { - const mainCharacter = builder.createObjectOffset(this.mainCharacter); - const charactersType = Movie.createCharactersTypeVector(builder, this.charactersType); - const characters = Movie.createCharactersVector(builder, builder.createObjectOffsetList(this.characters)); - - return Movie.createMovie(builder, - this.mainCharacterType, - mainCharacter, - charactersType, - characters - ); -} -} diff --git a/tests/union_vector/union_vector.js b/tests/union_vector/union_vector.js deleted file mode 100644 index f3a118b7de..0000000000 --- a/tests/union_vector/union_vector.js +++ /dev/null @@ -1,8 +0,0 @@ -export { Attacker, AttackerT } from './attacker'; -export { BookReader, BookReaderT } from './book-reader'; -export { Character, unionToCharacter, unionListToCharacter } from './character'; -export { FallingTub, FallingTubT } from './falling-tub'; -export { Gadget, unionToGadget, unionListToGadget } from './gadget'; -export { HandFan, HandFanT } from './hand-fan'; -export { Movie, MovieT } from './movie'; -export { Rapunzel, RapunzelT } from './rapunzel'; diff --git a/tests/union_vector/union_vector.ts b/tests/union_vector/union_vector.ts deleted file mode 100644 index f3a118b7de..0000000000 --- a/tests/union_vector/union_vector.ts +++ /dev/null @@ -1,8 +0,0 @@ -export { Attacker, AttackerT } from './attacker'; -export { BookReader, BookReaderT } from './book-reader'; -export { Character, unionToCharacter, unionListToCharacter } from './character'; -export { FallingTub, FallingTubT } from './falling-tub'; -export { Gadget, unionToGadget, unionListToGadget } from './gadget'; -export { HandFan, HandFanT } from './hand-fan'; -export { Movie, MovieT } from './movie'; -export { Rapunzel, RapunzelT } from './rapunzel'; diff --git a/tests/union_vector/union_vector_generated.ts b/tests/union_vector/union_vector_generated.ts deleted file mode 100644 index d3b41c4954..0000000000 --- a/tests/union_vector/union_vector_generated.ts +++ /dev/null @@ -1,10 +0,0 @@ -// automatically generated by the FlatBuffers compiler, do not modify - -export { Attacker, AttackerT } from './attacker'; -export { BookReader, BookReaderT } from './book-reader'; -export { Character, unionToCharacter, unionListToCharacter } from './character'; -export { FallingTub, FallingTubT } from './falling-tub'; -export { Gadget, unionToGadget, unionListToGadget } from './gadget'; -export { HandFan, HandFanT } from './hand-fan'; -export { Movie, MovieT } from './movie'; -export { Rapunzel, RapunzelT } from './rapunzel'; diff --git a/ts/BUILD.bazel b/ts/BUILD.bazel index 605329ed3e..34fa6746aa 100644 --- a/ts/BUILD.bazel +++ b/ts/BUILD.bazel @@ -8,7 +8,7 @@ ts_project( "byte-buffer.ts", "constants.ts", "encoding.ts", - "index.ts", + "flatbuffers.ts", "types.ts", "utils.ts", ], @@ -37,3 +37,21 @@ js_library( visibility = ["//visibility:public"], deps = [":flatbuffers_ts"], ) + +sh_binary( + name = "compile_flat_file", + srcs = ["compile_flat_file.sh"], + data = [ + "@com_github_google_flatbuffers//:flatc", + "@nodejs_linux_amd64//:node_bin", + "@npm//esbuild/bin:esbuild", + ], + # We just depend directly on the linux amd64 nodejs binary, so only support + # running this script on amd64 for now. + target_compatible_with = [ + "@platforms//cpu:x86_64", + "@platforms//os:linux", + ], + visibility = ["//visibility:public"], + deps = ["@bazel_tools//tools/bash/runfiles"], +) diff --git a/ts/compile_flat_file.sh b/ts/compile_flat_file.sh new file mode 100755 index 0000000000..0aeaebeaea --- /dev/null +++ b/ts/compile_flat_file.sh @@ -0,0 +1,23 @@ +#!/bin/bash +# This is a script used by the typescript flatbuffer bazel rules to compile +# a flatbuffer schema (.fbs file) to typescript and then use esbuild to +# generate a single output. +# Note: This relies on parsing the stdout of flatc to figure out how to +# run esbuild. +# --- begin runfiles.bash initialization v2 --- +# Copy-pasted from the Bazel Bash runfiles library v2. +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 v2 --- +set -e +runfiles_export_envvars +FLATC=$(rlocation com_github_google_flatbuffers/flatc) +ESBUILD=$(rlocation npm/node_modules/esbuild/bin/esbuild) +TS_FILE=$(${FLATC} $@ | grep "Entry point.*generated" | grep -o "bazel-out.*ts") +export PATH=$(rlocation nodejs_linux_amd64/bin/nodejs/bin) +${ESBUILD} ${TS_FILE} --format=cjs --bundle --outfile="${OUTPUT_FILE}" --external:flatbuffers --log-level=warning diff --git a/ts/flatbuffers.ts b/ts/flatbuffers.ts index 7c0010bf06..a608512451 100644 --- a/ts/flatbuffers.ts +++ b/ts/flatbuffers.ts @@ -1 +1,12 @@ -export * as flatbuffers from './index.js' \ No newline at end of file +export { SIZEOF_SHORT } from './constants.js' +export { SIZEOF_INT } from './constants.js' +export { FILE_IDENTIFIER_LENGTH } from './constants.js' +export { SIZE_PREFIX_LENGTH } from './constants.js' + +export { Table, Offset, IGeneratedObject, IUnpackableObject } from './types.js' + +export { int32, float32, float64, isLittleEndian } from './utils.js' + +export { Encoding } from './encoding.js' +export { Builder } from './builder.js' +export { ByteBuffer } from './byte-buffer.js' diff --git a/ts/index.ts b/ts/index.ts deleted file mode 100644 index a608512451..0000000000 --- a/ts/index.ts +++ /dev/null @@ -1,12 +0,0 @@ -export { SIZEOF_SHORT } from './constants.js' -export { SIZEOF_INT } from './constants.js' -export { FILE_IDENTIFIER_LENGTH } from './constants.js' -export { SIZE_PREFIX_LENGTH } from './constants.js' - -export { Table, Offset, IGeneratedObject, IUnpackableObject } from './types.js' - -export { int32, float32, float64, isLittleEndian } from './utils.js' - -export { Encoding } from './encoding.js' -export { Builder } from './builder.js' -export { ByteBuffer } from './byte-buffer.js' diff --git a/tsconfig.json b/tsconfig.json index 9af4075eff..1636255e79 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,13 +1,12 @@ { "compilerOptions": { - "target": "ES5", - "module": "commonjs", - "lib": ["ES2015", "ES2020.BigInt", "DOM"], + "target": "ES2020", + "module": "CommonJS", + "lib": ["ES2020", "DOM"], "declaration": true, "outDir": "./js", "strict": true, "esModuleInterop": true, - "skipLibCheck": true, "forceConsistentCasingInFileNames": true }, "include": [ diff --git a/tsconfig.mjs.json b/tsconfig.mjs.json index 5af9460d7e..4c58d84925 100644 --- a/tsconfig.mjs.json +++ b/tsconfig.mjs.json @@ -1,13 +1,12 @@ { "compilerOptions": { - "target": "ES2017", - "module": "ES2015", - "lib": ["ES2017", "ES2020.BigInt", "DOM"], + "target": "ES2020", + "module": "NodeNext", + "lib": ["ES2020", "DOM"], "declaration": true, "outDir": "./mjs", "strict": true, "esModuleInterop": true, - "skipLibCheck": true, "forceConsistentCasingInFileNames": true }, "include": [ diff --git a/typescript.bzl b/typescript.bzl index f112f34f95..41eb335cc0 100644 --- a/typescript.bzl +++ b/typescript.bzl @@ -3,8 +3,7 @@ Rules for building typescript flatbuffers with Bazel. """ load("@build_bazel_rules_nodejs//:index.bzl", "js_library") -load("@npm//@bazel/typescript:index.bzl", "ts_project") -load(":build_defs.bzl", "DEFAULT_INCLUDE_PATHS", "flatbuffer_library_public") +load(":build_defs.bzl", "flatbuffer_library_public") DEFAULT_FLATC_TS_ARGS = [ "--gen-object-api", @@ -21,11 +20,10 @@ def flatbuffer_ts_library( compatible_with = None, target_compatible_with = None, deps = [], - include_paths = DEFAULT_INCLUDE_PATHS, + include_paths = None, flatc_args = DEFAULT_FLATC_TS_ARGS, visibility = None, restricted_to = None, - include_reflection = True, gen_reflections = False, package_name = None): """Generates a ts_library rule for a given flatbuffer definition. @@ -46,9 +44,6 @@ def flatbuffer_ts_library( for, instead of default-supported environments. target_compatible_with: Optional, The list of target platform constraints to use. - include_reflection: Optional, Whether to depend on the flatbuffer - reflection library automatically. Only really relevant for the - target that builds the reflection library itself. gen_reflections: Optional, if true this will generate the flatbuffer reflection binaries for the schemas. package_name: Optional, Package name to use for the generated code. @@ -56,65 +51,26 @@ def flatbuffer_ts_library( srcs_lib = "%s_srcs" % (name) out_base = [s.replace(".fbs", "").split("/")[-1].split(":")[-1] for s in srcs] - # Because of how we have to manage the bazel rules for typescript, - # reflection has to get special-cased to get imported when - # run within bazel. As such, generate the code using the _pregenerate - # suffix; then do a find/replace to fix-up all the reflection imports. - pre_outs = ["%s_pregenerated.ts" % s for s in out_base] - outs = ["%s_generated.ts" % s for s in out_base] + if len(srcs) != 1: + fail("flatbuffer_ts_library only supports one .fbs file per target currently.") + + outs = ["%s_generated.cjs" % s for s in out_base] includes = [d + "_includes" for d in deps] reflection_name = "%s_reflection" % name if gen_reflections else "" flatbuffer_library_public( name = srcs_lib, srcs = srcs, - outs = pre_outs, + outs = outs, language_flag = "--ts", includes = includes, include_paths = include_paths, - flatc_args = flatc_args + ["--filename-suffix _pregenerated"], + flatc_args = flatc_args + ["--filename-suffix _generated"], compatible_with = compatible_with, restricted_to = restricted_to, reflection_name = reflection_name, reflection_visibility = visibility, target_compatible_with = target_compatible_with, - ) - fix_import_cmd = " ".join([ - "SRCS=($(SRCS));", - "OUTS=($(OUTS));", - "for i in $${!SRCS[@]}; do", - "sed \"s/'.*reflection\\/reflection_pregenerated/'flatbuffers_reflection\\/reflection_generated/; s/_pregenerated/_generated/\" $${SRCS[i]} > $${OUTS[i]};", - "done", - ]) - native.genrule( - name = name + "_reimporter", - srcs = pre_outs, - outs = outs, - cmd = fix_import_cmd, - ) - ts_project( - name = name + "_ts", - srcs = outs, - declaration = True, - visibility = visibility, - compatible_with = compatible_with, - restricted_to = restricted_to, - target_compatible_with = target_compatible_with, - tsconfig = { - "compilerOptions": { - "declaration": True, - "lib": [ - "ES2015", - "ES2020.BigInt", - "DOM", - ], - "module": "commonjs", - "moduleResolution": "node", - "noUnusedLocals": True, - "strict": True, - "types": ["node"], - }, - }, - deps = deps + ["@com_github_google_flatbuffers//ts:flatbuffers"] + (["@com_github_google_flatbuffers//reflection/ts:reflection_ts_fbs"] if include_reflection else []), + flatc_path = "@com_github_google_flatbuffers//ts:compile_flat_file", ) js_library( name = name, @@ -122,7 +78,7 @@ def flatbuffer_ts_library( compatible_with = compatible_with, restricted_to = restricted_to, target_compatible_with = target_compatible_with, - deps = [name + "_ts"], + srcs = outs, package_name = package_name, ) native.filegroup( diff --git a/yarn.lock b/yarn.lock index 8636de9b98..0150fa9813 100644 --- a/yarn.lock +++ b/yarn.lock @@ -20,10 +20,120 @@ dependencies: google-protobuf "^3.6.1" -"@eslint/eslintrc@^1.3.2": - version "1.3.2" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.3.2.tgz#58b69582f3b7271d8fa67fe5251767a5b38ea356" - integrity sha512-AXYd23w1S/bv3fTs3Lz0vjiYemS08jWkI3hYyS9I1ry+0f+Yjs1wm+sU0BS8qDOPrBIkp4qHYC16I8uVtpLajQ== +"@esbuild/android-arm64@0.16.4": + version "0.16.4" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.16.4.tgz#4b31b9e3da2e4c12a8170bd682f713c775f68ab1" + integrity sha512-VPuTzXFm/m2fcGfN6CiwZTlLzxrKsWbPkG7ArRFpuxyaHUm/XFHQPD4xNwZT6uUmpIHhnSjcaCmcla8COzmZ5Q== + +"@esbuild/android-arm@0.16.4": + version "0.16.4" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.16.4.tgz#057d3e8b0ee41ff59386c33ba6dcf20f4bedd1f7" + integrity sha512-rZzb7r22m20S1S7ufIc6DC6W659yxoOrl7sKP1nCYhuvUlnCFHVSbATG4keGUtV8rDz11sRRDbWkvQZpzPaHiw== + +"@esbuild/android-x64@0.16.4": + version "0.16.4" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.16.4.tgz#62ccab8ac1d3e6ef1df3fa2e1974bc2b8528d74a" + integrity sha512-MW+B2O++BkcOfMWmuHXB15/l1i7wXhJFqbJhp82IBOais8RBEQv2vQz/jHrDEHaY2X0QY7Wfw86SBL2PbVOr0g== + +"@esbuild/darwin-arm64@0.16.4": + version "0.16.4" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.16.4.tgz#c19a6489d626c36fc611c85ccd8a3333c1f2a930" + integrity sha512-a28X1O//aOfxwJVZVs7ZfM8Tyih2Za4nKJrBwW5Wm4yKsnwBy9aiS/xwpxiiTRttw3EaTg4Srerhcm6z0bu9Wg== + +"@esbuild/darwin-x64@0.16.4": + version "0.16.4" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.16.4.tgz#b726bbc84a1e277f6ec2509d10b8ee03f242b776" + integrity sha512-e3doCr6Ecfwd7VzlaQqEPrnbvvPjE9uoTpxG5pyLzr2rI2NMjDHmvY1E5EO81O/e9TUOLLkXA5m6T8lfjK9yAA== + +"@esbuild/freebsd-arm64@0.16.4": + version "0.16.4" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.16.4.tgz#364568e6ca2901297f247de0681c9b14bbe658c8" + integrity sha512-Oup3G/QxBgvvqnXWrBed7xxkFNwAwJVHZcklWyQt7YCAL5bfUkaa6FVWnR78rNQiM8MqqLiT6ZTZSdUFuVIg1w== + +"@esbuild/freebsd-x64@0.16.4": + version "0.16.4" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.16.4.tgz#44701ba4a5497ba64eec0a6c9e221d8f46a25e72" + integrity sha512-vAP+eYOxlN/Bpo/TZmzEQapNS8W1njECrqkTpNgvXskkkJC2AwOXwZWai/Kc2vEFZUXQttx6UJbj9grqjD/+9Q== + +"@esbuild/linux-arm64@0.16.4": + version "0.16.4" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.16.4.tgz#b58fb418ec9ac714d8dbb38c787ff2441eb1d9db" + integrity sha512-2zXoBhv4r5pZiyjBKrOdFP4CXOChxXiYD50LRUU+65DkdS5niPFHbboKZd/c81l0ezpw7AQnHeoCy5hFrzzs4g== + +"@esbuild/linux-arm@0.16.4": + version "0.16.4" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.16.4.tgz#b37f15ecddb53eeea466e5960e31a58f33e0e87e" + integrity sha512-A47ZmtpIPyERxkSvIv+zLd6kNIOtJH03XA0Hy7jaceRDdQaQVGSDt4mZqpWqJYgDk9rg96aglbF6kCRvPGDSUA== + +"@esbuild/linux-ia32@0.16.4": + version "0.16.4" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.16.4.tgz#117e32a9680b5deac184ebee122f8575369fad1b" + integrity sha512-uxdSrpe9wFhz4yBwt2kl2TxS/NWEINYBUFIxQtaEVtglm1eECvsj1vEKI0KX2k2wCe17zDdQ3v+jVxfwVfvvjw== + +"@esbuild/linux-loong64@0.16.4": + version "0.16.4" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.16.4.tgz#dd504fb83c280752d4b485d9acb3cf391cb7bf5b" + integrity sha512-peDrrUuxbZ9Jw+DwLCh/9xmZAk0p0K1iY5d2IcwmnN+B87xw7kujOkig6ZRcZqgrXgeRGurRHn0ENMAjjD5DEg== + +"@esbuild/linux-mips64el@0.16.4": + version "0.16.4" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.16.4.tgz#9ab77e31cf3be1e35572afff94b51df8149d15bd" + integrity sha512-sD9EEUoGtVhFjjsauWjflZklTNr57KdQ6xfloO4yH1u7vNQlOfAlhEzbyBKfgbJlW7rwXYBdl5/NcZ+Mg2XhQA== + +"@esbuild/linux-ppc64@0.16.4": + version "0.16.4" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.16.4.tgz#69d56c2a960808bee1c7b9b84a115220ec9ce05c" + integrity sha512-X1HSqHUX9D+d0l6/nIh4ZZJ94eQky8d8z6yxAptpZE3FxCWYWvTDd9X9ST84MGZEJx04VYUD/AGgciddwO0b8g== + +"@esbuild/linux-riscv64@0.16.4": + version "0.16.4" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.16.4.tgz#9fc23583f4a1508a8d352bd376340e42217e8a90" + integrity sha512-97ANpzyNp0GTXCt6SRdIx1ngwncpkV/z453ZuxbnBROCJ5p/55UjhbaG23UdHj88fGWLKPFtMoU4CBacz4j9FA== + +"@esbuild/linux-s390x@0.16.4": + version "0.16.4" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.16.4.tgz#4cae1f70ac2943f076dd130c3c80d28f57bf75d1" + integrity sha512-pUvPQLPmbEeJRPjP0DYTC1vjHyhrnCklQmCGYbipkep+oyfTn7GTBJXoPodR7ZS5upmEyc8lzAkn2o29wD786A== + +"@esbuild/linux-x64@0.16.4": + version "0.16.4" + resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.16.4.tgz#fdf494de07cda23a2dc4b71ff1e0848e4ee6539c" + integrity sha512-N55Q0mJs3Sl8+utPRPBrL6NLYZKBCLLx0bme/+RbjvMforTGGzFvsRl4xLTZMUBFC1poDzBEPTEu5nxizQ9Nlw== + +"@esbuild/netbsd-x64@0.16.4": + version "0.16.4" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.16.4.tgz#b59ecb49087119c575c0f64d7e66001d52799e24" + integrity sha512-LHSJLit8jCObEQNYkgsDYBh2JrJT53oJO2HVdkSYLa6+zuLJh0lAr06brXIkljrlI+N7NNW1IAXGn/6IZPi3YQ== + +"@esbuild/openbsd-x64@0.16.4": + version "0.16.4" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.16.4.tgz#c51e36db875948b7b11d08bafa355605a1aa289c" + integrity sha512-nLgdc6tWEhcCFg/WVFaUxHcPK3AP/bh+KEwKtl69Ay5IBqUwKDaq/6Xk0E+fh/FGjnLwqFSsarsbPHeKM8t8Sw== + +"@esbuild/sunos-x64@0.16.4": + version "0.16.4" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.16.4.tgz#0b50e941cd44f069e9f2573321aec984244ec228" + integrity sha512-08SluG24GjPO3tXKk95/85n9kpyZtXCVwURR2i4myhrOfi3jspClV0xQQ0W0PYWHioJj+LejFMt41q+PG3mlAQ== + +"@esbuild/win32-arm64@0.16.4": + version "0.16.4" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.16.4.tgz#d1c93b20f17355ab2221cd18e13ae2f1b68013e3" + integrity sha512-yYiRDQcqLYQSvNQcBKN7XogbrSvBE45FEQdH8fuXPl7cngzkCvpsG2H9Uey39IjQ6gqqc+Q4VXYHsQcKW0OMjQ== + +"@esbuild/win32-ia32@0.16.4": + version "0.16.4" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.16.4.tgz#df5910e76660e0acbbdceb8d4ae6bf1efeade6ae" + integrity sha512-5rabnGIqexekYkh9zXG5waotq8mrdlRoBqAktjx2W3kb0zsI83mdCwrcAeKYirnUaTGztR5TxXcXmQrEzny83w== + +"@esbuild/win32-x64@0.16.4": + version "0.16.4" + resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.16.4.tgz#6ec594468610c176933da1387c609558371d37e0" + integrity sha512-sN/I8FMPtmtT2Yw+Dly8Ur5vQ5a/RmC8hW7jO9PtPSQUPkowxWpcUZnqOggU7VwyT3Xkj6vcXWd3V/qTXwultQ== + +"@eslint/eslintrc@^1.3.3": + version "1.3.3" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.3.3.tgz#2b044ab39fdfa75b4688184f9e573ce3c5b0ff95" + integrity sha512-uj3pT6Mg+3t39fvLrj8iuCIJ38zKO9FpGtJ4BBJebJhEwjoT+KLVNCcHT5QC9NGRIEi7fZ0ZR8YRb884auB4Lg== dependencies: ajv "^6.12.4" debug "^4.3.2" @@ -35,19 +145,14 @@ minimatch "^3.1.2" strip-json-comments "^3.1.1" -"@humanwhocodes/config-array@^0.10.4": - version "0.10.4" - resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.10.4.tgz#01e7366e57d2ad104feea63e72248f22015c520c" - integrity sha512-mXAIHxZT3Vcpg83opl1wGlVZ9xydbfZO3r5YfRSH6Gpp2J/PfdBP0wbDa2sO6/qRbcalpoevVyW6A/fI6LfeMw== +"@humanwhocodes/config-array@^0.11.6": + version "0.11.7" + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.7.tgz#38aec044c6c828f6ed51d5d7ae3d9b9faf6dbb0f" + integrity sha512-kBbPWzN8oVMLb0hOUYXhmxggL/1cJE6ydvjDIGi9EnAGUyA7cLVKQg+d/Dsm+KZwx2czGHrCmMVLiyg8s5JPKw== dependencies: "@humanwhocodes/object-schema" "^1.2.1" debug "^4.1.1" - minimatch "^3.0.4" - -"@humanwhocodes/gitignore-to-minimatch@^1.0.2": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@humanwhocodes/gitignore-to-minimatch/-/gitignore-to-minimatch-1.0.2.tgz#316b0a63b91c10e53f242efb4ace5c3b34e8728d" - integrity sha512-rSqmMJDdLFUsyxR6FMtD00nfQKKLFb1kv+qBbOVKqErvloEIJLo5bDTJTQNTYgeyp78JsA7u/NPi5jT1GR/MuA== + minimatch "^3.0.5" "@humanwhocodes/module-importer@^1.0.1": version "1.0.1" @@ -72,7 +177,7 @@ resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== -"@nodelib/fs.walk@^1.2.3": +"@nodelib/fs.walk@^1.2.3", "@nodelib/fs.walk@^1.2.8": version "1.2.8" resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== @@ -153,85 +258,92 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-10.17.60.tgz#35f3d6213daed95da7f0f73e75bcc6980e90597b" integrity sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw== -"@typescript-eslint/eslint-plugin@^5.36.2": - version "5.36.2" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.36.2.tgz#6df092a20e0f9ec748b27f293a12cb39d0c1fe4d" - integrity sha512-OwwR8LRwSnI98tdc2z7mJYgY60gf7I9ZfGjN5EjCwwns9bdTuQfAXcsjSB2wSQ/TVNYSGKf4kzVXbNGaZvwiXw== +"@types/semver@^7.3.12": + version "7.3.13" + resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.3.13.tgz#da4bfd73f49bd541d28920ab0e2bf0ee80f71c91" + integrity sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw== + +"@typescript-eslint/eslint-plugin@^5.46.0": + version "5.46.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.46.0.tgz#9a96a713b9616c783501a3c1774c9e2b40217ad0" + integrity sha512-QrZqaIOzJAjv0sfjY4EjbXUi3ZOFpKfzntx22gPGr9pmFcTjcFw/1sS1LJhEubfAGwuLjNrPV0rH+D1/XZFy7Q== dependencies: - "@typescript-eslint/scope-manager" "5.36.2" - "@typescript-eslint/type-utils" "5.36.2" - "@typescript-eslint/utils" "5.36.2" + "@typescript-eslint/scope-manager" "5.46.0" + "@typescript-eslint/type-utils" "5.46.0" + "@typescript-eslint/utils" "5.46.0" debug "^4.3.4" - functional-red-black-tree "^1.0.1" ignore "^5.2.0" + natural-compare-lite "^1.4.0" regexpp "^3.2.0" semver "^7.3.7" tsutils "^3.21.0" -"@typescript-eslint/parser@^5.36.2": - version "5.36.2" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.36.2.tgz#3ddf323d3ac85a25295a55fcb9c7a49ab4680ddd" - integrity sha512-qS/Kb0yzy8sR0idFspI9Z6+t7mqk/oRjnAYfewG+VN73opAUvmYL3oPIMmgOX6CnQS6gmVIXGshlb5RY/R22pA== +"@typescript-eslint/parser@^5.46.0": + version "5.46.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.46.0.tgz#002d8e67122947922a62547acfed3347cbf2c0b6" + integrity sha512-joNO6zMGUZg+C73vwrKXCd8usnsmOYmgW/w5ZW0pG0RGvqeznjtGDk61EqqTpNrFLUYBW2RSBFrxdAZMqA4OZA== dependencies: - "@typescript-eslint/scope-manager" "5.36.2" - "@typescript-eslint/types" "5.36.2" - "@typescript-eslint/typescript-estree" "5.36.2" + "@typescript-eslint/scope-manager" "5.46.0" + "@typescript-eslint/types" "5.46.0" + "@typescript-eslint/typescript-estree" "5.46.0" debug "^4.3.4" -"@typescript-eslint/scope-manager@5.36.2": - version "5.36.2" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.36.2.tgz#a75eb588a3879ae659514780831370642505d1cd" - integrity sha512-cNNP51L8SkIFSfce8B1NSUBTJTu2Ts4nWeWbFrdaqjmn9yKrAaJUBHkyTZc0cL06OFHpb+JZq5AUHROS398Orw== +"@typescript-eslint/scope-manager@5.46.0": + version "5.46.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.46.0.tgz#60790b14d0c687dd633b22b8121374764f76ce0d" + integrity sha512-7wWBq9d/GbPiIM6SqPK9tfynNxVbfpihoY5cSFMer19OYUA3l4powA2uv0AV2eAZV6KoAh6lkzxv4PoxOLh1oA== dependencies: - "@typescript-eslint/types" "5.36.2" - "@typescript-eslint/visitor-keys" "5.36.2" + "@typescript-eslint/types" "5.46.0" + "@typescript-eslint/visitor-keys" "5.46.0" -"@typescript-eslint/type-utils@5.36.2": - version "5.36.2" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.36.2.tgz#752373f4babf05e993adf2cd543a763632826391" - integrity sha512-rPQtS5rfijUWLouhy6UmyNquKDPhQjKsaKH0WnY6hl/07lasj8gPaH2UD8xWkePn6SC+jW2i9c2DZVDnL+Dokw== +"@typescript-eslint/type-utils@5.46.0": + version "5.46.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.46.0.tgz#3a4507b3b437e2fd9e95c3e5eea5ae16f79d64b3" + integrity sha512-dwv4nimVIAsVS2dTA0MekkWaRnoYNXY26dKz8AN5W3cBFYwYGFQEqm/cG+TOoooKlncJS4RTbFKgcFY/pOiBCg== dependencies: - "@typescript-eslint/typescript-estree" "5.36.2" - "@typescript-eslint/utils" "5.36.2" + "@typescript-eslint/typescript-estree" "5.46.0" + "@typescript-eslint/utils" "5.46.0" debug "^4.3.4" tsutils "^3.21.0" -"@typescript-eslint/types@5.36.2": - version "5.36.2" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.36.2.tgz#a5066e500ebcfcee36694186ccc57b955c05faf9" - integrity sha512-9OJSvvwuF1L5eS2EQgFUbECb99F0mwq501w0H0EkYULkhFa19Qq7WFbycdw1PexAc929asupbZcgjVIe6OK/XQ== +"@typescript-eslint/types@5.46.0": + version "5.46.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.46.0.tgz#f4d76622a996b88153bbd829ea9ccb9f7a5d28bc" + integrity sha512-wHWgQHFB+qh6bu0IAPAJCdeCdI0wwzZnnWThlmHNY01XJ9Z97oKqKOzWYpR2I83QmshhQJl6LDM9TqMiMwJBTw== -"@typescript-eslint/typescript-estree@5.36.2": - version "5.36.2" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.36.2.tgz#0c93418b36c53ba0bc34c61fe9405c4d1d8fe560" - integrity sha512-8fyH+RfbKc0mTspfuEjlfqA4YywcwQK2Amcf6TDOwaRLg7Vwdu4bZzyvBZp4bjt1RRjQ5MDnOZahxMrt2l5v9w== +"@typescript-eslint/typescript-estree@5.46.0": + version "5.46.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.46.0.tgz#a6c2b84b9351f78209a1d1f2d99ca553f7fa29a5" + integrity sha512-kDLNn/tQP+Yp8Ro2dUpyyVV0Ksn2rmpPpB0/3MO874RNmXtypMwSeazjEN/Q6CTp8D7ExXAAekPEcCEB/vtJkw== dependencies: - "@typescript-eslint/types" "5.36.2" - "@typescript-eslint/visitor-keys" "5.36.2" + "@typescript-eslint/types" "5.46.0" + "@typescript-eslint/visitor-keys" "5.46.0" debug "^4.3.4" globby "^11.1.0" is-glob "^4.0.3" semver "^7.3.7" tsutils "^3.21.0" -"@typescript-eslint/utils@5.36.2": - version "5.36.2" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.36.2.tgz#b01a76f0ab244404c7aefc340c5015d5ce6da74c" - integrity sha512-uNcopWonEITX96v9pefk9DC1bWMdkweeSsewJ6GeC7L6j2t0SJywisgkr9wUTtXk90fi2Eljj90HSHm3OGdGRg== +"@typescript-eslint/utils@5.46.0": + version "5.46.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.46.0.tgz#600cd873ba471b7d8b0b9f35de34cf852c6fcb31" + integrity sha512-4O+Ps1CRDw+D+R40JYh5GlKLQERXRKW5yIQoNDpmXPJ+C7kaPF9R7GWl+PxGgXjB3PQCqsaaZUpZ9dG4U6DO7g== dependencies: "@types/json-schema" "^7.0.9" - "@typescript-eslint/scope-manager" "5.36.2" - "@typescript-eslint/types" "5.36.2" - "@typescript-eslint/typescript-estree" "5.36.2" + "@types/semver" "^7.3.12" + "@typescript-eslint/scope-manager" "5.46.0" + "@typescript-eslint/types" "5.46.0" + "@typescript-eslint/typescript-estree" "5.46.0" eslint-scope "^5.1.1" eslint-utils "^3.0.0" + semver "^7.3.7" -"@typescript-eslint/visitor-keys@5.36.2": - version "5.36.2" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.36.2.tgz#2f8f78da0a3bad3320d2ac24965791ac39dace5a" - integrity sha512-BtRvSR6dEdrNt7Net2/XDjbYKU5Ml6GqJgVfXT0CxTCJlnIqK7rAGreuWKMT2t8cFUT2Msv5oxw0GMRD7T5J7A== +"@typescript-eslint/visitor-keys@5.46.0": + version "5.46.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.46.0.tgz#36d87248ae20c61ef72404bcd61f14aa2563915f" + integrity sha512-E13gBoIXmaNhwjipuvQg1ByqSAu/GbEpP/qzFihugJ+MomtoJtFAJG/+2DRPByf57B863m0/q7Zt16V9ohhANw== dependencies: - "@typescript-eslint/types" "5.36.2" + "@typescript-eslint/types" "5.46.0" eslint-visitor-keys "^3.3.0" acorn-jsx@^5.3.2: @@ -366,6 +478,34 @@ doctrine@^3.0.0: dependencies: esutils "^2.0.2" +esbuild@^0.16.4: + version "0.16.4" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.16.4.tgz#06c86298d233386f5e41bcc14d36086daf3f40bd" + integrity sha512-qQrPMQpPTWf8jHugLWHoGqZjApyx3OEm76dlTXobHwh/EBbavbRdjXdYi/GWr43GyN0sfpap14GPkb05NH3ROA== + optionalDependencies: + "@esbuild/android-arm" "0.16.4" + "@esbuild/android-arm64" "0.16.4" + "@esbuild/android-x64" "0.16.4" + "@esbuild/darwin-arm64" "0.16.4" + "@esbuild/darwin-x64" "0.16.4" + "@esbuild/freebsd-arm64" "0.16.4" + "@esbuild/freebsd-x64" "0.16.4" + "@esbuild/linux-arm" "0.16.4" + "@esbuild/linux-arm64" "0.16.4" + "@esbuild/linux-ia32" "0.16.4" + "@esbuild/linux-loong64" "0.16.4" + "@esbuild/linux-mips64el" "0.16.4" + "@esbuild/linux-ppc64" "0.16.4" + "@esbuild/linux-riscv64" "0.16.4" + "@esbuild/linux-s390x" "0.16.4" + "@esbuild/linux-x64" "0.16.4" + "@esbuild/netbsd-x64" "0.16.4" + "@esbuild/openbsd-x64" "0.16.4" + "@esbuild/sunos-x64" "0.16.4" + "@esbuild/win32-arm64" "0.16.4" + "@esbuild/win32-ia32" "0.16.4" + "@esbuild/win32-x64" "0.16.4" + escape-string-regexp@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" @@ -404,15 +544,15 @@ eslint-visitor-keys@^3.3.0: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz#f6480fa6b1f30efe2d1968aa8ac745b862469826" integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA== -eslint@^8.23.1: - version "8.23.1" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.23.1.tgz#cfd7b3f7fdd07db8d16b4ac0516a29c8d8dca5dc" - integrity sha512-w7C1IXCc6fNqjpuYd0yPlcTKKmHlHHktRkzmBPZ+7cvNBQuiNjx0xaMTjAJGCafJhQkrFJooREv0CtrVzmHwqg== +eslint@^8.29.0: + version "8.29.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.29.0.tgz#d74a88a20fb44d59c51851625bc4ee8d0ec43f87" + integrity sha512-isQ4EEiyUjZFbEKvEGJKKGBwXtvXX+zJbkVKCgTuB9t/+jUBcy8avhkEwWJecI15BkRkOYmvIM5ynbhRjEkoeg== dependencies: - "@eslint/eslintrc" "^1.3.2" - "@humanwhocodes/config-array" "^0.10.4" - "@humanwhocodes/gitignore-to-minimatch" "^1.0.2" + "@eslint/eslintrc" "^1.3.3" + "@humanwhocodes/config-array" "^0.11.6" "@humanwhocodes/module-importer" "^1.0.1" + "@nodelib/fs.walk" "^1.2.8" ajv "^6.10.0" chalk "^4.0.0" cross-spawn "^7.0.2" @@ -428,14 +568,14 @@ eslint@^8.23.1: fast-deep-equal "^3.1.3" file-entry-cache "^6.0.1" find-up "^5.0.0" - glob-parent "^6.0.1" + glob-parent "^6.0.2" globals "^13.15.0" - globby "^11.1.0" grapheme-splitter "^1.0.4" ignore "^5.2.0" import-fresh "^3.0.0" imurmurhash "^0.1.4" is-glob "^4.0.0" + is-path-inside "^3.0.3" js-sdsl "^4.1.4" js-yaml "^4.1.0" json-stable-stringify-without-jsonify "^1.0.1" @@ -560,16 +700,6 @@ fs.realpath@^1.0.0: resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== -fsevents@~2.3.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" - integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== - -functional-red-black-tree@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" - integrity sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g== - glob-parent@^5.1.2: version "5.1.2" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" @@ -577,7 +707,7 @@ glob-parent@^5.1.2: dependencies: is-glob "^4.0.1" -glob-parent@^6.0.1: +glob-parent@^6.0.2: version "6.0.2" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== @@ -678,6 +808,11 @@ is-number@^7.0.0: resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== +is-path-inside@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" + integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== + isexe@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" @@ -750,7 +885,7 @@ micromatch@^4.0.4: braces "^3.0.2" picomatch "^2.3.1" -minimatch@^3.0.4, minimatch@^3.1.1, minimatch@^3.1.2: +minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== @@ -762,6 +897,11 @@ ms@2.1.2: resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== +natural-compare-lite@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz#17b09581988979fddafe0201e931ba933c96cbb4" + integrity sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g== + natural-compare@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" @@ -888,13 +1028,6 @@ rimraf@^3.0.2: dependencies: glob "^7.1.3" -rollup@^2.79.0: - version "2.79.0" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.79.0.tgz#9177992c9f09eb58c5e56cbfa641607a12b57ce2" - integrity sha512-x4KsrCgwQ7ZJPcFA/SUu6QVcYlO7uRLfLAy0DSA4NS2eG8japdbpM50ToH7z4iObodRYOJ0soneF0iaQRJ6zhA== - optionalDependencies: - fsevents "~2.3.2" - run-parallel@^1.1.9: version "1.2.0" resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" From ee848a02e17a94edaacd1dd95a1664b59c6f06b2 Mon Sep 17 00:00:00 2001 From: Derek Bailey Date: Sat, 21 Jan 2023 12:46:57 -0800 Subject: [PATCH 101/571] FlatBuffers Version 23.1.21 (#7796) --- CHANGELOG.md | 7 +++- CMake/Version.cmake | 2 +- FlatBuffers.podspec | 2 +- .../main/java/generated/com/fbs/app/Animal.kt | 2 +- dart/pubspec.yaml | 2 +- .../Sources/Model/greeter_generated.swift | 4 +-- include/flatbuffers/base.h | 2 +- include/flatbuffers/reflection_generated.h | 2 +- java/pom.xml | 2 +- .../com/google/flatbuffers/Constants.java | 2 +- net/FlatBuffers/FlatBufferConstants.cs | 2 +- net/FlatBuffers/Google.FlatBuffers.csproj | 2 +- package.json | 2 +- python/flatbuffers/_version.py | 2 +- python/setup.py | 2 +- rust/flatbuffers/Cargo.toml | 2 +- samples/monster_generated.h | 2 +- samples/monster_generated.swift | 8 ++--- src/idl_gen_csharp.cpp | 2 +- src/idl_gen_java.cpp | 2 +- src/idl_gen_kotlin.cpp | 2 +- src/idl_gen_swift.cpp | 2 +- swift/Sources/FlatBuffers/Constants.swift | 2 +- tests/Abc.nim | 2 +- tests/DictionaryLookup/LongFloatEntry.java | 2 +- tests/DictionaryLookup/LongFloatEntry.kt | 2 +- tests/DictionaryLookup/LongFloatMap.java | 2 +- tests/DictionaryLookup/LongFloatMap.kt | 2 +- tests/KeywordTest/KeywordsInTable.cs | 2 +- tests/KeywordTest/Table2.cs | 2 +- tests/MoreDefaults.nim | 2 +- tests/MyGame/Example/Ability.lua | 2 +- tests/MyGame/Example/Ability.nim | 2 +- tests/MyGame/Example/Any.lua | 2 +- tests/MyGame/Example/Any.nim | 2 +- tests/MyGame/Example/AnyAmbiguousAliases.lua | 2 +- tests/MyGame/Example/AnyAmbiguousAliases.nim | 2 +- tests/MyGame/Example/AnyUniqueAliases.lua | 2 +- tests/MyGame/Example/AnyUniqueAliases.nim | 2 +- tests/MyGame/Example/ArrayTable.cs | 2 +- tests/MyGame/Example/ArrayTable.java | 2 +- tests/MyGame/Example/Color.lua | 2 +- tests/MyGame/Example/Color.nim | 2 +- tests/MyGame/Example/LongEnum.lua | 2 +- tests/MyGame/Example/LongEnum.nim | 2 +- tests/MyGame/Example/Monster.cs | 2 +- tests/MyGame/Example/Monster.java | 2 +- tests/MyGame/Example/Monster.kt | 2 +- tests/MyGame/Example/Monster.lua | 2 +- tests/MyGame/Example/Monster.nim | 2 +- tests/MyGame/Example/Race.lua | 2 +- tests/MyGame/Example/Race.nim | 2 +- tests/MyGame/Example/Referrable.cs | 2 +- tests/MyGame/Example/Referrable.java | 2 +- tests/MyGame/Example/Referrable.kt | 2 +- tests/MyGame/Example/Referrable.lua | 2 +- tests/MyGame/Example/Referrable.nim | 2 +- tests/MyGame/Example/Stat.cs | 2 +- tests/MyGame/Example/Stat.java | 2 +- tests/MyGame/Example/Stat.kt | 2 +- tests/MyGame/Example/Stat.lua | 2 +- tests/MyGame/Example/Stat.nim | 2 +- tests/MyGame/Example/StructOfStructs.lua | 2 +- tests/MyGame/Example/StructOfStructs.nim | 2 +- .../Example/StructOfStructsOfStructs.lua | 2 +- .../Example/StructOfStructsOfStructs.nim | 2 +- tests/MyGame/Example/Test.lua | 2 +- tests/MyGame/Example/Test.nim | 2 +- .../MyGame/Example/TestSimpleTableWithEnum.cs | 2 +- .../Example/TestSimpleTableWithEnum.java | 2 +- .../MyGame/Example/TestSimpleTableWithEnum.kt | 2 +- .../Example/TestSimpleTableWithEnum.lua | 2 +- .../Example/TestSimpleTableWithEnum.nim | 2 +- tests/MyGame/Example/TypeAliases.cs | 2 +- tests/MyGame/Example/TypeAliases.java | 2 +- tests/MyGame/Example/TypeAliases.kt | 2 +- tests/MyGame/Example/TypeAliases.lua | 2 +- tests/MyGame/Example/TypeAliases.nim | 2 +- tests/MyGame/Example/Vec3.lua | 2 +- tests/MyGame/Example/Vec3.nim | 2 +- tests/MyGame/Example2/Monster.cs | 2 +- tests/MyGame/Example2/Monster.java | 2 +- tests/MyGame/Example2/Monster.kt | 2 +- tests/MyGame/Example2/Monster.lua | 2 +- tests/MyGame/Example2/Monster.nim | 2 +- tests/MyGame/InParentNamespace.cs | 2 +- tests/MyGame/InParentNamespace.java | 2 +- tests/MyGame/InParentNamespace.kt | 2 +- tests/MyGame/InParentNamespace.lua | 2 +- tests/MyGame/InParentNamespace.nim | 2 +- tests/MyGame/MonsterExtra.cs | 2 +- tests/MyGame/MonsterExtra.java | 2 +- tests/MyGame/MonsterExtra.kt | 2 +- tests/MyGame/OtherNameSpace/FromInclude.lua | 2 +- tests/MyGame/OtherNameSpace/FromInclude.nim | 2 +- tests/MyGame/OtherNameSpace/TableB.lua | 2 +- tests/MyGame/OtherNameSpace/TableB.nim | 2 +- tests/MyGame/OtherNameSpace/Unused.lua | 2 +- tests/MyGame/OtherNameSpace/Unused.nim | 2 +- tests/Property.nim | 2 +- tests/TableA.lua | 2 +- tests/TableA.nim | 2 +- tests/TestMutatingBool.nim | 2 +- tests/alignment_test_generated.h | 2 +- tests/arrays_test_generated.h | 2 +- .../generated_cpp17/monster_test_generated.h | 2 +- .../optional_scalars_generated.h | 2 +- .../generated_cpp17/union_vector_generated.h | 2 +- tests/evolution_test/evolution_v1_generated.h | 2 +- tests/evolution_test/evolution_v2_generated.h | 2 +- tests/key_field/key_field_sample_generated.h | 2 +- tests/monster_extra_generated.h | 2 +- tests/monster_test_bfbs_generated.h | 2 +- tests/monster_test_generated.h | 2 +- .../ext_only/monster_test_generated.hpp | 2 +- .../filesuffix_only/monster_test_suffix.h | 2 +- .../monster_test_suffix.hpp | 2 +- .../NamespaceA/NamespaceB/TableInNestedNS.cs | 2 +- .../NamespaceB/TableInNestedNS.java | 2 +- .../NamespaceA/NamespaceB/TableInNestedNS.kt | 2 +- .../NamespaceA/SecondTableInA.cs | 2 +- .../NamespaceA/SecondTableInA.java | 2 +- .../NamespaceA/SecondTableInA.kt | 2 +- .../NamespaceA/TableInFirstNS.cs | 2 +- .../NamespaceA/TableInFirstNS.java | 2 +- .../NamespaceA/TableInFirstNS.kt | 2 +- tests/namespace_test/NamespaceC/TableInC.cs | 2 +- tests/namespace_test/NamespaceC/TableInC.java | 2 +- tests/namespace_test/NamespaceC/TableInC.kt | 2 +- .../namespace_test1_generated.h | 2 +- .../namespace_test2_generated.h | 2 +- tests/native_inline_table_test_generated.h | 2 +- tests/native_type_test_generated.h | 2 +- .../nested_namespace_test3_generated.cs | 2 +- tests/optional_scalars/OptionalByte.nim | 2 +- tests/optional_scalars/ScalarStuff.cs | 2 +- tests/optional_scalars/ScalarStuff.java | 2 +- tests/optional_scalars/ScalarStuff.kt | 2 +- tests/optional_scalars/ScalarStuff.nim | 2 +- tests/optional_scalars_generated.h | 2 +- .../monster_test_generated.swift | 34 +++++++++---------- .../test_import_generated.swift | 2 +- .../test_no_include_generated.swift | 8 ++--- .../SwiftFlatBuffers/fuzzer_generated.swift | 10 +++--- .../MutatingBool_generated.swift | 6 ++-- .../monster_test_generated.swift | 34 +++++++++---------- .../more_defaults_generated.swift | 2 +- .../nan_inf_test_generated.swift | 2 +- .../optional_scalars_generated.swift | 2 +- .../union_vector_generated.swift | 18 +++++----- .../vector_has_test_generated.swift | 2 +- tests/type_field_collsion/Collision.cs | 2 +- .../union_value_collision_generated.cs | 4 +-- tests/union_vector/Attacker.cs | 2 +- tests/union_vector/Attacker.java | 2 +- tests/union_vector/Attacker.kt | 2 +- tests/union_vector/HandFan.cs | 2 +- tests/union_vector/HandFan.java | 2 +- tests/union_vector/HandFan.kt | 2 +- tests/union_vector/Movie.cs | 2 +- tests/union_vector/Movie.java | 2 +- tests/union_vector/Movie.kt | 2 +- tests/union_vector/union_vector_generated.h | 2 +- 163 files changed, 222 insertions(+), 217 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 80cb6de1d1..70c0368095 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,9 +4,14 @@ All major or breaking changes will be documented in this file, as well as any new features that should be highlighted. Minor fixes or improvements are not necessarily listed. +## [23.1.21 (Jan 21 2023)](https://github.com/google/flatbuffers/releases/tag/v23.1.20) + +* Reworked entry points for Typescript/Javascript and compatibility for single + file build (#7510) + ## [23.1.20 (Jan 20 2023)](https://github.com/google/flatbuffers/releases/tag/v23.1.20) -* Removed go.mod files after some versioning issues were being report ([#7780](https://github.com/google/flatbuffers/issues/7780)). +* Removed go.mod files after some versioning issues were being report (#7780). ## [23.1.4 (Jan 4 2023)](https://github.com/google/flatbuffers/releases/tag/v23.1.4) diff --git a/CMake/Version.cmake b/CMake/Version.cmake index bd21f262c5..d3ff4fd75d 100644 --- a/CMake/Version.cmake +++ b/CMake/Version.cmake @@ -1,6 +1,6 @@ set(VERSION_MAJOR 23) set(VERSION_MINOR 1) -set(VERSION_PATCH 20) +set(VERSION_PATCH 21) set(VERSION_COMMIT 0) if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/.git") diff --git a/FlatBuffers.podspec b/FlatBuffers.podspec index 4c21d345bf..c4e004c3c8 100644 --- a/FlatBuffers.podspec +++ b/FlatBuffers.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = 'FlatBuffers' - s.version = '23.1.20' + s.version = '23.1.21' s.summary = 'FlatBuffers: Memory Efficient Serialization Library' s.description = "FlatBuffers is a cross platform serialization library architected for diff --git a/android/app/src/main/java/generated/com/fbs/app/Animal.kt b/android/app/src/main/java/generated/com/fbs/app/Animal.kt index 9492e24723..0398ba5f35 100644 --- a/android/app/src/main/java/generated/com/fbs/app/Animal.kt +++ b/android/app/src/main/java/generated/com/fbs/app/Animal.kt @@ -48,7 +48,7 @@ class Animal : Table() { return if(o != 0) bb.getShort(o + bb_pos).toUShort() else 0u } companion object { - fun validateVersion() = Constants.FLATBUFFERS_23_1_20() + fun validateVersion() = Constants.FLATBUFFERS_23_1_21() fun getRootAsAnimal(_bb: ByteBuffer): Animal = getRootAsAnimal(_bb, Animal()) fun getRootAsAnimal(_bb: ByteBuffer, obj: Animal): Animal { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/dart/pubspec.yaml b/dart/pubspec.yaml index 147eab1bb4..6e725defc0 100644 --- a/dart/pubspec.yaml +++ b/dart/pubspec.yaml @@ -1,5 +1,5 @@ name: flat_buffers -version: 23.1.20 +version: 23.1.21 description: FlatBuffers reading and writing library for Dart. Based on original work by Konstantin Scheglov and Paul Berry of the Dart SDK team. homepage: https://github.com/google/flatbuffers documentation: https://google.github.io/flatbuffers/index.html diff --git a/grpc/examples/swift/Greeter/Sources/Model/greeter_generated.swift b/grpc/examples/swift/Greeter/Sources/Model/greeter_generated.swift index ffeb405083..4ef90dcd9f 100644 --- a/grpc/examples/swift/Greeter/Sources/Model/greeter_generated.swift +++ b/grpc/examples/swift/Greeter/Sources/Model/greeter_generated.swift @@ -6,7 +6,7 @@ import FlatBuffers public struct models_HelloReply: FlatBufferObject, Verifiable { - static func validateVersion() { FlatBuffersVersion_23_1_20() } + static func validateVersion() { FlatBuffersVersion_23_1_21() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -53,7 +53,7 @@ extension models_HelloReply: Encodable { public struct models_HelloRequest: FlatBufferObject, Verifiable { - static func validateVersion() { FlatBuffersVersion_23_1_20() } + static func validateVersion() { FlatBuffersVersion_23_1_21() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table diff --git a/include/flatbuffers/base.h b/include/flatbuffers/base.h index 4d101c82e3..86688cc6e4 100644 --- a/include/flatbuffers/base.h +++ b/include/flatbuffers/base.h @@ -140,7 +140,7 @@ #define FLATBUFFERS_VERSION_MAJOR 23 #define FLATBUFFERS_VERSION_MINOR 1 -#define FLATBUFFERS_VERSION_REVISION 20 +#define FLATBUFFERS_VERSION_REVISION 21 #define FLATBUFFERS_STRING_EXPAND(X) #X #define FLATBUFFERS_STRING(X) FLATBUFFERS_STRING_EXPAND(X) namespace flatbuffers { diff --git a/include/flatbuffers/reflection_generated.h b/include/flatbuffers/reflection_generated.h index 97cc0e5b67..23e968cb41 100644 --- a/include/flatbuffers/reflection_generated.h +++ b/include/flatbuffers/reflection_generated.h @@ -10,7 +10,7 @@ // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && FLATBUFFERS_VERSION_MINOR == 1 && - FLATBUFFERS_VERSION_REVISION == 20, + FLATBUFFERS_VERSION_REVISION == 21, "Non-compatible flatbuffers version included"); namespace reflection { diff --git a/java/pom.xml b/java/pom.xml index 6734f56a41..c2883b7f19 100644 --- a/java/pom.xml +++ b/java/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.flatbuffers flatbuffers-java - 23.1.4 + 23.1.21 bundle FlatBuffers Java API diff --git a/java/src/main/java/com/google/flatbuffers/Constants.java b/java/src/main/java/com/google/flatbuffers/Constants.java index f67494a0b9..52ba3be2f7 100644 --- a/java/src/main/java/com/google/flatbuffers/Constants.java +++ b/java/src/main/java/com/google/flatbuffers/Constants.java @@ -46,7 +46,7 @@ public class Constants { Changes to the Java implementation need to be sure to change the version here and in the code generator on every possible incompatible change */ - public static void FLATBUFFERS_23_1_20() {} + public static void FLATBUFFERS_23_1_21() {} } /// @endcond diff --git a/net/FlatBuffers/FlatBufferConstants.cs b/net/FlatBuffers/FlatBufferConstants.cs index 20b319e6e5..69235c773f 100644 --- a/net/FlatBuffers/FlatBufferConstants.cs +++ b/net/FlatBuffers/FlatBufferConstants.cs @@ -32,6 +32,6 @@ the runtime and generated code are modified in sync. Changes to the C# implementation need to be sure to change the version here and in the code generator on every possible incompatible change */ - public static void FLATBUFFERS_23_1_20() {} + public static void FLATBUFFERS_23_1_21() {} } } diff --git a/net/FlatBuffers/Google.FlatBuffers.csproj b/net/FlatBuffers/Google.FlatBuffers.csproj index c5fcb7f85a..998f7e7b4c 100644 --- a/net/FlatBuffers/Google.FlatBuffers.csproj +++ b/net/FlatBuffers/Google.FlatBuffers.csproj @@ -3,7 +3,7 @@ netstandard2.1;netstandard2.0;net46 A cross-platform memory efficient serialization library - 23.1.20 + 23.1.21 Google LLC https://github.com/google/flatbuffers https://github.com/google/flatbuffers diff --git a/package.json b/package.json index d31947991d..7fcc40a2b6 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "flatbuffers", - "version": "23.1.20", + "version": "23.1.21", "description": "Memory Efficient Serialization Library", "files": [ "js/**/*.js", diff --git a/python/flatbuffers/_version.py b/python/flatbuffers/_version.py index 12993c2fdf..f02ff77992 100644 --- a/python/flatbuffers/_version.py +++ b/python/flatbuffers/_version.py @@ -14,4 +14,4 @@ # Placeholder, to be updated during the release process # by the setup.py -__version__ = u"23.1.20" +__version__ = u"23.1.21" diff --git a/python/setup.py b/python/setup.py index 09e7aa69cc..78039a396b 100644 --- a/python/setup.py +++ b/python/setup.py @@ -16,7 +16,7 @@ setup( name='flatbuffers', - version='23.1.20', + version='23.1.21', license='Apache 2.0', license_files='../LICENSE.txt', author='Derek Bailey', diff --git a/rust/flatbuffers/Cargo.toml b/rust/flatbuffers/Cargo.toml index 73e814ee00..7a41a2d69f 100644 --- a/rust/flatbuffers/Cargo.toml +++ b/rust/flatbuffers/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "flatbuffers" -version = "23.1.20" +version = "23.1.21" edition = "2018" authors = ["Robert Winslow ", "FlatBuffers Maintainers"] license = "Apache-2.0" diff --git a/samples/monster_generated.h b/samples/monster_generated.h index fde1bbc15a..5874dd4db4 100644 --- a/samples/monster_generated.h +++ b/samples/monster_generated.h @@ -10,7 +10,7 @@ // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && FLATBUFFERS_VERSION_MINOR == 1 && - FLATBUFFERS_VERSION_REVISION == 20, + FLATBUFFERS_VERSION_REVISION == 21, "Non-compatible flatbuffers version included"); namespace MyGame { diff --git a/samples/monster_generated.swift b/samples/monster_generated.swift index ca32460e45..220c02959b 100644 --- a/samples/monster_generated.swift +++ b/samples/monster_generated.swift @@ -36,7 +36,7 @@ public enum MyGame_Sample_Equipment: UInt8, UnionEnum { public struct MyGame_Sample_Vec3: NativeStruct, Verifiable, FlatbuffersInitializable { - static func validateVersion() { FlatBuffersVersion_23_1_20() } + static func validateVersion() { FlatBuffersVersion_23_1_21() } private var _x: Float32 private var _y: Float32 @@ -72,7 +72,7 @@ public struct MyGame_Sample_Vec3: NativeStruct, Verifiable, FlatbuffersInitializ public struct MyGame_Sample_Vec3_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_23_1_20() } + static func validateVersion() { FlatBuffersVersion_23_1_21() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -88,7 +88,7 @@ public struct MyGame_Sample_Vec3_Mutable: FlatBufferObject { public struct MyGame_Sample_Monster: FlatBufferObject, Verifiable { - static func validateVersion() { FlatBuffersVersion_23_1_20() } + static func validateVersion() { FlatBuffersVersion_23_1_21() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -200,7 +200,7 @@ public struct MyGame_Sample_Monster: FlatBufferObject, Verifiable { public struct MyGame_Sample_Weapon: FlatBufferObject, Verifiable { - static func validateVersion() { FlatBuffersVersion_23_1_20() } + static func validateVersion() { FlatBuffersVersion_23_1_21() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table diff --git a/src/idl_gen_csharp.cpp b/src/idl_gen_csharp.cpp index 234ba972be..18db605308 100644 --- a/src/idl_gen_csharp.cpp +++ b/src/idl_gen_csharp.cpp @@ -655,7 +655,7 @@ class CSharpGenerator : public BaseGenerator { // Force compile time error if not using the same version runtime. code += " public static void ValidateVersion() {"; code += " FlatBufferConstants."; - code += "FLATBUFFERS_23_1_20(); "; + code += "FLATBUFFERS_23_1_21(); "; code += "}\n"; // Generate a special accessor for the table that when used as the root diff --git a/src/idl_gen_java.cpp b/src/idl_gen_java.cpp index 70436cf238..c2c25ab15c 100644 --- a/src/idl_gen_java.cpp +++ b/src/idl_gen_java.cpp @@ -683,7 +683,7 @@ class JavaGenerator : public BaseGenerator { // Force compile time error if not using the same version runtime. code += " public static void ValidateVersion() {"; code += " Constants."; - code += "FLATBUFFERS_23_1_20(); "; + code += "FLATBUFFERS_23_1_21(); "; code += "}\n"; // Generate a special accessor for the table that when used as the root diff --git a/src/idl_gen_kotlin.cpp b/src/idl_gen_kotlin.cpp index cf05bd4e1f..7a23e77b5a 100644 --- a/src/idl_gen_kotlin.cpp +++ b/src/idl_gen_kotlin.cpp @@ -524,7 +524,7 @@ class KotlinGenerator : public BaseGenerator { // runtime. GenerateFunOneLine( writer, "validateVersion", "", "", - [&]() { writer += "Constants.FLATBUFFERS_23_1_20()"; }, + [&]() { writer += "Constants.FLATBUFFERS_23_1_21()"; }, options.gen_jvmstatic); GenerateGetRootAsAccessors(namer_.Type(struct_def), writer, options); diff --git a/src/idl_gen_swift.cpp b/src/idl_gen_swift.cpp index b80505d5f2..c8a52bcac9 100644 --- a/src/idl_gen_swift.cpp +++ b/src/idl_gen_swift.cpp @@ -1840,7 +1840,7 @@ class SwiftGenerator : public BaseGenerator { } std::string ValidateFunc() { - return "static func validateVersion() { FlatBuffersVersion_23_1_20() }"; + return "static func validateVersion() { FlatBuffersVersion_23_1_21() }"; } std::string GenType(const Type &type, diff --git a/swift/Sources/FlatBuffers/Constants.swift b/swift/Sources/FlatBuffers/Constants.swift index 507307e11c..3c074fc43c 100644 --- a/swift/Sources/FlatBuffers/Constants.swift +++ b/swift/Sources/FlatBuffers/Constants.swift @@ -119,4 +119,4 @@ extension UInt64: Scalar, Verifiable { public typealias NumericValue = UInt64 } -public func FlatBuffersVersion_23_1_20() {} +public func FlatBuffersVersion_23_1_21() {} diff --git a/tests/Abc.nim b/tests/Abc.nim index 67111ec17c..659693f342 100644 --- a/tests/Abc.nim +++ b/tests/Abc.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.20 + flatc version: 23.1.21 Declared by : ]# diff --git a/tests/DictionaryLookup/LongFloatEntry.java b/tests/DictionaryLookup/LongFloatEntry.java index dde0b25cc5..02d5d7f90b 100644 --- a/tests/DictionaryLookup/LongFloatEntry.java +++ b/tests/DictionaryLookup/LongFloatEntry.java @@ -21,7 +21,7 @@ @SuppressWarnings("unused") public final class LongFloatEntry extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_23_1_20(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_1_21(); } public static LongFloatEntry getRootAsLongFloatEntry(ByteBuffer _bb) { return getRootAsLongFloatEntry(_bb, new LongFloatEntry()); } public static LongFloatEntry getRootAsLongFloatEntry(ByteBuffer _bb, LongFloatEntry obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/tests/DictionaryLookup/LongFloatEntry.kt b/tests/DictionaryLookup/LongFloatEntry.kt index 3b4670496d..ce86cf35bc 100644 --- a/tests/DictionaryLookup/LongFloatEntry.kt +++ b/tests/DictionaryLookup/LongFloatEntry.kt @@ -45,7 +45,7 @@ class LongFloatEntry : Table() { return (val_1 - val_2).sign } companion object { - fun validateVersion() = Constants.FLATBUFFERS_23_1_20() + fun validateVersion() = Constants.FLATBUFFERS_23_1_21() fun getRootAsLongFloatEntry(_bb: ByteBuffer): LongFloatEntry = getRootAsLongFloatEntry(_bb, LongFloatEntry()) fun getRootAsLongFloatEntry(_bb: ByteBuffer, obj: LongFloatEntry): LongFloatEntry { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/DictionaryLookup/LongFloatMap.java b/tests/DictionaryLookup/LongFloatMap.java index 84908caa2d..38f7728756 100644 --- a/tests/DictionaryLookup/LongFloatMap.java +++ b/tests/DictionaryLookup/LongFloatMap.java @@ -21,7 +21,7 @@ @SuppressWarnings("unused") public final class LongFloatMap extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_23_1_20(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_1_21(); } public static LongFloatMap getRootAsLongFloatMap(ByteBuffer _bb) { return getRootAsLongFloatMap(_bb, new LongFloatMap()); } public static LongFloatMap getRootAsLongFloatMap(ByteBuffer _bb, LongFloatMap obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/tests/DictionaryLookup/LongFloatMap.kt b/tests/DictionaryLookup/LongFloatMap.kt index 35e102a555..5f55fe292b 100644 --- a/tests/DictionaryLookup/LongFloatMap.kt +++ b/tests/DictionaryLookup/LongFloatMap.kt @@ -59,7 +59,7 @@ class LongFloatMap : Table() { } } companion object { - fun validateVersion() = Constants.FLATBUFFERS_23_1_20() + fun validateVersion() = Constants.FLATBUFFERS_23_1_21() fun getRootAsLongFloatMap(_bb: ByteBuffer): LongFloatMap = getRootAsLongFloatMap(_bb, LongFloatMap()) fun getRootAsLongFloatMap(_bb: ByteBuffer, obj: LongFloatMap): LongFloatMap { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/KeywordTest/KeywordsInTable.cs b/tests/KeywordTest/KeywordsInTable.cs index 1da6032809..8c57d8ecc4 100644 --- a/tests/KeywordTest/KeywordsInTable.cs +++ b/tests/KeywordTest/KeywordsInTable.cs @@ -13,7 +13,7 @@ public struct KeywordsInTable : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_20(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_21(); } public static KeywordsInTable GetRootAsKeywordsInTable(ByteBuffer _bb) { return GetRootAsKeywordsInTable(_bb, new KeywordsInTable()); } public static KeywordsInTable GetRootAsKeywordsInTable(ByteBuffer _bb, KeywordsInTable obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/KeywordTest/Table2.cs b/tests/KeywordTest/Table2.cs index bad536d1b3..299b22dbf3 100644 --- a/tests/KeywordTest/Table2.cs +++ b/tests/KeywordTest/Table2.cs @@ -13,7 +13,7 @@ public struct Table2 : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_20(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_21(); } public static Table2 GetRootAsTable2(ByteBuffer _bb) { return GetRootAsTable2(_bb, new Table2()); } public static Table2 GetRootAsTable2(ByteBuffer _bb, Table2 obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/MoreDefaults.nim b/tests/MoreDefaults.nim index 8a441ebc15..347f02626c 100644 --- a/tests/MoreDefaults.nim +++ b/tests/MoreDefaults.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.20 + flatc version: 23.1.21 Declared by : ]# diff --git a/tests/MyGame/Example/Ability.lua b/tests/MyGame/Example/Ability.lua index 99413559e0..5cf539f8de 100644 --- a/tests/MyGame/Example/Ability.lua +++ b/tests/MyGame/Example/Ability.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.20 + flatc version: 23.1.21 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/Ability.nim b/tests/MyGame/Example/Ability.nim index 4a15f779f0..8563141ff1 100644 --- a/tests/MyGame/Example/Ability.nim +++ b/tests/MyGame/Example/Ability.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.20 + flatc version: 23.1.21 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example/Any.lua b/tests/MyGame/Example/Any.lua index 6991a9cb7f..acf556865d 100644 --- a/tests/MyGame/Example/Any.lua +++ b/tests/MyGame/Example/Any.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.20 + flatc version: 23.1.21 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/Any.nim b/tests/MyGame/Example/Any.nim index 58e47c3b16..0b6ae13444 100644 --- a/tests/MyGame/Example/Any.nim +++ b/tests/MyGame/Example/Any.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.20 + flatc version: 23.1.21 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example/AnyAmbiguousAliases.lua b/tests/MyGame/Example/AnyAmbiguousAliases.lua index 8164f70497..ac2b209002 100644 --- a/tests/MyGame/Example/AnyAmbiguousAliases.lua +++ b/tests/MyGame/Example/AnyAmbiguousAliases.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.20 + flatc version: 23.1.21 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/AnyAmbiguousAliases.nim b/tests/MyGame/Example/AnyAmbiguousAliases.nim index 549ac47215..3acd53d182 100644 --- a/tests/MyGame/Example/AnyAmbiguousAliases.nim +++ b/tests/MyGame/Example/AnyAmbiguousAliases.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.20 + flatc version: 23.1.21 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example/AnyUniqueAliases.lua b/tests/MyGame/Example/AnyUniqueAliases.lua index 9edf470dad..d41834ed32 100644 --- a/tests/MyGame/Example/AnyUniqueAliases.lua +++ b/tests/MyGame/Example/AnyUniqueAliases.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.20 + flatc version: 23.1.21 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/AnyUniqueAliases.nim b/tests/MyGame/Example/AnyUniqueAliases.nim index 4876163d0e..515d545a2b 100644 --- a/tests/MyGame/Example/AnyUniqueAliases.nim +++ b/tests/MyGame/Example/AnyUniqueAliases.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.20 + flatc version: 23.1.21 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example/ArrayTable.cs b/tests/MyGame/Example/ArrayTable.cs index 7cba26de6f..5ab459d887 100644 --- a/tests/MyGame/Example/ArrayTable.cs +++ b/tests/MyGame/Example/ArrayTable.cs @@ -13,7 +13,7 @@ public struct ArrayTable : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_20(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_21(); } public static ArrayTable GetRootAsArrayTable(ByteBuffer _bb) { return GetRootAsArrayTable(_bb, new ArrayTable()); } public static ArrayTable GetRootAsArrayTable(ByteBuffer _bb, ArrayTable obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public static bool ArrayTableBufferHasIdentifier(ByteBuffer _bb) { return Table.__has_identifier(_bb, "ARRT"); } diff --git a/tests/MyGame/Example/ArrayTable.java b/tests/MyGame/Example/ArrayTable.java index fa21aab087..54131c2a8b 100644 --- a/tests/MyGame/Example/ArrayTable.java +++ b/tests/MyGame/Example/ArrayTable.java @@ -21,7 +21,7 @@ @SuppressWarnings("unused") public final class ArrayTable extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_23_1_20(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_1_21(); } public static ArrayTable getRootAsArrayTable(ByteBuffer _bb) { return getRootAsArrayTable(_bb, new ArrayTable()); } public static ArrayTable getRootAsArrayTable(ByteBuffer _bb, ArrayTable obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public static boolean ArrayTableBufferHasIdentifier(ByteBuffer _bb) { return __has_identifier(_bb, "ARRT"); } diff --git a/tests/MyGame/Example/Color.lua b/tests/MyGame/Example/Color.lua index 2f920a5a99..8f70daa6ae 100644 --- a/tests/MyGame/Example/Color.lua +++ b/tests/MyGame/Example/Color.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.20 + flatc version: 23.1.21 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/Color.nim b/tests/MyGame/Example/Color.nim index 364881f1a6..22b1d6efb7 100644 --- a/tests/MyGame/Example/Color.nim +++ b/tests/MyGame/Example/Color.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.20 + flatc version: 23.1.21 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example/LongEnum.lua b/tests/MyGame/Example/LongEnum.lua index a84fd58bf2..1644ac7a88 100644 --- a/tests/MyGame/Example/LongEnum.lua +++ b/tests/MyGame/Example/LongEnum.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.20 + flatc version: 23.1.21 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/LongEnum.nim b/tests/MyGame/Example/LongEnum.nim index f265313489..590bfc7c50 100644 --- a/tests/MyGame/Example/LongEnum.nim +++ b/tests/MyGame/Example/LongEnum.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.20 + flatc version: 23.1.21 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example/Monster.cs b/tests/MyGame/Example/Monster.cs index 707a1e711e..8d9606594e 100644 --- a/tests/MyGame/Example/Monster.cs +++ b/tests/MyGame/Example/Monster.cs @@ -14,7 +14,7 @@ public struct Monster : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_20(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_21(); } public static Monster GetRootAsMonster(ByteBuffer _bb) { return GetRootAsMonster(_bb, new Monster()); } public static Monster GetRootAsMonster(ByteBuffer _bb, Monster obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public static bool MonsterBufferHasIdentifier(ByteBuffer _bb) { return Table.__has_identifier(_bb, "MONS"); } diff --git a/tests/MyGame/Example/Monster.java b/tests/MyGame/Example/Monster.java index 68e89778b3..072c343838 100644 --- a/tests/MyGame/Example/Monster.java +++ b/tests/MyGame/Example/Monster.java @@ -24,7 +24,7 @@ */ @SuppressWarnings("unused") public final class Monster extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_23_1_20(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_1_21(); } public static Monster getRootAsMonster(ByteBuffer _bb) { return getRootAsMonster(_bb, new Monster()); } public static Monster getRootAsMonster(ByteBuffer _bb, Monster obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public static boolean MonsterBufferHasIdentifier(ByteBuffer _bb) { return __has_identifier(_bb, "MONS"); } diff --git a/tests/MyGame/Example/Monster.kt b/tests/MyGame/Example/Monster.kt index 83e6881d67..c6e19aa94c 100644 --- a/tests/MyGame/Example/Monster.kt +++ b/tests/MyGame/Example/Monster.kt @@ -1003,7 +1003,7 @@ class Monster : Table() { return compareStrings(__offset(10, o1, _bb), __offset(10, o2, _bb), _bb) } companion object { - fun validateVersion() = Constants.FLATBUFFERS_23_1_20() + fun validateVersion() = Constants.FLATBUFFERS_23_1_21() fun getRootAsMonster(_bb: ByteBuffer): Monster = getRootAsMonster(_bb, Monster()) fun getRootAsMonster(_bb: ByteBuffer, obj: Monster): Monster { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/MyGame/Example/Monster.lua b/tests/MyGame/Example/Monster.lua index 664388f379..b33b8d5a5b 100644 --- a/tests/MyGame/Example/Monster.lua +++ b/tests/MyGame/Example/Monster.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.20 + flatc version: 23.1.21 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/Monster.nim b/tests/MyGame/Example/Monster.nim index 47188a70b0..de260e33c7 100644 --- a/tests/MyGame/Example/Monster.nim +++ b/tests/MyGame/Example/Monster.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.20 + flatc version: 23.1.21 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example/Race.lua b/tests/MyGame/Example/Race.lua index 81eb469d5f..e4b9451c54 100644 --- a/tests/MyGame/Example/Race.lua +++ b/tests/MyGame/Example/Race.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.20 + flatc version: 23.1.21 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/Race.nim b/tests/MyGame/Example/Race.nim index 6a36b2eb97..8abc4e472e 100644 --- a/tests/MyGame/Example/Race.nim +++ b/tests/MyGame/Example/Race.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.20 + flatc version: 23.1.21 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example/Referrable.cs b/tests/MyGame/Example/Referrable.cs index cbad13c2b9..acd33e2de8 100644 --- a/tests/MyGame/Example/Referrable.cs +++ b/tests/MyGame/Example/Referrable.cs @@ -13,7 +13,7 @@ public struct Referrable : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_20(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_21(); } public static Referrable GetRootAsReferrable(ByteBuffer _bb) { return GetRootAsReferrable(_bb, new Referrable()); } public static Referrable GetRootAsReferrable(ByteBuffer _bb, Referrable obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/MyGame/Example/Referrable.java b/tests/MyGame/Example/Referrable.java index 8f8cd67c15..b4297d9d4f 100644 --- a/tests/MyGame/Example/Referrable.java +++ b/tests/MyGame/Example/Referrable.java @@ -21,7 +21,7 @@ @SuppressWarnings("unused") public final class Referrable extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_23_1_20(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_1_21(); } public static Referrable getRootAsReferrable(ByteBuffer _bb) { return getRootAsReferrable(_bb, new Referrable()); } public static Referrable getRootAsReferrable(ByteBuffer _bb, Referrable obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/tests/MyGame/Example/Referrable.kt b/tests/MyGame/Example/Referrable.kt index 922523f554..9e6e0ff70d 100644 --- a/tests/MyGame/Example/Referrable.kt +++ b/tests/MyGame/Example/Referrable.kt @@ -49,7 +49,7 @@ class Referrable : Table() { return (val_1 - val_2).sign } companion object { - fun validateVersion() = Constants.FLATBUFFERS_23_1_20() + fun validateVersion() = Constants.FLATBUFFERS_23_1_21() fun getRootAsReferrable(_bb: ByteBuffer): Referrable = getRootAsReferrable(_bb, Referrable()) fun getRootAsReferrable(_bb: ByteBuffer, obj: Referrable): Referrable { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/MyGame/Example/Referrable.lua b/tests/MyGame/Example/Referrable.lua index 2dc2fd7176..5c148eb20f 100644 --- a/tests/MyGame/Example/Referrable.lua +++ b/tests/MyGame/Example/Referrable.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.20 + flatc version: 23.1.21 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/Referrable.nim b/tests/MyGame/Example/Referrable.nim index b6d83034b5..f1934bd9d8 100644 --- a/tests/MyGame/Example/Referrable.nim +++ b/tests/MyGame/Example/Referrable.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.20 + flatc version: 23.1.21 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example/Stat.cs b/tests/MyGame/Example/Stat.cs index f19a4fdd7f..7ea5b8c317 100644 --- a/tests/MyGame/Example/Stat.cs +++ b/tests/MyGame/Example/Stat.cs @@ -13,7 +13,7 @@ public struct Stat : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_20(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_21(); } public static Stat GetRootAsStat(ByteBuffer _bb) { return GetRootAsStat(_bb, new Stat()); } public static Stat GetRootAsStat(ByteBuffer _bb, Stat obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/MyGame/Example/Stat.java b/tests/MyGame/Example/Stat.java index 55317190e6..abab0489eb 100644 --- a/tests/MyGame/Example/Stat.java +++ b/tests/MyGame/Example/Stat.java @@ -21,7 +21,7 @@ @SuppressWarnings("unused") public final class Stat extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_23_1_20(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_1_21(); } public static Stat getRootAsStat(ByteBuffer _bb) { return getRootAsStat(_bb, new Stat()); } public static Stat getRootAsStat(ByteBuffer _bb, Stat obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/tests/MyGame/Example/Stat.kt b/tests/MyGame/Example/Stat.kt index b0e6066193..0a755336f4 100644 --- a/tests/MyGame/Example/Stat.kt +++ b/tests/MyGame/Example/Stat.kt @@ -74,7 +74,7 @@ class Stat : Table() { return (val_1 - val_2).sign } companion object { - fun validateVersion() = Constants.FLATBUFFERS_23_1_20() + fun validateVersion() = Constants.FLATBUFFERS_23_1_21() fun getRootAsStat(_bb: ByteBuffer): Stat = getRootAsStat(_bb, Stat()) fun getRootAsStat(_bb: ByteBuffer, obj: Stat): Stat { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/MyGame/Example/Stat.lua b/tests/MyGame/Example/Stat.lua index d84a2fae00..8b537d4f8a 100644 --- a/tests/MyGame/Example/Stat.lua +++ b/tests/MyGame/Example/Stat.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.20 + flatc version: 23.1.21 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/Stat.nim b/tests/MyGame/Example/Stat.nim index ef79249cdc..3e484ad018 100644 --- a/tests/MyGame/Example/Stat.nim +++ b/tests/MyGame/Example/Stat.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.20 + flatc version: 23.1.21 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example/StructOfStructs.lua b/tests/MyGame/Example/StructOfStructs.lua index b4421f0979..ba75339e03 100644 --- a/tests/MyGame/Example/StructOfStructs.lua +++ b/tests/MyGame/Example/StructOfStructs.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.20 + flatc version: 23.1.21 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/StructOfStructs.nim b/tests/MyGame/Example/StructOfStructs.nim index 62245358cf..b2ca7da2a6 100644 --- a/tests/MyGame/Example/StructOfStructs.nim +++ b/tests/MyGame/Example/StructOfStructs.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.20 + flatc version: 23.1.21 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example/StructOfStructsOfStructs.lua b/tests/MyGame/Example/StructOfStructsOfStructs.lua index 548bd2b385..576d35b97a 100644 --- a/tests/MyGame/Example/StructOfStructsOfStructs.lua +++ b/tests/MyGame/Example/StructOfStructsOfStructs.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.20 + flatc version: 23.1.21 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/StructOfStructsOfStructs.nim b/tests/MyGame/Example/StructOfStructsOfStructs.nim index 04f941c10c..e7e8c16b2a 100644 --- a/tests/MyGame/Example/StructOfStructsOfStructs.nim +++ b/tests/MyGame/Example/StructOfStructsOfStructs.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.20 + flatc version: 23.1.21 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example/Test.lua b/tests/MyGame/Example/Test.lua index 2b1e01bf96..87673d797d 100644 --- a/tests/MyGame/Example/Test.lua +++ b/tests/MyGame/Example/Test.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.20 + flatc version: 23.1.21 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/Test.nim b/tests/MyGame/Example/Test.nim index 45f16c9a1e..c3dda88e22 100644 --- a/tests/MyGame/Example/Test.nim +++ b/tests/MyGame/Example/Test.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.20 + flatc version: 23.1.21 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example/TestSimpleTableWithEnum.cs b/tests/MyGame/Example/TestSimpleTableWithEnum.cs index bb38aa6337..a723ec14b9 100644 --- a/tests/MyGame/Example/TestSimpleTableWithEnum.cs +++ b/tests/MyGame/Example/TestSimpleTableWithEnum.cs @@ -13,7 +13,7 @@ internal partial struct TestSimpleTableWithEnum : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_20(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_21(); } public static TestSimpleTableWithEnum GetRootAsTestSimpleTableWithEnum(ByteBuffer _bb) { return GetRootAsTestSimpleTableWithEnum(_bb, new TestSimpleTableWithEnum()); } public static TestSimpleTableWithEnum GetRootAsTestSimpleTableWithEnum(ByteBuffer _bb, TestSimpleTableWithEnum obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/MyGame/Example/TestSimpleTableWithEnum.java b/tests/MyGame/Example/TestSimpleTableWithEnum.java index c084eedd69..6a043d5a63 100644 --- a/tests/MyGame/Example/TestSimpleTableWithEnum.java +++ b/tests/MyGame/Example/TestSimpleTableWithEnum.java @@ -21,7 +21,7 @@ @SuppressWarnings("unused") final class TestSimpleTableWithEnum extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_23_1_20(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_1_21(); } public static TestSimpleTableWithEnum getRootAsTestSimpleTableWithEnum(ByteBuffer _bb) { return getRootAsTestSimpleTableWithEnum(_bb, new TestSimpleTableWithEnum()); } public static TestSimpleTableWithEnum getRootAsTestSimpleTableWithEnum(ByteBuffer _bb, TestSimpleTableWithEnum obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/tests/MyGame/Example/TestSimpleTableWithEnum.kt b/tests/MyGame/Example/TestSimpleTableWithEnum.kt index 190cbdd2aa..ebe4b5f651 100644 --- a/tests/MyGame/Example/TestSimpleTableWithEnum.kt +++ b/tests/MyGame/Example/TestSimpleTableWithEnum.kt @@ -44,7 +44,7 @@ class TestSimpleTableWithEnum : Table() { } } companion object { - fun validateVersion() = Constants.FLATBUFFERS_23_1_20() + fun validateVersion() = Constants.FLATBUFFERS_23_1_21() fun getRootAsTestSimpleTableWithEnum(_bb: ByteBuffer): TestSimpleTableWithEnum = getRootAsTestSimpleTableWithEnum(_bb, TestSimpleTableWithEnum()) fun getRootAsTestSimpleTableWithEnum(_bb: ByteBuffer, obj: TestSimpleTableWithEnum): TestSimpleTableWithEnum { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/MyGame/Example/TestSimpleTableWithEnum.lua b/tests/MyGame/Example/TestSimpleTableWithEnum.lua index 514c967ec3..c57c78524b 100644 --- a/tests/MyGame/Example/TestSimpleTableWithEnum.lua +++ b/tests/MyGame/Example/TestSimpleTableWithEnum.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.20 + flatc version: 23.1.21 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/TestSimpleTableWithEnum.nim b/tests/MyGame/Example/TestSimpleTableWithEnum.nim index f81265d32c..d9a389f7ab 100644 --- a/tests/MyGame/Example/TestSimpleTableWithEnum.nim +++ b/tests/MyGame/Example/TestSimpleTableWithEnum.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.20 + flatc version: 23.1.21 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example/TypeAliases.cs b/tests/MyGame/Example/TypeAliases.cs index d0fc56cd3e..3d821cbe0d 100644 --- a/tests/MyGame/Example/TypeAliases.cs +++ b/tests/MyGame/Example/TypeAliases.cs @@ -13,7 +13,7 @@ public struct TypeAliases : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_20(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_21(); } public static TypeAliases GetRootAsTypeAliases(ByteBuffer _bb) { return GetRootAsTypeAliases(_bb, new TypeAliases()); } public static TypeAliases GetRootAsTypeAliases(ByteBuffer _bb, TypeAliases obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/MyGame/Example/TypeAliases.java b/tests/MyGame/Example/TypeAliases.java index 2f70e1cce2..58c1995d10 100644 --- a/tests/MyGame/Example/TypeAliases.java +++ b/tests/MyGame/Example/TypeAliases.java @@ -21,7 +21,7 @@ @SuppressWarnings("unused") public final class TypeAliases extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_23_1_20(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_1_21(); } public static TypeAliases getRootAsTypeAliases(ByteBuffer _bb) { return getRootAsTypeAliases(_bb, new TypeAliases()); } public static TypeAliases getRootAsTypeAliases(ByteBuffer _bb, TypeAliases obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/tests/MyGame/Example/TypeAliases.kt b/tests/MyGame/Example/TypeAliases.kt index 7482ad2c63..e719c7a214 100644 --- a/tests/MyGame/Example/TypeAliases.kt +++ b/tests/MyGame/Example/TypeAliases.kt @@ -216,7 +216,7 @@ class TypeAliases : Table() { } } companion object { - fun validateVersion() = Constants.FLATBUFFERS_23_1_20() + fun validateVersion() = Constants.FLATBUFFERS_23_1_21() fun getRootAsTypeAliases(_bb: ByteBuffer): TypeAliases = getRootAsTypeAliases(_bb, TypeAliases()) fun getRootAsTypeAliases(_bb: ByteBuffer, obj: TypeAliases): TypeAliases { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/MyGame/Example/TypeAliases.lua b/tests/MyGame/Example/TypeAliases.lua index d1ed077144..1b0ab87543 100644 --- a/tests/MyGame/Example/TypeAliases.lua +++ b/tests/MyGame/Example/TypeAliases.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.20 + flatc version: 23.1.21 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/TypeAliases.nim b/tests/MyGame/Example/TypeAliases.nim index d2f05d8d58..34078ea692 100644 --- a/tests/MyGame/Example/TypeAliases.nim +++ b/tests/MyGame/Example/TypeAliases.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.20 + flatc version: 23.1.21 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example/Vec3.lua b/tests/MyGame/Example/Vec3.lua index 10e2921ab8..ef6972e2e3 100644 --- a/tests/MyGame/Example/Vec3.lua +++ b/tests/MyGame/Example/Vec3.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.20 + flatc version: 23.1.21 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/Vec3.nim b/tests/MyGame/Example/Vec3.nim index 9e7cc632c0..d151ee9fd8 100644 --- a/tests/MyGame/Example/Vec3.nim +++ b/tests/MyGame/Example/Vec3.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.20 + flatc version: 23.1.21 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example2/Monster.cs b/tests/MyGame/Example2/Monster.cs index 88eab3eed4..6cffde7c10 100644 --- a/tests/MyGame/Example2/Monster.cs +++ b/tests/MyGame/Example2/Monster.cs @@ -13,7 +13,7 @@ public struct Monster : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_20(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_21(); } public static Monster GetRootAsMonster(ByteBuffer _bb) { return GetRootAsMonster(_bb, new Monster()); } public static Monster GetRootAsMonster(ByteBuffer _bb, Monster obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/MyGame/Example2/Monster.java b/tests/MyGame/Example2/Monster.java index bf8dc5a571..2704c7598a 100644 --- a/tests/MyGame/Example2/Monster.java +++ b/tests/MyGame/Example2/Monster.java @@ -21,7 +21,7 @@ @SuppressWarnings("unused") public final class Monster extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_23_1_20(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_1_21(); } public static Monster getRootAsMonster(ByteBuffer _bb) { return getRootAsMonster(_bb, new Monster()); } public static Monster getRootAsMonster(ByteBuffer _bb, Monster obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/tests/MyGame/Example2/Monster.kt b/tests/MyGame/Example2/Monster.kt index 950fabc178..71c5de2b4f 100644 --- a/tests/MyGame/Example2/Monster.kt +++ b/tests/MyGame/Example2/Monster.kt @@ -30,7 +30,7 @@ class Monster : Table() { return this } companion object { - fun validateVersion() = Constants.FLATBUFFERS_23_1_20() + fun validateVersion() = Constants.FLATBUFFERS_23_1_21() fun getRootAsMonster(_bb: ByteBuffer): Monster = getRootAsMonster(_bb, Monster()) fun getRootAsMonster(_bb: ByteBuffer, obj: Monster): Monster { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/MyGame/Example2/Monster.lua b/tests/MyGame/Example2/Monster.lua index 1e40b8719e..dbc0eb6488 100644 --- a/tests/MyGame/Example2/Monster.lua +++ b/tests/MyGame/Example2/Monster.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.20 + flatc version: 23.1.21 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example2/Monster.nim b/tests/MyGame/Example2/Monster.nim index 1b6dfc5e5c..50d1803793 100644 --- a/tests/MyGame/Example2/Monster.nim +++ b/tests/MyGame/Example2/Monster.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.20 + flatc version: 23.1.21 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/InParentNamespace.cs b/tests/MyGame/InParentNamespace.cs index 178399cc30..f6ecc36394 100644 --- a/tests/MyGame/InParentNamespace.cs +++ b/tests/MyGame/InParentNamespace.cs @@ -13,7 +13,7 @@ public struct InParentNamespace : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_20(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_21(); } public static InParentNamespace GetRootAsInParentNamespace(ByteBuffer _bb) { return GetRootAsInParentNamespace(_bb, new InParentNamespace()); } public static InParentNamespace GetRootAsInParentNamespace(ByteBuffer _bb, InParentNamespace obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/MyGame/InParentNamespace.java b/tests/MyGame/InParentNamespace.java index 9ce3c82ed4..9c831d2e80 100644 --- a/tests/MyGame/InParentNamespace.java +++ b/tests/MyGame/InParentNamespace.java @@ -21,7 +21,7 @@ @SuppressWarnings("unused") public final class InParentNamespace extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_23_1_20(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_1_21(); } public static InParentNamespace getRootAsInParentNamespace(ByteBuffer _bb) { return getRootAsInParentNamespace(_bb, new InParentNamespace()); } public static InParentNamespace getRootAsInParentNamespace(ByteBuffer _bb, InParentNamespace obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/tests/MyGame/InParentNamespace.kt b/tests/MyGame/InParentNamespace.kt index 878ad4455d..d40175ea79 100644 --- a/tests/MyGame/InParentNamespace.kt +++ b/tests/MyGame/InParentNamespace.kt @@ -30,7 +30,7 @@ class InParentNamespace : Table() { return this } companion object { - fun validateVersion() = Constants.FLATBUFFERS_23_1_20() + fun validateVersion() = Constants.FLATBUFFERS_23_1_21() fun getRootAsInParentNamespace(_bb: ByteBuffer): InParentNamespace = getRootAsInParentNamespace(_bb, InParentNamespace()) fun getRootAsInParentNamespace(_bb: ByteBuffer, obj: InParentNamespace): InParentNamespace { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/MyGame/InParentNamespace.lua b/tests/MyGame/InParentNamespace.lua index fade421f66..b0f518210b 100644 --- a/tests/MyGame/InParentNamespace.lua +++ b/tests/MyGame/InParentNamespace.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.20 + flatc version: 23.1.21 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/InParentNamespace.nim b/tests/MyGame/InParentNamespace.nim index 11c7e595da..02c41fb03d 100644 --- a/tests/MyGame/InParentNamespace.nim +++ b/tests/MyGame/InParentNamespace.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.20 + flatc version: 23.1.21 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/MonsterExtra.cs b/tests/MyGame/MonsterExtra.cs index e7a41ce342..b92a55e609 100644 --- a/tests/MyGame/MonsterExtra.cs +++ b/tests/MyGame/MonsterExtra.cs @@ -13,7 +13,7 @@ public struct MonsterExtra : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_20(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_21(); } public static MonsterExtra GetRootAsMonsterExtra(ByteBuffer _bb) { return GetRootAsMonsterExtra(_bb, new MonsterExtra()); } public static MonsterExtra GetRootAsMonsterExtra(ByteBuffer _bb, MonsterExtra obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public static bool MonsterExtraBufferHasIdentifier(ByteBuffer _bb) { return Table.__has_identifier(_bb, "MONE"); } diff --git a/tests/MyGame/MonsterExtra.java b/tests/MyGame/MonsterExtra.java index 061408c5bb..62f6862c59 100644 --- a/tests/MyGame/MonsterExtra.java +++ b/tests/MyGame/MonsterExtra.java @@ -21,7 +21,7 @@ @SuppressWarnings("unused") public final class MonsterExtra extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_23_1_20(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_1_21(); } public static MonsterExtra getRootAsMonsterExtra(ByteBuffer _bb) { return getRootAsMonsterExtra(_bb, new MonsterExtra()); } public static MonsterExtra getRootAsMonsterExtra(ByteBuffer _bb, MonsterExtra obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public static boolean MonsterExtraBufferHasIdentifier(ByteBuffer _bb) { return __has_identifier(_bb, "MONE"); } diff --git a/tests/MyGame/MonsterExtra.kt b/tests/MyGame/MonsterExtra.kt index 5ee9d8d410..a613a239c7 100644 --- a/tests/MyGame/MonsterExtra.kt +++ b/tests/MyGame/MonsterExtra.kt @@ -188,7 +188,7 @@ class MonsterExtra : Table() { } } companion object { - fun validateVersion() = Constants.FLATBUFFERS_23_1_20() + fun validateVersion() = Constants.FLATBUFFERS_23_1_21() fun getRootAsMonsterExtra(_bb: ByteBuffer): MonsterExtra = getRootAsMonsterExtra(_bb, MonsterExtra()) fun getRootAsMonsterExtra(_bb: ByteBuffer, obj: MonsterExtra): MonsterExtra { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/MyGame/OtherNameSpace/FromInclude.lua b/tests/MyGame/OtherNameSpace/FromInclude.lua index 66aa3f4d94..d9fac805a4 100644 --- a/tests/MyGame/OtherNameSpace/FromInclude.lua +++ b/tests/MyGame/OtherNameSpace/FromInclude.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.20 + flatc version: 23.1.21 Declared by : //include_test/sub/include_test2.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/OtherNameSpace/FromInclude.nim b/tests/MyGame/OtherNameSpace/FromInclude.nim index 533063b06f..428ed042a9 100644 --- a/tests/MyGame/OtherNameSpace/FromInclude.nim +++ b/tests/MyGame/OtherNameSpace/FromInclude.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.20 + flatc version: 23.1.21 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/OtherNameSpace/TableB.lua b/tests/MyGame/OtherNameSpace/TableB.lua index dcc9a2339d..3b4fe07e09 100644 --- a/tests/MyGame/OtherNameSpace/TableB.lua +++ b/tests/MyGame/OtherNameSpace/TableB.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.20 + flatc version: 23.1.21 Declared by : //include_test/sub/include_test2.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/OtherNameSpace/TableB.nim b/tests/MyGame/OtherNameSpace/TableB.nim index 8dca3751f5..1962ff3ca0 100644 --- a/tests/MyGame/OtherNameSpace/TableB.nim +++ b/tests/MyGame/OtherNameSpace/TableB.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.20 + flatc version: 23.1.21 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/OtherNameSpace/Unused.lua b/tests/MyGame/OtherNameSpace/Unused.lua index 0b3f64a465..1ef71a2d65 100644 --- a/tests/MyGame/OtherNameSpace/Unused.lua +++ b/tests/MyGame/OtherNameSpace/Unused.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.20 + flatc version: 23.1.21 Declared by : //include_test/sub/include_test2.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/OtherNameSpace/Unused.nim b/tests/MyGame/OtherNameSpace/Unused.nim index 1ef0beab4b..cfda3a0c34 100644 --- a/tests/MyGame/OtherNameSpace/Unused.nim +++ b/tests/MyGame/OtherNameSpace/Unused.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.20 + flatc version: 23.1.21 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/Property.nim b/tests/Property.nim index 85e491c105..9bdd9f6363 100644 --- a/tests/Property.nim +++ b/tests/Property.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.20 + flatc version: 23.1.21 Declared by : ]# diff --git a/tests/TableA.lua b/tests/TableA.lua index 2f48c052bb..7cbd50c3fd 100644 --- a/tests/TableA.lua +++ b/tests/TableA.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.20 + flatc version: 23.1.21 Declared by : //include_test/include_test1.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/TableA.nim b/tests/TableA.nim index e8e1c2885d..8b5ac4be73 100644 --- a/tests/TableA.nim +++ b/tests/TableA.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.20 + flatc version: 23.1.21 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/TestMutatingBool.nim b/tests/TestMutatingBool.nim index 32abd8f85c..32a1324ace 100644 --- a/tests/TestMutatingBool.nim +++ b/tests/TestMutatingBool.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.20 + flatc version: 23.1.21 Declared by : ]# diff --git a/tests/alignment_test_generated.h b/tests/alignment_test_generated.h index 8e5a732fe7..b47d5397d6 100644 --- a/tests/alignment_test_generated.h +++ b/tests/alignment_test_generated.h @@ -10,7 +10,7 @@ // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && FLATBUFFERS_VERSION_MINOR == 1 && - FLATBUFFERS_VERSION_REVISION == 20, + FLATBUFFERS_VERSION_REVISION == 21, "Non-compatible flatbuffers version included"); struct BadAlignmentSmall; diff --git a/tests/arrays_test_generated.h b/tests/arrays_test_generated.h index 5681f03599..aa58612d66 100644 --- a/tests/arrays_test_generated.h +++ b/tests/arrays_test_generated.h @@ -10,7 +10,7 @@ // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && FLATBUFFERS_VERSION_MINOR == 1 && - FLATBUFFERS_VERSION_REVISION == 20, + FLATBUFFERS_VERSION_REVISION == 21, "Non-compatible flatbuffers version included"); namespace MyGame { diff --git a/tests/cpp17/generated_cpp17/monster_test_generated.h b/tests/cpp17/generated_cpp17/monster_test_generated.h index 08cac39f67..6176d47c9e 100644 --- a/tests/cpp17/generated_cpp17/monster_test_generated.h +++ b/tests/cpp17/generated_cpp17/monster_test_generated.h @@ -12,7 +12,7 @@ // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && FLATBUFFERS_VERSION_MINOR == 1 && - FLATBUFFERS_VERSION_REVISION == 20, + FLATBUFFERS_VERSION_REVISION == 21, "Non-compatible flatbuffers version included"); namespace MyGame { diff --git a/tests/cpp17/generated_cpp17/optional_scalars_generated.h b/tests/cpp17/generated_cpp17/optional_scalars_generated.h index d8d27c6c1b..a9395ce3ea 100644 --- a/tests/cpp17/generated_cpp17/optional_scalars_generated.h +++ b/tests/cpp17/generated_cpp17/optional_scalars_generated.h @@ -10,7 +10,7 @@ // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && FLATBUFFERS_VERSION_MINOR == 1 && - FLATBUFFERS_VERSION_REVISION == 20, + FLATBUFFERS_VERSION_REVISION == 21, "Non-compatible flatbuffers version included"); namespace optional_scalars { diff --git a/tests/cpp17/generated_cpp17/union_vector_generated.h b/tests/cpp17/generated_cpp17/union_vector_generated.h index ad7ba7aee0..801b0b354b 100644 --- a/tests/cpp17/generated_cpp17/union_vector_generated.h +++ b/tests/cpp17/generated_cpp17/union_vector_generated.h @@ -10,7 +10,7 @@ // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && FLATBUFFERS_VERSION_MINOR == 1 && - FLATBUFFERS_VERSION_REVISION == 20, + FLATBUFFERS_VERSION_REVISION == 21, "Non-compatible flatbuffers version included"); struct Attacker; diff --git a/tests/evolution_test/evolution_v1_generated.h b/tests/evolution_test/evolution_v1_generated.h index 028fbbcd2b..f8090074d2 100644 --- a/tests/evolution_test/evolution_v1_generated.h +++ b/tests/evolution_test/evolution_v1_generated.h @@ -10,7 +10,7 @@ // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && FLATBUFFERS_VERSION_MINOR == 1 && - FLATBUFFERS_VERSION_REVISION == 20, + FLATBUFFERS_VERSION_REVISION == 21, "Non-compatible flatbuffers version included"); namespace Evolution { diff --git a/tests/evolution_test/evolution_v2_generated.h b/tests/evolution_test/evolution_v2_generated.h index 4bda60f12e..897213f798 100644 --- a/tests/evolution_test/evolution_v2_generated.h +++ b/tests/evolution_test/evolution_v2_generated.h @@ -10,7 +10,7 @@ // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && FLATBUFFERS_VERSION_MINOR == 1 && - FLATBUFFERS_VERSION_REVISION == 20, + FLATBUFFERS_VERSION_REVISION == 21, "Non-compatible flatbuffers version included"); namespace Evolution { diff --git a/tests/key_field/key_field_sample_generated.h b/tests/key_field/key_field_sample_generated.h index 5ceba6edd3..2a4ce6383a 100644 --- a/tests/key_field/key_field_sample_generated.h +++ b/tests/key_field/key_field_sample_generated.h @@ -10,7 +10,7 @@ // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && FLATBUFFERS_VERSION_MINOR == 1 && - FLATBUFFERS_VERSION_REVISION == 20, + FLATBUFFERS_VERSION_REVISION == 21, "Non-compatible flatbuffers version included"); namespace keyfield { diff --git a/tests/monster_extra_generated.h b/tests/monster_extra_generated.h index 8767073985..07eedaaffd 100644 --- a/tests/monster_extra_generated.h +++ b/tests/monster_extra_generated.h @@ -10,7 +10,7 @@ // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && FLATBUFFERS_VERSION_MINOR == 1 && - FLATBUFFERS_VERSION_REVISION == 20, + FLATBUFFERS_VERSION_REVISION == 21, "Non-compatible flatbuffers version included"); namespace MyGame { diff --git a/tests/monster_test_bfbs_generated.h b/tests/monster_test_bfbs_generated.h index a8ef27b3ab..2155a190f9 100644 --- a/tests/monster_test_bfbs_generated.h +++ b/tests/monster_test_bfbs_generated.h @@ -10,7 +10,7 @@ // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && FLATBUFFERS_VERSION_MINOR == 1 && - FLATBUFFERS_VERSION_REVISION == 20, + FLATBUFFERS_VERSION_REVISION == 21, "Non-compatible flatbuffers version included"); namespace MyGame { diff --git a/tests/monster_test_generated.h b/tests/monster_test_generated.h index 9fd47d5809..dc86043cea 100644 --- a/tests/monster_test_generated.h +++ b/tests/monster_test_generated.h @@ -12,7 +12,7 @@ // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && FLATBUFFERS_VERSION_MINOR == 1 && - FLATBUFFERS_VERSION_REVISION == 20, + FLATBUFFERS_VERSION_REVISION == 21, "Non-compatible flatbuffers version included"); namespace MyGame { diff --git a/tests/monster_test_suffix/ext_only/monster_test_generated.hpp b/tests/monster_test_suffix/ext_only/monster_test_generated.hpp index 9fd47d5809..dc86043cea 100644 --- a/tests/monster_test_suffix/ext_only/monster_test_generated.hpp +++ b/tests/monster_test_suffix/ext_only/monster_test_generated.hpp @@ -12,7 +12,7 @@ // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && FLATBUFFERS_VERSION_MINOR == 1 && - FLATBUFFERS_VERSION_REVISION == 20, + FLATBUFFERS_VERSION_REVISION == 21, "Non-compatible flatbuffers version included"); namespace MyGame { diff --git a/tests/monster_test_suffix/filesuffix_only/monster_test_suffix.h b/tests/monster_test_suffix/filesuffix_only/monster_test_suffix.h index 9fd47d5809..dc86043cea 100644 --- a/tests/monster_test_suffix/filesuffix_only/monster_test_suffix.h +++ b/tests/monster_test_suffix/filesuffix_only/monster_test_suffix.h @@ -12,7 +12,7 @@ // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && FLATBUFFERS_VERSION_MINOR == 1 && - FLATBUFFERS_VERSION_REVISION == 20, + FLATBUFFERS_VERSION_REVISION == 21, "Non-compatible flatbuffers version included"); namespace MyGame { diff --git a/tests/monster_test_suffix/monster_test_suffix.hpp b/tests/monster_test_suffix/monster_test_suffix.hpp index 9fd47d5809..dc86043cea 100644 --- a/tests/monster_test_suffix/monster_test_suffix.hpp +++ b/tests/monster_test_suffix/monster_test_suffix.hpp @@ -12,7 +12,7 @@ // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && FLATBUFFERS_VERSION_MINOR == 1 && - FLATBUFFERS_VERSION_REVISION == 20, + FLATBUFFERS_VERSION_REVISION == 21, "Non-compatible flatbuffers version included"); namespace MyGame { diff --git a/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.cs b/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.cs index c968dc5a73..ace2f0f41f 100644 --- a/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.cs +++ b/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.cs @@ -13,7 +13,7 @@ public struct TableInNestedNS : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_20(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_21(); } public static TableInNestedNS GetRootAsTableInNestedNS(ByteBuffer _bb) { return GetRootAsTableInNestedNS(_bb, new TableInNestedNS()); } public static TableInNestedNS GetRootAsTableInNestedNS(ByteBuffer _bb, TableInNestedNS obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.java b/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.java index 314c94f95f..09eaea29f7 100644 --- a/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.java +++ b/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.java @@ -9,7 +9,7 @@ @SuppressWarnings("unused") public final class TableInNestedNS extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_23_1_20(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_1_21(); } public static TableInNestedNS getRootAsTableInNestedNS(ByteBuffer _bb) { return getRootAsTableInNestedNS(_bb, new TableInNestedNS()); } public static TableInNestedNS getRootAsTableInNestedNS(ByteBuffer _bb, TableInNestedNS obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.kt b/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.kt index 4cb9318675..1a8ff5b218 100644 --- a/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.kt +++ b/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.kt @@ -44,7 +44,7 @@ class TableInNestedNS : Table() { } } companion object { - fun validateVersion() = Constants.FLATBUFFERS_23_1_20() + fun validateVersion() = Constants.FLATBUFFERS_23_1_21() fun getRootAsTableInNestedNS(_bb: ByteBuffer): TableInNestedNS = getRootAsTableInNestedNS(_bb, TableInNestedNS()) fun getRootAsTableInNestedNS(_bb: ByteBuffer, obj: TableInNestedNS): TableInNestedNS { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/namespace_test/NamespaceA/SecondTableInA.cs b/tests/namespace_test/NamespaceA/SecondTableInA.cs index 930cf2a8ae..22ec787b57 100644 --- a/tests/namespace_test/NamespaceA/SecondTableInA.cs +++ b/tests/namespace_test/NamespaceA/SecondTableInA.cs @@ -13,7 +13,7 @@ public struct SecondTableInA : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_20(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_21(); } public static SecondTableInA GetRootAsSecondTableInA(ByteBuffer _bb) { return GetRootAsSecondTableInA(_bb, new SecondTableInA()); } public static SecondTableInA GetRootAsSecondTableInA(ByteBuffer _bb, SecondTableInA obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/namespace_test/NamespaceA/SecondTableInA.java b/tests/namespace_test/NamespaceA/SecondTableInA.java index 21e0137454..2df3e2d02e 100644 --- a/tests/namespace_test/NamespaceA/SecondTableInA.java +++ b/tests/namespace_test/NamespaceA/SecondTableInA.java @@ -9,7 +9,7 @@ @SuppressWarnings("unused") public final class SecondTableInA extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_23_1_20(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_1_21(); } public static SecondTableInA getRootAsSecondTableInA(ByteBuffer _bb) { return getRootAsSecondTableInA(_bb, new SecondTableInA()); } public static SecondTableInA getRootAsSecondTableInA(ByteBuffer _bb, SecondTableInA obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/tests/namespace_test/NamespaceA/SecondTableInA.kt b/tests/namespace_test/NamespaceA/SecondTableInA.kt index 414f3599ac..58af7d734d 100644 --- a/tests/namespace_test/NamespaceA/SecondTableInA.kt +++ b/tests/namespace_test/NamespaceA/SecondTableInA.kt @@ -39,7 +39,7 @@ class SecondTableInA : Table() { } } companion object { - fun validateVersion() = Constants.FLATBUFFERS_23_1_20() + fun validateVersion() = Constants.FLATBUFFERS_23_1_21() fun getRootAsSecondTableInA(_bb: ByteBuffer): SecondTableInA = getRootAsSecondTableInA(_bb, SecondTableInA()) fun getRootAsSecondTableInA(_bb: ByteBuffer, obj: SecondTableInA): SecondTableInA { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/namespace_test/NamespaceA/TableInFirstNS.cs b/tests/namespace_test/NamespaceA/TableInFirstNS.cs index 4bbe8880ea..94e2aac1d7 100644 --- a/tests/namespace_test/NamespaceA/TableInFirstNS.cs +++ b/tests/namespace_test/NamespaceA/TableInFirstNS.cs @@ -13,7 +13,7 @@ public struct TableInFirstNS : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_20(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_21(); } public static TableInFirstNS GetRootAsTableInFirstNS(ByteBuffer _bb) { return GetRootAsTableInFirstNS(_bb, new TableInFirstNS()); } public static TableInFirstNS GetRootAsTableInFirstNS(ByteBuffer _bb, TableInFirstNS obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/namespace_test/NamespaceA/TableInFirstNS.java b/tests/namespace_test/NamespaceA/TableInFirstNS.java index 7ecdc0a869..50ac18a993 100644 --- a/tests/namespace_test/NamespaceA/TableInFirstNS.java +++ b/tests/namespace_test/NamespaceA/TableInFirstNS.java @@ -9,7 +9,7 @@ @SuppressWarnings("unused") public final class TableInFirstNS extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_23_1_20(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_1_21(); } public static TableInFirstNS getRootAsTableInFirstNS(ByteBuffer _bb) { return getRootAsTableInFirstNS(_bb, new TableInFirstNS()); } public static TableInFirstNS getRootAsTableInFirstNS(ByteBuffer _bb, TableInFirstNS obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/tests/namespace_test/NamespaceA/TableInFirstNS.kt b/tests/namespace_test/NamespaceA/TableInFirstNS.kt index 8e48e3102b..ab575bca61 100644 --- a/tests/namespace_test/NamespaceA/TableInFirstNS.kt +++ b/tests/namespace_test/NamespaceA/TableInFirstNS.kt @@ -79,7 +79,7 @@ class TableInFirstNS : Table() { } } companion object { - fun validateVersion() = Constants.FLATBUFFERS_23_1_20() + fun validateVersion() = Constants.FLATBUFFERS_23_1_21() fun getRootAsTableInFirstNS(_bb: ByteBuffer): TableInFirstNS = getRootAsTableInFirstNS(_bb, TableInFirstNS()) fun getRootAsTableInFirstNS(_bb: ByteBuffer, obj: TableInFirstNS): TableInFirstNS { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/namespace_test/NamespaceC/TableInC.cs b/tests/namespace_test/NamespaceC/TableInC.cs index 7807922056..c157ed7636 100644 --- a/tests/namespace_test/NamespaceC/TableInC.cs +++ b/tests/namespace_test/NamespaceC/TableInC.cs @@ -13,7 +13,7 @@ public struct TableInC : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_20(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_21(); } public static TableInC GetRootAsTableInC(ByteBuffer _bb) { return GetRootAsTableInC(_bb, new TableInC()); } public static TableInC GetRootAsTableInC(ByteBuffer _bb, TableInC obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/namespace_test/NamespaceC/TableInC.java b/tests/namespace_test/NamespaceC/TableInC.java index 30107b91a9..3be39d291c 100644 --- a/tests/namespace_test/NamespaceC/TableInC.java +++ b/tests/namespace_test/NamespaceC/TableInC.java @@ -9,7 +9,7 @@ @SuppressWarnings("unused") public final class TableInC extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_23_1_20(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_1_21(); } public static TableInC getRootAsTableInC(ByteBuffer _bb) { return getRootAsTableInC(_bb, new TableInC()); } public static TableInC getRootAsTableInC(ByteBuffer _bb, TableInC obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/tests/namespace_test/NamespaceC/TableInC.kt b/tests/namespace_test/NamespaceC/TableInC.kt index 83196bc493..a955975f2c 100644 --- a/tests/namespace_test/NamespaceC/TableInC.kt +++ b/tests/namespace_test/NamespaceC/TableInC.kt @@ -48,7 +48,7 @@ class TableInC : Table() { } } companion object { - fun validateVersion() = Constants.FLATBUFFERS_23_1_20() + fun validateVersion() = Constants.FLATBUFFERS_23_1_21() fun getRootAsTableInC(_bb: ByteBuffer): TableInC = getRootAsTableInC(_bb, TableInC()) fun getRootAsTableInC(_bb: ByteBuffer, obj: TableInC): TableInC { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/namespace_test/namespace_test1_generated.h b/tests/namespace_test/namespace_test1_generated.h index 39cc822cd4..bb5078b896 100644 --- a/tests/namespace_test/namespace_test1_generated.h +++ b/tests/namespace_test/namespace_test1_generated.h @@ -10,7 +10,7 @@ // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && FLATBUFFERS_VERSION_MINOR == 1 && - FLATBUFFERS_VERSION_REVISION == 20, + FLATBUFFERS_VERSION_REVISION == 21, "Non-compatible flatbuffers version included"); namespace NamespaceA { diff --git a/tests/namespace_test/namespace_test2_generated.h b/tests/namespace_test/namespace_test2_generated.h index c2b5a650f5..b30d308205 100644 --- a/tests/namespace_test/namespace_test2_generated.h +++ b/tests/namespace_test/namespace_test2_generated.h @@ -10,7 +10,7 @@ // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && FLATBUFFERS_VERSION_MINOR == 1 && - FLATBUFFERS_VERSION_REVISION == 20, + FLATBUFFERS_VERSION_REVISION == 21, "Non-compatible flatbuffers version included"); namespace NamespaceA { diff --git a/tests/native_inline_table_test_generated.h b/tests/native_inline_table_test_generated.h index 525f531b8b..ea42ba4409 100644 --- a/tests/native_inline_table_test_generated.h +++ b/tests/native_inline_table_test_generated.h @@ -10,7 +10,7 @@ // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && FLATBUFFERS_VERSION_MINOR == 1 && - FLATBUFFERS_VERSION_REVISION == 20, + FLATBUFFERS_VERSION_REVISION == 21, "Non-compatible flatbuffers version included"); struct NativeInlineTable; diff --git a/tests/native_type_test_generated.h b/tests/native_type_test_generated.h index 9f792736c3..f99ce02f84 100644 --- a/tests/native_type_test_generated.h +++ b/tests/native_type_test_generated.h @@ -10,7 +10,7 @@ // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && FLATBUFFERS_VERSION_MINOR == 1 && - FLATBUFFERS_VERSION_REVISION == 20, + FLATBUFFERS_VERSION_REVISION == 21, "Non-compatible flatbuffers version included"); #include "native_type_test_impl.h" diff --git a/tests/nested_namespace_test/nested_namespace_test3_generated.cs b/tests/nested_namespace_test/nested_namespace_test3_generated.cs index e62bd42935..a44ceae3fb 100644 --- a/tests/nested_namespace_test/nested_namespace_test3_generated.cs +++ b/tests/nested_namespace_test/nested_namespace_test3_generated.cs @@ -13,7 +13,7 @@ public struct ColorTestTable : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_20(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_21(); } public static ColorTestTable GetRootAsColorTestTable(ByteBuffer _bb) { return GetRootAsColorTestTable(_bb, new ColorTestTable()); } public static ColorTestTable GetRootAsColorTestTable(ByteBuffer _bb, ColorTestTable obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/optional_scalars/OptionalByte.nim b/tests/optional_scalars/OptionalByte.nim index 1d58290473..8077183cdc 100644 --- a/tests/optional_scalars/OptionalByte.nim +++ b/tests/optional_scalars/OptionalByte.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.20 + flatc version: 23.1.21 Declared by : Rooting type : optional_scalars.ScalarStuff () diff --git a/tests/optional_scalars/ScalarStuff.cs b/tests/optional_scalars/ScalarStuff.cs index 2f4b19cf0b..3d3e664fe5 100644 --- a/tests/optional_scalars/ScalarStuff.cs +++ b/tests/optional_scalars/ScalarStuff.cs @@ -13,7 +13,7 @@ public struct ScalarStuff : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_20(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_21(); } public static ScalarStuff GetRootAsScalarStuff(ByteBuffer _bb) { return GetRootAsScalarStuff(_bb, new ScalarStuff()); } public static ScalarStuff GetRootAsScalarStuff(ByteBuffer _bb, ScalarStuff obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public static bool ScalarStuffBufferHasIdentifier(ByteBuffer _bb) { return Table.__has_identifier(_bb, "NULL"); } diff --git a/tests/optional_scalars/ScalarStuff.java b/tests/optional_scalars/ScalarStuff.java index 0a2dd2de94..cae0669be8 100644 --- a/tests/optional_scalars/ScalarStuff.java +++ b/tests/optional_scalars/ScalarStuff.java @@ -21,7 +21,7 @@ @SuppressWarnings("unused") public final class ScalarStuff extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_23_1_20(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_1_21(); } public static ScalarStuff getRootAsScalarStuff(ByteBuffer _bb) { return getRootAsScalarStuff(_bb, new ScalarStuff()); } public static ScalarStuff getRootAsScalarStuff(ByteBuffer _bb, ScalarStuff obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public static boolean ScalarStuffBufferHasIdentifier(ByteBuffer _bb) { return __has_identifier(_bb, "NULL"); } diff --git a/tests/optional_scalars/ScalarStuff.kt b/tests/optional_scalars/ScalarStuff.kt index 1c872f6742..eef02f2743 100644 --- a/tests/optional_scalars/ScalarStuff.kt +++ b/tests/optional_scalars/ScalarStuff.kt @@ -210,7 +210,7 @@ class ScalarStuff : Table() { return if(o != 0) bb.get(o + bb_pos) else 1 } companion object { - fun validateVersion() = Constants.FLATBUFFERS_23_1_20() + fun validateVersion() = Constants.FLATBUFFERS_23_1_21() fun getRootAsScalarStuff(_bb: ByteBuffer): ScalarStuff = getRootAsScalarStuff(_bb, ScalarStuff()) fun getRootAsScalarStuff(_bb: ByteBuffer, obj: ScalarStuff): ScalarStuff { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/optional_scalars/ScalarStuff.nim b/tests/optional_scalars/ScalarStuff.nim index 97132ad82a..a877a989be 100644 --- a/tests/optional_scalars/ScalarStuff.nim +++ b/tests/optional_scalars/ScalarStuff.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.20 + flatc version: 23.1.21 Declared by : Rooting type : optional_scalars.ScalarStuff () diff --git a/tests/optional_scalars_generated.h b/tests/optional_scalars_generated.h index a6836ff46b..b15ef55edf 100644 --- a/tests/optional_scalars_generated.h +++ b/tests/optional_scalars_generated.h @@ -10,7 +10,7 @@ // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && FLATBUFFERS_VERSION_MINOR == 1 && - FLATBUFFERS_VERSION_REVISION == 20, + FLATBUFFERS_VERSION_REVISION == 21, "Non-compatible flatbuffers version included"); namespace optional_scalars { diff --git a/tests/swift/Wasm.tests/Tests/FlatBuffers.Test.Swift.WasmTests/monster_test_generated.swift b/tests/swift/Wasm.tests/Tests/FlatBuffers.Test.Swift.WasmTests/monster_test_generated.swift index 40b63b396c..fd2ca74685 100644 --- a/tests/swift/Wasm.tests/Tests/FlatBuffers.Test.Swift.WasmTests/monster_test_generated.swift +++ b/tests/swift/Wasm.tests/Tests/FlatBuffers.Test.Swift.WasmTests/monster_test_generated.swift @@ -237,7 +237,7 @@ public struct MyGame_Example_AnyAmbiguousAliasesUnion { } public struct MyGame_Example_Test: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject { - static func validateVersion() { FlatBuffersVersion_23_1_20() } + static func validateVersion() { FlatBuffersVersion_23_1_21() } private var _a: Int16 private var _b: Int8 @@ -291,7 +291,7 @@ extension MyGame_Example_Test: Encodable { public struct MyGame_Example_Test_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_23_1_20() } + static func validateVersion() { FlatBuffersVersion_23_1_21() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -318,7 +318,7 @@ public struct MyGame_Example_Test_Mutable: FlatBufferObject { public struct MyGame_Example_Vec3: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject { - static func validateVersion() { FlatBuffersVersion_23_1_20() } + static func validateVersion() { FlatBuffersVersion_23_1_21() } private var _x: Float32 private var _y: Float32 @@ -413,7 +413,7 @@ extension MyGame_Example_Vec3: Encodable { public struct MyGame_Example_Vec3_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_23_1_20() } + static func validateVersion() { FlatBuffersVersion_23_1_21() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -447,7 +447,7 @@ public struct MyGame_Example_Vec3_Mutable: FlatBufferObject { public struct MyGame_Example_Ability: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject { - static func validateVersion() { FlatBuffersVersion_23_1_20() } + static func validateVersion() { FlatBuffersVersion_23_1_21() } private var _id: UInt32 private var _distance: UInt32 @@ -500,7 +500,7 @@ extension MyGame_Example_Ability: Encodable { public struct MyGame_Example_Ability_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_23_1_20() } + static func validateVersion() { FlatBuffersVersion_23_1_21() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -527,7 +527,7 @@ public struct MyGame_Example_Ability_Mutable: FlatBufferObject { public struct MyGame_Example_StructOfStructs: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject { - static func validateVersion() { FlatBuffersVersion_23_1_20() } + static func validateVersion() { FlatBuffersVersion_23_1_21() } private var _a: MyGame_Example_Ability private var _b: MyGame_Example_Test @@ -587,7 +587,7 @@ extension MyGame_Example_StructOfStructs: Encodable { public struct MyGame_Example_StructOfStructs_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_23_1_20() } + static func validateVersion() { FlatBuffersVersion_23_1_21() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -613,7 +613,7 @@ public struct MyGame_Example_StructOfStructs_Mutable: FlatBufferObject { public struct MyGame_Example_StructOfStructsOfStructs: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject { - static func validateVersion() { FlatBuffersVersion_23_1_20() } + static func validateVersion() { FlatBuffersVersion_23_1_21() } private var _a: MyGame_Example_StructOfStructs @@ -655,7 +655,7 @@ extension MyGame_Example_StructOfStructsOfStructs: Encodable { public struct MyGame_Example_StructOfStructsOfStructs_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_23_1_20() } + static func validateVersion() { FlatBuffersVersion_23_1_21() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -679,7 +679,7 @@ public struct MyGame_Example_StructOfStructsOfStructs_Mutable: FlatBufferObject public struct MyGame_InParentNamespace: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_23_1_20() } + static func validateVersion() { FlatBuffersVersion_23_1_21() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -731,7 +731,7 @@ public class MyGame_InParentNamespaceT: NativeObject { } public struct MyGame_Example2_Monster: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_23_1_20() } + static func validateVersion() { FlatBuffersVersion_23_1_21() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -783,7 +783,7 @@ public class MyGame_Example2_MonsterT: NativeObject { } internal struct MyGame_Example_TestSimpleTableWithEnum: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_23_1_20() } + static func validateVersion() { FlatBuffersVersion_23_1_21() } internal var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -864,7 +864,7 @@ internal class MyGame_Example_TestSimpleTableWithEnumT: NativeObject { } public struct MyGame_Example_Stat: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_23_1_20() } + static func validateVersion() { FlatBuffersVersion_23_1_21() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -1003,7 +1003,7 @@ public class MyGame_Example_StatT: NativeObject { } public struct MyGame_Example_Referrable: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_23_1_20() } + static func validateVersion() { FlatBuffersVersion_23_1_21() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -1109,7 +1109,7 @@ public class MyGame_Example_ReferrableT: NativeObject { /// an example documentation comment: "monster object" public struct MyGame_Example_Monster: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_23_1_20() } + static func validateVersion() { FlatBuffersVersion_23_1_21() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -2405,7 +2405,7 @@ public class MyGame_Example_MonsterT: NativeObject { } public struct MyGame_Example_TypeAliases: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_23_1_20() } + static func validateVersion() { FlatBuffersVersion_23_1_21() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table diff --git a/tests/swift/tests/CodeGenerationTests/test_import_generated.swift b/tests/swift/tests/CodeGenerationTests/test_import_generated.swift index 9ff125da79..ac8a85f8d5 100644 --- a/tests/swift/tests/CodeGenerationTests/test_import_generated.swift +++ b/tests/swift/tests/CodeGenerationTests/test_import_generated.swift @@ -6,7 +6,7 @@ internal struct Message: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_23_1_20() } + static func validateVersion() { FlatBuffersVersion_23_1_21() } internal var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table diff --git a/tests/swift/tests/CodeGenerationTests/test_no_include_generated.swift b/tests/swift/tests/CodeGenerationTests/test_no_include_generated.swift index 235eee3122..956e72b877 100644 --- a/tests/swift/tests/CodeGenerationTests/test_no_include_generated.swift +++ b/tests/swift/tests/CodeGenerationTests/test_no_include_generated.swift @@ -4,7 +4,7 @@ public struct BytesCount: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject { - static func validateVersion() { FlatBuffersVersion_23_1_20() } + static func validateVersion() { FlatBuffersVersion_23_1_21() } private var _x: Int64 @@ -47,7 +47,7 @@ extension BytesCount: Encodable { public struct BytesCount_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_23_1_20() } + static func validateVersion() { FlatBuffersVersion_23_1_21() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -72,7 +72,7 @@ public struct BytesCount_Mutable: FlatBufferObject { public struct InternalMessage: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_23_1_20() } + static func validateVersion() { FlatBuffersVersion_23_1_21() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -155,7 +155,7 @@ public class InternalMessageT: NativeObject { } public struct Message: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_23_1_20() } + static func validateVersion() { FlatBuffersVersion_23_1_21() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table diff --git a/tests/swift/tests/Sources/SwiftFlatBuffers/fuzzer_generated.swift b/tests/swift/tests/Sources/SwiftFlatBuffers/fuzzer_generated.swift index 67fe9f200b..8631c92a60 100644 --- a/tests/swift/tests/Sources/SwiftFlatBuffers/fuzzer_generated.swift +++ b/tests/swift/tests/Sources/SwiftFlatBuffers/fuzzer_generated.swift @@ -32,7 +32,7 @@ extension Color: Encodable { public struct Test: NativeStruct, Verifiable, FlatbuffersInitializable { - static func validateVersion() { FlatBuffersVersion_23_1_20() } + static func validateVersion() { FlatBuffersVersion_23_1_21() } private var _a: Int16 private var _b: Int8 @@ -81,7 +81,7 @@ extension Test: Encodable { public struct Test_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_23_1_20() } + static func validateVersion() { FlatBuffersVersion_23_1_21() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -93,7 +93,7 @@ public struct Test_Mutable: FlatBufferObject { public struct Vec3: NativeStruct, Verifiable, FlatbuffersInitializable { - static func validateVersion() { FlatBuffersVersion_23_1_20() } + static func validateVersion() { FlatBuffersVersion_23_1_21() } private var _x: Float32 private var _y: Float32 @@ -178,7 +178,7 @@ extension Vec3: Encodable { public struct Vec3_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_23_1_20() } + static func validateVersion() { FlatBuffersVersion_23_1_21() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -195,7 +195,7 @@ public struct Vec3_Mutable: FlatBufferObject { /// an example documentation comment: "monster object" public struct Monster: FlatBufferObject, Verifiable { - static func validateVersion() { FlatBuffersVersion_23_1_20() } + static func validateVersion() { FlatBuffersVersion_23_1_21() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table diff --git a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/MutatingBool_generated.swift b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/MutatingBool_generated.swift index b38b5a76aa..cee24baf16 100644 --- a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/MutatingBool_generated.swift +++ b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/MutatingBool_generated.swift @@ -6,7 +6,7 @@ import FlatBuffers public struct Property: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject { - static func validateVersion() { FlatBuffersVersion_23_1_20() } + static func validateVersion() { FlatBuffersVersion_23_1_21() } private var _property: Bool @@ -49,7 +49,7 @@ extension Property: Encodable { public struct Property_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_23_1_20() } + static func validateVersion() { FlatBuffersVersion_23_1_21() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -74,7 +74,7 @@ public struct Property_Mutable: FlatBufferObject { public struct TestMutatingBool: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_23_1_20() } + static func validateVersion() { FlatBuffersVersion_23_1_21() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table diff --git a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/monster_test_generated.swift b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/monster_test_generated.swift index 40b63b396c..fd2ca74685 100644 --- a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/monster_test_generated.swift +++ b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/monster_test_generated.swift @@ -237,7 +237,7 @@ public struct MyGame_Example_AnyAmbiguousAliasesUnion { } public struct MyGame_Example_Test: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject { - static func validateVersion() { FlatBuffersVersion_23_1_20() } + static func validateVersion() { FlatBuffersVersion_23_1_21() } private var _a: Int16 private var _b: Int8 @@ -291,7 +291,7 @@ extension MyGame_Example_Test: Encodable { public struct MyGame_Example_Test_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_23_1_20() } + static func validateVersion() { FlatBuffersVersion_23_1_21() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -318,7 +318,7 @@ public struct MyGame_Example_Test_Mutable: FlatBufferObject { public struct MyGame_Example_Vec3: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject { - static func validateVersion() { FlatBuffersVersion_23_1_20() } + static func validateVersion() { FlatBuffersVersion_23_1_21() } private var _x: Float32 private var _y: Float32 @@ -413,7 +413,7 @@ extension MyGame_Example_Vec3: Encodable { public struct MyGame_Example_Vec3_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_23_1_20() } + static func validateVersion() { FlatBuffersVersion_23_1_21() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -447,7 +447,7 @@ public struct MyGame_Example_Vec3_Mutable: FlatBufferObject { public struct MyGame_Example_Ability: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject { - static func validateVersion() { FlatBuffersVersion_23_1_20() } + static func validateVersion() { FlatBuffersVersion_23_1_21() } private var _id: UInt32 private var _distance: UInt32 @@ -500,7 +500,7 @@ extension MyGame_Example_Ability: Encodable { public struct MyGame_Example_Ability_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_23_1_20() } + static func validateVersion() { FlatBuffersVersion_23_1_21() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -527,7 +527,7 @@ public struct MyGame_Example_Ability_Mutable: FlatBufferObject { public struct MyGame_Example_StructOfStructs: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject { - static func validateVersion() { FlatBuffersVersion_23_1_20() } + static func validateVersion() { FlatBuffersVersion_23_1_21() } private var _a: MyGame_Example_Ability private var _b: MyGame_Example_Test @@ -587,7 +587,7 @@ extension MyGame_Example_StructOfStructs: Encodable { public struct MyGame_Example_StructOfStructs_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_23_1_20() } + static func validateVersion() { FlatBuffersVersion_23_1_21() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -613,7 +613,7 @@ public struct MyGame_Example_StructOfStructs_Mutable: FlatBufferObject { public struct MyGame_Example_StructOfStructsOfStructs: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject { - static func validateVersion() { FlatBuffersVersion_23_1_20() } + static func validateVersion() { FlatBuffersVersion_23_1_21() } private var _a: MyGame_Example_StructOfStructs @@ -655,7 +655,7 @@ extension MyGame_Example_StructOfStructsOfStructs: Encodable { public struct MyGame_Example_StructOfStructsOfStructs_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_23_1_20() } + static func validateVersion() { FlatBuffersVersion_23_1_21() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -679,7 +679,7 @@ public struct MyGame_Example_StructOfStructsOfStructs_Mutable: FlatBufferObject public struct MyGame_InParentNamespace: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_23_1_20() } + static func validateVersion() { FlatBuffersVersion_23_1_21() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -731,7 +731,7 @@ public class MyGame_InParentNamespaceT: NativeObject { } public struct MyGame_Example2_Monster: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_23_1_20() } + static func validateVersion() { FlatBuffersVersion_23_1_21() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -783,7 +783,7 @@ public class MyGame_Example2_MonsterT: NativeObject { } internal struct MyGame_Example_TestSimpleTableWithEnum: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_23_1_20() } + static func validateVersion() { FlatBuffersVersion_23_1_21() } internal var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -864,7 +864,7 @@ internal class MyGame_Example_TestSimpleTableWithEnumT: NativeObject { } public struct MyGame_Example_Stat: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_23_1_20() } + static func validateVersion() { FlatBuffersVersion_23_1_21() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -1003,7 +1003,7 @@ public class MyGame_Example_StatT: NativeObject { } public struct MyGame_Example_Referrable: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_23_1_20() } + static func validateVersion() { FlatBuffersVersion_23_1_21() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -1109,7 +1109,7 @@ public class MyGame_Example_ReferrableT: NativeObject { /// an example documentation comment: "monster object" public struct MyGame_Example_Monster: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_23_1_20() } + static func validateVersion() { FlatBuffersVersion_23_1_21() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -2405,7 +2405,7 @@ public class MyGame_Example_MonsterT: NativeObject { } public struct MyGame_Example_TypeAliases: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_23_1_20() } + static func validateVersion() { FlatBuffersVersion_23_1_21() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table diff --git a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/more_defaults_generated.swift b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/more_defaults_generated.swift index f5d32a9a24..4705376455 100644 --- a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/more_defaults_generated.swift +++ b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/more_defaults_generated.swift @@ -29,7 +29,7 @@ extension ABC: Encodable { public struct MoreDefaults: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_23_1_20() } + static func validateVersion() { FlatBuffersVersion_23_1_21() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table diff --git a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/nan_inf_test_generated.swift b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/nan_inf_test_generated.swift index e0d2953fd8..d9fb9bd543 100644 --- a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/nan_inf_test_generated.swift +++ b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/nan_inf_test_generated.swift @@ -6,7 +6,7 @@ import FlatBuffers public struct Swift_Tests_NanInfTable: FlatBufferObject, Verifiable { - static func validateVersion() { FlatBuffersVersion_23_1_20() } + static func validateVersion() { FlatBuffersVersion_23_1_21() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table diff --git a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/optional_scalars_generated.swift b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/optional_scalars_generated.swift index b258dff181..fb6614a0d0 100644 --- a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/optional_scalars_generated.swift +++ b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/optional_scalars_generated.swift @@ -29,7 +29,7 @@ extension optional_scalars_OptionalByte: Encodable { public struct optional_scalars_ScalarStuff: FlatBufferObject, Verifiable { - static func validateVersion() { FlatBuffersVersion_23_1_20() } + static func validateVersion() { FlatBuffersVersion_23_1_21() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table diff --git a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/union_vector_generated.swift b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/union_vector_generated.swift index 34bfb3888a..e5801135d0 100644 --- a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/union_vector_generated.swift +++ b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/union_vector_generated.swift @@ -120,7 +120,7 @@ public struct GadgetUnion { } public struct Rapunzel: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject { - static func validateVersion() { FlatBuffersVersion_23_1_20() } + static func validateVersion() { FlatBuffersVersion_23_1_21() } private var _hairLength: Int32 @@ -163,7 +163,7 @@ extension Rapunzel: Encodable { public struct Rapunzel_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_23_1_20() } + static func validateVersion() { FlatBuffersVersion_23_1_21() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -188,7 +188,7 @@ public struct Rapunzel_Mutable: FlatBufferObject { public struct BookReader: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject { - static func validateVersion() { FlatBuffersVersion_23_1_20() } + static func validateVersion() { FlatBuffersVersion_23_1_21() } private var _booksRead: Int32 @@ -231,7 +231,7 @@ extension BookReader: Encodable { public struct BookReader_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_23_1_20() } + static func validateVersion() { FlatBuffersVersion_23_1_21() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -256,7 +256,7 @@ public struct BookReader_Mutable: FlatBufferObject { public struct FallingTub: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject { - static func validateVersion() { FlatBuffersVersion_23_1_20() } + static func validateVersion() { FlatBuffersVersion_23_1_21() } private var _weight: Int32 @@ -299,7 +299,7 @@ extension FallingTub: Encodable { public struct FallingTub_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_23_1_20() } + static func validateVersion() { FlatBuffersVersion_23_1_21() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -324,7 +324,7 @@ public struct FallingTub_Mutable: FlatBufferObject { public struct Attacker: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_23_1_20() } + static func validateVersion() { FlatBuffersVersion_23_1_21() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -405,7 +405,7 @@ public class AttackerT: NativeObject { } public struct HandFan: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_23_1_20() } + static func validateVersion() { FlatBuffersVersion_23_1_21() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -486,7 +486,7 @@ public class HandFanT: NativeObject { } public struct Movie: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_23_1_20() } + static func validateVersion() { FlatBuffersVersion_23_1_21() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table diff --git a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/vector_has_test_generated.swift b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/vector_has_test_generated.swift index 077faa83fb..29298f5c58 100644 --- a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/vector_has_test_generated.swift +++ b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/vector_has_test_generated.swift @@ -6,7 +6,7 @@ import FlatBuffers public struct Swift_Tests_Vectors: FlatBufferObject, Verifiable { - static func validateVersion() { FlatBuffersVersion_23_1_20() } + static func validateVersion() { FlatBuffersVersion_23_1_21() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table diff --git a/tests/type_field_collsion/Collision.cs b/tests/type_field_collsion/Collision.cs index 6640130402..00c5fa2e01 100644 --- a/tests/type_field_collsion/Collision.cs +++ b/tests/type_field_collsion/Collision.cs @@ -13,7 +13,7 @@ public struct Collision : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_20(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_21(); } public static Collision GetRootAsCollision(ByteBuffer _bb) { return GetRootAsCollision(_bb, new Collision()); } public static Collision GetRootAsCollision(ByteBuffer _bb, Collision obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/union_value_collsion/union_value_collision_generated.cs b/tests/union_value_collsion/union_value_collision_generated.cs index 94874267c1..acd3033586 100644 --- a/tests/union_value_collsion/union_value_collision_generated.cs +++ b/tests/union_value_collsion/union_value_collision_generated.cs @@ -151,7 +151,7 @@ public struct IntValue : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_20(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_21(); } public static IntValue GetRootAsIntValue(ByteBuffer _bb) { return GetRootAsIntValue(_bb, new IntValue()); } public static IntValue GetRootAsIntValue(ByteBuffer _bb, IntValue obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } @@ -202,7 +202,7 @@ public struct Collision : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_20(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_21(); } public static Collision GetRootAsCollision(ByteBuffer _bb) { return GetRootAsCollision(_bb, new Collision()); } public static Collision GetRootAsCollision(ByteBuffer _bb, Collision obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/union_vector/Attacker.cs b/tests/union_vector/Attacker.cs index 391cf3b451..7f633e5d67 100644 --- a/tests/union_vector/Attacker.cs +++ b/tests/union_vector/Attacker.cs @@ -10,7 +10,7 @@ public struct Attacker : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_20(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_21(); } public static Attacker GetRootAsAttacker(ByteBuffer _bb) { return GetRootAsAttacker(_bb, new Attacker()); } public static Attacker GetRootAsAttacker(ByteBuffer _bb, Attacker obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/union_vector/Attacker.java b/tests/union_vector/Attacker.java index 2debd845b6..0149d780ad 100644 --- a/tests/union_vector/Attacker.java +++ b/tests/union_vector/Attacker.java @@ -19,7 +19,7 @@ @SuppressWarnings("unused") public final class Attacker extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_23_1_20(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_1_21(); } public static Attacker getRootAsAttacker(ByteBuffer _bb) { return getRootAsAttacker(_bb, new Attacker()); } public static Attacker getRootAsAttacker(ByteBuffer _bb, Attacker obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/tests/union_vector/Attacker.kt b/tests/union_vector/Attacker.kt index ecac323417..89786e22f9 100644 --- a/tests/union_vector/Attacker.kt +++ b/tests/union_vector/Attacker.kt @@ -42,7 +42,7 @@ class Attacker : Table() { } } companion object { - fun validateVersion() = Constants.FLATBUFFERS_23_1_20() + fun validateVersion() = Constants.FLATBUFFERS_23_1_21() fun getRootAsAttacker(_bb: ByteBuffer): Attacker = getRootAsAttacker(_bb, Attacker()) fun getRootAsAttacker(_bb: ByteBuffer, obj: Attacker): Attacker { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/union_vector/HandFan.cs b/tests/union_vector/HandFan.cs index 5e41071b9d..6cb2487709 100644 --- a/tests/union_vector/HandFan.cs +++ b/tests/union_vector/HandFan.cs @@ -10,7 +10,7 @@ public struct HandFan : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_20(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_21(); } public static HandFan GetRootAsHandFan(ByteBuffer _bb) { return GetRootAsHandFan(_bb, new HandFan()); } public static HandFan GetRootAsHandFan(ByteBuffer _bb, HandFan obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/union_vector/HandFan.java b/tests/union_vector/HandFan.java index 74ac1af037..aa25470739 100644 --- a/tests/union_vector/HandFan.java +++ b/tests/union_vector/HandFan.java @@ -19,7 +19,7 @@ @SuppressWarnings("unused") public final class HandFan extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_23_1_20(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_1_21(); } public static HandFan getRootAsHandFan(ByteBuffer _bb) { return getRootAsHandFan(_bb, new HandFan()); } public static HandFan getRootAsHandFan(ByteBuffer _bb, HandFan obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/tests/union_vector/HandFan.kt b/tests/union_vector/HandFan.kt index 19ee45e7ea..2ccfd8c05b 100644 --- a/tests/union_vector/HandFan.kt +++ b/tests/union_vector/HandFan.kt @@ -42,7 +42,7 @@ class HandFan : Table() { } } companion object { - fun validateVersion() = Constants.FLATBUFFERS_23_1_20() + fun validateVersion() = Constants.FLATBUFFERS_23_1_21() fun getRootAsHandFan(_bb: ByteBuffer): HandFan = getRootAsHandFan(_bb, HandFan()) fun getRootAsHandFan(_bb: ByteBuffer, obj: HandFan): HandFan { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/union_vector/Movie.cs b/tests/union_vector/Movie.cs index 22489e269d..f306325196 100644 --- a/tests/union_vector/Movie.cs +++ b/tests/union_vector/Movie.cs @@ -10,7 +10,7 @@ public struct Movie : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_20(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_21(); } public static Movie GetRootAsMovie(ByteBuffer _bb) { return GetRootAsMovie(_bb, new Movie()); } public static Movie GetRootAsMovie(ByteBuffer _bb, Movie obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public static bool MovieBufferHasIdentifier(ByteBuffer _bb) { return Table.__has_identifier(_bb, "MOVI"); } diff --git a/tests/union_vector/Movie.java b/tests/union_vector/Movie.java index 13f9604255..265d960f5c 100644 --- a/tests/union_vector/Movie.java +++ b/tests/union_vector/Movie.java @@ -19,7 +19,7 @@ @SuppressWarnings("unused") public final class Movie extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_23_1_20(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_1_21(); } public static Movie getRootAsMovie(ByteBuffer _bb) { return getRootAsMovie(_bb, new Movie()); } public static Movie getRootAsMovie(ByteBuffer _bb, Movie obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public static boolean MovieBufferHasIdentifier(ByteBuffer _bb) { return __has_identifier(_bb, "MOVI"); } diff --git a/tests/union_vector/Movie.kt b/tests/union_vector/Movie.kt index f607c4cc01..4826dff875 100644 --- a/tests/union_vector/Movie.kt +++ b/tests/union_vector/Movie.kt @@ -80,7 +80,7 @@ class Movie : Table() { val o = __offset(10); return if (o != 0) __vector_len(o) else 0 } companion object { - fun validateVersion() = Constants.FLATBUFFERS_23_1_20() + fun validateVersion() = Constants.FLATBUFFERS_23_1_21() fun getRootAsMovie(_bb: ByteBuffer): Movie = getRootAsMovie(_bb, Movie()) fun getRootAsMovie(_bb: ByteBuffer, obj: Movie): Movie { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/union_vector/union_vector_generated.h b/tests/union_vector/union_vector_generated.h index 609e83ffae..c17ea1c84a 100644 --- a/tests/union_vector/union_vector_generated.h +++ b/tests/union_vector/union_vector_generated.h @@ -10,7 +10,7 @@ // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && FLATBUFFERS_VERSION_MINOR == 1 && - FLATBUFFERS_VERSION_REVISION == 20, + FLATBUFFERS_VERSION_REVISION == 21, "Non-compatible flatbuffers version included"); struct Attacker; From 802a3a056a66f6d744d03739341918486e1de612 Mon Sep 17 00:00:00 2001 From: Wen Sun <30698014+sunwen18@users.noreply.github.com> Date: Tue, 24 Jan 2023 16:37:13 -0800 Subject: [PATCH 102/571] [C++] Enable using struct and array of struct as key (#7741) * add unit tests for support struct as key * make changes to parser and add helper function to generate comparator for struct * implement * add more unit tests * format * just a test * test done * rerun generator * restore build file * address comment * format * rebase * rebase * add more unit tests * rerun generator * address some comments * address comment * update * format * address comment Co-authored-by: Wen Sun Co-authored-by: Derek Bailey --- src/idl_gen_cpp.cpp | 137 ++++- src/idl_parser.cpp | 9 +- tests/key_field/key_field_sample.fbs | 28 + tests/key_field/key_field_sample_generated.h | 567 ++++++++++++++++++- tests/key_field_test.cpp | 142 +++++ tests/key_field_test.h | 4 + tests/test.cpp | 3 + 7 files changed, 853 insertions(+), 37 deletions(-) diff --git a/src/idl_gen_cpp.cpp b/src/idl_gen_cpp.cpp index ad534b64d9..970709d0e8 100644 --- a/src/idl_gen_cpp.cpp +++ b/src/idl_gen_cpp.cpp @@ -2245,54 +2245,147 @@ class CppGenerator : public BaseGenerator { } } + void GenComparatorForStruct(const StructDef &struct_def, size_t space_size, + const std::string lhs_struct_literal, + const std::string rhs_struct_literal) { + code_.SetValue("LHS_PREFIX", lhs_struct_literal); + code_.SetValue("RHS_PREFIX", rhs_struct_literal); + std::string space(space_size, ' '); + for (const auto &curr_field : struct_def.fields.vec) { + const auto curr_field_name = Name(*curr_field); + code_.SetValue("CURR_FIELD_NAME", curr_field_name); + code_.SetValue("LHS", lhs_struct_literal + "_" + curr_field_name); + code_.SetValue("RHS", rhs_struct_literal + "_" + curr_field_name); + const bool is_scalar = IsScalar(curr_field->value.type.base_type); + const bool is_array = IsArray(curr_field->value.type); + const bool is_struct = IsStruct(curr_field->value.type); + + // If encouter a key field, call KeyCompareWithValue to compare this field. + if (curr_field->key) { + code_ += + space + "const auto {{RHS}} = {{RHS_PREFIX}}.{{CURR_FIELD_NAME}}();"; + code_ += space + "const auto {{CURR_FIELD_NAME}}_compare_result = {{LHS_PREFIX}}.KeyCompareWithValue({{RHS}});"; + + code_ += space + "if ({{CURR_FIELD_NAME}}_compare_result != 0)"; + code_ += space + " return {{CURR_FIELD_NAME}}_compare_result;"; + continue; + } + + code_ += + space + "const auto {{LHS}} = {{LHS_PREFIX}}.{{CURR_FIELD_NAME}}();"; + code_ += + space + "const auto {{RHS}} = {{RHS_PREFIX}}.{{CURR_FIELD_NAME}}();"; + if (is_scalar) { + code_ += space + "if ({{LHS}} != {{RHS}})"; + code_ += space + + " return static_cast({{LHS}} > {{RHS}}) - " + "static_cast({{LHS}} < {{RHS}});"; + } else if (is_array) { + const auto &elem_type = curr_field->value.type.VectorType(); + code_ += + space + + "for (::flatbuffers::uoffset_t i = 0; i < {{LHS}}->size(); i++) {"; + code_ += space + " const auto {{LHS}}_elem = {{LHS}}->Get(i);"; + code_ += space + " const auto {{RHS}}_elem = {{RHS}}->Get(i);"; + if (IsScalar(elem_type.base_type)) { + code_ += space + " if ({{LHS}}_elem != {{RHS}}_elem)"; + code_ += space + + " return static_cast({{LHS}}_elem > {{RHS}}_elem) - " + "static_cast({{LHS}}_elem < {{RHS}}_elem);"; + code_ += space + "}"; + + } else if (IsStruct(elem_type)) { + if (curr_field->key) { + code_ += space + "const auto {{CURR_FIELD_NAME}}_compare_result = {{LHS_PREFIX}}.KeyCompareWithValue({{RHS}});"; + code_ += space + "if ({{CURR_FIELD_NAME}}_compare_result != 0)"; + code_ += space + " return {{CURR_FIELD_NAME}}_compare_result;"; + continue; + } + GenComparatorForStruct( + *curr_field->value.type.struct_def, space_size + 2, + code_.GetValue("LHS") + "_elem", code_.GetValue("RHS") + "_elem"); + + code_ += space + "}"; + } + + } else if (is_struct) { + GenComparatorForStruct(*curr_field->value.type.struct_def, space_size, + code_.GetValue("LHS"), code_.GetValue("RHS")); + } + } + } + // Generate CompareWithValue method for a key field. void GenKeyFieldMethods(const FieldDef &field) { FLATBUFFERS_ASSERT(field.key); const bool is_string = IsString(field.value.type); const bool is_array = IsArray(field.value.type); - + const bool is_struct = IsStruct(field.value.type); + // Generate KeyCompareLessThan function code_ += " bool KeyCompareLessThan(const {{STRUCT_NAME}} * const o) const {"; if (is_string) { // use operator< of ::flatbuffers::String code_ += " return *{{FIELD_NAME}}() < *o->{{FIELD_NAME}}();"; - } else if (is_array) { - const auto &elem_type = field.value.type.VectorType(); - if (IsScalar(elem_type.base_type)) { - code_ += " return KeyCompareWithValue(o->{{FIELD_NAME}}()) < 0;"; - } - } else { + } else if (is_array || is_struct) { + code_ += " return KeyCompareWithValue(o->{{FIELD_NAME}}()) < 0;"; + }else { code_ += " return {{FIELD_NAME}}() < o->{{FIELD_NAME}}();"; } code_ += " }"; + // Generate KeyCompareWithValue function if (is_string) { code_ += " int KeyCompareWithValue(const char *_{{FIELD_NAME}}) const {"; code_ += " return strcmp({{FIELD_NAME}}()->c_str(), _{{FIELD_NAME}});"; } else if (is_array) { const auto &elem_type = field.value.type.VectorType(); + std::string input_type = "::flatbuffers::Array<" + + GenTypeGet(elem_type, "", "", " ", false) + + ", " + NumToString(elem_type.fixed_length) + ">"; + code_.SetValue("INPUT_TYPE", input_type); + code_ += + " int KeyCompareWithValue(const {{INPUT_TYPE}} *_{{FIELD_NAME}}" + ") const {"; + code_ += + " const {{INPUT_TYPE}} *curr_{{FIELD_NAME}} = {{FIELD_NAME}}();"; + code_ += + " for (::flatbuffers::uoffset_t i = 0; i < " + "curr_{{FIELD_NAME}}->size(); i++) {"; + if (IsScalar(elem_type.base_type)) { - std::string input_type = "::flatbuffers::Array<" + - GenTypeBasic(elem_type, false) + ", " + - NumToString(elem_type.fixed_length) + ">"; - code_.SetValue("INPUT_TYPE", input_type); - code_ += - " int KeyCompareWithValue(const {{INPUT_TYPE}} *_{{FIELD_NAME}}" - ") const {"; - code_ += - " const {{INPUT_TYPE}} *curr_{{FIELD_NAME}} = {{FIELD_NAME}}();"; - code_ += - " for (::flatbuffers::uoffset_t i = 0; i < " - "curr_{{FIELD_NAME}}->size(); i++) {"; code_ += " const auto lhs = curr_{{FIELD_NAME}}->Get(i);"; code_ += " const auto rhs = _{{FIELD_NAME}}->Get(i);"; - code_ += " if(lhs != rhs)"; + code_ += " if (lhs != rhs)"; code_ += " return static_cast(lhs > rhs)" " - static_cast(lhs < rhs);"; - code_ += " }"; - code_ += " return 0;"; + } else if (IsStruct(elem_type)) { + code_ += + " const auto &lhs_{{FIELD_NAME}} = " + "*(curr_{{FIELD_NAME}}->Get(i));"; + code_ += + " const auto &rhs_{{FIELD_NAME}} = *(_{{FIELD_NAME}}->Get(i));"; + GenComparatorForStruct(*elem_type.struct_def, 6, + "lhs_" + code_.GetValue("FIELD_NAME"), + "rhs_" + code_.GetValue("FIELD_NAME")); } + code_ += " }"; + code_ += " return 0;"; + } else if (is_struct) { + const auto *struct_def = field.value.type.struct_def; + code_.SetValue("INPUT_TYPE", + GenTypeGet(field.value.type, "", "", "", false)); + code_ += + " int KeyCompareWithValue(const {{INPUT_TYPE}} &_{{FIELD_NAME}}) " + "const {"; + code_ += " const auto &lhs_{{FIELD_NAME}} = {{FIELD_NAME}}();"; + code_ += " const auto &rhs_{{FIELD_NAME}} = _{{FIELD_NAME}};"; + GenComparatorForStruct(*struct_def, 4, + "lhs_" + code_.GetValue("FIELD_NAME"), + "rhs_" + code_.GetValue("FIELD_NAME")); + code_ += " return 0;"; + } else { FLATBUFFERS_ASSERT(IsScalar(field.value.type.base_type)); auto type = GenTypeBasic(field.value.type, false); diff --git a/src/idl_parser.cpp b/src/idl_parser.cpp index 06095e6211..9477c457f4 100644 --- a/src/idl_parser.cpp +++ b/src/idl_parser.cpp @@ -918,7 +918,7 @@ CheckedError Parser::ParseField(StructDef &struct_def) { ECHECK(ParseType(type)); if (struct_def.fixed) { - if (IsIncompleteStruct(type) || + if (IsIncompleteStruct(type) || (IsArray(type) && IsIncompleteStruct(type.VectorType()))) { std::string type_name = IsArray(type) ? type.VectorType().struct_def->name : type.struct_def->name; return Error(std::string("Incomplete type in struct is not allowed, type name: ") + type_name); @@ -1072,8 +1072,11 @@ CheckedError Parser::ParseField(StructDef &struct_def) { if (field->key) { if (struct_def.has_key) return Error("only one field may be set as 'key'"); struct_def.has_key = true; - auto is_valid = IsScalar(type.base_type) || IsString(type); - if (IsArray(type)) { is_valid |= IsScalar(type.VectorType().base_type); } + auto is_valid = IsScalar(type.base_type) || IsString(type) || IsStruct(type); + if (IsArray(type)) { + is_valid |= + IsScalar(type.VectorType().base_type) || IsStruct(type.VectorType()); + } if (!is_valid) { return Error( "'key' field must be string, scalar type or fixed size array of " diff --git a/tests/key_field/key_field_sample.fbs b/tests/key_field/key_field_sample.fbs index 028920d2c3..e19969bb17 100644 --- a/tests/key_field/key_field_sample.fbs +++ b/tests/key_field/key_field_sample.fbs @@ -10,12 +10,40 @@ struct Bar { b: uint8; } +struct Color { + rgb: [float:3] (key); + tag: uint8; +} + +struct Apple { + tag: uint8; + color: Color(key); +} + +struct Fruit { + a: Apple (key); + b: uint8; +} + +struct Rice { + origin: [uint8:3]; + quantity: uint32; +} + +struct Grain { + a: [Rice:3] (key); + tag: uint8; +} + table FooTable { a: int; b: int; c: string (key); d: [Baz]; e: [Bar]; + f: [Apple]; + g: [Fruit]; + h: [Grain]; } root_type FooTable; diff --git a/tests/key_field/key_field_sample_generated.h b/tests/key_field/key_field_sample_generated.h index 2a4ce6383a..6a5b9b423c 100644 --- a/tests/key_field/key_field_sample_generated.h +++ b/tests/key_field/key_field_sample_generated.h @@ -20,6 +20,16 @@ struct Baz; struct Bar; +struct Color; + +struct Apple; + +struct Fruit; + +struct Rice; + +struct Grain; + struct FooTable; struct FooTableBuilder; struct FooTableT; @@ -28,6 +38,16 @@ bool operator==(const Baz &lhs, const Baz &rhs); bool operator!=(const Baz &lhs, const Baz &rhs); bool operator==(const Bar &lhs, const Bar &rhs); bool operator!=(const Bar &lhs, const Bar &rhs); +bool operator==(const Color &lhs, const Color &rhs); +bool operator!=(const Color &lhs, const Color &rhs); +bool operator==(const Apple &lhs, const Apple &rhs); +bool operator!=(const Apple &lhs, const Apple &rhs); +bool operator==(const Fruit &lhs, const Fruit &rhs); +bool operator!=(const Fruit &lhs, const Fruit &rhs); +bool operator==(const Rice &lhs, const Rice &rhs); +bool operator!=(const Rice &lhs, const Rice &rhs); +bool operator==(const Grain &lhs, const Grain &rhs); +bool operator!=(const Grain &lhs, const Grain &rhs); bool operator==(const FooTableT &lhs, const FooTableT &rhs); bool operator!=(const FooTableT &lhs, const FooTableT &rhs); @@ -35,6 +55,16 @@ inline const ::flatbuffers::TypeTable *BazTypeTable(); inline const ::flatbuffers::TypeTable *BarTypeTable(); +inline const ::flatbuffers::TypeTable *ColorTypeTable(); + +inline const ::flatbuffers::TypeTable *AppleTypeTable(); + +inline const ::flatbuffers::TypeTable *FruitTypeTable(); + +inline const ::flatbuffers::TypeTable *RiceTypeTable(); + +inline const ::flatbuffers::TypeTable *GrainTypeTable(); + inline const ::flatbuffers::TypeTable *FooTableTypeTable(); FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(1) Baz FLATBUFFERS_FINAL_CLASS { @@ -72,7 +102,7 @@ FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(1) Baz FLATBUFFERS_FINAL_CLASS { for (::flatbuffers::uoffset_t i = 0; i < curr_a->size(); i++) { const auto lhs = curr_a->Get(i); const auto rhs = _a->Get(i); - if(lhs != rhs) + if (lhs != rhs) return static_cast(lhs > rhs) - static_cast(lhs < rhs); } return 0; @@ -145,7 +175,7 @@ FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(4) Bar FLATBUFFERS_FINAL_CLASS { for (::flatbuffers::uoffset_t i = 0; i < curr_a->size(); i++) { const auto lhs = curr_a->Get(i); const auto rhs = _a->Get(i); - if(lhs != rhs) + if (lhs != rhs) return static_cast(lhs > rhs) - static_cast(lhs < rhs); } return 0; @@ -170,6 +200,352 @@ inline bool operator!=(const Bar &lhs, const Bar &rhs) { } +FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(4) Color FLATBUFFERS_FINAL_CLASS { + private: + float rgb_[3]; + uint8_t tag_; + int8_t padding0__; int16_t padding1__; + + public: + static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { + return ColorTypeTable(); + } + Color() + : rgb_(), + tag_(0), + padding0__(0), + padding1__(0) { + (void)padding0__; + (void)padding1__; + } + Color(uint8_t _tag) + : rgb_(), + tag_(::flatbuffers::EndianScalar(_tag)), + padding0__(0), + padding1__(0) { + (void)padding0__; + (void)padding1__; + } + Color(::flatbuffers::span _rgb, uint8_t _tag) + : tag_(::flatbuffers::EndianScalar(_tag)), + padding0__(0), + padding1__(0) { + ::flatbuffers::CastToArray(rgb_).CopyFromSpan(_rgb); + (void)padding0__; + (void)padding1__; + } + const ::flatbuffers::Array *rgb() const { + return &::flatbuffers::CastToArray(rgb_); + } + ::flatbuffers::Array *mutable_rgb() { + return &::flatbuffers::CastToArray(rgb_); + } + bool KeyCompareLessThan(const Color * const o) const { + return KeyCompareWithValue(o->rgb()) < 0; + } + int KeyCompareWithValue(const ::flatbuffers::Array *_rgb) const { + const ::flatbuffers::Array *curr_rgb = rgb(); + for (::flatbuffers::uoffset_t i = 0; i < curr_rgb->size(); i++) { + const auto lhs = curr_rgb->Get(i); + const auto rhs = _rgb->Get(i); + if (lhs != rhs) + return static_cast(lhs > rhs) - static_cast(lhs < rhs); + } + return 0; + } + uint8_t tag() const { + return ::flatbuffers::EndianScalar(tag_); + } + void mutate_tag(uint8_t _tag) { + ::flatbuffers::WriteScalar(&tag_, _tag); + } +}; +FLATBUFFERS_STRUCT_END(Color, 16); + +inline bool operator==(const Color &lhs, const Color &rhs) { + return + (*lhs.rgb() == *rhs.rgb()) && + (lhs.tag() == rhs.tag()); +} + +inline bool operator!=(const Color &lhs, const Color &rhs) { + return !(lhs == rhs); +} + + +FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(4) Apple FLATBUFFERS_FINAL_CLASS { + private: + uint8_t tag_; + int8_t padding0__; int16_t padding1__; + keyfield::sample::Color color_; + + public: + static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { + return AppleTypeTable(); + } + Apple() + : tag_(0), + padding0__(0), + padding1__(0), + color_() { + (void)padding0__; + (void)padding1__; + } + Apple(uint8_t _tag, const keyfield::sample::Color &_color) + : tag_(::flatbuffers::EndianScalar(_tag)), + padding0__(0), + padding1__(0), + color_(_color) { + (void)padding0__; + (void)padding1__; + } + uint8_t tag() const { + return ::flatbuffers::EndianScalar(tag_); + } + void mutate_tag(uint8_t _tag) { + ::flatbuffers::WriteScalar(&tag_, _tag); + } + const keyfield::sample::Color &color() const { + return color_; + } + keyfield::sample::Color &mutable_color() { + return color_; + } + bool KeyCompareLessThan(const Apple * const o) const { + return KeyCompareWithValue(o->color()) < 0; + } + int KeyCompareWithValue(const keyfield::sample::Color &_color) const { + const auto &lhs_color = color(); + const auto &rhs_color = _color; + const auto rhs_color_rgb = rhs_color.rgb(); + const auto rgb_compare_result = lhs_color.KeyCompareWithValue(rhs_color_rgb); + if (rgb_compare_result != 0) + return rgb_compare_result; + const auto lhs_color_tag = lhs_color.tag(); + const auto rhs_color_tag = rhs_color.tag(); + if (lhs_color_tag != rhs_color_tag) + return static_cast(lhs_color_tag > rhs_color_tag) - static_cast(lhs_color_tag < rhs_color_tag); + return 0; + } +}; +FLATBUFFERS_STRUCT_END(Apple, 20); + +inline bool operator==(const Apple &lhs, const Apple &rhs) { + return + (lhs.tag() == rhs.tag()) && + (lhs.color() == rhs.color()); +} + +inline bool operator!=(const Apple &lhs, const Apple &rhs) { + return !(lhs == rhs); +} + + +FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(4) Fruit FLATBUFFERS_FINAL_CLASS { + private: + keyfield::sample::Apple a_; + uint8_t b_; + int8_t padding0__; int16_t padding1__; + + public: + static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { + return FruitTypeTable(); + } + Fruit() + : a_(), + b_(0), + padding0__(0), + padding1__(0) { + (void)padding0__; + (void)padding1__; + } + Fruit(const keyfield::sample::Apple &_a, uint8_t _b) + : a_(_a), + b_(::flatbuffers::EndianScalar(_b)), + padding0__(0), + padding1__(0) { + (void)padding0__; + (void)padding1__; + } + const keyfield::sample::Apple &a() const { + return a_; + } + keyfield::sample::Apple &mutable_a() { + return a_; + } + bool KeyCompareLessThan(const Fruit * const o) const { + return KeyCompareWithValue(o->a()) < 0; + } + int KeyCompareWithValue(const keyfield::sample::Apple &_a) const { + const auto &lhs_a = a(); + const auto &rhs_a = _a; + const auto lhs_a_tag = lhs_a.tag(); + const auto rhs_a_tag = rhs_a.tag(); + if (lhs_a_tag != rhs_a_tag) + return static_cast(lhs_a_tag > rhs_a_tag) - static_cast(lhs_a_tag < rhs_a_tag); + const auto rhs_a_color = rhs_a.color(); + const auto color_compare_result = lhs_a.KeyCompareWithValue(rhs_a_color); + if (color_compare_result != 0) + return color_compare_result; + return 0; + } + uint8_t b() const { + return ::flatbuffers::EndianScalar(b_); + } + void mutate_b(uint8_t _b) { + ::flatbuffers::WriteScalar(&b_, _b); + } +}; +FLATBUFFERS_STRUCT_END(Fruit, 24); + +inline bool operator==(const Fruit &lhs, const Fruit &rhs) { + return + (lhs.a() == rhs.a()) && + (lhs.b() == rhs.b()); +} + +inline bool operator!=(const Fruit &lhs, const Fruit &rhs) { + return !(lhs == rhs); +} + + +FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(4) Rice FLATBUFFERS_FINAL_CLASS { + private: + uint8_t origin_[3]; + int8_t padding0__; + uint32_t quantity_; + + public: + static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { + return RiceTypeTable(); + } + Rice() + : origin_(), + padding0__(0), + quantity_(0) { + (void)padding0__; + } + Rice(uint32_t _quantity) + : origin_(), + padding0__(0), + quantity_(::flatbuffers::EndianScalar(_quantity)) { + (void)padding0__; + } + Rice(::flatbuffers::span _origin, uint32_t _quantity) + : padding0__(0), + quantity_(::flatbuffers::EndianScalar(_quantity)) { + ::flatbuffers::CastToArray(origin_).CopyFromSpan(_origin); + (void)padding0__; + } + const ::flatbuffers::Array *origin() const { + return &::flatbuffers::CastToArray(origin_); + } + ::flatbuffers::Array *mutable_origin() { + return &::flatbuffers::CastToArray(origin_); + } + uint32_t quantity() const { + return ::flatbuffers::EndianScalar(quantity_); + } + void mutate_quantity(uint32_t _quantity) { + ::flatbuffers::WriteScalar(&quantity_, _quantity); + } +}; +FLATBUFFERS_STRUCT_END(Rice, 8); + +inline bool operator==(const Rice &lhs, const Rice &rhs) { + return + (*lhs.origin() == *rhs.origin()) && + (lhs.quantity() == rhs.quantity()); +} + +inline bool operator!=(const Rice &lhs, const Rice &rhs) { + return !(lhs == rhs); +} + + +FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(4) Grain FLATBUFFERS_FINAL_CLASS { + private: + keyfield::sample::Rice a_[3]; + uint8_t tag_; + int8_t padding0__; int16_t padding1__; + + public: + static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { + return GrainTypeTable(); + } + Grain() + : a_(), + tag_(0), + padding0__(0), + padding1__(0) { + (void)padding0__; + (void)padding1__; + } + Grain(uint8_t _tag) + : a_(), + tag_(::flatbuffers::EndianScalar(_tag)), + padding0__(0), + padding1__(0) { + (void)padding0__; + (void)padding1__; + } + Grain(::flatbuffers::span _a, uint8_t _tag) + : tag_(::flatbuffers::EndianScalar(_tag)), + padding0__(0), + padding1__(0) { + ::flatbuffers::CastToArray(a_).CopyFromSpan(_a); + (void)padding0__; + (void)padding1__; + } + const ::flatbuffers::Array *a() const { + return &::flatbuffers::CastToArray(a_); + } + ::flatbuffers::Array *mutable_a() { + return &::flatbuffers::CastToArray(a_); + } + bool KeyCompareLessThan(const Grain * const o) const { + return KeyCompareWithValue(o->a()) < 0; + } + int KeyCompareWithValue(const ::flatbuffers::Array *_a) const { + const ::flatbuffers::Array *curr_a = a(); + for (::flatbuffers::uoffset_t i = 0; i < curr_a->size(); i++) { + const auto &lhs_a = *(curr_a->Get(i)); + const auto &rhs_a = *(_a->Get(i)); + const auto lhs_a_origin = lhs_a.origin(); + const auto rhs_a_origin = rhs_a.origin(); + for (::flatbuffers::uoffset_t i = 0; i < lhs_a_origin->size(); i++) { + const auto lhs_a_origin_elem = lhs_a_origin->Get(i); + const auto rhs_a_origin_elem = rhs_a_origin->Get(i); + if (lhs_a_origin_elem != rhs_a_origin_elem) + return static_cast(lhs_a_origin_elem > rhs_a_origin_elem) - static_cast(lhs_a_origin_elem < rhs_a_origin_elem); + } + const auto lhs_a_quantity = lhs_a.quantity(); + const auto rhs_a_quantity = rhs_a.quantity(); + if (lhs_a_quantity != rhs_a_quantity) + return static_cast(lhs_a_quantity > rhs_a_quantity) - static_cast(lhs_a_quantity < rhs_a_quantity); + } + return 0; + } + uint8_t tag() const { + return ::flatbuffers::EndianScalar(tag_); + } + void mutate_tag(uint8_t _tag) { + ::flatbuffers::WriteScalar(&tag_, _tag); + } +}; +FLATBUFFERS_STRUCT_END(Grain, 28); + +inline bool operator==(const Grain &lhs, const Grain &rhs) { + return + (*lhs.a() == *rhs.a()) && + (lhs.tag() == rhs.tag()); +} + +inline bool operator!=(const Grain &lhs, const Grain &rhs) { + return !(lhs == rhs); +} + + struct FooTableT : public ::flatbuffers::NativeTable { typedef FooTable TableType; int32_t a = 0; @@ -177,6 +553,9 @@ struct FooTableT : public ::flatbuffers::NativeTable { std::string c{}; std::vector d{}; std::vector e{}; + std::vector f{}; + std::vector g{}; + std::vector h{}; }; struct FooTable FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { @@ -190,7 +569,10 @@ struct FooTable FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { VT_B = 6, VT_C = 8, VT_D = 10, - VT_E = 12 + VT_E = 12, + VT_F = 14, + VT_G = 16, + VT_H = 18 }; int32_t a() const { return GetField(VT_A, 0); @@ -228,6 +610,24 @@ struct FooTable FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { ::flatbuffers::Vector *mutable_e() { return GetPointer<::flatbuffers::Vector *>(VT_E); } + const ::flatbuffers::Vector *f() const { + return GetPointer *>(VT_F); + } + ::flatbuffers::Vector *mutable_f() { + return GetPointer<::flatbuffers::Vector *>(VT_F); + } + const ::flatbuffers::Vector *g() const { + return GetPointer *>(VT_G); + } + ::flatbuffers::Vector *mutable_g() { + return GetPointer<::flatbuffers::Vector *>(VT_G); + } + const ::flatbuffers::Vector *h() const { + return GetPointer *>(VT_H); + } + ::flatbuffers::Vector *mutable_h() { + return GetPointer<::flatbuffers::Vector *>(VT_H); + } bool Verify(::flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_A, 4) && @@ -238,6 +638,12 @@ struct FooTable FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { verifier.VerifyVector(d()) && VerifyOffset(verifier, VT_E) && verifier.VerifyVector(e()) && + VerifyOffset(verifier, VT_F) && + verifier.VerifyVector(f()) && + VerifyOffset(verifier, VT_G) && + verifier.VerifyVector(g()) && + VerifyOffset(verifier, VT_H) && + verifier.VerifyVector(h()) && verifier.EndTable(); } FooTableT *UnPack(const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; @@ -264,6 +670,15 @@ struct FooTableBuilder { void add_e(::flatbuffers::Offset<::flatbuffers::Vector> e) { fbb_.AddOffset(FooTable::VT_E, e); } + void add_f(::flatbuffers::Offset<::flatbuffers::Vector> f) { + fbb_.AddOffset(FooTable::VT_F, f); + } + void add_g(::flatbuffers::Offset<::flatbuffers::Vector> g) { + fbb_.AddOffset(FooTable::VT_G, g); + } + void add_h(::flatbuffers::Offset<::flatbuffers::Vector> h) { + fbb_.AddOffset(FooTable::VT_H, h); + } explicit FooTableBuilder(::flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); @@ -282,8 +697,14 @@ inline ::flatbuffers::Offset CreateFooTable( int32_t b = 0, ::flatbuffers::Offset<::flatbuffers::String> c = 0, ::flatbuffers::Offset<::flatbuffers::Vector> d = 0, - ::flatbuffers::Offset<::flatbuffers::Vector> e = 0) { + ::flatbuffers::Offset<::flatbuffers::Vector> e = 0, + ::flatbuffers::Offset<::flatbuffers::Vector> f = 0, + ::flatbuffers::Offset<::flatbuffers::Vector> g = 0, + ::flatbuffers::Offset<::flatbuffers::Vector> h = 0) { FooTableBuilder builder_(_fbb); + builder_.add_h(h); + builder_.add_g(g); + builder_.add_f(f); builder_.add_e(e); builder_.add_d(d); builder_.add_c(c); @@ -298,17 +719,26 @@ inline ::flatbuffers::Offset CreateFooTableDirect( int32_t b = 0, const char *c = nullptr, std::vector *d = nullptr, - std::vector *e = nullptr) { + std::vector *e = nullptr, + std::vector *f = nullptr, + std::vector *g = nullptr, + std::vector *h = nullptr) { auto c__ = c ? _fbb.CreateString(c) : 0; auto d__ = d ? _fbb.CreateVectorOfSortedStructs(d) : 0; auto e__ = e ? _fbb.CreateVectorOfSortedStructs(e) : 0; + auto f__ = f ? _fbb.CreateVectorOfSortedStructs(f) : 0; + auto g__ = g ? _fbb.CreateVectorOfSortedStructs(g) : 0; + auto h__ = h ? _fbb.CreateVectorOfSortedStructs(h) : 0; return keyfield::sample::CreateFooTable( _fbb, a, b, c__, d__, - e__); + e__, + f__, + g__, + h__); } ::flatbuffers::Offset CreateFooTable(::flatbuffers::FlatBufferBuilder &_fbb, const FooTableT *_o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); @@ -320,7 +750,10 @@ inline bool operator==(const FooTableT &lhs, const FooTableT &rhs) { (lhs.b == rhs.b) && (lhs.c == rhs.c) && (lhs.d == rhs.d) && - (lhs.e == rhs.e); + (lhs.e == rhs.e) && + (lhs.f == rhs.f) && + (lhs.g == rhs.g) && + (lhs.h == rhs.h); } inline bool operator!=(const FooTableT &lhs, const FooTableT &rhs) { @@ -342,6 +775,9 @@ inline void FooTable::UnPackTo(FooTableT *_o, const ::flatbuffers::resolver_func { auto _e = c(); if (_e) _o->c = _e->str(); } { auto _e = d(); if (_e) { _o->d.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->d[_i] = *_e->Get(_i); } } else { _o->d.resize(0); } } { auto _e = e(); if (_e) { _o->e.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->e[_i] = *_e->Get(_i); } } else { _o->e.resize(0); } } + { auto _e = f(); if (_e) { _o->f.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->f[_i] = *_e->Get(_i); } } else { _o->f.resize(0); } } + { auto _e = g(); if (_e) { _o->g.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->g[_i] = *_e->Get(_i); } } else { _o->g.resize(0); } } + { auto _e = h(); if (_e) { _o->h.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->h[_i] = *_e->Get(_i); } } else { _o->h.resize(0); } } } inline ::flatbuffers::Offset FooTable::Pack(::flatbuffers::FlatBufferBuilder &_fbb, const FooTableT* _o, const ::flatbuffers::rehasher_function_t *_rehasher) { @@ -357,13 +793,19 @@ inline ::flatbuffers::Offset CreateFooTable(::flatbuffers::FlatBufferB auto _c = _fbb.CreateString(_o->c); auto _d = _o->d.size() ? _fbb.CreateVectorOfStructs(_o->d) : 0; auto _e = _o->e.size() ? _fbb.CreateVectorOfStructs(_o->e) : 0; + auto _f = _o->f.size() ? _fbb.CreateVectorOfStructs(_o->f) : 0; + auto _g = _o->g.size() ? _fbb.CreateVectorOfStructs(_o->g) : 0; + auto _h = _o->h.size() ? _fbb.CreateVectorOfStructs(_o->h) : 0; return keyfield::sample::CreateFooTable( _fbb, _a, _b, _c, _d, - _e); + _e, + _f, + _g, + _h); } inline const ::flatbuffers::TypeTable *BazTypeTable() { @@ -400,27 +842,128 @@ inline const ::flatbuffers::TypeTable *BarTypeTable() { return &tt; } +inline const ::flatbuffers::TypeTable *ColorTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_FLOAT, 1, -1 }, + { ::flatbuffers::ET_UCHAR, 0, -1 } + }; + static const int16_t array_sizes[] = { 3, }; + static const int64_t values[] = { 0, 12, 16 }; + static const char * const names[] = { + "rgb", + "tag" + }; + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_STRUCT, 2, type_codes, nullptr, array_sizes, values, names + }; + return &tt; +} + +inline const ::flatbuffers::TypeTable *AppleTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_UCHAR, 0, -1 }, + { ::flatbuffers::ET_SEQUENCE, 0, 0 } + }; + static const ::flatbuffers::TypeFunction type_refs[] = { + keyfield::sample::ColorTypeTable + }; + static const int64_t values[] = { 0, 4, 20 }; + static const char * const names[] = { + "tag", + "color" + }; + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_STRUCT, 2, type_codes, type_refs, nullptr, values, names + }; + return &tt; +} + +inline const ::flatbuffers::TypeTable *FruitTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_SEQUENCE, 0, 0 }, + { ::flatbuffers::ET_UCHAR, 0, -1 } + }; + static const ::flatbuffers::TypeFunction type_refs[] = { + keyfield::sample::AppleTypeTable + }; + static const int64_t values[] = { 0, 20, 24 }; + static const char * const names[] = { + "a", + "b" + }; + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_STRUCT, 2, type_codes, type_refs, nullptr, values, names + }; + return &tt; +} + +inline const ::flatbuffers::TypeTable *RiceTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_UCHAR, 1, -1 }, + { ::flatbuffers::ET_UINT, 0, -1 } + }; + static const int16_t array_sizes[] = { 3, }; + static const int64_t values[] = { 0, 4, 8 }; + static const char * const names[] = { + "origin", + "quantity" + }; + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_STRUCT, 2, type_codes, nullptr, array_sizes, values, names + }; + return &tt; +} + +inline const ::flatbuffers::TypeTable *GrainTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_SEQUENCE, 1, 0 }, + { ::flatbuffers::ET_UCHAR, 0, -1 } + }; + static const ::flatbuffers::TypeFunction type_refs[] = { + keyfield::sample::RiceTypeTable + }; + static const int16_t array_sizes[] = { 3, }; + static const int64_t values[] = { 0, 24, 28 }; + static const char * const names[] = { + "a", + "tag" + }; + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_STRUCT, 2, type_codes, type_refs, array_sizes, values, names + }; + return &tt; +} + inline const ::flatbuffers::TypeTable *FooTableTypeTable() { static const ::flatbuffers::TypeCode type_codes[] = { { ::flatbuffers::ET_INT, 0, -1 }, { ::flatbuffers::ET_INT, 0, -1 }, { ::flatbuffers::ET_STRING, 0, -1 }, { ::flatbuffers::ET_SEQUENCE, 1, 0 }, - { ::flatbuffers::ET_SEQUENCE, 1, 1 } + { ::flatbuffers::ET_SEQUENCE, 1, 1 }, + { ::flatbuffers::ET_SEQUENCE, 1, 2 }, + { ::flatbuffers::ET_SEQUENCE, 1, 3 }, + { ::flatbuffers::ET_SEQUENCE, 1, 4 } }; static const ::flatbuffers::TypeFunction type_refs[] = { keyfield::sample::BazTypeTable, - keyfield::sample::BarTypeTable + keyfield::sample::BarTypeTable, + keyfield::sample::AppleTypeTable, + keyfield::sample::FruitTypeTable, + keyfield::sample::GrainTypeTable }; static const char * const names[] = { "a", "b", "c", "d", - "e" + "e", + "f", + "g", + "h" }; static const ::flatbuffers::TypeTable tt = { - ::flatbuffers::ST_TABLE, 5, type_codes, type_refs, nullptr, nullptr, names + ::flatbuffers::ST_TABLE, 8, type_codes, type_refs, nullptr, nullptr, names }; return &tt; } diff --git a/tests/key_field_test.cpp b/tests/key_field_test.cpp index da762d20a5..7194e6d69a 100644 --- a/tests/key_field_test.cpp +++ b/tests/key_field_test.cpp @@ -40,6 +40,7 @@ void FixedSizedScalarKeyInStructTest() { auto t = CreateFooTable(fbb, 1, 2, test_string, baz_vec, bar_vec); + fbb.Finish(t); uint8_t *buf = fbb.GetBufferPointer(); @@ -79,5 +80,146 @@ void FixedSizedScalarKeyInStructTest() { static_cast(nullptr)); } +void StructKeyInStructTest() { + flatbuffers::FlatBufferBuilder fbb; + std::vector apples; + float test_float_array1[3] = { 1.5, 2.5, 0 }; + float test_float_array2[3] = { 7.5, 2.5, 0 }; + float test_float_array3[3] = { 1.5, 2.5, -1 }; + apples.push_back( + Apple(2, Color(flatbuffers::make_span(test_float_array1), 3))); + apples.push_back( + Apple(3, Color(flatbuffers::make_span(test_float_array2), 3))); + apples.push_back( + Apple(1, Color(flatbuffers::make_span(test_float_array3), 1))); + + auto apples_vec = fbb.CreateVectorOfSortedStructs(&apples); + auto test_string = fbb.CreateString("TEST"); + + FooTableBuilder foo_builder(fbb); + foo_builder.add_a(1); + foo_builder.add_c(test_string); + + foo_builder.add_f(apples_vec); + + auto orc = foo_builder.Finish(); + fbb.Finish(orc); + + + uint8_t *buf = fbb.GetBufferPointer(); + auto foo_table = GetFooTable(buf); + + auto sorted_apple_vec = foo_table->f(); + TEST_EQ(sorted_apple_vec->Get(0)->tag(), 1); + TEST_EQ(sorted_apple_vec->Get(1)->tag(), 2); + TEST_EQ(sorted_apple_vec->Get(2)->tag(), 3); + TEST_EQ(sorted_apple_vec + ->LookupByKey(Color(flatbuffers::make_span(test_float_array1), 3)) + ->tag(), + 2); + TEST_EQ(sorted_apple_vec->LookupByKey( + Color(flatbuffers::make_span(test_float_array1), 0)), + static_cast(nullptr)); +} + +void NestedStructKeyInStructTest() { + flatbuffers::FlatBufferBuilder fbb; + std::vector fruits; + float test_float_array1[3] = { 1.5, 2.5, 0 }; + float test_float_array2[3] = { 1.5, 2.5, 0 }; + float test_float_array3[3] = { 1.5, 2.5, -1 }; + + fruits.push_back( + Fruit(Apple(2, Color(flatbuffers::make_span(test_float_array1), 2)), 2)); + fruits.push_back( + Fruit(Apple(2, Color(flatbuffers::make_span(test_float_array2), 1)), 1)); + fruits.push_back( + Fruit(Apple(2, Color(flatbuffers::make_span(test_float_array3), 3)), 3)); + + auto test_string = fbb.CreateString("TEST"); + auto fruits_vec = fbb.CreateVectorOfSortedStructs(&fruits); + + FooTableBuilder foo_builder(fbb); + foo_builder.add_a(1); + foo_builder.add_c(test_string); + foo_builder.add_g(fruits_vec); + + auto orc = foo_builder.Finish(); + fbb.Finish(orc); + uint8_t *buf = fbb.GetBufferPointer(); + auto foo_table = GetFooTable(buf); + + auto sorted_fruit_vec = foo_table->g(); + TEST_EQ(sorted_fruit_vec->Get(0)->b(), 3); + TEST_EQ(sorted_fruit_vec->Get(1)->b(), 1); + TEST_EQ(sorted_fruit_vec->Get(2)->b(), 2); + TEST_EQ(sorted_fruit_vec->LookupByKey(Apple(2, Color(flatbuffers::make_span(test_float_array2), 1)))->b(), 1); + TEST_EQ(sorted_fruit_vec->LookupByKey(Apple(1, Color(flatbuffers::make_span(test_float_array2), 1))), static_cast(nullptr)); + +} + +void FixedSizedStructArrayKeyInStructTest() { + flatbuffers::FlatBufferBuilder fbb; + std::vector grains; + uint8_t test_char_array1[3] = { 'u', 's', 'a' }; + uint8_t test_char_array2[3] = { 'c', 'h', 'n' }; + uint8_t test_char_array3[3] = { 'c', 'h', 'l' }; + uint8_t test_char_array4[3] = { 'f', 'r', 'a' }; + uint8_t test_char_array5[3] = { 'i', 'n', 'd' }; + uint8_t test_char_array6[3] = { 'i', 't', 'a' }; + + Rice test_rice_array1[3] = { + Rice(flatbuffers::make_span(test_char_array1), 2), + Rice(flatbuffers::make_span(test_char_array2), 1), + Rice(flatbuffers::make_span(test_char_array3), 2) + }; + Rice test_rice_array2[3] = { + Rice(flatbuffers::make_span(test_char_array4), 2), + Rice(flatbuffers::make_span(test_char_array5), 1), + Rice(flatbuffers::make_span(test_char_array6), 2) + }; + Rice test_rice_array3[3] = { + Rice(flatbuffers::make_span(test_char_array4), 2), + Rice(flatbuffers::make_span(test_char_array6), 1), + Rice(flatbuffers::make_span(test_char_array1), 2) + }; + + grains.push_back(Grain(flatbuffers::make_span(test_rice_array1), 3)); + grains.push_back(Grain(flatbuffers::make_span(test_rice_array2), 1)); + grains.push_back(Grain(flatbuffers::make_span(test_rice_array3), 2)); + + auto test_string = fbb.CreateString("TEST"); + auto grains_vec = fbb.CreateVectorOfSortedStructs(&grains); + FooTableBuilder foo_builder(fbb); + foo_builder.add_a(1); + foo_builder.add_c(test_string); + foo_builder.add_h(grains_vec); + + auto orc = foo_builder.Finish(); + fbb.Finish(orc); + uint8_t *buf = fbb.GetBufferPointer(); + auto foo_table = GetFooTable(buf); + + auto sorted_grain_vec = foo_table->h(); + TEST_EQ(sorted_grain_vec->Get(0)->tag(), 1); + TEST_EQ(sorted_grain_vec->Get(1)->tag(), 2); + TEST_EQ(sorted_grain_vec->Get(2)->tag(), 3); + TEST_EQ( + sorted_grain_vec->LookupByKey(&flatbuffers::CastToArray(test_rice_array1)) + ->tag(), + 3); + Rice test_rice_array[3] = { Rice(flatbuffers::make_span(test_char_array3), 2), + Rice(flatbuffers::make_span(test_char_array2), 1), + Rice(flatbuffers::make_span(test_char_array1), + 2) }; + TEST_EQ( + sorted_grain_vec->LookupByKey(&flatbuffers::CastToArray(test_rice_array)), + static_cast(nullptr)); + TEST_EQ( + sorted_grain_vec->LookupByKey(&flatbuffers::CastToArray(test_rice_array1)) + ->tag(), + 3); +} + } // namespace tests } // namespace flatbuffers diff --git a/tests/key_field_test.h b/tests/key_field_test.h index 4cc4ddcca6..bfced61a17 100644 --- a/tests/key_field_test.h +++ b/tests/key_field_test.h @@ -5,6 +5,10 @@ namespace flatbuffers { namespace tests { void FixedSizedScalarKeyInStructTest(); +void StructKeyInStructTest(); +void NestedStructKeyInStructTest(); +void FixedSizedStructArrayKeyInStructTest(); + } // namespace tests } // namespace flatbuffers diff --git a/tests/test.cpp b/tests/test.cpp index 0ad755a329..19f9e0da8f 100644 --- a/tests/test.cpp +++ b/tests/test.cpp @@ -1620,6 +1620,9 @@ int FlatBufferTests(const std::string &tests_data_path) { VectorSpanTest(); NativeInlineTableVectorTest(); FixedSizedScalarKeyInStructTest(); + StructKeyInStructTest(); + NestedStructKeyInStructTest(); + FixedSizedStructArrayKeyInStructTest(); return 0; } } // namespace From 34c821f4adbc97723f27998b20e1c86fbf4f5937 Mon Sep 17 00:00:00 2001 From: Khanh Nguyen <44149581+Kn99HN@users.noreply.github.com> Date: Wed, 25 Jan 2023 09:05:48 -0800 Subject: [PATCH 103/571] Refactor languages to use CodeGenerator interface. (#7797) * Refactor to use CodeGenerator interface. - Move code to its own header file to be included in flatc_main.cpp - Refactor code to use CodeGenerator interface for all languages * Format all files * remove lua code generator since it doesn't support bfbs generator * Update CMakeLists file with new idl_gen_*.cpp and idl_gen_*.h files * Add idl_gen_swift header file * Add idl_gen_swift header file and update bazel file * Remove CodeGenerator interface for idl_gen_text.*. Remove comments and extern declaration * Reorder header and implementation files in CMakeLists.txt * Add idl_gen_* header files to implementation files * Update CMakeLists and remove unused import Co-authored-by: Derek Bailey --- CMakeLists.txt | 2 + include/flatbuffers/code_generator.h | 2 +- include/flatbuffers/flatc.h | 4 -- src/BUILD.bazel | 16 +++++ src/flatc_main.cpp | 89 +++++++++++++++++++++++++++- src/idl_gen_binary.cpp | 83 ++++++++++++++++++++++++++ src/idl_gen_binary.h | 32 ++++++++++ src/idl_gen_cpp.cpp | 2 + src/idl_gen_cpp.h | 29 +++++++++ src/idl_gen_csharp.cpp | 47 +++++++++++++++ src/idl_gen_csharp.h | 29 +++++++++ src/idl_gen_dart.cpp | 47 +++++++++++++++ src/idl_gen_dart.h | 29 +++++++++ src/idl_gen_go.cpp | 48 +++++++++++++++ src/idl_gen_go.h | 29 +++++++++ src/idl_gen_java.cpp | 45 ++++++++++++++ src/idl_gen_java.h | 29 +++++++++ src/idl_gen_json_schema.cpp | 53 +++++++++++++++++ src/idl_gen_json_schema.h | 32 ++++++++++ src/idl_gen_kotlin.cpp | 51 ++++++++++++++++ src/idl_gen_kotlin.h | 29 +++++++++ src/idl_gen_lobster.cpp | 52 ++++++++++++++++ src/idl_gen_lobster.h | 29 +++++++++ src/idl_gen_lua.cpp | 50 ++++++++++++++++ src/idl_gen_lua.h | 29 +++++++++ src/idl_gen_php.cpp | 51 ++++++++++++++++ src/idl_gen_php.h | 29 +++++++++ src/idl_gen_python.cpp | 48 +++++++++++++++ src/idl_gen_python.h | 29 +++++++++ src/idl_gen_rust.cpp | 47 +++++++++++++++ src/idl_gen_rust.h | 29 +++++++++ src/idl_gen_swift.cpp | 49 +++++++++++++++ src/idl_gen_swift.h | 29 +++++++++ src/idl_gen_ts.cpp | 46 ++++++++++++++ src/idl_gen_ts.h | 32 ++++++++++ 35 files changed, 1269 insertions(+), 7 deletions(-) create mode 100644 src/idl_gen_binary.cpp create mode 100644 src/idl_gen_binary.h create mode 100644 src/idl_gen_cpp.h create mode 100644 src/idl_gen_csharp.h create mode 100644 src/idl_gen_dart.h create mode 100644 src/idl_gen_go.h create mode 100644 src/idl_gen_java.h create mode 100644 src/idl_gen_json_schema.h create mode 100644 src/idl_gen_kotlin.h create mode 100644 src/idl_gen_lobster.h create mode 100644 src/idl_gen_lua.h create mode 100644 src/idl_gen_php.h create mode 100644 src/idl_gen_python.h create mode 100644 src/idl_gen_rust.h create mode 100644 src/idl_gen_swift.h create mode 100644 src/idl_gen_ts.h diff --git a/CMakeLists.txt b/CMakeLists.txt index 2310c83510..21f1917204 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -168,6 +168,8 @@ set(FlatBuffers_Library_SRCS set(FlatBuffers_Compiler_SRCS ${FlatBuffers_Library_SRCS} + src/idl_gen_binary.cpp + src/idl_gen_text.cpp src/idl_gen_cpp.cpp src/idl_gen_csharp.cpp src/idl_gen_dart.cpp diff --git a/include/flatbuffers/code_generator.h b/include/flatbuffers/code_generator.h index af8292fae5..15baf46bd2 100644 --- a/include/flatbuffers/code_generator.h +++ b/include/flatbuffers/code_generator.h @@ -23,7 +23,7 @@ namespace flatbuffers { -// An code generator interface for producing converting flatbuffer schema into +// A code generator interface for producing converting flatbuffer schema into // code. class CodeGenerator { public: diff --git a/include/flatbuffers/flatc.h b/include/flatbuffers/flatc.h index 4a85961ca0..4fab34cac7 100644 --- a/include/flatbuffers/flatc.h +++ b/include/flatbuffers/flatc.h @@ -31,10 +31,6 @@ namespace flatbuffers { -// TODO(derekbailey): It would be better to define these as normal includes and -// not as extern functions. But this can be done at a later time. -extern std::unique_ptr NewCppCodeGenerator(); - extern void LogCompilerWarn(const std::string &warn); extern void LogCompilerError(const std::string &err); diff --git a/src/BUILD.bazel b/src/BUILD.bazel index d1db07fa08..9f77d7f9ce 100644 --- a/src/BUILD.bazel +++ b/src/BUILD.bazel @@ -68,22 +68,38 @@ cc_library( "bfbs_gen_nim.h", "bfbs_namer.h", "flatc_main.cpp", + "idl_gen_binary.cpp", + "idl_gen_binary.h", "idl_gen_cpp.cpp", + "idl_gen_cpp.h", "idl_gen_csharp.cpp", + "idl_gen_csharp.h", "idl_gen_dart.cpp", + "idl_gen_dart.h", "idl_gen_go.cpp", + "idl_gen_go.h", "idl_gen_grpc.cpp", "idl_gen_java.cpp", + "idl_gen_java.h", "idl_gen_json_schema.cpp", + "idl_gen_json_schema.h", "idl_gen_kotlin.cpp", + "idl_gen_kotlin.h", "idl_gen_lobster.cpp", + "idl_gen_lobster.h", "idl_gen_lua.cpp", + "idl_gen_lua.h", "idl_gen_php.cpp", + "idl_gen_php.h", "idl_gen_python.cpp", + "idl_gen_python.h", "idl_gen_rust.cpp", + "idl_gen_rust.h", "idl_gen_swift.cpp", + "idl_gen_swift.h", "idl_gen_text.cpp", "idl_gen_ts.cpp", + "idl_gen_ts.h", "idl_namer.h", "namer.h", "util.cpp", diff --git a/src/flatc_main.cpp b/src/flatc_main.cpp index 5092c29fd3..a2794a23aa 100644 --- a/src/flatc_main.cpp +++ b/src/flatc_main.cpp @@ -23,8 +23,20 @@ #include "flatbuffers/code_generator.h" #include "flatbuffers/flatc.h" #include "flatbuffers/util.h" - - +#include "idl_gen_binary.h" +#include "idl_gen_cpp.h" +#include "idl_gen_csharp.h" +#include "idl_gen_dart.h" +#include "idl_gen_go.h" +#include "idl_gen_java.h" +#include "idl_gen_json_schema.h" +#include "idl_gen_kotlin.h" +#include "idl_gen_lobster.h" +#include "idl_gen_php.h" +#include "idl_gen_python.h" +#include "idl_gen_rust.h" +#include "idl_gen_swift.h" +#include "idl_gen_ts.h" static const char *g_program_name = nullptr; @@ -162,12 +174,85 @@ int main(int argc, const char *argv[]) { flatbuffers::FlatCompiler flatc(params); + std::shared_ptr binary_generator = + flatbuffers::NewBinaryCodeGenerator(); + std::shared_ptr cpp_generator = flatbuffers::NewCppCodeGenerator(); + std::shared_ptr csharp_generator = + flatbuffers::NewCSharpCodeGenerator(); + + std::shared_ptr dart_generator = + flatbuffers::NewDartCodeGenerator(); + + std::shared_ptr go_generator = + flatbuffers::NewGoCodeGenerator(); + + std::shared_ptr java_generator = + flatbuffers::NewJavaCodeGenerator(); + + std::shared_ptr json_schema_generator = + flatbuffers::NewJsonSchemaCodeGenerator(); + + std::shared_ptr kotlin_generator = + flatbuffers::NewKotlinCodeGenerator(); + + std::shared_ptr lobster_generator = + flatbuffers::NewLobsterCodeGenerator(); + + std::shared_ptr php_generator = + flatbuffers::NewPhpCodeGenerator(); + + std::shared_ptr python_generator = + flatbuffers::NewPythonCodeGenerator(); + + std::shared_ptr rust_generator = + flatbuffers::NewRustCodeGenerator(); + + std::shared_ptr swift_generator = + flatbuffers::NewSwiftCodeGenerator(); + + std::shared_ptr ts_generator = + flatbuffers::NewTsCodeGenerator(); + + flatc.RegisterCodeGenerator("--binary", binary_generator); + flatc.RegisterCodeGenerator("-b", binary_generator); + flatc.RegisterCodeGenerator("--cpp", cpp_generator); flatc.RegisterCodeGenerator("-c", cpp_generator); + flatc.RegisterCodeGenerator("--csharp", csharp_generator); + flatc.RegisterCodeGenerator("-n", csharp_generator); + + flatc.RegisterCodeGenerator("--dart", dart_generator); + flatc.RegisterCodeGenerator("-d", dart_generator); + + flatc.RegisterCodeGenerator("--go", go_generator); + flatc.RegisterCodeGenerator("-g", go_generator); + + flatc.RegisterCodeGenerator("--java", java_generator); + flatc.RegisterCodeGenerator("-j", java_generator); + + flatc.RegisterCodeGenerator("--jsonschema", json_schema_generator); + + flatc.RegisterCodeGenerator("--kotlin", kotlin_generator); + + flatc.RegisterCodeGenerator("--lobster", lobster_generator); + + flatc.RegisterCodeGenerator("--php", php_generator); + + flatc.RegisterCodeGenerator("--python", python_generator); + flatc.RegisterCodeGenerator("-p", python_generator); + + flatc.RegisterCodeGenerator("--rust", rust_generator); + flatc.RegisterCodeGenerator("-r", rust_generator); + + flatc.RegisterCodeGenerator("--swift", rust_generator); + + flatc.RegisterCodeGenerator("--ts", ts_generator); + flatc.RegisterCodeGenerator("-T", ts_generator); + // Create the FlatC options by parsing the command line arguments. const flatbuffers::FlatCOptions &options = flatc.ParseFromCommandLineArguments(argc, argv); diff --git a/src/idl_gen_binary.cpp b/src/idl_gen_binary.cpp new file mode 100644 index 0000000000..a4ecd0def3 --- /dev/null +++ b/src/idl_gen_binary.cpp @@ -0,0 +1,83 @@ +/* + * Copyright 2014 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. + */ + +// independent from idl_parser, since this code is not needed for most clients + +#include "idl_gen_binary.h" + +#include +#include +#include +#include + +#include "flatbuffers/base.h" +#include "flatbuffers/code_generators.h" +#include "flatbuffers/flatbuffers.h" +#include "flatbuffers/flatc.h" +#include "flatbuffers/idl.h" +#include "flatbuffers/util.h" + +namespace flatbuffers { + +namespace { + +class BinaryCodeGenerator : public CodeGenerator { + public: + Status GenerateCode(const Parser &parser, const std::string &path, + const std::string &filename) override { + if (!GenerateBinary(parser, path, filename)) { return Status::ERROR; } + return Status::OK; + } + + // Generate code from the provided `buffer` of given `length`. The buffer is a + // serialized reflection.fbs. + Status GenerateCode(const uint8_t *buffer, int64_t length) override { + (void)buffer; + (void)length; + return Status::NOT_IMPLEMENTED; + } + + Status GenerateMakeRule(const Parser &parser, const std::string &path, + const std::string &filename, + std::string &output) override { + output = BinaryMakeRule(parser, path, filename); + return Status::OK; + } + + Status GenerateGrpcCode(const Parser &parser, const std::string &path, + const std::string &filename) override { + (void)parser; + (void)path; + (void)filename; + return Status::NOT_IMPLEMENTED; + } + + bool IsSchemaOnly() const override { return false; } + + bool SupportsBfbsGeneration() const override { return false; } + + IDLOptions::Language Language() const override { return IDLOptions::kBinary; } + + std::string LanguageName() const override { return "binary"; } +}; + +} // namespace + +std::unique_ptr NewBinaryCodeGenerator() { + return std::unique_ptr(new BinaryCodeGenerator()); +} + +} // namespace flatbuffers diff --git a/src/idl_gen_binary.h b/src/idl_gen_binary.h new file mode 100644 index 0000000000..a7c93b9d9b --- /dev/null +++ b/src/idl_gen_binary.h @@ -0,0 +1,32 @@ +/* + * Copyright 2023 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. + */ + +#ifndef FLATBUFFERS_IDL_GEN_BINARY_H_ +#define FLATBUFFERS_IDL_GEN_BINARY_H_ + +#include +#include + +#include "flatbuffers/code_generator.h" + +namespace flatbuffers { + +// Constructs a new Binary code generator. +std::unique_ptr NewBinaryCodeGenerator(); + +} // namespace flatbuffers + +#endif // FLATBUFFERS_IDL_GEN_BINARY_H_ diff --git a/src/idl_gen_cpp.cpp b/src/idl_gen_cpp.cpp index 970709d0e8..a1eb6f9eea 100644 --- a/src/idl_gen_cpp.cpp +++ b/src/idl_gen_cpp.cpp @@ -16,6 +16,8 @@ // independent from idl_parser, since this code is not needed for most clients +#include "idl_gen_cpp.h" + #include #include #include diff --git a/src/idl_gen_cpp.h b/src/idl_gen_cpp.h new file mode 100644 index 0000000000..fcca063a8f --- /dev/null +++ b/src/idl_gen_cpp.h @@ -0,0 +1,29 @@ +/* + * Copyright 2023 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. + */ + +#ifndef FLATBUFFERS_IDL_GEN_CPP_H_ +#define FLATBUFFERS_IDL_GEN_CPP_H_ + +#include "flatbuffers/code_generator.h" + +namespace flatbuffers { + +// Constructs a new Cpp code generator. +std::unique_ptr NewCppCodeGenerator(); + +} // namespace flatbuffers + +#endif // FLATBUFFERS_IDL_GEN_CPP_H_ diff --git a/src/idl_gen_csharp.cpp b/src/idl_gen_csharp.cpp index 18db605308..2811727bf2 100644 --- a/src/idl_gen_csharp.cpp +++ b/src/idl_gen_csharp.cpp @@ -16,6 +16,8 @@ // independent from idl_parser, since this code is not needed for most clients +#include "idl_gen_csharp.h" + #include #include "flatbuffers/code_generators.h" @@ -2256,4 +2258,49 @@ bool GenerateCSharp(const Parser &parser, const std::string &path, return generator.generate(); } +namespace { + +class CSharpCodeGenerator : public CodeGenerator { + public: + Status GenerateCode(const Parser &parser, const std::string &path, + const std::string &filename) override { + if (!GenerateCSharp(parser, path, filename)) { return Status::ERROR; } + return Status::OK; + } + + Status GenerateCode(const uint8_t *buffer, int64_t length) override { + (void)buffer; + (void)length; + return Status::NOT_IMPLEMENTED; + } + + Status GenerateMakeRule(const Parser &parser, const std::string &path, + const std::string &filename, + std::string &output) override { + output = CSharpMakeRule(parser, path, filename); + return Status::OK; + } + + Status GenerateGrpcCode(const Parser &parser, const std::string &path, + const std::string &filename) override { + (void)parser; + (void)path; + (void)filename; + return Status::NOT_IMPLEMENTED; + } + + bool IsSchemaOnly() const override { return true; } + + bool SupportsBfbsGeneration() const override { return false; } + + IDLOptions::Language Language() const override { return IDLOptions::kCSharp; } + + std::string LanguageName() const override { return "CSharp"; } +}; +} // namespace + +std::unique_ptr NewCSharpCodeGenerator() { + return std::unique_ptr(new CSharpCodeGenerator()); +} + } // namespace flatbuffers diff --git a/src/idl_gen_csharp.h b/src/idl_gen_csharp.h new file mode 100644 index 0000000000..f5895a9369 --- /dev/null +++ b/src/idl_gen_csharp.h @@ -0,0 +1,29 @@ +/* + * Copyright 2023 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. + */ + +#ifndef FLATBUFFERS_IDL_GEN_CSHARP_H_ +#define FLATBUFFERS_IDL_GEN_CSHARP_H_ + +#include "flatbuffers/code_generator.h" + +namespace flatbuffers { + +// Constructs a new CSharp code generator. +std::unique_ptr NewCSharpCodeGenerator(); + +} // namespace flatbuffers + +#endif // FLATBUFFERS_IDL_GEN_CSHARP_H_ diff --git a/src/idl_gen_dart.cpp b/src/idl_gen_dart.cpp index ed144a5247..93f18094b7 100644 --- a/src/idl_gen_dart.cpp +++ b/src/idl_gen_dart.cpp @@ -15,6 +15,8 @@ */ // independent from idl_parser, since this code is not needed for most clients +#include "idl_gen_dart.h" + #include #include @@ -1142,4 +1144,49 @@ std::string DartMakeRule(const Parser &parser, const std::string &path, return make_rule; } +namespace { + +class DartCodeGenerator : public CodeGenerator { + public: + Status GenerateCode(const Parser &parser, const std::string &path, + const std::string &filename) override { + if (!GenerateDart(parser, path, filename)) { return Status::ERROR; } + return Status::OK; + } + + Status GenerateCode(const uint8_t *buffer, int64_t length) override { + (void)buffer; + (void)length; + return Status::NOT_IMPLEMENTED; + } + + Status GenerateMakeRule(const Parser &parser, const std::string &path, + const std::string &filename, + std::string &output) override { + output = DartMakeRule(parser, path, filename); + return Status::OK; + } + + Status GenerateGrpcCode(const Parser &parser, const std::string &path, + const std::string &filename) override { + (void)parser; + (void)path; + (void)filename; + return Status::NOT_IMPLEMENTED; + } + + bool IsSchemaOnly() const override { return true; } + + bool SupportsBfbsGeneration() const override { return false; } + + IDLOptions::Language Language() const override { return IDLOptions::kDart; } + + std::string LanguageName() const override { return "Dart"; } +}; +} // namespace + +std::unique_ptr NewDartCodeGenerator() { + return std::unique_ptr(new DartCodeGenerator()); +} + } // namespace flatbuffers diff --git a/src/idl_gen_dart.h b/src/idl_gen_dart.h new file mode 100644 index 0000000000..efaa08e39b --- /dev/null +++ b/src/idl_gen_dart.h @@ -0,0 +1,29 @@ +/* + * Copyright 2023 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. + */ + +#ifndef FLATBUFFERS_IDL_GEN_DART_H_ +#define FLATBUFFERS_IDL_GEN_DART_H_ + +#include "flatbuffers/code_generator.h" + +namespace flatbuffers { + +// Constructs a new Dart code generator. +std::unique_ptr NewDartCodeGenerator(); + +} // namespace flatbuffers + +#endif // FLATBUFFERS_IDL_GEN_DART_H_ diff --git a/src/idl_gen_go.cpp b/src/idl_gen_go.cpp index cec065e25c..a293f9df47 100644 --- a/src/idl_gen_go.cpp +++ b/src/idl_gen_go.cpp @@ -16,6 +16,8 @@ // independent from idl_parser, since this code is not needed for most clients +#include "idl_gen_go.h" + #include #include #include @@ -1581,4 +1583,50 @@ bool GenerateGo(const Parser &parser, const std::string &path, return generator.generate(); } +namespace { + +class GoCodeGenerator : public CodeGenerator { + public: + Status GenerateCode(const Parser &parser, const std::string &path, + const std::string &filename) override { + if (!GenerateGo(parser, path, filename)) { return Status::ERROR; } + return Status::OK; + } + + Status GenerateCode(const uint8_t *buffer, int64_t length) override { + (void)buffer; + (void)length; + return Status::NOT_IMPLEMENTED; + } + + Status GenerateMakeRule(const Parser &parser, const std::string &path, + const std::string &filename, + std::string &output) override { + (void)parser; + (void)path; + (void)filename; + (void)output; + return Status::NOT_IMPLEMENTED; + } + + Status GenerateGrpcCode(const Parser &parser, const std::string &path, + const std::string &filename) override { + if (!GenerateGoGRPC(parser, path, filename)) { return Status::ERROR; } + return Status::OK; + } + + bool IsSchemaOnly() const override { return true; } + + bool SupportsBfbsGeneration() const override { return false; } + + IDLOptions::Language Language() const override { return IDLOptions::kGo; } + + std::string LanguageName() const override { return "Go"; } +}; +} // namespace + +std::unique_ptr NewGoCodeGenerator() { + return std::unique_ptr(new GoCodeGenerator()); +} + } // namespace flatbuffers diff --git a/src/idl_gen_go.h b/src/idl_gen_go.h new file mode 100644 index 0000000000..d81c1ff650 --- /dev/null +++ b/src/idl_gen_go.h @@ -0,0 +1,29 @@ +/* + * Copyright 2023 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. + */ + +#ifndef FLATBUFFERS_IDL_GEN_GO_H_ +#define FLATBUFFERS_IDL_GEN_GO_H_ + +#include "flatbuffers/code_generator.h" + +namespace flatbuffers { + +// Constructs a new Go code generator. +std::unique_ptr NewGoCodeGenerator(); + +} // namespace flatbuffers + +#endif // FLATBUFFERS_IDL_GEN_GO_H_ diff --git a/src/idl_gen_java.cpp b/src/idl_gen_java.cpp index c2c25ab15c..66ccc5c9de 100644 --- a/src/idl_gen_java.cpp +++ b/src/idl_gen_java.cpp @@ -16,6 +16,8 @@ // independent from idl_parser, since this code is not needed for most clients +#include "idl_gen_java.h" + #include "flatbuffers/code_generators.h" #include "flatbuffers/flatbuffers.h" #include "flatbuffers/idl.h" @@ -2167,4 +2169,47 @@ bool GenerateJava(const Parser &parser, const std::string &path, return generator.generate(); } +namespace { + +class JavaCodeGenerator : public CodeGenerator { + public: + Status GenerateCode(const Parser &parser, const std::string &path, + const std::string &filename) override { + if (!GenerateJava(parser, path, filename)) { return Status::ERROR; } + return Status::OK; + } + + Status GenerateCode(const uint8_t *buffer, int64_t length) override { + (void)buffer; + (void)length; + return Status::NOT_IMPLEMENTED; + } + + Status GenerateMakeRule(const Parser &parser, const std::string &path, + const std::string &filename, + std::string &output) override { + output = JavaMakeRule(parser, path, filename); + return Status::OK; + } + + Status GenerateGrpcCode(const Parser &parser, const std::string &path, + const std::string &filename) override { + if (!GenerateJavaGRPC(parser, path, filename)) { return Status::ERROR; } + return Status::OK; + } + + bool IsSchemaOnly() const override { return true; } + + bool SupportsBfbsGeneration() const override { return false; } + + IDLOptions::Language Language() const override { return IDLOptions::kJava; } + + std::string LanguageName() const override { return "Java"; } +}; +} // namespace + +std::unique_ptr NewJavaCodeGenerator() { + return std::unique_ptr(new JavaCodeGenerator()); +} + } // namespace flatbuffers diff --git a/src/idl_gen_java.h b/src/idl_gen_java.h new file mode 100644 index 0000000000..20798a4484 --- /dev/null +++ b/src/idl_gen_java.h @@ -0,0 +1,29 @@ +/* + * Copyright 2023 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. + */ + +#ifndef FLATBUFFERS_IDL_GEN_JAVA_H_ +#define FLATBUFFERS_IDL_GEN_JAVA_H_ + +#include "flatbuffers/code_generator.h" + +namespace flatbuffers { + +// Constructs a new Java code generator. +std::unique_ptr NewJavaCodeGenerator(); + +} // namespace flatbuffers + +#endif // FLATBUFFERS_IDL_GEN_JAVA_H_ diff --git a/src/idl_gen_json_schema.cpp b/src/idl_gen_json_schema.cpp index 796d1e20ca..27d6381d25 100644 --- a/src/idl_gen_json_schema.cpp +++ b/src/idl_gen_json_schema.cpp @@ -14,6 +14,8 @@ * limitations under the License. */ +#include "idl_gen_json_schema.h" + #include #include #include @@ -330,4 +332,55 @@ bool GenerateJsonSchema(const Parser &parser, std::string *json) { *json = generator.getJson(); return true; } + +namespace { + +class JsonSchemaCodeGenerator : public CodeGenerator { + public: + Status GenerateCode(const Parser &parser, const std::string &path, + const std::string &filename) override { + if (!GenerateJsonSchema(parser, path, filename)) { return Status::ERROR; } + return Status::OK; + } + + Status GenerateCode(const uint8_t *buffer, int64_t length) override { + (void)buffer; + (void)length; + return Status::NOT_IMPLEMENTED; + } + + Status GenerateMakeRule(const Parser &parser, const std::string &path, + const std::string &filename, + std::string &output) override { + (void)parser; + (void)path; + (void)filename; + (void)output; + return Status::NOT_IMPLEMENTED; + } + + Status GenerateGrpcCode(const Parser &parser, const std::string &path, + const std::string &filename) override { + (void)parser; + (void)path; + (void)filename; + return Status::NOT_IMPLEMENTED; + } + + bool IsSchemaOnly() const override { return true; } + + bool SupportsBfbsGeneration() const override { return false; } + + IDLOptions::Language Language() const override { + return IDLOptions::kJsonSchema; + } + + std::string LanguageName() const override { return "JsonSchema"; } +}; +} // namespace + +std::unique_ptr NewJsonSchemaCodeGenerator() { + return std::unique_ptr( + new JsonSchemaCodeGenerator()); +} } // namespace flatbuffers diff --git a/src/idl_gen_json_schema.h b/src/idl_gen_json_schema.h new file mode 100644 index 0000000000..37a7a09569 --- /dev/null +++ b/src/idl_gen_json_schema.h @@ -0,0 +1,32 @@ +/* + * Copyright 2023 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. + */ + +#ifndef FLATBUFFERS_IDL_GEN_JSON_SCHEMA_H_ +#define FLATBUFFERS_IDL_GEN_JSON_SCHEMA_H_ + +#include +#include + +#include "flatbuffers/code_generator.h" + +namespace flatbuffers { + +// Constructs a new JsonSchema Code generator. +std::unique_ptr NewJsonSchemaCodeGenerator(); + +} // namespace flatbuffers + +#endif // FLATBUFFERS_IDL_GEN_JSON_SCHEMA_H_ diff --git a/src/idl_gen_kotlin.cpp b/src/idl_gen_kotlin.cpp index 7a23e77b5a..84d817d9c8 100644 --- a/src/idl_gen_kotlin.cpp +++ b/src/idl_gen_kotlin.cpp @@ -16,6 +16,8 @@ // independent from idl_parser, since this code is not needed for most clients +#include "idl_gen_kotlin.h" + #include #include @@ -1595,4 +1597,53 @@ bool GenerateKotlin(const Parser &parser, const std::string &path, kotlin::KotlinGenerator generator(parser, path, file_name); return generator.generate(); } + +namespace { + +class KotlinCodeGenerator : public CodeGenerator { + public: + Status GenerateCode(const Parser &parser, const std::string &path, + const std::string &filename) override { + if (!GenerateKotlin(parser, path, filename)) { return Status::ERROR; } + return Status::OK; + } + + Status GenerateCode(const uint8_t *buffer, int64_t length) override { + (void)buffer; + (void)length; + return Status::NOT_IMPLEMENTED; + } + + Status GenerateMakeRule(const Parser &parser, const std::string &path, + const std::string &filename, + std::string &output) override { + (void)parser; + (void)path; + (void)filename; + (void)output; + return Status::NOT_IMPLEMENTED; + } + + Status GenerateGrpcCode(const Parser &parser, const std::string &path, + const std::string &filename) override { + (void)parser; + (void)path; + (void)filename; + return Status::NOT_IMPLEMENTED; + } + + bool IsSchemaOnly() const override { return true; } + + bool SupportsBfbsGeneration() const override { return false; } + + IDLOptions::Language Language() const override { return IDLOptions::kKotlin; } + + std::string LanguageName() const override { return "Kotlin"; } +}; +} // namespace + +std::unique_ptr NewKotlinCodeGenerator() { + return std::unique_ptr(new KotlinCodeGenerator()); +} + } // namespace flatbuffers diff --git a/src/idl_gen_kotlin.h b/src/idl_gen_kotlin.h new file mode 100644 index 0000000000..22d8ff6ca3 --- /dev/null +++ b/src/idl_gen_kotlin.h @@ -0,0 +1,29 @@ +/* + * Copyright 2023 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. + */ + +#ifndef FLATBUFFERS_IDL_GEN_KOTLIN_H_ +#define FLATBUFFERS_IDL_GEN_KOTLIN_H_ + +#include "flatbuffers/code_generator.h" + +namespace flatbuffers { + +// Constructs a new Kotlin code generator. +std::unique_ptr NewKotlinCodeGenerator(); + +} // namespace flatbuffers + +#endif // FLATBUFFERS_IDL_GEN_KOTLIN_H_ diff --git a/src/idl_gen_lobster.cpp b/src/idl_gen_lobster.cpp index 67830f3bb3..6cedceeb6d 100644 --- a/src/idl_gen_lobster.cpp +++ b/src/idl_gen_lobster.cpp @@ -14,6 +14,8 @@ * limitations under the License. */ +#include "idl_gen_lobster.h" + #include #include @@ -402,4 +404,54 @@ bool GenerateLobster(const Parser &parser, const std::string &path, return generator.generate(); } +namespace { + +class LobsterCodeGenerator : public CodeGenerator { + public: + Status GenerateCode(const Parser &parser, const std::string &path, + const std::string &filename) override { + if (!GenerateLobster(parser, path, filename)) { return Status::ERROR; } + return Status::OK; + } + + Status GenerateCode(const uint8_t *buffer, int64_t length) override { + (void)buffer; + (void)length; + return Status::NOT_IMPLEMENTED; + } + + Status GenerateMakeRule(const Parser &parser, const std::string &path, + const std::string &filename, + std::string &output) override { + (void)parser; + (void)path; + (void)filename; + (void)output; + return Status::NOT_IMPLEMENTED; + } + + Status GenerateGrpcCode(const Parser &parser, const std::string &path, + const std::string &filename) override { + (void)parser; + (void)path; + (void)filename; + return Status::NOT_IMPLEMENTED; + } + + bool IsSchemaOnly() const override { return true; } + + bool SupportsBfbsGeneration() const override { return false; } + + IDLOptions::Language Language() const override { + return IDLOptions::kLobster; + } + + std::string LanguageName() const override { return "Lobster"; } +}; +} // namespace + +std::unique_ptr NewLobsterCodeGenerator() { + return std::unique_ptr(new LobsterCodeGenerator()); +} + } // namespace flatbuffers diff --git a/src/idl_gen_lobster.h b/src/idl_gen_lobster.h new file mode 100644 index 0000000000..284303edce --- /dev/null +++ b/src/idl_gen_lobster.h @@ -0,0 +1,29 @@ +/* + * Copyright 2023 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. + */ + +#ifndef FLATBUFFERS_IDL_GEN_LOBSTER_H_ +#define FLATBUFFERS_IDL_GEN_LOBSTER_H_ + +#include "flatbuffers/code_generator.h" + +namespace flatbuffers { + +// Constructs a new Lobster code generator. +std::unique_ptr NewLobsterCodeGenerator(); + +} // namespace flatbuffers + +#endif // FLATBUFFERS_IDL_GEN_LOBSTER_H_ diff --git a/src/idl_gen_lua.cpp b/src/idl_gen_lua.cpp index 7be00154c5..3ce593d7ba 100644 --- a/src/idl_gen_lua.cpp +++ b/src/idl_gen_lua.cpp @@ -16,6 +16,8 @@ // independent from idl_parser, since this code is not needed for most clients +#include "idl_gen_lua.h" + #include #include @@ -744,4 +746,52 @@ bool GenerateLua(const Parser &parser, const std::string &path, return generator.generate(); } +namespace { + +class LuaCodeGenerator : public CodeGenerator { + public: + Status GenerateCode(const Parser &parser, const std::string &path, + const std::string &filename) override { + if (!GenerateLua(parser, path, filename)) { return Status::ERROR; } + return Status::OK; + } + + Status GenerateCode(const uint8_t *buffer, int64_t length) override { + (void)buffer; + (void)length; + return Status::NOT_IMPLEMENTED; + } + + Status GenerateMakeRule(const Parser &parser, const std::string &path, + const std::string &filename, + std::string &output) override { + (void)parser; + (void)path; + (void)filename; + (void)output; + return Status::NOT_IMPLEMENTED; + } + + Status GenerateGrpcCode(const Parser &parser, const std::string &path, + const std::string &filename) override { + (void)parser; + (void)path; + (void)filename; + return Status::NOT_IMPLEMENTED; + } + + bool IsSchemaOnly() const override { return true; } + + bool SupportsBfbsGeneration() const override { return true; } + + IDLOptions::Language Language() const override { return IDLOptions::kLua; } + + std::string LanguageName() const override { return "Lua"; } +}; +} // namespace + +std::unique_ptr NewLuaCodeGenerator() { + return std::unique_ptr(new LuaCodeGenerator()); +} + } // namespace flatbuffers diff --git a/src/idl_gen_lua.h b/src/idl_gen_lua.h new file mode 100644 index 0000000000..43974a8c33 --- /dev/null +++ b/src/idl_gen_lua.h @@ -0,0 +1,29 @@ +/* + * Copyright 2023 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. + */ + +#ifndef FLATBUFFERS_IDL_GEN_LUA_H_ +#define FLATBUFFERS_IDL_GEN_LUA_H_ + +#include "flatbuffers/code_generator.h" + +namespace flatbuffers { + +// Constructs a new Lua code generator. +std::unique_ptr NewLuaCodeGenerator(); + +} // namespace flatbuffers + +#endif // FLATBUFFERS_IDL_GEN_LUA_H_ diff --git a/src/idl_gen_php.cpp b/src/idl_gen_php.cpp index 5896935e6d..ba8c1633f2 100644 --- a/src/idl_gen_php.cpp +++ b/src/idl_gen_php.cpp @@ -16,6 +16,8 @@ // independent from idl_parser, since this code is not needed for most clients +#include "idl_gen_php.h" + #include #include "flatbuffers/code_generators.h" @@ -942,4 +944,53 @@ bool GeneratePhp(const Parser &parser, const std::string &path, php::PhpGenerator generator(parser, path, file_name); return generator.generate(); } + +namespace { + +class PhpCodeGenerator : public CodeGenerator { + public: + Status GenerateCode(const Parser &parser, const std::string &path, + const std::string &filename) override { + if (!GeneratePhp(parser, path, filename)) { return Status::ERROR; } + return Status::OK; + } + + Status GenerateCode(const uint8_t *buffer, int64_t length) override { + (void)buffer; + (void)length; + return Status::NOT_IMPLEMENTED; + } + + Status GenerateMakeRule(const Parser &parser, const std::string &path, + const std::string &filename, + std::string &output) override { + (void)parser; + (void)path; + (void)filename; + (void)output; + return Status::NOT_IMPLEMENTED; + } + + Status GenerateGrpcCode(const Parser &parser, const std::string &path, + const std::string &filename) override { + (void)parser; + (void)path; + (void)filename; + return Status::NOT_IMPLEMENTED; + } + + bool IsSchemaOnly() const override { return true; } + + bool SupportsBfbsGeneration() const override { return false; } + + IDLOptions::Language Language() const override { return IDLOptions::kPhp; } + + std::string LanguageName() const override { return "Php"; } +}; +} // namespace + +std::unique_ptr NewPhpCodeGenerator() { + return std::unique_ptr(new PhpCodeGenerator()); +} + } // namespace flatbuffers diff --git a/src/idl_gen_php.h b/src/idl_gen_php.h new file mode 100644 index 0000000000..8695ec9936 --- /dev/null +++ b/src/idl_gen_php.h @@ -0,0 +1,29 @@ +/* + * Copyright 2023 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. + */ + +#ifndef FLATBUFFERS_IDL_GEN_PHP_H_ +#define FLATBUFFERS_IDL_GEN_PHP_H_ + +#include "flatbuffers/code_generator.h" + +namespace flatbuffers { + +// Constructs a new Php code generator. +std::unique_ptr NewPhpCodeGenerator(); + +} // namespace flatbuffers + +#endif // FLATBUFFERS_IDL_GEN_PHP_H_ diff --git a/src/idl_gen_python.cpp b/src/idl_gen_python.cpp index 76d3dfe9bb..222c0faa6f 100644 --- a/src/idl_gen_python.cpp +++ b/src/idl_gen_python.cpp @@ -16,6 +16,8 @@ // independent from idl_parser, since this code is not needed for most clients +#include "idl_gen_python.h" + #include #include #include @@ -1912,4 +1914,50 @@ bool GeneratePython(const Parser &parser, const std::string &path, return generator.generate(); } +namespace { + +class PythonCodeGenerator : public CodeGenerator { + public: + Status GenerateCode(const Parser &parser, const std::string &path, + const std::string &filename) override { + if (!GeneratePython(parser, path, filename)) { return Status::ERROR; } + return Status::OK; + } + + Status GenerateCode(const uint8_t *buffer, int64_t length) override { + (void)buffer; + (void)length; + return Status::NOT_IMPLEMENTED; + } + + Status GenerateMakeRule(const Parser &parser, const std::string &path, + const std::string &filename, + std::string &output) override { + (void)parser; + (void)path; + (void)filename; + (void)output; + return Status::NOT_IMPLEMENTED; + } + + Status GenerateGrpcCode(const Parser &parser, const std::string &path, + const std::string &filename) override { + if (!GeneratePythonGRPC(parser, path, filename)) { return Status::ERROR; } + return Status::OK; + } + + bool IsSchemaOnly() const override { return true; } + + bool SupportsBfbsGeneration() const override { return false; } + + IDLOptions::Language Language() const override { return IDLOptions::kPython; } + + std::string LanguageName() const override { return "Python"; } +}; +} // namespace + +std::unique_ptr NewPythonCodeGenerator() { + return std::unique_ptr(new PythonCodeGenerator()); +} + } // namespace flatbuffers diff --git a/src/idl_gen_python.h b/src/idl_gen_python.h new file mode 100644 index 0000000000..cd0cf9f4fd --- /dev/null +++ b/src/idl_gen_python.h @@ -0,0 +1,29 @@ +/* + * Copyright 2023 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. + */ + +#ifndef FLATBUFFERS_IDL_GEN_PYTHON_H_ +#define FLATBUFFERS_IDL_GEN_PYTHON_H_ + +#include "flatbuffers/code_generator.h" + +namespace flatbuffers { + +// Constructs a new Python code generator. +std::unique_ptr NewPythonCodeGenerator(); + +} // namespace flatbuffers + +#endif // FLATBUFFERS_IDL_GEN_PYTHON_H_ diff --git a/src/idl_gen_rust.cpp b/src/idl_gen_rust.cpp index 4ea9122ee8..7a5e4a534e 100644 --- a/src/idl_gen_rust.cpp +++ b/src/idl_gen_rust.cpp @@ -16,6 +16,8 @@ // independent from idl_parser, since this code is not needed for most clients +#include "idl_gen_rust.h" + #include #include "flatbuffers/code_generators.h" @@ -3008,6 +3010,51 @@ std::string RustMakeRule(const Parser &parser, const std::string &path, return make_rule; } +namespace { + +class RustCodeGenerator : public CodeGenerator { + public: + Status GenerateCode(const Parser &parser, const std::string &path, + const std::string &filename) override { + if (!GenerateRust(parser, path, filename)) { return Status::ERROR; } + return Status::OK; + } + + Status GenerateCode(const uint8_t *buffer, int64_t length) override { + (void)buffer; + (void)length; + return Status::NOT_IMPLEMENTED; + } + + Status GenerateMakeRule(const Parser &parser, const std::string &path, + const std::string &filename, + std::string &output) override { + output = RustMakeRule(parser, path, filename); + return Status::OK; + } + + Status GenerateGrpcCode(const Parser &parser, const std::string &path, + const std::string &filename) override { + (void)parser; + (void)path; + (void)filename; + return Status::NOT_IMPLEMENTED; + } + + bool IsSchemaOnly() const override { return true; } + + bool SupportsBfbsGeneration() const override { return false; } + + IDLOptions::Language Language() const override { return IDLOptions::kRust; } + + std::string LanguageName() const override { return "Rust"; } +}; +} // namespace + +std::unique_ptr NewRustCodeGenerator() { + return std::unique_ptr(new RustCodeGenerator()); +} + } // namespace flatbuffers // TODO(rw): Generated code should import other generated files. diff --git a/src/idl_gen_rust.h b/src/idl_gen_rust.h new file mode 100644 index 0000000000..ef17ed8ebf --- /dev/null +++ b/src/idl_gen_rust.h @@ -0,0 +1,29 @@ +/* + * Copyright 2023 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. + */ + +#ifndef FLATBUFFERS_IDL_GEN_RUST_H_ +#define FLATBUFFERS_IDL_GEN_RUST_H_ + +#include "flatbuffers/code_generator.h" + +namespace flatbuffers { + +// Constructs a new Rust code generator. +std::unique_ptr NewRustCodeGenerator(); + +} // namespace flatbuffers + +#endif // FLATBUFFERS_IDL_GEN_RUST_H_ diff --git a/src/idl_gen_swift.cpp b/src/idl_gen_swift.cpp index c8a52bcac9..ae1de97d8c 100644 --- a/src/idl_gen_swift.cpp +++ b/src/idl_gen_swift.cpp @@ -14,6 +14,8 @@ * limitations under the License. */ +#include "idl_gen_swift.h" + #include #include @@ -1902,4 +1904,51 @@ bool GenerateSwift(const Parser &parser, const std::string &path, swift::SwiftGenerator generator(parser, path, file_name); return generator.generate(); } + +namespace { + +class SwiftCodeGenerator : public CodeGenerator { + public: + Status GenerateCode(const Parser &parser, const std::string &path, + const std::string &filename) override { + if (!GenerateSwift(parser, path, filename)) { return Status::ERROR; } + return Status::OK; + } + + Status GenerateCode(const uint8_t *buffer, int64_t length) override { + (void)buffer; + (void)length; + return Status::NOT_IMPLEMENTED; + } + + Status GenerateGrpcCode(const Parser &parser, const std::string &path, + const std::string &filename) override { + if (!GenerateSwiftGRPC(parser, path, filename)) { return Status::ERROR; } + return Status::OK; + } + + Status GenerateMakeRule(const Parser &parser, const std::string &path, + const std::string &filename, + std::string &output) override { + (void)parser; + (void)path; + (void)filename; + (void)output; + return Status::NOT_IMPLEMENTED; + } + + bool IsSchemaOnly() const override { return true; } + + bool SupportsBfbsGeneration() const override { return false; } + + IDLOptions::Language Language() const override { return IDLOptions::kSwift; } + + std::string LanguageName() const override { return "Swift"; } +}; +} // namespace + +std::unique_ptr NewSwiftCodeGenerator() { + return std::unique_ptr(new SwiftCodeGenerator()); +} + } // namespace flatbuffers diff --git a/src/idl_gen_swift.h b/src/idl_gen_swift.h new file mode 100644 index 0000000000..4fd8977d40 --- /dev/null +++ b/src/idl_gen_swift.h @@ -0,0 +1,29 @@ +/* + * Copyright 2023 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. + */ + +#ifndef FLATBUFFERS_IDL_GEN_SWIFT_H_ +#define FLATBUFFERS_IDL_GEN_SWIFT_H_ + +#include "flatbuffers/code_generator.h" + +namespace flatbuffers { + +// Constructs a new Cpp code generator. +std::unique_ptr NewSwiftCodeGenerator(); + +} // namespace flatbuffers + +#endif // FLATBUFFERS_IDL_GEN_SWIFT_H_ diff --git a/src/idl_gen_ts.cpp b/src/idl_gen_ts.cpp index 322d54f9d1..84c7e9c7c0 100644 --- a/src/idl_gen_ts.cpp +++ b/src/idl_gen_ts.cpp @@ -14,6 +14,8 @@ * limitations under the License. */ +#include "idl_gen_ts.h" + #include #include #include @@ -23,6 +25,7 @@ #include "flatbuffers/code_generators.h" #include "flatbuffers/flatbuffers.h" +#include "flatbuffers/flatc.h" #include "flatbuffers/idl.h" #include "flatbuffers/util.h" #include "idl_namer.h" @@ -2174,4 +2177,47 @@ std::string TSMakeRule(const Parser &parser, const std::string &path, return make_rule; } +namespace { + +class TsCodeGenerator : public CodeGenerator { + public: + Status GenerateCode(const Parser &parser, const std::string &path, + const std::string &filename) override { + if (!GenerateTS(parser, path, filename)) { return Status::ERROR; } + return Status::OK; + } + + Status GenerateCode(const uint8_t *buffer, int64_t length) override { + (void)buffer; + (void)length; + return Status::NOT_IMPLEMENTED; + } + + Status GenerateMakeRule(const Parser &parser, const std::string &path, + const std::string &filename, + std::string &output) override { + output = TSMakeRule(parser, path, filename); + return Status::OK; + } + + Status GenerateGrpcCode(const Parser &parser, const std::string &path, + const std::string &filename) override { + if (!GenerateTSGRPC(parser, path, filename)) { return Status::ERROR; } + return Status::OK; + } + + bool IsSchemaOnly() const override { return true; } + + bool SupportsBfbsGeneration() const override { return false; } + + IDLOptions::Language Language() const override { return IDLOptions::kTs; } + + std::string LanguageName() const override { return "TS"; } +}; +} // namespace + +std::unique_ptr NewTsCodeGenerator() { + return std::unique_ptr(new TsCodeGenerator()); +} + } // namespace flatbuffers diff --git a/src/idl_gen_ts.h b/src/idl_gen_ts.h new file mode 100644 index 0000000000..d2ece2dd96 --- /dev/null +++ b/src/idl_gen_ts.h @@ -0,0 +1,32 @@ +/* + * Copyright 2023 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. + */ + +#ifndef FLATBUFFERS_IDL_GEN_TS_H_ +#define FLATBUFFERS_IDL_GEN_TS_H_ + +#include +#include + +#include "flatbuffers/code_generator.h" + +namespace flatbuffers { + +// Constructs a new Ts code generator. +std::unique_ptr NewTsCodeGenerator(); + +} // namespace flatbuffers + +#endif // FLATBUFFERS_IDL_GEN_TS_H_ From f5121615d90f4186666aca6e567bfbfa71dd9c9d Mon Sep 17 00:00:00 2001 From: Wen Sun <30698014+sunwen18@users.noreply.github.com> Date: Wed, 25 Jan 2023 09:37:03 -0800 Subject: [PATCH 104/571] Clean up extra white spaces (#7800) * Clean up extra white spaces * update Co-authored-by: Wen Sun Co-authored-by: Derek Bailey --- src/idl_gen_cpp.cpp | 4 ++-- tests/key_field/key_field_sample_generated.h | 10 +++++----- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/idl_gen_cpp.cpp b/src/idl_gen_cpp.cpp index a1eb6f9eea..6fac430606 100644 --- a/src/idl_gen_cpp.cpp +++ b/src/idl_gen_cpp.cpp @@ -2278,7 +2278,7 @@ class CppGenerator : public BaseGenerator { code_ += space + "const auto {{RHS}} = {{RHS_PREFIX}}.{{CURR_FIELD_NAME}}();"; if (is_scalar) { - code_ += space + "if ({{LHS}} != {{RHS}})"; + code_ += space + "if ({{LHS}} != {{RHS}})"; code_ += space + " return static_cast({{LHS}} > {{RHS}}) - " "static_cast({{LHS}} < {{RHS}});"; @@ -2343,7 +2343,7 @@ class CppGenerator : public BaseGenerator { } else if (is_array) { const auto &elem_type = field.value.type.VectorType(); std::string input_type = "::flatbuffers::Array<" + - GenTypeGet(elem_type, "", "", " ", false) + + GenTypeGet(elem_type, "", "", "", false) + ", " + NumToString(elem_type.fixed_length) + ">"; code_.SetValue("INPUT_TYPE", input_type); code_ += diff --git a/tests/key_field/key_field_sample_generated.h b/tests/key_field/key_field_sample_generated.h index 6a5b9b423c..f37d4d6e6b 100644 --- a/tests/key_field/key_field_sample_generated.h +++ b/tests/key_field/key_field_sample_generated.h @@ -323,7 +323,7 @@ FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(4) Apple FLATBUFFERS_FINAL_CLASS { return rgb_compare_result; const auto lhs_color_tag = lhs_color.tag(); const auto rhs_color_tag = rhs_color.tag(); - if (lhs_color_tag != rhs_color_tag) + if (lhs_color_tag != rhs_color_tag) return static_cast(lhs_color_tag > rhs_color_tag) - static_cast(lhs_color_tag < rhs_color_tag); return 0; } @@ -381,7 +381,7 @@ FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(4) Fruit FLATBUFFERS_FINAL_CLASS { const auto &rhs_a = _a; const auto lhs_a_tag = lhs_a.tag(); const auto rhs_a_tag = rhs_a.tag(); - if (lhs_a_tag != rhs_a_tag) + if (lhs_a_tag != rhs_a_tag) return static_cast(lhs_a_tag > rhs_a_tag) - static_cast(lhs_a_tag < rhs_a_tag); const auto rhs_a_color = rhs_a.color(); const auto color_compare_result = lhs_a.KeyCompareWithValue(rhs_a_color); @@ -506,8 +506,8 @@ FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(4) Grain FLATBUFFERS_FINAL_CLASS { bool KeyCompareLessThan(const Grain * const o) const { return KeyCompareWithValue(o->a()) < 0; } - int KeyCompareWithValue(const ::flatbuffers::Array *_a) const { - const ::flatbuffers::Array *curr_a = a(); + int KeyCompareWithValue(const ::flatbuffers::Array *_a) const { + const ::flatbuffers::Array *curr_a = a(); for (::flatbuffers::uoffset_t i = 0; i < curr_a->size(); i++) { const auto &lhs_a = *(curr_a->Get(i)); const auto &rhs_a = *(_a->Get(i)); @@ -521,7 +521,7 @@ FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(4) Grain FLATBUFFERS_FINAL_CLASS { } const auto lhs_a_quantity = lhs_a.quantity(); const auto rhs_a_quantity = rhs_a.quantity(); - if (lhs_a_quantity != rhs_a_quantity) + if (lhs_a_quantity != rhs_a_quantity) return static_cast(lhs_a_quantity > rhs_a_quantity) - static_cast(lhs_a_quantity < rhs_a_quantity); } return 0; From 5b7a02d03797ab277e39c4543daeb865eb1c7092 Mon Sep 17 00:00:00 2001 From: Khanh Nguyen <44149581+Kn99HN@users.noreply.github.com> Date: Thu, 26 Jan 2023 10:57:47 -0800 Subject: [PATCH 105/571] Code generator refactor bug fix (#7802) * Swift should use swift generator * Swift should use swift generator Co-authored-by: Mo (Khanh) Nguyen --- src/flatc_main.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/flatc_main.cpp b/src/flatc_main.cpp index a2794a23aa..1280c3d23e 100644 --- a/src/flatc_main.cpp +++ b/src/flatc_main.cpp @@ -248,7 +248,7 @@ int main(int argc, const char *argv[]) { flatc.RegisterCodeGenerator("--rust", rust_generator); flatc.RegisterCodeGenerator("-r", rust_generator); - flatc.RegisterCodeGenerator("--swift", rust_generator); + flatc.RegisterCodeGenerator("--swift", swift_generator); flatc.RegisterCodeGenerator("--ts", ts_generator); flatc.RegisterCodeGenerator("-T", ts_generator); From a105c26eca2166c0ac9e2026478ec158ffc01d2c Mon Sep 17 00:00:00 2001 From: Khanh Nguyen <44149581+Kn99HN@users.noreply.github.com> Date: Sat, 28 Jan 2023 11:17:36 -0800 Subject: [PATCH 106/571] Refactor usage message (#7803) * Update usage string formation * Rework help message to use code generator interface * update * refactor --- include/flatbuffers/flatc.h | 2 +- src/flatc.cpp | 42 +++++++- src/flatc_main.cpp | 192 +++++++++++------------------------- 3 files changed, 95 insertions(+), 141 deletions(-) diff --git a/include/flatbuffers/flatc.h b/include/flatbuffers/flatc.h index 4fab34cac7..b373052196 100644 --- a/include/flatbuffers/flatc.h +++ b/include/flatbuffers/flatc.h @@ -114,7 +114,7 @@ class FlatCompiler { explicit FlatCompiler(const InitParams ¶ms) : params_(params) {} - bool RegisterCodeGenerator(const std::string& flag, + bool RegisterCodeGenerator(const FlatCOption &option, std::shared_ptr code_generator); int Compile(const FlatCOptions &options); diff --git a/src/flatc.cpp b/src/flatc.cpp index d43b4ed005..dc7dcb9a32 100644 --- a/src/flatc.cpp +++ b/src/flatc.cpp @@ -241,6 +241,9 @@ const static FlatCOption flatc_options[] = { "Currently this is required to generate private types in Rust" }, }; +auto cmp = [](FlatCOption a, FlatCOption b) { return a.long_opt < b.long_opt; }; +static std::set language_options(cmp); + static void AppendTextWrappedString(std::stringstream &ss, std::string &text, size_t max_col, size_t start_col) { size_t max_line_length = max_col - start_col; @@ -312,12 +315,19 @@ std::string FlatCompiler::GetShortUsageString( const std::string &program_name) const { std::stringstream ss; ss << "Usage: " << program_name << " ["; + + for (const FlatCOption &option : language_options) { + AppendShortOption(ss, option); + ss << ", "; + } + // TODO(derekbailey): These should be generated from this.generators for (size_t i = 0; i < params_.num_generators; ++i) { const Generator &g = params_.generators[i]; AppendShortOption(ss, g.option); ss << ", "; } + for (const FlatCOption &option : flatc_options) { AppendShortOption(ss, option); ss << ", "; @@ -335,6 +345,11 @@ std::string FlatCompiler::GetUsageString( std::stringstream ss; ss << "Usage: " << program_name << " [OPTION]... FILE... [-- BINARY_FILE...]\n"; + + for (const FlatCOption &option : language_options) { + AppendOption(ss, option, 80, 25); + } + // TODO(derekbailey): These should be generated from this.generators for (size_t i = 0; i < params_.num_generators; ++i) { const Generator &g = params_.generators[i]; @@ -1018,12 +1033,31 @@ int FlatCompiler::Compile(const FlatCOptions &options) { } bool FlatCompiler::RegisterCodeGenerator( - const std::string &flag, std::shared_ptr code_generator) { - if (code_generators_.find(flag) != code_generators_.end()) { - Error("multiple generators registered under: " + flag, false, false); + const FlatCOption &option, std::shared_ptr code_generator) { + if (!option.short_opt.empty() && + code_generators_.find("-" + option.short_opt) != code_generators_.end()) { + Error("multiple generators registered under: -" + option.short_opt, false, + false); return false; } - code_generators_[flag] = std::move(code_generator); + + if (!option.short_opt.empty()) { + code_generators_["-" + option.short_opt] = code_generator; + } + + if (!option.long_opt.empty() && + code_generators_.find("--" + option.long_opt) != code_generators_.end()) { + Error("multiple generators registered under: --" + option.long_opt, false, + false); + return false; + } + + if (!option.long_opt.empty()) { + code_generators_["--" + option.long_opt] = code_generator; + } + + language_options.insert(option); + return true; } diff --git a/src/flatc_main.cpp b/src/flatc_main.cpp index 1280c3d23e..882384471b 100644 --- a/src/flatc_main.cpp +++ b/src/flatc_main.cpp @@ -78,88 +78,17 @@ int main(int argc, const char *argv[]) { g_program_name = argv[0]; const flatbuffers::FlatCompiler::Generator generators[] = { - { flatbuffers::GenerateBinary, "binary", false, nullptr, - flatbuffers::IDLOptions::kBinary, - flatbuffers::FlatCOption{ - "b", "binary", "", - "Generate wire format binaries for any data definitions" }, - flatbuffers::BinaryMakeRule, nullptr, nullptr }, { flatbuffers::GenerateTextFile, "text", false, nullptr, flatbuffers::IDLOptions::kJson, flatbuffers::FlatCOption{ "t", "json", "", "Generate text output for any data definitions" }, flatbuffers::TextMakeRule, nullptr, nullptr }, - { flatbuffers::GenerateCPP, "C++", true, flatbuffers::GenerateCppGRPC, - flatbuffers::IDLOptions::kCpp, - flatbuffers::FlatCOption{ "c", "cpp", "", - "Generate C++ headers for tables/structs" }, - flatbuffers::CPPMakeRule, nullptr, nullptr }, - { flatbuffers::GenerateGo, "Go", true, flatbuffers::GenerateGoGRPC, - flatbuffers::IDLOptions::kGo, - flatbuffers::FlatCOption{ "g", "go", "", - "Generate Go files for tables/structs" }, - nullptr, nullptr, nullptr }, - { flatbuffers::GenerateJava, "Java", true, flatbuffers::GenerateJavaGRPC, - flatbuffers::IDLOptions::kJava, - flatbuffers::FlatCOption{ "j", "java", "", - "Generate Java classes for tables/structs" }, - flatbuffers::JavaMakeRule, nullptr, nullptr }, - { flatbuffers::GenerateDart, "Dart", true, nullptr, - flatbuffers::IDLOptions::kDart, - flatbuffers::FlatCOption{ "d", "dart", "", - "Generate Dart classes for tables/structs" }, - flatbuffers::DartMakeRule, nullptr, nullptr }, - { flatbuffers::GenerateTS, "TypeScript", true, flatbuffers::GenerateTSGRPC, - flatbuffers::IDLOptions::kTs, - flatbuffers::FlatCOption{ "T", "ts", "", - "Generate TypeScript code for tables/structs" }, - flatbuffers::TSMakeRule, nullptr, nullptr }, - { flatbuffers::GenerateCSharp, "C#", true, nullptr, - flatbuffers::IDLOptions::kCSharp, - flatbuffers::FlatCOption{ "n", "csharp", "", - "Generate C# classes for tables/structs" }, - flatbuffers::CSharpMakeRule, nullptr, nullptr }, - { flatbuffers::GeneratePython, "Python", true, - flatbuffers::GeneratePythonGRPC, flatbuffers::IDLOptions::kPython, - flatbuffers::FlatCOption{ "p", "python", "", - "Generate Python files for tables/structs" }, - nullptr, nullptr, nullptr }, - { flatbuffers::GenerateLobster, "Lobster", true, nullptr, - flatbuffers::IDLOptions::kLobster, - flatbuffers::FlatCOption{ "", "lobster", "", - "Generate Lobster files for tables/structs" }, - nullptr, nullptr, nullptr }, { flatbuffers::GenerateLua, "Lua", true, nullptr, flatbuffers::IDLOptions::kLua, flatbuffers::FlatCOption{ "l", "lua", "", "Generate Lua files for tables/structs" }, nullptr, bfbs_gen_lua.get(), nullptr }, - { flatbuffers::GenerateRust, "Rust", true, nullptr, - flatbuffers::IDLOptions::kRust, - flatbuffers::FlatCOption{ "r", "rust", "", - "Generate Rust files for tables/structs" }, - flatbuffers::RustMakeRule, nullptr, - flatbuffers::GenerateRustModuleRootFile }, - { flatbuffers::GeneratePhp, "PHP", true, nullptr, - flatbuffers::IDLOptions::kPhp, - flatbuffers::FlatCOption{ "", "php", "", - "Generate PHP files for tables/structs" }, - nullptr, nullptr, nullptr }, - { flatbuffers::GenerateKotlin, "Kotlin", true, nullptr, - flatbuffers::IDLOptions::kKotlin, - flatbuffers::FlatCOption{ "", "kotlin", "", - "Generate Kotlin classes for tables/structs" }, - nullptr, nullptr, nullptr }, - { flatbuffers::GenerateJsonSchema, "JsonSchema", true, nullptr, - flatbuffers::IDLOptions::kJsonSchema, - flatbuffers::FlatCOption{ "", "jsonschema", "", "Generate Json schema" }, - nullptr, nullptr, nullptr }, - { flatbuffers::GenerateSwift, "swift", true, flatbuffers::GenerateSwiftGRPC, - flatbuffers::IDLOptions::kSwift, - flatbuffers::FlatCOption{ "", "swift", "", - "Generate Swift files for tables/structs" }, - nullptr, nullptr, nullptr }, { nullptr, "Nim", true, nullptr, flatbuffers::IDLOptions::kNim, flatbuffers::FlatCOption{ "", "nim", "", "Generate Nim files for tables/structs" }, @@ -174,84 +103,75 @@ int main(int argc, const char *argv[]) { flatbuffers::FlatCompiler flatc(params); - std::shared_ptr binary_generator = - flatbuffers::NewBinaryCodeGenerator(); - - std::shared_ptr cpp_generator = - flatbuffers::NewCppCodeGenerator(); - - std::shared_ptr csharp_generator = - flatbuffers::NewCSharpCodeGenerator(); - - std::shared_ptr dart_generator = - flatbuffers::NewDartCodeGenerator(); - - std::shared_ptr go_generator = - flatbuffers::NewGoCodeGenerator(); - - std::shared_ptr java_generator = - flatbuffers::NewJavaCodeGenerator(); - - std::shared_ptr json_schema_generator = - flatbuffers::NewJsonSchemaCodeGenerator(); - - std::shared_ptr kotlin_generator = - flatbuffers::NewKotlinCodeGenerator(); - - std::shared_ptr lobster_generator = - flatbuffers::NewLobsterCodeGenerator(); - - std::shared_ptr php_generator = - flatbuffers::NewPhpCodeGenerator(); - - std::shared_ptr python_generator = - flatbuffers::NewPythonCodeGenerator(); - - std::shared_ptr rust_generator = - flatbuffers::NewRustCodeGenerator(); - - std::shared_ptr swift_generator = - flatbuffers::NewSwiftCodeGenerator(); - - std::shared_ptr ts_generator = - flatbuffers::NewTsCodeGenerator(); - - flatc.RegisterCodeGenerator("--binary", binary_generator); - flatc.RegisterCodeGenerator("-b", binary_generator); + flatc.RegisterCodeGenerator( + flatbuffers::FlatCOption{ + "b", "binary", "", + "Generate wire format binaries for any data definitions" }, + flatbuffers::NewBinaryCodeGenerator()); - flatc.RegisterCodeGenerator("--cpp", cpp_generator); - flatc.RegisterCodeGenerator("-c", cpp_generator); + flatc.RegisterCodeGenerator( + flatbuffers::FlatCOption{ "c", "cpp", "", + "Generate C++ headers for tables/structs" }, + flatbuffers::NewCppCodeGenerator()); - flatc.RegisterCodeGenerator("--csharp", csharp_generator); - flatc.RegisterCodeGenerator("-n", csharp_generator); + flatc.RegisterCodeGenerator( + flatbuffers::FlatCOption{ "n", "csharp", "", + "Generate C# classes for tables/structs" }, + flatbuffers::NewCSharpCodeGenerator()); - flatc.RegisterCodeGenerator("--dart", dart_generator); - flatc.RegisterCodeGenerator("-d", dart_generator); + flatc.RegisterCodeGenerator( + flatbuffers::FlatCOption{ "d", "dart", "", + "Generate Dart classes for tables/structs" }, + flatbuffers::NewDartCodeGenerator()); - flatc.RegisterCodeGenerator("--go", go_generator); - flatc.RegisterCodeGenerator("-g", go_generator); + flatc.RegisterCodeGenerator( + flatbuffers::FlatCOption{ "g", "go", "", + "Generate Go files for tables/structs" }, + flatbuffers::NewGoCodeGenerator()); - flatc.RegisterCodeGenerator("--java", java_generator); - flatc.RegisterCodeGenerator("-j", java_generator); + flatc.RegisterCodeGenerator( + flatbuffers::FlatCOption{ "j", "java", "", + "Generate Java classes for tables/structs" }, + flatbuffers::NewJavaCodeGenerator()); - flatc.RegisterCodeGenerator("--jsonschema", json_schema_generator); + flatc.RegisterCodeGenerator( + flatbuffers::FlatCOption{ "", "jsonschema", "", "Generate Json schema" }, + flatbuffers::NewJsonSchemaCodeGenerator()); - flatc.RegisterCodeGenerator("--kotlin", kotlin_generator); + flatc.RegisterCodeGenerator( + flatbuffers::FlatCOption{ "", "kotlin", "", + "Generate Kotlin classes for tables/structs" }, + flatbuffers::NewKotlinCodeGenerator()); - flatc.RegisterCodeGenerator("--lobster", lobster_generator); + flatc.RegisterCodeGenerator( + flatbuffers::FlatCOption{ "", "lobster", "", + "Generate Lobster files for tables/structs" }, + flatbuffers::NewLobsterCodeGenerator()); - flatc.RegisterCodeGenerator("--php", php_generator); + flatc.RegisterCodeGenerator( + flatbuffers::FlatCOption{ "", "php", "", + "Generate PHP files for tables/structs" }, + flatbuffers::NewPhpCodeGenerator()); - flatc.RegisterCodeGenerator("--python", python_generator); - flatc.RegisterCodeGenerator("-p", python_generator); + flatc.RegisterCodeGenerator( + flatbuffers::FlatCOption{ "p", "python", "", + "Generate Python files for tables/structs" }, + flatbuffers::NewPythonCodeGenerator()); - flatc.RegisterCodeGenerator("--rust", rust_generator); - flatc.RegisterCodeGenerator("-r", rust_generator); + flatc.RegisterCodeGenerator( + flatbuffers::FlatCOption{ "r", "rust", "", + "Generate Rust files for tables/structs" }, + flatbuffers::NewRustCodeGenerator()); - flatc.RegisterCodeGenerator("--swift", swift_generator); + flatc.RegisterCodeGenerator( + flatbuffers::FlatCOption{ "", "swift", "", + "Generate Swift files for tables/structs" }, + flatbuffers::NewSwiftCodeGenerator()); - flatc.RegisterCodeGenerator("--ts", ts_generator); - flatc.RegisterCodeGenerator("-T", ts_generator); + flatc.RegisterCodeGenerator( + flatbuffers::FlatCOption{ "T", "ts", "", + "Generate TypeScript code for tables/structs" }, + flatbuffers::NewTsCodeGenerator()); // Create the FlatC options by parsing the command line arguments. const flatbuffers::FlatCOptions &options = From ca71fdfb9ab1fd7f4f7bb908a395ea0cc6e99751 Mon Sep 17 00:00:00 2001 From: Ilya Lavrenov Date: Mon, 30 Jan 2023 11:00:57 +0400 Subject: [PATCH 107/571] Supported cmake 3.8 (#7801) --- CMake/CMakeLists_legacy.cmake.in | 778 ------------------------------- CMake/PackageDebian.cmake | 16 +- CMake/PackageRedhat.cmake | 2 +- CMakeLists.txt | 51 +- benchmarks/CMakeLists.txt | 9 +- 5 files changed, 23 insertions(+), 833 deletions(-) delete mode 100644 CMake/CMakeLists_legacy.cmake.in diff --git a/CMake/CMakeLists_legacy.cmake.in b/CMake/CMakeLists_legacy.cmake.in deleted file mode 100644 index 5d70577ae5..0000000000 --- a/CMake/CMakeLists_legacy.cmake.in +++ /dev/null @@ -1,778 +0,0 @@ -# This was the legacy /CMakeLists.txt that supported cmake version 2.8.12. -# It was originally copied on Jan 30 2022, and is conditionally included in the -# current /CMakeLists.txt if the cmake version used is older than the new -# minimum version. -# -# Only add to this file to fix immediate issues or if a change cannot be made -# /CMakeList.txt in a compatible way. - -if (POLICY CMP0048) - cmake_policy(SET CMP0048 NEW) - if(CMAKE_VERSION VERSION_LESS 3.9) - project(FlatBuffers - VERSION 2.0.0 - LANGUAGES CXX) - else() - project(FlatBuffers - DESCRIPTION "Flatbuffers serialization library" - VERSION 2.0.0 - LANGUAGES CXX) - endif() -else() - project(FlatBuffers) -endif (POLICY CMP0048) - -include(CMake/Version.cmake) - -# generate compile_commands.json -set(CMAKE_EXPORT_COMPILE_COMMANDS ON) - -# NOTE: Code coverage only works on Linux & OSX. -option(FLATBUFFERS_CODE_COVERAGE "Enable the code coverage build option." OFF) -option(FLATBUFFERS_BUILD_TESTS "Enable the build of tests and samples." ON) -option(FLATBUFFERS_INSTALL "Enable the installation of targets." ON) -option(FLATBUFFERS_BUILD_FLATLIB "Enable the build of the flatbuffers library" - ON) -option(FLATBUFFERS_BUILD_FLATC "Enable the build of the flatbuffers compiler" - ON) -option(FLATBUFFERS_STATIC_FLATC "Build flatbuffers compiler with -static flag" - OFF) -option(FLATBUFFERS_BUILD_FLATHASH "Enable the build of flathash" ON) -option(FLATBUFFERS_BUILD_BENCHMARKS "Enable the build of flatbenchmark. \" - Requires C++11." - OFF) -option(FLATBUFFERS_BUILD_GRPCTEST "Enable the build of grpctest" OFF) -option(FLATBUFFERS_BUILD_SHAREDLIB - "Enable the build of the flatbuffers shared library" - OFF) -option(FLATBUFFERS_LIBCXX_WITH_CLANG "Force libc++ when using Clang" ON) -# NOTE: Sanitizer check only works on Linux & OSX (gcc & llvm). -option(FLATBUFFERS_CODE_SANITIZE - "Add '-fsanitize' flags to 'flattests' and 'flatc' targets." - OFF) -option(FLATBUFFERS_PACKAGE_REDHAT - "Build an rpm using the 'package' target." - OFF) -option(FLATBUFFERS_PACKAGE_DEBIAN - "Build an deb using the 'package' target." - OFF) -option(FLATBUFFERS_BUILD_CPP17 - "Enable the build of c++17 test target. \" - Requirements: Clang6, GCC7, MSVC2017 (_MSC_VER >= 1914) or higher." - OFF) -option(FLATBUFFERS_BUILD_LEGACY - "Run C++ code generator with '--cpp-std c++0x' switch." - OFF) -option(FLATBUFFERS_ENABLE_PCH - "Enable precompile headers support for 'flatbuffers' and 'flatc'. \" - Only work if CMake supports 'target_precompile_headers'. \" - This can speed up compilation time." - OFF) -option(FLATBUFFERS_SKIP_MONSTER_EXTRA - "Skip generating monster_extra.fbs that contains non-supported numerical\" - types." OFF) -option(FLATBUFFERS_OSX_BUILD_UNIVERSAL - "Enable the build for multiple architectures on OS X (arm64, x86_64)." - ON) - -if(NOT FLATBUFFERS_BUILD_FLATC AND FLATBUFFERS_BUILD_TESTS) - message(WARNING - "Cannot build tests without building the compiler. Tests will be disabled.") - set(FLATBUFFERS_BUILD_TESTS OFF) -endif() - -if(DEFINED FLATBUFFERS_MAX_PARSING_DEPTH) - # Override the default recursion depth limit. - add_definitions(-DFLATBUFFERS_MAX_PARSING_DEPTH=${FLATBUFFERS_MAX_PARSING_DEPTH}) - message(STATUS "FLATBUFFERS_MAX_PARSING_DEPTH: ${FLATBUFFERS_MAX_PARSING_DEPTH}") -endif() - -# Auto-detect locale-narrow 'strtod_l' and 'strtoull_l' functions. -if(NOT DEFINED FLATBUFFERS_LOCALE_INDEPENDENT) - include(CheckCXXSymbolExists) - - set(FLATBUFFERS_LOCALE_INDEPENDENT 0) - if(MSVC) - check_cxx_symbol_exists(_strtof_l stdlib.h FLATBUFFERS_HAS_STRTOF_L) - check_cxx_symbol_exists(_strtoui64_l stdlib.h FLATBUFFERS_HAS_STRTOULL_L) - else() - check_cxx_symbol_exists(strtof_l stdlib.h FLATBUFFERS_HAS_STRTOF_L) - check_cxx_symbol_exists(strtoull_l stdlib.h FLATBUFFERS_HAS_STRTOULL_L) - endif() - if(FLATBUFFERS_HAS_STRTOF_L AND FLATBUFFERS_HAS_STRTOULL_L) - set(FLATBUFFERS_LOCALE_INDEPENDENT 1) - endif() -endif() -add_definitions(-DFLATBUFFERS_LOCALE_INDEPENDENT=$) - -set(FlatBuffers_Library_SRCS - include/flatbuffers/allocator.h - include/flatbuffers/array.h - include/flatbuffers/base.h - include/flatbuffers/bfbs_generator.h - include/flatbuffers/buffer.h - include/flatbuffers/buffer_ref.h - include/flatbuffers/default_allocator.h - include/flatbuffers/detached_buffer.h - include/flatbuffers/flatbuffer_builder.h - include/flatbuffers/flatbuffers.h - include/flatbuffers/flexbuffers.h - include/flatbuffers/hash.h - include/flatbuffers/idl.h - include/flatbuffers/minireflect.h - include/flatbuffers/reflection.h - include/flatbuffers/reflection_generated.h - include/flatbuffers/registry.h - include/flatbuffers/stl_emulation.h - include/flatbuffers/string.h - include/flatbuffers/struct.h - include/flatbuffers/table.h - include/flatbuffers/util.h - include/flatbuffers/vector.h - include/flatbuffers/vector_downward.h - include/flatbuffers/verifier.h - src/idl_parser.cpp - src/idl_gen_text.cpp - src/reflection.cpp - src/util.cpp -) - -set(FlatBuffers_Compiler_SRCS - ${FlatBuffers_Library_SRCS} - src/idl_gen_cpp.cpp - src/idl_gen_csharp.cpp - src/idl_gen_dart.cpp - src/idl_gen_kotlin.cpp - src/idl_gen_go.cpp - src/idl_gen_java.cpp - src/idl_gen_ts.cpp - src/idl_gen_php.cpp - src/idl_gen_python.cpp - src/idl_gen_lobster.cpp - src/idl_gen_lua.cpp - src/idl_gen_rust.cpp - src/idl_gen_fbs.cpp - src/idl_gen_grpc.cpp - src/idl_gen_json_schema.cpp - src/idl_gen_swift.cpp - src/flatc.cpp - src/flatc_main.cpp - src/bfbs_gen.h - src/bfbs_gen_lua.h - include/flatbuffers/code_generators.h - src/bfbs_gen_lua.cpp - src/code_generators.cpp - grpc/src/compiler/schema_interface.h - grpc/src/compiler/cpp_generator.h - grpc/src/compiler/cpp_generator.cc - grpc/src/compiler/go_generator.h - grpc/src/compiler/go_generator.cc - grpc/src/compiler/java_generator.h - grpc/src/compiler/java_generator.cc - grpc/src/compiler/python_generator.h - grpc/src/compiler/python_generator.cc - grpc/src/compiler/swift_generator.h - grpc/src/compiler/swift_generator.cc - grpc/src/compiler/ts_generator.h - grpc/src/compiler/ts_generator.cc -) - -set(FlatHash_SRCS - include/flatbuffers/hash.h - src/flathash.cpp -) - -set(FlatBuffers_Tests_SRCS - ${FlatBuffers_Library_SRCS} - src/idl_gen_fbs.cpp - tests/test.cpp - tests/test_assert.h - tests/test_assert.cpp - tests/test_builder.h - tests/test_builder.cpp - tests/native_type_test_impl.h - tests/native_type_test_impl.cpp - include/flatbuffers/code_generators.h - src/code_generators.cpp - # file generate by running compiler on tests/monster_test.fbs - ${CMAKE_CURRENT_BINARY_DIR}/tests/monster_test_generated.h - # file generate by running compiler on namespace_test/namespace_test1.fbs - ${CMAKE_CURRENT_BINARY_DIR}/tests/namespace_test/namespace_test1_generated.h - ${CMAKE_CURRENT_BINARY_DIR}/tests/namespace_test/namespace_test2_generated.h - # file generate by running compiler on union_vector/union_vector.fbs - ${CMAKE_CURRENT_BINARY_DIR}/tests/union_vector/union_vector_generated.h - # file generate by running compiler on tests/arrays_test.fbs - ${CMAKE_CURRENT_BINARY_DIR}/tests/arrays_test_generated.h - # file generate by running compiler on tests/native_type_test.fbs - ${CMAKE_CURRENT_BINARY_DIR}/tests/native_type_test_generated.h - # file generate by running compiler on tests/monster_extra.fbs - ${CMAKE_CURRENT_BINARY_DIR}/tests/monster_extra_generated.h - # file generate by running compiler on tests/monster_test.fbs - ${CMAKE_CURRENT_BINARY_DIR}/tests/monster_test_bfbs_generated.h - # file generate by running compiler on tests/optional_scalars.fbs - ${CMAKE_CURRENT_BINARY_DIR}/tests/optional_scalars_generated.h -) - -set(FlatBuffers_Tests_CPP17_SRCS - ${FlatBuffers_Library_SRCS} - tests/test_assert.h - tests/test_assert.cpp - tests/cpp17/test_cpp17.cpp - # file generate by running compiler on tests/monster_test.fbs - ${CMAKE_CURRENT_BINARY_DIR}/tests/cpp17/generated_cpp17/monster_test_generated.h - ${CMAKE_CURRENT_BINARY_DIR}/tests/monster_test_generated.h - ${CMAKE_CURRENT_BINARY_DIR}/tests/cpp17/generated_cpp17/optional_scalars_generated.h - ${CMAKE_CURRENT_BINARY_DIR}/tests/optional_scalars_generated.h -) - -set(FlatBuffers_Sample_Binary_SRCS - include/flatbuffers/flatbuffers.h - samples/sample_binary.cpp - # file generated by running compiler on samples/monster.fbs - ${CMAKE_CURRENT_BINARY_DIR}/samples/monster_generated.h -) - -set(FlatBuffers_Sample_Text_SRCS - ${FlatBuffers_Library_SRCS} - samples/sample_text.cpp - # file generated by running compiler on samples/monster.fbs - ${CMAKE_CURRENT_BINARY_DIR}/samples/monster_generated.h -) - -set(FlatBuffers_Sample_BFBS_SRCS - ${FlatBuffers_Library_SRCS} - samples/sample_bfbs.cpp - # file generated by running compiler on samples/monster.fbs - ${CMAKE_CURRENT_BINARY_DIR}/samples/monster_generated.h -) - -set(FlatBuffers_GRPCTest_SRCS - include/flatbuffers/flatbuffers.h - include/flatbuffers/grpc.h - include/flatbuffers/util.h - src/util.cpp - tests/monster_test.grpc.fb.h - tests/test_assert.h - tests/test_builder.h - tests/monster_test.grpc.fb.cc - tests/test_assert.cpp - tests/test_builder.cpp - grpc/tests/grpctest.cpp - grpc/tests/message_builder_test.cpp - # file generate by running compiler on tests/monster_test.fbs - ${CMAKE_CURRENT_BINARY_DIR}/tests/monster_test_generated.h -) - -# source_group(Compiler FILES ${FlatBuffers_Compiler_SRCS}) -# source_group(Tests FILES ${FlatBuffers_Tests_SRCS}) - -if(EXISTS "${CMAKE_TOOLCHAIN_FILE}") - # do not apply any global settings if the toolchain - # is being configured externally - message(STATUS "Using toolchain file: ${CMAKE_TOOLCHAIN_FILE}.") -elseif(CMAKE_COMPILER_IS_GNUCXX) - if(CYGWIN) - set(CMAKE_CXX_FLAGS - "${CMAKE_CXX_FLAGS} -std=gnu++11") - else(CYGWIN) - set(CMAKE_CXX_FLAGS - "${CMAKE_CXX_FLAGS} -std=c++0x") - endif(CYGWIN) - set(CMAKE_CXX_FLAGS - "${CMAKE_CXX_FLAGS} -Wall -pedantic -Werror -Wextra -Werror=shadow") - set(FLATBUFFERS_PRIVATE_CXX_FLAGS "-Wold-style-cast") - if (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 4.4) - if (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 7.0) - set(CMAKE_CXX_FLAGS - "${CMAKE_CXX_FLAGS} -faligned-new -Werror=implicit-fallthrough=2") - endif() - set(CMAKE_CXX_FLAGS - "${CMAKE_CXX_FLAGS} -Wunused-result -Werror=unused-result -Wunused-parameter -Werror=unused-parameter") - endif() - - # Certain platforms such as ARM do not use signed chars by default - # which causes issues with certain bounds checks. - set(CMAKE_CXX_FLAGS - "${CMAKE_CXX_FLAGS} -fsigned-char") - -# MSVC **MUST** come before the Clang check, as clang-cl is flagged by CMake as "MSVC", but it still textually -# matches as Clang in its Compiler Id :) -# Note: in CMake >= 3.14 we can check CMAKE_CXX_COMPILER_FRONTEND_VARIANT STREQUAL "GNU" or "MSVC" to differentiate... -elseif(MSVC) - # Visual Studio pedantic build settings - # warning C4512: assignment operator could not be generated - # warning C4316: object allocated on the heap may not be aligned - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /W4 /WX /wd4512 /wd4316") - - if(${CMAKE_CXX_COMPILER_ID} MATCHES "Clang") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /D_CRT_SECURE_NO_WARNINGS") - endif() - -elseif(${CMAKE_CXX_COMPILER_ID} MATCHES "Clang") - if(APPLE) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") - - if(FLATBUFFERS_OSX_BUILD_UNIVERSAL) - set(CMAKE_OSX_ARCHITECTURES "arm64;x86_64") - endif() - else() - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x") - endif() - - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -pedantic -Werror -Wextra -Wno-unused-parameter") - set(FLATBUFFERS_PRIVATE_CXX_FLAGS "-Wold-style-cast") - if(NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 3.8) - list(APPEND FLATBUFFERS_PRIVATE_CXX_FLAGS "-Wimplicit-fallthrough" "-Wextra-semi" "-Werror=unused-private-field") # enable warning - endif() - if(FLATBUFFERS_LIBCXX_WITH_CLANG) - if(NOT "${CMAKE_SYSTEM_NAME}" MATCHES "Linux") - set(CMAKE_CXX_FLAGS - "${CMAKE_CXX_FLAGS} -stdlib=libc++") - endif() - if(NOT ("${CMAKE_SYSTEM_NAME}" MATCHES "FreeBSD" OR - "${CMAKE_SYSTEM_NAME}" MATCHES "Linux")) - set(CMAKE_EXE_LINKER_FLAGS - "${CMAKE_EXE_LINKER_FLAGS} -lc++abi") - endif() - endif() - - # Certain platforms such as ARM do not use signed chars by default - # which causes issues with certain bounds checks. - set(CMAKE_CXX_FLAGS - "${CMAKE_CXX_FLAGS} -fsigned-char") - -endif() - -# Append FLATBUFFERS_CXX_FLAGS to CMAKE_CXX_FLAGS. -if(DEFINED FLATBUFFERS_CXX_FLAGS AND NOT EXISTS "${CMAKE_TOOLCHAIN_FILE}") - message(STATUS "extend CXX_FLAGS with ${FLATBUFFERS_CXX_FLAGS}") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${FLATBUFFERS_CXX_FLAGS}") -endif() -message(STATUS "CMAKE_CXX_FLAGS: ${CMAKE_CXX_FLAGS}") - -if(FLATBUFFERS_CODE_COVERAGE) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -fprofile-arcs -ftest-coverage") - set(CMAKE_EXE_LINKER_FLAGS - "${CMAKE_EXE_LINKER_FLAGS} -fprofile-arcs -ftest-coverage") -endif() - -function(add_fsanitize_to_target _target _sanitizer) - if(WIN32) - target_compile_definitions(${_target} PRIVATE FLATBUFFERS_MEMORY_LEAK_TRACKING) - message(STATUS "Sanitizer MSVC::_CrtDumpMemoryLeaks added to ${_target}") - else() - # FLATBUFFERS_CODE_SANITIZE: boolean {ON,OFF,YES,NO} or string with list of sanitizer. - # List of sanitizer is string starts with '=': "=address,undefined,thread,memory". - if((${CMAKE_CXX_COMPILER_ID} MATCHES "Clang") OR - ((${CMAKE_CXX_COMPILER_ID} MATCHES "GNU") AND NOT (CMAKE_CXX_COMPILER_VERSION VERSION_LESS "4.9")) - ) - set(_sanitizer_flags "=address,undefined") - if(_sanitizer MATCHES "=.*") - # override default by user-defined sanitizer list - set(_sanitizer_flags ${_sanitizer}) - endif() - target_compile_options(${_target} PRIVATE - -g -fsigned-char -fno-omit-frame-pointer - "-fsanitize${_sanitizer_flags}") - target_link_libraries(${_target} PRIVATE - "-fsanitize${_sanitizer_flags}") - set_property(TARGET ${_target} PROPERTY POSITION_INDEPENDENT_CODE ON) - message(STATUS "Sanitizer ${_sanitizer_flags} added to ${_target}") - endif() - endif() -endfunction() - -function(add_pch_to_target _target _pch_header) - if(COMMAND target_precompile_headers) - target_precompile_headers(${_target} PRIVATE ${_pch_header}) - if(NOT MSVC) - set_source_files_properties(src/util.cpp PROPERTIES SKIP_PRECOMPILE_HEADERS ON) - endif() - endif() -endfunction() - -if(BIICODE) - include(biicode/cmake/biicode.cmake) - return() -endif() - -include_directories(include) -include_directories(grpc) - -if(FLATBUFFERS_BUILD_FLATLIB) - add_library(flatbuffers STATIC ${FlatBuffers_Library_SRCS}) - # Attach header directory for when build via add_subdirectory(). - target_include_directories(flatbuffers INTERFACE - $) - target_compile_options(flatbuffers PRIVATE "${FLATBUFFERS_PRIVATE_CXX_FLAGS}") - if(FLATBUFFERS_ENABLE_PCH) - add_pch_to_target(flatbuffers include/flatbuffers/pch/pch.h) - endif() -endif() - -if(FLATBUFFERS_BUILD_FLATC) - add_executable(flatc ${FlatBuffers_Compiler_SRCS}) - if(FLATBUFFERS_ENABLE_PCH) - add_pch_to_target(flatc include/flatbuffers/pch/flatc_pch.h) - endif() - target_compile_options(flatc PRIVATE "${FLATBUFFERS_PRIVATE_CXX_FLAGS}") - if(FLATBUFFERS_CODE_SANITIZE AND NOT WIN32) - add_fsanitize_to_target(flatc ${FLATBUFFERS_CODE_SANITIZE}) - endif() - if(NOT FLATBUFFERS_FLATC_EXECUTABLE) - set(FLATBUFFERS_FLATC_EXECUTABLE $) - endif() - if(MSVC) - # Make flatc.exe not depend on runtime dlls for easy distribution. - target_compile_options(flatc PUBLIC $<$:/MT>) - endif() - if(FLATBUFFERS_STATIC_FLATC AND NOT MSVC) - target_link_libraries(flatc PRIVATE -static) - endif() -endif() - -if(FLATBUFFERS_BUILD_FLATHASH) - add_executable(flathash ${FlatHash_SRCS}) -endif() - -if(FLATBUFFERS_BUILD_SHAREDLIB) - add_library(flatbuffers_shared SHARED ${FlatBuffers_Library_SRCS}) - - # FlatBuffers use calendar-based versioning and do not provide any ABI - # stability guarantees. Therefore, always use the full version as SOVERSION - # in order to avoid breaking reverse dependencies on upgrades. - set(FlatBuffers_Library_SONAME_FULL "${PROJECT_VERSION}") - set_target_properties(flatbuffers_shared PROPERTIES OUTPUT_NAME flatbuffers - SOVERSION "${FlatBuffers_Library_SONAME_FULL}" - VERSION "${FlatBuffers_Library_SONAME_FULL}") - if(FLATBUFFERS_ENABLE_PCH) - add_pch_to_target(flatbuffers_shared include/flatbuffers/pch/pch.h) - endif() -endif() - -# Global list of generated files. -# Use the global property to be independent of PARENT_SCOPE. -set_property(GLOBAL PROPERTY FBS_GENERATED_OUTPUTS) - -function(get_generated_output generated_files) - get_property(tmp GLOBAL PROPERTY FBS_GENERATED_OUTPUTS) - set(${generated_files} ${tmp} PARENT_SCOPE) -endfunction(get_generated_output) - -function(register_generated_output file_name) - get_property(tmp GLOBAL PROPERTY FBS_GENERATED_OUTPUTS) - list(APPEND tmp ${file_name}) - set_property(GLOBAL PROPERTY FBS_GENERATED_OUTPUTS ${tmp}) -endfunction(register_generated_output) - -function(compile_flatbuffers_schema_to_cpp_opt SRC_FBS OPT) - if(FLATBUFFERS_BUILD_LEGACY) - set(OPT ${OPT};--cpp-std c++0x) - else() - # --cpp-std is defined by flatc default settings. - endif() - message(STATUS "`${SRC_FBS}`: add generation of C++ code with '${OPT}'") - get_filename_component(SRC_FBS_DIR ${SRC_FBS} PATH) - string(REGEX REPLACE "\\.fbs$" "_generated.h" GEN_HEADER ${SRC_FBS}) - add_custom_command( - OUTPUT ${GEN_HEADER} - COMMAND "${FLATBUFFERS_FLATC_EXECUTABLE}" - --cpp --gen-mutable --gen-object-api --reflect-names - --cpp-ptr-type flatbuffers::unique_ptr # Used to test with C++98 STLs - ${OPT} - -I "${CMAKE_CURRENT_SOURCE_DIR}/tests/include_test" - -o "${SRC_FBS_DIR}" - "${CMAKE_CURRENT_SOURCE_DIR}/${SRC_FBS}" - DEPENDS flatc - COMMENT "Run generation: '${GEN_HEADER}'") - register_generated_output(${GEN_HEADER}) -endfunction() - -function(compile_flatbuffers_schema_to_cpp SRC_FBS) - compile_flatbuffers_schema_to_cpp_opt(${SRC_FBS} "--no-includes;--gen-compare") -endfunction() - -function(compile_flatbuffers_schema_to_binary SRC_FBS) - message(STATUS "`${SRC_FBS}`: add generation of binary (.bfbs) schema") - get_filename_component(SRC_FBS_DIR ${SRC_FBS} PATH) - string(REGEX REPLACE "\\.fbs$" ".bfbs" GEN_BINARY_SCHEMA ${SRC_FBS}) - # For details about flags see generate_code.py - add_custom_command( - OUTPUT ${GEN_BINARY_SCHEMA} - COMMAND "${FLATBUFFERS_FLATC_EXECUTABLE}" - -b --schema --bfbs-comments --bfbs-builtins - --bfbs-filenames ${SRC_FBS_DIR} - -I "${CMAKE_CURRENT_SOURCE_DIR}/tests/include_test" - -o "${SRC_FBS_DIR}" - "${CMAKE_CURRENT_SOURCE_DIR}/${SRC_FBS}" - DEPENDS flatc - COMMENT "Run generation: '${GEN_BINARY_SCHEMA}'") - register_generated_output(${GEN_BINARY_SCHEMA}) -endfunction() - -function(compile_flatbuffers_schema_to_embedded_binary SRC_FBS OPT) - if(FLATBUFFERS_BUILD_LEGACY) - set(OPT ${OPT};--cpp-std c++0x) - else() - # --cpp-std is defined by flatc default settings. - endif() - message(STATUS "`${SRC_FBS}`: add generation of C++ embedded binary schema code with '${OPT}'") - get_filename_component(SRC_FBS_DIR ${SRC_FBS} PATH) - string(REGEX REPLACE "\\.fbs$" "_bfbs_generated.h" GEN_BFBS_HEADER ${SRC_FBS}) - # For details about flags see generate_code.py - add_custom_command( - OUTPUT ${GEN_BFBS_HEADER} - COMMAND "${FLATBUFFERS_FLATC_EXECUTABLE}" - --cpp --gen-mutable --gen-object-api --reflect-names - --cpp-ptr-type flatbuffers::unique_ptr # Used to test with C++98 STLs - ${OPT} - --bfbs-comments --bfbs-builtins --bfbs-gen-embed - --bfbs-filenames ${SRC_FBS_DIR} - -I "${CMAKE_CURRENT_SOURCE_DIR}/tests/include_test" - -o "${SRC_FBS_DIR}" - "${CMAKE_CURRENT_SOURCE_DIR}/${SRC_FBS}" - DEPENDS flatc - COMMENT "Run generation: '${GEN_BFBS_HEADER}'") - register_generated_output(${GEN_BFBS_HEADER}) -endfunction() - -# Look if we have python 3.5 installed so that we can run the generate code -# python script after flatc is built. -find_package(PythonInterp 3.5) - -if(PYTHONINTERP_FOUND AND - # Skip doing this if the MSVC version is below VS 12. - # https://cmake.org/cmake/help/latest/variable/MSVC_VERSION.html - (NOT MSVC OR MSVC_VERSION GREATER 1800)) - set(GENERATION_SCRIPT ${PYTHON_EXECUTABLE} scripts/generate_code.py) - if(FLATBUFFERS_BUILD_LEGACY) - # Need to set --cpp-std c++-0x options - set(GENERATION_SCRIPT ${GENERATION_SCRIPT} --cpp-0x) - endif() - if(FLATBUFFERS_SKIP_MONSTER_EXTRA) - set(GENERATION_SCRIPT ${GENERATION_SCRIPT} --skip-monster-extra) - endif() - add_custom_command( - TARGET flatc - POST_BUILD - COMMAND ${GENERATION_SCRIPT} --flatc "${FLATBUFFERS_FLATC_EXECUTABLE}" - WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" - COMMENT "Running ${GENERATION_SCRIPT}..." - VERBATIM) -else() - message("No Python3 interpreter found! Unable to generate files automatically.") -endif() - -if(FLATBUFFERS_BUILD_TESTS) - file(COPY "${CMAKE_CURRENT_SOURCE_DIR}/tests" DESTINATION "${CMAKE_CURRENT_BINARY_DIR}") - file(COPY "${CMAKE_CURRENT_SOURCE_DIR}/samples" DESTINATION "${CMAKE_CURRENT_BINARY_DIR}") - - # TODO Add (monster_test.fbs monsterdata_test.json)->monsterdata_test.mon - compile_flatbuffers_schema_to_cpp(tests/monster_test.fbs) - compile_flatbuffers_schema_to_binary(tests/monster_test.fbs) - compile_flatbuffers_schema_to_cpp_opt(tests/namespace_test/namespace_test1.fbs "--no-includes;--gen-compare;--gen-name-strings") - compile_flatbuffers_schema_to_cpp_opt(tests/namespace_test/namespace_test2.fbs "--no-includes;--gen-compare;--gen-name-strings") - compile_flatbuffers_schema_to_cpp_opt(tests/union_vector/union_vector.fbs "--no-includes;--gen-compare;--gen-name-strings") - compile_flatbuffers_schema_to_cpp(tests/optional_scalars.fbs) - compile_flatbuffers_schema_to_cpp_opt(tests/native_type_test.fbs "") - compile_flatbuffers_schema_to_cpp_opt(tests/arrays_test.fbs "--scoped-enums;--gen-compare") - compile_flatbuffers_schema_to_binary(tests/arrays_test.fbs) - compile_flatbuffers_schema_to_embedded_binary(tests/monster_test.fbs "--no-includes;--gen-compare") - if(NOT (MSVC AND (MSVC_VERSION LESS 1900))) - compile_flatbuffers_schema_to_cpp(tests/monster_extra.fbs) # Test floating-point NAN/INF. - endif() - include_directories(${CMAKE_CURRENT_BINARY_DIR}/tests) - add_executable(flattests ${FlatBuffers_Tests_SRCS}) - add_dependencies(flattests generated_code) - set_property(TARGET flattests - PROPERTY COMPILE_DEFINITIONS FLATBUFFERS_TRACK_VERIFIER_BUFFER_SIZE - FLATBUFFERS_DEBUG_VERIFICATION_FAILURE=1) - if(FLATBUFFERS_CODE_SANITIZE) - add_fsanitize_to_target(flattests ${FLATBUFFERS_CODE_SANITIZE}) - endif() - - compile_flatbuffers_schema_to_cpp(samples/monster.fbs) - compile_flatbuffers_schema_to_binary(samples/monster.fbs) - include_directories(${CMAKE_CURRENT_BINARY_DIR}/samples) - add_executable(flatsamplebinary ${FlatBuffers_Sample_Binary_SRCS}) - add_dependencies(flatsamplebinary generated_code) - add_executable(flatsampletext ${FlatBuffers_Sample_Text_SRCS}) - add_dependencies(flatsampletext generated_code) - add_executable(flatsamplebfbs ${FlatBuffers_Sample_BFBS_SRCS}) - add_dependencies(flatsamplebfbs generated_code) - - if(FLATBUFFERS_BUILD_CPP17) - # Don't generate header for flattests_cpp17 target. - # This target uses "generated_cpp17/monster_test_generated.h" - # produced by direct call of generate_code.py script. - add_executable(flattests_cpp17 ${FlatBuffers_Tests_CPP17_SRCS}) - add_dependencies(flattests_cpp17 generated_code) - target_compile_features(flattests_cpp17 PRIVATE cxx_std_17) - target_compile_definitions(flattests_cpp17 PRIVATE - FLATBUFFERS_TRACK_VERIFIER_BUFFER_SIZE - FLATBUFFERS_DEBUG_VERIFICATION_FAILURE=1 - ) - if(FLATBUFFERS_CODE_SANITIZE) - add_fsanitize_to_target(flattests_cpp17 ${FLATBUFFERS_CODE_SANITIZE}) - endif() - endif(FLATBUFFERS_BUILD_CPP17) -endif() - -if(FLATBUFFERS_BUILD_GRPCTEST) - if(CMAKE_COMPILER_IS_GNUCXX) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-unused-parameter -Wno-shadow") - endif() - if(NOT GRPC_INSTALL_PATH) - message(SEND_ERROR "GRPC_INSTALL_PATH variable is not defined. See grpc/README.md") - endif() - if(NOT PROTOBUF_DOWNLOAD_PATH) - message(SEND_ERROR "PROTOBUF_DOWNLOAD_PATH variable is not defined. See grpc/README.md") - endif() - INCLUDE_DIRECTORIES(${GRPC_INSTALL_PATH}/include) - INCLUDE_DIRECTORIES(${PROTOBUF_DOWNLOAD_PATH}/src) - find_package(Threads REQUIRED) - list(APPEND CMAKE_PREFIX_PATH ${GRPC_INSTALL_PATH}) - find_package(absl CONFIG REQUIRED) - find_package(protobuf CONFIG REQUIRED) - find_package(gRPC CONFIG REQUIRED) - add_executable(grpctest ${FlatBuffers_GRPCTest_SRCS}) - add_dependencies(grpctest generated_code) - target_link_libraries(grpctest PRIVATE gRPC::grpc++_unsecure gRPC::grpc_unsecure gRPC::gpr pthread dl) - if(FLATBUFFERS_CODE_SANITIZE AND NOT WIN32) - # GRPC test has problems with alignment and will fail under ASAN/UBSAN. - # add_fsanitize_to_target(grpctest ${FLATBUFFERS_CODE_SANITIZE}) - endif() -endif() - - -if(FLATBUFFERS_INSTALL) - include(GNUInstallDirs) - - install(DIRECTORY include/flatbuffers DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) - - set(FB_CMAKE_DIR "${CMAKE_INSTALL_LIBDIR}/cmake/flatbuffers") - - configure_file(CMake/flatbuffers-config-version.cmake.in flatbuffers-config-version.cmake @ONLY) - install( - FILES "CMake/flatbuffers-config.cmake" "${CMAKE_CURRENT_BINARY_DIR}/flatbuffers-config-version.cmake" - DESTINATION ${FB_CMAKE_DIR} - ) - - if(FLATBUFFERS_BUILD_FLATLIB) - if(CMAKE_VERSION VERSION_LESS 3.0) - install( - TARGETS flatbuffers EXPORT FlatBuffersTargets - ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} - ) - else() - install( - TARGETS flatbuffers EXPORT FlatBuffersTargets - ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} - INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} - ) - endif() - - install(EXPORT FlatBuffersTargets - FILE FlatBuffersTargets.cmake - NAMESPACE flatbuffers:: - DESTINATION ${FB_CMAKE_DIR} - ) - endif() - - if(FLATBUFFERS_BUILD_FLATC) - install( - TARGETS flatc EXPORT FlatcTargets - RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} - ) - - install( - EXPORT FlatcTargets - FILE FlatcTargets.cmake - NAMESPACE flatbuffers:: - DESTINATION ${FB_CMAKE_DIR} - ) - endif() - - if(FLATBUFFERS_BUILD_SHAREDLIB) - if(CMAKE_VERSION VERSION_LESS 3.0) - install( - TARGETS flatbuffers_shared EXPORT FlatBuffersSharedTargets - ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} - RUNTIME DESTINATION ${CMAKE_INSTALL_LIBDIR} - LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} - ) - else() - install( - TARGETS flatbuffers_shared EXPORT FlatBuffersSharedTargets - ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} - RUNTIME DESTINATION ${CMAKE_INSTALL_LIBDIR} - LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} - INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} - ) - endif() - - install( - EXPORT FlatBuffersSharedTargets - FILE FlatBuffersSharedTargets.cmake - NAMESPACE flatbuffers:: - DESTINATION ${FB_CMAKE_DIR} - ) - endif() - - if(FLATBUFFERS_BUILD_SHAREDLIB OR FLATBUFFERS_BUILD_FLATLIB) - configure_file(CMake/flatbuffers.pc.in flatbuffers.pc @ONLY) - install( - FILES "${CMAKE_CURRENT_BINARY_DIR}/flatbuffers.pc" - DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig - ) - endif() -endif() - -if(FLATBUFFERS_BUILD_TESTS) - enable_testing() - - add_test(NAME flattests COMMAND flattests) - if(FLATBUFFERS_BUILD_CPP17) - add_test(NAME flattests_cpp17 COMMAND flattests_cpp17) - endif() - if(FLATBUFFERS_BUILD_GRPCTEST) - add_test(NAME grpctest COMMAND grpctest) - endif() -endif() - -# This target is sync-barrier. -# Other generate-dependent targets can depend on 'generated_code' only. -get_generated_output(fbs_generated) -if(fbs_generated) - # message(STATUS "Add generated_code target with files:${fbs_generated}") - add_custom_target(generated_code - DEPENDS ${fbs_generated} - COMMENT "All generated files were updated.") -endif() - -include(CMake/BuildFlatBuffers.cmake) - -if(UNIX) - # Use of CPack only supported on Linux systems. - if(FLATBUFFERS_PACKAGE_DEBIAN) - include(CMake/PackageDebian.cmake) - include(CPack) - endif() - if (FLATBUFFERS_PACKAGE_REDHAT) - include(CMake/PackageRedhat.cmake) - include(CPack) - endif() -endif() - -# Include for running Google Benchmarks. -if(FLATBUFFERS_BUILD_BENCHMARKS AND CMAKE_VERSION VERSION_GREATER 3.13) - add_subdirectory(benchmarks) -endif() - -# Add FlatBuffers::FlatBuffers interface, needed for FetchContent_Declare -add_library(FlatBuffers INTERFACE) -add_library(FlatBuffers::FlatBuffers ALIAS FlatBuffers) -target_include_directories( - FlatBuffers - INTERFACE $ - $) diff --git a/CMake/PackageDebian.cmake b/CMake/PackageDebian.cmake index f587ff7ffe..8ed1473378 100644 --- a/CMake/PackageDebian.cmake +++ b/CMake/PackageDebian.cmake @@ -17,23 +17,9 @@ if (UNIX) SET(CPACK_PACKAGE_VERSION "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}-${VERSION_COMMIT}") SET(CPACK_DEBIAN_PACKAGE_VERSION "${CPACK_PACKAGE_VERSION}") - # Derive architecture - IF(NOT CPACK_DEBIAN_PACKAGE_ARCHITECTURE) - FIND_PROGRAM(DPKG_CMD dpkg) - IF(NOT DPKG_CMD) - MESSAGE(STATUS "Can not find dpkg in your path, default to i386.") - SET(CPACK_DEBIAN_PACKAGE_ARCHITECTURE i386) - ENDIF(NOT DPKG_CMD) - EXECUTE_PROCESS(COMMAND "${DPKG_CMD}" --print-architecture - OUTPUT_VARIABLE CPACK_DEBIAN_PACKAGE_ARCHITECTURE - OUTPUT_STRIP_TRAILING_WHITESPACE - ) - ENDIF(NOT CPACK_DEBIAN_PACKAGE_ARCHITECTURE) - # Package name SET(CPACK_DEBIAN_PACKAGE_NAME "flatbuffers") SET(CPACK_RESOURCE_FILE_LICENSE ${CMAKE_SOURCE_DIR}/LICENSE.txt) - SET(CPACK_PACKAGE_FILE_NAME - "${CPACK_DEBIAN_PACKAGE_NAME}_${CPACK_DEBIAN_PACKAGE_VERSION}_${CPACK_DEBIAN_PACKAGE_ARCHITECTURE}") + set(CPACK_DEBIAN_FILE_NAME "DEB-DEFAULT") endif(UNIX) diff --git a/CMake/PackageRedhat.cmake b/CMake/PackageRedhat.cmake index 5b7c6fa4d0..78f8eaa76a 100644 --- a/CMake/PackageRedhat.cmake +++ b/CMake/PackageRedhat.cmake @@ -15,7 +15,7 @@ if (UNIX) set(CPACK_RPM_PACKAGE_NAME "flatbuffers") - # Assume this is not a cross complation build. + # Assume this is not a cross compilation build. if(NOT CPACK_RPM_PACKAGE_ARCHITECTURE) set(CPACK_RPM_PACKAGE_ARCHITECTURE "${CMAKE_SYSTEM_PROCESSOR}") endif(NOT CPACK_RPM_PACKAGE_ARCHITECTURE) diff --git a/CMakeLists.txt b/CMakeLists.txt index 21f1917204..38f48a6bb2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,32 +1,12 @@ # This is the legacy minimum version flatbuffers supported for a while. -cmake_minimum_required(VERSION 2.8.12...3.22.1) - -# CMake version 3.16 is the 'de-facto' minimum version for flatbuffers. If the -# current cmake is older than this, warn the user and include the legacy file to -# provide some level of support. -if(CMAKE_VERSION VERSION_LESS 3.16) - message(WARNING "Using cmake version ${CMAKE_VERSION} which is older than " - "our target version of 3.16. This will use the legacy CMakeLists.txt that " - "supports version 2.8.12 and higher, but not actively maintained. Consider " - "upgrading cmake to a newer version, as this may become a fatal error in the " - "future.") - # Use the legacy version of CMakeLists.txt - include(CMake/CMakeLists_legacy.cmake.in) - return() -endif() +cmake_minimum_required(VERSION 3.8...3.25.2) # Attempt to read the current version of flatbuffers by looking at the latest tag. include(CMake/Version.cmake) -if (POLICY CMP0048) - cmake_policy(SET CMP0048 NEW) - project(FlatBuffers - DESCRIPTION "Flatbuffers serialization library" +project(FlatBuffers VERSION ${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH} LANGUAGES CXX) -else() - project(FlatBuffers) -endif (POLICY CMP0048) # generate compile_commands.json set(CMAKE_EXPORT_COMPILE_COMMANDS ON) @@ -87,6 +67,12 @@ if(MSVC OR CMAKE_CXX_COMPILER_FRONTEND_VARIANT STREQUAL "MSVC") set(MSVC_LIKE ON) endif() +if(CMAKE_CXX_COMPILER_ID MATCHES "Clang") + set(IS_CLANG ON) +else() + set(IS_CLANG OFF) +endif() + if(DEFINED FLATBUFFERS_COMPILATION_TIMINGS) message("Recording Compilation Timings to ${FLATBUFFERS_COMPILATION_TIMINGS}") file(REMOVE ${FLATBUFFERS_COMPILATION_TIMINGS}) @@ -325,7 +311,7 @@ set(FlatBuffers_GRPCTest_SRCS # TODO(dbaileychess): Figure out how this would now work. I posted a question on # https://stackoverflow.com/questions/71772330/override-target-compile-options-via-cmake-command-line. # Append FLATBUFFERS_CXX_FLAGS to CMAKE_CXX_FLAGS. -if(DEFINED FLATBUFFERS_CXX_FLAGS AND NOT EXISTS "${CMAKE_TOOLCHAIN_FILE}") +if(DEFINED FLATBUFFERS_CXX_FLAGS) message(STATUS "extend CXX_FLAGS with ${FLATBUFFERS_CXX_FLAGS}") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${FLATBUFFERS_CXX_FLAGS}") endif() @@ -338,9 +324,7 @@ function(add_fsanitize_to_target _target _sanitizer) else() # FLATBUFFERS_CODE_SANITIZE: boolean {ON,OFF,YES,NO} or string with list of sanitizer. # List of sanitizer is string starts with '=': "=address,undefined,thread,memory". - if((${CMAKE_CXX_COMPILER_ID} MATCHES "Clang") OR - ((${CMAKE_CXX_COMPILER_ID} MATCHES "GNU") AND NOT (CMAKE_CXX_COMPILER_VERSION VERSION_LESS "4.9")) - ) + if(IS_CLANG OR (CMAKE_COMPILER_IS_GNUCXX AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 4.9)) set(_sanitizer_flags "=address,undefined") if(_sanitizer MATCHES "=.*") # override default by user-defined sanitizer list @@ -351,13 +335,14 @@ function(add_fsanitize_to_target _target _sanitizer) "-fsanitize${_sanitizer_flags}") target_link_libraries(${_target} PRIVATE "-fsanitize${_sanitizer_flags}") - set_property(TARGET ${_target} PROPERTY POSITION_INDEPENDENT_CODE ON) + set_target_properties(${_target} PROPERTIES POSITION_INDEPENDENT_CODE ON) message(STATUS "Sanitizer ${_sanitizer_flags} added to ${_target}") endif() endif() endfunction() function(add_pch_to_target _target _pch_header) + # the command is available since cmake 3.16 if(COMMAND target_precompile_headers) target_precompile_headers(${_target} PRIVATE ${_pch_header}) if(NOT MSVC) @@ -401,11 +386,6 @@ if(MSVC_LIKE) > ) else() - if("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang") - set(IS_CLANG ON) - else() - set(IS_CLANG OFF) - endif() target_compile_options(ProjectConfig INTERFACE -Wall @@ -502,7 +482,7 @@ if(FLATBUFFERS_BUILD_FLATC) target_link_libraries(flatc PRIVATE $) target_compile_options(flatc - PUBLIC + PRIVATE $<$,$>: /MT > @@ -531,7 +511,8 @@ if(FLATBUFFERS_BUILD_SHAREDLIB) # stability guarantees. Therefore, always use the full version as SOVERSION # in order to avoid breaking reverse dependencies on upgrades. set(FlatBuffers_Library_SONAME_FULL "${PROJECT_VERSION}") - set_target_properties(flatbuffers_shared PROPERTIES OUTPUT_NAME flatbuffers + set_target_properties(flatbuffers_shared PROPERTIES + OUTPUT_NAME flatbuffers SOVERSION "${FlatBuffers_Library_SONAME_FULL}" VERSION "${FlatBuffers_Library_SONAME_FULL}") if(FLATBUFFERS_ENABLE_PCH) @@ -678,7 +659,7 @@ if(FLATBUFFERS_BUILD_TESTS) add_executable(flattests_cpp17 ${FlatBuffers_Tests_CPP17_SRCS}) add_dependencies(flattests_cpp17 generated_code) target_link_libraries(flattests_cpp17 PRIVATE $) - target_compile_features(flattests_cpp17 PRIVATE cxx_std_17) + target_compile_features(flattests_cpp17 PRIVATE cxx_std_17) # requires cmake 3.8 if(FLATBUFFERS_CODE_SANITIZE) add_fsanitize_to_target(flattests_cpp17 ${FLATBUFFERS_CODE_SANITIZE}) diff --git a/benchmarks/CMakeLists.txt b/benchmarks/CMakeLists.txt index 2842d60d92..18f6ef9fd4 100644 --- a/benchmarks/CMakeLists.txt +++ b/benchmarks/CMakeLists.txt @@ -1,8 +1,9 @@ # Setup for running Google Benchmarks (https://github.com/google/benchmark) on -# flatbuffers. This requires both that benchmark library and its depenency gtest +# flatbuffers. This requires both that benchmark library and its dependency gtest # to build. Instead of including them here or doing a submodule, this uses # FetchContent (https://cmake.org/cmake/help/latest/module/FetchContent.html) to # grab the dependencies at config time. This requires CMake 3.14 or higher. + cmake_minimum_required(VERSION 3.14) include(FetchContent) @@ -62,8 +63,8 @@ add_custom_command( add_executable(flatbenchmark ${FlatBenchmark_SRCS}) # Benchmark requires C++11 -target_compile_features(flatbenchmark PUBLIC - cxx_std_11 +target_compile_features(flatbenchmark PRIVATE + cxx_std_11 # requires cmake 3.8 ) target_compile_options(flatbenchmark @@ -81,7 +82,7 @@ set_target_properties(flatbenchmark # The includes of the benchmark files are fully qualified from flatbuffers root. target_include_directories(flatbenchmark PUBLIC ${CMAKE_SOURCE_DIR}) -target_link_libraries(flatbenchmark +target_link_libraries(flatbenchmark PRIVATE benchmark::benchmark_main # _main to use their entry point gtest # Link to gtest so we can also assert in the benchmarks ) \ No newline at end of file From 7fb785fd898a5379944457a399176235fc80d337 Mon Sep 17 00:00:00 2001 From: CodeMaster7000 <95772109+CodeMaster7000@users.noreply.github.com> Date: Tue, 31 Jan 2023 05:36:30 +0000 Subject: [PATCH 108/571] Rename LICENSE.txt to LICENSE (#7808) * Update PackageDebian.cmake * Rename LICENSE.txt to LICENSE * Update readme.md --------- Co-authored-by: Derek Bailey --- CMake/PackageDebian.cmake | 2 +- LICENSE.txt => LICENSE | 0 readme.md | 2 +- 3 files changed, 2 insertions(+), 2 deletions(-) rename LICENSE.txt => LICENSE (100%) diff --git a/CMake/PackageDebian.cmake b/CMake/PackageDebian.cmake index 8ed1473378..d8692c63d2 100644 --- a/CMake/PackageDebian.cmake +++ b/CMake/PackageDebian.cmake @@ -19,7 +19,7 @@ if (UNIX) # Package name SET(CPACK_DEBIAN_PACKAGE_NAME "flatbuffers") - SET(CPACK_RESOURCE_FILE_LICENSE ${CMAKE_SOURCE_DIR}/LICENSE.txt) + SET(CPACK_RESOURCE_FILE_LICENSE ${CMAKE_SOURCE_DIR}/LICENSE) set(CPACK_DEBIAN_FILE_NAME "DEB-DEFAULT") endif(UNIX) diff --git a/LICENSE.txt b/LICENSE similarity index 100% rename from LICENSE.txt rename to LICENSE diff --git a/readme.md b/readme.md index 0f38c8eb70..f90c959afd 100644 --- a/readme.md +++ b/readme.md @@ -77,4 +77,4 @@ Please see our [Security Policy](SECURITY.md) for reporting vulnerabilities. [FlatBuffers Issues Tracker]: http://github.com/google/flatbuffers/issues [stackoverflow.com]: http://stackoverflow.com/search?q=flatbuffers [landing page]: https://google.github.io/flatbuffers - [LICENSE]: https://github.com/google/flatbuffers/blob/master/LICENSE.txt + [LICENSE]: https://github.com/google/flatbuffers/blob/master/LICENSE From a6f41944899e65b38ec45ee82f6840248f06b471 Mon Sep 17 00:00:00 2001 From: Bernie Innocenti Date: Mon, 30 Jan 2023 21:59:17 -0800 Subject: [PATCH 109/571] Fix std::span autodetection (#7805) The current detection method fails on GCC 12.2 with -std=c++20 because the __cpp_lib_span macro is undefined. As per https://en.cppreference.com/w/cpp/utility/feature_test , __cpp_lib_span requires including either or . Since both these headers were added in C++20, checking for C++20 is sufficient (and simpler than using the library feature-test macro). Signed-off-by: Bernie Innocenti Co-authored-by: Derek Bailey --- include/flatbuffers/stl_emulation.h | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/include/flatbuffers/stl_emulation.h b/include/flatbuffers/stl_emulation.h index 452ddb832f..fd3a8cda71 100644 --- a/include/flatbuffers/stl_emulation.h +++ b/include/flatbuffers/stl_emulation.h @@ -41,15 +41,18 @@ #include #endif -// The __cpp_lib_span is the predefined feature macro. -#if defined(FLATBUFFERS_USE_STD_SPAN) - #include -#elif defined(__cpp_lib_span) && defined(__has_include) - #if __has_include() - #include - #include - #define FLATBUFFERS_USE_STD_SPAN +#ifndef FLATBUFFERS_USE_STD_SPAN + // Testing __cpp_lib_span requires including either or , + // both of which were added in C++20. + // See: https://en.cppreference.com/w/cpp/utility/feature_test + #if defined(__cplusplus) && __cplusplus >= 202002L + #define FLATBUFFERS_USE_STD_SPAN 1 #endif +#endif // FLATBUFFERS_USE_STD_SPAN + +#if defined(FLATBUFFERS_USE_STD_SPAN) + #include + #include #else // Disable non-trivial ctors if FLATBUFFERS_SPAN_MINIMAL defined. #if !defined(FLATBUFFERS_TEMPLATES_ALIASES) From 08ebd202e20f786a7bced95b4a8c56fad12c4e14 Mon Sep 17 00:00:00 2001 From: Khanh Nguyen <44149581+Kn99HN@users.noreply.github.com> Date: Tue, 31 Jan 2023 09:35:34 -0800 Subject: [PATCH 110/571] Final refactor for bfsb_generator* and text generator (#7806) * Refactor BfbsGenerator to use CodeGenerator interface * Update * Refactor bfbs generator * Refactor bfbs generator for lua and nim. Remove old code that use Generator interface. * Update import * Update CMakeLists * Update BUILD file * Update BUILD file for src * Remove from Android CMakeLists and add error message * Update * Add generate root file function to Code Generator interface * Update * Update * Minor format fix --- BUILD.bazel | 1 - CMakeLists.txt | 1 - .../src/main/cpp/flatbuffers/CMakeLists.txt | 1 - include/flatbuffers/code_generator.h | 9 +- include/flatbuffers/flatc.h | 34 +---- src/BUILD.bazel | 2 + src/bfbs_gen.h | 13 +- src/bfbs_gen_lua.cpp | 53 ++++++- src/bfbs_gen_lua.h | 4 +- src/bfbs_gen_nim.cpp | 57 ++++++- src/bfbs_gen_nim.h | 4 +- src/flatc.cpp | 139 +++--------------- src/flatc_main.cpp | 47 +++--- src/idl_gen_binary.cpp | 9 ++ src/idl_gen_cpp.cpp | 9 ++ src/idl_gen_csharp.cpp | 9 ++ src/idl_gen_dart.cpp | 9 ++ src/idl_gen_go.cpp | 9 ++ src/idl_gen_java.cpp | 9 ++ src/idl_gen_json_schema.cpp | 8 + src/idl_gen_kotlin.cpp | 8 + src/idl_gen_lobster.cpp | 9 ++ src/idl_gen_lua.cpp | 9 ++ src/idl_gen_php.cpp | 9 ++ src/idl_gen_python.cpp | 8 + src/idl_gen_rust.cpp | 8 + src/idl_gen_swift.cpp | 9 ++ src/idl_gen_text.cpp | 59 ++++++++ .../bfbs_generator.h => src/idl_gen_text.h | 28 +--- src/idl_gen_ts.cpp | 7 + 30 files changed, 358 insertions(+), 223 deletions(-) rename include/flatbuffers/bfbs_generator.h => src/idl_gen_text.h (50%) diff --git a/BUILD.bazel b/BUILD.bazel index f88da4155d..de910bc530 100644 --- a/BUILD.bazel +++ b/BUILD.bazel @@ -41,7 +41,6 @@ filegroup( "include/flatbuffers/allocator.h", "include/flatbuffers/array.h", "include/flatbuffers/base.h", - "include/flatbuffers/bfbs_generator.h", "include/flatbuffers/buffer.h", "include/flatbuffers/buffer_ref.h", "include/flatbuffers/code_generator.h", diff --git a/CMakeLists.txt b/CMakeLists.txt index 38f48a6bb2..27d80859f7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -122,7 +122,6 @@ set(FlatBuffers_Library_SRCS include/flatbuffers/allocator.h include/flatbuffers/array.h include/flatbuffers/base.h - include/flatbuffers/bfbs_generator.h include/flatbuffers/buffer.h include/flatbuffers/buffer_ref.h include/flatbuffers/default_allocator.h diff --git a/android/app/src/main/cpp/flatbuffers/CMakeLists.txt b/android/app/src/main/cpp/flatbuffers/CMakeLists.txt index e1dd1e8d35..ee92715325 100644 --- a/android/app/src/main/cpp/flatbuffers/CMakeLists.txt +++ b/android/app/src/main/cpp/flatbuffers/CMakeLists.txt @@ -18,7 +18,6 @@ set(FlatBuffers_Library_SRCS ${FLATBUFFERS_SRC}/include/flatbuffers/allocator.h ${FLATBUFFERS_SRC}/include/flatbuffers/array.h ${FLATBUFFERS_SRC}/include/flatbuffers/base.h - ${FLATBUFFERS_SRC}/include/flatbuffers/bfbs_generator.h ${FLATBUFFERS_SRC}/include/flatbuffers/buffer.h ${FLATBUFFERS_SRC}/include/flatbuffers/buffer_ref.h ${FLATBUFFERS_SRC}/include/flatbuffers/default_allocator.h diff --git a/include/flatbuffers/code_generator.h b/include/flatbuffers/code_generator.h index 15baf46bd2..85d4430cfa 100644 --- a/include/flatbuffers/code_generator.h +++ b/include/flatbuffers/code_generator.h @@ -32,7 +32,8 @@ class CodeGenerator { enum Status { OK = 0, ERROR = 1, - NOT_IMPLEMENTED = 2, + FAILED_VERIFICATION = 2, + NOT_IMPLEMENTED = 3 }; // Generate code from the provided `parser`. @@ -52,11 +53,17 @@ class CodeGenerator { virtual Status GenerateGrpcCode(const Parser &parser, const std::string &path, const std::string &filename) = 0; + virtual Status GenerateRootFile(const Parser &parser, + const std::string &path) = 0; + virtual bool IsSchemaOnly() const = 0; virtual bool SupportsBfbsGeneration() const = 0; + virtual bool SupportsRootFileGeneration() const = 0; + virtual IDLOptions::Language Language() const = 0; + virtual std::string LanguageName() const = 0; protected: diff --git a/include/flatbuffers/flatc.h b/include/flatbuffers/flatc.h index b373052196..a8fa950877 100644 --- a/include/flatbuffers/flatc.h +++ b/include/flatbuffers/flatc.h @@ -23,7 +23,6 @@ #include #include -#include "flatbuffers/bfbs_generator.h" #include "flatbuffers/code_generator.h" #include "flatbuffers/flatbuffers.h" #include "flatbuffers/idl.h" @@ -69,29 +68,6 @@ struct FlatCOption { class FlatCompiler { public: - // Output generator for the various programming languages and formats we - // support. - struct Generator { - typedef bool (*GenerateFn)(const flatbuffers::Parser &parser, - const std::string &path, - const std::string &file_name); - typedef std::string (*MakeRuleFn)(const flatbuffers::Parser &parser, - const std::string &path, - const std::string &file_name); - typedef bool (*ParsingCompletedFn)(const flatbuffers::Parser &parser, - const std::string &output_path); - - GenerateFn generate; - const char *lang_name; - bool schema_only; - GenerateFn generateGRPC; - flatbuffers::IDLOptions::Language lang; - FlatCOption option; - MakeRuleFn make_rule; - BfbsGenerator *bfbs_generator; - ParsingCompletedFn parsing_completed; - }; - typedef void (*WarnFn)(const FlatCompiler *flatc, const std::string &warn, bool show_exe_name); @@ -100,14 +76,8 @@ class FlatCompiler { // Parameters required to initialize the FlatCompiler. struct InitParams { - InitParams() - : generators(nullptr), - num_generators(0), - warn_fn(nullptr), - error_fn(nullptr) {} - - const Generator *generators; - size_t num_generators; + InitParams() : warn_fn(nullptr), error_fn(nullptr) {} + WarnFn warn_fn; ErrorFn error_fn; }; diff --git a/src/BUILD.bazel b/src/BUILD.bazel index 9f77d7f9ce..3f4ba0c7f9 100644 --- a/src/BUILD.bazel +++ b/src/BUILD.bazel @@ -12,6 +12,7 @@ cc_library( "code_generators.cpp", "idl_gen_fbs.cpp", "idl_gen_text.cpp", + "idl_gen_text.h", "idl_parser.cpp", "reflection.cpp", "util.cpp", @@ -98,6 +99,7 @@ cc_library( "idl_gen_swift.cpp", "idl_gen_swift.h", "idl_gen_text.cpp", + "idl_gen_text.h", "idl_gen_ts.cpp", "idl_gen_ts.h", "idl_namer.h", diff --git a/src/bfbs_gen.h b/src/bfbs_gen.h index a18cdcb992..ed20dc8965 100644 --- a/src/bfbs_gen.h +++ b/src/bfbs_gen.h @@ -19,7 +19,7 @@ #include -#include "flatbuffers/bfbs_generator.h" +#include "flatbuffers/code_generator.h" #include "flatbuffers/reflection_generated.h" namespace flatbuffers { @@ -96,20 +96,19 @@ static bool IsVector(const reflection::BaseType base_type) { // A concrete base Flatbuffer Generator that specific language generators can // derive from. -class BaseBfbsGenerator : public BfbsGenerator { +class BaseBfbsGenerator : public CodeGenerator { public: virtual ~BaseBfbsGenerator() {} BaseBfbsGenerator() : schema_(nullptr) {} - virtual GeneratorStatus GenerateFromSchema( + virtual Status GenerateFromSchema( const reflection::Schema *schema) = 0; - // virtual uint64_t SupportedAdvancedFeatures() const = 0; - // Override of the Generator::generate method that does the initial + // Override of the Generator::GenerateCode method that does the initial // deserialization and verification steps. - GeneratorStatus Generate(const uint8_t *buffer, + Status GenerateCode(const uint8_t *buffer, int64_t length) FLATBUFFERS_OVERRIDE { flatbuffers::Verifier verifier(buffer, static_cast(length)); if (!reflection::VerifySchemaBuffer(verifier)) { @@ -125,7 +124,7 @@ class BaseBfbsGenerator : public BfbsGenerator { return FAILED_VERIFICATION; } - GeneratorStatus status = GenerateFromSchema(schema_); + Status status = GenerateFromSchema(schema_); schema_ = nullptr; return status; } diff --git a/src/bfbs_gen_lua.cpp b/src/bfbs_gen_lua.cpp index 2c140bb15c..8823d912b1 100644 --- a/src/bfbs_gen_lua.cpp +++ b/src/bfbs_gen_lua.cpp @@ -26,7 +26,6 @@ // Ensure no includes to flatc internals. bfbs_gen.h and generator.h are OK. #include "bfbs_gen.h" #include "bfbs_namer.h" -#include "flatbuffers/bfbs_generator.h" // The intermediate representation schema. #include "flatbuffers/reflection.h" @@ -79,15 +78,57 @@ class LuaBfbsGenerator : public BaseBfbsGenerator { flatc_version_(flatc_version), namer_(LuaDefaultConfig(), LuaKeywords()) {} - GeneratorStatus GenerateFromSchema(const r::Schema *schema) - FLATBUFFERS_OVERRIDE { - if (!GenerateEnums(schema->enums())) { return FAILED; } + Status GenerateFromSchema(const r::Schema *schema) FLATBUFFERS_OVERRIDE { + if (!GenerateEnums(schema->enums())) { return ERROR; } if (!GenerateObjects(schema->objects(), schema->root_table())) { - return FAILED; + return ERROR; } return OK; } + using BaseBfbsGenerator::GenerateCode; + + Status GenerateCode(const Parser &parser, const std::string &path, + const std::string &filename) FLATBUFFERS_OVERRIDE { + if (!GenerateLua(parser, path, filename)) { return ERROR; } + return OK; + } + + Status GenerateMakeRule(const Parser &parser, const std::string &path, + const std::string &filename, + std::string &output) override { + (void)parser; + (void)path; + (void)filename; + (void)output; + return Status::NOT_IMPLEMENTED; + } + + Status GenerateGrpcCode(const Parser &parser, const std::string &path, + const std::string &filename) override { + (void)parser; + (void)path; + (void)filename; + return Status::NOT_IMPLEMENTED; + } + + Status GenerateRootFile(const Parser &parser, + const std::string &path) override { + (void)parser; + (void)path; + return Status::NOT_IMPLEMENTED; + } + + bool IsSchemaOnly() const override { return true; } + + bool SupportsBfbsGeneration() const override { return true; } + + bool SupportsRootFileGeneration() const override { return false; } + + IDLOptions::Language Language() const override { return IDLOptions::kLua; } + + std::string LanguageName() const override { return "Lua"; } + uint64_t SupportedAdvancedFeatures() const FLATBUFFERS_OVERRIDE { return 0xF; } @@ -625,7 +666,7 @@ class LuaBfbsGenerator : public BaseBfbsGenerator { }; } // namespace -std::unique_ptr NewLuaBfbsGenerator( +std::unique_ptr NewLuaBfbsGenerator( const std::string &flatc_version) { return std::unique_ptr(new LuaBfbsGenerator(flatc_version)); } diff --git a/src/bfbs_gen_lua.h b/src/bfbs_gen_lua.h index 9aa3801154..86d97621eb 100644 --- a/src/bfbs_gen_lua.h +++ b/src/bfbs_gen_lua.h @@ -20,12 +20,12 @@ #include #include -#include "flatbuffers/bfbs_generator.h" +#include "flatbuffers/code_generator.h" namespace flatbuffers { // Constructs a new Lua Code generator. -std::unique_ptr NewLuaBfbsGenerator( +std::unique_ptr NewLuaBfbsGenerator( const std::string &flatc_version); } // namespace flatbuffers diff --git a/src/bfbs_gen_nim.cpp b/src/bfbs_gen_nim.cpp index 6b2c130f95..45bd3c33d4 100644 --- a/src/bfbs_gen_nim.cpp +++ b/src/bfbs_gen_nim.cpp @@ -26,7 +26,6 @@ // Ensure no includes to flatc internals. bfbs_gen.h and generator.h are OK. #include "bfbs_gen.h" #include "bfbs_namer.h" -#include "flatbuffers/bfbs_generator.h" // The intermediate representation schema. #include "flatbuffers/reflection.h" @@ -96,8 +95,7 @@ class NimBfbsGenerator : public BaseBfbsGenerator { flatc_version_(flatc_version), namer_(NimDefaultConfig(), NimKeywords()) {} - GeneratorStatus GenerateFromSchema(const r::Schema *schema) - FLATBUFFERS_OVERRIDE { + Status GenerateFromSchema(const r::Schema *schema) FLATBUFFERS_OVERRIDE { ForAllEnums(schema->enums(), [&](const r::Enum *enum_def) { StartCodeBlock(enum_def); GenerateEnum(enum_def); @@ -109,6 +107,51 @@ class NimBfbsGenerator : public BaseBfbsGenerator { return OK; } + using BaseBfbsGenerator::GenerateCode; + + Status GenerateCode(const Parser &parser, const std::string &path, + const std::string &filename) override { + (void)parser; + (void)path; + (void)filename; + return NOT_IMPLEMENTED; + } + + Status GenerateMakeRule(const Parser &parser, const std::string &path, + const std::string &filename, + std::string &output) override { + (void)parser; + (void)path; + (void)filename; + (void)output; + return NOT_IMPLEMENTED; + } + + Status GenerateGrpcCode(const Parser &parser, const std::string &path, + const std::string &filename) override { + (void)parser; + (void)path; + (void)filename; + return NOT_IMPLEMENTED; + } + + Status GenerateRootFile(const Parser &parser, + const std::string &path) override { + (void)parser; + (void)path; + return NOT_IMPLEMENTED; + } + + bool IsSchemaOnly() const override { return true; } + + bool SupportsBfbsGeneration() const override { return true; } + + bool SupportsRootFileGeneration() const override { return false; } + + IDLOptions::Language Language() const override { return IDLOptions::kNim; } + + std::string LanguageName() const override { return "Nim"; } + uint64_t SupportedAdvancedFeatures() const FLATBUFFERS_OVERRIDE { return r::AdvancedArrayFeatures | r::AdvancedUnionFeatures | r::OptionalScalars | r::DefaultVectorsAndStrings; @@ -472,9 +515,11 @@ class NimBfbsGenerator : public BaseBfbsGenerator { if (IsFloatingPoint(base_type)) { if (field->default_real() != field->default_real()) { return "NaN"; - } else if (field->default_real() == std::numeric_limits::infinity()) { + } else if (field->default_real() == + std::numeric_limits::infinity()) { return "Inf"; - } else if (field->default_real() == -std::numeric_limits::infinity()) { + } else if (field->default_real() == + -std::numeric_limits::infinity()) { return "-Inf"; } return NumToString(field->default_real()); @@ -639,7 +684,7 @@ class NimBfbsGenerator : public BaseBfbsGenerator { }; } // namespace -std::unique_ptr NewNimBfbsGenerator( +std::unique_ptr NewNimBfbsGenerator( const std::string &flatc_version) { return std::unique_ptr(new NimBfbsGenerator(flatc_version)); } diff --git a/src/bfbs_gen_nim.h b/src/bfbs_gen_nim.h index 80be16d014..39e8b21808 100644 --- a/src/bfbs_gen_nim.h +++ b/src/bfbs_gen_nim.h @@ -20,12 +20,12 @@ #include #include -#include "flatbuffers/bfbs_generator.h" +#include "flatbuffers/code_generator.h" namespace flatbuffers { // Constructs a new Nim Code generator. -std::unique_ptr NewNimBfbsGenerator( +std::unique_ptr NewNimBfbsGenerator( const std::string &flatc_version); } // namespace flatbuffers diff --git a/src/flatc.cpp b/src/flatc.cpp index dc7dcb9a32..0534cdffb6 100644 --- a/src/flatc.cpp +++ b/src/flatc.cpp @@ -321,17 +321,11 @@ std::string FlatCompiler::GetShortUsageString( ss << ", "; } - // TODO(derekbailey): These should be generated from this.generators - for (size_t i = 0; i < params_.num_generators; ++i) { - const Generator &g = params_.generators[i]; - AppendShortOption(ss, g.option); - ss << ", "; - } - for (const FlatCOption &option : flatc_options) { AppendShortOption(ss, option); ss << ", "; } + ss.seekp(-2, ss.cur); ss << "]... FILE... [-- BINARY_FILE...]"; std::string help = ss.str(); @@ -349,14 +343,8 @@ std::string FlatCompiler::GetUsageString( for (const FlatCOption &option : language_options) { AppendOption(ss, option, 80, 25); } - - // TODO(derekbailey): These should be generated from this.generators - for (size_t i = 0; i < params_.num_generators; ++i) { - const Generator &g = params_.generators[i]; - AppendOption(ss, g.option, 80, 25); - } - ss << "\n"; + for (const FlatCOption &option : flatc_options) { AppendOption(ss, option, 80, 25); } @@ -412,9 +400,6 @@ FlatCOptions FlatCompiler::ParseFromCommandLineArguments(int argc, FlatCOptions options; - // Default all generates to disabled. - options.generator_enabled.resize(params_.num_generators, false); - options.program_name = std::string(argv[0]); IDLOptions &opts = options.opts; @@ -641,41 +626,23 @@ FlatCOptions FlatCompiler::ParseFromCommandLineArguments(int argc, } else { // Look up if the command line argument refers to a code generator. auto code_generator_it = code_generators_.find(arg); - if (code_generator_it != code_generators_.end()) { - std::shared_ptr code_generator = - code_generator_it->second; - - // TODO(derekbailey): remove in favor of just checking if - // generators.empty(). - options.any_generator = true; - opts.lang_to_generate |= code_generator->Language(); - - if (code_generator->SupportsBfbsGeneration()) { - opts.binary_schema_comments = true; - options.requires_bfbs = true; - } - - options.generators.push_back(std::move(code_generator)); - } else { - // TODO(derekbailey): deprecate the following logic in favor of the - // code generator map above. - for (size_t i = 0; i < params_.num_generators; ++i) { - if (arg == "--" + params_.generators[i].option.long_opt || - arg == "-" + params_.generators[i].option.short_opt) { - options.generator_enabled[i] = true; - options.any_generator = true; - opts.lang_to_generate |= params_.generators[i].lang; - if (params_.generators[i].bfbs_generator) { - opts.binary_schema_comments = true; - options.requires_bfbs = true; - } - goto found; - } - } + if (code_generator_it == code_generators_.end()) { Error("unknown commandline argument: " + arg, true); + return options; } - found:; + std::shared_ptr code_generator = + code_generator_it->second; + + // TODO(derekbailey): remove in favor of just checking if + // generators.empty(). + options.any_generator = true; + opts.lang_to_generate |= code_generator->Language(); + + auto is_binary_schema = code_generator->SupportsBfbsGeneration(); + opts.binary_schema_comments = is_binary_schema; + options.requires_bfbs = is_binary_schema; + options.generators.push_back(std::move(code_generator)); } } else { options.filenames.push_back(flatbuffers::PosixPath(argv[argi])); @@ -886,58 +853,6 @@ std::unique_ptr FlatCompiler::GenerateCode(const FlatCOptions &options, } } - // TODO(derekbailey): Deprecate the following in favor to the above. - for (size_t i = 0; i < params_.num_generators; ++i) { - if (options.generator_enabled[i]) { - if (!options.print_make_rules) { - flatbuffers::EnsureDirExists(options.output_path); - - // Prefer bfbs generators if present. - if (params_.generators[i].bfbs_generator) { - const GeneratorStatus status = - params_.generators[i].bfbs_generator->Generate(bfbs_buffer, - bfbs_length); - if (status != OK) { - Error(std::string("Unable to generate ") + - params_.generators[i].lang_name + " for " + filebase + - " using bfbs generator."); - } - } else { - if ((!params_.generators[i].schema_only || - (is_schema || is_binary_schema)) && - !params_.generators[i].generate(*parser, options.output_path, - filebase)) { - Error(std::string("Unable to generate ") + - params_.generators[i].lang_name + " for " + filebase); - } - } - } else { - if (params_.generators[i].make_rule == nullptr) { - Error(std::string("Cannot generate make rule for ") + - params_.generators[i].lang_name); - } else { - std::string make_rule = params_.generators[i].make_rule( - *parser, options.output_path, filename); - if (!make_rule.empty()) - printf("%s\n", - flatbuffers::WordWrap(make_rule, 80, " ", " \\").c_str()); - } - } - if (options.grpc_enabled) { - if (params_.generators[i].generateGRPC != nullptr) { - if (!params_.generators[i].generateGRPC( - *parser, options.output_path, filebase)) { - Error(std::string("Unable to generate GRPC interface for ") + - params_.generators[i].lang_name); - } - } else { - Warn(std::string("GRPC interface generator not implemented for ") + - params_.generators[i].lang_name); - } - } - } - } - if (!opts.root_type.empty()) { if (!parser->SetRootType(opts.root_type.c_str())) Error("unknown root type: " + opts.root_type); @@ -956,10 +871,6 @@ std::unique_ptr FlatCompiler::GenerateCode(const FlatCOptions &options, } int FlatCompiler::Compile(const FlatCOptions &options) { - if (params_.generators == nullptr || params_.num_generators == 0) { - return 0; - } - // TODO(derekbailey): change to std::optional Parser conform_parser = GetConformParser(options); @@ -1014,18 +925,16 @@ int FlatCompiler::Compile(const FlatCOptions &options) { return 0; } + if (options.generators.empty()) { + Error("No generator registered"); + return -1; + } + std::unique_ptr parser = GenerateCode(options, conform_parser); - // Once all the files have been parsed, run any generators Parsing Completed - // function for final generation. - for (size_t i = 0; i < params_.num_generators; ++i) { - if (options.generator_enabled[i] && - params_.generators[i].parsing_completed != nullptr) { - if (!params_.generators[i].parsing_completed(*parser, - options.output_path)) { - Error("failed running parsing completed for " + - std::string(params_.generators[i].lang_name)); - } + for (const auto &code_generator : options.generators) { + if (code_generator->SupportsRootFileGeneration()) { + code_generator->GenerateRootFile(*parser, options.output_path); } } diff --git a/src/flatc_main.cpp b/src/flatc_main.cpp index 882384471b..52203b135e 100644 --- a/src/flatc_main.cpp +++ b/src/flatc_main.cpp @@ -36,6 +36,7 @@ #include "idl_gen_python.h" #include "idl_gen_rust.h" #include "idl_gen_swift.h" +#include "idl_gen_text.h" #include "idl_gen_ts.h" static const char *g_program_name = nullptr; @@ -70,34 +71,9 @@ void LogCompilerError(const std::string &err) { int main(int argc, const char *argv[]) { const std::string flatbuffers_version(flatbuffers::FLATBUFFERS_VERSION()); - std::unique_ptr bfbs_gen_lua = - flatbuffers::NewLuaBfbsGenerator(flatbuffers_version); - std::unique_ptr bfbs_gen_nim = - flatbuffers::NewNimBfbsGenerator(flatbuffers_version); - g_program_name = argv[0]; - const flatbuffers::FlatCompiler::Generator generators[] = { - { flatbuffers::GenerateTextFile, "text", false, nullptr, - flatbuffers::IDLOptions::kJson, - flatbuffers::FlatCOption{ - "t", "json", "", "Generate text output for any data definitions" }, - - flatbuffers::TextMakeRule, nullptr, nullptr }, - { flatbuffers::GenerateLua, "Lua", true, nullptr, - flatbuffers::IDLOptions::kLua, - flatbuffers::FlatCOption{ "l", "lua", "", - "Generate Lua files for tables/structs" }, - nullptr, bfbs_gen_lua.get(), nullptr }, - { nullptr, "Nim", true, nullptr, flatbuffers::IDLOptions::kNim, - flatbuffers::FlatCOption{ "", "nim", "", - "Generate Nim files for tables/structs" }, - nullptr, bfbs_gen_nim.get(), nullptr }, - }; - flatbuffers::FlatCompiler::InitParams params; - params.generators = generators; - params.num_generators = sizeof(generators) / sizeof(generators[0]); params.warn_fn = Warn; params.error_fn = Error; @@ -149,20 +125,35 @@ int main(int argc, const char *argv[]) { flatbuffers::NewLobsterCodeGenerator()); flatc.RegisterCodeGenerator( - flatbuffers::FlatCOption{ "", "php", "", - "Generate PHP files for tables/structs" }, - flatbuffers::NewPhpCodeGenerator()); + flatbuffers::FlatCOption{ "l", "lua", "", + "Generate Lua files for tables/structs" }, + flatbuffers::NewLuaBfbsGenerator(flatbuffers_version)); + + flatc.RegisterCodeGenerator( + flatbuffers::FlatCOption{ "", "nim", "", + "Generate Nim files for tables/structs" }, + flatbuffers::NewNimBfbsGenerator(flatbuffers_version)); flatc.RegisterCodeGenerator( flatbuffers::FlatCOption{ "p", "python", "", "Generate Python files for tables/structs" }, flatbuffers::NewPythonCodeGenerator()); + flatc.RegisterCodeGenerator( + flatbuffers::FlatCOption{ "", "php", "", + "Generate PHP files for tables/structs" }, + flatbuffers::NewPhpCodeGenerator()); + flatc.RegisterCodeGenerator( flatbuffers::FlatCOption{ "r", "rust", "", "Generate Rust files for tables/structs" }, flatbuffers::NewRustCodeGenerator()); + flatc.RegisterCodeGenerator( + flatbuffers::FlatCOption{ + "t", "json", "", "Generate text output for any data definitions" }, + flatbuffers::NewTextCodeGenerator()); + flatc.RegisterCodeGenerator( flatbuffers::FlatCOption{ "", "swift", "", "Generate Swift files for tables/structs" }, diff --git a/src/idl_gen_binary.cpp b/src/idl_gen_binary.cpp index a4ecd0def3..feb4e2f55e 100644 --- a/src/idl_gen_binary.cpp +++ b/src/idl_gen_binary.cpp @@ -65,10 +65,19 @@ class BinaryCodeGenerator : public CodeGenerator { return Status::NOT_IMPLEMENTED; } + Status GenerateRootFile(const Parser &parser, + const std::string &path) override { + (void)parser; + (void)path; + return Status::NOT_IMPLEMENTED; + } + bool IsSchemaOnly() const override { return false; } bool SupportsBfbsGeneration() const override { return false; } + bool SupportsRootFileGeneration() const override { return false; } + IDLOptions::Language Language() const override { return IDLOptions::kBinary; } std::string LanguageName() const override { return "binary"; } diff --git a/src/idl_gen_cpp.cpp b/src/idl_gen_cpp.cpp index 6fac430606..90cc25fff0 100644 --- a/src/idl_gen_cpp.cpp +++ b/src/idl_gen_cpp.cpp @@ -3998,10 +3998,19 @@ class CppCodeGenerator : public CodeGenerator { return Status::OK; } + Status GenerateRootFile(const Parser &parser, + const std::string &path) override { + (void)parser; + (void)path; + return Status::NOT_IMPLEMENTED; + } + bool IsSchemaOnly() const override { return true; } bool SupportsBfbsGeneration() const override { return false; } + bool SupportsRootFileGeneration() const override { return false; } + IDLOptions::Language Language() const override { return IDLOptions::kCpp; } std::string LanguageName() const override { return "C++"; } diff --git a/src/idl_gen_csharp.cpp b/src/idl_gen_csharp.cpp index 2811727bf2..9f384a7a01 100644 --- a/src/idl_gen_csharp.cpp +++ b/src/idl_gen_csharp.cpp @@ -2289,10 +2289,19 @@ class CSharpCodeGenerator : public CodeGenerator { return Status::NOT_IMPLEMENTED; } + Status GenerateRootFile(const Parser &parser, + const std::string &path) override { + (void)parser; + (void)path; + return Status::NOT_IMPLEMENTED; + } + bool IsSchemaOnly() const override { return true; } bool SupportsBfbsGeneration() const override { return false; } + bool SupportsRootFileGeneration() const override { return false; } + IDLOptions::Language Language() const override { return IDLOptions::kCSharp; } std::string LanguageName() const override { return "CSharp"; } diff --git a/src/idl_gen_dart.cpp b/src/idl_gen_dart.cpp index 93f18094b7..299409bac2 100644 --- a/src/idl_gen_dart.cpp +++ b/src/idl_gen_dart.cpp @@ -1175,10 +1175,19 @@ class DartCodeGenerator : public CodeGenerator { return Status::NOT_IMPLEMENTED; } + Status GenerateRootFile(const Parser &parser, + const std::string &path) override { + (void)parser; + (void)path; + return Status::NOT_IMPLEMENTED; + } + bool IsSchemaOnly() const override { return true; } bool SupportsBfbsGeneration() const override { return false; } + bool SupportsRootFileGeneration() const override { return false; } + IDLOptions::Language Language() const override { return IDLOptions::kDart; } std::string LanguageName() const override { return "Dart"; } diff --git a/src/idl_gen_go.cpp b/src/idl_gen_go.cpp index a293f9df47..6a66b5c629 100644 --- a/src/idl_gen_go.cpp +++ b/src/idl_gen_go.cpp @@ -1615,10 +1615,19 @@ class GoCodeGenerator : public CodeGenerator { return Status::OK; } + Status GenerateRootFile(const Parser &parser, + const std::string &path) override { + (void)parser; + (void)path; + return Status::NOT_IMPLEMENTED; + } + bool IsSchemaOnly() const override { return true; } bool SupportsBfbsGeneration() const override { return false; } + bool SupportsRootFileGeneration() const override { return false; } + IDLOptions::Language Language() const override { return IDLOptions::kGo; } std::string LanguageName() const override { return "Go"; } diff --git a/src/idl_gen_java.cpp b/src/idl_gen_java.cpp index 66ccc5c9de..9642551807 100644 --- a/src/idl_gen_java.cpp +++ b/src/idl_gen_java.cpp @@ -2198,10 +2198,19 @@ class JavaCodeGenerator : public CodeGenerator { return Status::OK; } + Status GenerateRootFile(const Parser &parser, + const std::string &path) override { + (void)parser; + (void)path; + return Status::NOT_IMPLEMENTED; + } + bool IsSchemaOnly() const override { return true; } bool SupportsBfbsGeneration() const override { return false; } + bool SupportsRootFileGeneration() const override { return false; } + IDLOptions::Language Language() const override { return IDLOptions::kJava; } std::string LanguageName() const override { return "Java"; } diff --git a/src/idl_gen_json_schema.cpp b/src/idl_gen_json_schema.cpp index 27d6381d25..3849da856a 100644 --- a/src/idl_gen_json_schema.cpp +++ b/src/idl_gen_json_schema.cpp @@ -367,10 +367,18 @@ class JsonSchemaCodeGenerator : public CodeGenerator { return Status::NOT_IMPLEMENTED; } + Status GenerateRootFile(const Parser &parser, + const std::string &path) override { + (void)parser; + (void)path; + return Status::NOT_IMPLEMENTED; + } bool IsSchemaOnly() const override { return true; } bool SupportsBfbsGeneration() const override { return false; } + bool SupportsRootFileGeneration() const override { return false; } + IDLOptions::Language Language() const override { return IDLOptions::kJsonSchema; } diff --git a/src/idl_gen_kotlin.cpp b/src/idl_gen_kotlin.cpp index 84d817d9c8..3bf2bd6b07 100644 --- a/src/idl_gen_kotlin.cpp +++ b/src/idl_gen_kotlin.cpp @@ -1632,10 +1632,18 @@ class KotlinCodeGenerator : public CodeGenerator { return Status::NOT_IMPLEMENTED; } + Status GenerateRootFile(const Parser &parser, + const std::string &path) override { + (void)parser; + (void)path; + return Status::NOT_IMPLEMENTED; + } bool IsSchemaOnly() const override { return true; } bool SupportsBfbsGeneration() const override { return false; } + bool SupportsRootFileGeneration() const override { return false; } + IDLOptions::Language Language() const override { return IDLOptions::kKotlin; } std::string LanguageName() const override { return "Kotlin"; } diff --git a/src/idl_gen_lobster.cpp b/src/idl_gen_lobster.cpp index 6cedceeb6d..a8b0a6f7a5 100644 --- a/src/idl_gen_lobster.cpp +++ b/src/idl_gen_lobster.cpp @@ -438,10 +438,19 @@ class LobsterCodeGenerator : public CodeGenerator { return Status::NOT_IMPLEMENTED; } + Status GenerateRootFile(const Parser &parser, + const std::string &path) override { + (void)parser; + (void)path; + return Status::NOT_IMPLEMENTED; + } + bool IsSchemaOnly() const override { return true; } bool SupportsBfbsGeneration() const override { return false; } + bool SupportsRootFileGeneration() const override { return false; } + IDLOptions::Language Language() const override { return IDLOptions::kLobster; } diff --git a/src/idl_gen_lua.cpp b/src/idl_gen_lua.cpp index 3ce593d7ba..551a4b26f8 100644 --- a/src/idl_gen_lua.cpp +++ b/src/idl_gen_lua.cpp @@ -780,10 +780,19 @@ class LuaCodeGenerator : public CodeGenerator { return Status::NOT_IMPLEMENTED; } + Status GenerateRootFile(const Parser &parser, + const std::string &path) override { + (void)parser; + (void)path; + return Status::NOT_IMPLEMENTED; + } + bool IsSchemaOnly() const override { return true; } bool SupportsBfbsGeneration() const override { return true; } + bool SupportsRootFileGeneration() const override { return false; } + IDLOptions::Language Language() const override { return IDLOptions::kLua; } std::string LanguageName() const override { return "Lua"; } diff --git a/src/idl_gen_php.cpp b/src/idl_gen_php.cpp index ba8c1633f2..222cc3d63a 100644 --- a/src/idl_gen_php.cpp +++ b/src/idl_gen_php.cpp @@ -979,10 +979,19 @@ class PhpCodeGenerator : public CodeGenerator { return Status::NOT_IMPLEMENTED; } + Status GenerateRootFile(const Parser &parser, + const std::string &path) override { + (void)parser; + (void)path; + return Status::NOT_IMPLEMENTED; + } + bool IsSchemaOnly() const override { return true; } bool SupportsBfbsGeneration() const override { return false; } + bool SupportsRootFileGeneration() const override { return false; } + IDLOptions::Language Language() const override { return IDLOptions::kPhp; } std::string LanguageName() const override { return "Php"; } diff --git a/src/idl_gen_python.cpp b/src/idl_gen_python.cpp index 222c0faa6f..5b5ce353a0 100644 --- a/src/idl_gen_python.cpp +++ b/src/idl_gen_python.cpp @@ -1946,9 +1946,17 @@ class PythonCodeGenerator : public CodeGenerator { return Status::OK; } + Status GenerateRootFile(const Parser &parser, + const std::string &path) override { + (void)parser; + (void)path; + return Status::NOT_IMPLEMENTED; + } + bool IsSchemaOnly() const override { return true; } bool SupportsBfbsGeneration() const override { return false; } + bool SupportsRootFileGeneration() const override { return false; } IDLOptions::Language Language() const override { return IDLOptions::kPython; } diff --git a/src/idl_gen_rust.cpp b/src/idl_gen_rust.cpp index 7a5e4a534e..ac6097faae 100644 --- a/src/idl_gen_rust.cpp +++ b/src/idl_gen_rust.cpp @@ -3041,10 +3041,18 @@ class RustCodeGenerator : public CodeGenerator { return Status::NOT_IMPLEMENTED; } + Status GenerateRootFile(const Parser &parser, + const std::string &path) override { + if (!GenerateRustModuleRootFile(parser, path)) { return Status::ERROR; } + return Status::OK; + } + bool IsSchemaOnly() const override { return true; } bool SupportsBfbsGeneration() const override { return false; } + bool SupportsRootFileGeneration() const override { return true; } + IDLOptions::Language Language() const override { return IDLOptions::kRust; } std::string LanguageName() const override { return "Rust"; } diff --git a/src/idl_gen_swift.cpp b/src/idl_gen_swift.cpp index ae1de97d8c..d85b71839f 100644 --- a/src/idl_gen_swift.cpp +++ b/src/idl_gen_swift.cpp @@ -1937,10 +1937,19 @@ class SwiftCodeGenerator : public CodeGenerator { return Status::NOT_IMPLEMENTED; } + Status GenerateRootFile(const Parser &parser, + const std::string &path) override { + (void)parser; + (void)path; + return Status::NOT_IMPLEMENTED; + } + bool IsSchemaOnly() const override { return true; } bool SupportsBfbsGeneration() const override { return false; } + bool SupportsRootFileGeneration() const override { return false; } + IDLOptions::Language Language() const override { return IDLOptions::kSwift; } std::string LanguageName() const override { return "Swift"; } diff --git a/src/idl_gen_text.cpp b/src/idl_gen_text.cpp index 52f854dd45..9de3a6d378 100644 --- a/src/idl_gen_text.cpp +++ b/src/idl_gen_text.cpp @@ -15,9 +15,11 @@ */ // independent from idl_parser, since this code is not needed for most clients +#include "idl_gen_text.h" #include +#include "flatbuffers/code_generator.h" #include "flatbuffers/flatbuffers.h" #include "flatbuffers/flexbuffers.h" #include "flatbuffers/idl.h" @@ -431,4 +433,61 @@ std::string TextMakeRule(const Parser &parser, const std::string &path, return make_rule; } +namespace { + +class TextCodeGenerator : public CodeGenerator { + public: + Status GenerateCode(const Parser &parser, const std::string &path, + const std::string &filename) override { + if (!GenerateTextFile(parser, path, filename)) { return Status::ERROR; } + return Status::OK; + } + + // Generate code from the provided `buffer` of given `length`. The buffer is a + // serialized reflection.fbs. + Status GenerateCode(const uint8_t *buffer, int64_t length) override { + (void)buffer; + (void)length; + return Status::NOT_IMPLEMENTED; + } + + Status GenerateMakeRule(const Parser &parser, const std::string &path, + const std::string &filename, + std::string &output) override { + output = TextMakeRule(parser, path, filename); + return Status::OK; + } + + Status GenerateGrpcCode(const Parser &parser, const std::string &path, + const std::string &filename) override { + (void)parser; + (void)path; + (void)filename; + return Status::NOT_IMPLEMENTED; + } + + Status GenerateRootFile(const Parser &parser, + const std::string &path) override { + (void)parser; + (void)path; + return Status::NOT_IMPLEMENTED; + } + + bool IsSchemaOnly() const override { return false; } + + bool SupportsBfbsGeneration() const override { return false; } + + bool SupportsRootFileGeneration() const override { return false; } + + IDLOptions::Language Language() const override { return IDLOptions::kJson; } + + std::string LanguageName() const override { return "text"; } +}; + +} // namespace + +std::unique_ptr NewTextCodeGenerator() { + return std::unique_ptr(new TextCodeGenerator()); +} + } // namespace flatbuffers diff --git a/include/flatbuffers/bfbs_generator.h b/src/idl_gen_text.h similarity index 50% rename from include/flatbuffers/bfbs_generator.h rename to src/idl_gen_text.h index 08faeb3eb5..3179a4cfa1 100644 --- a/include/flatbuffers/bfbs_generator.h +++ b/src/idl_gen_text.h @@ -1,5 +1,5 @@ /* - * Copyright 2021 Google Inc. All rights reserved. + * Copyright 2023 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. @@ -14,30 +14,16 @@ * limitations under the License. */ -#ifndef FLATBUFFERS_BFBS_GENERATOR_H_ -#define FLATBUFFERS_BFBS_GENERATOR_H_ +#ifndef FLATBUFFERS_IDL_GEN_TEXT_H_ +#define FLATBUFFERS_IDL_GEN_TEXT_H_ -#include +#include "flatbuffers/code_generator.h" namespace flatbuffers { -enum GeneratorStatus { - OK, - FAILED, - FAILED_VERIFICATION, -}; - -// A Flatbuffer Code Generator that receives a binary serialized reflection.fbs -// and generates code from it. -class BfbsGenerator { - public: - virtual ~BfbsGenerator() {} - - // Generate code from the provided `buffer` of given `length`. The buffer is - // a serialized reflection.fbs. - virtual GeneratorStatus Generate(const uint8_t *buffer, int64_t length) = 0; -}; +// Constructs a new Text code generator. +std::unique_ptr NewTextCodeGenerator(); } // namespace flatbuffers -#endif // FLATBUFFERS_BFBS_GENERATOR_H_ +#endif // FLATBUFFERS_IDL_GEN_TEXT_H_ diff --git a/src/idl_gen_ts.cpp b/src/idl_gen_ts.cpp index 84c7e9c7c0..a3e1f1274f 100644 --- a/src/idl_gen_ts.cpp +++ b/src/idl_gen_ts.cpp @@ -2206,9 +2206,16 @@ class TsCodeGenerator : public CodeGenerator { return Status::OK; } + Status GenerateRootFile(const Parser &parser, + const std::string &path) override { + (void)parser; + (void)path; + return Status::NOT_IMPLEMENTED; + } bool IsSchemaOnly() const override { return true; } bool SupportsBfbsGeneration() const override { return false; } + bool SupportsRootFileGeneration() const override { return false; } IDLOptions::Language Language() const override { return IDLOptions::kTs; } From f8380178600ff8255cc47694bddb321b2a9f648b Mon Sep 17 00:00:00 2001 From: Saman <100295082+enum-class@users.noreply.github.com> Date: Thu, 2 Feb 2023 03:17:35 +0800 Subject: [PATCH 111/571] Parsing from proto should keep field ID. (fixes #7645) (#7655) * Parsing from proto should keep field ID. (fixes #7645) * Fix failed tests * Fix windows warning * Improve attribute generation in proto to fbs * Check if id is used twice. fix Some clang-format problems * Test if fake id can solve the test problem * Validate proto file in proto -> fbs generation. * Fix error messages * Ignore id in union * Add keep proto id for legacy and check gap flag have been added. Reserved id will be checked. * Add needed flags * unit tests * fix fromat problem. fix comments and error messages. * clear * More unit tests * Fix windows build * Fix include problems * Fake commit to invoke rebuild * Fix buzel build * Fix some issues * Fix comments, fix return value and sort for android NDK * Fix return type * Break down big function * Place todo --------- Co-authored-by: Derek Bailey --- include/flatbuffers/idl.h | 7 +- src/flatc.cpp | 21 ++ src/idl_gen_fbs.cpp | 233 +++++++++++- src/idl_parser.cpp | 63 +++- tests/BUILD.bazel | 21 +- tests/proto_test.cpp | 357 ++++++++++++------ tests/proto_test.h | 20 +- tests/prototest/GenerateProtoGoldens.sh | 19 +- tests/prototest/non-positive-id.proto | 9 + .../{test.golden => test.golden.fbs} | 0 tests/prototest/test.proto | 5 +- tests/prototest/test_id.golden.fbs | 87 +++++ ...include.golden => test_include.golden.fbs} | 0 tests/prototest/test_include_id.golden.fbs | 85 +++++ ...t_suffix.golden => test_suffix.golden.fbs} | 0 tests/prototest/test_suffix_id.golden.fbs | 87 +++++ ...est_union.golden => test_union.golden.fbs} | 0 tests/prototest/test_union_id.golden.fbs | 89 +++++ ...e.golden => test_union_include.golden.fbs} | 0 .../test_union_include_id.golden.fbs | 87 +++++ ...ix.golden => test_union_suffix.golden.fbs} | 0 .../prototest/test_union_suffix_id.golden.fbs | 89 +++++ tests/prototest/twice-id.proto | 10 + tests/prototest/use-reserved-id.proto | 10 + tests/test.cpp | 2 - 25 files changed, 1139 insertions(+), 162 deletions(-) create mode 100644 tests/prototest/non-positive-id.proto rename tests/prototest/{test.golden => test.golden.fbs} (100%) create mode 100644 tests/prototest/test_id.golden.fbs rename tests/prototest/{test_include.golden => test_include.golden.fbs} (100%) create mode 100644 tests/prototest/test_include_id.golden.fbs rename tests/prototest/{test_suffix.golden => test_suffix.golden.fbs} (100%) create mode 100644 tests/prototest/test_suffix_id.golden.fbs rename tests/prototest/{test_union.golden => test_union.golden.fbs} (100%) create mode 100644 tests/prototest/test_union_id.golden.fbs rename tests/prototest/{test_union_include.golden => test_union_include.golden.fbs} (100%) create mode 100644 tests/prototest/test_union_include_id.golden.fbs rename tests/prototest/{test_union_suffix.golden => test_union_suffix.golden.fbs} (100%) create mode 100644 tests/prototest/test_union_suffix_id.golden.fbs create mode 100644 tests/prototest/twice-id.proto create mode 100644 tests/prototest/use-reserved-id.proto diff --git a/include/flatbuffers/idl.h b/include/flatbuffers/idl.h index 319d7fbb8a..34f2993faa 100644 --- a/include/flatbuffers/idl.h +++ b/include/flatbuffers/idl.h @@ -381,6 +381,7 @@ struct StructDef : public Definition { size_t bytesize; // Size if fixed. flatbuffers::unique_ptr original_location; + std::vector reserved_ids; }; struct EnumDef; @@ -594,7 +595,7 @@ inline bool operator<(const IncludedFile &a, const IncludedFile &b) { struct IDLOptions { // field case style options for C++ enum CaseStyle { CaseStyle_Unchanged = 0, CaseStyle_Upper, CaseStyle_Lower }; - + enum class ProtoIdGapAction { NO_OP, WARNING, ERROR }; bool gen_jvmstatic; // Use flexbuffers instead for binary and text generation bool use_flexbuffers; @@ -663,6 +664,8 @@ struct IDLOptions { bool ts_no_import_ext; bool no_leak_private_annotations; bool require_json_eof; + bool keep_proto_id; + ProtoIdGapAction proto_id_gap_action; // Possible options for the more general generator below. enum Language { @@ -769,6 +772,8 @@ struct IDLOptions { ts_no_import_ext(false), no_leak_private_annotations(false), require_json_eof(true), + keep_proto_id(false), + proto_id_gap_action(ProtoIdGapAction::WARNING), mini_reflect(IDLOptions::kNone), require_explicit_ids(false), rust_serialize(false), diff --git a/src/flatc.cpp b/src/flatc.cpp index 0534cdffb6..7611464d4e 100644 --- a/src/flatc.cpp +++ b/src/flatc.cpp @@ -170,6 +170,15 @@ const static FlatCOption flatc_options[] = { { "", "proto-namespace-suffix", "SUFFIX", "Add this namespace to any flatbuffers generated from protobufs." }, { "", "oneof-union", "", "Translate .proto oneofs to flatbuffer unions." }, + { "", "keep-proto-id", "", "Keep protobuf field ids in generated fbs file." }, + { "", "proto-id-gap", "", + "Action that should be taken when a gap between protobuf ids found. " + "Supported values: * " + "'nop' - do not care about gap * 'warn' - A warning message will be shown " + "about the gap in protobuf ids" + "(default) " + "* 'error' - An error message will be shown and the fbs generation will be " + "interrupted." }, { "", "grpc", "", "Generate GRPC interfaces for the specified languages." }, { "", "schema", "", "Serialize schemas instead of JSON (use with -b)." }, { "", "bfbs-filenames", "PATH", @@ -541,6 +550,18 @@ FlatCOptions FlatCompiler::ParseFromCommandLineArguments(int argc, opts.proto_namespace_suffix = argv[argi]; } else if (arg == "--oneof-union") { opts.proto_oneof_union = true; + } else if (arg == "--keep-proto-id") { + opts.keep_proto_id = true; + } else if (arg == "--proto-id-gap") { + if (++argi >= argc) Error("missing case style following: " + arg, true); + if (!strcmp(argv[argi], "nop")) + opts.proto_id_gap_action = IDLOptions::ProtoIdGapAction::NO_OP; + else if (!strcmp(argv[argi], "warn")) + opts.proto_id_gap_action = IDLOptions::ProtoIdGapAction::WARNING; + else if (!strcmp(argv[argi], "error")) + opts.proto_id_gap_action = IDLOptions::ProtoIdGapAction::ERROR; + else + Error("unknown case style: " + std::string(argv[argi]), true); } else if (arg == "--schema") { options.schema_binary = true; } else if (arg == "-M") { diff --git a/src/idl_gen_fbs.cpp b/src/idl_gen_fbs.cpp index 9c58dc4a36..7fcfd17b39 100644 --- a/src/idl_gen_fbs.cpp +++ b/src/idl_gen_fbs.cpp @@ -15,6 +15,9 @@ */ // independent from idl_parser, since this code is not needed for most clients +#include +#include +#include #include "flatbuffers/code_generators.h" #include "flatbuffers/flatbuffers.h" @@ -39,6 +42,184 @@ static std::string GenType(const Type &type, bool underlying = false) { } } +static bool HasFieldWithId(const std::vector &fields) { + static const std::string ID = "id"; + + for (const auto *field : fields) { + const auto *id_attribute = field->attributes.Lookup(ID); + if (id_attribute != nullptr && !id_attribute->constant.empty()) { + return true; + } + } + return false; +} + +static bool HasNonPositiveFieldId(const std::vector &fields) { + static const std::string ID = "id"; + + for (const auto *field : fields) { + const auto *id_attribute = field->attributes.Lookup(ID); + if (id_attribute != nullptr && !id_attribute->constant.empty()) { + voffset_t proto_id = 0; + bool done = StringToNumber(id_attribute->constant.c_str(), &proto_id); + if (!done) { return true; } + } + } + return false; +} + +static bool HasFieldIdFromReservedIds( + const std::vector &fields, + const std::vector &reserved_ids) { + static const std::string ID = "id"; + + for (const auto *field : fields) { + const auto *id_attribute = field->attributes.Lookup(ID); + if (id_attribute != nullptr && !id_attribute->constant.empty()) { + voffset_t proto_id = 0; + bool done = StringToNumber(id_attribute->constant.c_str(), &proto_id); + if (!done) { return true; } + auto id_it = + std::find(std::begin(reserved_ids), std::end(reserved_ids), proto_id); + if (id_it != reserved_ids.end()) { return true; } + } + } + return false; +} + +static std::vector ExtractProtobufIds( + const std::vector &fields) { + static const std::string ID = "id"; + std::vector used_proto_ids; + for (const auto *field : fields) { + const auto *id_attribute = field->attributes.Lookup(ID); + if (id_attribute != nullptr && !id_attribute->constant.empty()) { + voffset_t proto_id = 0; + bool done = StringToNumber(id_attribute->constant.c_str(), &proto_id); + if (done) { used_proto_ids.push_back(proto_id); } + } + } + + return used_proto_ids; +} + +static bool HasTwiceUsedId(const std::vector &fields) { + std::vector used_proto_ids = ExtractProtobufIds(fields); + std::sort(std::begin(used_proto_ids), std::end(used_proto_ids)); + for (auto it = std::next(std::begin(used_proto_ids)); + it != std::end(used_proto_ids); it++) { + if (*it == *std::prev(it)) { return true; } + } + + return false; +} + +static bool HasGapInProtoId(const std::vector &fields) { + std::vector used_proto_ids = ExtractProtobufIds(fields); + std::sort(std::begin(used_proto_ids), std::end(used_proto_ids)); + for (auto it = std::next(std::begin(used_proto_ids)); + it != std::end(used_proto_ids); it++) { + if (*it != *std::prev(it) + 1) { return true; } + } + + return false; +} + +static bool ProtobufIdSanityCheck(const StructDef &struct_def, + IDLOptions::ProtoIdGapAction gap_action) { + const auto &fields = struct_def.fields.vec; + if (HasNonPositiveFieldId(fields)) { + // TODO: Use LogCompilerWarn + fprintf(stderr, + "Field id in struct %s has a non positive number value\n", + struct_def.name.c_str()); + return false; + } + + if (HasTwiceUsedId(fields)) { + // TODO: Use LogCompilerWarn + fprintf(stderr, "Fields in struct %s have used an id twice\n", struct_def.name.c_str()); + return false; + } + + if (HasFieldIdFromReservedIds(fields, struct_def.reserved_ids)) { + // TODO: Use LogCompilerWarn + fprintf(stderr, + "Fields in struct %s use id from reserved ids\n", struct_def.name.c_str()); + return false; + } + + if (gap_action != IDLOptions::ProtoIdGapAction::NO_OP) { + if (HasGapInProtoId(fields)) { + // TODO: Use LogCompilerWarn + fprintf(stderr, "Fields in struct %s have gap between ids\n", struct_def.name.c_str()); + if (gap_action == IDLOptions::ProtoIdGapAction::ERROR) { return false; } + } + } + + return true; +} + +struct ProtobufToFbsIdMap { + using FieldName = std::string; + using FieldID = voffset_t; + using FieldNameToIdMap = std::unordered_map; + + FieldNameToIdMap field_to_id; + bool successful = false; +}; + +static ProtobufToFbsIdMap MapProtoIdsToFieldsId( + const StructDef &struct_def, IDLOptions::ProtoIdGapAction gap_action) { + const auto &fields = struct_def.fields.vec; + + if (!HasFieldWithId(fields)) { + ProtobufToFbsIdMap result; + result.successful = true; + return result; + } + + if (!ProtobufIdSanityCheck(struct_def, gap_action)) { return {}; } + + static constexpr int UNION_ID = -1; + using ProtoIdFieldNamePair = std::pair; + std::vector proto_ids; + + for (const auto *field : fields) { + const auto *id_attribute = field->attributes.Lookup("id"); + if (id_attribute != nullptr) { + // When we have union but do not use union flag to keep them + if (id_attribute->constant.empty() && + field->value.type.base_type == BASE_TYPE_UNION) { + proto_ids.emplace_back(UNION_ID, field->name); + } else { + voffset_t proto_id = 0; + StringToNumber(id_attribute->constant.c_str(), &proto_id); + proto_ids.emplace_back(proto_id, field->name); + } + } else { + // TODO: Use LogCompilerWarn + fprintf(stderr, "Fields id in struct %s is missing\n", struct_def.name.c_str()); + return {}; + } + } + + std::sort( + std::begin(proto_ids), std::end(proto_ids), + [](const ProtoIdFieldNamePair &rhs, const ProtoIdFieldNamePair &lhs) { + return rhs.first < lhs.first; + }); + struct ProtobufToFbsIdMap proto_to_fbs; + + voffset_t id = 0; + for (const auto &element : proto_ids) { + if (element.first == UNION_ID) { id++; } + proto_to_fbs.field_to_id.emplace(element.second, id++); + } + proto_to_fbs.successful = true; + return proto_to_fbs; +} + static void GenNameSpace(const Namespace &name_space, std::string *_schema, const Namespace **last_namespace) { if (*last_namespace == &name_space) return; @@ -79,8 +260,9 @@ std::string GenerateFBS(const Parser &parser, const std::string &file_name) { int num_includes = 0; for (auto it = parser.included_files_.begin(); it != parser.included_files_.end(); ++it) { - if (it->second.empty()) + if (it->second.empty()) { continue; +} std::string basename; if(parser.opts.keep_prefix) { basename = flatbuffers::StripExtension(it->second); @@ -94,6 +276,7 @@ std::string GenerateFBS(const Parser &parser, const std::string &file_name) { if (num_includes) schema += "\n"; // clang-format on } + // Generate code for all the enum declarations. const Namespace *last_namespace = nullptr; for (auto enum_def_it = parser.enums_.vec.begin(); @@ -104,18 +287,22 @@ std::string GenerateFBS(const Parser &parser, const std::string &file_name) { } GenNameSpace(*enum_def.defined_namespace, &schema, &last_namespace); GenComment(enum_def.doc_comment, &schema, nullptr); - if (enum_def.is_union) + if (enum_def.is_union) { schema += "union " + enum_def.name; - else + } else { schema += "enum " + enum_def.name + " : "; + } + schema += GenType(enum_def.underlying_type, true) + " {\n"; + for (auto it = enum_def.Vals().begin(); it != enum_def.Vals().end(); ++it) { auto &ev = **it; GenComment(ev.doc_comment, &schema, nullptr, " "); - if (enum_def.is_union) + if (enum_def.is_union) { schema += " " + GenType(ev.union_type) + ",\n"; - else + } else { schema += " " + ev.name + " = " + enum_def.ToString(ev) + ",\n"; + } } schema += "}\n\n"; } @@ -123,9 +310,14 @@ std::string GenerateFBS(const Parser &parser, const std::string &file_name) { for (auto it = parser.structs_.vec.begin(); it != parser.structs_.vec.end(); ++it) { StructDef &struct_def = **it; + const auto proto_fbs_ids = + MapProtoIdsToFieldsId(struct_def, parser.opts.proto_id_gap_action); + if (!proto_fbs_ids.successful) { return {}; } + if (parser.opts.include_dependence_headers && struct_def.generated) { continue; } + GenNameSpace(*struct_def.defined_namespace, &schema, &last_namespace); GenComment(struct_def.doc_comment, &schema, nullptr); schema += "table " + struct_def.name + " {\n"; @@ -136,8 +328,26 @@ std::string GenerateFBS(const Parser &parser, const std::string &file_name) { GenComment(field.doc_comment, &schema, nullptr, " "); schema += " " + field.name + ":" + GenType(field.value.type); if (field.value.constant != "0") schema += " = " + field.value.constant; - if (field.IsRequired()) schema += " (required)"; - if (field.key) schema += " (key)"; + std::vector attributes; + if (field.IsRequired()) attributes.push_back("required"); + if (field.key) attributes.push_back("key"); + + if (parser.opts.keep_proto_id) { + auto it = proto_fbs_ids.field_to_id.find(field.name); + if (it != proto_fbs_ids.field_to_id.end()) { + attributes.push_back("id: " + NumToString(it->second)); + } // If not found it means we do not have any ids + } + + if (!attributes.empty()) { + schema += " ("; + for (const auto &attribute : attributes) { + schema += attribute + ","; + } + schema.pop_back(); + schema += ")"; + } + schema += ";\n"; } } @@ -148,8 +358,13 @@ std::string GenerateFBS(const Parser &parser, const std::string &file_name) { bool GenerateFBS(const Parser &parser, const std::string &path, const std::string &file_name) { - return SaveFile((path + file_name + ".fbs").c_str(), - GenerateFBS(parser, file_name), false); + const std::string fbs = GenerateFBS(parser, file_name); + if (fbs.empty()) { return false; } + // TODO: Use LogCompilerWarn + fprintf(stderr, + "When you use --proto, that you should check for conformity " + "yourself, using the existing --conform"); + return SaveFile((path + file_name + ".fbs").c_str(), fbs, false); } } // namespace flatbuffers diff --git a/src/idl_parser.cpp b/src/idl_parser.cpp index 9477c457f4..3e0c9f3b21 100644 --- a/src/idl_parser.cpp +++ b/src/idl_parser.cpp @@ -920,8 +920,11 @@ CheckedError Parser::ParseField(StructDef &struct_def) { if (struct_def.fixed) { if (IsIncompleteStruct(type) || (IsArray(type) && IsIncompleteStruct(type.VectorType()))) { - std::string type_name = IsArray(type) ? type.VectorType().struct_def->name : type.struct_def->name; - return Error(std::string("Incomplete type in struct is not allowed, type name: ") + type_name); + std::string type_name = IsArray(type) ? type.VectorType().struct_def->name + : type.struct_def->name; + return Error( + std::string("Incomplete type in struct is not allowed, type name: ") + + type_name); } auto valid = IsScalar(type.base_type) || IsStruct(type); @@ -2289,12 +2292,8 @@ template void EnumDef::ChangeEnumValue(EnumVal *ev, T new_value) { } namespace EnumHelper { -template struct EnumValType { - typedef int64_t type; -}; -template<> struct EnumValType { - typedef uint64_t type; -}; +template struct EnumValType { typedef int64_t type; }; +template<> struct EnumValType { typedef uint64_t type; }; } // namespace EnumHelper struct EnumValBuilder { @@ -2698,6 +2697,7 @@ CheckedError Parser::ParseDecl(const char *filename) { for (voffset_t i = 0; i < static_cast(fields.size()); i++) { auto &field = *fields[i]; const auto &id_str = field.attributes.Lookup("id")->constant; + // Metadata values have a dynamic type, they can be `float`, 'int', or // 'string`. // The FieldIndexToOffset(i) expects the voffset_t so `id` is limited by @@ -2921,8 +2921,40 @@ CheckedError Parser::ParseProtoFields(StructDef *struct_def, bool isextend, ECHECK(ParseProtoOption()); EXPECT(';'); } else if (IsIdent("reserved")) { // Skip these. + /** + * Reserved proto ids can be comma seperated (e.g. 1,2,4,5;) + * or range based (e.g. 9 to 11;) + * or combination of them (e.g. 1,2,9 to 11,4,5;) + * It will be ended by a semicolon. + */ NEXT(); - while (!Is(';')) { NEXT(); } // A variety of formats, just skip. + bool range = false; + voffset_t from = 0; + + while (!Is(';')) { + if (token_ == kTokenIntegerConstant) { + voffset_t attribute = 0; + bool done = StringToNumber(attribute_.c_str(), &attribute); + if (!done) + return Error("Protobuf has non positive number in reserved ids"); + + if (range) { + for (voffset_t id = from + 1; id <= attribute; id++) + struct_def->reserved_ids.push_back(id); + + range = false; + } else { + struct_def->reserved_ids.push_back(attribute); + } + + from = attribute; + } + + if (attribute_ == "to") range = true; + + NEXT(); + } // A variety of formats, just skip. + NEXT(); } else if (IsIdent("map")) { ECHECK(ParseProtoMapField(struct_def)); @@ -2980,11 +3012,13 @@ CheckedError Parser::ParseProtoFields(StructDef *struct_def, bool isextend, } std::string name = attribute_; EXPECT(kTokenIdentifier); + std::string proto_field_id; if (!oneof) { // Parse the field id. Since we're just translating schemas, not // any kind of binary compatibility, we can safely ignore these, and // assign our own. EXPECT('='); + proto_field_id = attribute_; EXPECT(kTokenIntegerConstant); } FieldDef *field = nullptr; @@ -2995,6 +3029,11 @@ CheckedError Parser::ParseProtoFields(StructDef *struct_def, bool isextend, } if (!field) ECHECK(AddField(*struct_def, name, type, &field)); field->doc_comment = field_comment; + if (!proto_field_id.empty() || oneof) { + auto val = new Value(); + val->constant = proto_field_id; + field->attributes.Add("id", val); + } if (!IsScalar(type.base_type) && required) { field->presence = FieldDef::kRequired; } @@ -3072,6 +3111,7 @@ CheckedError Parser::ParseProtoMapField(StructDef *struct_def) { auto field_name = attribute_; NEXT(); EXPECT('='); + std::string proto_field_id = attribute_; EXPECT(kTokenIntegerConstant); EXPECT(';'); @@ -3091,6 +3131,11 @@ CheckedError Parser::ParseProtoMapField(StructDef *struct_def) { field_type.struct_def = entry_table; FieldDef *field; ECHECK(AddField(*struct_def, field_name, field_type, &field)); + if (!proto_field_id.empty()) { + auto val = new Value(); + val->constant = proto_field_id; + field->attributes.Add("id", val); + } return NoError(); } diff --git a/tests/BUILD.bazel b/tests/BUILD.bazel index 90930e6cef..ee14272494 100644 --- a/tests/BUILD.bazel +++ b/tests/BUILD.bazel @@ -82,13 +82,22 @@ cc_test( ":optional_scalars.json", ":optional_scalars_defaults.json", ":prototest/imported.proto", - ":prototest/test.golden", + ":prototest/non-positive-id.proto", + ":prototest/test.golden.fbs", ":prototest/test.proto", - ":prototest/test_include.golden", - ":prototest/test_suffix.golden", - ":prototest/test_union.golden", - ":prototest/test_union_include.golden", - ":prototest/test_union_suffix.golden", + ":prototest/test_id.golden.fbs", + ":prototest/test_include.golden.fbs", + ":prototest/test_include_id.golden.fbs", + ":prototest/test_suffix.golden.fbs", + ":prototest/test_suffix_id.golden.fbs", + ":prototest/test_union.golden.fbs", + ":prototest/test_union_id.golden.fbs", + ":prototest/test_union_include.golden.fbs", + ":prototest/test_union_include_id.golden.fbs", + ":prototest/test_union_suffix.golden.fbs", + ":prototest/test_union_suffix_id.golden.fbs", + ":prototest/twice-id.proto", + ":prototest/use-reserved-id.proto", ":unicode_test.json", ":union_vector/union_vector.fbs", ":union_vector/union_vector.json", diff --git a/tests/proto_test.cpp b/tests/proto_test.cpp index 1d1c98ac53..1cef9960a6 100644 --- a/tests/proto_test.cpp +++ b/tests/proto_test.cpp @@ -1,183 +1,292 @@ #include "proto_test.h" -#include "flatbuffers/idl.h" #include "test_assert.h" namespace flatbuffers { namespace tests { -// Parse a .proto schema, output as .fbs -void ParseProtoTest(const std::string &tests_data_path) { - // load the .proto and the golden file from disk - std::string protofile; - std::string goldenfile; - std::string goldenunionfile; - TEST_EQ( - flatbuffers::LoadFile((tests_data_path + "prototest/test.proto").c_str(), - false, &protofile), - true); - TEST_EQ( - flatbuffers::LoadFile((tests_data_path + "prototest/test.golden").c_str(), - false, &goldenfile), - true); - TEST_EQ(flatbuffers::LoadFile( - (tests_data_path + "prototest/test_union.golden").c_str(), false, - &goldenunionfile), - true); - - flatbuffers::IDLOptions opts; - opts.include_dependence_headers = false; - opts.proto_mode = true; +void RunTest(const flatbuffers::IDLOptions &opts, const std::string &proto_path, + const std::string &proto_file, const std::string &golden_file, + const std::string import_proto_file) { + const char *include_directories[] = { proto_path.c_str(), nullptr }; // Parse proto. flatbuffers::Parser parser(opts); - auto protopath = tests_data_path + "prototest/"; - const char *include_directories[] = { protopath.c_str(), nullptr }; - TEST_EQ(parser.Parse(protofile.c_str(), include_directories), true); + TEST_EQ(parser.Parse(proto_file.c_str(), include_directories), true); // Generate fbs. auto fbs = flatbuffers::GenerateFBS(parser, "test"); // Ensure generated file is parsable. flatbuffers::Parser parser2; + + if (!import_proto_file.empty()) { + // Generate fbs from import.proto + flatbuffers::Parser import_parser(opts); + TEST_EQ(import_parser.Parse(import_proto_file.c_str(), include_directories), + true); + auto import_fbs = flatbuffers::GenerateFBS(import_parser, "test"); + // Since `imported.fbs` isn't in the filesystem AbsolutePath can't figure it + // out by itself. We manually construct it so Parser works. + std::string imported_fbs = flatbuffers::PosixPath( + flatbuffers::AbsolutePath(proto_path) + "/imported.fbs"); + TEST_EQ(parser2.Parse(import_fbs.c_str(), include_directories, + imported_fbs.c_str()), + true); + } + TEST_EQ(parser2.Parse(fbs.c_str(), nullptr), true); - TEST_EQ_STR(fbs.c_str(), goldenfile.c_str()); + TEST_EQ_STR(fbs.c_str(), golden_file.c_str()); +} - // Parse proto with --oneof-union option. - opts.proto_oneof_union = true; - flatbuffers::Parser parser3(opts); - TEST_EQ(parser3.Parse(protofile.c_str(), include_directories), true); +void proto_test(const std::string &proto_path, const std::string &proto_file) { + flatbuffers::IDLOptions opts; + opts.include_dependence_headers = false; + opts.proto_mode = true; - // Generate fbs. - auto fbs_union = flatbuffers::GenerateFBS(parser3, "test"); + // load the .proto and the golden file from disk + std::string golden_file; + TEST_EQ(flatbuffers::LoadFile((proto_path + "test.golden.fbs").c_str(), false, + &golden_file), + true); - // Ensure generated file is parsable. - flatbuffers::Parser parser4; - TEST_EQ(parser4.Parse(fbs_union.c_str(), nullptr), true); - TEST_EQ_STR(fbs_union.c_str(), goldenunionfile.c_str()); + RunTest(opts, proto_path, proto_file, golden_file); } -// Parse a .proto schema, output as .fbs -void ParseProtoTestWithSuffix(const std::string &tests_data_path) { +void proto_test_id(const std::string &proto_path, + const std::string &proto_file) { + flatbuffers::IDLOptions opts; + opts.include_dependence_headers = false; + opts.proto_mode = true; + opts.keep_proto_id = true; + // load the .proto and the golden file from disk - std::string protofile; - std::string goldenfile; - std::string goldenunionfile; - TEST_EQ( - flatbuffers::LoadFile((tests_data_path + "prototest/test.proto").c_str(), - false, &protofile), - true); - TEST_EQ(flatbuffers::LoadFile( - (tests_data_path + "prototest/test_suffix.golden").c_str(), false, - &goldenfile), + std::string golden_file; + TEST_EQ(flatbuffers::LoadFile((proto_path + "test_id.golden.fbs").c_str(), + false, &golden_file), true); - TEST_EQ(flatbuffers::LoadFile( - (tests_data_path + "prototest/test_union_suffix.golden").c_str(), - false, &goldenunionfile), + + RunTest(opts, proto_path, proto_file, golden_file); +} + +void proto_test_union(const std::string &proto_path, + const std::string &proto_file) { + // Parse proto with --oneof-union option. + flatbuffers::IDLOptions opts; + opts.include_dependence_headers = false; + opts.proto_mode = true; + opts.proto_oneof_union = true; + + std::string golden_file; + TEST_EQ(flatbuffers::LoadFile((proto_path + "test_union.golden.fbs").c_str(), + false, &golden_file), true); + RunTest(opts, proto_path, proto_file, golden_file); +} +void proto_test_union_id(const std::string &proto_path, + const std::string &proto_file) { + // Parse proto with --oneof-union option. flatbuffers::IDLOptions opts; opts.include_dependence_headers = false; opts.proto_mode = true; - opts.proto_namespace_suffix = "test_namespace_suffix"; + opts.proto_oneof_union = true; + opts.keep_proto_id = true; - // Parse proto. - flatbuffers::Parser parser(opts); - auto protopath = tests_data_path + "prototest/"; - const char *include_directories[] = { protopath.c_str(), nullptr }; - TEST_EQ(parser.Parse(protofile.c_str(), include_directories), true); + std::string golden_file; + TEST_EQ( + flatbuffers::LoadFile((proto_path + "test_union_id.golden.fbs").c_str(), + false, &golden_file), + true); + RunTest(opts, proto_path, proto_file, golden_file); +} - // Generate fbs. - auto fbs = flatbuffers::GenerateFBS(parser, "test"); +void proto_test_union_suffix(const std::string &proto_path, + const std::string &proto_file) { + flatbuffers::IDLOptions opts; + opts.include_dependence_headers = false; + opts.proto_mode = true; + opts.proto_namespace_suffix = "test_namespace_suffix"; + opts.proto_oneof_union = true; - // Ensure generated file is parsable. - flatbuffers::Parser parser2; - TEST_EQ(parser2.Parse(fbs.c_str(), nullptr), true); - TEST_EQ_STR(fbs.c_str(), goldenfile.c_str()); + std::string golden_file; + TEST_EQ(flatbuffers::LoadFile( + (proto_path + "test_union_suffix.golden.fbs").c_str(), false, + &golden_file), + true); + RunTest(opts, proto_path, proto_file, golden_file); +} - // Parse proto with --oneof-union option. +void proto_test_union_suffix_id(const std::string &proto_path, + const std::string &proto_file) { + flatbuffers::IDLOptions opts; + opts.include_dependence_headers = false; + opts.proto_mode = true; + opts.proto_namespace_suffix = "test_namespace_suffix"; opts.proto_oneof_union = true; - flatbuffers::Parser parser3(opts); - TEST_EQ(parser3.Parse(protofile.c_str(), include_directories), true); + opts.keep_proto_id = true; - // Generate fbs. - auto fbs_union = flatbuffers::GenerateFBS(parser3, "test"); + std::string golden_file; + TEST_EQ(flatbuffers::LoadFile( + (proto_path + "test_union_suffix_id.golden.fbs").c_str(), false, + &golden_file), + true); + RunTest(opts, proto_path, proto_file, golden_file); +} - // Ensure generated file is parsable. - flatbuffers::Parser parser4; - TEST_EQ(parser4.Parse(fbs_union.c_str(), nullptr), true); - TEST_EQ_STR(fbs_union.c_str(), goldenunionfile.c_str()); +void proto_test_include(const std::string &proto_path, + const std::string &proto_file, + const std::string &import_proto_file) { + flatbuffers::IDLOptions opts; + opts.include_dependence_headers = true; + opts.proto_mode = true; + + std::string golden_file; + TEST_EQ( + flatbuffers::LoadFile((proto_path + "test_include.golden.fbs").c_str(), + false, &golden_file), + true); + + RunTest(opts, proto_path, proto_file, golden_file, import_proto_file); } -// Parse a .proto schema, output as .fbs -void ParseProtoTestWithIncludes(const std::string &tests_data_path) { - // load the .proto and the golden file from disk - std::string protofile; - std::string goldenfile; - std::string goldenunionfile; - std::string importprotofile; +void proto_test_include_id(const std::string &proto_path, + const std::string &proto_file, + const std::string &import_proto_file) { + flatbuffers::IDLOptions opts; + opts.include_dependence_headers = true; + opts.proto_mode = true; + opts.keep_proto_id = true; + + std::string golden_file; TEST_EQ( - flatbuffers::LoadFile((tests_data_path + "prototest/test.proto").c_str(), - false, &protofile), + flatbuffers::LoadFile((proto_path + "test_include_id.golden.fbs").c_str(), + false, &golden_file), true); + + RunTest(opts, proto_path, proto_file, golden_file, import_proto_file); +} + +void proto_test_include_union(const std::string &proto_path, + const std::string &proto_file, + const std::string &import_proto_file) { + flatbuffers::IDLOptions opts; + opts.include_dependence_headers = true; + opts.proto_mode = true; + opts.proto_oneof_union = true; + + std::string golden_file; TEST_EQ(flatbuffers::LoadFile( - (tests_data_path + "prototest/imported.proto").c_str(), false, - &importprotofile), - true); - TEST_EQ(flatbuffers::LoadFile( - (tests_data_path + "prototest/test_include.golden").c_str(), - false, &goldenfile), + (proto_path + "test_union_include.golden.fbs").c_str(), false, + &golden_file), true); + + RunTest(opts, proto_path, proto_file, golden_file, import_proto_file); +} + +void proto_test_include_union_id(const std::string &proto_path, + const std::string &proto_file, + const std::string &import_proto_file) { + flatbuffers::IDLOptions opts; + opts.include_dependence_headers = true; + opts.proto_mode = true; + opts.proto_oneof_union = true; + opts.keep_proto_id = true; + + std::string golden_file; TEST_EQ(flatbuffers::LoadFile( - (tests_data_path + "prototest/test_union_include.golden").c_str(), - false, &goldenunionfile), + (proto_path + "test_union_include_id.golden.fbs").c_str(), false, + &golden_file), true); + RunTest(opts, proto_path, proto_file, golden_file, import_proto_file); +} + +void ParseCorruptedProto(const std::string &proto_path) { + const char *include_directories[] = { proto_path.c_str(), nullptr }; + flatbuffers::IDLOptions opts; opts.include_dependence_headers = true; opts.proto_mode = true; + opts.proto_oneof_union = true; - // Parse proto. - flatbuffers::Parser parser(opts); - auto protopath = tests_data_path + "prototest/"; - const char *include_directories[] = { protopath.c_str(), nullptr }; - TEST_EQ(parser.Parse(protofile.c_str(), include_directories), true); + std::string proto_file; - // Generate fbs. - auto fbs = flatbuffers::GenerateFBS(parser, "test"); + // Parse proto with non positive id. + { + flatbuffers::Parser parser(opts); + TEST_EQ( + flatbuffers::LoadFile((proto_path + "non-positive-id.proto").c_str(), + false, &proto_file), + true); + TEST_EQ(parser.Parse(proto_file.c_str(), include_directories), true); + auto fbs = flatbuffers::GenerateFBS(parser, "test"); + TEST_EQ(fbs.empty(), true); + } - // Generate fbs from import.proto - flatbuffers::Parser import_parser(opts); - TEST_EQ(import_parser.Parse(importprotofile.c_str(), include_directories), - true); - auto import_fbs = flatbuffers::GenerateFBS(import_parser, "test"); + // Parse proto with twice id. + { + flatbuffers::Parser parser(opts); + TEST_EQ(flatbuffers::LoadFile((proto_path + "twice-id.proto").c_str(), + false, &proto_file), + true); + TEST_EQ(parser.Parse(proto_file.c_str(), include_directories), true); + auto fbs = flatbuffers::GenerateFBS(parser, "test"); + TEST_EQ(fbs.empty(), true); + } - // Ensure generated file is parsable. - flatbuffers::Parser parser2; - // Since `imported.fbs` isn't in the filesystem AbsolutePath can't figure it - // out by itself. We manually construct it so Parser works. - std::string imported_fbs = flatbuffers::PosixPath( - flatbuffers::AbsolutePath(protopath) + "/imported.fbs"); - TEST_EQ(parser2.Parse(import_fbs.c_str(), include_directories, - imported_fbs.c_str()), - true); - TEST_EQ(parser2.Parse(fbs.c_str(), nullptr), true); - TEST_EQ_STR(fbs.c_str(), goldenfile.c_str()); + // Parse proto with using reserved id. + { + flatbuffers::Parser parser(opts); + TEST_EQ(flatbuffers::LoadFile((proto_path + "twice-id.proto").c_str(), + false, &proto_file), + true); + TEST_EQ(parser.Parse(proto_file.c_str(), include_directories), true); + auto fbs = flatbuffers::GenerateFBS(parser, "test"); + TEST_EQ(fbs.empty(), true); + } - // Parse proto with --oneof-union option. - opts.proto_oneof_union = true; - flatbuffers::Parser parser3(opts); - TEST_EQ(parser3.Parse(protofile.c_str(), include_directories), true); + // Parse proto with error on gap. + { + opts.proto_id_gap_action = IDLOptions::ProtoIdGapAction::ERROR; + flatbuffers::Parser parser(opts); + TEST_EQ(flatbuffers::LoadFile((proto_path + "test.proto").c_str(), false, + &proto_file), + true); + TEST_EQ(parser.Parse(proto_file.c_str(), include_directories), true); + auto fbs = flatbuffers::GenerateFBS(parser, "test"); + TEST_EQ(fbs.empty(), true); + } +} - // Generate fbs. - auto fbs_union = flatbuffers::GenerateFBS(parser3, "test"); +// Parse a .proto schema, output as .fbs +void ParseProtoTest(const std::string &tests_data_path) { + auto proto_path = tests_data_path + "prototest/"; + std::string proto_file; + TEST_EQ( + flatbuffers::LoadFile((tests_data_path + "prototest/test.proto").c_str(), + false, &proto_file), + true); - // Ensure generated file is parsable. - flatbuffers::Parser parser4; - TEST_EQ(parser4.Parse(import_fbs.c_str(), nullptr, imported_fbs.c_str()), + std::string import_proto_file; + TEST_EQ(flatbuffers::LoadFile( + (tests_data_path + "prototest/imported.proto").c_str(), false, + &import_proto_file), true); - TEST_EQ(parser4.Parse(fbs_union.c_str(), nullptr), true); - TEST_EQ_STR(fbs_union.c_str(), goldenunionfile.c_str()); + + proto_test(proto_path, proto_file); + proto_test_union(proto_path, proto_file); + proto_test_union_suffix(proto_path, proto_file); + proto_test_include(proto_path, proto_file, import_proto_file); + proto_test_include_union(proto_path, proto_file, import_proto_file); + + proto_test_id(proto_path, proto_file); + proto_test_union_id(proto_path, proto_file); + proto_test_union_suffix_id(proto_path, proto_file); + proto_test_include_id(proto_path, proto_file, import_proto_file); + proto_test_include_union_id(proto_path, proto_file, import_proto_file); + + ParseCorruptedProto(proto_path); } void ParseProtoBufAsciiTest() { diff --git a/tests/proto_test.h b/tests/proto_test.h index f8c3a727b6..fd6b111383 100644 --- a/tests/proto_test.h +++ b/tests/proto_test.h @@ -1,17 +1,31 @@ #ifndef TESTS_PROTO_TEST_H #define TESTS_PROTO_TEST_H +#include "flatbuffers/idl.h" + #include namespace flatbuffers { namespace tests { +void RunTest(const flatbuffers::IDLOptions &opts, const std::string &proto_path, const std::string &proto_file, + const std::string &golden_file, const std::string import_proto_file = {}); +void proto_test(const std::string &proto_path, const std::string &proto_file); +void proto_test_union(const std::string &proto_path, const std::string &proto_file); +void proto_test_union_suffix(const std::string &proto_path, const std::string &proto_file); +void proto_test_include(const std::string &proto_path, const std::string &proto_file, const std::string &import_proto_file); +void proto_test_include_union(const std::string &proto_path, const std::string &proto_file, const std::string &import_proto_file); + +void proto_test_id(const std::string &proto_path, const std::string &proto_file); +void proto_test_union_id(const std::string &proto_path, const std::string &proto_file); +void proto_test_union_suffix_id(const std::string &proto_path, const std::string &proto_file); +void proto_test_include_id(const std::string &proto_path, const std::string &proto_file, const std::string &import_proto_file); +void proto_test_include_union_id(const std::string &proto_path, const std::string &proto_file, const std::string &import_proto_file); + +void ParseCorruptedProto(const std::string &proto_path); void ParseProtoTest(const std::string& tests_data_path); -void ParseProtoTestWithSuffix(const std::string& tests_data_path); -void ParseProtoTestWithIncludes(const std::string& tests_data_path); void ParseProtoBufAsciiTest(); - } // namespace tests } // namespace flatbuffers diff --git a/tests/prototest/GenerateProtoGoldens.sh b/tests/prototest/GenerateProtoGoldens.sh index 8cf24f9181..4fc91bfebf 100755 --- a/tests/prototest/GenerateProtoGoldens.sh +++ b/tests/prototest/GenerateProtoGoldens.sh @@ -16,9 +16,16 @@ pushd "$(dirname $0)" >/dev/null -./../../flatc --proto test.proto && mv test.fbs test_include.golden -./../../flatc --proto --gen-all test.proto && mv test.fbs test.golden -./../../flatc --proto --oneof-union test.proto && mv test.fbs test_union_include.golden -./../../flatc --proto --gen-all --oneof-union test.proto && mv test.fbs test_union.golden -./../../flatc --proto --gen-all --proto-namespace-suffix test_namespace_suffix test.proto && mv test.fbs test_suffix.golden -./../../flatc --proto --gen-all --proto-namespace-suffix test_namespace_suffix --oneof-union test.proto && mv test.fbs test_union_suffix.golden +./../../flatc --proto test.proto && mv test.fbs test_include.golden.fbs +./../../flatc --proto --gen-all test.proto && mv test.fbs test.golden.fbs +./../../flatc --proto --oneof-union test.proto && mv test.fbs test_union_include.golden.fbs +./../../flatc --proto --gen-all --oneof-union test.proto && mv test.fbs test_union.golden.fbs +./../../flatc --proto --gen-all --proto-namespace-suffix test_namespace_suffix test.proto && mv test.fbs test_suffix.golden.fbs +./../../flatc --proto --gen-all --proto-namespace-suffix test_namespace_suffix --oneof-union test.proto && mv test.fbs test_union_suffix.golden.fbs + +./../../flatc --proto --keep-proto-id test.proto && mv test.fbs test_include_id.golden.fbs +./../../flatc --proto --keep-proto-id --gen-all test.proto && mv test.fbs test_id.golden.fbs +./../../flatc --proto --keep-proto-id --oneof-union test.proto && mv test.fbs test_union_include_id.golden.fbs +./../../flatc --proto --keep-proto-id --gen-all --oneof-union test.proto && mv test.fbs test_union_id.golden.fbs +./../../flatc --proto --keep-proto-id --gen-all --proto-namespace-suffix test_namespace_suffix test.proto && mv test.fbs test_suffix_id.golden.fbs +./../../flatc --proto --keep-proto-id --gen-all --proto-namespace-suffix test_namespace_suffix --oneof-union test.proto && mv test.fbs test_union_suffix_id.golden.fbs diff --git a/tests/prototest/non-positive-id.proto b/tests/prototest/non-positive-id.proto new file mode 100644 index 0000000000..a42b8afa05 --- /dev/null +++ b/tests/prototest/non-positive-id.proto @@ -0,0 +1,9 @@ +// Sample .proto file that we can not translate to the corresponding .fbs because it has non-positive ids. + +option some_option = is_ignored; + +package proto.test; + +message ProtoMessage { + optional uint64 NonPositiveId = -1; +} diff --git a/tests/prototest/test.golden b/tests/prototest/test.golden.fbs similarity index 100% rename from tests/prototest/test.golden rename to tests/prototest/test.golden.fbs diff --git a/tests/prototest/test.proto b/tests/prototest/test.proto index 98c92f88ad..c3f0157fe2 100644 --- a/tests/prototest/test.proto +++ b/tests/prototest/test.proto @@ -24,6 +24,7 @@ message ProtoMessage { // Ignored non-doc comment. // A nested message declaration, will be moved to top level in .fbs message OtherMessage { + reserved 2, 9 to 11, 15; optional double a = 26; /// doc comment for b. optional float b = 32 [default = 3.14149]; @@ -40,7 +41,7 @@ message ProtoMessage { } optional int32 c = 12 [default = 16]; optional int64 d = 1 [default = 0]; - optional uint32 p = 1; + optional uint32 p = 40; optional uint64 e = 2; /// doc comment for f. optional sint32 f = 3 [default = -1]; @@ -55,7 +56,7 @@ message ProtoMessage { /// lines required string l = 10; optional bytes m = 11; - optional OtherMessage n = 12; + optional OtherMessage n = 41; repeated string o = 14; optional ImportedMessage z = 16; /// doc comment for r. diff --git a/tests/prototest/test_id.golden.fbs b/tests/prototest/test_id.golden.fbs new file mode 100644 index 0000000000..39d51cf95f --- /dev/null +++ b/tests/prototest/test_id.golden.fbs @@ -0,0 +1,87 @@ +// Generated from test.proto + +namespace proto.test; + +/// Enum doc comment. +enum ProtoEnum : int { + NUL = 0, + FOO = 1, + /// Enum 2nd value doc comment misaligned. + BAR = 5, +} + +namespace proto.test.ProtoMessage_.OtherMessage_; + +enum ProtoEnum : int { + NUL = 0, + FOO = 1, + BAR = 2, + BAZ = 3, +} + +namespace proto.test; + +table ImportedMessage { + a:int (id: 0); +} + +/// 2nd table doc comment with +/// many lines. +table ProtoMessage { + c:int = 16 (id: 12); + d:long (id: 1); + p:uint (id: 21); + e:ulong (id: 2); + /// doc comment for f. + f:int = -1 (id: 3); + g:long (id: 4); + h:uint (id: 5); + q:ulong (id: 6); + i:int (id: 7); + j:long (id: 8); + /// doc comment for k. + k:bool (id: 9); + /// doc comment for l on 2 + /// lines + l:string (required,id: 10); + m:[ubyte] (id: 11); + n:proto.test.ProtoMessage_.OtherMessage (id: 22); + o:[string] (id: 13); + z:proto.test.ImportedMessage (id: 14); + /// doc comment for r. + r:proto.test.ProtoMessage_.Anonymous0 (id: 0); + outer_enum:proto.test.ProtoEnum (id: 15); + u:float = +inf (id: 16); + v:float = +inf (id: 17); + w:float = -inf (id: 18); + grades:[proto.test.ProtoMessage_.GradesEntry] (id: 19); + other_message_map:[proto.test.ProtoMessage_.OtherMessageMapEntry] (id: 20); +} + +namespace proto.test.ProtoMessage_; + +table OtherMessage { + a:double (id: 0); + /// doc comment for b. + b:float = 3.14149 (id: 1); + foo_bar_baz:proto.test.ProtoMessage_.OtherMessage_.ProtoEnum (id: 2); +} + +table Anonymous0 { + /// doc comment for s. + s:proto.test.ImportedMessage (id: 0); + /// doc comment for t on 2 + /// lines. + t:proto.test.ProtoMessage_.OtherMessage (id: 1); +} + +table GradesEntry { + key:string (key); + value:float; +} + +table OtherMessageMapEntry { + key:string (key); + value:proto.test.ProtoMessage_.OtherMessage; +} + diff --git a/tests/prototest/test_include.golden b/tests/prototest/test_include.golden.fbs similarity index 100% rename from tests/prototest/test_include.golden rename to tests/prototest/test_include.golden.fbs diff --git a/tests/prototest/test_include_id.golden.fbs b/tests/prototest/test_include_id.golden.fbs new file mode 100644 index 0000000000..e7f875f513 --- /dev/null +++ b/tests/prototest/test_include_id.golden.fbs @@ -0,0 +1,85 @@ +// Generated from test.proto + +include "imported.fbs"; + +namespace proto.test; + +/// Enum doc comment. +enum ProtoEnum : int { + NUL = 0, + FOO = 1, + /// Enum 2nd value doc comment misaligned. + BAR = 5, +} + +namespace proto.test.ProtoMessage_.OtherMessage_; + +enum ProtoEnum : int { + NUL = 0, + FOO = 1, + BAR = 2, + BAZ = 3, +} + +namespace proto.test; + +/// 2nd table doc comment with +/// many lines. +table ProtoMessage { + c:int = 16 (id: 12); + d:long (id: 1); + p:uint (id: 21); + e:ulong (id: 2); + /// doc comment for f. + f:int = -1 (id: 3); + g:long (id: 4); + h:uint (id: 5); + q:ulong (id: 6); + i:int (id: 7); + j:long (id: 8); + /// doc comment for k. + k:bool (id: 9); + /// doc comment for l on 2 + /// lines + l:string (required,id: 10); + m:[ubyte] (id: 11); + n:proto.test.ProtoMessage_.OtherMessage (id: 22); + o:[string] (id: 13); + z:proto.test.ImportedMessage (id: 14); + /// doc comment for r. + r:proto.test.ProtoMessage_.Anonymous0 (id: 0); + outer_enum:proto.test.ProtoEnum (id: 15); + u:float = +inf (id: 16); + v:float = +inf (id: 17); + w:float = -inf (id: 18); + grades:[proto.test.ProtoMessage_.GradesEntry] (id: 19); + other_message_map:[proto.test.ProtoMessage_.OtherMessageMapEntry] (id: 20); +} + +namespace proto.test.ProtoMessage_; + +table OtherMessage { + a:double (id: 0); + /// doc comment for b. + b:float = 3.14149 (id: 1); + foo_bar_baz:proto.test.ProtoMessage_.OtherMessage_.ProtoEnum (id: 2); +} + +table Anonymous0 { + /// doc comment for s. + s:proto.test.ImportedMessage (id: 0); + /// doc comment for t on 2 + /// lines. + t:proto.test.ProtoMessage_.OtherMessage (id: 1); +} + +table GradesEntry { + key:string (key); + value:float; +} + +table OtherMessageMapEntry { + key:string (key); + value:proto.test.ProtoMessage_.OtherMessage; +} + diff --git a/tests/prototest/test_suffix.golden b/tests/prototest/test_suffix.golden.fbs similarity index 100% rename from tests/prototest/test_suffix.golden rename to tests/prototest/test_suffix.golden.fbs diff --git a/tests/prototest/test_suffix_id.golden.fbs b/tests/prototest/test_suffix_id.golden.fbs new file mode 100644 index 0000000000..c07f42b887 --- /dev/null +++ b/tests/prototest/test_suffix_id.golden.fbs @@ -0,0 +1,87 @@ +// Generated from test.proto + +namespace proto.test.test_namespace_suffix; + +/// Enum doc comment. +enum ProtoEnum : int { + NUL = 0, + FOO = 1, + /// Enum 2nd value doc comment misaligned. + BAR = 5, +} + +namespace proto.test.test_namespace_suffix.ProtoMessage_.OtherMessage_; + +enum ProtoEnum : int { + NUL = 0, + FOO = 1, + BAR = 2, + BAZ = 3, +} + +namespace proto.test.test_namespace_suffix; + +table ImportedMessage { + a:int (id: 0); +} + +/// 2nd table doc comment with +/// many lines. +table ProtoMessage { + c:int = 16 (id: 12); + d:long (id: 1); + p:uint (id: 21); + e:ulong (id: 2); + /// doc comment for f. + f:int = -1 (id: 3); + g:long (id: 4); + h:uint (id: 5); + q:ulong (id: 6); + i:int (id: 7); + j:long (id: 8); + /// doc comment for k. + k:bool (id: 9); + /// doc comment for l on 2 + /// lines + l:string (required,id: 10); + m:[ubyte] (id: 11); + n:proto.test.test_namespace_suffix.ProtoMessage_.OtherMessage (id: 22); + o:[string] (id: 13); + z:proto.test.test_namespace_suffix.ImportedMessage (id: 14); + /// doc comment for r. + r:proto.test.test_namespace_suffix.ProtoMessage_.Anonymous0 (id: 0); + outer_enum:proto.test.test_namespace_suffix.ProtoEnum (id: 15); + u:float = +inf (id: 16); + v:float = +inf (id: 17); + w:float = -inf (id: 18); + grades:[proto.test.test_namespace_suffix.ProtoMessage_.GradesEntry] (id: 19); + other_message_map:[proto.test.test_namespace_suffix.ProtoMessage_.OtherMessageMapEntry] (id: 20); +} + +namespace proto.test.test_namespace_suffix.ProtoMessage_; + +table OtherMessage { + a:double (id: 0); + /// doc comment for b. + b:float = 3.14149 (id: 1); + foo_bar_baz:proto.test.test_namespace_suffix.ProtoMessage_.OtherMessage_.ProtoEnum (id: 2); +} + +table Anonymous0 { + /// doc comment for s. + s:proto.test.test_namespace_suffix.ImportedMessage (id: 0); + /// doc comment for t on 2 + /// lines. + t:proto.test.test_namespace_suffix.ProtoMessage_.OtherMessage (id: 1); +} + +table GradesEntry { + key:string (key); + value:float; +} + +table OtherMessageMapEntry { + key:string (key); + value:proto.test.test_namespace_suffix.ProtoMessage_.OtherMessage; +} + diff --git a/tests/prototest/test_union.golden b/tests/prototest/test_union.golden.fbs similarity index 100% rename from tests/prototest/test_union.golden rename to tests/prototest/test_union.golden.fbs diff --git a/tests/prototest/test_union_id.golden.fbs b/tests/prototest/test_union_id.golden.fbs new file mode 100644 index 0000000000..fed9360944 --- /dev/null +++ b/tests/prototest/test_union_id.golden.fbs @@ -0,0 +1,89 @@ +// Generated from test.proto + +namespace proto.test; + +/// Enum doc comment. +enum ProtoEnum : int { + NUL = 0, + FOO = 1, + /// Enum 2nd value doc comment misaligned. + BAR = 5, +} + +namespace proto.test.ProtoMessage_.OtherMessage_; + +enum ProtoEnum : int { + NUL = 0, + FOO = 1, + BAR = 2, + BAZ = 3, +} + +namespace proto.test.ProtoMessage_; + +union RUnion { + /// doc comment for s. + proto.test.ImportedMessage, + /// doc comment for t on 2 + /// lines. + proto.test.ProtoMessage_.OtherMessage, +} + +namespace proto.test; + +table ImportedMessage { + a:int (id: 0); +} + +/// 2nd table doc comment with +/// many lines. +table ProtoMessage { + c:int = 16 (id: 13); + d:long (id: 2); + p:uint (id: 22); + e:ulong (id: 3); + /// doc comment for f. + f:int = -1 (id: 4); + g:long (id: 5); + h:uint (id: 6); + q:ulong (id: 7); + i:int (id: 8); + j:long (id: 9); + /// doc comment for k. + k:bool (id: 10); + /// doc comment for l on 2 + /// lines + l:string (required,id: 11); + m:[ubyte] (id: 12); + n:proto.test.ProtoMessage_.OtherMessage (id: 23); + o:[string] (id: 14); + z:proto.test.ImportedMessage (id: 15); + /// doc comment for r. + r:proto.test.ProtoMessage_.RUnion (id: 1); + outer_enum:proto.test.ProtoEnum (id: 16); + u:float = +inf (id: 17); + v:float = +inf (id: 18); + w:float = -inf (id: 19); + grades:[proto.test.ProtoMessage_.GradesEntry] (id: 20); + other_message_map:[proto.test.ProtoMessage_.OtherMessageMapEntry] (id: 21); +} + +namespace proto.test.ProtoMessage_; + +table OtherMessage { + a:double (id: 0); + /// doc comment for b. + b:float = 3.14149 (id: 1); + foo_bar_baz:proto.test.ProtoMessage_.OtherMessage_.ProtoEnum (id: 2); +} + +table GradesEntry { + key:string (key); + value:float; +} + +table OtherMessageMapEntry { + key:string (key); + value:proto.test.ProtoMessage_.OtherMessage; +} + diff --git a/tests/prototest/test_union_include.golden b/tests/prototest/test_union_include.golden.fbs similarity index 100% rename from tests/prototest/test_union_include.golden rename to tests/prototest/test_union_include.golden.fbs diff --git a/tests/prototest/test_union_include_id.golden.fbs b/tests/prototest/test_union_include_id.golden.fbs new file mode 100644 index 0000000000..ceb785d24b --- /dev/null +++ b/tests/prototest/test_union_include_id.golden.fbs @@ -0,0 +1,87 @@ +// Generated from test.proto + +include "imported.fbs"; + +namespace proto.test; + +/// Enum doc comment. +enum ProtoEnum : int { + NUL = 0, + FOO = 1, + /// Enum 2nd value doc comment misaligned. + BAR = 5, +} + +namespace proto.test.ProtoMessage_.OtherMessage_; + +enum ProtoEnum : int { + NUL = 0, + FOO = 1, + BAR = 2, + BAZ = 3, +} + +namespace proto.test.ProtoMessage_; + +union RUnion { + /// doc comment for s. + proto.test.ImportedMessage, + /// doc comment for t on 2 + /// lines. + proto.test.ProtoMessage_.OtherMessage, +} + +namespace proto.test; + +/// 2nd table doc comment with +/// many lines. +table ProtoMessage { + c:int = 16 (id: 13); + d:long (id: 2); + p:uint (id: 22); + e:ulong (id: 3); + /// doc comment for f. + f:int = -1 (id: 4); + g:long (id: 5); + h:uint (id: 6); + q:ulong (id: 7); + i:int (id: 8); + j:long (id: 9); + /// doc comment for k. + k:bool (id: 10); + /// doc comment for l on 2 + /// lines + l:string (required,id: 11); + m:[ubyte] (id: 12); + n:proto.test.ProtoMessage_.OtherMessage (id: 23); + o:[string] (id: 14); + z:proto.test.ImportedMessage (id: 15); + /// doc comment for r. + r:proto.test.ProtoMessage_.RUnion (id: 1); + outer_enum:proto.test.ProtoEnum (id: 16); + u:float = +inf (id: 17); + v:float = +inf (id: 18); + w:float = -inf (id: 19); + grades:[proto.test.ProtoMessage_.GradesEntry] (id: 20); + other_message_map:[proto.test.ProtoMessage_.OtherMessageMapEntry] (id: 21); +} + +namespace proto.test.ProtoMessage_; + +table OtherMessage { + a:double (id: 0); + /// doc comment for b. + b:float = 3.14149 (id: 1); + foo_bar_baz:proto.test.ProtoMessage_.OtherMessage_.ProtoEnum (id: 2); +} + +table GradesEntry { + key:string (key); + value:float; +} + +table OtherMessageMapEntry { + key:string (key); + value:proto.test.ProtoMessage_.OtherMessage; +} + diff --git a/tests/prototest/test_union_suffix.golden b/tests/prototest/test_union_suffix.golden.fbs similarity index 100% rename from tests/prototest/test_union_suffix.golden rename to tests/prototest/test_union_suffix.golden.fbs diff --git a/tests/prototest/test_union_suffix_id.golden.fbs b/tests/prototest/test_union_suffix_id.golden.fbs new file mode 100644 index 0000000000..adbb4b34f6 --- /dev/null +++ b/tests/prototest/test_union_suffix_id.golden.fbs @@ -0,0 +1,89 @@ +// Generated from test.proto + +namespace proto.test.test_namespace_suffix; + +/// Enum doc comment. +enum ProtoEnum : int { + NUL = 0, + FOO = 1, + /// Enum 2nd value doc comment misaligned. + BAR = 5, +} + +namespace proto.test.test_namespace_suffix.ProtoMessage_.OtherMessage_; + +enum ProtoEnum : int { + NUL = 0, + FOO = 1, + BAR = 2, + BAZ = 3, +} + +namespace proto.test.test_namespace_suffix.ProtoMessage_; + +union RUnion { + /// doc comment for s. + proto.test.test_namespace_suffix.ImportedMessage, + /// doc comment for t on 2 + /// lines. + proto.test.test_namespace_suffix.ProtoMessage_.OtherMessage, +} + +namespace proto.test.test_namespace_suffix; + +table ImportedMessage { + a:int (id: 0); +} + +/// 2nd table doc comment with +/// many lines. +table ProtoMessage { + c:int = 16 (id: 13); + d:long (id: 2); + p:uint (id: 22); + e:ulong (id: 3); + /// doc comment for f. + f:int = -1 (id: 4); + g:long (id: 5); + h:uint (id: 6); + q:ulong (id: 7); + i:int (id: 8); + j:long (id: 9); + /// doc comment for k. + k:bool (id: 10); + /// doc comment for l on 2 + /// lines + l:string (required,id: 11); + m:[ubyte] (id: 12); + n:proto.test.test_namespace_suffix.ProtoMessage_.OtherMessage (id: 23); + o:[string] (id: 14); + z:proto.test.test_namespace_suffix.ImportedMessage (id: 15); + /// doc comment for r. + r:proto.test.test_namespace_suffix.ProtoMessage_.RUnion (id: 1); + outer_enum:proto.test.test_namespace_suffix.ProtoEnum (id: 16); + u:float = +inf (id: 17); + v:float = +inf (id: 18); + w:float = -inf (id: 19); + grades:[proto.test.test_namespace_suffix.ProtoMessage_.GradesEntry] (id: 20); + other_message_map:[proto.test.test_namespace_suffix.ProtoMessage_.OtherMessageMapEntry] (id: 21); +} + +namespace proto.test.test_namespace_suffix.ProtoMessage_; + +table OtherMessage { + a:double (id: 0); + /// doc comment for b. + b:float = 3.14149 (id: 1); + foo_bar_baz:proto.test.test_namespace_suffix.ProtoMessage_.OtherMessage_.ProtoEnum (id: 2); +} + +table GradesEntry { + key:string (key); + value:float; +} + +table OtherMessageMapEntry { + key:string (key); + value:proto.test.test_namespace_suffix.ProtoMessage_.OtherMessage; +} + diff --git a/tests/prototest/twice-id.proto b/tests/prototest/twice-id.proto new file mode 100644 index 0000000000..aac4bd49ee --- /dev/null +++ b/tests/prototest/twice-id.proto @@ -0,0 +1,10 @@ +// Sample .proto file that we can not translate to the corresponding .fbs because it has used an id twice + +option some_option = is_ignored; + +package proto.test; + +message ProtoMessage { + optional sint32 e = 2; + optional uint64 twice = 2; +} diff --git a/tests/prototest/use-reserved-id.proto b/tests/prototest/use-reserved-id.proto new file mode 100644 index 0000000000..fd0ce2a3bf --- /dev/null +++ b/tests/prototest/use-reserved-id.proto @@ -0,0 +1,10 @@ +// Sample .proto file that we can not translate to the corresponding .fbs because it has used ids from reserved ids. + +option some_option = is_ignored; + +package proto.test; + +message ProtoMessage { + reserved 200, 9 to 11, 1500; + optional sint32 reserved_id_usage = 10; +} diff --git a/tests/test.cpp b/tests/test.cpp index 19f9e0da8f..e59245655c 100644 --- a/tests/test.cpp +++ b/tests/test.cpp @@ -1542,8 +1542,6 @@ int FlatBufferTests(const std::string &tests_data_path) { FixedLengthArrayJsonTest(tests_data_path, true); ReflectionTest(tests_data_path, flatbuf.data(), flatbuf.size()); ParseProtoTest(tests_data_path); - ParseProtoTestWithSuffix(tests_data_path); - ParseProtoTestWithIncludes(tests_data_path); EvolutionTest(tests_data_path); UnionDeprecationTest(tests_data_path); UnionVectorTest(tests_data_path); From 0fb5519585c4d21424717a6b8b59cf638825e375 Mon Sep 17 00:00:00 2001 From: Derek Bailey Date: Thu, 2 Feb 2023 12:39:39 -0600 Subject: [PATCH 112/571] Fixed vtable duplication for binary annotator (#7809) --- src/annotated_binary_text_gen.cpp | 2 +- src/binary_annotator.cpp | 92 +- src/binary_annotator.h | 19 +- tests/annotated_binary/annotated_binary.afb | 400 +- .../tests/invalid_root_offset.afb | 6 +- .../tests/invalid_root_table_too_short.afb | 8 +- .../invalid_root_table_vtable_offset.afb | 10 +- .../tests/invalid_string_length.afb | 396 +- .../tests/invalid_string_length_cut_short.afb | 132 +- .../invalid_struct_array_field_cut_short.afb | 120 +- .../tests/invalid_struct_field_cut_short.afb | 114 +- .../tests/invalid_table_field_offset.afb | 130 +- .../tests/invalid_table_field_size.afb | 112 +- .../tests/invalid_union_type_value.afb | 394 +- .../tests/invalid_vector_length_cut_short.afb | 188 +- .../invalid_vector_scalars_cut_short.afb | 246 +- .../invalid_vector_strings_cut_short.afb | 206 +- .../invalid_vector_structs_cut_short.afb | 190 +- .../tests/invalid_vector_tables_cut_short.afb | 272 +- .../tests/invalid_vector_union_type_value.afb | 396 +- .../tests/invalid_vector_unions_cut_short.afb | 272 +- .../tests/invalid_vtable_field_offset.afb | 378 +- .../tests/invalid_vtable_ref_table_size.afb | 402 +- .../invalid_vtable_ref_table_size_short.afb | 400 +- .../tests/invalid_vtable_size.afb | 10 +- .../tests/invalid_vtable_size_short.afb | 10 +- tests/monster_test.afb | 8568 ++++++++--------- tests/monsterdata_test.afb | 52 +- 28 files changed, 6772 insertions(+), 6753 deletions(-) diff --git a/src/annotated_binary_text_gen.cpp b/src/annotated_binary_text_gen.cpp index 9596be2144..822d76ea19 100644 --- a/src/annotated_binary_text_gen.cpp +++ b/src/annotated_binary_text_gen.cpp @@ -131,7 +131,7 @@ static std::string ToValueString(const BinaryRegion ®ion, // value. // TODO(dbaileychess): It might be nicer to put this in the comment field. if (IsOffset(region.type)) { - s += " Loc: +0x"; + s += " Loc: 0x"; s += ToHex(region.points_to_offset, output_config.offset_max_char); } return s; diff --git a/src/binary_annotator.cpp b/src/binary_annotator.cpp index 817b478d3c..2c31fe5f3d 100644 --- a/src/binary_annotator.cpp +++ b/src/binary_annotator.cpp @@ -196,14 +196,22 @@ uint64_t BinaryAnnotator::BuildHeader(const uint64_t header_offset) { return root_table_offset.value(); } -void BinaryAnnotator::BuildVTable(const uint64_t vtable_offset, - const reflection::Object *const table, - const uint64_t offset_of_referring_table) { - // First see if we have used this vtable before, if so skip building it again. - auto it = vtables_.find(vtable_offset); - if (it != vtables_.end()) { return; } +BinaryAnnotator::VTable *BinaryAnnotator::GetOrBuildVTable( + const uint64_t vtable_offset, const reflection::Object *const table, + const uint64_t offset_of_referring_table) { + // Get a list of vtables (if any) already defined at this offset. + std::list &vtables = vtables_[vtable_offset]; + + // See if this vtable for the table type has been generated before. + for (VTable &vtable : vtables) { + if (vtable.referring_table == table) { return &vtable; } + } - if (ContainsSection(vtable_offset)) { return; } + // If we are trying to make a new vtable and it is already encompassed by + // another binary section, something is corrupted. + if (vtables.empty() && ContainsSection(vtable_offset)) { return nullptr; } + + const std::string referring_table_name = table->name()->str(); BinaryRegionComment vtable_size_comment; vtable_size_comment.type = BinaryRegionCommentType::VTableSize; @@ -217,11 +225,11 @@ void BinaryAnnotator::BuildVTable(const uint64_t vtable_offset, AddSection(vtable_offset, MakeSingleRegionBinarySection( - table->name()->str(), BinarySectionType::VTable, + referring_table_name, BinarySectionType::VTable, MakeBinaryRegion(vtable_offset, remaining, BinaryRegionType::Unknown, remaining, 0, vtable_size_comment))); - return; + return nullptr; } // Vtables start with the size of the vtable @@ -232,23 +240,23 @@ void BinaryAnnotator::BuildVTable(const uint64_t vtable_offset, // The vtable_size points to off the end of the binary. AddSection(vtable_offset, MakeSingleRegionBinarySection( - table->name()->str(), BinarySectionType::VTable, + referring_table_name, BinarySectionType::VTable, MakeBinaryRegion(vtable_offset, sizeof(uint16_t), BinaryRegionType::Uint16, 0, 0, vtable_size_comment))); - return; + return nullptr; } else if (vtable_size < 2 * sizeof(uint16_t)) { SetError(vtable_size_comment, BinaryRegionStatus::ERROR_LENGTH_TOO_SHORT, "4"); // The size includes itself and the table size which are both uint16_t. AddSection(vtable_offset, MakeSingleRegionBinarySection( - table->name()->str(), BinarySectionType::VTable, + referring_table_name, BinarySectionType::VTable, MakeBinaryRegion(vtable_offset, sizeof(uint16_t), BinaryRegionType::Uint16, 0, 0, vtable_size_comment))); - return; + return nullptr; } std::vector regions; @@ -272,11 +280,11 @@ void BinaryAnnotator::BuildVTable(const uint64_t vtable_offset, "2"); AddSection(offset, MakeSingleRegionBinarySection( - table->name()->str(), BinarySectionType::VTable, + referring_table_name, BinarySectionType::VTable, MakeBinaryRegion( offset, remaining, BinaryRegionType::Unknown, remaining, 0, ref_table_len_comment))); - return; + return nullptr; } // Then they have the size of the table they reference. @@ -395,7 +403,7 @@ void BinaryAnnotator::BuildVTable(const uint64_t vtable_offset, (vtable_size - sizeof(uint16_t) - sizeof(uint16_t)) / sizeof(uint16_t); // Prevent a bad binary from declaring a really large vtable_size, that we can - // not indpendently verify. + // not independently verify. expectant_vtable_fields = std::min( static_cast(fields_processed * 3), expectant_vtable_fields); @@ -427,15 +435,26 @@ void BinaryAnnotator::BuildVTable(const uint64_t vtable_offset, field_comment)); } - sections_[vtable_offset] = MakeBinarySection( - table->name()->str(), BinarySectionType::VTable, std::move(regions)); + // If we have never added this vtable before record the Binary section. + if (vtables.empty()) { + sections_[vtable_offset] = MakeBinarySection( + referring_table_name, BinarySectionType::VTable, std::move(regions)); + } else { + // Add the current table name to the name of the section. + sections_[vtable_offset].name += ", " + referring_table_name; + } VTable vtable; + vtable.referring_table = table; vtable.fields = std::move(fields); vtable.table_size = table_size; vtable.vtable_size = vtable_size; - vtables_[vtable_offset] = vtable; + // Add this vtable to the collection of vtables at this offset. + vtables.push_back(std::move(vtable)); + + // Return the vtable we just added. + return &vtables.back(); } void BinaryAnnotator::BuildTable(const uint64_t table_offset, @@ -491,19 +510,17 @@ void BinaryAnnotator::BuildTable(const uint64_t table_offset, // Parse the vtable first so we know what the rest of the fields in the table // are. - BuildVTable(vtable_offset, table, table_offset); + const VTable *const vtable = + GetOrBuildVTable(vtable_offset, table, table_offset); - auto vtable_entry = vtables_.find(vtable_offset); - if (vtable_entry == vtables_.end()) { + if (vtable == nullptr) { // There is no valid vtable for this table, so we cannot process the rest of // the table entries. return; } - const VTable &vtable = vtable_entry->second; - // This is the size and length of this table. - const uint16_t table_size = vtable.table_size; + const uint16_t table_size = vtable->table_size; uint64_t table_end_offset = table_offset + table_size; if (!IsValidOffset(table_end_offset - 1)) { @@ -516,7 +533,7 @@ void BinaryAnnotator::BuildTable(const uint64_t table_offset, // not by their IDs. So copy them over to another vector that we can sort on // the offset_from_table property. std::vector fields; - for (const auto &vtable_field : vtable.fields) { + for (const auto &vtable_field : vtable->fields) { fields.push_back(vtable_field.second); } @@ -707,7 +724,8 @@ void BinaryAnnotator::BuildTable(const uint64_t table_offset, regions.push_back(MakeBinaryRegion( field_offset, sizeof(uint32_t), BinaryRegionType::UOffset, 0, offset_of_next_item, offset_field_comment)); - BuildVector(offset_of_next_item, table, field, table_offset, vtable); + BuildVector(offset_of_next_item, table, field, table_offset, + vtable->fields); } break; case reflection::BaseType::Union: { @@ -716,8 +734,8 @@ void BinaryAnnotator::BuildTable(const uint64_t table_offset, // The union type field is always one less than the union itself. const uint16_t union_type_id = field->id() - 1; - auto vtable_field = vtable.fields.find(union_type_id); - if (vtable_field == vtable.fields.end()) { + auto vtable_field = vtable->fields.find(union_type_id); + if (vtable_field == vtable->fields.end()) { // TODO(dbaileychess): need to capture this error condition. break; } @@ -959,11 +977,10 @@ void BinaryAnnotator::BuildString(const uint64_t string_offset, BinarySectionType::String, std::move(regions))); } -void BinaryAnnotator::BuildVector(const uint64_t vector_offset, - const reflection::Object *const table, - const reflection::Field *const field, - const uint64_t parent_table_offset, - const VTable &vtable) { +void BinaryAnnotator::BuildVector( + const uint64_t vector_offset, const reflection::Object *const table, + const reflection::Field *const field, const uint64_t parent_table_offset, + const std::map vtable_fields) { if (ContainsSection(vector_offset)) { return; } BinaryRegionComment vector_length_comment; @@ -1011,7 +1028,7 @@ void BinaryAnnotator::BuildVector(const uint64_t vector_offset, regions.push_back(MakeBinaryRegion(vector_offset, sizeof(uint32_t), BinaryRegionType::Uint32, 0, 0, vector_length_comment)); - + // Consume the vector length offset. uint64_t offset = vector_offset + sizeof(uint32_t); switch (field->type()->element()) { @@ -1079,6 +1096,7 @@ void BinaryAnnotator::BuildVector(const uint64_t vector_offset, offset, sizeof(uint32_t), BinaryRegionType::UOffset, 0, table_offset, vector_object_comment)); + // Consume the offset to the table. offset += sizeof(uint32_t); BuildTable(table_offset, BinarySectionType::Table, object); @@ -1135,8 +1153,8 @@ void BinaryAnnotator::BuildVector(const uint64_t vector_offset, // location. const uint16_t union_type_vector_id = field->id() - 1; - auto vtable_entry = vtable.fields.find(union_type_vector_id); - if (vtable_entry == vtable.fields.end()) { + auto vtable_entry = vtable_fields.find(union_type_vector_id); + if (vtable_entry == vtable_fields.end()) { // TODO(dbaileychess): need to capture this error condition. break; } diff --git a/src/binary_annotator.h b/src/binary_annotator.h index 21db19d22b..096f9a4815 100644 --- a/src/binary_annotator.h +++ b/src/binary_annotator.h @@ -17,6 +17,7 @@ #ifndef FLATBUFFERS_BINARY_ANNOTATOR_H_ #define FLATBUFFERS_BINARY_ANNOTATOR_H_ +#include #include #include #include @@ -52,8 +53,8 @@ enum class BinaryRegionType { template static inline std::string ToHex(T i, size_t width = sizeof(T)) { std::stringstream stream; - stream << std::hex << std::uppercase << std::setfill('0') << std::setw(static_cast(width)) - << i; + stream << std::hex << std::uppercase << std::setfill('0') + << std::setw(static_cast(width)) << i; return stream.str(); } @@ -257,6 +258,8 @@ class BinaryAnnotator { uint16_t offset_from_table = 0; }; + const reflection::Object *referring_table; + // Field ID -> {field def, offset from table} std::map fields; @@ -266,8 +269,12 @@ class BinaryAnnotator { uint64_t BuildHeader(uint64_t offset); - void BuildVTable(uint64_t offset, const reflection::Object *table, - uint64_t offset_of_referring_table); + // VTables can be shared across instances or even across objects. This + // attempts to get an existing vtable given the offset and table type, + // otherwise it will built the vtable, memorize it, and return the built + // VTable. Returns nullptr if building the VTable fails. + VTable *GetOrBuildVTable(uint64_t offset, const reflection::Object *table, + uint64_t offset_of_referring_table); void BuildTable(uint64_t offset, const BinarySectionType type, const reflection::Object *table); @@ -281,7 +288,7 @@ class BinaryAnnotator { void BuildVector(uint64_t offset, const reflection::Object *table, const reflection::Field *field, uint64_t parent_table_offset, - const VTable &vtable); + const std::map vtable_fields); std::string BuildUnion(uint64_t offset, uint8_t realized_type, const reflection::Field *field); @@ -382,7 +389,7 @@ class BinaryAnnotator { const uint64_t binary_length_; // Map of binary offset to vtables, to dedupe vtables. - std::map vtables_; + std::map> vtables_; // The annotated binary sections, index by their absolute offset. std::map sections_; diff --git a/tests/annotated_binary/annotated_binary.afb b/tests/annotated_binary/annotated_binary.afb index 9303a2822a..15e10a99ce 100644 --- a/tests/annotated_binary/annotated_binary.afb +++ b/tests/annotated_binary/annotated_binary.afb @@ -4,294 +4,294 @@ // Binary file: annotated_binary.bin header: - +0x0000 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x0044 | offset to root table `AnnotatedBinary.Foo` - +0x0004 | 41 4E 4E 4F | char[4] | ANNO | File Identifier + +0x0000 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: 0x0044 | offset to root table `AnnotatedBinary.Foo` + +0x0004 | 41 4E 4E 4F | char[4] | ANNO | File Identifier padding: - +0x0008 | 00 00 | uint8_t[2] | .. | padding + +0x0008 | 00 00 | uint8_t[2] | .. | padding vtable (AnnotatedBinary.Foo): - +0x000A | 3A 00 | uint16_t | 0x003A (58) | size of this vtable - +0x000C | 68 00 | uint16_t | 0x0068 (104) | size of referring table - +0x000E | 0C 00 | VOffset16 | 0x000C (12) | offset to field `counter` (id: 0) - +0x0010 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `healthy` (id: 1) - +0x0012 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `level` (id: 2) (Long) - +0x0014 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `meal` (id: 3) - +0x0016 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `bar` (id: 4) - +0x0018 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `home` (id: 5) - +0x001A | 30 00 | VOffset16 | 0x0030 (48) | offset to field `name` (id: 6) - +0x001C | 34 00 | VOffset16 | 0x0034 (52) | offset to field `bars` (id: 7) - +0x001E | 09 00 | VOffset16 | 0x0009 (9) | offset to field `bar_baz_type` (id: 8) - +0x0020 | 38 00 | VOffset16 | 0x0038 (56) | offset to field `bar_baz` (id: 9) - +0x0022 | 3C 00 | VOffset16 | 0x003C (60) | offset to field `accounts` (id: 10) - +0x0024 | 40 00 | VOffset16 | 0x0040 (64) | offset to field `bob` (id: 11) - +0x0026 | 44 00 | VOffset16 | 0x0044 (68) | offset to field `alice` (id: 12) - +0x0028 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `maybe_i32` (id: 13) (Int) - +0x002A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_i32` (id: 14) (Int) - +0x002C | 48 00 | VOffset16 | 0x0048 (72) | offset to field `just_i32` (id: 15) - +0x002E | 4C 00 | VOffset16 | 0x004C (76) | offset to field `names` (id: 16) - +0x0030 | 50 00 | VOffset16 | 0x0050 (80) | offset to field `points_of_interest` (id: 17) - +0x0032 | 54 00 | VOffset16 | 0x0054 (84) | offset to field `foobars_type` (id: 18) - +0x0034 | 58 00 | VOffset16 | 0x0058 (88) | offset to field `foobars` (id: 19) - +0x0036 | 0A 00 | VOffset16 | 0x000A (10) | offset to field `measurement_type` (id: 20) - +0x0038 | 5C 00 | VOffset16 | 0x005C (92) | offset to field `measurement` (id: 21) - +0x003A | 0B 00 | VOffset16 | 0x000B (11) | offset to field `anything_type` (id: 22) - +0x003C | 60 00 | VOffset16 | 0x0060 (96) | offset to field `anything` (id: 23) - +0x003E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `temperature` (id: 24) (Float) - +0x0040 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `teetotaler` (id: 25) (Obj) - +0x0042 | 64 00 | VOffset16 | 0x0064 (100) | offset to field `charlie` (id: 26) + +0x000A | 3A 00 | uint16_t | 0x003A (58) | size of this vtable + +0x000C | 68 00 | uint16_t | 0x0068 (104) | size of referring table + +0x000E | 0C 00 | VOffset16 | 0x000C (12) | offset to field `counter` (id: 0) + +0x0010 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `healthy` (id: 1) + +0x0012 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `level` (id: 2) (Long) + +0x0014 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `meal` (id: 3) + +0x0016 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `bar` (id: 4) + +0x0018 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `home` (id: 5) + +0x001A | 30 00 | VOffset16 | 0x0030 (48) | offset to field `name` (id: 6) + +0x001C | 34 00 | VOffset16 | 0x0034 (52) | offset to field `bars` (id: 7) + +0x001E | 09 00 | VOffset16 | 0x0009 (9) | offset to field `bar_baz_type` (id: 8) + +0x0020 | 38 00 | VOffset16 | 0x0038 (56) | offset to field `bar_baz` (id: 9) + +0x0022 | 3C 00 | VOffset16 | 0x003C (60) | offset to field `accounts` (id: 10) + +0x0024 | 40 00 | VOffset16 | 0x0040 (64) | offset to field `bob` (id: 11) + +0x0026 | 44 00 | VOffset16 | 0x0044 (68) | offset to field `alice` (id: 12) + +0x0028 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `maybe_i32` (id: 13) (Int) + +0x002A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_i32` (id: 14) (Int) + +0x002C | 48 00 | VOffset16 | 0x0048 (72) | offset to field `just_i32` (id: 15) + +0x002E | 4C 00 | VOffset16 | 0x004C (76) | offset to field `names` (id: 16) + +0x0030 | 50 00 | VOffset16 | 0x0050 (80) | offset to field `points_of_interest` (id: 17) + +0x0032 | 54 00 | VOffset16 | 0x0054 (84) | offset to field `foobars_type` (id: 18) + +0x0034 | 58 00 | VOffset16 | 0x0058 (88) | offset to field `foobars` (id: 19) + +0x0036 | 0A 00 | VOffset16 | 0x000A (10) | offset to field `measurement_type` (id: 20) + +0x0038 | 5C 00 | VOffset16 | 0x005C (92) | offset to field `measurement` (id: 21) + +0x003A | 0B 00 | VOffset16 | 0x000B (11) | offset to field `anything_type` (id: 22) + +0x003C | 60 00 | VOffset16 | 0x0060 (96) | offset to field `anything` (id: 23) + +0x003E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `temperature` (id: 24) (Float) + +0x0040 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `teetotaler` (id: 25) (Obj) + +0x0042 | 64 00 | VOffset16 | 0x0064 (100) | offset to field `charlie` (id: 26) root_table (AnnotatedBinary.Foo): - +0x0044 | 3A 00 00 00 | SOffset32 | 0x0000003A (58) Loc: +0x000A | offset to vtable - +0x0048 | 00 00 00 | uint8_t[3] | ... | padding - +0x004B | 01 | uint8_t | 0x01 (1) | table field `healthy` (Bool) - +0x004C | 02 | uint8_t | 0x02 (2) | table field `meal` (Byte) - +0x004D | 02 | UType8 | 0x02 (2) | table field `bar_baz_type` (UType) - +0x004E | 01 | UType8 | 0x01 (1) | table field `measurement_type` (UType) - +0x004F | 01 | UType8 | 0x01 (1) | table field `anything_type` (UType) - +0x0050 | D2 04 00 00 | uint32_t | 0x000004D2 (1234) | table field `counter` (Int) - +0x0054 | 28 02 00 00 | UOffset32 | 0x00000228 (552) Loc: +0x027C | offset to field `bar` (table) - +0x0058 | 01 00 00 00 | uint32_t | 0x00000001 (1) | struct field `home.floors` of 'AnnotatedBinary.Building' (Int) - +0x005C | 02 00 00 00 | uint32_t | 0x00000002 (2) | struct field `home.doors` of 'AnnotatedBinary.Building' (Int) - +0x0060 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | struct field `home.windows` of 'AnnotatedBinary.Building' (Int) - +0x0064 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | array field `home.dimensions.values`[0] of 'AnnotatedBinary.Dimension' (Int) - +0x0068 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | array field `home.dimensions.values`[1] of 'AnnotatedBinary.Dimension' (Int) - +0x006C | 14 00 00 00 | uint32_t | 0x00000014 (20) | array field `home.dimensions.values`[2] of 'AnnotatedBinary.Dimension' (Int) - +0x0070 | 01 | uint8_t | 0x01 (1) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte) - +0x0071 | 02 | uint8_t | 0x02 (2) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte) - +0x0072 | 03 | uint8_t | 0x03 (3) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte) - +0x0073 | 00 | uint8_t[1] | . | padding - +0x0074 | C8 01 00 00 | UOffset32 | 0x000001C8 (456) Loc: +0x023C | offset to field `name` (string) - +0x0078 | 5C 01 00 00 | UOffset32 | 0x0000015C (348) Loc: +0x01D4 | offset to field `bars` (vector) - +0x007C | 50 01 00 00 | UOffset32 | 0x00000150 (336) Loc: +0x01CC | offset to field `bar_baz` (union of type `Baz`) - +0x0080 | 34 01 00 00 | UOffset32 | 0x00000134 (308) Loc: +0x01B4 | offset to field `accounts` (vector) - +0x0084 | 24 01 00 00 | UOffset32 | 0x00000124 (292) Loc: +0x01A8 | offset to field `bob` (string) - +0x0088 | 14 01 00 00 | UOffset32 | 0x00000114 (276) Loc: +0x019C | offset to field `alice` (string) - +0x008C | 0D 00 00 00 | uint32_t | 0x0000000D (13) | table field `just_i32` (Int) - +0x0090 | DC 00 00 00 | UOffset32 | 0x000000DC (220) Loc: +0x016C | offset to field `names` (vector) - +0x0094 | A0 00 00 00 | UOffset32 | 0x000000A0 (160) Loc: +0x0134 | offset to field `points_of_interest` (vector) - +0x0098 | 94 00 00 00 | UOffset32 | 0x00000094 (148) Loc: +0x012C | offset to field `foobars_type` (vector) - +0x009C | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: +0x00D4 | offset to field `foobars` (vector) - +0x00A0 | 33 00 00 00 | UOffset32 | 0x00000033 (51) Loc: +0x00D3 | offset to field `measurement` (union of type `Tolerance`) - +0x00A4 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: +0x00C0 | offset to field `anything` (union of type `Bar`) - +0x00A8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x00AC | offset to field `charlie` (string) + +0x0044 | 3A 00 00 00 | SOffset32 | 0x0000003A (58) Loc: 0x000A | offset to vtable + +0x0048 | 00 00 00 | uint8_t[3] | ... | padding + +0x004B | 01 | uint8_t | 0x01 (1) | table field `healthy` (Bool) + +0x004C | 02 | uint8_t | 0x02 (2) | table field `meal` (Byte) + +0x004D | 02 | UType8 | 0x02 (2) | table field `bar_baz_type` (UType) + +0x004E | 01 | UType8 | 0x01 (1) | table field `measurement_type` (UType) + +0x004F | 01 | UType8 | 0x01 (1) | table field `anything_type` (UType) + +0x0050 | D2 04 00 00 | uint32_t | 0x000004D2 (1234) | table field `counter` (Int) + +0x0054 | 28 02 00 00 | UOffset32 | 0x00000228 (552) Loc: 0x027C | offset to field `bar` (table) + +0x0058 | 01 00 00 00 | uint32_t | 0x00000001 (1) | struct field `home.floors` of 'AnnotatedBinary.Building' (Int) + +0x005C | 02 00 00 00 | uint32_t | 0x00000002 (2) | struct field `home.doors` of 'AnnotatedBinary.Building' (Int) + +0x0060 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | struct field `home.windows` of 'AnnotatedBinary.Building' (Int) + +0x0064 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | array field `home.dimensions.values`[0] of 'AnnotatedBinary.Dimension' (Int) + +0x0068 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | array field `home.dimensions.values`[1] of 'AnnotatedBinary.Dimension' (Int) + +0x006C | 14 00 00 00 | uint32_t | 0x00000014 (20) | array field `home.dimensions.values`[2] of 'AnnotatedBinary.Dimension' (Int) + +0x0070 | 01 | uint8_t | 0x01 (1) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte) + +0x0071 | 02 | uint8_t | 0x02 (2) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte) + +0x0072 | 03 | uint8_t | 0x03 (3) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte) + +0x0073 | 00 | uint8_t[1] | . | padding + +0x0074 | C8 01 00 00 | UOffset32 | 0x000001C8 (456) Loc: 0x023C | offset to field `name` (string) + +0x0078 | 5C 01 00 00 | UOffset32 | 0x0000015C (348) Loc: 0x01D4 | offset to field `bars` (vector) + +0x007C | 50 01 00 00 | UOffset32 | 0x00000150 (336) Loc: 0x01CC | offset to field `bar_baz` (union of type `Baz`) + +0x0080 | 34 01 00 00 | UOffset32 | 0x00000134 (308) Loc: 0x01B4 | offset to field `accounts` (vector) + +0x0084 | 24 01 00 00 | UOffset32 | 0x00000124 (292) Loc: 0x01A8 | offset to field `bob` (string) + +0x0088 | 14 01 00 00 | UOffset32 | 0x00000114 (276) Loc: 0x019C | offset to field `alice` (string) + +0x008C | 0D 00 00 00 | uint32_t | 0x0000000D (13) | table field `just_i32` (Int) + +0x0090 | DC 00 00 00 | UOffset32 | 0x000000DC (220) Loc: 0x016C | offset to field `names` (vector) + +0x0094 | A0 00 00 00 | UOffset32 | 0x000000A0 (160) Loc: 0x0134 | offset to field `points_of_interest` (vector) + +0x0098 | 94 00 00 00 | UOffset32 | 0x00000094 (148) Loc: 0x012C | offset to field `foobars_type` (vector) + +0x009C | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: 0x00D4 | offset to field `foobars` (vector) + +0x00A0 | 33 00 00 00 | UOffset32 | 0x00000033 (51) Loc: 0x00D3 | offset to field `measurement` (union of type `Tolerance`) + +0x00A4 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: 0x00C0 | offset to field `anything` (union of type `Bar`) + +0x00A8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x00AC | offset to field `charlie` (string) string (AnnotatedBinary.Foo.charlie): - +0x00AC | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string - +0x00B0 | 61 6C 69 63 65 | char[5] | alice | string literal - +0x00B5 | 00 | char | 0x00 (0) | string terminator + +0x00AC | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string + +0x00B0 | 61 6C 69 63 65 | char[5] | alice | string literal + +0x00B5 | 00 | char | 0x00 (0) | string terminator padding: - +0x00B6 | 00 00 | uint8_t[2] | .. | padding + +0x00B6 | 00 00 | uint8_t[2] | .. | padding vtable (AnnotatedBinary.Bar): - +0x00B8 | 08 00 | uint16_t | 0x0008 (8) | size of this vtable - +0x00BA | 13 00 | uint16_t | 0x0013 (19) | size of referring table - +0x00BC | 08 00 | VOffset16 | 0x0008 (8) | offset to field `a` (id: 0) - +0x00BE | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1) + +0x00B8 | 08 00 | uint16_t | 0x0008 (8) | size of this vtable + +0x00BA | 13 00 | uint16_t | 0x0013 (19) | size of referring table + +0x00BC | 08 00 | VOffset16 | 0x0008 (8) | offset to field `a` (id: 0) + +0x00BE | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1) table (AnnotatedBinary.Bar): - +0x00C0 | 08 00 00 00 | SOffset32 | 0x00000008 (8) Loc: +0x00B8 | offset to vtable - +0x00C4 | 00 80 23 44 | float | 0x44238000 (654) | table field `b` (Float) - +0x00C8 | 00 00 00 00 00 10 74 40 | double | 0x4074100000000000 (321) | table field `a` (Double) - +0x00D0 | 00 00 00 | uint8_t[3] | ... | padding + +0x00C0 | 08 00 00 00 | SOffset32 | 0x00000008 (8) Loc: 0x00B8 | offset to vtable + +0x00C4 | 00 80 23 44 | float | 0x44238000 (654) | table field `b` (Float) + +0x00C8 | 00 00 00 00 00 10 74 40 | double | 0x4074100000000000 (321) | table field `a` (Double) + +0x00D0 | 00 00 00 | uint8_t[3] | ... | padding union (AnnotatedBinary.Tolerance.measurement): - +0x00D3 | 05 | uint8_t | 0x05 (5) | struct field `measurement.width` of 'AnnotatedBinary.Tolerance' (UByte) + +0x00D3 | 05 | uint8_t | 0x05 (5) | struct field `measurement.width` of 'AnnotatedBinary.Tolerance' (UByte) vector (AnnotatedBinary.Foo.foobars): - +0x00D4 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) - +0x00D8 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x010C | offset to union[0] (`Bar`) - +0x00DC | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: +0x0108 | offset to union[1] (`Baz`) - +0x00E0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x00E4 | offset to union[2] (`Bar`) + +0x00D4 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) + +0x00D8 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: 0x010C | offset to union[0] (`Bar`) + +0x00DC | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: 0x0108 | offset to union[1] (`Baz`) + +0x00E0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x00E4 | offset to union[2] (`Bar`) table (AnnotatedBinary.Bar): - +0x00E4 | D2 FE FF FF | SOffset32 | 0xFFFFFED2 (-302) Loc: +0x0212 | offset to vtable - +0x00E8 | 00 80 23 44 | float | 0x44238000 (654) | table field `b` (Float) - +0x00EC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x00FC | offset to field `c` (table) - +0x00F0 | 00 00 00 00 00 D8 8E 40 | double | 0x408ED80000000000 (987) | table field `a` (Double) - +0x00F8 | 00 00 00 00 | uint8_t[4] | .... | padding + +0x00E4 | D2 FE FF FF | SOffset32 | 0xFFFFFED2 (-302) Loc: 0x0212 | offset to vtable + +0x00E8 | 00 80 23 44 | float | 0x44238000 (654) | table field `b` (Float) + +0x00EC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x00FC | offset to field `c` (table) + +0x00F0 | 00 00 00 00 00 D8 8E 40 | double | 0x408ED80000000000 (987) | table field `a` (Double) + +0x00F8 | 00 00 00 00 | uint8_t[4] | .... | padding table (AnnotatedBinary.Baz): - +0x00FC | 6A FE FF FF | SOffset32 | 0xFFFFFE6A (-406) Loc: +0x0292 | offset to vtable - +0x0100 | 00 00 00 | uint8_t[3] | ... | padding - +0x0103 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte) + +0x00FC | 6A FE FF FF | SOffset32 | 0xFFFFFE6A (-406) Loc: 0x0292 | offset to vtable + +0x0100 | 00 00 00 | uint8_t[3] | ... | padding + +0x0103 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte) vtable (AnnotatedBinary.Baz): - +0x0104 | 04 00 | uint16_t | 0x0004 (4) | size of this vtable - +0x0106 | 04 00 | uint16_t | 0x0004 (4) | size of referring table + +0x0104 | 04 00 | uint16_t | 0x0004 (4) | size of this vtable + +0x0106 | 04 00 | uint16_t | 0x0004 (4) | size of referring table table (AnnotatedBinary.Baz): - +0x0108 | 04 00 00 00 | SOffset32 | 0x00000004 (4) Loc: +0x0104 | offset to vtable + +0x0108 | 04 00 00 00 | SOffset32 | 0x00000004 (4) Loc: 0x0104 | offset to vtable table (AnnotatedBinary.Bar): - +0x010C | FA FE FF FF | SOffset32 | 0xFFFFFEFA (-262) Loc: +0x0212 | offset to vtable - +0x0110 | 00 00 E4 43 | float | 0x43E40000 (456) | table field `b` (Float) - +0x0114 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x0124 | offset to field `c` (table) - +0x0118 | 00 00 00 00 00 C0 5E 40 | double | 0x405EC00000000000 (123) | table field `a` (Double) - +0x0120 | 00 00 00 00 | uint8_t[4] | .... | padding + +0x010C | FA FE FF FF | SOffset32 | 0xFFFFFEFA (-262) Loc: 0x0212 | offset to vtable + +0x0110 | 00 00 E4 43 | float | 0x43E40000 (456) | table field `b` (Float) + +0x0114 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x0124 | offset to field `c` (table) + +0x0118 | 00 00 00 00 00 C0 5E 40 | double | 0x405EC00000000000 (123) | table field `a` (Double) + +0x0120 | 00 00 00 00 | uint8_t[4] | .... | padding table (AnnotatedBinary.Baz): - +0x0124 | 92 FE FF FF | SOffset32 | 0xFFFFFE92 (-366) Loc: +0x0292 | offset to vtable - +0x0128 | 00 00 00 | uint8_t[3] | ... | padding - +0x012B | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte) + +0x0124 | 92 FE FF FF | SOffset32 | 0xFFFFFE92 (-366) Loc: 0x0292 | offset to vtable + +0x0128 | 00 00 00 | uint8_t[3] | ... | padding + +0x012B | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte) vector (AnnotatedBinary.Foo.foobars_type): - +0x012C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) - +0x0130 | 01 | UType8 | 0x01 (1) | value[0] - +0x0131 | 02 | UType8 | 0x02 (2) | value[1] - +0x0132 | 01 | UType8 | 0x01 (1) | value[2] + +0x012C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) + +0x0130 | 01 | UType8 | 0x01 (1) | value[0] + +0x0131 | 02 | UType8 | 0x02 (2) | value[1] + +0x0132 | 01 | UType8 | 0x01 (1) | value[2] vector (AnnotatedBinary.Foo.points_of_interest): - +0x0134 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) - +0x0138 | 33 33 33 33 33 A3 45 40 | double | 0x4045A33333333333 (43.275) | struct field `[0].latitude` of 'AnnotatedBinary.Location' (Double) - +0x0140 | 7E 57 04 FF 5B 87 53 C0 | double | 0xC053875BFF04577E (-78.115) | struct field `[0].longitude` of 'AnnotatedBinary.Location' (Double) - +0x0148 | 8D F0 F6 20 04 B6 42 40 | double | 0x4042B60420F6F08D (37.422) | struct field `[1].latitude` of 'AnnotatedBinary.Location' (Double) - +0x0150 | 9F 77 63 41 61 85 5E C0 | double | 0xC05E85614163779F (-122.084) | struct field `[1].longitude` of 'AnnotatedBinary.Location' (Double) - +0x0158 | 8F 35 23 83 DC 35 4B C0 | double | 0xC04B35DC8323358F (-54.4208) | struct field `[2].latitude` of 'AnnotatedBinary.Location' (Double) - +0x0160 | F6 97 DD 93 87 C5 0A 40 | double | 0x400AC58793DD97F6 (3.34645) | struct field `[2].longitude` of 'AnnotatedBinary.Location' (Double) + +0x0134 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) + +0x0138 | 33 33 33 33 33 A3 45 40 | double | 0x4045A33333333333 (43.275) | struct field `[0].latitude` of 'AnnotatedBinary.Location' (Double) + +0x0140 | 7E 57 04 FF 5B 87 53 C0 | double | 0xC053875BFF04577E (-78.115) | struct field `[0].longitude` of 'AnnotatedBinary.Location' (Double) + +0x0148 | 8D F0 F6 20 04 B6 42 40 | double | 0x4042B60420F6F08D (37.422) | struct field `[1].latitude` of 'AnnotatedBinary.Location' (Double) + +0x0150 | 9F 77 63 41 61 85 5E C0 | double | 0xC05E85614163779F (-122.084) | struct field `[1].longitude` of 'AnnotatedBinary.Location' (Double) + +0x0158 | 8F 35 23 83 DC 35 4B C0 | double | 0xC04B35DC8323358F (-54.4208) | struct field `[2].latitude` of 'AnnotatedBinary.Location' (Double) + +0x0160 | F6 97 DD 93 87 C5 0A 40 | double | 0x400AC58793DD97F6 (3.34645) | struct field `[2].longitude` of 'AnnotatedBinary.Location' (Double) padding: - +0x0168 | 00 00 00 00 | uint8_t[4] | .... | padding + +0x0168 | 00 00 00 00 | uint8_t[4] | .... | padding vector (AnnotatedBinary.Foo.names): - +0x016C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) - +0x0170 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x0190 | offset to string[0] - +0x0174 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x0188 | offset to string[1] - +0x0178 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x017C | offset to string[2] + +0x016C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) + +0x0170 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: 0x0190 | offset to string[0] + +0x0174 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: 0x0188 | offset to string[1] + +0x0178 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x017C | offset to string[2] string (AnnotatedBinary.Foo.names): - +0x017C | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string - +0x0180 | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal - +0x0187 | 00 | char | 0x00 (0) | string terminator + +0x017C | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string + +0x0180 | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal + +0x0187 | 00 | char | 0x00 (0) | string terminator string (AnnotatedBinary.Foo.names): - +0x0188 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string - +0x018C | 62 6F 62 | char[3] | bob | string literal - +0x018F | 00 | char | 0x00 (0) | string terminator + +0x0188 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string + +0x018C | 62 6F 62 | char[3] | bob | string literal + +0x018F | 00 | char | 0x00 (0) | string terminator string (AnnotatedBinary.Foo.names): - +0x0190 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string - +0x0194 | 61 6C 69 63 65 | char[5] | alice | string literal - +0x0199 | 00 | char | 0x00 (0) | string terminator + +0x0190 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string + +0x0194 | 61 6C 69 63 65 | char[5] | alice | string literal + +0x0199 | 00 | char | 0x00 (0) | string terminator padding: - +0x019A | 00 00 | uint8_t[2] | .. | padding + +0x019A | 00 00 | uint8_t[2] | .. | padding string (AnnotatedBinary.Foo.alice): - +0x019C | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string - +0x01A0 | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal - +0x01A7 | 00 | char | 0x00 (0) | string terminator + +0x019C | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string + +0x01A0 | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal + +0x01A7 | 00 | char | 0x00 (0) | string terminator string (AnnotatedBinary.Foo.bob): - +0x01A8 | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string - +0x01AC | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal - +0x01B3 | 00 | char | 0x00 (0) | string terminator + +0x01A8 | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string + +0x01AC | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal + +0x01B3 | 00 | char | 0x00 (0) | string terminator vector (AnnotatedBinary.Foo.accounts): - +0x01B4 | 09 00 00 00 | uint32_t | 0x00000009 (9) | length of vector (# items) - +0x01B8 | 09 00 | uint16_t | 0x0009 (9) | value[0] - +0x01BA | 08 00 | uint16_t | 0x0008 (8) | value[1] - +0x01BC | 07 00 | uint16_t | 0x0007 (7) | value[2] - +0x01BE | 01 00 | uint16_t | 0x0001 (1) | value[3] - +0x01C0 | 02 00 | uint16_t | 0x0002 (2) | value[4] - +0x01C2 | 03 00 | uint16_t | 0x0003 (3) | value[5] - +0x01C4 | 06 00 | uint16_t | 0x0006 (6) | value[6] - +0x01C6 | 05 00 | uint16_t | 0x0005 (5) | value[7] - +0x01C8 | 04 00 | uint16_t | 0x0004 (4) | value[8] + +0x01B4 | 09 00 00 00 | uint32_t | 0x00000009 (9) | length of vector (# items) + +0x01B8 | 09 00 | uint16_t | 0x0009 (9) | value[0] + +0x01BA | 08 00 | uint16_t | 0x0008 (8) | value[1] + +0x01BC | 07 00 | uint16_t | 0x0007 (7) | value[2] + +0x01BE | 01 00 | uint16_t | 0x0001 (1) | value[3] + +0x01C0 | 02 00 | uint16_t | 0x0002 (2) | value[4] + +0x01C2 | 03 00 | uint16_t | 0x0003 (3) | value[5] + +0x01C4 | 06 00 | uint16_t | 0x0006 (6) | value[6] + +0x01C6 | 05 00 | uint16_t | 0x0005 (5) | value[7] + +0x01C8 | 04 00 | uint16_t | 0x0004 (4) | value[8] padding: - +0x01CA | 00 00 | uint8_t[2] | .. | padding + +0x01CA | 00 00 | uint8_t[2] | .. | padding table (AnnotatedBinary.Baz): - +0x01CC | 3A FF FF FF | SOffset32 | 0xFFFFFF3A (-198) Loc: +0x0292 | offset to vtable - +0x01D0 | 00 00 00 | uint8_t[3] | ... | padding - +0x01D3 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte) + +0x01CC | 3A FF FF FF | SOffset32 | 0xFFFFFF3A (-198) Loc: 0x0292 | offset to vtable + +0x01D0 | 00 00 00 | uint8_t[3] | ... | padding + +0x01D3 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte) vector (AnnotatedBinary.Foo.bars): - +0x01D4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) - +0x01D8 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x021C | offset to table[0] - +0x01DC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x01EC | offset to table[1] + +0x01D4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) + +0x01D8 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: 0x021C | offset to table[0] + +0x01DC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x01EC | offset to table[1] padding: - +0x01E0 | 00 00 | uint8_t[2] | .. | padding + +0x01E0 | 00 00 | uint8_t[2] | .. | padding vtable (AnnotatedBinary.Bar): - +0x01E2 | 0A 00 | uint16_t | 0x000A (10) | size of this vtable - +0x01E4 | 1A 00 | uint16_t | 0x001A (26) | size of referring table - +0x01E6 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `a` (id: 0) - +0x01E8 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1) - +0x01EA | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2) + +0x01E2 | 0A 00 | uint16_t | 0x000A (10) | size of this vtable + +0x01E4 | 1A 00 | uint16_t | 0x001A (26) | size of referring table + +0x01E6 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `a` (id: 0) + +0x01E8 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1) + +0x01EA | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2) table (AnnotatedBinary.Bar): - +0x01EC | 0A 00 00 00 | SOffset32 | 0x0000000A (10) Loc: +0x01E2 | offset to vtable - +0x01F0 | 00 80 23 44 | float | 0x44238000 (654) | table field `b` (Float) - +0x01F4 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x020C | offset to field `c` (table) - +0x01F8 | 00 00 00 00 00 D8 8E 40 | double | 0x408ED80000000000 (987) | table field `a` (Double) - +0x0200 | 00 00 00 00 00 00 | uint8_t[6] | ...... | padding + +0x01EC | 0A 00 00 00 | SOffset32 | 0x0000000A (10) Loc: 0x01E2 | offset to vtable + +0x01F0 | 00 80 23 44 | float | 0x44238000 (654) | table field `b` (Float) + +0x01F4 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: 0x020C | offset to field `c` (table) + +0x01F8 | 00 00 00 00 00 D8 8E 40 | double | 0x408ED80000000000 (987) | table field `a` (Double) + +0x0200 | 00 00 00 00 00 00 | uint8_t[6] | ...... | padding vtable (AnnotatedBinary.Baz): - +0x0206 | 06 00 | uint16_t | 0x0006 (6) | size of this vtable - +0x0208 | 06 00 | uint16_t | 0x0006 (6) | size of referring table - +0x020A | 05 00 | VOffset16 | 0x0005 (5) | offset to field `meal` (id: 0) + +0x0206 | 06 00 | uint16_t | 0x0006 (6) | size of this vtable + +0x0208 | 06 00 | uint16_t | 0x0006 (6) | size of referring table + +0x020A | 05 00 | VOffset16 | 0x0005 (5) | offset to field `meal` (id: 0) table (AnnotatedBinary.Baz): - +0x020C | 06 00 00 00 | SOffset32 | 0x00000006 (6) Loc: +0x0206 | offset to vtable - +0x0210 | 00 | uint8_t[1] | . | padding - +0x0211 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte) + +0x020C | 06 00 00 00 | SOffset32 | 0x00000006 (6) Loc: 0x0206 | offset to vtable + +0x0210 | 00 | uint8_t[1] | . | padding + +0x0211 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte) vtable (AnnotatedBinary.Bar): - +0x0212 | 0A 00 | uint16_t | 0x000A (10) | size of this vtable - +0x0214 | 18 00 | uint16_t | 0x0018 (24) | size of referring table - +0x0216 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `a` (id: 0) - +0x0218 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1) - +0x021A | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2) + +0x0212 | 0A 00 | uint16_t | 0x000A (10) | size of this vtable + +0x0214 | 18 00 | uint16_t | 0x0018 (24) | size of referring table + +0x0216 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `a` (id: 0) + +0x0218 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1) + +0x021A | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2) table (AnnotatedBinary.Bar): - +0x021C | 0A 00 00 00 | SOffset32 | 0x0000000A (10) Loc: +0x0212 | offset to vtable - +0x0220 | 00 00 E4 43 | float | 0x43E40000 (456) | table field `b` (Float) - +0x0224 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x0234 | offset to field `c` (table) - +0x0228 | 00 00 00 00 00 C0 5E 40 | double | 0x405EC00000000000 (123) | table field `a` (Double) - +0x0230 | 00 00 00 00 | uint8_t[4] | .... | padding + +0x021C | 0A 00 00 00 | SOffset32 | 0x0000000A (10) Loc: 0x0212 | offset to vtable + +0x0220 | 00 00 E4 43 | float | 0x43E40000 (456) | table field `b` (Float) + +0x0224 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x0234 | offset to field `c` (table) + +0x0228 | 00 00 00 00 00 C0 5E 40 | double | 0x405EC00000000000 (123) | table field `a` (Double) + +0x0230 | 00 00 00 00 | uint8_t[4] | .... | padding table (AnnotatedBinary.Baz): - +0x0234 | A2 FF FF FF | SOffset32 | 0xFFFFFFA2 (-94) Loc: +0x0292 | offset to vtable - +0x0238 | 00 00 00 | uint8_t[3] | ... | padding - +0x023B | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte) + +0x0234 | A2 FF FF FF | SOffset32 | 0xFFFFFFA2 (-94) Loc: 0x0292 | offset to vtable + +0x0238 | 00 00 00 | uint8_t[3] | ... | padding + +0x023B | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte) string (AnnotatedBinary.Foo.name): - +0x023C | 2F 00 00 00 | uint32_t | 0x0000002F (47) | length of string - +0x0240 | 54 68 69 73 20 69 73 20 | char[47] | This is | string literal + +0x023C | 2F 00 00 00 | uint32_t | 0x0000002F (47) | length of string + +0x0240 | 54 68 69 73 20 69 73 20 | char[47] | This is | string literal +0x0248 | 61 20 6C 6F 6E 67 20 73 | | a long s +0x0250 | 74 72 69 6E 67 20 74 6F | | tring to +0x0258 | 20 73 68 6F 77 20 68 6F | | show ho +0x0260 | 77 20 69 74 20 62 72 65 | | w it bre +0x0268 | 61 6B 73 20 75 70 2E | | aks up. - +0x026F | 00 | char | 0x00 (0) | string terminator + +0x026F | 00 | char | 0x00 (0) | string terminator padding: - +0x0270 | 00 00 | uint8_t[2] | .. | padding + +0x0270 | 00 00 | uint8_t[2] | .. | padding vtable (AnnotatedBinary.Bar): - +0x0272 | 0A 00 | uint16_t | 0x000A (10) | size of this vtable - +0x0274 | 16 00 | uint16_t | 0x0016 (22) | size of referring table - +0x0276 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `a` (id: 0) - +0x0278 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1) - +0x027A | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2) + +0x0272 | 0A 00 | uint16_t | 0x000A (10) | size of this vtable + +0x0274 | 16 00 | uint16_t | 0x0016 (22) | size of referring table + +0x0276 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `a` (id: 0) + +0x0278 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1) + +0x027A | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2) table (AnnotatedBinary.Bar): - +0x027C | 0A 00 00 00 | SOffset32 | 0x0000000A (10) Loc: +0x0272 | offset to vtable - +0x0280 | 65 20 71 49 | float | 0x49712065 (987654) | table field `b` (Float) - +0x0284 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x0298 | offset to field `c` (table) - +0x0288 | C9 76 BE 9F 0C 24 FE 40 | double | 0x40FE240C9FBE76C9 (123457) | table field `a` (Double) - +0x0290 | 00 00 | uint8_t[2] | .. | padding + +0x027C | 0A 00 00 00 | SOffset32 | 0x0000000A (10) Loc: 0x0272 | offset to vtable + +0x0280 | 65 20 71 49 | float | 0x49712065 (987654) | table field `b` (Float) + +0x0284 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: 0x0298 | offset to field `c` (table) + +0x0288 | C9 76 BE 9F 0C 24 FE 40 | double | 0x40FE240C9FBE76C9 (123457) | table field `a` (Double) + +0x0290 | 00 00 | uint8_t[2] | .. | padding vtable (AnnotatedBinary.Baz): - +0x0292 | 06 00 | uint16_t | 0x0006 (6) | size of this vtable - +0x0294 | 08 00 | uint16_t | 0x0008 (8) | size of referring table - +0x0296 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `meal` (id: 0) + +0x0292 | 06 00 | uint16_t | 0x0006 (6) | size of this vtable + +0x0294 | 08 00 | uint16_t | 0x0008 (8) | size of referring table + +0x0296 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `meal` (id: 0) table (AnnotatedBinary.Baz): - +0x0298 | 06 00 00 00 | SOffset32 | 0x00000006 (6) Loc: +0x0292 | offset to vtable - +0x029C | 00 00 00 | uint8_t[3] | ... | padding - +0x029F | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte) + +0x0298 | 06 00 00 00 | SOffset32 | 0x00000006 (6) Loc: 0x0292 | offset to vtable + +0x029C | 00 00 00 | uint8_t[3] | ... | padding + +0x029F | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte) diff --git a/tests/annotated_binary/tests/invalid_root_offset.afb b/tests/annotated_binary/tests/invalid_root_offset.afb index ff50417850..e100feacfe 100644 --- a/tests/annotated_binary/tests/invalid_root_offset.afb +++ b/tests/annotated_binary/tests/invalid_root_offset.afb @@ -4,11 +4,11 @@ // Binary file: tests/invalid_root_offset.bin header: - +0x0000 | FF FF 00 00 | UOffset32 | 0x0000FFFF (65535) Loc: +0xFFFF | ERROR: offset to root table `AnnotatedBinary.Foo`. Invalid offset, points outside the binary. - +0x0004 | 41 4E 4E 4F | char[4] | ANNO | File Identifier + +0x0000 | FF FF 00 00 | UOffset32 | 0x0000FFFF (65535) Loc: 0xFFFF | ERROR: offset to root table `AnnotatedBinary.Foo`. Invalid offset, points outside the binary. + +0x0004 | 41 4E 4E 4F | char[4] | ANNO | File Identifier unknown (no known references): - +0x0008 | 00 00 3A 00 68 00 0C 00 | ?uint8_t[664] | ..:.h... | WARN: nothing refers to this section. + +0x0008 | 00 00 3A 00 68 00 0C 00 | ?uint8_t[664] | ..:.h... | WARN: nothing refers to this section. +0x0010 | 07 00 00 00 08 00 10 00 | | ........ +0x0018 | 14 00 30 00 34 00 09 00 | | ..0.4... +0x0020 | 38 00 3C 00 40 00 44 00 | | 8.<.@.D. diff --git a/tests/annotated_binary/tests/invalid_root_table_too_short.afb b/tests/annotated_binary/tests/invalid_root_table_too_short.afb index 2269d4ee9f..2b997717a1 100644 --- a/tests/annotated_binary/tests/invalid_root_table_too_short.afb +++ b/tests/annotated_binary/tests/invalid_root_table_too_short.afb @@ -4,11 +4,11 @@ // Binary file: tests/invalid_root_table_too_short.bin header: - +0x00 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x44 | offset to root table `AnnotatedBinary.Foo` - +0x04 | 41 4E 4E 4F | char[4] | ANNO | File Identifier + +0x00 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: 0x44 | offset to root table `AnnotatedBinary.Foo` + +0x04 | 41 4E 4E 4F | char[4] | ANNO | File Identifier unknown (no known references): - +0x08 | 00 00 3A 00 68 00 0C 00 | ?uint8_t[60] | ..:.h... | WARN: nothing refers to this section. + +0x08 | 00 00 3A 00 68 00 0C 00 | ?uint8_t[60] | ..:.h... | WARN: nothing refers to this section. +0x10 | 07 00 00 00 08 00 10 00 | | ........ +0x18 | 14 00 30 00 34 00 09 00 | | ..0.4... +0x20 | 38 00 3C 00 40 00 44 00 | | 8.<.@.D. @@ -18,4 +18,4 @@ unknown (no known references): +0x40 | 00 00 64 00 | | ..d. root_table (AnnotatedBinary.Foo): - +0x44 | 3A 00 | ?uint8_t[2] | :. | ERROR: offset to vtable. Incomplete binary, expected to read 4 bytes. + +0x44 | 3A 00 | ?uint8_t[2] | :. | ERROR: offset to vtable. Incomplete binary, expected to read 4 bytes. diff --git a/tests/annotated_binary/tests/invalid_root_table_vtable_offset.afb b/tests/annotated_binary/tests/invalid_root_table_vtable_offset.afb index d1c62608d6..ddb9f3ee71 100644 --- a/tests/annotated_binary/tests/invalid_root_table_vtable_offset.afb +++ b/tests/annotated_binary/tests/invalid_root_table_vtable_offset.afb @@ -4,11 +4,11 @@ // Binary file: tests/invalid_root_table_vtable_offset.bin header: - +0x0000 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x0044 | offset to root table `AnnotatedBinary.Foo` - +0x0004 | 41 4E 4E 4F | char[4] | ANNO | File Identifier + +0x0000 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: 0x0044 | offset to root table `AnnotatedBinary.Foo` + +0x0004 | 41 4E 4E 4F | char[4] | ANNO | File Identifier unknown (no known references): - +0x0008 | 00 00 3A 00 68 00 0C 00 | ?uint8_t[60] | ..:.h... | WARN: nothing refers to this section. + +0x0008 | 00 00 3A 00 68 00 0C 00 | ?uint8_t[60] | ..:.h... | WARN: nothing refers to this section. +0x0010 | 07 00 00 00 08 00 10 00 | | ........ +0x0018 | 14 00 30 00 34 00 09 00 | | ..0.4... +0x0020 | 38 00 3C 00 40 00 44 00 | | 8.<.@.D. @@ -18,10 +18,10 @@ unknown (no known references): +0x0040 | 00 00 64 00 | | ..d. root_table (AnnotatedBinary.Foo): - +0x0044 | FF FF 00 00 | SOffset32 | 0x0000FFFF (65535) Loc: +0xFFFFFFFFFFFF0045 | ERROR: offset to vtable. Invalid offset, points outside the binary. + +0x0044 | FF FF 00 00 | SOffset32 | 0x0000FFFF (65535) Loc: 0xFFFFFFFFFFFF0045 | ERROR: offset to vtable. Invalid offset, points outside the binary. unknown (no known references): - +0x0048 | 00 00 00 01 02 02 01 01 | ?uint8_t[600] | ........ | WARN: nothing refers to this section. + +0x0048 | 00 00 00 01 02 02 01 01 | ?uint8_t[600] | ........ | WARN: nothing refers to this section. +0x0050 | D2 04 00 00 28 02 00 00 | | ....(... +0x0058 | 01 00 00 00 02 00 00 00 | | ........ +0x0060 | 0C 00 00 00 0A 00 00 00 | | ........ diff --git a/tests/annotated_binary/tests/invalid_string_length.afb b/tests/annotated_binary/tests/invalid_string_length.afb index 5ac9631404..78ab59c2c3 100644 --- a/tests/annotated_binary/tests/invalid_string_length.afb +++ b/tests/annotated_binary/tests/invalid_string_length.afb @@ -4,292 +4,292 @@ // Binary file: tests/invalid_string_length.bin header: - +0x0000 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x0044 | offset to root table `AnnotatedBinary.Foo` - +0x0004 | 41 4E 4E 4F | char[4] | ANNO | File Identifier + +0x0000 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: 0x0044 | offset to root table `AnnotatedBinary.Foo` + +0x0004 | 41 4E 4E 4F | char[4] | ANNO | File Identifier padding: - +0x0008 | 00 00 | uint8_t[2] | .. | padding + +0x0008 | 00 00 | uint8_t[2] | .. | padding vtable (AnnotatedBinary.Foo): - +0x000A | 3A 00 | uint16_t | 0x003A (58) | size of this vtable - +0x000C | 68 00 | uint16_t | 0x0068 (104) | size of referring table - +0x000E | 0C 00 | VOffset16 | 0x000C (12) | offset to field `counter` (id: 0) - +0x0010 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `healthy` (id: 1) - +0x0012 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `level` (id: 2) (Long) - +0x0014 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `meal` (id: 3) - +0x0016 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `bar` (id: 4) - +0x0018 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `home` (id: 5) - +0x001A | 30 00 | VOffset16 | 0x0030 (48) | offset to field `name` (id: 6) - +0x001C | 34 00 | VOffset16 | 0x0034 (52) | offset to field `bars` (id: 7) - +0x001E | 09 00 | VOffset16 | 0x0009 (9) | offset to field `bar_baz_type` (id: 8) - +0x0020 | 38 00 | VOffset16 | 0x0038 (56) | offset to field `bar_baz` (id: 9) - +0x0022 | 3C 00 | VOffset16 | 0x003C (60) | offset to field `accounts` (id: 10) - +0x0024 | 40 00 | VOffset16 | 0x0040 (64) | offset to field `bob` (id: 11) - +0x0026 | 44 00 | VOffset16 | 0x0044 (68) | offset to field `alice` (id: 12) - +0x0028 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `maybe_i32` (id: 13) (Int) - +0x002A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_i32` (id: 14) (Int) - +0x002C | 48 00 | VOffset16 | 0x0048 (72) | offset to field `just_i32` (id: 15) - +0x002E | 4C 00 | VOffset16 | 0x004C (76) | offset to field `names` (id: 16) - +0x0030 | 50 00 | VOffset16 | 0x0050 (80) | offset to field `points_of_interest` (id: 17) - +0x0032 | 54 00 | VOffset16 | 0x0054 (84) | offset to field `foobars_type` (id: 18) - +0x0034 | 58 00 | VOffset16 | 0x0058 (88) | offset to field `foobars` (id: 19) - +0x0036 | 0A 00 | VOffset16 | 0x000A (10) | offset to field `measurement_type` (id: 20) - +0x0038 | 5C 00 | VOffset16 | 0x005C (92) | offset to field `measurement` (id: 21) - +0x003A | 0B 00 | VOffset16 | 0x000B (11) | offset to field `anything_type` (id: 22) - +0x003C | 60 00 | VOffset16 | 0x0060 (96) | offset to field `anything` (id: 23) - +0x003E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `temperature` (id: 24) (Float) - +0x0040 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `teetotaler` (id: 25) (Obj) - +0x0042 | 64 00 | VOffset16 | 0x0064 (100) | offset to field `charlie` (id: 26) + +0x000A | 3A 00 | uint16_t | 0x003A (58) | size of this vtable + +0x000C | 68 00 | uint16_t | 0x0068 (104) | size of referring table + +0x000E | 0C 00 | VOffset16 | 0x000C (12) | offset to field `counter` (id: 0) + +0x0010 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `healthy` (id: 1) + +0x0012 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `level` (id: 2) (Long) + +0x0014 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `meal` (id: 3) + +0x0016 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `bar` (id: 4) + +0x0018 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `home` (id: 5) + +0x001A | 30 00 | VOffset16 | 0x0030 (48) | offset to field `name` (id: 6) + +0x001C | 34 00 | VOffset16 | 0x0034 (52) | offset to field `bars` (id: 7) + +0x001E | 09 00 | VOffset16 | 0x0009 (9) | offset to field `bar_baz_type` (id: 8) + +0x0020 | 38 00 | VOffset16 | 0x0038 (56) | offset to field `bar_baz` (id: 9) + +0x0022 | 3C 00 | VOffset16 | 0x003C (60) | offset to field `accounts` (id: 10) + +0x0024 | 40 00 | VOffset16 | 0x0040 (64) | offset to field `bob` (id: 11) + +0x0026 | 44 00 | VOffset16 | 0x0044 (68) | offset to field `alice` (id: 12) + +0x0028 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `maybe_i32` (id: 13) (Int) + +0x002A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_i32` (id: 14) (Int) + +0x002C | 48 00 | VOffset16 | 0x0048 (72) | offset to field `just_i32` (id: 15) + +0x002E | 4C 00 | VOffset16 | 0x004C (76) | offset to field `names` (id: 16) + +0x0030 | 50 00 | VOffset16 | 0x0050 (80) | offset to field `points_of_interest` (id: 17) + +0x0032 | 54 00 | VOffset16 | 0x0054 (84) | offset to field `foobars_type` (id: 18) + +0x0034 | 58 00 | VOffset16 | 0x0058 (88) | offset to field `foobars` (id: 19) + +0x0036 | 0A 00 | VOffset16 | 0x000A (10) | offset to field `measurement_type` (id: 20) + +0x0038 | 5C 00 | VOffset16 | 0x005C (92) | offset to field `measurement` (id: 21) + +0x003A | 0B 00 | VOffset16 | 0x000B (11) | offset to field `anything_type` (id: 22) + +0x003C | 60 00 | VOffset16 | 0x0060 (96) | offset to field `anything` (id: 23) + +0x003E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `temperature` (id: 24) (Float) + +0x0040 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `teetotaler` (id: 25) (Obj) + +0x0042 | 64 00 | VOffset16 | 0x0064 (100) | offset to field `charlie` (id: 26) root_table (AnnotatedBinary.Foo): - +0x0044 | 3A 00 00 00 | SOffset32 | 0x0000003A (58) Loc: +0x000A | offset to vtable - +0x0048 | 00 00 00 | uint8_t[3] | ... | padding - +0x004B | 01 | uint8_t | 0x01 (1) | table field `healthy` (Bool) - +0x004C | 02 | uint8_t | 0x02 (2) | table field `meal` (Byte) - +0x004D | 02 | UType8 | 0x02 (2) | table field `bar_baz_type` (UType) - +0x004E | 01 | UType8 | 0x01 (1) | table field `measurement_type` (UType) - +0x004F | 01 | UType8 | 0x01 (1) | table field `anything_type` (UType) - +0x0050 | D2 04 00 00 | uint32_t | 0x000004D2 (1234) | table field `counter` (Int) - +0x0054 | 28 02 00 00 | UOffset32 | 0x00000228 (552) Loc: +0x027C | offset to field `bar` (table) - +0x0058 | 01 00 00 00 | uint32_t | 0x00000001 (1) | struct field `home.floors` of 'AnnotatedBinary.Building' (Int) - +0x005C | 02 00 00 00 | uint32_t | 0x00000002 (2) | struct field `home.doors` of 'AnnotatedBinary.Building' (Int) - +0x0060 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | struct field `home.windows` of 'AnnotatedBinary.Building' (Int) - +0x0064 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | array field `home.dimensions.values`[0] of 'AnnotatedBinary.Dimension' (Int) - +0x0068 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | array field `home.dimensions.values`[1] of 'AnnotatedBinary.Dimension' (Int) - +0x006C | 14 00 00 00 | uint32_t | 0x00000014 (20) | array field `home.dimensions.values`[2] of 'AnnotatedBinary.Dimension' (Int) - +0x0070 | 01 | uint8_t | 0x01 (1) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte) - +0x0071 | 02 | uint8_t | 0x02 (2) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte) - +0x0072 | 03 | uint8_t | 0x03 (3) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte) - +0x0073 | 00 | uint8_t[1] | . | padding - +0x0074 | C8 01 00 00 | UOffset32 | 0x000001C8 (456) Loc: +0x023C | offset to field `name` (string) - +0x0078 | 5C 01 00 00 | UOffset32 | 0x0000015C (348) Loc: +0x01D4 | offset to field `bars` (vector) - +0x007C | 50 01 00 00 | UOffset32 | 0x00000150 (336) Loc: +0x01CC | offset to field `bar_baz` (union of type `Baz`) - +0x0080 | 34 01 00 00 | UOffset32 | 0x00000134 (308) Loc: +0x01B4 | offset to field `accounts` (vector) - +0x0084 | 24 01 00 00 | UOffset32 | 0x00000124 (292) Loc: +0x01A8 | offset to field `bob` (string) - +0x0088 | 14 01 00 00 | UOffset32 | 0x00000114 (276) Loc: +0x019C | offset to field `alice` (string) - +0x008C | 0D 00 00 00 | uint32_t | 0x0000000D (13) | table field `just_i32` (Int) - +0x0090 | DC 00 00 00 | UOffset32 | 0x000000DC (220) Loc: +0x016C | offset to field `names` (vector) - +0x0094 | A0 00 00 00 | UOffset32 | 0x000000A0 (160) Loc: +0x0134 | offset to field `points_of_interest` (vector) - +0x0098 | 94 00 00 00 | UOffset32 | 0x00000094 (148) Loc: +0x012C | offset to field `foobars_type` (vector) - +0x009C | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: +0x00D4 | offset to field `foobars` (vector) - +0x00A0 | 33 00 00 00 | UOffset32 | 0x00000033 (51) Loc: +0x00D3 | offset to field `measurement` (union of type `Tolerance`) - +0x00A4 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: +0x00C0 | offset to field `anything` (union of type `Bar`) - +0x00A8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x00AC | offset to field `charlie` (string) + +0x0044 | 3A 00 00 00 | SOffset32 | 0x0000003A (58) Loc: 0x000A | offset to vtable + +0x0048 | 00 00 00 | uint8_t[3] | ... | padding + +0x004B | 01 | uint8_t | 0x01 (1) | table field `healthy` (Bool) + +0x004C | 02 | uint8_t | 0x02 (2) | table field `meal` (Byte) + +0x004D | 02 | UType8 | 0x02 (2) | table field `bar_baz_type` (UType) + +0x004E | 01 | UType8 | 0x01 (1) | table field `measurement_type` (UType) + +0x004F | 01 | UType8 | 0x01 (1) | table field `anything_type` (UType) + +0x0050 | D2 04 00 00 | uint32_t | 0x000004D2 (1234) | table field `counter` (Int) + +0x0054 | 28 02 00 00 | UOffset32 | 0x00000228 (552) Loc: 0x027C | offset to field `bar` (table) + +0x0058 | 01 00 00 00 | uint32_t | 0x00000001 (1) | struct field `home.floors` of 'AnnotatedBinary.Building' (Int) + +0x005C | 02 00 00 00 | uint32_t | 0x00000002 (2) | struct field `home.doors` of 'AnnotatedBinary.Building' (Int) + +0x0060 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | struct field `home.windows` of 'AnnotatedBinary.Building' (Int) + +0x0064 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | array field `home.dimensions.values`[0] of 'AnnotatedBinary.Dimension' (Int) + +0x0068 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | array field `home.dimensions.values`[1] of 'AnnotatedBinary.Dimension' (Int) + +0x006C | 14 00 00 00 | uint32_t | 0x00000014 (20) | array field `home.dimensions.values`[2] of 'AnnotatedBinary.Dimension' (Int) + +0x0070 | 01 | uint8_t | 0x01 (1) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte) + +0x0071 | 02 | uint8_t | 0x02 (2) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte) + +0x0072 | 03 | uint8_t | 0x03 (3) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte) + +0x0073 | 00 | uint8_t[1] | . | padding + +0x0074 | C8 01 00 00 | UOffset32 | 0x000001C8 (456) Loc: 0x023C | offset to field `name` (string) + +0x0078 | 5C 01 00 00 | UOffset32 | 0x0000015C (348) Loc: 0x01D4 | offset to field `bars` (vector) + +0x007C | 50 01 00 00 | UOffset32 | 0x00000150 (336) Loc: 0x01CC | offset to field `bar_baz` (union of type `Baz`) + +0x0080 | 34 01 00 00 | UOffset32 | 0x00000134 (308) Loc: 0x01B4 | offset to field `accounts` (vector) + +0x0084 | 24 01 00 00 | UOffset32 | 0x00000124 (292) Loc: 0x01A8 | offset to field `bob` (string) + +0x0088 | 14 01 00 00 | UOffset32 | 0x00000114 (276) Loc: 0x019C | offset to field `alice` (string) + +0x008C | 0D 00 00 00 | uint32_t | 0x0000000D (13) | table field `just_i32` (Int) + +0x0090 | DC 00 00 00 | UOffset32 | 0x000000DC (220) Loc: 0x016C | offset to field `names` (vector) + +0x0094 | A0 00 00 00 | UOffset32 | 0x000000A0 (160) Loc: 0x0134 | offset to field `points_of_interest` (vector) + +0x0098 | 94 00 00 00 | UOffset32 | 0x00000094 (148) Loc: 0x012C | offset to field `foobars_type` (vector) + +0x009C | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: 0x00D4 | offset to field `foobars` (vector) + +0x00A0 | 33 00 00 00 | UOffset32 | 0x00000033 (51) Loc: 0x00D3 | offset to field `measurement` (union of type `Tolerance`) + +0x00A4 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: 0x00C0 | offset to field `anything` (union of type `Bar`) + +0x00A8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x00AC | offset to field `charlie` (string) string (AnnotatedBinary.Foo.charlie): - +0x00AC | FF FF 00 00 | uint32_t | 0x0000FFFF (65535) | ERROR: length of string. Longer than the binary. + +0x00AC | FF FF 00 00 | uint32_t | 0x0000FFFF (65535) | ERROR: length of string. Longer than the binary. unknown (no known references): - +0x00B0 | 61 6C 69 63 65 00 00 00 | ?uint8_t[8] | alice... | WARN: nothing refers to this section. + +0x00B0 | 61 6C 69 63 65 00 00 00 | ?uint8_t[8] | alice... | WARN: nothing refers to this section. vtable (AnnotatedBinary.Bar): - +0x00B8 | 08 00 | uint16_t | 0x0008 (8) | size of this vtable - +0x00BA | 13 00 | uint16_t | 0x0013 (19) | size of referring table - +0x00BC | 08 00 | VOffset16 | 0x0008 (8) | offset to field `a` (id: 0) - +0x00BE | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1) + +0x00B8 | 08 00 | uint16_t | 0x0008 (8) | size of this vtable + +0x00BA | 13 00 | uint16_t | 0x0013 (19) | size of referring table + +0x00BC | 08 00 | VOffset16 | 0x0008 (8) | offset to field `a` (id: 0) + +0x00BE | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1) table (AnnotatedBinary.Bar): - +0x00C0 | 08 00 00 00 | SOffset32 | 0x00000008 (8) Loc: +0x00B8 | offset to vtable - +0x00C4 | 00 80 23 44 | float | 0x44238000 (654) | table field `b` (Float) - +0x00C8 | 00 00 00 00 00 10 74 40 | double | 0x4074100000000000 (321) | table field `a` (Double) - +0x00D0 | 00 00 00 | uint8_t[3] | ... | padding + +0x00C0 | 08 00 00 00 | SOffset32 | 0x00000008 (8) Loc: 0x00B8 | offset to vtable + +0x00C4 | 00 80 23 44 | float | 0x44238000 (654) | table field `b` (Float) + +0x00C8 | 00 00 00 00 00 10 74 40 | double | 0x4074100000000000 (321) | table field `a` (Double) + +0x00D0 | 00 00 00 | uint8_t[3] | ... | padding union (AnnotatedBinary.Tolerance.measurement): - +0x00D3 | 05 | uint8_t | 0x05 (5) | struct field `measurement.width` of 'AnnotatedBinary.Tolerance' (UByte) + +0x00D3 | 05 | uint8_t | 0x05 (5) | struct field `measurement.width` of 'AnnotatedBinary.Tolerance' (UByte) vector (AnnotatedBinary.Foo.foobars): - +0x00D4 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) - +0x00D8 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x010C | offset to union[0] (`Bar`) - +0x00DC | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: +0x0108 | offset to union[1] (`Baz`) - +0x00E0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x00E4 | offset to union[2] (`Bar`) + +0x00D4 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) + +0x00D8 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: 0x010C | offset to union[0] (`Bar`) + +0x00DC | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: 0x0108 | offset to union[1] (`Baz`) + +0x00E0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x00E4 | offset to union[2] (`Bar`) table (AnnotatedBinary.Bar): - +0x00E4 | D2 FE FF FF | SOffset32 | 0xFFFFFED2 (-302) Loc: +0x0212 | offset to vtable - +0x00E8 | 00 80 23 44 | float | 0x44238000 (654) | table field `b` (Float) - +0x00EC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x00FC | offset to field `c` (table) - +0x00F0 | 00 00 00 00 00 D8 8E 40 | double | 0x408ED80000000000 (987) | table field `a` (Double) - +0x00F8 | 00 00 00 00 | uint8_t[4] | .... | padding + +0x00E4 | D2 FE FF FF | SOffset32 | 0xFFFFFED2 (-302) Loc: 0x0212 | offset to vtable + +0x00E8 | 00 80 23 44 | float | 0x44238000 (654) | table field `b` (Float) + +0x00EC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x00FC | offset to field `c` (table) + +0x00F0 | 00 00 00 00 00 D8 8E 40 | double | 0x408ED80000000000 (987) | table field `a` (Double) + +0x00F8 | 00 00 00 00 | uint8_t[4] | .... | padding table (AnnotatedBinary.Baz): - +0x00FC | 6A FE FF FF | SOffset32 | 0xFFFFFE6A (-406) Loc: +0x0292 | offset to vtable - +0x0100 | 00 00 00 | uint8_t[3] | ... | padding - +0x0103 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte) + +0x00FC | 6A FE FF FF | SOffset32 | 0xFFFFFE6A (-406) Loc: 0x0292 | offset to vtable + +0x0100 | 00 00 00 | uint8_t[3] | ... | padding + +0x0103 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte) vtable (AnnotatedBinary.Baz): - +0x0104 | 04 00 | uint16_t | 0x0004 (4) | size of this vtable - +0x0106 | 04 00 | uint16_t | 0x0004 (4) | size of referring table + +0x0104 | 04 00 | uint16_t | 0x0004 (4) | size of this vtable + +0x0106 | 04 00 | uint16_t | 0x0004 (4) | size of referring table table (AnnotatedBinary.Baz): - +0x0108 | 04 00 00 00 | SOffset32 | 0x00000004 (4) Loc: +0x0104 | offset to vtable + +0x0108 | 04 00 00 00 | SOffset32 | 0x00000004 (4) Loc: 0x0104 | offset to vtable table (AnnotatedBinary.Bar): - +0x010C | FA FE FF FF | SOffset32 | 0xFFFFFEFA (-262) Loc: +0x0212 | offset to vtable - +0x0110 | 00 00 E4 43 | float | 0x43E40000 (456) | table field `b` (Float) - +0x0114 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x0124 | offset to field `c` (table) - +0x0118 | 00 00 00 00 00 C0 5E 40 | double | 0x405EC00000000000 (123) | table field `a` (Double) - +0x0120 | 00 00 00 00 | uint8_t[4] | .... | padding + +0x010C | FA FE FF FF | SOffset32 | 0xFFFFFEFA (-262) Loc: 0x0212 | offset to vtable + +0x0110 | 00 00 E4 43 | float | 0x43E40000 (456) | table field `b` (Float) + +0x0114 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x0124 | offset to field `c` (table) + +0x0118 | 00 00 00 00 00 C0 5E 40 | double | 0x405EC00000000000 (123) | table field `a` (Double) + +0x0120 | 00 00 00 00 | uint8_t[4] | .... | padding table (AnnotatedBinary.Baz): - +0x0124 | 92 FE FF FF | SOffset32 | 0xFFFFFE92 (-366) Loc: +0x0292 | offset to vtable - +0x0128 | 00 00 00 | uint8_t[3] | ... | padding - +0x012B | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte) + +0x0124 | 92 FE FF FF | SOffset32 | 0xFFFFFE92 (-366) Loc: 0x0292 | offset to vtable + +0x0128 | 00 00 00 | uint8_t[3] | ... | padding + +0x012B | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte) vector (AnnotatedBinary.Foo.foobars_type): - +0x012C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) - +0x0130 | 01 | UType8 | 0x01 (1) | value[0] - +0x0131 | 02 | UType8 | 0x02 (2) | value[1] - +0x0132 | 01 | UType8 | 0x01 (1) | value[2] + +0x012C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) + +0x0130 | 01 | UType8 | 0x01 (1) | value[0] + +0x0131 | 02 | UType8 | 0x02 (2) | value[1] + +0x0132 | 01 | UType8 | 0x01 (1) | value[2] vector (AnnotatedBinary.Foo.points_of_interest): - +0x0134 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) - +0x0138 | 33 33 33 33 33 A3 45 40 | double | 0x4045A33333333333 (43.275) | struct field `[0].latitude` of 'AnnotatedBinary.Location' (Double) - +0x0140 | 7E 57 04 FF 5B 87 53 C0 | double | 0xC053875BFF04577E (-78.115) | struct field `[0].longitude` of 'AnnotatedBinary.Location' (Double) - +0x0148 | 8D F0 F6 20 04 B6 42 40 | double | 0x4042B60420F6F08D (37.422) | struct field `[1].latitude` of 'AnnotatedBinary.Location' (Double) - +0x0150 | 9F 77 63 41 61 85 5E C0 | double | 0xC05E85614163779F (-122.084) | struct field `[1].longitude` of 'AnnotatedBinary.Location' (Double) - +0x0158 | 8F 35 23 83 DC 35 4B C0 | double | 0xC04B35DC8323358F (-54.4208) | struct field `[2].latitude` of 'AnnotatedBinary.Location' (Double) - +0x0160 | F6 97 DD 93 87 C5 0A 40 | double | 0x400AC58793DD97F6 (3.34645) | struct field `[2].longitude` of 'AnnotatedBinary.Location' (Double) + +0x0134 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) + +0x0138 | 33 33 33 33 33 A3 45 40 | double | 0x4045A33333333333 (43.275) | struct field `[0].latitude` of 'AnnotatedBinary.Location' (Double) + +0x0140 | 7E 57 04 FF 5B 87 53 C0 | double | 0xC053875BFF04577E (-78.115) | struct field `[0].longitude` of 'AnnotatedBinary.Location' (Double) + +0x0148 | 8D F0 F6 20 04 B6 42 40 | double | 0x4042B60420F6F08D (37.422) | struct field `[1].latitude` of 'AnnotatedBinary.Location' (Double) + +0x0150 | 9F 77 63 41 61 85 5E C0 | double | 0xC05E85614163779F (-122.084) | struct field `[1].longitude` of 'AnnotatedBinary.Location' (Double) + +0x0158 | 8F 35 23 83 DC 35 4B C0 | double | 0xC04B35DC8323358F (-54.4208) | struct field `[2].latitude` of 'AnnotatedBinary.Location' (Double) + +0x0160 | F6 97 DD 93 87 C5 0A 40 | double | 0x400AC58793DD97F6 (3.34645) | struct field `[2].longitude` of 'AnnotatedBinary.Location' (Double) padding: - +0x0168 | 00 00 00 00 | uint8_t[4] | .... | padding + +0x0168 | 00 00 00 00 | uint8_t[4] | .... | padding vector (AnnotatedBinary.Foo.names): - +0x016C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) - +0x0170 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x0190 | offset to string[0] - +0x0174 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x0188 | offset to string[1] - +0x0178 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x017C | offset to string[2] + +0x016C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) + +0x0170 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: 0x0190 | offset to string[0] + +0x0174 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: 0x0188 | offset to string[1] + +0x0178 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x017C | offset to string[2] string (AnnotatedBinary.Foo.names): - +0x017C | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string - +0x0180 | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal - +0x0187 | 00 | char | 0x00 (0) | string terminator + +0x017C | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string + +0x0180 | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal + +0x0187 | 00 | char | 0x00 (0) | string terminator string (AnnotatedBinary.Foo.names): - +0x0188 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string - +0x018C | 62 6F 62 | char[3] | bob | string literal - +0x018F | 00 | char | 0x00 (0) | string terminator + +0x0188 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string + +0x018C | 62 6F 62 | char[3] | bob | string literal + +0x018F | 00 | char | 0x00 (0) | string terminator string (AnnotatedBinary.Foo.names): - +0x0190 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string - +0x0194 | 61 6C 69 63 65 | char[5] | alice | string literal - +0x0199 | 00 | char | 0x00 (0) | string terminator + +0x0190 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string + +0x0194 | 61 6C 69 63 65 | char[5] | alice | string literal + +0x0199 | 00 | char | 0x00 (0) | string terminator padding: - +0x019A | 00 00 | uint8_t[2] | .. | padding + +0x019A | 00 00 | uint8_t[2] | .. | padding string (AnnotatedBinary.Foo.alice): - +0x019C | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string - +0x01A0 | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal - +0x01A7 | 00 | char | 0x00 (0) | string terminator + +0x019C | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string + +0x01A0 | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal + +0x01A7 | 00 | char | 0x00 (0) | string terminator string (AnnotatedBinary.Foo.bob): - +0x01A8 | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string - +0x01AC | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal - +0x01B3 | 00 | char | 0x00 (0) | string terminator + +0x01A8 | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string + +0x01AC | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal + +0x01B3 | 00 | char | 0x00 (0) | string terminator vector (AnnotatedBinary.Foo.accounts): - +0x01B4 | 09 00 00 00 | uint32_t | 0x00000009 (9) | length of vector (# items) - +0x01B8 | 09 00 | uint16_t | 0x0009 (9) | value[0] - +0x01BA | 08 00 | uint16_t | 0x0008 (8) | value[1] - +0x01BC | 07 00 | uint16_t | 0x0007 (7) | value[2] - +0x01BE | 01 00 | uint16_t | 0x0001 (1) | value[3] - +0x01C0 | 02 00 | uint16_t | 0x0002 (2) | value[4] - +0x01C2 | 03 00 | uint16_t | 0x0003 (3) | value[5] - +0x01C4 | 06 00 | uint16_t | 0x0006 (6) | value[6] - +0x01C6 | 05 00 | uint16_t | 0x0005 (5) | value[7] - +0x01C8 | 04 00 | uint16_t | 0x0004 (4) | value[8] + +0x01B4 | 09 00 00 00 | uint32_t | 0x00000009 (9) | length of vector (# items) + +0x01B8 | 09 00 | uint16_t | 0x0009 (9) | value[0] + +0x01BA | 08 00 | uint16_t | 0x0008 (8) | value[1] + +0x01BC | 07 00 | uint16_t | 0x0007 (7) | value[2] + +0x01BE | 01 00 | uint16_t | 0x0001 (1) | value[3] + +0x01C0 | 02 00 | uint16_t | 0x0002 (2) | value[4] + +0x01C2 | 03 00 | uint16_t | 0x0003 (3) | value[5] + +0x01C4 | 06 00 | uint16_t | 0x0006 (6) | value[6] + +0x01C6 | 05 00 | uint16_t | 0x0005 (5) | value[7] + +0x01C8 | 04 00 | uint16_t | 0x0004 (4) | value[8] padding: - +0x01CA | 00 00 | uint8_t[2] | .. | padding + +0x01CA | 00 00 | uint8_t[2] | .. | padding table (AnnotatedBinary.Baz): - +0x01CC | 3A FF FF FF | SOffset32 | 0xFFFFFF3A (-198) Loc: +0x0292 | offset to vtable - +0x01D0 | 00 00 00 | uint8_t[3] | ... | padding - +0x01D3 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte) + +0x01CC | 3A FF FF FF | SOffset32 | 0xFFFFFF3A (-198) Loc: 0x0292 | offset to vtable + +0x01D0 | 00 00 00 | uint8_t[3] | ... | padding + +0x01D3 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte) vector (AnnotatedBinary.Foo.bars): - +0x01D4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) - +0x01D8 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x021C | offset to table[0] - +0x01DC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x01EC | offset to table[1] + +0x01D4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) + +0x01D8 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: 0x021C | offset to table[0] + +0x01DC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x01EC | offset to table[1] padding: - +0x01E0 | 00 00 | uint8_t[2] | .. | padding + +0x01E0 | 00 00 | uint8_t[2] | .. | padding vtable (AnnotatedBinary.Bar): - +0x01E2 | 0A 00 | uint16_t | 0x000A (10) | size of this vtable - +0x01E4 | 1A 00 | uint16_t | 0x001A (26) | size of referring table - +0x01E6 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `a` (id: 0) - +0x01E8 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1) - +0x01EA | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2) + +0x01E2 | 0A 00 | uint16_t | 0x000A (10) | size of this vtable + +0x01E4 | 1A 00 | uint16_t | 0x001A (26) | size of referring table + +0x01E6 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `a` (id: 0) + +0x01E8 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1) + +0x01EA | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2) table (AnnotatedBinary.Bar): - +0x01EC | 0A 00 00 00 | SOffset32 | 0x0000000A (10) Loc: +0x01E2 | offset to vtable - +0x01F0 | 00 80 23 44 | float | 0x44238000 (654) | table field `b` (Float) - +0x01F4 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x020C | offset to field `c` (table) - +0x01F8 | 00 00 00 00 00 D8 8E 40 | double | 0x408ED80000000000 (987) | table field `a` (Double) - +0x0200 | 00 00 00 00 00 00 | uint8_t[6] | ...... | padding + +0x01EC | 0A 00 00 00 | SOffset32 | 0x0000000A (10) Loc: 0x01E2 | offset to vtable + +0x01F0 | 00 80 23 44 | float | 0x44238000 (654) | table field `b` (Float) + +0x01F4 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: 0x020C | offset to field `c` (table) + +0x01F8 | 00 00 00 00 00 D8 8E 40 | double | 0x408ED80000000000 (987) | table field `a` (Double) + +0x0200 | 00 00 00 00 00 00 | uint8_t[6] | ...... | padding vtable (AnnotatedBinary.Baz): - +0x0206 | 06 00 | uint16_t | 0x0006 (6) | size of this vtable - +0x0208 | 06 00 | uint16_t | 0x0006 (6) | size of referring table - +0x020A | 05 00 | VOffset16 | 0x0005 (5) | offset to field `meal` (id: 0) + +0x0206 | 06 00 | uint16_t | 0x0006 (6) | size of this vtable + +0x0208 | 06 00 | uint16_t | 0x0006 (6) | size of referring table + +0x020A | 05 00 | VOffset16 | 0x0005 (5) | offset to field `meal` (id: 0) table (AnnotatedBinary.Baz): - +0x020C | 06 00 00 00 | SOffset32 | 0x00000006 (6) Loc: +0x0206 | offset to vtable - +0x0210 | 00 | uint8_t[1] | . | padding - +0x0211 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte) + +0x020C | 06 00 00 00 | SOffset32 | 0x00000006 (6) Loc: 0x0206 | offset to vtable + +0x0210 | 00 | uint8_t[1] | . | padding + +0x0211 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte) vtable (AnnotatedBinary.Bar): - +0x0212 | 0A 00 | uint16_t | 0x000A (10) | size of this vtable - +0x0214 | 18 00 | uint16_t | 0x0018 (24) | size of referring table - +0x0216 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `a` (id: 0) - +0x0218 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1) - +0x021A | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2) + +0x0212 | 0A 00 | uint16_t | 0x000A (10) | size of this vtable + +0x0214 | 18 00 | uint16_t | 0x0018 (24) | size of referring table + +0x0216 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `a` (id: 0) + +0x0218 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1) + +0x021A | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2) table (AnnotatedBinary.Bar): - +0x021C | 0A 00 00 00 | SOffset32 | 0x0000000A (10) Loc: +0x0212 | offset to vtable - +0x0220 | 00 00 E4 43 | float | 0x43E40000 (456) | table field `b` (Float) - +0x0224 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x0234 | offset to field `c` (table) - +0x0228 | 00 00 00 00 00 C0 5E 40 | double | 0x405EC00000000000 (123) | table field `a` (Double) - +0x0230 | 00 00 00 00 | uint8_t[4] | .... | padding + +0x021C | 0A 00 00 00 | SOffset32 | 0x0000000A (10) Loc: 0x0212 | offset to vtable + +0x0220 | 00 00 E4 43 | float | 0x43E40000 (456) | table field `b` (Float) + +0x0224 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x0234 | offset to field `c` (table) + +0x0228 | 00 00 00 00 00 C0 5E 40 | double | 0x405EC00000000000 (123) | table field `a` (Double) + +0x0230 | 00 00 00 00 | uint8_t[4] | .... | padding table (AnnotatedBinary.Baz): - +0x0234 | A2 FF FF FF | SOffset32 | 0xFFFFFFA2 (-94) Loc: +0x0292 | offset to vtable - +0x0238 | 00 00 00 | uint8_t[3] | ... | padding - +0x023B | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte) + +0x0234 | A2 FF FF FF | SOffset32 | 0xFFFFFFA2 (-94) Loc: 0x0292 | offset to vtable + +0x0238 | 00 00 00 | uint8_t[3] | ... | padding + +0x023B | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte) string (AnnotatedBinary.Foo.name): - +0x023C | 2F 00 00 00 | uint32_t | 0x0000002F (47) | length of string - +0x0240 | 54 68 69 73 20 69 73 20 | char[47] | This is | string literal + +0x023C | 2F 00 00 00 | uint32_t | 0x0000002F (47) | length of string + +0x0240 | 54 68 69 73 20 69 73 20 | char[47] | This is | string literal +0x0248 | 61 20 6C 6F 6E 67 20 73 | | a long s +0x0250 | 74 72 69 6E 67 20 74 6F | | tring to +0x0258 | 20 73 68 6F 77 20 68 6F | | show ho +0x0260 | 77 20 69 74 20 62 72 65 | | w it bre +0x0268 | 61 6B 73 20 75 70 2E | | aks up. - +0x026F | 00 | char | 0x00 (0) | string terminator + +0x026F | 00 | char | 0x00 (0) | string terminator padding: - +0x0270 | 00 00 | uint8_t[2] | .. | padding + +0x0270 | 00 00 | uint8_t[2] | .. | padding vtable (AnnotatedBinary.Bar): - +0x0272 | 0A 00 | uint16_t | 0x000A (10) | size of this vtable - +0x0274 | 16 00 | uint16_t | 0x0016 (22) | size of referring table - +0x0276 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `a` (id: 0) - +0x0278 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1) - +0x027A | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2) + +0x0272 | 0A 00 | uint16_t | 0x000A (10) | size of this vtable + +0x0274 | 16 00 | uint16_t | 0x0016 (22) | size of referring table + +0x0276 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `a` (id: 0) + +0x0278 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1) + +0x027A | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2) table (AnnotatedBinary.Bar): - +0x027C | 0A 00 00 00 | SOffset32 | 0x0000000A (10) Loc: +0x0272 | offset to vtable - +0x0280 | 65 20 71 49 | float | 0x49712065 (987654) | table field `b` (Float) - +0x0284 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x0298 | offset to field `c` (table) - +0x0288 | C9 76 BE 9F 0C 24 FE 40 | double | 0x40FE240C9FBE76C9 (123457) | table field `a` (Double) - +0x0290 | 00 00 | uint8_t[2] | .. | padding + +0x027C | 0A 00 00 00 | SOffset32 | 0x0000000A (10) Loc: 0x0272 | offset to vtable + +0x0280 | 65 20 71 49 | float | 0x49712065 (987654) | table field `b` (Float) + +0x0284 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: 0x0298 | offset to field `c` (table) + +0x0288 | C9 76 BE 9F 0C 24 FE 40 | double | 0x40FE240C9FBE76C9 (123457) | table field `a` (Double) + +0x0290 | 00 00 | uint8_t[2] | .. | padding vtable (AnnotatedBinary.Baz): - +0x0292 | 06 00 | uint16_t | 0x0006 (6) | size of this vtable - +0x0294 | 08 00 | uint16_t | 0x0008 (8) | size of referring table - +0x0296 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `meal` (id: 0) + +0x0292 | 06 00 | uint16_t | 0x0006 (6) | size of this vtable + +0x0294 | 08 00 | uint16_t | 0x0008 (8) | size of referring table + +0x0296 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `meal` (id: 0) table (AnnotatedBinary.Baz): - +0x0298 | 06 00 00 00 | SOffset32 | 0x00000006 (6) Loc: +0x0292 | offset to vtable - +0x029C | 00 00 00 | uint8_t[3] | ... | padding - +0x029F | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte) + +0x0298 | 06 00 00 00 | SOffset32 | 0x00000006 (6) Loc: 0x0292 | offset to vtable + +0x029C | 00 00 00 | uint8_t[3] | ... | padding + +0x029F | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte) diff --git a/tests/annotated_binary/tests/invalid_string_length_cut_short.afb b/tests/annotated_binary/tests/invalid_string_length_cut_short.afb index fec1134318..060938db5b 100644 --- a/tests/annotated_binary/tests/invalid_string_length_cut_short.afb +++ b/tests/annotated_binary/tests/invalid_string_length_cut_short.afb @@ -4,77 +4,77 @@ // Binary file: tests/invalid_string_length_cut_short.bin header: - +0x00 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x44 | offset to root table `AnnotatedBinary.Foo` - +0x04 | 41 4E 4E 4F | char[4] | ANNO | File Identifier + +0x00 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: 0x44 | offset to root table `AnnotatedBinary.Foo` + +0x04 | 41 4E 4E 4F | char[4] | ANNO | File Identifier padding: - +0x08 | 00 00 | uint8_t[2] | .. | padding + +0x08 | 00 00 | uint8_t[2] | .. | padding vtable (AnnotatedBinary.Foo): - +0x0A | 3A 00 | uint16_t | 0x003A (58) | size of this vtable - +0x0C | 68 00 | uint16_t | 0x0068 (104) | size of referring table - +0x0E | 0C 00 | VOffset16 | 0x000C (12) | offset to field `counter` (id: 0) - +0x10 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `healthy` (id: 1) - +0x12 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `level` (id: 2) (Long) - +0x14 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `meal` (id: 3) - +0x16 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `bar` (id: 4) - +0x18 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `home` (id: 5) - +0x1A | 30 00 | VOffset16 | 0x0030 (48) | offset to field `name` (id: 6) - +0x1C | 34 00 | VOffset16 | 0x0034 (52) | offset to field `bars` (id: 7) - +0x1E | 09 00 | VOffset16 | 0x0009 (9) | offset to field `bar_baz_type` (id: 8) - +0x20 | 38 00 | VOffset16 | 0x0038 (56) | offset to field `bar_baz` (id: 9) - +0x22 | 3C 00 | VOffset16 | 0x003C (60) | offset to field `accounts` (id: 10) - +0x24 | 40 00 | VOffset16 | 0x0040 (64) | offset to field `bob` (id: 11) - +0x26 | 44 00 | VOffset16 | 0x0044 (68) | offset to field `alice` (id: 12) - +0x28 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `maybe_i32` (id: 13) (Int) - +0x2A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_i32` (id: 14) (Int) - +0x2C | 48 00 | VOffset16 | 0x0048 (72) | offset to field `just_i32` (id: 15) - +0x2E | 4C 00 | VOffset16 | 0x004C (76) | offset to field `names` (id: 16) - +0x30 | 50 00 | VOffset16 | 0x0050 (80) | offset to field `points_of_interest` (id: 17) - +0x32 | 54 00 | VOffset16 | 0x0054 (84) | offset to field `foobars_type` (id: 18) - +0x34 | 58 00 | VOffset16 | 0x0058 (88) | offset to field `foobars` (id: 19) - +0x36 | 0A 00 | VOffset16 | 0x000A (10) | offset to field `measurement_type` (id: 20) - +0x38 | 5C 00 | VOffset16 | 0x005C (92) | offset to field `measurement` (id: 21) - +0x3A | 0B 00 | VOffset16 | 0x000B (11) | offset to field `anything_type` (id: 22) - +0x3C | 60 00 | VOffset16 | 0x0060 (96) | offset to field `anything` (id: 23) - +0x3E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `temperature` (id: 24) (Float) - +0x40 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `teetotaler` (id: 25) (Obj) - +0x42 | 64 00 | VOffset16 | 0x0064 (100) | offset to field `charlie` (id: 26) + +0x0A | 3A 00 | uint16_t | 0x003A (58) | size of this vtable + +0x0C | 68 00 | uint16_t | 0x0068 (104) | size of referring table + +0x0E | 0C 00 | VOffset16 | 0x000C (12) | offset to field `counter` (id: 0) + +0x10 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `healthy` (id: 1) + +0x12 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `level` (id: 2) (Long) + +0x14 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `meal` (id: 3) + +0x16 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `bar` (id: 4) + +0x18 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `home` (id: 5) + +0x1A | 30 00 | VOffset16 | 0x0030 (48) | offset to field `name` (id: 6) + +0x1C | 34 00 | VOffset16 | 0x0034 (52) | offset to field `bars` (id: 7) + +0x1E | 09 00 | VOffset16 | 0x0009 (9) | offset to field `bar_baz_type` (id: 8) + +0x20 | 38 00 | VOffset16 | 0x0038 (56) | offset to field `bar_baz` (id: 9) + +0x22 | 3C 00 | VOffset16 | 0x003C (60) | offset to field `accounts` (id: 10) + +0x24 | 40 00 | VOffset16 | 0x0040 (64) | offset to field `bob` (id: 11) + +0x26 | 44 00 | VOffset16 | 0x0044 (68) | offset to field `alice` (id: 12) + +0x28 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `maybe_i32` (id: 13) (Int) + +0x2A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_i32` (id: 14) (Int) + +0x2C | 48 00 | VOffset16 | 0x0048 (72) | offset to field `just_i32` (id: 15) + +0x2E | 4C 00 | VOffset16 | 0x004C (76) | offset to field `names` (id: 16) + +0x30 | 50 00 | VOffset16 | 0x0050 (80) | offset to field `points_of_interest` (id: 17) + +0x32 | 54 00 | VOffset16 | 0x0054 (84) | offset to field `foobars_type` (id: 18) + +0x34 | 58 00 | VOffset16 | 0x0058 (88) | offset to field `foobars` (id: 19) + +0x36 | 0A 00 | VOffset16 | 0x000A (10) | offset to field `measurement_type` (id: 20) + +0x38 | 5C 00 | VOffset16 | 0x005C (92) | offset to field `measurement` (id: 21) + +0x3A | 0B 00 | VOffset16 | 0x000B (11) | offset to field `anything_type` (id: 22) + +0x3C | 60 00 | VOffset16 | 0x0060 (96) | offset to field `anything` (id: 23) + +0x3E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `temperature` (id: 24) (Float) + +0x40 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `teetotaler` (id: 25) (Obj) + +0x42 | 64 00 | VOffset16 | 0x0064 (100) | offset to field `charlie` (id: 26) root_table (AnnotatedBinary.Foo): - +0x44 | 3A 00 00 00 | SOffset32 | 0x0000003A (58) Loc: +0x0A | offset to vtable - +0x48 | 00 00 00 | uint8_t[3] | ... | padding - +0x4B | 01 | uint8_t | 0x01 (1) | table field `healthy` (Bool) - +0x4C | 02 | uint8_t | 0x02 (2) | table field `meal` (Byte) - +0x4D | 02 | UType8 | 0x02 (2) | table field `bar_baz_type` (UType) - +0x4E | 01 | UType8 | 0x01 (1) | table field `measurement_type` (UType) - +0x4F | 01 | UType8 | 0x01 (1) | table field `anything_type` (UType) - +0x50 | D2 04 00 00 | uint32_t | 0x000004D2 (1234) | table field `counter` (Int) - +0x54 | 28 02 00 00 | UOffset32 | 0x00000228 (552) Loc: +0x27C | ERROR: offset to field `bar`. Invalid offset, points outside the binary. - +0x58 | 01 00 00 00 | uint32_t | 0x00000001 (1) | struct field `home.floors` of 'AnnotatedBinary.Building' (Int) - +0x5C | 02 00 00 00 | uint32_t | 0x00000002 (2) | struct field `home.doors` of 'AnnotatedBinary.Building' (Int) - +0x60 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | struct field `home.windows` of 'AnnotatedBinary.Building' (Int) - +0x64 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | array field `home.dimensions.values`[0] of 'AnnotatedBinary.Dimension' (Int) - +0x68 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | array field `home.dimensions.values`[1] of 'AnnotatedBinary.Dimension' (Int) - +0x6C | 14 00 00 00 | uint32_t | 0x00000014 (20) | array field `home.dimensions.values`[2] of 'AnnotatedBinary.Dimension' (Int) - +0x70 | 01 | uint8_t | 0x01 (1) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte) - +0x71 | 02 | uint8_t | 0x02 (2) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte) - +0x72 | 03 | uint8_t | 0x03 (3) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte) - +0x73 | 00 | uint8_t[1] | . | padding - +0x74 | C8 01 00 00 | UOffset32 | 0x000001C8 (456) Loc: +0x23C | ERROR: offset to field `name`. Invalid offset, points outside the binary. - +0x78 | 5C 01 00 00 | UOffset32 | 0x0000015C (348) Loc: +0x1D4 | ERROR: offset to field `bars`. Invalid offset, points outside the binary. - +0x7C | 50 01 00 00 | UOffset32 | 0x00000150 (336) Loc: +0x1CC | ERROR: offset to field `bar_baz`. Invalid offset, points outside the binary. - +0x80 | 34 01 00 00 | UOffset32 | 0x00000134 (308) Loc: +0x1B4 | ERROR: offset to field `accounts`. Invalid offset, points outside the binary. - +0x84 | 24 01 00 00 | UOffset32 | 0x00000124 (292) Loc: +0x1A8 | ERROR: offset to field `bob`. Invalid offset, points outside the binary. - +0x88 | 14 01 00 00 | UOffset32 | 0x00000114 (276) Loc: +0x19C | ERROR: offset to field `alice`. Invalid offset, points outside the binary. - +0x8C | 0D 00 00 00 | uint32_t | 0x0000000D (13) | table field `just_i32` (Int) - +0x90 | DC 00 00 00 | UOffset32 | 0x000000DC (220) Loc: +0x16C | ERROR: offset to field `names`. Invalid offset, points outside the binary. - +0x94 | A0 00 00 00 | UOffset32 | 0x000000A0 (160) Loc: +0x134 | ERROR: offset to field `points_of_interest`. Invalid offset, points outside the binary. - +0x98 | 94 00 00 00 | UOffset32 | 0x00000094 (148) Loc: +0x12C | ERROR: offset to field `foobars_type`. Invalid offset, points outside the binary. - +0x9C | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: +0xD4 | ERROR: offset to field `foobars`. Invalid offset, points outside the binary. - +0xA0 | 33 00 00 00 | UOffset32 | 0x00000033 (51) Loc: +0xD3 | ERROR: offset to field `measurement`. Invalid offset, points outside the binary. - +0xA4 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: +0xC0 | ERROR: offset to field `anything`. Invalid offset, points outside the binary. - +0xA8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0xAC | offset to field `charlie` (string) + +0x44 | 3A 00 00 00 | SOffset32 | 0x0000003A (58) Loc: 0x0A | offset to vtable + +0x48 | 00 00 00 | uint8_t[3] | ... | padding + +0x4B | 01 | uint8_t | 0x01 (1) | table field `healthy` (Bool) + +0x4C | 02 | uint8_t | 0x02 (2) | table field `meal` (Byte) + +0x4D | 02 | UType8 | 0x02 (2) | table field `bar_baz_type` (UType) + +0x4E | 01 | UType8 | 0x01 (1) | table field `measurement_type` (UType) + +0x4F | 01 | UType8 | 0x01 (1) | table field `anything_type` (UType) + +0x50 | D2 04 00 00 | uint32_t | 0x000004D2 (1234) | table field `counter` (Int) + +0x54 | 28 02 00 00 | UOffset32 | 0x00000228 (552) Loc: 0x27C | ERROR: offset to field `bar`. Invalid offset, points outside the binary. + +0x58 | 01 00 00 00 | uint32_t | 0x00000001 (1) | struct field `home.floors` of 'AnnotatedBinary.Building' (Int) + +0x5C | 02 00 00 00 | uint32_t | 0x00000002 (2) | struct field `home.doors` of 'AnnotatedBinary.Building' (Int) + +0x60 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | struct field `home.windows` of 'AnnotatedBinary.Building' (Int) + +0x64 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | array field `home.dimensions.values`[0] of 'AnnotatedBinary.Dimension' (Int) + +0x68 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | array field `home.dimensions.values`[1] of 'AnnotatedBinary.Dimension' (Int) + +0x6C | 14 00 00 00 | uint32_t | 0x00000014 (20) | array field `home.dimensions.values`[2] of 'AnnotatedBinary.Dimension' (Int) + +0x70 | 01 | uint8_t | 0x01 (1) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte) + +0x71 | 02 | uint8_t | 0x02 (2) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte) + +0x72 | 03 | uint8_t | 0x03 (3) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte) + +0x73 | 00 | uint8_t[1] | . | padding + +0x74 | C8 01 00 00 | UOffset32 | 0x000001C8 (456) Loc: 0x23C | ERROR: offset to field `name`. Invalid offset, points outside the binary. + +0x78 | 5C 01 00 00 | UOffset32 | 0x0000015C (348) Loc: 0x1D4 | ERROR: offset to field `bars`. Invalid offset, points outside the binary. + +0x7C | 50 01 00 00 | UOffset32 | 0x00000150 (336) Loc: 0x1CC | ERROR: offset to field `bar_baz`. Invalid offset, points outside the binary. + +0x80 | 34 01 00 00 | UOffset32 | 0x00000134 (308) Loc: 0x1B4 | ERROR: offset to field `accounts`. Invalid offset, points outside the binary. + +0x84 | 24 01 00 00 | UOffset32 | 0x00000124 (292) Loc: 0x1A8 | ERROR: offset to field `bob`. Invalid offset, points outside the binary. + +0x88 | 14 01 00 00 | UOffset32 | 0x00000114 (276) Loc: 0x19C | ERROR: offset to field `alice`. Invalid offset, points outside the binary. + +0x8C | 0D 00 00 00 | uint32_t | 0x0000000D (13) | table field `just_i32` (Int) + +0x90 | DC 00 00 00 | UOffset32 | 0x000000DC (220) Loc: 0x16C | ERROR: offset to field `names`. Invalid offset, points outside the binary. + +0x94 | A0 00 00 00 | UOffset32 | 0x000000A0 (160) Loc: 0x134 | ERROR: offset to field `points_of_interest`. Invalid offset, points outside the binary. + +0x98 | 94 00 00 00 | UOffset32 | 0x00000094 (148) Loc: 0x12C | ERROR: offset to field `foobars_type`. Invalid offset, points outside the binary. + +0x9C | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: 0xD4 | ERROR: offset to field `foobars`. Invalid offset, points outside the binary. + +0xA0 | 33 00 00 00 | UOffset32 | 0x00000033 (51) Loc: 0xD3 | ERROR: offset to field `measurement`. Invalid offset, points outside the binary. + +0xA4 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: 0xC0 | ERROR: offset to field `anything`. Invalid offset, points outside the binary. + +0xA8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0xAC | offset to field `charlie` (string) string (AnnotatedBinary.Foo.charlie): - +0xAC | 05 00 | ?uint8_t[2] | .. | ERROR: length of string. Incomplete binary, expected to read 4 bytes. + +0xAC | 05 00 | ?uint8_t[2] | .. | ERROR: length of string. Incomplete binary, expected to read 4 bytes. diff --git a/tests/annotated_binary/tests/invalid_struct_array_field_cut_short.afb b/tests/annotated_binary/tests/invalid_struct_array_field_cut_short.afb index b141ba1401..48226a106a 100644 --- a/tests/annotated_binary/tests/invalid_struct_array_field_cut_short.afb +++ b/tests/annotated_binary/tests/invalid_struct_array_field_cut_short.afb @@ -4,69 +4,69 @@ // Binary file: tests/invalid_struct_array_field_cut_short.bin header: - +0x00 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x44 | offset to root table `AnnotatedBinary.Foo` - +0x04 | 41 4E 4E 4F | char[4] | ANNO | File Identifier + +0x00 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: 0x44 | offset to root table `AnnotatedBinary.Foo` + +0x04 | 41 4E 4E 4F | char[4] | ANNO | File Identifier padding: - +0x08 | 00 00 | uint8_t[2] | .. | padding + +0x08 | 00 00 | uint8_t[2] | .. | padding vtable (AnnotatedBinary.Foo): - +0x0A | 3A 00 | uint16_t | 0x003A (58) | size of this vtable - +0x0C | 68 00 | uint16_t | 0x0068 (104) | ERROR: size of referring table. Longer than the binary. - +0x0E | 0C 00 | VOffset16 | 0x000C (12) | offset to field `counter` (id: 0) - +0x10 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `healthy` (id: 1) - +0x12 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `level` (id: 2) (Long) - +0x14 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `meal` (id: 3) - +0x16 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `bar` (id: 4) - +0x18 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `home` (id: 5) - +0x1A | 30 00 | VOffset16 | 0x0030 (48) | ERROR: offset to field `name` (id: 6). Invalid offset, points outside the binary. - +0x1C | 34 00 | VOffset16 | 0x0034 (52) | ERROR: offset to field `bars` (id: 7). Invalid offset, points outside the binary. - +0x1E | 09 00 | VOffset16 | 0x0009 (9) | offset to field `bar_baz_type` (id: 8) - +0x20 | 38 00 | VOffset16 | 0x0038 (56) | ERROR: offset to field `bar_baz` (id: 9). Invalid offset, points outside the binary. - +0x22 | 3C 00 | VOffset16 | 0x003C (60) | ERROR: offset to field `accounts` (id: 10). Invalid offset, points outside the binary. - +0x24 | 40 00 | VOffset16 | 0x0040 (64) | ERROR: offset to field `bob` (id: 11). Invalid offset, points outside the binary. - +0x26 | 44 00 | VOffset16 | 0x0044 (68) | ERROR: offset to field `alice` (id: 12). Invalid offset, points outside the binary. - +0x28 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `maybe_i32` (id: 13) (Int) - +0x2A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_i32` (id: 14) (Int) - +0x2C | 48 00 | VOffset16 | 0x0048 (72) | ERROR: offset to field `just_i32` (id: 15). Invalid offset, points outside the binary. - +0x2E | 4C 00 | VOffset16 | 0x004C (76) | ERROR: offset to field `names` (id: 16). Invalid offset, points outside the binary. - +0x30 | 50 00 | VOffset16 | 0x0050 (80) | ERROR: offset to field `points_of_interest` (id: 17). Invalid offset, points outside the binary. - +0x32 | 54 00 | VOffset16 | 0x0054 (84) | ERROR: offset to field `foobars_type` (id: 18). Invalid offset, points outside the binary. - +0x34 | 58 00 | VOffset16 | 0x0058 (88) | ERROR: offset to field `foobars` (id: 19). Invalid offset, points outside the binary. - +0x36 | 0A 00 | VOffset16 | 0x000A (10) | offset to field `measurement_type` (id: 20) - +0x38 | 5C 00 | VOffset16 | 0x005C (92) | ERROR: offset to field `measurement` (id: 21). Invalid offset, points outside the binary. - +0x3A | 0B 00 | VOffset16 | 0x000B (11) | offset to field `anything_type` (id: 22) - +0x3C | 60 00 | VOffset16 | 0x0060 (96) | ERROR: offset to field `anything` (id: 23). Invalid offset, points outside the binary. - +0x3E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `temperature` (id: 24) (Float) - +0x40 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `teetotaler` (id: 25) (Obj) - +0x42 | 64 00 | VOffset16 | 0x0064 (100) | ERROR: offset to field `charlie` (id: 26). Invalid offset, points outside the binary. - +0x28 | 00 00 | VOffset16 | 0x0000 (0) | offset to unknown field (id: 13) - +0x2A | 00 00 | VOffset16 | 0x0000 (0) | offset to unknown field (id: 14) - +0x2C | 48 00 | VOffset16 | 0x0048 (72) | offset to unknown field (id: 15) - +0x2E | 4C 00 | VOffset16 | 0x004C (76) | offset to unknown field (id: 16) - +0x30 | 50 00 | VOffset16 | 0x0050 (80) | offset to unknown field (id: 17) - +0x32 | 54 00 | VOffset16 | 0x0054 (84) | offset to unknown field (id: 18) - +0x34 | 58 00 | VOffset16 | 0x0058 (88) | offset to unknown field (id: 19) - +0x36 | 0A 00 | VOffset16 | 0x000A (10) | offset to unknown field (id: 20) - +0x38 | 5C 00 | VOffset16 | 0x005C (92) | offset to unknown field (id: 21) - +0x3A | 0B 00 | VOffset16 | 0x000B (11) | offset to unknown field (id: 22) - +0x3C | 60 00 | VOffset16 | 0x0060 (96) | offset to unknown field (id: 23) - +0x3E | 00 00 | VOffset16 | 0x0000 (0) | offset to unknown field (id: 24) - +0x40 | 00 00 | VOffset16 | 0x0000 (0) | offset to unknown field (id: 25) - +0x42 | 64 00 | VOffset16 | 0x0064 (100) | offset to unknown field (id: 26) + +0x0A | 3A 00 | uint16_t | 0x003A (58) | size of this vtable + +0x0C | 68 00 | uint16_t | 0x0068 (104) | ERROR: size of referring table. Longer than the binary. + +0x0E | 0C 00 | VOffset16 | 0x000C (12) | offset to field `counter` (id: 0) + +0x10 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `healthy` (id: 1) + +0x12 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `level` (id: 2) (Long) + +0x14 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `meal` (id: 3) + +0x16 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `bar` (id: 4) + +0x18 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `home` (id: 5) + +0x1A | 30 00 | VOffset16 | 0x0030 (48) | ERROR: offset to field `name` (id: 6). Invalid offset, points outside the binary. + +0x1C | 34 00 | VOffset16 | 0x0034 (52) | ERROR: offset to field `bars` (id: 7). Invalid offset, points outside the binary. + +0x1E | 09 00 | VOffset16 | 0x0009 (9) | offset to field `bar_baz_type` (id: 8) + +0x20 | 38 00 | VOffset16 | 0x0038 (56) | ERROR: offset to field `bar_baz` (id: 9). Invalid offset, points outside the binary. + +0x22 | 3C 00 | VOffset16 | 0x003C (60) | ERROR: offset to field `accounts` (id: 10). Invalid offset, points outside the binary. + +0x24 | 40 00 | VOffset16 | 0x0040 (64) | ERROR: offset to field `bob` (id: 11). Invalid offset, points outside the binary. + +0x26 | 44 00 | VOffset16 | 0x0044 (68) | ERROR: offset to field `alice` (id: 12). Invalid offset, points outside the binary. + +0x28 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `maybe_i32` (id: 13) (Int) + +0x2A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_i32` (id: 14) (Int) + +0x2C | 48 00 | VOffset16 | 0x0048 (72) | ERROR: offset to field `just_i32` (id: 15). Invalid offset, points outside the binary. + +0x2E | 4C 00 | VOffset16 | 0x004C (76) | ERROR: offset to field `names` (id: 16). Invalid offset, points outside the binary. + +0x30 | 50 00 | VOffset16 | 0x0050 (80) | ERROR: offset to field `points_of_interest` (id: 17). Invalid offset, points outside the binary. + +0x32 | 54 00 | VOffset16 | 0x0054 (84) | ERROR: offset to field `foobars_type` (id: 18). Invalid offset, points outside the binary. + +0x34 | 58 00 | VOffset16 | 0x0058 (88) | ERROR: offset to field `foobars` (id: 19). Invalid offset, points outside the binary. + +0x36 | 0A 00 | VOffset16 | 0x000A (10) | offset to field `measurement_type` (id: 20) + +0x38 | 5C 00 | VOffset16 | 0x005C (92) | ERROR: offset to field `measurement` (id: 21). Invalid offset, points outside the binary. + +0x3A | 0B 00 | VOffset16 | 0x000B (11) | offset to field `anything_type` (id: 22) + +0x3C | 60 00 | VOffset16 | 0x0060 (96) | ERROR: offset to field `anything` (id: 23). Invalid offset, points outside the binary. + +0x3E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `temperature` (id: 24) (Float) + +0x40 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `teetotaler` (id: 25) (Obj) + +0x42 | 64 00 | VOffset16 | 0x0064 (100) | ERROR: offset to field `charlie` (id: 26). Invalid offset, points outside the binary. + +0x28 | 00 00 | VOffset16 | 0x0000 (0) | offset to unknown field (id: 13) + +0x2A | 00 00 | VOffset16 | 0x0000 (0) | offset to unknown field (id: 14) + +0x2C | 48 00 | VOffset16 | 0x0048 (72) | offset to unknown field (id: 15) + +0x2E | 4C 00 | VOffset16 | 0x004C (76) | offset to unknown field (id: 16) + +0x30 | 50 00 | VOffset16 | 0x0050 (80) | offset to unknown field (id: 17) + +0x32 | 54 00 | VOffset16 | 0x0054 (84) | offset to unknown field (id: 18) + +0x34 | 58 00 | VOffset16 | 0x0058 (88) | offset to unknown field (id: 19) + +0x36 | 0A 00 | VOffset16 | 0x000A (10) | offset to unknown field (id: 20) + +0x38 | 5C 00 | VOffset16 | 0x005C (92) | offset to unknown field (id: 21) + +0x3A | 0B 00 | VOffset16 | 0x000B (11) | offset to unknown field (id: 22) + +0x3C | 60 00 | VOffset16 | 0x0060 (96) | offset to unknown field (id: 23) + +0x3E | 00 00 | VOffset16 | 0x0000 (0) | offset to unknown field (id: 24) + +0x40 | 00 00 | VOffset16 | 0x0000 (0) | offset to unknown field (id: 25) + +0x42 | 64 00 | VOffset16 | 0x0064 (100) | offset to unknown field (id: 26) root_table (AnnotatedBinary.Foo): - +0x44 | 3A 00 00 00 | SOffset32 | 0x0000003A (58) Loc: +0x0A | offset to vtable - +0x48 | 00 00 00 | uint8_t[3] | ... | padding - +0x4B | 01 | uint8_t | 0x01 (1) | table field `healthy` (Bool) - +0x4C | 02 | uint8_t | 0x02 (2) | table field `meal` (Byte) - +0x4D | 02 | UType8 | 0x02 (2) | table field `bar_baz_type` (UType) - +0x4E | 01 | UType8 | 0x01 (1) | table field `measurement_type` (UType) - +0x4F | 01 | UType8 | 0x01 (1) | table field `anything_type` (UType) - +0x50 | D2 04 00 00 | uint32_t | 0x000004D2 (1234) | table field `counter` (Int) - +0x54 | 28 02 00 00 | UOffset32 | 0x00000228 (552) Loc: +0x27C | ERROR: offset to field `bar`. Invalid offset, points outside the binary. - +0x58 | 01 00 00 00 | uint32_t | 0x00000001 (1) | struct field `home.floors` of 'AnnotatedBinary.Building' (Int) - +0x5C | 02 00 00 00 | uint32_t | 0x00000002 (2) | struct field `home.doors` of 'AnnotatedBinary.Building' (Int) - +0x60 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | struct field `home.windows` of 'AnnotatedBinary.Building' (Int) - +0x64 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | array field `home.dimensions.values`[0] of 'AnnotatedBinary.Dimension' (Int) - +0x68 | 0C 00 | ?uint8_t[2] | .. | ERROR: array field `home.dimensions.values`[1] of 'AnnotatedBinary.Dimension' (Int). Incomplete binary, expected to read 4 bytes. + +0x44 | 3A 00 00 00 | SOffset32 | 0x0000003A (58) Loc: 0x0A | offset to vtable + +0x48 | 00 00 00 | uint8_t[3] | ... | padding + +0x4B | 01 | uint8_t | 0x01 (1) | table field `healthy` (Bool) + +0x4C | 02 | uint8_t | 0x02 (2) | table field `meal` (Byte) + +0x4D | 02 | UType8 | 0x02 (2) | table field `bar_baz_type` (UType) + +0x4E | 01 | UType8 | 0x01 (1) | table field `measurement_type` (UType) + +0x4F | 01 | UType8 | 0x01 (1) | table field `anything_type` (UType) + +0x50 | D2 04 00 00 | uint32_t | 0x000004D2 (1234) | table field `counter` (Int) + +0x54 | 28 02 00 00 | UOffset32 | 0x00000228 (552) Loc: 0x27C | ERROR: offset to field `bar`. Invalid offset, points outside the binary. + +0x58 | 01 00 00 00 | uint32_t | 0x00000001 (1) | struct field `home.floors` of 'AnnotatedBinary.Building' (Int) + +0x5C | 02 00 00 00 | uint32_t | 0x00000002 (2) | struct field `home.doors` of 'AnnotatedBinary.Building' (Int) + +0x60 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | struct field `home.windows` of 'AnnotatedBinary.Building' (Int) + +0x64 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | array field `home.dimensions.values`[0] of 'AnnotatedBinary.Dimension' (Int) + +0x68 | 0C 00 | ?uint8_t[2] | .. | ERROR: array field `home.dimensions.values`[1] of 'AnnotatedBinary.Dimension' (Int). Incomplete binary, expected to read 4 bytes. diff --git a/tests/annotated_binary/tests/invalid_struct_field_cut_short.afb b/tests/annotated_binary/tests/invalid_struct_field_cut_short.afb index d274035b46..eafef0e7f2 100644 --- a/tests/annotated_binary/tests/invalid_struct_field_cut_short.afb +++ b/tests/annotated_binary/tests/invalid_struct_field_cut_short.afb @@ -4,66 +4,66 @@ // Binary file: tests/invalid_struct_field_cut_short.bin header: - +0x00 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x44 | offset to root table `AnnotatedBinary.Foo` - +0x04 | 41 4E 4E 4F | char[4] | ANNO | File Identifier + +0x00 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: 0x44 | offset to root table `AnnotatedBinary.Foo` + +0x04 | 41 4E 4E 4F | char[4] | ANNO | File Identifier padding: - +0x08 | 00 00 | uint8_t[2] | .. | padding + +0x08 | 00 00 | uint8_t[2] | .. | padding vtable (AnnotatedBinary.Foo): - +0x0A | 3A 00 | uint16_t | 0x003A (58) | size of this vtable - +0x0C | 68 00 | uint16_t | 0x0068 (104) | ERROR: size of referring table. Longer than the binary. - +0x0E | 0C 00 | VOffset16 | 0x000C (12) | offset to field `counter` (id: 0) - +0x10 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `healthy` (id: 1) - +0x12 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `level` (id: 2) (Long) - +0x14 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `meal` (id: 3) - +0x16 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `bar` (id: 4) - +0x18 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `home` (id: 5) - +0x1A | 30 00 | VOffset16 | 0x0030 (48) | ERROR: offset to field `name` (id: 6). Invalid offset, points outside the binary. - +0x1C | 34 00 | VOffset16 | 0x0034 (52) | ERROR: offset to field `bars` (id: 7). Invalid offset, points outside the binary. - +0x1E | 09 00 | VOffset16 | 0x0009 (9) | offset to field `bar_baz_type` (id: 8) - +0x20 | 38 00 | VOffset16 | 0x0038 (56) | ERROR: offset to field `bar_baz` (id: 9). Invalid offset, points outside the binary. - +0x22 | 3C 00 | VOffset16 | 0x003C (60) | ERROR: offset to field `accounts` (id: 10). Invalid offset, points outside the binary. - +0x24 | 40 00 | VOffset16 | 0x0040 (64) | ERROR: offset to field `bob` (id: 11). Invalid offset, points outside the binary. - +0x26 | 44 00 | VOffset16 | 0x0044 (68) | ERROR: offset to field `alice` (id: 12). Invalid offset, points outside the binary. - +0x28 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `maybe_i32` (id: 13) (Int) - +0x2A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_i32` (id: 14) (Int) - +0x2C | 48 00 | VOffset16 | 0x0048 (72) | ERROR: offset to field `just_i32` (id: 15). Invalid offset, points outside the binary. - +0x2E | 4C 00 | VOffset16 | 0x004C (76) | ERROR: offset to field `names` (id: 16). Invalid offset, points outside the binary. - +0x30 | 50 00 | VOffset16 | 0x0050 (80) | ERROR: offset to field `points_of_interest` (id: 17). Invalid offset, points outside the binary. - +0x32 | 54 00 | VOffset16 | 0x0054 (84) | ERROR: offset to field `foobars_type` (id: 18). Invalid offset, points outside the binary. - +0x34 | 58 00 | VOffset16 | 0x0058 (88) | ERROR: offset to field `foobars` (id: 19). Invalid offset, points outside the binary. - +0x36 | 0A 00 | VOffset16 | 0x000A (10) | offset to field `measurement_type` (id: 20) - +0x38 | 5C 00 | VOffset16 | 0x005C (92) | ERROR: offset to field `measurement` (id: 21). Invalid offset, points outside the binary. - +0x3A | 0B 00 | VOffset16 | 0x000B (11) | offset to field `anything_type` (id: 22) - +0x3C | 60 00 | VOffset16 | 0x0060 (96) | ERROR: offset to field `anything` (id: 23). Invalid offset, points outside the binary. - +0x3E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `temperature` (id: 24) (Float) - +0x40 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `teetotaler` (id: 25) (Obj) - +0x42 | 64 00 | VOffset16 | 0x0064 (100) | ERROR: offset to field `charlie` (id: 26). Invalid offset, points outside the binary. - +0x28 | 00 00 | VOffset16 | 0x0000 (0) | offset to unknown field (id: 13) - +0x2A | 00 00 | VOffset16 | 0x0000 (0) | offset to unknown field (id: 14) - +0x2C | 48 00 | VOffset16 | 0x0048 (72) | offset to unknown field (id: 15) - +0x2E | 4C 00 | VOffset16 | 0x004C (76) | offset to unknown field (id: 16) - +0x30 | 50 00 | VOffset16 | 0x0050 (80) | offset to unknown field (id: 17) - +0x32 | 54 00 | VOffset16 | 0x0054 (84) | offset to unknown field (id: 18) - +0x34 | 58 00 | VOffset16 | 0x0058 (88) | offset to unknown field (id: 19) - +0x36 | 0A 00 | VOffset16 | 0x000A (10) | offset to unknown field (id: 20) - +0x38 | 5C 00 | VOffset16 | 0x005C (92) | offset to unknown field (id: 21) - +0x3A | 0B 00 | VOffset16 | 0x000B (11) | offset to unknown field (id: 22) - +0x3C | 60 00 | VOffset16 | 0x0060 (96) | offset to unknown field (id: 23) - +0x3E | 00 00 | VOffset16 | 0x0000 (0) | offset to unknown field (id: 24) - +0x40 | 00 00 | VOffset16 | 0x0000 (0) | offset to unknown field (id: 25) - +0x42 | 64 00 | VOffset16 | 0x0064 (100) | offset to unknown field (id: 26) + +0x0A | 3A 00 | uint16_t | 0x003A (58) | size of this vtable + +0x0C | 68 00 | uint16_t | 0x0068 (104) | ERROR: size of referring table. Longer than the binary. + +0x0E | 0C 00 | VOffset16 | 0x000C (12) | offset to field `counter` (id: 0) + +0x10 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `healthy` (id: 1) + +0x12 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `level` (id: 2) (Long) + +0x14 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `meal` (id: 3) + +0x16 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `bar` (id: 4) + +0x18 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `home` (id: 5) + +0x1A | 30 00 | VOffset16 | 0x0030 (48) | ERROR: offset to field `name` (id: 6). Invalid offset, points outside the binary. + +0x1C | 34 00 | VOffset16 | 0x0034 (52) | ERROR: offset to field `bars` (id: 7). Invalid offset, points outside the binary. + +0x1E | 09 00 | VOffset16 | 0x0009 (9) | offset to field `bar_baz_type` (id: 8) + +0x20 | 38 00 | VOffset16 | 0x0038 (56) | ERROR: offset to field `bar_baz` (id: 9). Invalid offset, points outside the binary. + +0x22 | 3C 00 | VOffset16 | 0x003C (60) | ERROR: offset to field `accounts` (id: 10). Invalid offset, points outside the binary. + +0x24 | 40 00 | VOffset16 | 0x0040 (64) | ERROR: offset to field `bob` (id: 11). Invalid offset, points outside the binary. + +0x26 | 44 00 | VOffset16 | 0x0044 (68) | ERROR: offset to field `alice` (id: 12). Invalid offset, points outside the binary. + +0x28 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `maybe_i32` (id: 13) (Int) + +0x2A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_i32` (id: 14) (Int) + +0x2C | 48 00 | VOffset16 | 0x0048 (72) | ERROR: offset to field `just_i32` (id: 15). Invalid offset, points outside the binary. + +0x2E | 4C 00 | VOffset16 | 0x004C (76) | ERROR: offset to field `names` (id: 16). Invalid offset, points outside the binary. + +0x30 | 50 00 | VOffset16 | 0x0050 (80) | ERROR: offset to field `points_of_interest` (id: 17). Invalid offset, points outside the binary. + +0x32 | 54 00 | VOffset16 | 0x0054 (84) | ERROR: offset to field `foobars_type` (id: 18). Invalid offset, points outside the binary. + +0x34 | 58 00 | VOffset16 | 0x0058 (88) | ERROR: offset to field `foobars` (id: 19). Invalid offset, points outside the binary. + +0x36 | 0A 00 | VOffset16 | 0x000A (10) | offset to field `measurement_type` (id: 20) + +0x38 | 5C 00 | VOffset16 | 0x005C (92) | ERROR: offset to field `measurement` (id: 21). Invalid offset, points outside the binary. + +0x3A | 0B 00 | VOffset16 | 0x000B (11) | offset to field `anything_type` (id: 22) + +0x3C | 60 00 | VOffset16 | 0x0060 (96) | ERROR: offset to field `anything` (id: 23). Invalid offset, points outside the binary. + +0x3E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `temperature` (id: 24) (Float) + +0x40 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `teetotaler` (id: 25) (Obj) + +0x42 | 64 00 | VOffset16 | 0x0064 (100) | ERROR: offset to field `charlie` (id: 26). Invalid offset, points outside the binary. + +0x28 | 00 00 | VOffset16 | 0x0000 (0) | offset to unknown field (id: 13) + +0x2A | 00 00 | VOffset16 | 0x0000 (0) | offset to unknown field (id: 14) + +0x2C | 48 00 | VOffset16 | 0x0048 (72) | offset to unknown field (id: 15) + +0x2E | 4C 00 | VOffset16 | 0x004C (76) | offset to unknown field (id: 16) + +0x30 | 50 00 | VOffset16 | 0x0050 (80) | offset to unknown field (id: 17) + +0x32 | 54 00 | VOffset16 | 0x0054 (84) | offset to unknown field (id: 18) + +0x34 | 58 00 | VOffset16 | 0x0058 (88) | offset to unknown field (id: 19) + +0x36 | 0A 00 | VOffset16 | 0x000A (10) | offset to unknown field (id: 20) + +0x38 | 5C 00 | VOffset16 | 0x005C (92) | offset to unknown field (id: 21) + +0x3A | 0B 00 | VOffset16 | 0x000B (11) | offset to unknown field (id: 22) + +0x3C | 60 00 | VOffset16 | 0x0060 (96) | offset to unknown field (id: 23) + +0x3E | 00 00 | VOffset16 | 0x0000 (0) | offset to unknown field (id: 24) + +0x40 | 00 00 | VOffset16 | 0x0000 (0) | offset to unknown field (id: 25) + +0x42 | 64 00 | VOffset16 | 0x0064 (100) | offset to unknown field (id: 26) root_table (AnnotatedBinary.Foo): - +0x44 | 3A 00 00 00 | SOffset32 | 0x0000003A (58) Loc: +0x0A | offset to vtable - +0x48 | 00 00 00 | uint8_t[3] | ... | padding - +0x4B | 01 | uint8_t | 0x01 (1) | table field `healthy` (Bool) - +0x4C | 02 | uint8_t | 0x02 (2) | table field `meal` (Byte) - +0x4D | 02 | UType8 | 0x02 (2) | table field `bar_baz_type` (UType) - +0x4E | 01 | UType8 | 0x01 (1) | table field `measurement_type` (UType) - +0x4F | 01 | UType8 | 0x01 (1) | table field `anything_type` (UType) - +0x50 | D2 04 00 00 | uint32_t | 0x000004D2 (1234) | table field `counter` (Int) - +0x54 | 28 02 00 00 | UOffset32 | 0x00000228 (552) Loc: +0x27C | ERROR: offset to field `bar`. Invalid offset, points outside the binary. - +0x58 | 01 00 00 00 | uint32_t | 0x00000001 (1) | struct field `home.floors` of 'AnnotatedBinary.Building' (Int) - +0x5C | 02 00 | ?uint8_t[2] | .. | ERROR: struct field `home.doors` of 'AnnotatedBinary.Building' (Int). Incomplete binary, expected to read 4 bytes. + +0x44 | 3A 00 00 00 | SOffset32 | 0x0000003A (58) Loc: 0x0A | offset to vtable + +0x48 | 00 00 00 | uint8_t[3] | ... | padding + +0x4B | 01 | uint8_t | 0x01 (1) | table field `healthy` (Bool) + +0x4C | 02 | uint8_t | 0x02 (2) | table field `meal` (Byte) + +0x4D | 02 | UType8 | 0x02 (2) | table field `bar_baz_type` (UType) + +0x4E | 01 | UType8 | 0x01 (1) | table field `measurement_type` (UType) + +0x4F | 01 | UType8 | 0x01 (1) | table field `anything_type` (UType) + +0x50 | D2 04 00 00 | uint32_t | 0x000004D2 (1234) | table field `counter` (Int) + +0x54 | 28 02 00 00 | UOffset32 | 0x00000228 (552) Loc: 0x27C | ERROR: offset to field `bar`. Invalid offset, points outside the binary. + +0x58 | 01 00 00 00 | uint32_t | 0x00000001 (1) | struct field `home.floors` of 'AnnotatedBinary.Building' (Int) + +0x5C | 02 00 | ?uint8_t[2] | .. | ERROR: struct field `home.doors` of 'AnnotatedBinary.Building' (Int). Incomplete binary, expected to read 4 bytes. diff --git a/tests/annotated_binary/tests/invalid_table_field_offset.afb b/tests/annotated_binary/tests/invalid_table_field_offset.afb index b1db363718..4268d02433 100644 --- a/tests/annotated_binary/tests/invalid_table_field_offset.afb +++ b/tests/annotated_binary/tests/invalid_table_field_offset.afb @@ -4,74 +4,74 @@ // Binary file: tests/invalid_table_field_offset.bin header: - +0x00 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x44 | offset to root table `AnnotatedBinary.Foo` - +0x04 | 41 4E 4E 4F | char[4] | ANNO | File Identifier + +0x00 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: 0x44 | offset to root table `AnnotatedBinary.Foo` + +0x04 | 41 4E 4E 4F | char[4] | ANNO | File Identifier padding: - +0x08 | 00 00 | uint8_t[2] | .. | padding + +0x08 | 00 00 | uint8_t[2] | .. | padding vtable (AnnotatedBinary.Foo): - +0x0A | 3A 00 | uint16_t | 0x003A (58) | size of this vtable - +0x0C | 68 00 | uint16_t | 0x0068 (104) | ERROR: size of referring table. Longer than the binary. - +0x0E | 0C 00 | VOffset16 | 0x000C (12) | offset to field `counter` (id: 0) - +0x10 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `healthy` (id: 1) - +0x12 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `level` (id: 2) (Long) - +0x14 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `meal` (id: 3) - +0x16 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `bar` (id: 4) - +0x18 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `home` (id: 5) - +0x1A | 30 00 | VOffset16 | 0x0030 (48) | offset to field `name` (id: 6) - +0x1C | 34 00 | VOffset16 | 0x0034 (52) | offset to field `bars` (id: 7) - +0x1E | 09 00 | VOffset16 | 0x0009 (9) | offset to field `bar_baz_type` (id: 8) - +0x20 | 38 00 | VOffset16 | 0x0038 (56) | offset to field `bar_baz` (id: 9) - +0x22 | 3C 00 | VOffset16 | 0x003C (60) | offset to field `accounts` (id: 10) - +0x24 | 40 00 | VOffset16 | 0x0040 (64) | offset to field `bob` (id: 11) - +0x26 | 44 00 | VOffset16 | 0x0044 (68) | offset to field `alice` (id: 12) - +0x28 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `maybe_i32` (id: 13) (Int) - +0x2A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_i32` (id: 14) (Int) - +0x2C | 48 00 | VOffset16 | 0x0048 (72) | offset to field `just_i32` (id: 15) - +0x2E | 4C 00 | VOffset16 | 0x004C (76) | offset to field `names` (id: 16) - +0x30 | 50 00 | VOffset16 | 0x0050 (80) | offset to field `points_of_interest` (id: 17) - +0x32 | 54 00 | VOffset16 | 0x0054 (84) | ERROR: offset to field `foobars_type` (id: 18). Invalid offset, points outside the binary. - +0x34 | 58 00 | VOffset16 | 0x0058 (88) | ERROR: offset to field `foobars` (id: 19). Invalid offset, points outside the binary. - +0x36 | 0A 00 | VOffset16 | 0x000A (10) | offset to field `measurement_type` (id: 20) - +0x38 | 5C 00 | VOffset16 | 0x005C (92) | ERROR: offset to field `measurement` (id: 21). Invalid offset, points outside the binary. - +0x3A | 0B 00 | VOffset16 | 0x000B (11) | offset to field `anything_type` (id: 22) - +0x3C | 60 00 | VOffset16 | 0x0060 (96) | ERROR: offset to field `anything` (id: 23). Invalid offset, points outside the binary. - +0x3E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `temperature` (id: 24) (Float) - +0x40 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `teetotaler` (id: 25) (Obj) - +0x42 | 64 00 | VOffset16 | 0x0064 (100) | ERROR: offset to field `charlie` (id: 26). Invalid offset, points outside the binary. - +0x3A | 0B 00 | VOffset16 | 0x000B (11) | offset to unknown field (id: 22) - +0x3C | 60 00 | VOffset16 | 0x0060 (96) | offset to unknown field (id: 23) - +0x3E | 00 00 | VOffset16 | 0x0000 (0) | offset to unknown field (id: 24) - +0x40 | 00 00 | VOffset16 | 0x0000 (0) | offset to unknown field (id: 25) - +0x42 | 64 00 | VOffset16 | 0x0064 (100) | offset to unknown field (id: 26) + +0x0A | 3A 00 | uint16_t | 0x003A (58) | size of this vtable + +0x0C | 68 00 | uint16_t | 0x0068 (104) | ERROR: size of referring table. Longer than the binary. + +0x0E | 0C 00 | VOffset16 | 0x000C (12) | offset to field `counter` (id: 0) + +0x10 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `healthy` (id: 1) + +0x12 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `level` (id: 2) (Long) + +0x14 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `meal` (id: 3) + +0x16 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `bar` (id: 4) + +0x18 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `home` (id: 5) + +0x1A | 30 00 | VOffset16 | 0x0030 (48) | offset to field `name` (id: 6) + +0x1C | 34 00 | VOffset16 | 0x0034 (52) | offset to field `bars` (id: 7) + +0x1E | 09 00 | VOffset16 | 0x0009 (9) | offset to field `bar_baz_type` (id: 8) + +0x20 | 38 00 | VOffset16 | 0x0038 (56) | offset to field `bar_baz` (id: 9) + +0x22 | 3C 00 | VOffset16 | 0x003C (60) | offset to field `accounts` (id: 10) + +0x24 | 40 00 | VOffset16 | 0x0040 (64) | offset to field `bob` (id: 11) + +0x26 | 44 00 | VOffset16 | 0x0044 (68) | offset to field `alice` (id: 12) + +0x28 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `maybe_i32` (id: 13) (Int) + +0x2A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_i32` (id: 14) (Int) + +0x2C | 48 00 | VOffset16 | 0x0048 (72) | offset to field `just_i32` (id: 15) + +0x2E | 4C 00 | VOffset16 | 0x004C (76) | offset to field `names` (id: 16) + +0x30 | 50 00 | VOffset16 | 0x0050 (80) | offset to field `points_of_interest` (id: 17) + +0x32 | 54 00 | VOffset16 | 0x0054 (84) | ERROR: offset to field `foobars_type` (id: 18). Invalid offset, points outside the binary. + +0x34 | 58 00 | VOffset16 | 0x0058 (88) | ERROR: offset to field `foobars` (id: 19). Invalid offset, points outside the binary. + +0x36 | 0A 00 | VOffset16 | 0x000A (10) | offset to field `measurement_type` (id: 20) + +0x38 | 5C 00 | VOffset16 | 0x005C (92) | ERROR: offset to field `measurement` (id: 21). Invalid offset, points outside the binary. + +0x3A | 0B 00 | VOffset16 | 0x000B (11) | offset to field `anything_type` (id: 22) + +0x3C | 60 00 | VOffset16 | 0x0060 (96) | ERROR: offset to field `anything` (id: 23). Invalid offset, points outside the binary. + +0x3E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `temperature` (id: 24) (Float) + +0x40 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `teetotaler` (id: 25) (Obj) + +0x42 | 64 00 | VOffset16 | 0x0064 (100) | ERROR: offset to field `charlie` (id: 26). Invalid offset, points outside the binary. + +0x3A | 0B 00 | VOffset16 | 0x000B (11) | offset to unknown field (id: 22) + +0x3C | 60 00 | VOffset16 | 0x0060 (96) | offset to unknown field (id: 23) + +0x3E | 00 00 | VOffset16 | 0x0000 (0) | offset to unknown field (id: 24) + +0x40 | 00 00 | VOffset16 | 0x0000 (0) | offset to unknown field (id: 25) + +0x42 | 64 00 | VOffset16 | 0x0064 (100) | offset to unknown field (id: 26) root_table (AnnotatedBinary.Foo): - +0x44 | 3A 00 00 00 | SOffset32 | 0x0000003A (58) Loc: +0x0A | offset to vtable - +0x48 | 00 00 00 | uint8_t[3] | ... | padding - +0x4B | 01 | uint8_t | 0x01 (1) | table field `healthy` (Bool) - +0x4C | 02 | uint8_t | 0x02 (2) | table field `meal` (Byte) - +0x4D | 02 | UType8 | 0x02 (2) | table field `bar_baz_type` (UType) - +0x4E | 01 | UType8 | 0x01 (1) | table field `measurement_type` (UType) - +0x4F | 01 | UType8 | 0x01 (1) | table field `anything_type` (UType) - +0x50 | D2 04 00 00 | uint32_t | 0x000004D2 (1234) | table field `counter` (Int) - +0x54 | 28 02 00 00 | UOffset32 | 0x00000228 (552) Loc: +0x27C | ERROR: offset to field `bar`. Invalid offset, points outside the binary. - +0x58 | 01 00 00 00 | uint32_t | 0x00000001 (1) | struct field `home.floors` of 'AnnotatedBinary.Building' (Int) - +0x5C | 02 00 00 00 | uint32_t | 0x00000002 (2) | struct field `home.doors` of 'AnnotatedBinary.Building' (Int) - +0x60 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | struct field `home.windows` of 'AnnotatedBinary.Building' (Int) - +0x64 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | array field `home.dimensions.values`[0] of 'AnnotatedBinary.Dimension' (Int) - +0x68 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | array field `home.dimensions.values`[1] of 'AnnotatedBinary.Dimension' (Int) - +0x6C | 14 00 00 00 | uint32_t | 0x00000014 (20) | array field `home.dimensions.values`[2] of 'AnnotatedBinary.Dimension' (Int) - +0x70 | 01 | uint8_t | 0x01 (1) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte) - +0x71 | 02 | uint8_t | 0x02 (2) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte) - +0x72 | 03 | uint8_t | 0x03 (3) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte) - +0x73 | 00 | uint8_t[1] | . | padding - +0x74 | C8 01 00 00 | UOffset32 | 0x000001C8 (456) Loc: +0x23C | ERROR: offset to field `name`. Invalid offset, points outside the binary. - +0x78 | 5C 01 00 00 | UOffset32 | 0x0000015C (348) Loc: +0x1D4 | ERROR: offset to field `bars`. Invalid offset, points outside the binary. - +0x7C | 50 01 00 00 | UOffset32 | 0x00000150 (336) Loc: +0x1CC | ERROR: offset to field `bar_baz`. Invalid offset, points outside the binary. - +0x80 | 34 01 00 00 | UOffset32 | 0x00000134 (308) Loc: +0x1B4 | ERROR: offset to field `accounts`. Invalid offset, points outside the binary. - +0x84 | 24 01 00 00 | UOffset32 | 0x00000124 (292) Loc: +0x1A8 | ERROR: offset to field `bob`. Invalid offset, points outside the binary. - +0x88 | 14 01 00 00 | UOffset32 | 0x00000114 (276) Loc: +0x19C | ERROR: offset to field `alice`. Invalid offset, points outside the binary. - +0x8C | 0D 00 00 00 | uint32_t | 0x0000000D (13) | table field `just_i32` (Int) - +0x90 | DC 00 00 00 | UOffset32 | 0x000000DC (220) Loc: +0x16C | ERROR: offset to field `names`. Invalid offset, points outside the binary. - +0x94 | A0 00 | ?uint8_t[2] | .. | ERROR: offset to field `points_of_interest`. Incomplete binary, expected to read 4 bytes. + +0x44 | 3A 00 00 00 | SOffset32 | 0x0000003A (58) Loc: 0x0A | offset to vtable + +0x48 | 00 00 00 | uint8_t[3] | ... | padding + +0x4B | 01 | uint8_t | 0x01 (1) | table field `healthy` (Bool) + +0x4C | 02 | uint8_t | 0x02 (2) | table field `meal` (Byte) + +0x4D | 02 | UType8 | 0x02 (2) | table field `bar_baz_type` (UType) + +0x4E | 01 | UType8 | 0x01 (1) | table field `measurement_type` (UType) + +0x4F | 01 | UType8 | 0x01 (1) | table field `anything_type` (UType) + +0x50 | D2 04 00 00 | uint32_t | 0x000004D2 (1234) | table field `counter` (Int) + +0x54 | 28 02 00 00 | UOffset32 | 0x00000228 (552) Loc: 0x27C | ERROR: offset to field `bar`. Invalid offset, points outside the binary. + +0x58 | 01 00 00 00 | uint32_t | 0x00000001 (1) | struct field `home.floors` of 'AnnotatedBinary.Building' (Int) + +0x5C | 02 00 00 00 | uint32_t | 0x00000002 (2) | struct field `home.doors` of 'AnnotatedBinary.Building' (Int) + +0x60 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | struct field `home.windows` of 'AnnotatedBinary.Building' (Int) + +0x64 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | array field `home.dimensions.values`[0] of 'AnnotatedBinary.Dimension' (Int) + +0x68 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | array field `home.dimensions.values`[1] of 'AnnotatedBinary.Dimension' (Int) + +0x6C | 14 00 00 00 | uint32_t | 0x00000014 (20) | array field `home.dimensions.values`[2] of 'AnnotatedBinary.Dimension' (Int) + +0x70 | 01 | uint8_t | 0x01 (1) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte) + +0x71 | 02 | uint8_t | 0x02 (2) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte) + +0x72 | 03 | uint8_t | 0x03 (3) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte) + +0x73 | 00 | uint8_t[1] | . | padding + +0x74 | C8 01 00 00 | UOffset32 | 0x000001C8 (456) Loc: 0x23C | ERROR: offset to field `name`. Invalid offset, points outside the binary. + +0x78 | 5C 01 00 00 | UOffset32 | 0x0000015C (348) Loc: 0x1D4 | ERROR: offset to field `bars`. Invalid offset, points outside the binary. + +0x7C | 50 01 00 00 | UOffset32 | 0x00000150 (336) Loc: 0x1CC | ERROR: offset to field `bar_baz`. Invalid offset, points outside the binary. + +0x80 | 34 01 00 00 | UOffset32 | 0x00000134 (308) Loc: 0x1B4 | ERROR: offset to field `accounts`. Invalid offset, points outside the binary. + +0x84 | 24 01 00 00 | UOffset32 | 0x00000124 (292) Loc: 0x1A8 | ERROR: offset to field `bob`. Invalid offset, points outside the binary. + +0x88 | 14 01 00 00 | UOffset32 | 0x00000114 (276) Loc: 0x19C | ERROR: offset to field `alice`. Invalid offset, points outside the binary. + +0x8C | 0D 00 00 00 | uint32_t | 0x0000000D (13) | table field `just_i32` (Int) + +0x90 | DC 00 00 00 | UOffset32 | 0x000000DC (220) Loc: 0x16C | ERROR: offset to field `names`. Invalid offset, points outside the binary. + +0x94 | A0 00 | ?uint8_t[2] | .. | ERROR: offset to field `points_of_interest`. Incomplete binary, expected to read 4 bytes. diff --git a/tests/annotated_binary/tests/invalid_table_field_size.afb b/tests/annotated_binary/tests/invalid_table_field_size.afb index f3ca3b9758..677493fda1 100644 --- a/tests/annotated_binary/tests/invalid_table_field_size.afb +++ b/tests/annotated_binary/tests/invalid_table_field_size.afb @@ -4,65 +4,65 @@ // Binary file: tests/invalid_table_field_size.bin header: - +0x00 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x44 | offset to root table `AnnotatedBinary.Foo` - +0x04 | 41 4E 4E 4F | char[4] | ANNO | File Identifier + +0x00 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: 0x44 | offset to root table `AnnotatedBinary.Foo` + +0x04 | 41 4E 4E 4F | char[4] | ANNO | File Identifier padding: - +0x08 | 00 00 | uint8_t[2] | .. | padding + +0x08 | 00 00 | uint8_t[2] | .. | padding vtable (AnnotatedBinary.Foo): - +0x0A | 3A 00 | uint16_t | 0x003A (58) | size of this vtable - +0x0C | 68 00 | uint16_t | 0x0068 (104) | ERROR: size of referring table. Longer than the binary. - +0x0E | 0C 00 | VOffset16 | 0x000C (12) | offset to field `counter` (id: 0) - +0x10 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `healthy` (id: 1) - +0x12 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `level` (id: 2) (Long) - +0x14 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `meal` (id: 3) - +0x16 | 10 00 | VOffset16 | 0x0010 (16) | ERROR: offset to field `bar` (id: 4). Invalid offset, points outside the binary. - +0x18 | 14 00 | VOffset16 | 0x0014 (20) | ERROR: offset to field `home` (id: 5). Invalid offset, points outside the binary. - +0x1A | 30 00 | VOffset16 | 0x0030 (48) | ERROR: offset to field `name` (id: 6). Invalid offset, points outside the binary. - +0x1C | 34 00 | VOffset16 | 0x0034 (52) | ERROR: offset to field `bars` (id: 7). Invalid offset, points outside the binary. - +0x1E | 09 00 | VOffset16 | 0x0009 (9) | offset to field `bar_baz_type` (id: 8) - +0x20 | 38 00 | VOffset16 | 0x0038 (56) | ERROR: offset to field `bar_baz` (id: 9). Invalid offset, points outside the binary. - +0x22 | 3C 00 | VOffset16 | 0x003C (60) | ERROR: offset to field `accounts` (id: 10). Invalid offset, points outside the binary. - +0x24 | 40 00 | VOffset16 | 0x0040 (64) | ERROR: offset to field `bob` (id: 11). Invalid offset, points outside the binary. - +0x26 | 44 00 | VOffset16 | 0x0044 (68) | ERROR: offset to field `alice` (id: 12). Invalid offset, points outside the binary. - +0x28 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `maybe_i32` (id: 13) (Int) - +0x2A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_i32` (id: 14) (Int) - +0x2C | 48 00 | VOffset16 | 0x0048 (72) | ERROR: offset to field `just_i32` (id: 15). Invalid offset, points outside the binary. - +0x2E | 4C 00 | VOffset16 | 0x004C (76) | ERROR: offset to field `names` (id: 16). Invalid offset, points outside the binary. - +0x30 | 50 00 | VOffset16 | 0x0050 (80) | ERROR: offset to field `points_of_interest` (id: 17). Invalid offset, points outside the binary. - +0x32 | 54 00 | VOffset16 | 0x0054 (84) | ERROR: offset to field `foobars_type` (id: 18). Invalid offset, points outside the binary. - +0x34 | 58 00 | VOffset16 | 0x0058 (88) | ERROR: offset to field `foobars` (id: 19). Invalid offset, points outside the binary. - +0x36 | 0A 00 | VOffset16 | 0x000A (10) | offset to field `measurement_type` (id: 20) - +0x38 | 5C 00 | VOffset16 | 0x005C (92) | ERROR: offset to field `measurement` (id: 21). Invalid offset, points outside the binary. - +0x3A | 0B 00 | VOffset16 | 0x000B (11) | offset to field `anything_type` (id: 22) - +0x3C | 60 00 | VOffset16 | 0x0060 (96) | ERROR: offset to field `anything` (id: 23). Invalid offset, points outside the binary. - +0x3E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `temperature` (id: 24) (Float) - +0x40 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `teetotaler` (id: 25) (Obj) - +0x42 | 64 00 | VOffset16 | 0x0064 (100) | ERROR: offset to field `charlie` (id: 26). Invalid offset, points outside the binary. - +0x24 | 40 00 | VOffset16 | 0x0040 (64) | offset to unknown field (id: 11) - +0x26 | 44 00 | VOffset16 | 0x0044 (68) | offset to unknown field (id: 12) - +0x28 | 00 00 | VOffset16 | 0x0000 (0) | offset to unknown field (id: 13) - +0x2A | 00 00 | VOffset16 | 0x0000 (0) | offset to unknown field (id: 14) - +0x2C | 48 00 | VOffset16 | 0x0048 (72) | offset to unknown field (id: 15) - +0x2E | 4C 00 | VOffset16 | 0x004C (76) | offset to unknown field (id: 16) - +0x30 | 50 00 | VOffset16 | 0x0050 (80) | offset to unknown field (id: 17) - +0x32 | 54 00 | VOffset16 | 0x0054 (84) | offset to unknown field (id: 18) - +0x34 | 58 00 | VOffset16 | 0x0058 (88) | offset to unknown field (id: 19) - +0x36 | 0A 00 | VOffset16 | 0x000A (10) | offset to unknown field (id: 20) - +0x38 | 5C 00 | VOffset16 | 0x005C (92) | offset to unknown field (id: 21) - +0x3A | 0B 00 | VOffset16 | 0x000B (11) | offset to unknown field (id: 22) - +0x3C | 60 00 | VOffset16 | 0x0060 (96) | offset to unknown field (id: 23) - +0x3E | 00 00 | VOffset16 | 0x0000 (0) | offset to unknown field (id: 24) - +0x40 | 00 00 | VOffset16 | 0x0000 (0) | offset to unknown field (id: 25) - +0x42 | 64 00 | VOffset16 | 0x0064 (100) | offset to unknown field (id: 26) + +0x0A | 3A 00 | uint16_t | 0x003A (58) | size of this vtable + +0x0C | 68 00 | uint16_t | 0x0068 (104) | ERROR: size of referring table. Longer than the binary. + +0x0E | 0C 00 | VOffset16 | 0x000C (12) | offset to field `counter` (id: 0) + +0x10 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `healthy` (id: 1) + +0x12 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `level` (id: 2) (Long) + +0x14 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `meal` (id: 3) + +0x16 | 10 00 | VOffset16 | 0x0010 (16) | ERROR: offset to field `bar` (id: 4). Invalid offset, points outside the binary. + +0x18 | 14 00 | VOffset16 | 0x0014 (20) | ERROR: offset to field `home` (id: 5). Invalid offset, points outside the binary. + +0x1A | 30 00 | VOffset16 | 0x0030 (48) | ERROR: offset to field `name` (id: 6). Invalid offset, points outside the binary. + +0x1C | 34 00 | VOffset16 | 0x0034 (52) | ERROR: offset to field `bars` (id: 7). Invalid offset, points outside the binary. + +0x1E | 09 00 | VOffset16 | 0x0009 (9) | offset to field `bar_baz_type` (id: 8) + +0x20 | 38 00 | VOffset16 | 0x0038 (56) | ERROR: offset to field `bar_baz` (id: 9). Invalid offset, points outside the binary. + +0x22 | 3C 00 | VOffset16 | 0x003C (60) | ERROR: offset to field `accounts` (id: 10). Invalid offset, points outside the binary. + +0x24 | 40 00 | VOffset16 | 0x0040 (64) | ERROR: offset to field `bob` (id: 11). Invalid offset, points outside the binary. + +0x26 | 44 00 | VOffset16 | 0x0044 (68) | ERROR: offset to field `alice` (id: 12). Invalid offset, points outside the binary. + +0x28 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `maybe_i32` (id: 13) (Int) + +0x2A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_i32` (id: 14) (Int) + +0x2C | 48 00 | VOffset16 | 0x0048 (72) | ERROR: offset to field `just_i32` (id: 15). Invalid offset, points outside the binary. + +0x2E | 4C 00 | VOffset16 | 0x004C (76) | ERROR: offset to field `names` (id: 16). Invalid offset, points outside the binary. + +0x30 | 50 00 | VOffset16 | 0x0050 (80) | ERROR: offset to field `points_of_interest` (id: 17). Invalid offset, points outside the binary. + +0x32 | 54 00 | VOffset16 | 0x0054 (84) | ERROR: offset to field `foobars_type` (id: 18). Invalid offset, points outside the binary. + +0x34 | 58 00 | VOffset16 | 0x0058 (88) | ERROR: offset to field `foobars` (id: 19). Invalid offset, points outside the binary. + +0x36 | 0A 00 | VOffset16 | 0x000A (10) | offset to field `measurement_type` (id: 20) + +0x38 | 5C 00 | VOffset16 | 0x005C (92) | ERROR: offset to field `measurement` (id: 21). Invalid offset, points outside the binary. + +0x3A | 0B 00 | VOffset16 | 0x000B (11) | offset to field `anything_type` (id: 22) + +0x3C | 60 00 | VOffset16 | 0x0060 (96) | ERROR: offset to field `anything` (id: 23). Invalid offset, points outside the binary. + +0x3E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `temperature` (id: 24) (Float) + +0x40 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `teetotaler` (id: 25) (Obj) + +0x42 | 64 00 | VOffset16 | 0x0064 (100) | ERROR: offset to field `charlie` (id: 26). Invalid offset, points outside the binary. + +0x24 | 40 00 | VOffset16 | 0x0040 (64) | offset to unknown field (id: 11) + +0x26 | 44 00 | VOffset16 | 0x0044 (68) | offset to unknown field (id: 12) + +0x28 | 00 00 | VOffset16 | 0x0000 (0) | offset to unknown field (id: 13) + +0x2A | 00 00 | VOffset16 | 0x0000 (0) | offset to unknown field (id: 14) + +0x2C | 48 00 | VOffset16 | 0x0048 (72) | offset to unknown field (id: 15) + +0x2E | 4C 00 | VOffset16 | 0x004C (76) | offset to unknown field (id: 16) + +0x30 | 50 00 | VOffset16 | 0x0050 (80) | offset to unknown field (id: 17) + +0x32 | 54 00 | VOffset16 | 0x0054 (84) | offset to unknown field (id: 18) + +0x34 | 58 00 | VOffset16 | 0x0058 (88) | offset to unknown field (id: 19) + +0x36 | 0A 00 | VOffset16 | 0x000A (10) | offset to unknown field (id: 20) + +0x38 | 5C 00 | VOffset16 | 0x005C (92) | offset to unknown field (id: 21) + +0x3A | 0B 00 | VOffset16 | 0x000B (11) | offset to unknown field (id: 22) + +0x3C | 60 00 | VOffset16 | 0x0060 (96) | offset to unknown field (id: 23) + +0x3E | 00 00 | VOffset16 | 0x0000 (0) | offset to unknown field (id: 24) + +0x40 | 00 00 | VOffset16 | 0x0000 (0) | offset to unknown field (id: 25) + +0x42 | 64 00 | VOffset16 | 0x0064 (100) | offset to unknown field (id: 26) root_table (AnnotatedBinary.Foo): - +0x44 | 3A 00 00 00 | SOffset32 | 0x0000003A (58) Loc: +0x0A | offset to vtable - +0x48 | 00 00 00 | uint8_t[3] | ... | padding - +0x4B | 01 | uint8_t | 0x01 (1) | table field `healthy` (Bool) - +0x4C | 02 | uint8_t | 0x02 (2) | table field `meal` (Byte) - +0x4D | 02 | UType8 | 0x02 (2) | table field `bar_baz_type` (UType) - +0x4E | 01 | UType8 | 0x01 (1) | table field `measurement_type` (UType) - +0x4F | 01 | UType8 | 0x01 (1) | table field `anything_type` (UType) - +0x50 | D2 04 | ?uint8_t[2] | .. | ERROR: table field `counter` (Int). Incomplete binary, expected to read 4 bytes. + +0x44 | 3A 00 00 00 | SOffset32 | 0x0000003A (58) Loc: 0x0A | offset to vtable + +0x48 | 00 00 00 | uint8_t[3] | ... | padding + +0x4B | 01 | uint8_t | 0x01 (1) | table field `healthy` (Bool) + +0x4C | 02 | uint8_t | 0x02 (2) | table field `meal` (Byte) + +0x4D | 02 | UType8 | 0x02 (2) | table field `bar_baz_type` (UType) + +0x4E | 01 | UType8 | 0x01 (1) | table field `measurement_type` (UType) + +0x4F | 01 | UType8 | 0x01 (1) | table field `anything_type` (UType) + +0x50 | D2 04 | ?uint8_t[2] | .. | ERROR: table field `counter` (Int). Incomplete binary, expected to read 4 bytes. diff --git a/tests/annotated_binary/tests/invalid_union_type_value.afb b/tests/annotated_binary/tests/invalid_union_type_value.afb index ce5b3659bf..0b9c3c27af 100644 --- a/tests/annotated_binary/tests/invalid_union_type_value.afb +++ b/tests/annotated_binary/tests/invalid_union_type_value.afb @@ -4,290 +4,290 @@ // Binary file: tests/invalid_union_type_value.bin header: - +0x0000 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x0044 | offset to root table `AnnotatedBinary.Foo` - +0x0004 | 41 4E 4E 4F | char[4] | ANNO | File Identifier + +0x0000 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: 0x0044 | offset to root table `AnnotatedBinary.Foo` + +0x0004 | 41 4E 4E 4F | char[4] | ANNO | File Identifier padding: - +0x0008 | 00 00 | uint8_t[2] | .. | padding + +0x0008 | 00 00 | uint8_t[2] | .. | padding vtable (AnnotatedBinary.Foo): - +0x000A | 3A 00 | uint16_t | 0x003A (58) | size of this vtable - +0x000C | 68 00 | uint16_t | 0x0068 (104) | size of referring table - +0x000E | 0C 00 | VOffset16 | 0x000C (12) | offset to field `counter` (id: 0) - +0x0010 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `healthy` (id: 1) - +0x0012 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `level` (id: 2) (Long) - +0x0014 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `meal` (id: 3) - +0x0016 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `bar` (id: 4) - +0x0018 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `home` (id: 5) - +0x001A | 30 00 | VOffset16 | 0x0030 (48) | offset to field `name` (id: 6) - +0x001C | 34 00 | VOffset16 | 0x0034 (52) | offset to field `bars` (id: 7) - +0x001E | 09 00 | VOffset16 | 0x0009 (9) | offset to field `bar_baz_type` (id: 8) - +0x0020 | 38 00 | VOffset16 | 0x0038 (56) | offset to field `bar_baz` (id: 9) - +0x0022 | 3C 00 | VOffset16 | 0x003C (60) | offset to field `accounts` (id: 10) - +0x0024 | 40 00 | VOffset16 | 0x0040 (64) | offset to field `bob` (id: 11) - +0x0026 | 44 00 | VOffset16 | 0x0044 (68) | offset to field `alice` (id: 12) - +0x0028 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `maybe_i32` (id: 13) (Int) - +0x002A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_i32` (id: 14) (Int) - +0x002C | 48 00 | VOffset16 | 0x0048 (72) | offset to field `just_i32` (id: 15) - +0x002E | 4C 00 | VOffset16 | 0x004C (76) | offset to field `names` (id: 16) - +0x0030 | 50 00 | VOffset16 | 0x0050 (80) | offset to field `points_of_interest` (id: 17) - +0x0032 | 54 00 | VOffset16 | 0x0054 (84) | offset to field `foobars_type` (id: 18) - +0x0034 | 58 00 | VOffset16 | 0x0058 (88) | offset to field `foobars` (id: 19) - +0x0036 | 0A 00 | VOffset16 | 0x000A (10) | offset to field `measurement_type` (id: 20) - +0x0038 | 5C 00 | VOffset16 | 0x005C (92) | offset to field `measurement` (id: 21) - +0x003A | 0B 00 | VOffset16 | 0x000B (11) | offset to field `anything_type` (id: 22) - +0x003C | 60 00 | VOffset16 | 0x0060 (96) | offset to field `anything` (id: 23) - +0x003E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `temperature` (id: 24) (Float) - +0x0040 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `teetotaler` (id: 25) (Obj) - +0x0042 | 64 00 | VOffset16 | 0x0064 (100) | offset to field `charlie` (id: 26) + +0x000A | 3A 00 | uint16_t | 0x003A (58) | size of this vtable + +0x000C | 68 00 | uint16_t | 0x0068 (104) | size of referring table + +0x000E | 0C 00 | VOffset16 | 0x000C (12) | offset to field `counter` (id: 0) + +0x0010 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `healthy` (id: 1) + +0x0012 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `level` (id: 2) (Long) + +0x0014 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `meal` (id: 3) + +0x0016 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `bar` (id: 4) + +0x0018 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `home` (id: 5) + +0x001A | 30 00 | VOffset16 | 0x0030 (48) | offset to field `name` (id: 6) + +0x001C | 34 00 | VOffset16 | 0x0034 (52) | offset to field `bars` (id: 7) + +0x001E | 09 00 | VOffset16 | 0x0009 (9) | offset to field `bar_baz_type` (id: 8) + +0x0020 | 38 00 | VOffset16 | 0x0038 (56) | offset to field `bar_baz` (id: 9) + +0x0022 | 3C 00 | VOffset16 | 0x003C (60) | offset to field `accounts` (id: 10) + +0x0024 | 40 00 | VOffset16 | 0x0040 (64) | offset to field `bob` (id: 11) + +0x0026 | 44 00 | VOffset16 | 0x0044 (68) | offset to field `alice` (id: 12) + +0x0028 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `maybe_i32` (id: 13) (Int) + +0x002A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_i32` (id: 14) (Int) + +0x002C | 48 00 | VOffset16 | 0x0048 (72) | offset to field `just_i32` (id: 15) + +0x002E | 4C 00 | VOffset16 | 0x004C (76) | offset to field `names` (id: 16) + +0x0030 | 50 00 | VOffset16 | 0x0050 (80) | offset to field `points_of_interest` (id: 17) + +0x0032 | 54 00 | VOffset16 | 0x0054 (84) | offset to field `foobars_type` (id: 18) + +0x0034 | 58 00 | VOffset16 | 0x0058 (88) | offset to field `foobars` (id: 19) + +0x0036 | 0A 00 | VOffset16 | 0x000A (10) | offset to field `measurement_type` (id: 20) + +0x0038 | 5C 00 | VOffset16 | 0x005C (92) | offset to field `measurement` (id: 21) + +0x003A | 0B 00 | VOffset16 | 0x000B (11) | offset to field `anything_type` (id: 22) + +0x003C | 60 00 | VOffset16 | 0x0060 (96) | offset to field `anything` (id: 23) + +0x003E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `temperature` (id: 24) (Float) + +0x0040 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `teetotaler` (id: 25) (Obj) + +0x0042 | 64 00 | VOffset16 | 0x0064 (100) | offset to field `charlie` (id: 26) root_table (AnnotatedBinary.Foo): - +0x0044 | 3A 00 00 00 | SOffset32 | 0x0000003A (58) Loc: +0x000A | offset to vtable - +0x0048 | 00 00 00 | uint8_t[3] | ... | padding - +0x004B | 01 | uint8_t | 0x01 (1) | table field `healthy` (Bool) - +0x004C | 02 | uint8_t | 0x02 (2) | table field `meal` (Byte) - +0x004D | FF | UType8 | 0xFF (255) | ERROR: table field `bar_baz_type` (UType). Invalid union type value. - +0x004E | 01 | UType8 | 0x01 (1) | table field `measurement_type` (UType) - +0x004F | 01 | UType8 | 0x01 (1) | table field `anything_type` (UType) - +0x0050 | D2 04 00 00 | uint32_t | 0x000004D2 (1234) | table field `counter` (Int) - +0x0054 | 28 02 00 00 | UOffset32 | 0x00000228 (552) Loc: +0x027C | offset to field `bar` (table) - +0x0058 | 01 00 00 00 | uint32_t | 0x00000001 (1) | struct field `home.floors` of 'AnnotatedBinary.Building' (Int) - +0x005C | 02 00 00 00 | uint32_t | 0x00000002 (2) | struct field `home.doors` of 'AnnotatedBinary.Building' (Int) - +0x0060 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | struct field `home.windows` of 'AnnotatedBinary.Building' (Int) - +0x0064 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | array field `home.dimensions.values`[0] of 'AnnotatedBinary.Dimension' (Int) - +0x0068 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | array field `home.dimensions.values`[1] of 'AnnotatedBinary.Dimension' (Int) - +0x006C | 14 00 00 00 | uint32_t | 0x00000014 (20) | array field `home.dimensions.values`[2] of 'AnnotatedBinary.Dimension' (Int) - +0x0070 | 01 | uint8_t | 0x01 (1) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte) - +0x0071 | 02 | uint8_t | 0x02 (2) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte) - +0x0072 | 03 | uint8_t | 0x03 (3) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte) - +0x0073 | 00 | uint8_t[1] | . | padding - +0x0074 | C8 01 00 00 | UOffset32 | 0x000001C8 (456) Loc: +0x023C | offset to field `name` (string) - +0x0078 | 5C 01 00 00 | UOffset32 | 0x0000015C (348) Loc: +0x01D4 | offset to field `bars` (vector) - +0x007C | 50 01 00 00 | ?uint8_t[4] | P... | WARN: nothing refers to this section. - +0x0080 | 34 01 00 00 | UOffset32 | 0x00000134 (308) Loc: +0x01B4 | offset to field `accounts` (vector) - +0x0084 | 24 01 00 00 | UOffset32 | 0x00000124 (292) Loc: +0x01A8 | offset to field `bob` (string) - +0x0088 | 14 01 00 00 | UOffset32 | 0x00000114 (276) Loc: +0x019C | offset to field `alice` (string) - +0x008C | 0D 00 00 00 | uint32_t | 0x0000000D (13) | table field `just_i32` (Int) - +0x0090 | DC 00 00 00 | UOffset32 | 0x000000DC (220) Loc: +0x016C | offset to field `names` (vector) - +0x0094 | A0 00 00 00 | UOffset32 | 0x000000A0 (160) Loc: +0x0134 | offset to field `points_of_interest` (vector) - +0x0098 | 94 00 00 00 | UOffset32 | 0x00000094 (148) Loc: +0x012C | offset to field `foobars_type` (vector) - +0x009C | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: +0x00D4 | offset to field `foobars` (vector) - +0x00A0 | 33 00 00 00 | UOffset32 | 0x00000033 (51) Loc: +0x00D3 | offset to field `measurement` (union of type `Tolerance`) - +0x00A4 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: +0x00C0 | offset to field `anything` (union of type `Bar`) - +0x00A8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x00AC | offset to field `charlie` (string) + +0x0044 | 3A 00 00 00 | SOffset32 | 0x0000003A (58) Loc: 0x000A | offset to vtable + +0x0048 | 00 00 00 | uint8_t[3] | ... | padding + +0x004B | 01 | uint8_t | 0x01 (1) | table field `healthy` (Bool) + +0x004C | 02 | uint8_t | 0x02 (2) | table field `meal` (Byte) + +0x004D | FF | UType8 | 0xFF (255) | ERROR: table field `bar_baz_type` (UType). Invalid union type value. + +0x004E | 01 | UType8 | 0x01 (1) | table field `measurement_type` (UType) + +0x004F | 01 | UType8 | 0x01 (1) | table field `anything_type` (UType) + +0x0050 | D2 04 00 00 | uint32_t | 0x000004D2 (1234) | table field `counter` (Int) + +0x0054 | 28 02 00 00 | UOffset32 | 0x00000228 (552) Loc: 0x027C | offset to field `bar` (table) + +0x0058 | 01 00 00 00 | uint32_t | 0x00000001 (1) | struct field `home.floors` of 'AnnotatedBinary.Building' (Int) + +0x005C | 02 00 00 00 | uint32_t | 0x00000002 (2) | struct field `home.doors` of 'AnnotatedBinary.Building' (Int) + +0x0060 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | struct field `home.windows` of 'AnnotatedBinary.Building' (Int) + +0x0064 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | array field `home.dimensions.values`[0] of 'AnnotatedBinary.Dimension' (Int) + +0x0068 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | array field `home.dimensions.values`[1] of 'AnnotatedBinary.Dimension' (Int) + +0x006C | 14 00 00 00 | uint32_t | 0x00000014 (20) | array field `home.dimensions.values`[2] of 'AnnotatedBinary.Dimension' (Int) + +0x0070 | 01 | uint8_t | 0x01 (1) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte) + +0x0071 | 02 | uint8_t | 0x02 (2) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte) + +0x0072 | 03 | uint8_t | 0x03 (3) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte) + +0x0073 | 00 | uint8_t[1] | . | padding + +0x0074 | C8 01 00 00 | UOffset32 | 0x000001C8 (456) Loc: 0x023C | offset to field `name` (string) + +0x0078 | 5C 01 00 00 | UOffset32 | 0x0000015C (348) Loc: 0x01D4 | offset to field `bars` (vector) + +0x007C | 50 01 00 00 | ?uint8_t[4] | P... | WARN: nothing refers to this section. + +0x0080 | 34 01 00 00 | UOffset32 | 0x00000134 (308) Loc: 0x01B4 | offset to field `accounts` (vector) + +0x0084 | 24 01 00 00 | UOffset32 | 0x00000124 (292) Loc: 0x01A8 | offset to field `bob` (string) + +0x0088 | 14 01 00 00 | UOffset32 | 0x00000114 (276) Loc: 0x019C | offset to field `alice` (string) + +0x008C | 0D 00 00 00 | uint32_t | 0x0000000D (13) | table field `just_i32` (Int) + +0x0090 | DC 00 00 00 | UOffset32 | 0x000000DC (220) Loc: 0x016C | offset to field `names` (vector) + +0x0094 | A0 00 00 00 | UOffset32 | 0x000000A0 (160) Loc: 0x0134 | offset to field `points_of_interest` (vector) + +0x0098 | 94 00 00 00 | UOffset32 | 0x00000094 (148) Loc: 0x012C | offset to field `foobars_type` (vector) + +0x009C | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: 0x00D4 | offset to field `foobars` (vector) + +0x00A0 | 33 00 00 00 | UOffset32 | 0x00000033 (51) Loc: 0x00D3 | offset to field `measurement` (union of type `Tolerance`) + +0x00A4 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: 0x00C0 | offset to field `anything` (union of type `Bar`) + +0x00A8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x00AC | offset to field `charlie` (string) string (AnnotatedBinary.Foo.charlie): - +0x00AC | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string - +0x00B0 | 61 6C 69 63 65 | char[5] | alice | string literal - +0x00B5 | 00 | char | 0x00 (0) | string terminator + +0x00AC | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string + +0x00B0 | 61 6C 69 63 65 | char[5] | alice | string literal + +0x00B5 | 00 | char | 0x00 (0) | string terminator padding: - +0x00B6 | 00 00 | uint8_t[2] | .. | padding + +0x00B6 | 00 00 | uint8_t[2] | .. | padding vtable (AnnotatedBinary.Bar): - +0x00B8 | 08 00 | uint16_t | 0x0008 (8) | size of this vtable - +0x00BA | 13 00 | uint16_t | 0x0013 (19) | size of referring table - +0x00BC | 08 00 | VOffset16 | 0x0008 (8) | offset to field `a` (id: 0) - +0x00BE | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1) + +0x00B8 | 08 00 | uint16_t | 0x0008 (8) | size of this vtable + +0x00BA | 13 00 | uint16_t | 0x0013 (19) | size of referring table + +0x00BC | 08 00 | VOffset16 | 0x0008 (8) | offset to field `a` (id: 0) + +0x00BE | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1) table (AnnotatedBinary.Bar): - +0x00C0 | 08 00 00 00 | SOffset32 | 0x00000008 (8) Loc: +0x00B8 | offset to vtable - +0x00C4 | 00 80 23 44 | float | 0x44238000 (654) | table field `b` (Float) - +0x00C8 | 00 00 00 00 00 10 74 40 | double | 0x4074100000000000 (321) | table field `a` (Double) - +0x00D0 | 00 00 00 | uint8_t[3] | ... | padding + +0x00C0 | 08 00 00 00 | SOffset32 | 0x00000008 (8) Loc: 0x00B8 | offset to vtable + +0x00C4 | 00 80 23 44 | float | 0x44238000 (654) | table field `b` (Float) + +0x00C8 | 00 00 00 00 00 10 74 40 | double | 0x4074100000000000 (321) | table field `a` (Double) + +0x00D0 | 00 00 00 | uint8_t[3] | ... | padding union (AnnotatedBinary.Tolerance.measurement): - +0x00D3 | 05 | uint8_t | 0x05 (5) | struct field `measurement.width` of 'AnnotatedBinary.Tolerance' (UByte) + +0x00D3 | 05 | uint8_t | 0x05 (5) | struct field `measurement.width` of 'AnnotatedBinary.Tolerance' (UByte) vector (AnnotatedBinary.Foo.foobars): - +0x00D4 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) - +0x00D8 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x010C | offset to union[0] (`Bar`) - +0x00DC | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: +0x0108 | offset to union[1] (`Baz`) - +0x00E0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x00E4 | offset to union[2] (`Bar`) + +0x00D4 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) + +0x00D8 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: 0x010C | offset to union[0] (`Bar`) + +0x00DC | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: 0x0108 | offset to union[1] (`Baz`) + +0x00E0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x00E4 | offset to union[2] (`Bar`) table (AnnotatedBinary.Bar): - +0x00E4 | D2 FE FF FF | SOffset32 | 0xFFFFFED2 (-302) Loc: +0x0212 | offset to vtable - +0x00E8 | 00 80 23 44 | float | 0x44238000 (654) | table field `b` (Float) - +0x00EC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x00FC | offset to field `c` (table) - +0x00F0 | 00 00 00 00 00 D8 8E 40 | double | 0x408ED80000000000 (987) | table field `a` (Double) - +0x00F8 | 00 00 00 00 | uint8_t[4] | .... | padding + +0x00E4 | D2 FE FF FF | SOffset32 | 0xFFFFFED2 (-302) Loc: 0x0212 | offset to vtable + +0x00E8 | 00 80 23 44 | float | 0x44238000 (654) | table field `b` (Float) + +0x00EC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x00FC | offset to field `c` (table) + +0x00F0 | 00 00 00 00 00 D8 8E 40 | double | 0x408ED80000000000 (987) | table field `a` (Double) + +0x00F8 | 00 00 00 00 | uint8_t[4] | .... | padding table (AnnotatedBinary.Baz): - +0x00FC | 6A FE FF FF | SOffset32 | 0xFFFFFE6A (-406) Loc: +0x0292 | offset to vtable - +0x0100 | 00 00 00 | uint8_t[3] | ... | padding - +0x0103 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte) + +0x00FC | 6A FE FF FF | SOffset32 | 0xFFFFFE6A (-406) Loc: 0x0292 | offset to vtable + +0x0100 | 00 00 00 | uint8_t[3] | ... | padding + +0x0103 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte) vtable (AnnotatedBinary.Baz): - +0x0104 | 04 00 | uint16_t | 0x0004 (4) | size of this vtable - +0x0106 | 04 00 | uint16_t | 0x0004 (4) | size of referring table + +0x0104 | 04 00 | uint16_t | 0x0004 (4) | size of this vtable + +0x0106 | 04 00 | uint16_t | 0x0004 (4) | size of referring table table (AnnotatedBinary.Baz): - +0x0108 | 04 00 00 00 | SOffset32 | 0x00000004 (4) Loc: +0x0104 | offset to vtable + +0x0108 | 04 00 00 00 | SOffset32 | 0x00000004 (4) Loc: 0x0104 | offset to vtable table (AnnotatedBinary.Bar): - +0x010C | FA FE FF FF | SOffset32 | 0xFFFFFEFA (-262) Loc: +0x0212 | offset to vtable - +0x0110 | 00 00 E4 43 | float | 0x43E40000 (456) | table field `b` (Float) - +0x0114 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x0124 | offset to field `c` (table) - +0x0118 | 00 00 00 00 00 C0 5E 40 | double | 0x405EC00000000000 (123) | table field `a` (Double) - +0x0120 | 00 00 00 00 | uint8_t[4] | .... | padding + +0x010C | FA FE FF FF | SOffset32 | 0xFFFFFEFA (-262) Loc: 0x0212 | offset to vtable + +0x0110 | 00 00 E4 43 | float | 0x43E40000 (456) | table field `b` (Float) + +0x0114 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x0124 | offset to field `c` (table) + +0x0118 | 00 00 00 00 00 C0 5E 40 | double | 0x405EC00000000000 (123) | table field `a` (Double) + +0x0120 | 00 00 00 00 | uint8_t[4] | .... | padding table (AnnotatedBinary.Baz): - +0x0124 | 92 FE FF FF | SOffset32 | 0xFFFFFE92 (-366) Loc: +0x0292 | offset to vtable - +0x0128 | 00 00 00 | uint8_t[3] | ... | padding - +0x012B | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte) + +0x0124 | 92 FE FF FF | SOffset32 | 0xFFFFFE92 (-366) Loc: 0x0292 | offset to vtable + +0x0128 | 00 00 00 | uint8_t[3] | ... | padding + +0x012B | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte) vector (AnnotatedBinary.Foo.foobars_type): - +0x012C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) - +0x0130 | 01 | UType8 | 0x01 (1) | value[0] - +0x0131 | 02 | UType8 | 0x02 (2) | value[1] - +0x0132 | 01 | UType8 | 0x01 (1) | value[2] + +0x012C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) + +0x0130 | 01 | UType8 | 0x01 (1) | value[0] + +0x0131 | 02 | UType8 | 0x02 (2) | value[1] + +0x0132 | 01 | UType8 | 0x01 (1) | value[2] vector (AnnotatedBinary.Foo.points_of_interest): - +0x0134 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) - +0x0138 | 33 33 33 33 33 A3 45 40 | double | 0x4045A33333333333 (43.275) | struct field `[0].latitude` of 'AnnotatedBinary.Location' (Double) - +0x0140 | 7E 57 04 FF 5B 87 53 C0 | double | 0xC053875BFF04577E (-78.115) | struct field `[0].longitude` of 'AnnotatedBinary.Location' (Double) - +0x0148 | 8D F0 F6 20 04 B6 42 40 | double | 0x4042B60420F6F08D (37.422) | struct field `[1].latitude` of 'AnnotatedBinary.Location' (Double) - +0x0150 | 9F 77 63 41 61 85 5E C0 | double | 0xC05E85614163779F (-122.084) | struct field `[1].longitude` of 'AnnotatedBinary.Location' (Double) - +0x0158 | 8F 35 23 83 DC 35 4B C0 | double | 0xC04B35DC8323358F (-54.4208) | struct field `[2].latitude` of 'AnnotatedBinary.Location' (Double) - +0x0160 | F6 97 DD 93 87 C5 0A 40 | double | 0x400AC58793DD97F6 (3.34645) | struct field `[2].longitude` of 'AnnotatedBinary.Location' (Double) + +0x0134 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) + +0x0138 | 33 33 33 33 33 A3 45 40 | double | 0x4045A33333333333 (43.275) | struct field `[0].latitude` of 'AnnotatedBinary.Location' (Double) + +0x0140 | 7E 57 04 FF 5B 87 53 C0 | double | 0xC053875BFF04577E (-78.115) | struct field `[0].longitude` of 'AnnotatedBinary.Location' (Double) + +0x0148 | 8D F0 F6 20 04 B6 42 40 | double | 0x4042B60420F6F08D (37.422) | struct field `[1].latitude` of 'AnnotatedBinary.Location' (Double) + +0x0150 | 9F 77 63 41 61 85 5E C0 | double | 0xC05E85614163779F (-122.084) | struct field `[1].longitude` of 'AnnotatedBinary.Location' (Double) + +0x0158 | 8F 35 23 83 DC 35 4B C0 | double | 0xC04B35DC8323358F (-54.4208) | struct field `[2].latitude` of 'AnnotatedBinary.Location' (Double) + +0x0160 | F6 97 DD 93 87 C5 0A 40 | double | 0x400AC58793DD97F6 (3.34645) | struct field `[2].longitude` of 'AnnotatedBinary.Location' (Double) padding: - +0x0168 | 00 00 00 00 | uint8_t[4] | .... | padding + +0x0168 | 00 00 00 00 | uint8_t[4] | .... | padding vector (AnnotatedBinary.Foo.names): - +0x016C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) - +0x0170 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x0190 | offset to string[0] - +0x0174 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x0188 | offset to string[1] - +0x0178 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x017C | offset to string[2] + +0x016C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) + +0x0170 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: 0x0190 | offset to string[0] + +0x0174 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: 0x0188 | offset to string[1] + +0x0178 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x017C | offset to string[2] string (AnnotatedBinary.Foo.names): - +0x017C | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string - +0x0180 | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal - +0x0187 | 00 | char | 0x00 (0) | string terminator + +0x017C | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string + +0x0180 | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal + +0x0187 | 00 | char | 0x00 (0) | string terminator string (AnnotatedBinary.Foo.names): - +0x0188 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string - +0x018C | 62 6F 62 | char[3] | bob | string literal - +0x018F | 00 | char | 0x00 (0) | string terminator + +0x0188 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string + +0x018C | 62 6F 62 | char[3] | bob | string literal + +0x018F | 00 | char | 0x00 (0) | string terminator string (AnnotatedBinary.Foo.names): - +0x0190 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string - +0x0194 | 61 6C 69 63 65 | char[5] | alice | string literal - +0x0199 | 00 | char | 0x00 (0) | string terminator + +0x0190 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string + +0x0194 | 61 6C 69 63 65 | char[5] | alice | string literal + +0x0199 | 00 | char | 0x00 (0) | string terminator padding: - +0x019A | 00 00 | uint8_t[2] | .. | padding + +0x019A | 00 00 | uint8_t[2] | .. | padding string (AnnotatedBinary.Foo.alice): - +0x019C | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string - +0x01A0 | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal - +0x01A7 | 00 | char | 0x00 (0) | string terminator + +0x019C | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string + +0x01A0 | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal + +0x01A7 | 00 | char | 0x00 (0) | string terminator string (AnnotatedBinary.Foo.bob): - +0x01A8 | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string - +0x01AC | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal - +0x01B3 | 00 | char | 0x00 (0) | string terminator + +0x01A8 | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string + +0x01AC | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal + +0x01B3 | 00 | char | 0x00 (0) | string terminator vector (AnnotatedBinary.Foo.accounts): - +0x01B4 | 09 00 00 00 | uint32_t | 0x00000009 (9) | length of vector (# items) - +0x01B8 | 09 00 | uint16_t | 0x0009 (9) | value[0] - +0x01BA | 08 00 | uint16_t | 0x0008 (8) | value[1] - +0x01BC | 07 00 | uint16_t | 0x0007 (7) | value[2] - +0x01BE | 01 00 | uint16_t | 0x0001 (1) | value[3] - +0x01C0 | 02 00 | uint16_t | 0x0002 (2) | value[4] - +0x01C2 | 03 00 | uint16_t | 0x0003 (3) | value[5] - +0x01C4 | 06 00 | uint16_t | 0x0006 (6) | value[6] - +0x01C6 | 05 00 | uint16_t | 0x0005 (5) | value[7] - +0x01C8 | 04 00 | uint16_t | 0x0004 (4) | value[8] + +0x01B4 | 09 00 00 00 | uint32_t | 0x00000009 (9) | length of vector (# items) + +0x01B8 | 09 00 | uint16_t | 0x0009 (9) | value[0] + +0x01BA | 08 00 | uint16_t | 0x0008 (8) | value[1] + +0x01BC | 07 00 | uint16_t | 0x0007 (7) | value[2] + +0x01BE | 01 00 | uint16_t | 0x0001 (1) | value[3] + +0x01C0 | 02 00 | uint16_t | 0x0002 (2) | value[4] + +0x01C2 | 03 00 | uint16_t | 0x0003 (3) | value[5] + +0x01C4 | 06 00 | uint16_t | 0x0006 (6) | value[6] + +0x01C6 | 05 00 | uint16_t | 0x0005 (5) | value[7] + +0x01C8 | 04 00 | uint16_t | 0x0004 (4) | value[8] unknown (no known references): - +0x01CA | 00 00 3A FF FF FF 00 00 | ?uint8_t[10] | ..:..... | WARN: nothing refers to this section. + +0x01CA | 00 00 3A FF FF FF 00 00 | ?uint8_t[10] | ..:..... | WARN: nothing refers to this section. +0x01D2 | 00 03 | | .. vector (AnnotatedBinary.Foo.bars): - +0x01D4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) - +0x01D8 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x021C | offset to table[0] - +0x01DC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x01EC | offset to table[1] + +0x01D4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) + +0x01D8 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: 0x021C | offset to table[0] + +0x01DC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x01EC | offset to table[1] padding: - +0x01E0 | 00 00 | uint8_t[2] | .. | padding + +0x01E0 | 00 00 | uint8_t[2] | .. | padding vtable (AnnotatedBinary.Bar): - +0x01E2 | 0A 00 | uint16_t | 0x000A (10) | size of this vtable - +0x01E4 | 1A 00 | uint16_t | 0x001A (26) | size of referring table - +0x01E6 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `a` (id: 0) - +0x01E8 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1) - +0x01EA | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2) + +0x01E2 | 0A 00 | uint16_t | 0x000A (10) | size of this vtable + +0x01E4 | 1A 00 | uint16_t | 0x001A (26) | size of referring table + +0x01E6 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `a` (id: 0) + +0x01E8 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1) + +0x01EA | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2) table (AnnotatedBinary.Bar): - +0x01EC | 0A 00 00 00 | SOffset32 | 0x0000000A (10) Loc: +0x01E2 | offset to vtable - +0x01F0 | 00 80 23 44 | float | 0x44238000 (654) | table field `b` (Float) - +0x01F4 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x020C | offset to field `c` (table) - +0x01F8 | 00 00 00 00 00 D8 8E 40 | double | 0x408ED80000000000 (987) | table field `a` (Double) - +0x0200 | 00 00 00 00 00 00 | uint8_t[6] | ...... | padding + +0x01EC | 0A 00 00 00 | SOffset32 | 0x0000000A (10) Loc: 0x01E2 | offset to vtable + +0x01F0 | 00 80 23 44 | float | 0x44238000 (654) | table field `b` (Float) + +0x01F4 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: 0x020C | offset to field `c` (table) + +0x01F8 | 00 00 00 00 00 D8 8E 40 | double | 0x408ED80000000000 (987) | table field `a` (Double) + +0x0200 | 00 00 00 00 00 00 | uint8_t[6] | ...... | padding vtable (AnnotatedBinary.Baz): - +0x0206 | 06 00 | uint16_t | 0x0006 (6) | size of this vtable - +0x0208 | 06 00 | uint16_t | 0x0006 (6) | size of referring table - +0x020A | 05 00 | VOffset16 | 0x0005 (5) | offset to field `meal` (id: 0) + +0x0206 | 06 00 | uint16_t | 0x0006 (6) | size of this vtable + +0x0208 | 06 00 | uint16_t | 0x0006 (6) | size of referring table + +0x020A | 05 00 | VOffset16 | 0x0005 (5) | offset to field `meal` (id: 0) table (AnnotatedBinary.Baz): - +0x020C | 06 00 00 00 | SOffset32 | 0x00000006 (6) Loc: +0x0206 | offset to vtable - +0x0210 | 00 | uint8_t[1] | . | padding - +0x0211 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte) + +0x020C | 06 00 00 00 | SOffset32 | 0x00000006 (6) Loc: 0x0206 | offset to vtable + +0x0210 | 00 | uint8_t[1] | . | padding + +0x0211 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte) vtable (AnnotatedBinary.Bar): - +0x0212 | 0A 00 | uint16_t | 0x000A (10) | size of this vtable - +0x0214 | 18 00 | uint16_t | 0x0018 (24) | size of referring table - +0x0216 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `a` (id: 0) - +0x0218 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1) - +0x021A | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2) + +0x0212 | 0A 00 | uint16_t | 0x000A (10) | size of this vtable + +0x0214 | 18 00 | uint16_t | 0x0018 (24) | size of referring table + +0x0216 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `a` (id: 0) + +0x0218 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1) + +0x021A | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2) table (AnnotatedBinary.Bar): - +0x021C | 0A 00 00 00 | SOffset32 | 0x0000000A (10) Loc: +0x0212 | offset to vtable - +0x0220 | 00 00 E4 43 | float | 0x43E40000 (456) | table field `b` (Float) - +0x0224 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x0234 | offset to field `c` (table) - +0x0228 | 00 00 00 00 00 C0 5E 40 | double | 0x405EC00000000000 (123) | table field `a` (Double) - +0x0230 | 00 00 00 00 | uint8_t[4] | .... | padding + +0x021C | 0A 00 00 00 | SOffset32 | 0x0000000A (10) Loc: 0x0212 | offset to vtable + +0x0220 | 00 00 E4 43 | float | 0x43E40000 (456) | table field `b` (Float) + +0x0224 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x0234 | offset to field `c` (table) + +0x0228 | 00 00 00 00 00 C0 5E 40 | double | 0x405EC00000000000 (123) | table field `a` (Double) + +0x0230 | 00 00 00 00 | uint8_t[4] | .... | padding table (AnnotatedBinary.Baz): - +0x0234 | A2 FF FF FF | SOffset32 | 0xFFFFFFA2 (-94) Loc: +0x0292 | offset to vtable - +0x0238 | 00 00 00 | uint8_t[3] | ... | padding - +0x023B | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte) + +0x0234 | A2 FF FF FF | SOffset32 | 0xFFFFFFA2 (-94) Loc: 0x0292 | offset to vtable + +0x0238 | 00 00 00 | uint8_t[3] | ... | padding + +0x023B | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte) string (AnnotatedBinary.Foo.name): - +0x023C | 2F 00 00 00 | uint32_t | 0x0000002F (47) | length of string - +0x0240 | 54 68 69 73 20 69 73 20 | char[47] | This is | string literal + +0x023C | 2F 00 00 00 | uint32_t | 0x0000002F (47) | length of string + +0x0240 | 54 68 69 73 20 69 73 20 | char[47] | This is | string literal +0x0248 | 61 20 6C 6F 6E 67 20 73 | | a long s +0x0250 | 74 72 69 6E 67 20 74 6F | | tring to +0x0258 | 20 73 68 6F 77 20 68 6F | | show ho +0x0260 | 77 20 69 74 20 62 72 65 | | w it bre +0x0268 | 61 6B 73 20 75 70 2E | | aks up. - +0x026F | 00 | char | 0x00 (0) | string terminator + +0x026F | 00 | char | 0x00 (0) | string terminator padding: - +0x0270 | 00 00 | uint8_t[2] | .. | padding + +0x0270 | 00 00 | uint8_t[2] | .. | padding vtable (AnnotatedBinary.Bar): - +0x0272 | 0A 00 | uint16_t | 0x000A (10) | size of this vtable - +0x0274 | 16 00 | uint16_t | 0x0016 (22) | size of referring table - +0x0276 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `a` (id: 0) - +0x0278 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1) - +0x027A | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2) + +0x0272 | 0A 00 | uint16_t | 0x000A (10) | size of this vtable + +0x0274 | 16 00 | uint16_t | 0x0016 (22) | size of referring table + +0x0276 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `a` (id: 0) + +0x0278 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1) + +0x027A | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2) table (AnnotatedBinary.Bar): - +0x027C | 0A 00 00 00 | SOffset32 | 0x0000000A (10) Loc: +0x0272 | offset to vtable - +0x0280 | 65 20 71 49 | float | 0x49712065 (987654) | table field `b` (Float) - +0x0284 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x0298 | offset to field `c` (table) - +0x0288 | C9 76 BE 9F 0C 24 FE 40 | double | 0x40FE240C9FBE76C9 (123457) | table field `a` (Double) - +0x0290 | 00 00 | uint8_t[2] | .. | padding + +0x027C | 0A 00 00 00 | SOffset32 | 0x0000000A (10) Loc: 0x0272 | offset to vtable + +0x0280 | 65 20 71 49 | float | 0x49712065 (987654) | table field `b` (Float) + +0x0284 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: 0x0298 | offset to field `c` (table) + +0x0288 | C9 76 BE 9F 0C 24 FE 40 | double | 0x40FE240C9FBE76C9 (123457) | table field `a` (Double) + +0x0290 | 00 00 | uint8_t[2] | .. | padding vtable (AnnotatedBinary.Baz): - +0x0292 | 06 00 | uint16_t | 0x0006 (6) | size of this vtable - +0x0294 | 08 00 | uint16_t | 0x0008 (8) | size of referring table - +0x0296 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `meal` (id: 0) + +0x0292 | 06 00 | uint16_t | 0x0006 (6) | size of this vtable + +0x0294 | 08 00 | uint16_t | 0x0008 (8) | size of referring table + +0x0296 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `meal` (id: 0) table (AnnotatedBinary.Baz): - +0x0298 | 06 00 00 00 | SOffset32 | 0x00000006 (6) Loc: +0x0292 | offset to vtable - +0x029C | 00 00 00 | uint8_t[3] | ... | padding - +0x029F | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte) + +0x0298 | 06 00 00 00 | SOffset32 | 0x00000006 (6) Loc: 0x0292 | offset to vtable + +0x029C | 00 00 00 | uint8_t[3] | ... | padding + +0x029F | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte) diff --git a/tests/annotated_binary/tests/invalid_vector_length_cut_short.afb b/tests/annotated_binary/tests/invalid_vector_length_cut_short.afb index 7b31ffdb88..fc8656b749 100644 --- a/tests/annotated_binary/tests/invalid_vector_length_cut_short.afb +++ b/tests/annotated_binary/tests/invalid_vector_length_cut_short.afb @@ -4,137 +4,137 @@ // Binary file: tests/invalid_vector_length_cut_short.bin header: - +0x0000 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x0044 | offset to root table `AnnotatedBinary.Foo` - +0x0004 | 41 4E 4E 4F | char[4] | ANNO | File Identifier + +0x0000 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: 0x0044 | offset to root table `AnnotatedBinary.Foo` + +0x0004 | 41 4E 4E 4F | char[4] | ANNO | File Identifier padding: - +0x0008 | 00 00 | uint8_t[2] | .. | padding + +0x0008 | 00 00 | uint8_t[2] | .. | padding vtable (AnnotatedBinary.Foo): - +0x000A | 3A 00 | uint16_t | 0x003A (58) | size of this vtable - +0x000C | 68 00 | uint16_t | 0x0068 (104) | size of referring table - +0x000E | 0C 00 | VOffset16 | 0x000C (12) | offset to field `counter` (id: 0) - +0x0010 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `healthy` (id: 1) - +0x0012 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `level` (id: 2) (Long) - +0x0014 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `meal` (id: 3) - +0x0016 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `bar` (id: 4) - +0x0018 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `home` (id: 5) - +0x001A | 30 00 | VOffset16 | 0x0030 (48) | offset to field `name` (id: 6) - +0x001C | 34 00 | VOffset16 | 0x0034 (52) | offset to field `bars` (id: 7) - +0x001E | 09 00 | VOffset16 | 0x0009 (9) | offset to field `bar_baz_type` (id: 8) - +0x0020 | 38 00 | VOffset16 | 0x0038 (56) | offset to field `bar_baz` (id: 9) - +0x0022 | 3C 00 | VOffset16 | 0x003C (60) | offset to field `accounts` (id: 10) - +0x0024 | 40 00 | VOffset16 | 0x0040 (64) | offset to field `bob` (id: 11) - +0x0026 | 44 00 | VOffset16 | 0x0044 (68) | offset to field `alice` (id: 12) - +0x0028 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `maybe_i32` (id: 13) (Int) - +0x002A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_i32` (id: 14) (Int) - +0x002C | 48 00 | VOffset16 | 0x0048 (72) | offset to field `just_i32` (id: 15) - +0x002E | 4C 00 | VOffset16 | 0x004C (76) | offset to field `names` (id: 16) - +0x0030 | 50 00 | VOffset16 | 0x0050 (80) | offset to field `points_of_interest` (id: 17) - +0x0032 | 54 00 | VOffset16 | 0x0054 (84) | offset to field `foobars_type` (id: 18) - +0x0034 | 58 00 | VOffset16 | 0x0058 (88) | offset to field `foobars` (id: 19) - +0x0036 | 0A 00 | VOffset16 | 0x000A (10) | offset to field `measurement_type` (id: 20) - +0x0038 | 5C 00 | VOffset16 | 0x005C (92) | offset to field `measurement` (id: 21) - +0x003A | 0B 00 | VOffset16 | 0x000B (11) | offset to field `anything_type` (id: 22) - +0x003C | 60 00 | VOffset16 | 0x0060 (96) | offset to field `anything` (id: 23) - +0x003E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `temperature` (id: 24) (Float) - +0x0040 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `teetotaler` (id: 25) (Obj) - +0x0042 | 64 00 | VOffset16 | 0x0064 (100) | offset to field `charlie` (id: 26) + +0x000A | 3A 00 | uint16_t | 0x003A (58) | size of this vtable + +0x000C | 68 00 | uint16_t | 0x0068 (104) | size of referring table + +0x000E | 0C 00 | VOffset16 | 0x000C (12) | offset to field `counter` (id: 0) + +0x0010 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `healthy` (id: 1) + +0x0012 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `level` (id: 2) (Long) + +0x0014 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `meal` (id: 3) + +0x0016 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `bar` (id: 4) + +0x0018 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `home` (id: 5) + +0x001A | 30 00 | VOffset16 | 0x0030 (48) | offset to field `name` (id: 6) + +0x001C | 34 00 | VOffset16 | 0x0034 (52) | offset to field `bars` (id: 7) + +0x001E | 09 00 | VOffset16 | 0x0009 (9) | offset to field `bar_baz_type` (id: 8) + +0x0020 | 38 00 | VOffset16 | 0x0038 (56) | offset to field `bar_baz` (id: 9) + +0x0022 | 3C 00 | VOffset16 | 0x003C (60) | offset to field `accounts` (id: 10) + +0x0024 | 40 00 | VOffset16 | 0x0040 (64) | offset to field `bob` (id: 11) + +0x0026 | 44 00 | VOffset16 | 0x0044 (68) | offset to field `alice` (id: 12) + +0x0028 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `maybe_i32` (id: 13) (Int) + +0x002A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_i32` (id: 14) (Int) + +0x002C | 48 00 | VOffset16 | 0x0048 (72) | offset to field `just_i32` (id: 15) + +0x002E | 4C 00 | VOffset16 | 0x004C (76) | offset to field `names` (id: 16) + +0x0030 | 50 00 | VOffset16 | 0x0050 (80) | offset to field `points_of_interest` (id: 17) + +0x0032 | 54 00 | VOffset16 | 0x0054 (84) | offset to field `foobars_type` (id: 18) + +0x0034 | 58 00 | VOffset16 | 0x0058 (88) | offset to field `foobars` (id: 19) + +0x0036 | 0A 00 | VOffset16 | 0x000A (10) | offset to field `measurement_type` (id: 20) + +0x0038 | 5C 00 | VOffset16 | 0x005C (92) | offset to field `measurement` (id: 21) + +0x003A | 0B 00 | VOffset16 | 0x000B (11) | offset to field `anything_type` (id: 22) + +0x003C | 60 00 | VOffset16 | 0x0060 (96) | offset to field `anything` (id: 23) + +0x003E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `temperature` (id: 24) (Float) + +0x0040 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `teetotaler` (id: 25) (Obj) + +0x0042 | 64 00 | VOffset16 | 0x0064 (100) | offset to field `charlie` (id: 26) root_table (AnnotatedBinary.Foo): - +0x0044 | 3A 00 00 00 | SOffset32 | 0x0000003A (58) Loc: +0x000A | offset to vtable - +0x0048 | 00 00 00 | uint8_t[3] | ... | padding - +0x004B | 01 | uint8_t | 0x01 (1) | table field `healthy` (Bool) - +0x004C | 02 | uint8_t | 0x02 (2) | table field `meal` (Byte) - +0x004D | 02 | UType8 | 0x02 (2) | table field `bar_baz_type` (UType) - +0x004E | 01 | UType8 | 0x01 (1) | table field `measurement_type` (UType) - +0x004F | 01 | UType8 | 0x01 (1) | table field `anything_type` (UType) - +0x0050 | D2 04 00 00 | uint32_t | 0x000004D2 (1234) | table field `counter` (Int) - +0x0054 | 28 02 00 00 | UOffset32 | 0x00000228 (552) Loc: +0x027C | ERROR: offset to field `bar`. Invalid offset, points outside the binary. - +0x0058 | 01 00 00 00 | uint32_t | 0x00000001 (1) | struct field `home.floors` of 'AnnotatedBinary.Building' (Int) - +0x005C | 02 00 00 00 | uint32_t | 0x00000002 (2) | struct field `home.doors` of 'AnnotatedBinary.Building' (Int) - +0x0060 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | struct field `home.windows` of 'AnnotatedBinary.Building' (Int) - +0x0064 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | array field `home.dimensions.values`[0] of 'AnnotatedBinary.Dimension' (Int) - +0x0068 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | array field `home.dimensions.values`[1] of 'AnnotatedBinary.Dimension' (Int) - +0x006C | 14 00 00 00 | uint32_t | 0x00000014 (20) | array field `home.dimensions.values`[2] of 'AnnotatedBinary.Dimension' (Int) - +0x0070 | 01 | uint8_t | 0x01 (1) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte) - +0x0071 | 02 | uint8_t | 0x02 (2) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte) - +0x0072 | 03 | uint8_t | 0x03 (3) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte) - +0x0073 | 00 | uint8_t[1] | . | padding - +0x0074 | C8 01 00 00 | UOffset32 | 0x000001C8 (456) Loc: +0x023C | ERROR: offset to field `name`. Invalid offset, points outside the binary. - +0x0078 | 5C 01 00 00 | UOffset32 | 0x0000015C (348) Loc: +0x01D4 | ERROR: offset to field `bars`. Invalid offset, points outside the binary. - +0x007C | 50 01 00 00 | UOffset32 | 0x00000150 (336) Loc: +0x01CC | ERROR: offset to field `bar_baz`. Invalid offset, points outside the binary. - +0x0080 | 34 01 00 00 | UOffset32 | 0x00000134 (308) Loc: +0x01B4 | ERROR: offset to field `accounts`. Invalid offset, points outside the binary. - +0x0084 | 24 01 00 00 | UOffset32 | 0x00000124 (292) Loc: +0x01A8 | ERROR: offset to field `bob`. Invalid offset, points outside the binary. - +0x0088 | 14 01 00 00 | UOffset32 | 0x00000114 (276) Loc: +0x019C | ERROR: offset to field `alice`. Invalid offset, points outside the binary. - +0x008C | 0D 00 00 00 | uint32_t | 0x0000000D (13) | table field `just_i32` (Int) - +0x0090 | DC 00 00 00 | UOffset32 | 0x000000DC (220) Loc: +0x016C | ERROR: offset to field `names`. Invalid offset, points outside the binary. - +0x0094 | A0 00 00 00 | UOffset32 | 0x000000A0 (160) Loc: +0x0134 | offset to field `points_of_interest` (vector) - +0x0098 | 94 00 00 00 | UOffset32 | 0x00000094 (148) Loc: +0x012C | offset to field `foobars_type` (vector) - +0x009C | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: +0x00D4 | offset to field `foobars` (vector) - +0x00A0 | 33 00 00 00 | UOffset32 | 0x00000033 (51) Loc: +0x00D3 | offset to field `measurement` (union of type `Tolerance`) - +0x00A4 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: +0x00C0 | offset to field `anything` (union of type `Bar`) - +0x00A8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x00AC | offset to field `charlie` (string) + +0x0044 | 3A 00 00 00 | SOffset32 | 0x0000003A (58) Loc: 0x000A | offset to vtable + +0x0048 | 00 00 00 | uint8_t[3] | ... | padding + +0x004B | 01 | uint8_t | 0x01 (1) | table field `healthy` (Bool) + +0x004C | 02 | uint8_t | 0x02 (2) | table field `meal` (Byte) + +0x004D | 02 | UType8 | 0x02 (2) | table field `bar_baz_type` (UType) + +0x004E | 01 | UType8 | 0x01 (1) | table field `measurement_type` (UType) + +0x004F | 01 | UType8 | 0x01 (1) | table field `anything_type` (UType) + +0x0050 | D2 04 00 00 | uint32_t | 0x000004D2 (1234) | table field `counter` (Int) + +0x0054 | 28 02 00 00 | UOffset32 | 0x00000228 (552) Loc: 0x027C | ERROR: offset to field `bar`. Invalid offset, points outside the binary. + +0x0058 | 01 00 00 00 | uint32_t | 0x00000001 (1) | struct field `home.floors` of 'AnnotatedBinary.Building' (Int) + +0x005C | 02 00 00 00 | uint32_t | 0x00000002 (2) | struct field `home.doors` of 'AnnotatedBinary.Building' (Int) + +0x0060 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | struct field `home.windows` of 'AnnotatedBinary.Building' (Int) + +0x0064 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | array field `home.dimensions.values`[0] of 'AnnotatedBinary.Dimension' (Int) + +0x0068 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | array field `home.dimensions.values`[1] of 'AnnotatedBinary.Dimension' (Int) + +0x006C | 14 00 00 00 | uint32_t | 0x00000014 (20) | array field `home.dimensions.values`[2] of 'AnnotatedBinary.Dimension' (Int) + +0x0070 | 01 | uint8_t | 0x01 (1) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte) + +0x0071 | 02 | uint8_t | 0x02 (2) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte) + +0x0072 | 03 | uint8_t | 0x03 (3) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte) + +0x0073 | 00 | uint8_t[1] | . | padding + +0x0074 | C8 01 00 00 | UOffset32 | 0x000001C8 (456) Loc: 0x023C | ERROR: offset to field `name`. Invalid offset, points outside the binary. + +0x0078 | 5C 01 00 00 | UOffset32 | 0x0000015C (348) Loc: 0x01D4 | ERROR: offset to field `bars`. Invalid offset, points outside the binary. + +0x007C | 50 01 00 00 | UOffset32 | 0x00000150 (336) Loc: 0x01CC | ERROR: offset to field `bar_baz`. Invalid offset, points outside the binary. + +0x0080 | 34 01 00 00 | UOffset32 | 0x00000134 (308) Loc: 0x01B4 | ERROR: offset to field `accounts`. Invalid offset, points outside the binary. + +0x0084 | 24 01 00 00 | UOffset32 | 0x00000124 (292) Loc: 0x01A8 | ERROR: offset to field `bob`. Invalid offset, points outside the binary. + +0x0088 | 14 01 00 00 | UOffset32 | 0x00000114 (276) Loc: 0x019C | ERROR: offset to field `alice`. Invalid offset, points outside the binary. + +0x008C | 0D 00 00 00 | uint32_t | 0x0000000D (13) | table field `just_i32` (Int) + +0x0090 | DC 00 00 00 | UOffset32 | 0x000000DC (220) Loc: 0x016C | ERROR: offset to field `names`. Invalid offset, points outside the binary. + +0x0094 | A0 00 00 00 | UOffset32 | 0x000000A0 (160) Loc: 0x0134 | offset to field `points_of_interest` (vector) + +0x0098 | 94 00 00 00 | UOffset32 | 0x00000094 (148) Loc: 0x012C | offset to field `foobars_type` (vector) + +0x009C | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: 0x00D4 | offset to field `foobars` (vector) + +0x00A0 | 33 00 00 00 | UOffset32 | 0x00000033 (51) Loc: 0x00D3 | offset to field `measurement` (union of type `Tolerance`) + +0x00A4 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: 0x00C0 | offset to field `anything` (union of type `Bar`) + +0x00A8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x00AC | offset to field `charlie` (string) string (AnnotatedBinary.Foo.charlie): - +0x00AC | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string - +0x00B0 | 61 6C 69 63 65 | char[5] | alice | string literal - +0x00B5 | 00 | char | 0x00 (0) | string terminator + +0x00AC | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string + +0x00B0 | 61 6C 69 63 65 | char[5] | alice | string literal + +0x00B5 | 00 | char | 0x00 (0) | string terminator padding: - +0x00B6 | 00 00 | uint8_t[2] | .. | padding + +0x00B6 | 00 00 | uint8_t[2] | .. | padding vtable (AnnotatedBinary.Bar): - +0x00B8 | 08 00 | uint16_t | 0x0008 (8) | size of this vtable - +0x00BA | 13 00 | uint16_t | 0x0013 (19) | size of referring table - +0x00BC | 08 00 | VOffset16 | 0x0008 (8) | offset to field `a` (id: 0) - +0x00BE | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1) + +0x00B8 | 08 00 | uint16_t | 0x0008 (8) | size of this vtable + +0x00BA | 13 00 | uint16_t | 0x0013 (19) | size of referring table + +0x00BC | 08 00 | VOffset16 | 0x0008 (8) | offset to field `a` (id: 0) + +0x00BE | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1) table (AnnotatedBinary.Bar): - +0x00C0 | 08 00 00 00 | SOffset32 | 0x00000008 (8) Loc: +0x00B8 | offset to vtable - +0x00C4 | 00 80 23 44 | float | 0x44238000 (654) | table field `b` (Float) - +0x00C8 | 00 00 00 00 00 10 74 40 | double | 0x4074100000000000 (321) | table field `a` (Double) - +0x00D0 | 00 00 00 | uint8_t[3] | ... | padding + +0x00C0 | 08 00 00 00 | SOffset32 | 0x00000008 (8) Loc: 0x00B8 | offset to vtable + +0x00C4 | 00 80 23 44 | float | 0x44238000 (654) | table field `b` (Float) + +0x00C8 | 00 00 00 00 00 10 74 40 | double | 0x4074100000000000 (321) | table field `a` (Double) + +0x00D0 | 00 00 00 | uint8_t[3] | ... | padding union (AnnotatedBinary.Tolerance.measurement): - +0x00D3 | 05 | uint8_t | 0x05 (5) | struct field `measurement.width` of 'AnnotatedBinary.Tolerance' (UByte) + +0x00D3 | 05 | uint8_t | 0x05 (5) | struct field `measurement.width` of 'AnnotatedBinary.Tolerance' (UByte) vector (AnnotatedBinary.Foo.foobars): - +0x00D4 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) - +0x00D8 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x010C | offset to union[0] (`Bar`) - +0x00DC | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: +0x0108 | offset to union[1] (`Baz`) - +0x00E0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x00E4 | offset to union[2] (`Bar`) + +0x00D4 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) + +0x00D8 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: 0x010C | offset to union[0] (`Bar`) + +0x00DC | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: 0x0108 | offset to union[1] (`Baz`) + +0x00E0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x00E4 | offset to union[2] (`Bar`) table (AnnotatedBinary.Bar): - +0x00E4 | D2 FE FF FF | SOffset32 | 0xFFFFFED2 (-302) Loc: +0x0212 | ERROR: offset to vtable. Invalid offset, points outside the binary. + +0x00E4 | D2 FE FF FF | SOffset32 | 0xFFFFFED2 (-302) Loc: 0x0212 | ERROR: offset to vtable. Invalid offset, points outside the binary. unknown (no known references): - +0x00E8 | 00 80 23 44 10 00 00 00 | ?uint8_t[28] | ..#D.... | WARN: nothing refers to this section. + +0x00E8 | 00 80 23 44 10 00 00 00 | ?uint8_t[28] | ..#D.... | WARN: nothing refers to this section. +0x00F0 | 00 00 00 00 00 D8 8E 40 | | .......@ +0x00F8 | 00 00 00 00 6A FE FF FF | | ....j... +0x0100 | 00 00 00 03 | | .... vtable (AnnotatedBinary.Baz): - +0x0104 | 04 00 | uint16_t | 0x0004 (4) | size of this vtable - +0x0106 | 04 00 | uint16_t | 0x0004 (4) | size of referring table + +0x0104 | 04 00 | uint16_t | 0x0004 (4) | size of this vtable + +0x0106 | 04 00 | uint16_t | 0x0004 (4) | size of referring table table (AnnotatedBinary.Baz): - +0x0108 | 04 00 00 00 | SOffset32 | 0x00000004 (4) Loc: +0x0104 | offset to vtable + +0x0108 | 04 00 00 00 | SOffset32 | 0x00000004 (4) Loc: 0x0104 | offset to vtable table (AnnotatedBinary.Bar): - +0x010C | FA FE FF FF | SOffset32 | 0xFFFFFEFA (-262) Loc: +0x0212 | ERROR: offset to vtable. Invalid offset, points outside the binary. + +0x010C | FA FE FF FF | SOffset32 | 0xFFFFFEFA (-262) Loc: 0x0212 | ERROR: offset to vtable. Invalid offset, points outside the binary. unknown (no known references): - +0x0110 | 00 00 E4 43 10 00 00 00 | ?uint8_t[28] | ...C.... | WARN: nothing refers to this section. + +0x0110 | 00 00 E4 43 10 00 00 00 | ?uint8_t[28] | ...C.... | WARN: nothing refers to this section. +0x0118 | 00 00 00 00 00 C0 5E 40 | | ......^@ +0x0120 | 00 00 00 00 92 FE FF FF | | ........ +0x0128 | 00 00 00 01 | | .... vector (AnnotatedBinary.Foo.foobars_type): - +0x012C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) - +0x0130 | 01 | UType8 | 0x01 (1) | value[0] - +0x0131 | 02 | UType8 | 0x02 (2) | value[1] - +0x0132 | 01 | UType8 | 0x01 (1) | value[2] + +0x012C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) + +0x0130 | 01 | UType8 | 0x01 (1) | value[0] + +0x0131 | 02 | UType8 | 0x02 (2) | value[1] + +0x0132 | 01 | UType8 | 0x01 (1) | value[2] vector (AnnotatedBinary.Foo.points_of_interest): - +0x0134 | 03 00 | ?uint8_t[2] | .. | ERROR: length of vector (# items). Incomplete binary, expected to read 4 bytes. + +0x0134 | 03 00 | ?uint8_t[2] | .. | ERROR: length of vector (# items). Incomplete binary, expected to read 4 bytes. diff --git a/tests/annotated_binary/tests/invalid_vector_scalars_cut_short.afb b/tests/annotated_binary/tests/invalid_vector_scalars_cut_short.afb index ccb4aaa50d..a7640d5c80 100644 --- a/tests/annotated_binary/tests/invalid_vector_scalars_cut_short.afb +++ b/tests/annotated_binary/tests/invalid_vector_scalars_cut_short.afb @@ -4,187 +4,187 @@ // Binary file: tests/invalid_vector_scalars_cut_short.bin header: - +0x0000 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x0044 | offset to root table `AnnotatedBinary.Foo` - +0x0004 | 41 4E 4E 4F | char[4] | ANNO | File Identifier + +0x0000 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: 0x0044 | offset to root table `AnnotatedBinary.Foo` + +0x0004 | 41 4E 4E 4F | char[4] | ANNO | File Identifier padding: - +0x0008 | 00 00 | uint8_t[2] | .. | padding + +0x0008 | 00 00 | uint8_t[2] | .. | padding vtable (AnnotatedBinary.Foo): - +0x000A | 3A 00 | uint16_t | 0x003A (58) | size of this vtable - +0x000C | 68 00 | uint16_t | 0x0068 (104) | size of referring table - +0x000E | 0C 00 | VOffset16 | 0x000C (12) | offset to field `counter` (id: 0) - +0x0010 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `healthy` (id: 1) - +0x0012 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `level` (id: 2) (Long) - +0x0014 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `meal` (id: 3) - +0x0016 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `bar` (id: 4) - +0x0018 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `home` (id: 5) - +0x001A | 30 00 | VOffset16 | 0x0030 (48) | offset to field `name` (id: 6) - +0x001C | 34 00 | VOffset16 | 0x0034 (52) | offset to field `bars` (id: 7) - +0x001E | 09 00 | VOffset16 | 0x0009 (9) | offset to field `bar_baz_type` (id: 8) - +0x0020 | 38 00 | VOffset16 | 0x0038 (56) | offset to field `bar_baz` (id: 9) - +0x0022 | 3C 00 | VOffset16 | 0x003C (60) | offset to field `accounts` (id: 10) - +0x0024 | 40 00 | VOffset16 | 0x0040 (64) | offset to field `bob` (id: 11) - +0x0026 | 44 00 | VOffset16 | 0x0044 (68) | offset to field `alice` (id: 12) - +0x0028 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `maybe_i32` (id: 13) (Int) - +0x002A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_i32` (id: 14) (Int) - +0x002C | 48 00 | VOffset16 | 0x0048 (72) | offset to field `just_i32` (id: 15) - +0x002E | 4C 00 | VOffset16 | 0x004C (76) | offset to field `names` (id: 16) - +0x0030 | 50 00 | VOffset16 | 0x0050 (80) | offset to field `points_of_interest` (id: 17) - +0x0032 | 54 00 | VOffset16 | 0x0054 (84) | offset to field `foobars_type` (id: 18) - +0x0034 | 58 00 | VOffset16 | 0x0058 (88) | offset to field `foobars` (id: 19) - +0x0036 | 0A 00 | VOffset16 | 0x000A (10) | offset to field `measurement_type` (id: 20) - +0x0038 | 5C 00 | VOffset16 | 0x005C (92) | offset to field `measurement` (id: 21) - +0x003A | 0B 00 | VOffset16 | 0x000B (11) | offset to field `anything_type` (id: 22) - +0x003C | 60 00 | VOffset16 | 0x0060 (96) | offset to field `anything` (id: 23) - +0x003E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `temperature` (id: 24) (Float) - +0x0040 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `teetotaler` (id: 25) (Obj) - +0x0042 | 64 00 | VOffset16 | 0x0064 (100) | offset to field `charlie` (id: 26) + +0x000A | 3A 00 | uint16_t | 0x003A (58) | size of this vtable + +0x000C | 68 00 | uint16_t | 0x0068 (104) | size of referring table + +0x000E | 0C 00 | VOffset16 | 0x000C (12) | offset to field `counter` (id: 0) + +0x0010 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `healthy` (id: 1) + +0x0012 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `level` (id: 2) (Long) + +0x0014 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `meal` (id: 3) + +0x0016 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `bar` (id: 4) + +0x0018 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `home` (id: 5) + +0x001A | 30 00 | VOffset16 | 0x0030 (48) | offset to field `name` (id: 6) + +0x001C | 34 00 | VOffset16 | 0x0034 (52) | offset to field `bars` (id: 7) + +0x001E | 09 00 | VOffset16 | 0x0009 (9) | offset to field `bar_baz_type` (id: 8) + +0x0020 | 38 00 | VOffset16 | 0x0038 (56) | offset to field `bar_baz` (id: 9) + +0x0022 | 3C 00 | VOffset16 | 0x003C (60) | offset to field `accounts` (id: 10) + +0x0024 | 40 00 | VOffset16 | 0x0040 (64) | offset to field `bob` (id: 11) + +0x0026 | 44 00 | VOffset16 | 0x0044 (68) | offset to field `alice` (id: 12) + +0x0028 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `maybe_i32` (id: 13) (Int) + +0x002A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_i32` (id: 14) (Int) + +0x002C | 48 00 | VOffset16 | 0x0048 (72) | offset to field `just_i32` (id: 15) + +0x002E | 4C 00 | VOffset16 | 0x004C (76) | offset to field `names` (id: 16) + +0x0030 | 50 00 | VOffset16 | 0x0050 (80) | offset to field `points_of_interest` (id: 17) + +0x0032 | 54 00 | VOffset16 | 0x0054 (84) | offset to field `foobars_type` (id: 18) + +0x0034 | 58 00 | VOffset16 | 0x0058 (88) | offset to field `foobars` (id: 19) + +0x0036 | 0A 00 | VOffset16 | 0x000A (10) | offset to field `measurement_type` (id: 20) + +0x0038 | 5C 00 | VOffset16 | 0x005C (92) | offset to field `measurement` (id: 21) + +0x003A | 0B 00 | VOffset16 | 0x000B (11) | offset to field `anything_type` (id: 22) + +0x003C | 60 00 | VOffset16 | 0x0060 (96) | offset to field `anything` (id: 23) + +0x003E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `temperature` (id: 24) (Float) + +0x0040 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `teetotaler` (id: 25) (Obj) + +0x0042 | 64 00 | VOffset16 | 0x0064 (100) | offset to field `charlie` (id: 26) root_table (AnnotatedBinary.Foo): - +0x0044 | 3A 00 00 00 | SOffset32 | 0x0000003A (58) Loc: +0x000A | offset to vtable - +0x0048 | 00 00 00 | uint8_t[3] | ... | padding - +0x004B | 01 | uint8_t | 0x01 (1) | table field `healthy` (Bool) - +0x004C | 02 | uint8_t | 0x02 (2) | table field `meal` (Byte) - +0x004D | 02 | UType8 | 0x02 (2) | table field `bar_baz_type` (UType) - +0x004E | 01 | UType8 | 0x01 (1) | table field `measurement_type` (UType) - +0x004F | 01 | UType8 | 0x01 (1) | table field `anything_type` (UType) - +0x0050 | D2 04 00 00 | uint32_t | 0x000004D2 (1234) | table field `counter` (Int) - +0x0054 | 28 02 00 00 | UOffset32 | 0x00000228 (552) Loc: +0x027C | ERROR: offset to field `bar`. Invalid offset, points outside the binary. - +0x0058 | 01 00 00 00 | uint32_t | 0x00000001 (1) | struct field `home.floors` of 'AnnotatedBinary.Building' (Int) - +0x005C | 02 00 00 00 | uint32_t | 0x00000002 (2) | struct field `home.doors` of 'AnnotatedBinary.Building' (Int) - +0x0060 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | struct field `home.windows` of 'AnnotatedBinary.Building' (Int) - +0x0064 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | array field `home.dimensions.values`[0] of 'AnnotatedBinary.Dimension' (Int) - +0x0068 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | array field `home.dimensions.values`[1] of 'AnnotatedBinary.Dimension' (Int) - +0x006C | 14 00 00 00 | uint32_t | 0x00000014 (20) | array field `home.dimensions.values`[2] of 'AnnotatedBinary.Dimension' (Int) - +0x0070 | 01 | uint8_t | 0x01 (1) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte) - +0x0071 | 02 | uint8_t | 0x02 (2) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte) - +0x0072 | 03 | uint8_t | 0x03 (3) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte) - +0x0073 | 00 | uint8_t[1] | . | padding - +0x0074 | C8 01 00 00 | UOffset32 | 0x000001C8 (456) Loc: +0x023C | ERROR: offset to field `name`. Invalid offset, points outside the binary. - +0x0078 | 5C 01 00 00 | UOffset32 | 0x0000015C (348) Loc: +0x01D4 | ERROR: offset to field `bars`. Invalid offset, points outside the binary. - +0x007C | 50 01 00 00 | UOffset32 | 0x00000150 (336) Loc: +0x01CC | ERROR: offset to field `bar_baz`. Invalid offset, points outside the binary. - +0x0080 | 34 01 00 00 | UOffset32 | 0x00000134 (308) Loc: +0x01B4 | offset to field `accounts` (vector) - +0x0084 | 24 01 00 00 | UOffset32 | 0x00000124 (292) Loc: +0x01A8 | offset to field `bob` (string) - +0x0088 | 14 01 00 00 | UOffset32 | 0x00000114 (276) Loc: +0x019C | offset to field `alice` (string) - +0x008C | 0D 00 00 00 | uint32_t | 0x0000000D (13) | table field `just_i32` (Int) - +0x0090 | DC 00 00 00 | UOffset32 | 0x000000DC (220) Loc: +0x016C | offset to field `names` (vector) - +0x0094 | A0 00 00 00 | UOffset32 | 0x000000A0 (160) Loc: +0x0134 | offset to field `points_of_interest` (vector) - +0x0098 | 94 00 00 00 | UOffset32 | 0x00000094 (148) Loc: +0x012C | offset to field `foobars_type` (vector) - +0x009C | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: +0x00D4 | offset to field `foobars` (vector) - +0x00A0 | 33 00 00 00 | UOffset32 | 0x00000033 (51) Loc: +0x00D3 | offset to field `measurement` (union of type `Tolerance`) - +0x00A4 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: +0x00C0 | offset to field `anything` (union of type `Bar`) - +0x00A8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x00AC | offset to field `charlie` (string) + +0x0044 | 3A 00 00 00 | SOffset32 | 0x0000003A (58) Loc: 0x000A | offset to vtable + +0x0048 | 00 00 00 | uint8_t[3] | ... | padding + +0x004B | 01 | uint8_t | 0x01 (1) | table field `healthy` (Bool) + +0x004C | 02 | uint8_t | 0x02 (2) | table field `meal` (Byte) + +0x004D | 02 | UType8 | 0x02 (2) | table field `bar_baz_type` (UType) + +0x004E | 01 | UType8 | 0x01 (1) | table field `measurement_type` (UType) + +0x004F | 01 | UType8 | 0x01 (1) | table field `anything_type` (UType) + +0x0050 | D2 04 00 00 | uint32_t | 0x000004D2 (1234) | table field `counter` (Int) + +0x0054 | 28 02 00 00 | UOffset32 | 0x00000228 (552) Loc: 0x027C | ERROR: offset to field `bar`. Invalid offset, points outside the binary. + +0x0058 | 01 00 00 00 | uint32_t | 0x00000001 (1) | struct field `home.floors` of 'AnnotatedBinary.Building' (Int) + +0x005C | 02 00 00 00 | uint32_t | 0x00000002 (2) | struct field `home.doors` of 'AnnotatedBinary.Building' (Int) + +0x0060 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | struct field `home.windows` of 'AnnotatedBinary.Building' (Int) + +0x0064 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | array field `home.dimensions.values`[0] of 'AnnotatedBinary.Dimension' (Int) + +0x0068 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | array field `home.dimensions.values`[1] of 'AnnotatedBinary.Dimension' (Int) + +0x006C | 14 00 00 00 | uint32_t | 0x00000014 (20) | array field `home.dimensions.values`[2] of 'AnnotatedBinary.Dimension' (Int) + +0x0070 | 01 | uint8_t | 0x01 (1) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte) + +0x0071 | 02 | uint8_t | 0x02 (2) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte) + +0x0072 | 03 | uint8_t | 0x03 (3) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte) + +0x0073 | 00 | uint8_t[1] | . | padding + +0x0074 | C8 01 00 00 | UOffset32 | 0x000001C8 (456) Loc: 0x023C | ERROR: offset to field `name`. Invalid offset, points outside the binary. + +0x0078 | 5C 01 00 00 | UOffset32 | 0x0000015C (348) Loc: 0x01D4 | ERROR: offset to field `bars`. Invalid offset, points outside the binary. + +0x007C | 50 01 00 00 | UOffset32 | 0x00000150 (336) Loc: 0x01CC | ERROR: offset to field `bar_baz`. Invalid offset, points outside the binary. + +0x0080 | 34 01 00 00 | UOffset32 | 0x00000134 (308) Loc: 0x01B4 | offset to field `accounts` (vector) + +0x0084 | 24 01 00 00 | UOffset32 | 0x00000124 (292) Loc: 0x01A8 | offset to field `bob` (string) + +0x0088 | 14 01 00 00 | UOffset32 | 0x00000114 (276) Loc: 0x019C | offset to field `alice` (string) + +0x008C | 0D 00 00 00 | uint32_t | 0x0000000D (13) | table field `just_i32` (Int) + +0x0090 | DC 00 00 00 | UOffset32 | 0x000000DC (220) Loc: 0x016C | offset to field `names` (vector) + +0x0094 | A0 00 00 00 | UOffset32 | 0x000000A0 (160) Loc: 0x0134 | offset to field `points_of_interest` (vector) + +0x0098 | 94 00 00 00 | UOffset32 | 0x00000094 (148) Loc: 0x012C | offset to field `foobars_type` (vector) + +0x009C | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: 0x00D4 | offset to field `foobars` (vector) + +0x00A0 | 33 00 00 00 | UOffset32 | 0x00000033 (51) Loc: 0x00D3 | offset to field `measurement` (union of type `Tolerance`) + +0x00A4 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: 0x00C0 | offset to field `anything` (union of type `Bar`) + +0x00A8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x00AC | offset to field `charlie` (string) string (AnnotatedBinary.Foo.charlie): - +0x00AC | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string - +0x00B0 | 61 6C 69 63 65 | char[5] | alice | string literal - +0x00B5 | 00 | char | 0x00 (0) | string terminator + +0x00AC | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string + +0x00B0 | 61 6C 69 63 65 | char[5] | alice | string literal + +0x00B5 | 00 | char | 0x00 (0) | string terminator padding: - +0x00B6 | 00 00 | uint8_t[2] | .. | padding + +0x00B6 | 00 00 | uint8_t[2] | .. | padding vtable (AnnotatedBinary.Bar): - +0x00B8 | 08 00 | uint16_t | 0x0008 (8) | size of this vtable - +0x00BA | 13 00 | uint16_t | 0x0013 (19) | size of referring table - +0x00BC | 08 00 | VOffset16 | 0x0008 (8) | offset to field `a` (id: 0) - +0x00BE | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1) + +0x00B8 | 08 00 | uint16_t | 0x0008 (8) | size of this vtable + +0x00BA | 13 00 | uint16_t | 0x0013 (19) | size of referring table + +0x00BC | 08 00 | VOffset16 | 0x0008 (8) | offset to field `a` (id: 0) + +0x00BE | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1) table (AnnotatedBinary.Bar): - +0x00C0 | 08 00 00 00 | SOffset32 | 0x00000008 (8) Loc: +0x00B8 | offset to vtable - +0x00C4 | 00 80 23 44 | float | 0x44238000 (654) | table field `b` (Float) - +0x00C8 | 00 00 00 00 00 10 74 40 | double | 0x4074100000000000 (321) | table field `a` (Double) - +0x00D0 | 00 00 00 | uint8_t[3] | ... | padding + +0x00C0 | 08 00 00 00 | SOffset32 | 0x00000008 (8) Loc: 0x00B8 | offset to vtable + +0x00C4 | 00 80 23 44 | float | 0x44238000 (654) | table field `b` (Float) + +0x00C8 | 00 00 00 00 00 10 74 40 | double | 0x4074100000000000 (321) | table field `a` (Double) + +0x00D0 | 00 00 00 | uint8_t[3] | ... | padding union (AnnotatedBinary.Tolerance.measurement): - +0x00D3 | 05 | uint8_t | 0x05 (5) | struct field `measurement.width` of 'AnnotatedBinary.Tolerance' (UByte) + +0x00D3 | 05 | uint8_t | 0x05 (5) | struct field `measurement.width` of 'AnnotatedBinary.Tolerance' (UByte) vector (AnnotatedBinary.Foo.foobars): - +0x00D4 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) - +0x00D8 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x010C | offset to union[0] (`Bar`) - +0x00DC | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: +0x0108 | offset to union[1] (`Baz`) - +0x00E0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x00E4 | offset to union[2] (`Bar`) + +0x00D4 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) + +0x00D8 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: 0x010C | offset to union[0] (`Bar`) + +0x00DC | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: 0x0108 | offset to union[1] (`Baz`) + +0x00E0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x00E4 | offset to union[2] (`Bar`) table (AnnotatedBinary.Bar): - +0x00E4 | D2 FE FF FF | SOffset32 | 0xFFFFFED2 (-302) Loc: +0x0212 | ERROR: offset to vtable. Invalid offset, points outside the binary. + +0x00E4 | D2 FE FF FF | SOffset32 | 0xFFFFFED2 (-302) Loc: 0x0212 | ERROR: offset to vtable. Invalid offset, points outside the binary. unknown (no known references): - +0x00E8 | 00 80 23 44 10 00 00 00 | ?uint8_t[28] | ..#D.... | WARN: nothing refers to this section. + +0x00E8 | 00 80 23 44 10 00 00 00 | ?uint8_t[28] | ..#D.... | WARN: nothing refers to this section. +0x00F0 | 00 00 00 00 00 D8 8E 40 | | .......@ +0x00F8 | 00 00 00 00 6A FE FF FF | | ....j... +0x0100 | 00 00 00 03 | | .... vtable (AnnotatedBinary.Baz): - +0x0104 | 04 00 | uint16_t | 0x0004 (4) | size of this vtable - +0x0106 | 04 00 | uint16_t | 0x0004 (4) | size of referring table + +0x0104 | 04 00 | uint16_t | 0x0004 (4) | size of this vtable + +0x0106 | 04 00 | uint16_t | 0x0004 (4) | size of referring table table (AnnotatedBinary.Baz): - +0x0108 | 04 00 00 00 | SOffset32 | 0x00000004 (4) Loc: +0x0104 | offset to vtable + +0x0108 | 04 00 00 00 | SOffset32 | 0x00000004 (4) Loc: 0x0104 | offset to vtable table (AnnotatedBinary.Bar): - +0x010C | FA FE FF FF | SOffset32 | 0xFFFFFEFA (-262) Loc: +0x0212 | ERROR: offset to vtable. Invalid offset, points outside the binary. + +0x010C | FA FE FF FF | SOffset32 | 0xFFFFFEFA (-262) Loc: 0x0212 | ERROR: offset to vtable. Invalid offset, points outside the binary. unknown (no known references): - +0x0110 | 00 00 E4 43 10 00 00 00 | ?uint8_t[28] | ...C.... | WARN: nothing refers to this section. + +0x0110 | 00 00 E4 43 10 00 00 00 | ?uint8_t[28] | ...C.... | WARN: nothing refers to this section. +0x0118 | 00 00 00 00 00 C0 5E 40 | | ......^@ +0x0120 | 00 00 00 00 92 FE FF FF | | ........ +0x0128 | 00 00 00 01 | | .... vector (AnnotatedBinary.Foo.foobars_type): - +0x012C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) - +0x0130 | 01 | UType8 | 0x01 (1) | value[0] - +0x0131 | 02 | UType8 | 0x02 (2) | value[1] - +0x0132 | 01 | UType8 | 0x01 (1) | value[2] + +0x012C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) + +0x0130 | 01 | UType8 | 0x01 (1) | value[0] + +0x0131 | 02 | UType8 | 0x02 (2) | value[1] + +0x0132 | 01 | UType8 | 0x01 (1) | value[2] vector (AnnotatedBinary.Foo.points_of_interest): - +0x0134 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) - +0x0138 | 33 33 33 33 33 A3 45 40 | double | 0x4045A33333333333 (43.275) | struct field `[0].latitude` of 'AnnotatedBinary.Location' (Double) - +0x0140 | 7E 57 04 FF 5B 87 53 C0 | double | 0xC053875BFF04577E (-78.115) | struct field `[0].longitude` of 'AnnotatedBinary.Location' (Double) - +0x0148 | 8D F0 F6 20 04 B6 42 40 | double | 0x4042B60420F6F08D (37.422) | struct field `[1].latitude` of 'AnnotatedBinary.Location' (Double) - +0x0150 | 9F 77 63 41 61 85 5E C0 | double | 0xC05E85614163779F (-122.084) | struct field `[1].longitude` of 'AnnotatedBinary.Location' (Double) - +0x0158 | 8F 35 23 83 DC 35 4B C0 | double | 0xC04B35DC8323358F (-54.4208) | struct field `[2].latitude` of 'AnnotatedBinary.Location' (Double) - +0x0160 | F6 97 DD 93 87 C5 0A 40 | double | 0x400AC58793DD97F6 (3.34645) | struct field `[2].longitude` of 'AnnotatedBinary.Location' (Double) + +0x0134 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) + +0x0138 | 33 33 33 33 33 A3 45 40 | double | 0x4045A33333333333 (43.275) | struct field `[0].latitude` of 'AnnotatedBinary.Location' (Double) + +0x0140 | 7E 57 04 FF 5B 87 53 C0 | double | 0xC053875BFF04577E (-78.115) | struct field `[0].longitude` of 'AnnotatedBinary.Location' (Double) + +0x0148 | 8D F0 F6 20 04 B6 42 40 | double | 0x4042B60420F6F08D (37.422) | struct field `[1].latitude` of 'AnnotatedBinary.Location' (Double) + +0x0150 | 9F 77 63 41 61 85 5E C0 | double | 0xC05E85614163779F (-122.084) | struct field `[1].longitude` of 'AnnotatedBinary.Location' (Double) + +0x0158 | 8F 35 23 83 DC 35 4B C0 | double | 0xC04B35DC8323358F (-54.4208) | struct field `[2].latitude` of 'AnnotatedBinary.Location' (Double) + +0x0160 | F6 97 DD 93 87 C5 0A 40 | double | 0x400AC58793DD97F6 (3.34645) | struct field `[2].longitude` of 'AnnotatedBinary.Location' (Double) padding: - +0x0168 | 00 00 00 00 | uint8_t[4] | .... | padding + +0x0168 | 00 00 00 00 | uint8_t[4] | .... | padding vector (AnnotatedBinary.Foo.names): - +0x016C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) - +0x0170 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x0190 | offset to string[0] - +0x0174 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x0188 | offset to string[1] - +0x0178 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x017C | offset to string[2] + +0x016C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) + +0x0170 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: 0x0190 | offset to string[0] + +0x0174 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: 0x0188 | offset to string[1] + +0x0178 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x017C | offset to string[2] string (AnnotatedBinary.Foo.names): - +0x017C | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string - +0x0180 | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal - +0x0187 | 00 | char | 0x00 (0) | string terminator + +0x017C | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string + +0x0180 | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal + +0x0187 | 00 | char | 0x00 (0) | string terminator string (AnnotatedBinary.Foo.names): - +0x0188 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string - +0x018C | 62 6F 62 | char[3] | bob | string literal - +0x018F | 00 | char | 0x00 (0) | string terminator + +0x0188 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string + +0x018C | 62 6F 62 | char[3] | bob | string literal + +0x018F | 00 | char | 0x00 (0) | string terminator string (AnnotatedBinary.Foo.names): - +0x0190 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string - +0x0194 | 61 6C 69 63 65 | char[5] | alice | string literal - +0x0199 | 00 | char | 0x00 (0) | string terminator + +0x0190 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string + +0x0194 | 61 6C 69 63 65 | char[5] | alice | string literal + +0x0199 | 00 | char | 0x00 (0) | string terminator padding: - +0x019A | 00 00 | uint8_t[2] | .. | padding + +0x019A | 00 00 | uint8_t[2] | .. | padding string (AnnotatedBinary.Foo.alice): - +0x019C | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string - +0x01A0 | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal - +0x01A7 | 00 | char | 0x00 (0) | string terminator + +0x019C | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string + +0x01A0 | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal + +0x01A7 | 00 | char | 0x00 (0) | string terminator string (AnnotatedBinary.Foo.bob): - +0x01A8 | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string - +0x01AC | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal - +0x01B3 | 00 | char | 0x00 (0) | string terminator + +0x01A8 | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string + +0x01AC | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal + +0x01B3 | 00 | char | 0x00 (0) | string terminator vector (AnnotatedBinary.Foo.accounts): - +0x01B4 | 09 00 00 00 | uint32_t | 0x00000009 (9) | ERROR: length of vector (# items). Longer than the binary. + +0x01B4 | 09 00 00 00 | uint32_t | 0x00000009 (9) | ERROR: length of vector (# items). Longer than the binary. unknown (no known references): - +0x01B8 | 09 00 08 00 07 00 01 00 | ?uint8_t[9] | ........ | WARN: nothing refers to this section. + +0x01B8 | 09 00 08 00 07 00 01 00 | ?uint8_t[9] | ........ | WARN: nothing refers to this section. +0x01C0 | 02 | | . diff --git a/tests/annotated_binary/tests/invalid_vector_strings_cut_short.afb b/tests/annotated_binary/tests/invalid_vector_strings_cut_short.afb index d7cd8d8dd8..a9ef88970c 100644 --- a/tests/annotated_binary/tests/invalid_vector_strings_cut_short.afb +++ b/tests/annotated_binary/tests/invalid_vector_strings_cut_short.afb @@ -4,152 +4,152 @@ // Binary file: tests/invalid_vector_strings_cut_short.bin header: - +0x0000 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x0044 | offset to root table `AnnotatedBinary.Foo` - +0x0004 | 41 4E 4E 4F | char[4] | ANNO | File Identifier + +0x0000 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: 0x0044 | offset to root table `AnnotatedBinary.Foo` + +0x0004 | 41 4E 4E 4F | char[4] | ANNO | File Identifier padding: - +0x0008 | 00 00 | uint8_t[2] | .. | padding + +0x0008 | 00 00 | uint8_t[2] | .. | padding vtable (AnnotatedBinary.Foo): - +0x000A | 3A 00 | uint16_t | 0x003A (58) | size of this vtable - +0x000C | 68 00 | uint16_t | 0x0068 (104) | size of referring table - +0x000E | 0C 00 | VOffset16 | 0x000C (12) | offset to field `counter` (id: 0) - +0x0010 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `healthy` (id: 1) - +0x0012 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `level` (id: 2) (Long) - +0x0014 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `meal` (id: 3) - +0x0016 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `bar` (id: 4) - +0x0018 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `home` (id: 5) - +0x001A | 30 00 | VOffset16 | 0x0030 (48) | offset to field `name` (id: 6) - +0x001C | 34 00 | VOffset16 | 0x0034 (52) | offset to field `bars` (id: 7) - +0x001E | 09 00 | VOffset16 | 0x0009 (9) | offset to field `bar_baz_type` (id: 8) - +0x0020 | 38 00 | VOffset16 | 0x0038 (56) | offset to field `bar_baz` (id: 9) - +0x0022 | 3C 00 | VOffset16 | 0x003C (60) | offset to field `accounts` (id: 10) - +0x0024 | 40 00 | VOffset16 | 0x0040 (64) | offset to field `bob` (id: 11) - +0x0026 | 44 00 | VOffset16 | 0x0044 (68) | offset to field `alice` (id: 12) - +0x0028 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `maybe_i32` (id: 13) (Int) - +0x002A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_i32` (id: 14) (Int) - +0x002C | 48 00 | VOffset16 | 0x0048 (72) | offset to field `just_i32` (id: 15) - +0x002E | 4C 00 | VOffset16 | 0x004C (76) | offset to field `names` (id: 16) - +0x0030 | 50 00 | VOffset16 | 0x0050 (80) | offset to field `points_of_interest` (id: 17) - +0x0032 | 54 00 | VOffset16 | 0x0054 (84) | offset to field `foobars_type` (id: 18) - +0x0034 | 58 00 | VOffset16 | 0x0058 (88) | offset to field `foobars` (id: 19) - +0x0036 | 0A 00 | VOffset16 | 0x000A (10) | offset to field `measurement_type` (id: 20) - +0x0038 | 5C 00 | VOffset16 | 0x005C (92) | offset to field `measurement` (id: 21) - +0x003A | 0B 00 | VOffset16 | 0x000B (11) | offset to field `anything_type` (id: 22) - +0x003C | 60 00 | VOffset16 | 0x0060 (96) | offset to field `anything` (id: 23) - +0x003E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `temperature` (id: 24) (Float) - +0x0040 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `teetotaler` (id: 25) (Obj) - +0x0042 | 64 00 | VOffset16 | 0x0064 (100) | offset to field `charlie` (id: 26) + +0x000A | 3A 00 | uint16_t | 0x003A (58) | size of this vtable + +0x000C | 68 00 | uint16_t | 0x0068 (104) | size of referring table + +0x000E | 0C 00 | VOffset16 | 0x000C (12) | offset to field `counter` (id: 0) + +0x0010 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `healthy` (id: 1) + +0x0012 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `level` (id: 2) (Long) + +0x0014 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `meal` (id: 3) + +0x0016 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `bar` (id: 4) + +0x0018 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `home` (id: 5) + +0x001A | 30 00 | VOffset16 | 0x0030 (48) | offset to field `name` (id: 6) + +0x001C | 34 00 | VOffset16 | 0x0034 (52) | offset to field `bars` (id: 7) + +0x001E | 09 00 | VOffset16 | 0x0009 (9) | offset to field `bar_baz_type` (id: 8) + +0x0020 | 38 00 | VOffset16 | 0x0038 (56) | offset to field `bar_baz` (id: 9) + +0x0022 | 3C 00 | VOffset16 | 0x003C (60) | offset to field `accounts` (id: 10) + +0x0024 | 40 00 | VOffset16 | 0x0040 (64) | offset to field `bob` (id: 11) + +0x0026 | 44 00 | VOffset16 | 0x0044 (68) | offset to field `alice` (id: 12) + +0x0028 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `maybe_i32` (id: 13) (Int) + +0x002A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_i32` (id: 14) (Int) + +0x002C | 48 00 | VOffset16 | 0x0048 (72) | offset to field `just_i32` (id: 15) + +0x002E | 4C 00 | VOffset16 | 0x004C (76) | offset to field `names` (id: 16) + +0x0030 | 50 00 | VOffset16 | 0x0050 (80) | offset to field `points_of_interest` (id: 17) + +0x0032 | 54 00 | VOffset16 | 0x0054 (84) | offset to field `foobars_type` (id: 18) + +0x0034 | 58 00 | VOffset16 | 0x0058 (88) | offset to field `foobars` (id: 19) + +0x0036 | 0A 00 | VOffset16 | 0x000A (10) | offset to field `measurement_type` (id: 20) + +0x0038 | 5C 00 | VOffset16 | 0x005C (92) | offset to field `measurement` (id: 21) + +0x003A | 0B 00 | VOffset16 | 0x000B (11) | offset to field `anything_type` (id: 22) + +0x003C | 60 00 | VOffset16 | 0x0060 (96) | offset to field `anything` (id: 23) + +0x003E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `temperature` (id: 24) (Float) + +0x0040 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `teetotaler` (id: 25) (Obj) + +0x0042 | 64 00 | VOffset16 | 0x0064 (100) | offset to field `charlie` (id: 26) root_table (AnnotatedBinary.Foo): - +0x0044 | 3A 00 00 00 | SOffset32 | 0x0000003A (58) Loc: +0x000A | offset to vtable - +0x0048 | 00 00 00 | uint8_t[3] | ... | padding - +0x004B | 01 | uint8_t | 0x01 (1) | table field `healthy` (Bool) - +0x004C | 02 | uint8_t | 0x02 (2) | table field `meal` (Byte) - +0x004D | 02 | UType8 | 0x02 (2) | table field `bar_baz_type` (UType) - +0x004E | 01 | UType8 | 0x01 (1) | table field `measurement_type` (UType) - +0x004F | 01 | UType8 | 0x01 (1) | table field `anything_type` (UType) - +0x0050 | D2 04 00 00 | uint32_t | 0x000004D2 (1234) | table field `counter` (Int) - +0x0054 | 28 02 00 00 | UOffset32 | 0x00000228 (552) Loc: +0x027C | ERROR: offset to field `bar`. Invalid offset, points outside the binary. - +0x0058 | 01 00 00 00 | uint32_t | 0x00000001 (1) | struct field `home.floors` of 'AnnotatedBinary.Building' (Int) - +0x005C | 02 00 00 00 | uint32_t | 0x00000002 (2) | struct field `home.doors` of 'AnnotatedBinary.Building' (Int) - +0x0060 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | struct field `home.windows` of 'AnnotatedBinary.Building' (Int) - +0x0064 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | array field `home.dimensions.values`[0] of 'AnnotatedBinary.Dimension' (Int) - +0x0068 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | array field `home.dimensions.values`[1] of 'AnnotatedBinary.Dimension' (Int) - +0x006C | 14 00 00 00 | uint32_t | 0x00000014 (20) | array field `home.dimensions.values`[2] of 'AnnotatedBinary.Dimension' (Int) - +0x0070 | 01 | uint8_t | 0x01 (1) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte) - +0x0071 | 02 | uint8_t | 0x02 (2) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte) - +0x0072 | 03 | uint8_t | 0x03 (3) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte) - +0x0073 | 00 | uint8_t[1] | . | padding - +0x0074 | C8 01 00 00 | UOffset32 | 0x000001C8 (456) Loc: +0x023C | ERROR: offset to field `name`. Invalid offset, points outside the binary. - +0x0078 | 5C 01 00 00 | UOffset32 | 0x0000015C (348) Loc: +0x01D4 | ERROR: offset to field `bars`. Invalid offset, points outside the binary. - +0x007C | 50 01 00 00 | UOffset32 | 0x00000150 (336) Loc: +0x01CC | ERROR: offset to field `bar_baz`. Invalid offset, points outside the binary. - +0x0080 | 34 01 00 00 | UOffset32 | 0x00000134 (308) Loc: +0x01B4 | ERROR: offset to field `accounts`. Invalid offset, points outside the binary. - +0x0084 | 24 01 00 00 | UOffset32 | 0x00000124 (292) Loc: +0x01A8 | ERROR: offset to field `bob`. Invalid offset, points outside the binary. - +0x0088 | 14 01 00 00 | UOffset32 | 0x00000114 (276) Loc: +0x019C | ERROR: offset to field `alice`. Invalid offset, points outside the binary. - +0x008C | 0D 00 00 00 | uint32_t | 0x0000000D (13) | table field `just_i32` (Int) - +0x0090 | DC 00 00 00 | UOffset32 | 0x000000DC (220) Loc: +0x016C | offset to field `names` (vector) - +0x0094 | A0 00 00 00 | UOffset32 | 0x000000A0 (160) Loc: +0x0134 | offset to field `points_of_interest` (vector) - +0x0098 | 94 00 00 00 | UOffset32 | 0x00000094 (148) Loc: +0x012C | offset to field `foobars_type` (vector) - +0x009C | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: +0x00D4 | offset to field `foobars` (vector) - +0x00A0 | 33 00 00 00 | UOffset32 | 0x00000033 (51) Loc: +0x00D3 | offset to field `measurement` (union of type `Tolerance`) - +0x00A4 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: +0x00C0 | offset to field `anything` (union of type `Bar`) - +0x00A8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x00AC | offset to field `charlie` (string) + +0x0044 | 3A 00 00 00 | SOffset32 | 0x0000003A (58) Loc: 0x000A | offset to vtable + +0x0048 | 00 00 00 | uint8_t[3] | ... | padding + +0x004B | 01 | uint8_t | 0x01 (1) | table field `healthy` (Bool) + +0x004C | 02 | uint8_t | 0x02 (2) | table field `meal` (Byte) + +0x004D | 02 | UType8 | 0x02 (2) | table field `bar_baz_type` (UType) + +0x004E | 01 | UType8 | 0x01 (1) | table field `measurement_type` (UType) + +0x004F | 01 | UType8 | 0x01 (1) | table field `anything_type` (UType) + +0x0050 | D2 04 00 00 | uint32_t | 0x000004D2 (1234) | table field `counter` (Int) + +0x0054 | 28 02 00 00 | UOffset32 | 0x00000228 (552) Loc: 0x027C | ERROR: offset to field `bar`. Invalid offset, points outside the binary. + +0x0058 | 01 00 00 00 | uint32_t | 0x00000001 (1) | struct field `home.floors` of 'AnnotatedBinary.Building' (Int) + +0x005C | 02 00 00 00 | uint32_t | 0x00000002 (2) | struct field `home.doors` of 'AnnotatedBinary.Building' (Int) + +0x0060 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | struct field `home.windows` of 'AnnotatedBinary.Building' (Int) + +0x0064 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | array field `home.dimensions.values`[0] of 'AnnotatedBinary.Dimension' (Int) + +0x0068 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | array field `home.dimensions.values`[1] of 'AnnotatedBinary.Dimension' (Int) + +0x006C | 14 00 00 00 | uint32_t | 0x00000014 (20) | array field `home.dimensions.values`[2] of 'AnnotatedBinary.Dimension' (Int) + +0x0070 | 01 | uint8_t | 0x01 (1) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte) + +0x0071 | 02 | uint8_t | 0x02 (2) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte) + +0x0072 | 03 | uint8_t | 0x03 (3) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte) + +0x0073 | 00 | uint8_t[1] | . | padding + +0x0074 | C8 01 00 00 | UOffset32 | 0x000001C8 (456) Loc: 0x023C | ERROR: offset to field `name`. Invalid offset, points outside the binary. + +0x0078 | 5C 01 00 00 | UOffset32 | 0x0000015C (348) Loc: 0x01D4 | ERROR: offset to field `bars`. Invalid offset, points outside the binary. + +0x007C | 50 01 00 00 | UOffset32 | 0x00000150 (336) Loc: 0x01CC | ERROR: offset to field `bar_baz`. Invalid offset, points outside the binary. + +0x0080 | 34 01 00 00 | UOffset32 | 0x00000134 (308) Loc: 0x01B4 | ERROR: offset to field `accounts`. Invalid offset, points outside the binary. + +0x0084 | 24 01 00 00 | UOffset32 | 0x00000124 (292) Loc: 0x01A8 | ERROR: offset to field `bob`. Invalid offset, points outside the binary. + +0x0088 | 14 01 00 00 | UOffset32 | 0x00000114 (276) Loc: 0x019C | ERROR: offset to field `alice`. Invalid offset, points outside the binary. + +0x008C | 0D 00 00 00 | uint32_t | 0x0000000D (13) | table field `just_i32` (Int) + +0x0090 | DC 00 00 00 | UOffset32 | 0x000000DC (220) Loc: 0x016C | offset to field `names` (vector) + +0x0094 | A0 00 00 00 | UOffset32 | 0x000000A0 (160) Loc: 0x0134 | offset to field `points_of_interest` (vector) + +0x0098 | 94 00 00 00 | UOffset32 | 0x00000094 (148) Loc: 0x012C | offset to field `foobars_type` (vector) + +0x009C | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: 0x00D4 | offset to field `foobars` (vector) + +0x00A0 | 33 00 00 00 | UOffset32 | 0x00000033 (51) Loc: 0x00D3 | offset to field `measurement` (union of type `Tolerance`) + +0x00A4 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: 0x00C0 | offset to field `anything` (union of type `Bar`) + +0x00A8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x00AC | offset to field `charlie` (string) string (AnnotatedBinary.Foo.charlie): - +0x00AC | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string - +0x00B0 | 61 6C 69 63 65 | char[5] | alice | string literal - +0x00B5 | 00 | char | 0x00 (0) | string terminator + +0x00AC | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string + +0x00B0 | 61 6C 69 63 65 | char[5] | alice | string literal + +0x00B5 | 00 | char | 0x00 (0) | string terminator padding: - +0x00B6 | 00 00 | uint8_t[2] | .. | padding + +0x00B6 | 00 00 | uint8_t[2] | .. | padding vtable (AnnotatedBinary.Bar): - +0x00B8 | 08 00 | uint16_t | 0x0008 (8) | size of this vtable - +0x00BA | 13 00 | uint16_t | 0x0013 (19) | size of referring table - +0x00BC | 08 00 | VOffset16 | 0x0008 (8) | offset to field `a` (id: 0) - +0x00BE | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1) + +0x00B8 | 08 00 | uint16_t | 0x0008 (8) | size of this vtable + +0x00BA | 13 00 | uint16_t | 0x0013 (19) | size of referring table + +0x00BC | 08 00 | VOffset16 | 0x0008 (8) | offset to field `a` (id: 0) + +0x00BE | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1) table (AnnotatedBinary.Bar): - +0x00C0 | 08 00 00 00 | SOffset32 | 0x00000008 (8) Loc: +0x00B8 | offset to vtable - +0x00C4 | 00 80 23 44 | float | 0x44238000 (654) | table field `b` (Float) - +0x00C8 | 00 00 00 00 00 10 74 40 | double | 0x4074100000000000 (321) | table field `a` (Double) - +0x00D0 | 00 00 00 | uint8_t[3] | ... | padding + +0x00C0 | 08 00 00 00 | SOffset32 | 0x00000008 (8) Loc: 0x00B8 | offset to vtable + +0x00C4 | 00 80 23 44 | float | 0x44238000 (654) | table field `b` (Float) + +0x00C8 | 00 00 00 00 00 10 74 40 | double | 0x4074100000000000 (321) | table field `a` (Double) + +0x00D0 | 00 00 00 | uint8_t[3] | ... | padding union (AnnotatedBinary.Tolerance.measurement): - +0x00D3 | 05 | uint8_t | 0x05 (5) | struct field `measurement.width` of 'AnnotatedBinary.Tolerance' (UByte) + +0x00D3 | 05 | uint8_t | 0x05 (5) | struct field `measurement.width` of 'AnnotatedBinary.Tolerance' (UByte) vector (AnnotatedBinary.Foo.foobars): - +0x00D4 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) - +0x00D8 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x010C | offset to union[0] (`Bar`) - +0x00DC | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: +0x0108 | offset to union[1] (`Baz`) - +0x00E0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x00E4 | offset to union[2] (`Bar`) + +0x00D4 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) + +0x00D8 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: 0x010C | offset to union[0] (`Bar`) + +0x00DC | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: 0x0108 | offset to union[1] (`Baz`) + +0x00E0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x00E4 | offset to union[2] (`Bar`) table (AnnotatedBinary.Bar): - +0x00E4 | D2 FE FF FF | SOffset32 | 0xFFFFFED2 (-302) Loc: +0x0212 | ERROR: offset to vtable. Invalid offset, points outside the binary. + +0x00E4 | D2 FE FF FF | SOffset32 | 0xFFFFFED2 (-302) Loc: 0x0212 | ERROR: offset to vtable. Invalid offset, points outside the binary. unknown (no known references): - +0x00E8 | 00 80 23 44 10 00 00 00 | ?uint8_t[28] | ..#D.... | WARN: nothing refers to this section. + +0x00E8 | 00 80 23 44 10 00 00 00 | ?uint8_t[28] | ..#D.... | WARN: nothing refers to this section. +0x00F0 | 00 00 00 00 00 D8 8E 40 | | .......@ +0x00F8 | 00 00 00 00 6A FE FF FF | | ....j... +0x0100 | 00 00 00 03 | | .... vtable (AnnotatedBinary.Baz): - +0x0104 | 04 00 | uint16_t | 0x0004 (4) | size of this vtable - +0x0106 | 04 00 | uint16_t | 0x0004 (4) | size of referring table + +0x0104 | 04 00 | uint16_t | 0x0004 (4) | size of this vtable + +0x0106 | 04 00 | uint16_t | 0x0004 (4) | size of referring table table (AnnotatedBinary.Baz): - +0x0108 | 04 00 00 00 | SOffset32 | 0x00000004 (4) Loc: +0x0104 | offset to vtable + +0x0108 | 04 00 00 00 | SOffset32 | 0x00000004 (4) Loc: 0x0104 | offset to vtable table (AnnotatedBinary.Bar): - +0x010C | FA FE FF FF | SOffset32 | 0xFFFFFEFA (-262) Loc: +0x0212 | ERROR: offset to vtable. Invalid offset, points outside the binary. + +0x010C | FA FE FF FF | SOffset32 | 0xFFFFFEFA (-262) Loc: 0x0212 | ERROR: offset to vtable. Invalid offset, points outside the binary. unknown (no known references): - +0x0110 | 00 00 E4 43 10 00 00 00 | ?uint8_t[28] | ...C.... | WARN: nothing refers to this section. + +0x0110 | 00 00 E4 43 10 00 00 00 | ?uint8_t[28] | ...C.... | WARN: nothing refers to this section. +0x0118 | 00 00 00 00 00 C0 5E 40 | | ......^@ +0x0120 | 00 00 00 00 92 FE FF FF | | ........ +0x0128 | 00 00 00 01 | | .... vector (AnnotatedBinary.Foo.foobars_type): - +0x012C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) - +0x0130 | 01 | UType8 | 0x01 (1) | value[0] - +0x0131 | 02 | UType8 | 0x02 (2) | value[1] - +0x0132 | 01 | UType8 | 0x01 (1) | value[2] + +0x012C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) + +0x0130 | 01 | UType8 | 0x01 (1) | value[0] + +0x0131 | 02 | UType8 | 0x02 (2) | value[1] + +0x0132 | 01 | UType8 | 0x01 (1) | value[2] vector (AnnotatedBinary.Foo.points_of_interest): - +0x0134 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) - +0x0138 | 33 33 33 33 33 A3 45 40 | double | 0x4045A33333333333 (43.275) | struct field `[0].latitude` of 'AnnotatedBinary.Location' (Double) - +0x0140 | 7E 57 04 FF 5B 87 53 C0 | double | 0xC053875BFF04577E (-78.115) | struct field `[0].longitude` of 'AnnotatedBinary.Location' (Double) - +0x0148 | 8D F0 F6 20 04 B6 42 40 | double | 0x4042B60420F6F08D (37.422) | struct field `[1].latitude` of 'AnnotatedBinary.Location' (Double) - +0x0150 | 9F 77 63 41 61 85 5E C0 | double | 0xC05E85614163779F (-122.084) | struct field `[1].longitude` of 'AnnotatedBinary.Location' (Double) - +0x0158 | 8F 35 23 83 DC 35 4B C0 | double | 0xC04B35DC8323358F (-54.4208) | struct field `[2].latitude` of 'AnnotatedBinary.Location' (Double) - +0x0160 | F6 97 DD 93 87 C5 0A 40 | double | 0x400AC58793DD97F6 (3.34645) | struct field `[2].longitude` of 'AnnotatedBinary.Location' (Double) + +0x0134 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) + +0x0138 | 33 33 33 33 33 A3 45 40 | double | 0x4045A33333333333 (43.275) | struct field `[0].latitude` of 'AnnotatedBinary.Location' (Double) + +0x0140 | 7E 57 04 FF 5B 87 53 C0 | double | 0xC053875BFF04577E (-78.115) | struct field `[0].longitude` of 'AnnotatedBinary.Location' (Double) + +0x0148 | 8D F0 F6 20 04 B6 42 40 | double | 0x4042B60420F6F08D (37.422) | struct field `[1].latitude` of 'AnnotatedBinary.Location' (Double) + +0x0150 | 9F 77 63 41 61 85 5E C0 | double | 0xC05E85614163779F (-122.084) | struct field `[1].longitude` of 'AnnotatedBinary.Location' (Double) + +0x0158 | 8F 35 23 83 DC 35 4B C0 | double | 0xC04B35DC8323358F (-54.4208) | struct field `[2].latitude` of 'AnnotatedBinary.Location' (Double) + +0x0160 | F6 97 DD 93 87 C5 0A 40 | double | 0x400AC58793DD97F6 (3.34645) | struct field `[2].longitude` of 'AnnotatedBinary.Location' (Double) padding: - +0x0168 | 00 00 00 00 | uint8_t[4] | .... | padding + +0x0168 | 00 00 00 00 | uint8_t[4] | .... | padding vector (AnnotatedBinary.Foo.names): - +0x016C | 03 00 00 00 | uint32_t | 0x00000003 (3) | ERROR: length of vector (# items). Longer than the binary. + +0x016C | 03 00 00 00 | uint32_t | 0x00000003 (3) | ERROR: length of vector (# items). Longer than the binary. unknown (no known references): - +0x0170 | 20 00 00 00 14 00 | ?uint8_t[6] | ..... | WARN: could be corrupted padding region. + +0x0170 | 20 00 00 00 14 00 | ?uint8_t[6] | ..... | WARN: could be corrupted padding region. diff --git a/tests/annotated_binary/tests/invalid_vector_structs_cut_short.afb b/tests/annotated_binary/tests/invalid_vector_structs_cut_short.afb index 801e855bae..552b5fe64c 100644 --- a/tests/annotated_binary/tests/invalid_vector_structs_cut_short.afb +++ b/tests/annotated_binary/tests/invalid_vector_structs_cut_short.afb @@ -4,143 +4,143 @@ // Binary file: tests/invalid_vector_structs_cut_short.bin header: - +0x0000 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x0044 | offset to root table `AnnotatedBinary.Foo` - +0x0004 | 41 4E 4E 4F | char[4] | ANNO | File Identifier + +0x0000 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: 0x0044 | offset to root table `AnnotatedBinary.Foo` + +0x0004 | 41 4E 4E 4F | char[4] | ANNO | File Identifier padding: - +0x0008 | 00 00 | uint8_t[2] | .. | padding + +0x0008 | 00 00 | uint8_t[2] | .. | padding vtable (AnnotatedBinary.Foo): - +0x000A | 3A 00 | uint16_t | 0x003A (58) | size of this vtable - +0x000C | 68 00 | uint16_t | 0x0068 (104) | size of referring table - +0x000E | 0C 00 | VOffset16 | 0x000C (12) | offset to field `counter` (id: 0) - +0x0010 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `healthy` (id: 1) - +0x0012 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `level` (id: 2) (Long) - +0x0014 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `meal` (id: 3) - +0x0016 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `bar` (id: 4) - +0x0018 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `home` (id: 5) - +0x001A | 30 00 | VOffset16 | 0x0030 (48) | offset to field `name` (id: 6) - +0x001C | 34 00 | VOffset16 | 0x0034 (52) | offset to field `bars` (id: 7) - +0x001E | 09 00 | VOffset16 | 0x0009 (9) | offset to field `bar_baz_type` (id: 8) - +0x0020 | 38 00 | VOffset16 | 0x0038 (56) | offset to field `bar_baz` (id: 9) - +0x0022 | 3C 00 | VOffset16 | 0x003C (60) | offset to field `accounts` (id: 10) - +0x0024 | 40 00 | VOffset16 | 0x0040 (64) | offset to field `bob` (id: 11) - +0x0026 | 44 00 | VOffset16 | 0x0044 (68) | offset to field `alice` (id: 12) - +0x0028 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `maybe_i32` (id: 13) (Int) - +0x002A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_i32` (id: 14) (Int) - +0x002C | 48 00 | VOffset16 | 0x0048 (72) | offset to field `just_i32` (id: 15) - +0x002E | 4C 00 | VOffset16 | 0x004C (76) | offset to field `names` (id: 16) - +0x0030 | 50 00 | VOffset16 | 0x0050 (80) | offset to field `points_of_interest` (id: 17) - +0x0032 | 54 00 | VOffset16 | 0x0054 (84) | offset to field `foobars_type` (id: 18) - +0x0034 | 58 00 | VOffset16 | 0x0058 (88) | offset to field `foobars` (id: 19) - +0x0036 | 0A 00 | VOffset16 | 0x000A (10) | offset to field `measurement_type` (id: 20) - +0x0038 | 5C 00 | VOffset16 | 0x005C (92) | offset to field `measurement` (id: 21) - +0x003A | 0B 00 | VOffset16 | 0x000B (11) | offset to field `anything_type` (id: 22) - +0x003C | 60 00 | VOffset16 | 0x0060 (96) | offset to field `anything` (id: 23) - +0x003E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `temperature` (id: 24) (Float) - +0x0040 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `teetotaler` (id: 25) (Obj) - +0x0042 | 64 00 | VOffset16 | 0x0064 (100) | offset to field `charlie` (id: 26) + +0x000A | 3A 00 | uint16_t | 0x003A (58) | size of this vtable + +0x000C | 68 00 | uint16_t | 0x0068 (104) | size of referring table + +0x000E | 0C 00 | VOffset16 | 0x000C (12) | offset to field `counter` (id: 0) + +0x0010 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `healthy` (id: 1) + +0x0012 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `level` (id: 2) (Long) + +0x0014 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `meal` (id: 3) + +0x0016 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `bar` (id: 4) + +0x0018 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `home` (id: 5) + +0x001A | 30 00 | VOffset16 | 0x0030 (48) | offset to field `name` (id: 6) + +0x001C | 34 00 | VOffset16 | 0x0034 (52) | offset to field `bars` (id: 7) + +0x001E | 09 00 | VOffset16 | 0x0009 (9) | offset to field `bar_baz_type` (id: 8) + +0x0020 | 38 00 | VOffset16 | 0x0038 (56) | offset to field `bar_baz` (id: 9) + +0x0022 | 3C 00 | VOffset16 | 0x003C (60) | offset to field `accounts` (id: 10) + +0x0024 | 40 00 | VOffset16 | 0x0040 (64) | offset to field `bob` (id: 11) + +0x0026 | 44 00 | VOffset16 | 0x0044 (68) | offset to field `alice` (id: 12) + +0x0028 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `maybe_i32` (id: 13) (Int) + +0x002A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_i32` (id: 14) (Int) + +0x002C | 48 00 | VOffset16 | 0x0048 (72) | offset to field `just_i32` (id: 15) + +0x002E | 4C 00 | VOffset16 | 0x004C (76) | offset to field `names` (id: 16) + +0x0030 | 50 00 | VOffset16 | 0x0050 (80) | offset to field `points_of_interest` (id: 17) + +0x0032 | 54 00 | VOffset16 | 0x0054 (84) | offset to field `foobars_type` (id: 18) + +0x0034 | 58 00 | VOffset16 | 0x0058 (88) | offset to field `foobars` (id: 19) + +0x0036 | 0A 00 | VOffset16 | 0x000A (10) | offset to field `measurement_type` (id: 20) + +0x0038 | 5C 00 | VOffset16 | 0x005C (92) | offset to field `measurement` (id: 21) + +0x003A | 0B 00 | VOffset16 | 0x000B (11) | offset to field `anything_type` (id: 22) + +0x003C | 60 00 | VOffset16 | 0x0060 (96) | offset to field `anything` (id: 23) + +0x003E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `temperature` (id: 24) (Float) + +0x0040 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `teetotaler` (id: 25) (Obj) + +0x0042 | 64 00 | VOffset16 | 0x0064 (100) | offset to field `charlie` (id: 26) root_table (AnnotatedBinary.Foo): - +0x0044 | 3A 00 00 00 | SOffset32 | 0x0000003A (58) Loc: +0x000A | offset to vtable - +0x0048 | 00 00 00 | uint8_t[3] | ... | padding - +0x004B | 01 | uint8_t | 0x01 (1) | table field `healthy` (Bool) - +0x004C | 02 | uint8_t | 0x02 (2) | table field `meal` (Byte) - +0x004D | 02 | UType8 | 0x02 (2) | table field `bar_baz_type` (UType) - +0x004E | 01 | UType8 | 0x01 (1) | table field `measurement_type` (UType) - +0x004F | 01 | UType8 | 0x01 (1) | table field `anything_type` (UType) - +0x0050 | D2 04 00 00 | uint32_t | 0x000004D2 (1234) | table field `counter` (Int) - +0x0054 | 28 02 00 00 | UOffset32 | 0x00000228 (552) Loc: +0x027C | ERROR: offset to field `bar`. Invalid offset, points outside the binary. - +0x0058 | 01 00 00 00 | uint32_t | 0x00000001 (1) | struct field `home.floors` of 'AnnotatedBinary.Building' (Int) - +0x005C | 02 00 00 00 | uint32_t | 0x00000002 (2) | struct field `home.doors` of 'AnnotatedBinary.Building' (Int) - +0x0060 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | struct field `home.windows` of 'AnnotatedBinary.Building' (Int) - +0x0064 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | array field `home.dimensions.values`[0] of 'AnnotatedBinary.Dimension' (Int) - +0x0068 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | array field `home.dimensions.values`[1] of 'AnnotatedBinary.Dimension' (Int) - +0x006C | 14 00 00 00 | uint32_t | 0x00000014 (20) | array field `home.dimensions.values`[2] of 'AnnotatedBinary.Dimension' (Int) - +0x0070 | 01 | uint8_t | 0x01 (1) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte) - +0x0071 | 02 | uint8_t | 0x02 (2) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte) - +0x0072 | 03 | uint8_t | 0x03 (3) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte) - +0x0073 | 00 | uint8_t[1] | . | padding - +0x0074 | C8 01 00 00 | UOffset32 | 0x000001C8 (456) Loc: +0x023C | ERROR: offset to field `name`. Invalid offset, points outside the binary. - +0x0078 | 5C 01 00 00 | UOffset32 | 0x0000015C (348) Loc: +0x01D4 | ERROR: offset to field `bars`. Invalid offset, points outside the binary. - +0x007C | 50 01 00 00 | UOffset32 | 0x00000150 (336) Loc: +0x01CC | ERROR: offset to field `bar_baz`. Invalid offset, points outside the binary. - +0x0080 | 34 01 00 00 | UOffset32 | 0x00000134 (308) Loc: +0x01B4 | ERROR: offset to field `accounts`. Invalid offset, points outside the binary. - +0x0084 | 24 01 00 00 | UOffset32 | 0x00000124 (292) Loc: +0x01A8 | ERROR: offset to field `bob`. Invalid offset, points outside the binary. - +0x0088 | 14 01 00 00 | UOffset32 | 0x00000114 (276) Loc: +0x019C | ERROR: offset to field `alice`. Invalid offset, points outside the binary. - +0x008C | 0D 00 00 00 | uint32_t | 0x0000000D (13) | table field `just_i32` (Int) - +0x0090 | DC 00 00 00 | UOffset32 | 0x000000DC (220) Loc: +0x016C | ERROR: offset to field `names`. Invalid offset, points outside the binary. - +0x0094 | A0 00 00 00 | UOffset32 | 0x000000A0 (160) Loc: +0x0134 | offset to field `points_of_interest` (vector) - +0x0098 | 94 00 00 00 | UOffset32 | 0x00000094 (148) Loc: +0x012C | offset to field `foobars_type` (vector) - +0x009C | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: +0x00D4 | offset to field `foobars` (vector) - +0x00A0 | 33 00 00 00 | UOffset32 | 0x00000033 (51) Loc: +0x00D3 | offset to field `measurement` (union of type `Tolerance`) - +0x00A4 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: +0x00C0 | offset to field `anything` (union of type `Bar`) - +0x00A8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x00AC | offset to field `charlie` (string) + +0x0044 | 3A 00 00 00 | SOffset32 | 0x0000003A (58) Loc: 0x000A | offset to vtable + +0x0048 | 00 00 00 | uint8_t[3] | ... | padding + +0x004B | 01 | uint8_t | 0x01 (1) | table field `healthy` (Bool) + +0x004C | 02 | uint8_t | 0x02 (2) | table field `meal` (Byte) + +0x004D | 02 | UType8 | 0x02 (2) | table field `bar_baz_type` (UType) + +0x004E | 01 | UType8 | 0x01 (1) | table field `measurement_type` (UType) + +0x004F | 01 | UType8 | 0x01 (1) | table field `anything_type` (UType) + +0x0050 | D2 04 00 00 | uint32_t | 0x000004D2 (1234) | table field `counter` (Int) + +0x0054 | 28 02 00 00 | UOffset32 | 0x00000228 (552) Loc: 0x027C | ERROR: offset to field `bar`. Invalid offset, points outside the binary. + +0x0058 | 01 00 00 00 | uint32_t | 0x00000001 (1) | struct field `home.floors` of 'AnnotatedBinary.Building' (Int) + +0x005C | 02 00 00 00 | uint32_t | 0x00000002 (2) | struct field `home.doors` of 'AnnotatedBinary.Building' (Int) + +0x0060 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | struct field `home.windows` of 'AnnotatedBinary.Building' (Int) + +0x0064 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | array field `home.dimensions.values`[0] of 'AnnotatedBinary.Dimension' (Int) + +0x0068 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | array field `home.dimensions.values`[1] of 'AnnotatedBinary.Dimension' (Int) + +0x006C | 14 00 00 00 | uint32_t | 0x00000014 (20) | array field `home.dimensions.values`[2] of 'AnnotatedBinary.Dimension' (Int) + +0x0070 | 01 | uint8_t | 0x01 (1) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte) + +0x0071 | 02 | uint8_t | 0x02 (2) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte) + +0x0072 | 03 | uint8_t | 0x03 (3) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte) + +0x0073 | 00 | uint8_t[1] | . | padding + +0x0074 | C8 01 00 00 | UOffset32 | 0x000001C8 (456) Loc: 0x023C | ERROR: offset to field `name`. Invalid offset, points outside the binary. + +0x0078 | 5C 01 00 00 | UOffset32 | 0x0000015C (348) Loc: 0x01D4 | ERROR: offset to field `bars`. Invalid offset, points outside the binary. + +0x007C | 50 01 00 00 | UOffset32 | 0x00000150 (336) Loc: 0x01CC | ERROR: offset to field `bar_baz`. Invalid offset, points outside the binary. + +0x0080 | 34 01 00 00 | UOffset32 | 0x00000134 (308) Loc: 0x01B4 | ERROR: offset to field `accounts`. Invalid offset, points outside the binary. + +0x0084 | 24 01 00 00 | UOffset32 | 0x00000124 (292) Loc: 0x01A8 | ERROR: offset to field `bob`. Invalid offset, points outside the binary. + +0x0088 | 14 01 00 00 | UOffset32 | 0x00000114 (276) Loc: 0x019C | ERROR: offset to field `alice`. Invalid offset, points outside the binary. + +0x008C | 0D 00 00 00 | uint32_t | 0x0000000D (13) | table field `just_i32` (Int) + +0x0090 | DC 00 00 00 | UOffset32 | 0x000000DC (220) Loc: 0x016C | ERROR: offset to field `names`. Invalid offset, points outside the binary. + +0x0094 | A0 00 00 00 | UOffset32 | 0x000000A0 (160) Loc: 0x0134 | offset to field `points_of_interest` (vector) + +0x0098 | 94 00 00 00 | UOffset32 | 0x00000094 (148) Loc: 0x012C | offset to field `foobars_type` (vector) + +0x009C | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: 0x00D4 | offset to field `foobars` (vector) + +0x00A0 | 33 00 00 00 | UOffset32 | 0x00000033 (51) Loc: 0x00D3 | offset to field `measurement` (union of type `Tolerance`) + +0x00A4 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: 0x00C0 | offset to field `anything` (union of type `Bar`) + +0x00A8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x00AC | offset to field `charlie` (string) string (AnnotatedBinary.Foo.charlie): - +0x00AC | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string - +0x00B0 | 61 6C 69 63 65 | char[5] | alice | string literal - +0x00B5 | 00 | char | 0x00 (0) | string terminator + +0x00AC | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string + +0x00B0 | 61 6C 69 63 65 | char[5] | alice | string literal + +0x00B5 | 00 | char | 0x00 (0) | string terminator padding: - +0x00B6 | 00 00 | uint8_t[2] | .. | padding + +0x00B6 | 00 00 | uint8_t[2] | .. | padding vtable (AnnotatedBinary.Bar): - +0x00B8 | 08 00 | uint16_t | 0x0008 (8) | size of this vtable - +0x00BA | 13 00 | uint16_t | 0x0013 (19) | size of referring table - +0x00BC | 08 00 | VOffset16 | 0x0008 (8) | offset to field `a` (id: 0) - +0x00BE | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1) + +0x00B8 | 08 00 | uint16_t | 0x0008 (8) | size of this vtable + +0x00BA | 13 00 | uint16_t | 0x0013 (19) | size of referring table + +0x00BC | 08 00 | VOffset16 | 0x0008 (8) | offset to field `a` (id: 0) + +0x00BE | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1) table (AnnotatedBinary.Bar): - +0x00C0 | 08 00 00 00 | SOffset32 | 0x00000008 (8) Loc: +0x00B8 | offset to vtable - +0x00C4 | 00 80 23 44 | float | 0x44238000 (654) | table field `b` (Float) - +0x00C8 | 00 00 00 00 00 10 74 40 | double | 0x4074100000000000 (321) | table field `a` (Double) - +0x00D0 | 00 00 00 | uint8_t[3] | ... | padding + +0x00C0 | 08 00 00 00 | SOffset32 | 0x00000008 (8) Loc: 0x00B8 | offset to vtable + +0x00C4 | 00 80 23 44 | float | 0x44238000 (654) | table field `b` (Float) + +0x00C8 | 00 00 00 00 00 10 74 40 | double | 0x4074100000000000 (321) | table field `a` (Double) + +0x00D0 | 00 00 00 | uint8_t[3] | ... | padding union (AnnotatedBinary.Tolerance.measurement): - +0x00D3 | 05 | uint8_t | 0x05 (5) | struct field `measurement.width` of 'AnnotatedBinary.Tolerance' (UByte) + +0x00D3 | 05 | uint8_t | 0x05 (5) | struct field `measurement.width` of 'AnnotatedBinary.Tolerance' (UByte) vector (AnnotatedBinary.Foo.foobars): - +0x00D4 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) - +0x00D8 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x010C | offset to union[0] (`Bar`) - +0x00DC | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: +0x0108 | offset to union[1] (`Baz`) - +0x00E0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x00E4 | offset to union[2] (`Bar`) + +0x00D4 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) + +0x00D8 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: 0x010C | offset to union[0] (`Bar`) + +0x00DC | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: 0x0108 | offset to union[1] (`Baz`) + +0x00E0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x00E4 | offset to union[2] (`Bar`) table (AnnotatedBinary.Bar): - +0x00E4 | D2 FE FF FF | SOffset32 | 0xFFFFFED2 (-302) Loc: +0x0212 | ERROR: offset to vtable. Invalid offset, points outside the binary. + +0x00E4 | D2 FE FF FF | SOffset32 | 0xFFFFFED2 (-302) Loc: 0x0212 | ERROR: offset to vtable. Invalid offset, points outside the binary. unknown (no known references): - +0x00E8 | 00 80 23 44 10 00 00 00 | ?uint8_t[28] | ..#D.... | WARN: nothing refers to this section. + +0x00E8 | 00 80 23 44 10 00 00 00 | ?uint8_t[28] | ..#D.... | WARN: nothing refers to this section. +0x00F0 | 00 00 00 00 00 D8 8E 40 | | .......@ +0x00F8 | 00 00 00 00 6A FE FF FF | | ....j... +0x0100 | 00 00 00 03 | | .... vtable (AnnotatedBinary.Baz): - +0x0104 | 04 00 | uint16_t | 0x0004 (4) | size of this vtable - +0x0106 | 04 00 | uint16_t | 0x0004 (4) | size of referring table + +0x0104 | 04 00 | uint16_t | 0x0004 (4) | size of this vtable + +0x0106 | 04 00 | uint16_t | 0x0004 (4) | size of referring table table (AnnotatedBinary.Baz): - +0x0108 | 04 00 00 00 | SOffset32 | 0x00000004 (4) Loc: +0x0104 | offset to vtable + +0x0108 | 04 00 00 00 | SOffset32 | 0x00000004 (4) Loc: 0x0104 | offset to vtable table (AnnotatedBinary.Bar): - +0x010C | FA FE FF FF | SOffset32 | 0xFFFFFEFA (-262) Loc: +0x0212 | ERROR: offset to vtable. Invalid offset, points outside the binary. + +0x010C | FA FE FF FF | SOffset32 | 0xFFFFFEFA (-262) Loc: 0x0212 | ERROR: offset to vtable. Invalid offset, points outside the binary. unknown (no known references): - +0x0110 | 00 00 E4 43 10 00 00 00 | ?uint8_t[28] | ...C.... | WARN: nothing refers to this section. + +0x0110 | 00 00 E4 43 10 00 00 00 | ?uint8_t[28] | ...C.... | WARN: nothing refers to this section. +0x0118 | 00 00 00 00 00 C0 5E 40 | | ......^@ +0x0120 | 00 00 00 00 92 FE FF FF | | ........ +0x0128 | 00 00 00 01 | | .... vector (AnnotatedBinary.Foo.foobars_type): - +0x012C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) - +0x0130 | 01 | UType8 | 0x01 (1) | value[0] - +0x0131 | 02 | UType8 | 0x02 (2) | value[1] - +0x0132 | 01 | UType8 | 0x01 (1) | value[2] + +0x012C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) + +0x0130 | 01 | UType8 | 0x01 (1) | value[0] + +0x0131 | 02 | UType8 | 0x02 (2) | value[1] + +0x0132 | 01 | UType8 | 0x01 (1) | value[2] vector (AnnotatedBinary.Foo.points_of_interest): - +0x0134 | 03 00 00 00 | uint32_t | 0x00000003 (3) | ERROR: length of vector (# items). Longer than the binary. + +0x0134 | 03 00 00 00 | uint32_t | 0x00000003 (3) | ERROR: length of vector (# items). Longer than the binary. unknown (no known references): - +0x0138 | 33 33 33 33 33 A3 45 40 | ?uint8_t[28] | 33333.E@ | WARN: nothing refers to this section. + +0x0138 | 33 33 33 33 33 A3 45 40 | ?uint8_t[28] | 33333.E@ | WARN: nothing refers to this section. +0x0140 | 7E 57 04 FF 5B 87 53 C0 | | ~W..[.S. +0x0148 | 8D F0 F6 20 04 B6 42 40 | | ... ..B@ +0x0150 | 9F 77 63 41 | | .wcA diff --git a/tests/annotated_binary/tests/invalid_vector_tables_cut_short.afb b/tests/annotated_binary/tests/invalid_vector_tables_cut_short.afb index 7f5ef35d06..00baa8a0ad 100644 --- a/tests/annotated_binary/tests/invalid_vector_tables_cut_short.afb +++ b/tests/annotated_binary/tests/invalid_vector_tables_cut_short.afb @@ -4,207 +4,207 @@ // Binary file: tests/invalid_vector_tables_cut_short.bin header: - +0x0000 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x0044 | offset to root table `AnnotatedBinary.Foo` - +0x0004 | 41 4E 4E 4F | char[4] | ANNO | File Identifier + +0x0000 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: 0x0044 | offset to root table `AnnotatedBinary.Foo` + +0x0004 | 41 4E 4E 4F | char[4] | ANNO | File Identifier padding: - +0x0008 | 00 00 | uint8_t[2] | .. | padding + +0x0008 | 00 00 | uint8_t[2] | .. | padding vtable (AnnotatedBinary.Foo): - +0x000A | 3A 00 | uint16_t | 0x003A (58) | size of this vtable - +0x000C | 68 00 | uint16_t | 0x0068 (104) | size of referring table - +0x000E | 0C 00 | VOffset16 | 0x000C (12) | offset to field `counter` (id: 0) - +0x0010 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `healthy` (id: 1) - +0x0012 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `level` (id: 2) (Long) - +0x0014 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `meal` (id: 3) - +0x0016 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `bar` (id: 4) - +0x0018 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `home` (id: 5) - +0x001A | 30 00 | VOffset16 | 0x0030 (48) | offset to field `name` (id: 6) - +0x001C | 34 00 | VOffset16 | 0x0034 (52) | offset to field `bars` (id: 7) - +0x001E | 09 00 | VOffset16 | 0x0009 (9) | offset to field `bar_baz_type` (id: 8) - +0x0020 | 38 00 | VOffset16 | 0x0038 (56) | offset to field `bar_baz` (id: 9) - +0x0022 | 3C 00 | VOffset16 | 0x003C (60) | offset to field `accounts` (id: 10) - +0x0024 | 40 00 | VOffset16 | 0x0040 (64) | offset to field `bob` (id: 11) - +0x0026 | 44 00 | VOffset16 | 0x0044 (68) | offset to field `alice` (id: 12) - +0x0028 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `maybe_i32` (id: 13) (Int) - +0x002A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_i32` (id: 14) (Int) - +0x002C | 48 00 | VOffset16 | 0x0048 (72) | offset to field `just_i32` (id: 15) - +0x002E | 4C 00 | VOffset16 | 0x004C (76) | offset to field `names` (id: 16) - +0x0030 | 50 00 | VOffset16 | 0x0050 (80) | offset to field `points_of_interest` (id: 17) - +0x0032 | 54 00 | VOffset16 | 0x0054 (84) | offset to field `foobars_type` (id: 18) - +0x0034 | 58 00 | VOffset16 | 0x0058 (88) | offset to field `foobars` (id: 19) - +0x0036 | 0A 00 | VOffset16 | 0x000A (10) | offset to field `measurement_type` (id: 20) - +0x0038 | 5C 00 | VOffset16 | 0x005C (92) | offset to field `measurement` (id: 21) - +0x003A | 0B 00 | VOffset16 | 0x000B (11) | offset to field `anything_type` (id: 22) - +0x003C | 60 00 | VOffset16 | 0x0060 (96) | offset to field `anything` (id: 23) - +0x003E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `temperature` (id: 24) (Float) - +0x0040 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `teetotaler` (id: 25) (Obj) - +0x0042 | 64 00 | VOffset16 | 0x0064 (100) | offset to field `charlie` (id: 26) + +0x000A | 3A 00 | uint16_t | 0x003A (58) | size of this vtable + +0x000C | 68 00 | uint16_t | 0x0068 (104) | size of referring table + +0x000E | 0C 00 | VOffset16 | 0x000C (12) | offset to field `counter` (id: 0) + +0x0010 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `healthy` (id: 1) + +0x0012 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `level` (id: 2) (Long) + +0x0014 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `meal` (id: 3) + +0x0016 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `bar` (id: 4) + +0x0018 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `home` (id: 5) + +0x001A | 30 00 | VOffset16 | 0x0030 (48) | offset to field `name` (id: 6) + +0x001C | 34 00 | VOffset16 | 0x0034 (52) | offset to field `bars` (id: 7) + +0x001E | 09 00 | VOffset16 | 0x0009 (9) | offset to field `bar_baz_type` (id: 8) + +0x0020 | 38 00 | VOffset16 | 0x0038 (56) | offset to field `bar_baz` (id: 9) + +0x0022 | 3C 00 | VOffset16 | 0x003C (60) | offset to field `accounts` (id: 10) + +0x0024 | 40 00 | VOffset16 | 0x0040 (64) | offset to field `bob` (id: 11) + +0x0026 | 44 00 | VOffset16 | 0x0044 (68) | offset to field `alice` (id: 12) + +0x0028 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `maybe_i32` (id: 13) (Int) + +0x002A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_i32` (id: 14) (Int) + +0x002C | 48 00 | VOffset16 | 0x0048 (72) | offset to field `just_i32` (id: 15) + +0x002E | 4C 00 | VOffset16 | 0x004C (76) | offset to field `names` (id: 16) + +0x0030 | 50 00 | VOffset16 | 0x0050 (80) | offset to field `points_of_interest` (id: 17) + +0x0032 | 54 00 | VOffset16 | 0x0054 (84) | offset to field `foobars_type` (id: 18) + +0x0034 | 58 00 | VOffset16 | 0x0058 (88) | offset to field `foobars` (id: 19) + +0x0036 | 0A 00 | VOffset16 | 0x000A (10) | offset to field `measurement_type` (id: 20) + +0x0038 | 5C 00 | VOffset16 | 0x005C (92) | offset to field `measurement` (id: 21) + +0x003A | 0B 00 | VOffset16 | 0x000B (11) | offset to field `anything_type` (id: 22) + +0x003C | 60 00 | VOffset16 | 0x0060 (96) | offset to field `anything` (id: 23) + +0x003E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `temperature` (id: 24) (Float) + +0x0040 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `teetotaler` (id: 25) (Obj) + +0x0042 | 64 00 | VOffset16 | 0x0064 (100) | offset to field `charlie` (id: 26) root_table (AnnotatedBinary.Foo): - +0x0044 | 3A 00 00 00 | SOffset32 | 0x0000003A (58) Loc: +0x000A | offset to vtable - +0x0048 | 00 00 00 | uint8_t[3] | ... | padding - +0x004B | 01 | uint8_t | 0x01 (1) | table field `healthy` (Bool) - +0x004C | 02 | uint8_t | 0x02 (2) | table field `meal` (Byte) - +0x004D | 02 | UType8 | 0x02 (2) | table field `bar_baz_type` (UType) - +0x004E | 01 | UType8 | 0x01 (1) | table field `measurement_type` (UType) - +0x004F | 01 | UType8 | 0x01 (1) | table field `anything_type` (UType) - +0x0050 | D2 04 00 00 | uint32_t | 0x000004D2 (1234) | table field `counter` (Int) - +0x0054 | 28 02 00 00 | UOffset32 | 0x00000228 (552) Loc: +0x027C | ERROR: offset to field `bar`. Invalid offset, points outside the binary. - +0x0058 | 01 00 00 00 | uint32_t | 0x00000001 (1) | struct field `home.floors` of 'AnnotatedBinary.Building' (Int) - +0x005C | 02 00 00 00 | uint32_t | 0x00000002 (2) | struct field `home.doors` of 'AnnotatedBinary.Building' (Int) - +0x0060 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | struct field `home.windows` of 'AnnotatedBinary.Building' (Int) - +0x0064 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | array field `home.dimensions.values`[0] of 'AnnotatedBinary.Dimension' (Int) - +0x0068 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | array field `home.dimensions.values`[1] of 'AnnotatedBinary.Dimension' (Int) - +0x006C | 14 00 00 00 | uint32_t | 0x00000014 (20) | array field `home.dimensions.values`[2] of 'AnnotatedBinary.Dimension' (Int) - +0x0070 | 01 | uint8_t | 0x01 (1) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte) - +0x0071 | 02 | uint8_t | 0x02 (2) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte) - +0x0072 | 03 | uint8_t | 0x03 (3) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte) - +0x0073 | 00 | uint8_t[1] | . | padding - +0x0074 | C8 01 00 00 | UOffset32 | 0x000001C8 (456) Loc: +0x023C | ERROR: offset to field `name`. Invalid offset, points outside the binary. - +0x0078 | 5C 01 00 00 | UOffset32 | 0x0000015C (348) Loc: +0x01D4 | offset to field `bars` (vector) - +0x007C | 50 01 00 00 | UOffset32 | 0x00000150 (336) Loc: +0x01CC | offset to field `bar_baz` (union of type `Baz`) - +0x0080 | 34 01 00 00 | UOffset32 | 0x00000134 (308) Loc: +0x01B4 | offset to field `accounts` (vector) - +0x0084 | 24 01 00 00 | UOffset32 | 0x00000124 (292) Loc: +0x01A8 | offset to field `bob` (string) - +0x0088 | 14 01 00 00 | UOffset32 | 0x00000114 (276) Loc: +0x019C | offset to field `alice` (string) - +0x008C | 0D 00 00 00 | uint32_t | 0x0000000D (13) | table field `just_i32` (Int) - +0x0090 | DC 00 00 00 | UOffset32 | 0x000000DC (220) Loc: +0x016C | offset to field `names` (vector) - +0x0094 | A0 00 00 00 | UOffset32 | 0x000000A0 (160) Loc: +0x0134 | offset to field `points_of_interest` (vector) - +0x0098 | 94 00 00 00 | UOffset32 | 0x00000094 (148) Loc: +0x012C | offset to field `foobars_type` (vector) - +0x009C | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: +0x00D4 | offset to field `foobars` (vector) - +0x00A0 | 33 00 00 00 | UOffset32 | 0x00000033 (51) Loc: +0x00D3 | offset to field `measurement` (union of type `Tolerance`) - +0x00A4 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: +0x00C0 | offset to field `anything` (union of type `Bar`) - +0x00A8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x00AC | offset to field `charlie` (string) + +0x0044 | 3A 00 00 00 | SOffset32 | 0x0000003A (58) Loc: 0x000A | offset to vtable + +0x0048 | 00 00 00 | uint8_t[3] | ... | padding + +0x004B | 01 | uint8_t | 0x01 (1) | table field `healthy` (Bool) + +0x004C | 02 | uint8_t | 0x02 (2) | table field `meal` (Byte) + +0x004D | 02 | UType8 | 0x02 (2) | table field `bar_baz_type` (UType) + +0x004E | 01 | UType8 | 0x01 (1) | table field `measurement_type` (UType) + +0x004F | 01 | UType8 | 0x01 (1) | table field `anything_type` (UType) + +0x0050 | D2 04 00 00 | uint32_t | 0x000004D2 (1234) | table field `counter` (Int) + +0x0054 | 28 02 00 00 | UOffset32 | 0x00000228 (552) Loc: 0x027C | ERROR: offset to field `bar`. Invalid offset, points outside the binary. + +0x0058 | 01 00 00 00 | uint32_t | 0x00000001 (1) | struct field `home.floors` of 'AnnotatedBinary.Building' (Int) + +0x005C | 02 00 00 00 | uint32_t | 0x00000002 (2) | struct field `home.doors` of 'AnnotatedBinary.Building' (Int) + +0x0060 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | struct field `home.windows` of 'AnnotatedBinary.Building' (Int) + +0x0064 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | array field `home.dimensions.values`[0] of 'AnnotatedBinary.Dimension' (Int) + +0x0068 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | array field `home.dimensions.values`[1] of 'AnnotatedBinary.Dimension' (Int) + +0x006C | 14 00 00 00 | uint32_t | 0x00000014 (20) | array field `home.dimensions.values`[2] of 'AnnotatedBinary.Dimension' (Int) + +0x0070 | 01 | uint8_t | 0x01 (1) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte) + +0x0071 | 02 | uint8_t | 0x02 (2) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte) + +0x0072 | 03 | uint8_t | 0x03 (3) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte) + +0x0073 | 00 | uint8_t[1] | . | padding + +0x0074 | C8 01 00 00 | UOffset32 | 0x000001C8 (456) Loc: 0x023C | ERROR: offset to field `name`. Invalid offset, points outside the binary. + +0x0078 | 5C 01 00 00 | UOffset32 | 0x0000015C (348) Loc: 0x01D4 | offset to field `bars` (vector) + +0x007C | 50 01 00 00 | UOffset32 | 0x00000150 (336) Loc: 0x01CC | offset to field `bar_baz` (union of type `Baz`) + +0x0080 | 34 01 00 00 | UOffset32 | 0x00000134 (308) Loc: 0x01B4 | offset to field `accounts` (vector) + +0x0084 | 24 01 00 00 | UOffset32 | 0x00000124 (292) Loc: 0x01A8 | offset to field `bob` (string) + +0x0088 | 14 01 00 00 | UOffset32 | 0x00000114 (276) Loc: 0x019C | offset to field `alice` (string) + +0x008C | 0D 00 00 00 | uint32_t | 0x0000000D (13) | table field `just_i32` (Int) + +0x0090 | DC 00 00 00 | UOffset32 | 0x000000DC (220) Loc: 0x016C | offset to field `names` (vector) + +0x0094 | A0 00 00 00 | UOffset32 | 0x000000A0 (160) Loc: 0x0134 | offset to field `points_of_interest` (vector) + +0x0098 | 94 00 00 00 | UOffset32 | 0x00000094 (148) Loc: 0x012C | offset to field `foobars_type` (vector) + +0x009C | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: 0x00D4 | offset to field `foobars` (vector) + +0x00A0 | 33 00 00 00 | UOffset32 | 0x00000033 (51) Loc: 0x00D3 | offset to field `measurement` (union of type `Tolerance`) + +0x00A4 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: 0x00C0 | offset to field `anything` (union of type `Bar`) + +0x00A8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x00AC | offset to field `charlie` (string) string (AnnotatedBinary.Foo.charlie): - +0x00AC | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string - +0x00B0 | 61 6C 69 63 65 | char[5] | alice | string literal - +0x00B5 | 00 | char | 0x00 (0) | string terminator + +0x00AC | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string + +0x00B0 | 61 6C 69 63 65 | char[5] | alice | string literal + +0x00B5 | 00 | char | 0x00 (0) | string terminator padding: - +0x00B6 | 00 00 | uint8_t[2] | .. | padding + +0x00B6 | 00 00 | uint8_t[2] | .. | padding vtable (AnnotatedBinary.Bar): - +0x00B8 | 08 00 | uint16_t | 0x0008 (8) | size of this vtable - +0x00BA | 13 00 | uint16_t | 0x0013 (19) | size of referring table - +0x00BC | 08 00 | VOffset16 | 0x0008 (8) | offset to field `a` (id: 0) - +0x00BE | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1) + +0x00B8 | 08 00 | uint16_t | 0x0008 (8) | size of this vtable + +0x00BA | 13 00 | uint16_t | 0x0013 (19) | size of referring table + +0x00BC | 08 00 | VOffset16 | 0x0008 (8) | offset to field `a` (id: 0) + +0x00BE | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1) table (AnnotatedBinary.Bar): - +0x00C0 | 08 00 00 00 | SOffset32 | 0x00000008 (8) Loc: +0x00B8 | offset to vtable - +0x00C4 | 00 80 23 44 | float | 0x44238000 (654) | table field `b` (Float) - +0x00C8 | 00 00 00 00 00 10 74 40 | double | 0x4074100000000000 (321) | table field `a` (Double) - +0x00D0 | 00 00 00 | uint8_t[3] | ... | padding + +0x00C0 | 08 00 00 00 | SOffset32 | 0x00000008 (8) Loc: 0x00B8 | offset to vtable + +0x00C4 | 00 80 23 44 | float | 0x44238000 (654) | table field `b` (Float) + +0x00C8 | 00 00 00 00 00 10 74 40 | double | 0x4074100000000000 (321) | table field `a` (Double) + +0x00D0 | 00 00 00 | uint8_t[3] | ... | padding union (AnnotatedBinary.Tolerance.measurement): - +0x00D3 | 05 | uint8_t | 0x05 (5) | struct field `measurement.width` of 'AnnotatedBinary.Tolerance' (UByte) + +0x00D3 | 05 | uint8_t | 0x05 (5) | struct field `measurement.width` of 'AnnotatedBinary.Tolerance' (UByte) vector (AnnotatedBinary.Foo.foobars): - +0x00D4 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) - +0x00D8 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x010C | offset to union[0] (`Bar`) - +0x00DC | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: +0x0108 | offset to union[1] (`Baz`) - +0x00E0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x00E4 | offset to union[2] (`Bar`) + +0x00D4 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) + +0x00D8 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: 0x010C | offset to union[0] (`Bar`) + +0x00DC | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: 0x0108 | offset to union[1] (`Baz`) + +0x00E0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x00E4 | offset to union[2] (`Bar`) table (AnnotatedBinary.Bar): - +0x00E4 | D2 FE FF FF | SOffset32 | 0xFFFFFED2 (-302) Loc: +0x0212 | ERROR: offset to vtable. Invalid offset, points outside the binary. + +0x00E4 | D2 FE FF FF | SOffset32 | 0xFFFFFED2 (-302) Loc: 0x0212 | ERROR: offset to vtable. Invalid offset, points outside the binary. unknown (no known references): - +0x00E8 | 00 80 23 44 10 00 00 00 | ?uint8_t[28] | ..#D.... | WARN: nothing refers to this section. + +0x00E8 | 00 80 23 44 10 00 00 00 | ?uint8_t[28] | ..#D.... | WARN: nothing refers to this section. +0x00F0 | 00 00 00 00 00 D8 8E 40 | | .......@ +0x00F8 | 00 00 00 00 6A FE FF FF | | ....j... +0x0100 | 00 00 00 03 | | .... vtable (AnnotatedBinary.Baz): - +0x0104 | 04 00 | uint16_t | 0x0004 (4) | size of this vtable - +0x0106 | 04 00 | uint16_t | 0x0004 (4) | size of referring table + +0x0104 | 04 00 | uint16_t | 0x0004 (4) | size of this vtable + +0x0106 | 04 00 | uint16_t | 0x0004 (4) | size of referring table table (AnnotatedBinary.Baz): - +0x0108 | 04 00 00 00 | SOffset32 | 0x00000004 (4) Loc: +0x0104 | offset to vtable + +0x0108 | 04 00 00 00 | SOffset32 | 0x00000004 (4) Loc: 0x0104 | offset to vtable table (AnnotatedBinary.Bar): - +0x010C | FA FE FF FF | SOffset32 | 0xFFFFFEFA (-262) Loc: +0x0212 | ERROR: offset to vtable. Invalid offset, points outside the binary. + +0x010C | FA FE FF FF | SOffset32 | 0xFFFFFEFA (-262) Loc: 0x0212 | ERROR: offset to vtable. Invalid offset, points outside the binary. unknown (no known references): - +0x0110 | 00 00 E4 43 10 00 00 00 | ?uint8_t[28] | ...C.... | WARN: nothing refers to this section. + +0x0110 | 00 00 E4 43 10 00 00 00 | ?uint8_t[28] | ...C.... | WARN: nothing refers to this section. +0x0118 | 00 00 00 00 00 C0 5E 40 | | ......^@ +0x0120 | 00 00 00 00 92 FE FF FF | | ........ +0x0128 | 00 00 00 01 | | .... vector (AnnotatedBinary.Foo.foobars_type): - +0x012C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) - +0x0130 | 01 | UType8 | 0x01 (1) | value[0] - +0x0131 | 02 | UType8 | 0x02 (2) | value[1] - +0x0132 | 01 | UType8 | 0x01 (1) | value[2] + +0x012C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) + +0x0130 | 01 | UType8 | 0x01 (1) | value[0] + +0x0131 | 02 | UType8 | 0x02 (2) | value[1] + +0x0132 | 01 | UType8 | 0x01 (1) | value[2] vector (AnnotatedBinary.Foo.points_of_interest): - +0x0134 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) - +0x0138 | 33 33 33 33 33 A3 45 40 | double | 0x4045A33333333333 (43.275) | struct field `[0].latitude` of 'AnnotatedBinary.Location' (Double) - +0x0140 | 7E 57 04 FF 5B 87 53 C0 | double | 0xC053875BFF04577E (-78.115) | struct field `[0].longitude` of 'AnnotatedBinary.Location' (Double) - +0x0148 | 8D F0 F6 20 04 B6 42 40 | double | 0x4042B60420F6F08D (37.422) | struct field `[1].latitude` of 'AnnotatedBinary.Location' (Double) - +0x0150 | 9F 77 63 41 61 85 5E C0 | double | 0xC05E85614163779F (-122.084) | struct field `[1].longitude` of 'AnnotatedBinary.Location' (Double) - +0x0158 | 8F 35 23 83 DC 35 4B C0 | double | 0xC04B35DC8323358F (-54.4208) | struct field `[2].latitude` of 'AnnotatedBinary.Location' (Double) - +0x0160 | F6 97 DD 93 87 C5 0A 40 | double | 0x400AC58793DD97F6 (3.34645) | struct field `[2].longitude` of 'AnnotatedBinary.Location' (Double) + +0x0134 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) + +0x0138 | 33 33 33 33 33 A3 45 40 | double | 0x4045A33333333333 (43.275) | struct field `[0].latitude` of 'AnnotatedBinary.Location' (Double) + +0x0140 | 7E 57 04 FF 5B 87 53 C0 | double | 0xC053875BFF04577E (-78.115) | struct field `[0].longitude` of 'AnnotatedBinary.Location' (Double) + +0x0148 | 8D F0 F6 20 04 B6 42 40 | double | 0x4042B60420F6F08D (37.422) | struct field `[1].latitude` of 'AnnotatedBinary.Location' (Double) + +0x0150 | 9F 77 63 41 61 85 5E C0 | double | 0xC05E85614163779F (-122.084) | struct field `[1].longitude` of 'AnnotatedBinary.Location' (Double) + +0x0158 | 8F 35 23 83 DC 35 4B C0 | double | 0xC04B35DC8323358F (-54.4208) | struct field `[2].latitude` of 'AnnotatedBinary.Location' (Double) + +0x0160 | F6 97 DD 93 87 C5 0A 40 | double | 0x400AC58793DD97F6 (3.34645) | struct field `[2].longitude` of 'AnnotatedBinary.Location' (Double) padding: - +0x0168 | 00 00 00 00 | uint8_t[4] | .... | padding + +0x0168 | 00 00 00 00 | uint8_t[4] | .... | padding vector (AnnotatedBinary.Foo.names): - +0x016C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) - +0x0170 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x0190 | offset to string[0] - +0x0174 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x0188 | offset to string[1] - +0x0178 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x017C | offset to string[2] + +0x016C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) + +0x0170 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: 0x0190 | offset to string[0] + +0x0174 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: 0x0188 | offset to string[1] + +0x0178 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x017C | offset to string[2] string (AnnotatedBinary.Foo.names): - +0x017C | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string - +0x0180 | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal - +0x0187 | 00 | char | 0x00 (0) | string terminator + +0x017C | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string + +0x0180 | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal + +0x0187 | 00 | char | 0x00 (0) | string terminator string (AnnotatedBinary.Foo.names): - +0x0188 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string - +0x018C | 62 6F 62 | char[3] | bob | string literal - +0x018F | 00 | char | 0x00 (0) | string terminator + +0x0188 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string + +0x018C | 62 6F 62 | char[3] | bob | string literal + +0x018F | 00 | char | 0x00 (0) | string terminator string (AnnotatedBinary.Foo.names): - +0x0190 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string - +0x0194 | 61 6C 69 63 65 | char[5] | alice | string literal - +0x0199 | 00 | char | 0x00 (0) | string terminator + +0x0190 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string + +0x0194 | 61 6C 69 63 65 | char[5] | alice | string literal + +0x0199 | 00 | char | 0x00 (0) | string terminator padding: - +0x019A | 00 00 | uint8_t[2] | .. | padding + +0x019A | 00 00 | uint8_t[2] | .. | padding string (AnnotatedBinary.Foo.alice): - +0x019C | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string - +0x01A0 | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal - +0x01A7 | 00 | char | 0x00 (0) | string terminator + +0x019C | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string + +0x01A0 | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal + +0x01A7 | 00 | char | 0x00 (0) | string terminator string (AnnotatedBinary.Foo.bob): - +0x01A8 | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string - +0x01AC | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal - +0x01B3 | 00 | char | 0x00 (0) | string terminator + +0x01A8 | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string + +0x01AC | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal + +0x01B3 | 00 | char | 0x00 (0) | string terminator vector (AnnotatedBinary.Foo.accounts): - +0x01B4 | 09 00 00 00 | uint32_t | 0x00000009 (9) | length of vector (# items) - +0x01B8 | 09 00 | uint16_t | 0x0009 (9) | value[0] - +0x01BA | 08 00 | uint16_t | 0x0008 (8) | value[1] - +0x01BC | 07 00 | uint16_t | 0x0007 (7) | value[2] - +0x01BE | 01 00 | uint16_t | 0x0001 (1) | value[3] - +0x01C0 | 02 00 | uint16_t | 0x0002 (2) | value[4] - +0x01C2 | 03 00 | uint16_t | 0x0003 (3) | value[5] - +0x01C4 | 06 00 | uint16_t | 0x0006 (6) | value[6] - +0x01C6 | 05 00 | uint16_t | 0x0005 (5) | value[7] - +0x01C8 | 04 00 | uint16_t | 0x0004 (4) | value[8] + +0x01B4 | 09 00 00 00 | uint32_t | 0x00000009 (9) | length of vector (# items) + +0x01B8 | 09 00 | uint16_t | 0x0009 (9) | value[0] + +0x01BA | 08 00 | uint16_t | 0x0008 (8) | value[1] + +0x01BC | 07 00 | uint16_t | 0x0007 (7) | value[2] + +0x01BE | 01 00 | uint16_t | 0x0001 (1) | value[3] + +0x01C0 | 02 00 | uint16_t | 0x0002 (2) | value[4] + +0x01C2 | 03 00 | uint16_t | 0x0003 (3) | value[5] + +0x01C4 | 06 00 | uint16_t | 0x0006 (6) | value[6] + +0x01C6 | 05 00 | uint16_t | 0x0005 (5) | value[7] + +0x01C8 | 04 00 | uint16_t | 0x0004 (4) | value[8] padding: - +0x01CA | 00 00 | uint8_t[2] | .. | padding + +0x01CA | 00 00 | uint8_t[2] | .. | padding table (AnnotatedBinary.Baz): - +0x01CC | 3A FF FF FF | SOffset32 | 0xFFFFFF3A (-198) Loc: +0x0292 | ERROR: offset to vtable. Invalid offset, points outside the binary. + +0x01CC | 3A FF FF FF | SOffset32 | 0xFFFFFF3A (-198) Loc: 0x0292 | ERROR: offset to vtable. Invalid offset, points outside the binary. unknown (no known references): - +0x01D0 | 00 00 00 03 | ?uint8_t[4] | .... | WARN: could be corrupted padding region. + +0x01D0 | 00 00 00 03 | ?uint8_t[4] | .... | WARN: could be corrupted padding region. vector (AnnotatedBinary.Foo.bars): - +0x01D4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | ERROR: length of vector (# items). Longer than the binary. + +0x01D4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | ERROR: length of vector (# items). Longer than the binary. unknown (no known references): - +0x01D8 | 44 00 00 00 10 00 | ?uint8_t[6] | D..... | WARN: could be corrupted padding region. + +0x01D8 | 44 00 00 00 10 00 | ?uint8_t[6] | D..... | WARN: could be corrupted padding region. diff --git a/tests/annotated_binary/tests/invalid_vector_union_type_value.afb b/tests/annotated_binary/tests/invalid_vector_union_type_value.afb index 4a0a109bb3..9300d3fac2 100644 --- a/tests/annotated_binary/tests/invalid_vector_union_type_value.afb +++ b/tests/annotated_binary/tests/invalid_vector_union_type_value.afb @@ -4,290 +4,290 @@ // Binary file: tests/invalid_vector_union_type_value.bin header: - +0x0000 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x0044 | offset to root table `AnnotatedBinary.Foo` - +0x0004 | 41 4E 4E 4F | char[4] | ANNO | File Identifier + +0x0000 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: 0x0044 | offset to root table `AnnotatedBinary.Foo` + +0x0004 | 41 4E 4E 4F | char[4] | ANNO | File Identifier padding: - +0x0008 | 00 00 | uint8_t[2] | .. | padding + +0x0008 | 00 00 | uint8_t[2] | .. | padding vtable (AnnotatedBinary.Foo): - +0x000A | 3A 00 | uint16_t | 0x003A (58) | size of this vtable - +0x000C | 68 00 | uint16_t | 0x0068 (104) | size of referring table - +0x000E | 0C 00 | VOffset16 | 0x000C (12) | offset to field `counter` (id: 0) - +0x0010 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `healthy` (id: 1) - +0x0012 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `level` (id: 2) (Long) - +0x0014 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `meal` (id: 3) - +0x0016 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `bar` (id: 4) - +0x0018 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `home` (id: 5) - +0x001A | 30 00 | VOffset16 | 0x0030 (48) | offset to field `name` (id: 6) - +0x001C | 34 00 | VOffset16 | 0x0034 (52) | offset to field `bars` (id: 7) - +0x001E | 09 00 | VOffset16 | 0x0009 (9) | offset to field `bar_baz_type` (id: 8) - +0x0020 | 38 00 | VOffset16 | 0x0038 (56) | offset to field `bar_baz` (id: 9) - +0x0022 | 3C 00 | VOffset16 | 0x003C (60) | offset to field `accounts` (id: 10) - +0x0024 | 40 00 | VOffset16 | 0x0040 (64) | offset to field `bob` (id: 11) - +0x0026 | 44 00 | VOffset16 | 0x0044 (68) | offset to field `alice` (id: 12) - +0x0028 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `maybe_i32` (id: 13) (Int) - +0x002A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_i32` (id: 14) (Int) - +0x002C | 48 00 | VOffset16 | 0x0048 (72) | offset to field `just_i32` (id: 15) - +0x002E | 4C 00 | VOffset16 | 0x004C (76) | offset to field `names` (id: 16) - +0x0030 | 50 00 | VOffset16 | 0x0050 (80) | offset to field `points_of_interest` (id: 17) - +0x0032 | 54 00 | VOffset16 | 0x0054 (84) | offset to field `foobars_type` (id: 18) - +0x0034 | 58 00 | VOffset16 | 0x0058 (88) | offset to field `foobars` (id: 19) - +0x0036 | 0A 00 | VOffset16 | 0x000A (10) | offset to field `measurement_type` (id: 20) - +0x0038 | 5C 00 | VOffset16 | 0x005C (92) | offset to field `measurement` (id: 21) - +0x003A | 0B 00 | VOffset16 | 0x000B (11) | offset to field `anything_type` (id: 22) - +0x003C | 60 00 | VOffset16 | 0x0060 (96) | offset to field `anything` (id: 23) - +0x003E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `temperature` (id: 24) (Float) - +0x0040 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `teetotaler` (id: 25) (Obj) - +0x0042 | 64 00 | VOffset16 | 0x0064 (100) | offset to field `charlie` (id: 26) + +0x000A | 3A 00 | uint16_t | 0x003A (58) | size of this vtable + +0x000C | 68 00 | uint16_t | 0x0068 (104) | size of referring table + +0x000E | 0C 00 | VOffset16 | 0x000C (12) | offset to field `counter` (id: 0) + +0x0010 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `healthy` (id: 1) + +0x0012 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `level` (id: 2) (Long) + +0x0014 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `meal` (id: 3) + +0x0016 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `bar` (id: 4) + +0x0018 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `home` (id: 5) + +0x001A | 30 00 | VOffset16 | 0x0030 (48) | offset to field `name` (id: 6) + +0x001C | 34 00 | VOffset16 | 0x0034 (52) | offset to field `bars` (id: 7) + +0x001E | 09 00 | VOffset16 | 0x0009 (9) | offset to field `bar_baz_type` (id: 8) + +0x0020 | 38 00 | VOffset16 | 0x0038 (56) | offset to field `bar_baz` (id: 9) + +0x0022 | 3C 00 | VOffset16 | 0x003C (60) | offset to field `accounts` (id: 10) + +0x0024 | 40 00 | VOffset16 | 0x0040 (64) | offset to field `bob` (id: 11) + +0x0026 | 44 00 | VOffset16 | 0x0044 (68) | offset to field `alice` (id: 12) + +0x0028 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `maybe_i32` (id: 13) (Int) + +0x002A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_i32` (id: 14) (Int) + +0x002C | 48 00 | VOffset16 | 0x0048 (72) | offset to field `just_i32` (id: 15) + +0x002E | 4C 00 | VOffset16 | 0x004C (76) | offset to field `names` (id: 16) + +0x0030 | 50 00 | VOffset16 | 0x0050 (80) | offset to field `points_of_interest` (id: 17) + +0x0032 | 54 00 | VOffset16 | 0x0054 (84) | offset to field `foobars_type` (id: 18) + +0x0034 | 58 00 | VOffset16 | 0x0058 (88) | offset to field `foobars` (id: 19) + +0x0036 | 0A 00 | VOffset16 | 0x000A (10) | offset to field `measurement_type` (id: 20) + +0x0038 | 5C 00 | VOffset16 | 0x005C (92) | offset to field `measurement` (id: 21) + +0x003A | 0B 00 | VOffset16 | 0x000B (11) | offset to field `anything_type` (id: 22) + +0x003C | 60 00 | VOffset16 | 0x0060 (96) | offset to field `anything` (id: 23) + +0x003E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `temperature` (id: 24) (Float) + +0x0040 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `teetotaler` (id: 25) (Obj) + +0x0042 | 64 00 | VOffset16 | 0x0064 (100) | offset to field `charlie` (id: 26) root_table (AnnotatedBinary.Foo): - +0x0044 | 3A 00 00 00 | SOffset32 | 0x0000003A (58) Loc: +0x000A | offset to vtable - +0x0048 | 00 00 00 | uint8_t[3] | ... | padding - +0x004B | 01 | uint8_t | 0x01 (1) | table field `healthy` (Bool) - +0x004C | 02 | uint8_t | 0x02 (2) | table field `meal` (Byte) - +0x004D | 02 | UType8 | 0x02 (2) | table field `bar_baz_type` (UType) - +0x004E | 01 | UType8 | 0x01 (1) | table field `measurement_type` (UType) - +0x004F | 01 | UType8 | 0x01 (1) | table field `anything_type` (UType) - +0x0050 | D2 04 00 00 | uint32_t | 0x000004D2 (1234) | table field `counter` (Int) - +0x0054 | 28 02 00 00 | UOffset32 | 0x00000228 (552) Loc: +0x027C | offset to field `bar` (table) - +0x0058 | 01 00 00 00 | uint32_t | 0x00000001 (1) | struct field `home.floors` of 'AnnotatedBinary.Building' (Int) - +0x005C | 02 00 00 00 | uint32_t | 0x00000002 (2) | struct field `home.doors` of 'AnnotatedBinary.Building' (Int) - +0x0060 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | struct field `home.windows` of 'AnnotatedBinary.Building' (Int) - +0x0064 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | array field `home.dimensions.values`[0] of 'AnnotatedBinary.Dimension' (Int) - +0x0068 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | array field `home.dimensions.values`[1] of 'AnnotatedBinary.Dimension' (Int) - +0x006C | 14 00 00 00 | uint32_t | 0x00000014 (20) | array field `home.dimensions.values`[2] of 'AnnotatedBinary.Dimension' (Int) - +0x0070 | 01 | uint8_t | 0x01 (1) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte) - +0x0071 | 02 | uint8_t | 0x02 (2) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte) - +0x0072 | 03 | uint8_t | 0x03 (3) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte) - +0x0073 | 00 | uint8_t[1] | . | padding - +0x0074 | C8 01 00 00 | UOffset32 | 0x000001C8 (456) Loc: +0x023C | offset to field `name` (string) - +0x0078 | 5C 01 00 00 | UOffset32 | 0x0000015C (348) Loc: +0x01D4 | offset to field `bars` (vector) - +0x007C | 50 01 00 00 | UOffset32 | 0x00000150 (336) Loc: +0x01CC | offset to field `bar_baz` (union of type `Baz`) - +0x0080 | 34 01 00 00 | UOffset32 | 0x00000134 (308) Loc: +0x01B4 | offset to field `accounts` (vector) - +0x0084 | 24 01 00 00 | UOffset32 | 0x00000124 (292) Loc: +0x01A8 | offset to field `bob` (string) - +0x0088 | 14 01 00 00 | UOffset32 | 0x00000114 (276) Loc: +0x019C | offset to field `alice` (string) - +0x008C | 0D 00 00 00 | uint32_t | 0x0000000D (13) | table field `just_i32` (Int) - +0x0090 | DC 00 00 00 | UOffset32 | 0x000000DC (220) Loc: +0x016C | offset to field `names` (vector) - +0x0094 | A0 00 00 00 | UOffset32 | 0x000000A0 (160) Loc: +0x0134 | offset to field `points_of_interest` (vector) - +0x0098 | 94 00 00 00 | UOffset32 | 0x00000094 (148) Loc: +0x012C | offset to field `foobars_type` (vector) - +0x009C | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: +0x00D4 | offset to field `foobars` (vector) - +0x00A0 | 33 00 00 00 | UOffset32 | 0x00000033 (51) Loc: +0x00D3 | offset to field `measurement` (union of type `Tolerance`) - +0x00A4 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: +0x00C0 | offset to field `anything` (union of type `Bar`) - +0x00A8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x00AC | offset to field `charlie` (string) + +0x0044 | 3A 00 00 00 | SOffset32 | 0x0000003A (58) Loc: 0x000A | offset to vtable + +0x0048 | 00 00 00 | uint8_t[3] | ... | padding + +0x004B | 01 | uint8_t | 0x01 (1) | table field `healthy` (Bool) + +0x004C | 02 | uint8_t | 0x02 (2) | table field `meal` (Byte) + +0x004D | 02 | UType8 | 0x02 (2) | table field `bar_baz_type` (UType) + +0x004E | 01 | UType8 | 0x01 (1) | table field `measurement_type` (UType) + +0x004F | 01 | UType8 | 0x01 (1) | table field `anything_type` (UType) + +0x0050 | D2 04 00 00 | uint32_t | 0x000004D2 (1234) | table field `counter` (Int) + +0x0054 | 28 02 00 00 | UOffset32 | 0x00000228 (552) Loc: 0x027C | offset to field `bar` (table) + +0x0058 | 01 00 00 00 | uint32_t | 0x00000001 (1) | struct field `home.floors` of 'AnnotatedBinary.Building' (Int) + +0x005C | 02 00 00 00 | uint32_t | 0x00000002 (2) | struct field `home.doors` of 'AnnotatedBinary.Building' (Int) + +0x0060 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | struct field `home.windows` of 'AnnotatedBinary.Building' (Int) + +0x0064 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | array field `home.dimensions.values`[0] of 'AnnotatedBinary.Dimension' (Int) + +0x0068 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | array field `home.dimensions.values`[1] of 'AnnotatedBinary.Dimension' (Int) + +0x006C | 14 00 00 00 | uint32_t | 0x00000014 (20) | array field `home.dimensions.values`[2] of 'AnnotatedBinary.Dimension' (Int) + +0x0070 | 01 | uint8_t | 0x01 (1) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte) + +0x0071 | 02 | uint8_t | 0x02 (2) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte) + +0x0072 | 03 | uint8_t | 0x03 (3) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte) + +0x0073 | 00 | uint8_t[1] | . | padding + +0x0074 | C8 01 00 00 | UOffset32 | 0x000001C8 (456) Loc: 0x023C | offset to field `name` (string) + +0x0078 | 5C 01 00 00 | UOffset32 | 0x0000015C (348) Loc: 0x01D4 | offset to field `bars` (vector) + +0x007C | 50 01 00 00 | UOffset32 | 0x00000150 (336) Loc: 0x01CC | offset to field `bar_baz` (union of type `Baz`) + +0x0080 | 34 01 00 00 | UOffset32 | 0x00000134 (308) Loc: 0x01B4 | offset to field `accounts` (vector) + +0x0084 | 24 01 00 00 | UOffset32 | 0x00000124 (292) Loc: 0x01A8 | offset to field `bob` (string) + +0x0088 | 14 01 00 00 | UOffset32 | 0x00000114 (276) Loc: 0x019C | offset to field `alice` (string) + +0x008C | 0D 00 00 00 | uint32_t | 0x0000000D (13) | table field `just_i32` (Int) + +0x0090 | DC 00 00 00 | UOffset32 | 0x000000DC (220) Loc: 0x016C | offset to field `names` (vector) + +0x0094 | A0 00 00 00 | UOffset32 | 0x000000A0 (160) Loc: 0x0134 | offset to field `points_of_interest` (vector) + +0x0098 | 94 00 00 00 | UOffset32 | 0x00000094 (148) Loc: 0x012C | offset to field `foobars_type` (vector) + +0x009C | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: 0x00D4 | offset to field `foobars` (vector) + +0x00A0 | 33 00 00 00 | UOffset32 | 0x00000033 (51) Loc: 0x00D3 | offset to field `measurement` (union of type `Tolerance`) + +0x00A4 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: 0x00C0 | offset to field `anything` (union of type `Bar`) + +0x00A8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x00AC | offset to field `charlie` (string) string (AnnotatedBinary.Foo.charlie): - +0x00AC | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string - +0x00B0 | 61 6C 69 63 65 | char[5] | alice | string literal - +0x00B5 | 00 | char | 0x00 (0) | string terminator + +0x00AC | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string + +0x00B0 | 61 6C 69 63 65 | char[5] | alice | string literal + +0x00B5 | 00 | char | 0x00 (0) | string terminator padding: - +0x00B6 | 00 00 | uint8_t[2] | .. | padding + +0x00B6 | 00 00 | uint8_t[2] | .. | padding vtable (AnnotatedBinary.Bar): - +0x00B8 | 08 00 | uint16_t | 0x0008 (8) | size of this vtable - +0x00BA | 13 00 | uint16_t | 0x0013 (19) | size of referring table - +0x00BC | 08 00 | VOffset16 | 0x0008 (8) | offset to field `a` (id: 0) - +0x00BE | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1) + +0x00B8 | 08 00 | uint16_t | 0x0008 (8) | size of this vtable + +0x00BA | 13 00 | uint16_t | 0x0013 (19) | size of referring table + +0x00BC | 08 00 | VOffset16 | 0x0008 (8) | offset to field `a` (id: 0) + +0x00BE | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1) table (AnnotatedBinary.Bar): - +0x00C0 | 08 00 00 00 | SOffset32 | 0x00000008 (8) Loc: +0x00B8 | offset to vtable - +0x00C4 | 00 80 23 44 | float | 0x44238000 (654) | table field `b` (Float) - +0x00C8 | 00 00 00 00 00 10 74 40 | double | 0x4074100000000000 (321) | table field `a` (Double) - +0x00D0 | 00 00 00 | uint8_t[3] | ... | padding + +0x00C0 | 08 00 00 00 | SOffset32 | 0x00000008 (8) Loc: 0x00B8 | offset to vtable + +0x00C4 | 00 80 23 44 | float | 0x44238000 (654) | table field `b` (Float) + +0x00C8 | 00 00 00 00 00 10 74 40 | double | 0x4074100000000000 (321) | table field `a` (Double) + +0x00D0 | 00 00 00 | uint8_t[3] | ... | padding union (AnnotatedBinary.Tolerance.measurement): - +0x00D3 | 05 | uint8_t | 0x05 (5) | struct field `measurement.width` of 'AnnotatedBinary.Tolerance' (UByte) + +0x00D3 | 05 | uint8_t | 0x05 (5) | struct field `measurement.width` of 'AnnotatedBinary.Tolerance' (UByte) vector (AnnotatedBinary.Foo.foobars): - +0x00D4 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) - +0x00D8 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x010C | offset to union[0] (`Bar`) - +0x00DC | 2C 00 00 00 | ?uint8_t[4] | ,... | WARN: nothing refers to this section. - +0x00E0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x00E4 | offset to union[2] (`Bar`) + +0x00D4 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) + +0x00D8 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: 0x010C | offset to union[0] (`Bar`) + +0x00DC | 2C 00 00 00 | ?uint8_t[4] | ,... | WARN: nothing refers to this section. + +0x00E0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x00E4 | offset to union[2] (`Bar`) table (AnnotatedBinary.Bar): - +0x00E4 | D2 FE FF FF | SOffset32 | 0xFFFFFED2 (-302) Loc: +0x0212 | offset to vtable - +0x00E8 | 00 80 23 44 | float | 0x44238000 (654) | table field `b` (Float) - +0x00EC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x00FC | offset to field `c` (table) - +0x00F0 | 00 00 00 00 00 D8 8E 40 | double | 0x408ED80000000000 (987) | table field `a` (Double) - +0x00F8 | 00 00 00 00 | uint8_t[4] | .... | padding + +0x00E4 | D2 FE FF FF | SOffset32 | 0xFFFFFED2 (-302) Loc: 0x0212 | offset to vtable + +0x00E8 | 00 80 23 44 | float | 0x44238000 (654) | table field `b` (Float) + +0x00EC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x00FC | offset to field `c` (table) + +0x00F0 | 00 00 00 00 00 D8 8E 40 | double | 0x408ED80000000000 (987) | table field `a` (Double) + +0x00F8 | 00 00 00 00 | uint8_t[4] | .... | padding table (AnnotatedBinary.Baz): - +0x00FC | 6A FE FF FF | SOffset32 | 0xFFFFFE6A (-406) Loc: +0x0292 | offset to vtable - +0x0100 | 00 00 00 | uint8_t[3] | ... | padding - +0x0103 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte) + +0x00FC | 6A FE FF FF | SOffset32 | 0xFFFFFE6A (-406) Loc: 0x0292 | offset to vtable + +0x0100 | 00 00 00 | uint8_t[3] | ... | padding + +0x0103 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte) unknown (no known references): - +0x0104 | 04 00 04 00 04 00 00 00 | ?uint8_t[8] | ........ | WARN: nothing refers to this section. + +0x0104 | 04 00 04 00 04 00 00 00 | ?uint8_t[8] | ........ | WARN: nothing refers to this section. table (AnnotatedBinary.Bar): - +0x010C | FA FE FF FF | SOffset32 | 0xFFFFFEFA (-262) Loc: +0x0212 | offset to vtable - +0x0110 | 00 00 E4 43 | float | 0x43E40000 (456) | table field `b` (Float) - +0x0114 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x0124 | offset to field `c` (table) - +0x0118 | 00 00 00 00 00 C0 5E 40 | double | 0x405EC00000000000 (123) | table field `a` (Double) - +0x0120 | 00 00 00 00 | uint8_t[4] | .... | padding + +0x010C | FA FE FF FF | SOffset32 | 0xFFFFFEFA (-262) Loc: 0x0212 | offset to vtable + +0x0110 | 00 00 E4 43 | float | 0x43E40000 (456) | table field `b` (Float) + +0x0114 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x0124 | offset to field `c` (table) + +0x0118 | 00 00 00 00 00 C0 5E 40 | double | 0x405EC00000000000 (123) | table field `a` (Double) + +0x0120 | 00 00 00 00 | uint8_t[4] | .... | padding table (AnnotatedBinary.Baz): - +0x0124 | 92 FE FF FF | SOffset32 | 0xFFFFFE92 (-366) Loc: +0x0292 | offset to vtable - +0x0128 | 00 00 00 | uint8_t[3] | ... | padding - +0x012B | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte) + +0x0124 | 92 FE FF FF | SOffset32 | 0xFFFFFE92 (-366) Loc: 0x0292 | offset to vtable + +0x0128 | 00 00 00 | uint8_t[3] | ... | padding + +0x012B | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte) vector (AnnotatedBinary.Foo.foobars_type): - +0x012C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) - +0x0130 | 01 | UType8 | 0x01 (1) | value[0] - +0x0131 | FF | UType8 | 0xFF (255) | ERROR: value[1]. Invalid union type value. - +0x0132 | 01 | UType8 | 0x01 (1) | value[2] + +0x012C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) + +0x0130 | 01 | UType8 | 0x01 (1) | value[0] + +0x0131 | FF | UType8 | 0xFF (255) | ERROR: value[1]. Invalid union type value. + +0x0132 | 01 | UType8 | 0x01 (1) | value[2] vector (AnnotatedBinary.Foo.points_of_interest): - +0x0134 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) - +0x0138 | 33 33 33 33 33 A3 45 40 | double | 0x4045A33333333333 (43.275) | struct field `[0].latitude` of 'AnnotatedBinary.Location' (Double) - +0x0140 | 7E 57 04 FF 5B 87 53 C0 | double | 0xC053875BFF04577E (-78.115) | struct field `[0].longitude` of 'AnnotatedBinary.Location' (Double) - +0x0148 | 8D F0 F6 20 04 B6 42 40 | double | 0x4042B60420F6F08D (37.422) | struct field `[1].latitude` of 'AnnotatedBinary.Location' (Double) - +0x0150 | 9F 77 63 41 61 85 5E C0 | double | 0xC05E85614163779F (-122.084) | struct field `[1].longitude` of 'AnnotatedBinary.Location' (Double) - +0x0158 | 8F 35 23 83 DC 35 4B C0 | double | 0xC04B35DC8323358F (-54.4208) | struct field `[2].latitude` of 'AnnotatedBinary.Location' (Double) - +0x0160 | F6 97 DD 93 87 C5 0A 40 | double | 0x400AC58793DD97F6 (3.34645) | struct field `[2].longitude` of 'AnnotatedBinary.Location' (Double) + +0x0134 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) + +0x0138 | 33 33 33 33 33 A3 45 40 | double | 0x4045A33333333333 (43.275) | struct field `[0].latitude` of 'AnnotatedBinary.Location' (Double) + +0x0140 | 7E 57 04 FF 5B 87 53 C0 | double | 0xC053875BFF04577E (-78.115) | struct field `[0].longitude` of 'AnnotatedBinary.Location' (Double) + +0x0148 | 8D F0 F6 20 04 B6 42 40 | double | 0x4042B60420F6F08D (37.422) | struct field `[1].latitude` of 'AnnotatedBinary.Location' (Double) + +0x0150 | 9F 77 63 41 61 85 5E C0 | double | 0xC05E85614163779F (-122.084) | struct field `[1].longitude` of 'AnnotatedBinary.Location' (Double) + +0x0158 | 8F 35 23 83 DC 35 4B C0 | double | 0xC04B35DC8323358F (-54.4208) | struct field `[2].latitude` of 'AnnotatedBinary.Location' (Double) + +0x0160 | F6 97 DD 93 87 C5 0A 40 | double | 0x400AC58793DD97F6 (3.34645) | struct field `[2].longitude` of 'AnnotatedBinary.Location' (Double) padding: - +0x0168 | 00 00 00 00 | uint8_t[4] | .... | padding + +0x0168 | 00 00 00 00 | uint8_t[4] | .... | padding vector (AnnotatedBinary.Foo.names): - +0x016C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) - +0x0170 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x0190 | offset to string[0] - +0x0174 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x0188 | offset to string[1] - +0x0178 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x017C | offset to string[2] + +0x016C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) + +0x0170 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: 0x0190 | offset to string[0] + +0x0174 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: 0x0188 | offset to string[1] + +0x0178 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x017C | offset to string[2] string (AnnotatedBinary.Foo.names): - +0x017C | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string - +0x0180 | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal - +0x0187 | 00 | char | 0x00 (0) | string terminator + +0x017C | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string + +0x0180 | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal + +0x0187 | 00 | char | 0x00 (0) | string terminator string (AnnotatedBinary.Foo.names): - +0x0188 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string - +0x018C | 62 6F 62 | char[3] | bob | string literal - +0x018F | 00 | char | 0x00 (0) | string terminator + +0x0188 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string + +0x018C | 62 6F 62 | char[3] | bob | string literal + +0x018F | 00 | char | 0x00 (0) | string terminator string (AnnotatedBinary.Foo.names): - +0x0190 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string - +0x0194 | 61 6C 69 63 65 | char[5] | alice | string literal - +0x0199 | 00 | char | 0x00 (0) | string terminator + +0x0190 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string + +0x0194 | 61 6C 69 63 65 | char[5] | alice | string literal + +0x0199 | 00 | char | 0x00 (0) | string terminator padding: - +0x019A | 00 00 | uint8_t[2] | .. | padding + +0x019A | 00 00 | uint8_t[2] | .. | padding string (AnnotatedBinary.Foo.alice): - +0x019C | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string - +0x01A0 | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal - +0x01A7 | 00 | char | 0x00 (0) | string terminator + +0x019C | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string + +0x01A0 | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal + +0x01A7 | 00 | char | 0x00 (0) | string terminator string (AnnotatedBinary.Foo.bob): - +0x01A8 | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string - +0x01AC | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal - +0x01B3 | 00 | char | 0x00 (0) | string terminator + +0x01A8 | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string + +0x01AC | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal + +0x01B3 | 00 | char | 0x00 (0) | string terminator vector (AnnotatedBinary.Foo.accounts): - +0x01B4 | 09 00 00 00 | uint32_t | 0x00000009 (9) | length of vector (# items) - +0x01B8 | 09 00 | uint16_t | 0x0009 (9) | value[0] - +0x01BA | 08 00 | uint16_t | 0x0008 (8) | value[1] - +0x01BC | 07 00 | uint16_t | 0x0007 (7) | value[2] - +0x01BE | 01 00 | uint16_t | 0x0001 (1) | value[3] - +0x01C0 | 02 00 | uint16_t | 0x0002 (2) | value[4] - +0x01C2 | 03 00 | uint16_t | 0x0003 (3) | value[5] - +0x01C4 | 06 00 | uint16_t | 0x0006 (6) | value[6] - +0x01C6 | 05 00 | uint16_t | 0x0005 (5) | value[7] - +0x01C8 | 04 00 | uint16_t | 0x0004 (4) | value[8] + +0x01B4 | 09 00 00 00 | uint32_t | 0x00000009 (9) | length of vector (# items) + +0x01B8 | 09 00 | uint16_t | 0x0009 (9) | value[0] + +0x01BA | 08 00 | uint16_t | 0x0008 (8) | value[1] + +0x01BC | 07 00 | uint16_t | 0x0007 (7) | value[2] + +0x01BE | 01 00 | uint16_t | 0x0001 (1) | value[3] + +0x01C0 | 02 00 | uint16_t | 0x0002 (2) | value[4] + +0x01C2 | 03 00 | uint16_t | 0x0003 (3) | value[5] + +0x01C4 | 06 00 | uint16_t | 0x0006 (6) | value[6] + +0x01C6 | 05 00 | uint16_t | 0x0005 (5) | value[7] + +0x01C8 | 04 00 | uint16_t | 0x0004 (4) | value[8] padding: - +0x01CA | 00 00 | uint8_t[2] | .. | padding + +0x01CA | 00 00 | uint8_t[2] | .. | padding table (AnnotatedBinary.Baz): - +0x01CC | 3A FF FF FF | SOffset32 | 0xFFFFFF3A (-198) Loc: +0x0292 | offset to vtable - +0x01D0 | 00 00 00 | uint8_t[3] | ... | padding - +0x01D3 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte) + +0x01CC | 3A FF FF FF | SOffset32 | 0xFFFFFF3A (-198) Loc: 0x0292 | offset to vtable + +0x01D0 | 00 00 00 | uint8_t[3] | ... | padding + +0x01D3 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte) vector (AnnotatedBinary.Foo.bars): - +0x01D4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) - +0x01D8 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x021C | offset to table[0] - +0x01DC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x01EC | offset to table[1] + +0x01D4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) + +0x01D8 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: 0x021C | offset to table[0] + +0x01DC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x01EC | offset to table[1] padding: - +0x01E0 | 00 00 | uint8_t[2] | .. | padding + +0x01E0 | 00 00 | uint8_t[2] | .. | padding vtable (AnnotatedBinary.Bar): - +0x01E2 | 0A 00 | uint16_t | 0x000A (10) | size of this vtable - +0x01E4 | 1A 00 | uint16_t | 0x001A (26) | size of referring table - +0x01E6 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `a` (id: 0) - +0x01E8 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1) - +0x01EA | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2) + +0x01E2 | 0A 00 | uint16_t | 0x000A (10) | size of this vtable + +0x01E4 | 1A 00 | uint16_t | 0x001A (26) | size of referring table + +0x01E6 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `a` (id: 0) + +0x01E8 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1) + +0x01EA | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2) table (AnnotatedBinary.Bar): - +0x01EC | 0A 00 00 00 | SOffset32 | 0x0000000A (10) Loc: +0x01E2 | offset to vtable - +0x01F0 | 00 80 23 44 | float | 0x44238000 (654) | table field `b` (Float) - +0x01F4 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x020C | offset to field `c` (table) - +0x01F8 | 00 00 00 00 00 D8 8E 40 | double | 0x408ED80000000000 (987) | table field `a` (Double) - +0x0200 | 00 00 00 00 00 00 | uint8_t[6] | ...... | padding + +0x01EC | 0A 00 00 00 | SOffset32 | 0x0000000A (10) Loc: 0x01E2 | offset to vtable + +0x01F0 | 00 80 23 44 | float | 0x44238000 (654) | table field `b` (Float) + +0x01F4 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: 0x020C | offset to field `c` (table) + +0x01F8 | 00 00 00 00 00 D8 8E 40 | double | 0x408ED80000000000 (987) | table field `a` (Double) + +0x0200 | 00 00 00 00 00 00 | uint8_t[6] | ...... | padding vtable (AnnotatedBinary.Baz): - +0x0206 | 06 00 | uint16_t | 0x0006 (6) | size of this vtable - +0x0208 | 06 00 | uint16_t | 0x0006 (6) | size of referring table - +0x020A | 05 00 | VOffset16 | 0x0005 (5) | offset to field `meal` (id: 0) + +0x0206 | 06 00 | uint16_t | 0x0006 (6) | size of this vtable + +0x0208 | 06 00 | uint16_t | 0x0006 (6) | size of referring table + +0x020A | 05 00 | VOffset16 | 0x0005 (5) | offset to field `meal` (id: 0) table (AnnotatedBinary.Baz): - +0x020C | 06 00 00 00 | SOffset32 | 0x00000006 (6) Loc: +0x0206 | offset to vtable - +0x0210 | 00 | uint8_t[1] | . | padding - +0x0211 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte) + +0x020C | 06 00 00 00 | SOffset32 | 0x00000006 (6) Loc: 0x0206 | offset to vtable + +0x0210 | 00 | uint8_t[1] | . | padding + +0x0211 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte) vtable (AnnotatedBinary.Bar): - +0x0212 | 0A 00 | uint16_t | 0x000A (10) | size of this vtable - +0x0214 | 18 00 | uint16_t | 0x0018 (24) | size of referring table - +0x0216 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `a` (id: 0) - +0x0218 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1) - +0x021A | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2) + +0x0212 | 0A 00 | uint16_t | 0x000A (10) | size of this vtable + +0x0214 | 18 00 | uint16_t | 0x0018 (24) | size of referring table + +0x0216 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `a` (id: 0) + +0x0218 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1) + +0x021A | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2) table (AnnotatedBinary.Bar): - +0x021C | 0A 00 00 00 | SOffset32 | 0x0000000A (10) Loc: +0x0212 | offset to vtable - +0x0220 | 00 00 E4 43 | float | 0x43E40000 (456) | table field `b` (Float) - +0x0224 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x0234 | offset to field `c` (table) - +0x0228 | 00 00 00 00 00 C0 5E 40 | double | 0x405EC00000000000 (123) | table field `a` (Double) - +0x0230 | 00 00 00 00 | uint8_t[4] | .... | padding + +0x021C | 0A 00 00 00 | SOffset32 | 0x0000000A (10) Loc: 0x0212 | offset to vtable + +0x0220 | 00 00 E4 43 | float | 0x43E40000 (456) | table field `b` (Float) + +0x0224 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x0234 | offset to field `c` (table) + +0x0228 | 00 00 00 00 00 C0 5E 40 | double | 0x405EC00000000000 (123) | table field `a` (Double) + +0x0230 | 00 00 00 00 | uint8_t[4] | .... | padding table (AnnotatedBinary.Baz): - +0x0234 | A2 FF FF FF | SOffset32 | 0xFFFFFFA2 (-94) Loc: +0x0292 | offset to vtable - +0x0238 | 00 00 00 | uint8_t[3] | ... | padding - +0x023B | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte) + +0x0234 | A2 FF FF FF | SOffset32 | 0xFFFFFFA2 (-94) Loc: 0x0292 | offset to vtable + +0x0238 | 00 00 00 | uint8_t[3] | ... | padding + +0x023B | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte) string (AnnotatedBinary.Foo.name): - +0x023C | 2F 00 00 00 | uint32_t | 0x0000002F (47) | length of string - +0x0240 | 54 68 69 73 20 69 73 20 | char[47] | This is | string literal + +0x023C | 2F 00 00 00 | uint32_t | 0x0000002F (47) | length of string + +0x0240 | 54 68 69 73 20 69 73 20 | char[47] | This is | string literal +0x0248 | 61 20 6C 6F 6E 67 20 73 | | a long s +0x0250 | 74 72 69 6E 67 20 74 6F | | tring to +0x0258 | 20 73 68 6F 77 20 68 6F | | show ho +0x0260 | 77 20 69 74 20 62 72 65 | | w it bre +0x0268 | 61 6B 73 20 75 70 2E | | aks up. - +0x026F | 00 | char | 0x00 (0) | string terminator + +0x026F | 00 | char | 0x00 (0) | string terminator padding: - +0x0270 | 00 00 | uint8_t[2] | .. | padding + +0x0270 | 00 00 | uint8_t[2] | .. | padding vtable (AnnotatedBinary.Bar): - +0x0272 | 0A 00 | uint16_t | 0x000A (10) | size of this vtable - +0x0274 | 16 00 | uint16_t | 0x0016 (22) | size of referring table - +0x0276 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `a` (id: 0) - +0x0278 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1) - +0x027A | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2) + +0x0272 | 0A 00 | uint16_t | 0x000A (10) | size of this vtable + +0x0274 | 16 00 | uint16_t | 0x0016 (22) | size of referring table + +0x0276 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `a` (id: 0) + +0x0278 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1) + +0x027A | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2) table (AnnotatedBinary.Bar): - +0x027C | 0A 00 00 00 | SOffset32 | 0x0000000A (10) Loc: +0x0272 | offset to vtable - +0x0280 | 65 20 71 49 | float | 0x49712065 (987654) | table field `b` (Float) - +0x0284 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x0298 | offset to field `c` (table) - +0x0288 | C9 76 BE 9F 0C 24 FE 40 | double | 0x40FE240C9FBE76C9 (123457) | table field `a` (Double) - +0x0290 | 00 00 | uint8_t[2] | .. | padding + +0x027C | 0A 00 00 00 | SOffset32 | 0x0000000A (10) Loc: 0x0272 | offset to vtable + +0x0280 | 65 20 71 49 | float | 0x49712065 (987654) | table field `b` (Float) + +0x0284 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: 0x0298 | offset to field `c` (table) + +0x0288 | C9 76 BE 9F 0C 24 FE 40 | double | 0x40FE240C9FBE76C9 (123457) | table field `a` (Double) + +0x0290 | 00 00 | uint8_t[2] | .. | padding vtable (AnnotatedBinary.Baz): - +0x0292 | 06 00 | uint16_t | 0x0006 (6) | size of this vtable - +0x0294 | 08 00 | uint16_t | 0x0008 (8) | size of referring table - +0x0296 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `meal` (id: 0) + +0x0292 | 06 00 | uint16_t | 0x0006 (6) | size of this vtable + +0x0294 | 08 00 | uint16_t | 0x0008 (8) | size of referring table + +0x0296 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `meal` (id: 0) table (AnnotatedBinary.Baz): - +0x0298 | 06 00 00 00 | SOffset32 | 0x00000006 (6) Loc: +0x0292 | offset to vtable - +0x029C | 00 00 00 | uint8_t[3] | ... | padding - +0x029F | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte) + +0x0298 | 06 00 00 00 | SOffset32 | 0x00000006 (6) Loc: 0x0292 | offset to vtable + +0x029C | 00 00 00 | uint8_t[3] | ... | padding + +0x029F | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte) diff --git a/tests/annotated_binary/tests/invalid_vector_unions_cut_short.afb b/tests/annotated_binary/tests/invalid_vector_unions_cut_short.afb index e3519c0c2f..4d5f71c9d8 100644 --- a/tests/annotated_binary/tests/invalid_vector_unions_cut_short.afb +++ b/tests/annotated_binary/tests/invalid_vector_unions_cut_short.afb @@ -4,207 +4,207 @@ // Binary file: tests/invalid_vector_unions_cut_short.bin header: - +0x0000 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x0044 | offset to root table `AnnotatedBinary.Foo` - +0x0004 | 41 4E 4E 4F | char[4] | ANNO | File Identifier + +0x0000 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: 0x0044 | offset to root table `AnnotatedBinary.Foo` + +0x0004 | 41 4E 4E 4F | char[4] | ANNO | File Identifier padding: - +0x0008 | 00 00 | uint8_t[2] | .. | padding + +0x0008 | 00 00 | uint8_t[2] | .. | padding vtable (AnnotatedBinary.Foo): - +0x000A | 3A 00 | uint16_t | 0x003A (58) | size of this vtable - +0x000C | 68 00 | uint16_t | 0x0068 (104) | size of referring table - +0x000E | 0C 00 | VOffset16 | 0x000C (12) | offset to field `counter` (id: 0) - +0x0010 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `healthy` (id: 1) - +0x0012 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `level` (id: 2) (Long) - +0x0014 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `meal` (id: 3) - +0x0016 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `bar` (id: 4) - +0x0018 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `home` (id: 5) - +0x001A | 30 00 | VOffset16 | 0x0030 (48) | offset to field `name` (id: 6) - +0x001C | 34 00 | VOffset16 | 0x0034 (52) | offset to field `bars` (id: 7) - +0x001E | 09 00 | VOffset16 | 0x0009 (9) | offset to field `bar_baz_type` (id: 8) - +0x0020 | 38 00 | VOffset16 | 0x0038 (56) | offset to field `bar_baz` (id: 9) - +0x0022 | 3C 00 | VOffset16 | 0x003C (60) | offset to field `accounts` (id: 10) - +0x0024 | 40 00 | VOffset16 | 0x0040 (64) | offset to field `bob` (id: 11) - +0x0026 | 44 00 | VOffset16 | 0x0044 (68) | offset to field `alice` (id: 12) - +0x0028 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `maybe_i32` (id: 13) (Int) - +0x002A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_i32` (id: 14) (Int) - +0x002C | 48 00 | VOffset16 | 0x0048 (72) | offset to field `just_i32` (id: 15) - +0x002E | 4C 00 | VOffset16 | 0x004C (76) | offset to field `names` (id: 16) - +0x0030 | 50 00 | VOffset16 | 0x0050 (80) | offset to field `points_of_interest` (id: 17) - +0x0032 | 54 00 | VOffset16 | 0x0054 (84) | offset to field `foobars_type` (id: 18) - +0x0034 | 58 00 | VOffset16 | 0x0058 (88) | offset to field `foobars` (id: 19) - +0x0036 | 0A 00 | VOffset16 | 0x000A (10) | offset to field `measurement_type` (id: 20) - +0x0038 | 5C 00 | VOffset16 | 0x005C (92) | offset to field `measurement` (id: 21) - +0x003A | 0B 00 | VOffset16 | 0x000B (11) | offset to field `anything_type` (id: 22) - +0x003C | 60 00 | VOffset16 | 0x0060 (96) | offset to field `anything` (id: 23) - +0x003E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `temperature` (id: 24) (Float) - +0x0040 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `teetotaler` (id: 25) (Obj) - +0x0042 | 64 00 | VOffset16 | 0x0064 (100) | offset to field `charlie` (id: 26) + +0x000A | 3A 00 | uint16_t | 0x003A (58) | size of this vtable + +0x000C | 68 00 | uint16_t | 0x0068 (104) | size of referring table + +0x000E | 0C 00 | VOffset16 | 0x000C (12) | offset to field `counter` (id: 0) + +0x0010 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `healthy` (id: 1) + +0x0012 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `level` (id: 2) (Long) + +0x0014 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `meal` (id: 3) + +0x0016 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `bar` (id: 4) + +0x0018 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `home` (id: 5) + +0x001A | 30 00 | VOffset16 | 0x0030 (48) | offset to field `name` (id: 6) + +0x001C | 34 00 | VOffset16 | 0x0034 (52) | offset to field `bars` (id: 7) + +0x001E | 09 00 | VOffset16 | 0x0009 (9) | offset to field `bar_baz_type` (id: 8) + +0x0020 | 38 00 | VOffset16 | 0x0038 (56) | offset to field `bar_baz` (id: 9) + +0x0022 | 3C 00 | VOffset16 | 0x003C (60) | offset to field `accounts` (id: 10) + +0x0024 | 40 00 | VOffset16 | 0x0040 (64) | offset to field `bob` (id: 11) + +0x0026 | 44 00 | VOffset16 | 0x0044 (68) | offset to field `alice` (id: 12) + +0x0028 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `maybe_i32` (id: 13) (Int) + +0x002A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_i32` (id: 14) (Int) + +0x002C | 48 00 | VOffset16 | 0x0048 (72) | offset to field `just_i32` (id: 15) + +0x002E | 4C 00 | VOffset16 | 0x004C (76) | offset to field `names` (id: 16) + +0x0030 | 50 00 | VOffset16 | 0x0050 (80) | offset to field `points_of_interest` (id: 17) + +0x0032 | 54 00 | VOffset16 | 0x0054 (84) | offset to field `foobars_type` (id: 18) + +0x0034 | 58 00 | VOffset16 | 0x0058 (88) | offset to field `foobars` (id: 19) + +0x0036 | 0A 00 | VOffset16 | 0x000A (10) | offset to field `measurement_type` (id: 20) + +0x0038 | 5C 00 | VOffset16 | 0x005C (92) | offset to field `measurement` (id: 21) + +0x003A | 0B 00 | VOffset16 | 0x000B (11) | offset to field `anything_type` (id: 22) + +0x003C | 60 00 | VOffset16 | 0x0060 (96) | offset to field `anything` (id: 23) + +0x003E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `temperature` (id: 24) (Float) + +0x0040 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `teetotaler` (id: 25) (Obj) + +0x0042 | 64 00 | VOffset16 | 0x0064 (100) | offset to field `charlie` (id: 26) root_table (AnnotatedBinary.Foo): - +0x0044 | 3A 00 00 00 | SOffset32 | 0x0000003A (58) Loc: +0x000A | offset to vtable - +0x0048 | 00 00 00 | uint8_t[3] | ... | padding - +0x004B | 01 | uint8_t | 0x01 (1) | table field `healthy` (Bool) - +0x004C | 02 | uint8_t | 0x02 (2) | table field `meal` (Byte) - +0x004D | 02 | UType8 | 0x02 (2) | table field `bar_baz_type` (UType) - +0x004E | 01 | UType8 | 0x01 (1) | table field `measurement_type` (UType) - +0x004F | 01 | UType8 | 0x01 (1) | table field `anything_type` (UType) - +0x0050 | D2 04 00 00 | uint32_t | 0x000004D2 (1234) | table field `counter` (Int) - +0x0054 | 28 02 00 00 | UOffset32 | 0x00000228 (552) Loc: +0x027C | ERROR: offset to field `bar`. Invalid offset, points outside the binary. - +0x0058 | 01 00 00 00 | uint32_t | 0x00000001 (1) | struct field `home.floors` of 'AnnotatedBinary.Building' (Int) - +0x005C | 02 00 00 00 | uint32_t | 0x00000002 (2) | struct field `home.doors` of 'AnnotatedBinary.Building' (Int) - +0x0060 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | struct field `home.windows` of 'AnnotatedBinary.Building' (Int) - +0x0064 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | array field `home.dimensions.values`[0] of 'AnnotatedBinary.Dimension' (Int) - +0x0068 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | array field `home.dimensions.values`[1] of 'AnnotatedBinary.Dimension' (Int) - +0x006C | 14 00 00 00 | uint32_t | 0x00000014 (20) | array field `home.dimensions.values`[2] of 'AnnotatedBinary.Dimension' (Int) - +0x0070 | 01 | uint8_t | 0x01 (1) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte) - +0x0071 | 02 | uint8_t | 0x02 (2) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte) - +0x0072 | 03 | uint8_t | 0x03 (3) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte) - +0x0073 | 00 | uint8_t[1] | . | padding - +0x0074 | C8 01 00 00 | UOffset32 | 0x000001C8 (456) Loc: +0x023C | ERROR: offset to field `name`. Invalid offset, points outside the binary. - +0x0078 | 5C 01 00 00 | UOffset32 | 0x0000015C (348) Loc: +0x01D4 | offset to field `bars` (vector) - +0x007C | 50 01 00 00 | UOffset32 | 0x00000150 (336) Loc: +0x01CC | offset to field `bar_baz` (union of type `Baz`) - +0x0080 | 34 01 00 00 | UOffset32 | 0x00000134 (308) Loc: +0x01B4 | offset to field `accounts` (vector) - +0x0084 | 24 01 00 00 | UOffset32 | 0x00000124 (292) Loc: +0x01A8 | offset to field `bob` (string) - +0x0088 | 14 01 00 00 | UOffset32 | 0x00000114 (276) Loc: +0x019C | offset to field `alice` (string) - +0x008C | 0D 00 00 00 | uint32_t | 0x0000000D (13) | table field `just_i32` (Int) - +0x0090 | DC 00 00 00 | UOffset32 | 0x000000DC (220) Loc: +0x016C | offset to field `names` (vector) - +0x0094 | A0 00 00 00 | UOffset32 | 0x000000A0 (160) Loc: +0x0134 | offset to field `points_of_interest` (vector) - +0x0098 | 94 00 00 00 | UOffset32 | 0x00000094 (148) Loc: +0x012C | offset to field `foobars_type` (vector) - +0x009C | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: +0x00D4 | offset to field `foobars` (vector) - +0x00A0 | 33 00 00 00 | UOffset32 | 0x00000033 (51) Loc: +0x00D3 | offset to field `measurement` (union of type `Tolerance`) - +0x00A4 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: +0x00C0 | offset to field `anything` (union of type `Bar`) - +0x00A8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x00AC | offset to field `charlie` (string) + +0x0044 | 3A 00 00 00 | SOffset32 | 0x0000003A (58) Loc: 0x000A | offset to vtable + +0x0048 | 00 00 00 | uint8_t[3] | ... | padding + +0x004B | 01 | uint8_t | 0x01 (1) | table field `healthy` (Bool) + +0x004C | 02 | uint8_t | 0x02 (2) | table field `meal` (Byte) + +0x004D | 02 | UType8 | 0x02 (2) | table field `bar_baz_type` (UType) + +0x004E | 01 | UType8 | 0x01 (1) | table field `measurement_type` (UType) + +0x004F | 01 | UType8 | 0x01 (1) | table field `anything_type` (UType) + +0x0050 | D2 04 00 00 | uint32_t | 0x000004D2 (1234) | table field `counter` (Int) + +0x0054 | 28 02 00 00 | UOffset32 | 0x00000228 (552) Loc: 0x027C | ERROR: offset to field `bar`. Invalid offset, points outside the binary. + +0x0058 | 01 00 00 00 | uint32_t | 0x00000001 (1) | struct field `home.floors` of 'AnnotatedBinary.Building' (Int) + +0x005C | 02 00 00 00 | uint32_t | 0x00000002 (2) | struct field `home.doors` of 'AnnotatedBinary.Building' (Int) + +0x0060 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | struct field `home.windows` of 'AnnotatedBinary.Building' (Int) + +0x0064 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | array field `home.dimensions.values`[0] of 'AnnotatedBinary.Dimension' (Int) + +0x0068 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | array field `home.dimensions.values`[1] of 'AnnotatedBinary.Dimension' (Int) + +0x006C | 14 00 00 00 | uint32_t | 0x00000014 (20) | array field `home.dimensions.values`[2] of 'AnnotatedBinary.Dimension' (Int) + +0x0070 | 01 | uint8_t | 0x01 (1) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte) + +0x0071 | 02 | uint8_t | 0x02 (2) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte) + +0x0072 | 03 | uint8_t | 0x03 (3) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte) + +0x0073 | 00 | uint8_t[1] | . | padding + +0x0074 | C8 01 00 00 | UOffset32 | 0x000001C8 (456) Loc: 0x023C | ERROR: offset to field `name`. Invalid offset, points outside the binary. + +0x0078 | 5C 01 00 00 | UOffset32 | 0x0000015C (348) Loc: 0x01D4 | offset to field `bars` (vector) + +0x007C | 50 01 00 00 | UOffset32 | 0x00000150 (336) Loc: 0x01CC | offset to field `bar_baz` (union of type `Baz`) + +0x0080 | 34 01 00 00 | UOffset32 | 0x00000134 (308) Loc: 0x01B4 | offset to field `accounts` (vector) + +0x0084 | 24 01 00 00 | UOffset32 | 0x00000124 (292) Loc: 0x01A8 | offset to field `bob` (string) + +0x0088 | 14 01 00 00 | UOffset32 | 0x00000114 (276) Loc: 0x019C | offset to field `alice` (string) + +0x008C | 0D 00 00 00 | uint32_t | 0x0000000D (13) | table field `just_i32` (Int) + +0x0090 | DC 00 00 00 | UOffset32 | 0x000000DC (220) Loc: 0x016C | offset to field `names` (vector) + +0x0094 | A0 00 00 00 | UOffset32 | 0x000000A0 (160) Loc: 0x0134 | offset to field `points_of_interest` (vector) + +0x0098 | 94 00 00 00 | UOffset32 | 0x00000094 (148) Loc: 0x012C | offset to field `foobars_type` (vector) + +0x009C | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: 0x00D4 | offset to field `foobars` (vector) + +0x00A0 | 33 00 00 00 | UOffset32 | 0x00000033 (51) Loc: 0x00D3 | offset to field `measurement` (union of type `Tolerance`) + +0x00A4 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: 0x00C0 | offset to field `anything` (union of type `Bar`) + +0x00A8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x00AC | offset to field `charlie` (string) string (AnnotatedBinary.Foo.charlie): - +0x00AC | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string - +0x00B0 | 61 6C 69 63 65 | char[5] | alice | string literal - +0x00B5 | 00 | char | 0x00 (0) | string terminator + +0x00AC | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string + +0x00B0 | 61 6C 69 63 65 | char[5] | alice | string literal + +0x00B5 | 00 | char | 0x00 (0) | string terminator padding: - +0x00B6 | 00 00 | uint8_t[2] | .. | padding + +0x00B6 | 00 00 | uint8_t[2] | .. | padding vtable (AnnotatedBinary.Bar): - +0x00B8 | 08 00 | uint16_t | 0x0008 (8) | size of this vtable - +0x00BA | 13 00 | uint16_t | 0x0013 (19) | size of referring table - +0x00BC | 08 00 | VOffset16 | 0x0008 (8) | offset to field `a` (id: 0) - +0x00BE | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1) + +0x00B8 | 08 00 | uint16_t | 0x0008 (8) | size of this vtable + +0x00BA | 13 00 | uint16_t | 0x0013 (19) | size of referring table + +0x00BC | 08 00 | VOffset16 | 0x0008 (8) | offset to field `a` (id: 0) + +0x00BE | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1) table (AnnotatedBinary.Bar): - +0x00C0 | 08 00 00 00 | SOffset32 | 0x00000008 (8) Loc: +0x00B8 | offset to vtable - +0x00C4 | 00 80 23 44 | float | 0x44238000 (654) | table field `b` (Float) - +0x00C8 | 00 00 00 00 00 10 74 40 | double | 0x4074100000000000 (321) | table field `a` (Double) - +0x00D0 | 00 00 00 | uint8_t[3] | ... | padding + +0x00C0 | 08 00 00 00 | SOffset32 | 0x00000008 (8) Loc: 0x00B8 | offset to vtable + +0x00C4 | 00 80 23 44 | float | 0x44238000 (654) | table field `b` (Float) + +0x00C8 | 00 00 00 00 00 10 74 40 | double | 0x4074100000000000 (321) | table field `a` (Double) + +0x00D0 | 00 00 00 | uint8_t[3] | ... | padding union (AnnotatedBinary.Tolerance.measurement): - +0x00D3 | 05 | uint8_t | 0x05 (5) | struct field `measurement.width` of 'AnnotatedBinary.Tolerance' (UByte) + +0x00D3 | 05 | uint8_t | 0x05 (5) | struct field `measurement.width` of 'AnnotatedBinary.Tolerance' (UByte) vector (AnnotatedBinary.Foo.foobars): - +0x00D4 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) - +0x00D8 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x010C | offset to union[0] (`Bar`) - +0x00DC | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: +0x0108 | offset to union[1] (`Baz`) - +0x00E0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x00E4 | offset to union[2] (`Bar`) + +0x00D4 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) + +0x00D8 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: 0x010C | offset to union[0] (`Bar`) + +0x00DC | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: 0x0108 | offset to union[1] (`Baz`) + +0x00E0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x00E4 | offset to union[2] (`Bar`) table (AnnotatedBinary.Bar): - +0x00E4 | D2 FE FF FF | SOffset32 | 0xFFFFFED2 (-302) Loc: +0x0212 | ERROR: offset to vtable. Invalid offset, points outside the binary. + +0x00E4 | D2 FE FF FF | SOffset32 | 0xFFFFFED2 (-302) Loc: 0x0212 | ERROR: offset to vtable. Invalid offset, points outside the binary. unknown (no known references): - +0x00E8 | 00 80 23 44 10 00 00 00 | ?uint8_t[28] | ..#D.... | WARN: nothing refers to this section. + +0x00E8 | 00 80 23 44 10 00 00 00 | ?uint8_t[28] | ..#D.... | WARN: nothing refers to this section. +0x00F0 | 00 00 00 00 00 D8 8E 40 | | .......@ +0x00F8 | 00 00 00 00 6A FE FF FF | | ....j... +0x0100 | 00 00 00 03 | | .... vtable (AnnotatedBinary.Baz): - +0x0104 | 04 00 | uint16_t | 0x0004 (4) | size of this vtable - +0x0106 | 04 00 | uint16_t | 0x0004 (4) | size of referring table + +0x0104 | 04 00 | uint16_t | 0x0004 (4) | size of this vtable + +0x0106 | 04 00 | uint16_t | 0x0004 (4) | size of referring table table (AnnotatedBinary.Baz): - +0x0108 | 04 00 00 00 | SOffset32 | 0x00000004 (4) Loc: +0x0104 | offset to vtable + +0x0108 | 04 00 00 00 | SOffset32 | 0x00000004 (4) Loc: 0x0104 | offset to vtable table (AnnotatedBinary.Bar): - +0x010C | FA FE FF FF | SOffset32 | 0xFFFFFEFA (-262) Loc: +0x0212 | ERROR: offset to vtable. Invalid offset, points outside the binary. + +0x010C | FA FE FF FF | SOffset32 | 0xFFFFFEFA (-262) Loc: 0x0212 | ERROR: offset to vtable. Invalid offset, points outside the binary. unknown (no known references): - +0x0110 | 00 00 E4 43 10 00 00 00 | ?uint8_t[28] | ...C.... | WARN: nothing refers to this section. + +0x0110 | 00 00 E4 43 10 00 00 00 | ?uint8_t[28] | ...C.... | WARN: nothing refers to this section. +0x0118 | 00 00 00 00 00 C0 5E 40 | | ......^@ +0x0120 | 00 00 00 00 92 FE FF FF | | ........ +0x0128 | 00 00 00 01 | | .... vector (AnnotatedBinary.Foo.foobars_type): - +0x012C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) - +0x0130 | 01 | UType8 | 0x01 (1) | value[0] - +0x0131 | 02 | UType8 | 0x02 (2) | value[1] - +0x0132 | 01 | UType8 | 0x01 (1) | value[2] + +0x012C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) + +0x0130 | 01 | UType8 | 0x01 (1) | value[0] + +0x0131 | 02 | UType8 | 0x02 (2) | value[1] + +0x0132 | 01 | UType8 | 0x01 (1) | value[2] vector (AnnotatedBinary.Foo.points_of_interest): - +0x0134 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) - +0x0138 | 33 33 33 33 33 A3 45 40 | double | 0x4045A33333333333 (43.275) | struct field `[0].latitude` of 'AnnotatedBinary.Location' (Double) - +0x0140 | 7E 57 04 FF 5B 87 53 C0 | double | 0xC053875BFF04577E (-78.115) | struct field `[0].longitude` of 'AnnotatedBinary.Location' (Double) - +0x0148 | 8D F0 F6 20 04 B6 42 40 | double | 0x4042B60420F6F08D (37.422) | struct field `[1].latitude` of 'AnnotatedBinary.Location' (Double) - +0x0150 | 9F 77 63 41 61 85 5E C0 | double | 0xC05E85614163779F (-122.084) | struct field `[1].longitude` of 'AnnotatedBinary.Location' (Double) - +0x0158 | 8F 35 23 83 DC 35 4B C0 | double | 0xC04B35DC8323358F (-54.4208) | struct field `[2].latitude` of 'AnnotatedBinary.Location' (Double) - +0x0160 | F6 97 DD 93 87 C5 0A 40 | double | 0x400AC58793DD97F6 (3.34645) | struct field `[2].longitude` of 'AnnotatedBinary.Location' (Double) + +0x0134 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) + +0x0138 | 33 33 33 33 33 A3 45 40 | double | 0x4045A33333333333 (43.275) | struct field `[0].latitude` of 'AnnotatedBinary.Location' (Double) + +0x0140 | 7E 57 04 FF 5B 87 53 C0 | double | 0xC053875BFF04577E (-78.115) | struct field `[0].longitude` of 'AnnotatedBinary.Location' (Double) + +0x0148 | 8D F0 F6 20 04 B6 42 40 | double | 0x4042B60420F6F08D (37.422) | struct field `[1].latitude` of 'AnnotatedBinary.Location' (Double) + +0x0150 | 9F 77 63 41 61 85 5E C0 | double | 0xC05E85614163779F (-122.084) | struct field `[1].longitude` of 'AnnotatedBinary.Location' (Double) + +0x0158 | 8F 35 23 83 DC 35 4B C0 | double | 0xC04B35DC8323358F (-54.4208) | struct field `[2].latitude` of 'AnnotatedBinary.Location' (Double) + +0x0160 | F6 97 DD 93 87 C5 0A 40 | double | 0x400AC58793DD97F6 (3.34645) | struct field `[2].longitude` of 'AnnotatedBinary.Location' (Double) padding: - +0x0168 | 00 00 00 00 | uint8_t[4] | .... | padding + +0x0168 | 00 00 00 00 | uint8_t[4] | .... | padding vector (AnnotatedBinary.Foo.names): - +0x016C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) - +0x0170 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x0190 | offset to string[0] - +0x0174 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x0188 | offset to string[1] - +0x0178 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x017C | offset to string[2] + +0x016C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) + +0x0170 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: 0x0190 | offset to string[0] + +0x0174 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: 0x0188 | offset to string[1] + +0x0178 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x017C | offset to string[2] string (AnnotatedBinary.Foo.names): - +0x017C | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string - +0x0180 | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal - +0x0187 | 00 | char | 0x00 (0) | string terminator + +0x017C | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string + +0x0180 | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal + +0x0187 | 00 | char | 0x00 (0) | string terminator string (AnnotatedBinary.Foo.names): - +0x0188 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string - +0x018C | 62 6F 62 | char[3] | bob | string literal - +0x018F | 00 | char | 0x00 (0) | string terminator + +0x0188 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string + +0x018C | 62 6F 62 | char[3] | bob | string literal + +0x018F | 00 | char | 0x00 (0) | string terminator string (AnnotatedBinary.Foo.names): - +0x0190 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string - +0x0194 | 61 6C 69 63 65 | char[5] | alice | string literal - +0x0199 | 00 | char | 0x00 (0) | string terminator + +0x0190 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string + +0x0194 | 61 6C 69 63 65 | char[5] | alice | string literal + +0x0199 | 00 | char | 0x00 (0) | string terminator padding: - +0x019A | 00 00 | uint8_t[2] | .. | padding + +0x019A | 00 00 | uint8_t[2] | .. | padding string (AnnotatedBinary.Foo.alice): - +0x019C | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string - +0x01A0 | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal - +0x01A7 | 00 | char | 0x00 (0) | string terminator + +0x019C | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string + +0x01A0 | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal + +0x01A7 | 00 | char | 0x00 (0) | string terminator string (AnnotatedBinary.Foo.bob): - +0x01A8 | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string - +0x01AC | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal - +0x01B3 | 00 | char | 0x00 (0) | string terminator + +0x01A8 | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string + +0x01AC | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal + +0x01B3 | 00 | char | 0x00 (0) | string terminator vector (AnnotatedBinary.Foo.accounts): - +0x01B4 | 09 00 00 00 | uint32_t | 0x00000009 (9) | length of vector (# items) - +0x01B8 | 09 00 | uint16_t | 0x0009 (9) | value[0] - +0x01BA | 08 00 | uint16_t | 0x0008 (8) | value[1] - +0x01BC | 07 00 | uint16_t | 0x0007 (7) | value[2] - +0x01BE | 01 00 | uint16_t | 0x0001 (1) | value[3] - +0x01C0 | 02 00 | uint16_t | 0x0002 (2) | value[4] - +0x01C2 | 03 00 | uint16_t | 0x0003 (3) | value[5] - +0x01C4 | 06 00 | uint16_t | 0x0006 (6) | value[6] - +0x01C6 | 05 00 | uint16_t | 0x0005 (5) | value[7] - +0x01C8 | 04 00 | uint16_t | 0x0004 (4) | value[8] + +0x01B4 | 09 00 00 00 | uint32_t | 0x00000009 (9) | length of vector (# items) + +0x01B8 | 09 00 | uint16_t | 0x0009 (9) | value[0] + +0x01BA | 08 00 | uint16_t | 0x0008 (8) | value[1] + +0x01BC | 07 00 | uint16_t | 0x0007 (7) | value[2] + +0x01BE | 01 00 | uint16_t | 0x0001 (1) | value[3] + +0x01C0 | 02 00 | uint16_t | 0x0002 (2) | value[4] + +0x01C2 | 03 00 | uint16_t | 0x0003 (3) | value[5] + +0x01C4 | 06 00 | uint16_t | 0x0006 (6) | value[6] + +0x01C6 | 05 00 | uint16_t | 0x0005 (5) | value[7] + +0x01C8 | 04 00 | uint16_t | 0x0004 (4) | value[8] padding: - +0x01CA | 00 00 | uint8_t[2] | .. | padding + +0x01CA | 00 00 | uint8_t[2] | .. | padding table (AnnotatedBinary.Baz): - +0x01CC | 3A FF FF FF | SOffset32 | 0xFFFFFF3A (-198) Loc: +0x0292 | ERROR: offset to vtable. Invalid offset, points outside the binary. + +0x01CC | 3A FF FF FF | SOffset32 | 0xFFFFFF3A (-198) Loc: 0x0292 | ERROR: offset to vtable. Invalid offset, points outside the binary. unknown (no known references): - +0x01D0 | 00 00 00 03 | ?uint8_t[4] | .... | WARN: could be corrupted padding region. + +0x01D0 | 00 00 00 03 | ?uint8_t[4] | .... | WARN: could be corrupted padding region. vector (AnnotatedBinary.Foo.bars): - +0x01D4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | ERROR: length of vector (# items). Longer than the binary. + +0x01D4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | ERROR: length of vector (# items). Longer than the binary. unknown (no known references): - +0x01D8 | 44 00 00 00 10 00 | ?uint8_t[6] | D..... | WARN: could be corrupted padding region. + +0x01D8 | 44 00 00 00 10 00 | ?uint8_t[6] | D..... | WARN: could be corrupted padding region. diff --git a/tests/annotated_binary/tests/invalid_vtable_field_offset.afb b/tests/annotated_binary/tests/invalid_vtable_field_offset.afb index ccfabc993a..cbd73d7895 100644 --- a/tests/annotated_binary/tests/invalid_vtable_field_offset.afb +++ b/tests/annotated_binary/tests/invalid_vtable_field_offset.afb @@ -4,283 +4,283 @@ // Binary file: tests/invalid_vtable_field_offset.bin header: - +0x0000 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x0044 | offset to root table `AnnotatedBinary.Foo` - +0x0004 | 41 4E 4E 4F | char[4] | ANNO | File Identifier + +0x0000 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: 0x0044 | offset to root table `AnnotatedBinary.Foo` + +0x0004 | 41 4E 4E 4F | char[4] | ANNO | File Identifier padding: - +0x0008 | 00 00 | uint8_t[2] | .. | padding + +0x0008 | 00 00 | uint8_t[2] | .. | padding vtable (AnnotatedBinary.Foo): - +0x000A | 3A 00 | uint16_t | 0x003A (58) | size of this vtable - +0x000C | 68 00 | uint16_t | 0x0068 (104) | size of referring table - +0x000E | 0C 00 | VOffset16 | 0x000C (12) | offset to field `counter` (id: 0) - +0x0010 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `healthy` (id: 1) - +0x0012 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `level` (id: 2) (Long) - +0x0014 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `meal` (id: 3) - +0x0016 | FF FF | VOffset16 | 0xFFFF (65535) | ERROR: offset to field `bar` (id: 4). Invalid offset, points outside the binary. - +0x0018 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `home` (id: 5) - +0x001A | 30 00 | VOffset16 | 0x0030 (48) | offset to field `name` (id: 6) - +0x001C | 34 00 | VOffset16 | 0x0034 (52) | offset to field `bars` (id: 7) - +0x001E | 09 00 | VOffset16 | 0x0009 (9) | offset to field `bar_baz_type` (id: 8) - +0x0020 | 38 00 | VOffset16 | 0x0038 (56) | offset to field `bar_baz` (id: 9) - +0x0022 | 3C 00 | VOffset16 | 0x003C (60) | offset to field `accounts` (id: 10) - +0x0024 | 40 00 | VOffset16 | 0x0040 (64) | offset to field `bob` (id: 11) - +0x0026 | 44 00 | VOffset16 | 0x0044 (68) | offset to field `alice` (id: 12) - +0x0028 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `maybe_i32` (id: 13) (Int) - +0x002A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_i32` (id: 14) (Int) - +0x002C | 48 00 | VOffset16 | 0x0048 (72) | offset to field `just_i32` (id: 15) - +0x002E | 4C 00 | VOffset16 | 0x004C (76) | offset to field `names` (id: 16) - +0x0030 | 50 00 | VOffset16 | 0x0050 (80) | offset to field `points_of_interest` (id: 17) - +0x0032 | 54 00 | VOffset16 | 0x0054 (84) | offset to field `foobars_type` (id: 18) - +0x0034 | 58 00 | VOffset16 | 0x0058 (88) | offset to field `foobars` (id: 19) - +0x0036 | 0A 00 | VOffset16 | 0x000A (10) | offset to field `measurement_type` (id: 20) - +0x0038 | 5C 00 | VOffset16 | 0x005C (92) | offset to field `measurement` (id: 21) - +0x003A | 0B 00 | VOffset16 | 0x000B (11) | offset to field `anything_type` (id: 22) - +0x003C | 60 00 | VOffset16 | 0x0060 (96) | offset to field `anything` (id: 23) - +0x003E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `temperature` (id: 24) (Float) - +0x0040 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `teetotaler` (id: 25) (Obj) - +0x0042 | 64 00 | VOffset16 | 0x0064 (100) | offset to field `charlie` (id: 26) - +0x0042 | 64 00 | VOffset16 | 0x0064 (100) | offset to unknown field (id: 26) + +0x000A | 3A 00 | uint16_t | 0x003A (58) | size of this vtable + +0x000C | 68 00 | uint16_t | 0x0068 (104) | size of referring table + +0x000E | 0C 00 | VOffset16 | 0x000C (12) | offset to field `counter` (id: 0) + +0x0010 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `healthy` (id: 1) + +0x0012 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `level` (id: 2) (Long) + +0x0014 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `meal` (id: 3) + +0x0016 | FF FF | VOffset16 | 0xFFFF (65535) | ERROR: offset to field `bar` (id: 4). Invalid offset, points outside the binary. + +0x0018 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `home` (id: 5) + +0x001A | 30 00 | VOffset16 | 0x0030 (48) | offset to field `name` (id: 6) + +0x001C | 34 00 | VOffset16 | 0x0034 (52) | offset to field `bars` (id: 7) + +0x001E | 09 00 | VOffset16 | 0x0009 (9) | offset to field `bar_baz_type` (id: 8) + +0x0020 | 38 00 | VOffset16 | 0x0038 (56) | offset to field `bar_baz` (id: 9) + +0x0022 | 3C 00 | VOffset16 | 0x003C (60) | offset to field `accounts` (id: 10) + +0x0024 | 40 00 | VOffset16 | 0x0040 (64) | offset to field `bob` (id: 11) + +0x0026 | 44 00 | VOffset16 | 0x0044 (68) | offset to field `alice` (id: 12) + +0x0028 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `maybe_i32` (id: 13) (Int) + +0x002A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_i32` (id: 14) (Int) + +0x002C | 48 00 | VOffset16 | 0x0048 (72) | offset to field `just_i32` (id: 15) + +0x002E | 4C 00 | VOffset16 | 0x004C (76) | offset to field `names` (id: 16) + +0x0030 | 50 00 | VOffset16 | 0x0050 (80) | offset to field `points_of_interest` (id: 17) + +0x0032 | 54 00 | VOffset16 | 0x0054 (84) | offset to field `foobars_type` (id: 18) + +0x0034 | 58 00 | VOffset16 | 0x0058 (88) | offset to field `foobars` (id: 19) + +0x0036 | 0A 00 | VOffset16 | 0x000A (10) | offset to field `measurement_type` (id: 20) + +0x0038 | 5C 00 | VOffset16 | 0x005C (92) | offset to field `measurement` (id: 21) + +0x003A | 0B 00 | VOffset16 | 0x000B (11) | offset to field `anything_type` (id: 22) + +0x003C | 60 00 | VOffset16 | 0x0060 (96) | offset to field `anything` (id: 23) + +0x003E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `temperature` (id: 24) (Float) + +0x0040 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `teetotaler` (id: 25) (Obj) + +0x0042 | 64 00 | VOffset16 | 0x0064 (100) | offset to field `charlie` (id: 26) + +0x0042 | 64 00 | VOffset16 | 0x0064 (100) | offset to unknown field (id: 26) root_table (AnnotatedBinary.Foo): - +0x0044 | 3A 00 00 00 | SOffset32 | 0x0000003A (58) Loc: +0x000A | offset to vtable - +0x0048 | 00 00 00 | uint8_t[3] | ... | padding - +0x004B | 01 | uint8_t | 0x01 (1) | table field `healthy` (Bool) - +0x004C | 02 | uint8_t | 0x02 (2) | table field `meal` (Byte) - +0x004D | 02 | UType8 | 0x02 (2) | table field `bar_baz_type` (UType) - +0x004E | 01 | UType8 | 0x01 (1) | table field `measurement_type` (UType) - +0x004F | 01 | UType8 | 0x01 (1) | table field `anything_type` (UType) - +0x0050 | D2 04 00 00 | uint32_t | 0x000004D2 (1234) | table field `counter` (Int) - +0x0054 | 28 02 00 00 | ?uint8_t[4] | (... | WARN: nothing refers to this section. - +0x0058 | 01 00 00 00 | uint32_t | 0x00000001 (1) | struct field `home.floors` of 'AnnotatedBinary.Building' (Int) - +0x005C | 02 00 00 00 | uint32_t | 0x00000002 (2) | struct field `home.doors` of 'AnnotatedBinary.Building' (Int) - +0x0060 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | struct field `home.windows` of 'AnnotatedBinary.Building' (Int) - +0x0064 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | array field `home.dimensions.values`[0] of 'AnnotatedBinary.Dimension' (Int) - +0x0068 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | array field `home.dimensions.values`[1] of 'AnnotatedBinary.Dimension' (Int) - +0x006C | 14 00 00 00 | uint32_t | 0x00000014 (20) | array field `home.dimensions.values`[2] of 'AnnotatedBinary.Dimension' (Int) - +0x0070 | 01 | uint8_t | 0x01 (1) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte) - +0x0071 | 02 | uint8_t | 0x02 (2) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte) - +0x0072 | 03 | uint8_t | 0x03 (3) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte) - +0x0073 | 00 | uint8_t[1] | . | padding - +0x0074 | C8 01 00 00 | UOffset32 | 0x000001C8 (456) Loc: +0x023C | offset to field `name` (string) - +0x0078 | 5C 01 00 00 | UOffset32 | 0x0000015C (348) Loc: +0x01D4 | offset to field `bars` (vector) - +0x007C | 50 01 00 00 | UOffset32 | 0x00000150 (336) Loc: +0x01CC | offset to field `bar_baz` (union of type `Baz`) - +0x0080 | 34 01 00 00 | UOffset32 | 0x00000134 (308) Loc: +0x01B4 | offset to field `accounts` (vector) - +0x0084 | 24 01 00 00 | UOffset32 | 0x00000124 (292) Loc: +0x01A8 | offset to field `bob` (string) - +0x0088 | 14 01 00 00 | UOffset32 | 0x00000114 (276) Loc: +0x019C | offset to field `alice` (string) - +0x008C | 0D 00 00 00 | uint32_t | 0x0000000D (13) | table field `just_i32` (Int) - +0x0090 | DC 00 00 00 | UOffset32 | 0x000000DC (220) Loc: +0x016C | offset to field `names` (vector) - +0x0094 | A0 00 00 00 | UOffset32 | 0x000000A0 (160) Loc: +0x0134 | offset to field `points_of_interest` (vector) - +0x0098 | 94 00 00 00 | UOffset32 | 0x00000094 (148) Loc: +0x012C | offset to field `foobars_type` (vector) - +0x009C | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: +0x00D4 | offset to field `foobars` (vector) - +0x00A0 | 33 00 00 00 | UOffset32 | 0x00000033 (51) Loc: +0x00D3 | offset to field `measurement` (union of type `Tolerance`) - +0x00A4 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: +0x00C0 | offset to field `anything` (union of type `Bar`) - +0x00A8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x00AC | offset to field `charlie` (string) + +0x0044 | 3A 00 00 00 | SOffset32 | 0x0000003A (58) Loc: 0x000A | offset to vtable + +0x0048 | 00 00 00 | uint8_t[3] | ... | padding + +0x004B | 01 | uint8_t | 0x01 (1) | table field `healthy` (Bool) + +0x004C | 02 | uint8_t | 0x02 (2) | table field `meal` (Byte) + +0x004D | 02 | UType8 | 0x02 (2) | table field `bar_baz_type` (UType) + +0x004E | 01 | UType8 | 0x01 (1) | table field `measurement_type` (UType) + +0x004F | 01 | UType8 | 0x01 (1) | table field `anything_type` (UType) + +0x0050 | D2 04 00 00 | uint32_t | 0x000004D2 (1234) | table field `counter` (Int) + +0x0054 | 28 02 00 00 | ?uint8_t[4] | (... | WARN: nothing refers to this section. + +0x0058 | 01 00 00 00 | uint32_t | 0x00000001 (1) | struct field `home.floors` of 'AnnotatedBinary.Building' (Int) + +0x005C | 02 00 00 00 | uint32_t | 0x00000002 (2) | struct field `home.doors` of 'AnnotatedBinary.Building' (Int) + +0x0060 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | struct field `home.windows` of 'AnnotatedBinary.Building' (Int) + +0x0064 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | array field `home.dimensions.values`[0] of 'AnnotatedBinary.Dimension' (Int) + +0x0068 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | array field `home.dimensions.values`[1] of 'AnnotatedBinary.Dimension' (Int) + +0x006C | 14 00 00 00 | uint32_t | 0x00000014 (20) | array field `home.dimensions.values`[2] of 'AnnotatedBinary.Dimension' (Int) + +0x0070 | 01 | uint8_t | 0x01 (1) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte) + +0x0071 | 02 | uint8_t | 0x02 (2) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte) + +0x0072 | 03 | uint8_t | 0x03 (3) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte) + +0x0073 | 00 | uint8_t[1] | . | padding + +0x0074 | C8 01 00 00 | UOffset32 | 0x000001C8 (456) Loc: 0x023C | offset to field `name` (string) + +0x0078 | 5C 01 00 00 | UOffset32 | 0x0000015C (348) Loc: 0x01D4 | offset to field `bars` (vector) + +0x007C | 50 01 00 00 | UOffset32 | 0x00000150 (336) Loc: 0x01CC | offset to field `bar_baz` (union of type `Baz`) + +0x0080 | 34 01 00 00 | UOffset32 | 0x00000134 (308) Loc: 0x01B4 | offset to field `accounts` (vector) + +0x0084 | 24 01 00 00 | UOffset32 | 0x00000124 (292) Loc: 0x01A8 | offset to field `bob` (string) + +0x0088 | 14 01 00 00 | UOffset32 | 0x00000114 (276) Loc: 0x019C | offset to field `alice` (string) + +0x008C | 0D 00 00 00 | uint32_t | 0x0000000D (13) | table field `just_i32` (Int) + +0x0090 | DC 00 00 00 | UOffset32 | 0x000000DC (220) Loc: 0x016C | offset to field `names` (vector) + +0x0094 | A0 00 00 00 | UOffset32 | 0x000000A0 (160) Loc: 0x0134 | offset to field `points_of_interest` (vector) + +0x0098 | 94 00 00 00 | UOffset32 | 0x00000094 (148) Loc: 0x012C | offset to field `foobars_type` (vector) + +0x009C | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: 0x00D4 | offset to field `foobars` (vector) + +0x00A0 | 33 00 00 00 | UOffset32 | 0x00000033 (51) Loc: 0x00D3 | offset to field `measurement` (union of type `Tolerance`) + +0x00A4 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: 0x00C0 | offset to field `anything` (union of type `Bar`) + +0x00A8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x00AC | offset to field `charlie` (string) string (AnnotatedBinary.Foo.charlie): - +0x00AC | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string - +0x00B0 | 61 6C 69 63 65 | char[5] | alice | string literal - +0x00B5 | 00 | char | 0x00 (0) | string terminator + +0x00AC | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string + +0x00B0 | 61 6C 69 63 65 | char[5] | alice | string literal + +0x00B5 | 00 | char | 0x00 (0) | string terminator padding: - +0x00B6 | 00 00 | uint8_t[2] | .. | padding + +0x00B6 | 00 00 | uint8_t[2] | .. | padding vtable (AnnotatedBinary.Bar): - +0x00B8 | 08 00 | uint16_t | 0x0008 (8) | size of this vtable - +0x00BA | 13 00 | uint16_t | 0x0013 (19) | size of referring table - +0x00BC | 08 00 | VOffset16 | 0x0008 (8) | offset to field `a` (id: 0) - +0x00BE | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1) + +0x00B8 | 08 00 | uint16_t | 0x0008 (8) | size of this vtable + +0x00BA | 13 00 | uint16_t | 0x0013 (19) | size of referring table + +0x00BC | 08 00 | VOffset16 | 0x0008 (8) | offset to field `a` (id: 0) + +0x00BE | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1) table (AnnotatedBinary.Bar): - +0x00C0 | 08 00 00 00 | SOffset32 | 0x00000008 (8) Loc: +0x00B8 | offset to vtable - +0x00C4 | 00 80 23 44 | float | 0x44238000 (654) | table field `b` (Float) - +0x00C8 | 00 00 00 00 00 10 74 40 | double | 0x4074100000000000 (321) | table field `a` (Double) - +0x00D0 | 00 00 00 | uint8_t[3] | ... | padding + +0x00C0 | 08 00 00 00 | SOffset32 | 0x00000008 (8) Loc: 0x00B8 | offset to vtable + +0x00C4 | 00 80 23 44 | float | 0x44238000 (654) | table field `b` (Float) + +0x00C8 | 00 00 00 00 00 10 74 40 | double | 0x4074100000000000 (321) | table field `a` (Double) + +0x00D0 | 00 00 00 | uint8_t[3] | ... | padding union (AnnotatedBinary.Tolerance.measurement): - +0x00D3 | 05 | uint8_t | 0x05 (5) | struct field `measurement.width` of 'AnnotatedBinary.Tolerance' (UByte) + +0x00D3 | 05 | uint8_t | 0x05 (5) | struct field `measurement.width` of 'AnnotatedBinary.Tolerance' (UByte) vector (AnnotatedBinary.Foo.foobars): - +0x00D4 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) - +0x00D8 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x010C | offset to union[0] (`Bar`) - +0x00DC | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: +0x0108 | offset to union[1] (`Baz`) - +0x00E0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x00E4 | offset to union[2] (`Bar`) + +0x00D4 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) + +0x00D8 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: 0x010C | offset to union[0] (`Bar`) + +0x00DC | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: 0x0108 | offset to union[1] (`Baz`) + +0x00E0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x00E4 | offset to union[2] (`Bar`) table (AnnotatedBinary.Bar): - +0x00E4 | D2 FE FF FF | SOffset32 | 0xFFFFFED2 (-302) Loc: +0x0212 | offset to vtable - +0x00E8 | 00 80 23 44 | float | 0x44238000 (654) | table field `b` (Float) - +0x00EC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x00FC | offset to field `c` (table) - +0x00F0 | 00 00 00 00 00 D8 8E 40 | double | 0x408ED80000000000 (987) | table field `a` (Double) - +0x00F8 | 00 00 00 00 | uint8_t[4] | .... | padding + +0x00E4 | D2 FE FF FF | SOffset32 | 0xFFFFFED2 (-302) Loc: 0x0212 | offset to vtable + +0x00E8 | 00 80 23 44 | float | 0x44238000 (654) | table field `b` (Float) + +0x00EC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x00FC | offset to field `c` (table) + +0x00F0 | 00 00 00 00 00 D8 8E 40 | double | 0x408ED80000000000 (987) | table field `a` (Double) + +0x00F8 | 00 00 00 00 | uint8_t[4] | .... | padding table (AnnotatedBinary.Baz): - +0x00FC | 6A FE FF FF | SOffset32 | 0xFFFFFE6A (-406) Loc: +0x0292 | offset to vtable - +0x0100 | 00 00 00 | uint8_t[3] | ... | padding - +0x0103 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte) + +0x00FC | 6A FE FF FF | SOffset32 | 0xFFFFFE6A (-406) Loc: 0x0292 | offset to vtable + +0x0100 | 00 00 00 | uint8_t[3] | ... | padding + +0x0103 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte) vtable (AnnotatedBinary.Baz): - +0x0104 | 04 00 | uint16_t | 0x0004 (4) | size of this vtable - +0x0106 | 04 00 | uint16_t | 0x0004 (4) | size of referring table + +0x0104 | 04 00 | uint16_t | 0x0004 (4) | size of this vtable + +0x0106 | 04 00 | uint16_t | 0x0004 (4) | size of referring table table (AnnotatedBinary.Baz): - +0x0108 | 04 00 00 00 | SOffset32 | 0x00000004 (4) Loc: +0x0104 | offset to vtable + +0x0108 | 04 00 00 00 | SOffset32 | 0x00000004 (4) Loc: 0x0104 | offset to vtable table (AnnotatedBinary.Bar): - +0x010C | FA FE FF FF | SOffset32 | 0xFFFFFEFA (-262) Loc: +0x0212 | offset to vtable - +0x0110 | 00 00 E4 43 | float | 0x43E40000 (456) | table field `b` (Float) - +0x0114 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x0124 | offset to field `c` (table) - +0x0118 | 00 00 00 00 00 C0 5E 40 | double | 0x405EC00000000000 (123) | table field `a` (Double) - +0x0120 | 00 00 00 00 | uint8_t[4] | .... | padding + +0x010C | FA FE FF FF | SOffset32 | 0xFFFFFEFA (-262) Loc: 0x0212 | offset to vtable + +0x0110 | 00 00 E4 43 | float | 0x43E40000 (456) | table field `b` (Float) + +0x0114 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x0124 | offset to field `c` (table) + +0x0118 | 00 00 00 00 00 C0 5E 40 | double | 0x405EC00000000000 (123) | table field `a` (Double) + +0x0120 | 00 00 00 00 | uint8_t[4] | .... | padding table (AnnotatedBinary.Baz): - +0x0124 | 92 FE FF FF | SOffset32 | 0xFFFFFE92 (-366) Loc: +0x0292 | offset to vtable - +0x0128 | 00 00 00 | uint8_t[3] | ... | padding - +0x012B | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte) + +0x0124 | 92 FE FF FF | SOffset32 | 0xFFFFFE92 (-366) Loc: 0x0292 | offset to vtable + +0x0128 | 00 00 00 | uint8_t[3] | ... | padding + +0x012B | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte) vector (AnnotatedBinary.Foo.foobars_type): - +0x012C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) - +0x0130 | 01 | UType8 | 0x01 (1) | value[0] - +0x0131 | 02 | UType8 | 0x02 (2) | value[1] - +0x0132 | 01 | UType8 | 0x01 (1) | value[2] + +0x012C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) + +0x0130 | 01 | UType8 | 0x01 (1) | value[0] + +0x0131 | 02 | UType8 | 0x02 (2) | value[1] + +0x0132 | 01 | UType8 | 0x01 (1) | value[2] vector (AnnotatedBinary.Foo.points_of_interest): - +0x0134 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) - +0x0138 | 33 33 33 33 33 A3 45 40 | double | 0x4045A33333333333 (43.275) | struct field `[0].latitude` of 'AnnotatedBinary.Location' (Double) - +0x0140 | 7E 57 04 FF 5B 87 53 C0 | double | 0xC053875BFF04577E (-78.115) | struct field `[0].longitude` of 'AnnotatedBinary.Location' (Double) - +0x0148 | 8D F0 F6 20 04 B6 42 40 | double | 0x4042B60420F6F08D (37.422) | struct field `[1].latitude` of 'AnnotatedBinary.Location' (Double) - +0x0150 | 9F 77 63 41 61 85 5E C0 | double | 0xC05E85614163779F (-122.084) | struct field `[1].longitude` of 'AnnotatedBinary.Location' (Double) - +0x0158 | 8F 35 23 83 DC 35 4B C0 | double | 0xC04B35DC8323358F (-54.4208) | struct field `[2].latitude` of 'AnnotatedBinary.Location' (Double) - +0x0160 | F6 97 DD 93 87 C5 0A 40 | double | 0x400AC58793DD97F6 (3.34645) | struct field `[2].longitude` of 'AnnotatedBinary.Location' (Double) + +0x0134 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) + +0x0138 | 33 33 33 33 33 A3 45 40 | double | 0x4045A33333333333 (43.275) | struct field `[0].latitude` of 'AnnotatedBinary.Location' (Double) + +0x0140 | 7E 57 04 FF 5B 87 53 C0 | double | 0xC053875BFF04577E (-78.115) | struct field `[0].longitude` of 'AnnotatedBinary.Location' (Double) + +0x0148 | 8D F0 F6 20 04 B6 42 40 | double | 0x4042B60420F6F08D (37.422) | struct field `[1].latitude` of 'AnnotatedBinary.Location' (Double) + +0x0150 | 9F 77 63 41 61 85 5E C0 | double | 0xC05E85614163779F (-122.084) | struct field `[1].longitude` of 'AnnotatedBinary.Location' (Double) + +0x0158 | 8F 35 23 83 DC 35 4B C0 | double | 0xC04B35DC8323358F (-54.4208) | struct field `[2].latitude` of 'AnnotatedBinary.Location' (Double) + +0x0160 | F6 97 DD 93 87 C5 0A 40 | double | 0x400AC58793DD97F6 (3.34645) | struct field `[2].longitude` of 'AnnotatedBinary.Location' (Double) padding: - +0x0168 | 00 00 00 00 | uint8_t[4] | .... | padding + +0x0168 | 00 00 00 00 | uint8_t[4] | .... | padding vector (AnnotatedBinary.Foo.names): - +0x016C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) - +0x0170 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x0190 | offset to string[0] - +0x0174 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x0188 | offset to string[1] - +0x0178 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x017C | offset to string[2] + +0x016C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) + +0x0170 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: 0x0190 | offset to string[0] + +0x0174 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: 0x0188 | offset to string[1] + +0x0178 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x017C | offset to string[2] string (AnnotatedBinary.Foo.names): - +0x017C | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string - +0x0180 | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal - +0x0187 | 00 | char | 0x00 (0) | string terminator + +0x017C | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string + +0x0180 | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal + +0x0187 | 00 | char | 0x00 (0) | string terminator string (AnnotatedBinary.Foo.names): - +0x0188 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string - +0x018C | 62 6F 62 | char[3] | bob | string literal - +0x018F | 00 | char | 0x00 (0) | string terminator + +0x0188 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string + +0x018C | 62 6F 62 | char[3] | bob | string literal + +0x018F | 00 | char | 0x00 (0) | string terminator string (AnnotatedBinary.Foo.names): - +0x0190 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string - +0x0194 | 61 6C 69 63 65 | char[5] | alice | string literal - +0x0199 | 00 | char | 0x00 (0) | string terminator + +0x0190 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string + +0x0194 | 61 6C 69 63 65 | char[5] | alice | string literal + +0x0199 | 00 | char | 0x00 (0) | string terminator padding: - +0x019A | 00 00 | uint8_t[2] | .. | padding + +0x019A | 00 00 | uint8_t[2] | .. | padding string (AnnotatedBinary.Foo.alice): - +0x019C | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string - +0x01A0 | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal - +0x01A7 | 00 | char | 0x00 (0) | string terminator + +0x019C | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string + +0x01A0 | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal + +0x01A7 | 00 | char | 0x00 (0) | string terminator string (AnnotatedBinary.Foo.bob): - +0x01A8 | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string - +0x01AC | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal - +0x01B3 | 00 | char | 0x00 (0) | string terminator + +0x01A8 | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string + +0x01AC | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal + +0x01B3 | 00 | char | 0x00 (0) | string terminator vector (AnnotatedBinary.Foo.accounts): - +0x01B4 | 09 00 00 00 | uint32_t | 0x00000009 (9) | length of vector (# items) - +0x01B8 | 09 00 | uint16_t | 0x0009 (9) | value[0] - +0x01BA | 08 00 | uint16_t | 0x0008 (8) | value[1] - +0x01BC | 07 00 | uint16_t | 0x0007 (7) | value[2] - +0x01BE | 01 00 | uint16_t | 0x0001 (1) | value[3] - +0x01C0 | 02 00 | uint16_t | 0x0002 (2) | value[4] - +0x01C2 | 03 00 | uint16_t | 0x0003 (3) | value[5] - +0x01C4 | 06 00 | uint16_t | 0x0006 (6) | value[6] - +0x01C6 | 05 00 | uint16_t | 0x0005 (5) | value[7] - +0x01C8 | 04 00 | uint16_t | 0x0004 (4) | value[8] + +0x01B4 | 09 00 00 00 | uint32_t | 0x00000009 (9) | length of vector (# items) + +0x01B8 | 09 00 | uint16_t | 0x0009 (9) | value[0] + +0x01BA | 08 00 | uint16_t | 0x0008 (8) | value[1] + +0x01BC | 07 00 | uint16_t | 0x0007 (7) | value[2] + +0x01BE | 01 00 | uint16_t | 0x0001 (1) | value[3] + +0x01C0 | 02 00 | uint16_t | 0x0002 (2) | value[4] + +0x01C2 | 03 00 | uint16_t | 0x0003 (3) | value[5] + +0x01C4 | 06 00 | uint16_t | 0x0006 (6) | value[6] + +0x01C6 | 05 00 | uint16_t | 0x0005 (5) | value[7] + +0x01C8 | 04 00 | uint16_t | 0x0004 (4) | value[8] padding: - +0x01CA | 00 00 | uint8_t[2] | .. | padding + +0x01CA | 00 00 | uint8_t[2] | .. | padding table (AnnotatedBinary.Baz): - +0x01CC | 3A FF FF FF | SOffset32 | 0xFFFFFF3A (-198) Loc: +0x0292 | offset to vtable - +0x01D0 | 00 00 00 | uint8_t[3] | ... | padding - +0x01D3 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte) + +0x01CC | 3A FF FF FF | SOffset32 | 0xFFFFFF3A (-198) Loc: 0x0292 | offset to vtable + +0x01D0 | 00 00 00 | uint8_t[3] | ... | padding + +0x01D3 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte) vector (AnnotatedBinary.Foo.bars): - +0x01D4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) - +0x01D8 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x021C | offset to table[0] - +0x01DC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x01EC | offset to table[1] + +0x01D4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) + +0x01D8 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: 0x021C | offset to table[0] + +0x01DC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x01EC | offset to table[1] padding: - +0x01E0 | 00 00 | uint8_t[2] | .. | padding + +0x01E0 | 00 00 | uint8_t[2] | .. | padding vtable (AnnotatedBinary.Bar): - +0x01E2 | 0A 00 | uint16_t | 0x000A (10) | size of this vtable - +0x01E4 | 1A 00 | uint16_t | 0x001A (26) | size of referring table - +0x01E6 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `a` (id: 0) - +0x01E8 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1) - +0x01EA | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2) + +0x01E2 | 0A 00 | uint16_t | 0x000A (10) | size of this vtable + +0x01E4 | 1A 00 | uint16_t | 0x001A (26) | size of referring table + +0x01E6 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `a` (id: 0) + +0x01E8 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1) + +0x01EA | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2) table (AnnotatedBinary.Bar): - +0x01EC | 0A 00 00 00 | SOffset32 | 0x0000000A (10) Loc: +0x01E2 | offset to vtable - +0x01F0 | 00 80 23 44 | float | 0x44238000 (654) | table field `b` (Float) - +0x01F4 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x020C | offset to field `c` (table) - +0x01F8 | 00 00 00 00 00 D8 8E 40 | double | 0x408ED80000000000 (987) | table field `a` (Double) - +0x0200 | 00 00 00 00 00 00 | uint8_t[6] | ...... | padding + +0x01EC | 0A 00 00 00 | SOffset32 | 0x0000000A (10) Loc: 0x01E2 | offset to vtable + +0x01F0 | 00 80 23 44 | float | 0x44238000 (654) | table field `b` (Float) + +0x01F4 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: 0x020C | offset to field `c` (table) + +0x01F8 | 00 00 00 00 00 D8 8E 40 | double | 0x408ED80000000000 (987) | table field `a` (Double) + +0x0200 | 00 00 00 00 00 00 | uint8_t[6] | ...... | padding vtable (AnnotatedBinary.Baz): - +0x0206 | 06 00 | uint16_t | 0x0006 (6) | size of this vtable - +0x0208 | 06 00 | uint16_t | 0x0006 (6) | size of referring table - +0x020A | 05 00 | VOffset16 | 0x0005 (5) | offset to field `meal` (id: 0) + +0x0206 | 06 00 | uint16_t | 0x0006 (6) | size of this vtable + +0x0208 | 06 00 | uint16_t | 0x0006 (6) | size of referring table + +0x020A | 05 00 | VOffset16 | 0x0005 (5) | offset to field `meal` (id: 0) table (AnnotatedBinary.Baz): - +0x020C | 06 00 00 00 | SOffset32 | 0x00000006 (6) Loc: +0x0206 | offset to vtable - +0x0210 | 00 | uint8_t[1] | . | padding - +0x0211 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte) + +0x020C | 06 00 00 00 | SOffset32 | 0x00000006 (6) Loc: 0x0206 | offset to vtable + +0x0210 | 00 | uint8_t[1] | . | padding + +0x0211 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte) vtable (AnnotatedBinary.Bar): - +0x0212 | 0A 00 | uint16_t | 0x000A (10) | size of this vtable - +0x0214 | 18 00 | uint16_t | 0x0018 (24) | size of referring table - +0x0216 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `a` (id: 0) - +0x0218 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1) - +0x021A | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2) + +0x0212 | 0A 00 | uint16_t | 0x000A (10) | size of this vtable + +0x0214 | 18 00 | uint16_t | 0x0018 (24) | size of referring table + +0x0216 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `a` (id: 0) + +0x0218 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1) + +0x021A | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2) table (AnnotatedBinary.Bar): - +0x021C | 0A 00 00 00 | SOffset32 | 0x0000000A (10) Loc: +0x0212 | offset to vtable - +0x0220 | 00 00 E4 43 | float | 0x43E40000 (456) | table field `b` (Float) - +0x0224 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x0234 | offset to field `c` (table) - +0x0228 | 00 00 00 00 00 C0 5E 40 | double | 0x405EC00000000000 (123) | table field `a` (Double) - +0x0230 | 00 00 00 00 | uint8_t[4] | .... | padding + +0x021C | 0A 00 00 00 | SOffset32 | 0x0000000A (10) Loc: 0x0212 | offset to vtable + +0x0220 | 00 00 E4 43 | float | 0x43E40000 (456) | table field `b` (Float) + +0x0224 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x0234 | offset to field `c` (table) + +0x0228 | 00 00 00 00 00 C0 5E 40 | double | 0x405EC00000000000 (123) | table field `a` (Double) + +0x0230 | 00 00 00 00 | uint8_t[4] | .... | padding table (AnnotatedBinary.Baz): - +0x0234 | A2 FF FF FF | SOffset32 | 0xFFFFFFA2 (-94) Loc: +0x0292 | offset to vtable - +0x0238 | 00 00 00 | uint8_t[3] | ... | padding - +0x023B | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte) + +0x0234 | A2 FF FF FF | SOffset32 | 0xFFFFFFA2 (-94) Loc: 0x0292 | offset to vtable + +0x0238 | 00 00 00 | uint8_t[3] | ... | padding + +0x023B | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte) string (AnnotatedBinary.Foo.name): - +0x023C | 2F 00 00 00 | uint32_t | 0x0000002F (47) | length of string - +0x0240 | 54 68 69 73 20 69 73 20 | char[47] | This is | string literal + +0x023C | 2F 00 00 00 | uint32_t | 0x0000002F (47) | length of string + +0x0240 | 54 68 69 73 20 69 73 20 | char[47] | This is | string literal +0x0248 | 61 20 6C 6F 6E 67 20 73 | | a long s +0x0250 | 74 72 69 6E 67 20 74 6F | | tring to +0x0258 | 20 73 68 6F 77 20 68 6F | | show ho +0x0260 | 77 20 69 74 20 62 72 65 | | w it bre +0x0268 | 61 6B 73 20 75 70 2E | | aks up. - +0x026F | 00 | char | 0x00 (0) | string terminator + +0x026F | 00 | char | 0x00 (0) | string terminator unknown (no known references): - +0x0270 | 00 00 0A 00 16 00 0C 00 | ?uint8_t[34] | ........ | WARN: nothing refers to this section. + +0x0270 | 00 00 0A 00 16 00 0C 00 | ?uint8_t[34] | ........ | WARN: nothing refers to this section. +0x0278 | 04 00 08 00 0A 00 00 00 | | ........ +0x0280 | 65 20 71 49 14 00 00 00 | | e qI.... +0x0288 | C9 76 BE 9F 0C 24 FE 40 | | .v...$.@ +0x0290 | 00 00 | | .. vtable (AnnotatedBinary.Baz): - +0x0292 | 06 00 | uint16_t | 0x0006 (6) | size of this vtable - +0x0294 | 08 00 | uint16_t | 0x0008 (8) | size of referring table - +0x0296 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `meal` (id: 0) + +0x0292 | 06 00 | uint16_t | 0x0006 (6) | size of this vtable + +0x0294 | 08 00 | uint16_t | 0x0008 (8) | size of referring table + +0x0296 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `meal` (id: 0) unknown (no known references): - +0x0298 | 06 00 00 00 00 00 00 01 | ?uint8_t[8] | ........ | WARN: nothing refers to this section. + +0x0298 | 06 00 00 00 00 00 00 01 | ?uint8_t[8] | ........ | WARN: nothing refers to this section. diff --git a/tests/annotated_binary/tests/invalid_vtable_ref_table_size.afb b/tests/annotated_binary/tests/invalid_vtable_ref_table_size.afb index 72a272cbda..f7ffc8b90d 100644 --- a/tests/annotated_binary/tests/invalid_vtable_ref_table_size.afb +++ b/tests/annotated_binary/tests/invalid_vtable_ref_table_size.afb @@ -4,78 +4,78 @@ // Binary file: tests/invalid_vtable_ref_table_size.bin header: - +0x0000 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x0044 | offset to root table `AnnotatedBinary.Foo` - +0x0004 | 41 4E 4E 4F | char[4] | ANNO | File Identifier + +0x0000 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: 0x0044 | offset to root table `AnnotatedBinary.Foo` + +0x0004 | 41 4E 4E 4F | char[4] | ANNO | File Identifier padding: - +0x0008 | 00 00 | uint8_t[2] | .. | padding + +0x0008 | 00 00 | uint8_t[2] | .. | padding vtable (AnnotatedBinary.Foo): - +0x000A | 3A 00 | uint16_t | 0x003A (58) | size of this vtable - +0x000C | FF FF | uint16_t | 0xFFFF (65535) | ERROR: size of referring table. Longer than the binary. - +0x000E | 0C 00 | VOffset16 | 0x000C (12) | offset to field `counter` (id: 0) - +0x0010 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `healthy` (id: 1) - +0x0012 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `level` (id: 2) (Long) - +0x0014 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `meal` (id: 3) - +0x0016 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `bar` (id: 4) - +0x0018 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `home` (id: 5) - +0x001A | 30 00 | VOffset16 | 0x0030 (48) | offset to field `name` (id: 6) - +0x001C | 34 00 | VOffset16 | 0x0034 (52) | offset to field `bars` (id: 7) - +0x001E | 09 00 | VOffset16 | 0x0009 (9) | offset to field `bar_baz_type` (id: 8) - +0x0020 | 38 00 | VOffset16 | 0x0038 (56) | offset to field `bar_baz` (id: 9) - +0x0022 | 3C 00 | VOffset16 | 0x003C (60) | offset to field `accounts` (id: 10) - +0x0024 | 40 00 | VOffset16 | 0x0040 (64) | offset to field `bob` (id: 11) - +0x0026 | 44 00 | VOffset16 | 0x0044 (68) | offset to field `alice` (id: 12) - +0x0028 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `maybe_i32` (id: 13) (Int) - +0x002A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_i32` (id: 14) (Int) - +0x002C | 48 00 | VOffset16 | 0x0048 (72) | offset to field `just_i32` (id: 15) - +0x002E | 4C 00 | VOffset16 | 0x004C (76) | offset to field `names` (id: 16) - +0x0030 | 50 00 | VOffset16 | 0x0050 (80) | offset to field `points_of_interest` (id: 17) - +0x0032 | 54 00 | VOffset16 | 0x0054 (84) | offset to field `foobars_type` (id: 18) - +0x0034 | 58 00 | VOffset16 | 0x0058 (88) | offset to field `foobars` (id: 19) - +0x0036 | 0A 00 | VOffset16 | 0x000A (10) | offset to field `measurement_type` (id: 20) - +0x0038 | 5C 00 | VOffset16 | 0x005C (92) | offset to field `measurement` (id: 21) - +0x003A | 0B 00 | VOffset16 | 0x000B (11) | offset to field `anything_type` (id: 22) - +0x003C | 60 00 | VOffset16 | 0x0060 (96) | offset to field `anything` (id: 23) - +0x003E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `temperature` (id: 24) (Float) - +0x0040 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `teetotaler` (id: 25) (Obj) - +0x0042 | 64 00 | VOffset16 | 0x0064 (100) | offset to field `charlie` (id: 26) + +0x000A | 3A 00 | uint16_t | 0x003A (58) | size of this vtable + +0x000C | FF FF | uint16_t | 0xFFFF (65535) | ERROR: size of referring table. Longer than the binary. + +0x000E | 0C 00 | VOffset16 | 0x000C (12) | offset to field `counter` (id: 0) + +0x0010 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `healthy` (id: 1) + +0x0012 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `level` (id: 2) (Long) + +0x0014 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `meal` (id: 3) + +0x0016 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `bar` (id: 4) + +0x0018 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `home` (id: 5) + +0x001A | 30 00 | VOffset16 | 0x0030 (48) | offset to field `name` (id: 6) + +0x001C | 34 00 | VOffset16 | 0x0034 (52) | offset to field `bars` (id: 7) + +0x001E | 09 00 | VOffset16 | 0x0009 (9) | offset to field `bar_baz_type` (id: 8) + +0x0020 | 38 00 | VOffset16 | 0x0038 (56) | offset to field `bar_baz` (id: 9) + +0x0022 | 3C 00 | VOffset16 | 0x003C (60) | offset to field `accounts` (id: 10) + +0x0024 | 40 00 | VOffset16 | 0x0040 (64) | offset to field `bob` (id: 11) + +0x0026 | 44 00 | VOffset16 | 0x0044 (68) | offset to field `alice` (id: 12) + +0x0028 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `maybe_i32` (id: 13) (Int) + +0x002A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_i32` (id: 14) (Int) + +0x002C | 48 00 | VOffset16 | 0x0048 (72) | offset to field `just_i32` (id: 15) + +0x002E | 4C 00 | VOffset16 | 0x004C (76) | offset to field `names` (id: 16) + +0x0030 | 50 00 | VOffset16 | 0x0050 (80) | offset to field `points_of_interest` (id: 17) + +0x0032 | 54 00 | VOffset16 | 0x0054 (84) | offset to field `foobars_type` (id: 18) + +0x0034 | 58 00 | VOffset16 | 0x0058 (88) | offset to field `foobars` (id: 19) + +0x0036 | 0A 00 | VOffset16 | 0x000A (10) | offset to field `measurement_type` (id: 20) + +0x0038 | 5C 00 | VOffset16 | 0x005C (92) | offset to field `measurement` (id: 21) + +0x003A | 0B 00 | VOffset16 | 0x000B (11) | offset to field `anything_type` (id: 22) + +0x003C | 60 00 | VOffset16 | 0x0060 (96) | offset to field `anything` (id: 23) + +0x003E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `temperature` (id: 24) (Float) + +0x0040 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `teetotaler` (id: 25) (Obj) + +0x0042 | 64 00 | VOffset16 | 0x0064 (100) | offset to field `charlie` (id: 26) root_table (AnnotatedBinary.Foo): - +0x0044 | 3A 00 00 00 | SOffset32 | 0x0000003A (58) Loc: +0x000A | offset to vtable - +0x0048 | 00 00 00 | uint8_t[3] | ... | padding - +0x004B | 01 | uint8_t | 0x01 (1) | table field `healthy` (Bool) - +0x004C | 02 | uint8_t | 0x02 (2) | table field `meal` (Byte) - +0x004D | 02 | UType8 | 0x02 (2) | table field `bar_baz_type` (UType) - +0x004E | 01 | UType8 | 0x01 (1) | table field `measurement_type` (UType) - +0x004F | 01 | UType8 | 0x01 (1) | table field `anything_type` (UType) - +0x0050 | D2 04 00 00 | uint32_t | 0x000004D2 (1234) | table field `counter` (Int) - +0x0054 | 28 02 00 00 | UOffset32 | 0x00000228 (552) Loc: +0x027C | offset to field `bar` (table) - +0x0058 | 01 00 00 00 | uint32_t | 0x00000001 (1) | struct field `home.floors` of 'AnnotatedBinary.Building' (Int) - +0x005C | 02 00 00 00 | uint32_t | 0x00000002 (2) | struct field `home.doors` of 'AnnotatedBinary.Building' (Int) - +0x0060 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | struct field `home.windows` of 'AnnotatedBinary.Building' (Int) - +0x0064 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | array field `home.dimensions.values`[0] of 'AnnotatedBinary.Dimension' (Int) - +0x0068 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | array field `home.dimensions.values`[1] of 'AnnotatedBinary.Dimension' (Int) - +0x006C | 14 00 00 00 | uint32_t | 0x00000014 (20) | array field `home.dimensions.values`[2] of 'AnnotatedBinary.Dimension' (Int) - +0x0070 | 01 | uint8_t | 0x01 (1) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte) - +0x0071 | 02 | uint8_t | 0x02 (2) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte) - +0x0072 | 03 | uint8_t | 0x03 (3) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte) - +0x0073 | 00 | uint8_t[1] | . | padding - +0x0074 | C8 01 00 00 | UOffset32 | 0x000001C8 (456) Loc: +0x023C | offset to field `name` (string) - +0x0078 | 5C 01 00 00 | UOffset32 | 0x0000015C (348) Loc: +0x01D4 | offset to field `bars` (vector) - +0x007C | 50 01 00 00 | UOffset32 | 0x00000150 (336) Loc: +0x01CC | offset to field `bar_baz` (union of type `Baz`) - +0x0080 | 34 01 00 00 | UOffset32 | 0x00000134 (308) Loc: +0x01B4 | offset to field `accounts` (vector) - +0x0084 | 24 01 00 00 | UOffset32 | 0x00000124 (292) Loc: +0x01A8 | offset to field `bob` (string) - +0x0088 | 14 01 00 00 | UOffset32 | 0x00000114 (276) Loc: +0x019C | offset to field `alice` (string) - +0x008C | 0D 00 00 00 | uint32_t | 0x0000000D (13) | table field `just_i32` (Int) - +0x0090 | DC 00 00 00 | UOffset32 | 0x000000DC (220) Loc: +0x016C | offset to field `names` (vector) - +0x0094 | A0 00 00 00 | UOffset32 | 0x000000A0 (160) Loc: +0x0134 | offset to field `points_of_interest` (vector) - +0x0098 | 94 00 00 00 | UOffset32 | 0x00000094 (148) Loc: +0x012C | offset to field `foobars_type` (vector) - +0x009C | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: +0x00D4 | offset to field `foobars` (vector) - +0x00A0 | 33 00 00 00 | UOffset32 | 0x00000033 (51) Loc: +0x00D3 | offset to field `measurement` (union of type `Tolerance`) - +0x00A4 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: +0x00C0 | offset to field `anything` (union of type `Bar`) - +0x00A8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x00AC | offset to field `charlie` (string) - +0x00AC | 05 00 00 00 61 6C 69 63 | uint8_t[500] | ....alic | padding + +0x0044 | 3A 00 00 00 | SOffset32 | 0x0000003A (58) Loc: 0x000A | offset to vtable + +0x0048 | 00 00 00 | uint8_t[3] | ... | padding + +0x004B | 01 | uint8_t | 0x01 (1) | table field `healthy` (Bool) + +0x004C | 02 | uint8_t | 0x02 (2) | table field `meal` (Byte) + +0x004D | 02 | UType8 | 0x02 (2) | table field `bar_baz_type` (UType) + +0x004E | 01 | UType8 | 0x01 (1) | table field `measurement_type` (UType) + +0x004F | 01 | UType8 | 0x01 (1) | table field `anything_type` (UType) + +0x0050 | D2 04 00 00 | uint32_t | 0x000004D2 (1234) | table field `counter` (Int) + +0x0054 | 28 02 00 00 | UOffset32 | 0x00000228 (552) Loc: 0x027C | offset to field `bar` (table) + +0x0058 | 01 00 00 00 | uint32_t | 0x00000001 (1) | struct field `home.floors` of 'AnnotatedBinary.Building' (Int) + +0x005C | 02 00 00 00 | uint32_t | 0x00000002 (2) | struct field `home.doors` of 'AnnotatedBinary.Building' (Int) + +0x0060 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | struct field `home.windows` of 'AnnotatedBinary.Building' (Int) + +0x0064 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | array field `home.dimensions.values`[0] of 'AnnotatedBinary.Dimension' (Int) + +0x0068 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | array field `home.dimensions.values`[1] of 'AnnotatedBinary.Dimension' (Int) + +0x006C | 14 00 00 00 | uint32_t | 0x00000014 (20) | array field `home.dimensions.values`[2] of 'AnnotatedBinary.Dimension' (Int) + +0x0070 | 01 | uint8_t | 0x01 (1) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte) + +0x0071 | 02 | uint8_t | 0x02 (2) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte) + +0x0072 | 03 | uint8_t | 0x03 (3) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte) + +0x0073 | 00 | uint8_t[1] | . | padding + +0x0074 | C8 01 00 00 | UOffset32 | 0x000001C8 (456) Loc: 0x023C | offset to field `name` (string) + +0x0078 | 5C 01 00 00 | UOffset32 | 0x0000015C (348) Loc: 0x01D4 | offset to field `bars` (vector) + +0x007C | 50 01 00 00 | UOffset32 | 0x00000150 (336) Loc: 0x01CC | offset to field `bar_baz` (union of type `Baz`) + +0x0080 | 34 01 00 00 | UOffset32 | 0x00000134 (308) Loc: 0x01B4 | offset to field `accounts` (vector) + +0x0084 | 24 01 00 00 | UOffset32 | 0x00000124 (292) Loc: 0x01A8 | offset to field `bob` (string) + +0x0088 | 14 01 00 00 | UOffset32 | 0x00000114 (276) Loc: 0x019C | offset to field `alice` (string) + +0x008C | 0D 00 00 00 | uint32_t | 0x0000000D (13) | table field `just_i32` (Int) + +0x0090 | DC 00 00 00 | UOffset32 | 0x000000DC (220) Loc: 0x016C | offset to field `names` (vector) + +0x0094 | A0 00 00 00 | UOffset32 | 0x000000A0 (160) Loc: 0x0134 | offset to field `points_of_interest` (vector) + +0x0098 | 94 00 00 00 | UOffset32 | 0x00000094 (148) Loc: 0x012C | offset to field `foobars_type` (vector) + +0x009C | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: 0x00D4 | offset to field `foobars` (vector) + +0x00A0 | 33 00 00 00 | UOffset32 | 0x00000033 (51) Loc: 0x00D3 | offset to field `measurement` (union of type `Tolerance`) + +0x00A4 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: 0x00C0 | offset to field `anything` (union of type `Bar`) + +0x00A8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x00AC | offset to field `charlie` (string) + +0x00AC | 05 00 00 00 61 6C 69 63 | uint8_t[500] | ....alic | padding +0x00B4 | 65 00 00 00 08 00 13 00 | | e....... +0x00BC | 08 00 04 00 08 00 00 00 | | ........ +0x00C4 | 00 80 23 44 00 00 00 00 | | ..#D.... @@ -140,221 +140,221 @@ root_table (AnnotatedBinary.Foo): +0x029C | 00 00 00 01 | | .... string (AnnotatedBinary.Foo.charlie): - +0x00AC | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string - +0x00B0 | 61 6C 69 63 65 | char[5] | alice | string literal - +0x00B5 | 00 | char | 0x00 (0) | string terminator + +0x00AC | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string + +0x00B0 | 61 6C 69 63 65 | char[5] | alice | string literal + +0x00B5 | 00 | char | 0x00 (0) | string terminator padding: - +0x00B6 | 00 00 | uint8_t[2] | .. | padding + +0x00B6 | 00 00 | uint8_t[2] | .. | padding vtable (AnnotatedBinary.Bar): - +0x00B8 | 08 00 | uint16_t | 0x0008 (8) | size of this vtable - +0x00BA | 13 00 | uint16_t | 0x0013 (19) | size of referring table - +0x00BC | 08 00 | VOffset16 | 0x0008 (8) | offset to field `a` (id: 0) - +0x00BE | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1) + +0x00B8 | 08 00 | uint16_t | 0x0008 (8) | size of this vtable + +0x00BA | 13 00 | uint16_t | 0x0013 (19) | size of referring table + +0x00BC | 08 00 | VOffset16 | 0x0008 (8) | offset to field `a` (id: 0) + +0x00BE | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1) table (AnnotatedBinary.Bar): - +0x00C0 | 08 00 00 00 | SOffset32 | 0x00000008 (8) Loc: +0x00B8 | offset to vtable - +0x00C4 | 00 80 23 44 | float | 0x44238000 (654) | table field `b` (Float) - +0x00C8 | 00 00 00 00 00 10 74 40 | double | 0x4074100000000000 (321) | table field `a` (Double) - +0x00D0 | 00 00 00 | uint8_t[3] | ... | padding + +0x00C0 | 08 00 00 00 | SOffset32 | 0x00000008 (8) Loc: 0x00B8 | offset to vtable + +0x00C4 | 00 80 23 44 | float | 0x44238000 (654) | table field `b` (Float) + +0x00C8 | 00 00 00 00 00 10 74 40 | double | 0x4074100000000000 (321) | table field `a` (Double) + +0x00D0 | 00 00 00 | uint8_t[3] | ... | padding union (AnnotatedBinary.Tolerance.measurement): - +0x00D3 | 05 | uint8_t | 0x05 (5) | struct field `measurement.width` of 'AnnotatedBinary.Tolerance' (UByte) + +0x00D3 | 05 | uint8_t | 0x05 (5) | struct field `measurement.width` of 'AnnotatedBinary.Tolerance' (UByte) vector (AnnotatedBinary.Foo.foobars): - +0x00D4 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) - +0x00D8 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x010C | offset to union[0] (`Bar`) - +0x00DC | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: +0x0108 | offset to union[1] (`Baz`) - +0x00E0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x00E4 | offset to union[2] (`Bar`) + +0x00D4 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) + +0x00D8 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: 0x010C | offset to union[0] (`Bar`) + +0x00DC | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: 0x0108 | offset to union[1] (`Baz`) + +0x00E0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x00E4 | offset to union[2] (`Bar`) table (AnnotatedBinary.Bar): - +0x00E4 | D2 FE FF FF | SOffset32 | 0xFFFFFED2 (-302) Loc: +0x0212 | offset to vtable - +0x00E8 | 00 80 23 44 | float | 0x44238000 (654) | table field `b` (Float) - +0x00EC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x00FC | offset to field `c` (table) - +0x00F0 | 00 00 00 00 00 D8 8E 40 | double | 0x408ED80000000000 (987) | table field `a` (Double) - +0x00F8 | 00 00 00 00 | uint8_t[4] | .... | padding + +0x00E4 | D2 FE FF FF | SOffset32 | 0xFFFFFED2 (-302) Loc: 0x0212 | offset to vtable + +0x00E8 | 00 80 23 44 | float | 0x44238000 (654) | table field `b` (Float) + +0x00EC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x00FC | offset to field `c` (table) + +0x00F0 | 00 00 00 00 00 D8 8E 40 | double | 0x408ED80000000000 (987) | table field `a` (Double) + +0x00F8 | 00 00 00 00 | uint8_t[4] | .... | padding table (AnnotatedBinary.Baz): - +0x00FC | 6A FE FF FF | SOffset32 | 0xFFFFFE6A (-406) Loc: +0x0292 | offset to vtable - +0x0100 | 00 00 00 | uint8_t[3] | ... | padding - +0x0103 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte) + +0x00FC | 6A FE FF FF | SOffset32 | 0xFFFFFE6A (-406) Loc: 0x0292 | offset to vtable + +0x0100 | 00 00 00 | uint8_t[3] | ... | padding + +0x0103 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte) vtable (AnnotatedBinary.Baz): - +0x0104 | 04 00 | uint16_t | 0x0004 (4) | size of this vtable - +0x0106 | 04 00 | uint16_t | 0x0004 (4) | size of referring table + +0x0104 | 04 00 | uint16_t | 0x0004 (4) | size of this vtable + +0x0106 | 04 00 | uint16_t | 0x0004 (4) | size of referring table table (AnnotatedBinary.Baz): - +0x0108 | 04 00 00 00 | SOffset32 | 0x00000004 (4) Loc: +0x0104 | offset to vtable + +0x0108 | 04 00 00 00 | SOffset32 | 0x00000004 (4) Loc: 0x0104 | offset to vtable table (AnnotatedBinary.Bar): - +0x010C | FA FE FF FF | SOffset32 | 0xFFFFFEFA (-262) Loc: +0x0212 | offset to vtable - +0x0110 | 00 00 E4 43 | float | 0x43E40000 (456) | table field `b` (Float) - +0x0114 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x0124 | offset to field `c` (table) - +0x0118 | 00 00 00 00 00 C0 5E 40 | double | 0x405EC00000000000 (123) | table field `a` (Double) - +0x0120 | 00 00 00 00 | uint8_t[4] | .... | padding + +0x010C | FA FE FF FF | SOffset32 | 0xFFFFFEFA (-262) Loc: 0x0212 | offset to vtable + +0x0110 | 00 00 E4 43 | float | 0x43E40000 (456) | table field `b` (Float) + +0x0114 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x0124 | offset to field `c` (table) + +0x0118 | 00 00 00 00 00 C0 5E 40 | double | 0x405EC00000000000 (123) | table field `a` (Double) + +0x0120 | 00 00 00 00 | uint8_t[4] | .... | padding table (AnnotatedBinary.Baz): - +0x0124 | 92 FE FF FF | SOffset32 | 0xFFFFFE92 (-366) Loc: +0x0292 | offset to vtable - +0x0128 | 00 00 00 | uint8_t[3] | ... | padding - +0x012B | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte) + +0x0124 | 92 FE FF FF | SOffset32 | 0xFFFFFE92 (-366) Loc: 0x0292 | offset to vtable + +0x0128 | 00 00 00 | uint8_t[3] | ... | padding + +0x012B | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte) vector (AnnotatedBinary.Foo.foobars_type): - +0x012C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) - +0x0130 | 01 | UType8 | 0x01 (1) | value[0] - +0x0131 | 02 | UType8 | 0x02 (2) | value[1] - +0x0132 | 01 | UType8 | 0x01 (1) | value[2] + +0x012C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) + +0x0130 | 01 | UType8 | 0x01 (1) | value[0] + +0x0131 | 02 | UType8 | 0x02 (2) | value[1] + +0x0132 | 01 | UType8 | 0x01 (1) | value[2] vector (AnnotatedBinary.Foo.points_of_interest): - +0x0134 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) - +0x0138 | 33 33 33 33 33 A3 45 40 | double | 0x4045A33333333333 (43.275) | struct field `[0].latitude` of 'AnnotatedBinary.Location' (Double) - +0x0140 | 7E 57 04 FF 5B 87 53 C0 | double | 0xC053875BFF04577E (-78.115) | struct field `[0].longitude` of 'AnnotatedBinary.Location' (Double) - +0x0148 | 8D F0 F6 20 04 B6 42 40 | double | 0x4042B60420F6F08D (37.422) | struct field `[1].latitude` of 'AnnotatedBinary.Location' (Double) - +0x0150 | 9F 77 63 41 61 85 5E C0 | double | 0xC05E85614163779F (-122.084) | struct field `[1].longitude` of 'AnnotatedBinary.Location' (Double) - +0x0158 | 8F 35 23 83 DC 35 4B C0 | double | 0xC04B35DC8323358F (-54.4208) | struct field `[2].latitude` of 'AnnotatedBinary.Location' (Double) - +0x0160 | F6 97 DD 93 87 C5 0A 40 | double | 0x400AC58793DD97F6 (3.34645) | struct field `[2].longitude` of 'AnnotatedBinary.Location' (Double) + +0x0134 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) + +0x0138 | 33 33 33 33 33 A3 45 40 | double | 0x4045A33333333333 (43.275) | struct field `[0].latitude` of 'AnnotatedBinary.Location' (Double) + +0x0140 | 7E 57 04 FF 5B 87 53 C0 | double | 0xC053875BFF04577E (-78.115) | struct field `[0].longitude` of 'AnnotatedBinary.Location' (Double) + +0x0148 | 8D F0 F6 20 04 B6 42 40 | double | 0x4042B60420F6F08D (37.422) | struct field `[1].latitude` of 'AnnotatedBinary.Location' (Double) + +0x0150 | 9F 77 63 41 61 85 5E C0 | double | 0xC05E85614163779F (-122.084) | struct field `[1].longitude` of 'AnnotatedBinary.Location' (Double) + +0x0158 | 8F 35 23 83 DC 35 4B C0 | double | 0xC04B35DC8323358F (-54.4208) | struct field `[2].latitude` of 'AnnotatedBinary.Location' (Double) + +0x0160 | F6 97 DD 93 87 C5 0A 40 | double | 0x400AC58793DD97F6 (3.34645) | struct field `[2].longitude` of 'AnnotatedBinary.Location' (Double) padding: - +0x0168 | 00 00 00 00 | uint8_t[4] | .... | padding + +0x0168 | 00 00 00 00 | uint8_t[4] | .... | padding vector (AnnotatedBinary.Foo.names): - +0x016C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) - +0x0170 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x0190 | offset to string[0] - +0x0174 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x0188 | offset to string[1] - +0x0178 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x017C | offset to string[2] + +0x016C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) + +0x0170 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: 0x0190 | offset to string[0] + +0x0174 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: 0x0188 | offset to string[1] + +0x0178 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x017C | offset to string[2] string (AnnotatedBinary.Foo.names): - +0x017C | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string - +0x0180 | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal - +0x0187 | 00 | char | 0x00 (0) | string terminator + +0x017C | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string + +0x0180 | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal + +0x0187 | 00 | char | 0x00 (0) | string terminator string (AnnotatedBinary.Foo.names): - +0x0188 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string - +0x018C | 62 6F 62 | char[3] | bob | string literal - +0x018F | 00 | char | 0x00 (0) | string terminator + +0x0188 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string + +0x018C | 62 6F 62 | char[3] | bob | string literal + +0x018F | 00 | char | 0x00 (0) | string terminator string (AnnotatedBinary.Foo.names): - +0x0190 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string - +0x0194 | 61 6C 69 63 65 | char[5] | alice | string literal - +0x0199 | 00 | char | 0x00 (0) | string terminator + +0x0190 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string + +0x0194 | 61 6C 69 63 65 | char[5] | alice | string literal + +0x0199 | 00 | char | 0x00 (0) | string terminator padding: - +0x019A | 00 00 | uint8_t[2] | .. | padding + +0x019A | 00 00 | uint8_t[2] | .. | padding string (AnnotatedBinary.Foo.alice): - +0x019C | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string - +0x01A0 | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal - +0x01A7 | 00 | char | 0x00 (0) | string terminator + +0x019C | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string + +0x01A0 | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal + +0x01A7 | 00 | char | 0x00 (0) | string terminator string (AnnotatedBinary.Foo.bob): - +0x01A8 | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string - +0x01AC | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal - +0x01B3 | 00 | char | 0x00 (0) | string terminator + +0x01A8 | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string + +0x01AC | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal + +0x01B3 | 00 | char | 0x00 (0) | string terminator vector (AnnotatedBinary.Foo.accounts): - +0x01B4 | 09 00 00 00 | uint32_t | 0x00000009 (9) | length of vector (# items) - +0x01B8 | 09 00 | uint16_t | 0x0009 (9) | value[0] - +0x01BA | 08 00 | uint16_t | 0x0008 (8) | value[1] - +0x01BC | 07 00 | uint16_t | 0x0007 (7) | value[2] - +0x01BE | 01 00 | uint16_t | 0x0001 (1) | value[3] - +0x01C0 | 02 00 | uint16_t | 0x0002 (2) | value[4] - +0x01C2 | 03 00 | uint16_t | 0x0003 (3) | value[5] - +0x01C4 | 06 00 | uint16_t | 0x0006 (6) | value[6] - +0x01C6 | 05 00 | uint16_t | 0x0005 (5) | value[7] - +0x01C8 | 04 00 | uint16_t | 0x0004 (4) | value[8] + +0x01B4 | 09 00 00 00 | uint32_t | 0x00000009 (9) | length of vector (# items) + +0x01B8 | 09 00 | uint16_t | 0x0009 (9) | value[0] + +0x01BA | 08 00 | uint16_t | 0x0008 (8) | value[1] + +0x01BC | 07 00 | uint16_t | 0x0007 (7) | value[2] + +0x01BE | 01 00 | uint16_t | 0x0001 (1) | value[3] + +0x01C0 | 02 00 | uint16_t | 0x0002 (2) | value[4] + +0x01C2 | 03 00 | uint16_t | 0x0003 (3) | value[5] + +0x01C4 | 06 00 | uint16_t | 0x0006 (6) | value[6] + +0x01C6 | 05 00 | uint16_t | 0x0005 (5) | value[7] + +0x01C8 | 04 00 | uint16_t | 0x0004 (4) | value[8] padding: - +0x01CA | 00 00 | uint8_t[2] | .. | padding + +0x01CA | 00 00 | uint8_t[2] | .. | padding table (AnnotatedBinary.Baz): - +0x01CC | 3A FF FF FF | SOffset32 | 0xFFFFFF3A (-198) Loc: +0x0292 | offset to vtable - +0x01D0 | 00 00 00 | uint8_t[3] | ... | padding - +0x01D3 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte) + +0x01CC | 3A FF FF FF | SOffset32 | 0xFFFFFF3A (-198) Loc: 0x0292 | offset to vtable + +0x01D0 | 00 00 00 | uint8_t[3] | ... | padding + +0x01D3 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte) vector (AnnotatedBinary.Foo.bars): - +0x01D4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) - +0x01D8 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x021C | offset to table[0] - +0x01DC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x01EC | offset to table[1] + +0x01D4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) + +0x01D8 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: 0x021C | offset to table[0] + +0x01DC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x01EC | offset to table[1] padding: - +0x01E0 | 00 00 | uint8_t[2] | .. | padding + +0x01E0 | 00 00 | uint8_t[2] | .. | padding vtable (AnnotatedBinary.Bar): - +0x01E2 | 0A 00 | uint16_t | 0x000A (10) | size of this vtable - +0x01E4 | 1A 00 | uint16_t | 0x001A (26) | size of referring table - +0x01E6 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `a` (id: 0) - +0x01E8 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1) - +0x01EA | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2) + +0x01E2 | 0A 00 | uint16_t | 0x000A (10) | size of this vtable + +0x01E4 | 1A 00 | uint16_t | 0x001A (26) | size of referring table + +0x01E6 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `a` (id: 0) + +0x01E8 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1) + +0x01EA | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2) table (AnnotatedBinary.Bar): - +0x01EC | 0A 00 00 00 | SOffset32 | 0x0000000A (10) Loc: +0x01E2 | offset to vtable - +0x01F0 | 00 80 23 44 | float | 0x44238000 (654) | table field `b` (Float) - +0x01F4 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x020C | offset to field `c` (table) - +0x01F8 | 00 00 00 00 00 D8 8E 40 | double | 0x408ED80000000000 (987) | table field `a` (Double) - +0x0200 | 00 00 00 00 00 00 | uint8_t[6] | ...... | padding + +0x01EC | 0A 00 00 00 | SOffset32 | 0x0000000A (10) Loc: 0x01E2 | offset to vtable + +0x01F0 | 00 80 23 44 | float | 0x44238000 (654) | table field `b` (Float) + +0x01F4 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: 0x020C | offset to field `c` (table) + +0x01F8 | 00 00 00 00 00 D8 8E 40 | double | 0x408ED80000000000 (987) | table field `a` (Double) + +0x0200 | 00 00 00 00 00 00 | uint8_t[6] | ...... | padding vtable (AnnotatedBinary.Baz): - +0x0206 | 06 00 | uint16_t | 0x0006 (6) | size of this vtable - +0x0208 | 06 00 | uint16_t | 0x0006 (6) | size of referring table - +0x020A | 05 00 | VOffset16 | 0x0005 (5) | offset to field `meal` (id: 0) + +0x0206 | 06 00 | uint16_t | 0x0006 (6) | size of this vtable + +0x0208 | 06 00 | uint16_t | 0x0006 (6) | size of referring table + +0x020A | 05 00 | VOffset16 | 0x0005 (5) | offset to field `meal` (id: 0) table (AnnotatedBinary.Baz): - +0x020C | 06 00 00 00 | SOffset32 | 0x00000006 (6) Loc: +0x0206 | offset to vtable - +0x0210 | 00 | uint8_t[1] | . | padding - +0x0211 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte) + +0x020C | 06 00 00 00 | SOffset32 | 0x00000006 (6) Loc: 0x0206 | offset to vtable + +0x0210 | 00 | uint8_t[1] | . | padding + +0x0211 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte) vtable (AnnotatedBinary.Bar): - +0x0212 | 0A 00 | uint16_t | 0x000A (10) | size of this vtable - +0x0214 | 18 00 | uint16_t | 0x0018 (24) | size of referring table - +0x0216 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `a` (id: 0) - +0x0218 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1) - +0x021A | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2) + +0x0212 | 0A 00 | uint16_t | 0x000A (10) | size of this vtable + +0x0214 | 18 00 | uint16_t | 0x0018 (24) | size of referring table + +0x0216 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `a` (id: 0) + +0x0218 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1) + +0x021A | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2) table (AnnotatedBinary.Bar): - +0x021C | 0A 00 00 00 | SOffset32 | 0x0000000A (10) Loc: +0x0212 | offset to vtable - +0x0220 | 00 00 E4 43 | float | 0x43E40000 (456) | table field `b` (Float) - +0x0224 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x0234 | offset to field `c` (table) - +0x0228 | 00 00 00 00 00 C0 5E 40 | double | 0x405EC00000000000 (123) | table field `a` (Double) - +0x0230 | 00 00 00 00 | uint8_t[4] | .... | padding + +0x021C | 0A 00 00 00 | SOffset32 | 0x0000000A (10) Loc: 0x0212 | offset to vtable + +0x0220 | 00 00 E4 43 | float | 0x43E40000 (456) | table field `b` (Float) + +0x0224 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x0234 | offset to field `c` (table) + +0x0228 | 00 00 00 00 00 C0 5E 40 | double | 0x405EC00000000000 (123) | table field `a` (Double) + +0x0230 | 00 00 00 00 | uint8_t[4] | .... | padding table (AnnotatedBinary.Baz): - +0x0234 | A2 FF FF FF | SOffset32 | 0xFFFFFFA2 (-94) Loc: +0x0292 | offset to vtable - +0x0238 | 00 00 00 | uint8_t[3] | ... | padding - +0x023B | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte) + +0x0234 | A2 FF FF FF | SOffset32 | 0xFFFFFFA2 (-94) Loc: 0x0292 | offset to vtable + +0x0238 | 00 00 00 | uint8_t[3] | ... | padding + +0x023B | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte) string (AnnotatedBinary.Foo.name): - +0x023C | 2F 00 00 00 | uint32_t | 0x0000002F (47) | length of string - +0x0240 | 54 68 69 73 20 69 73 20 | char[47] | This is | string literal + +0x023C | 2F 00 00 00 | uint32_t | 0x0000002F (47) | length of string + +0x0240 | 54 68 69 73 20 69 73 20 | char[47] | This is | string literal +0x0248 | 61 20 6C 6F 6E 67 20 73 | | a long s +0x0250 | 74 72 69 6E 67 20 74 6F | | tring to +0x0258 | 20 73 68 6F 77 20 68 6F | | show ho +0x0260 | 77 20 69 74 20 62 72 65 | | w it bre +0x0268 | 61 6B 73 20 75 70 2E | | aks up. - +0x026F | 00 | char | 0x00 (0) | string terminator + +0x026F | 00 | char | 0x00 (0) | string terminator padding: - +0x0270 | 00 00 | uint8_t[2] | .. | padding + +0x0270 | 00 00 | uint8_t[2] | .. | padding vtable (AnnotatedBinary.Bar): - +0x0272 | 0A 00 | uint16_t | 0x000A (10) | size of this vtable - +0x0274 | 16 00 | uint16_t | 0x0016 (22) | size of referring table - +0x0276 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `a` (id: 0) - +0x0278 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1) - +0x027A | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2) + +0x0272 | 0A 00 | uint16_t | 0x000A (10) | size of this vtable + +0x0274 | 16 00 | uint16_t | 0x0016 (22) | size of referring table + +0x0276 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `a` (id: 0) + +0x0278 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1) + +0x027A | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2) table (AnnotatedBinary.Bar): - +0x027C | 0A 00 00 00 | SOffset32 | 0x0000000A (10) Loc: +0x0272 | offset to vtable - +0x0280 | 65 20 71 49 | float | 0x49712065 (987654) | table field `b` (Float) - +0x0284 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x0298 | offset to field `c` (table) - +0x0288 | C9 76 BE 9F 0C 24 FE 40 | double | 0x40FE240C9FBE76C9 (123457) | table field `a` (Double) - +0x0290 | 00 00 | uint8_t[2] | .. | padding + +0x027C | 0A 00 00 00 | SOffset32 | 0x0000000A (10) Loc: 0x0272 | offset to vtable + +0x0280 | 65 20 71 49 | float | 0x49712065 (987654) | table field `b` (Float) + +0x0284 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: 0x0298 | offset to field `c` (table) + +0x0288 | C9 76 BE 9F 0C 24 FE 40 | double | 0x40FE240C9FBE76C9 (123457) | table field `a` (Double) + +0x0290 | 00 00 | uint8_t[2] | .. | padding vtable (AnnotatedBinary.Baz): - +0x0292 | 06 00 | uint16_t | 0x0006 (6) | size of this vtable - +0x0294 | 08 00 | uint16_t | 0x0008 (8) | size of referring table - +0x0296 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `meal` (id: 0) + +0x0292 | 06 00 | uint16_t | 0x0006 (6) | size of this vtable + +0x0294 | 08 00 | uint16_t | 0x0008 (8) | size of referring table + +0x0296 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `meal` (id: 0) table (AnnotatedBinary.Baz): - +0x0298 | 06 00 00 00 | SOffset32 | 0x00000006 (6) Loc: +0x0292 | offset to vtable - +0x029C | 00 00 00 | uint8_t[3] | ... | padding - +0x029F | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte) + +0x0298 | 06 00 00 00 | SOffset32 | 0x00000006 (6) Loc: 0x0292 | offset to vtable + +0x029C | 00 00 00 | uint8_t[3] | ... | padding + +0x029F | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte) diff --git a/tests/annotated_binary/tests/invalid_vtable_ref_table_size_short.afb b/tests/annotated_binary/tests/invalid_vtable_ref_table_size_short.afb index ab0bfd5dfc..a6ec6b07a8 100644 --- a/tests/annotated_binary/tests/invalid_vtable_ref_table_size_short.afb +++ b/tests/annotated_binary/tests/invalid_vtable_ref_table_size_short.afb @@ -4,294 +4,294 @@ // Binary file: tests/invalid_vtable_ref_table_size_short.bin header: - +0x0000 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x0044 | offset to root table `AnnotatedBinary.Foo` - +0x0004 | 41 4E 4E 4F | char[4] | ANNO | File Identifier + +0x0000 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: 0x0044 | offset to root table `AnnotatedBinary.Foo` + +0x0004 | 41 4E 4E 4F | char[4] | ANNO | File Identifier padding: - +0x0008 | 00 00 | uint8_t[2] | .. | padding + +0x0008 | 00 00 | uint8_t[2] | .. | padding vtable (AnnotatedBinary.Foo): - +0x000A | 3A 00 | uint16_t | 0x003A (58) | size of this vtable - +0x000C | 01 00 | uint16_t | 0x0001 (1) | ERROR: size of referring table. Shorter than the minimum length: - +0x000E | 0C 00 | VOffset16 | 0x000C (12) | offset to field `counter` (id: 0) - +0x0010 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `healthy` (id: 1) - +0x0012 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `level` (id: 2) (Long) - +0x0014 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `meal` (id: 3) - +0x0016 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `bar` (id: 4) - +0x0018 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `home` (id: 5) - +0x001A | 30 00 | VOffset16 | 0x0030 (48) | offset to field `name` (id: 6) - +0x001C | 34 00 | VOffset16 | 0x0034 (52) | offset to field `bars` (id: 7) - +0x001E | 09 00 | VOffset16 | 0x0009 (9) | offset to field `bar_baz_type` (id: 8) - +0x0020 | 38 00 | VOffset16 | 0x0038 (56) | offset to field `bar_baz` (id: 9) - +0x0022 | 3C 00 | VOffset16 | 0x003C (60) | offset to field `accounts` (id: 10) - +0x0024 | 40 00 | VOffset16 | 0x0040 (64) | offset to field `bob` (id: 11) - +0x0026 | 44 00 | VOffset16 | 0x0044 (68) | offset to field `alice` (id: 12) - +0x0028 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `maybe_i32` (id: 13) (Int) - +0x002A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_i32` (id: 14) (Int) - +0x002C | 48 00 | VOffset16 | 0x0048 (72) | offset to field `just_i32` (id: 15) - +0x002E | 4C 00 | VOffset16 | 0x004C (76) | offset to field `names` (id: 16) - +0x0030 | 50 00 | VOffset16 | 0x0050 (80) | offset to field `points_of_interest` (id: 17) - +0x0032 | 54 00 | VOffset16 | 0x0054 (84) | offset to field `foobars_type` (id: 18) - +0x0034 | 58 00 | VOffset16 | 0x0058 (88) | offset to field `foobars` (id: 19) - +0x0036 | 0A 00 | VOffset16 | 0x000A (10) | offset to field `measurement_type` (id: 20) - +0x0038 | 5C 00 | VOffset16 | 0x005C (92) | offset to field `measurement` (id: 21) - +0x003A | 0B 00 | VOffset16 | 0x000B (11) | offset to field `anything_type` (id: 22) - +0x003C | 60 00 | VOffset16 | 0x0060 (96) | offset to field `anything` (id: 23) - +0x003E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `temperature` (id: 24) (Float) - +0x0040 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `teetotaler` (id: 25) (Obj) - +0x0042 | 64 00 | VOffset16 | 0x0064 (100) | offset to field `charlie` (id: 26) + +0x000A | 3A 00 | uint16_t | 0x003A (58) | size of this vtable + +0x000C | 01 00 | uint16_t | 0x0001 (1) | ERROR: size of referring table. Shorter than the minimum length: + +0x000E | 0C 00 | VOffset16 | 0x000C (12) | offset to field `counter` (id: 0) + +0x0010 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `healthy` (id: 1) + +0x0012 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `level` (id: 2) (Long) + +0x0014 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `meal` (id: 3) + +0x0016 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `bar` (id: 4) + +0x0018 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `home` (id: 5) + +0x001A | 30 00 | VOffset16 | 0x0030 (48) | offset to field `name` (id: 6) + +0x001C | 34 00 | VOffset16 | 0x0034 (52) | offset to field `bars` (id: 7) + +0x001E | 09 00 | VOffset16 | 0x0009 (9) | offset to field `bar_baz_type` (id: 8) + +0x0020 | 38 00 | VOffset16 | 0x0038 (56) | offset to field `bar_baz` (id: 9) + +0x0022 | 3C 00 | VOffset16 | 0x003C (60) | offset to field `accounts` (id: 10) + +0x0024 | 40 00 | VOffset16 | 0x0040 (64) | offset to field `bob` (id: 11) + +0x0026 | 44 00 | VOffset16 | 0x0044 (68) | offset to field `alice` (id: 12) + +0x0028 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `maybe_i32` (id: 13) (Int) + +0x002A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_i32` (id: 14) (Int) + +0x002C | 48 00 | VOffset16 | 0x0048 (72) | offset to field `just_i32` (id: 15) + +0x002E | 4C 00 | VOffset16 | 0x004C (76) | offset to field `names` (id: 16) + +0x0030 | 50 00 | VOffset16 | 0x0050 (80) | offset to field `points_of_interest` (id: 17) + +0x0032 | 54 00 | VOffset16 | 0x0054 (84) | offset to field `foobars_type` (id: 18) + +0x0034 | 58 00 | VOffset16 | 0x0058 (88) | offset to field `foobars` (id: 19) + +0x0036 | 0A 00 | VOffset16 | 0x000A (10) | offset to field `measurement_type` (id: 20) + +0x0038 | 5C 00 | VOffset16 | 0x005C (92) | offset to field `measurement` (id: 21) + +0x003A | 0B 00 | VOffset16 | 0x000B (11) | offset to field `anything_type` (id: 22) + +0x003C | 60 00 | VOffset16 | 0x0060 (96) | offset to field `anything` (id: 23) + +0x003E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `temperature` (id: 24) (Float) + +0x0040 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `teetotaler` (id: 25) (Obj) + +0x0042 | 64 00 | VOffset16 | 0x0064 (100) | offset to field `charlie` (id: 26) root_table (AnnotatedBinary.Foo): - +0x0044 | 3A 00 00 00 | SOffset32 | 0x0000003A (58) Loc: +0x000A | offset to vtable - +0x0048 | 00 00 00 | uint8_t[3] | ... | padding - +0x004B | 01 | uint8_t | 0x01 (1) | table field `healthy` (Bool) - +0x004C | 02 | uint8_t | 0x02 (2) | table field `meal` (Byte) - +0x004D | 02 | UType8 | 0x02 (2) | table field `bar_baz_type` (UType) - +0x004E | 01 | UType8 | 0x01 (1) | table field `measurement_type` (UType) - +0x004F | 01 | UType8 | 0x01 (1) | table field `anything_type` (UType) - +0x0050 | D2 04 00 00 | uint32_t | 0x000004D2 (1234) | table field `counter` (Int) - +0x0054 | 28 02 00 00 | UOffset32 | 0x00000228 (552) Loc: +0x027C | offset to field `bar` (table) - +0x0058 | 01 00 00 00 | uint32_t | 0x00000001 (1) | struct field `home.floors` of 'AnnotatedBinary.Building' (Int) - +0x005C | 02 00 00 00 | uint32_t | 0x00000002 (2) | struct field `home.doors` of 'AnnotatedBinary.Building' (Int) - +0x0060 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | struct field `home.windows` of 'AnnotatedBinary.Building' (Int) - +0x0064 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | array field `home.dimensions.values`[0] of 'AnnotatedBinary.Dimension' (Int) - +0x0068 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | array field `home.dimensions.values`[1] of 'AnnotatedBinary.Dimension' (Int) - +0x006C | 14 00 00 00 | uint32_t | 0x00000014 (20) | array field `home.dimensions.values`[2] of 'AnnotatedBinary.Dimension' (Int) - +0x0070 | 01 | uint8_t | 0x01 (1) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte) - +0x0071 | 02 | uint8_t | 0x02 (2) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte) - +0x0072 | 03 | uint8_t | 0x03 (3) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte) - +0x0073 | 00 | uint8_t[1] | . | padding - +0x0074 | C8 01 00 00 | UOffset32 | 0x000001C8 (456) Loc: +0x023C | offset to field `name` (string) - +0x0078 | 5C 01 00 00 | UOffset32 | 0x0000015C (348) Loc: +0x01D4 | offset to field `bars` (vector) - +0x007C | 50 01 00 00 | UOffset32 | 0x00000150 (336) Loc: +0x01CC | offset to field `bar_baz` (union of type `Baz`) - +0x0080 | 34 01 00 00 | UOffset32 | 0x00000134 (308) Loc: +0x01B4 | offset to field `accounts` (vector) - +0x0084 | 24 01 00 00 | UOffset32 | 0x00000124 (292) Loc: +0x01A8 | offset to field `bob` (string) - +0x0088 | 14 01 00 00 | UOffset32 | 0x00000114 (276) Loc: +0x019C | offset to field `alice` (string) - +0x008C | 0D 00 00 00 | uint32_t | 0x0000000D (13) | table field `just_i32` (Int) - +0x0090 | DC 00 00 00 | UOffset32 | 0x000000DC (220) Loc: +0x016C | offset to field `names` (vector) - +0x0094 | A0 00 00 00 | UOffset32 | 0x000000A0 (160) Loc: +0x0134 | offset to field `points_of_interest` (vector) - +0x0098 | 94 00 00 00 | UOffset32 | 0x00000094 (148) Loc: +0x012C | offset to field `foobars_type` (vector) - +0x009C | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: +0x00D4 | offset to field `foobars` (vector) - +0x00A0 | 33 00 00 00 | UOffset32 | 0x00000033 (51) Loc: +0x00D3 | offset to field `measurement` (union of type `Tolerance`) - +0x00A4 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: +0x00C0 | offset to field `anything` (union of type `Bar`) - +0x00A8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x00AC | offset to field `charlie` (string) + +0x0044 | 3A 00 00 00 | SOffset32 | 0x0000003A (58) Loc: 0x000A | offset to vtable + +0x0048 | 00 00 00 | uint8_t[3] | ... | padding + +0x004B | 01 | uint8_t | 0x01 (1) | table field `healthy` (Bool) + +0x004C | 02 | uint8_t | 0x02 (2) | table field `meal` (Byte) + +0x004D | 02 | UType8 | 0x02 (2) | table field `bar_baz_type` (UType) + +0x004E | 01 | UType8 | 0x01 (1) | table field `measurement_type` (UType) + +0x004F | 01 | UType8 | 0x01 (1) | table field `anything_type` (UType) + +0x0050 | D2 04 00 00 | uint32_t | 0x000004D2 (1234) | table field `counter` (Int) + +0x0054 | 28 02 00 00 | UOffset32 | 0x00000228 (552) Loc: 0x027C | offset to field `bar` (table) + +0x0058 | 01 00 00 00 | uint32_t | 0x00000001 (1) | struct field `home.floors` of 'AnnotatedBinary.Building' (Int) + +0x005C | 02 00 00 00 | uint32_t | 0x00000002 (2) | struct field `home.doors` of 'AnnotatedBinary.Building' (Int) + +0x0060 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | struct field `home.windows` of 'AnnotatedBinary.Building' (Int) + +0x0064 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | array field `home.dimensions.values`[0] of 'AnnotatedBinary.Dimension' (Int) + +0x0068 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | array field `home.dimensions.values`[1] of 'AnnotatedBinary.Dimension' (Int) + +0x006C | 14 00 00 00 | uint32_t | 0x00000014 (20) | array field `home.dimensions.values`[2] of 'AnnotatedBinary.Dimension' (Int) + +0x0070 | 01 | uint8_t | 0x01 (1) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte) + +0x0071 | 02 | uint8_t | 0x02 (2) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte) + +0x0072 | 03 | uint8_t | 0x03 (3) | struct field `home.dimensions.tolerances.width` of 'AnnotatedBinary.Tolerance' (UByte) + +0x0073 | 00 | uint8_t[1] | . | padding + +0x0074 | C8 01 00 00 | UOffset32 | 0x000001C8 (456) Loc: 0x023C | offset to field `name` (string) + +0x0078 | 5C 01 00 00 | UOffset32 | 0x0000015C (348) Loc: 0x01D4 | offset to field `bars` (vector) + +0x007C | 50 01 00 00 | UOffset32 | 0x00000150 (336) Loc: 0x01CC | offset to field `bar_baz` (union of type `Baz`) + +0x0080 | 34 01 00 00 | UOffset32 | 0x00000134 (308) Loc: 0x01B4 | offset to field `accounts` (vector) + +0x0084 | 24 01 00 00 | UOffset32 | 0x00000124 (292) Loc: 0x01A8 | offset to field `bob` (string) + +0x0088 | 14 01 00 00 | UOffset32 | 0x00000114 (276) Loc: 0x019C | offset to field `alice` (string) + +0x008C | 0D 00 00 00 | uint32_t | 0x0000000D (13) | table field `just_i32` (Int) + +0x0090 | DC 00 00 00 | UOffset32 | 0x000000DC (220) Loc: 0x016C | offset to field `names` (vector) + +0x0094 | A0 00 00 00 | UOffset32 | 0x000000A0 (160) Loc: 0x0134 | offset to field `points_of_interest` (vector) + +0x0098 | 94 00 00 00 | UOffset32 | 0x00000094 (148) Loc: 0x012C | offset to field `foobars_type` (vector) + +0x009C | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: 0x00D4 | offset to field `foobars` (vector) + +0x00A0 | 33 00 00 00 | UOffset32 | 0x00000033 (51) Loc: 0x00D3 | offset to field `measurement` (union of type `Tolerance`) + +0x00A4 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: 0x00C0 | offset to field `anything` (union of type `Bar`) + +0x00A8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x00AC | offset to field `charlie` (string) string (AnnotatedBinary.Foo.charlie): - +0x00AC | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string - +0x00B0 | 61 6C 69 63 65 | char[5] | alice | string literal - +0x00B5 | 00 | char | 0x00 (0) | string terminator + +0x00AC | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string + +0x00B0 | 61 6C 69 63 65 | char[5] | alice | string literal + +0x00B5 | 00 | char | 0x00 (0) | string terminator padding: - +0x00B6 | 00 00 | uint8_t[2] | .. | padding + +0x00B6 | 00 00 | uint8_t[2] | .. | padding vtable (AnnotatedBinary.Bar): - +0x00B8 | 08 00 | uint16_t | 0x0008 (8) | size of this vtable - +0x00BA | 13 00 | uint16_t | 0x0013 (19) | size of referring table - +0x00BC | 08 00 | VOffset16 | 0x0008 (8) | offset to field `a` (id: 0) - +0x00BE | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1) + +0x00B8 | 08 00 | uint16_t | 0x0008 (8) | size of this vtable + +0x00BA | 13 00 | uint16_t | 0x0013 (19) | size of referring table + +0x00BC | 08 00 | VOffset16 | 0x0008 (8) | offset to field `a` (id: 0) + +0x00BE | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1) table (AnnotatedBinary.Bar): - +0x00C0 | 08 00 00 00 | SOffset32 | 0x00000008 (8) Loc: +0x00B8 | offset to vtable - +0x00C4 | 00 80 23 44 | float | 0x44238000 (654) | table field `b` (Float) - +0x00C8 | 00 00 00 00 00 10 74 40 | double | 0x4074100000000000 (321) | table field `a` (Double) - +0x00D0 | 00 00 00 | uint8_t[3] | ... | padding + +0x00C0 | 08 00 00 00 | SOffset32 | 0x00000008 (8) Loc: 0x00B8 | offset to vtable + +0x00C4 | 00 80 23 44 | float | 0x44238000 (654) | table field `b` (Float) + +0x00C8 | 00 00 00 00 00 10 74 40 | double | 0x4074100000000000 (321) | table field `a` (Double) + +0x00D0 | 00 00 00 | uint8_t[3] | ... | padding union (AnnotatedBinary.Tolerance.measurement): - +0x00D3 | 05 | uint8_t | 0x05 (5) | struct field `measurement.width` of 'AnnotatedBinary.Tolerance' (UByte) + +0x00D3 | 05 | uint8_t | 0x05 (5) | struct field `measurement.width` of 'AnnotatedBinary.Tolerance' (UByte) vector (AnnotatedBinary.Foo.foobars): - +0x00D4 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) - +0x00D8 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x010C | offset to union[0] (`Bar`) - +0x00DC | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: +0x0108 | offset to union[1] (`Baz`) - +0x00E0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x00E4 | offset to union[2] (`Bar`) + +0x00D4 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) + +0x00D8 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: 0x010C | offset to union[0] (`Bar`) + +0x00DC | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: 0x0108 | offset to union[1] (`Baz`) + +0x00E0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x00E4 | offset to union[2] (`Bar`) table (AnnotatedBinary.Bar): - +0x00E4 | D2 FE FF FF | SOffset32 | 0xFFFFFED2 (-302) Loc: +0x0212 | offset to vtable - +0x00E8 | 00 80 23 44 | float | 0x44238000 (654) | table field `b` (Float) - +0x00EC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x00FC | offset to field `c` (table) - +0x00F0 | 00 00 00 00 00 D8 8E 40 | double | 0x408ED80000000000 (987) | table field `a` (Double) - +0x00F8 | 00 00 00 00 | uint8_t[4] | .... | padding + +0x00E4 | D2 FE FF FF | SOffset32 | 0xFFFFFED2 (-302) Loc: 0x0212 | offset to vtable + +0x00E8 | 00 80 23 44 | float | 0x44238000 (654) | table field `b` (Float) + +0x00EC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x00FC | offset to field `c` (table) + +0x00F0 | 00 00 00 00 00 D8 8E 40 | double | 0x408ED80000000000 (987) | table field `a` (Double) + +0x00F8 | 00 00 00 00 | uint8_t[4] | .... | padding table (AnnotatedBinary.Baz): - +0x00FC | 6A FE FF FF | SOffset32 | 0xFFFFFE6A (-406) Loc: +0x0292 | offset to vtable - +0x0100 | 00 00 00 | uint8_t[3] | ... | padding - +0x0103 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte) + +0x00FC | 6A FE FF FF | SOffset32 | 0xFFFFFE6A (-406) Loc: 0x0292 | offset to vtable + +0x0100 | 00 00 00 | uint8_t[3] | ... | padding + +0x0103 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte) vtable (AnnotatedBinary.Baz): - +0x0104 | 04 00 | uint16_t | 0x0004 (4) | size of this vtable - +0x0106 | 04 00 | uint16_t | 0x0004 (4) | size of referring table + +0x0104 | 04 00 | uint16_t | 0x0004 (4) | size of this vtable + +0x0106 | 04 00 | uint16_t | 0x0004 (4) | size of referring table table (AnnotatedBinary.Baz): - +0x0108 | 04 00 00 00 | SOffset32 | 0x00000004 (4) Loc: +0x0104 | offset to vtable + +0x0108 | 04 00 00 00 | SOffset32 | 0x00000004 (4) Loc: 0x0104 | offset to vtable table (AnnotatedBinary.Bar): - +0x010C | FA FE FF FF | SOffset32 | 0xFFFFFEFA (-262) Loc: +0x0212 | offset to vtable - +0x0110 | 00 00 E4 43 | float | 0x43E40000 (456) | table field `b` (Float) - +0x0114 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x0124 | offset to field `c` (table) - +0x0118 | 00 00 00 00 00 C0 5E 40 | double | 0x405EC00000000000 (123) | table field `a` (Double) - +0x0120 | 00 00 00 00 | uint8_t[4] | .... | padding + +0x010C | FA FE FF FF | SOffset32 | 0xFFFFFEFA (-262) Loc: 0x0212 | offset to vtable + +0x0110 | 00 00 E4 43 | float | 0x43E40000 (456) | table field `b` (Float) + +0x0114 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x0124 | offset to field `c` (table) + +0x0118 | 00 00 00 00 00 C0 5E 40 | double | 0x405EC00000000000 (123) | table field `a` (Double) + +0x0120 | 00 00 00 00 | uint8_t[4] | .... | padding table (AnnotatedBinary.Baz): - +0x0124 | 92 FE FF FF | SOffset32 | 0xFFFFFE92 (-366) Loc: +0x0292 | offset to vtable - +0x0128 | 00 00 00 | uint8_t[3] | ... | padding - +0x012B | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte) + +0x0124 | 92 FE FF FF | SOffset32 | 0xFFFFFE92 (-366) Loc: 0x0292 | offset to vtable + +0x0128 | 00 00 00 | uint8_t[3] | ... | padding + +0x012B | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte) vector (AnnotatedBinary.Foo.foobars_type): - +0x012C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) - +0x0130 | 01 | UType8 | 0x01 (1) | value[0] - +0x0131 | 02 | UType8 | 0x02 (2) | value[1] - +0x0132 | 01 | UType8 | 0x01 (1) | value[2] + +0x012C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) + +0x0130 | 01 | UType8 | 0x01 (1) | value[0] + +0x0131 | 02 | UType8 | 0x02 (2) | value[1] + +0x0132 | 01 | UType8 | 0x01 (1) | value[2] vector (AnnotatedBinary.Foo.points_of_interest): - +0x0134 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) - +0x0138 | 33 33 33 33 33 A3 45 40 | double | 0x4045A33333333333 (43.275) | struct field `[0].latitude` of 'AnnotatedBinary.Location' (Double) - +0x0140 | 7E 57 04 FF 5B 87 53 C0 | double | 0xC053875BFF04577E (-78.115) | struct field `[0].longitude` of 'AnnotatedBinary.Location' (Double) - +0x0148 | 8D F0 F6 20 04 B6 42 40 | double | 0x4042B60420F6F08D (37.422) | struct field `[1].latitude` of 'AnnotatedBinary.Location' (Double) - +0x0150 | 9F 77 63 41 61 85 5E C0 | double | 0xC05E85614163779F (-122.084) | struct field `[1].longitude` of 'AnnotatedBinary.Location' (Double) - +0x0158 | 8F 35 23 83 DC 35 4B C0 | double | 0xC04B35DC8323358F (-54.4208) | struct field `[2].latitude` of 'AnnotatedBinary.Location' (Double) - +0x0160 | F6 97 DD 93 87 C5 0A 40 | double | 0x400AC58793DD97F6 (3.34645) | struct field `[2].longitude` of 'AnnotatedBinary.Location' (Double) + +0x0134 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) + +0x0138 | 33 33 33 33 33 A3 45 40 | double | 0x4045A33333333333 (43.275) | struct field `[0].latitude` of 'AnnotatedBinary.Location' (Double) + +0x0140 | 7E 57 04 FF 5B 87 53 C0 | double | 0xC053875BFF04577E (-78.115) | struct field `[0].longitude` of 'AnnotatedBinary.Location' (Double) + +0x0148 | 8D F0 F6 20 04 B6 42 40 | double | 0x4042B60420F6F08D (37.422) | struct field `[1].latitude` of 'AnnotatedBinary.Location' (Double) + +0x0150 | 9F 77 63 41 61 85 5E C0 | double | 0xC05E85614163779F (-122.084) | struct field `[1].longitude` of 'AnnotatedBinary.Location' (Double) + +0x0158 | 8F 35 23 83 DC 35 4B C0 | double | 0xC04B35DC8323358F (-54.4208) | struct field `[2].latitude` of 'AnnotatedBinary.Location' (Double) + +0x0160 | F6 97 DD 93 87 C5 0A 40 | double | 0x400AC58793DD97F6 (3.34645) | struct field `[2].longitude` of 'AnnotatedBinary.Location' (Double) padding: - +0x0168 | 00 00 00 00 | uint8_t[4] | .... | padding + +0x0168 | 00 00 00 00 | uint8_t[4] | .... | padding vector (AnnotatedBinary.Foo.names): - +0x016C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) - +0x0170 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x0190 | offset to string[0] - +0x0174 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x0188 | offset to string[1] - +0x0178 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x017C | offset to string[2] + +0x016C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) + +0x0170 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: 0x0190 | offset to string[0] + +0x0174 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: 0x0188 | offset to string[1] + +0x0178 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x017C | offset to string[2] string (AnnotatedBinary.Foo.names): - +0x017C | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string - +0x0180 | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal - +0x0187 | 00 | char | 0x00 (0) | string terminator + +0x017C | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string + +0x0180 | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal + +0x0187 | 00 | char | 0x00 (0) | string terminator string (AnnotatedBinary.Foo.names): - +0x0188 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string - +0x018C | 62 6F 62 | char[3] | bob | string literal - +0x018F | 00 | char | 0x00 (0) | string terminator + +0x0188 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string + +0x018C | 62 6F 62 | char[3] | bob | string literal + +0x018F | 00 | char | 0x00 (0) | string terminator string (AnnotatedBinary.Foo.names): - +0x0190 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string - +0x0194 | 61 6C 69 63 65 | char[5] | alice | string literal - +0x0199 | 00 | char | 0x00 (0) | string terminator + +0x0190 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string + +0x0194 | 61 6C 69 63 65 | char[5] | alice | string literal + +0x0199 | 00 | char | 0x00 (0) | string terminator padding: - +0x019A | 00 00 | uint8_t[2] | .. | padding + +0x019A | 00 00 | uint8_t[2] | .. | padding string (AnnotatedBinary.Foo.alice): - +0x019C | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string - +0x01A0 | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal - +0x01A7 | 00 | char | 0x00 (0) | string terminator + +0x019C | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string + +0x01A0 | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal + +0x01A7 | 00 | char | 0x00 (0) | string terminator string (AnnotatedBinary.Foo.bob): - +0x01A8 | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string - +0x01AC | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal - +0x01B3 | 00 | char | 0x00 (0) | string terminator + +0x01A8 | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string + +0x01AC | 63 68 61 72 6C 69 65 | char[7] | charlie | string literal + +0x01B3 | 00 | char | 0x00 (0) | string terminator vector (AnnotatedBinary.Foo.accounts): - +0x01B4 | 09 00 00 00 | uint32_t | 0x00000009 (9) | length of vector (# items) - +0x01B8 | 09 00 | uint16_t | 0x0009 (9) | value[0] - +0x01BA | 08 00 | uint16_t | 0x0008 (8) | value[1] - +0x01BC | 07 00 | uint16_t | 0x0007 (7) | value[2] - +0x01BE | 01 00 | uint16_t | 0x0001 (1) | value[3] - +0x01C0 | 02 00 | uint16_t | 0x0002 (2) | value[4] - +0x01C2 | 03 00 | uint16_t | 0x0003 (3) | value[5] - +0x01C4 | 06 00 | uint16_t | 0x0006 (6) | value[6] - +0x01C6 | 05 00 | uint16_t | 0x0005 (5) | value[7] - +0x01C8 | 04 00 | uint16_t | 0x0004 (4) | value[8] + +0x01B4 | 09 00 00 00 | uint32_t | 0x00000009 (9) | length of vector (# items) + +0x01B8 | 09 00 | uint16_t | 0x0009 (9) | value[0] + +0x01BA | 08 00 | uint16_t | 0x0008 (8) | value[1] + +0x01BC | 07 00 | uint16_t | 0x0007 (7) | value[2] + +0x01BE | 01 00 | uint16_t | 0x0001 (1) | value[3] + +0x01C0 | 02 00 | uint16_t | 0x0002 (2) | value[4] + +0x01C2 | 03 00 | uint16_t | 0x0003 (3) | value[5] + +0x01C4 | 06 00 | uint16_t | 0x0006 (6) | value[6] + +0x01C6 | 05 00 | uint16_t | 0x0005 (5) | value[7] + +0x01C8 | 04 00 | uint16_t | 0x0004 (4) | value[8] padding: - +0x01CA | 00 00 | uint8_t[2] | .. | padding + +0x01CA | 00 00 | uint8_t[2] | .. | padding table (AnnotatedBinary.Baz): - +0x01CC | 3A FF FF FF | SOffset32 | 0xFFFFFF3A (-198) Loc: +0x0292 | offset to vtable - +0x01D0 | 00 00 00 | uint8_t[3] | ... | padding - +0x01D3 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte) + +0x01CC | 3A FF FF FF | SOffset32 | 0xFFFFFF3A (-198) Loc: 0x0292 | offset to vtable + +0x01D0 | 00 00 00 | uint8_t[3] | ... | padding + +0x01D3 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte) vector (AnnotatedBinary.Foo.bars): - +0x01D4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) - +0x01D8 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x021C | offset to table[0] - +0x01DC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x01EC | offset to table[1] + +0x01D4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) + +0x01D8 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: 0x021C | offset to table[0] + +0x01DC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x01EC | offset to table[1] padding: - +0x01E0 | 00 00 | uint8_t[2] | .. | padding + +0x01E0 | 00 00 | uint8_t[2] | .. | padding vtable (AnnotatedBinary.Bar): - +0x01E2 | 0A 00 | uint16_t | 0x000A (10) | size of this vtable - +0x01E4 | 1A 00 | uint16_t | 0x001A (26) | size of referring table - +0x01E6 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `a` (id: 0) - +0x01E8 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1) - +0x01EA | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2) + +0x01E2 | 0A 00 | uint16_t | 0x000A (10) | size of this vtable + +0x01E4 | 1A 00 | uint16_t | 0x001A (26) | size of referring table + +0x01E6 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `a` (id: 0) + +0x01E8 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1) + +0x01EA | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2) table (AnnotatedBinary.Bar): - +0x01EC | 0A 00 00 00 | SOffset32 | 0x0000000A (10) Loc: +0x01E2 | offset to vtable - +0x01F0 | 00 80 23 44 | float | 0x44238000 (654) | table field `b` (Float) - +0x01F4 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x020C | offset to field `c` (table) - +0x01F8 | 00 00 00 00 00 D8 8E 40 | double | 0x408ED80000000000 (987) | table field `a` (Double) - +0x0200 | 00 00 00 00 00 00 | uint8_t[6] | ...... | padding + +0x01EC | 0A 00 00 00 | SOffset32 | 0x0000000A (10) Loc: 0x01E2 | offset to vtable + +0x01F0 | 00 80 23 44 | float | 0x44238000 (654) | table field `b` (Float) + +0x01F4 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: 0x020C | offset to field `c` (table) + +0x01F8 | 00 00 00 00 00 D8 8E 40 | double | 0x408ED80000000000 (987) | table field `a` (Double) + +0x0200 | 00 00 00 00 00 00 | uint8_t[6] | ...... | padding vtable (AnnotatedBinary.Baz): - +0x0206 | 06 00 | uint16_t | 0x0006 (6) | size of this vtable - +0x0208 | 06 00 | uint16_t | 0x0006 (6) | size of referring table - +0x020A | 05 00 | VOffset16 | 0x0005 (5) | offset to field `meal` (id: 0) + +0x0206 | 06 00 | uint16_t | 0x0006 (6) | size of this vtable + +0x0208 | 06 00 | uint16_t | 0x0006 (6) | size of referring table + +0x020A | 05 00 | VOffset16 | 0x0005 (5) | offset to field `meal` (id: 0) table (AnnotatedBinary.Baz): - +0x020C | 06 00 00 00 | SOffset32 | 0x00000006 (6) Loc: +0x0206 | offset to vtable - +0x0210 | 00 | uint8_t[1] | . | padding - +0x0211 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte) + +0x020C | 06 00 00 00 | SOffset32 | 0x00000006 (6) Loc: 0x0206 | offset to vtable + +0x0210 | 00 | uint8_t[1] | . | padding + +0x0211 | 03 | uint8_t | 0x03 (3) | table field `meal` (Byte) vtable (AnnotatedBinary.Bar): - +0x0212 | 0A 00 | uint16_t | 0x000A (10) | size of this vtable - +0x0214 | 18 00 | uint16_t | 0x0018 (24) | size of referring table - +0x0216 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `a` (id: 0) - +0x0218 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1) - +0x021A | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2) + +0x0212 | 0A 00 | uint16_t | 0x000A (10) | size of this vtable + +0x0214 | 18 00 | uint16_t | 0x0018 (24) | size of referring table + +0x0216 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `a` (id: 0) + +0x0218 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1) + +0x021A | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2) table (AnnotatedBinary.Bar): - +0x021C | 0A 00 00 00 | SOffset32 | 0x0000000A (10) Loc: +0x0212 | offset to vtable - +0x0220 | 00 00 E4 43 | float | 0x43E40000 (456) | table field `b` (Float) - +0x0224 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x0234 | offset to field `c` (table) - +0x0228 | 00 00 00 00 00 C0 5E 40 | double | 0x405EC00000000000 (123) | table field `a` (Double) - +0x0230 | 00 00 00 00 | uint8_t[4] | .... | padding + +0x021C | 0A 00 00 00 | SOffset32 | 0x0000000A (10) Loc: 0x0212 | offset to vtable + +0x0220 | 00 00 E4 43 | float | 0x43E40000 (456) | table field `b` (Float) + +0x0224 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x0234 | offset to field `c` (table) + +0x0228 | 00 00 00 00 00 C0 5E 40 | double | 0x405EC00000000000 (123) | table field `a` (Double) + +0x0230 | 00 00 00 00 | uint8_t[4] | .... | padding table (AnnotatedBinary.Baz): - +0x0234 | A2 FF FF FF | SOffset32 | 0xFFFFFFA2 (-94) Loc: +0x0292 | offset to vtable - +0x0238 | 00 00 00 | uint8_t[3] | ... | padding - +0x023B | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte) + +0x0234 | A2 FF FF FF | SOffset32 | 0xFFFFFFA2 (-94) Loc: 0x0292 | offset to vtable + +0x0238 | 00 00 00 | uint8_t[3] | ... | padding + +0x023B | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte) string (AnnotatedBinary.Foo.name): - +0x023C | 2F 00 00 00 | uint32_t | 0x0000002F (47) | length of string - +0x0240 | 54 68 69 73 20 69 73 20 | char[47] | This is | string literal + +0x023C | 2F 00 00 00 | uint32_t | 0x0000002F (47) | length of string + +0x0240 | 54 68 69 73 20 69 73 20 | char[47] | This is | string literal +0x0248 | 61 20 6C 6F 6E 67 20 73 | | a long s +0x0250 | 74 72 69 6E 67 20 74 6F | | tring to +0x0258 | 20 73 68 6F 77 20 68 6F | | show ho +0x0260 | 77 20 69 74 20 62 72 65 | | w it bre +0x0268 | 61 6B 73 20 75 70 2E | | aks up. - +0x026F | 00 | char | 0x00 (0) | string terminator + +0x026F | 00 | char | 0x00 (0) | string terminator padding: - +0x0270 | 00 00 | uint8_t[2] | .. | padding + +0x0270 | 00 00 | uint8_t[2] | .. | padding vtable (AnnotatedBinary.Bar): - +0x0272 | 0A 00 | uint16_t | 0x000A (10) | size of this vtable - +0x0274 | 16 00 | uint16_t | 0x0016 (22) | size of referring table - +0x0276 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `a` (id: 0) - +0x0278 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1) - +0x027A | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2) + +0x0272 | 0A 00 | uint16_t | 0x000A (10) | size of this vtable + +0x0274 | 16 00 | uint16_t | 0x0016 (22) | size of referring table + +0x0276 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `a` (id: 0) + +0x0278 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `b` (id: 1) + +0x027A | 08 00 | VOffset16 | 0x0008 (8) | offset to field `c` (id: 2) table (AnnotatedBinary.Bar): - +0x027C | 0A 00 00 00 | SOffset32 | 0x0000000A (10) Loc: +0x0272 | offset to vtable - +0x0280 | 65 20 71 49 | float | 0x49712065 (987654) | table field `b` (Float) - +0x0284 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x0298 | offset to field `c` (table) - +0x0288 | C9 76 BE 9F 0C 24 FE 40 | double | 0x40FE240C9FBE76C9 (123457) | table field `a` (Double) - +0x0290 | 00 00 | uint8_t[2] | .. | padding + +0x027C | 0A 00 00 00 | SOffset32 | 0x0000000A (10) Loc: 0x0272 | offset to vtable + +0x0280 | 65 20 71 49 | float | 0x49712065 (987654) | table field `b` (Float) + +0x0284 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: 0x0298 | offset to field `c` (table) + +0x0288 | C9 76 BE 9F 0C 24 FE 40 | double | 0x40FE240C9FBE76C9 (123457) | table field `a` (Double) + +0x0290 | 00 00 | uint8_t[2] | .. | padding vtable (AnnotatedBinary.Baz): - +0x0292 | 06 00 | uint16_t | 0x0006 (6) | size of this vtable - +0x0294 | 08 00 | uint16_t | 0x0008 (8) | size of referring table - +0x0296 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `meal` (id: 0) + +0x0292 | 06 00 | uint16_t | 0x0006 (6) | size of this vtable + +0x0294 | 08 00 | uint16_t | 0x0008 (8) | size of referring table + +0x0296 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `meal` (id: 0) table (AnnotatedBinary.Baz): - +0x0298 | 06 00 00 00 | SOffset32 | 0x00000006 (6) Loc: +0x0292 | offset to vtable - +0x029C | 00 00 00 | uint8_t[3] | ... | padding - +0x029F | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte) + +0x0298 | 06 00 00 00 | SOffset32 | 0x00000006 (6) Loc: 0x0292 | offset to vtable + +0x029C | 00 00 00 | uint8_t[3] | ... | padding + +0x029F | 01 | uint8_t | 0x01 (1) | table field `meal` (Byte) diff --git a/tests/annotated_binary/tests/invalid_vtable_size.afb b/tests/annotated_binary/tests/invalid_vtable_size.afb index 43d14d5053..2a7db32825 100644 --- a/tests/annotated_binary/tests/invalid_vtable_size.afb +++ b/tests/annotated_binary/tests/invalid_vtable_size.afb @@ -4,17 +4,17 @@ // Binary file: tests/invalid_vtable_size.bin header: - +0x0000 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x0044 | offset to root table `AnnotatedBinary.Foo` - +0x0004 | 41 4E 4E 4F | char[4] | ANNO | File Identifier + +0x0000 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: 0x0044 | offset to root table `AnnotatedBinary.Foo` + +0x0004 | 41 4E 4E 4F | char[4] | ANNO | File Identifier padding: - +0x0008 | 00 00 | uint8_t[2] | .. | padding + +0x0008 | 00 00 | uint8_t[2] | .. | padding vtable (AnnotatedBinary.Foo): - +0x000A | FF FF | uint16_t | 0xFFFF (65535) | ERROR: size of this vtable. Longer than the binary. + +0x000A | FF FF | uint16_t | 0xFFFF (65535) | ERROR: size of this vtable. Longer than the binary. unknown (no known references): - +0x000C | 68 00 0C 00 07 00 00 00 | ?uint8_t[660] | h....... | WARN: nothing refers to this section. + +0x000C | 68 00 0C 00 07 00 00 00 | ?uint8_t[660] | h....... | WARN: nothing refers to this section. +0x0014 | 08 00 10 00 14 00 30 00 | | ......0. +0x001C | 34 00 09 00 38 00 3C 00 | | 4...8.<. +0x0024 | 40 00 44 00 00 00 00 00 | | @.D..... diff --git a/tests/annotated_binary/tests/invalid_vtable_size_short.afb b/tests/annotated_binary/tests/invalid_vtable_size_short.afb index 4ba65f3236..1566830bcf 100644 --- a/tests/annotated_binary/tests/invalid_vtable_size_short.afb +++ b/tests/annotated_binary/tests/invalid_vtable_size_short.afb @@ -4,17 +4,17 @@ // Binary file: tests/invalid_vtable_size_short.bin header: - +0x0000 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x0044 | offset to root table `AnnotatedBinary.Foo` - +0x0004 | 41 4E 4E 4F | char[4] | ANNO | File Identifier + +0x0000 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: 0x0044 | offset to root table `AnnotatedBinary.Foo` + +0x0004 | 41 4E 4E 4F | char[4] | ANNO | File Identifier padding: - +0x0008 | 00 00 | uint8_t[2] | .. | padding + +0x0008 | 00 00 | uint8_t[2] | .. | padding vtable (AnnotatedBinary.Foo): - +0x000A | 01 00 | uint16_t | 0x0001 (1) | ERROR: size of this vtable. Shorter than the minimum length: + +0x000A | 01 00 | uint16_t | 0x0001 (1) | ERROR: size of this vtable. Shorter than the minimum length: unknown (no known references): - +0x000C | 68 00 0C 00 07 00 00 00 | ?uint8_t[660] | h....... | WARN: nothing refers to this section. + +0x000C | 68 00 0C 00 07 00 00 00 | ?uint8_t[660] | h....... | WARN: nothing refers to this section. +0x0014 | 08 00 10 00 14 00 30 00 | | ......0. +0x001C | 34 00 09 00 38 00 3C 00 | | 4...8.<. +0x0024 | 40 00 44 00 00 00 00 00 | | @.D..... diff --git a/tests/monster_test.afb b/tests/monster_test.afb index aa3127f974..3a7f988d9f 100644 --- a/tests/monster_test.afb +++ b/tests/monster_test.afb @@ -4,6497 +4,6491 @@ // Binary file: monster_test.bfbs header: - +0x0000 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x0020 | offset to root table `reflection.Schema` - +0x0004 | 42 46 42 53 | char[4] | BFBS | File Identifier + +0x0000 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: 0x0020 | offset to root table `reflection.Schema` + +0x0004 | 42 46 42 53 | char[4] | BFBS | File Identifier padding: - +0x0008 | 00 00 00 00 | uint8_t[4] | .... | padding + +0x0008 | 00 00 00 00 | uint8_t[4] | .... | padding vtable (reflection.Schema): - +0x000C | 14 00 | uint16_t | 0x0014 (20) | size of this vtable - +0x000E | 20 00 | uint16_t | 0x0020 (32) | size of referring table - +0x0010 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `objects` (id: 0) - +0x0012 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `enums` (id: 1) - +0x0014 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `file_ident` (id: 2) - +0x0016 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `file_ext` (id: 3) - +0x0018 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `root_table` (id: 4) - +0x001A | 18 00 | VOffset16 | 0x0018 (24) | offset to field `services` (id: 5) - +0x001C | 00 00 | VOffset16 | 0x0000 (0) | offset to field `advanced_features` (id: 6) (ULong) - +0x001E | 1C 00 | VOffset16 | 0x001C (28) | offset to field `fbs_files` (id: 7) + +0x000C | 14 00 | uint16_t | 0x0014 (20) | size of this vtable + +0x000E | 20 00 | uint16_t | 0x0020 (32) | size of referring table + +0x0010 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `objects` (id: 0) + +0x0012 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `enums` (id: 1) + +0x0014 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `file_ident` (id: 2) + +0x0016 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `file_ext` (id: 3) + +0x0018 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `root_table` (id: 4) + +0x001A | 18 00 | VOffset16 | 0x0018 (24) | offset to field `services` (id: 5) + +0x001C | 00 00 | VOffset16 | 0x0000 (0) | offset to field `advanced_features` (id: 6) (ULong) + +0x001E | 1C 00 | VOffset16 | 0x001C (28) | offset to field `fbs_files` (id: 7) root_table (reflection.Schema): - +0x0020 | 14 00 00 00 | SOffset32 | 0x00000014 (20) Loc: +0x000C | offset to vtable - +0x0024 | 58 00 00 00 | UOffset32 | 0x00000058 (88) Loc: +0x007C | offset to field `objects` (vector) - +0x0028 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x005C | offset to field `enums` (vector) - +0x002C | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x0050 | offset to field `file_ident` (string) - +0x0030 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x0048 | offset to field `file_ext` (string) - +0x0034 | 50 0D 00 00 | UOffset32 | 0x00000D50 (3408) Loc: +0x0D84 | offset to field `root_table` (table) - +0x0038 | 08 00 00 00 | UOffset32 | 0x00000008 (8) Loc: +0x0040 | offset to field `services` (vector) - +0x003C | 80 00 00 00 | UOffset32 | 0x00000080 (128) Loc: +0x00BC | offset to field `fbs_files` (vector) + +0x0020 | 14 00 00 00 | SOffset32 | 0x00000014 (20) Loc: 0x000C | offset to vtable + +0x0024 | 58 00 00 00 | UOffset32 | 0x00000058 (88) Loc: 0x007C | offset to field `objects` (vector) + +0x0028 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: 0x005C | offset to field `enums` (vector) + +0x002C | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: 0x0050 | offset to field `file_ident` (string) + +0x0030 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: 0x0048 | offset to field `file_ext` (string) + +0x0034 | 50 0D 00 00 | UOffset32 | 0x00000D50 (3408) Loc: 0x0D84 | offset to field `root_table` (table) + +0x0038 | 08 00 00 00 | UOffset32 | 0x00000008 (8) Loc: 0x0040 | offset to field `services` (vector) + +0x003C | 80 00 00 00 | UOffset32 | 0x00000080 (128) Loc: 0x00BC | offset to field `fbs_files` (vector) vector (reflection.Schema.services): - +0x0040 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x0044 | DC 00 00 00 | UOffset32 | 0x000000DC (220) Loc: +0x0120 | offset to table[0] + +0x0040 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x0044 | DC 00 00 00 | UOffset32 | 0x000000DC (220) Loc: 0x0120 | offset to table[0] string (reflection.Schema.file_ext): - +0x0048 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string - +0x004C | 6D 6F 6E | char[3] | mon | string literal - +0x004F | 00 | char | 0x00 (0) | string terminator + +0x0048 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string + +0x004C | 6D 6F 6E | char[3] | mon | string literal + +0x004F | 00 | char | 0x00 (0) | string terminator string (reflection.Schema.file_ident): - +0x0050 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string - +0x0054 | 4D 4F 4E 53 | char[4] | MONS | string literal - +0x0058 | 00 | char | 0x00 (0) | string terminator + +0x0050 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string + +0x0054 | 4D 4F 4E 53 | char[4] | MONS | string literal + +0x0058 | 00 | char | 0x00 (0) | string terminator padding: - +0x0059 | 00 00 00 | uint8_t[3] | ... | padding + +0x0059 | 00 00 00 | uint8_t[3] | ... | padding vector (reflection.Schema.enums): - +0x005C | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of vector (# items) - +0x0060 | D4 04 00 00 | UOffset32 | 0x000004D4 (1236) Loc: +0x0534 | offset to table[0] - +0x0064 | 90 02 00 00 | UOffset32 | 0x00000290 (656) Loc: +0x02F4 | offset to table[1] - +0x0068 | A8 03 00 00 | UOffset32 | 0x000003A8 (936) Loc: +0x0410 | offset to table[2] - +0x006C | 30 08 00 00 | UOffset32 | 0x00000830 (2096) Loc: +0x089C | offset to table[3] - +0x0070 | 00 06 00 00 | UOffset32 | 0x00000600 (1536) Loc: +0x0670 | offset to table[4] - +0x0074 | 0C 07 00 00 | UOffset32 | 0x0000070C (1804) Loc: +0x0780 | offset to table[5] - +0x0078 | 10 0A 00 00 | UOffset32 | 0x00000A10 (2576) Loc: +0x0A88 | offset to table[6] + +0x005C | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of vector (# items) + +0x0060 | D4 04 00 00 | UOffset32 | 0x000004D4 (1236) Loc: 0x0534 | offset to table[0] + +0x0064 | 90 02 00 00 | UOffset32 | 0x00000290 (656) Loc: 0x02F4 | offset to table[1] + +0x0068 | A8 03 00 00 | UOffset32 | 0x000003A8 (936) Loc: 0x0410 | offset to table[2] + +0x006C | 30 08 00 00 | UOffset32 | 0x00000830 (2096) Loc: 0x089C | offset to table[3] + +0x0070 | 00 06 00 00 | UOffset32 | 0x00000600 (1536) Loc: 0x0670 | offset to table[4] + +0x0074 | 0C 07 00 00 | UOffset32 | 0x0000070C (1804) Loc: 0x0780 | offset to table[5] + +0x0078 | 10 0A 00 00 | UOffset32 | 0x00000A10 (2576) Loc: 0x0A88 | offset to table[6] vector (reflection.Schema.objects): - +0x007C | 0F 00 00 00 | uint32_t | 0x0000000F (15) | length of vector (# items) - +0x0080 | BC 31 00 00 | UOffset32 | 0x000031BC (12732) Loc: +0x323C | offset to table[0] - +0x0084 | 00 0D 00 00 | UOffset32 | 0x00000D00 (3328) Loc: +0x0D84 | offset to table[1] - +0x0088 | 6C 2E 00 00 | UOffset32 | 0x00002E6C (11884) Loc: +0x2EF4 | offset to table[2] - +0x008C | 38 2F 00 00 | UOffset32 | 0x00002F38 (12088) Loc: +0x2FC4 | offset to table[3] - +0x0090 | A4 30 00 00 | UOffset32 | 0x000030A4 (12452) Loc: +0x3134 | offset to table[4] - +0x0094 | 28 30 00 00 | UOffset32 | 0x00003028 (12328) Loc: +0x30BC | offset to table[5] - +0x0098 | 44 35 00 00 | UOffset32 | 0x00003544 (13636) Loc: +0x35DC | offset to table[6] - +0x009C | 44 34 00 00 | UOffset32 | 0x00003444 (13380) Loc: +0x34E0 | offset to table[7] - +0x00A0 | 84 0A 00 00 | UOffset32 | 0x00000A84 (2692) Loc: +0x0B24 | offset to table[8] - +0x00A4 | 80 32 00 00 | UOffset32 | 0x00003280 (12928) Loc: +0x3324 | offset to table[9] - +0x00A8 | F4 35 00 00 | UOffset32 | 0x000035F4 (13812) Loc: +0x369C | offset to table[10] - +0x00AC | 24 36 00 00 | UOffset32 | 0x00003624 (13860) Loc: +0x36D0 | offset to table[11] - +0x00B0 | FC 36 00 00 | UOffset32 | 0x000036FC (14076) Loc: +0x37AC | offset to table[12] - +0x00B4 | A0 37 00 00 | UOffset32 | 0x000037A0 (14240) Loc: +0x3854 | offset to table[13] - +0x00B8 | 68 36 00 00 | UOffset32 | 0x00003668 (13928) Loc: +0x3720 | offset to table[14] + +0x007C | 0F 00 00 00 | uint32_t | 0x0000000F (15) | length of vector (# items) + +0x0080 | BC 31 00 00 | UOffset32 | 0x000031BC (12732) Loc: 0x323C | offset to table[0] + +0x0084 | 00 0D 00 00 | UOffset32 | 0x00000D00 (3328) Loc: 0x0D84 | offset to table[1] + +0x0088 | 6C 2E 00 00 | UOffset32 | 0x00002E6C (11884) Loc: 0x2EF4 | offset to table[2] + +0x008C | 38 2F 00 00 | UOffset32 | 0x00002F38 (12088) Loc: 0x2FC4 | offset to table[3] + +0x0090 | A4 30 00 00 | UOffset32 | 0x000030A4 (12452) Loc: 0x3134 | offset to table[4] + +0x0094 | 28 30 00 00 | UOffset32 | 0x00003028 (12328) Loc: 0x30BC | offset to table[5] + +0x0098 | 44 35 00 00 | UOffset32 | 0x00003544 (13636) Loc: 0x35DC | offset to table[6] + +0x009C | 44 34 00 00 | UOffset32 | 0x00003444 (13380) Loc: 0x34E0 | offset to table[7] + +0x00A0 | 84 0A 00 00 | UOffset32 | 0x00000A84 (2692) Loc: 0x0B24 | offset to table[8] + +0x00A4 | 80 32 00 00 | UOffset32 | 0x00003280 (12928) Loc: 0x3324 | offset to table[9] + +0x00A8 | F4 35 00 00 | UOffset32 | 0x000035F4 (13812) Loc: 0x369C | offset to table[10] + +0x00AC | 24 36 00 00 | UOffset32 | 0x00003624 (13860) Loc: 0x36D0 | offset to table[11] + +0x00B0 | FC 36 00 00 | UOffset32 | 0x000036FC (14076) Loc: 0x37AC | offset to table[12] + +0x00B4 | A0 37 00 00 | UOffset32 | 0x000037A0 (14240) Loc: 0x3854 | offset to table[13] + +0x00B8 | 68 36 00 00 | UOffset32 | 0x00003668 (13928) Loc: 0x3720 | offset to table[14] vector (reflection.Schema.fbs_files): - +0x00BC | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) - +0x00C0 | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: +0x00F8 | offset to table[0] - +0x00C4 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: +0x00E0 | offset to table[1] - +0x00C8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x00CC | offset to table[2] + +0x00BC | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) + +0x00C0 | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: 0x00F8 | offset to table[0] + +0x00C4 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: 0x00E0 | offset to table[1] + +0x00C8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x00CC | offset to table[2] table (reflection.SchemaFile): - +0x00CC | 04 C8 FF FF | SOffset32 | 0xFFFFC804 (-14332) Loc: +0x38C8 | offset to vtable - +0x00D0 | 14 36 00 00 | UOffset32 | 0x00003614 (13844) Loc: +0x36E4 | offset to field `key` (string) - +0x00D4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x00D8 | offset to field `value` (string) + +0x00CC | 04 C8 FF FF | SOffset32 | 0xFFFFC804 (-14332) Loc: 0x38C8 | offset to vtable + +0x00D0 | 14 36 00 00 | UOffset32 | 0x00003614 (13844) Loc: 0x36E4 | offset to field `filename` (string) + +0x00D4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x00D8 | offset to field `included_filenames` (vector) -string (reflection.SchemaFile.value): - +0x00D8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x00DC | 58 | char[1] | X | string literal - +0x00DD | 36 | char | 0x36 (54) | string terminator - -padding: - +0x00DE | 00 00 | uint8_t[2] | .. | padding +vector (reflection.SchemaFile.included_filenames): + +0x00D8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x00DC | 58 36 00 00 | UOffset32 | 0x00003658 (13912) Loc: 0x3734 | offset to string[0] table (reflection.SchemaFile): - +0x00E0 | 18 C8 FF FF | SOffset32 | 0xFFFFC818 (-14312) Loc: +0x38C8 | offset to vtable - +0x00E4 | 8C 37 00 00 | UOffset32 | 0x0000378C (14220) Loc: +0x3870 | offset to field `key` (string) - +0x00E8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x00EC | offset to field `value` (string) - -string (reflection.SchemaFile.value): - +0x00EC | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x00F0 | 44 36 | char[2] | D6 | string literal - +0x00F2 | 00 | char | 0x00 (0) | string terminator + +0x00E0 | 18 C8 FF FF | SOffset32 | 0xFFFFC818 (-14312) Loc: 0x38C8 | offset to vtable + +0x00E4 | 8C 37 00 00 | UOffset32 | 0x0000378C (14220) Loc: 0x3870 | offset to field `filename` (string) + +0x00E8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x00EC | offset to field `included_filenames` (vector) -unknown (no known references): - +0x00F3 | 00 7C 37 00 00 | ?uint8_t[5] | .|7.. | WARN: could be corrupted padding region. +vector (reflection.SchemaFile.included_filenames): + +0x00EC | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) + +0x00F0 | 44 36 00 00 | UOffset32 | 0x00003644 (13892) Loc: 0x3734 | offset to string[0] + +0x00F4 | 7C 37 00 00 | UOffset32 | 0x0000377C (14204) Loc: 0x3870 | offset to string[1] table (reflection.SchemaFile): - +0x00F8 | 30 C8 FF FF | SOffset32 | 0xFFFFC830 (-14288) Loc: +0x38C8 | offset to vtable - +0x00FC | 38 36 00 00 | UOffset32 | 0x00003638 (13880) Loc: +0x3734 | offset to field `key` (string) - +0x0100 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x0104 | offset to field `value` (string) + +0x00F8 | 30 C8 FF FF | SOffset32 | 0xFFFFC830 (-14288) Loc: 0x38C8 | offset to vtable + +0x00FC | 38 36 00 00 | UOffset32 | 0x00003638 (13880) Loc: 0x3734 | offset to field `filename` (string) + +0x0100 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x0104 | offset to field `included_filenames` (vector) -string (reflection.SchemaFile.value): - +0x0104 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x0108 | 2C 36 | char[2] | ,6 | string literal - +0x010A | 00 | char | 0x00 (0) | string terminator +vector (reflection.SchemaFile.included_filenames): + +0x0104 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) + +0x0108 | 2C 36 00 00 | UOffset32 | 0x0000362C (13868) Loc: 0x3734 | offset to string[0] + +0x010C | 64 37 00 00 | UOffset32 | 0x00003764 (14180) Loc: 0x3870 | offset to string[1] -unknown (no known references): - +0x010B | 00 64 37 00 00 00 00 | ?uint8_t[7] | .d7.... | WARN: could be corrupted padding region. +padding: + +0x0110 | 00 00 | uint8_t[2] | .. | padding vtable (reflection.Service): - +0x0112 | 0E 00 | uint16_t | 0x000E (14) | size of this vtable - +0x0114 | 10 00 | uint16_t | 0x0010 (16) | size of referring table - +0x0116 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `name` (id: 0) - +0x0118 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `calls` (id: 1) - +0x011A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `attributes` (id: 2) (Vector) - +0x011C | 00 00 | VOffset16 | 0x0000 (0) | offset to field `documentation` (id: 3) (Vector) - +0x011E | 0C 00 | VOffset16 | 0x000C (12) | offset to field `declaration_file` (id: 4) + +0x0112 | 0E 00 | uint16_t | 0x000E (14) | size of this vtable + +0x0114 | 10 00 | uint16_t | 0x0010 (16) | size of referring table + +0x0116 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `name` (id: 0) + +0x0118 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `calls` (id: 1) + +0x011A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `attributes` (id: 2) (Vector) + +0x011C | 00 00 | VOffset16 | 0x0000 (0) | offset to field `documentation` (id: 3) (Vector) + +0x011E | 0C 00 | VOffset16 | 0x000C (12) | offset to field `declaration_file` (id: 4) table (reflection.Service): - +0x0120 | 0E 00 00 00 | SOffset32 | 0x0000000E (14) Loc: +0x0112 | offset to vtable - +0x0124 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x0144 | offset to field `name` (string) - +0x0128 | 08 00 00 00 | UOffset32 | 0x00000008 (8) Loc: +0x0130 | offset to field `calls` (vector) - +0x012C | B8 35 00 00 | UOffset32 | 0x000035B8 (13752) Loc: +0x36E4 | offset to field `declaration_file` (string) + +0x0120 | 0E 00 00 00 | SOffset32 | 0x0000000E (14) Loc: 0x0112 | offset to vtable + +0x0124 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: 0x0144 | offset to field `name` (string) + +0x0128 | 08 00 00 00 | UOffset32 | 0x00000008 (8) Loc: 0x0130 | offset to field `calls` (vector) + +0x012C | B8 35 00 00 | UOffset32 | 0x000035B8 (13752) Loc: 0x36E4 | offset to field `declaration_file` (string) vector (reflection.Service.calls): - +0x0130 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of vector (# items) - +0x0134 | 70 01 00 00 | UOffset32 | 0x00000170 (368) Loc: +0x02A4 | offset to table[0] - +0x0138 | E4 00 00 00 | UOffset32 | 0x000000E4 (228) Loc: +0x021C | offset to table[1] - +0x013C | 88 00 00 00 | UOffset32 | 0x00000088 (136) Loc: +0x01C4 | offset to table[2] - +0x0140 | 28 00 00 00 | UOffset32 | 0x00000028 (40) Loc: +0x0168 | offset to table[3] + +0x0130 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of vector (# items) + +0x0134 | 70 01 00 00 | UOffset32 | 0x00000170 (368) Loc: 0x02A4 | offset to table[0] + +0x0138 | E4 00 00 00 | UOffset32 | 0x000000E4 (228) Loc: 0x021C | offset to table[1] + +0x013C | 88 00 00 00 | UOffset32 | 0x00000088 (136) Loc: 0x01C4 | offset to table[2] + +0x0140 | 28 00 00 00 | UOffset32 | 0x00000028 (40) Loc: 0x0168 | offset to table[3] string (reflection.Service.name): - +0x0144 | 1D 00 00 00 | uint32_t | 0x0000001D (29) | length of string - +0x0148 | 4D 79 47 61 6D 65 2E 45 | char[29] | MyGame.E | string literal - +0x0150 | 78 61 6D 70 6C 65 2E 4D | | xample.M - +0x0158 | 6F 6E 73 74 65 72 53 74 | | onsterSt - +0x0160 | 6F 72 61 67 65 | | orage - +0x0165 | 00 | char | 0x00 (0) | string terminator + +0x0144 | 1D 00 00 00 | uint32_t | 0x0000001D (29) | length of string + +0x0148 | 4D 79 47 61 6D 65 2E 45 | char[29] | MyGame.E | string literal + +0x0150 | 78 61 6D 70 6C 65 2E 4D | | xample.M + +0x0158 | 6F 6E 73 74 65 72 53 74 | | onsterSt + +0x0160 | 6F 72 61 67 65 | | orage + +0x0165 | 00 | char | 0x00 (0) | string terminator padding: - +0x0166 | 00 00 | uint8_t[2] | .. | padding + +0x0166 | 00 00 | uint8_t[2] | .. | padding table (reflection.RPCCall): - +0x0168 | D0 FE FF FF | SOffset32 | 0xFFFFFED0 (-304) Loc: +0x0298 | offset to vtable - +0x016C | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: +0x01AC | offset to field `name` (string) - +0x0170 | 14 0C 00 00 | UOffset32 | 0x00000C14 (3092) Loc: +0x0D84 | offset to field `request` (table) - +0x0174 | 50 2E 00 00 | UOffset32 | 0x00002E50 (11856) Loc: +0x2FC4 | offset to field `response` (table) - +0x0178 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x017C | offset to field `attributes` (vector) + +0x0168 | D0 FE FF FF | SOffset32 | 0xFFFFFED0 (-304) Loc: 0x0298 | offset to vtable + +0x016C | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: 0x01AC | offset to field `name` (string) + +0x0170 | 14 0C 00 00 | UOffset32 | 0x00000C14 (3092) Loc: 0x0D84 | offset to field `request` (table) + +0x0174 | 50 2E 00 00 | UOffset32 | 0x00002E50 (11856) Loc: 0x2FC4 | offset to field `response` (table) + +0x0178 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x017C | offset to field `attributes` (vector) vector (reflection.RPCCall.attributes): - +0x017C | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x0180 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x0184 | offset to table[0] + +0x017C | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x0180 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x0184 | offset to table[0] table (reflection.KeyValue): - +0x0184 | BC C8 FF FF | SOffset32 | 0xFFFFC8BC (-14148) Loc: +0x38C8 | offset to vtable - +0x0188 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x019C | offset to field `key` (string) - +0x018C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x0190 | offset to field `value` (string) + +0x0184 | BC C8 FF FF | SOffset32 | 0xFFFFC8BC (-14148) Loc: 0x38C8 | offset to vtable + +0x0188 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: 0x019C | offset to field `key` (string) + +0x018C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x0190 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x0190 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string - +0x0194 | 62 69 64 69 | char[4] | bidi | string literal - +0x0198 | 00 | char | 0x00 (0) | string terminator + +0x0190 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string + +0x0194 | 62 69 64 69 | char[4] | bidi | string literal + +0x0198 | 00 | char | 0x00 (0) | string terminator padding: - +0x0199 | 00 00 00 | uint8_t[3] | ... | padding + +0x0199 | 00 00 00 | uint8_t[3] | ... | padding string (reflection.KeyValue.key): - +0x019C | 09 00 00 00 | uint32_t | 0x00000009 (9) | length of string - +0x01A0 | 73 74 72 65 61 6D 69 6E | char[9] | streamin | string literal - +0x01A8 | 67 | | g - +0x01A9 | 00 | char | 0x00 (0) | string terminator + +0x019C | 09 00 00 00 | uint32_t | 0x00000009 (9) | length of string + +0x01A0 | 73 74 72 65 61 6D 69 6E | char[9] | streamin | string literal + +0x01A8 | 67 | | g + +0x01A9 | 00 | char | 0x00 (0) | string terminator padding: - +0x01AA | 00 00 | uint8_t[2] | .. | padding + +0x01AA | 00 00 | uint8_t[2] | .. | padding string (reflection.RPCCall.name): - +0x01AC | 12 00 00 00 | uint32_t | 0x00000012 (18) | length of string - +0x01B0 | 47 65 74 4D 69 6E 4D 61 | char[18] | GetMinMa | string literal - +0x01B8 | 78 48 69 74 50 6F 69 6E | | xHitPoin - +0x01C0 | 74 73 | | ts - +0x01C2 | 00 | char | 0x00 (0) | string terminator + +0x01AC | 12 00 00 00 | uint32_t | 0x00000012 (18) | length of string + +0x01B0 | 47 65 74 4D 69 6E 4D 61 | char[18] | GetMinMa | string literal + +0x01B8 | 78 48 69 74 50 6F 69 6E | | xHitPoin + +0x01C0 | 74 73 | | ts + +0x01C2 | 00 | char | 0x00 (0) | string terminator table (reflection.RPCCall): - +0x01C4 | 2C FF FF FF | SOffset32 | 0xFFFFFF2C (-212) Loc: +0x0298 | offset to vtable - +0x01C8 | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: +0x0208 | offset to field `name` (string) - +0x01CC | B8 0B 00 00 | UOffset32 | 0x00000BB8 (3000) Loc: +0x0D84 | offset to field `request` (table) - +0x01D0 | F4 2D 00 00 | UOffset32 | 0x00002DF4 (11764) Loc: +0x2FC4 | offset to field `response` (table) - +0x01D4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x01D8 | offset to field `attributes` (vector) + +0x01C4 | 2C FF FF FF | SOffset32 | 0xFFFFFF2C (-212) Loc: 0x0298 | offset to vtable + +0x01C8 | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: 0x0208 | offset to field `name` (string) + +0x01CC | B8 0B 00 00 | UOffset32 | 0x00000BB8 (3000) Loc: 0x0D84 | offset to field `request` (table) + +0x01D0 | F4 2D 00 00 | UOffset32 | 0x00002DF4 (11764) Loc: 0x2FC4 | offset to field `response` (table) + +0x01D4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x01D8 | offset to field `attributes` (vector) vector (reflection.RPCCall.attributes): - +0x01D8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x01DC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x01E0 | offset to table[0] + +0x01D8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x01DC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x01E0 | offset to table[0] table (reflection.KeyValue): - +0x01E0 | 18 C9 FF FF | SOffset32 | 0xFFFFC918 (-14056) Loc: +0x38C8 | offset to vtable - +0x01E4 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x01F8 | offset to field `key` (string) - +0x01E8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x01EC | offset to field `value` (string) + +0x01E0 | 18 C9 FF FF | SOffset32 | 0xFFFFC918 (-14056) Loc: 0x38C8 | offset to vtable + +0x01E4 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: 0x01F8 | offset to field `key` (string) + +0x01E8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x01EC | offset to field `value` (string) string (reflection.KeyValue.value): - +0x01EC | 06 00 00 00 | uint32_t | 0x00000006 (6) | length of string - +0x01F0 | 63 6C 69 65 6E 74 | char[6] | client | string literal - +0x01F6 | 00 | char | 0x00 (0) | string terminator + +0x01EC | 06 00 00 00 | uint32_t | 0x00000006 (6) | length of string + +0x01F0 | 63 6C 69 65 6E 74 | char[6] | client | string literal + +0x01F6 | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x01F8 | 09 00 00 00 | uint32_t | 0x00000009 (9) | length of string - +0x01FC | 73 74 72 65 61 6D 69 6E | char[9] | streamin | string literal - +0x0204 | 67 | | g - +0x0205 | 00 | char | 0x00 (0) | string terminator + +0x01F8 | 09 00 00 00 | uint32_t | 0x00000009 (9) | length of string + +0x01FC | 73 74 72 65 61 6D 69 6E | char[9] | streamin | string literal + +0x0204 | 67 | | g + +0x0205 | 00 | char | 0x00 (0) | string terminator padding: - +0x0206 | 00 00 | uint8_t[2] | .. | padding + +0x0206 | 00 00 | uint8_t[2] | .. | padding string (reflection.RPCCall.name): - +0x0208 | 0E 00 00 00 | uint32_t | 0x0000000E (14) | length of string - +0x020C | 47 65 74 4D 61 78 48 69 | char[14] | GetMaxHi | string literal - +0x0214 | 74 50 6F 69 6E 74 | | tPoint - +0x021A | 00 | char | 0x00 (0) | string terminator + +0x0208 | 0E 00 00 00 | uint32_t | 0x0000000E (14) | length of string + +0x020C | 47 65 74 4D 61 78 48 69 | char[14] | GetMaxHi | string literal + +0x0214 | 74 50 6F 69 6E 74 | | tPoint + +0x021A | 00 | char | 0x00 (0) | string terminator table (reflection.RPCCall): - +0x021C | 84 FF FF FF | SOffset32 | 0xFFFFFF84 (-124) Loc: +0x0298 | offset to vtable - +0x0220 | 68 00 00 00 | UOffset32 | 0x00000068 (104) Loc: +0x0288 | offset to field `name` (string) - +0x0224 | A0 2D 00 00 | UOffset32 | 0x00002DA0 (11680) Loc: +0x2FC4 | offset to field `request` (table) - +0x0228 | 5C 0B 00 00 | UOffset32 | 0x00000B5C (2908) Loc: +0x0D84 | offset to field `response` (table) - +0x022C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x0230 | offset to field `attributes` (vector) + +0x021C | 84 FF FF FF | SOffset32 | 0xFFFFFF84 (-124) Loc: 0x0298 | offset to vtable + +0x0220 | 68 00 00 00 | UOffset32 | 0x00000068 (104) Loc: 0x0288 | offset to field `name` (string) + +0x0224 | A0 2D 00 00 | UOffset32 | 0x00002DA0 (11680) Loc: 0x2FC4 | offset to field `request` (table) + +0x0228 | 5C 0B 00 00 | UOffset32 | 0x00000B5C (2908) Loc: 0x0D84 | offset to field `response` (table) + +0x022C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x0230 | offset to field `attributes` (vector) vector (reflection.RPCCall.attributes): - +0x0230 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) - +0x0234 | 30 00 00 00 | UOffset32 | 0x00000030 (48) Loc: +0x0264 | offset to table[0] - +0x0238 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x023C | offset to table[1] + +0x0230 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) + +0x0234 | 30 00 00 00 | UOffset32 | 0x00000030 (48) Loc: 0x0264 | offset to table[0] + +0x0238 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x023C | offset to table[1] table (reflection.KeyValue): - +0x023C | 74 C9 FF FF | SOffset32 | 0xFFFFC974 (-13964) Loc: +0x38C8 | offset to vtable - +0x0240 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x0254 | offset to field `key` (string) - +0x0244 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x0248 | offset to field `value` (string) + +0x023C | 74 C9 FF FF | SOffset32 | 0xFFFFC974 (-13964) Loc: 0x38C8 | offset to vtable + +0x0240 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: 0x0254 | offset to field `key` (string) + +0x0244 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x0248 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x0248 | 06 00 00 00 | uint32_t | 0x00000006 (6) | length of string - +0x024C | 73 65 72 76 65 72 | char[6] | server | string literal - +0x0252 | 00 | char | 0x00 (0) | string terminator + +0x0248 | 06 00 00 00 | uint32_t | 0x00000006 (6) | length of string + +0x024C | 73 65 72 76 65 72 | char[6] | server | string literal + +0x0252 | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x0254 | 09 00 00 00 | uint32_t | 0x00000009 (9) | length of string - +0x0258 | 73 74 72 65 61 6D 69 6E | char[9] | streamin | string literal - +0x0260 | 67 | | g - +0x0261 | 00 | char | 0x00 (0) | string terminator + +0x0254 | 09 00 00 00 | uint32_t | 0x00000009 (9) | length of string + +0x0258 | 73 74 72 65 61 6D 69 6E | char[9] | streamin | string literal + +0x0260 | 67 | | g + +0x0261 | 00 | char | 0x00 (0) | string terminator padding: - +0x0262 | 00 00 | uint8_t[2] | .. | padding + +0x0262 | 00 00 | uint8_t[2] | .. | padding table (reflection.KeyValue): - +0x0264 | 9C C9 FF FF | SOffset32 | 0xFFFFC99C (-13924) Loc: +0x38C8 | offset to vtable - +0x0268 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x0278 | offset to field `key` (string) - +0x026C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x0270 | offset to field `value` (string) + +0x0264 | 9C C9 FF FF | SOffset32 | 0xFFFFC99C (-13924) Loc: 0x38C8 | offset to vtable + +0x0268 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x0278 | offset to field `key` (string) + +0x026C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x0270 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x0270 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x0274 | 30 | char[1] | 0 | string literal - +0x0275 | 00 | char | 0x00 (0) | string terminator + +0x0270 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x0274 | 30 | char[1] | 0 | string literal + +0x0275 | 00 | char | 0x00 (0) | string terminator padding: - +0x0276 | 00 00 | uint8_t[2] | .. | padding + +0x0276 | 00 00 | uint8_t[2] | .. | padding string (reflection.KeyValue.key): - +0x0278 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | length of string - +0x027C | 69 64 65 6D 70 6F 74 65 | char[10] | idempote | string literal - +0x0284 | 6E 74 | | nt - +0x0286 | 00 | char | 0x00 (0) | string terminator + +0x0278 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | length of string + +0x027C | 69 64 65 6D 70 6F 74 65 | char[10] | idempote | string literal + +0x0284 | 6E 74 | | nt + +0x0286 | 00 | char | 0x00 (0) | string terminator string (reflection.RPCCall.name): - +0x0288 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string - +0x028C | 52 65 74 72 69 65 76 65 | char[8] | Retrieve | string literal - +0x0294 | 00 | char | 0x00 (0) | string terminator + +0x0288 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string + +0x028C | 52 65 74 72 69 65 76 65 | char[8] | Retrieve | string literal + +0x0294 | 00 | char | 0x00 (0) | string terminator padding: - +0x0295 | 00 00 00 | uint8_t[3] | ... | padding + +0x0295 | 00 00 00 | uint8_t[3] | ... | padding vtable (reflection.RPCCall): - +0x0298 | 0C 00 | uint16_t | 0x000C (12) | size of this vtable - +0x029A | 14 00 | uint16_t | 0x0014 (20) | size of referring table - +0x029C | 04 00 | VOffset16 | 0x0004 (4) | offset to field `name` (id: 0) - +0x029E | 08 00 | VOffset16 | 0x0008 (8) | offset to field `request` (id: 1) - +0x02A0 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `response` (id: 2) - +0x02A2 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `attributes` (id: 3) + +0x0298 | 0C 00 | uint16_t | 0x000C (12) | size of this vtable + +0x029A | 14 00 | uint16_t | 0x0014 (20) | size of referring table + +0x029C | 04 00 | VOffset16 | 0x0004 (4) | offset to field `name` (id: 0) + +0x029E | 08 00 | VOffset16 | 0x0008 (8) | offset to field `request` (id: 1) + +0x02A0 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `response` (id: 2) + +0x02A2 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `attributes` (id: 3) table (reflection.RPCCall): - +0x02A4 | 0C 00 00 00 | SOffset32 | 0x0000000C (12) Loc: +0x0298 | offset to vtable - +0x02A8 | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: +0x02E8 | offset to field `name` (string) - +0x02AC | D8 0A 00 00 | UOffset32 | 0x00000AD8 (2776) Loc: +0x0D84 | offset to field `request` (table) - +0x02B0 | 14 2D 00 00 | UOffset32 | 0x00002D14 (11540) Loc: +0x2FC4 | offset to field `response` (table) - +0x02B4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x02B8 | offset to field `attributes` (vector) + +0x02A4 | 0C 00 00 00 | SOffset32 | 0x0000000C (12) Loc: 0x0298 | offset to vtable + +0x02A8 | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: 0x02E8 | offset to field `name` (string) + +0x02AC | D8 0A 00 00 | UOffset32 | 0x00000AD8 (2776) Loc: 0x0D84 | offset to field `request` (table) + +0x02B0 | 14 2D 00 00 | UOffset32 | 0x00002D14 (11540) Loc: 0x2FC4 | offset to field `response` (table) + +0x02B4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x02B8 | offset to field `attributes` (vector) vector (reflection.RPCCall.attributes): - +0x02B8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x02BC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x02C0 | offset to table[0] + +0x02B8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x02BC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x02C0 | offset to table[0] table (reflection.KeyValue): - +0x02C0 | F8 C9 FF FF | SOffset32 | 0xFFFFC9F8 (-13832) Loc: +0x38C8 | offset to vtable - +0x02C4 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x02D8 | offset to field `key` (string) - +0x02C8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x02CC | offset to field `value` (string) + +0x02C0 | F8 C9 FF FF | SOffset32 | 0xFFFFC9F8 (-13832) Loc: 0x38C8 | offset to vtable + +0x02C4 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: 0x02D8 | offset to field `key` (string) + +0x02C8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x02CC | offset to field `value` (string) string (reflection.KeyValue.value): - +0x02CC | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string - +0x02D0 | 6E 6F 6E 65 | char[4] | none | string literal - +0x02D4 | 00 | char | 0x00 (0) | string terminator + +0x02CC | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string + +0x02D0 | 6E 6F 6E 65 | char[4] | none | string literal + +0x02D4 | 00 | char | 0x00 (0) | string terminator padding: - +0x02D5 | 00 00 00 | uint8_t[3] | ... | padding + +0x02D5 | 00 00 00 | uint8_t[3] | ... | padding string (reflection.KeyValue.key): - +0x02D8 | 09 00 00 00 | uint32_t | 0x00000009 (9) | length of string - +0x02DC | 73 74 72 65 61 6D 69 6E | char[9] | streamin | string literal - +0x02E4 | 67 | | g - +0x02E5 | 00 | char | 0x00 (0) | string terminator + +0x02D8 | 09 00 00 00 | uint32_t | 0x00000009 (9) | length of string + +0x02DC | 73 74 72 65 61 6D 69 6E | char[9] | streamin | string literal + +0x02E4 | 67 | | g + +0x02E5 | 00 | char | 0x00 (0) | string terminator padding: - +0x02E6 | 00 00 | uint8_t[2] | .. | padding + +0x02E6 | 00 00 | uint8_t[2] | .. | padding string (reflection.RPCCall.name): - +0x02E8 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string - +0x02EC | 53 74 6F 72 65 | char[5] | Store | string literal - +0x02F1 | 00 | char | 0x00 (0) | string terminator + +0x02E8 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string + +0x02EC | 53 74 6F 72 65 | char[5] | Store | string literal + +0x02F1 | 00 | char | 0x00 (0) | string terminator padding: - +0x02F2 | 00 00 | uint8_t[2] | .. | padding + +0x02F2 | 00 00 | uint8_t[2] | .. | padding table (reflection.Enum): - +0x02F4 | D2 FD FF FF | SOffset32 | 0xFFFFFDD2 (-558) Loc: +0x0522 | offset to vtable - +0x02F8 | 00 00 00 | uint8_t[3] | ... | padding - +0x02FB | 01 | uint8_t | 0x01 (1) | table field `is_union` (Bool) - +0x02FC | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: +0x0334 | offset to field `name` (string) - +0x0300 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x0320 | offset to field `values` (vector) - +0x0304 | 08 00 00 00 | UOffset32 | 0x00000008 (8) Loc: +0x030C | offset to field `underlying_type` (table) - +0x0308 | DC 33 00 00 | UOffset32 | 0x000033DC (13276) Loc: +0x36E4 | offset to field `declaration_file` (string) + +0x02F4 | D2 FD FF FF | SOffset32 | 0xFFFFFDD2 (-558) Loc: 0x0522 | offset to vtable + +0x02F8 | 00 00 00 | uint8_t[3] | ... | padding + +0x02FB | 01 | uint8_t | 0x01 (1) | table field `is_union` (Bool) + +0x02FC | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: 0x0334 | offset to field `name` (string) + +0x0300 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: 0x0320 | offset to field `values` (vector) + +0x0304 | 08 00 00 00 | UOffset32 | 0x00000008 (8) Loc: 0x030C | offset to field `underlying_type` (table) + +0x0308 | DC 33 00 00 | UOffset32 | 0x000033DC (13276) Loc: 0x36E4 | offset to field `declaration_file` (string) table (reflection.Type): - +0x030C | 60 CD FF FF | SOffset32 | 0xFFFFCD60 (-12960) Loc: +0x35AC | offset to vtable - +0x0310 | 00 00 00 | uint8_t[3] | ... | padding - +0x0313 | 01 | uint8_t | 0x01 (1) | table field `base_type` (Byte) - +0x0314 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `index` (Int) - +0x0318 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) - +0x031C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x030C | 60 CD FF FF | SOffset32 | 0xFFFFCD60 (-12960) Loc: 0x35AC | offset to vtable + +0x0310 | 00 00 00 | uint8_t[3] | ... | padding + +0x0313 | 01 | uint8_t | 0x01 (1) | table field `base_type` (Byte) + +0x0314 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `index` (Int) + +0x0318 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) + +0x031C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) vector (reflection.Enum.values): - +0x0320 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of vector (# items) - +0x0324 | C8 00 00 00 | UOffset32 | 0x000000C8 (200) Loc: +0x03EC | offset to table[0] - +0x0328 | 94 00 00 00 | UOffset32 | 0x00000094 (148) Loc: +0x03BC | offset to table[1] - +0x032C | 60 00 00 00 | UOffset32 | 0x00000060 (96) Loc: +0x038C | offset to table[2] - +0x0330 | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: +0x035C | offset to table[3] + +0x0320 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of vector (# items) + +0x0324 | C8 00 00 00 | UOffset32 | 0x000000C8 (200) Loc: 0x03EC | offset to table[0] + +0x0328 | 94 00 00 00 | UOffset32 | 0x00000094 (148) Loc: 0x03BC | offset to table[1] + +0x032C | 60 00 00 00 | UOffset32 | 0x00000060 (96) Loc: 0x038C | offset to table[2] + +0x0330 | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: 0x035C | offset to table[3] string (reflection.Enum.name): - +0x0334 | 22 00 00 00 | uint32_t | 0x00000022 (34) | length of string - +0x0338 | 4D 79 47 61 6D 65 2E 45 | char[34] | MyGame.E | string literal - +0x0340 | 78 61 6D 70 6C 65 2E 41 | | xample.A - +0x0348 | 6E 79 41 6D 62 69 67 75 | | nyAmbigu - +0x0350 | 6F 75 73 41 6C 69 61 73 | | ousAlias - +0x0358 | 65 73 | | es - +0x035A | 00 | char | 0x00 (0) | string terminator + +0x0334 | 22 00 00 00 | uint32_t | 0x00000022 (34) | length of string + +0x0338 | 4D 79 47 61 6D 65 2E 45 | char[34] | MyGame.E | string literal + +0x0340 | 78 61 6D 70 6C 65 2E 41 | | xample.A + +0x0348 | 6E 79 41 6D 62 69 67 75 | | nyAmbigu + +0x0350 | 6F 75 73 41 6C 69 61 73 | | ousAlias + +0x0358 | 65 73 | | es + +0x035A | 00 | char | 0x00 (0) | string terminator table (reflection.EnumVal): - +0x035C | 0C FB FF FF | SOffset32 | 0xFFFFFB0C (-1268) Loc: +0x0850 | offset to vtable - +0x0360 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x0384 | offset to field `name` (string) - +0x0364 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x0374 | offset to field `union_type` (table) - +0x0368 | 03 00 00 00 00 00 00 00 | int64_t | 0x0000000000000003 (3) | table field `value` (Long) - +0x0370 | 00 00 00 00 | uint8_t[4] | .... | padding + +0x035C | 0C FB FF FF | SOffset32 | 0xFFFFFB0C (-1268) Loc: 0x0850 | offset to vtable + +0x0360 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: 0x0384 | offset to field `name` (string) + +0x0364 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x0374 | offset to field `union_type` (table) + +0x0368 | 03 00 00 00 00 00 00 00 | int64_t | 0x0000000000000003 (3) | table field `value` (Long) + +0x0370 | 00 00 00 00 | uint8_t[4] | .... | padding table (reflection.Type): - +0x0374 | 5C CB FF FF | SOffset32 | 0xFFFFCB5C (-13476) Loc: +0x3818 | offset to vtable - +0x0378 | 00 00 00 | uint8_t[3] | ... | padding - +0x037B | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) - +0x037C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `index` (Int) - +0x0380 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x0374 | 5C CB FF FF | SOffset32 | 0xFFFFCB5C (-13476) Loc: 0x3818 | offset to vtable + +0x0378 | 00 00 00 | uint8_t[3] | ... | padding + +0x037B | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) + +0x037C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `index` (Int) + +0x0380 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.EnumVal.name): - +0x0384 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x0388 | 4D 33 | char[2] | M3 | string literal - +0x038A | 00 | char | 0x00 (0) | string terminator + +0x0384 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x0388 | 4D 33 | char[2] | M3 | string literal + +0x038A | 00 | char | 0x00 (0) | string terminator table (reflection.EnumVal): - +0x038C | 3C FB FF FF | SOffset32 | 0xFFFFFB3C (-1220) Loc: +0x0850 | offset to vtable - +0x0390 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x03B4 | offset to field `name` (string) - +0x0394 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x03A4 | offset to field `union_type` (table) - +0x0398 | 02 00 00 00 00 00 00 00 | int64_t | 0x0000000000000002 (2) | table field `value` (Long) - +0x03A0 | 00 00 00 00 | uint8_t[4] | .... | padding + +0x038C | 3C FB FF FF | SOffset32 | 0xFFFFFB3C (-1220) Loc: 0x0850 | offset to vtable + +0x0390 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: 0x03B4 | offset to field `name` (string) + +0x0394 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x03A4 | offset to field `union_type` (table) + +0x0398 | 02 00 00 00 00 00 00 00 | int64_t | 0x0000000000000002 (2) | table field `value` (Long) + +0x03A0 | 00 00 00 00 | uint8_t[4] | .... | padding table (reflection.Type): - +0x03A4 | 8C CB FF FF | SOffset32 | 0xFFFFCB8C (-13428) Loc: +0x3818 | offset to vtable - +0x03A8 | 00 00 00 | uint8_t[3] | ... | padding - +0x03AB | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) - +0x03AC | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `index` (Int) - +0x03B0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x03A4 | 8C CB FF FF | SOffset32 | 0xFFFFCB8C (-13428) Loc: 0x3818 | offset to vtable + +0x03A8 | 00 00 00 | uint8_t[3] | ... | padding + +0x03AB | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) + +0x03AC | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `index` (Int) + +0x03B0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.EnumVal.name): - +0x03B4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x03B8 | 4D 32 | char[2] | M2 | string literal - +0x03BA | 00 | char | 0x00 (0) | string terminator + +0x03B4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x03B8 | 4D 32 | char[2] | M2 | string literal + +0x03BA | 00 | char | 0x00 (0) | string terminator table (reflection.EnumVal): - +0x03BC | 6C FB FF FF | SOffset32 | 0xFFFFFB6C (-1172) Loc: +0x0850 | offset to vtable - +0x03C0 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x03E4 | offset to field `name` (string) - +0x03C4 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x03D4 | offset to field `union_type` (table) - +0x03C8 | 01 00 00 00 00 00 00 00 | int64_t | 0x0000000000000001 (1) | table field `value` (Long) - +0x03D0 | 00 00 00 00 | uint8_t[4] | .... | padding + +0x03BC | 6C FB FF FF | SOffset32 | 0xFFFFFB6C (-1172) Loc: 0x0850 | offset to vtable + +0x03C0 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: 0x03E4 | offset to field `name` (string) + +0x03C4 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x03D4 | offset to field `union_type` (table) + +0x03C8 | 01 00 00 00 00 00 00 00 | int64_t | 0x0000000000000001 (1) | table field `value` (Long) + +0x03D0 | 00 00 00 00 | uint8_t[4] | .... | padding table (reflection.Type): - +0x03D4 | BC CB FF FF | SOffset32 | 0xFFFFCBBC (-13380) Loc: +0x3818 | offset to vtable - +0x03D8 | 00 00 00 | uint8_t[3] | ... | padding - +0x03DB | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) - +0x03DC | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `index` (Int) - +0x03E0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x03D4 | BC CB FF FF | SOffset32 | 0xFFFFCBBC (-13380) Loc: 0x3818 | offset to vtable + +0x03D8 | 00 00 00 | uint8_t[3] | ... | padding + +0x03DB | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) + +0x03DC | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `index` (Int) + +0x03E0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.EnumVal.name): - +0x03E4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x03E8 | 4D 31 | char[2] | M1 | string literal - +0x03EA | 00 | char | 0x00 (0) | string terminator + +0x03E4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x03E8 | 4D 31 | char[2] | M1 | string literal + +0x03EA | 00 | char | 0x00 (0) | string terminator table (reflection.EnumVal): - +0x03EC | 0C F9 FF FF | SOffset32 | 0xFFFFF90C (-1780) Loc: +0x0AE0 | offset to vtable - +0x03F0 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x0404 | offset to field `name` (string) - +0x03F4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x03F8 | offset to field `union_type` (table) + +0x03EC | 0C F9 FF FF | SOffset32 | 0xFFFFF90C (-1780) Loc: 0x0AE0 | offset to vtable + +0x03F0 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: 0x0404 | offset to field `name` (string) + +0x03F4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x03F8 | offset to field `union_type` (table) table (reflection.Type): - +0x03F8 | 00 F9 FF FF | SOffset32 | 0xFFFFF900 (-1792) Loc: +0x0AF8 | offset to vtable - +0x03FC | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) - +0x0400 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x03F8 | 00 F9 FF FF | SOffset32 | 0xFFFFF900 (-1792) Loc: 0x0AF8 | offset to vtable + +0x03FC | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) + +0x0400 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.EnumVal.name): - +0x0404 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string - +0x0408 | 4E 4F 4E 45 | char[4] | NONE | string literal - +0x040C | 00 | char | 0x00 (0) | string terminator + +0x0404 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string + +0x0408 | 4E 4F 4E 45 | char[4] | NONE | string literal + +0x040C | 00 | char | 0x00 (0) | string terminator padding: - +0x040D | 00 00 00 | uint8_t[3] | ... | padding + +0x040D | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Enum): - +0x0410 | EE FE FF FF | SOffset32 | 0xFFFFFEEE (-274) Loc: +0x0522 | offset to vtable - +0x0414 | 00 00 00 | uint8_t[3] | ... | padding - +0x0417 | 01 | uint8_t | 0x01 (1) | table field `is_union` (Bool) - +0x0418 | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: +0x0450 | offset to field `name` (string) - +0x041C | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x043C | offset to field `values` (vector) - +0x0420 | 08 00 00 00 | UOffset32 | 0x00000008 (8) Loc: +0x0428 | offset to field `underlying_type` (table) - +0x0424 | C0 32 00 00 | UOffset32 | 0x000032C0 (12992) Loc: +0x36E4 | offset to field `declaration_file` (string) + +0x0410 | EE FE FF FF | SOffset32 | 0xFFFFFEEE (-274) Loc: 0x0522 | offset to vtable + +0x0414 | 00 00 00 | uint8_t[3] | ... | padding + +0x0417 | 01 | uint8_t | 0x01 (1) | table field `is_union` (Bool) + +0x0418 | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: 0x0450 | offset to field `name` (string) + +0x041C | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: 0x043C | offset to field `values` (vector) + +0x0420 | 08 00 00 00 | UOffset32 | 0x00000008 (8) Loc: 0x0428 | offset to field `underlying_type` (table) + +0x0424 | C0 32 00 00 | UOffset32 | 0x000032C0 (12992) Loc: 0x36E4 | offset to field `declaration_file` (string) table (reflection.Type): - +0x0428 | 7C CE FF FF | SOffset32 | 0xFFFFCE7C (-12676) Loc: +0x35AC | offset to vtable - +0x042C | 00 00 00 | uint8_t[3] | ... | padding - +0x042F | 01 | uint8_t | 0x01 (1) | table field `base_type` (Byte) - +0x0430 | 02 00 00 00 | uint32_t | 0x00000002 (2) | table field `index` (Int) - +0x0434 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) - +0x0438 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x0428 | 7C CE FF FF | SOffset32 | 0xFFFFCE7C (-12676) Loc: 0x35AC | offset to vtable + +0x042C | 00 00 00 | uint8_t[3] | ... | padding + +0x042F | 01 | uint8_t | 0x01 (1) | table field `base_type` (Byte) + +0x0430 | 02 00 00 00 | uint32_t | 0x00000002 (2) | table field `index` (Int) + +0x0434 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) + +0x0438 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) vector (reflection.Enum.values): - +0x043C | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of vector (# items) - +0x0440 | C0 00 00 00 | UOffset32 | 0x000000C0 (192) Loc: +0x0500 | offset to table[0] - +0x0444 | 90 00 00 00 | UOffset32 | 0x00000090 (144) Loc: +0x04D4 | offset to table[1] - +0x0448 | 5C 00 00 00 | UOffset32 | 0x0000005C (92) Loc: +0x04A4 | offset to table[2] - +0x044C | 28 00 00 00 | UOffset32 | 0x00000028 (40) Loc: +0x0474 | offset to table[3] + +0x043C | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of vector (# items) + +0x0440 | C0 00 00 00 | UOffset32 | 0x000000C0 (192) Loc: 0x0500 | offset to table[0] + +0x0444 | 90 00 00 00 | UOffset32 | 0x00000090 (144) Loc: 0x04D4 | offset to table[1] + +0x0448 | 5C 00 00 00 | UOffset32 | 0x0000005C (92) Loc: 0x04A4 | offset to table[2] + +0x044C | 28 00 00 00 | UOffset32 | 0x00000028 (40) Loc: 0x0474 | offset to table[3] string (reflection.Enum.name): - +0x0450 | 1F 00 00 00 | uint32_t | 0x0000001F (31) | length of string - +0x0454 | 4D 79 47 61 6D 65 2E 45 | char[31] | MyGame.E | string literal - +0x045C | 78 61 6D 70 6C 65 2E 41 | | xample.A - +0x0464 | 6E 79 55 6E 69 71 75 65 | | nyUnique - +0x046C | 41 6C 69 61 73 65 73 | | Aliases - +0x0473 | 00 | char | 0x00 (0) | string terminator + +0x0450 | 1F 00 00 00 | uint32_t | 0x0000001F (31) | length of string + +0x0454 | 4D 79 47 61 6D 65 2E 45 | char[31] | MyGame.E | string literal + +0x045C | 78 61 6D 70 6C 65 2E 41 | | xample.A + +0x0464 | 6E 79 55 6E 69 71 75 65 | | nyUnique + +0x046C | 41 6C 69 61 73 65 73 | | Aliases + +0x0473 | 00 | char | 0x00 (0) | string terminator table (reflection.EnumVal): - +0x0474 | 24 FC FF FF | SOffset32 | 0xFFFFFC24 (-988) Loc: +0x0850 | offset to vtable - +0x0478 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x049C | offset to field `name` (string) - +0x047C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x048C | offset to field `union_type` (table) - +0x0480 | 03 00 00 00 00 00 00 00 | int64_t | 0x0000000000000003 (3) | table field `value` (Long) - +0x0488 | 00 00 00 00 | uint8_t[4] | .... | padding + +0x0474 | 24 FC FF FF | SOffset32 | 0xFFFFFC24 (-988) Loc: 0x0850 | offset to vtable + +0x0478 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: 0x049C | offset to field `name` (string) + +0x047C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x048C | offset to field `union_type` (table) + +0x0480 | 03 00 00 00 00 00 00 00 | int64_t | 0x0000000000000003 (3) | table field `value` (Long) + +0x0488 | 00 00 00 00 | uint8_t[4] | .... | padding table (reflection.Type): - +0x048C | 74 CC FF FF | SOffset32 | 0xFFFFCC74 (-13196) Loc: +0x3818 | offset to vtable - +0x0490 | 00 00 00 | uint8_t[3] | ... | padding - +0x0493 | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) - +0x0494 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | table field `index` (Int) - +0x0498 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x048C | 74 CC FF FF | SOffset32 | 0xFFFFCC74 (-13196) Loc: 0x3818 | offset to vtable + +0x0490 | 00 00 00 | uint8_t[3] | ... | padding + +0x0493 | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) + +0x0494 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | table field `index` (Int) + +0x0498 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.EnumVal.name): - +0x049C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x04A0 | 4D 32 | char[2] | M2 | string literal - +0x04A2 | 00 | char | 0x00 (0) | string terminator + +0x049C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x04A0 | 4D 32 | char[2] | M2 | string literal + +0x04A2 | 00 | char | 0x00 (0) | string terminator table (reflection.EnumVal): - +0x04A4 | 54 FC FF FF | SOffset32 | 0xFFFFFC54 (-940) Loc: +0x0850 | offset to vtable - +0x04A8 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x04CC | offset to field `name` (string) - +0x04AC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x04BC | offset to field `union_type` (table) - +0x04B0 | 02 00 00 00 00 00 00 00 | int64_t | 0x0000000000000002 (2) | table field `value` (Long) - +0x04B8 | 00 00 00 00 | uint8_t[4] | .... | padding + +0x04A4 | 54 FC FF FF | SOffset32 | 0xFFFFFC54 (-940) Loc: 0x0850 | offset to vtable + +0x04A8 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: 0x04CC | offset to field `name` (string) + +0x04AC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x04BC | offset to field `union_type` (table) + +0x04B0 | 02 00 00 00 00 00 00 00 | int64_t | 0x0000000000000002 (2) | table field `value` (Long) + +0x04B8 | 00 00 00 00 | uint8_t[4] | .... | padding table (reflection.Type): - +0x04BC | A4 CC FF FF | SOffset32 | 0xFFFFCCA4 (-13148) Loc: +0x3818 | offset to vtable - +0x04C0 | 00 00 00 | uint8_t[3] | ... | padding - +0x04C3 | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) - +0x04C4 | 07 00 00 00 | uint32_t | 0x00000007 (7) | table field `index` (Int) - +0x04C8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x04BC | A4 CC FF FF | SOffset32 | 0xFFFFCCA4 (-13148) Loc: 0x3818 | offset to vtable + +0x04C0 | 00 00 00 | uint8_t[3] | ... | padding + +0x04C3 | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) + +0x04C4 | 07 00 00 00 | uint32_t | 0x00000007 (7) | table field `index` (Int) + +0x04C8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.EnumVal.name): - +0x04CC | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x04D0 | 54 53 | char[2] | TS | string literal - +0x04D2 | 00 | char | 0x00 (0) | string terminator + +0x04CC | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x04D0 | 54 53 | char[2] | TS | string literal + +0x04D2 | 00 | char | 0x00 (0) | string terminator table (reflection.EnumVal): - +0x04D4 | 94 FA FF FF | SOffset32 | 0xFFFFFA94 (-1388) Loc: +0x0A40 | offset to vtable - +0x04D8 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x04F8 | offset to field `name` (string) - +0x04DC | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x04E8 | offset to field `union_type` (table) - +0x04E0 | 01 00 00 00 00 00 00 00 | int64_t | 0x0000000000000001 (1) | table field `value` (Long) + +0x04D4 | 94 FA FF FF | SOffset32 | 0xFFFFFA94 (-1388) Loc: 0x0A40 | offset to vtable + +0x04D8 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: 0x04F8 | offset to field `name` (string) + +0x04DC | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: 0x04E8 | offset to field `union_type` (table) + +0x04E0 | 01 00 00 00 00 00 00 00 | int64_t | 0x0000000000000001 (1) | table field `value` (Long) table (reflection.Type): - +0x04E8 | D0 CC FF FF | SOffset32 | 0xFFFFCCD0 (-13104) Loc: +0x3818 | offset to vtable - +0x04EC | 00 00 00 | uint8_t[3] | ... | padding - +0x04EF | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) - +0x04F0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `index` (Int) - +0x04F4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x04E8 | D0 CC FF FF | SOffset32 | 0xFFFFCCD0 (-13104) Loc: 0x3818 | offset to vtable + +0x04EC | 00 00 00 | uint8_t[3] | ... | padding + +0x04EF | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) + +0x04F0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `index` (Int) + +0x04F4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.EnumVal.name): - +0x04F8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x04FC | 4D | char[1] | M | string literal - +0x04FD | 00 | char | 0x00 (0) | string terminator + +0x04F8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x04FC | 4D | char[1] | M | string literal + +0x04FD | 00 | char | 0x00 (0) | string terminator padding: - +0x04FE | 00 00 | uint8_t[2] | .. | padding + +0x04FE | 00 00 | uint8_t[2] | .. | padding table (reflection.EnumVal): - +0x0500 | 20 FA FF FF | SOffset32 | 0xFFFFFA20 (-1504) Loc: +0x0AE0 | offset to vtable - +0x0504 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x0518 | offset to field `name` (string) - +0x0508 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x050C | offset to field `union_type` (table) + +0x0500 | 20 FA FF FF | SOffset32 | 0xFFFFFA20 (-1504) Loc: 0x0AE0 | offset to vtable + +0x0504 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: 0x0518 | offset to field `name` (string) + +0x0508 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x050C | offset to field `union_type` (table) table (reflection.Type): - +0x050C | 14 FA FF FF | SOffset32 | 0xFFFFFA14 (-1516) Loc: +0x0AF8 | offset to vtable - +0x0510 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) - +0x0514 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x050C | 14 FA FF FF | SOffset32 | 0xFFFFFA14 (-1516) Loc: 0x0AF8 | offset to vtable + +0x0510 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) + +0x0514 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.EnumVal.name): - +0x0518 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string - +0x051C | 4E 4F 4E 45 | char[4] | NONE | string literal - +0x0520 | 00 | char | 0x00 (0) | string terminator + +0x0518 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string + +0x051C | 4E 4F 4E 45 | char[4] | NONE | string literal + +0x0520 | 00 | char | 0x00 (0) | string terminator vtable (reflection.Enum): - +0x0522 | 12 00 | uint16_t | 0x0012 (18) | size of this vtable - +0x0524 | 18 00 | uint16_t | 0x0018 (24) | size of referring table - +0x0526 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0) - +0x0528 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `values` (id: 1) - +0x052A | 07 00 | VOffset16 | 0x0007 (7) | offset to field `is_union` (id: 2) - +0x052C | 10 00 | VOffset16 | 0x0010 (16) | offset to field `underlying_type` (id: 3) - +0x052E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `attributes` (id: 4) (Vector) - +0x0530 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `documentation` (id: 5) (Vector) - +0x0532 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `declaration_file` (id: 6) + +0x0522 | 12 00 | uint16_t | 0x0012 (18) | size of this vtable + +0x0524 | 18 00 | uint16_t | 0x0018 (24) | size of referring table + +0x0526 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0) + +0x0528 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `values` (id: 1) + +0x052A | 07 00 | VOffset16 | 0x0007 (7) | offset to field `is_union` (id: 2) + +0x052C | 10 00 | VOffset16 | 0x0010 (16) | offset to field `underlying_type` (id: 3) + +0x052E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `attributes` (id: 4) (Vector) + +0x0530 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `documentation` (id: 5) (Vector) + +0x0532 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `declaration_file` (id: 6) table (reflection.Enum): - +0x0534 | 12 00 00 00 | SOffset32 | 0x00000012 (18) Loc: +0x0522 | offset to vtable - +0x0538 | 00 00 00 | uint8_t[3] | ... | padding - +0x053B | 01 | uint8_t | 0x01 (1) | table field `is_union` (Bool) - +0x053C | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: +0x0574 | offset to field `name` (string) - +0x0540 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x0560 | offset to field `values` (vector) - +0x0544 | 08 00 00 00 | UOffset32 | 0x00000008 (8) Loc: +0x054C | offset to field `underlying_type` (table) - +0x0548 | 9C 31 00 00 | UOffset32 | 0x0000319C (12700) Loc: +0x36E4 | offset to field `declaration_file` (string) + +0x0534 | 12 00 00 00 | SOffset32 | 0x00000012 (18) Loc: 0x0522 | offset to vtable + +0x0538 | 00 00 00 | uint8_t[3] | ... | padding + +0x053B | 01 | uint8_t | 0x01 (1) | table field `is_union` (Bool) + +0x053C | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: 0x0574 | offset to field `name` (string) + +0x0540 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: 0x0560 | offset to field `values` (vector) + +0x0544 | 08 00 00 00 | UOffset32 | 0x00000008 (8) Loc: 0x054C | offset to field `underlying_type` (table) + +0x0548 | 9C 31 00 00 | UOffset32 | 0x0000319C (12700) Loc: 0x36E4 | offset to field `declaration_file` (string) table (reflection.Type): - +0x054C | A0 CF FF FF | SOffset32 | 0xFFFFCFA0 (-12384) Loc: +0x35AC | offset to vtable - +0x0550 | 00 00 00 | uint8_t[3] | ... | padding - +0x0553 | 01 | uint8_t | 0x01 (1) | table field `base_type` (Byte) - +0x0554 | 00 00 00 00 | uint32_t | 0x00000000 (0) | table field `index` (Int) - +0x0558 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) - +0x055C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x054C | A0 CF FF FF | SOffset32 | 0xFFFFCFA0 (-12384) Loc: 0x35AC | offset to vtable + +0x0550 | 00 00 00 | uint8_t[3] | ... | padding + +0x0553 | 01 | uint8_t | 0x01 (1) | table field `base_type` (Byte) + +0x0554 | 00 00 00 00 | uint32_t | 0x00000000 (0) | table field `index` (Int) + +0x0558 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) + +0x055C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) vector (reflection.Enum.values): - +0x0560 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of vector (# items) - +0x0564 | D8 00 00 00 | UOffset32 | 0x000000D8 (216) Loc: +0x063C | offset to table[0] - +0x0568 | A4 00 00 00 | UOffset32 | 0x000000A4 (164) Loc: +0x060C | offset to table[1] - +0x056C | 60 00 00 00 | UOffset32 | 0x00000060 (96) Loc: +0x05CC | offset to table[2] - +0x0570 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: +0x058C | offset to table[3] + +0x0560 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of vector (# items) + +0x0564 | D8 00 00 00 | UOffset32 | 0x000000D8 (216) Loc: 0x063C | offset to table[0] + +0x0568 | A4 00 00 00 | UOffset32 | 0x000000A4 (164) Loc: 0x060C | offset to table[1] + +0x056C | 60 00 00 00 | UOffset32 | 0x00000060 (96) Loc: 0x05CC | offset to table[2] + +0x0570 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: 0x058C | offset to table[3] string (reflection.Enum.name): - +0x0574 | 12 00 00 00 | uint32_t | 0x00000012 (18) | length of string - +0x0578 | 4D 79 47 61 6D 65 2E 45 | char[18] | MyGame.E | string literal - +0x0580 | 78 61 6D 70 6C 65 2E 41 | | xample.A - +0x0588 | 6E 79 | | ny - +0x058A | 00 | char | 0x00 (0) | string terminator + +0x0574 | 12 00 00 00 | uint32_t | 0x00000012 (18) | length of string + +0x0578 | 4D 79 47 61 6D 65 2E 45 | char[18] | MyGame.E | string literal + +0x0580 | 78 61 6D 70 6C 65 2E 41 | | xample.A + +0x0588 | 6E 79 | | ny + +0x058A | 00 | char | 0x00 (0) | string terminator table (reflection.EnumVal): - +0x058C | 4C FB FF FF | SOffset32 | 0xFFFFFB4C (-1204) Loc: +0x0A40 | offset to vtable - +0x0590 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x05B0 | offset to field `name` (string) - +0x0594 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x05A0 | offset to field `union_type` (table) - +0x0598 | 03 00 00 00 00 00 00 00 | int64_t | 0x0000000000000003 (3) | table field `value` (Long) + +0x058C | 4C FB FF FF | SOffset32 | 0xFFFFFB4C (-1204) Loc: 0x0A40 | offset to vtable + +0x0590 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: 0x05B0 | offset to field `name` (string) + +0x0594 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: 0x05A0 | offset to field `union_type` (table) + +0x0598 | 03 00 00 00 00 00 00 00 | int64_t | 0x0000000000000003 (3) | table field `value` (Long) table (reflection.Type): - +0x05A0 | 88 CD FF FF | SOffset32 | 0xFFFFCD88 (-12920) Loc: +0x3818 | offset to vtable - +0x05A4 | 00 00 00 | uint8_t[3] | ... | padding - +0x05A7 | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) - +0x05A8 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | table field `index` (Int) - +0x05AC | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x05A0 | 88 CD FF FF | SOffset32 | 0xFFFFCD88 (-12920) Loc: 0x3818 | offset to vtable + +0x05A4 | 00 00 00 | uint8_t[3] | ... | padding + +0x05A7 | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) + +0x05A8 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | table field `index` (Int) + +0x05AC | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.EnumVal.name): - +0x05B0 | 17 00 00 00 | uint32_t | 0x00000017 (23) | length of string - +0x05B4 | 4D 79 47 61 6D 65 5F 45 | char[23] | MyGame_E | string literal - +0x05BC | 78 61 6D 70 6C 65 32 5F | | xample2_ - +0x05C4 | 4D 6F 6E 73 74 65 72 | | Monster - +0x05CB | 00 | char | 0x00 (0) | string terminator + +0x05B0 | 17 00 00 00 | uint32_t | 0x00000017 (23) | length of string + +0x05B4 | 4D 79 47 61 6D 65 5F 45 | char[23] | MyGame_E | string literal + +0x05BC | 78 61 6D 70 6C 65 32 5F | | xample2_ + +0x05C4 | 4D 6F 6E 73 74 65 72 | | Monster + +0x05CB | 00 | char | 0x00 (0) | string terminator table (reflection.EnumVal): - +0x05CC | 8C FB FF FF | SOffset32 | 0xFFFFFB8C (-1140) Loc: +0x0A40 | offset to vtable - +0x05D0 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x05F0 | offset to field `name` (string) - +0x05D4 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x05E0 | offset to field `union_type` (table) - +0x05D8 | 02 00 00 00 00 00 00 00 | int64_t | 0x0000000000000002 (2) | table field `value` (Long) + +0x05CC | 8C FB FF FF | SOffset32 | 0xFFFFFB8C (-1140) Loc: 0x0A40 | offset to vtable + +0x05D0 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: 0x05F0 | offset to field `name` (string) + +0x05D4 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: 0x05E0 | offset to field `union_type` (table) + +0x05D8 | 02 00 00 00 00 00 00 00 | int64_t | 0x0000000000000002 (2) | table field `value` (Long) table (reflection.Type): - +0x05E0 | C8 CD FF FF | SOffset32 | 0xFFFFCDC8 (-12856) Loc: +0x3818 | offset to vtable - +0x05E4 | 00 00 00 | uint8_t[3] | ... | padding - +0x05E7 | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) - +0x05E8 | 07 00 00 00 | uint32_t | 0x00000007 (7) | table field `index` (Int) - +0x05EC | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x05E0 | C8 CD FF FF | SOffset32 | 0xFFFFCDC8 (-12856) Loc: 0x3818 | offset to vtable + +0x05E4 | 00 00 00 | uint8_t[3] | ... | padding + +0x05E7 | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) + +0x05E8 | 07 00 00 00 | uint32_t | 0x00000007 (7) | table field `index` (Int) + +0x05EC | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.EnumVal.name): - +0x05F0 | 17 00 00 00 | uint32_t | 0x00000017 (23) | length of string - +0x05F4 | 54 65 73 74 53 69 6D 70 | char[23] | TestSimp | string literal - +0x05FC | 6C 65 54 61 62 6C 65 57 | | leTableW - +0x0604 | 69 74 68 45 6E 75 6D | | ithEnum - +0x060B | 00 | char | 0x00 (0) | string terminator + +0x05F0 | 17 00 00 00 | uint32_t | 0x00000017 (23) | length of string + +0x05F4 | 54 65 73 74 53 69 6D 70 | char[23] | TestSimp | string literal + +0x05FC | 6C 65 54 61 62 6C 65 57 | | leTableW + +0x0604 | 69 74 68 45 6E 75 6D | | ithEnum + +0x060B | 00 | char | 0x00 (0) | string terminator table (reflection.EnumVal): - +0x060C | CC FB FF FF | SOffset32 | 0xFFFFFBCC (-1076) Loc: +0x0A40 | offset to vtable - +0x0610 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x0630 | offset to field `name` (string) - +0x0614 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x0620 | offset to field `union_type` (table) - +0x0618 | 01 00 00 00 00 00 00 00 | int64_t | 0x0000000000000001 (1) | table field `value` (Long) + +0x060C | CC FB FF FF | SOffset32 | 0xFFFFFBCC (-1076) Loc: 0x0A40 | offset to vtable + +0x0610 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: 0x0630 | offset to field `name` (string) + +0x0614 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: 0x0620 | offset to field `union_type` (table) + +0x0618 | 01 00 00 00 00 00 00 00 | int64_t | 0x0000000000000001 (1) | table field `value` (Long) table (reflection.Type): - +0x0620 | 08 CE FF FF | SOffset32 | 0xFFFFCE08 (-12792) Loc: +0x3818 | offset to vtable - +0x0624 | 00 00 00 | uint8_t[3] | ... | padding - +0x0627 | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) - +0x0628 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `index` (Int) - +0x062C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x0620 | 08 CE FF FF | SOffset32 | 0xFFFFCE08 (-12792) Loc: 0x3818 | offset to vtable + +0x0624 | 00 00 00 | uint8_t[3] | ... | padding + +0x0627 | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) + +0x0628 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `index` (Int) + +0x062C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.EnumVal.name): - +0x0630 | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string - +0x0634 | 4D 6F 6E 73 74 65 72 | char[7] | Monster | string literal - +0x063B | 00 | char | 0x00 (0) | string terminator + +0x0630 | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string + +0x0634 | 4D 6F 6E 73 74 65 72 | char[7] | Monster | string literal + +0x063B | 00 | char | 0x00 (0) | string terminator table (reflection.EnumVal): - +0x063C | 5C FB FF FF | SOffset32 | 0xFFFFFB5C (-1188) Loc: +0x0AE0 | offset to vtable - +0x0640 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x0654 | offset to field `name` (string) - +0x0644 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x0648 | offset to field `union_type` (table) + +0x063C | 5C FB FF FF | SOffset32 | 0xFFFFFB5C (-1188) Loc: 0x0AE0 | offset to vtable + +0x0640 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: 0x0654 | offset to field `name` (string) + +0x0644 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x0648 | offset to field `union_type` (table) table (reflection.Type): - +0x0648 | 50 FB FF FF | SOffset32 | 0xFFFFFB50 (-1200) Loc: +0x0AF8 | offset to vtable - +0x064C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) - +0x0650 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x0648 | 50 FB FF FF | SOffset32 | 0xFFFFFB50 (-1200) Loc: 0x0AF8 | offset to vtable + +0x064C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) + +0x0650 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.EnumVal.name): - +0x0654 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string - +0x0658 | 4E 4F 4E 45 | char[4] | NONE | string literal - +0x065C | 00 | char | 0x00 (0) | string terminator + +0x0654 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string + +0x0658 | 4E 4F 4E 45 | char[4] | NONE | string literal + +0x065C | 00 | char | 0x00 (0) | string terminator vtable (reflection.Enum): - +0x065E | 12 00 | uint16_t | 0x0012 (18) | size of this vtable - +0x0660 | 18 00 | uint16_t | 0x0018 (24) | size of referring table - +0x0662 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `name` (id: 0) - +0x0664 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `values` (id: 1) - +0x0666 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `is_union` (id: 2) (Bool) - +0x0668 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `underlying_type` (id: 3) - +0x066A | 10 00 | VOffset16 | 0x0010 (16) | offset to field `attributes` (id: 4) - +0x066C | 00 00 | VOffset16 | 0x0000 (0) | offset to field `documentation` (id: 5) (Vector) - +0x066E | 14 00 | VOffset16 | 0x0014 (20) | offset to field `declaration_file` (id: 6) + +0x065E | 12 00 | uint16_t | 0x0012 (18) | size of this vtable + +0x0660 | 18 00 | uint16_t | 0x0018 (24) | size of referring table + +0x0662 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `name` (id: 0) + +0x0664 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `values` (id: 1) + +0x0666 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `is_union` (id: 2) (Bool) + +0x0668 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `underlying_type` (id: 3) + +0x066A | 10 00 | VOffset16 | 0x0010 (16) | offset to field `attributes` (id: 4) + +0x066C | 00 00 | VOffset16 | 0x0000 (0) | offset to field `documentation` (id: 5) (Vector) + +0x066E | 14 00 | VOffset16 | 0x0014 (20) | offset to field `declaration_file` (id: 6) table (reflection.Enum): - +0x0670 | 12 00 00 00 | SOffset32 | 0x00000012 (18) Loc: +0x065E | offset to vtable - +0x0674 | 64 00 00 00 | UOffset32 | 0x00000064 (100) Loc: +0x06D8 | offset to field `name` (string) - +0x0678 | 50 00 00 00 | UOffset32 | 0x00000050 (80) Loc: +0x06C8 | offset to field `values` (vector) - +0x067C | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: +0x06B4 | offset to field `underlying_type` (table) - +0x0680 | 08 00 00 00 | UOffset32 | 0x00000008 (8) Loc: +0x0688 | offset to field `attributes` (vector) - +0x0684 | 60 30 00 00 | UOffset32 | 0x00003060 (12384) Loc: +0x36E4 | offset to field `declaration_file` (string) + +0x0670 | 12 00 00 00 | SOffset32 | 0x00000012 (18) Loc: 0x065E | offset to vtable + +0x0674 | 64 00 00 00 | UOffset32 | 0x00000064 (100) Loc: 0x06D8 | offset to field `name` (string) + +0x0678 | 50 00 00 00 | UOffset32 | 0x00000050 (80) Loc: 0x06C8 | offset to field `values` (vector) + +0x067C | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: 0x06B4 | offset to field `underlying_type` (table) + +0x0680 | 08 00 00 00 | UOffset32 | 0x00000008 (8) Loc: 0x0688 | offset to field `attributes` (vector) + +0x0684 | 60 30 00 00 | UOffset32 | 0x00003060 (12384) Loc: 0x36E4 | offset to field `declaration_file` (string) vector (reflection.Enum.attributes): - +0x0688 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x068C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x0690 | offset to table[0] + +0x0688 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x068C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x0690 | offset to table[0] table (reflection.KeyValue): - +0x0690 | C8 CD FF FF | SOffset32 | 0xFFFFCDC8 (-12856) Loc: +0x38C8 | offset to vtable - +0x0694 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x06A4 | offset to field `key` (string) - +0x0698 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x069C | offset to field `value` (string) + +0x0690 | C8 CD FF FF | SOffset32 | 0xFFFFCDC8 (-12856) Loc: 0x38C8 | offset to vtable + +0x0694 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x06A4 | offset to field `key` (string) + +0x0698 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x069C | offset to field `value` (string) string (reflection.KeyValue.value): - +0x069C | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x06A0 | 30 | char[1] | 0 | string literal - +0x06A1 | 00 | char | 0x00 (0) | string terminator + +0x069C | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x06A0 | 30 | char[1] | 0 | string literal + +0x06A1 | 00 | char | 0x00 (0) | string terminator padding: - +0x06A2 | 00 00 | uint8_t[2] | .. | padding + +0x06A2 | 00 00 | uint8_t[2] | .. | padding string (reflection.KeyValue.key): - +0x06A4 | 09 00 00 00 | uint32_t | 0x00000009 (9) | length of string - +0x06A8 | 62 69 74 5F 66 6C 61 67 | char[9] | bit_flag | string literal - +0x06B0 | 73 | | s - +0x06B1 | 00 | char | 0x00 (0) | string terminator + +0x06A4 | 09 00 00 00 | uint32_t | 0x00000009 (9) | length of string + +0x06A8 | 62 69 74 5F 66 6C 61 67 | char[9] | bit_flag | string literal + +0x06B0 | 73 | | s + +0x06B1 | 00 | char | 0x00 (0) | string terminator padding: - +0x06B2 | 00 00 | uint8_t[2] | .. | padding + +0x06B2 | 00 00 | uint8_t[2] | .. | padding table (reflection.Type): - +0x06B4 | 08 D1 FF FF | SOffset32 | 0xFFFFD108 (-12024) Loc: +0x35AC | offset to vtable - +0x06B8 | 00 00 00 | uint8_t[3] | ... | padding - +0x06BB | 0A | uint8_t | 0x0A (10) | table field `base_type` (Byte) - +0x06BC | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `index` (Int) - +0x06C0 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt) - +0x06C4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x06B4 | 08 D1 FF FF | SOffset32 | 0xFFFFD108 (-12024) Loc: 0x35AC | offset to vtable + +0x06B8 | 00 00 00 | uint8_t[3] | ... | padding + +0x06BB | 0A | uint8_t | 0x0A (10) | table field `base_type` (Byte) + +0x06BC | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `index` (Int) + +0x06C0 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt) + +0x06C4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) vector (reflection.Enum.values): - +0x06C8 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) - +0x06CC | 88 00 00 00 | UOffset32 | 0x00000088 (136) Loc: +0x0754 | offset to table[0] - +0x06D0 | 54 00 00 00 | UOffset32 | 0x00000054 (84) Loc: +0x0724 | offset to table[1] - +0x06D4 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x06F4 | offset to table[2] + +0x06C8 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) + +0x06CC | 88 00 00 00 | UOffset32 | 0x00000088 (136) Loc: 0x0754 | offset to table[0] + +0x06D0 | 54 00 00 00 | UOffset32 | 0x00000054 (84) Loc: 0x0724 | offset to table[1] + +0x06D4 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: 0x06F4 | offset to table[2] string (reflection.Enum.name): - +0x06D8 | 17 00 00 00 | uint32_t | 0x00000017 (23) | length of string - +0x06DC | 4D 79 47 61 6D 65 2E 45 | char[23] | MyGame.E | string literal - +0x06E4 | 78 61 6D 70 6C 65 2E 4C | | xample.L - +0x06EC | 6F 6E 67 45 6E 75 6D | | ongEnum - +0x06F3 | 00 | char | 0x00 (0) | string terminator + +0x06D8 | 17 00 00 00 | uint32_t | 0x00000017 (23) | length of string + +0x06DC | 4D 79 47 61 6D 65 2E 45 | char[23] | MyGame.E | string literal + +0x06E4 | 78 61 6D 70 6C 65 2E 4C | | xample.L + +0x06EC | 6F 6E 67 45 6E 75 6D | | ongEnum + +0x06F3 | 00 | char | 0x00 (0) | string terminator table (reflection.EnumVal): - +0x06F4 | A4 FE FF FF | SOffset32 | 0xFFFFFEA4 (-348) Loc: +0x0850 | offset to vtable - +0x06F8 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x0718 | offset to field `name` (string) - +0x06FC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x070C | offset to field `union_type` (table) - +0x0700 | 00 00 00 00 00 01 00 00 | int64_t | 0x0000010000000000 (1099511627776) | table field `value` (Long) - +0x0708 | 00 00 00 00 | uint8_t[4] | .... | padding + +0x06F4 | A4 FE FF FF | SOffset32 | 0xFFFFFEA4 (-348) Loc: 0x0850 | offset to vtable + +0x06F8 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: 0x0718 | offset to field `name` (string) + +0x06FC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x070C | offset to field `union_type` (table) + +0x0700 | 00 00 00 00 00 01 00 00 | int64_t | 0x0000010000000000 (1099511627776) | table field `value` (Long) + +0x0708 | 00 00 00 00 | uint8_t[4] | .... | padding table (reflection.Type): - +0x070C | 14 FC FF FF | SOffset32 | 0xFFFFFC14 (-1004) Loc: +0x0AF8 | offset to vtable - +0x0710 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) - +0x0714 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x070C | 14 FC FF FF | SOffset32 | 0xFFFFFC14 (-1004) Loc: 0x0AF8 | offset to vtable + +0x0710 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) + +0x0714 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.EnumVal.name): - +0x0718 | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string - +0x071C | 4C 6F 6E 67 42 69 67 | char[7] | LongBig | string literal - +0x0723 | 00 | char | 0x00 (0) | string terminator + +0x0718 | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string + +0x071C | 4C 6F 6E 67 42 69 67 | char[7] | LongBig | string literal + +0x0723 | 00 | char | 0x00 (0) | string terminator table (reflection.EnumVal): - +0x0724 | D4 FE FF FF | SOffset32 | 0xFFFFFED4 (-300) Loc: +0x0850 | offset to vtable - +0x0728 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x0748 | offset to field `name` (string) - +0x072C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x073C | offset to field `union_type` (table) - +0x0730 | 04 00 00 00 00 00 00 00 | int64_t | 0x0000000000000004 (4) | table field `value` (Long) - +0x0738 | 00 00 00 00 | uint8_t[4] | .... | padding + +0x0724 | D4 FE FF FF | SOffset32 | 0xFFFFFED4 (-300) Loc: 0x0850 | offset to vtable + +0x0728 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: 0x0748 | offset to field `name` (string) + +0x072C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x073C | offset to field `union_type` (table) + +0x0730 | 04 00 00 00 00 00 00 00 | int64_t | 0x0000000000000004 (4) | table field `value` (Long) + +0x0738 | 00 00 00 00 | uint8_t[4] | .... | padding table (reflection.Type): - +0x073C | 44 FC FF FF | SOffset32 | 0xFFFFFC44 (-956) Loc: +0x0AF8 | offset to vtable - +0x0740 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) - +0x0744 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x073C | 44 FC FF FF | SOffset32 | 0xFFFFFC44 (-956) Loc: 0x0AF8 | offset to vtable + +0x0740 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) + +0x0744 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.EnumVal.name): - +0x0748 | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string - +0x074C | 4C 6F 6E 67 54 77 6F | char[7] | LongTwo | string literal - +0x0753 | 00 | char | 0x00 (0) | string terminator + +0x0748 | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string + +0x074C | 4C 6F 6E 67 54 77 6F | char[7] | LongTwo | string literal + +0x0753 | 00 | char | 0x00 (0) | string terminator table (reflection.EnumVal): - +0x0754 | 14 FD FF FF | SOffset32 | 0xFFFFFD14 (-748) Loc: +0x0A40 | offset to vtable - +0x0758 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: +0x0774 | offset to field `name` (string) - +0x075C | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x0768 | offset to field `union_type` (table) - +0x0760 | 02 00 00 00 00 00 00 00 | int64_t | 0x0000000000000002 (2) | table field `value` (Long) + +0x0754 | 14 FD FF FF | SOffset32 | 0xFFFFFD14 (-748) Loc: 0x0A40 | offset to vtable + +0x0758 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: 0x0774 | offset to field `name` (string) + +0x075C | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: 0x0768 | offset to field `union_type` (table) + +0x0760 | 02 00 00 00 00 00 00 00 | int64_t | 0x0000000000000002 (2) | table field `value` (Long) table (reflection.Type): - +0x0768 | 70 FC FF FF | SOffset32 | 0xFFFFFC70 (-912) Loc: +0x0AF8 | offset to vtable - +0x076C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) - +0x0770 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x0768 | 70 FC FF FF | SOffset32 | 0xFFFFFC70 (-912) Loc: 0x0AF8 | offset to vtable + +0x076C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) + +0x0770 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.EnumVal.name): - +0x0774 | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string - +0x0778 | 4C 6F 6E 67 4F 6E 65 | char[7] | LongOne | string literal - +0x077F | 00 | char | 0x00 (0) | string terminator + +0x0774 | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string + +0x0778 | 4C 6F 6E 67 4F 6E 65 | char[7] | LongOne | string literal + +0x077F | 00 | char | 0x00 (0) | string terminator table (reflection.Enum): - +0x0780 | 0A FD FF FF | SOffset32 | 0xFFFFFD0A (-758) Loc: +0x0A76 | offset to vtable - +0x0784 | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: +0x07BC | offset to field `name` (string) - +0x0788 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x07A8 | offset to field `values` (vector) - +0x078C | 08 00 00 00 | UOffset32 | 0x00000008 (8) Loc: +0x0794 | offset to field `underlying_type` (table) - +0x0790 | 54 2F 00 00 | UOffset32 | 0x00002F54 (12116) Loc: +0x36E4 | offset to field `declaration_file` (string) + +0x0780 | 0A FD FF FF | SOffset32 | 0xFFFFFD0A (-758) Loc: 0x0A76 | offset to vtable + +0x0784 | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: 0x07BC | offset to field `name` (string) + +0x0788 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: 0x07A8 | offset to field `values` (vector) + +0x078C | 08 00 00 00 | UOffset32 | 0x00000008 (8) Loc: 0x0794 | offset to field `underlying_type` (table) + +0x0790 | 54 2F 00 00 | UOffset32 | 0x00002F54 (12116) Loc: 0x36E4 | offset to field `declaration_file` (string) table (reflection.Type): - +0x0794 | E8 D1 FF FF | SOffset32 | 0xFFFFD1E8 (-11800) Loc: +0x35AC | offset to vtable - +0x0798 | 00 00 00 | uint8_t[3] | ... | padding - +0x079B | 03 | uint8_t | 0x03 (3) | table field `base_type` (Byte) - +0x079C | 05 00 00 00 | uint32_t | 0x00000005 (5) | table field `index` (Int) - +0x07A0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) - +0x07A4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x0794 | E8 D1 FF FF | SOffset32 | 0xFFFFD1E8 (-11800) Loc: 0x35AC | offset to vtable + +0x0798 | 00 00 00 | uint8_t[3] | ... | padding + +0x079B | 03 | uint8_t | 0x03 (3) | table field `base_type` (Byte) + +0x079C | 05 00 00 00 | uint32_t | 0x00000005 (5) | table field `index` (Int) + +0x07A0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) + +0x07A4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) vector (reflection.Enum.values): - +0x07A8 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of vector (# items) - +0x07AC | B0 00 00 00 | UOffset32 | 0x000000B0 (176) Loc: +0x085C | offset to table[0] - +0x07B0 | 7C 00 00 00 | UOffset32 | 0x0000007C (124) Loc: +0x082C | offset to table[1] - +0x07B4 | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: +0x07FC | offset to table[2] - +0x07B8 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: +0x07D4 | offset to table[3] + +0x07A8 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of vector (# items) + +0x07AC | B0 00 00 00 | UOffset32 | 0x000000B0 (176) Loc: 0x085C | offset to table[0] + +0x07B0 | 7C 00 00 00 | UOffset32 | 0x0000007C (124) Loc: 0x082C | offset to table[1] + +0x07B4 | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: 0x07FC | offset to table[2] + +0x07B8 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: 0x07D4 | offset to table[3] string (reflection.Enum.name): - +0x07BC | 13 00 00 00 | uint32_t | 0x00000013 (19) | length of string - +0x07C0 | 4D 79 47 61 6D 65 2E 45 | char[19] | MyGame.E | string literal - +0x07C8 | 78 61 6D 70 6C 65 2E 52 | | xample.R - +0x07D0 | 61 63 65 | | ace - +0x07D3 | 00 | char | 0x00 (0) | string terminator + +0x07BC | 13 00 00 00 | uint32_t | 0x00000013 (19) | length of string + +0x07C0 | 4D 79 47 61 6D 65 2E 45 | char[19] | MyGame.E | string literal + +0x07C8 | 78 61 6D 70 6C 65 2E 52 | | xample.R + +0x07D0 | 61 63 65 | | ace + +0x07D3 | 00 | char | 0x00 (0) | string terminator table (reflection.EnumVal): - +0x07D4 | 94 FD FF FF | SOffset32 | 0xFFFFFD94 (-620) Loc: +0x0A40 | offset to vtable - +0x07D8 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: +0x07F4 | offset to field `name` (string) - +0x07DC | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x07E8 | offset to field `union_type` (table) - +0x07E0 | 02 00 00 00 00 00 00 00 | int64_t | 0x0000000000000002 (2) | table field `value` (Long) + +0x07D4 | 94 FD FF FF | SOffset32 | 0xFFFFFD94 (-620) Loc: 0x0A40 | offset to vtable + +0x07D8 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: 0x07F4 | offset to field `name` (string) + +0x07DC | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: 0x07E8 | offset to field `union_type` (table) + +0x07E0 | 02 00 00 00 00 00 00 00 | int64_t | 0x0000000000000002 (2) | table field `value` (Long) table (reflection.Type): - +0x07E8 | F0 FC FF FF | SOffset32 | 0xFFFFFCF0 (-784) Loc: +0x0AF8 | offset to vtable - +0x07EC | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) - +0x07F0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x07E8 | F0 FC FF FF | SOffset32 | 0xFFFFFCF0 (-784) Loc: 0x0AF8 | offset to vtable + +0x07EC | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) + +0x07F0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.EnumVal.name): - +0x07F4 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string - +0x07F8 | 45 6C 66 | char[3] | Elf | string literal - +0x07FB | 00 | char | 0x00 (0) | string terminator + +0x07F4 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string + +0x07F8 | 45 6C 66 | char[3] | Elf | string literal + +0x07FB | 00 | char | 0x00 (0) | string terminator table (reflection.EnumVal): - +0x07FC | AC FF FF FF | SOffset32 | 0xFFFFFFAC (-84) Loc: +0x0850 | offset to vtable - +0x0800 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x0820 | offset to field `name` (string) - +0x0804 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x0814 | offset to field `union_type` (table) - +0x0808 | 01 00 00 00 00 00 00 00 | int64_t | 0x0000000000000001 (1) | table field `value` (Long) - +0x0810 | 00 00 00 00 | uint8_t[4] | .... | padding + +0x07FC | AC FF FF FF | SOffset32 | 0xFFFFFFAC (-84) Loc: 0x0850 | offset to vtable + +0x0800 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: 0x0820 | offset to field `name` (string) + +0x0804 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x0814 | offset to field `union_type` (table) + +0x0808 | 01 00 00 00 00 00 00 00 | int64_t | 0x0000000000000001 (1) | table field `value` (Long) + +0x0810 | 00 00 00 00 | uint8_t[4] | .... | padding table (reflection.Type): - +0x0814 | 1C FD FF FF | SOffset32 | 0xFFFFFD1C (-740) Loc: +0x0AF8 | offset to vtable - +0x0818 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) - +0x081C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x0814 | 1C FD FF FF | SOffset32 | 0xFFFFFD1C (-740) Loc: 0x0AF8 | offset to vtable + +0x0818 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) + +0x081C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.EnumVal.name): - +0x0820 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string - +0x0824 | 44 77 61 72 66 | char[5] | Dwarf | string literal - +0x0829 | 00 | char | 0x00 (0) | string terminator + +0x0820 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string + +0x0824 | 44 77 61 72 66 | char[5] | Dwarf | string literal + +0x0829 | 00 | char | 0x00 (0) | string terminator padding: - +0x082A | 00 00 | uint8_t[2] | .. | padding + +0x082A | 00 00 | uint8_t[2] | .. | padding table (reflection.EnumVal): - +0x082C | 4C FD FF FF | SOffset32 | 0xFFFFFD4C (-692) Loc: +0x0AE0 | offset to vtable - +0x0830 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x0844 | offset to field `name` (string) - +0x0834 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x0838 | offset to field `union_type` (table) + +0x082C | 4C FD FF FF | SOffset32 | 0xFFFFFD4C (-692) Loc: 0x0AE0 | offset to vtable + +0x0830 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: 0x0844 | offset to field `name` (string) + +0x0834 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x0838 | offset to field `union_type` (table) table (reflection.Type): - +0x0838 | 40 FD FF FF | SOffset32 | 0xFFFFFD40 (-704) Loc: +0x0AF8 | offset to vtable - +0x083C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) - +0x0840 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x0838 | 40 FD FF FF | SOffset32 | 0xFFFFFD40 (-704) Loc: 0x0AF8 | offset to vtable + +0x083C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) + +0x0840 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.EnumVal.name): - +0x0844 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string - +0x0848 | 48 75 6D 61 6E | char[5] | Human | string literal - +0x084D | 00 | char | 0x00 (0) | string terminator + +0x0844 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string + +0x0848 | 48 75 6D 61 6E | char[5] | Human | string literal + +0x084D | 00 | char | 0x00 (0) | string terminator padding: - +0x084E | 00 00 | uint8_t[2] | .. | padding + +0x084E | 00 00 | uint8_t[2] | .. | padding vtable (reflection.EnumVal): - +0x0850 | 0C 00 | uint16_t | 0x000C (12) | size of this vtable - +0x0852 | 18 00 | uint16_t | 0x0018 (24) | size of referring table - +0x0854 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `name` (id: 0) - +0x0856 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `value` (id: 1) - +0x0858 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `object` (id: 2) (Obj) - +0x085A | 08 00 | VOffset16 | 0x0008 (8) | offset to field `union_type` (id: 3) + +0x0850 | 0C 00 | uint16_t | 0x000C (12) | size of this vtable + +0x0852 | 18 00 | uint16_t | 0x0018 (24) | size of referring table + +0x0854 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `name` (id: 0) + +0x0856 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `value` (id: 1) + +0x0858 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `object` (id: 2) (Obj) + +0x085A | 08 00 | VOffset16 | 0x0008 (8) | offset to field `union_type` (id: 3) table (reflection.EnumVal): - +0x085C | 0C 00 00 00 | SOffset32 | 0x0000000C (12) Loc: +0x0850 | offset to vtable - +0x0860 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x0880 | offset to field `name` (string) - +0x0864 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x0874 | offset to field `union_type` (table) - +0x0868 | FF FF FF FF FF FF FF FF | int64_t | 0xFFFFFFFFFFFFFFFF (-1) | table field `value` (Long) - +0x0870 | 00 00 00 00 | uint8_t[4] | .... | padding + +0x085C | 0C 00 00 00 | SOffset32 | 0x0000000C (12) Loc: 0x0850 | offset to vtable + +0x0860 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: 0x0880 | offset to field `name` (string) + +0x0864 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x0874 | offset to field `union_type` (table) + +0x0868 | FF FF FF FF FF FF FF FF | int64_t | 0xFFFFFFFFFFFFFFFF (-1) | table field `value` (Long) + +0x0870 | 00 00 00 00 | uint8_t[4] | .... | padding table (reflection.Type): - +0x0874 | 7C FD FF FF | SOffset32 | 0xFFFFFD7C (-644) Loc: +0x0AF8 | offset to vtable - +0x0878 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) - +0x087C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x0874 | 7C FD FF FF | SOffset32 | 0xFFFFFD7C (-644) Loc: 0x0AF8 | offset to vtable + +0x0878 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) + +0x087C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.EnumVal.name): - +0x0880 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string - +0x0884 | 4E 6F 6E 65 | char[4] | None | string literal - +0x0888 | 00 | char | 0x00 (0) | string terminator + +0x0880 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string + +0x0884 | 4E 6F 6E 65 | char[4] | None | string literal + +0x0888 | 00 | char | 0x00 (0) | string terminator vtable (reflection.Enum): - +0x088A | 12 00 | uint16_t | 0x0012 (18) | size of this vtable - +0x088C | 1C 00 | uint16_t | 0x001C (28) | size of referring table - +0x088E | 04 00 | VOffset16 | 0x0004 (4) | offset to field `name` (id: 0) - +0x0890 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `values` (id: 1) - +0x0892 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `is_union` (id: 2) (Bool) - +0x0894 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `underlying_type` (id: 3) - +0x0896 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `attributes` (id: 4) - +0x0898 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `documentation` (id: 5) - +0x089A | 18 00 | VOffset16 | 0x0018 (24) | offset to field `declaration_file` (id: 6) + +0x088A | 12 00 | uint16_t | 0x0012 (18) | size of this vtable + +0x088C | 1C 00 | uint16_t | 0x001C (28) | size of referring table + +0x088E | 04 00 | VOffset16 | 0x0004 (4) | offset to field `name` (id: 0) + +0x0890 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `values` (id: 1) + +0x0892 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `is_union` (id: 2) (Bool) + +0x0894 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `underlying_type` (id: 3) + +0x0896 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `attributes` (id: 4) + +0x0898 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `documentation` (id: 5) + +0x089A | 18 00 | VOffset16 | 0x0018 (24) | offset to field `declaration_file` (id: 6) table (reflection.Enum): - +0x089C | 12 00 00 00 | SOffset32 | 0x00000012 (18) Loc: +0x088A | offset to vtable - +0x08A0 | 9C 00 00 00 | UOffset32 | 0x0000009C (156) Loc: +0x093C | offset to field `name` (string) - +0x08A4 | 88 00 00 00 | UOffset32 | 0x00000088 (136) Loc: +0x092C | offset to field `values` (vector) - +0x08A8 | 70 00 00 00 | UOffset32 | 0x00000070 (112) Loc: +0x0918 | offset to field `underlying_type` (table) - +0x08AC | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: +0x08EC | offset to field `attributes` (vector) - +0x08B0 | 08 00 00 00 | UOffset32 | 0x00000008 (8) Loc: +0x08B8 | offset to field `documentation` (vector) - +0x08B4 | 30 2E 00 00 | UOffset32 | 0x00002E30 (11824) Loc: +0x36E4 | offset to field `declaration_file` (string) + +0x089C | 12 00 00 00 | SOffset32 | 0x00000012 (18) Loc: 0x088A | offset to vtable + +0x08A0 | 9C 00 00 00 | UOffset32 | 0x0000009C (156) Loc: 0x093C | offset to field `name` (string) + +0x08A4 | 88 00 00 00 | UOffset32 | 0x00000088 (136) Loc: 0x092C | offset to field `values` (vector) + +0x08A8 | 70 00 00 00 | UOffset32 | 0x00000070 (112) Loc: 0x0918 | offset to field `underlying_type` (table) + +0x08AC | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: 0x08EC | offset to field `attributes` (vector) + +0x08B0 | 08 00 00 00 | UOffset32 | 0x00000008 (8) Loc: 0x08B8 | offset to field `documentation` (vector) + +0x08B4 | 30 2E 00 00 | UOffset32 | 0x00002E30 (11824) Loc: 0x36E4 | offset to field `declaration_file` (string) vector (reflection.Enum.documentation): - +0x08B8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x08BC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x08C0 | offset to string[0] + +0x08B8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x08BC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x08C0 | offset to string[0] string (reflection.Enum.documentation): - +0x08C0 | 27 00 00 00 | uint32_t | 0x00000027 (39) | length of string - +0x08C4 | 20 43 6F 6D 70 6F 73 69 | char[39] | Composi | string literal - +0x08CC | 74 65 20 63 6F 6D 70 6F | | te compo - +0x08D4 | 6E 65 6E 74 73 20 6F 66 | | nents of - +0x08DC | 20 4D 6F 6E 73 74 65 72 | | Monster - +0x08E4 | 20 63 6F 6C 6F 72 2E | | color. - +0x08EB | 00 | char | 0x00 (0) | string terminator + +0x08C0 | 27 00 00 00 | uint32_t | 0x00000027 (39) | length of string + +0x08C4 | 20 43 6F 6D 70 6F 73 69 | char[39] | Composi | string literal + +0x08CC | 74 65 20 63 6F 6D 70 6F | | te compo + +0x08D4 | 6E 65 6E 74 73 20 6F 66 | | nents of + +0x08DC | 20 4D 6F 6E 73 74 65 72 | | Monster + +0x08E4 | 20 63 6F 6C 6F 72 2E | | color. + +0x08EB | 00 | char | 0x00 (0) | string terminator vector (reflection.Enum.attributes): - +0x08EC | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x08F0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x08F4 | offset to table[0] + +0x08EC | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x08F0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x08F4 | offset to table[0] table (reflection.KeyValue): - +0x08F4 | 2C D0 FF FF | SOffset32 | 0xFFFFD02C (-12244) Loc: +0x38C8 | offset to vtable - +0x08F8 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x0908 | offset to field `key` (string) - +0x08FC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x0900 | offset to field `value` (string) + +0x08F4 | 2C D0 FF FF | SOffset32 | 0xFFFFD02C (-12244) Loc: 0x38C8 | offset to vtable + +0x08F8 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x0908 | offset to field `key` (string) + +0x08FC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x0900 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x0900 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x0904 | 30 | char[1] | 0 | string literal - +0x0905 | 00 | char | 0x00 (0) | string terminator + +0x0900 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x0904 | 30 | char[1] | 0 | string literal + +0x0905 | 00 | char | 0x00 (0) | string terminator padding: - +0x0906 | 00 00 | uint8_t[2] | .. | padding + +0x0906 | 00 00 | uint8_t[2] | .. | padding string (reflection.KeyValue.key): - +0x0908 | 09 00 00 00 | uint32_t | 0x00000009 (9) | length of string - +0x090C | 62 69 74 5F 66 6C 61 67 | char[9] | bit_flag | string literal - +0x0914 | 73 | | s - +0x0915 | 00 | char | 0x00 (0) | string terminator + +0x0908 | 09 00 00 00 | uint32_t | 0x00000009 (9) | length of string + +0x090C | 62 69 74 5F 66 6C 61 67 | char[9] | bit_flag | string literal + +0x0914 | 73 | | s + +0x0915 | 00 | char | 0x00 (0) | string terminator padding: - +0x0916 | 00 00 | uint8_t[2] | .. | padding + +0x0916 | 00 00 | uint8_t[2] | .. | padding table (reflection.Type): - +0x0918 | 6C D3 FF FF | SOffset32 | 0xFFFFD36C (-11412) Loc: +0x35AC | offset to vtable - +0x091C | 00 00 00 | uint8_t[3] | ... | padding - +0x091F | 04 | uint8_t | 0x04 (4) | table field `base_type` (Byte) - +0x0920 | 03 00 00 00 | uint32_t | 0x00000003 (3) | table field `index` (Int) - +0x0924 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) - +0x0928 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x0918 | 6C D3 FF FF | SOffset32 | 0xFFFFD36C (-11412) Loc: 0x35AC | offset to vtable + +0x091C | 00 00 00 | uint8_t[3] | ... | padding + +0x091F | 04 | uint8_t | 0x04 (4) | table field `base_type` (Byte) + +0x0920 | 03 00 00 00 | uint32_t | 0x00000003 (3) | table field `index` (Int) + +0x0924 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) + +0x0928 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) vector (reflection.Enum.values): - +0x092C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) - +0x0930 | 1C 01 00 00 | UOffset32 | 0x0000011C (284) Loc: +0x0A4C | offset to table[0] - +0x0934 | 8C 00 00 00 | UOffset32 | 0x0000008C (140) Loc: +0x09C0 | offset to table[1] - +0x0938 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x0958 | offset to table[2] + +0x092C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) + +0x0930 | 1C 01 00 00 | UOffset32 | 0x0000011C (284) Loc: 0x0A4C | offset to table[0] + +0x0934 | 8C 00 00 00 | UOffset32 | 0x0000008C (140) Loc: 0x09C0 | offset to table[1] + +0x0938 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: 0x0958 | offset to table[2] string (reflection.Enum.name): - +0x093C | 14 00 00 00 | uint32_t | 0x00000014 (20) | length of string - +0x0940 | 4D 79 47 61 6D 65 2E 45 | char[20] | MyGame.E | string literal - +0x0948 | 78 61 6D 70 6C 65 2E 43 | | xample.C - +0x0950 | 6F 6C 6F 72 | | olor - +0x0954 | 00 | char | 0x00 (0) | string terminator + +0x093C | 14 00 00 00 | uint32_t | 0x00000014 (20) | length of string + +0x0940 | 4D 79 47 61 6D 65 2E 45 | char[20] | MyGame.E | string literal + +0x0948 | 78 61 6D 70 6C 65 2E 43 | | xample.C + +0x0950 | 6F 6C 6F 72 | | olor + +0x0954 | 00 | char | 0x00 (0) | string terminator padding: - +0x0955 | 00 00 00 | uint8_t[3] | ... | padding + +0x0955 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.EnumVal): - +0x0958 | A6 FF FF FF | SOffset32 | 0xFFFFFFA6 (-90) Loc: +0x09B2 | offset to vtable - +0x095C | 4C 00 00 00 | UOffset32 | 0x0000004C (76) Loc: +0x09A8 | offset to field `name` (string) - +0x0960 | 3C 00 00 00 | UOffset32 | 0x0000003C (60) Loc: +0x099C | offset to field `union_type` (table) - +0x0964 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x0970 | offset to field `documentation` (vector) - +0x0968 | 08 00 00 00 00 00 00 00 | int64_t | 0x0000000000000008 (8) | table field `value` (Long) + +0x0958 | A6 FF FF FF | SOffset32 | 0xFFFFFFA6 (-90) Loc: 0x09B2 | offset to vtable + +0x095C | 4C 00 00 00 | UOffset32 | 0x0000004C (76) Loc: 0x09A8 | offset to field `name` (string) + +0x0960 | 3C 00 00 00 | UOffset32 | 0x0000003C (60) Loc: 0x099C | offset to field `union_type` (table) + +0x0964 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: 0x0970 | offset to field `documentation` (vector) + +0x0968 | 08 00 00 00 00 00 00 00 | int64_t | 0x0000000000000008 (8) | table field `value` (Long) vector (reflection.EnumVal.documentation): - +0x0970 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x0974 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x0978 | offset to string[0] + +0x0970 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x0974 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x0978 | offset to string[0] string (reflection.EnumVal.documentation): - +0x0978 | 1C 00 00 00 | uint32_t | 0x0000001C (28) | length of string - +0x097C | 20 5C 62 72 69 65 66 20 | char[28] | \brief | string literal - +0x0984 | 63 6F 6C 6F 72 20 42 6C | | color Bl - +0x098C | 75 65 20 28 31 75 20 3C | | ue (1u < - +0x0994 | 3C 20 33 29 | | < 3) - +0x0998 | 00 | char | 0x00 (0) | string terminator + +0x0978 | 1C 00 00 00 | uint32_t | 0x0000001C (28) | length of string + +0x097C | 20 5C 62 72 69 65 66 20 | char[28] | \brief | string literal + +0x0984 | 63 6F 6C 6F 72 20 42 6C | | color Bl + +0x098C | 75 65 20 28 31 75 20 3C | | ue (1u < + +0x0994 | 3C 20 33 29 | | < 3) + +0x0998 | 00 | char | 0x00 (0) | string terminator padding: - +0x0999 | 00 00 00 | uint8_t[3] | ... | padding + +0x0999 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Type): - +0x099C | A4 FE FF FF | SOffset32 | 0xFFFFFEA4 (-348) Loc: +0x0AF8 | offset to vtable - +0x09A0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) - +0x09A4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x099C | A4 FE FF FF | SOffset32 | 0xFFFFFEA4 (-348) Loc: 0x0AF8 | offset to vtable + +0x09A0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) + +0x09A4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.EnumVal.name): - +0x09A8 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string - +0x09AC | 42 6C 75 65 | char[4] | Blue | string literal - +0x09B0 | 00 | char | 0x00 (0) | string terminator + +0x09A8 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string + +0x09AC | 42 6C 75 65 | char[4] | Blue | string literal + +0x09B0 | 00 | char | 0x00 (0) | string terminator vtable (reflection.EnumVal): - +0x09B2 | 0E 00 | uint16_t | 0x000E (14) | size of this vtable - +0x09B4 | 18 00 | uint16_t | 0x0018 (24) | size of referring table - +0x09B6 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `name` (id: 0) - +0x09B8 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `value` (id: 1) - +0x09BA | 00 00 | VOffset16 | 0x0000 (0) | offset to field `object` (id: 2) (Obj) - +0x09BC | 08 00 | VOffset16 | 0x0008 (8) | offset to field `union_type` (id: 3) - +0x09BE | 0C 00 | VOffset16 | 0x000C (12) | offset to field `documentation` (id: 4) + +0x09B2 | 0E 00 | uint16_t | 0x000E (14) | size of this vtable + +0x09B4 | 18 00 | uint16_t | 0x0018 (24) | size of referring table + +0x09B6 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `name` (id: 0) + +0x09B8 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `value` (id: 1) + +0x09BA | 00 00 | VOffset16 | 0x0000 (0) | offset to field `object` (id: 2) (Obj) + +0x09BC | 08 00 | VOffset16 | 0x0008 (8) | offset to field `union_type` (id: 3) + +0x09BE | 0C 00 | VOffset16 | 0x000C (12) | offset to field `documentation` (id: 4) table (reflection.EnumVal): - +0x09C0 | 0E 00 00 00 | SOffset32 | 0x0000000E (14) Loc: +0x09B2 | offset to vtable - +0x09C4 | 70 00 00 00 | UOffset32 | 0x00000070 (112) Loc: +0x0A34 | offset to field `name` (string) - +0x09C8 | 60 00 00 00 | UOffset32 | 0x00000060 (96) Loc: +0x0A28 | offset to field `union_type` (table) - +0x09CC | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x09D8 | offset to field `documentation` (vector) - +0x09D0 | 02 00 00 00 00 00 00 00 | int64_t | 0x0000000000000002 (2) | table field `value` (Long) + +0x09C0 | 0E 00 00 00 | SOffset32 | 0x0000000E (14) Loc: 0x09B2 | offset to vtable + +0x09C4 | 70 00 00 00 | UOffset32 | 0x00000070 (112) Loc: 0x0A34 | offset to field `name` (string) + +0x09C8 | 60 00 00 00 | UOffset32 | 0x00000060 (96) Loc: 0x0A28 | offset to field `union_type` (table) + +0x09CC | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: 0x09D8 | offset to field `documentation` (vector) + +0x09D0 | 02 00 00 00 00 00 00 00 | int64_t | 0x0000000000000002 (2) | table field `value` (Long) vector (reflection.EnumVal.documentation): - +0x09D8 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) - +0x09DC | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x0A10 | offset to string[0] - +0x09E0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x09E4 | offset to string[1] + +0x09D8 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) + +0x09DC | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: 0x0A10 | offset to string[0] + +0x09E0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x09E4 | offset to string[1] string (reflection.EnumVal.documentation): - +0x09E4 | 27 00 00 00 | uint32_t | 0x00000027 (39) | length of string - +0x09E8 | 20 47 72 65 65 6E 20 69 | char[39] | Green i | string literal - +0x09F0 | 73 20 62 69 74 5F 66 6C | | s bit_fl - +0x09F8 | 61 67 20 77 69 74 68 20 | | ag with - +0x0A00 | 76 61 6C 75 65 20 28 31 | | value (1 - +0x0A08 | 75 20 3C 3C 20 31 29 | | u << 1) - +0x0A0F | 00 | char | 0x00 (0) | string terminator + +0x09E4 | 27 00 00 00 | uint32_t | 0x00000027 (39) | length of string + +0x09E8 | 20 47 72 65 65 6E 20 69 | char[39] | Green i | string literal + +0x09F0 | 73 20 62 69 74 5F 66 6C | | s bit_fl + +0x09F8 | 61 67 20 77 69 74 68 20 | | ag with + +0x0A00 | 76 61 6C 75 65 20 28 31 | | value (1 + +0x0A08 | 75 20 3C 3C 20 31 29 | | u << 1) + +0x0A0F | 00 | char | 0x00 (0) | string terminator string (reflection.EnumVal.documentation): - +0x0A10 | 13 00 00 00 | uint32_t | 0x00000013 (19) | length of string - +0x0A14 | 20 5C 62 72 69 65 66 20 | char[19] | \brief | string literal - +0x0A1C | 63 6F 6C 6F 72 20 47 72 | | color Gr - +0x0A24 | 65 65 6E | | een - +0x0A27 | 00 | char | 0x00 (0) | string terminator + +0x0A10 | 13 00 00 00 | uint32_t | 0x00000013 (19) | length of string + +0x0A14 | 20 5C 62 72 69 65 66 20 | char[19] | \brief | string literal + +0x0A1C | 63 6F 6C 6F 72 20 47 72 | | color Gr + +0x0A24 | 65 65 6E | | een + +0x0A27 | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x0A28 | 30 FF FF FF | SOffset32 | 0xFFFFFF30 (-208) Loc: +0x0AF8 | offset to vtable - +0x0A2C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) - +0x0A30 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x0A28 | 30 FF FF FF | SOffset32 | 0xFFFFFF30 (-208) Loc: 0x0AF8 | offset to vtable + +0x0A2C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) + +0x0A30 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.EnumVal.name): - +0x0A34 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string - +0x0A38 | 47 72 65 65 6E | char[5] | Green | string literal - +0x0A3D | 00 | char | 0x00 (0) | string terminator + +0x0A34 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string + +0x0A38 | 47 72 65 65 6E | char[5] | Green | string literal + +0x0A3D | 00 | char | 0x00 (0) | string terminator padding: - +0x0A3E | 00 00 | uint8_t[2] | .. | padding + +0x0A3E | 00 00 | uint8_t[2] | .. | padding vtable (reflection.EnumVal): - +0x0A40 | 0C 00 | uint16_t | 0x000C (12) | size of this vtable - +0x0A42 | 14 00 | uint16_t | 0x0014 (20) | size of referring table - +0x0A44 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `name` (id: 0) - +0x0A46 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `value` (id: 1) - +0x0A48 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `object` (id: 2) (Obj) - +0x0A4A | 08 00 | VOffset16 | 0x0008 (8) | offset to field `union_type` (id: 3) + +0x0A40 | 0C 00 | uint16_t | 0x000C (12) | size of this vtable + +0x0A42 | 14 00 | uint16_t | 0x0014 (20) | size of referring table + +0x0A44 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `name` (id: 0) + +0x0A46 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `value` (id: 1) + +0x0A48 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `object` (id: 2) (Obj) + +0x0A4A | 08 00 | VOffset16 | 0x0008 (8) | offset to field `union_type` (id: 3) table (reflection.EnumVal): - +0x0A4C | 0C 00 00 00 | SOffset32 | 0x0000000C (12) Loc: +0x0A40 | offset to vtable - +0x0A50 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: +0x0A6C | offset to field `name` (string) - +0x0A54 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x0A60 | offset to field `union_type` (table) - +0x0A58 | 01 00 00 00 00 00 00 00 | int64_t | 0x0000000000000001 (1) | table field `value` (Long) + +0x0A4C | 0C 00 00 00 | SOffset32 | 0x0000000C (12) Loc: 0x0A40 | offset to vtable + +0x0A50 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: 0x0A6C | offset to field `name` (string) + +0x0A54 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: 0x0A60 | offset to field `union_type` (table) + +0x0A58 | 01 00 00 00 00 00 00 00 | int64_t | 0x0000000000000001 (1) | table field `value` (Long) table (reflection.Type): - +0x0A60 | 68 FF FF FF | SOffset32 | 0xFFFFFF68 (-152) Loc: +0x0AF8 | offset to vtable - +0x0A64 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) - +0x0A68 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x0A60 | 68 FF FF FF | SOffset32 | 0xFFFFFF68 (-152) Loc: 0x0AF8 | offset to vtable + +0x0A64 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) + +0x0A68 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.EnumVal.name): - +0x0A6C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string - +0x0A70 | 52 65 64 | char[3] | Red | string literal - +0x0A73 | 00 | char | 0x00 (0) | string terminator + +0x0A6C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string + +0x0A70 | 52 65 64 | char[3] | Red | string literal + +0x0A73 | 00 | char | 0x00 (0) | string terminator padding: - +0x0A74 | 00 00 | uint8_t[2] | .. | padding + +0x0A74 | 00 00 | uint8_t[2] | .. | padding vtable (reflection.Enum): - +0x0A76 | 12 00 | uint16_t | 0x0012 (18) | size of this vtable - +0x0A78 | 14 00 | uint16_t | 0x0014 (20) | size of referring table - +0x0A7A | 04 00 | VOffset16 | 0x0004 (4) | offset to field `name` (id: 0) - +0x0A7C | 08 00 | VOffset16 | 0x0008 (8) | offset to field `values` (id: 1) - +0x0A7E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `is_union` (id: 2) (Bool) - +0x0A80 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `underlying_type` (id: 3) - +0x0A82 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `attributes` (id: 4) (Vector) - +0x0A84 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `documentation` (id: 5) (Vector) - +0x0A86 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `declaration_file` (id: 6) + +0x0A76 | 12 00 | uint16_t | 0x0012 (18) | size of this vtable + +0x0A78 | 14 00 | uint16_t | 0x0014 (20) | size of referring table + +0x0A7A | 04 00 | VOffset16 | 0x0004 (4) | offset to field `name` (id: 0) + +0x0A7C | 08 00 | VOffset16 | 0x0008 (8) | offset to field `values` (id: 1) + +0x0A7E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `is_union` (id: 2) (Bool) + +0x0A80 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `underlying_type` (id: 3) + +0x0A82 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `attributes` (id: 4) (Vector) + +0x0A84 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `documentation` (id: 5) (Vector) + +0x0A86 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `declaration_file` (id: 6) table (reflection.Enum): - +0x0A88 | 12 00 00 00 | SOffset32 | 0x00000012 (18) Loc: +0x0A76 | offset to vtable - +0x0A8C | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: +0x0AB8 | offset to field `name` (string) - +0x0A90 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x0AB0 | offset to field `values` (vector) - +0x0A94 | 08 00 00 00 | UOffset32 | 0x00000008 (8) Loc: +0x0A9C | offset to field `underlying_type` (table) - +0x0A98 | D8 2D 00 00 | UOffset32 | 0x00002DD8 (11736) Loc: +0x3870 | offset to field `declaration_file` (string) + +0x0A88 | 12 00 00 00 | SOffset32 | 0x00000012 (18) Loc: 0x0A76 | offset to vtable + +0x0A8C | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: 0x0AB8 | offset to field `name` (string) + +0x0A90 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: 0x0AB0 | offset to field `values` (vector) + +0x0A94 | 08 00 00 00 | UOffset32 | 0x00000008 (8) Loc: 0x0A9C | offset to field `underlying_type` (table) + +0x0A98 | D8 2D 00 00 | UOffset32 | 0x00002DD8 (11736) Loc: 0x3870 | offset to field `declaration_file` (string) table (reflection.Type): - +0x0A9C | F0 D4 FF FF | SOffset32 | 0xFFFFD4F0 (-11024) Loc: +0x35AC | offset to vtable - +0x0AA0 | 00 00 00 | uint8_t[3] | ... | padding - +0x0AA3 | 09 | uint8_t | 0x09 (9) | table field `base_type` (Byte) - +0x0AA4 | 06 00 00 00 | uint32_t | 0x00000006 (6) | table field `index` (Int) - +0x0AA8 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt) - +0x0AAC | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x0A9C | F0 D4 FF FF | SOffset32 | 0xFFFFD4F0 (-11024) Loc: 0x35AC | offset to vtable + +0x0AA0 | 00 00 00 | uint8_t[3] | ... | padding + +0x0AA3 | 09 | uint8_t | 0x09 (9) | table field `base_type` (Byte) + +0x0AA4 | 06 00 00 00 | uint32_t | 0x00000006 (6) | table field `index` (Int) + +0x0AA8 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt) + +0x0AAC | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) vector (reflection.Enum.values): - +0x0AB0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x0AB4 | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: +0x0AEC | offset to table[0] + +0x0AB0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x0AB4 | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: 0x0AEC | offset to table[0] string (reflection.Enum.name): - +0x0AB8 | 21 00 00 00 | uint32_t | 0x00000021 (33) | length of string - +0x0ABC | 4D 79 47 61 6D 65 2E 4F | char[33] | MyGame.O | string literal - +0x0AC4 | 74 68 65 72 4E 61 6D 65 | | therName - +0x0ACC | 53 70 61 63 65 2E 46 72 | | Space.Fr - +0x0AD4 | 6F 6D 49 6E 63 6C 75 64 | | omInclud - +0x0ADC | 65 | | e - +0x0ADD | 00 | char | 0x00 (0) | string terminator + +0x0AB8 | 21 00 00 00 | uint32_t | 0x00000021 (33) | length of string + +0x0ABC | 4D 79 47 61 6D 65 2E 4F | char[33] | MyGame.O | string literal + +0x0AC4 | 74 68 65 72 4E 61 6D 65 | | therName + +0x0ACC | 53 70 61 63 65 2E 46 72 | | Space.Fr + +0x0AD4 | 6F 6D 49 6E 63 6C 75 64 | | omInclud + +0x0ADC | 65 | | e + +0x0ADD | 00 | char | 0x00 (0) | string terminator padding: - +0x0ADE | 00 00 | uint8_t[2] | .. | padding + +0x0ADE | 00 00 | uint8_t[2] | .. | padding vtable (reflection.EnumVal): - +0x0AE0 | 0C 00 | uint16_t | 0x000C (12) | size of this vtable - +0x0AE2 | 0C 00 | uint16_t | 0x000C (12) | size of referring table - +0x0AE4 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `name` (id: 0) - +0x0AE6 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `value` (id: 1) (Long) - +0x0AE8 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `object` (id: 2) (Obj) - +0x0AEA | 08 00 | VOffset16 | 0x0008 (8) | offset to field `union_type` (id: 3) + +0x0AE0 | 0C 00 | uint16_t | 0x000C (12) | size of this vtable + +0x0AE2 | 0C 00 | uint16_t | 0x000C (12) | size of referring table + +0x0AE4 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `name` (id: 0) + +0x0AE6 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `value` (id: 1) (Long) + +0x0AE8 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `object` (id: 2) (Obj) + +0x0AEA | 08 00 | VOffset16 | 0x0008 (8) | offset to field `union_type` (id: 3) table (reflection.EnumVal): - +0x0AEC | 0C 00 00 00 | SOffset32 | 0x0000000C (12) Loc: +0x0AE0 | offset to vtable - +0x0AF0 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x0B14 | offset to field `name` (string) - +0x0AF4 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x0B08 | offset to field `union_type` (table) + +0x0AEC | 0C 00 00 00 | SOffset32 | 0x0000000C (12) Loc: 0x0AE0 | offset to vtable + +0x0AF0 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: 0x0B14 | offset to field `name` (string) + +0x0AF4 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: 0x0B08 | offset to field `union_type` (table) vtable (reflection.Type): - +0x0AF8 | 10 00 | uint16_t | 0x0010 (16) | size of this vtable - +0x0AFA | 0C 00 | uint16_t | 0x000C (12) | size of referring table - +0x0AFC | 00 00 | VOffset16 | 0x0000 (0) | offset to field `base_type` (id: 0) (Byte) - +0x0AFE | 00 00 | VOffset16 | 0x0000 (0) | offset to field `element` (id: 1) (Byte) - +0x0B00 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `index` (id: 2) (Int) - +0x0B02 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `fixed_length` (id: 3) (UShort) - +0x0B04 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `base_size` (id: 4) - +0x0B06 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `element_size` (id: 5) + +0x0AF8 | 10 00 | uint16_t | 0x0010 (16) | size of this vtable + +0x0AFA | 0C 00 | uint16_t | 0x000C (12) | size of referring table + +0x0AFC | 00 00 | VOffset16 | 0x0000 (0) | offset to field `base_type` (id: 0) (Byte) + +0x0AFE | 00 00 | VOffset16 | 0x0000 (0) | offset to field `element` (id: 1) (Byte) + +0x0B00 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `index` (id: 2) (Int) + +0x0B02 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `fixed_length` (id: 3) (UShort) + +0x0B04 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `base_size` (id: 4) + +0x0B06 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `element_size` (id: 5) table (reflection.Type): - +0x0B08 | 10 00 00 00 | SOffset32 | 0x00000010 (16) Loc: +0x0AF8 | offset to vtable - +0x0B0C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) - +0x0B10 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x0B08 | 10 00 00 00 | SOffset32 | 0x00000010 (16) Loc: 0x0AF8 | offset to vtable + +0x0B0C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) + +0x0B10 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.EnumVal.name): - +0x0B14 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | length of string - +0x0B18 | 49 6E 63 6C 75 64 65 56 | char[10] | IncludeV | string literal - +0x0B20 | 61 6C | | al - +0x0B22 | 00 | char | 0x00 (0) | string terminator + +0x0B14 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | length of string + +0x0B18 | 49 6E 63 6C 75 64 65 56 | char[10] | IncludeV | string literal + +0x0B20 | 61 6C | | al + +0x0B22 | 00 | char | 0x00 (0) | string terminator table (reflection.Object): - +0x0B24 | 8C D3 FF FF | SOffset32 | 0xFFFFD38C (-11380) Loc: +0x3798 | offset to vtable - +0x0B28 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x0B6C | offset to field `name` (string) - +0x0B2C | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x0B38 | offset to field `fields` (vector) - +0x0B30 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `minalign` (Int) - +0x0B34 | B0 2B 00 00 | UOffset32 | 0x00002BB0 (11184) Loc: +0x36E4 | offset to field `declaration_file` (string) + +0x0B24 | 8C D3 FF FF | SOffset32 | 0xFFFFD38C (-11380) Loc: 0x3798 | offset to vtable + +0x0B28 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: 0x0B6C | offset to field `name` (string) + +0x0B2C | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: 0x0B38 | offset to field `fields` (vector) + +0x0B30 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `minalign` (Int) + +0x0B34 | B0 2B 00 00 | UOffset32 | 0x00002BB0 (11184) Loc: 0x36E4 | offset to field `declaration_file` (string) vector (reflection.Object.fields): - +0x0B38 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | length of vector (# items) - +0x0B3C | CC 00 00 00 | UOffset32 | 0x000000CC (204) Loc: +0x0C08 | offset to table[0] - +0x0B40 | A0 00 00 00 | UOffset32 | 0x000000A0 (160) Loc: +0x0BE0 | offset to table[1] - +0x0B44 | A8 01 00 00 | UOffset32 | 0x000001A8 (424) Loc: +0x0CEC | offset to table[2] - +0x0B48 | 58 01 00 00 | UOffset32 | 0x00000158 (344) Loc: +0x0CA0 | offset to table[3] - +0x0B4C | 08 01 00 00 | UOffset32 | 0x00000108 (264) Loc: +0x0C54 | offset to table[4] - +0x0B50 | F8 01 00 00 | UOffset32 | 0x000001F8 (504) Loc: +0x0D48 | offset to table[5] - +0x0B54 | 70 01 00 00 | UOffset32 | 0x00000170 (368) Loc: +0x0CC4 | offset to table[6] - +0x0B58 | 24 01 00 00 | UOffset32 | 0x00000124 (292) Loc: +0x0C7C | offset to table[7] - +0x0B5C | D0 00 00 00 | UOffset32 | 0x000000D0 (208) Loc: +0x0C2C | offset to table[8] - +0x0B60 | B4 01 00 00 | UOffset32 | 0x000001B4 (436) Loc: +0x0D14 | offset to table[9] - +0x0B64 | 54 00 00 00 | UOffset32 | 0x00000054 (84) Loc: +0x0BB8 | offset to table[10] - +0x0B68 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x0B8C | offset to table[11] + +0x0B38 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | length of vector (# items) + +0x0B3C | CC 00 00 00 | UOffset32 | 0x000000CC (204) Loc: 0x0C08 | offset to table[0] + +0x0B40 | A0 00 00 00 | UOffset32 | 0x000000A0 (160) Loc: 0x0BE0 | offset to table[1] + +0x0B44 | A8 01 00 00 | UOffset32 | 0x000001A8 (424) Loc: 0x0CEC | offset to table[2] + +0x0B48 | 58 01 00 00 | UOffset32 | 0x00000158 (344) Loc: 0x0CA0 | offset to table[3] + +0x0B4C | 08 01 00 00 | UOffset32 | 0x00000108 (264) Loc: 0x0C54 | offset to table[4] + +0x0B50 | F8 01 00 00 | UOffset32 | 0x000001F8 (504) Loc: 0x0D48 | offset to table[5] + +0x0B54 | 70 01 00 00 | UOffset32 | 0x00000170 (368) Loc: 0x0CC4 | offset to table[6] + +0x0B58 | 24 01 00 00 | UOffset32 | 0x00000124 (292) Loc: 0x0C7C | offset to table[7] + +0x0B5C | D0 00 00 00 | UOffset32 | 0x000000D0 (208) Loc: 0x0C2C | offset to table[8] + +0x0B60 | B4 01 00 00 | UOffset32 | 0x000001B4 (436) Loc: 0x0D14 | offset to table[9] + +0x0B64 | 54 00 00 00 | UOffset32 | 0x00000054 (84) Loc: 0x0BB8 | offset to table[10] + +0x0B68 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: 0x0B8C | offset to table[11] string (reflection.Object.name): - +0x0B6C | 1A 00 00 00 | uint32_t | 0x0000001A (26) | length of string - +0x0B70 | 4D 79 47 61 6D 65 2E 45 | char[26] | MyGame.E | string literal - +0x0B78 | 78 61 6D 70 6C 65 2E 54 | | xample.T - +0x0B80 | 79 70 65 41 6C 69 61 73 | | ypeAlias - +0x0B88 | 65 73 | | es - +0x0B8A | 00 | char | 0x00 (0) | string terminator + +0x0B6C | 1A 00 00 00 | uint32_t | 0x0000001A (26) | length of string + +0x0B70 | 4D 79 47 61 6D 65 2E 45 | char[26] | MyGame.E | string literal + +0x0B78 | 78 61 6D 70 6C 65 2E 54 | | xample.T + +0x0B80 | 79 70 65 41 6C 69 61 73 | | ypeAlias + +0x0B88 | 65 73 | | es + +0x0B8A | 00 | char | 0x00 (0) | string terminator table (reflection.Field): - +0x0B8C | DC D9 FF FF | SOffset32 | 0xFFFFD9DC (-9764) Loc: +0x31B0 | offset to vtable - +0x0B90 | 00 00 00 | uint8_t[3] | ... | padding - +0x0B93 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x0B94 | 0B 00 | uint16_t | 0x000B (11) | table field `id` (UShort) - +0x0B96 | 1A 00 | uint16_t | 0x001A (26) | table field `offset` (UShort) - +0x0B98 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x0BAC | offset to field `name` (string) - +0x0B9C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x0BA0 | offset to field `type` (table) + +0x0B8C | DC D9 FF FF | SOffset32 | 0xFFFFD9DC (-9764) Loc: 0x31B0 | offset to vtable + +0x0B90 | 00 00 00 | uint8_t[3] | ... | padding + +0x0B93 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x0B94 | 0B 00 | uint16_t | 0x000B (11) | table field `id` (UShort) + +0x0B96 | 1A 00 | uint16_t | 0x001A (26) | table field `offset` (UShort) + +0x0B98 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: 0x0BAC | offset to field `name` (string) + +0x0B9C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x0BA0 | offset to field `type` (table) table (reflection.Type): - +0x0BA0 | 60 DF FF FF | SOffset32 | 0xFFFFDF60 (-8352) Loc: +0x2C40 | offset to vtable - +0x0BA4 | 00 00 | uint8_t[2] | .. | padding - +0x0BA6 | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) - +0x0BA7 | 0C | uint8_t | 0x0C (12) | table field `element` (Byte) - +0x0BA8 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `element_size` (UInt) + +0x0BA0 | 60 DF FF FF | SOffset32 | 0xFFFFDF60 (-8352) Loc: 0x2C40 | offset to vtable + +0x0BA4 | 00 00 | uint8_t[2] | .. | padding + +0x0BA6 | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) + +0x0BA7 | 0C | uint8_t | 0x0C (12) | table field `element` (Byte) + +0x0BA8 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `element_size` (UInt) string (reflection.Field.name): - +0x0BAC | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string - +0x0BB0 | 76 66 36 34 | char[4] | vf64 | string literal - +0x0BB4 | 00 | char | 0x00 (0) | string terminator + +0x0BAC | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string + +0x0BB0 | 76 66 36 34 | char[4] | vf64 | string literal + +0x0BB4 | 00 | char | 0x00 (0) | string terminator padding: - +0x0BB5 | 00 00 00 | uint8_t[3] | ... | padding + +0x0BB5 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Field): - +0x0BB8 | 08 DA FF FF | SOffset32 | 0xFFFFDA08 (-9720) Loc: +0x31B0 | offset to vtable - +0x0BBC | 00 00 00 | uint8_t[3] | ... | padding - +0x0BBF | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x0BC0 | 0A 00 | uint16_t | 0x000A (10) | table field `id` (UShort) - +0x0BC2 | 18 00 | uint16_t | 0x0018 (24) | table field `offset` (UShort) - +0x0BC4 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x0BD8 | offset to field `name` (string) - +0x0BC8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x0BCC | offset to field `type` (table) + +0x0BB8 | 08 DA FF FF | SOffset32 | 0xFFFFDA08 (-9720) Loc: 0x31B0 | offset to vtable + +0x0BBC | 00 00 00 | uint8_t[3] | ... | padding + +0x0BBF | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x0BC0 | 0A 00 | uint16_t | 0x000A (10) | table field `id` (UShort) + +0x0BC2 | 18 00 | uint16_t | 0x0018 (24) | table field `offset` (UShort) + +0x0BC4 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: 0x0BD8 | offset to field `name` (string) + +0x0BC8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x0BCC | offset to field `type` (table) table (reflection.Type): - +0x0BCC | 8C DF FF FF | SOffset32 | 0xFFFFDF8C (-8308) Loc: +0x2C40 | offset to vtable - +0x0BD0 | 00 00 | uint8_t[2] | .. | padding - +0x0BD2 | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) - +0x0BD3 | 03 | uint8_t | 0x03 (3) | table field `element` (Byte) - +0x0BD4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x0BCC | 8C DF FF FF | SOffset32 | 0xFFFFDF8C (-8308) Loc: 0x2C40 | offset to vtable + +0x0BD0 | 00 00 | uint8_t[2] | .. | padding + +0x0BD2 | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) + +0x0BD3 | 03 | uint8_t | 0x03 (3) | table field `element` (Byte) + +0x0BD4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x0BD8 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x0BDC | 76 38 | char[2] | v8 | string literal - +0x0BDE | 00 | char | 0x00 (0) | string terminator + +0x0BD8 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x0BDC | 76 38 | char[2] | v8 | string literal + +0x0BDE | 00 | char | 0x00 (0) | string terminator table (reflection.Field): - +0x0BE0 | 64 D7 FF FF | SOffset32 | 0xFFFFD764 (-10396) Loc: +0x347C | offset to vtable - +0x0BE4 | 09 00 | uint16_t | 0x0009 (9) | table field `id` (UShort) - +0x0BE6 | 16 00 | uint16_t | 0x0016 (22) | table field `offset` (UShort) - +0x0BE8 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x0C00 | offset to field `name` (string) - +0x0BEC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x0BF0 | offset to field `type` (table) + +0x0BE0 | 64 D7 FF FF | SOffset32 | 0xFFFFD764 (-10396) Loc: 0x347C | offset to vtable + +0x0BE4 | 09 00 | uint16_t | 0x0009 (9) | table field `id` (UShort) + +0x0BE6 | 16 00 | uint16_t | 0x0016 (22) | table field `offset` (UShort) + +0x0BE8 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: 0x0C00 | offset to field `name` (string) + +0x0BEC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x0BF0 | offset to field `type` (table) table (reflection.Type): - +0x0BF0 | 7C D5 FF FF | SOffset32 | 0xFFFFD57C (-10884) Loc: +0x3674 | offset to vtable - +0x0BF4 | 00 00 00 | uint8_t[3] | ... | padding - +0x0BF7 | 0C | uint8_t | 0x0C (12) | table field `base_type` (Byte) - +0x0BF8 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt) - +0x0BFC | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x0BF0 | 7C D5 FF FF | SOffset32 | 0xFFFFD57C (-10884) Loc: 0x3674 | offset to vtable + +0x0BF4 | 00 00 00 | uint8_t[3] | ... | padding + +0x0BF7 | 0C | uint8_t | 0x0C (12) | table field `base_type` (Byte) + +0x0BF8 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt) + +0x0BFC | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x0C00 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string - +0x0C04 | 66 36 34 | char[3] | f64 | string literal - +0x0C07 | 00 | char | 0x00 (0) | string terminator + +0x0C00 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string + +0x0C04 | 66 36 34 | char[3] | f64 | string literal + +0x0C07 | 00 | char | 0x00 (0) | string terminator table (reflection.Field): - +0x0C08 | 8C D7 FF FF | SOffset32 | 0xFFFFD78C (-10356) Loc: +0x347C | offset to vtable - +0x0C0C | 08 00 | uint16_t | 0x0008 (8) | table field `id` (UShort) - +0x0C0E | 14 00 | uint16_t | 0x0014 (20) | table field `offset` (UShort) - +0x0C10 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x0C24 | offset to field `name` (string) - +0x0C14 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x0C18 | offset to field `type` (table) + +0x0C08 | 8C D7 FF FF | SOffset32 | 0xFFFFD78C (-10356) Loc: 0x347C | offset to vtable + +0x0C0C | 08 00 | uint16_t | 0x0008 (8) | table field `id` (UShort) + +0x0C0E | 14 00 | uint16_t | 0x0014 (20) | table field `offset` (UShort) + +0x0C10 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: 0x0C24 | offset to field `name` (string) + +0x0C14 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x0C18 | offset to field `type` (table) table (reflection.Type): - +0x0C18 | 3C D3 FF FF | SOffset32 | 0xFFFFD33C (-11460) Loc: +0x38DC | offset to vtable - +0x0C1C | 00 00 00 | uint8_t[3] | ... | padding - +0x0C1F | 0B | uint8_t | 0x0B (11) | table field `base_type` (Byte) - +0x0C20 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x0C18 | 3C D3 FF FF | SOffset32 | 0xFFFFD33C (-11460) Loc: 0x38DC | offset to vtable + +0x0C1C | 00 00 00 | uint8_t[3] | ... | padding + +0x0C1F | 0B | uint8_t | 0x0B (11) | table field `base_type` (Byte) + +0x0C20 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x0C24 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string - +0x0C28 | 66 33 32 | char[3] | f32 | string literal - +0x0C2B | 00 | char | 0x00 (0) | string terminator + +0x0C24 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string + +0x0C28 | 66 33 32 | char[3] | f32 | string literal + +0x0C2B | 00 | char | 0x00 (0) | string terminator table (reflection.Field): - +0x0C2C | B0 D7 FF FF | SOffset32 | 0xFFFFD7B0 (-10320) Loc: +0x347C | offset to vtable - +0x0C30 | 07 00 | uint16_t | 0x0007 (7) | table field `id` (UShort) - +0x0C32 | 12 00 | uint16_t | 0x0012 (18) | table field `offset` (UShort) - +0x0C34 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x0C4C | offset to field `name` (string) - +0x0C38 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x0C3C | offset to field `type` (table) + +0x0C2C | B0 D7 FF FF | SOffset32 | 0xFFFFD7B0 (-10320) Loc: 0x347C | offset to vtable + +0x0C30 | 07 00 | uint16_t | 0x0007 (7) | table field `id` (UShort) + +0x0C32 | 12 00 | uint16_t | 0x0012 (18) | table field `offset` (UShort) + +0x0C34 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: 0x0C4C | offset to field `name` (string) + +0x0C38 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x0C3C | offset to field `type` (table) table (reflection.Type): - +0x0C3C | C8 D5 FF FF | SOffset32 | 0xFFFFD5C8 (-10808) Loc: +0x3674 | offset to vtable - +0x0C40 | 00 00 00 | uint8_t[3] | ... | padding - +0x0C43 | 0A | uint8_t | 0x0A (10) | table field `base_type` (Byte) - +0x0C44 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt) - +0x0C48 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x0C3C | C8 D5 FF FF | SOffset32 | 0xFFFFD5C8 (-10808) Loc: 0x3674 | offset to vtable + +0x0C40 | 00 00 00 | uint8_t[3] | ... | padding + +0x0C43 | 0A | uint8_t | 0x0A (10) | table field `base_type` (Byte) + +0x0C44 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt) + +0x0C48 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x0C4C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string - +0x0C50 | 75 36 34 | char[3] | u64 | string literal - +0x0C53 | 00 | char | 0x00 (0) | string terminator + +0x0C4C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string + +0x0C50 | 75 36 34 | char[3] | u64 | string literal + +0x0C53 | 00 | char | 0x00 (0) | string terminator table (reflection.Field): - +0x0C54 | D8 D7 FF FF | SOffset32 | 0xFFFFD7D8 (-10280) Loc: +0x347C | offset to vtable - +0x0C58 | 06 00 | uint16_t | 0x0006 (6) | table field `id` (UShort) - +0x0C5A | 10 00 | uint16_t | 0x0010 (16) | table field `offset` (UShort) - +0x0C5C | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x0C74 | offset to field `name` (string) - +0x0C60 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x0C64 | offset to field `type` (table) + +0x0C54 | D8 D7 FF FF | SOffset32 | 0xFFFFD7D8 (-10280) Loc: 0x347C | offset to vtable + +0x0C58 | 06 00 | uint16_t | 0x0006 (6) | table field `id` (UShort) + +0x0C5A | 10 00 | uint16_t | 0x0010 (16) | table field `offset` (UShort) + +0x0C5C | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: 0x0C74 | offset to field `name` (string) + +0x0C60 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x0C64 | offset to field `type` (table) table (reflection.Type): - +0x0C64 | F0 D5 FF FF | SOffset32 | 0xFFFFD5F0 (-10768) Loc: +0x3674 | offset to vtable - +0x0C68 | 00 00 00 | uint8_t[3] | ... | padding - +0x0C6B | 09 | uint8_t | 0x09 (9) | table field `base_type` (Byte) - +0x0C6C | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt) - +0x0C70 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x0C64 | F0 D5 FF FF | SOffset32 | 0xFFFFD5F0 (-10768) Loc: 0x3674 | offset to vtable + +0x0C68 | 00 00 00 | uint8_t[3] | ... | padding + +0x0C6B | 09 | uint8_t | 0x09 (9) | table field `base_type` (Byte) + +0x0C6C | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt) + +0x0C70 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x0C74 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string - +0x0C78 | 69 36 34 | char[3] | i64 | string literal - +0x0C7B | 00 | char | 0x00 (0) | string terminator + +0x0C74 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string + +0x0C78 | 69 36 34 | char[3] | i64 | string literal + +0x0C7B | 00 | char | 0x00 (0) | string terminator table (reflection.Field): - +0x0C7C | 00 D8 FF FF | SOffset32 | 0xFFFFD800 (-10240) Loc: +0x347C | offset to vtable - +0x0C80 | 05 00 | uint16_t | 0x0005 (5) | table field `id` (UShort) - +0x0C82 | 0E 00 | uint16_t | 0x000E (14) | table field `offset` (UShort) - +0x0C84 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x0C98 | offset to field `name` (string) - +0x0C88 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x0C8C | offset to field `type` (table) + +0x0C7C | 00 D8 FF FF | SOffset32 | 0xFFFFD800 (-10240) Loc: 0x347C | offset to vtable + +0x0C80 | 05 00 | uint16_t | 0x0005 (5) | table field `id` (UShort) + +0x0C82 | 0E 00 | uint16_t | 0x000E (14) | table field `offset` (UShort) + +0x0C84 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: 0x0C98 | offset to field `name` (string) + +0x0C88 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x0C8C | offset to field `type` (table) table (reflection.Type): - +0x0C8C | B0 D3 FF FF | SOffset32 | 0xFFFFD3B0 (-11344) Loc: +0x38DC | offset to vtable - +0x0C90 | 00 00 00 | uint8_t[3] | ... | padding - +0x0C93 | 08 | uint8_t | 0x08 (8) | table field `base_type` (Byte) - +0x0C94 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x0C8C | B0 D3 FF FF | SOffset32 | 0xFFFFD3B0 (-11344) Loc: 0x38DC | offset to vtable + +0x0C90 | 00 00 00 | uint8_t[3] | ... | padding + +0x0C93 | 08 | uint8_t | 0x08 (8) | table field `base_type` (Byte) + +0x0C94 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x0C98 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string - +0x0C9C | 75 33 32 | char[3] | u32 | string literal - +0x0C9F | 00 | char | 0x00 (0) | string terminator + +0x0C98 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string + +0x0C9C | 75 33 32 | char[3] | u32 | string literal + +0x0C9F | 00 | char | 0x00 (0) | string terminator table (reflection.Field): - +0x0CA0 | 24 D8 FF FF | SOffset32 | 0xFFFFD824 (-10204) Loc: +0x347C | offset to vtable - +0x0CA4 | 04 00 | uint16_t | 0x0004 (4) | table field `id` (UShort) - +0x0CA6 | 0C 00 | uint16_t | 0x000C (12) | table field `offset` (UShort) - +0x0CA8 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x0CBC | offset to field `name` (string) - +0x0CAC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x0CB0 | offset to field `type` (table) + +0x0CA0 | 24 D8 FF FF | SOffset32 | 0xFFFFD824 (-10204) Loc: 0x347C | offset to vtable + +0x0CA4 | 04 00 | uint16_t | 0x0004 (4) | table field `id` (UShort) + +0x0CA6 | 0C 00 | uint16_t | 0x000C (12) | table field `offset` (UShort) + +0x0CA8 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: 0x0CBC | offset to field `name` (string) + +0x0CAC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x0CB0 | offset to field `type` (table) table (reflection.Type): - +0x0CB0 | D4 D3 FF FF | SOffset32 | 0xFFFFD3D4 (-11308) Loc: +0x38DC | offset to vtable - +0x0CB4 | 00 00 00 | uint8_t[3] | ... | padding - +0x0CB7 | 07 | uint8_t | 0x07 (7) | table field `base_type` (Byte) - +0x0CB8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x0CB0 | D4 D3 FF FF | SOffset32 | 0xFFFFD3D4 (-11308) Loc: 0x38DC | offset to vtable + +0x0CB4 | 00 00 00 | uint8_t[3] | ... | padding + +0x0CB7 | 07 | uint8_t | 0x07 (7) | table field `base_type` (Byte) + +0x0CB8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x0CBC | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string - +0x0CC0 | 69 33 32 | char[3] | i32 | string literal - +0x0CC3 | 00 | char | 0x00 (0) | string terminator + +0x0CBC | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string + +0x0CC0 | 69 33 32 | char[3] | i32 | string literal + +0x0CC3 | 00 | char | 0x00 (0) | string terminator table (reflection.Field): - +0x0CC4 | 48 D8 FF FF | SOffset32 | 0xFFFFD848 (-10168) Loc: +0x347C | offset to vtable - +0x0CC8 | 03 00 | uint16_t | 0x0003 (3) | table field `id` (UShort) - +0x0CCA | 0A 00 | uint16_t | 0x000A (10) | table field `offset` (UShort) - +0x0CCC | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x0CE4 | offset to field `name` (string) - +0x0CD0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x0CD4 | offset to field `type` (table) + +0x0CC4 | 48 D8 FF FF | SOffset32 | 0xFFFFD848 (-10168) Loc: 0x347C | offset to vtable + +0x0CC8 | 03 00 | uint16_t | 0x0003 (3) | table field `id` (UShort) + +0x0CCA | 0A 00 | uint16_t | 0x000A (10) | table field `offset` (UShort) + +0x0CCC | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: 0x0CE4 | offset to field `name` (string) + +0x0CD0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x0CD4 | offset to field `type` (table) table (reflection.Type): - +0x0CD4 | 60 D6 FF FF | SOffset32 | 0xFFFFD660 (-10656) Loc: +0x3674 | offset to vtable - +0x0CD8 | 00 00 00 | uint8_t[3] | ... | padding - +0x0CDB | 06 | uint8_t | 0x06 (6) | table field `base_type` (Byte) - +0x0CDC | 02 00 00 00 | uint32_t | 0x00000002 (2) | table field `base_size` (UInt) - +0x0CE0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x0CD4 | 60 D6 FF FF | SOffset32 | 0xFFFFD660 (-10656) Loc: 0x3674 | offset to vtable + +0x0CD8 | 00 00 00 | uint8_t[3] | ... | padding + +0x0CDB | 06 | uint8_t | 0x06 (6) | table field `base_type` (Byte) + +0x0CDC | 02 00 00 00 | uint32_t | 0x00000002 (2) | table field `base_size` (UInt) + +0x0CE0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x0CE4 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string - +0x0CE8 | 75 31 36 | char[3] | u16 | string literal - +0x0CEB | 00 | char | 0x00 (0) | string terminator + +0x0CE4 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string + +0x0CE8 | 75 31 36 | char[3] | u16 | string literal + +0x0CEB | 00 | char | 0x00 (0) | string terminator table (reflection.Field): - +0x0CEC | 70 D8 FF FF | SOffset32 | 0xFFFFD870 (-10128) Loc: +0x347C | offset to vtable - +0x0CF0 | 02 00 | uint16_t | 0x0002 (2) | table field `id` (UShort) - +0x0CF2 | 08 00 | uint16_t | 0x0008 (8) | table field `offset` (UShort) - +0x0CF4 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x0D0C | offset to field `name` (string) - +0x0CF8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x0CFC | offset to field `type` (table) + +0x0CEC | 70 D8 FF FF | SOffset32 | 0xFFFFD870 (-10128) Loc: 0x347C | offset to vtable + +0x0CF0 | 02 00 | uint16_t | 0x0002 (2) | table field `id` (UShort) + +0x0CF2 | 08 00 | uint16_t | 0x0008 (8) | table field `offset` (UShort) + +0x0CF4 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: 0x0D0C | offset to field `name` (string) + +0x0CF8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x0CFC | offset to field `type` (table) table (reflection.Type): - +0x0CFC | 88 D6 FF FF | SOffset32 | 0xFFFFD688 (-10616) Loc: +0x3674 | offset to vtable - +0x0D00 | 00 00 00 | uint8_t[3] | ... | padding - +0x0D03 | 05 | uint8_t | 0x05 (5) | table field `base_type` (Byte) - +0x0D04 | 02 00 00 00 | uint32_t | 0x00000002 (2) | table field `base_size` (UInt) - +0x0D08 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x0CFC | 88 D6 FF FF | SOffset32 | 0xFFFFD688 (-10616) Loc: 0x3674 | offset to vtable + +0x0D00 | 00 00 00 | uint8_t[3] | ... | padding + +0x0D03 | 05 | uint8_t | 0x05 (5) | table field `base_type` (Byte) + +0x0D04 | 02 00 00 00 | uint32_t | 0x00000002 (2) | table field `base_size` (UInt) + +0x0D08 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x0D0C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string - +0x0D10 | 69 31 36 | char[3] | i16 | string literal - +0x0D13 | 00 | char | 0x00 (0) | string terminator + +0x0D0C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string + +0x0D10 | 69 31 36 | char[3] | i16 | string literal + +0x0D13 | 00 | char | 0x00 (0) | string terminator table (reflection.Field): - +0x0D14 | 98 D8 FF FF | SOffset32 | 0xFFFFD898 (-10088) Loc: +0x347C | offset to vtable - +0x0D18 | 01 00 | uint16_t | 0x0001 (1) | table field `id` (UShort) - +0x0D1A | 06 00 | uint16_t | 0x0006 (6) | table field `offset` (UShort) - +0x0D1C | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x0D34 | offset to field `name` (string) - +0x0D20 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x0D24 | offset to field `type` (table) + +0x0D14 | 98 D8 FF FF | SOffset32 | 0xFFFFD898 (-10088) Loc: 0x347C | offset to vtable + +0x0D18 | 01 00 | uint16_t | 0x0001 (1) | table field `id` (UShort) + +0x0D1A | 06 00 | uint16_t | 0x0006 (6) | table field `offset` (UShort) + +0x0D1C | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: 0x0D34 | offset to field `name` (string) + +0x0D20 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x0D24 | offset to field `type` (table) table (reflection.Type): - +0x0D24 | B0 D6 FF FF | SOffset32 | 0xFFFFD6B0 (-10576) Loc: +0x3674 | offset to vtable - +0x0D28 | 00 00 00 | uint8_t[3] | ... | padding - +0x0D2B | 04 | uint8_t | 0x04 (4) | table field `base_type` (Byte) - +0x0D2C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) - +0x0D30 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x0D24 | B0 D6 FF FF | SOffset32 | 0xFFFFD6B0 (-10576) Loc: 0x3674 | offset to vtable + +0x0D28 | 00 00 00 | uint8_t[3] | ... | padding + +0x0D2B | 04 | uint8_t | 0x04 (4) | table field `base_type` (Byte) + +0x0D2C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) + +0x0D30 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x0D34 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x0D38 | 75 38 | char[2] | u8 | string literal - +0x0D3A | 00 | char | 0x00 (0) | string terminator + +0x0D34 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x0D38 | 75 38 | char[2] | u8 | string literal + +0x0D3A | 00 | char | 0x00 (0) | string terminator vtable (reflection.Field): - +0x0D3C | 0C 00 | uint16_t | 0x000C (12) | size of this vtable - +0x0D3E | 10 00 | uint16_t | 0x0010 (16) | size of referring table - +0x0D40 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0) - +0x0D42 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `type` (id: 1) - +0x0D44 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `id` (id: 2) (UShort) - +0x0D46 | 06 00 | VOffset16 | 0x0006 (6) | offset to field `offset` (id: 3) + +0x0D3C | 0C 00 | uint16_t | 0x000C (12) | size of this vtable + +0x0D3E | 10 00 | uint16_t | 0x0010 (16) | size of referring table + +0x0D40 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0) + +0x0D42 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `type` (id: 1) + +0x0D44 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `id` (id: 2) (UShort) + +0x0D46 | 06 00 | VOffset16 | 0x0006 (6) | offset to field `offset` (id: 3) table (reflection.Field): - +0x0D48 | 0C 00 00 00 | SOffset32 | 0x0000000C (12) Loc: +0x0D3C | offset to vtable - +0x0D4C | 00 00 | uint8_t[2] | .. | padding - +0x0D4E | 04 00 | uint16_t | 0x0004 (4) | table field `offset` (UShort) - +0x0D50 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x0D68 | offset to field `name` (string) - +0x0D54 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x0D58 | offset to field `type` (table) + +0x0D48 | 0C 00 00 00 | SOffset32 | 0x0000000C (12) Loc: 0x0D3C | offset to vtable + +0x0D4C | 00 00 | uint8_t[2] | .. | padding + +0x0D4E | 04 00 | uint16_t | 0x0004 (4) | table field `offset` (UShort) + +0x0D50 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: 0x0D68 | offset to field `name` (string) + +0x0D54 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x0D58 | offset to field `type` (table) table (reflection.Type): - +0x0D58 | E4 D6 FF FF | SOffset32 | 0xFFFFD6E4 (-10524) Loc: +0x3674 | offset to vtable - +0x0D5C | 00 00 00 | uint8_t[3] | ... | padding - +0x0D5F | 03 | uint8_t | 0x03 (3) | table field `base_type` (Byte) - +0x0D60 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) - +0x0D64 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x0D58 | E4 D6 FF FF | SOffset32 | 0xFFFFD6E4 (-10524) Loc: 0x3674 | offset to vtable + +0x0D5C | 00 00 00 | uint8_t[3] | ... | padding + +0x0D5F | 03 | uint8_t | 0x03 (3) | table field `base_type` (Byte) + +0x0D60 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) + +0x0D64 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x0D68 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x0D6C | 69 38 | char[2] | i8 | string literal - +0x0D6E | 00 | char | 0x00 (0) | string terminator + +0x0D68 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x0D6C | 69 38 | char[2] | i8 | string literal + +0x0D6E | 00 | char | 0x00 (0) | string terminator vtable (reflection.Object): - +0x0D70 | 14 00 | uint16_t | 0x0014 (20) | size of this vtable - +0x0D72 | 18 00 | uint16_t | 0x0018 (24) | size of referring table - +0x0D74 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `name` (id: 0) - +0x0D76 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `fields` (id: 1) - +0x0D78 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `is_struct` (id: 2) (Bool) - +0x0D7A | 0C 00 | VOffset16 | 0x000C (12) | offset to field `minalign` (id: 3) - +0x0D7C | 00 00 | VOffset16 | 0x0000 (0) | offset to field `bytesize` (id: 4) (Int) - +0x0D7E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `attributes` (id: 5) (Vector) - +0x0D80 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `documentation` (id: 6) - +0x0D82 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `declaration_file` (id: 7) + +0x0D70 | 14 00 | uint16_t | 0x0014 (20) | size of this vtable + +0x0D72 | 18 00 | uint16_t | 0x0018 (24) | size of referring table + +0x0D74 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `name` (id: 0) + +0x0D76 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `fields` (id: 1) + +0x0D78 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `is_struct` (id: 2) (Bool) + +0x0D7A | 0C 00 | VOffset16 | 0x000C (12) | offset to field `minalign` (id: 3) + +0x0D7C | 00 00 | VOffset16 | 0x0000 (0) | offset to field `bytesize` (id: 4) (Int) + +0x0D7E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `attributes` (id: 5) (Vector) + +0x0D80 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `documentation` (id: 6) + +0x0D82 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `declaration_file` (id: 7) table (reflection.Object): - +0x0D84 | 14 00 00 00 | SOffset32 | 0x00000014 (20) Loc: +0x0D70 | offset to vtable - +0x0D88 | 50 01 00 00 | UOffset32 | 0x00000150 (336) Loc: +0x0ED8 | offset to field `name` (string) - +0x0D8C | 50 00 00 00 | UOffset32 | 0x00000050 (80) Loc: +0x0DDC | offset to field `fields` (vector) - +0x0D90 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `minalign` (Int) - +0x0D94 | 08 00 00 00 | UOffset32 | 0x00000008 (8) Loc: +0x0D9C | offset to field `documentation` (vector) - +0x0D98 | 4C 29 00 00 | UOffset32 | 0x0000294C (10572) Loc: +0x36E4 | offset to field `declaration_file` (string) + +0x0D84 | 14 00 00 00 | SOffset32 | 0x00000014 (20) Loc: 0x0D70 | offset to vtable + +0x0D88 | 50 01 00 00 | UOffset32 | 0x00000150 (336) Loc: 0x0ED8 | offset to field `name` (string) + +0x0D8C | 50 00 00 00 | UOffset32 | 0x00000050 (80) Loc: 0x0DDC | offset to field `fields` (vector) + +0x0D90 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `minalign` (Int) + +0x0D94 | 08 00 00 00 | UOffset32 | 0x00000008 (8) Loc: 0x0D9C | offset to field `documentation` (vector) + +0x0D98 | 4C 29 00 00 | UOffset32 | 0x0000294C (10572) Loc: 0x36E4 | offset to field `declaration_file` (string) vector (reflection.Object.documentation): - +0x0D9C | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x0DA0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x0DA4 | offset to string[0] + +0x0D9C | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x0DA0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x0DA4 | offset to string[0] string (reflection.Object.documentation): - +0x0DA4 | 33 00 00 00 | uint32_t | 0x00000033 (51) | length of string - +0x0DA8 | 20 61 6E 20 65 78 61 6D | char[51] | an exam | string literal - +0x0DB0 | 70 6C 65 20 64 6F 63 75 | | ple docu - +0x0DB8 | 6D 65 6E 74 61 74 69 6F | | mentatio - +0x0DC0 | 6E 20 63 6F 6D 6D 65 6E | | n commen - +0x0DC8 | 74 3A 20 22 6D 6F 6E 73 | | t: "mons - +0x0DD0 | 74 65 72 20 6F 62 6A 65 | | ter obje - +0x0DD8 | 63 74 22 | | ct" - +0x0DDB | 00 | char | 0x00 (0) | string terminator + +0x0DA4 | 33 00 00 00 | uint32_t | 0x00000033 (51) | length of string + +0x0DA8 | 20 61 6E 20 65 78 61 6D | char[51] | an exam | string literal + +0x0DB0 | 70 6C 65 20 64 6F 63 75 | | ple docu + +0x0DB8 | 6D 65 6E 74 61 74 69 6F | | mentatio + +0x0DC0 | 6E 20 63 6F 6D 6D 65 6E | | n commen + +0x0DC8 | 74 3A 20 22 6D 6F 6E 73 | | t: "mons + +0x0DD0 | 74 65 72 20 6F 62 6A 65 | | ter obje + +0x0DD8 | 63 74 22 | | ct" + +0x0DDB | 00 | char | 0x00 (0) | string terminator vector (reflection.Object.fields): - +0x0DDC | 3E 00 00 00 | uint32_t | 0x0000003E (62) | length of vector (# items) - +0x0DE0 | A8 07 00 00 | UOffset32 | 0x000007A8 (1960) Loc: +0x1588 | offset to table[0] - +0x0DE4 | 04 08 00 00 | UOffset32 | 0x00000804 (2052) Loc: +0x15E8 | offset to table[1] - +0x0DE8 | 64 08 00 00 | UOffset32 | 0x00000864 (2148) Loc: +0x164C | offset to table[2] - +0x0DEC | BC 08 00 00 | UOffset32 | 0x000008BC (2236) Loc: +0x16A8 | offset to table[3] - +0x0DF0 | 98 0C 00 00 | UOffset32 | 0x00000C98 (3224) Loc: +0x1A88 | offset to table[4] - +0x0DF4 | 90 1D 00 00 | UOffset32 | 0x00001D90 (7568) Loc: +0x2B84 | offset to table[5] - +0x0DF8 | FC 00 00 00 | UOffset32 | 0x000000FC (252) Loc: +0x0EF4 | offset to table[6] - +0x0DFC | 90 1A 00 00 | UOffset32 | 0x00001A90 (6800) Loc: +0x288C | offset to table[7] - +0x0E00 | E8 11 00 00 | UOffset32 | 0x000011E8 (4584) Loc: +0x1FE8 | offset to table[8] - +0x0E04 | 80 1E 00 00 | UOffset32 | 0x00001E80 (7808) Loc: +0x2C84 | offset to table[9] - +0x0E08 | B4 1F 00 00 | UOffset32 | 0x00001FB4 (8116) Loc: +0x2DBC | offset to table[10] - +0x0E0C | 68 03 00 00 | UOffset32 | 0x00000368 (872) Loc: +0x1174 | offset to table[11] - +0x0E10 | 94 02 00 00 | UOffset32 | 0x00000294 (660) Loc: +0x10A4 | offset to table[12] - +0x0E14 | F0 1D 00 00 | UOffset32 | 0x00001DF0 (7664) Loc: +0x2C04 | offset to table[13] - +0x0E18 | A8 04 00 00 | UOffset32 | 0x000004A8 (1192) Loc: +0x12C0 | offset to table[14] - +0x0E1C | 30 04 00 00 | UOffset32 | 0x00000430 (1072) Loc: +0x124C | offset to table[15] - +0x0E20 | 0C 20 00 00 | UOffset32 | 0x0000200C (8204) Loc: +0x2E2C | offset to table[16] - +0x0E24 | 24 1F 00 00 | UOffset32 | 0x00001F24 (7972) Loc: +0x2D48 | offset to table[17] - +0x0E28 | C4 03 00 00 | UOffset32 | 0x000003C4 (964) Loc: +0x11EC | offset to table[18] - +0x0E2C | 00 05 00 00 | UOffset32 | 0x00000500 (1280) Loc: +0x132C | offset to table[19] - +0x0E30 | 9C 01 00 00 | UOffset32 | 0x0000019C (412) Loc: +0x0FCC | offset to table[20] - +0x0E34 | 28 01 00 00 | UOffset32 | 0x00000128 (296) Loc: +0x0F5C | offset to table[21] - +0x0E38 | F8 09 00 00 | UOffset32 | 0x000009F8 (2552) Loc: +0x1830 | offset to table[22] - +0x0E3C | 30 10 00 00 | UOffset32 | 0x00001030 (4144) Loc: +0x1E6C | offset to table[23] - +0x0E40 | 64 20 00 00 | UOffset32 | 0x00002064 (8292) Loc: +0x2EA4 | offset to table[24] - +0x0E44 | C8 02 00 00 | UOffset32 | 0x000002C8 (712) Loc: +0x110C | offset to table[25] - +0x0E48 | EC 01 00 00 | UOffset32 | 0x000001EC (492) Loc: +0x1034 | offset to table[26] - +0x0E4C | 6C 05 00 00 | UOffset32 | 0x0000056C (1388) Loc: +0x13B8 | offset to table[27] - +0x0E50 | 74 06 00 00 | UOffset32 | 0x00000674 (1652) Loc: +0x14C4 | offset to table[28] - +0x0E54 | C0 0E 00 00 | UOffset32 | 0x00000EC0 (3776) Loc: +0x1D14 | offset to table[29] - +0x0E58 | 48 1C 00 00 | UOffset32 | 0x00001C48 (7240) Loc: +0x2AA0 | offset to table[30] - +0x0E5C | DC 1B 00 00 | UOffset32 | 0x00001BDC (7132) Loc: +0x2A38 | offset to table[31] - +0x0E60 | 30 11 00 00 | UOffset32 | 0x00001130 (4400) Loc: +0x1F90 | offset to table[32] - +0x0E64 | AC 1C 00 00 | UOffset32 | 0x00001CAC (7340) Loc: +0x2B10 | offset to table[33] - +0x0E68 | DC 13 00 00 | UOffset32 | 0x000013DC (5084) Loc: +0x2244 | offset to table[34] - +0x0E6C | F8 11 00 00 | UOffset32 | 0x000011F8 (4600) Loc: +0x2064 | offset to table[35] - +0x0E70 | 68 1B 00 00 | UOffset32 | 0x00001B68 (7016) Loc: +0x29D8 | offset to table[36] - +0x0E74 | 58 12 00 00 | UOffset32 | 0x00001258 (4696) Loc: +0x20CC | offset to table[37] - +0x0E78 | 88 1A 00 00 | UOffset32 | 0x00001A88 (6792) Loc: +0x2900 | offset to table[38] - +0x0E7C | C4 18 00 00 | UOffset32 | 0x000018C4 (6340) Loc: +0x2740 | offset to table[39] - +0x0E80 | 18 19 00 00 | UOffset32 | 0x00001918 (6424) Loc: +0x2798 | offset to table[40] - +0x0E84 | 68 13 00 00 | UOffset32 | 0x00001368 (4968) Loc: +0x21EC | offset to table[41] - +0x0E88 | F4 12 00 00 | UOffset32 | 0x000012F4 (4852) Loc: +0x217C | offset to table[42] - +0x0E8C | A0 12 00 00 | UOffset32 | 0x000012A0 (4768) Loc: +0x212C | offset to table[43] - +0x0E90 | 2C 18 00 00 | UOffset32 | 0x0000182C (6188) Loc: +0x26BC | offset to table[44] - +0x0E94 | 0C 16 00 00 | UOffset32 | 0x0000160C (5644) Loc: +0x24A0 | offset to table[45] - +0x0E98 | 18 17 00 00 | UOffset32 | 0x00001718 (5912) Loc: +0x25B0 | offset to table[46] - +0x0E9C | 94 14 00 00 | UOffset32 | 0x00001494 (5268) Loc: +0x2330 | offset to table[47] - +0x0EA0 | 98 17 00 00 | UOffset32 | 0x00001798 (6040) Loc: +0x2638 | offset to table[48] - +0x0EA4 | 18 15 00 00 | UOffset32 | 0x00001518 (5400) Loc: +0x23BC | offset to table[49] - +0x0EA8 | 80 16 00 00 | UOffset32 | 0x00001680 (5760) Loc: +0x2528 | offset to table[50] - +0x0EAC | F8 13 00 00 | UOffset32 | 0x000013F8 (5112) Loc: +0x22A4 | offset to table[51] - +0x0EB0 | 44 19 00 00 | UOffset32 | 0x00001944 (6468) Loc: +0x27F4 | offset to table[52] - +0x0EB4 | 70 05 00 00 | UOffset32 | 0x00000570 (1392) Loc: +0x1424 | offset to table[53] - +0x0EB8 | 98 0A 00 00 | UOffset32 | 0x00000A98 (2712) Loc: +0x1950 | offset to table[54] - +0x0EBC | 18 10 00 00 | UOffset32 | 0x00001018 (4120) Loc: +0x1ED4 | offset to table[55] - +0x0EC0 | 68 06 00 00 | UOffset32 | 0x00000668 (1640) Loc: +0x1528 | offset to table[56] - +0x0EC4 | 70 10 00 00 | UOffset32 | 0x00001070 (4208) Loc: +0x1F34 | offset to table[57] - +0x0EC8 | 40 08 00 00 | UOffset32 | 0x00000840 (2112) Loc: +0x1708 | offset to table[58] - +0x0ECC | 38 0F 00 00 | UOffset32 | 0x00000F38 (3896) Loc: +0x1E04 | offset to table[59] - +0x0ED0 | A4 0C 00 00 | UOffset32 | 0x00000CA4 (3236) Loc: +0x1B74 | offset to table[60] - +0x0ED4 | 4C 0D 00 00 | UOffset32 | 0x00000D4C (3404) Loc: +0x1C20 | offset to table[61] + +0x0DDC | 3E 00 00 00 | uint32_t | 0x0000003E (62) | length of vector (# items) + +0x0DE0 | A8 07 00 00 | UOffset32 | 0x000007A8 (1960) Loc: 0x1588 | offset to table[0] + +0x0DE4 | 04 08 00 00 | UOffset32 | 0x00000804 (2052) Loc: 0x15E8 | offset to table[1] + +0x0DE8 | 64 08 00 00 | UOffset32 | 0x00000864 (2148) Loc: 0x164C | offset to table[2] + +0x0DEC | BC 08 00 00 | UOffset32 | 0x000008BC (2236) Loc: 0x16A8 | offset to table[3] + +0x0DF0 | 98 0C 00 00 | UOffset32 | 0x00000C98 (3224) Loc: 0x1A88 | offset to table[4] + +0x0DF4 | 90 1D 00 00 | UOffset32 | 0x00001D90 (7568) Loc: 0x2B84 | offset to table[5] + +0x0DF8 | FC 00 00 00 | UOffset32 | 0x000000FC (252) Loc: 0x0EF4 | offset to table[6] + +0x0DFC | 90 1A 00 00 | UOffset32 | 0x00001A90 (6800) Loc: 0x288C | offset to table[7] + +0x0E00 | E8 11 00 00 | UOffset32 | 0x000011E8 (4584) Loc: 0x1FE8 | offset to table[8] + +0x0E04 | 80 1E 00 00 | UOffset32 | 0x00001E80 (7808) Loc: 0x2C84 | offset to table[9] + +0x0E08 | B4 1F 00 00 | UOffset32 | 0x00001FB4 (8116) Loc: 0x2DBC | offset to table[10] + +0x0E0C | 68 03 00 00 | UOffset32 | 0x00000368 (872) Loc: 0x1174 | offset to table[11] + +0x0E10 | 94 02 00 00 | UOffset32 | 0x00000294 (660) Loc: 0x10A4 | offset to table[12] + +0x0E14 | F0 1D 00 00 | UOffset32 | 0x00001DF0 (7664) Loc: 0x2C04 | offset to table[13] + +0x0E18 | A8 04 00 00 | UOffset32 | 0x000004A8 (1192) Loc: 0x12C0 | offset to table[14] + +0x0E1C | 30 04 00 00 | UOffset32 | 0x00000430 (1072) Loc: 0x124C | offset to table[15] + +0x0E20 | 0C 20 00 00 | UOffset32 | 0x0000200C (8204) Loc: 0x2E2C | offset to table[16] + +0x0E24 | 24 1F 00 00 | UOffset32 | 0x00001F24 (7972) Loc: 0x2D48 | offset to table[17] + +0x0E28 | C4 03 00 00 | UOffset32 | 0x000003C4 (964) Loc: 0x11EC | offset to table[18] + +0x0E2C | 00 05 00 00 | UOffset32 | 0x00000500 (1280) Loc: 0x132C | offset to table[19] + +0x0E30 | 9C 01 00 00 | UOffset32 | 0x0000019C (412) Loc: 0x0FCC | offset to table[20] + +0x0E34 | 28 01 00 00 | UOffset32 | 0x00000128 (296) Loc: 0x0F5C | offset to table[21] + +0x0E38 | F8 09 00 00 | UOffset32 | 0x000009F8 (2552) Loc: 0x1830 | offset to table[22] + +0x0E3C | 30 10 00 00 | UOffset32 | 0x00001030 (4144) Loc: 0x1E6C | offset to table[23] + +0x0E40 | 64 20 00 00 | UOffset32 | 0x00002064 (8292) Loc: 0x2EA4 | offset to table[24] + +0x0E44 | C8 02 00 00 | UOffset32 | 0x000002C8 (712) Loc: 0x110C | offset to table[25] + +0x0E48 | EC 01 00 00 | UOffset32 | 0x000001EC (492) Loc: 0x1034 | offset to table[26] + +0x0E4C | 6C 05 00 00 | UOffset32 | 0x0000056C (1388) Loc: 0x13B8 | offset to table[27] + +0x0E50 | 74 06 00 00 | UOffset32 | 0x00000674 (1652) Loc: 0x14C4 | offset to table[28] + +0x0E54 | C0 0E 00 00 | UOffset32 | 0x00000EC0 (3776) Loc: 0x1D14 | offset to table[29] + +0x0E58 | 48 1C 00 00 | UOffset32 | 0x00001C48 (7240) Loc: 0x2AA0 | offset to table[30] + +0x0E5C | DC 1B 00 00 | UOffset32 | 0x00001BDC (7132) Loc: 0x2A38 | offset to table[31] + +0x0E60 | 30 11 00 00 | UOffset32 | 0x00001130 (4400) Loc: 0x1F90 | offset to table[32] + +0x0E64 | AC 1C 00 00 | UOffset32 | 0x00001CAC (7340) Loc: 0x2B10 | offset to table[33] + +0x0E68 | DC 13 00 00 | UOffset32 | 0x000013DC (5084) Loc: 0x2244 | offset to table[34] + +0x0E6C | F8 11 00 00 | UOffset32 | 0x000011F8 (4600) Loc: 0x2064 | offset to table[35] + +0x0E70 | 68 1B 00 00 | UOffset32 | 0x00001B68 (7016) Loc: 0x29D8 | offset to table[36] + +0x0E74 | 58 12 00 00 | UOffset32 | 0x00001258 (4696) Loc: 0x20CC | offset to table[37] + +0x0E78 | 88 1A 00 00 | UOffset32 | 0x00001A88 (6792) Loc: 0x2900 | offset to table[38] + +0x0E7C | C4 18 00 00 | UOffset32 | 0x000018C4 (6340) Loc: 0x2740 | offset to table[39] + +0x0E80 | 18 19 00 00 | UOffset32 | 0x00001918 (6424) Loc: 0x2798 | offset to table[40] + +0x0E84 | 68 13 00 00 | UOffset32 | 0x00001368 (4968) Loc: 0x21EC | offset to table[41] + +0x0E88 | F4 12 00 00 | UOffset32 | 0x000012F4 (4852) Loc: 0x217C | offset to table[42] + +0x0E8C | A0 12 00 00 | UOffset32 | 0x000012A0 (4768) Loc: 0x212C | offset to table[43] + +0x0E90 | 2C 18 00 00 | UOffset32 | 0x0000182C (6188) Loc: 0x26BC | offset to table[44] + +0x0E94 | 0C 16 00 00 | UOffset32 | 0x0000160C (5644) Loc: 0x24A0 | offset to table[45] + +0x0E98 | 18 17 00 00 | UOffset32 | 0x00001718 (5912) Loc: 0x25B0 | offset to table[46] + +0x0E9C | 94 14 00 00 | UOffset32 | 0x00001494 (5268) Loc: 0x2330 | offset to table[47] + +0x0EA0 | 98 17 00 00 | UOffset32 | 0x00001798 (6040) Loc: 0x2638 | offset to table[48] + +0x0EA4 | 18 15 00 00 | UOffset32 | 0x00001518 (5400) Loc: 0x23BC | offset to table[49] + +0x0EA8 | 80 16 00 00 | UOffset32 | 0x00001680 (5760) Loc: 0x2528 | offset to table[50] + +0x0EAC | F8 13 00 00 | UOffset32 | 0x000013F8 (5112) Loc: 0x22A4 | offset to table[51] + +0x0EB0 | 44 19 00 00 | UOffset32 | 0x00001944 (6468) Loc: 0x27F4 | offset to table[52] + +0x0EB4 | 70 05 00 00 | UOffset32 | 0x00000570 (1392) Loc: 0x1424 | offset to table[53] + +0x0EB8 | 98 0A 00 00 | UOffset32 | 0x00000A98 (2712) Loc: 0x1950 | offset to table[54] + +0x0EBC | 18 10 00 00 | UOffset32 | 0x00001018 (4120) Loc: 0x1ED4 | offset to table[55] + +0x0EC0 | 68 06 00 00 | UOffset32 | 0x00000668 (1640) Loc: 0x1528 | offset to table[56] + +0x0EC4 | 70 10 00 00 | UOffset32 | 0x00001070 (4208) Loc: 0x1F34 | offset to table[57] + +0x0EC8 | 40 08 00 00 | UOffset32 | 0x00000840 (2112) Loc: 0x1708 | offset to table[58] + +0x0ECC | 38 0F 00 00 | UOffset32 | 0x00000F38 (3896) Loc: 0x1E04 | offset to table[59] + +0x0ED0 | A4 0C 00 00 | UOffset32 | 0x00000CA4 (3236) Loc: 0x1B74 | offset to table[60] + +0x0ED4 | 4C 0D 00 00 | UOffset32 | 0x00000D4C (3404) Loc: 0x1C20 | offset to table[61] string (reflection.Object.name): - +0x0ED8 | 16 00 00 00 | uint32_t | 0x00000016 (22) | length of string - +0x0EDC | 4D 79 47 61 6D 65 2E 45 | char[22] | MyGame.E | string literal - +0x0EE4 | 78 61 6D 70 6C 65 2E 4D | | xample.M - +0x0EEC | 6F 6E 73 74 65 72 | | onster - +0x0EF2 | 00 | char | 0x00 (0) | string terminator + +0x0ED8 | 16 00 00 00 | uint32_t | 0x00000016 (22) | length of string + +0x0EDC | 4D 79 47 61 6D 65 2E 45 | char[22] | MyGame.E | string literal + +0x0EE4 | 78 61 6D 70 6C 65 2E 4D | | xample.M + +0x0EEC | 6F 6E 73 74 65 72 | | onster + +0x0EF2 | 00 | char | 0x00 (0) | string terminator table (reflection.Field): - +0x0EF4 | 20 ED FF FF | SOffset32 | 0xFFFFED20 (-4832) Loc: +0x21D4 | offset to vtable - +0x0EF8 | 3D 00 | uint16_t | 0x003D (61) | table field `id` (UShort) - +0x0EFA | 7E 00 | uint16_t | 0x007E (126) | table field `offset` (UShort) - +0x0EFC | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: +0x0F44 | offset to field `name` (string) - +0x0F00 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x0F34 | offset to field `type` (table) - +0x0F04 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x0F10 | offset to field `attributes` (vector) - +0x0F08 | 00 00 00 00 00 00 F0 7F | double | 0x7FF0000000000000 (inf) | table field `default_real` (Double) + +0x0EF4 | 20 ED FF FF | SOffset32 | 0xFFFFED20 (-4832) Loc: 0x21D4 | offset to vtable + +0x0EF8 | 3D 00 | uint16_t | 0x003D (61) | table field `id` (UShort) + +0x0EFA | 7E 00 | uint16_t | 0x007E (126) | table field `offset` (UShort) + +0x0EFC | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: 0x0F44 | offset to field `name` (string) + +0x0F00 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: 0x0F34 | offset to field `type` (table) + +0x0F04 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: 0x0F10 | offset to field `attributes` (vector) + +0x0F08 | 00 00 00 00 00 00 F0 7F | double | 0x7FF0000000000000 (inf) | table field `default_real` (Double) vector (reflection.Field.attributes): - +0x0F10 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x0F14 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x0F18 | offset to table[0] + +0x0F10 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x0F14 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x0F18 | offset to table[0] table (reflection.KeyValue): - +0x0F18 | 50 D6 FF FF | SOffset32 | 0xFFFFD650 (-10672) Loc: +0x38C8 | offset to vtable - +0x0F1C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x0F2C | offset to field `key` (string) - +0x0F20 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x0F24 | offset to field `value` (string) + +0x0F18 | 50 D6 FF FF | SOffset32 | 0xFFFFD650 (-10672) Loc: 0x38C8 | offset to vtable + +0x0F1C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x0F2C | offset to field `key` (string) + +0x0F20 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x0F24 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x0F24 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x0F28 | 36 31 | char[2] | 61 | string literal - +0x0F2A | 00 | char | 0x00 (0) | string terminator + +0x0F24 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x0F28 | 36 31 | char[2] | 61 | string literal + +0x0F2A | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x0F2C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x0F30 | 69 64 | char[2] | id | string literal - +0x0F32 | 00 | char | 0x00 (0) | string terminator + +0x0F2C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x0F30 | 69 64 | char[2] | id | string literal + +0x0F32 | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x0F34 | C0 D8 FF FF | SOffset32 | 0xFFFFD8C0 (-10048) Loc: +0x3674 | offset to vtable - +0x0F38 | 00 00 00 | uint8_t[3] | ... | padding - +0x0F3B | 0C | uint8_t | 0x0C (12) | table field `base_type` (Byte) - +0x0F3C | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt) - +0x0F40 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x0F34 | C0 D8 FF FF | SOffset32 | 0xFFFFD8C0 (-10048) Loc: 0x3674 | offset to vtable + +0x0F38 | 00 00 00 | uint8_t[3] | ... | padding + +0x0F3B | 0C | uint8_t | 0x0C (12) | table field `base_type` (Byte) + +0x0F3C | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt) + +0x0F40 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x0F44 | 12 00 00 00 | uint32_t | 0x00000012 (18) | length of string - +0x0F48 | 64 6F 75 62 6C 65 5F 69 | char[18] | double_i | string literal - +0x0F50 | 6E 66 5F 64 65 66 61 75 | | nf_defau - +0x0F58 | 6C 74 | | lt - +0x0F5A | 00 | char | 0x00 (0) | string terminator + +0x0F44 | 12 00 00 00 | uint32_t | 0x00000012 (18) | length of string + +0x0F48 | 64 6F 75 62 6C 65 5F 69 | char[18] | double_i | string literal + +0x0F50 | 6E 66 5F 64 65 66 61 75 | | nf_defau + +0x0F58 | 6C 74 | | lt + +0x0F5A | 00 | char | 0x00 (0) | string terminator table (reflection.Field): - +0x0F5C | 88 FD FF FF | SOffset32 | 0xFFFFFD88 (-632) Loc: +0x11D4 | offset to vtable - +0x0F60 | 3C 00 | uint16_t | 0x003C (60) | table field `id` (UShort) - +0x0F62 | 7C 00 | uint16_t | 0x007C (124) | table field `offset` (UShort) - +0x0F64 | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: +0x0FAC | offset to field `name` (string) - +0x0F68 | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: +0x0FA0 | offset to field `type` (table) - +0x0F6C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x0F7C | offset to field `attributes` (vector) - +0x0F70 | 00 00 00 00 00 00 F0 FF | double | 0xFFF0000000000000 (-inf) | table field `default_real` (Double) - +0x0F78 | 00 00 00 00 | uint8_t[4] | .... | padding + +0x0F5C | 88 FD FF FF | SOffset32 | 0xFFFFFD88 (-632) Loc: 0x11D4 | offset to vtable + +0x0F60 | 3C 00 | uint16_t | 0x003C (60) | table field `id` (UShort) + +0x0F62 | 7C 00 | uint16_t | 0x007C (124) | table field `offset` (UShort) + +0x0F64 | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: 0x0FAC | offset to field `name` (string) + +0x0F68 | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: 0x0FA0 | offset to field `type` (table) + +0x0F6C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x0F7C | offset to field `attributes` (vector) + +0x0F70 | 00 00 00 00 00 00 F0 FF | double | 0xFFF0000000000000 (-inf) | table field `default_real` (Double) + +0x0F78 | 00 00 00 00 | uint8_t[4] | .... | padding vector (reflection.Field.attributes): - +0x0F7C | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x0F80 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x0F84 | offset to table[0] + +0x0F7C | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x0F80 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x0F84 | offset to table[0] table (reflection.KeyValue): - +0x0F84 | BC D6 FF FF | SOffset32 | 0xFFFFD6BC (-10564) Loc: +0x38C8 | offset to vtable - +0x0F88 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x0F98 | offset to field `key` (string) - +0x0F8C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x0F90 | offset to field `value` (string) + +0x0F84 | BC D6 FF FF | SOffset32 | 0xFFFFD6BC (-10564) Loc: 0x38C8 | offset to vtable + +0x0F88 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x0F98 | offset to field `key` (string) + +0x0F8C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x0F90 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x0F90 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x0F94 | 36 30 | char[2] | 60 | string literal - +0x0F96 | 00 | char | 0x00 (0) | string terminator + +0x0F90 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x0F94 | 36 30 | char[2] | 60 | string literal + +0x0F96 | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x0F98 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x0F9C | 69 64 | char[2] | id | string literal - +0x0F9E | 00 | char | 0x00 (0) | string terminator + +0x0F98 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x0F9C | 69 64 | char[2] | id | string literal + +0x0F9E | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x0FA0 | C4 D6 FF FF | SOffset32 | 0xFFFFD6C4 (-10556) Loc: +0x38DC | offset to vtable - +0x0FA4 | 00 00 00 | uint8_t[3] | ... | padding - +0x0FA7 | 0B | uint8_t | 0x0B (11) | table field `base_type` (Byte) - +0x0FA8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x0FA0 | C4 D6 FF FF | SOffset32 | 0xFFFFD6C4 (-10556) Loc: 0x38DC | offset to vtable + +0x0FA4 | 00 00 00 | uint8_t[3] | ... | padding + +0x0FA7 | 0B | uint8_t | 0x0B (11) | table field `base_type` (Byte) + +0x0FA8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x0FAC | 19 00 00 00 | uint32_t | 0x00000019 (25) | length of string - +0x0FB0 | 6E 65 67 61 74 69 76 65 | char[25] | negative | string literal - +0x0FB8 | 5F 69 6E 66 69 6E 69 74 | | _infinit - +0x0FC0 | 79 5F 64 65 66 61 75 6C | | y_defaul - +0x0FC8 | 74 | | t - +0x0FC9 | 00 | char | 0x00 (0) | string terminator + +0x0FAC | 19 00 00 00 | uint32_t | 0x00000019 (25) | length of string + +0x0FB0 | 6E 65 67 61 74 69 76 65 | char[25] | negative | string literal + +0x0FB8 | 5F 69 6E 66 69 6E 69 74 | | _infinit + +0x0FC0 | 79 5F 64 65 66 61 75 6C | | y_defaul + +0x0FC8 | 74 | | t + +0x0FC9 | 00 | char | 0x00 (0) | string terminator padding: - +0x0FCA | 00 00 | uint8_t[2] | .. | padding + +0x0FCA | 00 00 | uint8_t[2] | .. | padding table (reflection.Field): - +0x0FCC | F8 ED FF FF | SOffset32 | 0xFFFFEDF8 (-4616) Loc: +0x21D4 | offset to vtable - +0x0FD0 | 3B 00 | uint16_t | 0x003B (59) | table field `id` (UShort) - +0x0FD2 | 7A 00 | uint16_t | 0x007A (122) | table field `offset` (UShort) - +0x0FD4 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x1018 | offset to field `name` (string) - +0x0FD8 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x100C | offset to field `type` (table) - +0x0FDC | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x0FE8 | offset to field `attributes` (vector) - +0x0FE0 | 00 00 00 00 00 00 F0 FF | double | 0xFFF0000000000000 (-inf) | table field `default_real` (Double) + +0x0FCC | F8 ED FF FF | SOffset32 | 0xFFFFEDF8 (-4616) Loc: 0x21D4 | offset to vtable + +0x0FD0 | 3B 00 | uint16_t | 0x003B (59) | table field `id` (UShort) + +0x0FD2 | 7A 00 | uint16_t | 0x007A (122) | table field `offset` (UShort) + +0x0FD4 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: 0x1018 | offset to field `name` (string) + +0x0FD8 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: 0x100C | offset to field `type` (table) + +0x0FDC | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: 0x0FE8 | offset to field `attributes` (vector) + +0x0FE0 | 00 00 00 00 00 00 F0 FF | double | 0xFFF0000000000000 (-inf) | table field `default_real` (Double) vector (reflection.Field.attributes): - +0x0FE8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x0FEC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x0FF0 | offset to table[0] + +0x0FE8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x0FEC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x0FF0 | offset to table[0] table (reflection.KeyValue): - +0x0FF0 | 28 D7 FF FF | SOffset32 | 0xFFFFD728 (-10456) Loc: +0x38C8 | offset to vtable - +0x0FF4 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1004 | offset to field `key` (string) - +0x0FF8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x0FFC | offset to field `value` (string) + +0x0FF0 | 28 D7 FF FF | SOffset32 | 0xFFFFD728 (-10456) Loc: 0x38C8 | offset to vtable + +0x0FF4 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x1004 | offset to field `key` (string) + +0x0FF8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x0FFC | offset to field `value` (string) string (reflection.KeyValue.value): - +0x0FFC | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x1000 | 35 39 | char[2] | 59 | string literal - +0x1002 | 00 | char | 0x00 (0) | string terminator + +0x0FFC | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1000 | 35 39 | char[2] | 59 | string literal + +0x1002 | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x1004 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x1008 | 69 64 | char[2] | id | string literal - +0x100A | 00 | char | 0x00 (0) | string terminator + +0x1004 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1008 | 69 64 | char[2] | id | string literal + +0x100A | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x100C | 30 D7 FF FF | SOffset32 | 0xFFFFD730 (-10448) Loc: +0x38DC | offset to vtable - +0x1010 | 00 00 00 | uint8_t[3] | ... | padding - +0x1013 | 0B | uint8_t | 0x0B (11) | table field `base_type` (Byte) - +0x1014 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x100C | 30 D7 FF FF | SOffset32 | 0xFFFFD730 (-10448) Loc: 0x38DC | offset to vtable + +0x1010 | 00 00 00 | uint8_t[3] | ... | padding + +0x1013 | 0B | uint8_t | 0x0B (11) | table field `base_type` (Byte) + +0x1014 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x1018 | 14 00 00 00 | uint32_t | 0x00000014 (20) | length of string - +0x101C | 6E 65 67 61 74 69 76 65 | char[20] | negative | string literal - +0x1024 | 5F 69 6E 66 5F 64 65 66 | | _inf_def - +0x102C | 61 75 6C 74 | | ault - +0x1030 | 00 | char | 0x00 (0) | string terminator + +0x1018 | 14 00 00 00 | uint32_t | 0x00000014 (20) | length of string + +0x101C | 6E 65 67 61 74 69 76 65 | char[20] | negative | string literal + +0x1024 | 5F 69 6E 66 5F 64 65 66 | | _inf_def + +0x102C | 61 75 6C 74 | | ault + +0x1030 | 00 | char | 0x00 (0) | string terminator padding: - +0x1031 | 00 00 00 | uint8_t[3] | ... | padding + +0x1031 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Field): - +0x1034 | 60 FE FF FF | SOffset32 | 0xFFFFFE60 (-416) Loc: +0x11D4 | offset to vtable - +0x1038 | 3A 00 | uint16_t | 0x003A (58) | table field `id` (UShort) - +0x103A | 78 00 | uint16_t | 0x0078 (120) | table field `offset` (UShort) - +0x103C | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: +0x1084 | offset to field `name` (string) - +0x1040 | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: +0x1078 | offset to field `type` (table) - +0x1044 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1054 | offset to field `attributes` (vector) - +0x1048 | 00 00 00 00 00 00 F0 7F | double | 0x7FF0000000000000 (inf) | table field `default_real` (Double) - +0x1050 | 00 00 00 00 | uint8_t[4] | .... | padding + +0x1034 | 60 FE FF FF | SOffset32 | 0xFFFFFE60 (-416) Loc: 0x11D4 | offset to vtable + +0x1038 | 3A 00 | uint16_t | 0x003A (58) | table field `id` (UShort) + +0x103A | 78 00 | uint16_t | 0x0078 (120) | table field `offset` (UShort) + +0x103C | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: 0x1084 | offset to field `name` (string) + +0x1040 | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: 0x1078 | offset to field `type` (table) + +0x1044 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x1054 | offset to field `attributes` (vector) + +0x1048 | 00 00 00 00 00 00 F0 7F | double | 0x7FF0000000000000 (inf) | table field `default_real` (Double) + +0x1050 | 00 00 00 00 | uint8_t[4] | .... | padding vector (reflection.Field.attributes): - +0x1054 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x1058 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x105C | offset to table[0] + +0x1054 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x1058 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x105C | offset to table[0] table (reflection.KeyValue): - +0x105C | 94 D7 FF FF | SOffset32 | 0xFFFFD794 (-10348) Loc: +0x38C8 | offset to vtable - +0x1060 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1070 | offset to field `key` (string) - +0x1064 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1068 | offset to field `value` (string) + +0x105C | 94 D7 FF FF | SOffset32 | 0xFFFFD794 (-10348) Loc: 0x38C8 | offset to vtable + +0x1060 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x1070 | offset to field `key` (string) + +0x1064 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1068 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1068 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x106C | 35 38 | char[2] | 58 | string literal - +0x106E | 00 | char | 0x00 (0) | string terminator + +0x1068 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x106C | 35 38 | char[2] | 58 | string literal + +0x106E | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x1070 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x1074 | 69 64 | char[2] | id | string literal - +0x1076 | 00 | char | 0x00 (0) | string terminator + +0x1070 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1074 | 69 64 | char[2] | id | string literal + +0x1076 | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x1078 | 9C D7 FF FF | SOffset32 | 0xFFFFD79C (-10340) Loc: +0x38DC | offset to vtable - +0x107C | 00 00 00 | uint8_t[3] | ... | padding - +0x107F | 0B | uint8_t | 0x0B (11) | table field `base_type` (Byte) - +0x1080 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x1078 | 9C D7 FF FF | SOffset32 | 0xFFFFD79C (-10340) Loc: 0x38DC | offset to vtable + +0x107C | 00 00 00 | uint8_t[3] | ... | padding + +0x107F | 0B | uint8_t | 0x0B (11) | table field `base_type` (Byte) + +0x1080 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x1084 | 19 00 00 00 | uint32_t | 0x00000019 (25) | length of string - +0x1088 | 70 6F 73 69 74 69 76 65 | char[25] | positive | string literal - +0x1090 | 5F 69 6E 66 69 6E 69 74 | | _infinit - +0x1098 | 79 5F 64 65 66 61 75 6C | | y_defaul - +0x10A0 | 74 | | t - +0x10A1 | 00 | char | 0x00 (0) | string terminator + +0x1084 | 19 00 00 00 | uint32_t | 0x00000019 (25) | length of string + +0x1088 | 70 6F 73 69 74 69 76 65 | char[25] | positive | string literal + +0x1090 | 5F 69 6E 66 69 6E 69 74 | | _infinit + +0x1098 | 79 5F 64 65 66 61 75 6C | | y_defaul + +0x10A0 | 74 | | t + +0x10A1 | 00 | char | 0x00 (0) | string terminator padding: - +0x10A2 | 00 00 | uint8_t[2] | .. | padding + +0x10A2 | 00 00 | uint8_t[2] | .. | padding table (reflection.Field): - +0x10A4 | D0 FE FF FF | SOffset32 | 0xFFFFFED0 (-304) Loc: +0x11D4 | offset to vtable - +0x10A8 | 39 00 | uint16_t | 0x0039 (57) | table field `id` (UShort) - +0x10AA | 76 00 | uint16_t | 0x0076 (118) | table field `offset` (UShort) - +0x10AC | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: +0x10F4 | offset to field `name` (string) - +0x10B0 | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: +0x10E8 | offset to field `type` (table) - +0x10B4 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x10C4 | offset to field `attributes` (vector) - +0x10B8 | 00 00 00 00 00 00 F0 7F | double | 0x7FF0000000000000 (inf) | table field `default_real` (Double) - +0x10C0 | 00 00 00 00 | uint8_t[4] | .... | padding + +0x10A4 | D0 FE FF FF | SOffset32 | 0xFFFFFED0 (-304) Loc: 0x11D4 | offset to vtable + +0x10A8 | 39 00 | uint16_t | 0x0039 (57) | table field `id` (UShort) + +0x10AA | 76 00 | uint16_t | 0x0076 (118) | table field `offset` (UShort) + +0x10AC | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: 0x10F4 | offset to field `name` (string) + +0x10B0 | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: 0x10E8 | offset to field `type` (table) + +0x10B4 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x10C4 | offset to field `attributes` (vector) + +0x10B8 | 00 00 00 00 00 00 F0 7F | double | 0x7FF0000000000000 (inf) | table field `default_real` (Double) + +0x10C0 | 00 00 00 00 | uint8_t[4] | .... | padding vector (reflection.Field.attributes): - +0x10C4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x10C8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x10CC | offset to table[0] + +0x10C4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x10C8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x10CC | offset to table[0] table (reflection.KeyValue): - +0x10CC | 04 D8 FF FF | SOffset32 | 0xFFFFD804 (-10236) Loc: +0x38C8 | offset to vtable - +0x10D0 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x10E0 | offset to field `key` (string) - +0x10D4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x10D8 | offset to field `value` (string) + +0x10CC | 04 D8 FF FF | SOffset32 | 0xFFFFD804 (-10236) Loc: 0x38C8 | offset to vtable + +0x10D0 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x10E0 | offset to field `key` (string) + +0x10D4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x10D8 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x10D8 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x10DC | 35 37 | char[2] | 57 | string literal - +0x10DE | 00 | char | 0x00 (0) | string terminator + +0x10D8 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x10DC | 35 37 | char[2] | 57 | string literal + +0x10DE | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x10E0 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x10E4 | 69 64 | char[2] | id | string literal - +0x10E6 | 00 | char | 0x00 (0) | string terminator + +0x10E0 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x10E4 | 69 64 | char[2] | id | string literal + +0x10E6 | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x10E8 | 0C D8 FF FF | SOffset32 | 0xFFFFD80C (-10228) Loc: +0x38DC | offset to vtable - +0x10EC | 00 00 00 | uint8_t[3] | ... | padding - +0x10EF | 0B | uint8_t | 0x0B (11) | table field `base_type` (Byte) - +0x10F0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x10E8 | 0C D8 FF FF | SOffset32 | 0xFFFFD80C (-10228) Loc: 0x38DC | offset to vtable + +0x10EC | 00 00 00 | uint8_t[3] | ... | padding + +0x10EF | 0B | uint8_t | 0x0B (11) | table field `base_type` (Byte) + +0x10F0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x10F4 | 10 00 00 00 | uint32_t | 0x00000010 (16) | length of string - +0x10F8 | 69 6E 66 69 6E 69 74 79 | char[16] | infinity | string literal - +0x1100 | 5F 64 65 66 61 75 6C 74 | | _default - +0x1108 | 00 | char | 0x00 (0) | string terminator + +0x10F4 | 10 00 00 00 | uint32_t | 0x00000010 (16) | length of string + +0x10F8 | 69 6E 66 69 6E 69 74 79 | char[16] | infinity | string literal + +0x1100 | 5F 64 65 66 61 75 6C 74 | | _default + +0x1108 | 00 | char | 0x00 (0) | string terminator padding: - +0x1109 | 00 00 00 | uint8_t[3] | ... | padding + +0x1109 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Field): - +0x110C | 38 EF FF FF | SOffset32 | 0xFFFFEF38 (-4296) Loc: +0x21D4 | offset to vtable - +0x1110 | 38 00 | uint16_t | 0x0038 (56) | table field `id` (UShort) - +0x1112 | 74 00 | uint16_t | 0x0074 (116) | table field `offset` (UShort) - +0x1114 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x1158 | offset to field `name` (string) - +0x1118 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x114C | offset to field `type` (table) - +0x111C | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x1128 | offset to field `attributes` (vector) - +0x1120 | 00 00 00 00 00 00 F0 7F | double | 0x7FF0000000000000 (inf) | table field `default_real` (Double) + +0x110C | 38 EF FF FF | SOffset32 | 0xFFFFEF38 (-4296) Loc: 0x21D4 | offset to vtable + +0x1110 | 38 00 | uint16_t | 0x0038 (56) | table field `id` (UShort) + +0x1112 | 74 00 | uint16_t | 0x0074 (116) | table field `offset` (UShort) + +0x1114 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: 0x1158 | offset to field `name` (string) + +0x1118 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: 0x114C | offset to field `type` (table) + +0x111C | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: 0x1128 | offset to field `attributes` (vector) + +0x1120 | 00 00 00 00 00 00 F0 7F | double | 0x7FF0000000000000 (inf) | table field `default_real` (Double) vector (reflection.Field.attributes): - +0x1128 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x112C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1130 | offset to table[0] + +0x1128 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x112C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1130 | offset to table[0] table (reflection.KeyValue): - +0x1130 | 68 D8 FF FF | SOffset32 | 0xFFFFD868 (-10136) Loc: +0x38C8 | offset to vtable - +0x1134 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1144 | offset to field `key` (string) - +0x1138 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x113C | offset to field `value` (string) + +0x1130 | 68 D8 FF FF | SOffset32 | 0xFFFFD868 (-10136) Loc: 0x38C8 | offset to vtable + +0x1134 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x1144 | offset to field `key` (string) + +0x1138 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x113C | offset to field `value` (string) string (reflection.KeyValue.value): - +0x113C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x1140 | 35 36 | char[2] | 56 | string literal - +0x1142 | 00 | char | 0x00 (0) | string terminator + +0x113C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1140 | 35 36 | char[2] | 56 | string literal + +0x1142 | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x1144 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x1148 | 69 64 | char[2] | id | string literal - +0x114A | 00 | char | 0x00 (0) | string terminator + +0x1144 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1148 | 69 64 | char[2] | id | string literal + +0x114A | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x114C | 70 D8 FF FF | SOffset32 | 0xFFFFD870 (-10128) Loc: +0x38DC | offset to vtable - +0x1150 | 00 00 00 | uint8_t[3] | ... | padding - +0x1153 | 0B | uint8_t | 0x0B (11) | table field `base_type` (Byte) - +0x1154 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x114C | 70 D8 FF FF | SOffset32 | 0xFFFFD870 (-10128) Loc: 0x38DC | offset to vtable + +0x1150 | 00 00 00 | uint8_t[3] | ... | padding + +0x1153 | 0B | uint8_t | 0x0B (11) | table field `base_type` (Byte) + +0x1154 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x1158 | 14 00 00 00 | uint32_t | 0x00000014 (20) | length of string - +0x115C | 70 6F 73 69 74 69 76 65 | char[20] | positive | string literal - +0x1164 | 5F 69 6E 66 5F 64 65 66 | | _inf_def - +0x116C | 61 75 6C 74 | | ault - +0x1170 | 00 | char | 0x00 (0) | string terminator + +0x1158 | 14 00 00 00 | uint32_t | 0x00000014 (20) | length of string + +0x115C | 70 6F 73 69 74 69 76 65 | char[20] | positive | string literal + +0x1164 | 5F 69 6E 66 5F 64 65 66 | | _inf_def + +0x116C | 61 75 6C 74 | | ault + +0x1170 | 00 | char | 0x00 (0) | string terminator padding: - +0x1171 | 00 00 00 | uint8_t[3] | ... | padding + +0x1171 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Field): - +0x1174 | A0 FF FF FF | SOffset32 | 0xFFFFFFA0 (-96) Loc: +0x11D4 | offset to vtable - +0x1178 | 37 00 | uint16_t | 0x0037 (55) | table field `id` (UShort) - +0x117A | 72 00 | uint16_t | 0x0072 (114) | table field `offset` (UShort) - +0x117C | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: +0x11C4 | offset to field `name` (string) - +0x1180 | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: +0x11B8 | offset to field `type` (table) - +0x1184 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1194 | offset to field `attributes` (vector) - +0x1188 | 00 00 00 00 00 00 F0 7F | double | 0x7FF0000000000000 (inf) | table field `default_real` (Double) - +0x1190 | 00 00 00 00 | uint8_t[4] | .... | padding + +0x1174 | A0 FF FF FF | SOffset32 | 0xFFFFFFA0 (-96) Loc: 0x11D4 | offset to vtable + +0x1178 | 37 00 | uint16_t | 0x0037 (55) | table field `id` (UShort) + +0x117A | 72 00 | uint16_t | 0x0072 (114) | table field `offset` (UShort) + +0x117C | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: 0x11C4 | offset to field `name` (string) + +0x1180 | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: 0x11B8 | offset to field `type` (table) + +0x1184 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x1194 | offset to field `attributes` (vector) + +0x1188 | 00 00 00 00 00 00 F0 7F | double | 0x7FF0000000000000 (inf) | table field `default_real` (Double) + +0x1190 | 00 00 00 00 | uint8_t[4] | .... | padding vector (reflection.Field.attributes): - +0x1194 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x1198 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x119C | offset to table[0] + +0x1194 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x1198 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x119C | offset to table[0] table (reflection.KeyValue): - +0x119C | D4 D8 FF FF | SOffset32 | 0xFFFFD8D4 (-10028) Loc: +0x38C8 | offset to vtable - +0x11A0 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x11B0 | offset to field `key` (string) - +0x11A4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x11A8 | offset to field `value` (string) + +0x119C | D4 D8 FF FF | SOffset32 | 0xFFFFD8D4 (-10028) Loc: 0x38C8 | offset to vtable + +0x11A0 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x11B0 | offset to field `key` (string) + +0x11A4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x11A8 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x11A8 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x11AC | 35 35 | char[2] | 55 | string literal - +0x11AE | 00 | char | 0x00 (0) | string terminator + +0x11A8 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x11AC | 35 35 | char[2] | 55 | string literal + +0x11AE | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x11B0 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x11B4 | 69 64 | char[2] | id | string literal - +0x11B6 | 00 | char | 0x00 (0) | string terminator + +0x11B0 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x11B4 | 69 64 | char[2] | id | string literal + +0x11B6 | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x11B8 | DC D8 FF FF | SOffset32 | 0xFFFFD8DC (-10020) Loc: +0x38DC | offset to vtable - +0x11BC | 00 00 00 | uint8_t[3] | ... | padding - +0x11BF | 0B | uint8_t | 0x0B (11) | table field `base_type` (Byte) - +0x11C0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x11B8 | DC D8 FF FF | SOffset32 | 0xFFFFD8DC (-10020) Loc: 0x38DC | offset to vtable + +0x11BC | 00 00 00 | uint8_t[3] | ... | padding + +0x11BF | 0B | uint8_t | 0x0B (11) | table field `base_type` (Byte) + +0x11C0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x11C4 | 0B 00 00 00 | uint32_t | 0x0000000B (11) | length of string - +0x11C8 | 69 6E 66 5F 64 65 66 61 | char[11] | inf_defa | string literal - +0x11D0 | 75 6C 74 | | ult - +0x11D3 | 00 | char | 0x00 (0) | string terminator + +0x11C4 | 0B 00 00 00 | uint32_t | 0x0000000B (11) | length of string + +0x11C8 | 69 6E 66 5F 64 65 66 61 | char[11] | inf_defa | string literal + +0x11D0 | 75 6C 74 | | ult + +0x11D3 | 00 | char | 0x00 (0) | string terminator vtable (reflection.Field): - +0x11D4 | 18 00 | uint16_t | 0x0018 (24) | size of this vtable - +0x11D6 | 20 00 | uint16_t | 0x0020 (32) | size of referring table - +0x11D8 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0) - +0x11DA | 0C 00 | VOffset16 | 0x000C (12) | offset to field `type` (id: 1) - +0x11DC | 04 00 | VOffset16 | 0x0004 (4) | offset to field `id` (id: 2) - +0x11DE | 06 00 | VOffset16 | 0x0006 (6) | offset to field `offset` (id: 3) - +0x11E0 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) (Long) - +0x11E2 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `default_real` (id: 5) - +0x11E4 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) - +0x11E6 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) (Bool) - +0x11E8 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 8) (Bool) - +0x11EA | 10 00 | VOffset16 | 0x0010 (16) | offset to field `attributes` (id: 9) + +0x11D4 | 18 00 | uint16_t | 0x0018 (24) | size of this vtable + +0x11D6 | 20 00 | uint16_t | 0x0020 (32) | size of referring table + +0x11D8 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0) + +0x11DA | 0C 00 | VOffset16 | 0x000C (12) | offset to field `type` (id: 1) + +0x11DC | 04 00 | VOffset16 | 0x0004 (4) | offset to field `id` (id: 2) + +0x11DE | 06 00 | VOffset16 | 0x0006 (6) | offset to field `offset` (id: 3) + +0x11E0 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) (Long) + +0x11E2 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `default_real` (id: 5) + +0x11E4 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) + +0x11E6 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) (Bool) + +0x11E8 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 8) (Bool) + +0x11EA | 10 00 | VOffset16 | 0x0010 (16) | offset to field `attributes` (id: 9) table (reflection.Field): - +0x11EC | 18 00 00 00 | SOffset32 | 0x00000018 (24) Loc: +0x11D4 | offset to vtable - +0x11F0 | 36 00 | uint16_t | 0x0036 (54) | table field `id` (UShort) - +0x11F2 | 70 00 | uint16_t | 0x0070 (112) | table field `offset` (UShort) - +0x11F4 | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: +0x123C | offset to field `name` (string) - +0x11F8 | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: +0x1230 | offset to field `type` (table) - +0x11FC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x120C | offset to field `attributes` (vector) - +0x1200 | 00 00 00 00 00 00 F8 7F | double | 0x7FF8000000000000 (nan) | table field `default_real` (Double) - +0x1208 | 00 00 00 00 | uint8_t[4] | .... | padding + +0x11EC | 18 00 00 00 | SOffset32 | 0x00000018 (24) Loc: 0x11D4 | offset to vtable + +0x11F0 | 36 00 | uint16_t | 0x0036 (54) | table field `id` (UShort) + +0x11F2 | 70 00 | uint16_t | 0x0070 (112) | table field `offset` (UShort) + +0x11F4 | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: 0x123C | offset to field `name` (string) + +0x11F8 | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: 0x1230 | offset to field `type` (table) + +0x11FC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x120C | offset to field `attributes` (vector) + +0x1200 | 00 00 00 00 00 00 F8 7F | double | 0x7FF8000000000000 (nan) | table field `default_real` (Double) + +0x1208 | 00 00 00 00 | uint8_t[4] | .... | padding vector (reflection.Field.attributes): - +0x120C | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x1210 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1214 | offset to table[0] + +0x120C | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x1210 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1214 | offset to table[0] table (reflection.KeyValue): - +0x1214 | 4C D9 FF FF | SOffset32 | 0xFFFFD94C (-9908) Loc: +0x38C8 | offset to vtable - +0x1218 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1228 | offset to field `key` (string) - +0x121C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1220 | offset to field `value` (string) + +0x1214 | 4C D9 FF FF | SOffset32 | 0xFFFFD94C (-9908) Loc: 0x38C8 | offset to vtable + +0x1218 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x1228 | offset to field `key` (string) + +0x121C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1220 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1220 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x1224 | 35 34 | char[2] | 54 | string literal - +0x1226 | 00 | char | 0x00 (0) | string terminator + +0x1220 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1224 | 35 34 | char[2] | 54 | string literal + +0x1226 | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x1228 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x122C | 69 64 | char[2] | id | string literal - +0x122E | 00 | char | 0x00 (0) | string terminator + +0x1228 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x122C | 69 64 | char[2] | id | string literal + +0x122E | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x1230 | 54 D9 FF FF | SOffset32 | 0xFFFFD954 (-9900) Loc: +0x38DC | offset to vtable - +0x1234 | 00 00 00 | uint8_t[3] | ... | padding - +0x1237 | 0B | uint8_t | 0x0B (11) | table field `base_type` (Byte) - +0x1238 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x1230 | 54 D9 FF FF | SOffset32 | 0xFFFFD954 (-9900) Loc: 0x38DC | offset to vtable + +0x1234 | 00 00 00 | uint8_t[3] | ... | padding + +0x1237 | 0B | uint8_t | 0x0B (11) | table field `base_type` (Byte) + +0x1238 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x123C | 0B 00 00 00 | uint32_t | 0x0000000B (11) | length of string - +0x1240 | 6E 61 6E 5F 64 65 66 61 | char[11] | nan_defa | string literal - +0x1248 | 75 6C 74 | | ult - +0x124B | 00 | char | 0x00 (0) | string terminator + +0x123C | 0B 00 00 00 | uint32_t | 0x0000000B (11) | length of string + +0x1240 | 6E 61 6E 5F 64 65 66 61 | char[11] | nan_defa | string literal + +0x1248 | 75 6C 74 | | ult + +0x124B | 00 | char | 0x00 (0) | string terminator table (reflection.Field): - +0x124C | 38 E4 FF FF | SOffset32 | 0xFFFFE438 (-7112) Loc: +0x2E14 | offset to vtable - +0x1250 | 35 00 | uint16_t | 0x0035 (53) | table field `id` (UShort) - +0x1252 | 6E 00 | uint16_t | 0x006E (110) | table field `offset` (UShort) - +0x1254 | 4C 00 00 00 | UOffset32 | 0x0000004C (76) Loc: +0x12A0 | offset to field `name` (string) - +0x1258 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x128C | offset to field `type` (table) - +0x125C | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x1268 | offset to field `attributes` (vector) - +0x1260 | 02 00 00 00 00 00 00 00 | int64_t | 0x0000000000000002 (2) | table field `default_integer` (Long) + +0x124C | 38 E4 FF FF | SOffset32 | 0xFFFFE438 (-7112) Loc: 0x2E14 | offset to vtable + +0x1250 | 35 00 | uint16_t | 0x0035 (53) | table field `id` (UShort) + +0x1252 | 6E 00 | uint16_t | 0x006E (110) | table field `offset` (UShort) + +0x1254 | 4C 00 00 00 | UOffset32 | 0x0000004C (76) Loc: 0x12A0 | offset to field `name` (string) + +0x1258 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: 0x128C | offset to field `type` (table) + +0x125C | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: 0x1268 | offset to field `attributes` (vector) + +0x1260 | 02 00 00 00 00 00 00 00 | int64_t | 0x0000000000000002 (2) | table field `default_integer` (Long) vector (reflection.Field.attributes): - +0x1268 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x126C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1270 | offset to table[0] + +0x1268 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x126C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1270 | offset to table[0] table (reflection.KeyValue): - +0x1270 | A8 D9 FF FF | SOffset32 | 0xFFFFD9A8 (-9816) Loc: +0x38C8 | offset to vtable - +0x1274 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1284 | offset to field `key` (string) - +0x1278 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x127C | offset to field `value` (string) + +0x1270 | A8 D9 FF FF | SOffset32 | 0xFFFFD9A8 (-9816) Loc: 0x38C8 | offset to vtable + +0x1274 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x1284 | offset to field `key` (string) + +0x1278 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x127C | offset to field `value` (string) string (reflection.KeyValue.value): - +0x127C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x1280 | 35 33 | char[2] | 53 | string literal - +0x1282 | 00 | char | 0x00 (0) | string terminator + +0x127C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1280 | 35 33 | char[2] | 53 | string literal + +0x1282 | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x1284 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x1288 | 69 64 | char[2] | id | string literal - +0x128A | 00 | char | 0x00 (0) | string terminator + +0x1284 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1288 | 69 64 | char[2] | id | string literal + +0x128A | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x128C | E0 DC FF FF | SOffset32 | 0xFFFFDCE0 (-8992) Loc: +0x35AC | offset to vtable - +0x1290 | 00 00 00 | uint8_t[3] | ... | padding - +0x1293 | 0A | uint8_t | 0x0A (10) | table field `base_type` (Byte) - +0x1294 | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `index` (Int) - +0x1298 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt) - +0x129C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x128C | E0 DC FF FF | SOffset32 | 0xFFFFDCE0 (-8992) Loc: 0x35AC | offset to vtable + +0x1290 | 00 00 00 | uint8_t[3] | ... | padding + +0x1293 | 0A | uint8_t | 0x0A (10) | table field `base_type` (Byte) + +0x1294 | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `index` (Int) + +0x1298 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt) + +0x129C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x12A0 | 18 00 00 00 | uint32_t | 0x00000018 (24) | length of string - +0x12A4 | 6C 6F 6E 67 5F 65 6E 75 | char[24] | long_enu | string literal - +0x12AC | 6D 5F 6E 6F 72 6D 61 6C | | m_normal - +0x12B4 | 5F 64 65 66 61 75 6C 74 | | _default - +0x12BC | 00 | char | 0x00 (0) | string terminator + +0x12A0 | 18 00 00 00 | uint32_t | 0x00000018 (24) | length of string + +0x12A4 | 6C 6F 6E 67 5F 65 6E 75 | char[24] | long_enu | string literal + +0x12AC | 6D 5F 6E 6F 72 6D 61 6C | | m_normal + +0x12B4 | 5F 64 65 66 61 75 6C 74 | | _default + +0x12BC | 00 | char | 0x00 (0) | string terminator padding: - +0x12BD | 00 00 00 | uint8_t[3] | ... | padding + +0x12BD | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Field): - +0x12C0 | C8 E7 FF FF | SOffset32 | 0xFFFFE7C8 (-6200) Loc: +0x2AF8 | offset to vtable - +0x12C4 | 34 00 | uint16_t | 0x0034 (52) | table field `id` (UShort) - +0x12C6 | 6C 00 | uint16_t | 0x006C (108) | table field `offset` (UShort) - +0x12C8 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x130C | offset to field `name` (string) - +0x12CC | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: +0x12F8 | offset to field `type` (table) - +0x12D0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x12D4 | offset to field `attributes` (vector) + +0x12C0 | C8 E7 FF FF | SOffset32 | 0xFFFFE7C8 (-6200) Loc: 0x2AF8 | offset to vtable + +0x12C4 | 34 00 | uint16_t | 0x0034 (52) | table field `id` (UShort) + +0x12C6 | 6C 00 | uint16_t | 0x006C (108) | table field `offset` (UShort) + +0x12C8 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: 0x130C | offset to field `name` (string) + +0x12CC | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: 0x12F8 | offset to field `type` (table) + +0x12D0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x12D4 | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x12D4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x12D8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x12DC | offset to table[0] + +0x12D4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x12D8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x12DC | offset to table[0] table (reflection.KeyValue): - +0x12DC | 14 DA FF FF | SOffset32 | 0xFFFFDA14 (-9708) Loc: +0x38C8 | offset to vtable - +0x12E0 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x12F0 | offset to field `key` (string) - +0x12E4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x12E8 | offset to field `value` (string) + +0x12DC | 14 DA FF FF | SOffset32 | 0xFFFFDA14 (-9708) Loc: 0x38C8 | offset to vtable + +0x12E0 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x12F0 | offset to field `key` (string) + +0x12E4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x12E8 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x12E8 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x12EC | 35 32 | char[2] | 52 | string literal - +0x12EE | 00 | char | 0x00 (0) | string terminator + +0x12E8 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x12EC | 35 32 | char[2] | 52 | string literal + +0x12EE | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x12F0 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x12F4 | 69 64 | char[2] | id | string literal - +0x12F6 | 00 | char | 0x00 (0) | string terminator + +0x12F0 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x12F4 | 69 64 | char[2] | id | string literal + +0x12F6 | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x12F8 | 4C DD FF FF | SOffset32 | 0xFFFFDD4C (-8884) Loc: +0x35AC | offset to vtable - +0x12FC | 00 00 00 | uint8_t[3] | ... | padding - +0x12FF | 0A | uint8_t | 0x0A (10) | table field `base_type` (Byte) - +0x1300 | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `index` (Int) - +0x1304 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt) - +0x1308 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x12F8 | 4C DD FF FF | SOffset32 | 0xFFFFDD4C (-8884) Loc: 0x35AC | offset to vtable + +0x12FC | 00 00 00 | uint8_t[3] | ... | padding + +0x12FF | 0A | uint8_t | 0x0A (10) | table field `base_type` (Byte) + +0x1300 | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `index` (Int) + +0x1304 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt) + +0x1308 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x130C | 1A 00 00 00 | uint32_t | 0x0000001A (26) | length of string - +0x1310 | 6C 6F 6E 67 5F 65 6E 75 | char[26] | long_enu | string literal - +0x1318 | 6D 5F 6E 6F 6E 5F 65 6E | | m_non_en - +0x1320 | 75 6D 5F 64 65 66 61 75 | | um_defau - +0x1328 | 6C 74 | | lt - +0x132A | 00 | char | 0x00 (0) | string terminator + +0x130C | 1A 00 00 00 | uint32_t | 0x0000001A (26) | length of string + +0x1310 | 6C 6F 6E 67 5F 65 6E 75 | char[26] | long_enu | string literal + +0x1318 | 6D 5F 6E 6F 6E 5F 65 6E | | m_non_en + +0x1320 | 75 6D 5F 64 65 66 61 75 | | um_defau + +0x1328 | 6C 74 | | lt + +0x132A | 00 | char | 0x00 (0) | string terminator table (reflection.Field): - +0x132C | 44 E7 FF FF | SOffset32 | 0xFFFFE744 (-6332) Loc: +0x2BE8 | offset to vtable - +0x1330 | 00 00 00 | uint8_t[3] | ... | padding - +0x1333 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x1334 | 33 00 | uint16_t | 0x0033 (51) | table field `id` (UShort) - +0x1336 | 6A 00 | uint16_t | 0x006A (106) | table field `offset` (UShort) - +0x1338 | 6C 00 00 00 | UOffset32 | 0x0000006C (108) Loc: +0x13A4 | offset to field `name` (string) - +0x133C | 58 00 00 00 | UOffset32 | 0x00000058 (88) Loc: +0x1394 | offset to field `type` (table) - +0x1340 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1344 | offset to field `attributes` (vector) + +0x132C | 44 E7 FF FF | SOffset32 | 0xFFFFE744 (-6332) Loc: 0x2BE8 | offset to vtable + +0x1330 | 00 00 00 | uint8_t[3] | ... | padding + +0x1333 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x1334 | 33 00 | uint16_t | 0x0033 (51) | table field `id` (UShort) + +0x1336 | 6A 00 | uint16_t | 0x006A (106) | table field `offset` (UShort) + +0x1338 | 6C 00 00 00 | UOffset32 | 0x0000006C (108) Loc: 0x13A4 | offset to field `name` (string) + +0x133C | 58 00 00 00 | UOffset32 | 0x00000058 (88) Loc: 0x1394 | offset to field `type` (table) + +0x1340 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1344 | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x1344 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) - +0x1348 | 30 00 00 00 | UOffset32 | 0x00000030 (48) Loc: +0x1378 | offset to table[0] - +0x134C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1350 | offset to table[1] + +0x1344 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) + +0x1348 | 30 00 00 00 | UOffset32 | 0x00000030 (48) Loc: 0x1378 | offset to table[0] + +0x134C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1350 | offset to table[1] table (reflection.KeyValue): - +0x1350 | 88 DA FF FF | SOffset32 | 0xFFFFDA88 (-9592) Loc: +0x38C8 | offset to vtable - +0x1354 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1364 | offset to field `key` (string) - +0x1358 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x135C | offset to field `value` (string) + +0x1350 | 88 DA FF FF | SOffset32 | 0xFFFFDA88 (-9592) Loc: 0x38C8 | offset to vtable + +0x1354 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x1364 | offset to field `key` (string) + +0x1358 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x135C | offset to field `value` (string) string (reflection.KeyValue.value): - +0x135C | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x1360 | 30 | char[1] | 0 | string literal - +0x1361 | 00 | char | 0x00 (0) | string terminator + +0x135C | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x1360 | 30 | char[1] | 0 | string literal + +0x1361 | 00 | char | 0x00 (0) | string terminator padding: - +0x1362 | 00 00 | uint8_t[2] | .. | padding + +0x1362 | 00 00 | uint8_t[2] | .. | padding string (reflection.KeyValue.key): - +0x1364 | 0D 00 00 00 | uint32_t | 0x0000000D (13) | length of string - +0x1368 | 6E 61 74 69 76 65 5F 69 | char[13] | native_i | string literal - +0x1370 | 6E 6C 69 6E 65 | | nline - +0x1375 | 00 | char | 0x00 (0) | string terminator + +0x1364 | 0D 00 00 00 | uint32_t | 0x0000000D (13) | length of string + +0x1368 | 6E 61 74 69 76 65 5F 69 | char[13] | native_i | string literal + +0x1370 | 6E 6C 69 6E 65 | | nline + +0x1375 | 00 | char | 0x00 (0) | string terminator padding: - +0x1376 | 00 00 | uint8_t[2] | .. | padding + +0x1376 | 00 00 | uint8_t[2] | .. | padding table (reflection.KeyValue): - +0x1378 | B0 DA FF FF | SOffset32 | 0xFFFFDAB0 (-9552) Loc: +0x38C8 | offset to vtable - +0x137C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x138C | offset to field `key` (string) - +0x1380 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1384 | offset to field `value` (string) + +0x1378 | B0 DA FF FF | SOffset32 | 0xFFFFDAB0 (-9552) Loc: 0x38C8 | offset to vtable + +0x137C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x138C | offset to field `key` (string) + +0x1380 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1384 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1384 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x1388 | 35 31 | char[2] | 51 | string literal - +0x138A | 00 | char | 0x00 (0) | string terminator + +0x1384 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1388 | 35 31 | char[2] | 51 | string literal + +0x138A | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x138C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x1390 | 69 64 | char[2] | id | string literal - +0x1392 | 00 | char | 0x00 (0) | string terminator + +0x138C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1390 | 69 64 | char[2] | id | string literal + +0x1392 | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x1394 | 7C DB FF FF | SOffset32 | 0xFFFFDB7C (-9348) Loc: +0x3818 | offset to vtable - +0x1398 | 00 00 00 | uint8_t[3] | ... | padding - +0x139B | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) - +0x139C | 06 00 00 00 | uint32_t | 0x00000006 (6) | table field `index` (Int) - +0x13A0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x1394 | 7C DB FF FF | SOffset32 | 0xFFFFDB7C (-9348) Loc: 0x3818 | offset to vtable + +0x1398 | 00 00 00 | uint8_t[3] | ... | padding + +0x139B | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) + +0x139C | 06 00 00 00 | uint32_t | 0x00000006 (6) | table field `index` (Int) + +0x13A0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x13A4 | 0D 00 00 00 | uint32_t | 0x0000000D (13) | length of string - +0x13A8 | 6E 61 74 69 76 65 5F 69 | char[13] | native_i | string literal - +0x13B0 | 6E 6C 69 6E 65 | | nline - +0x13B5 | 00 | char | 0x00 (0) | string terminator + +0x13A4 | 0D 00 00 00 | uint32_t | 0x0000000D (13) | length of string + +0x13A8 | 6E 61 74 69 76 65 5F 69 | char[13] | native_i | string literal + +0x13B0 | 6E 6C 69 6E 65 | | nline + +0x13B5 | 00 | char | 0x00 (0) | string terminator padding: - +0x13B6 | 00 00 | uint8_t[2] | .. | padding + +0x13B6 | 00 00 | uint8_t[2] | .. | padding table (reflection.Field): - +0x13B8 | D0 E7 FF FF | SOffset32 | 0xFFFFE7D0 (-6192) Loc: +0x2BE8 | offset to vtable - +0x13BC | 00 00 00 | uint8_t[3] | ... | padding - +0x13BF | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x13C0 | 32 00 | uint16_t | 0x0032 (50) | table field `id` (UShort) - +0x13C2 | 68 00 | uint16_t | 0x0068 (104) | table field `offset` (UShort) - +0x13C4 | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: +0x1404 | offset to field `name` (string) - +0x13C8 | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: +0x13F4 | offset to field `type` (table) - +0x13CC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x13D0 | offset to field `attributes` (vector) + +0x13B8 | D0 E7 FF FF | SOffset32 | 0xFFFFE7D0 (-6192) Loc: 0x2BE8 | offset to vtable + +0x13BC | 00 00 00 | uint8_t[3] | ... | padding + +0x13BF | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x13C0 | 32 00 | uint16_t | 0x0032 (50) | table field `id` (UShort) + +0x13C2 | 68 00 | uint16_t | 0x0068 (104) | table field `offset` (UShort) + +0x13C4 | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: 0x1404 | offset to field `name` (string) + +0x13C8 | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: 0x13F4 | offset to field `type` (table) + +0x13CC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x13D0 | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x13D0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x13D4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x13D8 | offset to table[0] + +0x13D0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x13D4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x13D8 | offset to table[0] table (reflection.KeyValue): - +0x13D8 | 10 DB FF FF | SOffset32 | 0xFFFFDB10 (-9456) Loc: +0x38C8 | offset to vtable - +0x13DC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x13EC | offset to field `key` (string) - +0x13E0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x13E4 | offset to field `value` (string) + +0x13D8 | 10 DB FF FF | SOffset32 | 0xFFFFDB10 (-9456) Loc: 0x38C8 | offset to vtable + +0x13DC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x13EC | offset to field `key` (string) + +0x13E0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x13E4 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x13E4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x13E8 | 35 30 | char[2] | 50 | string literal - +0x13EA | 00 | char | 0x00 (0) | string terminator + +0x13E4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x13E8 | 35 30 | char[2] | 50 | string literal + +0x13EA | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x13EC | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x13F0 | 69 64 | char[2] | id | string literal - +0x13F2 | 00 | char | 0x00 (0) | string terminator + +0x13EC | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x13F0 | 69 64 | char[2] | id | string literal + +0x13F2 | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x13F4 | 80 E9 FF FF | SOffset32 | 0xFFFFE980 (-5760) Loc: +0x2A74 | offset to vtable - +0x13F8 | 00 00 | uint8_t[2] | .. | padding - +0x13FA | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) - +0x13FB | 0F | uint8_t | 0x0F (15) | table field `element` (Byte) - +0x13FC | 03 00 00 00 | uint32_t | 0x00000003 (3) | table field `index` (Int) - +0x1400 | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `element_size` (UInt) + +0x13F4 | 80 E9 FF FF | SOffset32 | 0xFFFFE980 (-5760) Loc: 0x2A74 | offset to vtable + +0x13F8 | 00 00 | uint8_t[2] | .. | padding + +0x13FA | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) + +0x13FB | 0F | uint8_t | 0x0F (15) | table field `element` (Byte) + +0x13FC | 03 00 00 00 | uint32_t | 0x00000003 (3) | table field `index` (Int) + +0x1400 | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `element_size` (UInt) string (reflection.Field.name): - +0x1404 | 18 00 00 00 | uint32_t | 0x00000018 (24) | length of string - +0x1408 | 73 63 61 6C 61 72 5F 6B | char[24] | scalar_k | string literal - +0x1410 | 65 79 5F 73 6F 72 74 65 | | ey_sorte - +0x1418 | 64 5F 74 61 62 6C 65 73 | | d_tables - +0x1420 | 00 | char | 0x00 (0) | string terminator + +0x1404 | 18 00 00 00 | uint32_t | 0x00000018 (24) | length of string + +0x1408 | 73 63 61 6C 61 72 5F 6B | char[24] | scalar_k | string literal + +0x1410 | 65 79 5F 73 6F 72 74 65 | | ey_sorte + +0x1418 | 64 5F 74 61 62 6C 65 73 | | d_tables + +0x1420 | 00 | char | 0x00 (0) | string terminator padding: - +0x1421 | 00 00 00 | uint8_t[3] | ... | padding + +0x1421 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Field): - +0x1424 | 3C E8 FF FF | SOffset32 | 0xFFFFE83C (-6084) Loc: +0x2BE8 | offset to vtable - +0x1428 | 00 00 00 | uint8_t[3] | ... | padding - +0x142B | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x142C | 31 00 | uint16_t | 0x0031 (49) | table field `id` (UShort) - +0x142E | 66 00 | uint16_t | 0x0066 (102) | table field `offset` (UShort) - +0x1430 | 70 00 00 00 | UOffset32 | 0x00000070 (112) Loc: +0x14A0 | offset to field `name` (string) - +0x1434 | 60 00 00 00 | UOffset32 | 0x00000060 (96) Loc: +0x1494 | offset to field `type` (table) - +0x1438 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x143C | offset to field `attributes` (vector) + +0x1424 | 3C E8 FF FF | SOffset32 | 0xFFFFE83C (-6084) Loc: 0x2BE8 | offset to vtable + +0x1428 | 00 00 00 | uint8_t[3] | ... | padding + +0x142B | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x142C | 31 00 | uint16_t | 0x0031 (49) | table field `id` (UShort) + +0x142E | 66 00 | uint16_t | 0x0066 (102) | table field `offset` (UShort) + +0x1430 | 70 00 00 00 | UOffset32 | 0x00000070 (112) Loc: 0x14A0 | offset to field `name` (string) + +0x1434 | 60 00 00 00 | UOffset32 | 0x00000060 (96) Loc: 0x1494 | offset to field `type` (table) + +0x1438 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x143C | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x143C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) - +0x1440 | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: +0x1478 | offset to table[0] - +0x1444 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1448 | offset to table[1] + +0x143C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) + +0x1440 | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: 0x1478 | offset to table[0] + +0x1444 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1448 | offset to table[1] table (reflection.KeyValue): - +0x1448 | 80 DB FF FF | SOffset32 | 0xFFFFDB80 (-9344) Loc: +0x38C8 | offset to vtable - +0x144C | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x1460 | offset to field `key` (string) - +0x1450 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1454 | offset to field `value` (string) + +0x1448 | 80 DB FF FF | SOffset32 | 0xFFFFDB80 (-9344) Loc: 0x38C8 | offset to vtable + +0x144C | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: 0x1460 | offset to field `key` (string) + +0x1450 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1454 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1454 | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string - +0x1458 | 4D 6F 6E 73 74 65 72 | char[7] | Monster | string literal - +0x145F | 00 | char | 0x00 (0) | string terminator + +0x1454 | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string + +0x1458 | 4D 6F 6E 73 74 65 72 | char[7] | Monster | string literal + +0x145F | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x1460 | 11 00 00 00 | uint32_t | 0x00000011 (17) | length of string - +0x1464 | 6E 65 73 74 65 64 5F 66 | char[17] | nested_f | string literal - +0x146C | 6C 61 74 62 75 66 66 65 | | latbuffe - +0x1474 | 72 | | r - +0x1475 | 00 | char | 0x00 (0) | string terminator + +0x1460 | 11 00 00 00 | uint32_t | 0x00000011 (17) | length of string + +0x1464 | 6E 65 73 74 65 64 5F 66 | char[17] | nested_f | string literal + +0x146C | 6C 61 74 62 75 66 66 65 | | latbuffe + +0x1474 | 72 | | r + +0x1475 | 00 | char | 0x00 (0) | string terminator padding: - +0x1476 | 00 00 | uint8_t[2] | .. | padding + +0x1476 | 00 00 | uint8_t[2] | .. | padding table (reflection.KeyValue): - +0x1478 | B0 DB FF FF | SOffset32 | 0xFFFFDBB0 (-9296) Loc: +0x38C8 | offset to vtable - +0x147C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x148C | offset to field `key` (string) - +0x1480 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1484 | offset to field `value` (string) + +0x1478 | B0 DB FF FF | SOffset32 | 0xFFFFDBB0 (-9296) Loc: 0x38C8 | offset to vtable + +0x147C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x148C | offset to field `key` (string) + +0x1480 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1484 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1484 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x1488 | 34 39 | char[2] | 49 | string literal - +0x148A | 00 | char | 0x00 (0) | string terminator + +0x1484 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1488 | 34 39 | char[2] | 49 | string literal + +0x148A | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x148C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x1490 | 69 64 | char[2] | id | string literal - +0x1492 | 00 | char | 0x00 (0) | string terminator + +0x148C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1490 | 69 64 | char[2] | id | string literal + +0x1492 | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x1494 | 54 E8 FF FF | SOffset32 | 0xFFFFE854 (-6060) Loc: +0x2C40 | offset to vtable - +0x1498 | 00 00 | uint8_t[2] | .. | padding - +0x149A | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) - +0x149B | 04 | uint8_t | 0x04 (4) | table field `element` (Byte) - +0x149C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x1494 | 54 E8 FF FF | SOffset32 | 0xFFFFE854 (-6060) Loc: 0x2C40 | offset to vtable + +0x1498 | 00 00 | uint8_t[2] | .. | padding + +0x149A | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) + +0x149B | 04 | uint8_t | 0x04 (4) | table field `element` (Byte) + +0x149C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x14A0 | 1C 00 00 00 | uint32_t | 0x0000001C (28) | length of string - +0x14A4 | 74 65 73 74 72 65 71 75 | char[28] | testrequ | string literal - +0x14AC | 69 72 65 64 6E 65 73 74 | | irednest - +0x14B4 | 65 64 66 6C 61 74 62 75 | | edflatbu - +0x14BC | 66 66 65 72 | | ffer - +0x14C0 | 00 | char | 0x00 (0) | string terminator + +0x14A0 | 1C 00 00 00 | uint32_t | 0x0000001C (28) | length of string + +0x14A4 | 74 65 73 74 72 65 71 75 | char[28] | testrequ | string literal + +0x14AC | 69 72 65 64 6E 65 73 74 | | irednest + +0x14B4 | 65 64 66 6C 61 74 62 75 | | edflatbu + +0x14BC | 66 66 65 72 | | ffer + +0x14C0 | 00 | char | 0x00 (0) | string terminator padding: - +0x14C1 | 00 00 00 | uint8_t[3] | ... | padding + +0x14C1 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Field): - +0x14C4 | B0 E6 FF FF | SOffset32 | 0xFFFFE6B0 (-6480) Loc: +0x2E14 | offset to vtable - +0x14C8 | 30 00 | uint16_t | 0x0030 (48) | table field `id` (UShort) - +0x14CA | 64 00 | uint16_t | 0x0064 (100) | table field `offset` (UShort) - +0x14CC | 4C 00 00 00 | UOffset32 | 0x0000004C (76) Loc: +0x1518 | offset to field `name` (string) - +0x14D0 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x1504 | offset to field `type` (table) - +0x14D4 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x14E0 | offset to field `attributes` (vector) - +0x14D8 | FF FF FF FF FF FF FF FF | int64_t | 0xFFFFFFFFFFFFFFFF (-1) | table field `default_integer` (Long) + +0x14C4 | B0 E6 FF FF | SOffset32 | 0xFFFFE6B0 (-6480) Loc: 0x2E14 | offset to vtable + +0x14C8 | 30 00 | uint16_t | 0x0030 (48) | table field `id` (UShort) + +0x14CA | 64 00 | uint16_t | 0x0064 (100) | table field `offset` (UShort) + +0x14CC | 4C 00 00 00 | UOffset32 | 0x0000004C (76) Loc: 0x1518 | offset to field `name` (string) + +0x14D0 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: 0x1504 | offset to field `type` (table) + +0x14D4 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: 0x14E0 | offset to field `attributes` (vector) + +0x14D8 | FF FF FF FF FF FF FF FF | int64_t | 0xFFFFFFFFFFFFFFFF (-1) | table field `default_integer` (Long) vector (reflection.Field.attributes): - +0x14E0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x14E4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x14E8 | offset to table[0] + +0x14E0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x14E4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x14E8 | offset to table[0] table (reflection.KeyValue): - +0x14E8 | 20 DC FF FF | SOffset32 | 0xFFFFDC20 (-9184) Loc: +0x38C8 | offset to vtable - +0x14EC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x14FC | offset to field `key` (string) - +0x14F0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x14F4 | offset to field `value` (string) + +0x14E8 | 20 DC FF FF | SOffset32 | 0xFFFFDC20 (-9184) Loc: 0x38C8 | offset to vtable + +0x14EC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x14FC | offset to field `key` (string) + +0x14F0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x14F4 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x14F4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x14F8 | 34 38 | char[2] | 48 | string literal - +0x14FA | 00 | char | 0x00 (0) | string terminator + +0x14F4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x14F8 | 34 38 | char[2] | 48 | string literal + +0x14FA | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x14FC | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x1500 | 69 64 | char[2] | id | string literal - +0x1502 | 00 | char | 0x00 (0) | string terminator + +0x14FC | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1500 | 69 64 | char[2] | id | string literal + +0x1502 | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x1504 | 58 DF FF FF | SOffset32 | 0xFFFFDF58 (-8360) Loc: +0x35AC | offset to vtable - +0x1508 | 00 00 00 | uint8_t[3] | ... | padding - +0x150B | 03 | uint8_t | 0x03 (3) | table field `base_type` (Byte) - +0x150C | 05 00 00 00 | uint32_t | 0x00000005 (5) | table field `index` (Int) - +0x1510 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) - +0x1514 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x1504 | 58 DF FF FF | SOffset32 | 0xFFFFDF58 (-8360) Loc: 0x35AC | offset to vtable + +0x1508 | 00 00 00 | uint8_t[3] | ... | padding + +0x150B | 03 | uint8_t | 0x03 (3) | table field `base_type` (Byte) + +0x150C | 05 00 00 00 | uint32_t | 0x00000005 (5) | table field `index` (Int) + +0x1510 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) + +0x1514 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x1518 | 0B 00 00 00 | uint32_t | 0x0000000B (11) | length of string - +0x151C | 73 69 67 6E 65 64 5F 65 | char[11] | signed_e | string literal - +0x1524 | 6E 75 6D | | num - +0x1527 | 00 | char | 0x00 (0) | string terminator + +0x1518 | 0B 00 00 00 | uint32_t | 0x0000000B (11) | length of string + +0x151C | 73 69 67 6E 65 64 5F 65 | char[11] | signed_e | string literal + +0x1524 | 6E 75 6D | | num + +0x1527 | 00 | char | 0x00 (0) | string terminator table (reflection.Field): - +0x1528 | 40 E9 FF FF | SOffset32 | 0xFFFFE940 (-5824) Loc: +0x2BE8 | offset to vtable - +0x152C | 00 00 00 | uint8_t[3] | ... | padding - +0x152F | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x1530 | 2F 00 | uint16_t | 0x002F (47) | table field `id` (UShort) - +0x1532 | 62 00 | uint16_t | 0x0062 (98) | table field `offset` (UShort) - +0x1534 | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: +0x1574 | offset to field `name` (string) - +0x1538 | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: +0x1564 | offset to field `type` (table) - +0x153C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1540 | offset to field `attributes` (vector) + +0x1528 | 40 E9 FF FF | SOffset32 | 0xFFFFE940 (-5824) Loc: 0x2BE8 | offset to vtable + +0x152C | 00 00 00 | uint8_t[3] | ... | padding + +0x152F | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x1530 | 2F 00 | uint16_t | 0x002F (47) | table field `id` (UShort) + +0x1532 | 62 00 | uint16_t | 0x0062 (98) | table field `offset` (UShort) + +0x1534 | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: 0x1574 | offset to field `name` (string) + +0x1538 | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: 0x1564 | offset to field `type` (table) + +0x153C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1540 | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x1540 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x1544 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1548 | offset to table[0] + +0x1540 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x1544 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1548 | offset to table[0] table (reflection.KeyValue): - +0x1548 | 80 DC FF FF | SOffset32 | 0xFFFFDC80 (-9088) Loc: +0x38C8 | offset to vtable - +0x154C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x155C | offset to field `key` (string) - +0x1550 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1554 | offset to field `value` (string) + +0x1548 | 80 DC FF FF | SOffset32 | 0xFFFFDC80 (-9088) Loc: 0x38C8 | offset to vtable + +0x154C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x155C | offset to field `key` (string) + +0x1550 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1554 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1554 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x1558 | 34 37 | char[2] | 47 | string literal - +0x155A | 00 | char | 0x00 (0) | string terminator + +0x1554 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1558 | 34 37 | char[2] | 47 | string literal + +0x155A | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x155C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x1560 | 69 64 | char[2] | id | string literal - +0x1562 | 00 | char | 0x00 (0) | string terminator + +0x155C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1560 | 69 64 | char[2] | id | string literal + +0x1562 | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x1564 | F0 EA FF FF | SOffset32 | 0xFFFFEAF0 (-5392) Loc: +0x2A74 | offset to vtable - +0x1568 | 00 00 | uint8_t[2] | .. | padding - +0x156A | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) - +0x156B | 04 | uint8_t | 0x04 (4) | table field `element` (Byte) - +0x156C | 03 00 00 00 | uint32_t | 0x00000003 (3) | table field `index` (Int) - +0x1570 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x1564 | F0 EA FF FF | SOffset32 | 0xFFFFEAF0 (-5392) Loc: 0x2A74 | offset to vtable + +0x1568 | 00 00 | uint8_t[2] | .. | padding + +0x156A | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) + +0x156B | 04 | uint8_t | 0x04 (4) | table field `element` (Byte) + +0x156C | 03 00 00 00 | uint32_t | 0x00000003 (3) | table field `index` (Int) + +0x1570 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x1574 | 0F 00 00 00 | uint32_t | 0x0000000F (15) | length of string - +0x1578 | 76 65 63 74 6F 72 5F 6F | char[15] | vector_o | string literal - +0x1580 | 66 5F 65 6E 75 6D 73 | | f_enums - +0x1587 | 00 | char | 0x00 (0) | string terminator + +0x1574 | 0F 00 00 00 | uint32_t | 0x0000000F (15) | length of string + +0x1578 | 76 65 63 74 6F 72 5F 6F | char[15] | vector_o | string literal + +0x1580 | 66 5F 65 6E 75 6D 73 | | f_enums + +0x1587 | 00 | char | 0x00 (0) | string terminator table (reflection.Field): - +0x1588 | A0 E9 FF FF | SOffset32 | 0xFFFFE9A0 (-5728) Loc: +0x2BE8 | offset to vtable - +0x158C | 00 00 00 | uint8_t[3] | ... | padding - +0x158F | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x1590 | 2E 00 | uint16_t | 0x002E (46) | table field `id` (UShort) - +0x1592 | 60 00 | uint16_t | 0x0060 (96) | table field `offset` (UShort) - +0x1594 | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: +0x15D4 | offset to field `name` (string) - +0x1598 | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: +0x15C4 | offset to field `type` (table) - +0x159C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x15A0 | offset to field `attributes` (vector) + +0x1588 | A0 E9 FF FF | SOffset32 | 0xFFFFE9A0 (-5728) Loc: 0x2BE8 | offset to vtable + +0x158C | 00 00 00 | uint8_t[3] | ... | padding + +0x158F | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x1590 | 2E 00 | uint16_t | 0x002E (46) | table field `id` (UShort) + +0x1592 | 60 00 | uint16_t | 0x0060 (96) | table field `offset` (UShort) + +0x1594 | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: 0x15D4 | offset to field `name` (string) + +0x1598 | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: 0x15C4 | offset to field `type` (table) + +0x159C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x15A0 | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x15A0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x15A4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x15A8 | offset to table[0] + +0x15A0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x15A4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x15A8 | offset to table[0] table (reflection.KeyValue): - +0x15A8 | E0 DC FF FF | SOffset32 | 0xFFFFDCE0 (-8992) Loc: +0x38C8 | offset to vtable - +0x15AC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x15BC | offset to field `key` (string) - +0x15B0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x15B4 | offset to field `value` (string) + +0x15A8 | E0 DC FF FF | SOffset32 | 0xFFFFDCE0 (-8992) Loc: 0x38C8 | offset to vtable + +0x15AC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x15BC | offset to field `key` (string) + +0x15B0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x15B4 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x15B4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x15B8 | 34 36 | char[2] | 46 | string literal - +0x15BA | 00 | char | 0x00 (0) | string terminator + +0x15B4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x15B8 | 34 36 | char[2] | 46 | string literal + +0x15BA | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x15BC | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x15C0 | 69 64 | char[2] | id | string literal - +0x15C2 | 00 | char | 0x00 (0) | string terminator + +0x15BC | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x15C0 | 69 64 | char[2] | id | string literal + +0x15C2 | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x15C4 | AC DD FF FF | SOffset32 | 0xFFFFDDAC (-8788) Loc: +0x3818 | offset to vtable - +0x15C8 | 00 00 00 | uint8_t[3] | ... | padding - +0x15CB | 10 | uint8_t | 0x10 (16) | table field `base_type` (Byte) - +0x15CC | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `index` (Int) - +0x15D0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x15C4 | AC DD FF FF | SOffset32 | 0xFFFFDDAC (-8788) Loc: 0x3818 | offset to vtable + +0x15C8 | 00 00 00 | uint8_t[3] | ... | padding + +0x15CB | 10 | uint8_t | 0x10 (16) | table field `base_type` (Byte) + +0x15CC | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `index` (Int) + +0x15D0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x15D4 | 0D 00 00 00 | uint32_t | 0x0000000D (13) | length of string - +0x15D8 | 61 6E 79 5F 61 6D 62 69 | char[13] | any_ambi | string literal - +0x15E0 | 67 75 6F 75 73 | | guous - +0x15E5 | 00 | char | 0x00 (0) | string terminator + +0x15D4 | 0D 00 00 00 | uint32_t | 0x0000000D (13) | length of string + +0x15D8 | 61 6E 79 5F 61 6D 62 69 | char[13] | any_ambi | string literal + +0x15E0 | 67 75 6F 75 73 | | guous + +0x15E5 | 00 | char | 0x00 (0) | string terminator padding: - +0x15E6 | 00 00 | uint8_t[2] | .. | padding + +0x15E6 | 00 00 | uint8_t[2] | .. | padding table (reflection.Field): - +0x15E8 | F0 EA FF FF | SOffset32 | 0xFFFFEAF0 (-5392) Loc: +0x2AF8 | offset to vtable - +0x15EC | 2D 00 | uint16_t | 0x002D (45) | table field `id` (UShort) - +0x15EE | 5E 00 | uint16_t | 0x005E (94) | table field `offset` (UShort) - +0x15F0 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x1634 | offset to field `name` (string) - +0x15F4 | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: +0x1620 | offset to field `type` (table) - +0x15F8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x15FC | offset to field `attributes` (vector) + +0x15E8 | F0 EA FF FF | SOffset32 | 0xFFFFEAF0 (-5392) Loc: 0x2AF8 | offset to vtable + +0x15EC | 2D 00 | uint16_t | 0x002D (45) | table field `id` (UShort) + +0x15EE | 5E 00 | uint16_t | 0x005E (94) | table field `offset` (UShort) + +0x15F0 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: 0x1634 | offset to field `name` (string) + +0x15F4 | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: 0x1620 | offset to field `type` (table) + +0x15F8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x15FC | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x15FC | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x1600 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1604 | offset to table[0] + +0x15FC | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x1600 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1604 | offset to table[0] table (reflection.KeyValue): - +0x1604 | 3C DD FF FF | SOffset32 | 0xFFFFDD3C (-8900) Loc: +0x38C8 | offset to vtable - +0x1608 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1618 | offset to field `key` (string) - +0x160C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1610 | offset to field `value` (string) + +0x1604 | 3C DD FF FF | SOffset32 | 0xFFFFDD3C (-8900) Loc: 0x38C8 | offset to vtable + +0x1608 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x1618 | offset to field `key` (string) + +0x160C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1610 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1610 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x1614 | 34 35 | char[2] | 45 | string literal - +0x1616 | 00 | char | 0x00 (0) | string terminator + +0x1610 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1614 | 34 35 | char[2] | 45 | string literal + +0x1616 | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x1618 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x161C | 69 64 | char[2] | id | string literal - +0x161E | 00 | char | 0x00 (0) | string terminator + +0x1618 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x161C | 69 64 | char[2] | id | string literal + +0x161E | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x1620 | 74 E0 FF FF | SOffset32 | 0xFFFFE074 (-8076) Loc: +0x35AC | offset to vtable - +0x1624 | 00 00 00 | uint8_t[3] | ... | padding - +0x1627 | 01 | uint8_t | 0x01 (1) | table field `base_type` (Byte) - +0x1628 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `index` (Int) - +0x162C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) - +0x1630 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x1620 | 74 E0 FF FF | SOffset32 | 0xFFFFE074 (-8076) Loc: 0x35AC | offset to vtable + +0x1624 | 00 00 00 | uint8_t[3] | ... | padding + +0x1627 | 01 | uint8_t | 0x01 (1) | table field `base_type` (Byte) + +0x1628 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `index` (Int) + +0x162C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) + +0x1630 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x1634 | 12 00 00 00 | uint32_t | 0x00000012 (18) | length of string - +0x1638 | 61 6E 79 5F 61 6D 62 69 | char[18] | any_ambi | string literal - +0x1640 | 67 75 6F 75 73 5F 74 79 | | guous_ty - +0x1648 | 70 65 | | pe - +0x164A | 00 | char | 0x00 (0) | string terminator + +0x1634 | 12 00 00 00 | uint32_t | 0x00000012 (18) | length of string + +0x1638 | 61 6E 79 5F 61 6D 62 69 | char[18] | any_ambi | string literal + +0x1640 | 67 75 6F 75 73 5F 74 79 | | guous_ty + +0x1648 | 70 65 | | pe + +0x164A | 00 | char | 0x00 (0) | string terminator table (reflection.Field): - +0x164C | 64 EA FF FF | SOffset32 | 0xFFFFEA64 (-5532) Loc: +0x2BE8 | offset to vtable - +0x1650 | 00 00 00 | uint8_t[3] | ... | padding - +0x1653 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x1654 | 2C 00 | uint16_t | 0x002C (44) | table field `id` (UShort) - +0x1656 | 5C 00 | uint16_t | 0x005C (92) | table field `offset` (UShort) - +0x1658 | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: +0x1698 | offset to field `name` (string) - +0x165C | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: +0x1688 | offset to field `type` (table) - +0x1660 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1664 | offset to field `attributes` (vector) + +0x164C | 64 EA FF FF | SOffset32 | 0xFFFFEA64 (-5532) Loc: 0x2BE8 | offset to vtable + +0x1650 | 00 00 00 | uint8_t[3] | ... | padding + +0x1653 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x1654 | 2C 00 | uint16_t | 0x002C (44) | table field `id` (UShort) + +0x1656 | 5C 00 | uint16_t | 0x005C (92) | table field `offset` (UShort) + +0x1658 | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: 0x1698 | offset to field `name` (string) + +0x165C | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: 0x1688 | offset to field `type` (table) + +0x1660 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1664 | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x1664 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x1668 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x166C | offset to table[0] + +0x1664 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x1668 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x166C | offset to table[0] table (reflection.KeyValue): - +0x166C | A4 DD FF FF | SOffset32 | 0xFFFFDDA4 (-8796) Loc: +0x38C8 | offset to vtable - +0x1670 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1680 | offset to field `key` (string) - +0x1674 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1678 | offset to field `value` (string) + +0x166C | A4 DD FF FF | SOffset32 | 0xFFFFDDA4 (-8796) Loc: 0x38C8 | offset to vtable + +0x1670 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x1680 | offset to field `key` (string) + +0x1674 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1678 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1678 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x167C | 34 34 | char[2] | 44 | string literal - +0x167E | 00 | char | 0x00 (0) | string terminator + +0x1678 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x167C | 34 34 | char[2] | 44 | string literal + +0x167E | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x1680 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x1684 | 69 64 | char[2] | id | string literal - +0x1686 | 00 | char | 0x00 (0) | string terminator + +0x1680 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1684 | 69 64 | char[2] | id | string literal + +0x1686 | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x1688 | 70 DE FF FF | SOffset32 | 0xFFFFDE70 (-8592) Loc: +0x3818 | offset to vtable - +0x168C | 00 00 00 | uint8_t[3] | ... | padding - +0x168F | 10 | uint8_t | 0x10 (16) | table field `base_type` (Byte) - +0x1690 | 02 00 00 00 | uint32_t | 0x00000002 (2) | table field `index` (Int) - +0x1694 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x1688 | 70 DE FF FF | SOffset32 | 0xFFFFDE70 (-8592) Loc: 0x3818 | offset to vtable + +0x168C | 00 00 00 | uint8_t[3] | ... | padding + +0x168F | 10 | uint8_t | 0x10 (16) | table field `base_type` (Byte) + +0x1690 | 02 00 00 00 | uint32_t | 0x00000002 (2) | table field `index` (Int) + +0x1694 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x1698 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | length of string - +0x169C | 61 6E 79 5F 75 6E 69 71 | char[10] | any_uniq | string literal - +0x16A4 | 75 65 | | ue - +0x16A6 | 00 | char | 0x00 (0) | string terminator + +0x1698 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | length of string + +0x169C | 61 6E 79 5F 75 6E 69 71 | char[10] | any_uniq | string literal + +0x16A4 | 75 65 | | ue + +0x16A6 | 00 | char | 0x00 (0) | string terminator table (reflection.Field): - +0x16A8 | B0 EB FF FF | SOffset32 | 0xFFFFEBB0 (-5200) Loc: +0x2AF8 | offset to vtable - +0x16AC | 2B 00 | uint16_t | 0x002B (43) | table field `id` (UShort) - +0x16AE | 5A 00 | uint16_t | 0x005A (90) | table field `offset` (UShort) - +0x16B0 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x16F4 | offset to field `name` (string) - +0x16B4 | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: +0x16E0 | offset to field `type` (table) - +0x16B8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x16BC | offset to field `attributes` (vector) + +0x16A8 | B0 EB FF FF | SOffset32 | 0xFFFFEBB0 (-5200) Loc: 0x2AF8 | offset to vtable + +0x16AC | 2B 00 | uint16_t | 0x002B (43) | table field `id` (UShort) + +0x16AE | 5A 00 | uint16_t | 0x005A (90) | table field `offset` (UShort) + +0x16B0 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: 0x16F4 | offset to field `name` (string) + +0x16B4 | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: 0x16E0 | offset to field `type` (table) + +0x16B8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x16BC | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x16BC | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x16C0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x16C4 | offset to table[0] + +0x16BC | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x16C0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x16C4 | offset to table[0] table (reflection.KeyValue): - +0x16C4 | FC DD FF FF | SOffset32 | 0xFFFFDDFC (-8708) Loc: +0x38C8 | offset to vtable - +0x16C8 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x16D8 | offset to field `key` (string) - +0x16CC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x16D0 | offset to field `value` (string) + +0x16C4 | FC DD FF FF | SOffset32 | 0xFFFFDDFC (-8708) Loc: 0x38C8 | offset to vtable + +0x16C8 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x16D8 | offset to field `key` (string) + +0x16CC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x16D0 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x16D0 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x16D4 | 34 33 | char[2] | 43 | string literal - +0x16D6 | 00 | char | 0x00 (0) | string terminator + +0x16D0 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x16D4 | 34 33 | char[2] | 43 | string literal + +0x16D6 | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x16D8 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x16DC | 69 64 | char[2] | id | string literal - +0x16DE | 00 | char | 0x00 (0) | string terminator + +0x16D8 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x16DC | 69 64 | char[2] | id | string literal + +0x16DE | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x16E0 | 34 E1 FF FF | SOffset32 | 0xFFFFE134 (-7884) Loc: +0x35AC | offset to vtable - +0x16E4 | 00 00 00 | uint8_t[3] | ... | padding - +0x16E7 | 01 | uint8_t | 0x01 (1) | table field `base_type` (Byte) - +0x16E8 | 02 00 00 00 | uint32_t | 0x00000002 (2) | table field `index` (Int) - +0x16EC | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) - +0x16F0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x16E0 | 34 E1 FF FF | SOffset32 | 0xFFFFE134 (-7884) Loc: 0x35AC | offset to vtable + +0x16E4 | 00 00 00 | uint8_t[3] | ... | padding + +0x16E7 | 01 | uint8_t | 0x01 (1) | table field `base_type` (Byte) + +0x16E8 | 02 00 00 00 | uint32_t | 0x00000002 (2) | table field `index` (Int) + +0x16EC | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) + +0x16F0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x16F4 | 0F 00 00 00 | uint32_t | 0x0000000F (15) | length of string - +0x16F8 | 61 6E 79 5F 75 6E 69 71 | char[15] | any_uniq | string literal - +0x1700 | 75 65 5F 74 79 70 65 | | ue_type - +0x1707 | 00 | char | 0x00 (0) | string terminator + +0x16F4 | 0F 00 00 00 | uint32_t | 0x0000000F (15) | length of string + +0x16F8 | 61 6E 79 5F 75 6E 69 71 | char[15] | any_uniq | string literal + +0x1700 | 75 65 5F 74 79 70 65 | | ue_type + +0x1707 | 00 | char | 0x00 (0) | string terminator table (reflection.Field): - +0x1708 | 20 EB FF FF | SOffset32 | 0xFFFFEB20 (-5344) Loc: +0x2BE8 | offset to vtable - +0x170C | 00 00 00 | uint8_t[3] | ... | padding - +0x170F | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x1710 | 2A 00 | uint16_t | 0x002A (42) | table field `id` (UShort) - +0x1712 | 58 00 | uint16_t | 0x0058 (88) | table field `offset` (UShort) - +0x1714 | F8 00 00 00 | UOffset32 | 0x000000F8 (248) Loc: +0x180C | offset to field `name` (string) - +0x1718 | E8 00 00 00 | UOffset32 | 0x000000E8 (232) Loc: +0x1800 | offset to field `type` (table) - +0x171C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1720 | offset to field `attributes` (vector) + +0x1708 | 20 EB FF FF | SOffset32 | 0xFFFFEB20 (-5344) Loc: 0x2BE8 | offset to vtable + +0x170C | 00 00 00 | uint8_t[3] | ... | padding + +0x170F | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x1710 | 2A 00 | uint16_t | 0x002A (42) | table field `id` (UShort) + +0x1712 | 58 00 | uint16_t | 0x0058 (88) | table field `offset` (UShort) + +0x1714 | F8 00 00 00 | UOffset32 | 0x000000F8 (248) Loc: 0x180C | offset to field `name` (string) + +0x1718 | E8 00 00 00 | UOffset32 | 0x000000E8 (232) Loc: 0x1800 | offset to field `type` (table) + +0x171C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1720 | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x1720 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of vector (# items) - +0x1724 | B0 00 00 00 | UOffset32 | 0x000000B0 (176) Loc: +0x17D4 | offset to table[0] - +0x1728 | 80 00 00 00 | UOffset32 | 0x00000080 (128) Loc: +0x17A8 | offset to table[1] - +0x172C | 50 00 00 00 | UOffset32 | 0x00000050 (80) Loc: +0x177C | offset to table[2] - +0x1730 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x1754 | offset to table[3] - +0x1734 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1738 | offset to table[4] + +0x1720 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of vector (# items) + +0x1724 | B0 00 00 00 | UOffset32 | 0x000000B0 (176) Loc: 0x17D4 | offset to table[0] + +0x1728 | 80 00 00 00 | UOffset32 | 0x00000080 (128) Loc: 0x17A8 | offset to table[1] + +0x172C | 50 00 00 00 | UOffset32 | 0x00000050 (80) Loc: 0x177C | offset to table[2] + +0x1730 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: 0x1754 | offset to table[3] + +0x1734 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1738 | offset to table[4] table (reflection.KeyValue): - +0x1738 | 70 DE FF FF | SOffset32 | 0xFFFFDE70 (-8592) Loc: +0x38C8 | offset to vtable - +0x173C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x174C | offset to field `key` (string) - +0x1740 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1744 | offset to field `value` (string) + +0x1738 | 70 DE FF FF | SOffset32 | 0xFFFFDE70 (-8592) Loc: 0x38C8 | offset to vtable + +0x173C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x174C | offset to field `key` (string) + +0x1740 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1744 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1744 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x1748 | 34 32 | char[2] | 42 | string literal - +0x174A | 00 | char | 0x00 (0) | string terminator + +0x1744 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1748 | 34 32 | char[2] | 42 | string literal + +0x174A | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x174C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x1750 | 69 64 | char[2] | id | string literal - +0x1752 | 00 | char | 0x00 (0) | string terminator + +0x174C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1750 | 69 64 | char[2] | id | string literal + +0x1752 | 00 | char | 0x00 (0) | string terminator table (reflection.KeyValue): - +0x1754 | 8C DE FF FF | SOffset32 | 0xFFFFDE8C (-8564) Loc: +0x38C8 | offset to vtable - +0x1758 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x1770 | offset to field `key` (string) - +0x175C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1760 | offset to field `value` (string) + +0x1754 | 8C DE FF FF | SOffset32 | 0xFFFFDE8C (-8564) Loc: 0x38C8 | offset to vtable + +0x1758 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: 0x1770 | offset to field `key` (string) + +0x175C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1760 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1760 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string - +0x1764 | 66 6E 76 31 61 5F 36 34 | char[8] | fnv1a_64 | string literal - +0x176C | 00 | char | 0x00 (0) | string terminator + +0x1760 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string + +0x1764 | 66 6E 76 31 61 5F 36 34 | char[8] | fnv1a_64 | string literal + +0x176C | 00 | char | 0x00 (0) | string terminator padding: - +0x176D | 00 00 00 | uint8_t[3] | ... | padding + +0x176D | 00 00 00 | uint8_t[3] | ... | padding string (reflection.KeyValue.key): - +0x1770 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string - +0x1774 | 68 61 73 68 | char[4] | hash | string literal - +0x1778 | 00 | char | 0x00 (0) | string terminator + +0x1770 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string + +0x1774 | 68 61 73 68 | char[4] | hash | string literal + +0x1778 | 00 | char | 0x00 (0) | string terminator padding: - +0x1779 | 00 00 00 | uint8_t[3] | ... | padding + +0x1779 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.KeyValue): - +0x177C | B4 DE FF FF | SOffset32 | 0xFFFFDEB4 (-8524) Loc: +0x38C8 | offset to vtable - +0x1780 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x1798 | offset to field `key` (string) - +0x1784 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1788 | offset to field `value` (string) + +0x177C | B4 DE FF FF | SOffset32 | 0xFFFFDEB4 (-8524) Loc: 0x38C8 | offset to vtable + +0x1780 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: 0x1798 | offset to field `key` (string) + +0x1784 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1788 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1788 | 0B 00 00 00 | uint32_t | 0x0000000B (11) | length of string - +0x178C | 52 65 66 65 72 72 61 62 | char[11] | Referrab | string literal - +0x1794 | 6C 65 54 | | leT - +0x1797 | 00 | char | 0x00 (0) | string terminator + +0x1788 | 0B 00 00 00 | uint32_t | 0x0000000B (11) | length of string + +0x178C | 52 65 66 65 72 72 61 62 | char[11] | Referrab | string literal + +0x1794 | 6C 65 54 | | leT + +0x1797 | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x1798 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string - +0x179C | 63 70 70 5F 74 79 70 65 | char[8] | cpp_type | string literal - +0x17A4 | 00 | char | 0x00 (0) | string terminator + +0x1798 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string + +0x179C | 63 70 70 5F 74 79 70 65 | char[8] | cpp_type | string literal + +0x17A4 | 00 | char | 0x00 (0) | string terminator padding: - +0x17A5 | 00 00 00 | uint8_t[3] | ... | padding + +0x17A5 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.KeyValue): - +0x17A8 | E0 DE FF FF | SOffset32 | 0xFFFFDEE0 (-8480) Loc: +0x38C8 | offset to vtable - +0x17AC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x17BC | offset to field `key` (string) - +0x17B0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x17B4 | offset to field `value` (string) + +0x17A8 | E0 DE FF FF | SOffset32 | 0xFFFFDEE0 (-8480) Loc: 0x38C8 | offset to vtable + +0x17AC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x17BC | offset to field `key` (string) + +0x17B0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x17B4 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x17B4 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of string - +0x17B8 | 00 | char | 0x00 (0) | string terminator + +0x17B4 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of string + +0x17B8 | 00 | char | 0x00 (0) | string terminator padding: - +0x17B9 | 00 00 00 | uint8_t[3] | ... | padding + +0x17B9 | 00 00 00 | uint8_t[3] | ... | padding string (reflection.KeyValue.key): - +0x17BC | 10 00 00 00 | uint32_t | 0x00000010 (16) | length of string - +0x17C0 | 63 70 70 5F 70 74 72 5F | char[16] | cpp_ptr_ | string literal - +0x17C8 | 74 79 70 65 5F 67 65 74 | | type_get - +0x17D0 | 00 | char | 0x00 (0) | string terminator + +0x17BC | 10 00 00 00 | uint32_t | 0x00000010 (16) | length of string + +0x17C0 | 63 70 70 5F 70 74 72 5F | char[16] | cpp_ptr_ | string literal + +0x17C8 | 74 79 70 65 5F 67 65 74 | | type_get + +0x17D0 | 00 | char | 0x00 (0) | string terminator padding: - +0x17D1 | 00 00 00 | uint8_t[3] | ... | padding + +0x17D1 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.KeyValue): - +0x17D4 | 0C DF FF FF | SOffset32 | 0xFFFFDF0C (-8436) Loc: +0x38C8 | offset to vtable - +0x17D8 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x17EC | offset to field `key` (string) - +0x17DC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x17E0 | offset to field `value` (string) + +0x17D4 | 0C DF FF FF | SOffset32 | 0xFFFFDF0C (-8436) Loc: 0x38C8 | offset to vtable + +0x17D8 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: 0x17EC | offset to field `key` (string) + +0x17DC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x17E0 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x17E0 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string - +0x17E4 | 6E 61 6B 65 64 | char[5] | naked | string literal - +0x17E9 | 00 | char | 0x00 (0) | string terminator + +0x17E0 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string + +0x17E4 | 6E 61 6B 65 64 | char[5] | naked | string literal + +0x17E9 | 00 | char | 0x00 (0) | string terminator padding: - +0x17EA | 00 00 | uint8_t[2] | .. | padding + +0x17EA | 00 00 | uint8_t[2] | .. | padding string (reflection.KeyValue.key): - +0x17EC | 0C 00 00 00 | uint32_t | 0x0000000C (12) | length of string - +0x17F0 | 63 70 70 5F 70 74 72 5F | char[12] | cpp_ptr_ | string literal - +0x17F8 | 74 79 70 65 | | type - +0x17FC | 00 | char | 0x00 (0) | string terminator + +0x17EC | 0C 00 00 00 | uint32_t | 0x0000000C (12) | length of string + +0x17F0 | 63 70 70 5F 70 74 72 5F | char[12] | cpp_ptr_ | string literal + +0x17F8 | 74 79 70 65 | | type + +0x17FC | 00 | char | 0x00 (0) | string terminator padding: - +0x17FD | 00 00 00 | uint8_t[3] | ... | padding + +0x17FD | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Type): - +0x1800 | C0 EB FF FF | SOffset32 | 0xFFFFEBC0 (-5184) Loc: +0x2C40 | offset to vtable - +0x1804 | 00 00 | uint8_t[2] | .. | padding - +0x1806 | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) - +0x1807 | 0A | uint8_t | 0x0A (10) | table field `element` (Byte) - +0x1808 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `element_size` (UInt) + +0x1800 | C0 EB FF FF | SOffset32 | 0xFFFFEBC0 (-5184) Loc: 0x2C40 | offset to vtable + +0x1804 | 00 00 | uint8_t[2] | .. | padding + +0x1806 | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) + +0x1807 | 0A | uint8_t | 0x0A (10) | table field `element` (Byte) + +0x1808 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `element_size` (UInt) string (reflection.Field.name): - +0x180C | 1F 00 00 00 | uint32_t | 0x0000001F (31) | length of string - +0x1810 | 76 65 63 74 6F 72 5F 6F | char[31] | vector_o | string literal - +0x1818 | 66 5F 6E 6F 6E 5F 6F 77 | | f_non_ow - +0x1820 | 6E 69 6E 67 5F 72 65 66 | | ning_ref - +0x1828 | 65 72 65 6E 63 65 73 | | erences - +0x182F | 00 | char | 0x00 (0) | string terminator + +0x180C | 1F 00 00 00 | uint32_t | 0x0000001F (31) | length of string + +0x1810 | 76 65 63 74 6F 72 5F 6F | char[31] | vector_o | string literal + +0x1818 | 66 5F 6E 6F 6E 5F 6F 77 | | f_non_ow + +0x1820 | 6E 69 6E 67 5F 72 65 66 | | ning_ref + +0x1828 | 65 72 65 6E 63 65 73 | | erences + +0x182F | 00 | char | 0x00 (0) | string terminator table (reflection.Field): - +0x1830 | 38 ED FF FF | SOffset32 | 0xFFFFED38 (-4808) Loc: +0x2AF8 | offset to vtable - +0x1834 | 29 00 | uint16_t | 0x0029 (41) | table field `id` (UShort) - +0x1836 | 56 00 | uint16_t | 0x0056 (86) | table field `offset` (UShort) - +0x1838 | FC 00 00 00 | UOffset32 | 0x000000FC (252) Loc: +0x1934 | offset to field `name` (string) - +0x183C | E8 00 00 00 | UOffset32 | 0x000000E8 (232) Loc: +0x1924 | offset to field `type` (table) - +0x1840 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1844 | offset to field `attributes` (vector) + +0x1830 | 38 ED FF FF | SOffset32 | 0xFFFFED38 (-4808) Loc: 0x2AF8 | offset to vtable + +0x1834 | 29 00 | uint16_t | 0x0029 (41) | table field `id` (UShort) + +0x1836 | 56 00 | uint16_t | 0x0056 (86) | table field `offset` (UShort) + +0x1838 | FC 00 00 00 | UOffset32 | 0x000000FC (252) Loc: 0x1934 | offset to field `name` (string) + +0x183C | E8 00 00 00 | UOffset32 | 0x000000E8 (232) Loc: 0x1924 | offset to field `type` (table) + +0x1840 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1844 | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x1844 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of vector (# items) - +0x1848 | B0 00 00 00 | UOffset32 | 0x000000B0 (176) Loc: +0x18F8 | offset to table[0] - +0x184C | 80 00 00 00 | UOffset32 | 0x00000080 (128) Loc: +0x18CC | offset to table[1] - +0x1850 | 50 00 00 00 | UOffset32 | 0x00000050 (80) Loc: +0x18A0 | offset to table[2] - +0x1854 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x1878 | offset to table[3] - +0x1858 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x185C | offset to table[4] + +0x1844 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of vector (# items) + +0x1848 | B0 00 00 00 | UOffset32 | 0x000000B0 (176) Loc: 0x18F8 | offset to table[0] + +0x184C | 80 00 00 00 | UOffset32 | 0x00000080 (128) Loc: 0x18CC | offset to table[1] + +0x1850 | 50 00 00 00 | UOffset32 | 0x00000050 (80) Loc: 0x18A0 | offset to table[2] + +0x1854 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: 0x1878 | offset to table[3] + +0x1858 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x185C | offset to table[4] table (reflection.KeyValue): - +0x185C | 94 DF FF FF | SOffset32 | 0xFFFFDF94 (-8300) Loc: +0x38C8 | offset to vtable - +0x1860 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1870 | offset to field `key` (string) - +0x1864 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1868 | offset to field `value` (string) + +0x185C | 94 DF FF FF | SOffset32 | 0xFFFFDF94 (-8300) Loc: 0x38C8 | offset to vtable + +0x1860 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x1870 | offset to field `key` (string) + +0x1864 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1868 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1868 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x186C | 34 31 | char[2] | 41 | string literal - +0x186E | 00 | char | 0x00 (0) | string terminator + +0x1868 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x186C | 34 31 | char[2] | 41 | string literal + +0x186E | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x1870 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x1874 | 69 64 | char[2] | id | string literal - +0x1876 | 00 | char | 0x00 (0) | string terminator + +0x1870 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1874 | 69 64 | char[2] | id | string literal + +0x1876 | 00 | char | 0x00 (0) | string terminator table (reflection.KeyValue): - +0x1878 | B0 DF FF FF | SOffset32 | 0xFFFFDFB0 (-8272) Loc: +0x38C8 | offset to vtable - +0x187C | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x1894 | offset to field `key` (string) - +0x1880 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1884 | offset to field `value` (string) + +0x1878 | B0 DF FF FF | SOffset32 | 0xFFFFDFB0 (-8272) Loc: 0x38C8 | offset to vtable + +0x187C | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: 0x1894 | offset to field `key` (string) + +0x1880 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1884 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1884 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string - +0x1888 | 66 6E 76 31 61 5F 36 34 | char[8] | fnv1a_64 | string literal - +0x1890 | 00 | char | 0x00 (0) | string terminator + +0x1884 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string + +0x1888 | 66 6E 76 31 61 5F 36 34 | char[8] | fnv1a_64 | string literal + +0x1890 | 00 | char | 0x00 (0) | string terminator padding: - +0x1891 | 00 00 00 | uint8_t[3] | ... | padding + +0x1891 | 00 00 00 | uint8_t[3] | ... | padding string (reflection.KeyValue.key): - +0x1894 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string - +0x1898 | 68 61 73 68 | char[4] | hash | string literal - +0x189C | 00 | char | 0x00 (0) | string terminator + +0x1894 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string + +0x1898 | 68 61 73 68 | char[4] | hash | string literal + +0x189C | 00 | char | 0x00 (0) | string terminator padding: - +0x189D | 00 00 00 | uint8_t[3] | ... | padding + +0x189D | 00 00 00 | uint8_t[3] | ... | padding table (reflection.KeyValue): - +0x18A0 | D8 DF FF FF | SOffset32 | 0xFFFFDFD8 (-8232) Loc: +0x38C8 | offset to vtable - +0x18A4 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x18BC | offset to field `key` (string) - +0x18A8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x18AC | offset to field `value` (string) + +0x18A0 | D8 DF FF FF | SOffset32 | 0xFFFFDFD8 (-8232) Loc: 0x38C8 | offset to vtable + +0x18A4 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: 0x18BC | offset to field `key` (string) + +0x18A8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x18AC | offset to field `value` (string) string (reflection.KeyValue.value): - +0x18AC | 0B 00 00 00 | uint32_t | 0x0000000B (11) | length of string - +0x18B0 | 52 65 66 65 72 72 61 62 | char[11] | Referrab | string literal - +0x18B8 | 6C 65 54 | | leT - +0x18BB | 00 | char | 0x00 (0) | string terminator + +0x18AC | 0B 00 00 00 | uint32_t | 0x0000000B (11) | length of string + +0x18B0 | 52 65 66 65 72 72 61 62 | char[11] | Referrab | string literal + +0x18B8 | 6C 65 54 | | leT + +0x18BB | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x18BC | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string - +0x18C0 | 63 70 70 5F 74 79 70 65 | char[8] | cpp_type | string literal - +0x18C8 | 00 | char | 0x00 (0) | string terminator + +0x18BC | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string + +0x18C0 | 63 70 70 5F 74 79 70 65 | char[8] | cpp_type | string literal + +0x18C8 | 00 | char | 0x00 (0) | string terminator padding: - +0x18C9 | 00 00 00 | uint8_t[3] | ... | padding + +0x18C9 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.KeyValue): - +0x18CC | 04 E0 FF FF | SOffset32 | 0xFFFFE004 (-8188) Loc: +0x38C8 | offset to vtable - +0x18D0 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x18E0 | offset to field `key` (string) - +0x18D4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x18D8 | offset to field `value` (string) + +0x18CC | 04 E0 FF FF | SOffset32 | 0xFFFFE004 (-8188) Loc: 0x38C8 | offset to vtable + +0x18D0 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x18E0 | offset to field `key` (string) + +0x18D4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x18D8 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x18D8 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of string - +0x18DC | 00 | char | 0x00 (0) | string terminator + +0x18D8 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of string + +0x18DC | 00 | char | 0x00 (0) | string terminator padding: - +0x18DD | 00 00 00 | uint8_t[3] | ... | padding + +0x18DD | 00 00 00 | uint8_t[3] | ... | padding string (reflection.KeyValue.key): - +0x18E0 | 10 00 00 00 | uint32_t | 0x00000010 (16) | length of string - +0x18E4 | 63 70 70 5F 70 74 72 5F | char[16] | cpp_ptr_ | string literal - +0x18EC | 74 79 70 65 5F 67 65 74 | | type_get - +0x18F4 | 00 | char | 0x00 (0) | string terminator + +0x18E0 | 10 00 00 00 | uint32_t | 0x00000010 (16) | length of string + +0x18E4 | 63 70 70 5F 70 74 72 5F | char[16] | cpp_ptr_ | string literal + +0x18EC | 74 79 70 65 5F 67 65 74 | | type_get + +0x18F4 | 00 | char | 0x00 (0) | string terminator padding: - +0x18F5 | 00 00 00 | uint8_t[3] | ... | padding + +0x18F5 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.KeyValue): - +0x18F8 | 30 E0 FF FF | SOffset32 | 0xFFFFE030 (-8144) Loc: +0x38C8 | offset to vtable - +0x18FC | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x1910 | offset to field `key` (string) - +0x1900 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1904 | offset to field `value` (string) + +0x18F8 | 30 E0 FF FF | SOffset32 | 0xFFFFE030 (-8144) Loc: 0x38C8 | offset to vtable + +0x18FC | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: 0x1910 | offset to field `key` (string) + +0x1900 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1904 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1904 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string - +0x1908 | 6E 61 6B 65 64 | char[5] | naked | string literal - +0x190D | 00 | char | 0x00 (0) | string terminator + +0x1904 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string + +0x1908 | 6E 61 6B 65 64 | char[5] | naked | string literal + +0x190D | 00 | char | 0x00 (0) | string terminator padding: - +0x190E | 00 00 | uint8_t[2] | .. | padding + +0x190E | 00 00 | uint8_t[2] | .. | padding string (reflection.KeyValue.key): - +0x1910 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | length of string - +0x1914 | 63 70 70 5F 70 74 72 5F | char[12] | cpp_ptr_ | string literal - +0x191C | 74 79 70 65 | | type - +0x1920 | 00 | char | 0x00 (0) | string terminator + +0x1910 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | length of string + +0x1914 | 63 70 70 5F 70 74 72 5F | char[12] | cpp_ptr_ | string literal + +0x191C | 74 79 70 65 | | type + +0x1920 | 00 | char | 0x00 (0) | string terminator padding: - +0x1921 | 00 00 00 | uint8_t[3] | ... | padding + +0x1921 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Type): - +0x1924 | B0 E2 FF FF | SOffset32 | 0xFFFFE2B0 (-7504) Loc: +0x3674 | offset to vtable - +0x1928 | 00 00 00 | uint8_t[3] | ... | padding - +0x192B | 0A | uint8_t | 0x0A (10) | table field `base_type` (Byte) - +0x192C | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt) - +0x1930 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x1924 | B0 E2 FF FF | SOffset32 | 0xFFFFE2B0 (-7504) Loc: 0x3674 | offset to vtable + +0x1928 | 00 00 00 | uint8_t[3] | ... | padding + +0x192B | 0A | uint8_t | 0x0A (10) | table field `base_type` (Byte) + +0x192C | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt) + +0x1930 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x1934 | 14 00 00 00 | uint32_t | 0x00000014 (20) | length of string - +0x1938 | 6E 6F 6E 5F 6F 77 6E 69 | char[20] | non_owni | string literal - +0x1940 | 6E 67 5F 72 65 66 65 72 | | ng_refer - +0x1948 | 65 6E 63 65 | | ence - +0x194C | 00 | char | 0x00 (0) | string terminator + +0x1934 | 14 00 00 00 | uint32_t | 0x00000014 (20) | length of string + +0x1938 | 6E 6F 6E 5F 6F 77 6E 69 | char[20] | non_owni | string literal + +0x1940 | 6E 67 5F 72 65 66 65 72 | | ng_refer + +0x1948 | 65 6E 63 65 | | ence + +0x194C | 00 | char | 0x00 (0) | string terminator padding: - +0x194D | 00 00 00 | uint8_t[3] | ... | padding + +0x194D | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Field): - +0x1950 | 68 ED FF FF | SOffset32 | 0xFFFFED68 (-4760) Loc: +0x2BE8 | offset to vtable - +0x1954 | 00 00 00 | uint8_t[3] | ... | padding - +0x1957 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x1958 | 28 00 | uint16_t | 0x0028 (40) | table field `id` (UShort) - +0x195A | 54 00 | uint16_t | 0x0054 (84) | table field `offset` (UShort) - +0x195C | 08 01 00 00 | UOffset32 | 0x00000108 (264) Loc: +0x1A64 | offset to field `name` (string) - +0x1960 | F8 00 00 00 | UOffset32 | 0x000000F8 (248) Loc: +0x1A58 | offset to field `type` (table) - +0x1964 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1968 | offset to field `attributes` (vector) + +0x1950 | 68 ED FF FF | SOffset32 | 0xFFFFED68 (-4760) Loc: 0x2BE8 | offset to vtable + +0x1954 | 00 00 00 | uint8_t[3] | ... | padding + +0x1957 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x1958 | 28 00 | uint16_t | 0x0028 (40) | table field `id` (UShort) + +0x195A | 54 00 | uint16_t | 0x0054 (84) | table field `offset` (UShort) + +0x195C | 08 01 00 00 | UOffset32 | 0x00000108 (264) Loc: 0x1A64 | offset to field `name` (string) + +0x1960 | F8 00 00 00 | UOffset32 | 0x000000F8 (248) Loc: 0x1A58 | offset to field `type` (table) + +0x1964 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1968 | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x1968 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of vector (# items) - +0x196C | B4 00 00 00 | UOffset32 | 0x000000B4 (180) Loc: +0x1A20 | offset to table[0] - +0x1970 | 80 00 00 00 | UOffset32 | 0x00000080 (128) Loc: +0x19F0 | offset to table[1] - +0x1974 | 50 00 00 00 | UOffset32 | 0x00000050 (80) Loc: +0x19C4 | offset to table[2] - +0x1978 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x199C | offset to table[3] - +0x197C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1980 | offset to table[4] + +0x1968 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of vector (# items) + +0x196C | B4 00 00 00 | UOffset32 | 0x000000B4 (180) Loc: 0x1A20 | offset to table[0] + +0x1970 | 80 00 00 00 | UOffset32 | 0x00000080 (128) Loc: 0x19F0 | offset to table[1] + +0x1974 | 50 00 00 00 | UOffset32 | 0x00000050 (80) Loc: 0x19C4 | offset to table[2] + +0x1978 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: 0x199C | offset to table[3] + +0x197C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1980 | offset to table[4] table (reflection.KeyValue): - +0x1980 | B8 E0 FF FF | SOffset32 | 0xFFFFE0B8 (-8008) Loc: +0x38C8 | offset to vtable - +0x1984 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1994 | offset to field `key` (string) - +0x1988 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x198C | offset to field `value` (string) + +0x1980 | B8 E0 FF FF | SOffset32 | 0xFFFFE0B8 (-8008) Loc: 0x38C8 | offset to vtable + +0x1984 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x1994 | offset to field `key` (string) + +0x1988 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x198C | offset to field `value` (string) string (reflection.KeyValue.value): - +0x198C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x1990 | 34 30 | char[2] | 40 | string literal - +0x1992 | 00 | char | 0x00 (0) | string terminator + +0x198C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1990 | 34 30 | char[2] | 40 | string literal + +0x1992 | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x1994 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x1998 | 69 64 | char[2] | id | string literal - +0x199A | 00 | char | 0x00 (0) | string terminator + +0x1994 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1998 | 69 64 | char[2] | id | string literal + +0x199A | 00 | char | 0x00 (0) | string terminator table (reflection.KeyValue): - +0x199C | D4 E0 FF FF | SOffset32 | 0xFFFFE0D4 (-7980) Loc: +0x38C8 | offset to vtable - +0x19A0 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x19B8 | offset to field `key` (string) - +0x19A4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x19A8 | offset to field `value` (string) + +0x199C | D4 E0 FF FF | SOffset32 | 0xFFFFE0D4 (-7980) Loc: 0x38C8 | offset to vtable + +0x19A0 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: 0x19B8 | offset to field `key` (string) + +0x19A4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x19A8 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x19A8 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string - +0x19AC | 66 6E 76 31 61 5F 36 34 | char[8] | fnv1a_64 | string literal - +0x19B4 | 00 | char | 0x00 (0) | string terminator + +0x19A8 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string + +0x19AC | 66 6E 76 31 61 5F 36 34 | char[8] | fnv1a_64 | string literal + +0x19B4 | 00 | char | 0x00 (0) | string terminator padding: - +0x19B5 | 00 00 00 | uint8_t[3] | ... | padding + +0x19B5 | 00 00 00 | uint8_t[3] | ... | padding string (reflection.KeyValue.key): - +0x19B8 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string - +0x19BC | 68 61 73 68 | char[4] | hash | string literal - +0x19C0 | 00 | char | 0x00 (0) | string terminator + +0x19B8 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string + +0x19BC | 68 61 73 68 | char[4] | hash | string literal + +0x19C0 | 00 | char | 0x00 (0) | string terminator padding: - +0x19C1 | 00 00 00 | uint8_t[3] | ... | padding + +0x19C1 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.KeyValue): - +0x19C4 | FC E0 FF FF | SOffset32 | 0xFFFFE0FC (-7940) Loc: +0x38C8 | offset to vtable - +0x19C8 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x19E0 | offset to field `key` (string) - +0x19CC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x19D0 | offset to field `value` (string) + +0x19C4 | FC E0 FF FF | SOffset32 | 0xFFFFE0FC (-7940) Loc: 0x38C8 | offset to vtable + +0x19C8 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: 0x19E0 | offset to field `key` (string) + +0x19CC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x19D0 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x19D0 | 0B 00 00 00 | uint32_t | 0x0000000B (11) | length of string - +0x19D4 | 52 65 66 65 72 72 61 62 | char[11] | Referrab | string literal - +0x19DC | 6C 65 54 | | leT - +0x19DF | 00 | char | 0x00 (0) | string terminator + +0x19D0 | 0B 00 00 00 | uint32_t | 0x0000000B (11) | length of string + +0x19D4 | 52 65 66 65 72 72 61 62 | char[11] | Referrab | string literal + +0x19DC | 6C 65 54 | | leT + +0x19DF | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x19E0 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string - +0x19E4 | 63 70 70 5F 74 79 70 65 | char[8] | cpp_type | string literal - +0x19EC | 00 | char | 0x00 (0) | string terminator + +0x19E0 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string + +0x19E4 | 63 70 70 5F 74 79 70 65 | char[8] | cpp_type | string literal + +0x19EC | 00 | char | 0x00 (0) | string terminator padding: - +0x19ED | 00 00 00 | uint8_t[3] | ... | padding + +0x19ED | 00 00 00 | uint8_t[3] | ... | padding table (reflection.KeyValue): - +0x19F0 | 28 E1 FF FF | SOffset32 | 0xFFFFE128 (-7896) Loc: +0x38C8 | offset to vtable - +0x19F4 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x1A08 | offset to field `key` (string) - +0x19F8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x19FC | offset to field `value` (string) + +0x19F0 | 28 E1 FF FF | SOffset32 | 0xFFFFE128 (-7896) Loc: 0x38C8 | offset to vtable + +0x19F4 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: 0x1A08 | offset to field `key` (string) + +0x19F8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x19FC | offset to field `value` (string) string (reflection.KeyValue.value): - +0x19FC | 06 00 00 00 | uint32_t | 0x00000006 (6) | length of string - +0x1A00 | 2E 67 65 74 28 29 | char[6] | .get() | string literal - +0x1A06 | 00 | char | 0x00 (0) | string terminator + +0x19FC | 06 00 00 00 | uint32_t | 0x00000006 (6) | length of string + +0x1A00 | 2E 67 65 74 28 29 | char[6] | .get() | string literal + +0x1A06 | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x1A08 | 10 00 00 00 | uint32_t | 0x00000010 (16) | length of string - +0x1A0C | 63 70 70 5F 70 74 72 5F | char[16] | cpp_ptr_ | string literal - +0x1A14 | 74 79 70 65 5F 67 65 74 | | type_get - +0x1A1C | 00 | char | 0x00 (0) | string terminator + +0x1A08 | 10 00 00 00 | uint32_t | 0x00000010 (16) | length of string + +0x1A0C | 63 70 70 5F 70 74 72 5F | char[16] | cpp_ptr_ | string literal + +0x1A14 | 74 79 70 65 5F 67 65 74 | | type_get + +0x1A1C | 00 | char | 0x00 (0) | string terminator padding: - +0x1A1D | 00 00 00 | uint8_t[3] | ... | padding + +0x1A1D | 00 00 00 | uint8_t[3] | ... | padding table (reflection.KeyValue): - +0x1A20 | 58 E1 FF FF | SOffset32 | 0xFFFFE158 (-7848) Loc: +0x38C8 | offset to vtable - +0x1A24 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x1A44 | offset to field `key` (string) - +0x1A28 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1A2C | offset to field `value` (string) + +0x1A20 | 58 E1 FF FF | SOffset32 | 0xFFFFE158 (-7848) Loc: 0x38C8 | offset to vtable + +0x1A24 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: 0x1A44 | offset to field `key` (string) + +0x1A28 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1A2C | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1A2C | 10 00 00 00 | uint32_t | 0x00000010 (16) | length of string - +0x1A30 | 64 65 66 61 75 6C 74 5F | char[16] | default_ | string literal - +0x1A38 | 70 74 72 5F 74 79 70 65 | | ptr_type - +0x1A40 | 00 | char | 0x00 (0) | string terminator + +0x1A2C | 10 00 00 00 | uint32_t | 0x00000010 (16) | length of string + +0x1A30 | 64 65 66 61 75 6C 74 5F | char[16] | default_ | string literal + +0x1A38 | 70 74 72 5F 74 79 70 65 | | ptr_type + +0x1A40 | 00 | char | 0x00 (0) | string terminator padding: - +0x1A41 | 00 00 00 | uint8_t[3] | ... | padding + +0x1A41 | 00 00 00 | uint8_t[3] | ... | padding string (reflection.KeyValue.key): - +0x1A44 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | length of string - +0x1A48 | 63 70 70 5F 70 74 72 5F | char[12] | cpp_ptr_ | string literal - +0x1A50 | 74 79 70 65 | | type - +0x1A54 | 00 | char | 0x00 (0) | string terminator + +0x1A44 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | length of string + +0x1A48 | 63 70 70 5F 70 74 72 5F | char[12] | cpp_ptr_ | string literal + +0x1A50 | 74 79 70 65 | | type + +0x1A54 | 00 | char | 0x00 (0) | string terminator padding: - +0x1A55 | 00 00 00 | uint8_t[3] | ... | padding + +0x1A55 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Type): - +0x1A58 | 18 EE FF FF | SOffset32 | 0xFFFFEE18 (-4584) Loc: +0x2C40 | offset to vtable - +0x1A5C | 00 00 | uint8_t[2] | .. | padding - +0x1A5E | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) - +0x1A5F | 0A | uint8_t | 0x0A (10) | table field `element` (Byte) - +0x1A60 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `element_size` (UInt) + +0x1A58 | 18 EE FF FF | SOffset32 | 0xFFFFEE18 (-4584) Loc: 0x2C40 | offset to vtable + +0x1A5C | 00 00 | uint8_t[2] | .. | padding + +0x1A5E | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) + +0x1A5F | 0A | uint8_t | 0x0A (10) | table field `element` (Byte) + +0x1A60 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `element_size` (UInt) string (reflection.Field.name): - +0x1A64 | 1E 00 00 00 | uint32_t | 0x0000001E (30) | length of string - +0x1A68 | 76 65 63 74 6F 72 5F 6F | char[30] | vector_o | string literal - +0x1A70 | 66 5F 63 6F 5F 6F 77 6E | | f_co_own - +0x1A78 | 69 6E 67 5F 72 65 66 65 | | ing_refe - +0x1A80 | 72 65 6E 63 65 73 | | rences - +0x1A86 | 00 | char | 0x00 (0) | string terminator + +0x1A64 | 1E 00 00 00 | uint32_t | 0x0000001E (30) | length of string + +0x1A68 | 76 65 63 74 6F 72 5F 6F | char[30] | vector_o | string literal + +0x1A70 | 66 5F 63 6F 5F 6F 77 6E | | f_co_own + +0x1A78 | 69 6E 67 5F 72 65 66 65 | | ing_refe + +0x1A80 | 72 65 6E 63 65 73 | | rences + +0x1A86 | 00 | char | 0x00 (0) | string terminator table (reflection.Field): - +0x1A88 | 90 EF FF FF | SOffset32 | 0xFFFFEF90 (-4208) Loc: +0x2AF8 | offset to vtable - +0x1A8C | 27 00 | uint16_t | 0x0027 (39) | table field `id` (UShort) - +0x1A8E | 52 00 | uint16_t | 0x0052 (82) | table field `offset` (UShort) - +0x1A90 | CC 00 00 00 | UOffset32 | 0x000000CC (204) Loc: +0x1B5C | offset to field `name` (string) - +0x1A94 | B8 00 00 00 | UOffset32 | 0x000000B8 (184) Loc: +0x1B4C | offset to field `type` (table) - +0x1A98 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1A9C | offset to field `attributes` (vector) + +0x1A88 | 90 EF FF FF | SOffset32 | 0xFFFFEF90 (-4208) Loc: 0x2AF8 | offset to vtable + +0x1A8C | 27 00 | uint16_t | 0x0027 (39) | table field `id` (UShort) + +0x1A8E | 52 00 | uint16_t | 0x0052 (82) | table field `offset` (UShort) + +0x1A90 | CC 00 00 00 | UOffset32 | 0x000000CC (204) Loc: 0x1B5C | offset to field `name` (string) + +0x1A94 | B8 00 00 00 | UOffset32 | 0x000000B8 (184) Loc: 0x1B4C | offset to field `type` (table) + +0x1A98 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1A9C | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x1A9C | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of vector (# items) - +0x1AA0 | 80 00 00 00 | UOffset32 | 0x00000080 (128) Loc: +0x1B20 | offset to table[0] - +0x1AA4 | 50 00 00 00 | UOffset32 | 0x00000050 (80) Loc: +0x1AF4 | offset to table[1] - +0x1AA8 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x1ACC | offset to table[2] - +0x1AAC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1AB0 | offset to table[3] + +0x1A9C | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of vector (# items) + +0x1AA0 | 80 00 00 00 | UOffset32 | 0x00000080 (128) Loc: 0x1B20 | offset to table[0] + +0x1AA4 | 50 00 00 00 | UOffset32 | 0x00000050 (80) Loc: 0x1AF4 | offset to table[1] + +0x1AA8 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: 0x1ACC | offset to table[2] + +0x1AAC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1AB0 | offset to table[3] table (reflection.KeyValue): - +0x1AB0 | E8 E1 FF FF | SOffset32 | 0xFFFFE1E8 (-7704) Loc: +0x38C8 | offset to vtable - +0x1AB4 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1AC4 | offset to field `key` (string) - +0x1AB8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1ABC | offset to field `value` (string) + +0x1AB0 | E8 E1 FF FF | SOffset32 | 0xFFFFE1E8 (-7704) Loc: 0x38C8 | offset to vtable + +0x1AB4 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x1AC4 | offset to field `key` (string) + +0x1AB8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1ABC | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1ABC | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x1AC0 | 33 39 | char[2] | 39 | string literal - +0x1AC2 | 00 | char | 0x00 (0) | string terminator + +0x1ABC | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1AC0 | 33 39 | char[2] | 39 | string literal + +0x1AC2 | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x1AC4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x1AC8 | 69 64 | char[2] | id | string literal - +0x1ACA | 00 | char | 0x00 (0) | string terminator + +0x1AC4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1AC8 | 69 64 | char[2] | id | string literal + +0x1ACA | 00 | char | 0x00 (0) | string terminator table (reflection.KeyValue): - +0x1ACC | 04 E2 FF FF | SOffset32 | 0xFFFFE204 (-7676) Loc: +0x38C8 | offset to vtable - +0x1AD0 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x1AE8 | offset to field `key` (string) - +0x1AD4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1AD8 | offset to field `value` (string) + +0x1ACC | 04 E2 FF FF | SOffset32 | 0xFFFFE204 (-7676) Loc: 0x38C8 | offset to vtable + +0x1AD0 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: 0x1AE8 | offset to field `key` (string) + +0x1AD4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1AD8 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1AD8 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string - +0x1ADC | 66 6E 76 31 61 5F 36 34 | char[8] | fnv1a_64 | string literal - +0x1AE4 | 00 | char | 0x00 (0) | string terminator + +0x1AD8 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string + +0x1ADC | 66 6E 76 31 61 5F 36 34 | char[8] | fnv1a_64 | string literal + +0x1AE4 | 00 | char | 0x00 (0) | string terminator padding: - +0x1AE5 | 00 00 00 | uint8_t[3] | ... | padding + +0x1AE5 | 00 00 00 | uint8_t[3] | ... | padding string (reflection.KeyValue.key): - +0x1AE8 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string - +0x1AEC | 68 61 73 68 | char[4] | hash | string literal - +0x1AF0 | 00 | char | 0x00 (0) | string terminator + +0x1AE8 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string + +0x1AEC | 68 61 73 68 | char[4] | hash | string literal + +0x1AF0 | 00 | char | 0x00 (0) | string terminator padding: - +0x1AF1 | 00 00 00 | uint8_t[3] | ... | padding + +0x1AF1 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.KeyValue): - +0x1AF4 | 2C E2 FF FF | SOffset32 | 0xFFFFE22C (-7636) Loc: +0x38C8 | offset to vtable - +0x1AF8 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x1B10 | offset to field `key` (string) - +0x1AFC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1B00 | offset to field `value` (string) + +0x1AF4 | 2C E2 FF FF | SOffset32 | 0xFFFFE22C (-7636) Loc: 0x38C8 | offset to vtable + +0x1AF8 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: 0x1B10 | offset to field `key` (string) + +0x1AFC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1B00 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1B00 | 0B 00 00 00 | uint32_t | 0x0000000B (11) | length of string - +0x1B04 | 52 65 66 65 72 72 61 62 | char[11] | Referrab | string literal - +0x1B0C | 6C 65 54 | | leT - +0x1B0F | 00 | char | 0x00 (0) | string terminator + +0x1B00 | 0B 00 00 00 | uint32_t | 0x0000000B (11) | length of string + +0x1B04 | 52 65 66 65 72 72 61 62 | char[11] | Referrab | string literal + +0x1B0C | 6C 65 54 | | leT + +0x1B0F | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x1B10 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string - +0x1B14 | 63 70 70 5F 74 79 70 65 | char[8] | cpp_type | string literal - +0x1B1C | 00 | char | 0x00 (0) | string terminator + +0x1B10 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string + +0x1B14 | 63 70 70 5F 74 79 70 65 | char[8] | cpp_type | string literal + +0x1B1C | 00 | char | 0x00 (0) | string terminator padding: - +0x1B1D | 00 00 00 | uint8_t[3] | ... | padding + +0x1B1D | 00 00 00 | uint8_t[3] | ... | padding table (reflection.KeyValue): - +0x1B20 | 58 E2 FF FF | SOffset32 | 0xFFFFE258 (-7592) Loc: +0x38C8 | offset to vtable - +0x1B24 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x1B38 | offset to field `key` (string) - +0x1B28 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1B2C | offset to field `value` (string) + +0x1B20 | 58 E2 FF FF | SOffset32 | 0xFFFFE258 (-7592) Loc: 0x38C8 | offset to vtable + +0x1B24 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: 0x1B38 | offset to field `key` (string) + +0x1B28 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1B2C | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1B2C | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string - +0x1B30 | 6E 61 6B 65 64 | char[5] | naked | string literal - +0x1B35 | 00 | char | 0x00 (0) | string terminator + +0x1B2C | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string + +0x1B30 | 6E 61 6B 65 64 | char[5] | naked | string literal + +0x1B35 | 00 | char | 0x00 (0) | string terminator padding: - +0x1B36 | 00 00 | uint8_t[2] | .. | padding + +0x1B36 | 00 00 | uint8_t[2] | .. | padding string (reflection.KeyValue.key): - +0x1B38 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | length of string - +0x1B3C | 63 70 70 5F 70 74 72 5F | char[12] | cpp_ptr_ | string literal - +0x1B44 | 74 79 70 65 | | type - +0x1B48 | 00 | char | 0x00 (0) | string terminator + +0x1B38 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | length of string + +0x1B3C | 63 70 70 5F 70 74 72 5F | char[12] | cpp_ptr_ | string literal + +0x1B44 | 74 79 70 65 | | type + +0x1B48 | 00 | char | 0x00 (0) | string terminator padding: - +0x1B49 | 00 00 00 | uint8_t[3] | ... | padding + +0x1B49 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Type): - +0x1B4C | D8 E4 FF FF | SOffset32 | 0xFFFFE4D8 (-6952) Loc: +0x3674 | offset to vtable - +0x1B50 | 00 00 00 | uint8_t[3] | ... | padding - +0x1B53 | 0A | uint8_t | 0x0A (10) | table field `base_type` (Byte) - +0x1B54 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt) - +0x1B58 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x1B4C | D8 E4 FF FF | SOffset32 | 0xFFFFE4D8 (-6952) Loc: 0x3674 | offset to vtable + +0x1B50 | 00 00 00 | uint8_t[3] | ... | padding + +0x1B53 | 0A | uint8_t | 0x0A (10) | table field `base_type` (Byte) + +0x1B54 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt) + +0x1B58 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x1B5C | 13 00 00 00 | uint32_t | 0x00000013 (19) | length of string - +0x1B60 | 63 6F 5F 6F 77 6E 69 6E | char[19] | co_ownin | string literal - +0x1B68 | 67 5F 72 65 66 65 72 65 | | g_refere - +0x1B70 | 6E 63 65 | | nce - +0x1B73 | 00 | char | 0x00 (0) | string terminator + +0x1B5C | 13 00 00 00 | uint32_t | 0x00000013 (19) | length of string + +0x1B60 | 63 6F 5F 6F 77 6E 69 6E | char[19] | co_ownin | string literal + +0x1B68 | 67 5F 72 65 66 65 72 65 | | g_refere + +0x1B70 | 6E 63 65 | | nce + +0x1B73 | 00 | char | 0x00 (0) | string terminator table (reflection.Field): - +0x1B74 | 8C EF FF FF | SOffset32 | 0xFFFFEF8C (-4212) Loc: +0x2BE8 | offset to vtable - +0x1B78 | 00 00 00 | uint8_t[3] | ... | padding - +0x1B7B | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x1B7C | 26 00 | uint16_t | 0x0026 (38) | table field `id` (UShort) - +0x1B7E | 50 00 | uint16_t | 0x0050 (80) | table field `offset` (UShort) - +0x1B80 | 7C 00 00 00 | UOffset32 | 0x0000007C (124) Loc: +0x1BFC | offset to field `name` (string) - +0x1B84 | 68 00 00 00 | UOffset32 | 0x00000068 (104) Loc: +0x1BEC | offset to field `type` (table) - +0x1B88 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1B8C | offset to field `attributes` (vector) + +0x1B74 | 8C EF FF FF | SOffset32 | 0xFFFFEF8C (-4212) Loc: 0x2BE8 | offset to vtable + +0x1B78 | 00 00 00 | uint8_t[3] | ... | padding + +0x1B7B | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x1B7C | 26 00 | uint16_t | 0x0026 (38) | table field `id` (UShort) + +0x1B7E | 50 00 | uint16_t | 0x0050 (80) | table field `offset` (UShort) + +0x1B80 | 7C 00 00 00 | UOffset32 | 0x0000007C (124) Loc: 0x1BFC | offset to field `name` (string) + +0x1B84 | 68 00 00 00 | UOffset32 | 0x00000068 (104) Loc: 0x1BEC | offset to field `type` (table) + +0x1B88 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1B8C | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x1B8C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) - +0x1B90 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x1BB4 | offset to table[0] - +0x1B94 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1B98 | offset to table[1] + +0x1B8C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) + +0x1B90 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: 0x1BB4 | offset to table[0] + +0x1B94 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1B98 | offset to table[1] table (reflection.KeyValue): - +0x1B98 | D0 E2 FF FF | SOffset32 | 0xFFFFE2D0 (-7472) Loc: +0x38C8 | offset to vtable - +0x1B9C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1BAC | offset to field `key` (string) - +0x1BA0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1BA4 | offset to field `value` (string) + +0x1B98 | D0 E2 FF FF | SOffset32 | 0xFFFFE2D0 (-7472) Loc: 0x38C8 | offset to vtable + +0x1B9C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x1BAC | offset to field `key` (string) + +0x1BA0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1BA4 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1BA4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x1BA8 | 33 38 | char[2] | 38 | string literal - +0x1BAA | 00 | char | 0x00 (0) | string terminator + +0x1BA4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1BA8 | 33 38 | char[2] | 38 | string literal + +0x1BAA | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x1BAC | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x1BB0 | 69 64 | char[2] | id | string literal - +0x1BB2 | 00 | char | 0x00 (0) | string terminator + +0x1BAC | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1BB0 | 69 64 | char[2] | id | string literal + +0x1BB2 | 00 | char | 0x00 (0) | string terminator table (reflection.KeyValue): - +0x1BB4 | EC E2 FF FF | SOffset32 | 0xFFFFE2EC (-7444) Loc: +0x38C8 | offset to vtable - +0x1BB8 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x1BD8 | offset to field `key` (string) - +0x1BBC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1BC0 | offset to field `value` (string) + +0x1BB4 | EC E2 FF FF | SOffset32 | 0xFFFFE2EC (-7444) Loc: 0x38C8 | offset to vtable + +0x1BB8 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: 0x1BD8 | offset to field `key` (string) + +0x1BBC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1BC0 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1BC0 | 10 00 00 00 | uint32_t | 0x00000010 (16) | length of string - +0x1BC4 | 64 65 66 61 75 6C 74 5F | char[16] | default_ | string literal - +0x1BCC | 70 74 72 5F 74 79 70 65 | | ptr_type - +0x1BD4 | 00 | char | 0x00 (0) | string terminator + +0x1BC0 | 10 00 00 00 | uint32_t | 0x00000010 (16) | length of string + +0x1BC4 | 64 65 66 61 75 6C 74 5F | char[16] | default_ | string literal + +0x1BCC | 70 74 72 5F 74 79 70 65 | | ptr_type + +0x1BD4 | 00 | char | 0x00 (0) | string terminator padding: - +0x1BD5 | 00 00 00 | uint8_t[3] | ... | padding + +0x1BD5 | 00 00 00 | uint8_t[3] | ... | padding string (reflection.KeyValue.key): - +0x1BD8 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | length of string - +0x1BDC | 63 70 70 5F 70 74 72 5F | char[12] | cpp_ptr_ | string literal - +0x1BE4 | 74 79 70 65 | | type - +0x1BE8 | 00 | char | 0x00 (0) | string terminator + +0x1BD8 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | length of string + +0x1BDC | 63 70 70 5F 70 74 72 5F | char[12] | cpp_ptr_ | string literal + +0x1BE4 | 74 79 70 65 | | type + +0x1BE8 | 00 | char | 0x00 (0) | string terminator padding: - +0x1BE9 | 00 00 00 | uint8_t[3] | ... | padding + +0x1BE9 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Type): - +0x1BEC | 78 F1 FF FF | SOffset32 | 0xFFFFF178 (-3720) Loc: +0x2A74 | offset to vtable - +0x1BF0 | 00 00 | uint8_t[2] | .. | padding - +0x1BF2 | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) - +0x1BF3 | 0F | uint8_t | 0x0F (15) | table field `element` (Byte) - +0x1BF4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | table field `index` (Int) - +0x1BF8 | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `element_size` (UInt) + +0x1BEC | 78 F1 FF FF | SOffset32 | 0xFFFFF178 (-3720) Loc: 0x2A74 | offset to vtable + +0x1BF0 | 00 00 | uint8_t[2] | .. | padding + +0x1BF2 | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) + +0x1BF3 | 0F | uint8_t | 0x0F (15) | table field `element` (Byte) + +0x1BF4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | table field `index` (Int) + +0x1BF8 | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `element_size` (UInt) string (reflection.Field.name): - +0x1BFC | 1C 00 00 00 | uint32_t | 0x0000001C (28) | length of string - +0x1C00 | 76 65 63 74 6F 72 5F 6F | char[28] | vector_o | string literal - +0x1C08 | 66 5F 73 74 72 6F 6E 67 | | f_strong - +0x1C10 | 5F 72 65 66 65 72 72 61 | | _referra - +0x1C18 | 62 6C 65 73 | | bles - +0x1C1C | 00 | char | 0x00 (0) | string terminator + +0x1BFC | 1C 00 00 00 | uint32_t | 0x0000001C (28) | length of string + +0x1C00 | 76 65 63 74 6F 72 5F 6F | char[28] | vector_o | string literal + +0x1C08 | 66 5F 73 74 72 6F 6E 67 | | f_strong + +0x1C10 | 5F 72 65 66 65 72 72 61 | | _referra + +0x1C18 | 62 6C 65 73 | | bles + +0x1C1C | 00 | char | 0x00 (0) | string terminator padding: - +0x1C1D | 00 00 00 | uint8_t[3] | ... | padding + +0x1C1D | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Field): - +0x1C20 | 38 F0 FF FF | SOffset32 | 0xFFFFF038 (-4040) Loc: +0x2BE8 | offset to vtable - +0x1C24 | 00 00 00 | uint8_t[3] | ... | padding - +0x1C27 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x1C28 | 25 00 | uint16_t | 0x0025 (37) | table field `id` (UShort) - +0x1C2A | 4E 00 | uint16_t | 0x004E (78) | table field `offset` (UShort) - +0x1C2C | C8 00 00 00 | UOffset32 | 0x000000C8 (200) Loc: +0x1CF4 | offset to field `name` (string) - +0x1C30 | B8 00 00 00 | UOffset32 | 0x000000B8 (184) Loc: +0x1CE8 | offset to field `type` (table) - +0x1C34 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1C38 | offset to field `attributes` (vector) + +0x1C20 | 38 F0 FF FF | SOffset32 | 0xFFFFF038 (-4040) Loc: 0x2BE8 | offset to vtable + +0x1C24 | 00 00 00 | uint8_t[3] | ... | padding + +0x1C27 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x1C28 | 25 00 | uint16_t | 0x0025 (37) | table field `id` (UShort) + +0x1C2A | 4E 00 | uint16_t | 0x004E (78) | table field `offset` (UShort) + +0x1C2C | C8 00 00 00 | UOffset32 | 0x000000C8 (200) Loc: 0x1CF4 | offset to field `name` (string) + +0x1C30 | B8 00 00 00 | UOffset32 | 0x000000B8 (184) Loc: 0x1CE8 | offset to field `type` (table) + +0x1C34 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1C38 | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x1C38 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of vector (# items) - +0x1C3C | 80 00 00 00 | UOffset32 | 0x00000080 (128) Loc: +0x1CBC | offset to table[0] - +0x1C40 | 50 00 00 00 | UOffset32 | 0x00000050 (80) Loc: +0x1C90 | offset to table[1] - +0x1C44 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x1C68 | offset to table[2] - +0x1C48 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1C4C | offset to table[3] + +0x1C38 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of vector (# items) + +0x1C3C | 80 00 00 00 | UOffset32 | 0x00000080 (128) Loc: 0x1CBC | offset to table[0] + +0x1C40 | 50 00 00 00 | UOffset32 | 0x00000050 (80) Loc: 0x1C90 | offset to table[1] + +0x1C44 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: 0x1C68 | offset to table[2] + +0x1C48 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1C4C | offset to table[3] table (reflection.KeyValue): - +0x1C4C | 84 E3 FF FF | SOffset32 | 0xFFFFE384 (-7292) Loc: +0x38C8 | offset to vtable - +0x1C50 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1C60 | offset to field `key` (string) - +0x1C54 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1C58 | offset to field `value` (string) + +0x1C4C | 84 E3 FF FF | SOffset32 | 0xFFFFE384 (-7292) Loc: 0x38C8 | offset to vtable + +0x1C50 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x1C60 | offset to field `key` (string) + +0x1C54 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1C58 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1C58 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x1C5C | 33 37 | char[2] | 37 | string literal - +0x1C5E | 00 | char | 0x00 (0) | string terminator + +0x1C58 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1C5C | 33 37 | char[2] | 37 | string literal + +0x1C5E | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x1C60 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x1C64 | 69 64 | char[2] | id | string literal - +0x1C66 | 00 | char | 0x00 (0) | string terminator + +0x1C60 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1C64 | 69 64 | char[2] | id | string literal + +0x1C66 | 00 | char | 0x00 (0) | string terminator table (reflection.KeyValue): - +0x1C68 | A0 E3 FF FF | SOffset32 | 0xFFFFE3A0 (-7264) Loc: +0x38C8 | offset to vtable - +0x1C6C | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x1C84 | offset to field `key` (string) - +0x1C70 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1C74 | offset to field `value` (string) + +0x1C68 | A0 E3 FF FF | SOffset32 | 0xFFFFE3A0 (-7264) Loc: 0x38C8 | offset to vtable + +0x1C6C | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: 0x1C84 | offset to field `key` (string) + +0x1C70 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1C74 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1C74 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string - +0x1C78 | 66 6E 76 31 61 5F 36 34 | char[8] | fnv1a_64 | string literal - +0x1C80 | 00 | char | 0x00 (0) | string terminator + +0x1C74 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string + +0x1C78 | 66 6E 76 31 61 5F 36 34 | char[8] | fnv1a_64 | string literal + +0x1C80 | 00 | char | 0x00 (0) | string terminator padding: - +0x1C81 | 00 00 00 | uint8_t[3] | ... | padding + +0x1C81 | 00 00 00 | uint8_t[3] | ... | padding string (reflection.KeyValue.key): - +0x1C84 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string - +0x1C88 | 68 61 73 68 | char[4] | hash | string literal - +0x1C8C | 00 | char | 0x00 (0) | string terminator + +0x1C84 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string + +0x1C88 | 68 61 73 68 | char[4] | hash | string literal + +0x1C8C | 00 | char | 0x00 (0) | string terminator padding: - +0x1C8D | 00 00 00 | uint8_t[3] | ... | padding + +0x1C8D | 00 00 00 | uint8_t[3] | ... | padding table (reflection.KeyValue): - +0x1C90 | C8 E3 FF FF | SOffset32 | 0xFFFFE3C8 (-7224) Loc: +0x38C8 | offset to vtable - +0x1C94 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x1CAC | offset to field `key` (string) - +0x1C98 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1C9C | offset to field `value` (string) + +0x1C90 | C8 E3 FF FF | SOffset32 | 0xFFFFE3C8 (-7224) Loc: 0x38C8 | offset to vtable + +0x1C94 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: 0x1CAC | offset to field `key` (string) + +0x1C98 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1C9C | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1C9C | 0B 00 00 00 | uint32_t | 0x0000000B (11) | length of string - +0x1CA0 | 52 65 66 65 72 72 61 62 | char[11] | Referrab | string literal - +0x1CA8 | 6C 65 54 | | leT - +0x1CAB | 00 | char | 0x00 (0) | string terminator + +0x1C9C | 0B 00 00 00 | uint32_t | 0x0000000B (11) | length of string + +0x1CA0 | 52 65 66 65 72 72 61 62 | char[11] | Referrab | string literal + +0x1CA8 | 6C 65 54 | | leT + +0x1CAB | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x1CAC | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string - +0x1CB0 | 63 70 70 5F 74 79 70 65 | char[8] | cpp_type | string literal - +0x1CB8 | 00 | char | 0x00 (0) | string terminator + +0x1CAC | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string + +0x1CB0 | 63 70 70 5F 74 79 70 65 | char[8] | cpp_type | string literal + +0x1CB8 | 00 | char | 0x00 (0) | string terminator padding: - +0x1CB9 | 00 00 00 | uint8_t[3] | ... | padding + +0x1CB9 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.KeyValue): - +0x1CBC | F4 E3 FF FF | SOffset32 | 0xFFFFE3F4 (-7180) Loc: +0x38C8 | offset to vtable - +0x1CC0 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x1CD4 | offset to field `key` (string) - +0x1CC4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1CC8 | offset to field `value` (string) + +0x1CBC | F4 E3 FF FF | SOffset32 | 0xFFFFE3F4 (-7180) Loc: 0x38C8 | offset to vtable + +0x1CC0 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: 0x1CD4 | offset to field `key` (string) + +0x1CC4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1CC8 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1CC8 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string - +0x1CCC | 6E 61 6B 65 64 | char[5] | naked | string literal - +0x1CD1 | 00 | char | 0x00 (0) | string terminator + +0x1CC8 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string + +0x1CCC | 6E 61 6B 65 64 | char[5] | naked | string literal + +0x1CD1 | 00 | char | 0x00 (0) | string terminator padding: - +0x1CD2 | 00 00 | uint8_t[2] | .. | padding + +0x1CD2 | 00 00 | uint8_t[2] | .. | padding string (reflection.KeyValue.key): - +0x1CD4 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | length of string - +0x1CD8 | 63 70 70 5F 70 74 72 5F | char[12] | cpp_ptr_ | string literal - +0x1CE0 | 74 79 70 65 | | type - +0x1CE4 | 00 | char | 0x00 (0) | string terminator + +0x1CD4 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | length of string + +0x1CD8 | 63 70 70 5F 70 74 72 5F | char[12] | cpp_ptr_ | string literal + +0x1CE0 | 74 79 70 65 | | type + +0x1CE4 | 00 | char | 0x00 (0) | string terminator padding: - +0x1CE5 | 00 00 00 | uint8_t[3] | ... | padding + +0x1CE5 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Type): - +0x1CE8 | A8 F0 FF FF | SOffset32 | 0xFFFFF0A8 (-3928) Loc: +0x2C40 | offset to vtable - +0x1CEC | 00 00 | uint8_t[2] | .. | padding - +0x1CEE | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) - +0x1CEF | 0A | uint8_t | 0x0A (10) | table field `element` (Byte) - +0x1CF0 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `element_size` (UInt) + +0x1CE8 | A8 F0 FF FF | SOffset32 | 0xFFFFF0A8 (-3928) Loc: 0x2C40 | offset to vtable + +0x1CEC | 00 00 | uint8_t[2] | .. | padding + +0x1CEE | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) + +0x1CEF | 0A | uint8_t | 0x0A (10) | table field `element` (Byte) + +0x1CF0 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `element_size` (UInt) string (reflection.Field.name): - +0x1CF4 | 19 00 00 00 | uint32_t | 0x00000019 (25) | length of string - +0x1CF8 | 76 65 63 74 6F 72 5F 6F | char[25] | vector_o | string literal - +0x1D00 | 66 5F 77 65 61 6B 5F 72 | | f_weak_r - +0x1D08 | 65 66 65 72 65 6E 63 65 | | eference - +0x1D10 | 73 | | s - +0x1D11 | 00 | char | 0x00 (0) | string terminator + +0x1CF4 | 19 00 00 00 | uint32_t | 0x00000019 (25) | length of string + +0x1CF8 | 76 65 63 74 6F 72 5F 6F | char[25] | vector_o | string literal + +0x1D00 | 66 5F 77 65 61 6B 5F 72 | | f_weak_r + +0x1D08 | 65 66 65 72 65 6E 63 65 | | eference + +0x1D10 | 73 | | s + +0x1D11 | 00 | char | 0x00 (0) | string terminator padding: - +0x1D12 | 00 00 | uint8_t[2] | .. | padding + +0x1D12 | 00 00 | uint8_t[2] | .. | padding table (reflection.Field): - +0x1D14 | 1C F2 FF FF | SOffset32 | 0xFFFFF21C (-3556) Loc: +0x2AF8 | offset to vtable - +0x1D18 | 24 00 | uint16_t | 0x0024 (36) | table field `id` (UShort) - +0x1D1A | 4C 00 | uint16_t | 0x004C (76) | table field `offset` (UShort) - +0x1D1C | CC 00 00 00 | UOffset32 | 0x000000CC (204) Loc: +0x1DE8 | offset to field `name` (string) - +0x1D20 | B8 00 00 00 | UOffset32 | 0x000000B8 (184) Loc: +0x1DD8 | offset to field `type` (table) - +0x1D24 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1D28 | offset to field `attributes` (vector) + +0x1D14 | 1C F2 FF FF | SOffset32 | 0xFFFFF21C (-3556) Loc: 0x2AF8 | offset to vtable + +0x1D18 | 24 00 | uint16_t | 0x0024 (36) | table field `id` (UShort) + +0x1D1A | 4C 00 | uint16_t | 0x004C (76) | table field `offset` (UShort) + +0x1D1C | CC 00 00 00 | UOffset32 | 0x000000CC (204) Loc: 0x1DE8 | offset to field `name` (string) + +0x1D20 | B8 00 00 00 | UOffset32 | 0x000000B8 (184) Loc: 0x1DD8 | offset to field `type` (table) + +0x1D24 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1D28 | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x1D28 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of vector (# items) - +0x1D2C | 80 00 00 00 | UOffset32 | 0x00000080 (128) Loc: +0x1DAC | offset to table[0] - +0x1D30 | 50 00 00 00 | UOffset32 | 0x00000050 (80) Loc: +0x1D80 | offset to table[1] - +0x1D34 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x1D58 | offset to table[2] - +0x1D38 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1D3C | offset to table[3] + +0x1D28 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of vector (# items) + +0x1D2C | 80 00 00 00 | UOffset32 | 0x00000080 (128) Loc: 0x1DAC | offset to table[0] + +0x1D30 | 50 00 00 00 | UOffset32 | 0x00000050 (80) Loc: 0x1D80 | offset to table[1] + +0x1D34 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: 0x1D58 | offset to table[2] + +0x1D38 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1D3C | offset to table[3] table (reflection.KeyValue): - +0x1D3C | 74 E4 FF FF | SOffset32 | 0xFFFFE474 (-7052) Loc: +0x38C8 | offset to vtable - +0x1D40 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1D50 | offset to field `key` (string) - +0x1D44 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1D48 | offset to field `value` (string) + +0x1D3C | 74 E4 FF FF | SOffset32 | 0xFFFFE474 (-7052) Loc: 0x38C8 | offset to vtable + +0x1D40 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x1D50 | offset to field `key` (string) + +0x1D44 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1D48 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1D48 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x1D4C | 33 36 | char[2] | 36 | string literal - +0x1D4E | 00 | char | 0x00 (0) | string terminator + +0x1D48 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1D4C | 33 36 | char[2] | 36 | string literal + +0x1D4E | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x1D50 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x1D54 | 69 64 | char[2] | id | string literal - +0x1D56 | 00 | char | 0x00 (0) | string terminator + +0x1D50 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1D54 | 69 64 | char[2] | id | string literal + +0x1D56 | 00 | char | 0x00 (0) | string terminator table (reflection.KeyValue): - +0x1D58 | 90 E4 FF FF | SOffset32 | 0xFFFFE490 (-7024) Loc: +0x38C8 | offset to vtable - +0x1D5C | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x1D74 | offset to field `key` (string) - +0x1D60 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1D64 | offset to field `value` (string) + +0x1D58 | 90 E4 FF FF | SOffset32 | 0xFFFFE490 (-7024) Loc: 0x38C8 | offset to vtable + +0x1D5C | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: 0x1D74 | offset to field `key` (string) + +0x1D60 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1D64 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1D64 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string - +0x1D68 | 66 6E 76 31 61 5F 36 34 | char[8] | fnv1a_64 | string literal - +0x1D70 | 00 | char | 0x00 (0) | string terminator + +0x1D64 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string + +0x1D68 | 66 6E 76 31 61 5F 36 34 | char[8] | fnv1a_64 | string literal + +0x1D70 | 00 | char | 0x00 (0) | string terminator padding: - +0x1D71 | 00 00 00 | uint8_t[3] | ... | padding + +0x1D71 | 00 00 00 | uint8_t[3] | ... | padding string (reflection.KeyValue.key): - +0x1D74 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string - +0x1D78 | 68 61 73 68 | char[4] | hash | string literal - +0x1D7C | 00 | char | 0x00 (0) | string terminator + +0x1D74 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string + +0x1D78 | 68 61 73 68 | char[4] | hash | string literal + +0x1D7C | 00 | char | 0x00 (0) | string terminator padding: - +0x1D7D | 00 00 00 | uint8_t[3] | ... | padding + +0x1D7D | 00 00 00 | uint8_t[3] | ... | padding table (reflection.KeyValue): - +0x1D80 | B8 E4 FF FF | SOffset32 | 0xFFFFE4B8 (-6984) Loc: +0x38C8 | offset to vtable - +0x1D84 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x1D9C | offset to field `key` (string) - +0x1D88 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1D8C | offset to field `value` (string) + +0x1D80 | B8 E4 FF FF | SOffset32 | 0xFFFFE4B8 (-6984) Loc: 0x38C8 | offset to vtable + +0x1D84 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: 0x1D9C | offset to field `key` (string) + +0x1D88 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1D8C | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1D8C | 0B 00 00 00 | uint32_t | 0x0000000B (11) | length of string - +0x1D90 | 52 65 66 65 72 72 61 62 | char[11] | Referrab | string literal - +0x1D98 | 6C 65 54 | | leT - +0x1D9B | 00 | char | 0x00 (0) | string terminator + +0x1D8C | 0B 00 00 00 | uint32_t | 0x0000000B (11) | length of string + +0x1D90 | 52 65 66 65 72 72 61 62 | char[11] | Referrab | string literal + +0x1D98 | 6C 65 54 | | leT + +0x1D9B | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x1D9C | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string - +0x1DA0 | 63 70 70 5F 74 79 70 65 | char[8] | cpp_type | string literal - +0x1DA8 | 00 | char | 0x00 (0) | string terminator + +0x1D9C | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string + +0x1DA0 | 63 70 70 5F 74 79 70 65 | char[8] | cpp_type | string literal + +0x1DA8 | 00 | char | 0x00 (0) | string terminator padding: - +0x1DA9 | 00 00 00 | uint8_t[3] | ... | padding + +0x1DA9 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.KeyValue): - +0x1DAC | E4 E4 FF FF | SOffset32 | 0xFFFFE4E4 (-6940) Loc: +0x38C8 | offset to vtable - +0x1DB0 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x1DC4 | offset to field `key` (string) - +0x1DB4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1DB8 | offset to field `value` (string) + +0x1DAC | E4 E4 FF FF | SOffset32 | 0xFFFFE4E4 (-6940) Loc: 0x38C8 | offset to vtable + +0x1DB0 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: 0x1DC4 | offset to field `key` (string) + +0x1DB4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1DB8 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1DB8 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string - +0x1DBC | 6E 61 6B 65 64 | char[5] | naked | string literal - +0x1DC1 | 00 | char | 0x00 (0) | string terminator + +0x1DB8 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string + +0x1DBC | 6E 61 6B 65 64 | char[5] | naked | string literal + +0x1DC1 | 00 | char | 0x00 (0) | string terminator padding: - +0x1DC2 | 00 00 | uint8_t[2] | .. | padding + +0x1DC2 | 00 00 | uint8_t[2] | .. | padding string (reflection.KeyValue.key): - +0x1DC4 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | length of string - +0x1DC8 | 63 70 70 5F 70 74 72 5F | char[12] | cpp_ptr_ | string literal - +0x1DD0 | 74 79 70 65 | | type - +0x1DD4 | 00 | char | 0x00 (0) | string terminator + +0x1DC4 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | length of string + +0x1DC8 | 63 70 70 5F 70 74 72 5F | char[12] | cpp_ptr_ | string literal + +0x1DD0 | 74 79 70 65 | | type + +0x1DD4 | 00 | char | 0x00 (0) | string terminator padding: - +0x1DD5 | 00 00 00 | uint8_t[3] | ... | padding + +0x1DD5 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Type): - +0x1DD8 | 64 E7 FF FF | SOffset32 | 0xFFFFE764 (-6300) Loc: +0x3674 | offset to vtable - +0x1DDC | 00 00 00 | uint8_t[3] | ... | padding - +0x1DDF | 0A | uint8_t | 0x0A (10) | table field `base_type` (Byte) - +0x1DE0 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt) - +0x1DE4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x1DD8 | 64 E7 FF FF | SOffset32 | 0xFFFFE764 (-6300) Loc: 0x3674 | offset to vtable + +0x1DDC | 00 00 00 | uint8_t[3] | ... | padding + +0x1DDF | 0A | uint8_t | 0x0A (10) | table field `base_type` (Byte) + +0x1DE0 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt) + +0x1DE4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x1DE8 | 15 00 00 00 | uint32_t | 0x00000015 (21) | length of string - +0x1DEC | 73 69 6E 67 6C 65 5F 77 | char[21] | single_w | string literal - +0x1DF4 | 65 61 6B 5F 72 65 66 65 | | eak_refe - +0x1DFC | 72 65 6E 63 65 | | rence - +0x1E01 | 00 | char | 0x00 (0) | string terminator + +0x1DE8 | 15 00 00 00 | uint32_t | 0x00000015 (21) | length of string + +0x1DEC | 73 69 6E 67 6C 65 5F 77 | char[21] | single_w | string literal + +0x1DF4 | 65 61 6B 5F 72 65 66 65 | | eak_refe + +0x1DFC | 72 65 6E 63 65 | | rence + +0x1E01 | 00 | char | 0x00 (0) | string terminator padding: - +0x1E02 | 00 00 | uint8_t[2] | .. | padding + +0x1E02 | 00 00 | uint8_t[2] | .. | padding table (reflection.Field): - +0x1E04 | 1C F2 FF FF | SOffset32 | 0xFFFFF21C (-3556) Loc: +0x2BE8 | offset to vtable - +0x1E08 | 00 00 00 | uint8_t[3] | ... | padding - +0x1E0B | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x1E0C | 23 00 | uint16_t | 0x0023 (35) | table field `id` (UShort) - +0x1E0E | 4A 00 | uint16_t | 0x004A (74) | table field `offset` (UShort) - +0x1E10 | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: +0x1E50 | offset to field `name` (string) - +0x1E14 | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: +0x1E40 | offset to field `type` (table) - +0x1E18 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1E1C | offset to field `attributes` (vector) + +0x1E04 | 1C F2 FF FF | SOffset32 | 0xFFFFF21C (-3556) Loc: 0x2BE8 | offset to vtable + +0x1E08 | 00 00 00 | uint8_t[3] | ... | padding + +0x1E0B | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x1E0C | 23 00 | uint16_t | 0x0023 (35) | table field `id` (UShort) + +0x1E0E | 4A 00 | uint16_t | 0x004A (74) | table field `offset` (UShort) + +0x1E10 | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: 0x1E50 | offset to field `name` (string) + +0x1E14 | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: 0x1E40 | offset to field `type` (table) + +0x1E18 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1E1C | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x1E1C | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x1E20 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1E24 | offset to table[0] + +0x1E1C | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x1E20 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1E24 | offset to table[0] table (reflection.KeyValue): - +0x1E24 | 5C E5 FF FF | SOffset32 | 0xFFFFE55C (-6820) Loc: +0x38C8 | offset to vtable - +0x1E28 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1E38 | offset to field `key` (string) - +0x1E2C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1E30 | offset to field `value` (string) + +0x1E24 | 5C E5 FF FF | SOffset32 | 0xFFFFE55C (-6820) Loc: 0x38C8 | offset to vtable + +0x1E28 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x1E38 | offset to field `key` (string) + +0x1E2C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1E30 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1E30 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x1E34 | 33 35 | char[2] | 35 | string literal - +0x1E36 | 00 | char | 0x00 (0) | string terminator + +0x1E30 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1E34 | 33 35 | char[2] | 35 | string literal + +0x1E36 | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x1E38 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x1E3C | 69 64 | char[2] | id | string literal - +0x1E3E | 00 | char | 0x00 (0) | string terminator + +0x1E38 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1E3C | 69 64 | char[2] | id | string literal + +0x1E3E | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x1E40 | CC F3 FF FF | SOffset32 | 0xFFFFF3CC (-3124) Loc: +0x2A74 | offset to vtable - +0x1E44 | 00 00 | uint8_t[2] | .. | padding - +0x1E46 | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) - +0x1E47 | 0F | uint8_t | 0x0F (15) | table field `element` (Byte) - +0x1E48 | 02 00 00 00 | uint32_t | 0x00000002 (2) | table field `index` (Int) - +0x1E4C | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `element_size` (UInt) + +0x1E40 | CC F3 FF FF | SOffset32 | 0xFFFFF3CC (-3124) Loc: 0x2A74 | offset to vtable + +0x1E44 | 00 00 | uint8_t[2] | .. | padding + +0x1E46 | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) + +0x1E47 | 0F | uint8_t | 0x0F (15) | table field `element` (Byte) + +0x1E48 | 02 00 00 00 | uint32_t | 0x00000002 (2) | table field `index` (Int) + +0x1E4C | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `element_size` (UInt) string (reflection.Field.name): - +0x1E50 | 15 00 00 00 | uint32_t | 0x00000015 (21) | length of string - +0x1E54 | 76 65 63 74 6F 72 5F 6F | char[21] | vector_o | string literal - +0x1E5C | 66 5F 72 65 66 65 72 72 | | f_referr - +0x1E64 | 61 62 6C 65 73 | | ables - +0x1E69 | 00 | char | 0x00 (0) | string terminator + +0x1E50 | 15 00 00 00 | uint32_t | 0x00000015 (21) | length of string + +0x1E54 | 76 65 63 74 6F 72 5F 6F | char[21] | vector_o | string literal + +0x1E5C | 66 5F 72 65 66 65 72 72 | | f_referr + +0x1E64 | 61 62 6C 65 73 | | ables + +0x1E69 | 00 | char | 0x00 (0) | string terminator padding: - +0x1E6A | 00 00 | uint8_t[2] | .. | padding + +0x1E6A | 00 00 | uint8_t[2] | .. | padding table (reflection.Field): - +0x1E6C | 84 F2 FF FF | SOffset32 | 0xFFFFF284 (-3452) Loc: +0x2BE8 | offset to vtable - +0x1E70 | 00 00 00 | uint8_t[3] | ... | padding - +0x1E73 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x1E74 | 22 00 | uint16_t | 0x0022 (34) | table field `id` (UShort) - +0x1E76 | 48 00 | uint16_t | 0x0048 (72) | table field `offset` (UShort) - +0x1E78 | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: +0x1EB8 | offset to field `name` (string) - +0x1E7C | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: +0x1EA8 | offset to field `type` (table) - +0x1E80 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1E84 | offset to field `attributes` (vector) + +0x1E6C | 84 F2 FF FF | SOffset32 | 0xFFFFF284 (-3452) Loc: 0x2BE8 | offset to vtable + +0x1E70 | 00 00 00 | uint8_t[3] | ... | padding + +0x1E73 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x1E74 | 22 00 | uint16_t | 0x0022 (34) | table field `id` (UShort) + +0x1E76 | 48 00 | uint16_t | 0x0048 (72) | table field `offset` (UShort) + +0x1E78 | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: 0x1EB8 | offset to field `name` (string) + +0x1E7C | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: 0x1EA8 | offset to field `type` (table) + +0x1E80 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1E84 | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x1E84 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x1E88 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1E8C | offset to table[0] + +0x1E84 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x1E88 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1E8C | offset to table[0] table (reflection.KeyValue): - +0x1E8C | C4 E5 FF FF | SOffset32 | 0xFFFFE5C4 (-6716) Loc: +0x38C8 | offset to vtable - +0x1E90 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1EA0 | offset to field `key` (string) - +0x1E94 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1E98 | offset to field `value` (string) + +0x1E8C | C4 E5 FF FF | SOffset32 | 0xFFFFE5C4 (-6716) Loc: 0x38C8 | offset to vtable + +0x1E90 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x1EA0 | offset to field `key` (string) + +0x1E94 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1E98 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1E98 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x1E9C | 33 34 | char[2] | 34 | string literal - +0x1E9E | 00 | char | 0x00 (0) | string terminator + +0x1E98 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1E9C | 33 34 | char[2] | 34 | string literal + +0x1E9E | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x1EA0 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x1EA4 | 69 64 | char[2] | id | string literal - +0x1EA6 | 00 | char | 0x00 (0) | string terminator + +0x1EA0 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1EA4 | 69 64 | char[2] | id | string literal + +0x1EA6 | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x1EA8 | 90 E6 FF FF | SOffset32 | 0xFFFFE690 (-6512) Loc: +0x3818 | offset to vtable - +0x1EAC | 00 00 00 | uint8_t[3] | ... | padding - +0x1EAF | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) - +0x1EB0 | 0B 00 00 00 | uint32_t | 0x0000000B (11) | table field `index` (Int) - +0x1EB4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x1EA8 | 90 E6 FF FF | SOffset32 | 0xFFFFE690 (-6512) Loc: 0x3818 | offset to vtable + +0x1EAC | 00 00 00 | uint8_t[3] | ... | padding + +0x1EAF | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) + +0x1EB0 | 0B 00 00 00 | uint32_t | 0x0000000B (11) | table field `index` (Int) + +0x1EB4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x1EB8 | 15 00 00 00 | uint32_t | 0x00000015 (21) | length of string - +0x1EBC | 70 61 72 65 6E 74 5F 6E | char[21] | parent_n | string literal - +0x1EC4 | 61 6D 65 73 70 61 63 65 | | amespace - +0x1ECC | 5F 74 65 73 74 | | _test - +0x1ED1 | 00 | char | 0x00 (0) | string terminator + +0x1EB8 | 15 00 00 00 | uint32_t | 0x00000015 (21) | length of string + +0x1EBC | 70 61 72 65 6E 74 5F 6E | char[21] | parent_n | string literal + +0x1EC4 | 61 6D 65 73 70 61 63 65 | | amespace + +0x1ECC | 5F 74 65 73 74 | | _test + +0x1ED1 | 00 | char | 0x00 (0) | string terminator padding: - +0x1ED2 | 00 00 | uint8_t[2] | .. | padding + +0x1ED2 | 00 00 | uint8_t[2] | .. | padding table (reflection.Field): - +0x1ED4 | EC F2 FF FF | SOffset32 | 0xFFFFF2EC (-3348) Loc: +0x2BE8 | offset to vtable - +0x1ED8 | 00 00 00 | uint8_t[3] | ... | padding - +0x1EDB | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x1EDC | 21 00 | uint16_t | 0x0021 (33) | table field `id` (UShort) - +0x1EDE | 46 00 | uint16_t | 0x0046 (70) | table field `offset` (UShort) - +0x1EE0 | 3C 00 00 00 | UOffset32 | 0x0000003C (60) Loc: +0x1F1C | offset to field `name` (string) - +0x1EE4 | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: +0x1F10 | offset to field `type` (table) - +0x1EE8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1EEC | offset to field `attributes` (vector) + +0x1ED4 | EC F2 FF FF | SOffset32 | 0xFFFFF2EC (-3348) Loc: 0x2BE8 | offset to vtable + +0x1ED8 | 00 00 00 | uint8_t[3] | ... | padding + +0x1EDB | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x1EDC | 21 00 | uint16_t | 0x0021 (33) | table field `id` (UShort) + +0x1EDE | 46 00 | uint16_t | 0x0046 (70) | table field `offset` (UShort) + +0x1EE0 | 3C 00 00 00 | UOffset32 | 0x0000003C (60) Loc: 0x1F1C | offset to field `name` (string) + +0x1EE4 | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: 0x1F10 | offset to field `type` (table) + +0x1EE8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1EEC | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x1EEC | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x1EF0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1EF4 | offset to table[0] + +0x1EEC | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x1EF0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1EF4 | offset to table[0] table (reflection.KeyValue): - +0x1EF4 | 2C E6 FF FF | SOffset32 | 0xFFFFE62C (-6612) Loc: +0x38C8 | offset to vtable - +0x1EF8 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1F08 | offset to field `key` (string) - +0x1EFC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1F00 | offset to field `value` (string) + +0x1EF4 | 2C E6 FF FF | SOffset32 | 0xFFFFE62C (-6612) Loc: 0x38C8 | offset to vtable + +0x1EF8 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x1F08 | offset to field `key` (string) + +0x1EFC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1F00 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1F00 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x1F04 | 33 33 | char[2] | 33 | string literal - +0x1F06 | 00 | char | 0x00 (0) | string terminator + +0x1F00 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1F04 | 33 33 | char[2] | 33 | string literal + +0x1F06 | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x1F08 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x1F0C | 69 64 | char[2] | id | string literal - +0x1F0E | 00 | char | 0x00 (0) | string terminator + +0x1F08 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1F0C | 69 64 | char[2] | id | string literal + +0x1F0E | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x1F10 | D0 F2 FF FF | SOffset32 | 0xFFFFF2D0 (-3376) Loc: +0x2C40 | offset to vtable - +0x1F14 | 00 00 | uint8_t[2] | .. | padding - +0x1F16 | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) - +0x1F17 | 0C | uint8_t | 0x0C (12) | table field `element` (Byte) - +0x1F18 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `element_size` (UInt) + +0x1F10 | D0 F2 FF FF | SOffset32 | 0xFFFFF2D0 (-3376) Loc: 0x2C40 | offset to vtable + +0x1F14 | 00 00 | uint8_t[2] | .. | padding + +0x1F16 | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) + +0x1F17 | 0C | uint8_t | 0x0C (12) | table field `element` (Byte) + +0x1F18 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `element_size` (UInt) string (reflection.Field.name): - +0x1F1C | 11 00 00 00 | uint32_t | 0x00000011 (17) | length of string - +0x1F20 | 76 65 63 74 6F 72 5F 6F | char[17] | vector_o | string literal - +0x1F28 | 66 5F 64 6F 75 62 6C 65 | | f_double - +0x1F30 | 73 | | s - +0x1F31 | 00 | char | 0x00 (0) | string terminator + +0x1F1C | 11 00 00 00 | uint32_t | 0x00000011 (17) | length of string + +0x1F20 | 76 65 63 74 6F 72 5F 6F | char[17] | vector_o | string literal + +0x1F28 | 66 5F 64 6F 75 62 6C 65 | | f_double + +0x1F30 | 73 | | s + +0x1F31 | 00 | char | 0x00 (0) | string terminator padding: - +0x1F32 | 00 00 | uint8_t[2] | .. | padding + +0x1F32 | 00 00 | uint8_t[2] | .. | padding table (reflection.Field): - +0x1F34 | 4C F3 FF FF | SOffset32 | 0xFFFFF34C (-3252) Loc: +0x2BE8 | offset to vtable - +0x1F38 | 00 00 00 | uint8_t[3] | ... | padding - +0x1F3B | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x1F3C | 20 00 | uint16_t | 0x0020 (32) | table field `id` (UShort) - +0x1F3E | 44 00 | uint16_t | 0x0044 (68) | table field `offset` (UShort) - +0x1F40 | 3C 00 00 00 | UOffset32 | 0x0000003C (60) Loc: +0x1F7C | offset to field `name` (string) - +0x1F44 | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: +0x1F70 | offset to field `type` (table) - +0x1F48 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1F4C | offset to field `attributes` (vector) + +0x1F34 | 4C F3 FF FF | SOffset32 | 0xFFFFF34C (-3252) Loc: 0x2BE8 | offset to vtable + +0x1F38 | 00 00 00 | uint8_t[3] | ... | padding + +0x1F3B | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x1F3C | 20 00 | uint16_t | 0x0020 (32) | table field `id` (UShort) + +0x1F3E | 44 00 | uint16_t | 0x0044 (68) | table field `offset` (UShort) + +0x1F40 | 3C 00 00 00 | UOffset32 | 0x0000003C (60) Loc: 0x1F7C | offset to field `name` (string) + +0x1F44 | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: 0x1F70 | offset to field `type` (table) + +0x1F48 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1F4C | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x1F4C | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x1F50 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1F54 | offset to table[0] + +0x1F4C | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x1F50 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1F54 | offset to table[0] table (reflection.KeyValue): - +0x1F54 | 8C E6 FF FF | SOffset32 | 0xFFFFE68C (-6516) Loc: +0x38C8 | offset to vtable - +0x1F58 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1F68 | offset to field `key` (string) - +0x1F5C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1F60 | offset to field `value` (string) + +0x1F54 | 8C E6 FF FF | SOffset32 | 0xFFFFE68C (-6516) Loc: 0x38C8 | offset to vtable + +0x1F58 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x1F68 | offset to field `key` (string) + +0x1F5C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1F60 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1F60 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x1F64 | 33 32 | char[2] | 32 | string literal - +0x1F66 | 00 | char | 0x00 (0) | string terminator + +0x1F60 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1F64 | 33 32 | char[2] | 32 | string literal + +0x1F66 | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x1F68 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x1F6C | 69 64 | char[2] | id | string literal - +0x1F6E | 00 | char | 0x00 (0) | string terminator + +0x1F68 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1F6C | 69 64 | char[2] | id | string literal + +0x1F6E | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x1F70 | 30 F3 FF FF | SOffset32 | 0xFFFFF330 (-3280) Loc: +0x2C40 | offset to vtable - +0x1F74 | 00 00 | uint8_t[2] | .. | padding - +0x1F76 | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) - +0x1F77 | 09 | uint8_t | 0x09 (9) | table field `element` (Byte) - +0x1F78 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `element_size` (UInt) + +0x1F70 | 30 F3 FF FF | SOffset32 | 0xFFFFF330 (-3280) Loc: 0x2C40 | offset to vtable + +0x1F74 | 00 00 | uint8_t[2] | .. | padding + +0x1F76 | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) + +0x1F77 | 09 | uint8_t | 0x09 (9) | table field `element` (Byte) + +0x1F78 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `element_size` (UInt) string (reflection.Field.name): - +0x1F7C | 0F 00 00 00 | uint32_t | 0x0000000F (15) | length of string - +0x1F80 | 76 65 63 74 6F 72 5F 6F | char[15] | vector_o | string literal - +0x1F88 | 66 5F 6C 6F 6E 67 73 | | f_longs - +0x1F8F | 00 | char | 0x00 (0) | string terminator + +0x1F7C | 0F 00 00 00 | uint32_t | 0x0000000F (15) | length of string + +0x1F80 | 76 65 63 74 6F 72 5F 6F | char[15] | vector_o | string literal + +0x1F88 | 66 5F 6C 6F 6E 67 73 | | f_longs + +0x1F8F | 00 | char | 0x00 (0) | string terminator table (reflection.Field): - +0x1F90 | A8 F3 FF FF | SOffset32 | 0xFFFFF3A8 (-3160) Loc: +0x2BE8 | offset to vtable - +0x1F94 | 00 00 00 | uint8_t[3] | ... | padding - +0x1F97 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x1F98 | 1F 00 | uint16_t | 0x001F (31) | table field `id` (UShort) - +0x1F9A | 42 00 | uint16_t | 0x0042 (66) | table field `offset` (UShort) - +0x1F9C | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: +0x1FDC | offset to field `name` (string) - +0x1FA0 | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: +0x1FCC | offset to field `type` (table) - +0x1FA4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1FA8 | offset to field `attributes` (vector) + +0x1F90 | A8 F3 FF FF | SOffset32 | 0xFFFFF3A8 (-3160) Loc: 0x2BE8 | offset to vtable + +0x1F94 | 00 00 00 | uint8_t[3] | ... | padding + +0x1F97 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x1F98 | 1F 00 | uint16_t | 0x001F (31) | table field `id` (UShort) + +0x1F9A | 42 00 | uint16_t | 0x0042 (66) | table field `offset` (UShort) + +0x1F9C | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: 0x1FDC | offset to field `name` (string) + +0x1FA0 | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: 0x1FCC | offset to field `type` (table) + +0x1FA4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1FA8 | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x1FA8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x1FAC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1FB0 | offset to table[0] + +0x1FA8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x1FAC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1FB0 | offset to table[0] table (reflection.KeyValue): - +0x1FB0 | E8 E6 FF FF | SOffset32 | 0xFFFFE6E8 (-6424) Loc: +0x38C8 | offset to vtable - +0x1FB4 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x1FC4 | offset to field `key` (string) - +0x1FB8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x1FBC | offset to field `value` (string) + +0x1FB0 | E8 E6 FF FF | SOffset32 | 0xFFFFE6E8 (-6424) Loc: 0x38C8 | offset to vtable + +0x1FB4 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x1FC4 | offset to field `key` (string) + +0x1FB8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x1FBC | offset to field `value` (string) string (reflection.KeyValue.value): - +0x1FBC | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x1FC0 | 33 31 | char[2] | 31 | string literal - +0x1FC2 | 00 | char | 0x00 (0) | string terminator + +0x1FBC | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1FC0 | 33 31 | char[2] | 31 | string literal + +0x1FC2 | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x1FC4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x1FC8 | 69 64 | char[2] | id | string literal - +0x1FCA | 00 | char | 0x00 (0) | string terminator + +0x1FC4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x1FC8 | 69 64 | char[2] | id | string literal + +0x1FCA | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x1FCC | 58 F5 FF FF | SOffset32 | 0xFFFFF558 (-2728) Loc: +0x2A74 | offset to vtable - +0x1FD0 | 00 00 | uint8_t[2] | .. | padding - +0x1FD2 | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) - +0x1FD3 | 0F | uint8_t | 0x0F (15) | table field `element` (Byte) - +0x1FD4 | 06 00 00 00 | uint32_t | 0x00000006 (6) | table field `index` (Int) - +0x1FD8 | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `element_size` (UInt) + +0x1FCC | 58 F5 FF FF | SOffset32 | 0xFFFFF558 (-2728) Loc: 0x2A74 | offset to vtable + +0x1FD0 | 00 00 | uint8_t[2] | .. | padding + +0x1FD2 | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) + +0x1FD3 | 0F | uint8_t | 0x0F (15) | table field `element` (Byte) + +0x1FD4 | 06 00 00 00 | uint32_t | 0x00000006 (6) | table field `index` (Int) + +0x1FD8 | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `element_size` (UInt) string (reflection.Field.name): - +0x1FDC | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string - +0x1FE0 | 74 65 73 74 35 | char[5] | test5 | string literal - +0x1FE5 | 00 | char | 0x00 (0) | string terminator + +0x1FDC | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string + +0x1FE0 | 74 65 73 74 35 | char[5] | test5 | string literal + +0x1FE5 | 00 | char | 0x00 (0) | string terminator padding: - +0x1FE6 | 00 00 | uint8_t[2] | .. | padding + +0x1FE6 | 00 00 | uint8_t[2] | .. | padding table (reflection.Field): - +0x1FE8 | 00 F4 FF FF | SOffset32 | 0xFFFFF400 (-3072) Loc: +0x2BE8 | offset to vtable - +0x1FEC | 00 00 00 | uint8_t[3] | ... | padding - +0x1FEF | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x1FF0 | 1E 00 | uint16_t | 0x001E (30) | table field `id` (UShort) - +0x1FF2 | 40 00 | uint16_t | 0x0040 (64) | table field `offset` (UShort) - +0x1FF4 | 64 00 00 00 | UOffset32 | 0x00000064 (100) Loc: +0x2058 | offset to field `name` (string) - +0x1FF8 | 54 00 00 00 | UOffset32 | 0x00000054 (84) Loc: +0x204C | offset to field `type` (table) - +0x1FFC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2000 | offset to field `attributes` (vector) + +0x1FE8 | 00 F4 FF FF | SOffset32 | 0xFFFFF400 (-3072) Loc: 0x2BE8 | offset to vtable + +0x1FEC | 00 00 00 | uint8_t[3] | ... | padding + +0x1FEF | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x1FF0 | 1E 00 | uint16_t | 0x001E (30) | table field `id` (UShort) + +0x1FF2 | 40 00 | uint16_t | 0x0040 (64) | table field `offset` (UShort) + +0x1FF4 | 64 00 00 00 | UOffset32 | 0x00000064 (100) Loc: 0x2058 | offset to field `name` (string) + +0x1FF8 | 54 00 00 00 | UOffset32 | 0x00000054 (84) Loc: 0x204C | offset to field `type` (table) + +0x1FFC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2000 | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x2000 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) - +0x2004 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x2028 | offset to table[0] - +0x2008 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x200C | offset to table[1] + +0x2000 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) + +0x2004 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: 0x2028 | offset to table[0] + +0x2008 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x200C | offset to table[1] table (reflection.KeyValue): - +0x200C | 44 E7 FF FF | SOffset32 | 0xFFFFE744 (-6332) Loc: +0x38C8 | offset to vtable - +0x2010 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2020 | offset to field `key` (string) - +0x2014 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2018 | offset to field `value` (string) + +0x200C | 44 E7 FF FF | SOffset32 | 0xFFFFE744 (-6332) Loc: 0x38C8 | offset to vtable + +0x2010 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x2020 | offset to field `key` (string) + +0x2014 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2018 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x2018 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x201C | 33 30 | char[2] | 30 | string literal - +0x201E | 00 | char | 0x00 (0) | string terminator + +0x2018 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x201C | 33 30 | char[2] | 30 | string literal + +0x201E | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x2020 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x2024 | 69 64 | char[2] | id | string literal - +0x2026 | 00 | char | 0x00 (0) | string terminator + +0x2020 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2024 | 69 64 | char[2] | id | string literal + +0x2026 | 00 | char | 0x00 (0) | string terminator table (reflection.KeyValue): - +0x2028 | 60 E7 FF FF | SOffset32 | 0xFFFFE760 (-6304) Loc: +0x38C8 | offset to vtable - +0x202C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x203C | offset to field `key` (string) - +0x2030 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2034 | offset to field `value` (string) + +0x2028 | 60 E7 FF FF | SOffset32 | 0xFFFFE760 (-6304) Loc: 0x38C8 | offset to vtable + +0x202C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x203C | offset to field `key` (string) + +0x2030 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2034 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x2034 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x2038 | 30 | char[1] | 0 | string literal - +0x2039 | 00 | char | 0x00 (0) | string terminator + +0x2034 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x2038 | 30 | char[1] | 0 | string literal + +0x2039 | 00 | char | 0x00 (0) | string terminator padding: - +0x203A | 00 00 | uint8_t[2] | .. | padding + +0x203A | 00 00 | uint8_t[2] | .. | padding string (reflection.KeyValue.key): - +0x203C | 0A 00 00 00 | uint32_t | 0x0000000A (10) | length of string - +0x2040 | 66 6C 65 78 62 75 66 66 | char[10] | flexbuff | string literal - +0x2048 | 65 72 | | er - +0x204A | 00 | char | 0x00 (0) | string terminator + +0x203C | 0A 00 00 00 | uint32_t | 0x0000000A (10) | length of string + +0x2040 | 66 6C 65 78 62 75 66 66 | char[10] | flexbuff | string literal + +0x2048 | 65 72 | | er + +0x204A | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x204C | 0C F4 FF FF | SOffset32 | 0xFFFFF40C (-3060) Loc: +0x2C40 | offset to vtable - +0x2050 | 00 00 | uint8_t[2] | .. | padding - +0x2052 | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) - +0x2053 | 04 | uint8_t | 0x04 (4) | table field `element` (Byte) - +0x2054 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x204C | 0C F4 FF FF | SOffset32 | 0xFFFFF40C (-3060) Loc: 0x2C40 | offset to vtable + +0x2050 | 00 00 | uint8_t[2] | .. | padding + +0x2052 | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) + +0x2053 | 04 | uint8_t | 0x04 (4) | table field `element` (Byte) + +0x2054 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x2058 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string - +0x205C | 66 6C 65 78 | char[4] | flex | string literal - +0x2060 | 00 | char | 0x00 (0) | string terminator + +0x2058 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string + +0x205C | 66 6C 65 78 | char[4] | flex | string literal + +0x2060 | 00 | char | 0x00 (0) | string terminator padding: - +0x2061 | 00 00 00 | uint8_t[3] | ... | padding + +0x2061 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Field): - +0x2064 | 7C F4 FF FF | SOffset32 | 0xFFFFF47C (-2948) Loc: +0x2BE8 | offset to vtable - +0x2068 | 00 00 00 | uint8_t[3] | ... | padding - +0x206B | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x206C | 1D 00 | uint16_t | 0x001D (29) | table field `id` (UShort) - +0x206E | 3E 00 | uint16_t | 0x003E (62) | table field `offset` (UShort) - +0x2070 | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: +0x20B0 | offset to field `name` (string) - +0x2074 | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: +0x20A0 | offset to field `type` (table) - +0x2078 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x207C | offset to field `attributes` (vector) + +0x2064 | 7C F4 FF FF | SOffset32 | 0xFFFFF47C (-2948) Loc: 0x2BE8 | offset to vtable + +0x2068 | 00 00 00 | uint8_t[3] | ... | padding + +0x206B | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x206C | 1D 00 | uint16_t | 0x001D (29) | table field `id` (UShort) + +0x206E | 3E 00 | uint16_t | 0x003E (62) | table field `offset` (UShort) + +0x2070 | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: 0x20B0 | offset to field `name` (string) + +0x2074 | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: 0x20A0 | offset to field `type` (table) + +0x2078 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x207C | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x207C | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x2080 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2084 | offset to table[0] + +0x207C | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x2080 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2084 | offset to table[0] table (reflection.KeyValue): - +0x2084 | BC E7 FF FF | SOffset32 | 0xFFFFE7BC (-6212) Loc: +0x38C8 | offset to vtable - +0x2088 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2098 | offset to field `key` (string) - +0x208C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2090 | offset to field `value` (string) + +0x2084 | BC E7 FF FF | SOffset32 | 0xFFFFE7BC (-6212) Loc: 0x38C8 | offset to vtable + +0x2088 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x2098 | offset to field `key` (string) + +0x208C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2090 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x2090 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x2094 | 32 39 | char[2] | 29 | string literal - +0x2096 | 00 | char | 0x00 (0) | string terminator + +0x2090 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2094 | 32 39 | char[2] | 29 | string literal + +0x2096 | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x2098 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x209C | 69 64 | char[2] | id | string literal - +0x209E | 00 | char | 0x00 (0) | string terminator + +0x2098 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x209C | 69 64 | char[2] | id | string literal + +0x209E | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x20A0 | 2C F6 FF FF | SOffset32 | 0xFFFFF62C (-2516) Loc: +0x2A74 | offset to vtable - +0x20A4 | 00 00 | uint8_t[2] | .. | padding - +0x20A6 | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) - +0x20A7 | 0F | uint8_t | 0x0F (15) | table field `element` (Byte) - +0x20A8 | 00 00 00 00 | uint32_t | 0x00000000 (0) | table field `index` (Int) - +0x20AC | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `element_size` (UInt) + +0x20A0 | 2C F6 FF FF | SOffset32 | 0xFFFFF62C (-2516) Loc: 0x2A74 | offset to vtable + +0x20A4 | 00 00 | uint8_t[2] | .. | padding + +0x20A6 | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) + +0x20A7 | 0F | uint8_t | 0x0F (15) | table field `element` (Byte) + +0x20A8 | 00 00 00 00 | uint32_t | 0x00000000 (0) | table field `index` (Int) + +0x20AC | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `element_size` (UInt) string (reflection.Field.name): - +0x20B0 | 17 00 00 00 | uint32_t | 0x00000017 (23) | length of string - +0x20B4 | 74 65 73 74 61 72 72 61 | char[23] | testarra | string literal - +0x20BC | 79 6F 66 73 6F 72 74 65 | | yofsorte - +0x20C4 | 64 73 74 72 75 63 74 | | dstruct - +0x20CB | 00 | char | 0x00 (0) | string terminator + +0x20B0 | 17 00 00 00 | uint32_t | 0x00000017 (23) | length of string + +0x20B4 | 74 65 73 74 61 72 72 61 | char[23] | testarra | string literal + +0x20BC | 79 6F 66 73 6F 72 74 65 | | yofsorte + +0x20C4 | 64 73 74 72 75 63 74 | | dstruct + +0x20CB | 00 | char | 0x00 (0) | string terminator table (reflection.Field): - +0x20CC | E4 F4 FF FF | SOffset32 | 0xFFFFF4E4 (-2844) Loc: +0x2BE8 | offset to vtable - +0x20D0 | 00 00 00 | uint8_t[3] | ... | padding - +0x20D3 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x20D4 | 1C 00 | uint16_t | 0x001C (28) | table field `id` (UShort) - +0x20D6 | 3C 00 | uint16_t | 0x003C (60) | table field `offset` (UShort) - +0x20D8 | 3C 00 00 00 | UOffset32 | 0x0000003C (60) Loc: +0x2114 | offset to field `name` (string) - +0x20DC | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: +0x2108 | offset to field `type` (table) - +0x20E0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x20E4 | offset to field `attributes` (vector) + +0x20CC | E4 F4 FF FF | SOffset32 | 0xFFFFF4E4 (-2844) Loc: 0x2BE8 | offset to vtable + +0x20D0 | 00 00 00 | uint8_t[3] | ... | padding + +0x20D3 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x20D4 | 1C 00 | uint16_t | 0x001C (28) | table field `id` (UShort) + +0x20D6 | 3C 00 | uint16_t | 0x003C (60) | table field `offset` (UShort) + +0x20D8 | 3C 00 00 00 | UOffset32 | 0x0000003C (60) Loc: 0x2114 | offset to field `name` (string) + +0x20DC | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: 0x2108 | offset to field `type` (table) + +0x20E0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x20E4 | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x20E4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x20E8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x20EC | offset to table[0] + +0x20E4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x20E8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x20EC | offset to table[0] table (reflection.KeyValue): - +0x20EC | 24 E8 FF FF | SOffset32 | 0xFFFFE824 (-6108) Loc: +0x38C8 | offset to vtable - +0x20F0 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2100 | offset to field `key` (string) - +0x20F4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x20F8 | offset to field `value` (string) + +0x20EC | 24 E8 FF FF | SOffset32 | 0xFFFFE824 (-6108) Loc: 0x38C8 | offset to vtable + +0x20F0 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x2100 | offset to field `key` (string) + +0x20F4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x20F8 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x20F8 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x20FC | 32 38 | char[2] | 28 | string literal - +0x20FE | 00 | char | 0x00 (0) | string terminator + +0x20F8 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x20FC | 32 38 | char[2] | 28 | string literal + +0x20FE | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x2100 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x2104 | 69 64 | char[2] | id | string literal - +0x2106 | 00 | char | 0x00 (0) | string terminator + +0x2100 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2104 | 69 64 | char[2] | id | string literal + +0x2106 | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x2108 | C8 F4 FF FF | SOffset32 | 0xFFFFF4C8 (-2872) Loc: +0x2C40 | offset to vtable - +0x210C | 00 00 | uint8_t[2] | .. | padding - +0x210E | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) - +0x210F | 0D | uint8_t | 0x0D (13) | table field `element` (Byte) - +0x2110 | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `element_size` (UInt) + +0x2108 | C8 F4 FF FF | SOffset32 | 0xFFFFF4C8 (-2872) Loc: 0x2C40 | offset to vtable + +0x210C | 00 00 | uint8_t[2] | .. | padding + +0x210E | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) + +0x210F | 0D | uint8_t | 0x0D (13) | table field `element` (Byte) + +0x2110 | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `element_size` (UInt) string (reflection.Field.name): - +0x2114 | 12 00 00 00 | uint32_t | 0x00000012 (18) | length of string - +0x2118 | 74 65 73 74 61 72 72 61 | char[18] | testarra | string literal - +0x2120 | 79 6F 66 73 74 72 69 6E | | yofstrin - +0x2128 | 67 32 | | g2 - +0x212A | 00 | char | 0x00 (0) | string terminator + +0x2114 | 12 00 00 00 | uint32_t | 0x00000012 (18) | length of string + +0x2118 | 74 65 73 74 61 72 72 61 | char[18] | testarra | string literal + +0x2120 | 79 6F 66 73 74 72 69 6E | | yofstrin + +0x2128 | 67 32 | | g2 + +0x212A | 00 | char | 0x00 (0) | string terminator table (reflection.Field): - +0x212C | 34 F6 FF FF | SOffset32 | 0xFFFFF634 (-2508) Loc: +0x2AF8 | offset to vtable - +0x2130 | 1B 00 | uint16_t | 0x001B (27) | table field `id` (UShort) - +0x2132 | 3A 00 | uint16_t | 0x003A (58) | table field `offset` (UShort) - +0x2134 | 3C 00 00 00 | UOffset32 | 0x0000003C (60) Loc: +0x2170 | offset to field `name` (string) - +0x2138 | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: +0x2164 | offset to field `type` (table) - +0x213C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2140 | offset to field `attributes` (vector) + +0x212C | 34 F6 FF FF | SOffset32 | 0xFFFFF634 (-2508) Loc: 0x2AF8 | offset to vtable + +0x2130 | 1B 00 | uint16_t | 0x001B (27) | table field `id` (UShort) + +0x2132 | 3A 00 | uint16_t | 0x003A (58) | table field `offset` (UShort) + +0x2134 | 3C 00 00 00 | UOffset32 | 0x0000003C (60) Loc: 0x2170 | offset to field `name` (string) + +0x2138 | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: 0x2164 | offset to field `type` (table) + +0x213C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2140 | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x2140 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x2144 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2148 | offset to table[0] + +0x2140 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x2144 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2148 | offset to table[0] table (reflection.KeyValue): - +0x2148 | 80 E8 FF FF | SOffset32 | 0xFFFFE880 (-6016) Loc: +0x38C8 | offset to vtable - +0x214C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x215C | offset to field `key` (string) - +0x2150 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2154 | offset to field `value` (string) + +0x2148 | 80 E8 FF FF | SOffset32 | 0xFFFFE880 (-6016) Loc: 0x38C8 | offset to vtable + +0x214C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x215C | offset to field `key` (string) + +0x2150 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2154 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x2154 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x2158 | 32 37 | char[2] | 27 | string literal - +0x215A | 00 | char | 0x00 (0) | string terminator + +0x2154 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2158 | 32 37 | char[2] | 27 | string literal + +0x215A | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x215C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x2160 | 69 64 | char[2] | id | string literal - +0x2162 | 00 | char | 0x00 (0) | string terminator + +0x215C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2160 | 69 64 | char[2] | id | string literal + +0x2162 | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x2164 | 88 E8 FF FF | SOffset32 | 0xFFFFE888 (-6008) Loc: +0x38DC | offset to vtable - +0x2168 | 00 00 00 | uint8_t[3] | ... | padding - +0x216B | 0B | uint8_t | 0x0B (11) | table field `base_type` (Byte) - +0x216C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x2164 | 88 E8 FF FF | SOffset32 | 0xFFFFE888 (-6008) Loc: 0x38DC | offset to vtable + +0x2168 | 00 00 00 | uint8_t[3] | ... | padding + +0x216B | 0B | uint8_t | 0x0B (11) | table field `base_type` (Byte) + +0x216C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x2170 | 06 00 00 00 | uint32_t | 0x00000006 (6) | length of string - +0x2174 | 74 65 73 74 66 33 | char[6] | testf3 | string literal - +0x217A | 00 | char | 0x00 (0) | string terminator + +0x2170 | 06 00 00 00 | uint32_t | 0x00000006 (6) | length of string + +0x2174 | 74 65 73 74 66 33 | char[6] | testf3 | string literal + +0x217A | 00 | char | 0x00 (0) | string terminator table (reflection.Field): - +0x217C | A8 FF FF FF | SOffset32 | 0xFFFFFFA8 (-88) Loc: +0x21D4 | offset to vtable - +0x2180 | 1A 00 | uint16_t | 0x001A (26) | table field `id` (UShort) - +0x2182 | 38 00 | uint16_t | 0x0038 (56) | table field `offset` (UShort) - +0x2184 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x21C8 | offset to field `name` (string) - +0x2188 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x21BC | offset to field `type` (table) - +0x218C | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x2198 | offset to field `attributes` (vector) - +0x2190 | 00 00 00 00 00 00 08 40 | double | 0x4008000000000000 (3) | table field `default_real` (Double) + +0x217C | A8 FF FF FF | SOffset32 | 0xFFFFFFA8 (-88) Loc: 0x21D4 | offset to vtable + +0x2180 | 1A 00 | uint16_t | 0x001A (26) | table field `id` (UShort) + +0x2182 | 38 00 | uint16_t | 0x0038 (56) | table field `offset` (UShort) + +0x2184 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: 0x21C8 | offset to field `name` (string) + +0x2188 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: 0x21BC | offset to field `type` (table) + +0x218C | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: 0x2198 | offset to field `attributes` (vector) + +0x2190 | 00 00 00 00 00 00 08 40 | double | 0x4008000000000000 (3) | table field `default_real` (Double) vector (reflection.Field.attributes): - +0x2198 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x219C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x21A0 | offset to table[0] + +0x2198 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x219C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x21A0 | offset to table[0] table (reflection.KeyValue): - +0x21A0 | D8 E8 FF FF | SOffset32 | 0xFFFFE8D8 (-5928) Loc: +0x38C8 | offset to vtable - +0x21A4 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x21B4 | offset to field `key` (string) - +0x21A8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x21AC | offset to field `value` (string) + +0x21A0 | D8 E8 FF FF | SOffset32 | 0xFFFFE8D8 (-5928) Loc: 0x38C8 | offset to vtable + +0x21A4 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x21B4 | offset to field `key` (string) + +0x21A8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x21AC | offset to field `value` (string) string (reflection.KeyValue.value): - +0x21AC | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x21B0 | 32 36 | char[2] | 26 | string literal - +0x21B2 | 00 | char | 0x00 (0) | string terminator + +0x21AC | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x21B0 | 32 36 | char[2] | 26 | string literal + +0x21B2 | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x21B4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x21B8 | 69 64 | char[2] | id | string literal - +0x21BA | 00 | char | 0x00 (0) | string terminator + +0x21B4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x21B8 | 69 64 | char[2] | id | string literal + +0x21BA | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x21BC | E0 E8 FF FF | SOffset32 | 0xFFFFE8E0 (-5920) Loc: +0x38DC | offset to vtable - +0x21C0 | 00 00 00 | uint8_t[3] | ... | padding - +0x21C3 | 0B | uint8_t | 0x0B (11) | table field `base_type` (Byte) - +0x21C4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x21BC | E0 E8 FF FF | SOffset32 | 0xFFFFE8E0 (-5920) Loc: 0x38DC | offset to vtable + +0x21C0 | 00 00 00 | uint8_t[3] | ... | padding + +0x21C3 | 0B | uint8_t | 0x0B (11) | table field `base_type` (Byte) + +0x21C4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x21C8 | 06 00 00 00 | uint32_t | 0x00000006 (6) | length of string - +0x21CC | 74 65 73 74 66 32 | char[6] | testf2 | string literal - +0x21D2 | 00 | char | 0x00 (0) | string terminator + +0x21C8 | 06 00 00 00 | uint32_t | 0x00000006 (6) | length of string + +0x21CC | 74 65 73 74 66 32 | char[6] | testf2 | string literal + +0x21D2 | 00 | char | 0x00 (0) | string terminator vtable (reflection.Field): - +0x21D4 | 18 00 | uint16_t | 0x0018 (24) | size of this vtable - +0x21D6 | 1C 00 | uint16_t | 0x001C (28) | size of referring table - +0x21D8 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0) - +0x21DA | 0C 00 | VOffset16 | 0x000C (12) | offset to field `type` (id: 1) - +0x21DC | 04 00 | VOffset16 | 0x0004 (4) | offset to field `id` (id: 2) - +0x21DE | 06 00 | VOffset16 | 0x0006 (6) | offset to field `offset` (id: 3) - +0x21E0 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) (Long) - +0x21E2 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `default_real` (id: 5) - +0x21E4 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) - +0x21E6 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) (Bool) - +0x21E8 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 8) (Bool) - +0x21EA | 10 00 | VOffset16 | 0x0010 (16) | offset to field `attributes` (id: 9) + +0x21D4 | 18 00 | uint16_t | 0x0018 (24) | size of this vtable + +0x21D6 | 1C 00 | uint16_t | 0x001C (28) | size of referring table + +0x21D8 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0) + +0x21DA | 0C 00 | VOffset16 | 0x000C (12) | offset to field `type` (id: 1) + +0x21DC | 04 00 | VOffset16 | 0x0004 (4) | offset to field `id` (id: 2) + +0x21DE | 06 00 | VOffset16 | 0x0006 (6) | offset to field `offset` (id: 3) + +0x21E0 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) (Long) + +0x21E2 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `default_real` (id: 5) + +0x21E4 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) + +0x21E6 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) (Bool) + +0x21E8 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 8) (Bool) + +0x21EA | 10 00 | VOffset16 | 0x0010 (16) | offset to field `attributes` (id: 9) table (reflection.Field): - +0x21EC | 18 00 00 00 | SOffset32 | 0x00000018 (24) Loc: +0x21D4 | offset to vtable - +0x21F0 | 19 00 | uint16_t | 0x0019 (25) | table field `id` (UShort) - +0x21F2 | 36 00 | uint16_t | 0x0036 (54) | table field `offset` (UShort) - +0x21F4 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x2238 | offset to field `name` (string) - +0x21F8 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x222C | offset to field `type` (table) - +0x21FC | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x2208 | offset to field `attributes` (vector) - +0x2200 | 6E 86 1B F0 F9 21 09 40 | double | 0x400921F9F01B866E (3.14159) | table field `default_real` (Double) + +0x21EC | 18 00 00 00 | SOffset32 | 0x00000018 (24) Loc: 0x21D4 | offset to vtable + +0x21F0 | 19 00 | uint16_t | 0x0019 (25) | table field `id` (UShort) + +0x21F2 | 36 00 | uint16_t | 0x0036 (54) | table field `offset` (UShort) + +0x21F4 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: 0x2238 | offset to field `name` (string) + +0x21F8 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: 0x222C | offset to field `type` (table) + +0x21FC | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: 0x2208 | offset to field `attributes` (vector) + +0x2200 | 6E 86 1B F0 F9 21 09 40 | double | 0x400921F9F01B866E (3.14159) | table field `default_real` (Double) vector (reflection.Field.attributes): - +0x2208 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x220C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2210 | offset to table[0] + +0x2208 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x220C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2210 | offset to table[0] table (reflection.KeyValue): - +0x2210 | 48 E9 FF FF | SOffset32 | 0xFFFFE948 (-5816) Loc: +0x38C8 | offset to vtable - +0x2214 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2224 | offset to field `key` (string) - +0x2218 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x221C | offset to field `value` (string) + +0x2210 | 48 E9 FF FF | SOffset32 | 0xFFFFE948 (-5816) Loc: 0x38C8 | offset to vtable + +0x2214 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x2224 | offset to field `key` (string) + +0x2218 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x221C | offset to field `value` (string) string (reflection.KeyValue.value): - +0x221C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x2220 | 32 35 | char[2] | 25 | string literal - +0x2222 | 00 | char | 0x00 (0) | string terminator + +0x221C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2220 | 32 35 | char[2] | 25 | string literal + +0x2222 | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x2224 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x2228 | 69 64 | char[2] | id | string literal - +0x222A | 00 | char | 0x00 (0) | string terminator + +0x2224 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2228 | 69 64 | char[2] | id | string literal + +0x222A | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x222C | 50 E9 FF FF | SOffset32 | 0xFFFFE950 (-5808) Loc: +0x38DC | offset to vtable - +0x2230 | 00 00 00 | uint8_t[3] | ... | padding - +0x2233 | 0B | uint8_t | 0x0B (11) | table field `base_type` (Byte) - +0x2234 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x222C | 50 E9 FF FF | SOffset32 | 0xFFFFE950 (-5808) Loc: 0x38DC | offset to vtable + +0x2230 | 00 00 00 | uint8_t[3] | ... | padding + +0x2233 | 0B | uint8_t | 0x0B (11) | table field `base_type` (Byte) + +0x2234 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x2238 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string - +0x223C | 74 65 73 74 66 | char[5] | testf | string literal - +0x2241 | 00 | char | 0x00 (0) | string terminator + +0x2238 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string + +0x223C | 74 65 73 74 66 | char[5] | testf | string literal + +0x2241 | 00 | char | 0x00 (0) | string terminator padding: - +0x2242 | 00 00 | uint8_t[2] | .. | padding + +0x2242 | 00 00 | uint8_t[2] | .. | padding table (reflection.Field): - +0x2244 | 5C F6 FF FF | SOffset32 | 0xFFFFF65C (-2468) Loc: +0x2BE8 | offset to vtable - +0x2248 | 00 00 00 | uint8_t[3] | ... | padding - +0x224B | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x224C | 18 00 | uint16_t | 0x0018 (24) | table field `id` (UShort) - +0x224E | 34 00 | uint16_t | 0x0034 (52) | table field `offset` (UShort) - +0x2250 | 3C 00 00 00 | UOffset32 | 0x0000003C (60) Loc: +0x228C | offset to field `name` (string) - +0x2254 | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: +0x2280 | offset to field `type` (table) - +0x2258 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x225C | offset to field `attributes` (vector) + +0x2244 | 5C F6 FF FF | SOffset32 | 0xFFFFF65C (-2468) Loc: 0x2BE8 | offset to vtable + +0x2248 | 00 00 00 | uint8_t[3] | ... | padding + +0x224B | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x224C | 18 00 | uint16_t | 0x0018 (24) | table field `id` (UShort) + +0x224E | 34 00 | uint16_t | 0x0034 (52) | table field `offset` (UShort) + +0x2250 | 3C 00 00 00 | UOffset32 | 0x0000003C (60) Loc: 0x228C | offset to field `name` (string) + +0x2254 | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: 0x2280 | offset to field `type` (table) + +0x2258 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x225C | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x225C | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x2260 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2264 | offset to table[0] + +0x225C | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x2260 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2264 | offset to table[0] table (reflection.KeyValue): - +0x2264 | 9C E9 FF FF | SOffset32 | 0xFFFFE99C (-5732) Loc: +0x38C8 | offset to vtable - +0x2268 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2278 | offset to field `key` (string) - +0x226C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2270 | offset to field `value` (string) + +0x2264 | 9C E9 FF FF | SOffset32 | 0xFFFFE99C (-5732) Loc: 0x38C8 | offset to vtable + +0x2268 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x2278 | offset to field `key` (string) + +0x226C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2270 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x2270 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x2274 | 32 34 | char[2] | 24 | string literal - +0x2276 | 00 | char | 0x00 (0) | string terminator + +0x2270 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2274 | 32 34 | char[2] | 24 | string literal + +0x2276 | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x2278 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x227C | 69 64 | char[2] | id | string literal - +0x227E | 00 | char | 0x00 (0) | string terminator + +0x2278 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x227C | 69 64 | char[2] | id | string literal + +0x227E | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x2280 | 40 F6 FF FF | SOffset32 | 0xFFFFF640 (-2496) Loc: +0x2C40 | offset to vtable - +0x2284 | 00 00 | uint8_t[2] | .. | padding - +0x2286 | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) - +0x2287 | 02 | uint8_t | 0x02 (2) | table field `element` (Byte) - +0x2288 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x2280 | 40 F6 FF FF | SOffset32 | 0xFFFFF640 (-2496) Loc: 0x2C40 | offset to vtable + +0x2284 | 00 00 | uint8_t[2] | .. | padding + +0x2286 | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) + +0x2287 | 02 | uint8_t | 0x02 (2) | table field `element` (Byte) + +0x2288 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x228C | 10 00 00 00 | uint32_t | 0x00000010 (16) | length of string - +0x2290 | 74 65 73 74 61 72 72 61 | char[16] | testarra | string literal - +0x2298 | 79 6F 66 62 6F 6F 6C 73 | | yofbools - +0x22A0 | 00 | char | 0x00 (0) | string terminator + +0x228C | 10 00 00 00 | uint32_t | 0x00000010 (16) | length of string + +0x2290 | 74 65 73 74 61 72 72 61 | char[16] | testarra | string literal + +0x2298 | 79 6F 66 62 6F 6F 6C 73 | | yofbools + +0x22A0 | 00 | char | 0x00 (0) | string terminator padding: - +0x22A1 | 00 00 00 | uint8_t[3] | ... | padding + +0x22A1 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Field): - +0x22A4 | AC F7 FF FF | SOffset32 | 0xFFFFF7AC (-2132) Loc: +0x2AF8 | offset to vtable - +0x22A8 | 17 00 | uint16_t | 0x0017 (23) | table field `id` (UShort) - +0x22AA | 32 00 | uint16_t | 0x0032 (50) | table field `offset` (UShort) - +0x22AC | 6C 00 00 00 | UOffset32 | 0x0000006C (108) Loc: +0x2318 | offset to field `name` (string) - +0x22B0 | 58 00 00 00 | UOffset32 | 0x00000058 (88) Loc: +0x2308 | offset to field `type` (table) - +0x22B4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x22B8 | offset to field `attributes` (vector) + +0x22A4 | AC F7 FF FF | SOffset32 | 0xFFFFF7AC (-2132) Loc: 0x2AF8 | offset to vtable + +0x22A8 | 17 00 | uint16_t | 0x0017 (23) | table field `id` (UShort) + +0x22AA | 32 00 | uint16_t | 0x0032 (50) | table field `offset` (UShort) + +0x22AC | 6C 00 00 00 | UOffset32 | 0x0000006C (108) Loc: 0x2318 | offset to field `name` (string) + +0x22B0 | 58 00 00 00 | UOffset32 | 0x00000058 (88) Loc: 0x2308 | offset to field `type` (table) + +0x22B4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x22B8 | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x22B8 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) - +0x22BC | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x22E0 | offset to table[0] - +0x22C0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x22C4 | offset to table[1] + +0x22B8 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) + +0x22BC | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: 0x22E0 | offset to table[0] + +0x22C0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x22C4 | offset to table[1] table (reflection.KeyValue): - +0x22C4 | FC E9 FF FF | SOffset32 | 0xFFFFE9FC (-5636) Loc: +0x38C8 | offset to vtable - +0x22C8 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x22D8 | offset to field `key` (string) - +0x22CC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x22D0 | offset to field `value` (string) + +0x22C4 | FC E9 FF FF | SOffset32 | 0xFFFFE9FC (-5636) Loc: 0x38C8 | offset to vtable + +0x22C8 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x22D8 | offset to field `key` (string) + +0x22CC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x22D0 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x22D0 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x22D4 | 32 33 | char[2] | 23 | string literal - +0x22D6 | 00 | char | 0x00 (0) | string terminator + +0x22D0 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x22D4 | 32 33 | char[2] | 23 | string literal + +0x22D6 | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x22D8 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x22DC | 69 64 | char[2] | id | string literal - +0x22DE | 00 | char | 0x00 (0) | string terminator + +0x22D8 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x22DC | 69 64 | char[2] | id | string literal + +0x22DE | 00 | char | 0x00 (0) | string terminator table (reflection.KeyValue): - +0x22E0 | 18 EA FF FF | SOffset32 | 0xFFFFEA18 (-5608) Loc: +0x38C8 | offset to vtable - +0x22E4 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x22FC | offset to field `key` (string) - +0x22E8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x22EC | offset to field `value` (string) + +0x22E0 | 18 EA FF FF | SOffset32 | 0xFFFFEA18 (-5608) Loc: 0x38C8 | offset to vtable + +0x22E4 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: 0x22FC | offset to field `key` (string) + +0x22E8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x22EC | offset to field `value` (string) string (reflection.KeyValue.value): - +0x22EC | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string - +0x22F0 | 66 6E 76 31 61 5F 36 34 | char[8] | fnv1a_64 | string literal - +0x22F8 | 00 | char | 0x00 (0) | string terminator + +0x22EC | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string + +0x22F0 | 66 6E 76 31 61 5F 36 34 | char[8] | fnv1a_64 | string literal + +0x22F8 | 00 | char | 0x00 (0) | string terminator padding: - +0x22F9 | 00 00 00 | uint8_t[3] | ... | padding + +0x22F9 | 00 00 00 | uint8_t[3] | ... | padding string (reflection.KeyValue.key): - +0x22FC | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string - +0x2300 | 68 61 73 68 | char[4] | hash | string literal - +0x2304 | 00 | char | 0x00 (0) | string terminator + +0x22FC | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string + +0x2300 | 68 61 73 68 | char[4] | hash | string literal + +0x2304 | 00 | char | 0x00 (0) | string terminator padding: - +0x2305 | 00 00 00 | uint8_t[3] | ... | padding + +0x2305 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Type): - +0x2308 | 94 EC FF FF | SOffset32 | 0xFFFFEC94 (-4972) Loc: +0x3674 | offset to vtable - +0x230C | 00 00 00 | uint8_t[3] | ... | padding - +0x230F | 0A | uint8_t | 0x0A (10) | table field `base_type` (Byte) - +0x2310 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt) - +0x2314 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x2308 | 94 EC FF FF | SOffset32 | 0xFFFFEC94 (-4972) Loc: 0x3674 | offset to vtable + +0x230C | 00 00 00 | uint8_t[3] | ... | padding + +0x230F | 0A | uint8_t | 0x0A (10) | table field `base_type` (Byte) + +0x2310 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt) + +0x2314 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x2318 | 11 00 00 00 | uint32_t | 0x00000011 (17) | length of string - +0x231C | 74 65 73 74 68 61 73 68 | char[17] | testhash | string literal - +0x2324 | 75 36 34 5F 66 6E 76 31 | | u64_fnv1 - +0x232C | 61 | | a - +0x232D | 00 | char | 0x00 (0) | string terminator + +0x2318 | 11 00 00 00 | uint32_t | 0x00000011 (17) | length of string + +0x231C | 74 65 73 74 68 61 73 68 | char[17] | testhash | string literal + +0x2324 | 75 36 34 5F 66 6E 76 31 | | u64_fnv1 + +0x232C | 61 | | a + +0x232D | 00 | char | 0x00 (0) | string terminator padding: - +0x232E | 00 00 | uint8_t[2] | .. | padding + +0x232E | 00 00 | uint8_t[2] | .. | padding table (reflection.Field): - +0x2330 | 38 F8 FF FF | SOffset32 | 0xFFFFF838 (-1992) Loc: +0x2AF8 | offset to vtable - +0x2334 | 16 00 | uint16_t | 0x0016 (22) | table field `id` (UShort) - +0x2336 | 30 00 | uint16_t | 0x0030 (48) | table field `offset` (UShort) - +0x2338 | 6C 00 00 00 | UOffset32 | 0x0000006C (108) Loc: +0x23A4 | offset to field `name` (string) - +0x233C | 58 00 00 00 | UOffset32 | 0x00000058 (88) Loc: +0x2394 | offset to field `type` (table) - +0x2340 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2344 | offset to field `attributes` (vector) + +0x2330 | 38 F8 FF FF | SOffset32 | 0xFFFFF838 (-1992) Loc: 0x2AF8 | offset to vtable + +0x2334 | 16 00 | uint16_t | 0x0016 (22) | table field `id` (UShort) + +0x2336 | 30 00 | uint16_t | 0x0030 (48) | table field `offset` (UShort) + +0x2338 | 6C 00 00 00 | UOffset32 | 0x0000006C (108) Loc: 0x23A4 | offset to field `name` (string) + +0x233C | 58 00 00 00 | UOffset32 | 0x00000058 (88) Loc: 0x2394 | offset to field `type` (table) + +0x2340 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2344 | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x2344 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) - +0x2348 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x236C | offset to table[0] - +0x234C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2350 | offset to table[1] + +0x2344 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) + +0x2348 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: 0x236C | offset to table[0] + +0x234C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2350 | offset to table[1] table (reflection.KeyValue): - +0x2350 | 88 EA FF FF | SOffset32 | 0xFFFFEA88 (-5496) Loc: +0x38C8 | offset to vtable - +0x2354 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2364 | offset to field `key` (string) - +0x2358 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x235C | offset to field `value` (string) + +0x2350 | 88 EA FF FF | SOffset32 | 0xFFFFEA88 (-5496) Loc: 0x38C8 | offset to vtable + +0x2354 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x2364 | offset to field `key` (string) + +0x2358 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x235C | offset to field `value` (string) string (reflection.KeyValue.value): - +0x235C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x2360 | 32 32 | char[2] | 22 | string literal - +0x2362 | 00 | char | 0x00 (0) | string terminator + +0x235C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2360 | 32 32 | char[2] | 22 | string literal + +0x2362 | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x2364 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x2368 | 69 64 | char[2] | id | string literal - +0x236A | 00 | char | 0x00 (0) | string terminator + +0x2364 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2368 | 69 64 | char[2] | id | string literal + +0x236A | 00 | char | 0x00 (0) | string terminator table (reflection.KeyValue): - +0x236C | A4 EA FF FF | SOffset32 | 0xFFFFEAA4 (-5468) Loc: +0x38C8 | offset to vtable - +0x2370 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x2388 | offset to field `key` (string) - +0x2374 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2378 | offset to field `value` (string) + +0x236C | A4 EA FF FF | SOffset32 | 0xFFFFEAA4 (-5468) Loc: 0x38C8 | offset to vtable + +0x2370 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: 0x2388 | offset to field `key` (string) + +0x2374 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2378 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x2378 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string - +0x237C | 66 6E 76 31 61 5F 36 34 | char[8] | fnv1a_64 | string literal - +0x2384 | 00 | char | 0x00 (0) | string terminator + +0x2378 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string + +0x237C | 66 6E 76 31 61 5F 36 34 | char[8] | fnv1a_64 | string literal + +0x2384 | 00 | char | 0x00 (0) | string terminator padding: - +0x2385 | 00 00 00 | uint8_t[3] | ... | padding + +0x2385 | 00 00 00 | uint8_t[3] | ... | padding string (reflection.KeyValue.key): - +0x2388 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string - +0x238C | 68 61 73 68 | char[4] | hash | string literal - +0x2390 | 00 | char | 0x00 (0) | string terminator + +0x2388 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string + +0x238C | 68 61 73 68 | char[4] | hash | string literal + +0x2390 | 00 | char | 0x00 (0) | string terminator padding: - +0x2391 | 00 00 00 | uint8_t[3] | ... | padding + +0x2391 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Type): - +0x2394 | 20 ED FF FF | SOffset32 | 0xFFFFED20 (-4832) Loc: +0x3674 | offset to vtable - +0x2398 | 00 00 00 | uint8_t[3] | ... | padding - +0x239B | 09 | uint8_t | 0x09 (9) | table field `base_type` (Byte) - +0x239C | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt) - +0x23A0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x2394 | 20 ED FF FF | SOffset32 | 0xFFFFED20 (-4832) Loc: 0x3674 | offset to vtable + +0x2398 | 00 00 00 | uint8_t[3] | ... | padding + +0x239B | 09 | uint8_t | 0x09 (9) | table field `base_type` (Byte) + +0x239C | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt) + +0x23A0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x23A4 | 11 00 00 00 | uint32_t | 0x00000011 (17) | length of string - +0x23A8 | 74 65 73 74 68 61 73 68 | char[17] | testhash | string literal - +0x23B0 | 73 36 34 5F 66 6E 76 31 | | s64_fnv1 - +0x23B8 | 61 | | a - +0x23B9 | 00 | char | 0x00 (0) | string terminator + +0x23A4 | 11 00 00 00 | uint32_t | 0x00000011 (17) | length of string + +0x23A8 | 74 65 73 74 68 61 73 68 | char[17] | testhash | string literal + +0x23B0 | 73 36 34 5F 66 6E 76 31 | | s64_fnv1 + +0x23B8 | 61 | | a + +0x23B9 | 00 | char | 0x00 (0) | string terminator padding: - +0x23BA | 00 00 | uint8_t[2] | .. | padding + +0x23BA | 00 00 | uint8_t[2] | .. | padding table (reflection.Field): - +0x23BC | C4 F8 FF FF | SOffset32 | 0xFFFFF8C4 (-1852) Loc: +0x2AF8 | offset to vtable - +0x23C0 | 15 00 | uint16_t | 0x0015 (21) | table field `id` (UShort) - +0x23C2 | 2E 00 | uint16_t | 0x002E (46) | table field `offset` (UShort) - +0x23C4 | C4 00 00 00 | UOffset32 | 0x000000C4 (196) Loc: +0x2488 | offset to field `name` (string) - +0x23C8 | B4 00 00 00 | UOffset32 | 0x000000B4 (180) Loc: +0x247C | offset to field `type` (table) - +0x23CC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x23D0 | offset to field `attributes` (vector) + +0x23BC | C4 F8 FF FF | SOffset32 | 0xFFFFF8C4 (-1852) Loc: 0x2AF8 | offset to vtable + +0x23C0 | 15 00 | uint16_t | 0x0015 (21) | table field `id` (UShort) + +0x23C2 | 2E 00 | uint16_t | 0x002E (46) | table field `offset` (UShort) + +0x23C4 | C4 00 00 00 | UOffset32 | 0x000000C4 (196) Loc: 0x2488 | offset to field `name` (string) + +0x23C8 | B4 00 00 00 | UOffset32 | 0x000000B4 (180) Loc: 0x247C | offset to field `type` (table) + +0x23CC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x23D0 | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x23D0 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of vector (# items) - +0x23D4 | 7C 00 00 00 | UOffset32 | 0x0000007C (124) Loc: +0x2450 | offset to table[0] - +0x23D8 | 50 00 00 00 | UOffset32 | 0x00000050 (80) Loc: +0x2428 | offset to table[1] - +0x23DC | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x2400 | offset to table[2] - +0x23E0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x23E4 | offset to table[3] + +0x23D0 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of vector (# items) + +0x23D4 | 7C 00 00 00 | UOffset32 | 0x0000007C (124) Loc: 0x2450 | offset to table[0] + +0x23D8 | 50 00 00 00 | UOffset32 | 0x00000050 (80) Loc: 0x2428 | offset to table[1] + +0x23DC | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: 0x2400 | offset to table[2] + +0x23E0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x23E4 | offset to table[3] table (reflection.KeyValue): - +0x23E4 | 1C EB FF FF | SOffset32 | 0xFFFFEB1C (-5348) Loc: +0x38C8 | offset to vtable - +0x23E8 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x23F8 | offset to field `key` (string) - +0x23EC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x23F0 | offset to field `value` (string) + +0x23E4 | 1C EB FF FF | SOffset32 | 0xFFFFEB1C (-5348) Loc: 0x38C8 | offset to vtable + +0x23E8 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x23F8 | offset to field `key` (string) + +0x23EC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x23F0 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x23F0 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x23F4 | 32 31 | char[2] | 21 | string literal - +0x23F6 | 00 | char | 0x00 (0) | string terminator + +0x23F0 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x23F4 | 32 31 | char[2] | 21 | string literal + +0x23F6 | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x23F8 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x23FC | 69 64 | char[2] | id | string literal - +0x23FE | 00 | char | 0x00 (0) | string terminator + +0x23F8 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x23FC | 69 64 | char[2] | id | string literal + +0x23FE | 00 | char | 0x00 (0) | string terminator table (reflection.KeyValue): - +0x2400 | 38 EB FF FF | SOffset32 | 0xFFFFEB38 (-5320) Loc: +0x38C8 | offset to vtable - +0x2404 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x241C | offset to field `key` (string) - +0x2408 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x240C | offset to field `value` (string) + +0x2400 | 38 EB FF FF | SOffset32 | 0xFFFFEB38 (-5320) Loc: 0x38C8 | offset to vtable + +0x2404 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: 0x241C | offset to field `key` (string) + +0x2408 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x240C | offset to field `value` (string) string (reflection.KeyValue.value): - +0x240C | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string - +0x2410 | 66 6E 76 31 61 5F 33 32 | char[8] | fnv1a_32 | string literal - +0x2418 | 00 | char | 0x00 (0) | string terminator + +0x240C | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string + +0x2410 | 66 6E 76 31 61 5F 33 32 | char[8] | fnv1a_32 | string literal + +0x2418 | 00 | char | 0x00 (0) | string terminator padding: - +0x2419 | 00 00 00 | uint8_t[3] | ... | padding + +0x2419 | 00 00 00 | uint8_t[3] | ... | padding string (reflection.KeyValue.key): - +0x241C | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string - +0x2420 | 68 61 73 68 | char[4] | hash | string literal - +0x2424 | 00 | char | 0x00 (0) | string terminator + +0x241C | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string + +0x2420 | 68 61 73 68 | char[4] | hash | string literal + +0x2424 | 00 | char | 0x00 (0) | string terminator padding: - +0x2425 | 00 00 00 | uint8_t[3] | ... | padding + +0x2425 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.KeyValue): - +0x2428 | 60 EB FF FF | SOffset32 | 0xFFFFEB60 (-5280) Loc: +0x38C8 | offset to vtable - +0x242C | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x2440 | offset to field `key` (string) - +0x2430 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2434 | offset to field `value` (string) + +0x2428 | 60 EB FF FF | SOffset32 | 0xFFFFEB60 (-5280) Loc: 0x38C8 | offset to vtable + +0x242C | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: 0x2440 | offset to field `key` (string) + +0x2430 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2434 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x2434 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string - +0x2438 | 53 74 61 74 | char[4] | Stat | string literal - +0x243C | 00 | char | 0x00 (0) | string terminator + +0x2434 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string + +0x2438 | 53 74 61 74 | char[4] | Stat | string literal + +0x243C | 00 | char | 0x00 (0) | string terminator padding: - +0x243D | 00 00 00 | uint8_t[3] | ... | padding + +0x243D | 00 00 00 | uint8_t[3] | ... | padding string (reflection.KeyValue.key): - +0x2440 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string - +0x2444 | 63 70 70 5F 74 79 70 65 | char[8] | cpp_type | string literal - +0x244C | 00 | char | 0x00 (0) | string terminator + +0x2440 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string + +0x2444 | 63 70 70 5F 74 79 70 65 | char[8] | cpp_type | string literal + +0x244C | 00 | char | 0x00 (0) | string terminator padding: - +0x244D | 00 00 00 | uint8_t[3] | ... | padding + +0x244D | 00 00 00 | uint8_t[3] | ... | padding table (reflection.KeyValue): - +0x2450 | 88 EB FF FF | SOffset32 | 0xFFFFEB88 (-5240) Loc: +0x38C8 | offset to vtable - +0x2454 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x2468 | offset to field `key` (string) - +0x2458 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x245C | offset to field `value` (string) + +0x2450 | 88 EB FF FF | SOffset32 | 0xFFFFEB88 (-5240) Loc: 0x38C8 | offset to vtable + +0x2454 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: 0x2468 | offset to field `key` (string) + +0x2458 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x245C | offset to field `value` (string) string (reflection.KeyValue.value): - +0x245C | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string - +0x2460 | 6E 61 6B 65 64 | char[5] | naked | string literal - +0x2465 | 00 | char | 0x00 (0) | string terminator + +0x245C | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string + +0x2460 | 6E 61 6B 65 64 | char[5] | naked | string literal + +0x2465 | 00 | char | 0x00 (0) | string terminator padding: - +0x2466 | 00 00 | uint8_t[2] | .. | padding + +0x2466 | 00 00 | uint8_t[2] | .. | padding string (reflection.KeyValue.key): - +0x2468 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | length of string - +0x246C | 63 70 70 5F 70 74 72 5F | char[12] | cpp_ptr_ | string literal - +0x2474 | 74 79 70 65 | | type - +0x2478 | 00 | char | 0x00 (0) | string terminator + +0x2468 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | length of string + +0x246C | 63 70 70 5F 70 74 72 5F | char[12] | cpp_ptr_ | string literal + +0x2474 | 74 79 70 65 | | type + +0x2478 | 00 | char | 0x00 (0) | string terminator padding: - +0x2479 | 00 00 00 | uint8_t[3] | ... | padding + +0x2479 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Type): - +0x247C | A0 EB FF FF | SOffset32 | 0xFFFFEBA0 (-5216) Loc: +0x38DC | offset to vtable - +0x2480 | 00 00 00 | uint8_t[3] | ... | padding - +0x2483 | 08 | uint8_t | 0x08 (8) | table field `base_type` (Byte) - +0x2484 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x247C | A0 EB FF FF | SOffset32 | 0xFFFFEBA0 (-5216) Loc: 0x38DC | offset to vtable + +0x2480 | 00 00 00 | uint8_t[3] | ... | padding + +0x2483 | 08 | uint8_t | 0x08 (8) | table field `base_type` (Byte) + +0x2484 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x2488 | 11 00 00 00 | uint32_t | 0x00000011 (17) | length of string - +0x248C | 74 65 73 74 68 61 73 68 | char[17] | testhash | string literal - +0x2494 | 75 33 32 5F 66 6E 76 31 | | u32_fnv1 - +0x249C | 61 | | a - +0x249D | 00 | char | 0x00 (0) | string terminator + +0x2488 | 11 00 00 00 | uint32_t | 0x00000011 (17) | length of string + +0x248C | 74 65 73 74 68 61 73 68 | char[17] | testhash | string literal + +0x2494 | 75 33 32 5F 66 6E 76 31 | | u32_fnv1 + +0x249C | 61 | | a + +0x249D | 00 | char | 0x00 (0) | string terminator padding: - +0x249E | 00 00 | uint8_t[2] | .. | padding + +0x249E | 00 00 | uint8_t[2] | .. | padding table (reflection.Field): - +0x24A0 | A8 F9 FF FF | SOffset32 | 0xFFFFF9A8 (-1624) Loc: +0x2AF8 | offset to vtable - +0x24A4 | 14 00 | uint16_t | 0x0014 (20) | table field `id` (UShort) - +0x24A6 | 2C 00 | uint16_t | 0x002C (44) | table field `offset` (UShort) - +0x24A8 | 68 00 00 00 | UOffset32 | 0x00000068 (104) Loc: +0x2510 | offset to field `name` (string) - +0x24AC | 58 00 00 00 | UOffset32 | 0x00000058 (88) Loc: +0x2504 | offset to field `type` (table) - +0x24B0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x24B4 | offset to field `attributes` (vector) + +0x24A0 | A8 F9 FF FF | SOffset32 | 0xFFFFF9A8 (-1624) Loc: 0x2AF8 | offset to vtable + +0x24A4 | 14 00 | uint16_t | 0x0014 (20) | table field `id` (UShort) + +0x24A6 | 2C 00 | uint16_t | 0x002C (44) | table field `offset` (UShort) + +0x24A8 | 68 00 00 00 | UOffset32 | 0x00000068 (104) Loc: 0x2510 | offset to field `name` (string) + +0x24AC | 58 00 00 00 | UOffset32 | 0x00000058 (88) Loc: 0x2504 | offset to field `type` (table) + +0x24B0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x24B4 | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x24B4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) - +0x24B8 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x24DC | offset to table[0] - +0x24BC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x24C0 | offset to table[1] + +0x24B4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) + +0x24B8 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: 0x24DC | offset to table[0] + +0x24BC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x24C0 | offset to table[1] table (reflection.KeyValue): - +0x24C0 | F8 EB FF FF | SOffset32 | 0xFFFFEBF8 (-5128) Loc: +0x38C8 | offset to vtable - +0x24C4 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x24D4 | offset to field `key` (string) - +0x24C8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x24CC | offset to field `value` (string) + +0x24C0 | F8 EB FF FF | SOffset32 | 0xFFFFEBF8 (-5128) Loc: 0x38C8 | offset to vtable + +0x24C4 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x24D4 | offset to field `key` (string) + +0x24C8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x24CC | offset to field `value` (string) string (reflection.KeyValue.value): - +0x24CC | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x24D0 | 32 30 | char[2] | 20 | string literal - +0x24D2 | 00 | char | 0x00 (0) | string terminator + +0x24CC | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x24D0 | 32 30 | char[2] | 20 | string literal + +0x24D2 | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x24D4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x24D8 | 69 64 | char[2] | id | string literal - +0x24DA | 00 | char | 0x00 (0) | string terminator + +0x24D4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x24D8 | 69 64 | char[2] | id | string literal + +0x24DA | 00 | char | 0x00 (0) | string terminator table (reflection.KeyValue): - +0x24DC | 14 EC FF FF | SOffset32 | 0xFFFFEC14 (-5100) Loc: +0x38C8 | offset to vtable - +0x24E0 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x24F8 | offset to field `key` (string) - +0x24E4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x24E8 | offset to field `value` (string) + +0x24DC | 14 EC FF FF | SOffset32 | 0xFFFFEC14 (-5100) Loc: 0x38C8 | offset to vtable + +0x24E0 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: 0x24F8 | offset to field `key` (string) + +0x24E4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x24E8 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x24E8 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string - +0x24EC | 66 6E 76 31 61 5F 33 32 | char[8] | fnv1a_32 | string literal - +0x24F4 | 00 | char | 0x00 (0) | string terminator + +0x24E8 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string + +0x24EC | 66 6E 76 31 61 5F 33 32 | char[8] | fnv1a_32 | string literal + +0x24F4 | 00 | char | 0x00 (0) | string terminator padding: - +0x24F5 | 00 00 00 | uint8_t[3] | ... | padding + +0x24F5 | 00 00 00 | uint8_t[3] | ... | padding string (reflection.KeyValue.key): - +0x24F8 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string - +0x24FC | 68 61 73 68 | char[4] | hash | string literal - +0x2500 | 00 | char | 0x00 (0) | string terminator + +0x24F8 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string + +0x24FC | 68 61 73 68 | char[4] | hash | string literal + +0x2500 | 00 | char | 0x00 (0) | string terminator padding: - +0x2501 | 00 00 00 | uint8_t[3] | ... | padding + +0x2501 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Type): - +0x2504 | 28 EC FF FF | SOffset32 | 0xFFFFEC28 (-5080) Loc: +0x38DC | offset to vtable - +0x2508 | 00 00 00 | uint8_t[3] | ... | padding - +0x250B | 07 | uint8_t | 0x07 (7) | table field `base_type` (Byte) - +0x250C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x2504 | 28 EC FF FF | SOffset32 | 0xFFFFEC28 (-5080) Loc: 0x38DC | offset to vtable + +0x2508 | 00 00 00 | uint8_t[3] | ... | padding + +0x250B | 07 | uint8_t | 0x07 (7) | table field `base_type` (Byte) + +0x250C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x2510 | 11 00 00 00 | uint32_t | 0x00000011 (17) | length of string - +0x2514 | 74 65 73 74 68 61 73 68 | char[17] | testhash | string literal - +0x251C | 73 33 32 5F 66 6E 76 31 | | s32_fnv1 - +0x2524 | 61 | | a - +0x2525 | 00 | char | 0x00 (0) | string terminator + +0x2510 | 11 00 00 00 | uint32_t | 0x00000011 (17) | length of string + +0x2514 | 74 65 73 74 68 61 73 68 | char[17] | testhash | string literal + +0x251C | 73 33 32 5F 66 6E 76 31 | | s32_fnv1 + +0x2524 | 61 | | a + +0x2525 | 00 | char | 0x00 (0) | string terminator padding: - +0x2526 | 00 00 | uint8_t[2] | .. | padding + +0x2526 | 00 00 | uint8_t[2] | .. | padding table (reflection.Field): - +0x2528 | 30 FA FF FF | SOffset32 | 0xFFFFFA30 (-1488) Loc: +0x2AF8 | offset to vtable - +0x252C | 13 00 | uint16_t | 0x0013 (19) | table field `id` (UShort) - +0x252E | 2A 00 | uint16_t | 0x002A (42) | table field `offset` (UShort) - +0x2530 | 68 00 00 00 | UOffset32 | 0x00000068 (104) Loc: +0x2598 | offset to field `name` (string) - +0x2534 | 54 00 00 00 | UOffset32 | 0x00000054 (84) Loc: +0x2588 | offset to field `type` (table) - +0x2538 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x253C | offset to field `attributes` (vector) + +0x2528 | 30 FA FF FF | SOffset32 | 0xFFFFFA30 (-1488) Loc: 0x2AF8 | offset to vtable + +0x252C | 13 00 | uint16_t | 0x0013 (19) | table field `id` (UShort) + +0x252E | 2A 00 | uint16_t | 0x002A (42) | table field `offset` (UShort) + +0x2530 | 68 00 00 00 | UOffset32 | 0x00000068 (104) Loc: 0x2598 | offset to field `name` (string) + +0x2534 | 54 00 00 00 | UOffset32 | 0x00000054 (84) Loc: 0x2588 | offset to field `type` (table) + +0x2538 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x253C | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x253C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) - +0x2540 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x2564 | offset to table[0] - +0x2544 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2548 | offset to table[1] + +0x253C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) + +0x2540 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: 0x2564 | offset to table[0] + +0x2544 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2548 | offset to table[1] table (reflection.KeyValue): - +0x2548 | 80 EC FF FF | SOffset32 | 0xFFFFEC80 (-4992) Loc: +0x38C8 | offset to vtable - +0x254C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x255C | offset to field `key` (string) - +0x2550 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2554 | offset to field `value` (string) + +0x2548 | 80 EC FF FF | SOffset32 | 0xFFFFEC80 (-4992) Loc: 0x38C8 | offset to vtable + +0x254C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x255C | offset to field `key` (string) + +0x2550 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2554 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x2554 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x2558 | 31 39 | char[2] | 19 | string literal - +0x255A | 00 | char | 0x00 (0) | string terminator + +0x2554 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2558 | 31 39 | char[2] | 19 | string literal + +0x255A | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x255C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x2560 | 69 64 | char[2] | id | string literal - +0x2562 | 00 | char | 0x00 (0) | string terminator + +0x255C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2560 | 69 64 | char[2] | id | string literal + +0x2562 | 00 | char | 0x00 (0) | string terminator table (reflection.KeyValue): - +0x2564 | 9C EC FF FF | SOffset32 | 0xFFFFEC9C (-4964) Loc: +0x38C8 | offset to vtable - +0x2568 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x257C | offset to field `key` (string) - +0x256C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2570 | offset to field `value` (string) + +0x2564 | 9C EC FF FF | SOffset32 | 0xFFFFEC9C (-4964) Loc: 0x38C8 | offset to vtable + +0x2568 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: 0x257C | offset to field `key` (string) + +0x256C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2570 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x2570 | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string - +0x2574 | 66 6E 76 31 5F 36 34 | char[7] | fnv1_64 | string literal - +0x257B | 00 | char | 0x00 (0) | string terminator + +0x2570 | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string + +0x2574 | 66 6E 76 31 5F 36 34 | char[7] | fnv1_64 | string literal + +0x257B | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x257C | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string - +0x2580 | 68 61 73 68 | char[4] | hash | string literal - +0x2584 | 00 | char | 0x00 (0) | string terminator + +0x257C | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string + +0x2580 | 68 61 73 68 | char[4] | hash | string literal + +0x2584 | 00 | char | 0x00 (0) | string terminator padding: - +0x2585 | 00 00 00 | uint8_t[3] | ... | padding + +0x2585 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Type): - +0x2588 | 14 EF FF FF | SOffset32 | 0xFFFFEF14 (-4332) Loc: +0x3674 | offset to vtable - +0x258C | 00 00 00 | uint8_t[3] | ... | padding - +0x258F | 0A | uint8_t | 0x0A (10) | table field `base_type` (Byte) - +0x2590 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt) - +0x2594 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x2588 | 14 EF FF FF | SOffset32 | 0xFFFFEF14 (-4332) Loc: 0x3674 | offset to vtable + +0x258C | 00 00 00 | uint8_t[3] | ... | padding + +0x258F | 0A | uint8_t | 0x0A (10) | table field `base_type` (Byte) + +0x2590 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt) + +0x2594 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x2598 | 10 00 00 00 | uint32_t | 0x00000010 (16) | length of string - +0x259C | 74 65 73 74 68 61 73 68 | char[16] | testhash | string literal - +0x25A4 | 75 36 34 5F 66 6E 76 31 | | u64_fnv1 - +0x25AC | 00 | char | 0x00 (0) | string terminator + +0x2598 | 10 00 00 00 | uint32_t | 0x00000010 (16) | length of string + +0x259C | 74 65 73 74 68 61 73 68 | char[16] | testhash | string literal + +0x25A4 | 75 36 34 5F 66 6E 76 31 | | u64_fnv1 + +0x25AC | 00 | char | 0x00 (0) | string terminator padding: - +0x25AD | 00 00 00 | uint8_t[3] | ... | padding + +0x25AD | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Field): - +0x25B0 | B8 FA FF FF | SOffset32 | 0xFFFFFAB8 (-1352) Loc: +0x2AF8 | offset to vtable - +0x25B4 | 12 00 | uint16_t | 0x0012 (18) | table field `id` (UShort) - +0x25B6 | 28 00 | uint16_t | 0x0028 (40) | table field `offset` (UShort) - +0x25B8 | 68 00 00 00 | UOffset32 | 0x00000068 (104) Loc: +0x2620 | offset to field `name` (string) - +0x25BC | 54 00 00 00 | UOffset32 | 0x00000054 (84) Loc: +0x2610 | offset to field `type` (table) - +0x25C0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x25C4 | offset to field `attributes` (vector) + +0x25B0 | B8 FA FF FF | SOffset32 | 0xFFFFFAB8 (-1352) Loc: 0x2AF8 | offset to vtable + +0x25B4 | 12 00 | uint16_t | 0x0012 (18) | table field `id` (UShort) + +0x25B6 | 28 00 | uint16_t | 0x0028 (40) | table field `offset` (UShort) + +0x25B8 | 68 00 00 00 | UOffset32 | 0x00000068 (104) Loc: 0x2620 | offset to field `name` (string) + +0x25BC | 54 00 00 00 | UOffset32 | 0x00000054 (84) Loc: 0x2610 | offset to field `type` (table) + +0x25C0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x25C4 | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x25C4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) - +0x25C8 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x25EC | offset to table[0] - +0x25CC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x25D0 | offset to table[1] + +0x25C4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) + +0x25C8 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: 0x25EC | offset to table[0] + +0x25CC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x25D0 | offset to table[1] table (reflection.KeyValue): - +0x25D0 | 08 ED FF FF | SOffset32 | 0xFFFFED08 (-4856) Loc: +0x38C8 | offset to vtable - +0x25D4 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x25E4 | offset to field `key` (string) - +0x25D8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x25DC | offset to field `value` (string) + +0x25D0 | 08 ED FF FF | SOffset32 | 0xFFFFED08 (-4856) Loc: 0x38C8 | offset to vtable + +0x25D4 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x25E4 | offset to field `key` (string) + +0x25D8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x25DC | offset to field `value` (string) string (reflection.KeyValue.value): - +0x25DC | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x25E0 | 31 38 | char[2] | 18 | string literal - +0x25E2 | 00 | char | 0x00 (0) | string terminator + +0x25DC | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x25E0 | 31 38 | char[2] | 18 | string literal + +0x25E2 | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x25E4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x25E8 | 69 64 | char[2] | id | string literal - +0x25EA | 00 | char | 0x00 (0) | string terminator + +0x25E4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x25E8 | 69 64 | char[2] | id | string literal + +0x25EA | 00 | char | 0x00 (0) | string terminator table (reflection.KeyValue): - +0x25EC | 24 ED FF FF | SOffset32 | 0xFFFFED24 (-4828) Loc: +0x38C8 | offset to vtable - +0x25F0 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x2604 | offset to field `key` (string) - +0x25F4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x25F8 | offset to field `value` (string) + +0x25EC | 24 ED FF FF | SOffset32 | 0xFFFFED24 (-4828) Loc: 0x38C8 | offset to vtable + +0x25F0 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: 0x2604 | offset to field `key` (string) + +0x25F4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x25F8 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x25F8 | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string - +0x25FC | 66 6E 76 31 5F 36 34 | char[7] | fnv1_64 | string literal - +0x2603 | 00 | char | 0x00 (0) | string terminator + +0x25F8 | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string + +0x25FC | 66 6E 76 31 5F 36 34 | char[7] | fnv1_64 | string literal + +0x2603 | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x2604 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string - +0x2608 | 68 61 73 68 | char[4] | hash | string literal - +0x260C | 00 | char | 0x00 (0) | string terminator + +0x2604 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string + +0x2608 | 68 61 73 68 | char[4] | hash | string literal + +0x260C | 00 | char | 0x00 (0) | string terminator padding: - +0x260D | 00 00 00 | uint8_t[3] | ... | padding + +0x260D | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Type): - +0x2610 | 9C EF FF FF | SOffset32 | 0xFFFFEF9C (-4196) Loc: +0x3674 | offset to vtable - +0x2614 | 00 00 00 | uint8_t[3] | ... | padding - +0x2617 | 09 | uint8_t | 0x09 (9) | table field `base_type` (Byte) - +0x2618 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt) - +0x261C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x2610 | 9C EF FF FF | SOffset32 | 0xFFFFEF9C (-4196) Loc: 0x3674 | offset to vtable + +0x2614 | 00 00 00 | uint8_t[3] | ... | padding + +0x2617 | 09 | uint8_t | 0x09 (9) | table field `base_type` (Byte) + +0x2618 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt) + +0x261C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x2620 | 10 00 00 00 | uint32_t | 0x00000010 (16) | length of string - +0x2624 | 74 65 73 74 68 61 73 68 | char[16] | testhash | string literal - +0x262C | 73 36 34 5F 66 6E 76 31 | | s64_fnv1 - +0x2634 | 00 | char | 0x00 (0) | string terminator + +0x2620 | 10 00 00 00 | uint32_t | 0x00000010 (16) | length of string + +0x2624 | 74 65 73 74 68 61 73 68 | char[16] | testhash | string literal + +0x262C | 73 36 34 5F 66 6E 76 31 | | s64_fnv1 + +0x2634 | 00 | char | 0x00 (0) | string terminator padding: - +0x2635 | 00 00 00 | uint8_t[3] | ... | padding + +0x2635 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Field): - +0x2638 | 40 FB FF FF | SOffset32 | 0xFFFFFB40 (-1216) Loc: +0x2AF8 | offset to vtable - +0x263C | 11 00 | uint16_t | 0x0011 (17) | table field `id` (UShort) - +0x263E | 26 00 | uint16_t | 0x0026 (38) | table field `offset` (UShort) - +0x2640 | 64 00 00 00 | UOffset32 | 0x00000064 (100) Loc: +0x26A4 | offset to field `name` (string) - +0x2644 | 54 00 00 00 | UOffset32 | 0x00000054 (84) Loc: +0x2698 | offset to field `type` (table) - +0x2648 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x264C | offset to field `attributes` (vector) + +0x2638 | 40 FB FF FF | SOffset32 | 0xFFFFFB40 (-1216) Loc: 0x2AF8 | offset to vtable + +0x263C | 11 00 | uint16_t | 0x0011 (17) | table field `id` (UShort) + +0x263E | 26 00 | uint16_t | 0x0026 (38) | table field `offset` (UShort) + +0x2640 | 64 00 00 00 | UOffset32 | 0x00000064 (100) Loc: 0x26A4 | offset to field `name` (string) + +0x2644 | 54 00 00 00 | UOffset32 | 0x00000054 (84) Loc: 0x2698 | offset to field `type` (table) + +0x2648 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x264C | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x264C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) - +0x2650 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x2674 | offset to table[0] - +0x2654 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2658 | offset to table[1] + +0x264C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) + +0x2650 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: 0x2674 | offset to table[0] + +0x2654 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2658 | offset to table[1] table (reflection.KeyValue): - +0x2658 | 90 ED FF FF | SOffset32 | 0xFFFFED90 (-4720) Loc: +0x38C8 | offset to vtable - +0x265C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x266C | offset to field `key` (string) - +0x2660 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2664 | offset to field `value` (string) + +0x2658 | 90 ED FF FF | SOffset32 | 0xFFFFED90 (-4720) Loc: 0x38C8 | offset to vtable + +0x265C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x266C | offset to field `key` (string) + +0x2660 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2664 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x2664 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x2668 | 31 37 | char[2] | 17 | string literal - +0x266A | 00 | char | 0x00 (0) | string terminator + +0x2664 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2668 | 31 37 | char[2] | 17 | string literal + +0x266A | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x266C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x2670 | 69 64 | char[2] | id | string literal - +0x2672 | 00 | char | 0x00 (0) | string terminator + +0x266C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2670 | 69 64 | char[2] | id | string literal + +0x2672 | 00 | char | 0x00 (0) | string terminator table (reflection.KeyValue): - +0x2674 | AC ED FF FF | SOffset32 | 0xFFFFEDAC (-4692) Loc: +0x38C8 | offset to vtable - +0x2678 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x268C | offset to field `key` (string) - +0x267C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2680 | offset to field `value` (string) + +0x2674 | AC ED FF FF | SOffset32 | 0xFFFFEDAC (-4692) Loc: 0x38C8 | offset to vtable + +0x2678 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: 0x268C | offset to field `key` (string) + +0x267C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2680 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x2680 | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string - +0x2684 | 66 6E 76 31 5F 33 32 | char[7] | fnv1_32 | string literal - +0x268B | 00 | char | 0x00 (0) | string terminator + +0x2680 | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string + +0x2684 | 66 6E 76 31 5F 33 32 | char[7] | fnv1_32 | string literal + +0x268B | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x268C | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string - +0x2690 | 68 61 73 68 | char[4] | hash | string literal - +0x2694 | 00 | char | 0x00 (0) | string terminator + +0x268C | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string + +0x2690 | 68 61 73 68 | char[4] | hash | string literal + +0x2694 | 00 | char | 0x00 (0) | string terminator padding: - +0x2695 | 00 00 00 | uint8_t[3] | ... | padding + +0x2695 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Type): - +0x2698 | BC ED FF FF | SOffset32 | 0xFFFFEDBC (-4676) Loc: +0x38DC | offset to vtable - +0x269C | 00 00 00 | uint8_t[3] | ... | padding - +0x269F | 08 | uint8_t | 0x08 (8) | table field `base_type` (Byte) - +0x26A0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x2698 | BC ED FF FF | SOffset32 | 0xFFFFEDBC (-4676) Loc: 0x38DC | offset to vtable + +0x269C | 00 00 00 | uint8_t[3] | ... | padding + +0x269F | 08 | uint8_t | 0x08 (8) | table field `base_type` (Byte) + +0x26A0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x26A4 | 10 00 00 00 | uint32_t | 0x00000010 (16) | length of string - +0x26A8 | 74 65 73 74 68 61 73 68 | char[16] | testhash | string literal - +0x26B0 | 75 33 32 5F 66 6E 76 31 | | u32_fnv1 - +0x26B8 | 00 | char | 0x00 (0) | string terminator + +0x26A4 | 10 00 00 00 | uint32_t | 0x00000010 (16) | length of string + +0x26A8 | 74 65 73 74 68 61 73 68 | char[16] | testhash | string literal + +0x26B0 | 75 33 32 5F 66 6E 76 31 | | u32_fnv1 + +0x26B8 | 00 | char | 0x00 (0) | string terminator padding: - +0x26B9 | 00 00 00 | uint8_t[3] | ... | padding + +0x26B9 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Field): - +0x26BC | C4 FB FF FF | SOffset32 | 0xFFFFFBC4 (-1084) Loc: +0x2AF8 | offset to vtable - +0x26C0 | 10 00 | uint16_t | 0x0010 (16) | table field `id` (UShort) - +0x26C2 | 24 00 | uint16_t | 0x0024 (36) | table field `offset` (UShort) - +0x26C4 | 64 00 00 00 | UOffset32 | 0x00000064 (100) Loc: +0x2728 | offset to field `name` (string) - +0x26C8 | 54 00 00 00 | UOffset32 | 0x00000054 (84) Loc: +0x271C | offset to field `type` (table) - +0x26CC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x26D0 | offset to field `attributes` (vector) + +0x26BC | C4 FB FF FF | SOffset32 | 0xFFFFFBC4 (-1084) Loc: 0x2AF8 | offset to vtable + +0x26C0 | 10 00 | uint16_t | 0x0010 (16) | table field `id` (UShort) + +0x26C2 | 24 00 | uint16_t | 0x0024 (36) | table field `offset` (UShort) + +0x26C4 | 64 00 00 00 | UOffset32 | 0x00000064 (100) Loc: 0x2728 | offset to field `name` (string) + +0x26C8 | 54 00 00 00 | UOffset32 | 0x00000054 (84) Loc: 0x271C | offset to field `type` (table) + +0x26CC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x26D0 | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x26D0 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) - +0x26D4 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x26F8 | offset to table[0] - +0x26D8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x26DC | offset to table[1] + +0x26D0 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) + +0x26D4 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: 0x26F8 | offset to table[0] + +0x26D8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x26DC | offset to table[1] table (reflection.KeyValue): - +0x26DC | 14 EE FF FF | SOffset32 | 0xFFFFEE14 (-4588) Loc: +0x38C8 | offset to vtable - +0x26E0 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x26F0 | offset to field `key` (string) - +0x26E4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x26E8 | offset to field `value` (string) + +0x26DC | 14 EE FF FF | SOffset32 | 0xFFFFEE14 (-4588) Loc: 0x38C8 | offset to vtable + +0x26E0 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x26F0 | offset to field `key` (string) + +0x26E4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x26E8 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x26E8 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x26EC | 31 36 | char[2] | 16 | string literal - +0x26EE | 00 | char | 0x00 (0) | string terminator + +0x26E8 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x26EC | 31 36 | char[2] | 16 | string literal + +0x26EE | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x26F0 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x26F4 | 69 64 | char[2] | id | string literal - +0x26F6 | 00 | char | 0x00 (0) | string terminator + +0x26F0 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x26F4 | 69 64 | char[2] | id | string literal + +0x26F6 | 00 | char | 0x00 (0) | string terminator table (reflection.KeyValue): - +0x26F8 | 30 EE FF FF | SOffset32 | 0xFFFFEE30 (-4560) Loc: +0x38C8 | offset to vtable - +0x26FC | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x2710 | offset to field `key` (string) - +0x2700 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2704 | offset to field `value` (string) + +0x26F8 | 30 EE FF FF | SOffset32 | 0xFFFFEE30 (-4560) Loc: 0x38C8 | offset to vtable + +0x26FC | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: 0x2710 | offset to field `key` (string) + +0x2700 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2704 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x2704 | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string - +0x2708 | 66 6E 76 31 5F 33 32 | char[7] | fnv1_32 | string literal - +0x270F | 00 | char | 0x00 (0) | string terminator + +0x2704 | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string + +0x2708 | 66 6E 76 31 5F 33 32 | char[7] | fnv1_32 | string literal + +0x270F | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x2710 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string - +0x2714 | 68 61 73 68 | char[4] | hash | string literal - +0x2718 | 00 | char | 0x00 (0) | string terminator + +0x2710 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string + +0x2714 | 68 61 73 68 | char[4] | hash | string literal + +0x2718 | 00 | char | 0x00 (0) | string terminator padding: - +0x2719 | 00 00 00 | uint8_t[3] | ... | padding + +0x2719 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Type): - +0x271C | 40 EE FF FF | SOffset32 | 0xFFFFEE40 (-4544) Loc: +0x38DC | offset to vtable - +0x2720 | 00 00 00 | uint8_t[3] | ... | padding - +0x2723 | 07 | uint8_t | 0x07 (7) | table field `base_type` (Byte) - +0x2724 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x271C | 40 EE FF FF | SOffset32 | 0xFFFFEE40 (-4544) Loc: 0x38DC | offset to vtable + +0x2720 | 00 00 00 | uint8_t[3] | ... | padding + +0x2723 | 07 | uint8_t | 0x07 (7) | table field `base_type` (Byte) + +0x2724 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x2728 | 10 00 00 00 | uint32_t | 0x00000010 (16) | length of string - +0x272C | 74 65 73 74 68 61 73 68 | char[16] | testhash | string literal - +0x2734 | 73 33 32 5F 66 6E 76 31 | | s32_fnv1 - +0x273C | 00 | char | 0x00 (0) | string terminator + +0x2728 | 10 00 00 00 | uint32_t | 0x00000010 (16) | length of string + +0x272C | 74 65 73 74 68 61 73 68 | char[16] | testhash | string literal + +0x2734 | 73 33 32 5F 66 6E 76 31 | | s32_fnv1 + +0x273C | 00 | char | 0x00 (0) | string terminator padding: - +0x273D | 00 00 00 | uint8_t[3] | ... | padding + +0x273D | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Field): - +0x2740 | 48 FC FF FF | SOffset32 | 0xFFFFFC48 (-952) Loc: +0x2AF8 | offset to vtable - +0x2744 | 0F 00 | uint16_t | 0x000F (15) | table field `id` (UShort) - +0x2746 | 22 00 | uint16_t | 0x0022 (34) | table field `offset` (UShort) - +0x2748 | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: +0x2788 | offset to field `name` (string) - +0x274C | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: +0x2778 | offset to field `type` (table) - +0x2750 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2754 | offset to field `attributes` (vector) + +0x2740 | 48 FC FF FF | SOffset32 | 0xFFFFFC48 (-952) Loc: 0x2AF8 | offset to vtable + +0x2744 | 0F 00 | uint16_t | 0x000F (15) | table field `id` (UShort) + +0x2746 | 22 00 | uint16_t | 0x0022 (34) | table field `offset` (UShort) + +0x2748 | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: 0x2788 | offset to field `name` (string) + +0x274C | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: 0x2778 | offset to field `type` (table) + +0x2750 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2754 | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x2754 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x2758 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x275C | offset to table[0] + +0x2754 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x2758 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x275C | offset to table[0] table (reflection.KeyValue): - +0x275C | 94 EE FF FF | SOffset32 | 0xFFFFEE94 (-4460) Loc: +0x38C8 | offset to vtable - +0x2760 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2770 | offset to field `key` (string) - +0x2764 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2768 | offset to field `value` (string) + +0x275C | 94 EE FF FF | SOffset32 | 0xFFFFEE94 (-4460) Loc: 0x38C8 | offset to vtable + +0x2760 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x2770 | offset to field `key` (string) + +0x2764 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2768 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x2768 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x276C | 31 35 | char[2] | 15 | string literal - +0x276E | 00 | char | 0x00 (0) | string terminator + +0x2768 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x276C | 31 35 | char[2] | 15 | string literal + +0x276E | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x2770 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x2774 | 69 64 | char[2] | id | string literal - +0x2776 | 00 | char | 0x00 (0) | string terminator + +0x2770 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2774 | 69 64 | char[2] | id | string literal + +0x2776 | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x2778 | 04 F1 FF FF | SOffset32 | 0xFFFFF104 (-3836) Loc: +0x3674 | offset to vtable - +0x277C | 00 00 00 | uint8_t[3] | ... | padding - +0x277F | 02 | uint8_t | 0x02 (2) | table field `base_type` (Byte) - +0x2780 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) - +0x2784 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x2778 | 04 F1 FF FF | SOffset32 | 0xFFFFF104 (-3836) Loc: 0x3674 | offset to vtable + +0x277C | 00 00 00 | uint8_t[3] | ... | padding + +0x277F | 02 | uint8_t | 0x02 (2) | table field `base_type` (Byte) + +0x2780 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) + +0x2784 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x2788 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string - +0x278C | 74 65 73 74 62 6F 6F 6C | char[8] | testbool | string literal - +0x2794 | 00 | char | 0x00 (0) | string terminator + +0x2788 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string + +0x278C | 74 65 73 74 62 6F 6F 6C | char[8] | testbool | string literal + +0x2794 | 00 | char | 0x00 (0) | string terminator padding: - +0x2795 | 00 00 00 | uint8_t[3] | ... | padding + +0x2795 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Field): - +0x2798 | B0 FB FF FF | SOffset32 | 0xFFFFFBB0 (-1104) Loc: +0x2BE8 | offset to vtable - +0x279C | 00 00 00 | uint8_t[3] | ... | padding - +0x279F | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x27A0 | 0E 00 | uint16_t | 0x000E (14) | table field `id` (UShort) - +0x27A2 | 20 00 | uint16_t | 0x0020 (32) | table field `offset` (UShort) - +0x27A4 | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: +0x27E4 | offset to field `name` (string) - +0x27A8 | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: +0x27D4 | offset to field `type` (table) - +0x27AC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x27B0 | offset to field `attributes` (vector) + +0x2798 | B0 FB FF FF | SOffset32 | 0xFFFFFBB0 (-1104) Loc: 0x2BE8 | offset to vtable + +0x279C | 00 00 00 | uint8_t[3] | ... | padding + +0x279F | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x27A0 | 0E 00 | uint16_t | 0x000E (14) | table field `id` (UShort) + +0x27A2 | 20 00 | uint16_t | 0x0020 (32) | table field `offset` (UShort) + +0x27A4 | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: 0x27E4 | offset to field `name` (string) + +0x27A8 | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: 0x27D4 | offset to field `type` (table) + +0x27AC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x27B0 | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x27B0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x27B4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x27B8 | offset to table[0] + +0x27B0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x27B4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x27B8 | offset to table[0] table (reflection.KeyValue): - +0x27B8 | F0 EE FF FF | SOffset32 | 0xFFFFEEF0 (-4368) Loc: +0x38C8 | offset to vtable - +0x27BC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x27CC | offset to field `key` (string) - +0x27C0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x27C4 | offset to field `value` (string) + +0x27B8 | F0 EE FF FF | SOffset32 | 0xFFFFEEF0 (-4368) Loc: 0x38C8 | offset to vtable + +0x27BC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x27CC | offset to field `key` (string) + +0x27C0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x27C4 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x27C4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x27C8 | 31 34 | char[2] | 14 | string literal - +0x27CA | 00 | char | 0x00 (0) | string terminator + +0x27C4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x27C8 | 31 34 | char[2] | 14 | string literal + +0x27CA | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x27CC | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x27D0 | 69 64 | char[2] | id | string literal - +0x27D2 | 00 | char | 0x00 (0) | string terminator + +0x27CC | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x27D0 | 69 64 | char[2] | id | string literal + +0x27D2 | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x27D4 | BC EF FF FF | SOffset32 | 0xFFFFEFBC (-4164) Loc: +0x3818 | offset to vtable - +0x27D8 | 00 00 00 | uint8_t[3] | ... | padding - +0x27DB | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) - +0x27DC | 03 00 00 00 | uint32_t | 0x00000003 (3) | table field `index` (Int) - +0x27E0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x27D4 | BC EF FF FF | SOffset32 | 0xFFFFEFBC (-4164) Loc: 0x3818 | offset to vtable + +0x27D8 | 00 00 00 | uint8_t[3] | ... | padding + +0x27DB | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) + +0x27DC | 03 00 00 00 | uint32_t | 0x00000003 (3) | table field `index` (Int) + +0x27E0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x27E4 | 09 00 00 00 | uint32_t | 0x00000009 (9) | length of string - +0x27E8 | 74 65 73 74 65 6D 70 74 | char[9] | testempt | string literal - +0x27F0 | 79 | | y - +0x27F1 | 00 | char | 0x00 (0) | string terminator + +0x27E4 | 09 00 00 00 | uint32_t | 0x00000009 (9) | length of string + +0x27E8 | 74 65 73 74 65 6D 70 74 | char[9] | testempt | string literal + +0x27F0 | 79 | | y + +0x27F1 | 00 | char | 0x00 (0) | string terminator padding: - +0x27F2 | 00 00 | uint8_t[2] | .. | padding + +0x27F2 | 00 00 | uint8_t[2] | .. | padding table (reflection.Field): - +0x27F4 | 0C FC FF FF | SOffset32 | 0xFFFFFC0C (-1012) Loc: +0x2BE8 | offset to vtable - +0x27F8 | 00 00 00 | uint8_t[3] | ... | padding - +0x27FB | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x27FC | 0D 00 | uint16_t | 0x000D (13) | table field `id` (UShort) - +0x27FE | 1E 00 | uint16_t | 0x001E (30) | table field `offset` (UShort) - +0x2800 | 70 00 00 00 | UOffset32 | 0x00000070 (112) Loc: +0x2870 | offset to field `name` (string) - +0x2804 | 60 00 00 00 | UOffset32 | 0x00000060 (96) Loc: +0x2864 | offset to field `type` (table) - +0x2808 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x280C | offset to field `attributes` (vector) + +0x27F4 | 0C FC FF FF | SOffset32 | 0xFFFFFC0C (-1012) Loc: 0x2BE8 | offset to vtable + +0x27F8 | 00 00 00 | uint8_t[3] | ... | padding + +0x27FB | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x27FC | 0D 00 | uint16_t | 0x000D (13) | table field `id` (UShort) + +0x27FE | 1E 00 | uint16_t | 0x001E (30) | table field `offset` (UShort) + +0x2800 | 70 00 00 00 | UOffset32 | 0x00000070 (112) Loc: 0x2870 | offset to field `name` (string) + +0x2804 | 60 00 00 00 | UOffset32 | 0x00000060 (96) Loc: 0x2864 | offset to field `type` (table) + +0x2808 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x280C | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x280C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) - +0x2810 | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: +0x2848 | offset to table[0] - +0x2814 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2818 | offset to table[1] + +0x280C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) + +0x2810 | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: 0x2848 | offset to table[0] + +0x2814 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2818 | offset to table[1] table (reflection.KeyValue): - +0x2818 | 50 EF FF FF | SOffset32 | 0xFFFFEF50 (-4272) Loc: +0x38C8 | offset to vtable - +0x281C | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x2830 | offset to field `key` (string) - +0x2820 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2824 | offset to field `value` (string) + +0x2818 | 50 EF FF FF | SOffset32 | 0xFFFFEF50 (-4272) Loc: 0x38C8 | offset to vtable + +0x281C | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: 0x2830 | offset to field `key` (string) + +0x2820 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2824 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x2824 | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string - +0x2828 | 4D 6F 6E 73 74 65 72 | char[7] | Monster | string literal - +0x282F | 00 | char | 0x00 (0) | string terminator + +0x2824 | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string + +0x2828 | 4D 6F 6E 73 74 65 72 | char[7] | Monster | string literal + +0x282F | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x2830 | 11 00 00 00 | uint32_t | 0x00000011 (17) | length of string - +0x2834 | 6E 65 73 74 65 64 5F 66 | char[17] | nested_f | string literal - +0x283C | 6C 61 74 62 75 66 66 65 | | latbuffe - +0x2844 | 72 | | r - +0x2845 | 00 | char | 0x00 (0) | string terminator + +0x2830 | 11 00 00 00 | uint32_t | 0x00000011 (17) | length of string + +0x2834 | 6E 65 73 74 65 64 5F 66 | char[17] | nested_f | string literal + +0x283C | 6C 61 74 62 75 66 66 65 | | latbuffe + +0x2844 | 72 | | r + +0x2845 | 00 | char | 0x00 (0) | string terminator padding: - +0x2846 | 00 00 | uint8_t[2] | .. | padding + +0x2846 | 00 00 | uint8_t[2] | .. | padding table (reflection.KeyValue): - +0x2848 | 80 EF FF FF | SOffset32 | 0xFFFFEF80 (-4224) Loc: +0x38C8 | offset to vtable - +0x284C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x285C | offset to field `key` (string) - +0x2850 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2854 | offset to field `value` (string) + +0x2848 | 80 EF FF FF | SOffset32 | 0xFFFFEF80 (-4224) Loc: 0x38C8 | offset to vtable + +0x284C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x285C | offset to field `key` (string) + +0x2850 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2854 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x2854 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x2858 | 31 33 | char[2] | 13 | string literal - +0x285A | 00 | char | 0x00 (0) | string terminator + +0x2854 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2858 | 31 33 | char[2] | 13 | string literal + +0x285A | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x285C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x2860 | 69 64 | char[2] | id | string literal - +0x2862 | 00 | char | 0x00 (0) | string terminator + +0x285C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2860 | 69 64 | char[2] | id | string literal + +0x2862 | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x2864 | 24 FC FF FF | SOffset32 | 0xFFFFFC24 (-988) Loc: +0x2C40 | offset to vtable - +0x2868 | 00 00 | uint8_t[2] | .. | padding - +0x286A | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) - +0x286B | 04 | uint8_t | 0x04 (4) | table field `element` (Byte) - +0x286C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x2864 | 24 FC FF FF | SOffset32 | 0xFFFFFC24 (-988) Loc: 0x2C40 | offset to vtable + +0x2868 | 00 00 | uint8_t[2] | .. | padding + +0x286A | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) + +0x286B | 04 | uint8_t | 0x04 (4) | table field `element` (Byte) + +0x286C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x2870 | 14 00 00 00 | uint32_t | 0x00000014 (20) | length of string - +0x2874 | 74 65 73 74 6E 65 73 74 | char[20] | testnest | string literal - +0x287C | 65 64 66 6C 61 74 62 75 | | edflatbu - +0x2884 | 66 66 65 72 | | ffer - +0x2888 | 00 | char | 0x00 (0) | string terminator + +0x2870 | 14 00 00 00 | uint32_t | 0x00000014 (20) | length of string + +0x2874 | 74 65 73 74 6E 65 73 74 | char[20] | testnest | string literal + +0x287C | 65 64 66 6C 61 74 62 75 | | edflatbu + +0x2884 | 66 66 65 72 | | ffer + +0x2888 | 00 | char | 0x00 (0) | string terminator padding: - +0x2889 | 00 00 00 | uint8_t[3] | ... | padding + +0x2889 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Field): - +0x288C | A4 FC FF FF | SOffset32 | 0xFFFFFCA4 (-860) Loc: +0x2BE8 | offset to vtable - +0x2890 | 00 00 00 | uint8_t[3] | ... | padding - +0x2893 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x2894 | 0C 00 | uint16_t | 0x000C (12) | table field `id` (UShort) - +0x2896 | 1C 00 | uint16_t | 0x001C (28) | table field `offset` (UShort) - +0x2898 | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: +0x28D8 | offset to field `name` (string) - +0x289C | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: +0x28C8 | offset to field `type` (table) - +0x28A0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x28A4 | offset to field `attributes` (vector) + +0x288C | A4 FC FF FF | SOffset32 | 0xFFFFFCA4 (-860) Loc: 0x2BE8 | offset to vtable + +0x2890 | 00 00 00 | uint8_t[3] | ... | padding + +0x2893 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x2894 | 0C 00 | uint16_t | 0x000C (12) | table field `id` (UShort) + +0x2896 | 1C 00 | uint16_t | 0x001C (28) | table field `offset` (UShort) + +0x2898 | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: 0x28D8 | offset to field `name` (string) + +0x289C | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: 0x28C8 | offset to field `type` (table) + +0x28A0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x28A4 | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x28A4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x28A8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x28AC | offset to table[0] + +0x28A4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x28A8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x28AC | offset to table[0] table (reflection.KeyValue): - +0x28AC | E4 EF FF FF | SOffset32 | 0xFFFFEFE4 (-4124) Loc: +0x38C8 | offset to vtable - +0x28B0 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x28C0 | offset to field `key` (string) - +0x28B4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x28B8 | offset to field `value` (string) + +0x28AC | E4 EF FF FF | SOffset32 | 0xFFFFEFE4 (-4124) Loc: 0x38C8 | offset to vtable + +0x28B0 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x28C0 | offset to field `key` (string) + +0x28B4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x28B8 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x28B8 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x28BC | 31 32 | char[2] | 12 | string literal - +0x28BE | 00 | char | 0x00 (0) | string terminator + +0x28B8 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x28BC | 31 32 | char[2] | 12 | string literal + +0x28BE | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x28C0 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x28C4 | 69 64 | char[2] | id | string literal - +0x28C6 | 00 | char | 0x00 (0) | string terminator + +0x28C0 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x28C4 | 69 64 | char[2] | id | string literal + +0x28C6 | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x28C8 | B0 F0 FF FF | SOffset32 | 0xFFFFF0B0 (-3920) Loc: +0x3818 | offset to vtable - +0x28CC | 00 00 00 | uint8_t[3] | ... | padding - +0x28CF | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) - +0x28D0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `index` (Int) - +0x28D4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x28C8 | B0 F0 FF FF | SOffset32 | 0xFFFFF0B0 (-3920) Loc: 0x3818 | offset to vtable + +0x28CC | 00 00 00 | uint8_t[3] | ... | padding + +0x28CF | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) + +0x28D0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `index` (Int) + +0x28D4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x28D8 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string - +0x28DC | 65 6E 65 6D 79 | char[5] | enemy | string literal - +0x28E1 | 00 | char | 0x00 (0) | string terminator + +0x28D8 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string + +0x28DC | 65 6E 65 6D 79 | char[5] | enemy | string literal + +0x28E1 | 00 | char | 0x00 (0) | string terminator padding: - +0x28E2 | 00 00 | uint8_t[2] | .. | padding + +0x28E2 | 00 00 | uint8_t[2] | .. | padding vtable (reflection.Field): - +0x28E4 | 1C 00 | uint16_t | 0x001C (28) | size of this vtable - +0x28E6 | 1C 00 | uint16_t | 0x001C (28) | size of referring table - +0x28E8 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `name` (id: 0) - +0x28EA | 10 00 | VOffset16 | 0x0010 (16) | offset to field `type` (id: 1) - +0x28EC | 08 00 | VOffset16 | 0x0008 (8) | offset to field `id` (id: 2) - +0x28EE | 0A 00 | VOffset16 | 0x000A (10) | offset to field `offset` (id: 3) - +0x28F0 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) (Long) - +0x28F2 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) (Double) - +0x28F4 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) - +0x28F6 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) (Bool) - +0x28F8 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 8) (Bool) - +0x28FA | 14 00 | VOffset16 | 0x0014 (20) | offset to field `attributes` (id: 9) - +0x28FC | 18 00 | VOffset16 | 0x0018 (24) | offset to field `documentation` (id: 10) - +0x28FE | 07 00 | VOffset16 | 0x0007 (7) | offset to field `optional` (id: 11) + +0x28E4 | 1C 00 | uint16_t | 0x001C (28) | size of this vtable + +0x28E6 | 1C 00 | uint16_t | 0x001C (28) | size of referring table + +0x28E8 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `name` (id: 0) + +0x28EA | 10 00 | VOffset16 | 0x0010 (16) | offset to field `type` (id: 1) + +0x28EC | 08 00 | VOffset16 | 0x0008 (8) | offset to field `id` (id: 2) + +0x28EE | 0A 00 | VOffset16 | 0x000A (10) | offset to field `offset` (id: 3) + +0x28F0 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) (Long) + +0x28F2 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) (Double) + +0x28F4 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) + +0x28F6 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) (Bool) + +0x28F8 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 8) (Bool) + +0x28FA | 14 00 | VOffset16 | 0x0014 (20) | offset to field `attributes` (id: 9) + +0x28FC | 18 00 | VOffset16 | 0x0018 (24) | offset to field `documentation` (id: 10) + +0x28FE | 07 00 | VOffset16 | 0x0007 (7) | offset to field `optional` (id: 11) table (reflection.Field): - +0x2900 | 1C 00 00 00 | SOffset32 | 0x0000001C (28) Loc: +0x28E4 | offset to vtable - +0x2904 | 00 00 00 | uint8_t[3] | ... | padding - +0x2907 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x2908 | 0B 00 | uint16_t | 0x000B (11) | table field `id` (UShort) - +0x290A | 1A 00 | uint16_t | 0x001A (26) | table field `offset` (UShort) - +0x290C | B4 00 00 00 | UOffset32 | 0x000000B4 (180) Loc: +0x29C0 | offset to field `name` (string) - +0x2910 | A0 00 00 00 | UOffset32 | 0x000000A0 (160) Loc: +0x29B0 | offset to field `type` (table) - +0x2914 | 78 00 00 00 | UOffset32 | 0x00000078 (120) Loc: +0x298C | offset to field `attributes` (vector) - +0x2918 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x291C | offset to field `documentation` (vector) + +0x2900 | 1C 00 00 00 | SOffset32 | 0x0000001C (28) Loc: 0x28E4 | offset to vtable + +0x2904 | 00 00 00 | uint8_t[3] | ... | padding + +0x2907 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x2908 | 0B 00 | uint16_t | 0x000B (11) | table field `id` (UShort) + +0x290A | 1A 00 | uint16_t | 0x001A (26) | table field `offset` (UShort) + +0x290C | B4 00 00 00 | UOffset32 | 0x000000B4 (180) Loc: 0x29C0 | offset to field `name` (string) + +0x2910 | A0 00 00 00 | UOffset32 | 0x000000A0 (160) Loc: 0x29B0 | offset to field `type` (table) + +0x2914 | 78 00 00 00 | UOffset32 | 0x00000078 (120) Loc: 0x298C | offset to field `attributes` (vector) + +0x2918 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x291C | offset to field `documentation` (vector) vector (reflection.Field.documentation): - +0x291C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) - +0x2920 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: +0x293C | offset to string[0] - +0x2924 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2928 | offset to string[1] + +0x291C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) + +0x2920 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: 0x293C | offset to string[0] + +0x2924 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2928 | offset to string[1] string (reflection.Field.documentation): - +0x2928 | 0E 00 00 00 | uint32_t | 0x0000000E (14) | length of string - +0x292C | 20 6D 75 6C 74 69 6C 69 | char[14] | multili | string literal - +0x2934 | 6E 65 20 74 6F 6F | | ne too - +0x293A | 00 | char | 0x00 (0) | string terminator + +0x2928 | 0E 00 00 00 | uint32_t | 0x0000000E (14) | length of string + +0x292C | 20 6D 75 6C 74 69 6C 69 | char[14] | multili | string literal + +0x2934 | 6E 65 20 74 6F 6F | | ne too + +0x293A | 00 | char | 0x00 (0) | string terminator string (reflection.Field.documentation): - +0x293C | 49 00 00 00 | uint32_t | 0x00000049 (73) | length of string - +0x2940 | 20 61 6E 20 65 78 61 6D | char[73] | an exam | string literal - +0x2948 | 70 6C 65 20 64 6F 63 75 | | ple docu - +0x2950 | 6D 65 6E 74 61 74 69 6F | | mentatio - +0x2958 | 6E 20 63 6F 6D 6D 65 6E | | n commen - +0x2960 | 74 3A 20 74 68 69 73 20 | | t: this - +0x2968 | 77 69 6C 6C 20 65 6E 64 | | will end - +0x2970 | 20 75 70 20 69 6E 20 74 | | up in t - +0x2978 | 68 65 20 67 65 6E 65 72 | | he gener - +0x2980 | 61 74 65 64 20 63 6F 64 | | ated cod - +0x2988 | 65 | | e - +0x2989 | 00 | char | 0x00 (0) | string terminator - -padding: - +0x298A | 00 00 | uint8_t[2] | .. | padding + +0x293C | 49 00 00 00 | uint32_t | 0x00000049 (73) | length of string + +0x2940 | 20 61 6E 20 65 78 61 6D | char[73] | an exam | string literal + +0x2948 | 70 6C 65 20 64 6F 63 75 | | ple docu + +0x2950 | 6D 65 6E 74 61 74 69 6F | | mentatio + +0x2958 | 6E 20 63 6F 6D 6D 65 6E | | n commen + +0x2960 | 74 3A 20 74 68 69 73 20 | | t: this + +0x2968 | 77 69 6C 6C 20 65 6E 64 | | will end + +0x2970 | 20 75 70 20 69 6E 20 74 | | up in t + +0x2978 | 68 65 20 67 65 6E 65 72 | | he gener + +0x2980 | 61 74 65 64 20 63 6F 64 | | ated cod + +0x2988 | 65 | | e + +0x2989 | 00 | char | 0x00 (0) | string terminator + +padding: + +0x298A | 00 00 | uint8_t[2] | .. | padding vector (reflection.Field.attributes): - +0x298C | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x2990 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2994 | offset to table[0] + +0x298C | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x2990 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2994 | offset to table[0] table (reflection.KeyValue): - +0x2994 | CC F0 FF FF | SOffset32 | 0xFFFFF0CC (-3892) Loc: +0x38C8 | offset to vtable - +0x2998 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x29A8 | offset to field `key` (string) - +0x299C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x29A0 | offset to field `value` (string) + +0x2994 | CC F0 FF FF | SOffset32 | 0xFFFFF0CC (-3892) Loc: 0x38C8 | offset to vtable + +0x2998 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x29A8 | offset to field `key` (string) + +0x299C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x29A0 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x29A0 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x29A4 | 31 31 | char[2] | 11 | string literal - +0x29A6 | 00 | char | 0x00 (0) | string terminator + +0x29A0 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x29A4 | 31 31 | char[2] | 11 | string literal + +0x29A6 | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x29A8 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x29AC | 69 64 | char[2] | id | string literal - +0x29AE | 00 | char | 0x00 (0) | string terminator + +0x29A8 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x29AC | 69 64 | char[2] | id | string literal + +0x29AE | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x29B0 | 3C FF FF FF | SOffset32 | 0xFFFFFF3C (-196) Loc: +0x2A74 | offset to vtable - +0x29B4 | 00 00 | uint8_t[2] | .. | padding - +0x29B6 | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) - +0x29B7 | 0F | uint8_t | 0x0F (15) | table field `element` (Byte) - +0x29B8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `index` (Int) - +0x29BC | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `element_size` (UInt) + +0x29B0 | 3C FF FF FF | SOffset32 | 0xFFFFFF3C (-196) Loc: 0x2A74 | offset to vtable + +0x29B4 | 00 00 | uint8_t[2] | .. | padding + +0x29B6 | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) + +0x29B7 | 0F | uint8_t | 0x0F (15) | table field `element` (Byte) + +0x29B8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `index` (Int) + +0x29BC | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `element_size` (UInt) string (reflection.Field.name): - +0x29C0 | 11 00 00 00 | uint32_t | 0x00000011 (17) | length of string - +0x29C4 | 74 65 73 74 61 72 72 61 | char[17] | testarra | string literal - +0x29CC | 79 6F 66 74 61 62 6C 65 | | yoftable - +0x29D4 | 73 | | s - +0x29D5 | 00 | char | 0x00 (0) | string terminator + +0x29C0 | 11 00 00 00 | uint32_t | 0x00000011 (17) | length of string + +0x29C4 | 74 65 73 74 61 72 72 61 | char[17] | testarra | string literal + +0x29CC | 79 6F 66 74 61 62 6C 65 | | yoftable + +0x29D4 | 73 | | s + +0x29D5 | 00 | char | 0x00 (0) | string terminator padding: - +0x29D6 | 00 00 | uint8_t[2] | .. | padding + +0x29D6 | 00 00 | uint8_t[2] | .. | padding table (reflection.Field): - +0x29D8 | F0 FD FF FF | SOffset32 | 0xFFFFFDF0 (-528) Loc: +0x2BE8 | offset to vtable - +0x29DC | 00 00 00 | uint8_t[3] | ... | padding - +0x29DF | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x29E0 | 0A 00 | uint16_t | 0x000A (10) | table field `id` (UShort) - +0x29E2 | 18 00 | uint16_t | 0x0018 (24) | table field `offset` (UShort) - +0x29E4 | 3C 00 00 00 | UOffset32 | 0x0000003C (60) Loc: +0x2A20 | offset to field `name` (string) - +0x29E8 | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: +0x2A14 | offset to field `type` (table) - +0x29EC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x29F0 | offset to field `attributes` (vector) + +0x29D8 | F0 FD FF FF | SOffset32 | 0xFFFFFDF0 (-528) Loc: 0x2BE8 | offset to vtable + +0x29DC | 00 00 00 | uint8_t[3] | ... | padding + +0x29DF | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x29E0 | 0A 00 | uint16_t | 0x000A (10) | table field `id` (UShort) + +0x29E2 | 18 00 | uint16_t | 0x0018 (24) | table field `offset` (UShort) + +0x29E4 | 3C 00 00 00 | UOffset32 | 0x0000003C (60) Loc: 0x2A20 | offset to field `name` (string) + +0x29E8 | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: 0x2A14 | offset to field `type` (table) + +0x29EC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x29F0 | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x29F0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x29F4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x29F8 | offset to table[0] + +0x29F0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x29F4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x29F8 | offset to table[0] table (reflection.KeyValue): - +0x29F8 | 30 F1 FF FF | SOffset32 | 0xFFFFF130 (-3792) Loc: +0x38C8 | offset to vtable - +0x29FC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2A0C | offset to field `key` (string) - +0x2A00 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2A04 | offset to field `value` (string) + +0x29F8 | 30 F1 FF FF | SOffset32 | 0xFFFFF130 (-3792) Loc: 0x38C8 | offset to vtable + +0x29FC | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x2A0C | offset to field `key` (string) + +0x2A00 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2A04 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x2A04 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x2A08 | 31 30 | char[2] | 10 | string literal - +0x2A0A | 00 | char | 0x00 (0) | string terminator + +0x2A04 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2A08 | 31 30 | char[2] | 10 | string literal + +0x2A0A | 00 | char | 0x00 (0) | string terminator string (reflection.KeyValue.key): - +0x2A0C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x2A10 | 69 64 | char[2] | id | string literal - +0x2A12 | 00 | char | 0x00 (0) | string terminator + +0x2A0C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2A10 | 69 64 | char[2] | id | string literal + +0x2A12 | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x2A14 | D4 FD FF FF | SOffset32 | 0xFFFFFDD4 (-556) Loc: +0x2C40 | offset to vtable - +0x2A18 | 00 00 | uint8_t[2] | .. | padding - +0x2A1A | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) - +0x2A1B | 0D | uint8_t | 0x0D (13) | table field `element` (Byte) - +0x2A1C | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `element_size` (UInt) + +0x2A14 | D4 FD FF FF | SOffset32 | 0xFFFFFDD4 (-556) Loc: 0x2C40 | offset to vtable + +0x2A18 | 00 00 | uint8_t[2] | .. | padding + +0x2A1A | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) + +0x2A1B | 0D | uint8_t | 0x0D (13) | table field `element` (Byte) + +0x2A1C | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `element_size` (UInt) string (reflection.Field.name): - +0x2A20 | 11 00 00 00 | uint32_t | 0x00000011 (17) | length of string - +0x2A24 | 74 65 73 74 61 72 72 61 | char[17] | testarra | string literal - +0x2A2C | 79 6F 66 73 74 72 69 6E | | yofstrin - +0x2A34 | 67 | | g - +0x2A35 | 00 | char | 0x00 (0) | string terminator + +0x2A20 | 11 00 00 00 | uint32_t | 0x00000011 (17) | length of string + +0x2A24 | 74 65 73 74 61 72 72 61 | char[17] | testarra | string literal + +0x2A2C | 79 6F 66 73 74 72 69 6E | | yofstrin + +0x2A34 | 67 | | g + +0x2A35 | 00 | char | 0x00 (0) | string terminator padding: - +0x2A36 | 00 00 | uint8_t[2] | .. | padding + +0x2A36 | 00 00 | uint8_t[2] | .. | padding table (reflection.Field): - +0x2A38 | 50 FE FF FF | SOffset32 | 0xFFFFFE50 (-432) Loc: +0x2BE8 | offset to vtable - +0x2A3C | 00 00 00 | uint8_t[3] | ... | padding - +0x2A3F | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x2A40 | 09 00 | uint16_t | 0x0009 (9) | table field `id` (UShort) - +0x2A42 | 16 00 | uint16_t | 0x0016 (22) | table field `offset` (UShort) - +0x2A44 | 50 00 00 00 | UOffset32 | 0x00000050 (80) Loc: +0x2A94 | offset to field `name` (string) - +0x2A48 | 3C 00 00 00 | UOffset32 | 0x0000003C (60) Loc: +0x2A84 | offset to field `type` (table) - +0x2A4C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2A50 | offset to field `attributes` (vector) + +0x2A38 | 50 FE FF FF | SOffset32 | 0xFFFFFE50 (-432) Loc: 0x2BE8 | offset to vtable + +0x2A3C | 00 00 00 | uint8_t[3] | ... | padding + +0x2A3F | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x2A40 | 09 00 | uint16_t | 0x0009 (9) | table field `id` (UShort) + +0x2A42 | 16 00 | uint16_t | 0x0016 (22) | table field `offset` (UShort) + +0x2A44 | 50 00 00 00 | UOffset32 | 0x00000050 (80) Loc: 0x2A94 | offset to field `name` (string) + +0x2A48 | 3C 00 00 00 | UOffset32 | 0x0000003C (60) Loc: 0x2A84 | offset to field `type` (table) + +0x2A4C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2A50 | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x2A50 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x2A54 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2A58 | offset to table[0] + +0x2A50 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x2A54 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2A58 | offset to table[0] table (reflection.KeyValue): - +0x2A58 | 90 F1 FF FF | SOffset32 | 0xFFFFF190 (-3696) Loc: +0x38C8 | offset to vtable - +0x2A5C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2A6C | offset to field `key` (string) - +0x2A60 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2A64 | offset to field `value` (string) + +0x2A58 | 90 F1 FF FF | SOffset32 | 0xFFFFF190 (-3696) Loc: 0x38C8 | offset to vtable + +0x2A5C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x2A6C | offset to field `key` (string) + +0x2A60 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2A64 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x2A64 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x2A68 | 39 | char[1] | 9 | string literal - +0x2A69 | 00 | char | 0x00 (0) | string terminator + +0x2A64 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x2A68 | 39 | char[1] | 9 | string literal + +0x2A69 | 00 | char | 0x00 (0) | string terminator padding: - +0x2A6A | 00 00 | uint8_t[2] | .. | padding + +0x2A6A | 00 00 | uint8_t[2] | .. | padding string (reflection.KeyValue.key): - +0x2A6C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x2A70 | 69 64 | char[2] | id | string literal - +0x2A72 | 00 | char | 0x00 (0) | string terminator + +0x2A6C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2A70 | 69 64 | char[2] | id | string literal + +0x2A72 | 00 | char | 0x00 (0) | string terminator vtable (reflection.Type): - +0x2A74 | 10 00 | uint16_t | 0x0010 (16) | size of this vtable - +0x2A76 | 10 00 | uint16_t | 0x0010 (16) | size of referring table - +0x2A78 | 06 00 | VOffset16 | 0x0006 (6) | offset to field `base_type` (id: 0) - +0x2A7A | 07 00 | VOffset16 | 0x0007 (7) | offset to field `element` (id: 1) - +0x2A7C | 08 00 | VOffset16 | 0x0008 (8) | offset to field `index` (id: 2) - +0x2A7E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `fixed_length` (id: 3) (UShort) - +0x2A80 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `base_size` (id: 4) (UInt) - +0x2A82 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `element_size` (id: 5) + +0x2A74 | 10 00 | uint16_t | 0x0010 (16) | size of this vtable + +0x2A76 | 10 00 | uint16_t | 0x0010 (16) | size of referring table + +0x2A78 | 06 00 | VOffset16 | 0x0006 (6) | offset to field `base_type` (id: 0) + +0x2A7A | 07 00 | VOffset16 | 0x0007 (7) | offset to field `element` (id: 1) + +0x2A7C | 08 00 | VOffset16 | 0x0008 (8) | offset to field `index` (id: 2) + +0x2A7E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `fixed_length` (id: 3) (UShort) + +0x2A80 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `base_size` (id: 4) (UInt) + +0x2A82 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `element_size` (id: 5) table (reflection.Type): - +0x2A84 | 10 00 00 00 | SOffset32 | 0x00000010 (16) Loc: +0x2A74 | offset to vtable - +0x2A88 | 00 00 | uint8_t[2] | .. | padding - +0x2A8A | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) - +0x2A8B | 0F | uint8_t | 0x0F (15) | table field `element` (Byte) - +0x2A8C | 06 00 00 00 | uint32_t | 0x00000006 (6) | table field `index` (Int) - +0x2A90 | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `element_size` (UInt) + +0x2A84 | 10 00 00 00 | SOffset32 | 0x00000010 (16) Loc: 0x2A74 | offset to vtable + +0x2A88 | 00 00 | uint8_t[2] | .. | padding + +0x2A8A | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) + +0x2A8B | 0F | uint8_t | 0x0F (15) | table field `element` (Byte) + +0x2A8C | 06 00 00 00 | uint32_t | 0x00000006 (6) | table field `index` (Int) + +0x2A90 | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `element_size` (UInt) string (reflection.Field.name): - +0x2A94 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string - +0x2A98 | 74 65 73 74 34 | char[5] | test4 | string literal - +0x2A9D | 00 | char | 0x00 (0) | string terminator + +0x2A94 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string + +0x2A98 | 74 65 73 74 34 | char[5] | test4 | string literal + +0x2A9D | 00 | char | 0x00 (0) | string terminator padding: - +0x2A9E | 00 00 | uint8_t[2] | .. | padding + +0x2A9E | 00 00 | uint8_t[2] | .. | padding table (reflection.Field): - +0x2AA0 | B8 FE FF FF | SOffset32 | 0xFFFFFEB8 (-328) Loc: +0x2BE8 | offset to vtable - +0x2AA4 | 00 00 00 | uint8_t[3] | ... | padding - +0x2AA7 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x2AA8 | 08 00 | uint16_t | 0x0008 (8) | table field `id` (UShort) - +0x2AAA | 14 00 | uint16_t | 0x0014 (20) | table field `offset` (UShort) - +0x2AAC | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: +0x2AEC | offset to field `name` (string) - +0x2AB0 | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: +0x2ADC | offset to field `type` (table) - +0x2AB4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2AB8 | offset to field `attributes` (vector) + +0x2AA0 | B8 FE FF FF | SOffset32 | 0xFFFFFEB8 (-328) Loc: 0x2BE8 | offset to vtable + +0x2AA4 | 00 00 00 | uint8_t[3] | ... | padding + +0x2AA7 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x2AA8 | 08 00 | uint16_t | 0x0008 (8) | table field `id` (UShort) + +0x2AAA | 14 00 | uint16_t | 0x0014 (20) | table field `offset` (UShort) + +0x2AAC | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: 0x2AEC | offset to field `name` (string) + +0x2AB0 | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: 0x2ADC | offset to field `type` (table) + +0x2AB4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2AB8 | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x2AB8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x2ABC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2AC0 | offset to table[0] + +0x2AB8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x2ABC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2AC0 | offset to table[0] table (reflection.KeyValue): - +0x2AC0 | F8 F1 FF FF | SOffset32 | 0xFFFFF1F8 (-3592) Loc: +0x38C8 | offset to vtable - +0x2AC4 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2AD4 | offset to field `key` (string) - +0x2AC8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2ACC | offset to field `value` (string) + +0x2AC0 | F8 F1 FF FF | SOffset32 | 0xFFFFF1F8 (-3592) Loc: 0x38C8 | offset to vtable + +0x2AC4 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x2AD4 | offset to field `key` (string) + +0x2AC8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2ACC | offset to field `value` (string) string (reflection.KeyValue.value): - +0x2ACC | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x2AD0 | 38 | char[1] | 8 | string literal - +0x2AD1 | 00 | char | 0x00 (0) | string terminator + +0x2ACC | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x2AD0 | 38 | char[1] | 8 | string literal + +0x2AD1 | 00 | char | 0x00 (0) | string terminator padding: - +0x2AD2 | 00 00 | uint8_t[2] | .. | padding + +0x2AD2 | 00 00 | uint8_t[2] | .. | padding string (reflection.KeyValue.key): - +0x2AD4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x2AD8 | 69 64 | char[2] | id | string literal - +0x2ADA | 00 | char | 0x00 (0) | string terminator + +0x2AD4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2AD8 | 69 64 | char[2] | id | string literal + +0x2ADA | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x2ADC | C4 F2 FF FF | SOffset32 | 0xFFFFF2C4 (-3388) Loc: +0x3818 | offset to vtable - +0x2AE0 | 00 00 00 | uint8_t[3] | ... | padding - +0x2AE3 | 10 | uint8_t | 0x10 (16) | table field `base_type` (Byte) - +0x2AE4 | 00 00 00 00 | uint32_t | 0x00000000 (0) | table field `index` (Int) - +0x2AE8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x2ADC | C4 F2 FF FF | SOffset32 | 0xFFFFF2C4 (-3388) Loc: 0x3818 | offset to vtable + +0x2AE0 | 00 00 00 | uint8_t[3] | ... | padding + +0x2AE3 | 10 | uint8_t | 0x10 (16) | table field `base_type` (Byte) + +0x2AE4 | 00 00 00 00 | uint32_t | 0x00000000 (0) | table field `index` (Int) + +0x2AE8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x2AEC | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string - +0x2AF0 | 74 65 73 74 | char[4] | test | string literal - +0x2AF4 | 00 | char | 0x00 (0) | string terminator + +0x2AEC | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string + +0x2AF0 | 74 65 73 74 | char[4] | test | string literal + +0x2AF4 | 00 | char | 0x00 (0) | string terminator padding: - +0x2AF5 | 00 00 00 | uint8_t[3] | ... | padding + +0x2AF5 | 00 00 00 | uint8_t[3] | ... | padding vtable (reflection.Field): - +0x2AF8 | 18 00 | uint16_t | 0x0018 (24) | size of this vtable - +0x2AFA | 14 00 | uint16_t | 0x0014 (20) | size of referring table - +0x2AFC | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0) - +0x2AFE | 0C 00 | VOffset16 | 0x000C (12) | offset to field `type` (id: 1) - +0x2B00 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `id` (id: 2) - +0x2B02 | 06 00 | VOffset16 | 0x0006 (6) | offset to field `offset` (id: 3) - +0x2B04 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) (Long) - +0x2B06 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) (Double) - +0x2B08 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) - +0x2B0A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) (Bool) - +0x2B0C | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 8) (Bool) - +0x2B0E | 10 00 | VOffset16 | 0x0010 (16) | offset to field `attributes` (id: 9) + +0x2AF8 | 18 00 | uint16_t | 0x0018 (24) | size of this vtable + +0x2AFA | 14 00 | uint16_t | 0x0014 (20) | size of referring table + +0x2AFC | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0) + +0x2AFE | 0C 00 | VOffset16 | 0x000C (12) | offset to field `type` (id: 1) + +0x2B00 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `id` (id: 2) + +0x2B02 | 06 00 | VOffset16 | 0x0006 (6) | offset to field `offset` (id: 3) + +0x2B04 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) (Long) + +0x2B06 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) (Double) + +0x2B08 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) + +0x2B0A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) (Bool) + +0x2B0C | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 8) (Bool) + +0x2B0E | 10 00 | VOffset16 | 0x0010 (16) | offset to field `attributes` (id: 9) table (reflection.Field): - +0x2B10 | 18 00 00 00 | SOffset32 | 0x00000018 (24) Loc: +0x2AF8 | offset to vtable - +0x2B14 | 07 00 | uint16_t | 0x0007 (7) | table field `id` (UShort) - +0x2B16 | 12 00 | uint16_t | 0x0012 (18) | table field `offset` (UShort) - +0x2B18 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x2B5C | offset to field `name` (string) - +0x2B1C | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: +0x2B48 | offset to field `type` (table) - +0x2B20 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2B24 | offset to field `attributes` (vector) + +0x2B10 | 18 00 00 00 | SOffset32 | 0x00000018 (24) Loc: 0x2AF8 | offset to vtable + +0x2B14 | 07 00 | uint16_t | 0x0007 (7) | table field `id` (UShort) + +0x2B16 | 12 00 | uint16_t | 0x0012 (18) | table field `offset` (UShort) + +0x2B18 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: 0x2B5C | offset to field `name` (string) + +0x2B1C | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: 0x2B48 | offset to field `type` (table) + +0x2B20 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2B24 | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x2B24 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x2B28 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2B2C | offset to table[0] + +0x2B24 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x2B28 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2B2C | offset to table[0] table (reflection.KeyValue): - +0x2B2C | 64 F2 FF FF | SOffset32 | 0xFFFFF264 (-3484) Loc: +0x38C8 | offset to vtable - +0x2B30 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2B40 | offset to field `key` (string) - +0x2B34 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2B38 | offset to field `value` (string) + +0x2B2C | 64 F2 FF FF | SOffset32 | 0xFFFFF264 (-3484) Loc: 0x38C8 | offset to vtable + +0x2B30 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x2B40 | offset to field `key` (string) + +0x2B34 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2B38 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x2B38 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x2B3C | 37 | char[1] | 7 | string literal - +0x2B3D | 00 | char | 0x00 (0) | string terminator + +0x2B38 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x2B3C | 37 | char[1] | 7 | string literal + +0x2B3D | 00 | char | 0x00 (0) | string terminator padding: - +0x2B3E | 00 00 | uint8_t[2] | .. | padding + +0x2B3E | 00 00 | uint8_t[2] | .. | padding string (reflection.KeyValue.key): - +0x2B40 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x2B44 | 69 64 | char[2] | id | string literal - +0x2B46 | 00 | char | 0x00 (0) | string terminator + +0x2B40 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2B44 | 69 64 | char[2] | id | string literal + +0x2B46 | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x2B48 | 9C F5 FF FF | SOffset32 | 0xFFFFF59C (-2660) Loc: +0x35AC | offset to vtable - +0x2B4C | 00 00 00 | uint8_t[3] | ... | padding - +0x2B4F | 01 | uint8_t | 0x01 (1) | table field `base_type` (Byte) - +0x2B50 | 00 00 00 00 | uint32_t | 0x00000000 (0) | table field `index` (Int) - +0x2B54 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) - +0x2B58 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x2B48 | 9C F5 FF FF | SOffset32 | 0xFFFFF59C (-2660) Loc: 0x35AC | offset to vtable + +0x2B4C | 00 00 00 | uint8_t[3] | ... | padding + +0x2B4F | 01 | uint8_t | 0x01 (1) | table field `base_type` (Byte) + +0x2B50 | 00 00 00 00 | uint32_t | 0x00000000 (0) | table field `index` (Int) + +0x2B54 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) + +0x2B58 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x2B5C | 09 00 00 00 | uint32_t | 0x00000009 (9) | length of string - +0x2B60 | 74 65 73 74 5F 74 79 70 | char[9] | test_typ | string literal - +0x2B68 | 65 | | e - +0x2B69 | 00 | char | 0x00 (0) | string terminator + +0x2B5C | 09 00 00 00 | uint32_t | 0x00000009 (9) | length of string + +0x2B60 | 74 65 73 74 5F 74 79 70 | char[9] | test_typ | string literal + +0x2B68 | 65 | | e + +0x2B69 | 00 | char | 0x00 (0) | string terminator padding: - +0x2B6A | 00 00 | uint8_t[2] | .. | padding + +0x2B6A | 00 00 | uint8_t[2] | .. | padding vtable (reflection.Field): - +0x2B6C | 18 00 | uint16_t | 0x0018 (24) | size of this vtable - +0x2B6E | 20 00 | uint16_t | 0x0020 (32) | size of referring table - +0x2B70 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0) - +0x2B72 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `type` (id: 1) - +0x2B74 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `id` (id: 2) - +0x2B76 | 06 00 | VOffset16 | 0x0006 (6) | offset to field `offset` (id: 3) - +0x2B78 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `default_integer` (id: 4) - +0x2B7A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) (Double) - +0x2B7C | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) - +0x2B7E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) (Bool) - +0x2B80 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 8) (Bool) - +0x2B82 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `attributes` (id: 9) + +0x2B6C | 18 00 | uint16_t | 0x0018 (24) | size of this vtable + +0x2B6E | 20 00 | uint16_t | 0x0020 (32) | size of referring table + +0x2B70 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0) + +0x2B72 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `type` (id: 1) + +0x2B74 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `id` (id: 2) + +0x2B76 | 06 00 | VOffset16 | 0x0006 (6) | offset to field `offset` (id: 3) + +0x2B78 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `default_integer` (id: 4) + +0x2B7A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) (Double) + +0x2B7C | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) + +0x2B7E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) (Bool) + +0x2B80 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 8) (Bool) + +0x2B82 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `attributes` (id: 9) table (reflection.Field): - +0x2B84 | 18 00 00 00 | SOffset32 | 0x00000018 (24) Loc: +0x2B6C | offset to vtable - +0x2B88 | 06 00 | uint16_t | 0x0006 (6) | table field `id` (UShort) - +0x2B8A | 10 00 | uint16_t | 0x0010 (16) | table field `offset` (UShort) - +0x2B8C | 50 00 00 00 | UOffset32 | 0x00000050 (80) Loc: +0x2BDC | offset to field `name` (string) - +0x2B90 | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: +0x2BC8 | offset to field `type` (table) - +0x2B94 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2BA4 | offset to field `attributes` (vector) - +0x2B98 | 08 00 00 00 00 00 00 00 | int64_t | 0x0000000000000008 (8) | table field `default_integer` (Long) - +0x2BA0 | 00 00 00 00 | uint8_t[4] | .... | padding + +0x2B84 | 18 00 00 00 | SOffset32 | 0x00000018 (24) Loc: 0x2B6C | offset to vtable + +0x2B88 | 06 00 | uint16_t | 0x0006 (6) | table field `id` (UShort) + +0x2B8A | 10 00 | uint16_t | 0x0010 (16) | table field `offset` (UShort) + +0x2B8C | 50 00 00 00 | UOffset32 | 0x00000050 (80) Loc: 0x2BDC | offset to field `name` (string) + +0x2B90 | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: 0x2BC8 | offset to field `type` (table) + +0x2B94 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x2BA4 | offset to field `attributes` (vector) + +0x2B98 | 08 00 00 00 00 00 00 00 | int64_t | 0x0000000000000008 (8) | table field `default_integer` (Long) + +0x2BA0 | 00 00 00 00 | uint8_t[4] | .... | padding vector (reflection.Field.attributes): - +0x2BA4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x2BA8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2BAC | offset to table[0] + +0x2BA4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x2BA8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2BAC | offset to table[0] table (reflection.KeyValue): - +0x2BAC | E4 F2 FF FF | SOffset32 | 0xFFFFF2E4 (-3356) Loc: +0x38C8 | offset to vtable - +0x2BB0 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2BC0 | offset to field `key` (string) - +0x2BB4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2BB8 | offset to field `value` (string) + +0x2BAC | E4 F2 FF FF | SOffset32 | 0xFFFFF2E4 (-3356) Loc: 0x38C8 | offset to vtable + +0x2BB0 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x2BC0 | offset to field `key` (string) + +0x2BB4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2BB8 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x2BB8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x2BBC | 36 | char[1] | 6 | string literal - +0x2BBD | 00 | char | 0x00 (0) | string terminator + +0x2BB8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x2BBC | 36 | char[1] | 6 | string literal + +0x2BBD | 00 | char | 0x00 (0) | string terminator padding: - +0x2BBE | 00 00 | uint8_t[2] | .. | padding + +0x2BBE | 00 00 | uint8_t[2] | .. | padding string (reflection.KeyValue.key): - +0x2BC0 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x2BC4 | 69 64 | char[2] | id | string literal - +0x2BC6 | 00 | char | 0x00 (0) | string terminator + +0x2BC0 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2BC4 | 69 64 | char[2] | id | string literal + +0x2BC6 | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x2BC8 | 1C F6 FF FF | SOffset32 | 0xFFFFF61C (-2532) Loc: +0x35AC | offset to vtable - +0x2BCC | 00 00 00 | uint8_t[3] | ... | padding - +0x2BCF | 04 | uint8_t | 0x04 (4) | table field `base_type` (Byte) - +0x2BD0 | 03 00 00 00 | uint32_t | 0x00000003 (3) | table field `index` (Int) - +0x2BD4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) - +0x2BD8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x2BC8 | 1C F6 FF FF | SOffset32 | 0xFFFFF61C (-2532) Loc: 0x35AC | offset to vtable + +0x2BCC | 00 00 00 | uint8_t[3] | ... | padding + +0x2BCF | 04 | uint8_t | 0x04 (4) | table field `base_type` (Byte) + +0x2BD0 | 03 00 00 00 | uint32_t | 0x00000003 (3) | table field `index` (Int) + +0x2BD4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) + +0x2BD8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x2BDC | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string - +0x2BE0 | 63 6F 6C 6F 72 | char[5] | color | string literal - +0x2BE5 | 00 | char | 0x00 (0) | string terminator + +0x2BDC | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string + +0x2BE0 | 63 6F 6C 6F 72 | char[5] | color | string literal + +0x2BE5 | 00 | char | 0x00 (0) | string terminator padding: - +0x2BE6 | 00 00 | uint8_t[2] | .. | padding + +0x2BE6 | 00 00 | uint8_t[2] | .. | padding vtable (reflection.Field): - +0x2BE8 | 1C 00 | uint16_t | 0x001C (28) | size of this vtable - +0x2BEA | 18 00 | uint16_t | 0x0018 (24) | size of referring table - +0x2BEC | 0C 00 | VOffset16 | 0x000C (12) | offset to field `name` (id: 0) - +0x2BEE | 10 00 | VOffset16 | 0x0010 (16) | offset to field `type` (id: 1) - +0x2BF0 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `id` (id: 2) - +0x2BF2 | 0A 00 | VOffset16 | 0x000A (10) | offset to field `offset` (id: 3) - +0x2BF4 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) (Long) - +0x2BF6 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) (Double) - +0x2BF8 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) - +0x2BFA | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) (Bool) - +0x2BFC | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 8) (Bool) - +0x2BFE | 14 00 | VOffset16 | 0x0014 (20) | offset to field `attributes` (id: 9) - +0x2C00 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `documentation` (id: 10) (Vector) - +0x2C02 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `optional` (id: 11) + +0x2BE8 | 1C 00 | uint16_t | 0x001C (28) | size of this vtable + +0x2BEA | 18 00 | uint16_t | 0x0018 (24) | size of referring table + +0x2BEC | 0C 00 | VOffset16 | 0x000C (12) | offset to field `name` (id: 0) + +0x2BEE | 10 00 | VOffset16 | 0x0010 (16) | offset to field `type` (id: 1) + +0x2BF0 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `id` (id: 2) + +0x2BF2 | 0A 00 | VOffset16 | 0x000A (10) | offset to field `offset` (id: 3) + +0x2BF4 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) (Long) + +0x2BF6 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) (Double) + +0x2BF8 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) + +0x2BFA | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) (Bool) + +0x2BFC | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 8) (Bool) + +0x2BFE | 14 00 | VOffset16 | 0x0014 (20) | offset to field `attributes` (id: 9) + +0x2C00 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `documentation` (id: 10) (Vector) + +0x2C02 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `optional` (id: 11) table (reflection.Field): - +0x2C04 | 1C 00 00 00 | SOffset32 | 0x0000001C (28) Loc: +0x2BE8 | offset to vtable - +0x2C08 | 00 00 00 | uint8_t[3] | ... | padding - +0x2C0B | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x2C0C | 05 00 | uint16_t | 0x0005 (5) | table field `id` (UShort) - +0x2C0E | 0E 00 | uint16_t | 0x000E (14) | table field `offset` (UShort) - +0x2C10 | 4C 00 00 00 | UOffset32 | 0x0000004C (76) Loc: +0x2C5C | offset to field `name` (string) - +0x2C14 | 3C 00 00 00 | UOffset32 | 0x0000003C (60) Loc: +0x2C50 | offset to field `type` (table) - +0x2C18 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2C1C | offset to field `attributes` (vector) + +0x2C04 | 1C 00 00 00 | SOffset32 | 0x0000001C (28) Loc: 0x2BE8 | offset to vtable + +0x2C08 | 00 00 00 | uint8_t[3] | ... | padding + +0x2C0B | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x2C0C | 05 00 | uint16_t | 0x0005 (5) | table field `id` (UShort) + +0x2C0E | 0E 00 | uint16_t | 0x000E (14) | table field `offset` (UShort) + +0x2C10 | 4C 00 00 00 | UOffset32 | 0x0000004C (76) Loc: 0x2C5C | offset to field `name` (string) + +0x2C14 | 3C 00 00 00 | UOffset32 | 0x0000003C (60) Loc: 0x2C50 | offset to field `type` (table) + +0x2C18 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2C1C | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x2C1C | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x2C20 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2C24 | offset to table[0] + +0x2C1C | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x2C20 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2C24 | offset to table[0] table (reflection.KeyValue): - +0x2C24 | 5C F3 FF FF | SOffset32 | 0xFFFFF35C (-3236) Loc: +0x38C8 | offset to vtable - +0x2C28 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2C38 | offset to field `key` (string) - +0x2C2C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2C30 | offset to field `value` (string) + +0x2C24 | 5C F3 FF FF | SOffset32 | 0xFFFFF35C (-3236) Loc: 0x38C8 | offset to vtable + +0x2C28 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x2C38 | offset to field `key` (string) + +0x2C2C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2C30 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x2C30 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x2C34 | 35 | char[1] | 5 | string literal - +0x2C35 | 00 | char | 0x00 (0) | string terminator + +0x2C30 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x2C34 | 35 | char[1] | 5 | string literal + +0x2C35 | 00 | char | 0x00 (0) | string terminator padding: - +0x2C36 | 00 00 | uint8_t[2] | .. | padding + +0x2C36 | 00 00 | uint8_t[2] | .. | padding string (reflection.KeyValue.key): - +0x2C38 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x2C3C | 69 64 | char[2] | id | string literal - +0x2C3E | 00 | char | 0x00 (0) | string terminator + +0x2C38 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2C3C | 69 64 | char[2] | id | string literal + +0x2C3E | 00 | char | 0x00 (0) | string terminator vtable (reflection.Type): - +0x2C40 | 10 00 | uint16_t | 0x0010 (16) | size of this vtable - +0x2C42 | 0C 00 | uint16_t | 0x000C (12) | size of referring table - +0x2C44 | 06 00 | VOffset16 | 0x0006 (6) | offset to field `base_type` (id: 0) - +0x2C46 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `element` (id: 1) - +0x2C48 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `index` (id: 2) (Int) - +0x2C4A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `fixed_length` (id: 3) (UShort) - +0x2C4C | 00 00 | VOffset16 | 0x0000 (0) | offset to field `base_size` (id: 4) (UInt) - +0x2C4E | 08 00 | VOffset16 | 0x0008 (8) | offset to field `element_size` (id: 5) + +0x2C40 | 10 00 | uint16_t | 0x0010 (16) | size of this vtable + +0x2C42 | 0C 00 | uint16_t | 0x000C (12) | size of referring table + +0x2C44 | 06 00 | VOffset16 | 0x0006 (6) | offset to field `base_type` (id: 0) + +0x2C46 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `element` (id: 1) + +0x2C48 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `index` (id: 2) (Int) + +0x2C4A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `fixed_length` (id: 3) (UShort) + +0x2C4C | 00 00 | VOffset16 | 0x0000 (0) | offset to field `base_size` (id: 4) (UInt) + +0x2C4E | 08 00 | VOffset16 | 0x0008 (8) | offset to field `element_size` (id: 5) table (reflection.Type): - +0x2C50 | 10 00 00 00 | SOffset32 | 0x00000010 (16) Loc: +0x2C40 | offset to vtable - +0x2C54 | 00 00 | uint8_t[2] | .. | padding - +0x2C56 | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) - +0x2C57 | 04 | uint8_t | 0x04 (4) | table field `element` (Byte) - +0x2C58 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x2C50 | 10 00 00 00 | SOffset32 | 0x00000010 (16) Loc: 0x2C40 | offset to vtable + +0x2C54 | 00 00 | uint8_t[2] | .. | padding + +0x2C56 | 0E | uint8_t | 0x0E (14) | table field `base_type` (Byte) + +0x2C57 | 04 | uint8_t | 0x04 (4) | table field `element` (Byte) + +0x2C58 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x2C5C | 09 00 00 00 | uint32_t | 0x00000009 (9) | length of string - +0x2C60 | 69 6E 76 65 6E 74 6F 72 | char[9] | inventor | string literal - +0x2C68 | 79 | | y - +0x2C69 | 00 | char | 0x00 (0) | string terminator + +0x2C5C | 09 00 00 00 | uint32_t | 0x00000009 (9) | length of string + +0x2C60 | 69 6E 76 65 6E 74 6F 72 | char[9] | inventor | string literal + +0x2C68 | 79 | | y + +0x2C69 | 00 | char | 0x00 (0) | string terminator padding: - +0x2C6A | 00 00 | uint8_t[2] | .. | padding + +0x2C6A | 00 00 | uint8_t[2] | .. | padding vtable (reflection.Field): - +0x2C6C | 18 00 | uint16_t | 0x0018 (24) | size of this vtable - +0x2C6E | 18 00 | uint16_t | 0x0018 (24) | size of referring table - +0x2C70 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `name` (id: 0) - +0x2C72 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `type` (id: 1) - +0x2C74 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `id` (id: 2) - +0x2C76 | 0A 00 | VOffset16 | 0x000A (10) | offset to field `offset` (id: 3) - +0x2C78 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) (Long) - +0x2C7A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) (Double) - +0x2C7C | 07 00 | VOffset16 | 0x0007 (7) | offset to field `deprecated` (id: 6) - +0x2C7E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) (Bool) - +0x2C80 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 8) (Bool) - +0x2C82 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `attributes` (id: 9) + +0x2C6C | 18 00 | uint16_t | 0x0018 (24) | size of this vtable + +0x2C6E | 18 00 | uint16_t | 0x0018 (24) | size of referring table + +0x2C70 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `name` (id: 0) + +0x2C72 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `type` (id: 1) + +0x2C74 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `id` (id: 2) + +0x2C76 | 0A 00 | VOffset16 | 0x000A (10) | offset to field `offset` (id: 3) + +0x2C78 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) (Long) + +0x2C7A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) (Double) + +0x2C7C | 07 00 | VOffset16 | 0x0007 (7) | offset to field `deprecated` (id: 6) + +0x2C7E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) (Bool) + +0x2C80 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 8) (Bool) + +0x2C82 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `attributes` (id: 9) table (reflection.Field): - +0x2C84 | 18 00 00 00 | SOffset32 | 0x00000018 (24) Loc: +0x2C6C | offset to vtable - +0x2C88 | 00 00 00 | uint8_t[3] | ... | padding - +0x2C8B | 01 | uint8_t | 0x01 (1) | table field `deprecated` (Bool) - +0x2C8C | 04 00 | uint16_t | 0x0004 (4) | table field `id` (UShort) - +0x2C8E | 0C 00 | uint16_t | 0x000C (12) | table field `offset` (UShort) - +0x2C90 | 90 00 00 00 | UOffset32 | 0x00000090 (144) Loc: +0x2D20 | offset to field `name` (string) - +0x2C94 | 7C 00 00 00 | UOffset32 | 0x0000007C (124) Loc: +0x2D10 | offset to field `type` (table) - +0x2C98 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2C9C | offset to field `attributes` (vector) + +0x2C84 | 18 00 00 00 | SOffset32 | 0x00000018 (24) Loc: 0x2C6C | offset to vtable + +0x2C88 | 00 00 00 | uint8_t[3] | ... | padding + +0x2C8B | 01 | uint8_t | 0x01 (1) | table field `deprecated` (Bool) + +0x2C8C | 04 00 | uint16_t | 0x0004 (4) | table field `id` (UShort) + +0x2C8E | 0C 00 | uint16_t | 0x000C (12) | table field `offset` (UShort) + +0x2C90 | 90 00 00 00 | UOffset32 | 0x00000090 (144) Loc: 0x2D20 | offset to field `name` (string) + +0x2C94 | 7C 00 00 00 | UOffset32 | 0x0000007C (124) Loc: 0x2D10 | offset to field `type` (table) + +0x2C98 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2C9C | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x2C9C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) - +0x2CA0 | 4C 00 00 00 | UOffset32 | 0x0000004C (76) Loc: +0x2CEC | offset to table[0] - +0x2CA4 | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: +0x2CD0 | offset to table[1] - +0x2CA8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2CAC | offset to table[2] + +0x2C9C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) + +0x2CA0 | 4C 00 00 00 | UOffset32 | 0x0000004C (76) Loc: 0x2CEC | offset to table[0] + +0x2CA4 | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: 0x2CD0 | offset to table[1] + +0x2CA8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2CAC | offset to table[2] table (reflection.KeyValue): - +0x2CAC | E4 F3 FF FF | SOffset32 | 0xFFFFF3E4 (-3100) Loc: +0x38C8 | offset to vtable - +0x2CB0 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2CC0 | offset to field `key` (string) - +0x2CB4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2CB8 | offset to field `value` (string) + +0x2CAC | E4 F3 FF FF | SOffset32 | 0xFFFFF3E4 (-3100) Loc: 0x38C8 | offset to vtable + +0x2CB0 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x2CC0 | offset to field `key` (string) + +0x2CB4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2CB8 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x2CB8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x2CBC | 31 | char[1] | 1 | string literal - +0x2CBD | 00 | char | 0x00 (0) | string terminator + +0x2CB8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x2CBC | 31 | char[1] | 1 | string literal + +0x2CBD | 00 | char | 0x00 (0) | string terminator padding: - +0x2CBE | 00 00 | uint8_t[2] | .. | padding + +0x2CBE | 00 00 | uint8_t[2] | .. | padding string (reflection.KeyValue.key): - +0x2CC0 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string - +0x2CC4 | 70 72 69 6F 72 69 74 79 | char[8] | priority | string literal - +0x2CCC | 00 | char | 0x00 (0) | string terminator + +0x2CC0 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string + +0x2CC4 | 70 72 69 6F 72 69 74 79 | char[8] | priority | string literal + +0x2CCC | 00 | char | 0x00 (0) | string terminator padding: - +0x2CCD | 00 00 00 | uint8_t[3] | ... | padding + +0x2CCD | 00 00 00 | uint8_t[3] | ... | padding table (reflection.KeyValue): - +0x2CD0 | 08 F4 FF FF | SOffset32 | 0xFFFFF408 (-3064) Loc: +0x38C8 | offset to vtable - +0x2CD4 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2CE4 | offset to field `key` (string) - +0x2CD8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2CDC | offset to field `value` (string) + +0x2CD0 | 08 F4 FF FF | SOffset32 | 0xFFFFF408 (-3064) Loc: 0x38C8 | offset to vtable + +0x2CD4 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x2CE4 | offset to field `key` (string) + +0x2CD8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2CDC | offset to field `value` (string) string (reflection.KeyValue.value): - +0x2CDC | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x2CE0 | 34 | char[1] | 4 | string literal - +0x2CE1 | 00 | char | 0x00 (0) | string terminator + +0x2CDC | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x2CE0 | 34 | char[1] | 4 | string literal + +0x2CE1 | 00 | char | 0x00 (0) | string terminator padding: - +0x2CE2 | 00 00 | uint8_t[2] | .. | padding + +0x2CE2 | 00 00 | uint8_t[2] | .. | padding string (reflection.KeyValue.key): - +0x2CE4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x2CE8 | 69 64 | char[2] | id | string literal - +0x2CEA | 00 | char | 0x00 (0) | string terminator + +0x2CE4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2CE8 | 69 64 | char[2] | id | string literal + +0x2CEA | 00 | char | 0x00 (0) | string terminator table (reflection.KeyValue): - +0x2CEC | 24 F4 FF FF | SOffset32 | 0xFFFFF424 (-3036) Loc: +0x38C8 | offset to vtable - +0x2CF0 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2D00 | offset to field `key` (string) - +0x2CF4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2CF8 | offset to field `value` (string) + +0x2CEC | 24 F4 FF FF | SOffset32 | 0xFFFFF424 (-3036) Loc: 0x38C8 | offset to vtable + +0x2CF0 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x2D00 | offset to field `key` (string) + +0x2CF4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2CF8 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x2CF8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x2CFC | 30 | char[1] | 0 | string literal - +0x2CFD | 00 | char | 0x00 (0) | string terminator + +0x2CF8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x2CFC | 30 | char[1] | 0 | string literal + +0x2CFD | 00 | char | 0x00 (0) | string terminator padding: - +0x2CFE | 00 00 | uint8_t[2] | .. | padding + +0x2CFE | 00 00 | uint8_t[2] | .. | padding string (reflection.KeyValue.key): - +0x2D00 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | length of string - +0x2D04 | 64 65 70 72 65 63 61 74 | char[10] | deprecat | string literal - +0x2D0C | 65 64 | | ed - +0x2D0E | 00 | char | 0x00 (0) | string terminator + +0x2D00 | 0A 00 00 00 | uint32_t | 0x0000000A (10) | length of string + +0x2D04 | 64 65 70 72 65 63 61 74 | char[10] | deprecat | string literal + +0x2D0C | 65 64 | | ed + +0x2D0E | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x2D10 | 9C F6 FF FF | SOffset32 | 0xFFFFF69C (-2404) Loc: +0x3674 | offset to vtable - +0x2D14 | 00 00 00 | uint8_t[3] | ... | padding - +0x2D17 | 02 | uint8_t | 0x02 (2) | table field `base_type` (Byte) - +0x2D18 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) - +0x2D1C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x2D10 | 9C F6 FF FF | SOffset32 | 0xFFFFF69C (-2404) Loc: 0x3674 | offset to vtable + +0x2D14 | 00 00 00 | uint8_t[3] | ... | padding + +0x2D17 | 02 | uint8_t | 0x02 (2) | table field `base_type` (Byte) + +0x2D18 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) + +0x2D1C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x2D20 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string - +0x2D24 | 66 72 69 65 6E 64 6C 79 | char[8] | friendly | string literal - +0x2D2C | 00 | char | 0x00 (0) | string terminator + +0x2D20 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string + +0x2D24 | 66 72 69 65 6E 64 6C 79 | char[8] | friendly | string literal + +0x2D2C | 00 | char | 0x00 (0) | string terminator padding: - +0x2D2D | 00 00 00 | uint8_t[3] | ... | padding + +0x2D2D | 00 00 00 | uint8_t[3] | ... | padding vtable (reflection.Field): - +0x2D30 | 18 00 | uint16_t | 0x0018 (24) | size of this vtable - +0x2D32 | 18 00 | uint16_t | 0x0018 (24) | size of referring table - +0x2D34 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `name` (id: 0) - +0x2D36 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `type` (id: 1) - +0x2D38 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `id` (id: 2) - +0x2D3A | 0A 00 | VOffset16 | 0x000A (10) | offset to field `offset` (id: 3) - +0x2D3C | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) (Long) - +0x2D3E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) (Double) - +0x2D40 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) - +0x2D42 | 06 00 | VOffset16 | 0x0006 (6) | offset to field `required` (id: 7) - +0x2D44 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `key` (id: 8) - +0x2D46 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `attributes` (id: 9) + +0x2D30 | 18 00 | uint16_t | 0x0018 (24) | size of this vtable + +0x2D32 | 18 00 | uint16_t | 0x0018 (24) | size of referring table + +0x2D34 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `name` (id: 0) + +0x2D36 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `type` (id: 1) + +0x2D38 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `id` (id: 2) + +0x2D3A | 0A 00 | VOffset16 | 0x000A (10) | offset to field `offset` (id: 3) + +0x2D3C | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) (Long) + +0x2D3E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) (Double) + +0x2D40 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) + +0x2D42 | 06 00 | VOffset16 | 0x0006 (6) | offset to field `required` (id: 7) + +0x2D44 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `key` (id: 8) + +0x2D46 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `attributes` (id: 9) table (reflection.Field): - +0x2D48 | 18 00 00 00 | SOffset32 | 0x00000018 (24) Loc: +0x2D30 | offset to vtable - +0x2D4C | 00 00 | uint8_t[2] | .. | padding - +0x2D4E | 01 | uint8_t | 0x01 (1) | table field `required` (Bool) - +0x2D4F | 01 | uint8_t | 0x01 (1) | table field `key` (Bool) - +0x2D50 | 03 00 | uint16_t | 0x0003 (3) | table field `id` (UShort) - +0x2D52 | 0A 00 | uint16_t | 0x000A (10) | table field `offset` (UShort) - +0x2D54 | 5C 00 00 00 | UOffset32 | 0x0000005C (92) Loc: +0x2DB0 | offset to field `name` (string) - +0x2D58 | 4C 00 00 00 | UOffset32 | 0x0000004C (76) Loc: +0x2DA4 | offset to field `type` (table) - +0x2D5C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2D60 | offset to field `attributes` (vector) + +0x2D48 | 18 00 00 00 | SOffset32 | 0x00000018 (24) Loc: 0x2D30 | offset to vtable + +0x2D4C | 00 00 | uint8_t[2] | .. | padding + +0x2D4E | 01 | uint8_t | 0x01 (1) | table field `required` (Bool) + +0x2D4F | 01 | uint8_t | 0x01 (1) | table field `key` (Bool) + +0x2D50 | 03 00 | uint16_t | 0x0003 (3) | table field `id` (UShort) + +0x2D52 | 0A 00 | uint16_t | 0x000A (10) | table field `offset` (UShort) + +0x2D54 | 5C 00 00 00 | UOffset32 | 0x0000005C (92) Loc: 0x2DB0 | offset to field `name` (string) + +0x2D58 | 4C 00 00 00 | UOffset32 | 0x0000004C (76) Loc: 0x2DA4 | offset to field `type` (table) + +0x2D5C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2D60 | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x2D60 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) - +0x2D64 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x2D88 | offset to table[0] - +0x2D68 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2D6C | offset to table[1] + +0x2D60 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) + +0x2D64 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: 0x2D88 | offset to table[0] + +0x2D68 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2D6C | offset to table[1] table (reflection.KeyValue): - +0x2D6C | A4 F4 FF FF | SOffset32 | 0xFFFFF4A4 (-2908) Loc: +0x38C8 | offset to vtable - +0x2D70 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2D80 | offset to field `key` (string) - +0x2D74 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2D78 | offset to field `value` (string) + +0x2D6C | A4 F4 FF FF | SOffset32 | 0xFFFFF4A4 (-2908) Loc: 0x38C8 | offset to vtable + +0x2D70 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x2D80 | offset to field `key` (string) + +0x2D74 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2D78 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x2D78 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x2D7C | 30 | char[1] | 0 | string literal - +0x2D7D | 00 | char | 0x00 (0) | string terminator + +0x2D78 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x2D7C | 30 | char[1] | 0 | string literal + +0x2D7D | 00 | char | 0x00 (0) | string terminator padding: - +0x2D7E | 00 00 | uint8_t[2] | .. | padding + +0x2D7E | 00 00 | uint8_t[2] | .. | padding string (reflection.KeyValue.key): - +0x2D80 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string - +0x2D84 | 6B 65 79 | char[3] | key | string literal - +0x2D87 | 00 | char | 0x00 (0) | string terminator + +0x2D80 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string + +0x2D84 | 6B 65 79 | char[3] | key | string literal + +0x2D87 | 00 | char | 0x00 (0) | string terminator table (reflection.KeyValue): - +0x2D88 | C0 F4 FF FF | SOffset32 | 0xFFFFF4C0 (-2880) Loc: +0x38C8 | offset to vtable - +0x2D8C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2D9C | offset to field `key` (string) - +0x2D90 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2D94 | offset to field `value` (string) + +0x2D88 | C0 F4 FF FF | SOffset32 | 0xFFFFF4C0 (-2880) Loc: 0x38C8 | offset to vtable + +0x2D8C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x2D9C | offset to field `key` (string) + +0x2D90 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2D94 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x2D94 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x2D98 | 33 | char[1] | 3 | string literal - +0x2D99 | 00 | char | 0x00 (0) | string terminator + +0x2D94 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x2D98 | 33 | char[1] | 3 | string literal + +0x2D99 | 00 | char | 0x00 (0) | string terminator padding: - +0x2D9A | 00 00 | uint8_t[2] | .. | padding + +0x2D9A | 00 00 | uint8_t[2] | .. | padding string (reflection.KeyValue.key): - +0x2D9C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x2DA0 | 69 64 | char[2] | id | string literal - +0x2DA2 | 00 | char | 0x00 (0) | string terminator + +0x2D9C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2DA0 | 69 64 | char[2] | id | string literal + +0x2DA2 | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x2DA4 | C8 F4 FF FF | SOffset32 | 0xFFFFF4C8 (-2872) Loc: +0x38DC | offset to vtable - +0x2DA8 | 00 00 00 | uint8_t[3] | ... | padding - +0x2DAB | 0D | uint8_t | 0x0D (13) | table field `base_type` (Byte) - +0x2DAC | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x2DA4 | C8 F4 FF FF | SOffset32 | 0xFFFFF4C8 (-2872) Loc: 0x38DC | offset to vtable + +0x2DA8 | 00 00 00 | uint8_t[3] | ... | padding + +0x2DAB | 0D | uint8_t | 0x0D (13) | table field `base_type` (Byte) + +0x2DAC | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x2DB0 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string - +0x2DB4 | 6E 61 6D 65 | char[4] | name | string literal - +0x2DB8 | 00 | char | 0x00 (0) | string terminator + +0x2DB0 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string + +0x2DB4 | 6E 61 6D 65 | char[4] | name | string literal + +0x2DB8 | 00 | char | 0x00 (0) | string terminator padding: - +0x2DB9 | 00 00 00 | uint8_t[3] | ... | padding + +0x2DB9 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Field): - +0x2DBC | A8 FF FF FF | SOffset32 | 0xFFFFFFA8 (-88) Loc: +0x2E14 | offset to vtable - +0x2DC0 | 02 00 | uint16_t | 0x0002 (2) | table field `id` (UShort) - +0x2DC2 | 08 00 | uint16_t | 0x0008 (8) | table field `offset` (UShort) - +0x2DC4 | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: +0x2E0C | offset to field `name` (string) - +0x2DC8 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x2DFC | offset to field `type` (table) - +0x2DCC | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x2DD8 | offset to field `attributes` (vector) - +0x2DD0 | 64 00 00 00 00 00 00 00 | int64_t | 0x0000000000000064 (100) | table field `default_integer` (Long) + +0x2DBC | A8 FF FF FF | SOffset32 | 0xFFFFFFA8 (-88) Loc: 0x2E14 | offset to vtable + +0x2DC0 | 02 00 | uint16_t | 0x0002 (2) | table field `id` (UShort) + +0x2DC2 | 08 00 | uint16_t | 0x0008 (8) | table field `offset` (UShort) + +0x2DC4 | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: 0x2E0C | offset to field `name` (string) + +0x2DC8 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: 0x2DFC | offset to field `type` (table) + +0x2DCC | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: 0x2DD8 | offset to field `attributes` (vector) + +0x2DD0 | 64 00 00 00 00 00 00 00 | int64_t | 0x0000000000000064 (100) | table field `default_integer` (Long) vector (reflection.Field.attributes): - +0x2DD8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x2DDC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2DE0 | offset to table[0] + +0x2DD8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x2DDC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2DE0 | offset to table[0] table (reflection.KeyValue): - +0x2DE0 | 18 F5 FF FF | SOffset32 | 0xFFFFF518 (-2792) Loc: +0x38C8 | offset to vtable - +0x2DE4 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2DF4 | offset to field `key` (string) - +0x2DE8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2DEC | offset to field `value` (string) + +0x2DE0 | 18 F5 FF FF | SOffset32 | 0xFFFFF518 (-2792) Loc: 0x38C8 | offset to vtable + +0x2DE4 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x2DF4 | offset to field `key` (string) + +0x2DE8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2DEC | offset to field `value` (string) string (reflection.KeyValue.value): - +0x2DEC | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x2DF0 | 32 | char[1] | 2 | string literal - +0x2DF1 | 00 | char | 0x00 (0) | string terminator + +0x2DEC | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x2DF0 | 32 | char[1] | 2 | string literal + +0x2DF1 | 00 | char | 0x00 (0) | string terminator padding: - +0x2DF2 | 00 00 | uint8_t[2] | .. | padding + +0x2DF2 | 00 00 | uint8_t[2] | .. | padding string (reflection.KeyValue.key): - +0x2DF4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x2DF8 | 69 64 | char[2] | id | string literal - +0x2DFA | 00 | char | 0x00 (0) | string terminator + +0x2DF4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2DF8 | 69 64 | char[2] | id | string literal + +0x2DFA | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x2DFC | 88 F7 FF FF | SOffset32 | 0xFFFFF788 (-2168) Loc: +0x3674 | offset to vtable - +0x2E00 | 00 00 00 | uint8_t[3] | ... | padding - +0x2E03 | 05 | uint8_t | 0x05 (5) | table field `base_type` (Byte) - +0x2E04 | 02 00 00 00 | uint32_t | 0x00000002 (2) | table field `base_size` (UInt) - +0x2E08 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x2DFC | 88 F7 FF FF | SOffset32 | 0xFFFFF788 (-2168) Loc: 0x3674 | offset to vtable + +0x2E00 | 00 00 00 | uint8_t[3] | ... | padding + +0x2E03 | 05 | uint8_t | 0x05 (5) | table field `base_type` (Byte) + +0x2E04 | 02 00 00 00 | uint32_t | 0x00000002 (2) | table field `base_size` (UInt) + +0x2E08 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x2E0C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x2E10 | 68 70 | char[2] | hp | string literal - +0x2E12 | 00 | char | 0x00 (0) | string terminator + +0x2E0C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2E10 | 68 70 | char[2] | hp | string literal + +0x2E12 | 00 | char | 0x00 (0) | string terminator vtable (reflection.Field): - +0x2E14 | 18 00 | uint16_t | 0x0018 (24) | size of this vtable - +0x2E16 | 1C 00 | uint16_t | 0x001C (28) | size of referring table - +0x2E18 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0) - +0x2E1A | 0C 00 | VOffset16 | 0x000C (12) | offset to field `type` (id: 1) - +0x2E1C | 04 00 | VOffset16 | 0x0004 (4) | offset to field `id` (id: 2) - +0x2E1E | 06 00 | VOffset16 | 0x0006 (6) | offset to field `offset` (id: 3) - +0x2E20 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `default_integer` (id: 4) - +0x2E22 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) (Double) - +0x2E24 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) - +0x2E26 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) (Bool) - +0x2E28 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 8) (Bool) - +0x2E2A | 10 00 | VOffset16 | 0x0010 (16) | offset to field `attributes` (id: 9) + +0x2E14 | 18 00 | uint16_t | 0x0018 (24) | size of this vtable + +0x2E16 | 1C 00 | uint16_t | 0x001C (28) | size of referring table + +0x2E18 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0) + +0x2E1A | 0C 00 | VOffset16 | 0x000C (12) | offset to field `type` (id: 1) + +0x2E1C | 04 00 | VOffset16 | 0x0004 (4) | offset to field `id` (id: 2) + +0x2E1E | 06 00 | VOffset16 | 0x0006 (6) | offset to field `offset` (id: 3) + +0x2E20 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `default_integer` (id: 4) + +0x2E22 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) (Double) + +0x2E24 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) + +0x2E26 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) (Bool) + +0x2E28 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 8) (Bool) + +0x2E2A | 10 00 | VOffset16 | 0x0010 (16) | offset to field `attributes` (id: 9) table (reflection.Field): - +0x2E2C | 18 00 00 00 | SOffset32 | 0x00000018 (24) Loc: +0x2E14 | offset to vtable - +0x2E30 | 01 00 | uint16_t | 0x0001 (1) | table field `id` (UShort) - +0x2E32 | 06 00 | uint16_t | 0x0006 (6) | table field `offset` (UShort) - +0x2E34 | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: +0x2E7C | offset to field `name` (string) - +0x2E38 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x2E6C | offset to field `type` (table) - +0x2E3C | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x2E48 | offset to field `attributes` (vector) - +0x2E40 | 96 00 00 00 00 00 00 00 | int64_t | 0x0000000000000096 (150) | table field `default_integer` (Long) + +0x2E2C | 18 00 00 00 | SOffset32 | 0x00000018 (24) Loc: 0x2E14 | offset to vtable + +0x2E30 | 01 00 | uint16_t | 0x0001 (1) | table field `id` (UShort) + +0x2E32 | 06 00 | uint16_t | 0x0006 (6) | table field `offset` (UShort) + +0x2E34 | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: 0x2E7C | offset to field `name` (string) + +0x2E38 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: 0x2E6C | offset to field `type` (table) + +0x2E3C | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: 0x2E48 | offset to field `attributes` (vector) + +0x2E40 | 96 00 00 00 00 00 00 00 | int64_t | 0x0000000000000096 (150) | table field `default_integer` (Long) vector (reflection.Field.attributes): - +0x2E48 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x2E4C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2E50 | offset to table[0] + +0x2E48 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x2E4C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2E50 | offset to table[0] table (reflection.KeyValue): - +0x2E50 | 88 F5 FF FF | SOffset32 | 0xFFFFF588 (-2680) Loc: +0x38C8 | offset to vtable - +0x2E54 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2E64 | offset to field `key` (string) - +0x2E58 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2E5C | offset to field `value` (string) + +0x2E50 | 88 F5 FF FF | SOffset32 | 0xFFFFF588 (-2680) Loc: 0x38C8 | offset to vtable + +0x2E54 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x2E64 | offset to field `key` (string) + +0x2E58 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2E5C | offset to field `value` (string) string (reflection.KeyValue.value): - +0x2E5C | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x2E60 | 31 | char[1] | 1 | string literal - +0x2E61 | 00 | char | 0x00 (0) | string terminator + +0x2E5C | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x2E60 | 31 | char[1] | 1 | string literal + +0x2E61 | 00 | char | 0x00 (0) | string terminator padding: - +0x2E62 | 00 00 | uint8_t[2] | .. | padding + +0x2E62 | 00 00 | uint8_t[2] | .. | padding string (reflection.KeyValue.key): - +0x2E64 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x2E68 | 69 64 | char[2] | id | string literal - +0x2E6A | 00 | char | 0x00 (0) | string terminator + +0x2E64 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2E68 | 69 64 | char[2] | id | string literal + +0x2E6A | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x2E6C | F8 F7 FF FF | SOffset32 | 0xFFFFF7F8 (-2056) Loc: +0x3674 | offset to vtable - +0x2E70 | 00 00 00 | uint8_t[3] | ... | padding - +0x2E73 | 05 | uint8_t | 0x05 (5) | table field `base_type` (Byte) - +0x2E74 | 02 00 00 00 | uint32_t | 0x00000002 (2) | table field `base_size` (UInt) - +0x2E78 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x2E6C | F8 F7 FF FF | SOffset32 | 0xFFFFF7F8 (-2056) Loc: 0x3674 | offset to vtable + +0x2E70 | 00 00 00 | uint8_t[3] | ... | padding + +0x2E73 | 05 | uint8_t | 0x05 (5) | table field `base_type` (Byte) + +0x2E74 | 02 00 00 00 | uint32_t | 0x00000002 (2) | table field `base_size` (UInt) + +0x2E78 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x2E7C | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string - +0x2E80 | 6D 61 6E 61 | char[4] | mana | string literal - +0x2E84 | 00 | char | 0x00 (0) | string terminator + +0x2E7C | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string + +0x2E80 | 6D 61 6E 61 | char[4] | mana | string literal + +0x2E84 | 00 | char | 0x00 (0) | string terminator padding: - +0x2E85 | 00 00 00 | uint8_t[3] | ... | padding + +0x2E85 | 00 00 00 | uint8_t[3] | ... | padding vtable (reflection.Field): - +0x2E88 | 1C 00 | uint16_t | 0x001C (28) | size of this vtable - +0x2E8A | 14 00 | uint16_t | 0x0014 (20) | size of referring table - +0x2E8C | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0) - +0x2E8E | 0C 00 | VOffset16 | 0x000C (12) | offset to field `type` (id: 1) - +0x2E90 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `id` (id: 2) (UShort) - +0x2E92 | 06 00 | VOffset16 | 0x0006 (6) | offset to field `offset` (id: 3) - +0x2E94 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) (Long) - +0x2E96 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) (Double) - +0x2E98 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) - +0x2E9A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) (Bool) - +0x2E9C | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 8) (Bool) - +0x2E9E | 10 00 | VOffset16 | 0x0010 (16) | offset to field `attributes` (id: 9) - +0x2EA0 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `documentation` (id: 10) (Vector) - +0x2EA2 | 05 00 | VOffset16 | 0x0005 (5) | offset to field `optional` (id: 11) + +0x2E88 | 1C 00 | uint16_t | 0x001C (28) | size of this vtable + +0x2E8A | 14 00 | uint16_t | 0x0014 (20) | size of referring table + +0x2E8C | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0) + +0x2E8E | 0C 00 | VOffset16 | 0x000C (12) | offset to field `type` (id: 1) + +0x2E90 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `id` (id: 2) (UShort) + +0x2E92 | 06 00 | VOffset16 | 0x0006 (6) | offset to field `offset` (id: 3) + +0x2E94 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) (Long) + +0x2E96 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) (Double) + +0x2E98 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) + +0x2E9A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) (Bool) + +0x2E9C | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 8) (Bool) + +0x2E9E | 10 00 | VOffset16 | 0x0010 (16) | offset to field `attributes` (id: 9) + +0x2EA0 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `documentation` (id: 10) (Vector) + +0x2EA2 | 05 00 | VOffset16 | 0x0005 (5) | offset to field `optional` (id: 11) table (reflection.Field): - +0x2EA4 | 1C 00 00 00 | SOffset32 | 0x0000001C (28) Loc: +0x2E88 | offset to vtable - +0x2EA8 | 00 | uint8_t[1] | . | padding - +0x2EA9 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x2EAA | 04 00 | uint16_t | 0x0004 (4) | table field `offset` (UShort) - +0x2EAC | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: +0x2EEC | offset to field `name` (string) - +0x2EB0 | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: +0x2EDC | offset to field `type` (table) - +0x2EB4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2EB8 | offset to field `attributes` (vector) + +0x2EA4 | 1C 00 00 00 | SOffset32 | 0x0000001C (28) Loc: 0x2E88 | offset to vtable + +0x2EA8 | 00 | uint8_t[1] | . | padding + +0x2EA9 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x2EAA | 04 00 | uint16_t | 0x0004 (4) | table field `offset` (UShort) + +0x2EAC | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: 0x2EEC | offset to field `name` (string) + +0x2EB0 | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: 0x2EDC | offset to field `type` (table) + +0x2EB4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2EB8 | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x2EB8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x2EBC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2EC0 | offset to table[0] + +0x2EB8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x2EBC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2EC0 | offset to table[0] table (reflection.KeyValue): - +0x2EC0 | F8 F5 FF FF | SOffset32 | 0xFFFFF5F8 (-2568) Loc: +0x38C8 | offset to vtable - +0x2EC4 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2ED4 | offset to field `key` (string) - +0x2EC8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2ECC | offset to field `value` (string) + +0x2EC0 | F8 F5 FF FF | SOffset32 | 0xFFFFF5F8 (-2568) Loc: 0x38C8 | offset to vtable + +0x2EC4 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x2ED4 | offset to field `key` (string) + +0x2EC8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2ECC | offset to field `value` (string) string (reflection.KeyValue.value): - +0x2ECC | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x2ED0 | 30 | char[1] | 0 | string literal - +0x2ED1 | 00 | char | 0x00 (0) | string terminator + +0x2ECC | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x2ED0 | 30 | char[1] | 0 | string literal + +0x2ED1 | 00 | char | 0x00 (0) | string terminator padding: - +0x2ED2 | 00 00 | uint8_t[2] | .. | padding + +0x2ED2 | 00 00 | uint8_t[2] | .. | padding string (reflection.KeyValue.key): - +0x2ED4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x2ED8 | 69 64 | char[2] | id | string literal - +0x2EDA | 00 | char | 0x00 (0) | string terminator + +0x2ED4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2ED8 | 69 64 | char[2] | id | string literal + +0x2EDA | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x2EDC | C4 F6 FF FF | SOffset32 | 0xFFFFF6C4 (-2364) Loc: +0x3818 | offset to vtable - +0x2EE0 | 00 00 00 | uint8_t[3] | ... | padding - +0x2EE3 | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) - +0x2EE4 | 09 00 00 00 | uint32_t | 0x00000009 (9) | table field `index` (Int) - +0x2EE8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x2EDC | C4 F6 FF FF | SOffset32 | 0xFFFFF6C4 (-2364) Loc: 0x3818 | offset to vtable + +0x2EE0 | 00 00 00 | uint8_t[3] | ... | padding + +0x2EE3 | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) + +0x2EE4 | 09 00 00 00 | uint32_t | 0x00000009 (9) | table field `index` (Int) + +0x2EE8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x2EEC | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string - +0x2EF0 | 70 6F 73 | char[3] | pos | string literal - +0x2EF3 | 00 | char | 0x00 (0) | string terminator + +0x2EEC | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string + +0x2EF0 | 70 6F 73 | char[3] | pos | string literal + +0x2EF3 | 00 | char | 0x00 (0) | string terminator table (reflection.Object): - +0x2EF4 | 5C F7 FF FF | SOffset32 | 0xFFFFF75C (-2212) Loc: +0x3798 | offset to vtable - +0x2EF8 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x2F10 | offset to field `name` (string) - +0x2EFC | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x2F08 | offset to field `fields` (vector) - +0x2F00 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `minalign` (Int) - +0x2F04 | E0 07 00 00 | UOffset32 | 0x000007E0 (2016) Loc: +0x36E4 | offset to field `declaration_file` (string) + +0x2EF4 | 5C F7 FF FF | SOffset32 | 0xFFFFF75C (-2212) Loc: 0x3798 | offset to vtable + +0x2EF8 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: 0x2F10 | offset to field `name` (string) + +0x2EFC | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: 0x2F08 | offset to field `fields` (vector) + +0x2F00 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `minalign` (Int) + +0x2F04 | E0 07 00 00 | UOffset32 | 0x000007E0 (2016) Loc: 0x36E4 | offset to field `declaration_file` (string) vector (reflection.Object.fields): - +0x2F08 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x2F0C | 3C 00 00 00 | UOffset32 | 0x0000003C (60) Loc: +0x2F48 | offset to table[0] + +0x2F08 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x2F0C | 3C 00 00 00 | UOffset32 | 0x0000003C (60) Loc: 0x2F48 | offset to table[0] string (reflection.Object.name): - +0x2F10 | 19 00 00 00 | uint32_t | 0x00000019 (25) | length of string - +0x2F14 | 4D 79 47 61 6D 65 2E 45 | char[25] | MyGame.E | string literal - +0x2F1C | 78 61 6D 70 6C 65 2E 52 | | xample.R - +0x2F24 | 65 66 65 72 72 61 62 6C | | eferrabl - +0x2F2C | 65 | | e - +0x2F2D | 00 | char | 0x00 (0) | string terminator + +0x2F10 | 19 00 00 00 | uint32_t | 0x00000019 (25) | length of string + +0x2F14 | 4D 79 47 61 6D 65 2E 45 | char[25] | MyGame.E | string literal + +0x2F1C | 78 61 6D 70 6C 65 2E 52 | | xample.R + +0x2F24 | 65 66 65 72 72 61 62 6C | | eferrabl + +0x2F2C | 65 | | e + +0x2F2D | 00 | char | 0x00 (0) | string terminator padding: - +0x2F2E | 00 00 | uint8_t[2] | .. | padding + +0x2F2E | 00 00 | uint8_t[2] | .. | padding vtable (reflection.Field): - +0x2F30 | 18 00 | uint16_t | 0x0018 (24) | size of this vtable - +0x2F32 | 14 00 | uint16_t | 0x0014 (20) | size of referring table - +0x2F34 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0) - +0x2F36 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `type` (id: 1) - +0x2F38 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `id` (id: 2) (UShort) - +0x2F3A | 06 00 | VOffset16 | 0x0006 (6) | offset to field `offset` (id: 3) - +0x2F3C | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) (Long) - +0x2F3E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) (Double) - +0x2F40 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) - +0x2F42 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) (Bool) - +0x2F44 | 05 00 | VOffset16 | 0x0005 (5) | offset to field `key` (id: 8) - +0x2F46 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `attributes` (id: 9) + +0x2F30 | 18 00 | uint16_t | 0x0018 (24) | size of this vtable + +0x2F32 | 14 00 | uint16_t | 0x0014 (20) | size of referring table + +0x2F34 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0) + +0x2F36 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `type` (id: 1) + +0x2F38 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `id` (id: 2) (UShort) + +0x2F3A | 06 00 | VOffset16 | 0x0006 (6) | offset to field `offset` (id: 3) + +0x2F3C | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) (Long) + +0x2F3E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) (Double) + +0x2F40 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) + +0x2F42 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) (Bool) + +0x2F44 | 05 00 | VOffset16 | 0x0005 (5) | offset to field `key` (id: 8) + +0x2F46 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `attributes` (id: 9) table (reflection.Field): - +0x2F48 | 18 00 00 00 | SOffset32 | 0x00000018 (24) Loc: +0x2F30 | offset to vtable - +0x2F4C | 00 | uint8_t[1] | . | padding - +0x2F4D | 01 | uint8_t | 0x01 (1) | table field `key` (Bool) - +0x2F4E | 04 00 | uint16_t | 0x0004 (4) | table field `offset` (UShort) - +0x2F50 | 6C 00 00 00 | UOffset32 | 0x0000006C (108) Loc: +0x2FBC | offset to field `name` (string) - +0x2F54 | 58 00 00 00 | UOffset32 | 0x00000058 (88) Loc: +0x2FAC | offset to field `type` (table) - +0x2F58 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2F5C | offset to field `attributes` (vector) + +0x2F48 | 18 00 00 00 | SOffset32 | 0x00000018 (24) Loc: 0x2F30 | offset to vtable + +0x2F4C | 00 | uint8_t[1] | . | padding + +0x2F4D | 01 | uint8_t | 0x01 (1) | table field `key` (Bool) + +0x2F4E | 04 00 | uint16_t | 0x0004 (4) | table field `offset` (UShort) + +0x2F50 | 6C 00 00 00 | UOffset32 | 0x0000006C (108) Loc: 0x2FBC | offset to field `name` (string) + +0x2F54 | 58 00 00 00 | UOffset32 | 0x00000058 (88) Loc: 0x2FAC | offset to field `type` (table) + +0x2F58 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2F5C | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x2F5C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) - +0x2F60 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x2F84 | offset to table[0] - +0x2F64 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2F68 | offset to table[1] + +0x2F5C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) + +0x2F60 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: 0x2F84 | offset to table[0] + +0x2F64 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2F68 | offset to table[1] table (reflection.KeyValue): - +0x2F68 | A0 F6 FF FF | SOffset32 | 0xFFFFF6A0 (-2400) Loc: +0x38C8 | offset to vtable - +0x2F6C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x2F7C | offset to field `key` (string) - +0x2F70 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2F74 | offset to field `value` (string) + +0x2F68 | A0 F6 FF FF | SOffset32 | 0xFFFFF6A0 (-2400) Loc: 0x38C8 | offset to vtable + +0x2F6C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x2F7C | offset to field `key` (string) + +0x2F70 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2F74 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x2F74 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x2F78 | 30 | char[1] | 0 | string literal - +0x2F79 | 00 | char | 0x00 (0) | string terminator + +0x2F74 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x2F78 | 30 | char[1] | 0 | string literal + +0x2F79 | 00 | char | 0x00 (0) | string terminator padding: - +0x2F7A | 00 00 | uint8_t[2] | .. | padding + +0x2F7A | 00 00 | uint8_t[2] | .. | padding string (reflection.KeyValue.key): - +0x2F7C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string - +0x2F80 | 6B 65 79 | char[3] | key | string literal - +0x2F83 | 00 | char | 0x00 (0) | string terminator + +0x2F7C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string + +0x2F80 | 6B 65 79 | char[3] | key | string literal + +0x2F83 | 00 | char | 0x00 (0) | string terminator table (reflection.KeyValue): - +0x2F84 | BC F6 FF FF | SOffset32 | 0xFFFFF6BC (-2372) Loc: +0x38C8 | offset to vtable - +0x2F88 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x2FA0 | offset to field `key` (string) - +0x2F8C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x2F90 | offset to field `value` (string) + +0x2F84 | BC F6 FF FF | SOffset32 | 0xFFFFF6BC (-2372) Loc: 0x38C8 | offset to vtable + +0x2F88 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: 0x2FA0 | offset to field `key` (string) + +0x2F8C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x2F90 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x2F90 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string - +0x2F94 | 66 6E 76 31 61 5F 36 34 | char[8] | fnv1a_64 | string literal - +0x2F9C | 00 | char | 0x00 (0) | string terminator + +0x2F90 | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string + +0x2F94 | 66 6E 76 31 61 5F 36 34 | char[8] | fnv1a_64 | string literal + +0x2F9C | 00 | char | 0x00 (0) | string terminator padding: - +0x2F9D | 00 00 00 | uint8_t[3] | ... | padding + +0x2F9D | 00 00 00 | uint8_t[3] | ... | padding string (reflection.KeyValue.key): - +0x2FA0 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string - +0x2FA4 | 68 61 73 68 | char[4] | hash | string literal - +0x2FA8 | 00 | char | 0x00 (0) | string terminator + +0x2FA0 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string + +0x2FA4 | 68 61 73 68 | char[4] | hash | string literal + +0x2FA8 | 00 | char | 0x00 (0) | string terminator padding: - +0x2FA9 | 00 00 00 | uint8_t[3] | ... | padding + +0x2FA9 | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Type): - +0x2FAC | 38 F9 FF FF | SOffset32 | 0xFFFFF938 (-1736) Loc: +0x3674 | offset to vtable - +0x2FB0 | 00 00 00 | uint8_t[3] | ... | padding - +0x2FB3 | 0A | uint8_t | 0x0A (10) | table field `base_type` (Byte) - +0x2FB4 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt) - +0x2FB8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x2FAC | 38 F9 FF FF | SOffset32 | 0xFFFFF938 (-1736) Loc: 0x3674 | offset to vtable + +0x2FB0 | 00 00 00 | uint8_t[3] | ... | padding + +0x2FB3 | 0A | uint8_t | 0x0A (10) | table field `base_type` (Byte) + +0x2FB4 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt) + +0x2FB8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x2FBC | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x2FC0 | 69 64 | char[2] | id | string literal - +0x2FC2 | 00 | char | 0x00 (0) | string terminator + +0x2FBC | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x2FC0 | 69 64 | char[2] | id | string literal + +0x2FC2 | 00 | char | 0x00 (0) | string terminator table (reflection.Object): - +0x2FC4 | 2C F8 FF FF | SOffset32 | 0xFFFFF82C (-2004) Loc: +0x3798 | offset to vtable - +0x2FC8 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x2FE8 | offset to field `name` (string) - +0x2FCC | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x2FD8 | offset to field `fields` (vector) - +0x2FD0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `minalign` (Int) - +0x2FD4 | 10 07 00 00 | UOffset32 | 0x00000710 (1808) Loc: +0x36E4 | offset to field `declaration_file` (string) + +0x2FC4 | 2C F8 FF FF | SOffset32 | 0xFFFFF82C (-2004) Loc: 0x3798 | offset to vtable + +0x2FC8 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: 0x2FE8 | offset to field `name` (string) + +0x2FCC | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: 0x2FD8 | offset to field `fields` (vector) + +0x2FD0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `minalign` (Int) + +0x2FD4 | 10 07 00 00 | UOffset32 | 0x00000710 (1808) Loc: 0x36E4 | offset to field `declaration_file` (string) vector (reflection.Object.fields): - +0x2FD8 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) - +0x2FDC | 3C 00 00 00 | UOffset32 | 0x0000003C (60) Loc: +0x3018 | offset to table[0] - +0x2FE0 | B8 00 00 00 | UOffset32 | 0x000000B8 (184) Loc: +0x3098 | offset to table[1] - +0x2FE4 | 8C 00 00 00 | UOffset32 | 0x0000008C (140) Loc: +0x3070 | offset to table[2] + +0x2FD8 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) + +0x2FDC | 3C 00 00 00 | UOffset32 | 0x0000003C (60) Loc: 0x3018 | offset to table[0] + +0x2FE0 | B8 00 00 00 | UOffset32 | 0x000000B8 (184) Loc: 0x3098 | offset to table[1] + +0x2FE4 | 8C 00 00 00 | UOffset32 | 0x0000008C (140) Loc: 0x3070 | offset to table[2] string (reflection.Object.name): - +0x2FE8 | 13 00 00 00 | uint32_t | 0x00000013 (19) | length of string - +0x2FEC | 4D 79 47 61 6D 65 2E 45 | char[19] | MyGame.E | string literal - +0x2FF4 | 78 61 6D 70 6C 65 2E 53 | | xample.S - +0x2FFC | 74 61 74 | | tat - +0x2FFF | 00 | char | 0x00 (0) | string terminator + +0x2FE8 | 13 00 00 00 | uint32_t | 0x00000013 (19) | length of string + +0x2FEC | 4D 79 47 61 6D 65 2E 45 | char[19] | MyGame.E | string literal + +0x2FF4 | 78 61 6D 70 6C 65 2E 53 | | xample.S + +0x2FFC | 74 61 74 | | tat + +0x2FFF | 00 | char | 0x00 (0) | string terminator vtable (reflection.Field): - +0x3000 | 18 00 | uint16_t | 0x0018 (24) | size of this vtable - +0x3002 | 18 00 | uint16_t | 0x0018 (24) | size of referring table - +0x3004 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `name` (id: 0) - +0x3006 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `type` (id: 1) - +0x3008 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `id` (id: 2) - +0x300A | 0A 00 | VOffset16 | 0x000A (10) | offset to field `offset` (id: 3) - +0x300C | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) (Long) - +0x300E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) (Double) - +0x3010 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) - +0x3012 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) (Bool) - +0x3014 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `key` (id: 8) - +0x3016 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `attributes` (id: 9) + +0x3000 | 18 00 | uint16_t | 0x0018 (24) | size of this vtable + +0x3002 | 18 00 | uint16_t | 0x0018 (24) | size of referring table + +0x3004 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `name` (id: 0) + +0x3006 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `type` (id: 1) + +0x3008 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `id` (id: 2) + +0x300A | 0A 00 | VOffset16 | 0x000A (10) | offset to field `offset` (id: 3) + +0x300C | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) (Long) + +0x300E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) (Double) + +0x3010 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) + +0x3012 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) (Bool) + +0x3014 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `key` (id: 8) + +0x3016 | 14 00 | VOffset16 | 0x0014 (20) | offset to field `attributes` (id: 9) table (reflection.Field): - +0x3018 | 18 00 00 00 | SOffset32 | 0x00000018 (24) Loc: +0x3000 | offset to vtable - +0x301C | 00 00 00 | uint8_t[3] | ... | padding - +0x301F | 01 | uint8_t | 0x01 (1) | table field `key` (Bool) - +0x3020 | 02 00 | uint16_t | 0x0002 (2) | table field `id` (UShort) - +0x3022 | 08 00 | uint16_t | 0x0008 (8) | table field `offset` (UShort) - +0x3024 | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: +0x3064 | offset to field `name` (string) - +0x3028 | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: +0x3054 | offset to field `type` (table) - +0x302C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3030 | offset to field `attributes` (vector) + +0x3018 | 18 00 00 00 | SOffset32 | 0x00000018 (24) Loc: 0x3000 | offset to vtable + +0x301C | 00 00 00 | uint8_t[3] | ... | padding + +0x301F | 01 | uint8_t | 0x01 (1) | table field `key` (Bool) + +0x3020 | 02 00 | uint16_t | 0x0002 (2) | table field `id` (UShort) + +0x3022 | 08 00 | uint16_t | 0x0008 (8) | table field `offset` (UShort) + +0x3024 | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: 0x3064 | offset to field `name` (string) + +0x3028 | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: 0x3054 | offset to field `type` (table) + +0x302C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x3030 | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x3030 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x3034 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3038 | offset to table[0] + +0x3030 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x3034 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x3038 | offset to table[0] table (reflection.KeyValue): - +0x3038 | 70 F7 FF FF | SOffset32 | 0xFFFFF770 (-2192) Loc: +0x38C8 | offset to vtable - +0x303C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x304C | offset to field `key` (string) - +0x3040 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3044 | offset to field `value` (string) + +0x3038 | 70 F7 FF FF | SOffset32 | 0xFFFFF770 (-2192) Loc: 0x38C8 | offset to vtable + +0x303C | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x304C | offset to field `key` (string) + +0x3040 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x3044 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x3044 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x3048 | 30 | char[1] | 0 | string literal - +0x3049 | 00 | char | 0x00 (0) | string terminator + +0x3044 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x3048 | 30 | char[1] | 0 | string literal + +0x3049 | 00 | char | 0x00 (0) | string terminator padding: - +0x304A | 00 00 | uint8_t[2] | .. | padding + +0x304A | 00 00 | uint8_t[2] | .. | padding string (reflection.KeyValue.key): - +0x304C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string - +0x3050 | 6B 65 79 | char[3] | key | string literal - +0x3053 | 00 | char | 0x00 (0) | string terminator + +0x304C | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string + +0x3050 | 6B 65 79 | char[3] | key | string literal + +0x3053 | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x3054 | E0 F9 FF FF | SOffset32 | 0xFFFFF9E0 (-1568) Loc: +0x3674 | offset to vtable - +0x3058 | 00 00 00 | uint8_t[3] | ... | padding - +0x305B | 06 | uint8_t | 0x06 (6) | table field `base_type` (Byte) - +0x305C | 02 00 00 00 | uint32_t | 0x00000002 (2) | table field `base_size` (UInt) - +0x3060 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x3054 | E0 F9 FF FF | SOffset32 | 0xFFFFF9E0 (-1568) Loc: 0x3674 | offset to vtable + +0x3058 | 00 00 00 | uint8_t[3] | ... | padding + +0x305B | 06 | uint8_t | 0x06 (6) | table field `base_type` (Byte) + +0x305C | 02 00 00 00 | uint32_t | 0x00000002 (2) | table field `base_size` (UInt) + +0x3060 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x3064 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string - +0x3068 | 63 6F 75 6E 74 | char[5] | count | string literal - +0x306D | 00 | char | 0x00 (0) | string terminator + +0x3064 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string + +0x3068 | 63 6F 75 6E 74 | char[5] | count | string literal + +0x306D | 00 | char | 0x00 (0) | string terminator padding: - +0x306E | 00 00 | uint8_t[2] | .. | padding + +0x306E | 00 00 | uint8_t[2] | .. | padding table (reflection.Field): - +0x3070 | F4 FB FF FF | SOffset32 | 0xFFFFFBF4 (-1036) Loc: +0x347C | offset to vtable - +0x3074 | 01 00 | uint16_t | 0x0001 (1) | table field `id` (UShort) - +0x3076 | 06 00 | uint16_t | 0x0006 (6) | table field `offset` (UShort) - +0x3078 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x3090 | offset to field `name` (string) - +0x307C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3080 | offset to field `type` (table) + +0x3070 | F4 FB FF FF | SOffset32 | 0xFFFFFBF4 (-1036) Loc: 0x347C | offset to vtable + +0x3074 | 01 00 | uint16_t | 0x0001 (1) | table field `id` (UShort) + +0x3076 | 06 00 | uint16_t | 0x0006 (6) | table field `offset` (UShort) + +0x3078 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: 0x3090 | offset to field `name` (string) + +0x307C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x3080 | offset to field `type` (table) table (reflection.Type): - +0x3080 | 0C FA FF FF | SOffset32 | 0xFFFFFA0C (-1524) Loc: +0x3674 | offset to vtable - +0x3084 | 00 00 00 | uint8_t[3] | ... | padding - +0x3087 | 09 | uint8_t | 0x09 (9) | table field `base_type` (Byte) - +0x3088 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt) - +0x308C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x3080 | 0C FA FF FF | SOffset32 | 0xFFFFFA0C (-1524) Loc: 0x3674 | offset to vtable + +0x3084 | 00 00 00 | uint8_t[3] | ... | padding + +0x3087 | 09 | uint8_t | 0x09 (9) | table field `base_type` (Byte) + +0x3088 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt) + +0x308C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x3090 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string - +0x3094 | 76 61 6C | char[3] | val | string literal - +0x3097 | 00 | char | 0x00 (0) | string terminator + +0x3090 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string + +0x3094 | 76 61 6C | char[3] | val | string literal + +0x3097 | 00 | char | 0x00 (0) | string terminator table (reflection.Field): - +0x3098 | AC F8 FF FF | SOffset32 | 0xFFFFF8AC (-1876) Loc: +0x37EC | offset to vtable - +0x309C | 00 | uint8_t[1] | . | padding - +0x309D | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x309E | 04 00 | uint16_t | 0x0004 (4) | table field `offset` (UShort) - +0x30A0 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x30B4 | offset to field `name` (string) - +0x30A4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x30A8 | offset to field `type` (table) + +0x3098 | AC F8 FF FF | SOffset32 | 0xFFFFF8AC (-1876) Loc: 0x37EC | offset to vtable + +0x309C | 00 | uint8_t[1] | . | padding + +0x309D | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x309E | 04 00 | uint16_t | 0x0004 (4) | table field `offset` (UShort) + +0x30A0 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: 0x30B4 | offset to field `name` (string) + +0x30A4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x30A8 | offset to field `type` (table) table (reflection.Type): - +0x30A8 | CC F7 FF FF | SOffset32 | 0xFFFFF7CC (-2100) Loc: +0x38DC | offset to vtable - +0x30AC | 00 00 00 | uint8_t[3] | ... | padding - +0x30AF | 0D | uint8_t | 0x0D (13) | table field `base_type` (Byte) - +0x30B0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x30A8 | CC F7 FF FF | SOffset32 | 0xFFFFF7CC (-2100) Loc: 0x38DC | offset to vtable + +0x30AC | 00 00 00 | uint8_t[3] | ... | padding + +0x30AF | 0D | uint8_t | 0x0D (13) | table field `base_type` (Byte) + +0x30B0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x30B4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x30B8 | 69 64 | char[2] | id | string literal - +0x30BA | 00 | char | 0x00 (0) | string terminator + +0x30B4 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x30B8 | 69 64 | char[2] | id | string literal + +0x30BA | 00 | char | 0x00 (0) | string terminator table (reflection.Object): - +0x30BC | 7C F8 FF FF | SOffset32 | 0xFFFFF87C (-1924) Loc: +0x3840 | offset to vtable - +0x30C0 | 00 00 00 | uint8_t[3] | ... | padding - +0x30C3 | 01 | uint8_t | 0x01 (1) | table field `is_struct` (Bool) - +0x30C4 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: +0x30E0 | offset to field `name` (string) - +0x30C8 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x30D8 | offset to field `fields` (vector) - +0x30CC | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `minalign` (Int) - +0x30D0 | 14 00 00 00 | uint32_t | 0x00000014 (20) | table field `bytesize` (Int) - +0x30D4 | 10 06 00 00 | UOffset32 | 0x00000610 (1552) Loc: +0x36E4 | offset to field `declaration_file` (string) + +0x30BC | 7C F8 FF FF | SOffset32 | 0xFFFFF87C (-1924) Loc: 0x3840 | offset to vtable + +0x30C0 | 00 00 00 | uint8_t[3] | ... | padding + +0x30C3 | 01 | uint8_t | 0x01 (1) | table field `is_struct` (Bool) + +0x30C4 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: 0x30E0 | offset to field `name` (string) + +0x30C8 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x30D8 | offset to field `fields` (vector) + +0x30CC | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `minalign` (Int) + +0x30D0 | 14 00 00 00 | uint32_t | 0x00000014 (20) | table field `bytesize` (Int) + +0x30D4 | 10 06 00 00 | UOffset32 | 0x00000610 (1552) Loc: 0x36E4 | offset to field `declaration_file` (string) vector (reflection.Object.fields): - +0x30D8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x30DC | 30 00 00 00 | UOffset32 | 0x00000030 (48) Loc: +0x310C | offset to table[0] + +0x30D8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x30DC | 30 00 00 00 | UOffset32 | 0x00000030 (48) Loc: 0x310C | offset to table[0] string (reflection.Object.name): - +0x30E0 | 27 00 00 00 | uint32_t | 0x00000027 (39) | length of string - +0x30E4 | 4D 79 47 61 6D 65 2E 45 | char[39] | MyGame.E | string literal - +0x30EC | 78 61 6D 70 6C 65 2E 53 | | xample.S - +0x30F4 | 74 72 75 63 74 4F 66 53 | | tructOfS - +0x30FC | 74 72 75 63 74 73 4F 66 | | tructsOf - +0x3104 | 53 74 72 75 63 74 73 | | Structs - +0x310B | 00 | char | 0x00 (0) | string terminator + +0x30E0 | 27 00 00 00 | uint32_t | 0x00000027 (39) | length of string + +0x30E4 | 4D 79 47 61 6D 65 2E 45 | char[39] | MyGame.E | string literal + +0x30EC | 78 61 6D 70 6C 65 2E 53 | | xample.S + +0x30F4 | 74 72 75 63 74 4F 66 53 | | tructOfS + +0x30FC | 74 72 75 63 74 73 4F 66 | | tructsOf + +0x3104 | 53 74 72 75 63 74 73 | | Structs + +0x310B | 00 | char | 0x00 (0) | string terminator table (reflection.Field): - +0x310C | 14 FF FF FF | SOffset32 | 0xFFFFFF14 (-236) Loc: +0x31F8 | offset to vtable - +0x3110 | 00 00 00 | uint8_t[3] | ... | padding - +0x3113 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x3114 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x312C | offset to field `name` (string) - +0x3118 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x311C | offset to field `type` (table) + +0x310C | 14 FF FF FF | SOffset32 | 0xFFFFFF14 (-236) Loc: 0x31F8 | offset to vtable + +0x3110 | 00 00 00 | uint8_t[3] | ... | padding + +0x3113 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x3114 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: 0x312C | offset to field `name` (string) + +0x3118 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x311C | offset to field `type` (table) table (reflection.Type): - +0x311C | 04 F9 FF FF | SOffset32 | 0xFFFFF904 (-1788) Loc: +0x3818 | offset to vtable - +0x3120 | 00 00 00 | uint8_t[3] | ... | padding - +0x3123 | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) - +0x3124 | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `index` (Int) - +0x3128 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x311C | 04 F9 FF FF | SOffset32 | 0xFFFFF904 (-1788) Loc: 0x3818 | offset to vtable + +0x3120 | 00 00 00 | uint8_t[3] | ... | padding + +0x3123 | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) + +0x3124 | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `index` (Int) + +0x3128 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x312C | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x3130 | 61 | char[1] | a | string literal - +0x3131 | 00 | char | 0x00 (0) | string terminator + +0x312C | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x3130 | 61 | char[1] | a | string literal + +0x3131 | 00 | char | 0x00 (0) | string terminator padding: - +0x3132 | 00 00 | uint8_t[2] | .. | padding + +0x3132 | 00 00 | uint8_t[2] | .. | padding table (reflection.Object): - +0x3134 | F4 F8 FF FF | SOffset32 | 0xFFFFF8F4 (-1804) Loc: +0x3840 | offset to vtable - +0x3138 | 00 00 00 | uint8_t[3] | ... | padding - +0x313B | 01 | uint8_t | 0x01 (1) | table field `is_struct` (Bool) - +0x313C | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x3160 | offset to field `name` (string) - +0x3140 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x3150 | offset to field `fields` (vector) - +0x3144 | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `minalign` (Int) - +0x3148 | 14 00 00 00 | uint32_t | 0x00000014 (20) | table field `bytesize` (Int) - +0x314C | 98 05 00 00 | UOffset32 | 0x00000598 (1432) Loc: +0x36E4 | offset to field `declaration_file` (string) + +0x3134 | F4 F8 FF FF | SOffset32 | 0xFFFFF8F4 (-1804) Loc: 0x3840 | offset to vtable + +0x3138 | 00 00 00 | uint8_t[3] | ... | padding + +0x313B | 01 | uint8_t | 0x01 (1) | table field `is_struct` (Bool) + +0x313C | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: 0x3160 | offset to field `name` (string) + +0x3140 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x3150 | offset to field `fields` (vector) + +0x3144 | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `minalign` (Int) + +0x3148 | 14 00 00 00 | uint32_t | 0x00000014 (20) | table field `bytesize` (Int) + +0x314C | 98 05 00 00 | UOffset32 | 0x00000598 (1432) Loc: 0x36E4 | offset to field `declaration_file` (string) vector (reflection.Object.fields): - +0x3150 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) - +0x3154 | C0 00 00 00 | UOffset32 | 0x000000C0 (192) Loc: +0x3214 | offset to table[0] - +0x3158 | 74 00 00 00 | UOffset32 | 0x00000074 (116) Loc: +0x31CC | offset to table[1] - +0x315C | 28 00 00 00 | UOffset32 | 0x00000028 (40) Loc: +0x3184 | offset to table[2] + +0x3150 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of vector (# items) + +0x3154 | C0 00 00 00 | UOffset32 | 0x000000C0 (192) Loc: 0x3214 | offset to table[0] + +0x3158 | 74 00 00 00 | UOffset32 | 0x00000074 (116) Loc: 0x31CC | offset to table[1] + +0x315C | 28 00 00 00 | UOffset32 | 0x00000028 (40) Loc: 0x3184 | offset to table[2] string (reflection.Object.name): - +0x3160 | 1E 00 00 00 | uint32_t | 0x0000001E (30) | length of string - +0x3164 | 4D 79 47 61 6D 65 2E 45 | char[30] | MyGame.E | string literal - +0x316C | 78 61 6D 70 6C 65 2E 53 | | xample.S - +0x3174 | 74 72 75 63 74 4F 66 53 | | tructOfS - +0x317C | 74 72 75 63 74 73 | | tructs - +0x3182 | 00 | char | 0x00 (0) | string terminator + +0x3160 | 1E 00 00 00 | uint32_t | 0x0000001E (30) | length of string + +0x3164 | 4D 79 47 61 6D 65 2E 45 | char[30] | MyGame.E | string literal + +0x316C | 78 61 6D 70 6C 65 2E 53 | | xample.S + +0x3174 | 74 72 75 63 74 4F 66 53 | | tructOfS + +0x317C | 74 72 75 63 74 73 | | tructs + +0x3182 | 00 | char | 0x00 (0) | string terminator table (reflection.Field): - +0x3184 | D4 FF FF FF | SOffset32 | 0xFFFFFFD4 (-44) Loc: +0x31B0 | offset to vtable - +0x3188 | 00 00 00 | uint8_t[3] | ... | padding - +0x318B | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x318C | 02 00 | uint16_t | 0x0002 (2) | table field `id` (UShort) - +0x318E | 0C 00 | uint16_t | 0x000C (12) | table field `offset` (UShort) - +0x3190 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x31A8 | offset to field `name` (string) - +0x3194 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3198 | offset to field `type` (table) + +0x3184 | D4 FF FF FF | SOffset32 | 0xFFFFFFD4 (-44) Loc: 0x31B0 | offset to vtable + +0x3188 | 00 00 00 | uint8_t[3] | ... | padding + +0x318B | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x318C | 02 00 | uint16_t | 0x0002 (2) | table field `id` (UShort) + +0x318E | 0C 00 | uint16_t | 0x000C (12) | table field `offset` (UShort) + +0x3190 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: 0x31A8 | offset to field `name` (string) + +0x3194 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x3198 | offset to field `type` (table) table (reflection.Type): - +0x3198 | 80 F9 FF FF | SOffset32 | 0xFFFFF980 (-1664) Loc: +0x3818 | offset to vtable - +0x319C | 00 00 00 | uint8_t[3] | ... | padding - +0x319F | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) - +0x31A0 | 00 00 00 00 | uint32_t | 0x00000000 (0) | table field `index` (Int) - +0x31A4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x3198 | 80 F9 FF FF | SOffset32 | 0xFFFFF980 (-1664) Loc: 0x3818 | offset to vtable + +0x319C | 00 00 00 | uint8_t[3] | ... | padding + +0x319F | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) + +0x31A0 | 00 00 00 00 | uint32_t | 0x00000000 (0) | table field `index` (Int) + +0x31A4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x31A8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x31AC | 63 | char[1] | c | string literal - +0x31AD | 00 | char | 0x00 (0) | string terminator + +0x31A8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x31AC | 63 | char[1] | c | string literal + +0x31AD | 00 | char | 0x00 (0) | string terminator padding: - +0x31AE | 00 00 | uint8_t[2] | .. | padding + +0x31AE | 00 00 | uint8_t[2] | .. | padding vtable (reflection.Field): - +0x31B0 | 1C 00 | uint16_t | 0x001C (28) | size of this vtable - +0x31B2 | 14 00 | uint16_t | 0x0014 (20) | size of referring table - +0x31B4 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `name` (id: 0) - +0x31B6 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `type` (id: 1) - +0x31B8 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `id` (id: 2) - +0x31BA | 0A 00 | VOffset16 | 0x000A (10) | offset to field `offset` (id: 3) - +0x31BC | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) (Long) - +0x31BE | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) (Double) - +0x31C0 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) - +0x31C2 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) (Bool) - +0x31C4 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 8) (Bool) - +0x31C6 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `attributes` (id: 9) (Vector) - +0x31C8 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `documentation` (id: 10) (Vector) - +0x31CA | 07 00 | VOffset16 | 0x0007 (7) | offset to field `optional` (id: 11) + +0x31B0 | 1C 00 | uint16_t | 0x001C (28) | size of this vtable + +0x31B2 | 14 00 | uint16_t | 0x0014 (20) | size of referring table + +0x31B4 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `name` (id: 0) + +0x31B6 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `type` (id: 1) + +0x31B8 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `id` (id: 2) + +0x31BA | 0A 00 | VOffset16 | 0x000A (10) | offset to field `offset` (id: 3) + +0x31BC | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) (Long) + +0x31BE | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) (Double) + +0x31C0 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) + +0x31C2 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) (Bool) + +0x31C4 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 8) (Bool) + +0x31C6 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `attributes` (id: 9) (Vector) + +0x31C8 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `documentation` (id: 10) (Vector) + +0x31CA | 07 00 | VOffset16 | 0x0007 (7) | offset to field `optional` (id: 11) table (reflection.Field): - +0x31CC | 1C 00 00 00 | SOffset32 | 0x0000001C (28) Loc: +0x31B0 | offset to vtable - +0x31D0 | 00 00 00 | uint8_t[3] | ... | padding - +0x31D3 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x31D4 | 01 00 | uint16_t | 0x0001 (1) | table field `id` (UShort) - +0x31D6 | 08 00 | uint16_t | 0x0008 (8) | table field `offset` (UShort) - +0x31D8 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x31F0 | offset to field `name` (string) - +0x31DC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x31E0 | offset to field `type` (table) + +0x31CC | 1C 00 00 00 | SOffset32 | 0x0000001C (28) Loc: 0x31B0 | offset to vtable + +0x31D0 | 00 00 00 | uint8_t[3] | ... | padding + +0x31D3 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x31D4 | 01 00 | uint16_t | 0x0001 (1) | table field `id` (UShort) + +0x31D6 | 08 00 | uint16_t | 0x0008 (8) | table field `offset` (UShort) + +0x31D8 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: 0x31F0 | offset to field `name` (string) + +0x31DC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x31E0 | offset to field `type` (table) table (reflection.Type): - +0x31E0 | C8 F9 FF FF | SOffset32 | 0xFFFFF9C8 (-1592) Loc: +0x3818 | offset to vtable - +0x31E4 | 00 00 00 | uint8_t[3] | ... | padding - +0x31E7 | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) - +0x31E8 | 06 00 00 00 | uint32_t | 0x00000006 (6) | table field `index` (Int) - +0x31EC | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x31E0 | C8 F9 FF FF | SOffset32 | 0xFFFFF9C8 (-1592) Loc: 0x3818 | offset to vtable + +0x31E4 | 00 00 00 | uint8_t[3] | ... | padding + +0x31E7 | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) + +0x31E8 | 06 00 00 00 | uint32_t | 0x00000006 (6) | table field `index` (Int) + +0x31EC | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x31F0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x31F4 | 62 | char[1] | b | string literal - +0x31F5 | 00 | char | 0x00 (0) | string terminator + +0x31F0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x31F4 | 62 | char[1] | b | string literal + +0x31F5 | 00 | char | 0x00 (0) | string terminator padding: - +0x31F6 | 00 00 | uint8_t[2] | .. | padding + +0x31F6 | 00 00 | uint8_t[2] | .. | padding vtable (reflection.Field): - +0x31F8 | 1C 00 | uint16_t | 0x001C (28) | size of this vtable - +0x31FA | 10 00 | uint16_t | 0x0010 (16) | size of referring table - +0x31FC | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0) - +0x31FE | 0C 00 | VOffset16 | 0x000C (12) | offset to field `type` (id: 1) - +0x3200 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `id` (id: 2) (UShort) - +0x3202 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `offset` (id: 3) (UShort) - +0x3204 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) (Long) - +0x3206 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) (Double) - +0x3208 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) - +0x320A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) (Bool) - +0x320C | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 8) (Bool) - +0x320E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `attributes` (id: 9) (Vector) - +0x3210 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `documentation` (id: 10) (Vector) - +0x3212 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `optional` (id: 11) + +0x31F8 | 1C 00 | uint16_t | 0x001C (28) | size of this vtable + +0x31FA | 10 00 | uint16_t | 0x0010 (16) | size of referring table + +0x31FC | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0) + +0x31FE | 0C 00 | VOffset16 | 0x000C (12) | offset to field `type` (id: 1) + +0x3200 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `id` (id: 2) (UShort) + +0x3202 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `offset` (id: 3) (UShort) + +0x3204 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) (Long) + +0x3206 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) (Double) + +0x3208 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) + +0x320A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) (Bool) + +0x320C | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 8) (Bool) + +0x320E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `attributes` (id: 9) (Vector) + +0x3210 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `documentation` (id: 10) (Vector) + +0x3212 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `optional` (id: 11) table (reflection.Field): - +0x3214 | 1C 00 00 00 | SOffset32 | 0x0000001C (28) Loc: +0x31F8 | offset to vtable - +0x3218 | 00 00 00 | uint8_t[3] | ... | padding - +0x321B | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x321C | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x3234 | offset to field `name` (string) - +0x3220 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3224 | offset to field `type` (table) + +0x3214 | 1C 00 00 00 | SOffset32 | 0x0000001C (28) Loc: 0x31F8 | offset to vtable + +0x3218 | 00 00 00 | uint8_t[3] | ... | padding + +0x321B | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x321C | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: 0x3234 | offset to field `name` (string) + +0x3220 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x3224 | offset to field `type` (table) table (reflection.Type): - +0x3224 | 0C FA FF FF | SOffset32 | 0xFFFFFA0C (-1524) Loc: +0x3818 | offset to vtable - +0x3228 | 00 00 00 | uint8_t[3] | ... | padding - +0x322B | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) - +0x322C | 00 00 00 00 | uint32_t | 0x00000000 (0) | table field `index` (Int) - +0x3230 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x3224 | 0C FA FF FF | SOffset32 | 0xFFFFFA0C (-1524) Loc: 0x3818 | offset to vtable + +0x3228 | 00 00 00 | uint8_t[3] | ... | padding + +0x322B | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) + +0x322C | 00 00 00 00 | uint32_t | 0x00000000 (0) | table field `index` (Int) + +0x3230 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x3234 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x3238 | 61 | char[1] | a | string literal - +0x3239 | 00 | char | 0x00 (0) | string terminator + +0x3234 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x3238 | 61 | char[1] | a | string literal + +0x3239 | 00 | char | 0x00 (0) | string terminator padding: - +0x323A | 00 00 | uint8_t[2] | .. | padding + +0x323A | 00 00 | uint8_t[2] | .. | padding table (reflection.Object): - +0x323C | FC F9 FF FF | SOffset32 | 0xFFFFF9FC (-1540) Loc: +0x3840 | offset to vtable - +0x3240 | 00 00 00 | uint8_t[3] | ... | padding - +0x3243 | 01 | uint8_t | 0x01 (1) | table field `is_struct` (Bool) - +0x3244 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x3264 | offset to field `name` (string) - +0x3248 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x3258 | offset to field `fields` (vector) - +0x324C | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `minalign` (Int) - +0x3250 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `bytesize` (Int) - +0x3254 | 90 04 00 00 | UOffset32 | 0x00000490 (1168) Loc: +0x36E4 | offset to field `declaration_file` (string) + +0x323C | FC F9 FF FF | SOffset32 | 0xFFFFF9FC (-1540) Loc: 0x3840 | offset to vtable + +0x3240 | 00 00 00 | uint8_t[3] | ... | padding + +0x3243 | 01 | uint8_t | 0x01 (1) | table field `is_struct` (Bool) + +0x3244 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: 0x3264 | offset to field `name` (string) + +0x3248 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x3258 | offset to field `fields` (vector) + +0x324C | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `minalign` (Int) + +0x3250 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `bytesize` (Int) + +0x3254 | 90 04 00 00 | UOffset32 | 0x00000490 (1168) Loc: 0x36E4 | offset to field `declaration_file` (string) vector (reflection.Object.fields): - +0x3258 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) - +0x325C | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x3280 | offset to table[0] - +0x3260 | 64 00 00 00 | UOffset32 | 0x00000064 (100) Loc: +0x32C4 | offset to table[1] + +0x3258 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) + +0x325C | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: 0x3280 | offset to table[0] + +0x3260 | 64 00 00 00 | UOffset32 | 0x00000064 (100) Loc: 0x32C4 | offset to table[1] string (reflection.Object.name): - +0x3264 | 16 00 00 00 | uint32_t | 0x00000016 (22) | length of string - +0x3268 | 4D 79 47 61 6D 65 2E 45 | char[22] | MyGame.E | string literal - +0x3270 | 78 61 6D 70 6C 65 2E 41 | | xample.A - +0x3278 | 62 69 6C 69 74 79 | | bility - +0x327E | 00 | char | 0x00 (0) | string terminator + +0x3264 | 16 00 00 00 | uint32_t | 0x00000016 (22) | length of string + +0x3268 | 4D 79 47 61 6D 65 2E 45 | char[22] | MyGame.E | string literal + +0x3270 | 78 61 6D 70 6C 65 2E 41 | | xample.A + +0x3278 | 62 69 6C 69 74 79 | | bility + +0x327E | 00 | char | 0x00 (0) | string terminator table (reflection.Field): - +0x3280 | 04 FE FF FF | SOffset32 | 0xFFFFFE04 (-508) Loc: +0x347C | offset to vtable - +0x3284 | 01 00 | uint16_t | 0x0001 (1) | table field `id` (UShort) - +0x3286 | 04 00 | uint16_t | 0x0004 (4) | table field `offset` (UShort) - +0x3288 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x329C | offset to field `name` (string) - +0x328C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3290 | offset to field `type` (table) + +0x3280 | 04 FE FF FF | SOffset32 | 0xFFFFFE04 (-508) Loc: 0x347C | offset to vtable + +0x3284 | 01 00 | uint16_t | 0x0001 (1) | table field `id` (UShort) + +0x3286 | 04 00 | uint16_t | 0x0004 (4) | table field `offset` (UShort) + +0x3288 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: 0x329C | offset to field `name` (string) + +0x328C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x3290 | offset to field `type` (table) table (reflection.Type): - +0x3290 | B4 F9 FF FF | SOffset32 | 0xFFFFF9B4 (-1612) Loc: +0x38DC | offset to vtable - +0x3294 | 00 00 00 | uint8_t[3] | ... | padding - +0x3297 | 08 | uint8_t | 0x08 (8) | table field `base_type` (Byte) - +0x3298 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x3290 | B4 F9 FF FF | SOffset32 | 0xFFFFF9B4 (-1612) Loc: 0x38DC | offset to vtable + +0x3294 | 00 00 00 | uint8_t[3] | ... | padding + +0x3297 | 08 | uint8_t | 0x08 (8) | table field `base_type` (Byte) + +0x3298 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x329C | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string - +0x32A0 | 64 69 73 74 61 6E 63 65 | char[8] | distance | string literal - +0x32A8 | 00 | char | 0x00 (0) | string terminator + +0x329C | 08 00 00 00 | uint32_t | 0x00000008 (8) | length of string + +0x32A0 | 64 69 73 74 61 6E 63 65 | char[8] | distance | string literal + +0x32A8 | 00 | char | 0x00 (0) | string terminator padding: - +0x32A9 | 00 00 00 | uint8_t[3] | ... | padding + +0x32A9 | 00 00 00 | uint8_t[3] | ... | padding vtable (reflection.Field): - +0x32AC | 18 00 | uint16_t | 0x0018 (24) | size of this vtable - +0x32AE | 14 00 | uint16_t | 0x0014 (20) | size of referring table - +0x32B0 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0) - +0x32B2 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `type` (id: 1) - +0x32B4 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `id` (id: 2) (UShort) - +0x32B6 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `offset` (id: 3) (UShort) - +0x32B8 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) (Long) - +0x32BA | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) (Double) - +0x32BC | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) - +0x32BE | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) (Bool) - +0x32C0 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `key` (id: 8) - +0x32C2 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `attributes` (id: 9) + +0x32AC | 18 00 | uint16_t | 0x0018 (24) | size of this vtable + +0x32AE | 14 00 | uint16_t | 0x0014 (20) | size of referring table + +0x32B0 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0) + +0x32B2 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `type` (id: 1) + +0x32B4 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `id` (id: 2) (UShort) + +0x32B6 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `offset` (id: 3) (UShort) + +0x32B8 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) (Long) + +0x32BA | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) (Double) + +0x32BC | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) + +0x32BE | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) (Bool) + +0x32C0 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `key` (id: 8) + +0x32C2 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `attributes` (id: 9) table (reflection.Field): - +0x32C4 | 18 00 00 00 | SOffset32 | 0x00000018 (24) Loc: +0x32AC | offset to vtable - +0x32C8 | 00 00 00 | uint8_t[3] | ... | padding - +0x32CB | 01 | uint8_t | 0x01 (1) | table field `key` (Bool) - +0x32CC | 3C 00 00 00 | UOffset32 | 0x0000003C (60) Loc: +0x3308 | offset to field `name` (string) - +0x32D0 | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: +0x32FC | offset to field `type` (table) - +0x32D4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x32D8 | offset to field `attributes` (vector) + +0x32C4 | 18 00 00 00 | SOffset32 | 0x00000018 (24) Loc: 0x32AC | offset to vtable + +0x32C8 | 00 00 00 | uint8_t[3] | ... | padding + +0x32CB | 01 | uint8_t | 0x01 (1) | table field `key` (Bool) + +0x32CC | 3C 00 00 00 | UOffset32 | 0x0000003C (60) Loc: 0x3308 | offset to field `name` (string) + +0x32D0 | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: 0x32FC | offset to field `type` (table) + +0x32D4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x32D8 | offset to field `attributes` (vector) vector (reflection.Field.attributes): - +0x32D8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x32DC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x32E0 | offset to table[0] + +0x32D8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x32DC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x32E0 | offset to table[0] table (reflection.KeyValue): - +0x32E0 | 18 FA FF FF | SOffset32 | 0xFFFFFA18 (-1512) Loc: +0x38C8 | offset to vtable - +0x32E4 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x32F4 | offset to field `key` (string) - +0x32E8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x32EC | offset to field `value` (string) + +0x32E0 | 18 FA FF FF | SOffset32 | 0xFFFFFA18 (-1512) Loc: 0x38C8 | offset to vtable + +0x32E4 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x32F4 | offset to field `key` (string) + +0x32E8 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x32EC | offset to field `value` (string) string (reflection.KeyValue.value): - +0x32EC | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x32F0 | 30 | char[1] | 0 | string literal - +0x32F1 | 00 | char | 0x00 (0) | string terminator + +0x32EC | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x32F0 | 30 | char[1] | 0 | string literal + +0x32F1 | 00 | char | 0x00 (0) | string terminator padding: - +0x32F2 | 00 00 | uint8_t[2] | .. | padding + +0x32F2 | 00 00 | uint8_t[2] | .. | padding string (reflection.KeyValue.key): - +0x32F4 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string - +0x32F8 | 6B 65 79 | char[3] | key | string literal - +0x32FB | 00 | char | 0x00 (0) | string terminator + +0x32F4 | 03 00 00 00 | uint32_t | 0x00000003 (3) | length of string + +0x32F8 | 6B 65 79 | char[3] | key | string literal + +0x32FB | 00 | char | 0x00 (0) | string terminator table (reflection.Type): - +0x32FC | 20 FA FF FF | SOffset32 | 0xFFFFFA20 (-1504) Loc: +0x38DC | offset to vtable - +0x3300 | 00 00 00 | uint8_t[3] | ... | padding - +0x3303 | 08 | uint8_t | 0x08 (8) | table field `base_type` (Byte) - +0x3304 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x32FC | 20 FA FF FF | SOffset32 | 0xFFFFFA20 (-1504) Loc: 0x38DC | offset to vtable + +0x3300 | 00 00 00 | uint8_t[3] | ... | padding + +0x3303 | 08 | uint8_t | 0x08 (8) | table field `base_type` (Byte) + +0x3304 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x3308 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string - +0x330C | 69 64 | char[2] | id | string literal - +0x330E | 00 | char | 0x00 (0) | string terminator + +0x3308 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of string + +0x330C | 69 64 | char[2] | id | string literal + +0x330E | 00 | char | 0x00 (0) | string terminator vtable (reflection.Object): - +0x3310 | 14 00 | uint16_t | 0x0014 (20) | size of this vtable - +0x3312 | 20 00 | uint16_t | 0x0020 (32) | size of referring table - +0x3314 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0) - +0x3316 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `fields` (id: 1) - +0x3318 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `is_struct` (id: 2) - +0x331A | 10 00 | VOffset16 | 0x0010 (16) | offset to field `minalign` (id: 3) - +0x331C | 14 00 | VOffset16 | 0x0014 (20) | offset to field `bytesize` (id: 4) - +0x331E | 18 00 | VOffset16 | 0x0018 (24) | offset to field `attributes` (id: 5) - +0x3320 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `documentation` (id: 6) (Vector) - +0x3322 | 1C 00 | VOffset16 | 0x001C (28) | offset to field `declaration_file` (id: 7) + +0x3310 | 14 00 | uint16_t | 0x0014 (20) | size of this vtable + +0x3312 | 20 00 | uint16_t | 0x0020 (32) | size of referring table + +0x3314 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0) + +0x3316 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `fields` (id: 1) + +0x3318 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `is_struct` (id: 2) + +0x331A | 10 00 | VOffset16 | 0x0010 (16) | offset to field `minalign` (id: 3) + +0x331C | 14 00 | VOffset16 | 0x0014 (20) | offset to field `bytesize` (id: 4) + +0x331E | 18 00 | VOffset16 | 0x0018 (24) | offset to field `attributes` (id: 5) + +0x3320 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `documentation` (id: 6) (Vector) + +0x3322 | 1C 00 | VOffset16 | 0x001C (28) | offset to field `declaration_file` (id: 7) table (reflection.Object): - +0x3324 | 14 00 00 00 | SOffset32 | 0x00000014 (20) Loc: +0x3310 | offset to vtable - +0x3328 | 00 00 00 | uint8_t[3] | ... | padding - +0x332B | 01 | uint8_t | 0x01 (1) | table field `is_struct` (Bool) - +0x332C | 60 00 00 00 | UOffset32 | 0x00000060 (96) Loc: +0x338C | offset to field `name` (string) - +0x3330 | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: +0x3370 | offset to field `fields` (vector) - +0x3334 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `minalign` (Int) - +0x3338 | 20 00 00 00 | uint32_t | 0x00000020 (32) | table field `bytesize` (Int) - +0x333C | 08 00 00 00 | UOffset32 | 0x00000008 (8) Loc: +0x3344 | offset to field `attributes` (vector) - +0x3340 | A4 03 00 00 | UOffset32 | 0x000003A4 (932) Loc: +0x36E4 | offset to field `declaration_file` (string) + +0x3324 | 14 00 00 00 | SOffset32 | 0x00000014 (20) Loc: 0x3310 | offset to vtable + +0x3328 | 00 00 00 | uint8_t[3] | ... | padding + +0x332B | 01 | uint8_t | 0x01 (1) | table field `is_struct` (Bool) + +0x332C | 60 00 00 00 | UOffset32 | 0x00000060 (96) Loc: 0x338C | offset to field `name` (string) + +0x3330 | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: 0x3370 | offset to field `fields` (vector) + +0x3334 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `minalign` (Int) + +0x3338 | 20 00 00 00 | uint32_t | 0x00000020 (32) | table field `bytesize` (Int) + +0x333C | 08 00 00 00 | UOffset32 | 0x00000008 (8) Loc: 0x3344 | offset to field `attributes` (vector) + +0x3340 | A4 03 00 00 | UOffset32 | 0x000003A4 (932) Loc: 0x36E4 | offset to field `declaration_file` (string) vector (reflection.Object.attributes): - +0x3344 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x3348 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x334C | offset to table[0] + +0x3344 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x3348 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x334C | offset to table[0] table (reflection.KeyValue): - +0x334C | 84 FA FF FF | SOffset32 | 0xFFFFFA84 (-1404) Loc: +0x38C8 | offset to vtable - +0x3350 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x3360 | offset to field `key` (string) - +0x3354 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3358 | offset to field `value` (string) + +0x334C | 84 FA FF FF | SOffset32 | 0xFFFFFA84 (-1404) Loc: 0x38C8 | offset to vtable + +0x3350 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x3360 | offset to field `key` (string) + +0x3354 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x3358 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x3358 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x335C | 38 | char[1] | 8 | string literal - +0x335D | 00 | char | 0x00 (0) | string terminator + +0x3358 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x335C | 38 | char[1] | 8 | string literal + +0x335D | 00 | char | 0x00 (0) | string terminator padding: - +0x335E | 00 00 | uint8_t[2] | .. | padding + +0x335E | 00 00 | uint8_t[2] | .. | padding string (reflection.KeyValue.key): - +0x3360 | 0B 00 00 00 | uint32_t | 0x0000000B (11) | length of string - +0x3364 | 66 6F 72 63 65 5F 61 6C | char[11] | force_al | string literal - +0x336C | 69 67 6E | | ign - +0x336F | 00 | char | 0x00 (0) | string terminator + +0x3360 | 0B 00 00 00 | uint32_t | 0x0000000B (11) | length of string + +0x3364 | 66 6F 72 63 65 5F 61 6C | char[11] | force_al | string literal + +0x336C | 69 67 6E | | ign + +0x336F | 00 | char | 0x00 (0) | string terminator vector (reflection.Object.fields): - +0x3370 | 06 00 00 00 | uint32_t | 0x00000006 (6) | length of vector (# items) - +0x3374 | B4 00 00 00 | UOffset32 | 0x000000B4 (180) Loc: +0x3428 | offset to table[0] - +0x3378 | 7C 00 00 00 | UOffset32 | 0x0000007C (124) Loc: +0x33F4 | offset to table[1] - +0x337C | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: +0x33C4 | offset to table[2] - +0x3380 | 2C 01 00 00 | UOffset32 | 0x0000012C (300) Loc: +0x34AC | offset to table[3] - +0x3384 | 04 01 00 00 | UOffset32 | 0x00000104 (260) Loc: +0x3488 | offset to table[4] - +0x3388 | CC 00 00 00 | UOffset32 | 0x000000CC (204) Loc: +0x3454 | offset to table[5] + +0x3370 | 06 00 00 00 | uint32_t | 0x00000006 (6) | length of vector (# items) + +0x3374 | B4 00 00 00 | UOffset32 | 0x000000B4 (180) Loc: 0x3428 | offset to table[0] + +0x3378 | 7C 00 00 00 | UOffset32 | 0x0000007C (124) Loc: 0x33F4 | offset to table[1] + +0x337C | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: 0x33C4 | offset to table[2] + +0x3380 | 2C 01 00 00 | UOffset32 | 0x0000012C (300) Loc: 0x34AC | offset to table[3] + +0x3384 | 04 01 00 00 | UOffset32 | 0x00000104 (260) Loc: 0x3488 | offset to table[4] + +0x3388 | CC 00 00 00 | UOffset32 | 0x000000CC (204) Loc: 0x3454 | offset to table[5] string (reflection.Object.name): - +0x338C | 13 00 00 00 | uint32_t | 0x00000013 (19) | length of string - +0x3390 | 4D 79 47 61 6D 65 2E 45 | char[19] | MyGame.E | string literal - +0x3398 | 78 61 6D 70 6C 65 2E 56 | | xample.V - +0x33A0 | 65 63 33 | | ec3 - +0x33A3 | 00 | char | 0x00 (0) | string terminator + +0x338C | 13 00 00 00 | uint32_t | 0x00000013 (19) | length of string + +0x3390 | 4D 79 47 61 6D 65 2E 45 | char[19] | MyGame.E | string literal + +0x3398 | 78 61 6D 70 6C 65 2E 56 | | xample.V + +0x33A0 | 65 63 33 | | ec3 + +0x33A3 | 00 | char | 0x00 (0) | string terminator padding: - +0x33A4 | 00 00 | uint8_t[2] | .. | padding + +0x33A4 | 00 00 | uint8_t[2] | .. | padding vtable (reflection.Field): - +0x33A6 | 1E 00 | uint16_t | 0x001E (30) | size of this vtable - +0x33A8 | 14 00 | uint16_t | 0x0014 (20) | size of referring table - +0x33AA | 0C 00 | VOffset16 | 0x000C (12) | offset to field `name` (id: 0) - +0x33AC | 10 00 | VOffset16 | 0x0010 (16) | offset to field `type` (id: 1) - +0x33AE | 06 00 | VOffset16 | 0x0006 (6) | offset to field `id` (id: 2) - +0x33B0 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `offset` (id: 3) - +0x33B2 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) (Long) - +0x33B4 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) (Double) - +0x33B6 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) - +0x33B8 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) (Bool) - +0x33BA | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 8) (Bool) - +0x33BC | 00 00 | VOffset16 | 0x0000 (0) | offset to field `attributes` (id: 9) (Vector) - +0x33BE | 00 00 | VOffset16 | 0x0000 (0) | offset to field `documentation` (id: 10) (Vector) - +0x33C0 | 05 00 | VOffset16 | 0x0005 (5) | offset to field `optional` (id: 11) - +0x33C2 | 0A 00 | VOffset16 | 0x000A (10) | offset to field `padding` (id: 12) + +0x33A6 | 1E 00 | uint16_t | 0x001E (30) | size of this vtable + +0x33A8 | 14 00 | uint16_t | 0x0014 (20) | size of referring table + +0x33AA | 0C 00 | VOffset16 | 0x000C (12) | offset to field `name` (id: 0) + +0x33AC | 10 00 | VOffset16 | 0x0010 (16) | offset to field `type` (id: 1) + +0x33AE | 06 00 | VOffset16 | 0x0006 (6) | offset to field `id` (id: 2) + +0x33B0 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `offset` (id: 3) + +0x33B2 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) (Long) + +0x33B4 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) (Double) + +0x33B6 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) + +0x33B8 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) (Bool) + +0x33BA | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 8) (Bool) + +0x33BC | 00 00 | VOffset16 | 0x0000 (0) | offset to field `attributes` (id: 9) (Vector) + +0x33BE | 00 00 | VOffset16 | 0x0000 (0) | offset to field `documentation` (id: 10) (Vector) + +0x33C0 | 05 00 | VOffset16 | 0x0005 (5) | offset to field `optional` (id: 11) + +0x33C2 | 0A 00 | VOffset16 | 0x000A (10) | offset to field `padding` (id: 12) table (reflection.Field): - +0x33C4 | 1E 00 00 00 | SOffset32 | 0x0000001E (30) Loc: +0x33A6 | offset to vtable - +0x33C8 | 00 | uint8_t[1] | . | padding - +0x33C9 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x33CA | 05 00 | uint16_t | 0x0005 (5) | table field `id` (UShort) - +0x33CC | 1A 00 | uint16_t | 0x001A (26) | table field `offset` (UShort) - +0x33CE | 02 00 | uint16_t | 0x0002 (2) | table field `padding` (UShort) - +0x33D0 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x33E8 | offset to field `name` (string) - +0x33D4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x33D8 | offset to field `type` (table) + +0x33C4 | 1E 00 00 00 | SOffset32 | 0x0000001E (30) Loc: 0x33A6 | offset to vtable + +0x33C8 | 00 | uint8_t[1] | . | padding + +0x33C9 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x33CA | 05 00 | uint16_t | 0x0005 (5) | table field `id` (UShort) + +0x33CC | 1A 00 | uint16_t | 0x001A (26) | table field `offset` (UShort) + +0x33CE | 02 00 | uint16_t | 0x0002 (2) | table field `padding` (UShort) + +0x33D0 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: 0x33E8 | offset to field `name` (string) + +0x33D4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x33D8 | offset to field `type` (table) table (reflection.Type): - +0x33D8 | C0 FB FF FF | SOffset32 | 0xFFFFFBC0 (-1088) Loc: +0x3818 | offset to vtable - +0x33DC | 00 00 00 | uint8_t[3] | ... | padding - +0x33DF | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) - +0x33E0 | 06 00 00 00 | uint32_t | 0x00000006 (6) | table field `index` (Int) - +0x33E4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x33D8 | C0 FB FF FF | SOffset32 | 0xFFFFFBC0 (-1088) Loc: 0x3818 | offset to vtable + +0x33DC | 00 00 00 | uint8_t[3] | ... | padding + +0x33DF | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) + +0x33E0 | 06 00 00 00 | uint32_t | 0x00000006 (6) | table field `index` (Int) + +0x33E4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x33E8 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string - +0x33EC | 74 65 73 74 33 | char[5] | test3 | string literal - +0x33F1 | 00 | char | 0x00 (0) | string terminator + +0x33E8 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string + +0x33EC | 74 65 73 74 33 | char[5] | test3 | string literal + +0x33F1 | 00 | char | 0x00 (0) | string terminator padding: - +0x33F2 | 00 00 | uint8_t[2] | .. | padding + +0x33F2 | 00 00 | uint8_t[2] | .. | padding table (reflection.Field): - +0x33F4 | D6 FD FF FF | SOffset32 | 0xFFFFFDD6 (-554) Loc: +0x361E | offset to vtable - +0x33F8 | 00 00 | uint8_t[2] | .. | padding - +0x33FA | 04 00 | uint16_t | 0x0004 (4) | table field `id` (UShort) - +0x33FC | 18 00 | uint16_t | 0x0018 (24) | table field `offset` (UShort) - +0x33FE | 01 00 | uint16_t | 0x0001 (1) | table field `padding` (UShort) - +0x3400 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: +0x341C | offset to field `name` (string) - +0x3404 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3408 | offset to field `type` (table) + +0x33F4 | D6 FD FF FF | SOffset32 | 0xFFFFFDD6 (-554) Loc: 0x361E | offset to vtable + +0x33F8 | 00 00 | uint8_t[2] | .. | padding + +0x33FA | 04 00 | uint16_t | 0x0004 (4) | table field `id` (UShort) + +0x33FC | 18 00 | uint16_t | 0x0018 (24) | table field `offset` (UShort) + +0x33FE | 01 00 | uint16_t | 0x0001 (1) | table field `padding` (UShort) + +0x3400 | 1C 00 00 00 | UOffset32 | 0x0000001C (28) Loc: 0x341C | offset to field `name` (string) + +0x3404 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x3408 | offset to field `type` (table) table (reflection.Type): - +0x3408 | 5C FE FF FF | SOffset32 | 0xFFFFFE5C (-420) Loc: +0x35AC | offset to vtable - +0x340C | 00 00 00 | uint8_t[3] | ... | padding - +0x340F | 04 | uint8_t | 0x04 (4) | table field `base_type` (Byte) - +0x3410 | 03 00 00 00 | uint32_t | 0x00000003 (3) | table field `index` (Int) - +0x3414 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) - +0x3418 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x3408 | 5C FE FF FF | SOffset32 | 0xFFFFFE5C (-420) Loc: 0x35AC | offset to vtable + +0x340C | 00 00 00 | uint8_t[3] | ... | padding + +0x340F | 04 | uint8_t | 0x04 (4) | table field `base_type` (Byte) + +0x3410 | 03 00 00 00 | uint32_t | 0x00000003 (3) | table field `index` (Int) + +0x3414 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) + +0x3418 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x341C | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string - +0x3420 | 74 65 73 74 32 | char[5] | test2 | string literal - +0x3425 | 00 | char | 0x00 (0) | string terminator + +0x341C | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string + +0x3420 | 74 65 73 74 32 | char[5] | test2 | string literal + +0x3425 | 00 | char | 0x00 (0) | string terminator padding: - +0x3426 | 00 00 | uint8_t[2] | .. | padding + +0x3426 | 00 00 | uint8_t[2] | .. | padding table (reflection.Field): - +0x3428 | AC FF FF FF | SOffset32 | 0xFFFFFFAC (-84) Loc: +0x347C | offset to vtable - +0x342C | 03 00 | uint16_t | 0x0003 (3) | table field `id` (UShort) - +0x342E | 10 00 | uint16_t | 0x0010 (16) | table field `offset` (UShort) - +0x3430 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x3448 | offset to field `name` (string) - +0x3434 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3438 | offset to field `type` (table) + +0x3428 | AC FF FF FF | SOffset32 | 0xFFFFFFAC (-84) Loc: 0x347C | offset to vtable + +0x342C | 03 00 | uint16_t | 0x0003 (3) | table field `id` (UShort) + +0x342E | 10 00 | uint16_t | 0x0010 (16) | table field `offset` (UShort) + +0x3430 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: 0x3448 | offset to field `name` (string) + +0x3434 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x3438 | offset to field `type` (table) table (reflection.Type): - +0x3438 | C4 FD FF FF | SOffset32 | 0xFFFFFDC4 (-572) Loc: +0x3674 | offset to vtable - +0x343C | 00 00 00 | uint8_t[3] | ... | padding - +0x343F | 0C | uint8_t | 0x0C (12) | table field `base_type` (Byte) - +0x3440 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt) - +0x3444 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x3438 | C4 FD FF FF | SOffset32 | 0xFFFFFDC4 (-572) Loc: 0x3674 | offset to vtable + +0x343C | 00 00 00 | uint8_t[3] | ... | padding + +0x343F | 0C | uint8_t | 0x0C (12) | table field `base_type` (Byte) + +0x3440 | 08 00 00 00 | uint32_t | 0x00000008 (8) | table field `base_size` (UInt) + +0x3444 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x3448 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string - +0x344C | 74 65 73 74 31 | char[5] | test1 | string literal - +0x3451 | 00 | char | 0x00 (0) | string terminator + +0x3448 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string + +0x344C | 74 65 73 74 31 | char[5] | test1 | string literal + +0x3451 | 00 | char | 0x00 (0) | string terminator padding: - +0x3452 | 00 00 | uint8_t[2] | .. | padding + +0x3452 | 00 00 | uint8_t[2] | .. | padding table (reflection.Field): - +0x3454 | 36 FE FF FF | SOffset32 | 0xFFFFFE36 (-458) Loc: +0x361E | offset to vtable - +0x3458 | 00 00 | uint8_t[2] | .. | padding - +0x345A | 02 00 | uint16_t | 0x0002 (2) | table field `id` (UShort) - +0x345C | 08 00 | uint16_t | 0x0008 (8) | table field `offset` (UShort) - +0x345E | 04 00 | uint16_t | 0x0004 (4) | table field `padding` (UShort) - +0x3460 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x3474 | offset to field `name` (string) - +0x3464 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3468 | offset to field `type` (table) + +0x3454 | 36 FE FF FF | SOffset32 | 0xFFFFFE36 (-458) Loc: 0x361E | offset to vtable + +0x3458 | 00 00 | uint8_t[2] | .. | padding + +0x345A | 02 00 | uint16_t | 0x0002 (2) | table field `id` (UShort) + +0x345C | 08 00 | uint16_t | 0x0008 (8) | table field `offset` (UShort) + +0x345E | 04 00 | uint16_t | 0x0004 (4) | table field `padding` (UShort) + +0x3460 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: 0x3474 | offset to field `name` (string) + +0x3464 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x3468 | offset to field `type` (table) table (reflection.Type): - +0x3468 | 8C FB FF FF | SOffset32 | 0xFFFFFB8C (-1140) Loc: +0x38DC | offset to vtable - +0x346C | 00 00 00 | uint8_t[3] | ... | padding - +0x346F | 0B | uint8_t | 0x0B (11) | table field `base_type` (Byte) - +0x3470 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x3468 | 8C FB FF FF | SOffset32 | 0xFFFFFB8C (-1140) Loc: 0x38DC | offset to vtable + +0x346C | 00 00 00 | uint8_t[3] | ... | padding + +0x346F | 0B | uint8_t | 0x0B (11) | table field `base_type` (Byte) + +0x3470 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x3474 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x3478 | 7A | char[1] | z | string literal - +0x3479 | 00 | char | 0x00 (0) | string terminator + +0x3474 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x3478 | 7A | char[1] | z | string literal + +0x3479 | 00 | char | 0x00 (0) | string terminator padding: - +0x347A | 00 00 | uint8_t[2] | .. | padding + +0x347A | 00 00 | uint8_t[2] | .. | padding vtable (reflection.Field): - +0x347C | 0C 00 | uint16_t | 0x000C (12) | size of this vtable - +0x347E | 10 00 | uint16_t | 0x0010 (16) | size of referring table - +0x3480 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0) - +0x3482 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `type` (id: 1) - +0x3484 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `id` (id: 2) - +0x3486 | 06 00 | VOffset16 | 0x0006 (6) | offset to field `offset` (id: 3) + +0x347C | 0C 00 | uint16_t | 0x000C (12) | size of this vtable + +0x347E | 10 00 | uint16_t | 0x0010 (16) | size of referring table + +0x3480 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0) + +0x3482 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `type` (id: 1) + +0x3484 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `id` (id: 2) + +0x3486 | 06 00 | VOffset16 | 0x0006 (6) | offset to field `offset` (id: 3) table (reflection.Field): - +0x3488 | 0C 00 00 00 | SOffset32 | 0x0000000C (12) Loc: +0x347C | offset to vtable - +0x348C | 01 00 | uint16_t | 0x0001 (1) | table field `id` (UShort) - +0x348E | 04 00 | uint16_t | 0x0004 (4) | table field `offset` (UShort) - +0x3490 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x34A4 | offset to field `name` (string) - +0x3494 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3498 | offset to field `type` (table) + +0x3488 | 0C 00 00 00 | SOffset32 | 0x0000000C (12) Loc: 0x347C | offset to vtable + +0x348C | 01 00 | uint16_t | 0x0001 (1) | table field `id` (UShort) + +0x348E | 04 00 | uint16_t | 0x0004 (4) | table field `offset` (UShort) + +0x3490 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: 0x34A4 | offset to field `name` (string) + +0x3494 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x3498 | offset to field `type` (table) table (reflection.Type): - +0x3498 | BC FB FF FF | SOffset32 | 0xFFFFFBBC (-1092) Loc: +0x38DC | offset to vtable - +0x349C | 00 00 00 | uint8_t[3] | ... | padding - +0x349F | 0B | uint8_t | 0x0B (11) | table field `base_type` (Byte) - +0x34A0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x3498 | BC FB FF FF | SOffset32 | 0xFFFFFBBC (-1092) Loc: 0x38DC | offset to vtable + +0x349C | 00 00 00 | uint8_t[3] | ... | padding + +0x349F | 0B | uint8_t | 0x0B (11) | table field `base_type` (Byte) + +0x34A0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x34A4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x34A8 | 79 | char[1] | y | string literal - +0x34A9 | 00 | char | 0x00 (0) | string terminator + +0x34A4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x34A8 | 79 | char[1] | y | string literal + +0x34A9 | 00 | char | 0x00 (0) | string terminator padding: - +0x34AA | 00 00 | uint8_t[2] | .. | padding + +0x34AA | 00 00 | uint8_t[2] | .. | padding table (reflection.Field): - +0x34AC | E4 FB FF FF | SOffset32 | 0xFFFFFBE4 (-1052) Loc: +0x38C8 | offset to vtable - +0x34B0 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x34C4 | offset to field `key` (string) - +0x34B4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x34B8 | offset to field `value` (string) - -string (reflection.Field.value): - +0x34B8 | DC FB FF FF | uint32_t | 0xFFFFFBDC (4294966236) | ERROR: length of string. Longer than the binary. + +0x34AC | E4 FB FF FF | SOffset32 | 0xFFFFFBE4 (-1052) Loc: 0x38C8 | offset to vtable + +0x34B0 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: 0x34C4 | offset to field `name` (string) + +0x34B4 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x34B8 | offset to field `type` (table) -unknown (no known references): - +0x34BC | 00 00 00 0B 01 00 00 00 | ?uint8_t[8] | ........ | WARN: nothing refers to this section. +table (reflection.Type): + +0x34B8 | DC FB FF FF | SOffset32 | 0xFFFFFBDC (-1060) Loc: 0x38DC | offset to vtable + +0x34BC | 00 00 00 | uint8_t[3] | ... | padding + +0x34BF | 0B | uint8_t | 0x0B (11) | table field `base_type` (Byte) + +0x34C0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) -string (reflection.Field.key): - +0x34C4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x34C8 | 78 | char[1] | x | string literal - +0x34C9 | 00 | char | 0x00 (0) | string terminator +string (reflection.Field.name): + +0x34C4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x34C8 | 78 | char[1] | x | string literal + +0x34C9 | 00 | char | 0x00 (0) | string terminator padding: - +0x34CA | 00 00 | uint8_t[2] | .. | padding + +0x34CA | 00 00 | uint8_t[2] | .. | padding vtable (reflection.Object): - +0x34CC | 14 00 | uint16_t | 0x0014 (20) | size of this vtable - +0x34CE | 18 00 | uint16_t | 0x0018 (24) | size of referring table - +0x34D0 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `name` (id: 0) - +0x34D2 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `fields` (id: 1) - +0x34D4 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `is_struct` (id: 2) (Bool) - +0x34D6 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `minalign` (id: 3) - +0x34D8 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `bytesize` (id: 4) (Int) - +0x34DA | 10 00 | VOffset16 | 0x0010 (16) | offset to field `attributes` (id: 5) - +0x34DC | 00 00 | VOffset16 | 0x0000 (0) | offset to field `documentation` (id: 6) (Vector) - +0x34DE | 14 00 | VOffset16 | 0x0014 (20) | offset to field `declaration_file` (id: 7) + +0x34CC | 14 00 | uint16_t | 0x0014 (20) | size of this vtable + +0x34CE | 18 00 | uint16_t | 0x0018 (24) | size of referring table + +0x34D0 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `name` (id: 0) + +0x34D2 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `fields` (id: 1) + +0x34D4 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `is_struct` (id: 2) (Bool) + +0x34D6 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `minalign` (id: 3) + +0x34D8 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `bytesize` (id: 4) (Int) + +0x34DA | 10 00 | VOffset16 | 0x0010 (16) | offset to field `attributes` (id: 5) + +0x34DC | 00 00 | VOffset16 | 0x0000 (0) | offset to field `documentation` (id: 6) (Vector) + +0x34DE | 14 00 | VOffset16 | 0x0014 (20) | offset to field `declaration_file` (id: 7) table (reflection.Object): - +0x34E0 | 14 00 00 00 | SOffset32 | 0x00000014 (20) Loc: +0x34CC | offset to vtable - +0x34E4 | 70 00 00 00 | UOffset32 | 0x00000070 (112) Loc: +0x3554 | offset to field `name` (string) - +0x34E8 | 64 00 00 00 | UOffset32 | 0x00000064 (100) Loc: +0x354C | offset to field `fields` (vector) - +0x34EC | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `minalign` (Int) - +0x34F0 | 08 00 00 00 | UOffset32 | 0x00000008 (8) Loc: +0x34F8 | offset to field `attributes` (vector) - +0x34F4 | F0 01 00 00 | UOffset32 | 0x000001F0 (496) Loc: +0x36E4 | offset to field `declaration_file` (string) + +0x34E0 | 14 00 00 00 | SOffset32 | 0x00000014 (20) Loc: 0x34CC | offset to vtable + +0x34E4 | 70 00 00 00 | UOffset32 | 0x00000070 (112) Loc: 0x3554 | offset to field `name` (string) + +0x34E8 | 64 00 00 00 | UOffset32 | 0x00000064 (100) Loc: 0x354C | offset to field `fields` (vector) + +0x34EC | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `minalign` (Int) + +0x34F0 | 08 00 00 00 | UOffset32 | 0x00000008 (8) Loc: 0x34F8 | offset to field `attributes` (vector) + +0x34F4 | F0 01 00 00 | UOffset32 | 0x000001F0 (496) Loc: 0x36E4 | offset to field `declaration_file` (string) vector (reflection.Object.attributes): - +0x34F8 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) - +0x34FC | 28 00 00 00 | UOffset32 | 0x00000028 (40) Loc: +0x3524 | offset to table[0] - +0x3500 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3504 | offset to table[1] + +0x34F8 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) + +0x34FC | 28 00 00 00 | UOffset32 | 0x00000028 (40) Loc: 0x3524 | offset to table[0] + +0x3500 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x3504 | offset to table[1] table (reflection.KeyValue): - +0x3504 | 3C FC FF FF | SOffset32 | 0xFFFFFC3C (-964) Loc: +0x38C8 | offset to vtable - +0x3508 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x3518 | offset to field `key` (string) - +0x350C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3510 | offset to field `value` (string) + +0x3504 | 3C FC FF FF | SOffset32 | 0xFFFFFC3C (-964) Loc: 0x38C8 | offset to vtable + +0x3508 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x3518 | offset to field `key` (string) + +0x350C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x3510 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x3510 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x3514 | 30 | char[1] | 0 | string literal - +0x3515 | 00 | char | 0x00 (0) | string terminator + +0x3510 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x3514 | 30 | char[1] | 0 | string literal + +0x3515 | 00 | char | 0x00 (0) | string terminator padding: - +0x3516 | 00 00 | uint8_t[2] | .. | padding + +0x3516 | 00 00 | uint8_t[2] | .. | padding string (reflection.KeyValue.key): - +0x3518 | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string - +0x351C | 70 72 69 76 61 74 65 | char[7] | private | string literal - +0x3523 | 00 | char | 0x00 (0) | string terminator + +0x3518 | 07 00 00 00 | uint32_t | 0x00000007 (7) | length of string + +0x351C | 70 72 69 76 61 74 65 | char[7] | private | string literal + +0x3523 | 00 | char | 0x00 (0) | string terminator table (reflection.KeyValue): - +0x3524 | 5C FC FF FF | SOffset32 | 0xFFFFFC5C (-932) Loc: +0x38C8 | offset to vtable - +0x3528 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x3538 | offset to field `key` (string) - +0x352C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3530 | offset to field `value` (string) + +0x3524 | 5C FC FF FF | SOffset32 | 0xFFFFFC5C (-932) Loc: 0x38C8 | offset to vtable + +0x3528 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x3538 | offset to field `key` (string) + +0x352C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x3530 | offset to field `value` (string) string (reflection.KeyValue.value): - +0x3530 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x3534 | 30 | char[1] | 0 | string literal - +0x3535 | 00 | char | 0x00 (0) | string terminator + +0x3530 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x3534 | 30 | char[1] | 0 | string literal + +0x3535 | 00 | char | 0x00 (0) | string terminator padding: - +0x3536 | 00 00 | uint8_t[2] | .. | padding + +0x3536 | 00 00 | uint8_t[2] | .. | padding string (reflection.KeyValue.key): - +0x3538 | 0E 00 00 00 | uint32_t | 0x0000000E (14) | length of string - +0x353C | 63 73 68 61 72 70 5F 70 | char[14] | csharp_p | string literal - +0x3544 | 61 72 74 69 61 6C | | artial - +0x354A | 00 | char | 0x00 (0) | string terminator + +0x3538 | 0E 00 00 00 | uint32_t | 0x0000000E (14) | length of string + +0x353C | 63 73 68 61 72 70 5F 70 | char[14] | csharp_p | string literal + +0x3544 | 61 72 74 69 61 6C | | artial + +0x354A | 00 | char | 0x00 (0) | string terminator vector (reflection.Object.fields): - +0x354C | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x3550 | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: +0x3590 | offset to table[0] + +0x354C | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x3550 | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: 0x3590 | offset to table[0] string (reflection.Object.name): - +0x3554 | 26 00 00 00 | uint32_t | 0x00000026 (38) | length of string - +0x3558 | 4D 79 47 61 6D 65 2E 45 | char[38] | MyGame.E | string literal - +0x3560 | 78 61 6D 70 6C 65 2E 54 | | xample.T - +0x3568 | 65 73 74 53 69 6D 70 6C | | estSimpl - +0x3570 | 65 54 61 62 6C 65 57 69 | | eTableWi - +0x3578 | 74 68 45 6E 75 6D | | thEnum - +0x357E | 00 | char | 0x00 (0) | string terminator + +0x3554 | 26 00 00 00 | uint32_t | 0x00000026 (38) | length of string + +0x3558 | 4D 79 47 61 6D 65 2E 45 | char[38] | MyGame.E | string literal + +0x3560 | 78 61 6D 70 6C 65 2E 54 | | xample.T + +0x3568 | 65 73 74 53 69 6D 70 6C | | estSimpl + +0x3570 | 65 54 61 62 6C 65 57 69 | | eTableWi + +0x3578 | 74 68 45 6E 75 6D | | thEnum + +0x357E | 00 | char | 0x00 (0) | string terminator padding: - +0x357F | 00 00 00 | uint8_t[3] | ... | padding + +0x357F | 00 00 00 | uint8_t[3] | ... | padding vtable (reflection.Field): - +0x3582 | 0E 00 | uint16_t | 0x000E (14) | size of this vtable - +0x3584 | 1C 00 | uint16_t | 0x001C (28) | size of referring table - +0x3586 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0) - +0x3588 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `type` (id: 1) - +0x358A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `id` (id: 2) (UShort) - +0x358C | 06 00 | VOffset16 | 0x0006 (6) | offset to field `offset` (id: 3) - +0x358E | 10 00 | VOffset16 | 0x0010 (16) | offset to field `default_integer` (id: 4) + +0x3582 | 0E 00 | uint16_t | 0x000E (14) | size of this vtable + +0x3584 | 1C 00 | uint16_t | 0x001C (28) | size of referring table + +0x3586 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0) + +0x3588 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `type` (id: 1) + +0x358A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `id` (id: 2) (UShort) + +0x358C | 06 00 | VOffset16 | 0x0006 (6) | offset to field `offset` (id: 3) + +0x358E | 10 00 | VOffset16 | 0x0010 (16) | offset to field `default_integer` (id: 4) table (reflection.Field): - +0x3590 | 0E 00 00 00 | SOffset32 | 0x0000000E (14) Loc: +0x3582 | offset to vtable - +0x3594 | 00 00 | uint8_t[2] | .. | padding - +0x3596 | 04 00 | uint16_t | 0x0004 (4) | table field `offset` (UShort) - +0x3598 | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: +0x35D0 | offset to field `name` (string) - +0x359C | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x35BC | offset to field `type` (table) - +0x35A0 | 02 00 00 00 00 00 00 00 | int64_t | 0x0000000000000002 (2) | table field `default_integer` (Long) - +0x35A8 | 00 00 00 00 | uint8_t[4] | .... | padding + +0x3590 | 0E 00 00 00 | SOffset32 | 0x0000000E (14) Loc: 0x3582 | offset to vtable + +0x3594 | 00 00 | uint8_t[2] | .. | padding + +0x3596 | 04 00 | uint16_t | 0x0004 (4) | table field `offset` (UShort) + +0x3598 | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: 0x35D0 | offset to field `name` (string) + +0x359C | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: 0x35BC | offset to field `type` (table) + +0x35A0 | 02 00 00 00 00 00 00 00 | int64_t | 0x0000000000000002 (2) | table field `default_integer` (Long) + +0x35A8 | 00 00 00 00 | uint8_t[4] | .... | padding vtable (reflection.Type): - +0x35AC | 10 00 | uint16_t | 0x0010 (16) | size of this vtable - +0x35AE | 14 00 | uint16_t | 0x0014 (20) | size of referring table - +0x35B0 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `base_type` (id: 0) - +0x35B2 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `element` (id: 1) (Byte) - +0x35B4 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `index` (id: 2) - +0x35B6 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `fixed_length` (id: 3) (UShort) - +0x35B8 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `base_size` (id: 4) - +0x35BA | 10 00 | VOffset16 | 0x0010 (16) | offset to field `element_size` (id: 5) + +0x35AC | 10 00 | uint16_t | 0x0010 (16) | size of this vtable + +0x35AE | 14 00 | uint16_t | 0x0014 (20) | size of referring table + +0x35B0 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `base_type` (id: 0) + +0x35B2 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `element` (id: 1) (Byte) + +0x35B4 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `index` (id: 2) + +0x35B6 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `fixed_length` (id: 3) (UShort) + +0x35B8 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `base_size` (id: 4) + +0x35BA | 10 00 | VOffset16 | 0x0010 (16) | offset to field `element_size` (id: 5) table (reflection.Type): - +0x35BC | 10 00 00 00 | SOffset32 | 0x00000010 (16) Loc: +0x35AC | offset to vtable - +0x35C0 | 00 00 00 | uint8_t[3] | ... | padding - +0x35C3 | 04 | uint8_t | 0x04 (4) | table field `base_type` (Byte) - +0x35C4 | 03 00 00 00 | uint32_t | 0x00000003 (3) | table field `index` (Int) - +0x35C8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) - +0x35CC | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x35BC | 10 00 00 00 | SOffset32 | 0x00000010 (16) Loc: 0x35AC | offset to vtable + +0x35C0 | 00 00 00 | uint8_t[3] | ... | padding + +0x35C3 | 04 | uint8_t | 0x04 (4) | table field `base_type` (Byte) + +0x35C4 | 03 00 00 00 | uint32_t | 0x00000003 (3) | table field `index` (Int) + +0x35C8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) + +0x35CC | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x35D0 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string - +0x35D4 | 63 6F 6C 6F 72 | char[5] | color | string literal - +0x35D9 | 00 | char | 0x00 (0) | string terminator + +0x35D0 | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string + +0x35D4 | 63 6F 6C 6F 72 | char[5] | color | string literal + +0x35D9 | 00 | char | 0x00 (0) | string terminator padding: - +0x35DA | 00 00 | uint8_t[2] | .. | padding + +0x35DA | 00 00 | uint8_t[2] | .. | padding table (reflection.Object): - +0x35DC | 9C FD FF FF | SOffset32 | 0xFFFFFD9C (-612) Loc: +0x3840 | offset to vtable - +0x35E0 | 00 00 00 | uint8_t[3] | ... | padding - +0x35E3 | 01 | uint8_t | 0x01 (1) | table field `is_struct` (Bool) - +0x35E4 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: +0x3604 | offset to field `name` (string) - +0x35E8 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x35F8 | offset to field `fields` (vector) - +0x35EC | 02 00 00 00 | uint32_t | 0x00000002 (2) | table field `minalign` (Int) - +0x35F0 | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `bytesize` (Int) - +0x35F4 | F0 00 00 00 | UOffset32 | 0x000000F0 (240) Loc: +0x36E4 | offset to field `declaration_file` (string) + +0x35DC | 9C FD FF FF | SOffset32 | 0xFFFFFD9C (-612) Loc: 0x3840 | offset to vtable + +0x35E0 | 00 00 00 | uint8_t[3] | ... | padding + +0x35E3 | 01 | uint8_t | 0x01 (1) | table field `is_struct` (Bool) + +0x35E4 | 20 00 00 00 | UOffset32 | 0x00000020 (32) Loc: 0x3604 | offset to field `name` (string) + +0x35E8 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x35F8 | offset to field `fields` (vector) + +0x35EC | 02 00 00 00 | uint32_t | 0x00000002 (2) | table field `minalign` (Int) + +0x35F0 | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `bytesize` (Int) + +0x35F4 | F0 00 00 00 | UOffset32 | 0x000000F0 (240) Loc: 0x36E4 | offset to field `declaration_file` (string) vector (reflection.Object.fields): - +0x35F8 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) - +0x35FC | 6C 00 00 00 | UOffset32 | 0x0000006C (108) Loc: +0x3668 | offset to table[0] - +0x3600 | 3C 00 00 00 | UOffset32 | 0x0000003C (60) Loc: +0x363C | offset to table[1] + +0x35F8 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) + +0x35FC | 6C 00 00 00 | UOffset32 | 0x0000006C (108) Loc: 0x3668 | offset to table[0] + +0x3600 | 3C 00 00 00 | UOffset32 | 0x0000003C (60) Loc: 0x363C | offset to table[1] string (reflection.Object.name): - +0x3604 | 13 00 00 00 | uint32_t | 0x00000013 (19) | length of string - +0x3608 | 4D 79 47 61 6D 65 2E 45 | char[19] | MyGame.E | string literal - +0x3610 | 78 61 6D 70 6C 65 2E 54 | | xample.T - +0x3618 | 65 73 74 | | est - +0x361B | 00 | char | 0x00 (0) | string terminator + +0x3604 | 13 00 00 00 | uint32_t | 0x00000013 (19) | length of string + +0x3608 | 4D 79 47 61 6D 65 2E 45 | char[19] | MyGame.E | string literal + +0x3610 | 78 61 6D 70 6C 65 2E 54 | | xample.T + +0x3618 | 65 73 74 | | est + +0x361B | 00 | char | 0x00 (0) | string terminator padding: - +0x361C | 00 00 | uint8_t[2] | .. | padding + +0x361C | 00 00 | uint8_t[2] | .. | padding vtable (reflection.Field): - +0x361E | 1E 00 | uint16_t | 0x001E (30) | size of this vtable - +0x3620 | 14 00 | uint16_t | 0x0014 (20) | size of referring table - +0x3622 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `name` (id: 0) - +0x3624 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `type` (id: 1) - +0x3626 | 06 00 | VOffset16 | 0x0006 (6) | offset to field `id` (id: 2) - +0x3628 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `offset` (id: 3) - +0x362A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) (Long) - +0x362C | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) (Double) - +0x362E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) - +0x3630 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) (Bool) - +0x3632 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 8) (Bool) - +0x3634 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `attributes` (id: 9) (Vector) - +0x3636 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `documentation` (id: 10) (Vector) - +0x3638 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `optional` (id: 11) (Bool) - +0x363A | 0A 00 | VOffset16 | 0x000A (10) | offset to field `padding` (id: 12) + +0x361E | 1E 00 | uint16_t | 0x001E (30) | size of this vtable + +0x3620 | 14 00 | uint16_t | 0x0014 (20) | size of referring table + +0x3622 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `name` (id: 0) + +0x3624 | 10 00 | VOffset16 | 0x0010 (16) | offset to field `type` (id: 1) + +0x3626 | 06 00 | VOffset16 | 0x0006 (6) | offset to field `id` (id: 2) + +0x3628 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `offset` (id: 3) + +0x362A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) (Long) + +0x362C | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) (Double) + +0x362E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) + +0x3630 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) (Bool) + +0x3632 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 8) (Bool) + +0x3634 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `attributes` (id: 9) (Vector) + +0x3636 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `documentation` (id: 10) (Vector) + +0x3638 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `optional` (id: 11) (Bool) + +0x363A | 0A 00 | VOffset16 | 0x000A (10) | offset to field `padding` (id: 12) table (reflection.Field): - +0x363C | 1E 00 00 00 | SOffset32 | 0x0000001E (30) Loc: +0x361E | offset to vtable - +0x3640 | 00 00 | uint8_t[2] | .. | padding - +0x3642 | 01 00 | uint16_t | 0x0001 (1) | table field `id` (UShort) - +0x3644 | 02 00 | uint16_t | 0x0002 (2) | table field `offset` (UShort) - +0x3646 | 01 00 | uint16_t | 0x0001 (1) | table field `padding` (UShort) - +0x3648 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x3660 | offset to field `name` (string) - +0x364C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3650 | offset to field `type` (table) + +0x363C | 1E 00 00 00 | SOffset32 | 0x0000001E (30) Loc: 0x361E | offset to vtable + +0x3640 | 00 00 | uint8_t[2] | .. | padding + +0x3642 | 01 00 | uint16_t | 0x0001 (1) | table field `id` (UShort) + +0x3644 | 02 00 | uint16_t | 0x0002 (2) | table field `offset` (UShort) + +0x3646 | 01 00 | uint16_t | 0x0001 (1) | table field `padding` (UShort) + +0x3648 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: 0x3660 | offset to field `name` (string) + +0x364C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x3650 | offset to field `type` (table) table (reflection.Type): - +0x3650 | DC FF FF FF | SOffset32 | 0xFFFFFFDC (-36) Loc: +0x3674 | offset to vtable - +0x3654 | 00 00 00 | uint8_t[3] | ... | padding - +0x3657 | 03 | uint8_t | 0x03 (3) | table field `base_type` (Byte) - +0x3658 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) - +0x365C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x3650 | DC FF FF FF | SOffset32 | 0xFFFFFFDC (-36) Loc: 0x3674 | offset to vtable + +0x3654 | 00 00 00 | uint8_t[3] | ... | padding + +0x3657 | 03 | uint8_t | 0x03 (3) | table field `base_type` (Byte) + +0x3658 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `base_size` (UInt) + +0x365C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x3660 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x3664 | 62 | char[1] | b | string literal - +0x3665 | 00 | char | 0x00 (0) | string terminator + +0x3660 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x3664 | 62 | char[1] | b | string literal + +0x3665 | 00 | char | 0x00 (0) | string terminator padding: - +0x3666 | 00 00 | uint8_t[2] | .. | padding + +0x3666 | 00 00 | uint8_t[2] | .. | padding table (reflection.Field): - +0x3668 | A0 FD FF FF | SOffset32 | 0xFFFFFDA0 (-608) Loc: +0x38C8 | offset to vtable - +0x366C | 28 00 00 00 | UOffset32 | 0x00000028 (40) Loc: +0x3694 | offset to field `key` (string) - +0x3670 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x3684 | offset to field `value` (string) + +0x3668 | A0 FD FF FF | SOffset32 | 0xFFFFFDA0 (-608) Loc: 0x38C8 | offset to vtable + +0x366C | 28 00 00 00 | UOffset32 | 0x00000028 (40) Loc: 0x3694 | offset to field `name` (string) + +0x3670 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: 0x3684 | offset to field `type` (table) vtable (reflection.Type): - +0x3674 | 10 00 | uint16_t | 0x0010 (16) | size of this vtable - +0x3676 | 10 00 | uint16_t | 0x0010 (16) | size of referring table - +0x3678 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `base_type` (id: 0) - +0x367A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `element` (id: 1) (Byte) - +0x367C | 00 00 | VOffset16 | 0x0000 (0) | offset to field `index` (id: 2) (Int) - +0x367E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `fixed_length` (id: 3) (UShort) - +0x3680 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `base_size` (id: 4) - +0x3682 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `element_size` (id: 5) + +0x3674 | 10 00 | uint16_t | 0x0010 (16) | size of this vtable + +0x3676 | 10 00 | uint16_t | 0x0010 (16) | size of referring table + +0x3678 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `base_type` (id: 0) + +0x367A | 00 00 | VOffset16 | 0x0000 (0) | offset to field `element` (id: 1) (Byte) + +0x367C | 00 00 | VOffset16 | 0x0000 (0) | offset to field `index` (id: 2) (Int) + +0x367E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `fixed_length` (id: 3) (UShort) + +0x3680 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `base_size` (id: 4) + +0x3682 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `element_size` (id: 5) -string (reflection.Field.value): - +0x3684 | 10 00 00 00 | uint32_t | 0x00000010 (16) | length of string - +0x3688 | 00 00 00 05 02 00 00 00 | char[16] |  | string literal - +0x3690 | 01 00 00 00 01 00 00 00 | |  - +0x3698 | 61 | char | 0x61 (97) | string terminator +table (reflection.Type): + +0x3684 | 10 00 00 00 | SOffset32 | 0x00000010 (16) Loc: 0x3674 | offset to vtable + +0x3688 | 00 00 00 | uint8_t[3] | ... | padding + +0x368B | 05 | uint8_t | 0x05 (5) | table field `base_type` (Byte) + +0x368C | 02 00 00 00 | uint32_t | 0x00000002 (2) | table field `base_size` (UInt) + +0x3690 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) -string (reflection.Field.key): - +0x3694 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x3698 | 61 | char[1] | a | string literal - +0x3699 | 00 | char | 0x00 (0) | string terminator +string (reflection.Field.name): + +0x3694 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x3698 | 61 | char[1] | a | string literal + +0x3699 | 00 | char | 0x00 (0) | string terminator padding: - +0x369A | 00 00 | uint8_t[2] | .. | padding + +0x369A | 00 00 | uint8_t[2] | .. | padding table (reflection.Object): - +0x369C | 04 FF FF FF | SOffset32 | 0xFFFFFF04 (-252) Loc: +0x3798 | offset to vtable - +0x36A0 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x36B4 | offset to field `name` (string) - +0x36A4 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x36B0 | offset to field `fields` (vector) - +0x36A8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `minalign` (Int) - +0x36AC | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: +0x36E4 | offset to field `declaration_file` (string) + +0x369C | 04 FF FF FF | SOffset32 | 0xFFFFFF04 (-252) Loc: 0x3798 | offset to vtable + +0x36A0 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: 0x36B4 | offset to field `name` (string) + +0x36A4 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: 0x36B0 | offset to field `fields` (vector) + +0x36A8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `minalign` (Int) + +0x36AC | 38 00 00 00 | UOffset32 | 0x00000038 (56) Loc: 0x36E4 | offset to field `declaration_file` (string) vector (reflection.Object.fields): - +0x36B0 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x36B0 | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) string (reflection.Object.name): - +0x36B4 | 17 00 00 00 | uint32_t | 0x00000017 (23) | length of string - +0x36B8 | 4D 79 47 61 6D 65 2E 45 | char[23] | MyGame.E | string literal - +0x36C0 | 78 61 6D 70 6C 65 32 2E | | xample2. - +0x36C8 | 4D 6F 6E 73 74 65 72 | | Monster - +0x36CF | 00 | char | 0x00 (0) | string terminator + +0x36B4 | 17 00 00 00 | uint32_t | 0x00000017 (23) | length of string + +0x36B8 | 4D 79 47 61 6D 65 2E 45 | char[23] | MyGame.E | string literal + +0x36C0 | 78 61 6D 70 6C 65 32 2E | | xample2. + +0x36C8 | 4D 6F 6E 73 74 65 72 | | Monster + +0x36CF | 00 | char | 0x00 (0) | string terminator table (reflection.Object): - +0x36D0 | 38 FF FF FF | SOffset32 | 0xFFFFFF38 (-200) Loc: +0x3798 | offset to vtable - +0x36D4 | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: +0x3700 | offset to field `name` (string) - +0x36D8 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x36FC | offset to field `fields` (vector) - +0x36DC | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `minalign` (Int) - +0x36E0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x36E4 | offset to field `declaration_file` (string) + +0x36D0 | 38 FF FF FF | SOffset32 | 0xFFFFFF38 (-200) Loc: 0x3798 | offset to vtable + +0x36D4 | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: 0x3700 | offset to field `name` (string) + +0x36D8 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: 0x36FC | offset to field `fields` (vector) + +0x36DC | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `minalign` (Int) + +0x36E0 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x36E4 | offset to field `declaration_file` (string) string (reflection.Object.declaration_file): - +0x36E4 | 12 00 00 00 | uint32_t | 0x00000012 (18) | length of string - +0x36E8 | 2F 2F 6D 6F 6E 73 74 65 | char[18] | //monste | string literal - +0x36F0 | 72 5F 74 65 73 74 2E 66 | | r_test.f - +0x36F8 | 62 73 | | bs - +0x36FA | 00 | char | 0x00 (0) | string terminator + +0x36E4 | 12 00 00 00 | uint32_t | 0x00000012 (18) | length of string + +0x36E8 | 2F 2F 6D 6F 6E 73 74 65 | char[18] | //monste | string literal + +0x36F0 | 72 5F 74 65 73 74 2E 66 | | r_test.f + +0x36F8 | 62 73 | | bs + +0x36FA | 00 | char | 0x00 (0) | string terminator vector (reflection.Object.fields): - +0x36FC | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) + +0x36FC | 00 00 00 00 | uint32_t | 0x00000000 (0) | length of vector (# items) string (reflection.Object.name): - +0x3700 | 18 00 00 00 | uint32_t | 0x00000018 (24) | length of string - +0x3704 | 4D 79 47 61 6D 65 2E 49 | char[24] | MyGame.I | string literal - +0x370C | 6E 50 61 72 65 6E 74 4E | | nParentN - +0x3714 | 61 6D 65 73 70 61 63 65 | | amespace - +0x371C | 00 | char | 0x00 (0) | string terminator + +0x3700 | 18 00 00 00 | uint32_t | 0x00000018 (24) | length of string + +0x3704 | 4D 79 47 61 6D 65 2E 49 | char[24] | MyGame.I | string literal + +0x370C | 6E 50 61 72 65 6E 74 4E | | nParentN + +0x3714 | 61 6D 65 73 70 61 63 65 | | amespace + +0x371C | 00 | char | 0x00 (0) | string terminator padding: - +0x371D | 00 00 00 | uint8_t[3] | ... | padding + +0x371D | 00 00 00 | uint8_t[3] | ... | padding table (reflection.Object): - +0x3720 | 88 FF FF FF | SOffset32 | 0xFFFFFF88 (-120) Loc: +0x3798 | offset to vtable - +0x3724 | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: +0x3764 | offset to field `name` (string) - +0x3728 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: +0x375C | offset to field `fields` (vector) - +0x372C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `minalign` (Int) - +0x3730 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3734 | offset to field `declaration_file` (string) + +0x3720 | 88 FF FF FF | SOffset32 | 0xFFFFFF88 (-120) Loc: 0x3798 | offset to vtable + +0x3724 | 40 00 00 00 | UOffset32 | 0x00000040 (64) Loc: 0x3764 | offset to field `name` (string) + +0x3728 | 34 00 00 00 | UOffset32 | 0x00000034 (52) Loc: 0x375C | offset to field `fields` (vector) + +0x372C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `minalign` (Int) + +0x3730 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x3734 | offset to field `declaration_file` (string) string (reflection.Object.declaration_file): - +0x3734 | 20 00 00 00 | uint32_t | 0x00000020 (32) | length of string - +0x3738 | 2F 2F 69 6E 63 6C 75 64 | char[32] | //includ | string literal - +0x3740 | 65 5F 74 65 73 74 2F 69 | | e_test/i - +0x3748 | 6E 63 6C 75 64 65 5F 74 | | nclude_t - +0x3750 | 65 73 74 31 2E 66 62 73 | | est1.fbs - +0x3758 | 00 | char | 0x00 (0) | string terminator + +0x3734 | 20 00 00 00 | uint32_t | 0x00000020 (32) | length of string + +0x3738 | 2F 2F 69 6E 63 6C 75 64 | char[32] | //includ | string literal + +0x3740 | 65 5F 74 65 73 74 2F 69 | | e_test/i + +0x3748 | 6E 63 6C 75 64 65 5F 74 | | nclude_t + +0x3750 | 65 73 74 31 2E 66 62 73 | | est1.fbs + +0x3758 | 00 | char | 0x00 (0) | string terminator padding: - +0x3759 | 00 00 00 | uint8_t[3] | ... | padding + +0x3759 | 00 00 00 | uint8_t[3] | ... | padding vector (reflection.Object.fields): - +0x375C | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x3760 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x3770 | offset to table[0] + +0x375C | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x3760 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x3770 | offset to table[0] string (reflection.Object.name): - +0x3764 | 06 00 00 00 | uint32_t | 0x00000006 (6) | length of string - +0x3768 | 54 61 62 6C 65 41 | char[6] | TableA | string literal - +0x376E | 00 | char | 0x00 (0) | string terminator + +0x3764 | 06 00 00 00 | uint32_t | 0x00000006 (6) | length of string + +0x3768 | 54 61 62 6C 65 41 | char[6] | TableA | string literal + +0x376E | 00 | char | 0x00 (0) | string terminator table (reflection.Field): - +0x3770 | 84 FF FF FF | SOffset32 | 0xFFFFFF84 (-124) Loc: +0x37EC | offset to vtable - +0x3774 | 00 | uint8_t[1] | . | padding - +0x3775 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x3776 | 04 00 | uint16_t | 0x0004 (4) | table field `offset` (UShort) - +0x3778 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x3790 | offset to field `name` (string) - +0x377C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3780 | offset to field `type` (table) + +0x3770 | 84 FF FF FF | SOffset32 | 0xFFFFFF84 (-124) Loc: 0x37EC | offset to vtable + +0x3774 | 00 | uint8_t[1] | . | padding + +0x3775 | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x3776 | 04 00 | uint16_t | 0x0004 (4) | table field `offset` (UShort) + +0x3778 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: 0x3790 | offset to field `name` (string) + +0x377C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x3780 | offset to field `type` (table) table (reflection.Type): - +0x3780 | 68 FF FF FF | SOffset32 | 0xFFFFFF68 (-152) Loc: +0x3818 | offset to vtable - +0x3784 | 00 00 00 | uint8_t[3] | ... | padding - +0x3787 | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) - +0x3788 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | table field `index` (Int) - +0x378C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x3780 | 68 FF FF FF | SOffset32 | 0xFFFFFF68 (-152) Loc: 0x3818 | offset to vtable + +0x3784 | 00 00 00 | uint8_t[3] | ... | padding + +0x3787 | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) + +0x3788 | 0C 00 00 00 | uint32_t | 0x0000000C (12) | table field `index` (Int) + +0x378C | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x3790 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x3794 | 62 | char[1] | b | string literal - +0x3795 | 00 | char | 0x00 (0) | string terminator + +0x3790 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x3794 | 62 | char[1] | b | string literal + +0x3795 | 00 | char | 0x00 (0) | string terminator padding: - +0x3796 | 00 00 | uint8_t[2] | .. | padding + +0x3796 | 00 00 | uint8_t[2] | .. | padding vtable (reflection.Object): - +0x3798 | 14 00 | uint16_t | 0x0014 (20) | size of this vtable - +0x379A | 14 00 | uint16_t | 0x0014 (20) | size of referring table - +0x379C | 04 00 | VOffset16 | 0x0004 (4) | offset to field `name` (id: 0) - +0x379E | 08 00 | VOffset16 | 0x0008 (8) | offset to field `fields` (id: 1) - +0x37A0 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `is_struct` (id: 2) (Bool) - +0x37A2 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `minalign` (id: 3) - +0x37A4 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `bytesize` (id: 4) (Int) - +0x37A6 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `attributes` (id: 5) (Vector) - +0x37A8 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `documentation` (id: 6) (Vector) - +0x37AA | 10 00 | VOffset16 | 0x0010 (16) | offset to field `declaration_file` (id: 7) + +0x3798 | 14 00 | uint16_t | 0x0014 (20) | size of this vtable + +0x379A | 14 00 | uint16_t | 0x0014 (20) | size of referring table + +0x379C | 04 00 | VOffset16 | 0x0004 (4) | offset to field `name` (id: 0) + +0x379E | 08 00 | VOffset16 | 0x0008 (8) | offset to field `fields` (id: 1) + +0x37A0 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `is_struct` (id: 2) (Bool) + +0x37A2 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `minalign` (id: 3) + +0x37A4 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `bytesize` (id: 4) (Int) + +0x37A6 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `attributes` (id: 5) (Vector) + +0x37A8 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `documentation` (id: 6) (Vector) + +0x37AA | 10 00 | VOffset16 | 0x0010 (16) | offset to field `declaration_file` (id: 7) table (reflection.Object): - +0x37AC | 14 00 00 00 | SOffset32 | 0x00000014 (20) Loc: +0x3798 | offset to vtable - +0x37B0 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: +0x37C8 | offset to field `name` (string) - +0x37B4 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x37C0 | offset to field `fields` (vector) - +0x37B8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `minalign` (Int) - +0x37BC | B4 00 00 00 | UOffset32 | 0x000000B4 (180) Loc: +0x3870 | offset to field `declaration_file` (string) + +0x37AC | 14 00 00 00 | SOffset32 | 0x00000014 (20) Loc: 0x3798 | offset to vtable + +0x37B0 | 18 00 00 00 | UOffset32 | 0x00000018 (24) Loc: 0x37C8 | offset to field `name` (string) + +0x37B4 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: 0x37C0 | offset to field `fields` (vector) + +0x37B8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `minalign` (Int) + +0x37BC | B4 00 00 00 | UOffset32 | 0x000000B4 (180) Loc: 0x3870 | offset to field `declaration_file` (string) vector (reflection.Object.fields): - +0x37C0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x37C4 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: +0x3808 | offset to table[0] + +0x37C0 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x37C4 | 44 00 00 00 | UOffset32 | 0x00000044 (68) Loc: 0x3808 | offset to table[0] string (reflection.Object.name): - +0x37C8 | 1C 00 00 00 | uint32_t | 0x0000001C (28) | length of string - +0x37CC | 4D 79 47 61 6D 65 2E 4F | char[28] | MyGame.O | string literal - +0x37D4 | 74 68 65 72 4E 61 6D 65 | | therName - +0x37DC | 53 70 61 63 65 2E 54 61 | | Space.Ta - +0x37E4 | 62 6C 65 42 | | bleB - +0x37E8 | 00 | char | 0x00 (0) | string terminator + +0x37C8 | 1C 00 00 00 | uint32_t | 0x0000001C (28) | length of string + +0x37CC | 4D 79 47 61 6D 65 2E 4F | char[28] | MyGame.O | string literal + +0x37D4 | 74 68 65 72 4E 61 6D 65 | | therName + +0x37DC | 53 70 61 63 65 2E 54 61 | | Space.Ta + +0x37E4 | 62 6C 65 42 | | bleB + +0x37E8 | 00 | char | 0x00 (0) | string terminator padding: - +0x37E9 | 00 00 00 | uint8_t[3] | ... | padding + +0x37E9 | 00 00 00 | uint8_t[3] | ... | padding vtable (reflection.Field): - +0x37EC | 1C 00 | uint16_t | 0x001C (28) | size of this vtable - +0x37EE | 10 00 | uint16_t | 0x0010 (16) | size of referring table - +0x37F0 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0) - +0x37F2 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `type` (id: 1) - +0x37F4 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `id` (id: 2) (UShort) - +0x37F6 | 06 00 | VOffset16 | 0x0006 (6) | offset to field `offset` (id: 3) - +0x37F8 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) (Long) - +0x37FA | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) (Double) - +0x37FC | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) - +0x37FE | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) (Bool) - +0x3800 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 8) (Bool) - +0x3802 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `attributes` (id: 9) (Vector) - +0x3804 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `documentation` (id: 10) (Vector) - +0x3806 | 05 00 | VOffset16 | 0x0005 (5) | offset to field `optional` (id: 11) + +0x37EC | 1C 00 | uint16_t | 0x001C (28) | size of this vtable + +0x37EE | 10 00 | uint16_t | 0x0010 (16) | size of referring table + +0x37F0 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0) + +0x37F2 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `type` (id: 1) + +0x37F4 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `id` (id: 2) (UShort) + +0x37F6 | 06 00 | VOffset16 | 0x0006 (6) | offset to field `offset` (id: 3) + +0x37F8 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_integer` (id: 4) (Long) + +0x37FA | 00 00 | VOffset16 | 0x0000 (0) | offset to field `default_real` (id: 5) (Double) + +0x37FC | 00 00 | VOffset16 | 0x0000 (0) | offset to field `deprecated` (id: 6) (Bool) + +0x37FE | 00 00 | VOffset16 | 0x0000 (0) | offset to field `required` (id: 7) (Bool) + +0x3800 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `key` (id: 8) (Bool) + +0x3802 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `attributes` (id: 9) (Vector) + +0x3804 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `documentation` (id: 10) (Vector) + +0x3806 | 05 00 | VOffset16 | 0x0005 (5) | offset to field `optional` (id: 11) table (reflection.Field): - +0x3808 | 1C 00 00 00 | SOffset32 | 0x0000001C (28) Loc: +0x37EC | offset to vtable - +0x380C | 00 | uint8_t[1] | . | padding - +0x380D | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) - +0x380E | 04 00 | uint16_t | 0x0004 (4) | table field `offset` (UShort) - +0x3810 | 28 00 00 00 | UOffset32 | 0x00000028 (40) Loc: +0x3838 | offset to field `name` (string) - +0x3814 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x3828 | offset to field `type` (table) + +0x3808 | 1C 00 00 00 | SOffset32 | 0x0000001C (28) Loc: 0x37EC | offset to vtable + +0x380C | 00 | uint8_t[1] | . | padding + +0x380D | 01 | uint8_t | 0x01 (1) | table field `optional` (Bool) + +0x380E | 04 00 | uint16_t | 0x0004 (4) | table field `offset` (UShort) + +0x3810 | 28 00 00 00 | UOffset32 | 0x00000028 (40) Loc: 0x3838 | offset to field `name` (string) + +0x3814 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: 0x3828 | offset to field `type` (table) vtable (reflection.Type): - +0x3818 | 10 00 | uint16_t | 0x0010 (16) | size of this vtable - +0x381A | 10 00 | uint16_t | 0x0010 (16) | size of referring table - +0x381C | 07 00 | VOffset16 | 0x0007 (7) | offset to field `base_type` (id: 0) - +0x381E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `element` (id: 1) (Byte) - +0x3820 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `index` (id: 2) - +0x3822 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `fixed_length` (id: 3) (UShort) - +0x3824 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `base_size` (id: 4) (UInt) - +0x3826 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `element_size` (id: 5) + +0x3818 | 10 00 | uint16_t | 0x0010 (16) | size of this vtable + +0x381A | 10 00 | uint16_t | 0x0010 (16) | size of referring table + +0x381C | 07 00 | VOffset16 | 0x0007 (7) | offset to field `base_type` (id: 0) + +0x381E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `element` (id: 1) (Byte) + +0x3820 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `index` (id: 2) + +0x3822 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `fixed_length` (id: 3) (UShort) + +0x3824 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `base_size` (id: 4) (UInt) + +0x3826 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `element_size` (id: 5) table (reflection.Type): - +0x3828 | 10 00 00 00 | SOffset32 | 0x00000010 (16) Loc: +0x3818 | offset to vtable - +0x382C | 00 00 00 | uint8_t[3] | ... | padding - +0x382F | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) - +0x3830 | 0E 00 00 00 | uint32_t | 0x0000000E (14) | table field `index` (Int) - +0x3834 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) + +0x3828 | 10 00 00 00 | SOffset32 | 0x00000010 (16) Loc: 0x3818 | offset to vtable + +0x382C | 00 00 00 | uint8_t[3] | ... | padding + +0x382F | 0F | uint8_t | 0x0F (15) | table field `base_type` (Byte) + +0x3830 | 0E 00 00 00 | uint32_t | 0x0000000E (14) | table field `index` (Int) + +0x3834 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) string (reflection.Field.name): - +0x3838 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x383C | 61 | char[1] | a | string literal - +0x383D | 00 | char | 0x00 (0) | string terminator + +0x3838 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x383C | 61 | char[1] | a | string literal + +0x383D | 00 | char | 0x00 (0) | string terminator padding: - +0x383E | 00 00 | uint8_t[2] | .. | padding + +0x383E | 00 00 | uint8_t[2] | .. | padding vtable (reflection.Object): - +0x3840 | 14 00 | uint16_t | 0x0014 (20) | size of this vtable - +0x3842 | 1C 00 | uint16_t | 0x001C (28) | size of referring table - +0x3844 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0) - +0x3846 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `fields` (id: 1) - +0x3848 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `is_struct` (id: 2) - +0x384A | 10 00 | VOffset16 | 0x0010 (16) | offset to field `minalign` (id: 3) - +0x384C | 14 00 | VOffset16 | 0x0014 (20) | offset to field `bytesize` (id: 4) - +0x384E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `attributes` (id: 5) (Vector) - +0x3850 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `documentation` (id: 6) (Vector) - +0x3852 | 18 00 | VOffset16 | 0x0018 (24) | offset to field `declaration_file` (id: 7) + +0x3840 | 14 00 | uint16_t | 0x0014 (20) | size of this vtable + +0x3842 | 1C 00 | uint16_t | 0x001C (28) | size of referring table + +0x3844 | 08 00 | VOffset16 | 0x0008 (8) | offset to field `name` (id: 0) + +0x3846 | 0C 00 | VOffset16 | 0x000C (12) | offset to field `fields` (id: 1) + +0x3848 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `is_struct` (id: 2) + +0x384A | 10 00 | VOffset16 | 0x0010 (16) | offset to field `minalign` (id: 3) + +0x384C | 14 00 | VOffset16 | 0x0014 (20) | offset to field `bytesize` (id: 4) + +0x384E | 00 00 | VOffset16 | 0x0000 (0) | offset to field `attributes` (id: 5) (Vector) + +0x3850 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `documentation` (id: 6) (Vector) + +0x3852 | 18 00 | VOffset16 | 0x0018 (24) | offset to field `declaration_file` (id: 7) table (reflection.Object): - +0x3854 | 14 00 00 00 | SOffset32 | 0x00000014 (20) Loc: +0x3840 | offset to vtable - +0x3858 | 00 00 00 | uint8_t[3] | ... | padding - +0x385B | 01 | uint8_t | 0x01 (1) | table field `is_struct` (Bool) - +0x385C | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: +0x38A4 | offset to field `name` (string) - +0x3860 | 3C 00 00 00 | UOffset32 | 0x0000003C (60) Loc: +0x389C | offset to field `fields` (vector) - +0x3864 | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `minalign` (Int) - +0x3868 | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `bytesize` (Int) - +0x386C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x3870 | offset to field `declaration_file` (string) + +0x3854 | 14 00 00 00 | SOffset32 | 0x00000014 (20) Loc: 0x3840 | offset to vtable + +0x3858 | 00 00 00 | uint8_t[3] | ... | padding + +0x385B | 01 | uint8_t | 0x01 (1) | table field `is_struct` (Bool) + +0x385C | 48 00 00 00 | UOffset32 | 0x00000048 (72) Loc: 0x38A4 | offset to field `name` (string) + +0x3860 | 3C 00 00 00 | UOffset32 | 0x0000003C (60) Loc: 0x389C | offset to field `fields` (vector) + +0x3864 | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `minalign` (Int) + +0x3868 | 04 00 00 00 | uint32_t | 0x00000004 (4) | table field `bytesize` (Int) + +0x386C | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x3870 | offset to field `declaration_file` (string) string (reflection.Object.declaration_file): - +0x3870 | 24 00 00 00 | uint32_t | 0x00000024 (36) | length of string - +0x3874 | 2F 2F 69 6E 63 6C 75 64 | char[36] | //includ | string literal - +0x387C | 65 5F 74 65 73 74 2F 73 | | e_test/s - +0x3884 | 75 62 2F 69 6E 63 6C 75 | | ub/inclu - +0x388C | 64 65 5F 74 65 73 74 32 | | de_test2 - +0x3894 | 2E 66 62 73 | | .fbs - +0x3898 | 00 | char | 0x00 (0) | string terminator + +0x3870 | 24 00 00 00 | uint32_t | 0x00000024 (36) | length of string + +0x3874 | 2F 2F 69 6E 63 6C 75 64 | char[36] | //includ | string literal + +0x387C | 65 5F 74 65 73 74 2F 73 | | e_test/s + +0x3884 | 75 62 2F 69 6E 63 6C 75 | | ub/inclu + +0x388C | 64 65 5F 74 65 73 74 32 | | de_test2 + +0x3894 | 2E 66 62 73 | | .fbs + +0x3898 | 00 | char | 0x00 (0) | string terminator padding: - +0x3899 | 00 00 00 | uint8_t[3] | ... | padding + +0x3899 | 00 00 00 | uint8_t[3] | ... | padding vector (reflection.Object.fields): - +0x389C | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) - +0x38A0 | 30 00 00 00 | UOffset32 | 0x00000030 (48) Loc: +0x38D0 | offset to table[0] + +0x389C | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of vector (# items) + +0x38A0 | 30 00 00 00 | UOffset32 | 0x00000030 (48) Loc: 0x38D0 | offset to table[0] string (reflection.Object.name): - +0x38A4 | 1C 00 00 00 | uint32_t | 0x0000001C (28) | length of string - +0x38A8 | 4D 79 47 61 6D 65 2E 4F | char[28] | MyGame.O | string literal - +0x38B0 | 74 68 65 72 4E 61 6D 65 | | therName - +0x38B8 | 53 70 61 63 65 2E 55 6E | | Space.Un - +0x38C0 | 75 73 65 64 | | used - +0x38C4 | 00 | char | 0x00 (0) | string terminator + +0x38A4 | 1C 00 00 00 | uint32_t | 0x0000001C (28) | length of string + +0x38A8 | 4D 79 47 61 6D 65 2E 4F | char[28] | MyGame.O | string literal + +0x38B0 | 74 68 65 72 4E 61 6D 65 | | therName + +0x38B8 | 53 70 61 63 65 2E 55 6E | | Space.Un + +0x38C0 | 75 73 65 64 | | used + +0x38C4 | 00 | char | 0x00 (0) | string terminator padding: - +0x38C5 | 00 00 00 | uint8_t[3] | ... | padding + +0x38C5 | 00 00 00 | uint8_t[3] | ... | padding -vtable (reflection.KeyValue): - +0x38C8 | 08 00 | uint16_t | 0x0008 (8) | size of this vtable - +0x38CA | 0C 00 | uint16_t | 0x000C (12) | size of referring table - +0x38CC | 04 00 | VOffset16 | 0x0004 (4) | offset to field `key` (id: 0) - +0x38CE | 08 00 | VOffset16 | 0x0008 (8) | offset to field `value` (id: 1) +vtable (reflection.KeyValue, reflection.Field, reflection.SchemaFile): + +0x38C8 | 08 00 | uint16_t | 0x0008 (8) | size of this vtable + +0x38CA | 0C 00 | uint16_t | 0x000C (12) | size of referring table + +0x38CC | 04 00 | VOffset16 | 0x0004 (4) | offset to field `key` (id: 0) + +0x38CE | 08 00 | VOffset16 | 0x0008 (8) | offset to field `value` (id: 1) table (reflection.Field): - +0x38D0 | 08 00 00 00 | SOffset32 | 0x00000008 (8) Loc: +0x38C8 | offset to vtable - +0x38D4 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: +0x38F8 | offset to field `key` (string) - +0x38D8 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x38EC | offset to field `value` (string) + +0x38D0 | 08 00 00 00 | SOffset32 | 0x00000008 (8) Loc: 0x38C8 | offset to vtable + +0x38D4 | 24 00 00 00 | UOffset32 | 0x00000024 (36) Loc: 0x38F8 | offset to field `name` (string) + +0x38D8 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: 0x38EC | offset to field `type` (table) vtable (reflection.Type): - +0x38DC | 10 00 | uint16_t | 0x0010 (16) | size of this vtable - +0x38DE | 0C 00 | uint16_t | 0x000C (12) | size of referring table - +0x38E0 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `base_type` (id: 0) - +0x38E2 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `element` (id: 1) (Byte) - +0x38E4 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `index` (id: 2) (Int) - +0x38E6 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `fixed_length` (id: 3) (UShort) - +0x38E8 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `base_size` (id: 4) (UInt) - +0x38EA | 08 00 | VOffset16 | 0x0008 (8) | offset to field `element_size` (id: 5) + +0x38DC | 10 00 | uint16_t | 0x0010 (16) | size of this vtable + +0x38DE | 0C 00 | uint16_t | 0x000C (12) | size of referring table + +0x38E0 | 07 00 | VOffset16 | 0x0007 (7) | offset to field `base_type` (id: 0) + +0x38E2 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `element` (id: 1) (Byte) + +0x38E4 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `index` (id: 2) (Int) + +0x38E6 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `fixed_length` (id: 3) (UShort) + +0x38E8 | 00 00 | VOffset16 | 0x0000 (0) | offset to field `base_size` (id: 4) (UInt) + +0x38EA | 08 00 | VOffset16 | 0x0008 (8) | offset to field `element_size` (id: 5) -string (reflection.Field.value): - +0x38EC | 10 00 00 00 | uint32_t | 0x00000010 (16) | ERROR: length of string. Longer than the binary. - -unknown (no known references): - +0x38F0 | 00 00 00 07 01 00 00 00 | ?uint8_t[8] | ........ | WARN: nothing refers to this section. +table (reflection.Type): + +0x38EC | 10 00 00 00 | SOffset32 | 0x00000010 (16) Loc: 0x38DC | offset to vtable + +0x38F0 | 00 00 00 | uint8_t[3] | ... | padding + +0x38F3 | 07 | uint8_t | 0x07 (7) | table field `base_type` (Byte) + +0x38F4 | 01 00 00 00 | uint32_t | 0x00000001 (1) | table field `element_size` (UInt) -string (reflection.Field.key): - +0x38F8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string - +0x38FC | 61 | char[1] | a | string literal - +0x38FD | 00 | char | 0x00 (0) | string terminator +string (reflection.Field.name): + +0x38F8 | 01 00 00 00 | uint32_t | 0x00000001 (1) | length of string + +0x38FC | 61 | char[1] | a | string literal + +0x38FD | 00 | char | 0x00 (0) | string terminator padding: - +0x38FE | 00 00 | uint8_t[2] | .. | padding + +0x38FE | 00 00 | uint8_t[2] | .. | padding diff --git a/tests/monsterdata_test.afb b/tests/monsterdata_test.afb index dab9191ec3..225ff43921 100644 --- a/tests/monsterdata_test.afb +++ b/tests/monsterdata_test.afb @@ -4,7 +4,7 @@ // Binary file: monsterdata_test.mon header: - +0x0000 | 78 00 00 00 | UOffset32 | 0x00000078 (120) Loc: +0x0078 | offset to root table `MyGame.Example.Monster` + +0x0000 | 78 00 00 00 | UOffset32 | 0x00000078 (120) Loc: 0x0078 | offset to root table `MyGame.Example.Monster` +0x0004 | 4D 4F 4E 53 | char[4] | MONS | File Identifier padding: @@ -67,7 +67,7 @@ vtable (MyGame.Example.Monster): +0x0076 | 6C 00 | VOffset16 | 0x006C (108) | offset to field `native_inline` (id: 51) root_table (MyGame.Example.Monster): - +0x0078 | 6C 00 00 00 | SOffset32 | 0x0000006C (108) Loc: +0x000C | offset to vtable + +0x0078 | 6C 00 00 00 | SOffset32 | 0x0000006C (108) Loc: 0x000C | offset to vtable +0x007C | 01 | UType8 | 0x01 (1) | table field `test_type` (UType) +0x007D | 01 | uint8_t | 0x01 (1) | table field `testbool` (Bool) +0x007E | 50 00 | int16_t | 0x0050 (80) | table field `hp` (Short) @@ -83,22 +83,22 @@ root_table (MyGame.Example.Monster): +0x009D | 00 | uint8_t[1] | . | padding +0x009E | 00 00 | uint8_t[2] | .. | padding +0x00A0 | 00 00 00 00 | uint8_t[4] | .... | padding - +0x00A4 | A4 01 00 00 | UOffset32 | 0x000001A4 (420) Loc: +0x0248 | offset to field `name` (string) - +0x00A8 | 94 01 00 00 | UOffset32 | 0x00000194 (404) Loc: +0x023C | offset to field `inventory` (vector) - +0x00AC | 2C 01 00 00 | UOffset32 | 0x0000012C (300) Loc: +0x01D8 | offset to field `test` (union of type `Monster`) - +0x00B0 | 10 01 00 00 | UOffset32 | 0x00000110 (272) Loc: +0x01C0 | offset to field `test4` (vector) - +0x00B4 | DC 00 00 00 | UOffset32 | 0x000000DC (220) Loc: +0x0190 | offset to field `testarrayofstring` (vector) - +0x00B8 | C4 00 00 00 | UOffset32 | 0x000000C4 (196) Loc: +0x017C | offset to field `enemy` (table) + +0x00A4 | A4 01 00 00 | UOffset32 | 0x000001A4 (420) Loc: 0x0248 | offset to field `name` (string) + +0x00A8 | 94 01 00 00 | UOffset32 | 0x00000194 (404) Loc: 0x023C | offset to field `inventory` (vector) + +0x00AC | 2C 01 00 00 | UOffset32 | 0x0000012C (300) Loc: 0x01D8 | offset to field `test` (union of type `Monster`) + +0x00B0 | 10 01 00 00 | UOffset32 | 0x00000110 (272) Loc: 0x01C0 | offset to field `test4` (vector) + +0x00B4 | DC 00 00 00 | UOffset32 | 0x000000DC (220) Loc: 0x0190 | offset to field `testarrayofstring` (vector) + +0x00B8 | C4 00 00 00 | UOffset32 | 0x000000C4 (196) Loc: 0x017C | offset to field `enemy` (table) +0x00BC | 41 C9 79 DD | uint32_t | 0xDD79C941 (3715746113) | table field `testhashs32_fnv1` (Int) +0x00C0 | 41 C9 79 DD | uint32_t | 0xDD79C941 (3715746113) | table field `testhashu32_fnv1` (UInt) +0x00C4 | 71 A4 81 8E | uint32_t | 0x8E81A471 (2390860913) | table field `testhashs32_fnv1a` (Int) +0x00C8 | 71 A4 81 8E | uint32_t | 0x8E81A471 (2390860913) | table field `testhashu32_fnv1a` (UInt) - +0x00CC | A8 00 00 00 | UOffset32 | 0x000000A8 (168) Loc: +0x0174 | offset to field `testarrayofbools` (vector) - +0x00D0 | 88 00 00 00 | UOffset32 | 0x00000088 (136) Loc: +0x0158 | offset to field `testarrayofsortedstruct` (vector) - +0x00D4 | E0 00 00 00 | UOffset32 | 0x000000E0 (224) Loc: +0x01B4 | offset to field `test5` (vector) - +0x00D8 | 34 01 00 00 | UOffset32 | 0x00000134 (308) Loc: +0x020C | offset to field `vector_of_longs` (vector) - +0x00DC | 10 01 00 00 | UOffset32 | 0x00000110 (272) Loc: +0x01EC | offset to field `vector_of_doubles` (vector) - +0x00E0 | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: +0x010C | offset to field `scalar_key_sorted_tables` (vector) + +0x00CC | A8 00 00 00 | UOffset32 | 0x000000A8 (168) Loc: 0x0174 | offset to field `testarrayofbools` (vector) + +0x00D0 | 88 00 00 00 | UOffset32 | 0x00000088 (136) Loc: 0x0158 | offset to field `testarrayofsortedstruct` (vector) + +0x00D4 | E0 00 00 00 | UOffset32 | 0x000000E0 (224) Loc: 0x01B4 | offset to field `test5` (vector) + +0x00D8 | 34 01 00 00 | UOffset32 | 0x00000134 (308) Loc: 0x020C | offset to field `vector_of_longs` (vector) + +0x00DC | 10 01 00 00 | UOffset32 | 0x00000110 (272) Loc: 0x01EC | offset to field `vector_of_doubles` (vector) + +0x00E0 | 2C 00 00 00 | UOffset32 | 0x0000002C (44) Loc: 0x010C | offset to field `scalar_key_sorted_tables` (vector) +0x00E4 | 01 00 | int16_t | 0x0001 (1) | struct field `native_inline.a` of 'MyGame.Example.Test' (Short) +0x00E6 | 02 | uint8_t | 0x02 (2) | struct field `native_inline.b` of 'MyGame.Example.Test' (Byte) +0x00E7 | 00 | uint8_t[1] | . | padding @@ -110,8 +110,8 @@ root_table (MyGame.Example.Monster): vector (MyGame.Example.Monster.scalar_key_sorted_tables): +0x010C | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) - +0x0110 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: +0x0120 | offset to table[0] - +0x0114 | 28 00 00 00 | UOffset32 | 0x00000028 (40) Loc: +0x013C | offset to table[1] + +0x0110 | 10 00 00 00 | UOffset32 | 0x00000010 (16) Loc: 0x0120 | offset to table[0] + +0x0114 | 28 00 00 00 | UOffset32 | 0x00000028 (40) Loc: 0x013C | offset to table[1] padding: +0x0118 | 00 00 | uint8_t[2] | .. | padding @@ -122,8 +122,8 @@ vtable (MyGame.Example.Stat): +0x011E | 04 00 | VOffset16 | 0x0004 (4) | offset to field `id` (id: 0) table (MyGame.Example.Stat): - +0x0120 | 06 00 00 00 | SOffset32 | 0x00000006 (6) Loc: +0x011A | offset to vtable - +0x0124 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x0128 | offset to field `id` (string) + +0x0120 | 06 00 00 00 | SOffset32 | 0x00000006 (6) Loc: 0x011A | offset to vtable + +0x0124 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x0128 | offset to field `id` (string) string (MyGame.Example.Stat.id): +0x0128 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string @@ -138,10 +138,10 @@ vtable (MyGame.Example.Stat): +0x013A | 06 00 | VOffset16 | 0x0006 (6) | offset to field `count` (id: 2) table (MyGame.Example.Stat): - +0x013C | 0A 00 00 00 | SOffset32 | 0x0000000A (10) Loc: +0x0132 | offset to vtable + +0x013C | 0A 00 00 00 | SOffset32 | 0x0000000A (10) Loc: 0x0132 | offset to vtable +0x0140 | 00 00 | uint8_t[2] | .. | padding +0x0142 | 01 00 | uint16_t | 0x0001 (1) | table field `count` (UShort) - +0x0144 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: +0x0150 | offset to field `id` (string) + +0x0144 | 0C 00 00 00 | UOffset32 | 0x0000000C (12) Loc: 0x0150 | offset to field `id` (string) +0x0148 | 0A 00 00 00 00 00 00 00 | int64_t | 0x000000000000000A (10) | table field `val` (Long) string (MyGame.Example.Stat.id): @@ -165,8 +165,8 @@ vector (MyGame.Example.Monster.testarrayofbools): +0x017A | 01 | uint8_t | 0x01 (1) | value[2] table (MyGame.Example.Monster): - +0x017C | B0 FF FF FF | SOffset32 | 0xFFFFFFB0 (-80) Loc: +0x01CC | offset to vtable - +0x0180 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x0184 | offset to field `name` (string) + +0x017C | B0 FF FF FF | SOffset32 | 0xFFFFFFB0 (-80) Loc: 0x01CC | offset to vtable + +0x0180 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x0184 | offset to field `name` (string) string (MyGame.Example.Monster.name): +0x0184 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string @@ -178,8 +178,8 @@ padding: vector (MyGame.Example.Monster.testarrayofstring): +0x0190 | 02 00 00 00 | uint32_t | 0x00000002 (2) | length of vector (# items) - +0x0194 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: +0x01A8 | offset to string[0] - +0x0198 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x019C | offset to string[1] + +0x0194 | 14 00 00 00 | UOffset32 | 0x00000014 (20) Loc: 0x01A8 | offset to string[0] + +0x0198 | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x019C | offset to string[1] string (MyGame.Example.Monster.testarrayofstring): +0x019C | 05 00 00 00 | uint32_t | 0x00000005 (5) | length of string @@ -224,8 +224,8 @@ vtable (MyGame.Example.Monster): +0x01D6 | 04 00 | VOffset16 | 0x0004 (4) | offset to field `name` (id: 3) table (MyGame.Example.Monster): - +0x01D8 | 0C 00 00 00 | SOffset32 | 0x0000000C (12) Loc: +0x01CC | offset to vtable - +0x01DC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: +0x01E0 | offset to field `name` (string) + +0x01D8 | 0C 00 00 00 | SOffset32 | 0x0000000C (12) Loc: 0x01CC | offset to vtable + +0x01DC | 04 00 00 00 | UOffset32 | 0x00000004 (4) Loc: 0x01E0 | offset to field `name` (string) string (MyGame.Example.Monster.name): +0x01E0 | 04 00 00 00 | uint32_t | 0x00000004 (4) | length of string From 5785784c8a7ab6ca380266e58ef327b13b6f46f2 Mon Sep 17 00:00:00 2001 From: Derek Bailey Date: Thu, 2 Feb 2023 15:57:55 -0800 Subject: [PATCH 113/571] proto_test.cpp don't warn about gaps --- tests/proto_test.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/tests/proto_test.cpp b/tests/proto_test.cpp index 1cef9960a6..b9fd10b072 100644 --- a/tests/proto_test.cpp +++ b/tests/proto_test.cpp @@ -43,6 +43,7 @@ void proto_test(const std::string &proto_path, const std::string &proto_file) { flatbuffers::IDLOptions opts; opts.include_dependence_headers = false; opts.proto_mode = true; + opts.proto_id_gap_action = IDLOptions::ProtoIdGapAction::NO_OP; // load the .proto and the golden file from disk std::string golden_file; @@ -59,6 +60,7 @@ void proto_test_id(const std::string &proto_path, opts.include_dependence_headers = false; opts.proto_mode = true; opts.keep_proto_id = true; + opts.proto_id_gap_action = IDLOptions::ProtoIdGapAction::NO_OP; // load the .proto and the golden file from disk std::string golden_file; @@ -76,6 +78,7 @@ void proto_test_union(const std::string &proto_path, opts.include_dependence_headers = false; opts.proto_mode = true; opts.proto_oneof_union = true; + opts.proto_id_gap_action = IDLOptions::ProtoIdGapAction::NO_OP; std::string golden_file; TEST_EQ(flatbuffers::LoadFile((proto_path + "test_union.golden.fbs").c_str(), @@ -92,6 +95,7 @@ void proto_test_union_id(const std::string &proto_path, opts.proto_mode = true; opts.proto_oneof_union = true; opts.keep_proto_id = true; + opts.proto_id_gap_action = IDLOptions::ProtoIdGapAction::NO_OP; std::string golden_file; TEST_EQ( @@ -108,6 +112,7 @@ void proto_test_union_suffix(const std::string &proto_path, opts.proto_mode = true; opts.proto_namespace_suffix = "test_namespace_suffix"; opts.proto_oneof_union = true; + opts.proto_id_gap_action = IDLOptions::ProtoIdGapAction::NO_OP; std::string golden_file; TEST_EQ(flatbuffers::LoadFile( @@ -125,6 +130,7 @@ void proto_test_union_suffix_id(const std::string &proto_path, opts.proto_namespace_suffix = "test_namespace_suffix"; opts.proto_oneof_union = true; opts.keep_proto_id = true; + opts.proto_id_gap_action = IDLOptions::ProtoIdGapAction::NO_OP; std::string golden_file; TEST_EQ(flatbuffers::LoadFile( @@ -140,6 +146,7 @@ void proto_test_include(const std::string &proto_path, flatbuffers::IDLOptions opts; opts.include_dependence_headers = true; opts.proto_mode = true; + opts.proto_id_gap_action = IDLOptions::ProtoIdGapAction::NO_OP; std::string golden_file; TEST_EQ( @@ -157,6 +164,7 @@ void proto_test_include_id(const std::string &proto_path, opts.include_dependence_headers = true; opts.proto_mode = true; opts.keep_proto_id = true; + opts.proto_id_gap_action = IDLOptions::ProtoIdGapAction::NO_OP; std::string golden_file; TEST_EQ( @@ -174,6 +182,7 @@ void proto_test_include_union(const std::string &proto_path, opts.include_dependence_headers = true; opts.proto_mode = true; opts.proto_oneof_union = true; + opts.proto_id_gap_action = IDLOptions::ProtoIdGapAction::NO_OP; std::string golden_file; TEST_EQ(flatbuffers::LoadFile( @@ -192,6 +201,7 @@ void proto_test_include_union_id(const std::string &proto_path, opts.proto_mode = true; opts.proto_oneof_union = true; opts.keep_proto_id = true; + opts.proto_id_gap_action = IDLOptions::ProtoIdGapAction::NO_OP; std::string golden_file; TEST_EQ(flatbuffers::LoadFile( From 02d7859f8b73b4994df003f380baa5c9c65ed78a Mon Sep 17 00:00:00 2001 From: Derek Bailey Date: Fri, 3 Feb 2023 17:33:04 -0600 Subject: [PATCH 114/571] explicitly declare enum values (#7811) --- include/flatbuffers/idl.h | 45 +++++++++++++++++++++------------------ src/idl_gen_swift.cpp | 2 +- 2 files changed, 25 insertions(+), 22 deletions(-) diff --git a/include/flatbuffers/idl.h b/include/flatbuffers/idl.h index 34f2993faa..7c96e38e03 100644 --- a/include/flatbuffers/idl.h +++ b/include/flatbuffers/idl.h @@ -45,26 +45,26 @@ namespace flatbuffers { // of type tokens. // clang-format off #define FLATBUFFERS_GEN_TYPES_SCALAR(TD) \ - TD(NONE, "", uint8_t, byte, byte, byte, uint8, u8, UByte, UInt8) \ - TD(UTYPE, "", uint8_t, byte, byte, byte, uint8, u8, UByte, UInt8) /* begin scalar/int */ \ - TD(BOOL, "bool", uint8_t, boolean,bool, bool, bool, bool, Boolean, Bool) \ - TD(CHAR, "byte", int8_t, byte, int8, sbyte, int8, i8, Byte, Int8) \ - TD(UCHAR, "ubyte", uint8_t, byte, byte, byte, uint8, u8, UByte, UInt8) \ - TD(SHORT, "short", int16_t, short, int16, short, int16, i16, Short, Int16) \ - TD(USHORT, "ushort", uint16_t, short, uint16, ushort, uint16, u16, UShort, UInt16) \ - TD(INT, "int", int32_t, int, int32, int, int32, i32, Int, Int32) \ - TD(UINT, "uint", uint32_t, int, uint32, uint, uint32, u32, UInt, UInt32) \ - TD(LONG, "long", int64_t, long, int64, long, int64, i64, Long, Int64) \ - TD(ULONG, "ulong", uint64_t, long, uint64, ulong, uint64, u64, ULong, UInt64) /* end int */ \ - TD(FLOAT, "float", float, float, float32, float, float32, f32, Float, Float32) /* begin float */ \ - TD(DOUBLE, "double", double, double, float64, double, float64, f64, Double, Double) /* end float/scalar */ + TD(NONE, "", uint8_t, byte, byte, byte, uint8, u8, UByte, UInt8, 0) \ + TD(UTYPE, "", uint8_t, byte, byte, byte, uint8, u8, UByte, UInt8, 1) /* begin scalar/int */ \ + TD(BOOL, "bool", uint8_t, boolean,bool, bool, bool, bool, Boolean, Bool, 2) \ + TD(CHAR, "byte", int8_t, byte, int8, sbyte, int8, i8, Byte, Int8, 3) \ + TD(UCHAR, "ubyte", uint8_t, byte, byte, byte, uint8, u8, UByte, UInt8, 4) \ + TD(SHORT, "short", int16_t, short, int16, short, int16, i16, Short, Int16, 5) \ + TD(USHORT, "ushort", uint16_t, short, uint16, ushort, uint16, u16, UShort, UInt16, 6) \ + TD(INT, "int", int32_t, int, int32, int, int32, i32, Int, Int32, 7) \ + TD(UINT, "uint", uint32_t, int, uint32, uint, uint32, u32, UInt, UInt32, 8) \ + TD(LONG, "long", int64_t, long, int64, long, int64, i64, Long, Int64, 9) \ + TD(ULONG, "ulong", uint64_t, long, uint64, ulong, uint64, u64, ULong, UInt64, 10) /* end int */ \ + TD(FLOAT, "float", float, float, float32, float, float32, f32, Float, Float32, 11) /* begin float */ \ + TD(DOUBLE, "double", double, double, float64, double, float64, f64, Double, Double, 12) /* end float/scalar */ #define FLATBUFFERS_GEN_TYPES_POINTER(TD) \ - TD(STRING, "string", Offset, int, int, StringOffset, int, unused, Int, Offset) \ - TD(VECTOR, "", Offset, int, int, VectorOffset, int, unused, Int, Offset) \ - TD(STRUCT, "", Offset, int, int, int, int, unused, Int, Offset) \ - TD(UNION, "", Offset, int, int, int, int, unused, Int, Offset) + TD(STRING, "string", Offset, int, int, StringOffset, int, unused, Int, Offset, 13) \ + TD(VECTOR, "", Offset, int, int, VectorOffset, int, unused, Int, Offset, 14) \ + TD(STRUCT, "", Offset, int, int, int, int, unused, Int, Offset, 15) \ + TD(UNION, "", Offset, int, int, int, int, unused, Int, Offset, 16) #define FLATBUFFERS_GEN_TYPE_ARRAY(TD) \ - TD(ARRAY, "", int, int, int, int, int, unused, Int, Offset) + TD(ARRAY, "", int, int, int, int, int, unused, Int, Offset, 17) // The fields are: // - enum // - FlatBuffers schema type. @@ -75,13 +75,15 @@ namespace flatbuffers { // - Python type. // - Kotlin type. // - Rust type. +// - Swift type. +// - enum value (matches the reflected values) // using these macros, we can now write code dealing with types just once, e.g. /* switch (type) { #define FLATBUFFERS_TD(ENUM, IDLTYPE, CTYPE, JTYPE, GTYPE, NTYPE, PTYPE, \ - RTYPE, KTYPE) \ + RTYPE, KTYPE, STYPE, ...) \ case BASE_TYPE_ ## ENUM: \ // do something specific to CTYPE here FLATBUFFERS_GEN_TYPES(FLATBUFFERS_TD) @@ -113,8 +115,9 @@ switch (type) { __extension__ // Stop GCC complaining about trailing comma with -Wpendantic. #endif enum BaseType { - #define FLATBUFFERS_TD(ENUM, ...) \ - BASE_TYPE_ ## ENUM, + #define FLATBUFFERS_TD(ENUM, IDLTYPE, \ + CTYPE, JTYPE, GTYPE, NTYPE, PTYPE, RTYPE, KTYPE, STYPE, ENUM_VALUE) \ + BASE_TYPE_ ## ENUM = ENUM_VALUE, FLATBUFFERS_GEN_TYPES(FLATBUFFERS_TD) #undef FLATBUFFERS_TD }; diff --git a/src/idl_gen_swift.cpp b/src/idl_gen_swift.cpp index d85b71839f..0bbaac1904 100644 --- a/src/idl_gen_swift.cpp +++ b/src/idl_gen_swift.cpp @@ -1881,7 +1881,7 @@ class SwiftGenerator : public BaseGenerator { // clang-format off static const char * const swift_type[] = { #define FLATBUFFERS_TD(ENUM, IDLTYPE, \ - CTYPE, JTYPE, GTYPE, NTYPE, PTYPE, RTYPE, KTYPE, STYPE) \ + CTYPE, JTYPE, GTYPE, NTYPE, PTYPE, RTYPE, KTYPE, STYPE, ...) \ #STYPE, FLATBUFFERS_GEN_TYPES(FLATBUFFERS_TD) #undef FLATBUFFERS_TD From f3a3f451597f7c280a2f755aa7c6bbcf540fa55a Mon Sep 17 00:00:00 2001 From: Derek Bailey Date: Sun, 5 Feb 2023 14:29:09 -0600 Subject: [PATCH 115/571] use switch statements for BASE_TYPE_ lookups (#7813) --- include/flatbuffers/idl.h | 25 +++++++++++++++++---- src/idl_gen_cpp.cpp | 47 ++++++++++++++++++++++----------------- src/idl_gen_fbs.cpp | 2 +- src/idl_parser.cpp | 29 +++++------------------- tests/fuzz_test.cpp | 2 +- 5 files changed, 56 insertions(+), 49 deletions(-) diff --git a/include/flatbuffers/idl.h b/include/flatbuffers/idl.h index 7c96e38e03..9ad6edcdd6 100644 --- a/include/flatbuffers/idl.h +++ b/include/flatbuffers/idl.h @@ -146,12 +146,29 @@ inline bool IsUnsigned(BaseType t) { (t == BASE_TYPE_ULONG); } -// clang-format on +inline size_t SizeOf(const BaseType t) { + switch (t) { + #define FLATBUFFERS_TD(ENUM, IDLTYPE, CTYPE, ...) \ + case BASE_TYPE_##ENUM: return sizeof(CTYPE); + FLATBUFFERS_GEN_TYPES(FLATBUFFERS_TD) + #undef FLATBUFFERS_TD + default: FLATBUFFERS_ASSERT(0); + } + return 0; +} -extern const char *const kTypeNames[]; -extern const char kTypeSizes[]; +inline const char* TypeName(const BaseType t) { + switch (t) { + #define FLATBUFFERS_TD(ENUM, IDLTYPE, ...) \ + case BASE_TYPE_##ENUM: return IDLTYPE; + FLATBUFFERS_GEN_TYPES(FLATBUFFERS_TD) + #undef FLATBUFFERS_TD + default: FLATBUFFERS_ASSERT(0); + } + return nullptr; +} -inline size_t SizeOf(BaseType t) { return kTypeSizes[t]; } +// clang-format on struct StructDef; struct EnumDef; diff --git a/src/idl_gen_cpp.cpp b/src/idl_gen_cpp.cpp index 90cc25fff0..1033a8954c 100644 --- a/src/idl_gen_cpp.cpp +++ b/src/idl_gen_cpp.cpp @@ -721,19 +721,20 @@ class CppGenerator : public BaseGenerator { // Return a C++ type from the table in idl.h std::string GenTypeBasic(const Type &type, bool user_facing_type) const { - // clang-format off - static const char *const ctypename[] = { - #define FLATBUFFERS_TD(ENUM, IDLTYPE, CTYPE, ...) \ - #CTYPE, - FLATBUFFERS_GEN_TYPES(FLATBUFFERS_TD) - #undef FLATBUFFERS_TD - }; - // clang-format on if (user_facing_type) { if (type.enum_def) return WrapInNameSpace(*type.enum_def); if (type.base_type == BASE_TYPE_BOOL) return "bool"; } - return ctypename[type.base_type]; + switch (type.base_type) { + // clang-format off + #define FLATBUFFERS_TD(ENUM, IDLTYPE, CTYPE, ...) \ + case BASE_TYPE_##ENUM: return #CTYPE; + FLATBUFFERS_GEN_TYPES(FLATBUFFERS_TD) + #undef FLATBUFFERS_TD + //clang-format on + default: FLATBUFFERS_ASSERT(0); + } + return ""; } // Return a C++ pointer type, specialized to the actual struct/table types, @@ -2262,11 +2263,14 @@ class CppGenerator : public BaseGenerator { const bool is_array = IsArray(curr_field->value.type); const bool is_struct = IsStruct(curr_field->value.type); - // If encouter a key field, call KeyCompareWithValue to compare this field. + // If encouter a key field, call KeyCompareWithValue to compare this + // field. if (curr_field->key) { - code_ += - space + "const auto {{RHS}} = {{RHS_PREFIX}}.{{CURR_FIELD_NAME}}();"; - code_ += space + "const auto {{CURR_FIELD_NAME}}_compare_result = {{LHS_PREFIX}}.KeyCompareWithValue({{RHS}});"; + code_ += space + + "const auto {{RHS}} = {{RHS_PREFIX}}.{{CURR_FIELD_NAME}}();"; + code_ += space + + "const auto {{CURR_FIELD_NAME}}_compare_result = " + "{{LHS_PREFIX}}.KeyCompareWithValue({{RHS}});"; code_ += space + "if ({{CURR_FIELD_NAME}}_compare_result != 0)"; code_ += space + " return {{CURR_FIELD_NAME}}_compare_result;"; @@ -2298,7 +2302,9 @@ class CppGenerator : public BaseGenerator { } else if (IsStruct(elem_type)) { if (curr_field->key) { - code_ += space + "const auto {{CURR_FIELD_NAME}}_compare_result = {{LHS_PREFIX}}.KeyCompareWithValue({{RHS}});"; + code_ += space + + "const auto {{CURR_FIELD_NAME}}_compare_result = " + "{{LHS_PREFIX}}.KeyCompareWithValue({{RHS}});"; code_ += space + "if ({{CURR_FIELD_NAME}}_compare_result != 0)"; code_ += space + " return {{CURR_FIELD_NAME}}_compare_result;"; continue; @@ -2331,7 +2337,7 @@ class CppGenerator : public BaseGenerator { code_ += " return *{{FIELD_NAME}}() < *o->{{FIELD_NAME}}();"; } else if (is_array || is_struct) { code_ += " return KeyCompareWithValue(o->{{FIELD_NAME}}()) < 0;"; - }else { + } else { code_ += " return {{FIELD_NAME}}() < o->{{FIELD_NAME}}();"; } code_ += " }"; @@ -2343,8 +2349,8 @@ class CppGenerator : public BaseGenerator { } else if (is_array) { const auto &elem_type = field.value.type.VectorType(); std::string input_type = "::flatbuffers::Array<" + - GenTypeGet(elem_type, "", "", "", false) + - ", " + NumToString(elem_type.fixed_length) + ">"; + GenTypeGet(elem_type, "", "", "", false) + ", " + + NumToString(elem_type.fixed_length) + ">"; code_.SetValue("INPUT_TYPE", input_type); code_ += " int KeyCompareWithValue(const {{INPUT_TYPE}} *_{{FIELD_NAME}}" @@ -2367,7 +2373,8 @@ class CppGenerator : public BaseGenerator { " const auto &lhs_{{FIELD_NAME}} = " "*(curr_{{FIELD_NAME}}->Get(i));"; code_ += - " const auto &rhs_{{FIELD_NAME}} = *(_{{FIELD_NAME}}->Get(i));"; + " const auto &rhs_{{FIELD_NAME}} = " + "*(_{{FIELD_NAME}}->Get(i));"; GenComparatorForStruct(*elem_type.struct_def, 6, "lhs_" + code_.GetValue("FIELD_NAME"), "rhs_" + code_.GetValue("FIELD_NAME")); @@ -3980,8 +3987,8 @@ class CppCodeGenerator : public CodeGenerator { // Generate code from the provided `buffer` of given `length`. The buffer is a // serialized reflection.fbs. Status GenerateCode(const uint8_t *buffer, int64_t length) override { - (void) buffer; - (void) length; + (void)buffer; + (void)length; return Status::NOT_IMPLEMENTED; } diff --git a/src/idl_gen_fbs.cpp b/src/idl_gen_fbs.cpp index 7fcfd17b39..d8db7d4ffb 100644 --- a/src/idl_gen_fbs.cpp +++ b/src/idl_gen_fbs.cpp @@ -37,7 +37,7 @@ static std::string GenType(const Type &type, bool underlying = false) { return type.enum_def->defined_namespace->GetFullyQualifiedName( type.enum_def->name); } else { - return kTypeNames[type.base_type]; + return TypeName(type.base_type); } } } diff --git a/src/idl_parser.cpp b/src/idl_parser.cpp index 3e0c9f3b21..084506460e 100644 --- a/src/idl_parser.cpp +++ b/src/idl_parser.cpp @@ -356,23 +356,6 @@ template static void AssignIndices(const std::vector &defvec) { } // namespace -// clang-format off -const char *const kTypeNames[] = { - #define FLATBUFFERS_TD(ENUM, IDLTYPE, ...) \ - IDLTYPE, - FLATBUFFERS_GEN_TYPES(FLATBUFFERS_TD) - #undef FLATBUFFERS_TD - nullptr -}; - -const char kTypeSizes[] = { - #define FLATBUFFERS_TD(ENUM, IDLTYPE, CTYPE, ...) \ - sizeof(CTYPE), - FLATBUFFERS_GEN_TYPES(FLATBUFFERS_TD) - #undef FLATBUFFERS_TD -}; -// clang-format on - void Parser::Message(const std::string &msg) { if (!error_.empty()) error_ += "\n"; // log all warnings and errors error_ += file_being_parsed_.length() ? AbsolutePath(file_being_parsed_) : ""; @@ -1947,8 +1930,8 @@ CheckedError Parser::ParseFunction(const std::string *name, Value &e) { const auto functionname = attribute_; if (!IsFloat(e.type.base_type)) { return Error(functionname + ": type of argument mismatch, expecting: " + - kTypeNames[BASE_TYPE_DOUBLE] + - ", found: " + kTypeNames[e.type.base_type] + + TypeName(BASE_TYPE_DOUBLE) + + ", found: " + TypeName(e.type.base_type) + ", name: " + (name ? *name : "") + ", value: " + e.constant); } NEXT(); @@ -1994,8 +1977,8 @@ CheckedError Parser::TryTypedValue(const std::string *name, int dtoken, e.type.base_type = req; } else { return Error(std::string("type mismatch: expecting: ") + - kTypeNames[e.type.base_type] + - ", found: " + kTypeNames[req] + + TypeName(e.type.base_type) + + ", found: " + TypeName(req) + ", name: " + (name ? *name : "") + ", value: " + e.constant); } } @@ -2056,7 +2039,7 @@ CheckedError Parser::ParseSingleValue(const std::string *name, Value &e, return Error( std::string("type mismatch or invalid value, an initializer of " "non-string field must be trivial ASCII string: type: ") + - kTypeNames[in_type] + ", name: " + (name ? *name : "") + + TypeName(in_type) + ", name: " + (name ? *name : "") + ", value: " + attribute_); } @@ -2128,7 +2111,7 @@ CheckedError Parser::ParseSingleValue(const std::string *name, Value &e, if (!match) { std::string msg; msg += "Cannot assign token starting with '" + TokenToStringId(token_) + - "' to value of <" + std::string(kTypeNames[in_type]) + "> type."; + "' to value of <" + std::string(TypeName(in_type)) + "> type."; return Error(msg); } const auto match_type = e.type.base_type; // may differ from in_type diff --git a/tests/fuzz_test.cpp b/tests/fuzz_test.cpp index 060742466c..b0ba3cd308 100644 --- a/tests/fuzz_test.cpp +++ b/tests/fuzz_test.cpp @@ -234,7 +234,7 @@ void FuzzTest2() { break; default: // All the scalar types. - schema += flatbuffers::kTypeNames[base_type]; + schema += flatbuffers::TypeName(base_type); if (!deprecated) { // We want each instance to use its own random value. From 85aee1f5c31c84ba40aef763ed08ff6418d33601 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Harrtell?= Date: Mon, 6 Feb 2023 22:10:20 +0100 Subject: [PATCH 116/571] Simplify and fix TypeScript compilation output (#7815) * Simplify and fix TypeScript compilation output * Revert deps upgrade --- package.json | 12 ------------ tests/ts/TypeScriptTest.py | 4 +++- tsconfig.json | 4 ++-- tsconfig.mjs.json | 4 ++-- yarn.lock | 2 +- 5 files changed, 8 insertions(+), 18 deletions(-) diff --git a/package.json b/package.json index 7fcc40a2b6..4431df775e 100644 --- a/package.json +++ b/package.json @@ -11,18 +11,6 @@ ], "main": "js/flatbuffers.js", "module": "mjs/flatbuffers.js", - "exports": { - ".": { - "node": { - "import": "./mjs/flatbuffers.js", - "require": "./js/flatbuffers.js" - }, - "default": "./js/flatbuffers.js" - }, - "./js/flexbuffers.js": { - "default": "./js/flexbuffers.js" - } - }, "directories": { "doc": "docs", "test": "tests" diff --git a/tests/ts/TypeScriptTest.py b/tests/ts/TypeScriptTest.py index de607983ea..ae357ef09c 100755 --- a/tests/ts/TypeScriptTest.py +++ b/tests/ts/TypeScriptTest.py @@ -126,7 +126,9 @@ def esbuild(input, output): print("Running TypeScript Tests...") check_call(NODE_CMD + ["JavaScriptTest"]) -check_call(NODE_CMD + ["JavaScriptTestv1.cjs", "./monster_test_generated.cjs"]) check_call(NODE_CMD + ["JavaScriptUnionVectorTest"]) check_call(NODE_CMD + ["JavaScriptFlexBuffersTest"]) check_call(NODE_CMD + ["JavaScriptComplexArraysTest"]) + +print("Running old v1 TypeScript Tests...") +check_call(NODE_CMD + ["JavaScriptTestv1.cjs", "./monster_test_generated.cjs"]) diff --git a/tsconfig.json b/tsconfig.json index 1636255e79..a8c89f5ad0 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,7 +1,7 @@ { "compilerOptions": { - "target": "ES2020", - "module": "CommonJS", + "target": "es2020", + "module": "commonjs", "lib": ["ES2020", "DOM"], "declaration": true, "outDir": "./js", diff --git a/tsconfig.mjs.json b/tsconfig.mjs.json index 4c58d84925..20adaa38bb 100644 --- a/tsconfig.mjs.json +++ b/tsconfig.mjs.json @@ -1,7 +1,7 @@ { "compilerOptions": { - "target": "ES2020", - "module": "NodeNext", + "target": "es2020", + "module": "es2020", "lib": ["ES2020", "DOM"], "declaration": true, "outDir": "./mjs", diff --git a/yarn.lock b/yarn.lock index 0150fa9813..8b806a5443 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1169,4 +1169,4 @@ yallist@^4.0.0: yocto-queue@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" - integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== + integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== \ No newline at end of file From 535ead8d8c93d5f7bd5c5c0707d7cb8e58afb34f Mon Sep 17 00:00:00 2001 From: Derek Bailey Date: Mon, 6 Feb 2023 23:42:44 -0600 Subject: [PATCH 117/571] [Annotated Buffers] Improve efficiency (#7820) * AnnotatedBinaryTextGen switch to ofstream instead of building giant string * Add --annotate-sparse-vectors to reduce AFB size --- include/flatbuffers/flatc.h | 4 +- src/annotated_binary_text_gen.cpp | 161 ++++++++++++++++-------------- src/annotated_binary_text_gen.h | 3 + src/flatc.cpp | 24 +++-- 4 files changed, 107 insertions(+), 85 deletions(-) diff --git a/include/flatbuffers/flatc.h b/include/flatbuffers/flatc.h index a8fa950877..e6227d6405 100644 --- a/include/flatbuffers/flatc.h +++ b/include/flatbuffers/flatc.h @@ -49,6 +49,7 @@ struct FlatCOptions { size_t binary_files_from = std::numeric_limits::max(); std::string conform_to_schema; std::string annotate_schema; + bool annotate_include_vector_contents = true; bool any_generator = false; bool print_make_rules = false; bool raw_binary = false; @@ -110,8 +111,7 @@ class FlatCompiler { void AnnotateBinaries(const uint8_t *binary_schema, uint64_t binary_schema_size, - const std::string &schema_filename, - const std::vector &binary_files); + const FlatCOptions &options); void ValidateOptions(const FlatCOptions &options); diff --git a/src/annotated_binary_text_gen.cpp b/src/annotated_binary_text_gen.cpp index 822d76ea19..43c62496e9 100644 --- a/src/annotated_binary_text_gen.cpp +++ b/src/annotated_binary_text_gen.cpp @@ -1,6 +1,8 @@ #include "annotated_binary_text_gen.h" #include +#include +#include #include #include @@ -21,6 +23,8 @@ struct OutputConfig { size_t offset_max_char = 4; char delimiter = '|'; + + bool include_vector_contents = true; }; static std::string ToString(const BinarySectionType type) { @@ -83,7 +87,7 @@ static std::string ToValueString(const BinaryRegion ®ion, if (region.array_length) { if (region.type == BinaryRegionType::Uint8 || region.type == BinaryRegionType::Unknown) { - // Interpet each value as a ASCII to aid debugging + // Interpret each value as a ASCII to aid debugging for (uint64_t i = 0; i < region.array_length; ++i) { const uint8_t c = *(binary + region.offset + i); s += isprint(c) ? static_cast(c & 0x7F) : '.'; @@ -257,84 +261,74 @@ static std::string GenerateComment(const BinaryRegionComment &comment, return s; } -static std::string GenerateDocumentation(const BinaryRegion ®ion, - const BinarySection §ion, - const uint8_t *binary, - DocContinuation &continuation, - const OutputConfig &output_config) { - std::string s; - +static void GenerateDocumentation(std::ostream &os, const BinaryRegion ®ion, + const BinarySection §ion, + const uint8_t *binary, + DocContinuation &continuation, + const OutputConfig &output_config) { // Check if there is a doc continuation that should be prioritized. if (continuation.value_start_column) { - s += std::string(continuation.value_start_column - 2, ' '); - s += output_config.delimiter; - s += " "; + os << std::string(continuation.value_start_column - 2, ' '); + os << output_config.delimiter << " "; - s += continuation.value.substr(0, output_config.max_bytes_per_line); + os << continuation.value.substr(0, output_config.max_bytes_per_line); continuation.value = continuation.value.substr( std::min(output_config.max_bytes_per_line, continuation.value.size())); - return s; + return; } + size_t size_of = 0; { std::stringstream ss; - ss << std::setw(static_cast(output_config.largest_type_string)) << std::left; + ss << std::setw(static_cast(output_config.largest_type_string)) + << std::left; ss << GenerateTypeString(region); - s += ss.str(); + os << ss.str(); + size_of = ss.str().size(); } - s += " "; - s += output_config.delimiter; - s += " "; + os << " " << output_config.delimiter << " "; if (region.array_length) { // Record where the value is first being outputted. - continuation.value_start_column = s.size(); + continuation.value_start_column = 3 + size_of; // Get the full-length value, which we will chunk below. const std::string value = ToValueString(region, binary, output_config); std::stringstream ss; - ss << std::setw(static_cast(output_config.largest_value_string)) << std::left; + ss << std::setw(static_cast(output_config.largest_value_string)) + << std::left; ss << value.substr(0, output_config.max_bytes_per_line); - s += ss.str(); + os << ss.str(); continuation.value = value.substr(std::min(output_config.max_bytes_per_line, value.size())); } else { std::stringstream ss; - ss << std::setw(static_cast(output_config.largest_value_string)) << std::left; + ss << std::setw(static_cast(output_config.largest_value_string)) + << std::left; ss << ToValueString(region, binary, output_config); - s += ss.str(); + os << ss.str(); } - s += " "; - s += output_config.delimiter; - s += " "; - s += GenerateComment(region.comment, section); - - return s; + os << " " << output_config.delimiter << " "; + os << GenerateComment(region.comment, section); } -static std::string GenerateRegion(const BinaryRegion ®ion, - const BinarySection §ion, - const uint8_t *binary, - const OutputConfig &output_config) { - std::string s; +static void GenerateRegion(std::ostream &os, const BinaryRegion ®ion, + const BinarySection §ion, const uint8_t *binary, + const OutputConfig &output_config) { bool doc_generated = false; DocContinuation doc_continuation; for (uint64_t i = 0; i < region.length; ++i) { if ((i % output_config.max_bytes_per_line) == 0) { // Start a new line of output - s += '\n'; - s += " "; - s += "+0x"; - s += ToHex(region.offset + i, output_config.offset_max_char); - s += " "; - s += output_config.delimiter; + os << std::endl; + os << " +0x" << ToHex(region.offset + i, output_config.offset_max_char); + os << " " << output_config.delimiter; } // Add each byte - s += " "; - s += ToHex(binary[region.offset + i]); + os << " " << ToHex(binary[region.offset + i]); // Check for end of line or end of region conditions. if (((i + 1) % output_config.max_bytes_per_line == 0) || @@ -344,17 +338,16 @@ static std::string GenerateRegion(const BinaryRegion ®ion, // zero those out to align everything globally. for (uint64_t j = i + 1; (j % output_config.max_bytes_per_line) != 0; ++j) { - s += " "; + os << " "; } } - s += " "; - s += output_config.delimiter; + os << " " << output_config.delimiter; // This is the end of the first line or its the last byte of the region, // generate the end-of-line documentation. if (!doc_generated) { - s += " "; - s += GenerateDocumentation(region, section, binary, doc_continuation, - output_config); + os << " "; + GenerateDocumentation(os, region, section, binary, doc_continuation, + output_config); // If we have a value in the doc continuation, that means the doc is // being printed on multiple lines. @@ -362,22 +355,41 @@ static std::string GenerateRegion(const BinaryRegion ®ion, } } } - - return s; } -static std::string GenerateSection(const BinarySection §ion, - const uint8_t *binary, - const OutputConfig &output_config) { - std::string s; - s += "\n"; - s += ToString(section.type); - if (!section.name.empty()) { s += " (" + section.name + ")"; } - s += ":"; +static void GenerateSection(std::ostream &os, const BinarySection §ion, + const uint8_t *binary, + const OutputConfig &output_config) { + os << std::endl; + os << ToString(section.type); + if (!section.name.empty()) { os << " (" + section.name + ")"; } + os << ":"; + + // As a space saving measure, skip generating every vector element, just put + // the first and last elements in the output. Skip the whole thing if there + // are only two or fewer elements, as it doesn't save space. + if (section.type == BinarySectionType::Vector && + !output_config.include_vector_contents && section.regions.size() > 3) { + // Generate the length region which should be first. + GenerateRegion(os, section.regions[0], section, binary, output_config); + + // Generate the first element. + GenerateRegion(os, section.regions[1], section, binary, output_config); + + // Indicate that we omitted lines. + os << std::endl + << " <" << section.regions.size() - 2 << " regions omitted>"; + + // Generate the last element. + GenerateRegion(os, section.regions.back(), section, binary, output_config); + os << std::endl; + return; + } + for (const BinaryRegion ®ion : section.regions) { - s += GenerateRegion(region, section, binary, output_config); + GenerateRegion(os, region, section, binary, output_config); } - return s; + os << std::endl; } } // namespace @@ -385,6 +397,7 @@ bool AnnotatedBinaryTextGenerator::Generate( const std::string &filename, const std::string &schema_filename) { OutputConfig output_config; output_config.max_bytes_per_line = options_.max_bytes_per_line; + output_config.include_vector_contents = options_.include_vector_contents; // Given the length of the binary, we can calculate the maximum number of // characters to display in the offset hex: (i.e. 2 would lead to 0XFF being @@ -414,19 +427,6 @@ bool AnnotatedBinaryTextGenerator::Generate( } } - // Generate each of the binary sections - std::string s; - - s += "// Annotated Flatbuffer Binary\n"; - s += "//\n"; - s += "// Schema file: " + schema_filename + "\n"; - s += "// Binary file: " + filename + "\n"; - - for (const auto §ion : annotations_) { - s += GenerateSection(section.second, binary_, output_config); - s += "\n"; - } - // Modify the output filename. std::string output_filename = StripExtension(filename); output_filename += options_.output_postfix; @@ -434,7 +434,20 @@ bool AnnotatedBinaryTextGenerator::Generate( "." + (options_.output_extension.empty() ? GetExtension(filename) : options_.output_extension); - return SaveFile(output_filename.c_str(), s, false); + std::ofstream ofs(output_filename.c_str()); + + ofs << "// Annotated Flatbuffer Binary" << std::endl; + ofs << "//" << std::endl; + ofs << "// Schema file: " << schema_filename << std::endl; + ofs << "// Binary file: " << filename << std::endl; + + // Generate each of the binary sections + for (const auto §ion : annotations_) { + GenerateSection(ofs, section.second, binary_, output_config); + } + + ofs.close(); + return true; } } // namespace flatbuffers diff --git a/src/annotated_binary_text_gen.h b/src/annotated_binary_text_gen.h index 712c4527b3..a0806d88a0 100644 --- a/src/annotated_binary_text_gen.h +++ b/src/annotated_binary_text_gen.h @@ -41,6 +41,9 @@ class AnnotatedBinaryTextGenerator { // // Example: binary1.bin -> binary1.afb std::string output_extension = "afb"; + + // Controls. + bool include_vector_contents = true; }; explicit AnnotatedBinaryTextGenerator( diff --git a/src/flatc.cpp b/src/flatc.cpp index 7611464d4e..2da6bc4579 100644 --- a/src/flatc.cpp +++ b/src/flatc.cpp @@ -243,6 +243,7 @@ const static FlatCOption flatc_options[] = { "ts_entry_points." }, { "", "ts-entry-points", "", "Generate entry point typescript per namespace. Implies gen-all." }, + { "", "annotate-sparse-vectors", "", "Don't annotate every vector element."}, { "", "annotate", "SCHEMA", "Annotate the provided BINARY_FILE with the specified SCHEMA file." }, { "", "no-leak-private-annotation", "", @@ -371,11 +372,12 @@ std::string FlatCompiler::GetUsageString( return ss.str(); } -void FlatCompiler::AnnotateBinaries( - const uint8_t *binary_schema, const uint64_t binary_schema_size, - const std::string &schema_filename, - const std::vector &binary_files) { - for (const std::string &filename : binary_files) { +void FlatCompiler::AnnotateBinaries(const uint8_t *binary_schema, + const uint64_t binary_schema_size, + const FlatCOptions &options) { + const std::string &schema_filename = options.annotate_schema; + + for (const std::string &filename : options.filenames) { std::string binary_contents; if (!flatbuffers::LoadFile(filename.c_str(), true, &binary_contents)) { Warn("unable to load binary file: " + filename); @@ -391,13 +393,16 @@ void FlatCompiler::AnnotateBinaries( auto annotations = binary_annotator.Annotate(); + flatbuffers::AnnotatedBinaryTextGenerator::Options text_gen_opts; + text_gen_opts.include_vector_contents = + options.annotate_include_vector_contents; + // TODO(dbaileychess): Right now we just support a single text-based // output of the annotated binary schema, which we generate here. We // could output the raw annotations instead and have third-party tools // use them to generate their own output. flatbuffers::AnnotatedBinaryTextGenerator text_generator( - flatbuffers::AnnotatedBinaryTextGenerator::Options{}, annotations, - binary, binary_size); + text_gen_opts, annotations, binary, binary_size); text_generator.Generate(filename, schema_filename); } @@ -641,6 +646,8 @@ FlatCOptions FlatCompiler::ParseFromCommandLineArguments(int argc, opts.ts_no_import_ext = true; } else if (arg == "--no-leak-private-annotation") { opts.no_leak_private_annotations = true; + } else if (arg == "--annotate-sparse-vectors") { + options.annotate_include_vector_contents = false; } else if (arg == "--annotate") { if (++argi >= argc) Error("missing path following: " + arg, true); options.annotate_schema = flatbuffers::PosixPath(argv[argi]); @@ -939,8 +946,7 @@ int FlatCompiler::Compile(const FlatCOptions &options) { } // Annotate the provided files with the binary_schema. - AnnotateBinaries(binary_schema, binary_schema_size, options.annotate_schema, - options.filenames); + AnnotateBinaries(binary_schema, binary_schema_size, options); // We don't support doing anything else after annotating a binary. return 0; From 6af83a7d055a1f1a8698423455c66f26afed26f5 Mon Sep 17 00:00:00 2001 From: chrismue Date: Tue, 7 Feb 2023 06:47:39 +0100 Subject: [PATCH 118/571] Sample adjusted for Python3 (#7819) Co-authored-by: chrismue Co-authored-by: Derek Bailey --- samples/sample_binary.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/samples/sample_binary.py b/samples/sample_binary.py index cd250a9cf0..09a239c2d0 100644 --- a/samples/sample_binary.py +++ b/samples/sample_binary.py @@ -99,20 +99,20 @@ def main(): # Note: We did not set the `Mana` field explicitly, so we get a default value. assert monster.Mana() == 150 assert monster.Hp() == 300 - assert monster.Name() == 'Orc' + assert monster.Name() == b'Orc' assert monster.Color() == MyGame.Sample.Color.Color().Red assert monster.Pos().X() == 1.0 assert monster.Pos().Y() == 2.0 assert monster.Pos().Z() == 3.0 # Get and test the `inventory` FlatBuffer `vector`. - for i in xrange(monster.InventoryLength()): + for i in range(monster.InventoryLength()): assert monster.Inventory(i) == i # Get and test the `weapons` FlatBuffer `vector` of `table`s. - expected_weapon_names = ['Sword', 'Axe'] + expected_weapon_names = [b'Sword', b'Axe'] expected_weapon_damages = [3, 5] - for i in xrange(monster.WeaponsLength()): + for i in range(monster.WeaponsLength()): assert monster.Weapons(i).Name() == expected_weapon_names[i] assert monster.Weapons(i).Damage() == expected_weapon_damages[i] @@ -128,10 +128,10 @@ def main(): union_weapon = MyGame.Sample.Weapon.Weapon() union_weapon.Init(monster.Equipped().Bytes, monster.Equipped().Pos) - assert union_weapon.Name() == "Axe" + assert union_weapon.Name() == b"Axe" assert union_weapon.Damage() == 5 - print 'The FlatBuffer was successfully created and verified!' + print('The FlatBuffer was successfully created and verified!') if __name__ == '__main__': main() From 4c71f87619438a9bdf0001dbab9ef12370033698 Mon Sep 17 00:00:00 2001 From: Derek Bailey Date: Mon, 6 Feb 2023 22:08:09 -0800 Subject: [PATCH 119/571] fixed bad math for --annotate-sparse-vectors --- src/annotated_binary_text_gen.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/annotated_binary_text_gen.cpp b/src/annotated_binary_text_gen.cpp index 43c62496e9..1d44803e53 100644 --- a/src/annotated_binary_text_gen.cpp +++ b/src/annotated_binary_text_gen.cpp @@ -367,18 +367,18 @@ static void GenerateSection(std::ostream &os, const BinarySection §ion, // As a space saving measure, skip generating every vector element, just put // the first and last elements in the output. Skip the whole thing if there - // are only two or fewer elements, as it doesn't save space. + // are only three or fewer elements, as it doesn't save space. if (section.type == BinarySectionType::Vector && - !output_config.include_vector_contents && section.regions.size() > 3) { + !output_config.include_vector_contents && section.regions.size() > 4) { // Generate the length region which should be first. GenerateRegion(os, section.regions[0], section, binary, output_config); // Generate the first element. GenerateRegion(os, section.regions[1], section, binary, output_config); - // Indicate that we omitted lines. + // Indicate that we omitted elements. os << std::endl - << " <" << section.regions.size() - 2 << " regions omitted>"; + << " <" << section.regions.size() - 3 << " regions omitted>"; // Generate the last element. GenerateRegion(os, section.regions.back(), section, binary, output_config); From a56f9ec50e908362e20254fcef28e62a2f148d91 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Wed, 15 Feb 2023 19:56:16 +0100 Subject: [PATCH 120/571] Only use absl headers if C++14 is available. (#7824) If flatbuffers is built in C++11 mode, but there is a recent version of absl which requires C++14, the build will fail. Cf https://github.com/MapServer/MapServer/issues/6822 for the use case that triggered this. --- include/flatbuffers/base.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/flatbuffers/base.h b/include/flatbuffers/base.h index 86688cc6e4..219b6d308a 100644 --- a/include/flatbuffers/base.h +++ b/include/flatbuffers/base.h @@ -233,7 +233,7 @@ namespace flatbuffers { } #define FLATBUFFERS_HAS_STRING_VIEW 1 // Check for absl::string_view - #elif __has_include("absl/strings/string_view.h") + #elif __has_include("absl/strings/string_view.h") && (__cplusplus >= 201411) #include "absl/strings/string_view.h" namespace flatbuffers { typedef absl::string_view string_view; From f7a75173f171b5edae59a1ff28e5b408057e60ac Mon Sep 17 00:00:00 2001 From: Saman <100295082+enum-class@users.noreply.github.com> Date: Sat, 18 Feb 2023 12:34:32 +0800 Subject: [PATCH 121/571] Move defined part to idl.h (#7823) --- include/flatbuffers/idl.h | 11 +++++++++++ src/idl_gen_cpp.cpp | 11 +---------- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/include/flatbuffers/idl.h b/include/flatbuffers/idl.h index 9ad6edcdd6..57f83410ed 100644 --- a/include/flatbuffers/idl.h +++ b/include/flatbuffers/idl.h @@ -168,6 +168,17 @@ inline const char* TypeName(const BaseType t) { return nullptr; } +inline const char* StringOf(const BaseType t) { + switch (t) { + #define FLATBUFFERS_TD(ENUM, IDLTYPE, CTYPE, ...) \ + case BASE_TYPE_##ENUM: return #CTYPE; + FLATBUFFERS_GEN_TYPES(FLATBUFFERS_TD) + #undef FLATBUFFERS_TD + default: FLATBUFFERS_ASSERT(0); + } + return ""; +} + // clang-format on struct StructDef; diff --git a/src/idl_gen_cpp.cpp b/src/idl_gen_cpp.cpp index 1033a8954c..67f228a250 100644 --- a/src/idl_gen_cpp.cpp +++ b/src/idl_gen_cpp.cpp @@ -725,16 +725,7 @@ class CppGenerator : public BaseGenerator { if (type.enum_def) return WrapInNameSpace(*type.enum_def); if (type.base_type == BASE_TYPE_BOOL) return "bool"; } - switch (type.base_type) { - // clang-format off - #define FLATBUFFERS_TD(ENUM, IDLTYPE, CTYPE, ...) \ - case BASE_TYPE_##ENUM: return #CTYPE; - FLATBUFFERS_GEN_TYPES(FLATBUFFERS_TD) - #undef FLATBUFFERS_TD - //clang-format on - default: FLATBUFFERS_ASSERT(0); - } - return ""; + return StringOf(type.base_type); } // Return a C++ pointer type, specialized to the actual struct/table types, From 6a9cd4411f9e1a21186d7ea1ae5f98f065150bb6 Mon Sep 17 00:00:00 2001 From: Henner Zeller Date: Mon, 27 Feb 2023 19:56:18 -0800 Subject: [PATCH 122/571] Editorconfig: als configure to trim whitespaces end EOL. (#7833) Signed-off-by: Henner Zeller --- .editorconfig | 1 + 1 file changed, 1 insertion(+) diff --git a/.editorconfig b/.editorconfig index 6c549666eb..6689bab231 100644 --- a/.editorconfig +++ b/.editorconfig @@ -5,3 +5,4 @@ root = true indent_style = space indent_size = 2 insert_final_newline = true +trim_trailing_whitespace = true From 4a34cd70dc1684612f6ad5eebb3a058644990735 Mon Sep 17 00:00:00 2001 From: Khanh Nguyen <44149581+Kn99HN@users.noreply.github.com> Date: Thu, 2 Mar 2023 10:01:44 -0800 Subject: [PATCH 123/571] Add Code Generator for idl_gen_fbs to parse .proto files (#7832) * Add code generator for proto files * Update * Add --proto to script * Remove cmt * Move proto parsing logic into else block to share same set up logic for code_generator * Remove IsValidCodeGenerator --- include/flatbuffers/idl.h | 1 + scripts/generate_code.py | 6 +++ src/BUILD.bazel | 1 + src/flatc.cpp | 12 ++---- src/flatc_main.cpp | 6 +++ src/idl_gen_fbs.cpp | 81 +++++++++++++++++++++++++++++++++++---- src/idl_gen_fbs.h | 28 ++++++++++++++ 7 files changed, 119 insertions(+), 16 deletions(-) create mode 100644 src/idl_gen_fbs.h diff --git a/include/flatbuffers/idl.h b/include/flatbuffers/idl.h index 57f83410ed..7f71adb76c 100644 --- a/include/flatbuffers/idl.h +++ b/include/flatbuffers/idl.h @@ -717,6 +717,7 @@ struct IDLOptions { kKotlin = 1 << 15, kSwift = 1 << 16, kNim = 1 << 17, + kProto = 1 << 18, kMAX }; diff --git a/scripts/generate_code.py b/scripts/generate_code.py index 4ee1571921..82981d4183 100755 --- a/scripts/generate_code.py +++ b/scripts/generate_code.py @@ -105,6 +105,7 @@ def glob(path, pattern): DART_OPTS = ["--dart"] PYTHON_OPTS = ["--python"] BINARY_OPTS = ["-b", "--schema", "--bfbs-comments", "--bfbs-builtins"] +PROTO_OPTS = ["--proto"] # Basic Usage @@ -192,6 +193,11 @@ def glob(path, pattern): data="monsterdata_test.json", ) +flatc( + PROTO_OPTS, + schema="prototest/test.proto", +) + # For Rust we currently generate two independent schemas, with namespace_test2 # duplicating the types in namespace_test1 flatc( diff --git a/src/BUILD.bazel b/src/BUILD.bazel index 3f4ba0c7f9..66c355d707 100644 --- a/src/BUILD.bazel +++ b/src/BUILD.bazel @@ -11,6 +11,7 @@ cc_library( srcs = [ "code_generators.cpp", "idl_gen_fbs.cpp", + "idl_gen_fbs.h", "idl_gen_text.cpp", "idl_gen_text.h", "idl_parser.cpp", diff --git a/src/flatc.cpp b/src/flatc.cpp index 2da6bc4579..699a9b83f5 100644 --- a/src/flatc.cpp +++ b/src/flatc.cpp @@ -166,7 +166,6 @@ const static FlatCOption flatc_options[] = { "Allow binaries without file_identifier to be read. This may crash flatc " "given a mismatched schema." }, { "", "size-prefixed", "", "Input binaries are size prefixed buffers." }, - { "", "proto", "", "Input is a .proto, translate to .fbs." }, { "", "proto-namespace-suffix", "SUFFIX", "Add this namespace to any flatbuffers generated from protobufs." }, { "", "oneof-union", "", "Translate .proto oneofs to flatbuffer unions." }, @@ -243,7 +242,7 @@ const static FlatCOption flatc_options[] = { "ts_entry_points." }, { "", "ts-entry-points", "", "Generate entry point typescript per namespace. Implies gen-all." }, - { "", "annotate-sparse-vectors", "", "Don't annotate every vector element."}, + { "", "annotate-sparse-vectors", "", "Don't annotate every vector element." }, { "", "annotate", "SCHEMA", "Annotate the provided BINARY_FILE with the specified SCHEMA file." }, { "", "no-leak-private-annotation", "", @@ -548,8 +547,6 @@ FlatCOptions FlatCompiler::ParseFromCommandLineArguments(int argc, opts.size_prefixed = true; } else if (arg == "--") { // Separator between text and binary inputs. options.binary_files_from = options.filenames.size(); - } else if (arg == "--proto") { - opts.proto_mode = true; } else if (arg == "--proto-namespace-suffix") { if (++argi >= argc) Error("missing namespace suffix" + arg, true); opts.proto_namespace_suffix = argv[argi]; @@ -647,12 +644,13 @@ FlatCOptions FlatCompiler::ParseFromCommandLineArguments(int argc, } else if (arg == "--no-leak-private-annotation") { opts.no_leak_private_annotations = true; } else if (arg == "--annotate-sparse-vectors") { - options.annotate_include_vector_contents = false; + options.annotate_include_vector_contents = false; } else if (arg == "--annotate") { if (++argi >= argc) Error("missing path following: " + arg, true); options.annotate_schema = flatbuffers::PosixPath(argv[argi]); } else { - // Look up if the command line argument refers to a code generator. + if (arg == "--proto") { opts.proto_mode = true; } + auto code_generator_it = code_generators_.find(arg); if (code_generator_it == code_generators_.end()) { Error("unknown commandline argument: " + arg, true); @@ -888,8 +886,6 @@ std::unique_ptr FlatCompiler::GenerateCode(const FlatCOptions &options, Error("root type must be a table"); } - if (opts.proto_mode) GenerateFBS(*parser, options.output_path, filebase); - // We do not want to generate code for the definitions in this file // in any files coming up next. parser->MarkGenerated(); diff --git a/src/flatc_main.cpp b/src/flatc_main.cpp index 52203b135e..e4ddb00f30 100644 --- a/src/flatc_main.cpp +++ b/src/flatc_main.cpp @@ -27,6 +27,7 @@ #include "idl_gen_cpp.h" #include "idl_gen_csharp.h" #include "idl_gen_dart.h" +#include "idl_gen_fbs.h" #include "idl_gen_go.h" #include "idl_gen_java.h" #include "idl_gen_json_schema.h" @@ -100,6 +101,11 @@ int main(int argc, const char *argv[]) { "Generate Dart classes for tables/structs" }, flatbuffers::NewDartCodeGenerator()); + flatc.RegisterCodeGenerator( + flatbuffers::FlatCOption{ "", "proto", "", + "Input is a .proto, translate to .fbs" }, + flatbuffers::NewFBSCodeGenerator()); + flatc.RegisterCodeGenerator( flatbuffers::FlatCOption{ "g", "go", "", "Generate Go files for tables/structs" }, diff --git a/src/idl_gen_fbs.cpp b/src/idl_gen_fbs.cpp index d8db7d4ffb..6a6d0351bb 100644 --- a/src/idl_gen_fbs.cpp +++ b/src/idl_gen_fbs.cpp @@ -15,10 +15,13 @@ */ // independent from idl_parser, since this code is not needed for most clients +#include "idl_gen_fbs.h" + #include #include #include +#include "flatbuffers/code_generator.h" #include "flatbuffers/code_generators.h" #include "flatbuffers/flatbuffers.h" #include "flatbuffers/idl.h" @@ -130,29 +133,30 @@ static bool ProtobufIdSanityCheck(const StructDef &struct_def, const auto &fields = struct_def.fields.vec; if (HasNonPositiveFieldId(fields)) { // TODO: Use LogCompilerWarn - fprintf(stderr, - "Field id in struct %s has a non positive number value\n", - struct_def.name.c_str()); + fprintf(stderr, "Field id in struct %s has a non positive number value\n", + struct_def.name.c_str()); return false; } if (HasTwiceUsedId(fields)) { // TODO: Use LogCompilerWarn - fprintf(stderr, "Fields in struct %s have used an id twice\n", struct_def.name.c_str()); + fprintf(stderr, "Fields in struct %s have used an id twice\n", + struct_def.name.c_str()); return false; } if (HasFieldIdFromReservedIds(fields, struct_def.reserved_ids)) { // TODO: Use LogCompilerWarn - fprintf(stderr, - "Fields in struct %s use id from reserved ids\n", struct_def.name.c_str()); + fprintf(stderr, "Fields in struct %s use id from reserved ids\n", + struct_def.name.c_str()); return false; } if (gap_action != IDLOptions::ProtoIdGapAction::NO_OP) { if (HasGapInProtoId(fields)) { // TODO: Use LogCompilerWarn - fprintf(stderr, "Fields in struct %s have gap between ids\n", struct_def.name.c_str()); + fprintf(stderr, "Fields in struct %s have gap between ids\n", + struct_def.name.c_str()); if (gap_action == IDLOptions::ProtoIdGapAction::ERROR) { return false; } } } @@ -199,7 +203,8 @@ static ProtobufToFbsIdMap MapProtoIdsToFieldsId( } } else { // TODO: Use LogCompilerWarn - fprintf(stderr, "Fields id in struct %s is missing\n", struct_def.name.c_str()); + fprintf(stderr, "Fields id in struct %s is missing\n", + struct_def.name.c_str()); return {}; } } @@ -367,4 +372,64 @@ bool GenerateFBS(const Parser &parser, const std::string &path, return SaveFile((path + file_name + ".fbs").c_str(), fbs, false); } +namespace { + +class FBSCodeGenerator : public CodeGenerator { + public: + Status GenerateCode(const Parser &parser, const std::string &path, + const std::string &filename) override { + if (!GenerateFBS(parser, path, filename)) { return Status::ERROR; } + return Status::OK; + } + + // Generate code from the provided `buffer` of given `length`. The buffer is a + // serialized reflection.fbs. + Status GenerateCode(const uint8_t *buffer, int64_t length) override { + (void)buffer; + (void)length; + return Status::NOT_IMPLEMENTED; + } + + Status GenerateMakeRule(const Parser &parser, const std::string &path, + const std::string &filename, + std::string &output) override { + (void)parser; + (void)path; + (void)filename; + (void)output; + return Status::NOT_IMPLEMENTED; + } + + Status GenerateGrpcCode(const Parser &parser, const std::string &path, + const std::string &filename) override { + (void)parser; + (void)path; + (void)filename; + return Status::NOT_IMPLEMENTED; + } + + Status GenerateRootFile(const Parser &parser, + const std::string &path) override { + (void)parser; + (void)path; + return Status::NOT_IMPLEMENTED; + } + + bool IsSchemaOnly() const override { return false; } + + bool SupportsBfbsGeneration() const override { return false; } + + bool SupportsRootFileGeneration() const override { return false; } + + IDLOptions::Language Language() const override { return IDLOptions::kProto; } + + std::string LanguageName() const override { return "proto"; } +}; + +} // namespace + +std::unique_ptr NewFBSCodeGenerator() { + return std::unique_ptr(new FBSCodeGenerator()); +} + } // namespace flatbuffers diff --git a/src/idl_gen_fbs.h b/src/idl_gen_fbs.h new file mode 100644 index 0000000000..7f73d33bcd --- /dev/null +++ b/src/idl_gen_fbs.h @@ -0,0 +1,28 @@ +/* + * Copyright 2023 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. + */ + +#ifndef FLATBUFFERS_IDL_GEN_FBS_H_ +#define FLATBUFFERS_IDL_GEN_FBS_H_ + +#include "flatbuffers/code_generator.h" + +namespace flatbuffers { + +std::unique_ptr NewFBSCodeGenerator(); + +} // namespace flatbuffers + +#endif // FLATBUFFERS_IDL_GEN_FBS_H_ From d1e4daa1781defa39e45d88dc3c2018645ebcdb9 Mon Sep 17 00:00:00 2001 From: tira-misu Date: Fri, 3 Mar 2023 06:42:27 +0100 Subject: [PATCH 124/571] [CS] Naming collision if field has same name as table and used as key (#7842) * Fix C/C++ CreateDirect with sorted vectors If a struct has a key the vector has to be sorted. To sort the vector you can't use "const". * Changes due to code review * Improve code readability * Add generate of JSON schema to string to lib * option indent_step is supported * Remove unused variables * Fix break in test * Fix style to be consistent with rest of the code * [TS] Fix reserved words as arguments (#6955) * [TS] Fix generation of reserved words in object api (#7106) * [TS] Fix generation of object api * [TS] Fix MakeCamel -> ConvertCase * [C#] Fix collision of field name and type name * [TS] Add test for struct of struct of struct * Update generated files * Add missing files * [TS] Fix query of null/undefined fields in object api * Fix collision if field name is equal to table name and used as key in an array --------- Co-authored-by: Derek Bailey --- src/idl_gen_csharp.cpp | 10 +- tests/union_value_collision.fbs | 5 + .../union_value_collision_generated.cs | 134 +++++++++++++++++- 3 files changed, 141 insertions(+), 8 deletions(-) diff --git a/src/idl_gen_csharp.cpp b/src/idl_gen_csharp.cpp index 9f384a7a01..a113b9beb7 100644 --- a/src/idl_gen_csharp.cpp +++ b/src/idl_gen_csharp.cpp @@ -477,8 +477,9 @@ class CSharpGenerator : public BaseGenerator { const std::string &offset) const { // Use the generated type directly, to properly handle default values that // might not be written to the buffer. - return GetObjectConstructor(struct_def, data_buffer, offset) + "." + - Name(*key_field); + auto name = Name(*key_field); + if (name == struct_def.name) { name += "_"; } + return GetObjectConstructor(struct_def, data_buffer, offset) + "." + name; } // Direct mutation is only allowed for scalar fields. @@ -1303,6 +1304,8 @@ class CSharpGenerator : public BaseGenerator { // because `key_field` is not set for struct if (struct_def.has_key && !struct_def.fixed) { FLATBUFFERS_ASSERT(key_field); + auto name = Name(*key_field); + if (name == struct_def.name) { name += "_"; } code += "\n public static VectorOffset "; code += "CreateSortedVectorOf" + struct_def.name; code += "(FlatBufferBuilder builder, "; @@ -1332,8 +1335,7 @@ class CSharpGenerator : public BaseGenerator { "(start + middle), bb);\n"; code += " obj_.__assign(tableOffset, bb);\n"; - code += - " int comp = obj_." + Name(*key_field) + ".CompareTo(key);\n"; + code += " int comp = obj_." + name + ".CompareTo(key);\n"; code += " if (comp > 0) {\n"; code += " span = middle;\n"; code += " } else if (comp < 0) {\n"; diff --git a/tests/union_value_collision.fbs b/tests/union_value_collision.fbs index 2e32245025..5816204469 100644 --- a/tests/union_value_collision.fbs +++ b/tests/union_value_collision.fbs @@ -3,6 +3,10 @@ namespace union_value_collsion; table IntValue { value:int; } +table Collide { + collide: string (key); + value: string; +} union Value { IntValue } @@ -12,6 +16,7 @@ union Other { IntValue } table Collision { some_value : Value; value : Other; + collide : [Collision]; } root_type Collision; \ No newline at end of file diff --git a/tests/union_value_collsion/union_value_collision_generated.cs b/tests/union_value_collsion/union_value_collision_generated.cs index acd3033586..4d016b5f3d 100644 --- a/tests/union_value_collsion/union_value_collision_generated.cs +++ b/tests/union_value_collsion/union_value_collision_generated.cs @@ -198,6 +198,110 @@ public IntValueT() { } } +public struct Collide : IFlatbufferObject +{ + private Table __p; + public ByteBuffer ByteBuffer { get { return __p.bb; } } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_21(); } + public static Collide GetRootAsCollide(ByteBuffer _bb) { return GetRootAsCollide(_bb, new Collide()); } + public static Collide GetRootAsCollide(ByteBuffer _bb, Collide obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } + public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } + public Collide __assign(int _i, ByteBuffer _bb) { __init(_i, _bb); return this; } + + public string Collide_ { get { int o = __p.__offset(4); return o != 0 ? __p.__string(o + __p.bb_pos) : null; } } +#if ENABLE_SPAN_T + public Span GetCollideBytes() { return __p.__vector_as_span(4, 1); } +#else + public ArraySegment? GetCollideBytes() { return __p.__vector_as_arraysegment(4); } +#endif + public byte[] GetCollideArray() { return __p.__vector_as_array(4); } + public string Value { get { int o = __p.__offset(6); return o != 0 ? __p.__string(o + __p.bb_pos) : null; } } +#if ENABLE_SPAN_T + public Span GetValueBytes() { return __p.__vector_as_span(6, 1); } +#else + public ArraySegment? GetValueBytes() { return __p.__vector_as_arraysegment(6); } +#endif + public byte[] GetValueArray() { return __p.__vector_as_array(6); } + + public static Offset CreateCollide(FlatBufferBuilder builder, + StringOffset collideOffset = default(StringOffset), + StringOffset valueOffset = default(StringOffset)) { + builder.StartTable(2); + Collide.AddValue(builder, valueOffset); + Collide.AddCollide(builder, collideOffset); + return Collide.EndCollide(builder); + } + + public static void StartCollide(FlatBufferBuilder builder) { builder.StartTable(2); } + public static void AddCollide(FlatBufferBuilder builder, StringOffset collideOffset) { builder.AddOffset(0, collideOffset.Value, 0); } + public static void AddValue(FlatBufferBuilder builder, StringOffset valueOffset) { builder.AddOffset(1, valueOffset.Value, 0); } + public static Offset EndCollide(FlatBufferBuilder builder) { + int o = builder.EndTable(); + builder.Required(o, 4); // collide + return new Offset(o); + } + + public static VectorOffset CreateSortedVectorOfCollide(FlatBufferBuilder builder, Offset[] offsets) { + Array.Sort(offsets, + (Offset o1, Offset o2) => + new Collide().__assign(builder.DataBuffer.Length - o1.Value, builder.DataBuffer).Collide_.CompareTo(new Collide().__assign(builder.DataBuffer.Length - o2.Value, builder.DataBuffer).Collide_)); + return builder.CreateVectorOfTables(offsets); + } + + public static Collide? __lookup_by_key(int vectorLocation, string key, ByteBuffer bb) { + Collide obj_ = new Collide(); + int span = bb.GetInt(vectorLocation - 4); + int start = 0; + while (span != 0) { + int middle = span / 2; + int tableOffset = Table.__indirect(vectorLocation + 4 * (start + middle), bb); + obj_.__assign(tableOffset, bb); + int comp = obj_.Collide_.CompareTo(key); + if (comp > 0) { + span = middle; + } else if (comp < 0) { + middle++; + start += middle; + span -= middle; + } else { + return obj_; + } + } + return null; + } + public CollideT UnPack() { + var _o = new CollideT(); + this.UnPackTo(_o); + return _o; + } + public void UnPackTo(CollideT _o) { + _o.Collide_ = this.Collide_; + _o.Value = this.Value; + } + public static Offset Pack(FlatBufferBuilder builder, CollideT _o) { + if (_o == null) return default(Offset); + var _collide = _o.Collide_ == null ? default(StringOffset) : builder.CreateString(_o.Collide_); + var _value = _o.Value == null ? default(StringOffset) : builder.CreateString(_o.Value); + return CreateCollide( + builder, + _collide, + _value); + } +} + +public class CollideT +{ + [Newtonsoft.Json.JsonProperty("collide")] + public string Collide_ { get; set; } + [Newtonsoft.Json.JsonProperty("value")] + public string Value { get; set; } + + public CollideT() { + this.Collide_ = null; + this.Value = null; + } +} + public struct Collision : IFlatbufferObject { private Table __p; @@ -214,13 +318,17 @@ public struct Collision : IFlatbufferObject public union_value_collsion.Other ValueType { get { int o = __p.__offset(8); return o != 0 ? (union_value_collsion.Other)__p.bb.Get(o + __p.bb_pos) : union_value_collsion.Other.NONE; } } public TTable? Value() where TTable : struct, IFlatbufferObject { int o = __p.__offset(10); return o != 0 ? (TTable?)__p.__union(o + __p.bb_pos) : null; } public union_value_collsion.IntValue ValueAsIntValue() { return Value().Value; } + public union_value_collsion.Collision? Collide(int j) { int o = __p.__offset(12); return o != 0 ? (union_value_collsion.Collision?)(new union_value_collsion.Collision()).__assign(__p.__indirect(__p.__vector(o) + j * 4), __p.bb) : null; } + public int CollideLength { get { int o = __p.__offset(12); return o != 0 ? __p.__vector_len(o) : 0; } } public static Offset CreateCollision(FlatBufferBuilder builder, union_value_collsion.Value some_value_type = union_value_collsion.Value.NONE, int some_valueOffset = 0, union_value_collsion.Other value_type = union_value_collsion.Other.NONE, - int valueOffset = 0) { - builder.StartTable(4); + int valueOffset = 0, + VectorOffset collideOffset = default(VectorOffset)) { + builder.StartTable(5); + Collision.AddCollide(builder, collideOffset); Collision.AddValue(builder, valueOffset); Collision.AddSomeValue(builder, some_valueOffset); Collision.AddValueType(builder, value_type); @@ -228,11 +336,17 @@ public struct Collision : IFlatbufferObject return Collision.EndCollision(builder); } - public static void StartCollision(FlatBufferBuilder builder) { builder.StartTable(4); } + public static void StartCollision(FlatBufferBuilder builder) { builder.StartTable(5); } public static void AddSomeValueType(FlatBufferBuilder builder, union_value_collsion.Value someValueType) { builder.AddByte(0, (byte)someValueType, 0); } public static void AddSomeValue(FlatBufferBuilder builder, int someValueOffset) { builder.AddOffset(1, someValueOffset, 0); } public static void AddValueType(FlatBufferBuilder builder, union_value_collsion.Other valueType) { builder.AddByte(2, (byte)valueType, 0); } public static void AddValue(FlatBufferBuilder builder, int valueOffset) { builder.AddOffset(3, valueOffset, 0); } + public static void AddCollide(FlatBufferBuilder builder, VectorOffset collideOffset) { builder.AddOffset(4, collideOffset.Value, 0); } + public static VectorOffset CreateCollideVector(FlatBufferBuilder builder, Offset[] data) { builder.StartVector(4, data.Length, 4); for (int i = data.Length - 1; i >= 0; i--) builder.AddOffset(data[i].Value); return builder.EndVector(); } + public static VectorOffset CreateCollideVectorBlock(FlatBufferBuilder builder, Offset[] data) { builder.StartVector(4, data.Length, 4); builder.Add(data); return builder.EndVector(); } + public static VectorOffset CreateCollideVectorBlock(FlatBufferBuilder builder, ArraySegment> data) { builder.StartVector(4, data.Count, 4); builder.Add(data); return builder.EndVector(); } + public static VectorOffset CreateCollideVectorBlock(FlatBufferBuilder builder, IntPtr dataPtr, int sizeInBytes) { builder.StartVector(1, sizeInBytes, 1); builder.Add>(dataPtr, sizeInBytes); return builder.EndVector(); } + public static void StartCollideVector(FlatBufferBuilder builder, int numElems) { builder.StartVector(4, numElems, 4); } public static Offset EndCollision(FlatBufferBuilder builder) { int o = builder.EndTable(); return new Offset(o); @@ -261,6 +375,8 @@ public void UnPackTo(CollisionT _o) { _o.Value.Value = this.Value().HasValue ? this.Value().Value.UnPack() : null; break; } + _o.Collide = new List(); + for (var _j = 0; _j < this.CollideLength; ++_j) {_o.Collide.Add(this.Collide(_j).HasValue ? this.Collide(_j).Value.UnPack() : null);} } public static Offset Pack(FlatBufferBuilder builder, CollisionT _o) { if (_o == null) return default(Offset); @@ -268,12 +384,19 @@ public void UnPackTo(CollisionT _o) { var _some_value = _o.SomeValue == null ? 0 : union_value_collsion.ValueUnion.Pack(builder, _o.SomeValue); var _value_type = _o.Value == null ? union_value_collsion.Other.NONE : _o.Value.Type; var _value = _o.Value == null ? 0 : union_value_collsion.OtherUnion.Pack(builder, _o.Value); + var _collide = default(VectorOffset); + if (_o.Collide != null) { + var __collide = new Offset[_o.Collide.Count]; + for (var _j = 0; _j < __collide.Length; ++_j) { __collide[_j] = union_value_collsion.Collision.Pack(builder, _o.Collide[_j]); } + _collide = CreateCollideVector(builder, __collide); + } return CreateCollision( builder, _some_value_type, _some_value, _value_type, - _value); + _value, + _collide); } } @@ -305,10 +428,13 @@ private union_value_collsion.Other ValueType { [Newtonsoft.Json.JsonProperty("value")] [Newtonsoft.Json.JsonConverter(typeof(union_value_collsion.OtherUnion_JsonConverter))] public union_value_collsion.OtherUnion Value { get; set; } + [Newtonsoft.Json.JsonProperty("collide")] + public List Collide { get; set; } public CollisionT() { this.SomeValue = null; this.Value = null; + this.Collide = null; } public static CollisionT DeserializeFromJson(string jsonText) { From 79d6abb42ed83378b2ef93b2fd1986a2625bb832 Mon Sep 17 00:00:00 2001 From: Cedric Schmeits Date: Fri, 3 Mar 2023 06:47:18 +0100 Subject: [PATCH 125/571] Added GENERATE_ to flatbuffers_generate_headers (#7845) The generation of the library interface supplied by this function only works within the same directory as that the target was defined. By adding a custom target named GENERATE_ now also interface files will be generated by making a target dependend on the generate target. Example: /CMakeLists.txt set(MY_INCL_SRC ${CMAKE_CURRENT_SOURCE_DIR}/fbs/my_incl.fbs) flatbuffers_generate_headers(TARGET my_incl SCHEMAS ${MY_INCL_SRC}) add_subdirectory(app) /app/CMakeLists.txt add_executable(app src/test.cpp) target_link_libraries(app my_incl) add_dependencies(app GENERATE_my_incl) Co-authored-by: Derek Bailey --- CMake/BuildFlatBuffers.cmake | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/CMake/BuildFlatBuffers.cmake b/CMake/BuildFlatBuffers.cmake index b0c5c8fbcf..9adba7dc8b 100644 --- a/CMake/BuildFlatBuffers.cmake +++ b/CMake/BuildFlatBuffers.cmake @@ -157,6 +157,10 @@ endfunction() # other flagc flags using the FLAGS option to change the behavior of the flatc # tool. # +# When the target_link_libraries is done within a different directory than +# flatbuffers_generate_headers is called, then the target should also be dependent +# the custom generation target called GENERATE_. +# # Arguments: # TARGET: The name of the target to generate. # SCHEMAS: The list of schema files to generate code for. @@ -182,6 +186,9 @@ endfunction() # target_link_libraries(MyExecutableTarget # PRIVATE my_generated_headers_target # ) +# +# Optional (only needed within different directory): +# add_dependencies(app GENERATE_my_generated_headers_target) function(flatbuffers_generate_headers) # Parse function arguments. set(options) @@ -226,6 +233,8 @@ function(flatbuffers_generate_headers) "--include-prefix" ${FLATBUFFERS_GENERATE_HEADERS_INCLUDE_PREFIX}) endif() + set(generated_custom_commands) + # Create rules to generate the code for each schema. foreach(schema ${FLATBUFFERS_GENERATE_HEADERS_SCHEMAS}) get_filename_component(filename ${schema} NAME_WE) @@ -254,6 +263,7 @@ function(flatbuffers_generate_headers) COMMENT "Building ${schema} flatbuffers...") list(APPEND all_generated_header_files ${generated_include}) list(APPEND all_generated_source_files ${generated_source_file}) + list(APPEND generated_custom_commands "${generated_include}" "${generated_source_file}") # Geneate the binary flatbuffers schemas if instructed to. if (NOT ${FLATBUFFERS_GENERATE_HEADERS_BINARY_SCHEMAS_DIR} STREQUAL "") @@ -267,10 +277,17 @@ function(flatbuffers_generate_headers) ${schema} DEPENDS ${FLATC_TARGET} ${schema} WORKING_DIRECTORY "${working_dir}") + list(APPEND generated_custom_commands "${binary_schema}") list(APPEND all_generated_binary_files ${binary_schema}) endif() endforeach() + # Create an additional target as add_custom_command scope is only within same directory (CMakeFile.txt) + set(generate_target GENERATE_${FLATBUFFERS_GENERATE_HEADERS_TARGET}) + add_custom_target(${generate_target} ALL + DEPENDS ${generated_custom_commands} + COMMENT "Generating flatbuffer target ${FLATBUFFERS_GENERATE_HEADERS_TARGET}") + # Set up interface library add_library(${FLATBUFFERS_GENERATE_HEADERS_TARGET} INTERFACE) target_sources( From b90cc35a10568c7453afb94b29ab2f005939fcba Mon Sep 17 00:00:00 2001 From: Chuck Atkins <320135+chuckatkins@users.noreply.github.com> Date: Fri, 3 Mar 2023 00:52:03 -0500 Subject: [PATCH 126/571] Add a --java-package-prefix option to flatc (#7848) Co-authored-by: Derek Bailey --- include/flatbuffers/idl.h | 1 + src/flatc.cpp | 5 +++ src/idl_gen_java.cpp | 72 ++++++++++++++++++++++++++++----------- 3 files changed, 59 insertions(+), 19 deletions(-) diff --git a/include/flatbuffers/idl.h b/include/flatbuffers/idl.h index 7f71adb76c..8f08003d2c 100644 --- a/include/flatbuffers/idl.h +++ b/include/flatbuffers/idl.h @@ -655,6 +655,7 @@ struct IDLOptions { CaseStyle cpp_object_api_field_case_style; bool cpp_direct_copy; bool gen_nullable; + std::string java_package_prefix; bool java_checkerframework; bool gen_generated; bool gen_json_coders; diff --git a/src/flatc.cpp b/src/flatc.cpp index 699a9b83f5..31291a2544 100644 --- a/src/flatc.cpp +++ b/src/flatc.cpp @@ -115,6 +115,8 @@ const static FlatCOption flatc_options[] = { { "", "gen-compare", "", "Generate operator== for object-based API types." }, { "", "gen-nullable", "", "Add Clang _Nullable for C++ pointer. or @Nullable for Java" }, + { "", "java-package-prefix", "", + "Add a prefix to the generated package name for Java." }, { "", "java-checkerframe", "", "Add @Pure for Java." }, { "", "gen-generated", "", "Add @Generated annotation for Java." }, { "", "gen-jvmstatic", "", @@ -516,6 +518,9 @@ FlatCOptions FlatCompiler::ParseFromCommandLineArguments(int argc, Error("unknown case style: " + std::string(argv[argi]), true); } else if (arg == "--gen-nullable") { opts.gen_nullable = true; + } else if (arg == "--java-package-prefix") { + if (++argi >= argc) Error("missing prefix following: " + arg, true); + opts.java_package_prefix = argv[argi]; } else if (arg == "--java-checkerframework") { opts.java_checkerframework = true; } else if (arg == "--gen-generated") { diff --git a/src/idl_gen_java.cpp b/src/idl_gen_java.cpp index 9642551807..2faca5c535 100644 --- a/src/idl_gen_java.cpp +++ b/src/idl_gen_java.cpp @@ -89,11 +89,21 @@ class JavaGenerator : public BaseGenerator { public: JavaGenerator(const Parser &parser, const std::string &path, - const std::string &file_name) + const std::string &file_name, + const std::string &package_prefix) : BaseGenerator(parser, path, file_name, "", ".", "java"), - cur_name_space_(nullptr), + cur_name_space_(nullptr), namer_(WithFlagOptions(JavaDefaultConfig(), parser.opts, path), - JavaKeywords()) {} + JavaKeywords()) { + if (!package_prefix.empty()) { + std::istringstream iss(package_prefix); + std::string component; + while(std::getline(iss, component, '.')) { + package_prefix_ns_.components.push_back(component); + } + package_prefix_ = package_prefix_ns_.GetFullyQualifiedName("") + "."; + } + } JavaGenerator &operator=(const JavaGenerator &); bool generate() { @@ -173,7 +183,13 @@ class JavaGenerator : public BaseGenerator { std::string code; code = "// " + std::string(FlatBuffersGeneratedWarning()) + "\n\n"; - const std::string namespace_name = FullNamespace(".", ns); + Namespace combined_ns = package_prefix_ns_; + std::copy( + ns.components.begin(), + ns.components.end(), + std::back_inserter(combined_ns.components)); + + const std::string namespace_name = FullNamespace(".", combined_ns); if (!namespace_name.empty()) { code += "package " + namespace_name + ";"; code += "\n\n"; @@ -207,7 +223,7 @@ class JavaGenerator : public BaseGenerator { code += classcode; if (!namespace_name.empty()) code += ""; - const std::string dirs = namer_.Directories(ns); + const std::string dirs = namer_.Directories(combined_ns); EnsureDirExists(dirs); const std::string filename = dirs + namer_.File(defname, /*skips=*/SkipFile::Suffix); @@ -247,7 +263,8 @@ class JavaGenerator : public BaseGenerator { switch (type.base_type) { case BASE_TYPE_STRING: return "String"; case BASE_TYPE_VECTOR: return GenTypeGet(type.VectorType()); - case BASE_TYPE_STRUCT: return namer_.NamespacedType(*type.struct_def); + case BASE_TYPE_STRUCT: + return Prefixed(namer_.NamespacedType(*type.struct_def)); case BASE_TYPE_UNION: FLATBUFFERS_FALLTHROUGH(); // else fall thru default: return "Table"; } @@ -351,8 +368,9 @@ class JavaGenerator : public BaseGenerator { FLATBUFFERS_ASSERT(value.type.enum_def); auto &enum_def = *value.type.enum_def; auto enum_val = enum_def.FindByValue(value.constant); - return enum_val ? namer_.NamespacedEnumVariant(enum_def, *enum_val) - : value.constant; + return + enum_val ? Prefixed(namer_.NamespacedEnumVariant(enum_def, *enum_val)) + : value.constant; } std::string GenDefaultValue(const FieldDef &field) const { @@ -879,7 +897,7 @@ class JavaGenerator : public BaseGenerator { for (auto kit = fields.begin(); kit != fields.end(); ++kit) { auto &key_field = **kit; if (key_field.key) { - auto qualified_name = namer_.NamespacedType(sd); + auto qualified_name = Prefixed(namer_.NamespacedType(sd)); code += " public " + qualified_name + " "; code += namer_.Method(field) + "ByKey("; code += GenTypeNameDest(key_field.value.type) + " key)"; @@ -957,7 +975,8 @@ class JavaGenerator : public BaseGenerator { } // generate object accessors if is nested_flatbuffer if (field.nested_flatbuffer) { - auto nested_type_name = namer_.NamespacedType(*field.nested_flatbuffer); + auto nested_type_name = + Prefixed(namer_.NamespacedType(*field.nested_flatbuffer)); auto nested_method_name = namer_.Field(field) + "As" + field.nested_flatbuffer->name; auto get_nested_method_name = nested_method_name; @@ -1437,7 +1456,7 @@ class JavaGenerator : public BaseGenerator { // deleted when issue #6561 is fixed. } code += indent + " case " + - namer_.NamespacedEnumVariant(enum_def, ev) + ":\n"; + Prefixed(namer_.NamespacedEnumVariant(enum_def, ev)) + ":\n"; auto actual_type = GenTypeGet(ev.union_type); code += indent + " " + variable_name + "Value = " + field_name + "(new " + actual_type + "()" + value_params + ");\n"; @@ -1635,7 +1654,8 @@ class JavaGenerator : public BaseGenerator { case BASE_TYPE_UNION: array_type = "int"; element_type = - namer_.NamespacedType(*field.value.type.enum_def) + "Union"; + Prefixed(namer_.NamespacedType(*field.value.type.enum_def)) + + "Union"; to_array = element_type + ".pack(builder, _o." + namer_.Method("get", property_name) + "()[_j])"; break; @@ -1720,11 +1740,11 @@ class JavaGenerator : public BaseGenerator { field.value.type.enum_def->underlying_type, false)) + " _" + field_name + "Type = _o." + get_field + "() == null ? " + - namer_.NamespacedType(*field.value.type.enum_def) + + Prefixed(namer_.NamespacedType(*field.value.type.enum_def)) + ".NONE : " + "_o." + get_field + "().getType();\n"; code += " " + GenOffsetType() + " _" + field_name + " = _o." + get_field + "() == null ? 0 : " + - namer_.NamespacedType(*field.value.type.enum_def) + + Prefixed(namer_.NamespacedType(*field.value.type.enum_def)) + "Union.pack(builder, _o." + get_field + "());\n"; break; } @@ -1976,7 +1996,8 @@ class JavaGenerator : public BaseGenerator { type_name_length, new_type_name); } else if (type.element == BASE_TYPE_UNION) { if (wrap_in_namespace) { - type_name = namer_.NamespacedType(*type.enum_def) + "Union"; + type_name = + Prefixed(namer_.NamespacedType(*type.enum_def)) + "Union"; } else { type_name = namer_.Type(*type.enum_def) + "Union"; } @@ -1986,7 +2007,8 @@ class JavaGenerator : public BaseGenerator { case BASE_TYPE_UNION: { if (wrap_in_namespace) { - type_name = namer_.NamespacedType(*type.enum_def) + "Union"; + type_name = + Prefixed(namer_.NamespacedType(*type.enum_def)) + "Union"; } else { type_name = namer_.Type(*type.enum_def) + "Union"; } @@ -2020,13 +2042,15 @@ class JavaGenerator : public BaseGenerator { type_name.replace(type_name.length() - type_name_length, type_name_length, new_type_name); } else if (type.element == BASE_TYPE_UNION) { - type_name = namer_.NamespacedType(*type.enum_def) + "Union"; + type_name = + Prefixed(namer_.NamespacedType(*type.enum_def)) + "Union"; } break; } case BASE_TYPE_UNION: { - type_name = namer_.NamespacedType(*type.enum_def) + "Union"; + type_name = + Prefixed(namer_.NamespacedType(*type.enum_def)) + "Union"; break; } default: break; @@ -2160,12 +2184,22 @@ class JavaGenerator : public BaseGenerator { // prefixed by its namespace const Namespace *cur_name_space_; const IdlNamer namer_; + + private: + std::string Prefixed(const std::string &str) const { + return package_prefix_ + str; + } + + std::string package_prefix_; + Namespace package_prefix_ns_; + }; } // namespace java bool GenerateJava(const Parser &parser, const std::string &path, const std::string &file_name) { - java::JavaGenerator generator(parser, path, file_name); + java::JavaGenerator generator(parser, path, file_name, + parser.opts.java_package_prefix); return generator.generate(); } From 01f41386180ddc6f251a13ad11889bf9ce7b9e00 Mon Sep 17 00:00:00 2001 From: Paulo Pinheiro Date: Fri, 3 Mar 2023 08:27:06 +0100 Subject: [PATCH 127/571] [Android][Kotlin] fixed build after decomission of jcenter and gradle update (#7840) * [Android] fixed build after decomission of jcenter JCenter[1] has been removed and now is failing android build. This change updates the configuration to remove this and few other warnings. 1 - https://developer.android.com/studio/build/jcenter-migration * [Kotlin] fix build for latest gradle version 8.0.1 --------- Co-authored-by: Derek Bailey --- android/.project | 36 +++++------ android/app/build.gradle | 10 ++-- android/app/src/main/AndroidManifest.xml | 6 +- .../src/main/cpp/generated/animal_generated.h | 60 +++++++++---------- .../main/java/generated/com/fbs/app/Animal.kt | 13 +++- android/build.gradle | 8 +-- .../gradle/wrapper/gradle-wrapper.properties | 2 +- kotlin/benchmark/build.gradle.kts | 19 ++---- .../kotlin/benchmark/FlexBuffersBenchmark.kt | 21 ++++--- .../kotlin/benchmark/JsonBenchmark.kt | 38 ++++++------ kotlin/build.gradle.kts | 27 ++------- kotlin/gradle/libs.versions.toml | 17 +++--- .../gradle/wrapper/gradle-wrapper.properties | 2 +- 13 files changed, 119 insertions(+), 140 deletions(-) diff --git a/android/.project b/android/.project index e7d5931bc8..3ed7298f81 100644 --- a/android/.project +++ b/android/.project @@ -1,20 +1,22 @@ - - FlatBufferTest + FlatBufferTest + + + + + + + + + + 1677235311958 + + 30 + + org.eclipse.core.resources.regexFilterMatcher + node_modules|\.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__ + + + diff --git a/android/app/build.gradle b/android/app/build.gradle index 1b035bab4b..9941783099 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -1,15 +1,13 @@ apply plugin: 'com.android.application' apply plugin: 'kotlin-android' -apply plugin: 'kotlin-android-extensions' android { - compileSdkVersion 30 - buildToolsVersion "30.0.2" + compileSdk 33 defaultConfig { applicationId "com.flatbuffers.app" minSdkVersion 26 - targetSdkVersion 30 + targetSdkVersion 33 versionCode 1 versionName "1.0" @@ -113,13 +111,13 @@ android { dependsOn(generateFbsCpp) } } + namespace 'com.flatbuffers.app' } dependencies { implementation fileTree(dir: "libs", include: ["*.jar"]) implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" - implementation 'androidx.core:core-ktx:1.3.2' - implementation 'androidx.appcompat:appcompat:1.2.0' + implementation 'androidx.appcompat:appcompat:1.6.1' // If you using java runtime you can add its dependency as the example below // implementation 'com.google.flatbuffers:flatbuffers-java:$latest_version' diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml index c2dcba9b35..53caca65bc 100644 --- a/android/app/src/main/AndroidManifest.xml +++ b/android/app/src/main/AndroidManifest.xml @@ -1,6 +1,5 @@ - + - + diff --git a/android/app/src/main/cpp/generated/animal_generated.h b/android/app/src/main/cpp/generated/animal_generated.h index 5253f67cca..313cec42cb 100644 --- a/android/app/src/main/cpp/generated/animal_generated.h +++ b/android/app/src/main/cpp/generated/animal_generated.h @@ -8,9 +8,9 @@ // Ensure the included flatbuffers.h is the same version as when this file was // generated, otherwise it may not be compatible. -static_assert(FLATBUFFERS_VERSION_MAJOR == 2 && - FLATBUFFERS_VERSION_MINOR == 0 && - FLATBUFFERS_VERSION_REVISION == 8, +static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && + FLATBUFFERS_VERSION_MINOR == 1 && + FLATBUFFERS_VERSION_REVISION == 21, "Non-compatible flatbuffers version included"); namespace com { @@ -20,23 +20,23 @@ namespace app { struct Animal; struct AnimalBuilder; -struct Animal FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { +struct Animal FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { typedef AnimalBuilder Builder; enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { VT_NAME = 4, VT_SOUND = 6, VT_WEIGHT = 8 }; - const flatbuffers::String *name() const { - return GetPointer(VT_NAME); + const ::flatbuffers::String *name() const { + return GetPointer(VT_NAME); } - const flatbuffers::String *sound() const { - return GetPointer(VT_SOUND); + const ::flatbuffers::String *sound() const { + return GetPointer(VT_SOUND); } uint16_t weight() const { return GetField(VT_WEIGHT, 0); } - bool Verify(flatbuffers::Verifier &verifier) const { + bool Verify(::flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && VerifyOffset(verifier, VT_NAME) && verifier.VerifyString(name()) && @@ -49,32 +49,32 @@ struct Animal FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { struct AnimalBuilder { typedef Animal Table; - flatbuffers::FlatBufferBuilder &fbb_; - flatbuffers::uoffset_t start_; - void add_name(flatbuffers::Offset name) { + ::flatbuffers::FlatBufferBuilder &fbb_; + ::flatbuffers::uoffset_t start_; + void add_name(::flatbuffers::Offset<::flatbuffers::String> name) { fbb_.AddOffset(Animal::VT_NAME, name); } - void add_sound(flatbuffers::Offset sound) { + void add_sound(::flatbuffers::Offset<::flatbuffers::String> sound) { fbb_.AddOffset(Animal::VT_SOUND, sound); } void add_weight(uint16_t weight) { fbb_.AddElement(Animal::VT_WEIGHT, weight, 0); } - explicit AnimalBuilder(flatbuffers::FlatBufferBuilder &_fbb) + explicit AnimalBuilder(::flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); } - flatbuffers::Offset Finish() { + ::flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); - auto o = flatbuffers::Offset(end); + auto o = ::flatbuffers::Offset(end); return o; } }; -inline flatbuffers::Offset CreateAnimal( - flatbuffers::FlatBufferBuilder &_fbb, - flatbuffers::Offset name = 0, - flatbuffers::Offset sound = 0, +inline ::flatbuffers::Offset CreateAnimal( + ::flatbuffers::FlatBufferBuilder &_fbb, + ::flatbuffers::Offset<::flatbuffers::String> name = 0, + ::flatbuffers::Offset<::flatbuffers::String> sound = 0, uint16_t weight = 0) { AnimalBuilder builder_(_fbb); builder_.add_sound(sound); @@ -83,8 +83,8 @@ inline flatbuffers::Offset CreateAnimal( return builder_.Finish(); } -inline flatbuffers::Offset CreateAnimalDirect( - flatbuffers::FlatBufferBuilder &_fbb, +inline ::flatbuffers::Offset CreateAnimalDirect( + ::flatbuffers::FlatBufferBuilder &_fbb, const char *name = nullptr, const char *sound = nullptr, uint16_t weight = 0) { @@ -98,32 +98,32 @@ inline flatbuffers::Offset CreateAnimalDirect( } inline const com::fbs::app::Animal *GetAnimal(const void *buf) { - return flatbuffers::GetRoot(buf); + return ::flatbuffers::GetRoot(buf); } inline const com::fbs::app::Animal *GetSizePrefixedAnimal(const void *buf) { - return flatbuffers::GetSizePrefixedRoot(buf); + return ::flatbuffers::GetSizePrefixedRoot(buf); } inline bool VerifyAnimalBuffer( - flatbuffers::Verifier &verifier) { + ::flatbuffers::Verifier &verifier) { return verifier.VerifyBuffer(nullptr); } inline bool VerifySizePrefixedAnimalBuffer( - flatbuffers::Verifier &verifier) { + ::flatbuffers::Verifier &verifier) { return verifier.VerifySizePrefixedBuffer(nullptr); } inline void FinishAnimalBuffer( - flatbuffers::FlatBufferBuilder &fbb, - flatbuffers::Offset root) { + ::flatbuffers::FlatBufferBuilder &fbb, + ::flatbuffers::Offset root) { fbb.Finish(root); } inline void FinishSizePrefixedAnimalBuffer( - flatbuffers::FlatBufferBuilder &fbb, - flatbuffers::Offset root) { + ::flatbuffers::FlatBufferBuilder &fbb, + ::flatbuffers::Offset root) { fbb.FinishSizePrefixed(root); } diff --git a/android/app/src/main/java/generated/com/fbs/app/Animal.kt b/android/app/src/main/java/generated/com/fbs/app/Animal.kt index 0398ba5f35..c8851618f4 100644 --- a/android/app/src/main/java/generated/com/fbs/app/Animal.kt +++ b/android/app/src/main/java/generated/com/fbs/app/Animal.kt @@ -19,6 +19,7 @@ import java.nio.ByteOrder import kotlin.math.sign @Suppress("unused") +@kotlin.ExperimentalUnsignedTypes class Animal : Table() { fun __init(_i: Int, _bb: ByteBuffer) { @@ -31,14 +32,22 @@ class Animal : Table() { val name : String? get() { val o = __offset(4) - return if (o != 0) __string(o + bb_pos) else null + return if (o != 0) { + __string(o + bb_pos) + } else { + null + } } val nameAsByteBuffer : ByteBuffer get() = __vector_as_bytebuffer(4, 1) fun nameInByteBuffer(_bb: ByteBuffer) : ByteBuffer = __vector_in_bytebuffer(_bb, 4, 1) val sound : String? get() { val o = __offset(6) - return if (o != 0) __string(o + bb_pos) else null + return if (o != 0) { + __string(o + bb_pos) + } else { + null + } } val soundAsByteBuffer : ByteBuffer get() = __vector_as_bytebuffer(6, 1) fun soundInByteBuffer(_bb: ByteBuffer) : ByteBuffer = __vector_in_bytebuffer(_bb, 6, 1) diff --git a/android/build.gradle b/android/build.gradle index d37c10c8d8..7e9cdec519 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -1,12 +1,12 @@ // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { - ext.kotlin_version = "1.4.10" + ext.kotlin_version = "1.7.21" repositories { google() - jcenter() + mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:4.1.0' + classpath 'com.android.tools.build:gradle:7.4.1' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" // NOTE: Do not place your application dependencies here; they belong @@ -17,7 +17,7 @@ buildscript { allprojects { repositories { google() - jcenter() + mavenCentral() } } diff --git a/android/gradle/wrapper/gradle-wrapper.properties b/android/gradle/wrapper/gradle-wrapper.properties index aa991fceae..f72df95a7e 100644 --- a/android/gradle/wrapper/gradle-wrapper.properties +++ b/android/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.4.2-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.0.1-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/kotlin/benchmark/build.gradle.kts b/kotlin/benchmark/build.gradle.kts index 8595c02f5a..976cb7bb8f 100644 --- a/kotlin/benchmark/build.gradle.kts +++ b/kotlin/benchmark/build.gradle.kts @@ -2,18 +2,11 @@ import org.jetbrains.kotlin.ir.backend.js.compile plugins { kotlin("multiplatform") - id("org.jetbrains.kotlin.plugin.allopen") version "1.4.20" - id("org.jetbrains.kotlinx.benchmark") version "0.4.2" - id("io.morethan.jmhreport") version "0.9.0" + id("org.jetbrains.kotlinx.benchmark") + id("io.morethan.jmhreport") id("de.undercouch.download") } -// allOpen plugin is needed for the benchmark annotations. -// for more information, see https://github.com/Kotlin/kotlinx-benchmark#gradle-plugin -allOpen { - annotation("org.openjdk.jmh.annotations.State") -} - group = "com.google.flatbuffers.jmh" version = "2.0.0-SNAPSHOT" @@ -34,7 +27,7 @@ benchmark { iterationTime = 300 iterationTimeUnit = "ms" // uncomment for benchmarking JSON op only - // include(".*JsonBenchmark.*") + include(".*JsonBenchmark.*") } } targets { @@ -43,9 +36,7 @@ benchmark { } kotlin { - jvm { - withJava() - } + jvm() sourceSets { @@ -58,7 +49,7 @@ kotlin { implementation(kotlin("stdlib-common")) implementation(project(":flatbuffers-kotlin")) implementation(libs.kotlinx.benchmark.runtime) - + implementation("com.google.flatbuffers:flatbuffers-java:2.0.3") // json serializers implementation(libs.moshi.kotlin) implementation(libs.gson) diff --git a/kotlin/benchmark/src/jvmMain/kotlin/com/google/flatbuffers/kotlin/benchmark/FlexBuffersBenchmark.kt b/kotlin/benchmark/src/jvmMain/kotlin/com/google/flatbuffers/kotlin/benchmark/FlexBuffersBenchmark.kt index ade57d9503..99088aa032 100644 --- a/kotlin/benchmark/src/jvmMain/kotlin/com/google/flatbuffers/kotlin/benchmark/FlexBuffersBenchmark.kt +++ b/kotlin/benchmark/src/jvmMain/kotlin/com/google/flatbuffers/kotlin/benchmark/FlexBuffersBenchmark.kt @@ -14,7 +14,6 @@ * limitations under the License. */ package com.google.flatbuffers.kotlin.benchmark - import com.google.flatbuffers.ArrayReadWriteBuf import com.google.flatbuffers.FlexBuffers import com.google.flatbuffers.FlexBuffersBuilder.BUILDER_FLAG_SHARE_ALL @@ -35,7 +34,7 @@ import java.util.concurrent.TimeUnit @BenchmarkMode(Mode.AverageTime) @OutputTimeUnit(TimeUnit.NANOSECONDS) @Measurement(iterations = 20, time = 1, timeUnit = TimeUnit.NANOSECONDS) -class FlexBuffersBenchmark { +open class FlexBuffersBenchmark { var initialCapacity = 1024 var value: Double = 0.0 @@ -49,7 +48,7 @@ class FlexBuffersBenchmark { } @Benchmark - fun mapKotlin(blackhole: Blackhole) { + open fun mapKotlin(blackhole: Blackhole) { val kBuilder = FlexBuffersBuilder(initialCapacity, FlexBuffersBuilder.SHARE_KEYS_AND_STRINGS) kBuilder.putMap { this["hello"] = "world" @@ -72,7 +71,7 @@ class FlexBuffersBenchmark { } @Benchmark - fun mapJava(blackhole: Blackhole) { + open fun mapJava(blackhole: Blackhole) { val jBuilder = com.google.flatbuffers.FlexBuffersBuilder(ArrayReadWriteBuf(initialCapacity), BUILDER_FLAG_SHARE_ALL) val startMap = jBuilder.startMap() jBuilder.putString("hello", "world") @@ -102,7 +101,7 @@ class FlexBuffersBenchmark { } @Benchmark - fun intArrayKotlin(blackhole: Blackhole) { + open fun intArrayKotlin(blackhole: Blackhole) { val kBuilder = FlexBuffersBuilder(initialCapacity, FlexBuffersBuilder.SHARE_KEYS_AND_STRINGS) kBuilder.put(bigIntArray) val root = getRoot(kBuilder.finish()) @@ -110,7 +109,7 @@ class FlexBuffersBenchmark { } @Benchmark - fun intArrayJava(blackhole: Blackhole) { + open fun intArrayJava(blackhole: Blackhole) { val jBuilder = com.google.flatbuffers.FlexBuffersBuilder(ArrayReadWriteBuf(initialCapacity), BUILDER_FLAG_SHARE_ALL) val v = jBuilder.startVector() bigIntArray.forEach { jBuilder.putInt(it) } @@ -126,7 +125,7 @@ class FlexBuffersBenchmark { } @Benchmark - fun stringArrayKotlin(blackhole: Blackhole) { + open fun stringArrayKotlin(blackhole: Blackhole) { val kBuilder = FlexBuffersBuilder(initialCapacity, FlexBuffersBuilder.SHARE_KEYS_AND_STRINGS) kBuilder.putVector { stringValue.forEach { kBuilder.put(it) } } kBuilder.finish() @@ -136,7 +135,7 @@ class FlexBuffersBenchmark { } @Benchmark - fun stringArrayJava(blackhole: Blackhole) { + open fun stringArrayJava(blackhole: Blackhole) { val jBuilder = com.google.flatbuffers.FlexBuffersBuilder(ArrayReadWriteBuf(initialCapacity), BUILDER_FLAG_SHARE_ALL) val v = jBuilder.startVector() stringValue.forEach { jBuilder.putString(it) } @@ -148,7 +147,7 @@ class FlexBuffersBenchmark { } @Benchmark - fun stringMapKotlin(blackhole: Blackhole) { + open fun stringMapKotlin(blackhole: Blackhole) { val kBuilder = FlexBuffersBuilder(initialCapacity, FlexBuffersBuilder.SHARE_KEYS_AND_STRINGS) val pos = kBuilder.startMap() for (i in stringKey.indices) { @@ -165,7 +164,7 @@ class FlexBuffersBenchmark { } @Benchmark - fun stringMapBytIndexKotlin(blackhole: Blackhole) { + open fun stringMapBytIndexKotlin(blackhole: Blackhole) { val kBuilder = FlexBuffersBuilder(initialCapacity, FlexBuffersBuilder.SHARE_KEYS_AND_STRINGS) val pos = kBuilder.startMap() for (i in stringKey.indices) { @@ -180,7 +179,7 @@ class FlexBuffersBenchmark { } @Benchmark - fun stringMapJava(blackhole: Blackhole) { + open fun stringMapJava(blackhole: Blackhole) { val jBuilder = com.google.flatbuffers.FlexBuffersBuilder(ArrayReadWriteBuf(initialCapacity), BUILDER_FLAG_SHARE_ALL) val v = jBuilder.startMap() for (i in stringKey.indices) { diff --git a/kotlin/benchmark/src/jvmMain/kotlin/com/google/flatbuffers/kotlin/benchmark/JsonBenchmark.kt b/kotlin/benchmark/src/jvmMain/kotlin/com/google/flatbuffers/kotlin/benchmark/JsonBenchmark.kt index 7d2ae5079c..ad7688e866 100644 --- a/kotlin/benchmark/src/jvmMain/kotlin/com/google/flatbuffers/kotlin/benchmark/JsonBenchmark.kt +++ b/kotlin/benchmark/src/jvmMain/kotlin/com/google/flatbuffers/kotlin/benchmark/JsonBenchmark.kt @@ -41,7 +41,7 @@ import java.util.concurrent.TimeUnit @BenchmarkMode(Mode.AverageTime) @OutputTimeUnit(TimeUnit.MICROSECONDS) @Measurement(iterations = 100, time = 1, timeUnit = TimeUnit.MICROSECONDS) -class JsonBenchmark { +open class JsonBenchmark { final val moshi = Moshi.Builder() .addLast(KotlinJsonAdapterFactory()) @@ -76,46 +76,46 @@ class JsonBenchmark { // TWITTER @Benchmark - fun readTwitterFlexBuffers(hole: Blackhole? = null) = hole?.consume(readFlexBuffers(twitterData)) + open fun readTwitterFlexBuffers(hole: Blackhole? = null) = hole?.consume(readFlexBuffers(twitterData)) @Benchmark - fun readTwitterMoshi(hole: Blackhole?) = hole?.consume(readMoshi(twitterData)) + open fun readTwitterMoshi(hole: Blackhole?) = hole?.consume(readMoshi(twitterData)) @Benchmark - fun readTwitterGson(hole: Blackhole?) = hole?.consume(readGson(twitterData)) + open fun readTwitterGson(hole: Blackhole?) = hole?.consume(readGson(twitterData)) @Benchmark - fun roundTripTwitterFlexBuffers(hole: Blackhole? = null) = hole?.consume(readFlexBuffers(twitterData).toJson()) + open fun roundTripTwitterFlexBuffers(hole: Blackhole? = null) = hole?.consume(readFlexBuffers(twitterData).toJson()) @Benchmark - fun roundTripTwitterMoshi(hole: Blackhole?) = hole?.consume(moshiAdapter.toJson(readMoshi(twitterData))) + open fun roundTripTwitterMoshi(hole: Blackhole?) = hole?.consume(moshiAdapter.toJson(readMoshi(twitterData))) @Benchmark - fun roundTripTwitterGson(hole: Blackhole?) = hole?.consume(gson.toJson(readGson(twitterData))) + open fun roundTripTwitterGson(hole: Blackhole?) = hole?.consume(gson.toJson(readGson(twitterData))) // CITM @Benchmark - fun readCITMFlexBuffers(hole: Blackhole? = null) = hole?.consume(readFlexBuffers(citmData)) + open fun readCITMFlexBuffers(hole: Blackhole? = null) = hole?.consume(readFlexBuffers(citmData)) @Benchmark - fun readCITMMoshi(hole: Blackhole?) = hole?.consume(moshiAdapter.toJson(readMoshi(citmData))) + open fun readCITMMoshi(hole: Blackhole?) = hole?.consume(moshiAdapter.toJson(readMoshi(citmData))) @Benchmark - fun readCITMGson(hole: Blackhole?) = hole?.consume(gson.toJson(readGson(citmData))) + open fun readCITMGson(hole: Blackhole?) = hole?.consume(gson.toJson(readGson(citmData))) @Benchmark - fun roundTripCITMFlexBuffers(hole: Blackhole? = null) = hole?.consume(readFlexBuffers(citmData).toJson()) + open fun roundTripCITMFlexBuffers(hole: Blackhole? = null) = hole?.consume(readFlexBuffers(citmData).toJson()) @Benchmark - fun roundTripCITMMoshi(hole: Blackhole?) = hole?.consume(moshiAdapter.toJson(readMoshi(citmData))) + open fun roundTripCITMMoshi(hole: Blackhole?) = hole?.consume(moshiAdapter.toJson(readMoshi(citmData))) @Benchmark - fun roundTripCITMGson(hole: Blackhole?) = hole?.consume(gson.toJson(readGson(citmData))) + open fun roundTripCITMGson(hole: Blackhole?) = hole?.consume(gson.toJson(readGson(citmData))) @Benchmark - fun writeCITMFlexBuffers(hole: Blackhole? = null) = hole?.consume(fbCitmRef.toJson()) + open fun writeCITMFlexBuffers(hole: Blackhole? = null) = hole?.consume(fbCitmRef.toJson()) @Benchmark - fun writeCITMMoshi(hole: Blackhole?) = hole?.consume(moshiAdapter.toJson(moshiCitmRef)) + open fun writeCITMMoshi(hole: Blackhole?) = hole?.consume(moshiAdapter.toJson(moshiCitmRef)) @Benchmark - fun writeCITMGson(hole: Blackhole?) = hole?.consume(gson.toJson(gsonCitmRef)) + open fun writeCITMGson(hole: Blackhole?) = hole?.consume(gson.toJson(gsonCitmRef)) // CANADA @Benchmark - fun readCanadaFlexBuffers(hole: Blackhole? = null) = hole?.consume(readFlexBuffers(canadaData)) + open fun readCanadaFlexBuffers(hole: Blackhole? = null) = hole?.consume(readFlexBuffers(canadaData)) @Benchmark - fun readCanadaMoshi(hole: Blackhole?) = hole?.consume(readMoshi(canadaData)) + open fun readCanadaMoshi(hole: Blackhole?) = hole?.consume(readMoshi(canadaData)) @Benchmark - fun readCanadaGson(hole: Blackhole?) = hole?.consume(readGson(canadaData)) + open fun readCanadaGson(hole: Blackhole?) = hole?.consume(readGson(canadaData)) } diff --git a/kotlin/build.gradle.kts b/kotlin/build.gradle.kts index b18907560e..8778c8663c 100644 --- a/kotlin/build.gradle.kts +++ b/kotlin/build.gradle.kts @@ -1,7 +1,3 @@ -plugins { - id("com.diffplug.spotless") version "6.3.0" -} - group = "com.google.flatbuffers" version = "2.0.0-SNAPSHOT" @@ -12,7 +8,10 @@ buildscript { mavenCentral() } dependencies { - classpath(libs.bundles.plugins) + classpath(libs.plugin.kotlin.gradle) + classpath(libs.plugin.kotlinx.benchmark) + classpath(libs.plugin.jmhreport) + classpath(libs.plugin.download) } } @@ -22,21 +21,3 @@ allprojects { mavenCentral() } } - -// plugin used to enforce code style -spotless { - val klintConfig = mapOf("indent_size" to "2", "continuation_indent_size" to "2") - kotlin { - target("**/*.kt") - ktlint("0.40.0").userData(klintConfig) - trimTrailingWhitespace() - indentWithSpaces() - endWithNewline() - licenseHeaderFile("$rootDir/spotless/spotless.kt").updateYearWithLatest(false) - targetExclude("**/spotless.kt", "**/build/**") - } - kotlinGradle { - target("*.gradle.kts") - ktlint().userData(klintConfig) - } -} diff --git a/kotlin/gradle/libs.versions.toml b/kotlin/gradle/libs.versions.toml index 089f7e7869..e3230b7da4 100644 --- a/kotlin/gradle/libs.versions.toml +++ b/kotlin/gradle/libs.versions.toml @@ -1,20 +1,19 @@ [versions] -plugin-kotlin = "1.6.10" +kotlin = "1.7.21" plugin-gver = "0.42.0" -kotlinx-benchmark-runtime = "0.4.2" +kotlinx-benchmark = "0.4.6" junit = "4.12" gson = "2.8.5" moshi-kotlin = "1.11.0" [libraries] +kotlin-compiler = { module = "org.jetbrains.kotlin:kotlin-compiler", version.ref = "kotlin" } moshi-kotlin = { module = "com.squareup.moshi:moshi-kotlin", version.ref = "moshi-kotlin" } gson = { module = "com.google.code.gson:gson", version.ref = "gson" } -kotlinx-benchmark-runtime = { module = "org.jetbrains.kotlinx:kotlinx-benchmark-runtime", version.ref = "kotlinx-benchmark-runtime" } -plugin-kotlin = { module = "org.jetbrains.kotlin:kotlin-gradle-plugin", version.ref = "plugin-kotlin" } -plugin-kotlin-serialization = { module = "org.jetbrains.kotlin:kotlin-serialization", version.ref = "plugin-kotlin" } +kotlinx-benchmark-runtime = { module = "org.jetbrains.kotlinx:kotlinx-benchmark-runtime", version.ref = "kotlinx-benchmark" } plugin-gver = { module = "com.github.ben-manes:gradle-versions-plugin", version.ref = "plugin-gver" } - +plugin-kotlin-gradle = { module = "org.jetbrains.kotlin:kotlin-gradle-plugin", version.ref = "kotlin" } +plugin-kotlinx-benchmark = { module="org.jetbrains.kotlinx:kotlinx-benchmark-plugin", version.ref="kotlinx-benchmark"} +plugin-jmhreport = { module = "gradle.plugin.io.morethan.jmhreport:gradle-jmh-report", version="0.9.0" } +plugin-download = { module = "de.undercouch:gradle-download-task", version = "5.3.0"} junit = { module="junit:junit", version.ref="junit"} - -[bundles] -plugins = ["plugin-kotlin", "plugin-kotlin-serialization", "plugin-gver"] diff --git a/kotlin/gradle/wrapper/gradle-wrapper.properties b/kotlin/gradle/wrapper/gradle-wrapper.properties index aa991fceae..f72df95a7e 100644 --- a/kotlin/gradle/wrapper/gradle-wrapper.properties +++ b/kotlin/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.4.2-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.0.1-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists From 3e778aca4d7ab763835a8130b909554f44f844df Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Luis=20Mill=C3=A1n?= Date: Fri, 3 Mar 2023 08:35:59 +0100 Subject: [PATCH 128/571] TS/JS: Export object based classes on entry (#7822) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * TS/JS: Export object based classes on entry Along with the non object ones, for consistency. This is a regression introduced recently. Before: `export { UpdateSettingsRequest } from './worker/update-settings-request.js';` Now: `export { UpdateSettingsRequest, UpdateSettingsRequestT } from './worker/update-settings-request.js';` * only export object based classes for structs Enums are not elegible. --------- Co-authored-by: Björn Harrtell Co-authored-by: Derek Bailey --- src/idl_gen_ts.cpp | 10 ++++-- .../arrays_test_complex_generated.cjs | 9 ++++++ .../arrays_test_complex/my-game/example.d.ts | 10 +++--- .../ts/arrays_test_complex/my-game/example.js | 10 +++--- .../ts/arrays_test_complex/my-game/example.ts | 10 +++--- tests/ts/monster_test.d.ts | 2 +- tests/ts/monster_test.js | 2 +- tests/ts/monster_test.ts | 2 +- tests/ts/monster_test_generated.cjs | 31 ++++++++++++++++--- tests/ts/my-game.d.ts | 2 +- tests/ts/my-game.js | 2 +- tests/ts/my-game.ts | 2 +- tests/ts/my-game/example.d.ts | 20 ++++++------ tests/ts/my-game/example.js | 20 ++++++------ tests/ts/my-game/example.ts | 20 ++++++------ tests/ts/my-game/example2.d.ts | 2 +- tests/ts/my-game/example2.js | 2 +- tests/ts/my-game/example2.ts | 2 +- tests/ts/my-game/other-name-space.d.ts | 4 +-- tests/ts/my-game/other-name-space.js | 4 +-- tests/ts/my-game/other-name-space.ts | 4 +-- tests/ts/reflection.d.ts | 18 +++++------ tests/ts/reflection.js | 18 +++++------ tests/ts/reflection.ts | 18 +++++------ tests/ts/typescript_keywords_generated.cjs | 28 ++++++++++++++++- tests/ts/union_vector/union_vector.d.ts | 12 +++---- tests/ts/union_vector/union_vector.js | 12 +++---- tests/ts/union_vector/union_vector.ts | 12 +++---- .../union_vector/union_vector_generated.cjs | 12 ++++++- 29 files changed, 187 insertions(+), 113 deletions(-) diff --git a/src/idl_gen_ts.cpp b/src/idl_gen_ts.cpp index a3e1f1274f..af0836acfd 100644 --- a/src/idl_gen_ts.cpp +++ b/src/idl_gen_ts.cpp @@ -255,7 +255,6 @@ class TsGenerator : public BaseGenerator { for (const auto &it : ns_defs_) { code = "// " + std::string(FlatBuffersGeneratedWarning()) + "\n\n"; - // export all definitions in ns entry point module int export_counter = 0; for (const auto &def : it.second.definitions) { @@ -281,7 +280,14 @@ class TsGenerator : public BaseGenerator { base_name_rel += base_file_name; auto ts_file_path_rel = base_name_rel + ".ts"; auto type_name = def.first; - code += "export { " + type_name + " } from '"; + auto fully_qualified_type_name = + it.second.ns->GetFullyQualifiedName(type_name); + auto is_struct = parser_.structs_.Lookup(fully_qualified_type_name); + code += "export { " + type_name; + if (parser_.opts.generate_object_based_api && is_struct) { + code += ", " + type_name + parser_.opts.object_suffix; + } + code += " } from '"; std::string import_extension = parser_.opts.ts_no_import_ext ? "" : ".js"; code += base_name_rel + import_extension + "';\n"; diff --git a/tests/ts/arrays_test_complex/arrays_test_complex_generated.cjs b/tests/ts/arrays_test_complex/arrays_test_complex_generated.cjs index 35f3db731b..ec2df6334e 100644 --- a/tests/ts/arrays_test_complex/arrays_test_complex_generated.cjs +++ b/tests/ts/arrays_test_complex/arrays_test_complex_generated.cjs @@ -18,6 +18,10 @@ var __copyProps = (to, from, except, desc) => { 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 )); @@ -27,10 +31,15 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru 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); diff --git a/tests/ts/arrays_test_complex/my-game/example.d.ts b/tests/ts/arrays_test_complex/my-game/example.d.ts index 93eb52518e..a3c1a81e12 100644 --- a/tests/ts/arrays_test_complex/my-game/example.d.ts +++ b/tests/ts/arrays_test_complex/my-game/example.d.ts @@ -1,6 +1,6 @@ -export { ArrayStruct } from './example/array-struct.js'; -export { ArrayTable } from './example/array-table.js'; -export { InnerStruct } from './example/inner-struct.js'; -export { NestedStruct } from './example/nested-struct.js'; -export { OuterStruct } from './example/outer-struct.js'; +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'; diff --git a/tests/ts/arrays_test_complex/my-game/example.js b/tests/ts/arrays_test_complex/my-game/example.js index bc149dab9c..78d5ab6944 100644 --- a/tests/ts/arrays_test_complex/my-game/example.js +++ b/tests/ts/arrays_test_complex/my-game/example.js @@ -1,7 +1,7 @@ // automatically generated by the FlatBuffers compiler, do not modify -export { ArrayStruct } from './example/array-struct.js'; -export { ArrayTable } from './example/array-table.js'; -export { InnerStruct } from './example/inner-struct.js'; -export { NestedStruct } from './example/nested-struct.js'; -export { OuterStruct } from './example/outer-struct.js'; +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'; diff --git a/tests/ts/arrays_test_complex/my-game/example.ts b/tests/ts/arrays_test_complex/my-game/example.ts index 9643b93b1b..da12160851 100644 --- a/tests/ts/arrays_test_complex/my-game/example.ts +++ b/tests/ts/arrays_test_complex/my-game/example.ts @@ -1,8 +1,8 @@ // automatically generated by the FlatBuffers compiler, do not modify -export { ArrayStruct } from './example/array-struct.js'; -export { ArrayTable } from './example/array-table.js'; -export { InnerStruct } from './example/inner-struct.js'; -export { NestedStruct } from './example/nested-struct.js'; -export { OuterStruct } from './example/outer-struct.js'; +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'; diff --git a/tests/ts/monster_test.d.ts b/tests/ts/monster_test.d.ts index b8d81d45fc..e89d898e45 100644 --- a/tests/ts/monster_test.d.ts +++ b/tests/ts/monster_test.d.ts @@ -1,2 +1,2 @@ -export { TableA } from './table-a.js'; +export { TableA, TableAT } from './table-a.js'; export * as MyGame from './my-game.js'; diff --git a/tests/ts/monster_test.js b/tests/ts/monster_test.js index da2897c6e9..a378544c26 100644 --- a/tests/ts/monster_test.js +++ b/tests/ts/monster_test.js @@ -1,3 +1,3 @@ // automatically generated by the FlatBuffers compiler, do not modify -export { TableA } from './table-a.js'; +export { TableA, TableAT } from './table-a.js'; export * as MyGame from './my-game.js'; diff --git a/tests/ts/monster_test.ts b/tests/ts/monster_test.ts index 771db3b38e..7aebadfe57 100644 --- a/tests/ts/monster_test.ts +++ b/tests/ts/monster_test.ts @@ -1,4 +1,4 @@ // automatically generated by the FlatBuffers compiler, do not modify -export { TableA } from './table-a.js'; +export { TableA, TableAT } from './table-a.js'; export * as MyGame from './my-game.js'; diff --git a/tests/ts/monster_test_generated.cjs b/tests/ts/monster_test_generated.cjs index eafb6a4ae9..8eb338e680 100644 --- a/tests/ts/monster_test_generated.cjs +++ b/tests/ts/monster_test_generated.cjs @@ -18,6 +18,10 @@ var __copyProps = (to, from, except, desc) => { 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 )); @@ -27,7 +31,8 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru var monster_test_exports = {}; __export(monster_test_exports, { MyGame: () => my_game_exports, - TableA: () => TableA + TableA: () => TableA, + TableAT: () => TableAT }); module.exports = __toCommonJS(monster_test_exports); @@ -167,6 +172,7 @@ __export(my_game_exports, { Example: () => example_exports, Example2: () => example2_exports, InParentNamespace: () => InParentNamespace, + InParentNamespaceT: () => InParentNamespaceT, OtherNameSpace: () => other_name_space_exports }); @@ -227,21 +233,31 @@ var InParentNamespaceT = class { var example_exports = {}; __export(example_exports, { Ability: () => Ability, + AbilityT: () => AbilityT, Any: () => Any, AnyAmbiguousAliases: () => AnyAmbiguousAliases, AnyUniqueAliases: () => AnyUniqueAliases, Color: () => Color, LongEnum: () => LongEnum, Monster: () => Monster2, + MonsterT: () => MonsterT2, Race: () => Race, Referrable: () => Referrable, + ReferrableT: () => ReferrableT, Stat: () => Stat, + StatT: () => StatT, StructOfStructs: () => StructOfStructs, StructOfStructsOfStructs: () => StructOfStructsOfStructs, + StructOfStructsOfStructsT: () => StructOfStructsOfStructsT, + StructOfStructsT: () => StructOfStructsT, Test: () => Test, TestSimpleTableWithEnum: () => TestSimpleTableWithEnum, + TestSimpleTableWithEnumT: () => TestSimpleTableWithEnumT, + TestT: () => TestT, TypeAliases: () => TypeAliases, - Vec3: () => Vec3 + TypeAliasesT: () => TypeAliasesT, + Vec3: () => Vec3, + Vec3T: () => Vec3T }); // my-game/example/ability.js @@ -916,6 +932,10 @@ var Monster2 = class { const offset = this.bb.__offset(this.bb_pos, 24); return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; } + /** + * an example documentation comment: this will end up in the generated code + * multiline too + */ testarrayoftables(index, obj) { const offset = this.bb.__offset(this.bb_pos, 26); return offset ? (obj || new Monster2()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; @@ -2502,7 +2522,8 @@ var TypeAliasesT = class { // my-game/example2.js var example2_exports = {}; __export(example2_exports, { - Monster: () => Monster + Monster: () => Monster, + MonsterT: () => MonsterT }); // my-game/other-name-space.js @@ -2510,7 +2531,9 @@ var other_name_space_exports = {}; __export(other_name_space_exports, { FromInclude: () => FromInclude, TableB: () => TableB, - Unused: () => Unused + TableBT: () => TableBT, + Unused: () => Unused, + UnusedT: () => UnusedT }); // my-game/other-name-space/from-include.js diff --git a/tests/ts/my-game.d.ts b/tests/ts/my-game.d.ts index b7f6e9d3f0..e82f8a3136 100644 --- a/tests/ts/my-game.d.ts +++ b/tests/ts/my-game.d.ts @@ -1,4 +1,4 @@ -export { InParentNamespace } from './my-game/in-parent-namespace.js'; +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'; diff --git a/tests/ts/my-game.js b/tests/ts/my-game.js index 9db431c160..75f4582044 100644 --- a/tests/ts/my-game.js +++ b/tests/ts/my-game.js @@ -1,5 +1,5 @@ // automatically generated by the FlatBuffers compiler, do not modify -export { InParentNamespace } from './my-game/in-parent-namespace.js'; +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'; diff --git a/tests/ts/my-game.ts b/tests/ts/my-game.ts index 017791646a..8981f325dc 100644 --- a/tests/ts/my-game.ts +++ b/tests/ts/my-game.ts @@ -1,6 +1,6 @@ // automatically generated by the FlatBuffers compiler, do not modify -export { InParentNamespace } from './my-game/in-parent-namespace.js'; +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'; diff --git a/tests/ts/my-game/example.d.ts b/tests/ts/my-game/example.d.ts index 076bdf58c4..a09b7f849a 100644 --- a/tests/ts/my-game/example.d.ts +++ b/tests/ts/my-game/example.d.ts @@ -1,16 +1,16 @@ -export { Ability } from './example/ability.js'; +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 } from './example/monster.js'; +export { Monster, MonsterT } from './example/monster.js'; export { Race } from './example/race.js'; -export { Referrable } from './example/referrable.js'; -export { Stat } from './example/stat.js'; -export { StructOfStructs } from './example/struct-of-structs.js'; -export { StructOfStructsOfStructs } from './example/struct-of-structs-of-structs.js'; -export { Test } from './example/test.js'; -export { TestSimpleTableWithEnum } from './example/test-simple-table-with-enum.js'; -export { TypeAliases } from './example/type-aliases.js'; -export { Vec3 } from './example/vec3.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'; diff --git a/tests/ts/my-game/example.js b/tests/ts/my-game/example.js index e0236541d0..d7e502db53 100644 --- a/tests/ts/my-game/example.js +++ b/tests/ts/my-game/example.js @@ -1,17 +1,17 @@ // automatically generated by the FlatBuffers compiler, do not modify -export { Ability } from './example/ability.js'; +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 } from './example/monster.js'; +export { Monster, MonsterT } from './example/monster.js'; export { Race } from './example/race.js'; -export { Referrable } from './example/referrable.js'; -export { Stat } from './example/stat.js'; -export { StructOfStructs } from './example/struct-of-structs.js'; -export { StructOfStructsOfStructs } from './example/struct-of-structs-of-structs.js'; -export { Test } from './example/test.js'; -export { TestSimpleTableWithEnum } from './example/test-simple-table-with-enum.js'; -export { TypeAliases } from './example/type-aliases.js'; -export { Vec3 } from './example/vec3.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'; diff --git a/tests/ts/my-game/example.ts b/tests/ts/my-game/example.ts index fbfb45d5e5..80ddc487e9 100644 --- a/tests/ts/my-game/example.ts +++ b/tests/ts/my-game/example.ts @@ -1,18 +1,18 @@ // automatically generated by the FlatBuffers compiler, do not modify -export { Ability } from './example/ability.js'; +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 } from './example/monster.js'; +export { Monster, MonsterT } from './example/monster.js'; export { Race } from './example/race.js'; -export { Referrable } from './example/referrable.js'; -export { Stat } from './example/stat.js'; -export { StructOfStructs } from './example/struct-of-structs.js'; -export { StructOfStructsOfStructs } from './example/struct-of-structs-of-structs.js'; -export { Test } from './example/test.js'; -export { TestSimpleTableWithEnum } from './example/test-simple-table-with-enum.js'; -export { TypeAliases } from './example/type-aliases.js'; -export { Vec3 } from './example/vec3.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'; diff --git a/tests/ts/my-game/example2.d.ts b/tests/ts/my-game/example2.d.ts index 6d0d750861..4aebab9710 100644 --- a/tests/ts/my-game/example2.d.ts +++ b/tests/ts/my-game/example2.d.ts @@ -1 +1 @@ -export { Monster } from './example2/monster.js'; +export { Monster, MonsterT } from './example2/monster.js'; diff --git a/tests/ts/my-game/example2.js b/tests/ts/my-game/example2.js index edab044cad..796233a3a2 100644 --- a/tests/ts/my-game/example2.js +++ b/tests/ts/my-game/example2.js @@ -1,2 +1,2 @@ // automatically generated by the FlatBuffers compiler, do not modify -export { Monster } from './example2/monster.js'; +export { Monster, MonsterT } from './example2/monster.js'; diff --git a/tests/ts/my-game/example2.ts b/tests/ts/my-game/example2.ts index faf5b6381f..bc48a5cb8c 100644 --- a/tests/ts/my-game/example2.ts +++ b/tests/ts/my-game/example2.ts @@ -1,3 +1,3 @@ // automatically generated by the FlatBuffers compiler, do not modify -export { Monster } from './example2/monster.js'; +export { Monster, MonsterT } from './example2/monster.js'; diff --git a/tests/ts/my-game/other-name-space.d.ts b/tests/ts/my-game/other-name-space.d.ts index d6cab69e85..3152eff5d3 100644 --- a/tests/ts/my-game/other-name-space.d.ts +++ b/tests/ts/my-game/other-name-space.d.ts @@ -1,3 +1,3 @@ export { FromInclude } from './other-name-space/from-include.js'; -export { TableB } from './other-name-space/table-b.js'; -export { Unused } from './other-name-space/unused.js'; +export { TableB, TableBT } from './other-name-space/table-b.js'; +export { Unused, UnusedT } from './other-name-space/unused.js'; diff --git a/tests/ts/my-game/other-name-space.js b/tests/ts/my-game/other-name-space.js index 12e8e5a6a2..bc3afbfbb9 100644 --- a/tests/ts/my-game/other-name-space.js +++ b/tests/ts/my-game/other-name-space.js @@ -1,4 +1,4 @@ // automatically generated by the FlatBuffers compiler, do not modify export { FromInclude } from './other-name-space/from-include.js'; -export { TableB } from './other-name-space/table-b.js'; -export { Unused } from './other-name-space/unused.js'; +export { TableB, TableBT } from './other-name-space/table-b.js'; +export { Unused, UnusedT } from './other-name-space/unused.js'; diff --git a/tests/ts/my-game/other-name-space.ts b/tests/ts/my-game/other-name-space.ts index ea4a261ff0..eb3679fbab 100644 --- a/tests/ts/my-game/other-name-space.ts +++ b/tests/ts/my-game/other-name-space.ts @@ -1,5 +1,5 @@ // automatically generated by the FlatBuffers compiler, do not modify export { FromInclude } from './other-name-space/from-include.js'; -export { TableB } from './other-name-space/table-b.js'; -export { Unused } from './other-name-space/unused.js'; +export { TableB, TableBT } from './other-name-space/table-b.js'; +export { Unused, UnusedT } from './other-name-space/unused.js'; diff --git a/tests/ts/reflection.d.ts b/tests/ts/reflection.d.ts index f296e54f0b..5e1f87694e 100644 --- a/tests/ts/reflection.d.ts +++ b/tests/ts/reflection.d.ts @@ -1,12 +1,12 @@ export { AdvancedFeatures } from './reflection/advanced-features.js'; export { BaseType } from './reflection/base-type.js'; -export { Enum } from './reflection/enum.js'; -export { EnumVal } from './reflection/enum-val.js'; -export { Field } from './reflection/field.js'; -export { KeyValue } from './reflection/key-value.js'; +export { Enum, EnumT } from './reflection/enum.js'; +export { EnumVal, EnumValT } from './reflection/enum-val.js'; +export { Field, FieldT } from './reflection/field.js'; +export { KeyValue, KeyValueT } from './reflection/key-value.js'; export { Object_ } from './reflection/object.js'; -export { RPCCall } from './reflection/rpccall.js'; -export { Schema } from './reflection/schema.js'; -export { SchemaFile } from './reflection/schema-file.js'; -export { Service } from './reflection/service.js'; -export { Type } from './reflection/type.js'; +export { RPCCall, RPCCallT } from './reflection/rpccall.js'; +export { Schema, SchemaT } from './reflection/schema.js'; +export { SchemaFile, SchemaFileT } from './reflection/schema-file.js'; +export { Service, ServiceT } from './reflection/service.js'; +export { Type, TypeT } from './reflection/type.js'; diff --git a/tests/ts/reflection.js b/tests/ts/reflection.js index 881519a286..b323972458 100644 --- a/tests/ts/reflection.js +++ b/tests/ts/reflection.js @@ -1,13 +1,13 @@ // automatically generated by the FlatBuffers compiler, do not modify export { AdvancedFeatures } from './reflection/advanced-features.js'; export { BaseType } from './reflection/base-type.js'; -export { Enum } from './reflection/enum.js'; -export { EnumVal } from './reflection/enum-val.js'; -export { Field } from './reflection/field.js'; -export { KeyValue } from './reflection/key-value.js'; +export { Enum, EnumT } from './reflection/enum.js'; +export { EnumVal, EnumValT } from './reflection/enum-val.js'; +export { Field, FieldT } from './reflection/field.js'; +export { KeyValue, KeyValueT } from './reflection/key-value.js'; export { Object_ } from './reflection/object.js'; -export { RPCCall } from './reflection/rpccall.js'; -export { Schema } from './reflection/schema.js'; -export { SchemaFile } from './reflection/schema-file.js'; -export { Service } from './reflection/service.js'; -export { Type } from './reflection/type.js'; +export { RPCCall, RPCCallT } from './reflection/rpccall.js'; +export { Schema, SchemaT } from './reflection/schema.js'; +export { SchemaFile, SchemaFileT } from './reflection/schema-file.js'; +export { Service, ServiceT } from './reflection/service.js'; +export { Type, TypeT } from './reflection/type.js'; diff --git a/tests/ts/reflection.ts b/tests/ts/reflection.ts index 8440332d16..d62f1dcf5e 100644 --- a/tests/ts/reflection.ts +++ b/tests/ts/reflection.ts @@ -2,13 +2,13 @@ export { AdvancedFeatures } from './reflection/advanced-features.js'; export { BaseType } from './reflection/base-type.js'; -export { Enum } from './reflection/enum.js'; -export { EnumVal } from './reflection/enum-val.js'; -export { Field } from './reflection/field.js'; -export { KeyValue } from './reflection/key-value.js'; +export { Enum, EnumT } from './reflection/enum.js'; +export { EnumVal, EnumValT } from './reflection/enum-val.js'; +export { Field, FieldT } from './reflection/field.js'; +export { KeyValue, KeyValueT } from './reflection/key-value.js'; export { Object_ } from './reflection/object.js'; -export { RPCCall } from './reflection/rpccall.js'; -export { Schema } from './reflection/schema.js'; -export { SchemaFile } from './reflection/schema-file.js'; -export { Service } from './reflection/service.js'; -export { Type } from './reflection/type.js'; +export { RPCCall, RPCCallT } from './reflection/rpccall.js'; +export { Schema, SchemaT } from './reflection/schema.js'; +export { SchemaFile, SchemaFileT } from './reflection/schema-file.js'; +export { Service, ServiceT } from './reflection/service.js'; +export { Type, TypeT } from './reflection/type.js'; diff --git a/tests/ts/typescript_keywords_generated.cjs b/tests/ts/typescript_keywords_generated.cjs index 6560143608..5e2e1a870a 100644 --- a/tests/ts/typescript_keywords_generated.cjs +++ b/tests/ts/typescript_keywords_generated.cjs @@ -18,6 +18,10 @@ var __copyProps = (to, from, except, desc) => { 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 )); @@ -50,15 +54,24 @@ __export(reflection_exports, { AdvancedFeatures: () => AdvancedFeatures, BaseType: () => BaseType, Enum: () => Enum, + EnumT: () => EnumT, EnumVal: () => EnumVal, + EnumValT: () => EnumValT, Field: () => Field, + FieldT: () => FieldT, KeyValue: () => KeyValue, + KeyValueT: () => KeyValueT, Object_: () => Object_, RPCCall: () => RPCCall, + RPCCallT: () => RPCCallT, Schema: () => Schema, SchemaFile: () => SchemaFile, + SchemaFileT: () => SchemaFileT, + SchemaT: () => SchemaT, Service: () => Service, - Type: () => Type + ServiceT: () => ServiceT, + Type: () => Type, + TypeT: () => TypeT }); // reflection/advanced-features.js @@ -237,6 +250,9 @@ var Type = class { this.bb.writeUint16(this.bb_pos + offset, value); return true; } + /** + * The size (octets) of the `base_type` field. + */ baseSize() { const offset = this.bb.__offset(this.bb_pos, 12); return offset ? this.bb.readUint32(this.bb_pos + offset) : 4; @@ -249,6 +265,9 @@ var Type = class { this.bb.writeUint32(this.bb_pos + offset, value); return true; } + /** + * The size (octets) of the `element` field, if present. + */ elementSize() { const offset = this.bb.__offset(this.bb_pos, 14); return offset ? this.bb.readUint32(this.bb_pos + offset) : 0; @@ -770,6 +789,9 @@ var Field = class { this.bb.writeInt8(this.bb_pos + offset, +value); return true; } + /** + * Number of padding octets to always add after this field. Structs only. + */ padding() { const offset = this.bb.__offset(this.bb_pos, 28); return offset ? this.bb.readUint16(this.bb_pos + offset) : 0; @@ -1542,6 +1564,10 @@ var Schema = class { this.bb.writeUint64(this.bb_pos + offset, value); return true; } + /** + * All the files used in this compilation. Files are relative to where + * flatc was invoked. + */ fbsFiles(index, obj) { const offset = this.bb.__offset(this.bb_pos, 18); return offset ? (obj || new SchemaFile()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; diff --git a/tests/ts/union_vector/union_vector.d.ts b/tests/ts/union_vector/union_vector.d.ts index 3e2be4f470..ebd93797f7 100644 --- a/tests/ts/union_vector/union_vector.d.ts +++ b/tests/ts/union_vector/union_vector.d.ts @@ -1,8 +1,8 @@ -export { Attacker } from './attacker.js'; -export { BookReader } from './book-reader.js'; +export { Attacker, AttackerT } from './attacker.js'; +export { BookReader, BookReaderT } from './book-reader.js'; export { Character } from './character.js'; -export { FallingTub } from './falling-tub.js'; +export { FallingTub, FallingTubT } from './falling-tub.js'; export { Gadget } from './gadget.js'; -export { HandFan } from './hand-fan.js'; -export { Movie } from './movie.js'; -export { Rapunzel } from './rapunzel.js'; +export { HandFan, HandFanT } from './hand-fan.js'; +export { Movie, MovieT } from './movie.js'; +export { Rapunzel, RapunzelT } from './rapunzel.js'; diff --git a/tests/ts/union_vector/union_vector.js b/tests/ts/union_vector/union_vector.js index 29b895f59f..3e9b22bd71 100644 --- a/tests/ts/union_vector/union_vector.js +++ b/tests/ts/union_vector/union_vector.js @@ -1,9 +1,9 @@ // automatically generated by the FlatBuffers compiler, do not modify -export { Attacker } from './attacker.js'; -export { BookReader } from './book-reader.js'; +export { Attacker, AttackerT } from './attacker.js'; +export { BookReader, BookReaderT } from './book-reader.js'; export { Character } from './character.js'; -export { FallingTub } from './falling-tub.js'; +export { FallingTub, FallingTubT } from './falling-tub.js'; export { Gadget } from './gadget.js'; -export { HandFan } from './hand-fan.js'; -export { Movie } from './movie.js'; -export { Rapunzel } from './rapunzel.js'; +export { HandFan, HandFanT } from './hand-fan.js'; +export { Movie, MovieT } from './movie.js'; +export { Rapunzel, RapunzelT } from './rapunzel.js'; diff --git a/tests/ts/union_vector/union_vector.ts b/tests/ts/union_vector/union_vector.ts index 22209859ec..79401d2bc9 100644 --- a/tests/ts/union_vector/union_vector.ts +++ b/tests/ts/union_vector/union_vector.ts @@ -1,10 +1,10 @@ // automatically generated by the FlatBuffers compiler, do not modify -export { Attacker } from './attacker.js'; -export { BookReader } from './book-reader.js'; +export { Attacker, AttackerT } from './attacker.js'; +export { BookReader, BookReaderT } from './book-reader.js'; export { Character } from './character.js'; -export { FallingTub } from './falling-tub.js'; +export { FallingTub, FallingTubT } from './falling-tub.js'; export { Gadget } from './gadget.js'; -export { HandFan } from './hand-fan.js'; -export { Movie } from './movie.js'; -export { Rapunzel } from './rapunzel.js'; +export { HandFan, HandFanT } from './hand-fan.js'; +export { Movie, MovieT } from './movie.js'; +export { Rapunzel, RapunzelT } from './rapunzel.js'; diff --git a/tests/ts/union_vector/union_vector_generated.cjs b/tests/ts/union_vector/union_vector_generated.cjs index 0677b13754..b63140cd68 100644 --- a/tests/ts/union_vector/union_vector_generated.cjs +++ b/tests/ts/union_vector/union_vector_generated.cjs @@ -18,6 +18,10 @@ var __copyProps = (to, from, except, desc) => { 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 )); @@ -27,13 +31,19 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru var union_vector_exports = {}; __export(union_vector_exports, { Attacker: () => Attacker, + AttackerT: () => AttackerT, BookReader: () => BookReader, + BookReaderT: () => BookReaderT, Character: () => Character, FallingTub: () => FallingTub, + FallingTubT: () => FallingTubT, Gadget: () => Gadget, HandFan: () => HandFan, + HandFanT: () => HandFanT, Movie: () => Movie, - Rapunzel: () => Rapunzel + MovieT: () => MovieT, + Rapunzel: () => Rapunzel, + RapunzelT: () => RapunzelT }); module.exports = __toCommonJS(union_vector_exports); From de9791e0a9ab8008c72ef4f3a36e08f3ce236f72 Mon Sep 17 00:00:00 2001 From: CodeMaster7000 <95772109+CodeMaster7000@users.noreply.github.com> Date: Fri, 3 Mar 2023 07:47:54 +0000 Subject: [PATCH 129/571] Update pom.xml (#7849) Co-authored-by: Derek Bailey --- java/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/java/pom.xml b/java/pom.xml index c2883b7f19..c9a1a2adfd 100644 --- a/java/pom.xml +++ b/java/pom.xml @@ -25,7 +25,7 @@ Apache License V2.0 - https://raw.githubusercontent.com/google/flatbuffers/master/LICENSE.txt + https://raw.githubusercontent.com/google/flatbuffers/master/LICENSE repo From 6f9ea7c23cd1683360b5f4c42e3f07a9483c66f4 Mon Sep 17 00:00:00 2001 From: Chuck Atkins <320135+chuckatkins@users.noreply.github.com> Date: Fri, 3 Mar 2023 14:14:07 -0500 Subject: [PATCH 130/571] Add Java reflection bindings to the distribution (#7851) The distributions for C++ and Python include the generated reflection bindings but are currently missing from the other language packages. This will bring the Java package generated for releases closer to feature parity with the C++ and Python release artifacts. --- .../reflection/AdvancedFeatures.java | 16 ++ .../flatbuffers/reflection/BaseType.java | 32 ++++ .../google/flatbuffers/reflection/Enum.java | 135 ++++++++++++++++ .../flatbuffers/reflection/EnumVal.java | 116 ++++++++++++++ .../google/flatbuffers/reflection/Field.java | 148 ++++++++++++++++++ .../flatbuffers/reflection/KeyValue.java | 88 +++++++++++ .../google/flatbuffers/reflection/Object.java | 137 ++++++++++++++++ .../flatbuffers/reflection/RPCCall.java | 115 ++++++++++++++ .../google/flatbuffers/reflection/Schema.java | 127 +++++++++++++++ .../flatbuffers/reflection/SchemaFile.java | 102 ++++++++++++ .../flatbuffers/reflection/Service.java | 124 +++++++++++++++ .../google/flatbuffers/reflection/Type.java | 79 ++++++++++ scripts/generate_code.py | 6 + 13 files changed, 1225 insertions(+) create mode 100644 java/src/main/java/com/google/flatbuffers/reflection/AdvancedFeatures.java create mode 100644 java/src/main/java/com/google/flatbuffers/reflection/BaseType.java create mode 100644 java/src/main/java/com/google/flatbuffers/reflection/Enum.java create mode 100644 java/src/main/java/com/google/flatbuffers/reflection/EnumVal.java create mode 100644 java/src/main/java/com/google/flatbuffers/reflection/Field.java create mode 100644 java/src/main/java/com/google/flatbuffers/reflection/KeyValue.java create mode 100644 java/src/main/java/com/google/flatbuffers/reflection/Object.java create mode 100644 java/src/main/java/com/google/flatbuffers/reflection/RPCCall.java create mode 100644 java/src/main/java/com/google/flatbuffers/reflection/Schema.java create mode 100644 java/src/main/java/com/google/flatbuffers/reflection/SchemaFile.java create mode 100644 java/src/main/java/com/google/flatbuffers/reflection/Service.java create mode 100644 java/src/main/java/com/google/flatbuffers/reflection/Type.java diff --git a/java/src/main/java/com/google/flatbuffers/reflection/AdvancedFeatures.java b/java/src/main/java/com/google/flatbuffers/reflection/AdvancedFeatures.java new file mode 100644 index 0000000000..cf49086cd5 --- /dev/null +++ b/java/src/main/java/com/google/flatbuffers/reflection/AdvancedFeatures.java @@ -0,0 +1,16 @@ +// automatically generated by the FlatBuffers compiler, do not modify + +package com.google.flatbuffers.reflection; + +/** + * New schema language features that are not supported by old code generators. + */ +@SuppressWarnings("unused") +public final class AdvancedFeatures { + private AdvancedFeatures() { } + public static final long AdvancedArrayFeatures = 1L; + public static final long AdvancedUnionFeatures = 2L; + public static final long OptionalScalars = 4L; + public static final long DefaultVectorsAndStrings = 8L; +} + diff --git a/java/src/main/java/com/google/flatbuffers/reflection/BaseType.java b/java/src/main/java/com/google/flatbuffers/reflection/BaseType.java new file mode 100644 index 0000000000..fc4574a7c6 --- /dev/null +++ b/java/src/main/java/com/google/flatbuffers/reflection/BaseType.java @@ -0,0 +1,32 @@ +// automatically generated by the FlatBuffers compiler, do not modify + +package com.google.flatbuffers.reflection; + +@SuppressWarnings("unused") +public final class BaseType { + private BaseType() { } + public static final byte None = 0; + public static final byte UType = 1; + public static final byte Bool = 2; + public static final byte Byte = 3; + public static final byte UByte = 4; + public static final byte Short = 5; + public static final byte UShort = 6; + public static final byte Int = 7; + public static final byte UInt = 8; + public static final byte Long = 9; + public static final byte ULong = 10; + public static final byte Float = 11; + public static final byte Double = 12; + public static final byte String = 13; + public static final byte Vector = 14; + public static final byte Obj = 15; + public static final byte Union = 16; + public static final byte Array = 17; + public static final byte MaxBaseType = 18; + + public static final String[] names = { "None", "UType", "Bool", "Byte", "UByte", "Short", "UShort", "Int", "UInt", "Long", "ULong", "Float", "Double", "String", "Vector", "Obj", "Union", "Array", "MaxBaseType", }; + + public static String name(int e) { return names[e]; } +} + diff --git a/java/src/main/java/com/google/flatbuffers/reflection/Enum.java b/java/src/main/java/com/google/flatbuffers/reflection/Enum.java new file mode 100644 index 0000000000..dde70405a7 --- /dev/null +++ b/java/src/main/java/com/google/flatbuffers/reflection/Enum.java @@ -0,0 +1,135 @@ +// automatically generated by the FlatBuffers compiler, do not modify + +package com.google.flatbuffers.reflection; + +import com.google.flatbuffers.BaseVector; +import com.google.flatbuffers.BooleanVector; +import com.google.flatbuffers.ByteVector; +import com.google.flatbuffers.Constants; +import com.google.flatbuffers.DoubleVector; +import com.google.flatbuffers.FlatBufferBuilder; +import com.google.flatbuffers.FloatVector; +import com.google.flatbuffers.IntVector; +import com.google.flatbuffers.LongVector; +import com.google.flatbuffers.ShortVector; +import com.google.flatbuffers.StringVector; +import com.google.flatbuffers.Struct; +import com.google.flatbuffers.Table; +import com.google.flatbuffers.UnionVector; +import java.nio.ByteBuffer; +import java.nio.ByteOrder; + +@SuppressWarnings("unused") +public final class Enum extends Table { + public static void ValidateVersion() { Constants.FLATBUFFERS_23_1_21(); } + public static Enum getRootAsEnum(ByteBuffer _bb) { return getRootAsEnum(_bb, new Enum()); } + public static Enum getRootAsEnum(ByteBuffer _bb, Enum obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } + public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } + public Enum __assign(int _i, ByteBuffer _bb) { __init(_i, _bb); return this; } + + public String name() { int o = __offset(4); return o != 0 ? __string(o + bb_pos) : null; } + public ByteBuffer nameAsByteBuffer() { return __vector_as_bytebuffer(4, 1); } + public ByteBuffer nameInByteBuffer(ByteBuffer _bb) { return __vector_in_bytebuffer(_bb, 4, 1); } + public com.google.flatbuffers.reflection.EnumVal values(int j) { return values(new com.google.flatbuffers.reflection.EnumVal(), j); } + public com.google.flatbuffers.reflection.EnumVal values(com.google.flatbuffers.reflection.EnumVal obj, int j) { int o = __offset(6); return o != 0 ? obj.__assign(__indirect(__vector(o) + j * 4), bb) : null; } + public int valuesLength() { int o = __offset(6); return o != 0 ? __vector_len(o) : 0; } + public com.google.flatbuffers.reflection.EnumVal valuesByKey(long key) { int o = __offset(6); return o != 0 ? com.google.flatbuffers.reflection.EnumVal.__lookup_by_key(null, __vector(o), key, bb) : null; } + public com.google.flatbuffers.reflection.EnumVal valuesByKey(com.google.flatbuffers.reflection.EnumVal obj, long key) { int o = __offset(6); return o != 0 ? com.google.flatbuffers.reflection.EnumVal.__lookup_by_key(obj, __vector(o), key, bb) : null; } + public com.google.flatbuffers.reflection.EnumVal.Vector valuesVector() { return valuesVector(new com.google.flatbuffers.reflection.EnumVal.Vector()); } + public com.google.flatbuffers.reflection.EnumVal.Vector valuesVector(com.google.flatbuffers.reflection.EnumVal.Vector obj) { int o = __offset(6); return o != 0 ? obj.__assign(__vector(o), 4, bb) : null; } + public boolean isUnion() { int o = __offset(8); return o != 0 ? 0!=bb.get(o + bb_pos) : false; } + public com.google.flatbuffers.reflection.Type underlyingType() { return underlyingType(new com.google.flatbuffers.reflection.Type()); } + public com.google.flatbuffers.reflection.Type underlyingType(com.google.flatbuffers.reflection.Type obj) { int o = __offset(10); return o != 0 ? obj.__assign(__indirect(o + bb_pos), bb) : null; } + public com.google.flatbuffers.reflection.KeyValue attributes(int j) { return attributes(new com.google.flatbuffers.reflection.KeyValue(), j); } + public com.google.flatbuffers.reflection.KeyValue attributes(com.google.flatbuffers.reflection.KeyValue obj, int j) { int o = __offset(12); return o != 0 ? obj.__assign(__indirect(__vector(o) + j * 4), bb) : null; } + public int attributesLength() { int o = __offset(12); return o != 0 ? __vector_len(o) : 0; } + public com.google.flatbuffers.reflection.KeyValue attributesByKey(String key) { int o = __offset(12); return o != 0 ? com.google.flatbuffers.reflection.KeyValue.__lookup_by_key(null, __vector(o), key, bb) : null; } + public com.google.flatbuffers.reflection.KeyValue attributesByKey(com.google.flatbuffers.reflection.KeyValue obj, String key) { int o = __offset(12); return o != 0 ? com.google.flatbuffers.reflection.KeyValue.__lookup_by_key(obj, __vector(o), key, bb) : null; } + public com.google.flatbuffers.reflection.KeyValue.Vector attributesVector() { return attributesVector(new com.google.flatbuffers.reflection.KeyValue.Vector()); } + public com.google.flatbuffers.reflection.KeyValue.Vector attributesVector(com.google.flatbuffers.reflection.KeyValue.Vector obj) { int o = __offset(12); return o != 0 ? obj.__assign(__vector(o), 4, bb) : null; } + public String documentation(int j) { int o = __offset(14); return o != 0 ? __string(__vector(o) + j * 4) : null; } + public int documentationLength() { int o = __offset(14); return o != 0 ? __vector_len(o) : 0; } + public StringVector documentationVector() { return documentationVector(new StringVector()); } + public StringVector documentationVector(StringVector obj) { int o = __offset(14); return o != 0 ? obj.__assign(__vector(o), 4, bb) : null; } + /** + * File that this Enum is declared in. + */ + public String declarationFile() { int o = __offset(16); return o != 0 ? __string(o + bb_pos) : null; } + public ByteBuffer declarationFileAsByteBuffer() { return __vector_as_bytebuffer(16, 1); } + public ByteBuffer declarationFileInByteBuffer(ByteBuffer _bb) { return __vector_in_bytebuffer(_bb, 16, 1); } + + public static int createEnum(FlatBufferBuilder builder, + int nameOffset, + int valuesOffset, + boolean isUnion, + int underlyingTypeOffset, + int attributesOffset, + int documentationOffset, + int declarationFileOffset) { + builder.startTable(7); + Enum.addDeclarationFile(builder, declarationFileOffset); + Enum.addDocumentation(builder, documentationOffset); + Enum.addAttributes(builder, attributesOffset); + Enum.addUnderlyingType(builder, underlyingTypeOffset); + Enum.addValues(builder, valuesOffset); + Enum.addName(builder, nameOffset); + Enum.addIsUnion(builder, isUnion); + return Enum.endEnum(builder); + } + + public static void startEnum(FlatBufferBuilder builder) { builder.startTable(7); } + public static void addName(FlatBufferBuilder builder, int nameOffset) { builder.addOffset(nameOffset); builder.slot(0); } + public static void addValues(FlatBufferBuilder builder, int valuesOffset) { builder.addOffset(1, valuesOffset, 0); } + public static int createValuesVector(FlatBufferBuilder builder, int[] data) { builder.startVector(4, data.length, 4); for (int i = data.length - 1; i >= 0; i--) builder.addOffset(data[i]); return builder.endVector(); } + public static void startValuesVector(FlatBufferBuilder builder, int numElems) { builder.startVector(4, numElems, 4); } + public static void addIsUnion(FlatBufferBuilder builder, boolean isUnion) { builder.addBoolean(2, isUnion, false); } + public static void addUnderlyingType(FlatBufferBuilder builder, int underlyingTypeOffset) { builder.addOffset(3, underlyingTypeOffset, 0); } + public static void addAttributes(FlatBufferBuilder builder, int attributesOffset) { builder.addOffset(4, attributesOffset, 0); } + public static int createAttributesVector(FlatBufferBuilder builder, int[] data) { builder.startVector(4, data.length, 4); for (int i = data.length - 1; i >= 0; i--) builder.addOffset(data[i]); return builder.endVector(); } + public static void startAttributesVector(FlatBufferBuilder builder, int numElems) { builder.startVector(4, numElems, 4); } + public static void addDocumentation(FlatBufferBuilder builder, int documentationOffset) { builder.addOffset(5, documentationOffset, 0); } + public static int createDocumentationVector(FlatBufferBuilder builder, int[] data) { builder.startVector(4, data.length, 4); for (int i = data.length - 1; i >= 0; i--) builder.addOffset(data[i]); return builder.endVector(); } + public static void startDocumentationVector(FlatBufferBuilder builder, int numElems) { builder.startVector(4, numElems, 4); } + public static void addDeclarationFile(FlatBufferBuilder builder, int declarationFileOffset) { builder.addOffset(6, declarationFileOffset, 0); } + public static int endEnum(FlatBufferBuilder builder) { + int o = builder.endTable(); + builder.required(o, 4); // name + builder.required(o, 6); // values + builder.required(o, 10); // underlying_type + return o; + } + + @Override + protected int keysCompare(Integer o1, Integer o2, ByteBuffer _bb) { return compareStrings(__offset(4, o1, _bb), __offset(4, o2, _bb), _bb); } + + public static Enum __lookup_by_key(Enum obj, int vectorLocation, String key, ByteBuffer bb) { + byte[] byteKey = key.getBytes(java.nio.charset.StandardCharsets.UTF_8); + int span = bb.getInt(vectorLocation - 4); + int start = 0; + while (span != 0) { + int middle = span / 2; + int tableOffset = __indirect(vectorLocation + 4 * (start + middle), bb); + int comp = compareStrings(__offset(4, bb.capacity() - tableOffset, bb), byteKey, bb); + if (comp > 0) { + span = middle; + } else if (comp < 0) { + middle++; + start += middle; + span -= middle; + } else { + return (obj == null ? new Enum() : obj).__assign(tableOffset, bb); + } + } + return null; + } + + public static final class Vector extends BaseVector { + public Vector __assign(int _vector, int _element_size, ByteBuffer _bb) { __reset(_vector, _element_size, _bb); return this; } + + public Enum get(int j) { return get(new Enum(), j); } + public Enum get(Enum obj, int j) { return obj.__assign(__indirect(__element(j), bb), bb); } + public Enum getByKey(String key) { return __lookup_by_key(null, __vector(), key, bb); } + public Enum getByKey(Enum obj, String key) { return __lookup_by_key(obj, __vector(), key, bb); } + } +} + diff --git a/java/src/main/java/com/google/flatbuffers/reflection/EnumVal.java b/java/src/main/java/com/google/flatbuffers/reflection/EnumVal.java new file mode 100644 index 0000000000..f832fcea8c --- /dev/null +++ b/java/src/main/java/com/google/flatbuffers/reflection/EnumVal.java @@ -0,0 +1,116 @@ +// automatically generated by the FlatBuffers compiler, do not modify + +package com.google.flatbuffers.reflection; + +import com.google.flatbuffers.BaseVector; +import com.google.flatbuffers.BooleanVector; +import com.google.flatbuffers.ByteVector; +import com.google.flatbuffers.Constants; +import com.google.flatbuffers.DoubleVector; +import com.google.flatbuffers.FlatBufferBuilder; +import com.google.flatbuffers.FloatVector; +import com.google.flatbuffers.IntVector; +import com.google.flatbuffers.LongVector; +import com.google.flatbuffers.ShortVector; +import com.google.flatbuffers.StringVector; +import com.google.flatbuffers.Struct; +import com.google.flatbuffers.Table; +import com.google.flatbuffers.UnionVector; +import java.nio.ByteBuffer; +import java.nio.ByteOrder; + +@SuppressWarnings("unused") +public final class EnumVal extends Table { + public static void ValidateVersion() { Constants.FLATBUFFERS_23_1_21(); } + public static EnumVal getRootAsEnumVal(ByteBuffer _bb) { return getRootAsEnumVal(_bb, new EnumVal()); } + public static EnumVal getRootAsEnumVal(ByteBuffer _bb, EnumVal obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } + public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } + public EnumVal __assign(int _i, ByteBuffer _bb) { __init(_i, _bb); return this; } + + public String name() { int o = __offset(4); return o != 0 ? __string(o + bb_pos) : null; } + public ByteBuffer nameAsByteBuffer() { return __vector_as_bytebuffer(4, 1); } + public ByteBuffer nameInByteBuffer(ByteBuffer _bb) { return __vector_in_bytebuffer(_bb, 4, 1); } + public long value() { int o = __offset(6); return o != 0 ? bb.getLong(o + bb_pos) : 0L; } + public com.google.flatbuffers.reflection.Type unionType() { return unionType(new com.google.flatbuffers.reflection.Type()); } + public com.google.flatbuffers.reflection.Type unionType(com.google.flatbuffers.reflection.Type obj) { int o = __offset(10); return o != 0 ? obj.__assign(__indirect(o + bb_pos), bb) : null; } + public String documentation(int j) { int o = __offset(12); return o != 0 ? __string(__vector(o) + j * 4) : null; } + public int documentationLength() { int o = __offset(12); return o != 0 ? __vector_len(o) : 0; } + public StringVector documentationVector() { return documentationVector(new StringVector()); } + public StringVector documentationVector(StringVector obj) { int o = __offset(12); return o != 0 ? obj.__assign(__vector(o), 4, bb) : null; } + public com.google.flatbuffers.reflection.KeyValue attributes(int j) { return attributes(new com.google.flatbuffers.reflection.KeyValue(), j); } + public com.google.flatbuffers.reflection.KeyValue attributes(com.google.flatbuffers.reflection.KeyValue obj, int j) { int o = __offset(14); return o != 0 ? obj.__assign(__indirect(__vector(o) + j * 4), bb) : null; } + public int attributesLength() { int o = __offset(14); return o != 0 ? __vector_len(o) : 0; } + public com.google.flatbuffers.reflection.KeyValue attributesByKey(String key) { int o = __offset(14); return o != 0 ? com.google.flatbuffers.reflection.KeyValue.__lookup_by_key(null, __vector(o), key, bb) : null; } + public com.google.flatbuffers.reflection.KeyValue attributesByKey(com.google.flatbuffers.reflection.KeyValue obj, String key) { int o = __offset(14); return o != 0 ? com.google.flatbuffers.reflection.KeyValue.__lookup_by_key(obj, __vector(o), key, bb) : null; } + public com.google.flatbuffers.reflection.KeyValue.Vector attributesVector() { return attributesVector(new com.google.flatbuffers.reflection.KeyValue.Vector()); } + public com.google.flatbuffers.reflection.KeyValue.Vector attributesVector(com.google.flatbuffers.reflection.KeyValue.Vector obj) { int o = __offset(14); return o != 0 ? obj.__assign(__vector(o), 4, bb) : null; } + + public static int createEnumVal(FlatBufferBuilder builder, + int nameOffset, + long value, + int unionTypeOffset, + int documentationOffset, + int attributesOffset) { + builder.startTable(6); + EnumVal.addValue(builder, value); + EnumVal.addAttributes(builder, attributesOffset); + EnumVal.addDocumentation(builder, documentationOffset); + EnumVal.addUnionType(builder, unionTypeOffset); + EnumVal.addName(builder, nameOffset); + return EnumVal.endEnumVal(builder); + } + + public static void startEnumVal(FlatBufferBuilder builder) { builder.startTable(6); } + public static void addName(FlatBufferBuilder builder, int nameOffset) { builder.addOffset(0, nameOffset, 0); } + public static void addValue(FlatBufferBuilder builder, long value) { builder.addLong(value); builder.slot(1); } + public static void addUnionType(FlatBufferBuilder builder, int unionTypeOffset) { builder.addOffset(3, unionTypeOffset, 0); } + public static void addDocumentation(FlatBufferBuilder builder, int documentationOffset) { builder.addOffset(4, documentationOffset, 0); } + public static int createDocumentationVector(FlatBufferBuilder builder, int[] data) { builder.startVector(4, data.length, 4); for (int i = data.length - 1; i >= 0; i--) builder.addOffset(data[i]); return builder.endVector(); } + public static void startDocumentationVector(FlatBufferBuilder builder, int numElems) { builder.startVector(4, numElems, 4); } + public static void addAttributes(FlatBufferBuilder builder, int attributesOffset) { builder.addOffset(5, attributesOffset, 0); } + public static int createAttributesVector(FlatBufferBuilder builder, int[] data) { builder.startVector(4, data.length, 4); for (int i = data.length - 1; i >= 0; i--) builder.addOffset(data[i]); return builder.endVector(); } + public static void startAttributesVector(FlatBufferBuilder builder, int numElems) { builder.startVector(4, numElems, 4); } + public static int endEnumVal(FlatBufferBuilder builder) { + int o = builder.endTable(); + builder.required(o, 4); // name + return o; + } + + @Override + protected int keysCompare(Integer o1, Integer o2, ByteBuffer _bb) { + long val_1 = _bb.getLong(__offset(6, o1, _bb)); + long val_2 = _bb.getLong(__offset(6, o2, _bb)); + return val_1 > val_2 ? 1 : val_1 < val_2 ? -1 : 0; + } + + public static EnumVal __lookup_by_key(EnumVal obj, int vectorLocation, long key, ByteBuffer bb) { + int span = bb.getInt(vectorLocation - 4); + int start = 0; + while (span != 0) { + int middle = span / 2; + int tableOffset = __indirect(vectorLocation + 4 * (start + middle), bb); + long val = bb.getLong(__offset(6, bb.capacity() - tableOffset, bb)); + int comp = val > key ? 1 : val < key ? -1 : 0; + if (comp > 0) { + span = middle; + } else if (comp < 0) { + middle++; + start += middle; + span -= middle; + } else { + return (obj == null ? new EnumVal() : obj).__assign(tableOffset, bb); + } + } + return null; + } + + public static final class Vector extends BaseVector { + public Vector __assign(int _vector, int _element_size, ByteBuffer _bb) { __reset(_vector, _element_size, _bb); return this; } + + public EnumVal get(int j) { return get(new EnumVal(), j); } + public EnumVal get(EnumVal obj, int j) { return obj.__assign(__indirect(__element(j), bb), bb); } + public EnumVal getByKey(long key) { return __lookup_by_key(null, __vector(), key, bb); } + public EnumVal getByKey(EnumVal obj, long key) { return __lookup_by_key(obj, __vector(), key, bb); } + } +} + diff --git a/java/src/main/java/com/google/flatbuffers/reflection/Field.java b/java/src/main/java/com/google/flatbuffers/reflection/Field.java new file mode 100644 index 0000000000..8107def6f3 --- /dev/null +++ b/java/src/main/java/com/google/flatbuffers/reflection/Field.java @@ -0,0 +1,148 @@ +// automatically generated by the FlatBuffers compiler, do not modify + +package com.google.flatbuffers.reflection; + +import com.google.flatbuffers.BaseVector; +import com.google.flatbuffers.BooleanVector; +import com.google.flatbuffers.ByteVector; +import com.google.flatbuffers.Constants; +import com.google.flatbuffers.DoubleVector; +import com.google.flatbuffers.FlatBufferBuilder; +import com.google.flatbuffers.FloatVector; +import com.google.flatbuffers.IntVector; +import com.google.flatbuffers.LongVector; +import com.google.flatbuffers.ShortVector; +import com.google.flatbuffers.StringVector; +import com.google.flatbuffers.Struct; +import com.google.flatbuffers.Table; +import com.google.flatbuffers.UnionVector; +import java.nio.ByteBuffer; +import java.nio.ByteOrder; + +@SuppressWarnings("unused") +public final class Field extends Table { + public static void ValidateVersion() { Constants.FLATBUFFERS_23_1_21(); } + public static Field getRootAsField(ByteBuffer _bb) { return getRootAsField(_bb, new Field()); } + public static Field getRootAsField(ByteBuffer _bb, Field obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } + public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } + public Field __assign(int _i, ByteBuffer _bb) { __init(_i, _bb); return this; } + + public String name() { int o = __offset(4); return o != 0 ? __string(o + bb_pos) : null; } + public ByteBuffer nameAsByteBuffer() { return __vector_as_bytebuffer(4, 1); } + public ByteBuffer nameInByteBuffer(ByteBuffer _bb) { return __vector_in_bytebuffer(_bb, 4, 1); } + public com.google.flatbuffers.reflection.Type type() { return type(new com.google.flatbuffers.reflection.Type()); } + public com.google.flatbuffers.reflection.Type type(com.google.flatbuffers.reflection.Type obj) { int o = __offset(6); return o != 0 ? obj.__assign(__indirect(o + bb_pos), bb) : null; } + public int id() { int o = __offset(8); return o != 0 ? bb.getShort(o + bb_pos) & 0xFFFF : 0; } + public int offset() { int o = __offset(10); return o != 0 ? bb.getShort(o + bb_pos) & 0xFFFF : 0; } + public long defaultInteger() { int o = __offset(12); return o != 0 ? bb.getLong(o + bb_pos) : 0L; } + public double defaultReal() { int o = __offset(14); return o != 0 ? bb.getDouble(o + bb_pos) : 0.0; } + public boolean deprecated() { int o = __offset(16); return o != 0 ? 0!=bb.get(o + bb_pos) : false; } + public boolean required() { int o = __offset(18); return o != 0 ? 0!=bb.get(o + bb_pos) : false; } + public boolean key() { int o = __offset(20); return o != 0 ? 0!=bb.get(o + bb_pos) : false; } + public com.google.flatbuffers.reflection.KeyValue attributes(int j) { return attributes(new com.google.flatbuffers.reflection.KeyValue(), j); } + public com.google.flatbuffers.reflection.KeyValue attributes(com.google.flatbuffers.reflection.KeyValue obj, int j) { int o = __offset(22); return o != 0 ? obj.__assign(__indirect(__vector(o) + j * 4), bb) : null; } + public int attributesLength() { int o = __offset(22); return o != 0 ? __vector_len(o) : 0; } + public com.google.flatbuffers.reflection.KeyValue attributesByKey(String key) { int o = __offset(22); return o != 0 ? com.google.flatbuffers.reflection.KeyValue.__lookup_by_key(null, __vector(o), key, bb) : null; } + public com.google.flatbuffers.reflection.KeyValue attributesByKey(com.google.flatbuffers.reflection.KeyValue obj, String key) { int o = __offset(22); return o != 0 ? com.google.flatbuffers.reflection.KeyValue.__lookup_by_key(obj, __vector(o), key, bb) : null; } + public com.google.flatbuffers.reflection.KeyValue.Vector attributesVector() { return attributesVector(new com.google.flatbuffers.reflection.KeyValue.Vector()); } + public com.google.flatbuffers.reflection.KeyValue.Vector attributesVector(com.google.flatbuffers.reflection.KeyValue.Vector obj) { int o = __offset(22); return o != 0 ? obj.__assign(__vector(o), 4, bb) : null; } + public String documentation(int j) { int o = __offset(24); return o != 0 ? __string(__vector(o) + j * 4) : null; } + public int documentationLength() { int o = __offset(24); return o != 0 ? __vector_len(o) : 0; } + public StringVector documentationVector() { return documentationVector(new StringVector()); } + public StringVector documentationVector(StringVector obj) { int o = __offset(24); return o != 0 ? obj.__assign(__vector(o), 4, bb) : null; } + public boolean optional() { int o = __offset(26); return o != 0 ? 0!=bb.get(o + bb_pos) : false; } + /** + * Number of padding octets to always add after this field. Structs only. + */ + public int padding() { int o = __offset(28); return o != 0 ? bb.getShort(o + bb_pos) & 0xFFFF : 0; } + + public static int createField(FlatBufferBuilder builder, + int nameOffset, + int typeOffset, + int id, + int offset, + long defaultInteger, + double defaultReal, + boolean deprecated, + boolean required, + boolean key, + int attributesOffset, + int documentationOffset, + boolean optional, + int padding) { + builder.startTable(13); + Field.addDefaultReal(builder, defaultReal); + Field.addDefaultInteger(builder, defaultInteger); + Field.addDocumentation(builder, documentationOffset); + Field.addAttributes(builder, attributesOffset); + Field.addType(builder, typeOffset); + Field.addName(builder, nameOffset); + Field.addPadding(builder, padding); + Field.addOffset(builder, offset); + Field.addId(builder, id); + Field.addOptional(builder, optional); + Field.addKey(builder, key); + Field.addRequired(builder, required); + Field.addDeprecated(builder, deprecated); + return Field.endField(builder); + } + + public static void startField(FlatBufferBuilder builder) { builder.startTable(13); } + public static void addName(FlatBufferBuilder builder, int nameOffset) { builder.addOffset(nameOffset); builder.slot(0); } + public static void addType(FlatBufferBuilder builder, int typeOffset) { builder.addOffset(1, typeOffset, 0); } + public static void addId(FlatBufferBuilder builder, int id) { builder.addShort(2, (short) id, (short) 0); } + public static void addOffset(FlatBufferBuilder builder, int offset) { builder.addShort(3, (short) offset, (short) 0); } + public static void addDefaultInteger(FlatBufferBuilder builder, long defaultInteger) { builder.addLong(4, defaultInteger, 0L); } + public static void addDefaultReal(FlatBufferBuilder builder, double defaultReal) { builder.addDouble(5, defaultReal, 0.0); } + public static void addDeprecated(FlatBufferBuilder builder, boolean deprecated) { builder.addBoolean(6, deprecated, false); } + public static void addRequired(FlatBufferBuilder builder, boolean required) { builder.addBoolean(7, required, false); } + public static void addKey(FlatBufferBuilder builder, boolean key) { builder.addBoolean(8, key, false); } + public static void addAttributes(FlatBufferBuilder builder, int attributesOffset) { builder.addOffset(9, attributesOffset, 0); } + public static int createAttributesVector(FlatBufferBuilder builder, int[] data) { builder.startVector(4, data.length, 4); for (int i = data.length - 1; i >= 0; i--) builder.addOffset(data[i]); return builder.endVector(); } + public static void startAttributesVector(FlatBufferBuilder builder, int numElems) { builder.startVector(4, numElems, 4); } + public static void addDocumentation(FlatBufferBuilder builder, int documentationOffset) { builder.addOffset(10, documentationOffset, 0); } + public static int createDocumentationVector(FlatBufferBuilder builder, int[] data) { builder.startVector(4, data.length, 4); for (int i = data.length - 1; i >= 0; i--) builder.addOffset(data[i]); return builder.endVector(); } + public static void startDocumentationVector(FlatBufferBuilder builder, int numElems) { builder.startVector(4, numElems, 4); } + public static void addOptional(FlatBufferBuilder builder, boolean optional) { builder.addBoolean(11, optional, false); } + public static void addPadding(FlatBufferBuilder builder, int padding) { builder.addShort(12, (short) padding, (short) 0); } + public static int endField(FlatBufferBuilder builder) { + int o = builder.endTable(); + builder.required(o, 4); // name + builder.required(o, 6); // type + return o; + } + + @Override + protected int keysCompare(Integer o1, Integer o2, ByteBuffer _bb) { return compareStrings(__offset(4, o1, _bb), __offset(4, o2, _bb), _bb); } + + public static Field __lookup_by_key(Field obj, int vectorLocation, String key, ByteBuffer bb) { + byte[] byteKey = key.getBytes(java.nio.charset.StandardCharsets.UTF_8); + int span = bb.getInt(vectorLocation - 4); + int start = 0; + while (span != 0) { + int middle = span / 2; + int tableOffset = __indirect(vectorLocation + 4 * (start + middle), bb); + int comp = compareStrings(__offset(4, bb.capacity() - tableOffset, bb), byteKey, bb); + if (comp > 0) { + span = middle; + } else if (comp < 0) { + middle++; + start += middle; + span -= middle; + } else { + return (obj == null ? new Field() : obj).__assign(tableOffset, bb); + } + } + return null; + } + + public static final class Vector extends BaseVector { + public Vector __assign(int _vector, int _element_size, ByteBuffer _bb) { __reset(_vector, _element_size, _bb); return this; } + + public Field get(int j) { return get(new Field(), j); } + public Field get(Field obj, int j) { return obj.__assign(__indirect(__element(j), bb), bb); } + public Field getByKey(String key) { return __lookup_by_key(null, __vector(), key, bb); } + public Field getByKey(Field obj, String key) { return __lookup_by_key(obj, __vector(), key, bb); } + } +} + diff --git a/java/src/main/java/com/google/flatbuffers/reflection/KeyValue.java b/java/src/main/java/com/google/flatbuffers/reflection/KeyValue.java new file mode 100644 index 0000000000..7f1ab6ddf1 --- /dev/null +++ b/java/src/main/java/com/google/flatbuffers/reflection/KeyValue.java @@ -0,0 +1,88 @@ +// automatically generated by the FlatBuffers compiler, do not modify + +package com.google.flatbuffers.reflection; + +import com.google.flatbuffers.BaseVector; +import com.google.flatbuffers.BooleanVector; +import com.google.flatbuffers.ByteVector; +import com.google.flatbuffers.Constants; +import com.google.flatbuffers.DoubleVector; +import com.google.flatbuffers.FlatBufferBuilder; +import com.google.flatbuffers.FloatVector; +import com.google.flatbuffers.IntVector; +import com.google.flatbuffers.LongVector; +import com.google.flatbuffers.ShortVector; +import com.google.flatbuffers.StringVector; +import com.google.flatbuffers.Struct; +import com.google.flatbuffers.Table; +import com.google.flatbuffers.UnionVector; +import java.nio.ByteBuffer; +import java.nio.ByteOrder; + +@SuppressWarnings("unused") +public final class KeyValue extends Table { + public static void ValidateVersion() { Constants.FLATBUFFERS_23_1_21(); } + public static KeyValue getRootAsKeyValue(ByteBuffer _bb) { return getRootAsKeyValue(_bb, new KeyValue()); } + public static KeyValue getRootAsKeyValue(ByteBuffer _bb, KeyValue obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } + public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } + public KeyValue __assign(int _i, ByteBuffer _bb) { __init(_i, _bb); return this; } + + public String key() { int o = __offset(4); return o != 0 ? __string(o + bb_pos) : null; } + public ByteBuffer keyAsByteBuffer() { return __vector_as_bytebuffer(4, 1); } + public ByteBuffer keyInByteBuffer(ByteBuffer _bb) { return __vector_in_bytebuffer(_bb, 4, 1); } + public String value() { int o = __offset(6); return o != 0 ? __string(o + bb_pos) : null; } + public ByteBuffer valueAsByteBuffer() { return __vector_as_bytebuffer(6, 1); } + public ByteBuffer valueInByteBuffer(ByteBuffer _bb) { return __vector_in_bytebuffer(_bb, 6, 1); } + + public static int createKeyValue(FlatBufferBuilder builder, + int keyOffset, + int valueOffset) { + builder.startTable(2); + KeyValue.addValue(builder, valueOffset); + KeyValue.addKey(builder, keyOffset); + return KeyValue.endKeyValue(builder); + } + + public static void startKeyValue(FlatBufferBuilder builder) { builder.startTable(2); } + public static void addKey(FlatBufferBuilder builder, int keyOffset) { builder.addOffset(keyOffset); builder.slot(0); } + public static void addValue(FlatBufferBuilder builder, int valueOffset) { builder.addOffset(1, valueOffset, 0); } + public static int endKeyValue(FlatBufferBuilder builder) { + int o = builder.endTable(); + builder.required(o, 4); // key + return o; + } + + @Override + protected int keysCompare(Integer o1, Integer o2, ByteBuffer _bb) { return compareStrings(__offset(4, o1, _bb), __offset(4, o2, _bb), _bb); } + + public static KeyValue __lookup_by_key(KeyValue obj, int vectorLocation, String key, ByteBuffer bb) { + byte[] byteKey = key.getBytes(java.nio.charset.StandardCharsets.UTF_8); + int span = bb.getInt(vectorLocation - 4); + int start = 0; + while (span != 0) { + int middle = span / 2; + int tableOffset = __indirect(vectorLocation + 4 * (start + middle), bb); + int comp = compareStrings(__offset(4, bb.capacity() - tableOffset, bb), byteKey, bb); + if (comp > 0) { + span = middle; + } else if (comp < 0) { + middle++; + start += middle; + span -= middle; + } else { + return (obj == null ? new KeyValue() : obj).__assign(tableOffset, bb); + } + } + return null; + } + + public static final class Vector extends BaseVector { + public Vector __assign(int _vector, int _element_size, ByteBuffer _bb) { __reset(_vector, _element_size, _bb); return this; } + + public KeyValue get(int j) { return get(new KeyValue(), j); } + public KeyValue get(KeyValue obj, int j) { return obj.__assign(__indirect(__element(j), bb), bb); } + public KeyValue getByKey(String key) { return __lookup_by_key(null, __vector(), key, bb); } + public KeyValue getByKey(KeyValue obj, String key) { return __lookup_by_key(obj, __vector(), key, bb); } + } +} + diff --git a/java/src/main/java/com/google/flatbuffers/reflection/Object.java b/java/src/main/java/com/google/flatbuffers/reflection/Object.java new file mode 100644 index 0000000000..22f68ca7ca --- /dev/null +++ b/java/src/main/java/com/google/flatbuffers/reflection/Object.java @@ -0,0 +1,137 @@ +// automatically generated by the FlatBuffers compiler, do not modify + +package com.google.flatbuffers.reflection; + +import com.google.flatbuffers.BaseVector; +import com.google.flatbuffers.BooleanVector; +import com.google.flatbuffers.ByteVector; +import com.google.flatbuffers.Constants; +import com.google.flatbuffers.DoubleVector; +import com.google.flatbuffers.FlatBufferBuilder; +import com.google.flatbuffers.FloatVector; +import com.google.flatbuffers.IntVector; +import com.google.flatbuffers.LongVector; +import com.google.flatbuffers.ShortVector; +import com.google.flatbuffers.StringVector; +import com.google.flatbuffers.Struct; +import com.google.flatbuffers.Table; +import com.google.flatbuffers.UnionVector; +import java.nio.ByteBuffer; +import java.nio.ByteOrder; + +@SuppressWarnings("unused") +public final class Object extends Table { + public static void ValidateVersion() { Constants.FLATBUFFERS_23_1_21(); } + public static Object getRootAsObject(ByteBuffer _bb) { return getRootAsObject(_bb, new Object()); } + public static Object getRootAsObject(ByteBuffer _bb, Object obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } + public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } + public Object __assign(int _i, ByteBuffer _bb) { __init(_i, _bb); return this; } + + public String name() { int o = __offset(4); return o != 0 ? __string(o + bb_pos) : null; } + public ByteBuffer nameAsByteBuffer() { return __vector_as_bytebuffer(4, 1); } + public ByteBuffer nameInByteBuffer(ByteBuffer _bb) { return __vector_in_bytebuffer(_bb, 4, 1); } + public com.google.flatbuffers.reflection.Field fields(int j) { return fields(new com.google.flatbuffers.reflection.Field(), j); } + public com.google.flatbuffers.reflection.Field fields(com.google.flatbuffers.reflection.Field obj, int j) { int o = __offset(6); return o != 0 ? obj.__assign(__indirect(__vector(o) + j * 4), bb) : null; } + public int fieldsLength() { int o = __offset(6); return o != 0 ? __vector_len(o) : 0; } + public com.google.flatbuffers.reflection.Field fieldsByKey(String key) { int o = __offset(6); return o != 0 ? com.google.flatbuffers.reflection.Field.__lookup_by_key(null, __vector(o), key, bb) : null; } + public com.google.flatbuffers.reflection.Field fieldsByKey(com.google.flatbuffers.reflection.Field obj, String key) { int o = __offset(6); return o != 0 ? com.google.flatbuffers.reflection.Field.__lookup_by_key(obj, __vector(o), key, bb) : null; } + public com.google.flatbuffers.reflection.Field.Vector fieldsVector() { return fieldsVector(new com.google.flatbuffers.reflection.Field.Vector()); } + public com.google.flatbuffers.reflection.Field.Vector fieldsVector(com.google.flatbuffers.reflection.Field.Vector obj) { int o = __offset(6); return o != 0 ? obj.__assign(__vector(o), 4, bb) : null; } + public boolean isStruct() { int o = __offset(8); return o != 0 ? 0!=bb.get(o + bb_pos) : false; } + public int minalign() { int o = __offset(10); return o != 0 ? bb.getInt(o + bb_pos) : 0; } + public int bytesize() { int o = __offset(12); return o != 0 ? bb.getInt(o + bb_pos) : 0; } + public com.google.flatbuffers.reflection.KeyValue attributes(int j) { return attributes(new com.google.flatbuffers.reflection.KeyValue(), j); } + public com.google.flatbuffers.reflection.KeyValue attributes(com.google.flatbuffers.reflection.KeyValue obj, int j) { int o = __offset(14); return o != 0 ? obj.__assign(__indirect(__vector(o) + j * 4), bb) : null; } + public int attributesLength() { int o = __offset(14); return o != 0 ? __vector_len(o) : 0; } + public com.google.flatbuffers.reflection.KeyValue attributesByKey(String key) { int o = __offset(14); return o != 0 ? com.google.flatbuffers.reflection.KeyValue.__lookup_by_key(null, __vector(o), key, bb) : null; } + public com.google.flatbuffers.reflection.KeyValue attributesByKey(com.google.flatbuffers.reflection.KeyValue obj, String key) { int o = __offset(14); return o != 0 ? com.google.flatbuffers.reflection.KeyValue.__lookup_by_key(obj, __vector(o), key, bb) : null; } + public com.google.flatbuffers.reflection.KeyValue.Vector attributesVector() { return attributesVector(new com.google.flatbuffers.reflection.KeyValue.Vector()); } + public com.google.flatbuffers.reflection.KeyValue.Vector attributesVector(com.google.flatbuffers.reflection.KeyValue.Vector obj) { int o = __offset(14); return o != 0 ? obj.__assign(__vector(o), 4, bb) : null; } + public String documentation(int j) { int o = __offset(16); return o != 0 ? __string(__vector(o) + j * 4) : null; } + public int documentationLength() { int o = __offset(16); return o != 0 ? __vector_len(o) : 0; } + public StringVector documentationVector() { return documentationVector(new StringVector()); } + public StringVector documentationVector(StringVector obj) { int o = __offset(16); return o != 0 ? obj.__assign(__vector(o), 4, bb) : null; } + /** + * File that this Object is declared in. + */ + public String declarationFile() { int o = __offset(18); return o != 0 ? __string(o + bb_pos) : null; } + public ByteBuffer declarationFileAsByteBuffer() { return __vector_as_bytebuffer(18, 1); } + public ByteBuffer declarationFileInByteBuffer(ByteBuffer _bb) { return __vector_in_bytebuffer(_bb, 18, 1); } + + public static int createObject(FlatBufferBuilder builder, + int nameOffset, + int fieldsOffset, + boolean isStruct, + int minalign, + int bytesize, + int attributesOffset, + int documentationOffset, + int declarationFileOffset) { + builder.startTable(8); + Object.addDeclarationFile(builder, declarationFileOffset); + Object.addDocumentation(builder, documentationOffset); + Object.addAttributes(builder, attributesOffset); + Object.addBytesize(builder, bytesize); + Object.addMinalign(builder, minalign); + Object.addFields(builder, fieldsOffset); + Object.addName(builder, nameOffset); + Object.addIsStruct(builder, isStruct); + return Object.endObject(builder); + } + + public static void startObject(FlatBufferBuilder builder) { builder.startTable(8); } + public static void addName(FlatBufferBuilder builder, int nameOffset) { builder.addOffset(nameOffset); builder.slot(0); } + public static void addFields(FlatBufferBuilder builder, int fieldsOffset) { builder.addOffset(1, fieldsOffset, 0); } + public static int createFieldsVector(FlatBufferBuilder builder, int[] data) { builder.startVector(4, data.length, 4); for (int i = data.length - 1; i >= 0; i--) builder.addOffset(data[i]); return builder.endVector(); } + public static void startFieldsVector(FlatBufferBuilder builder, int numElems) { builder.startVector(4, numElems, 4); } + public static void addIsStruct(FlatBufferBuilder builder, boolean isStruct) { builder.addBoolean(2, isStruct, false); } + public static void addMinalign(FlatBufferBuilder builder, int minalign) { builder.addInt(3, minalign, 0); } + public static void addBytesize(FlatBufferBuilder builder, int bytesize) { builder.addInt(4, bytesize, 0); } + public static void addAttributes(FlatBufferBuilder builder, int attributesOffset) { builder.addOffset(5, attributesOffset, 0); } + public static int createAttributesVector(FlatBufferBuilder builder, int[] data) { builder.startVector(4, data.length, 4); for (int i = data.length - 1; i >= 0; i--) builder.addOffset(data[i]); return builder.endVector(); } + public static void startAttributesVector(FlatBufferBuilder builder, int numElems) { builder.startVector(4, numElems, 4); } + public static void addDocumentation(FlatBufferBuilder builder, int documentationOffset) { builder.addOffset(6, documentationOffset, 0); } + public static int createDocumentationVector(FlatBufferBuilder builder, int[] data) { builder.startVector(4, data.length, 4); for (int i = data.length - 1; i >= 0; i--) builder.addOffset(data[i]); return builder.endVector(); } + public static void startDocumentationVector(FlatBufferBuilder builder, int numElems) { builder.startVector(4, numElems, 4); } + public static void addDeclarationFile(FlatBufferBuilder builder, int declarationFileOffset) { builder.addOffset(7, declarationFileOffset, 0); } + public static int endObject(FlatBufferBuilder builder) { + int o = builder.endTable(); + builder.required(o, 4); // name + builder.required(o, 6); // fields + return o; + } + + @Override + protected int keysCompare(Integer o1, Integer o2, ByteBuffer _bb) { return compareStrings(__offset(4, o1, _bb), __offset(4, o2, _bb), _bb); } + + public static Object __lookup_by_key(Object obj, int vectorLocation, String key, ByteBuffer bb) { + byte[] byteKey = key.getBytes(java.nio.charset.StandardCharsets.UTF_8); + int span = bb.getInt(vectorLocation - 4); + int start = 0; + while (span != 0) { + int middle = span / 2; + int tableOffset = __indirect(vectorLocation + 4 * (start + middle), bb); + int comp = compareStrings(__offset(4, bb.capacity() - tableOffset, bb), byteKey, bb); + if (comp > 0) { + span = middle; + } else if (comp < 0) { + middle++; + start += middle; + span -= middle; + } else { + return (obj == null ? new Object() : obj).__assign(tableOffset, bb); + } + } + return null; + } + + public static final class Vector extends BaseVector { + public Vector __assign(int _vector, int _element_size, ByteBuffer _bb) { __reset(_vector, _element_size, _bb); return this; } + + public Object get(int j) { return get(new Object(), j); } + public Object get(Object obj, int j) { return obj.__assign(__indirect(__element(j), bb), bb); } + public Object getByKey(String key) { return __lookup_by_key(null, __vector(), key, bb); } + public Object getByKey(Object obj, String key) { return __lookup_by_key(obj, __vector(), key, bb); } + } +} + diff --git a/java/src/main/java/com/google/flatbuffers/reflection/RPCCall.java b/java/src/main/java/com/google/flatbuffers/reflection/RPCCall.java new file mode 100644 index 0000000000..5ea5884b40 --- /dev/null +++ b/java/src/main/java/com/google/flatbuffers/reflection/RPCCall.java @@ -0,0 +1,115 @@ +// automatically generated by the FlatBuffers compiler, do not modify + +package com.google.flatbuffers.reflection; + +import com.google.flatbuffers.BaseVector; +import com.google.flatbuffers.BooleanVector; +import com.google.flatbuffers.ByteVector; +import com.google.flatbuffers.Constants; +import com.google.flatbuffers.DoubleVector; +import com.google.flatbuffers.FlatBufferBuilder; +import com.google.flatbuffers.FloatVector; +import com.google.flatbuffers.IntVector; +import com.google.flatbuffers.LongVector; +import com.google.flatbuffers.ShortVector; +import com.google.flatbuffers.StringVector; +import com.google.flatbuffers.Struct; +import com.google.flatbuffers.Table; +import com.google.flatbuffers.UnionVector; +import java.nio.ByteBuffer; +import java.nio.ByteOrder; + +@SuppressWarnings("unused") +public final class RPCCall extends Table { + public static void ValidateVersion() { Constants.FLATBUFFERS_23_1_21(); } + public static RPCCall getRootAsRPCCall(ByteBuffer _bb) { return getRootAsRPCCall(_bb, new RPCCall()); } + public static RPCCall getRootAsRPCCall(ByteBuffer _bb, RPCCall obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } + public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } + public RPCCall __assign(int _i, ByteBuffer _bb) { __init(_i, _bb); return this; } + + public String name() { int o = __offset(4); return o != 0 ? __string(o + bb_pos) : null; } + public ByteBuffer nameAsByteBuffer() { return __vector_as_bytebuffer(4, 1); } + public ByteBuffer nameInByteBuffer(ByteBuffer _bb) { return __vector_in_bytebuffer(_bb, 4, 1); } + public com.google.flatbuffers.reflection.Object request() { return request(new com.google.flatbuffers.reflection.Object()); } + public com.google.flatbuffers.reflection.Object request(com.google.flatbuffers.reflection.Object obj) { int o = __offset(6); return o != 0 ? obj.__assign(__indirect(o + bb_pos), bb) : null; } + public com.google.flatbuffers.reflection.Object response() { return response(new com.google.flatbuffers.reflection.Object()); } + public com.google.flatbuffers.reflection.Object response(com.google.flatbuffers.reflection.Object obj) { int o = __offset(8); return o != 0 ? obj.__assign(__indirect(o + bb_pos), bb) : null; } + public com.google.flatbuffers.reflection.KeyValue attributes(int j) { return attributes(new com.google.flatbuffers.reflection.KeyValue(), j); } + public com.google.flatbuffers.reflection.KeyValue attributes(com.google.flatbuffers.reflection.KeyValue obj, int j) { int o = __offset(10); return o != 0 ? obj.__assign(__indirect(__vector(o) + j * 4), bb) : null; } + public int attributesLength() { int o = __offset(10); return o != 0 ? __vector_len(o) : 0; } + public com.google.flatbuffers.reflection.KeyValue attributesByKey(String key) { int o = __offset(10); return o != 0 ? com.google.flatbuffers.reflection.KeyValue.__lookup_by_key(null, __vector(o), key, bb) : null; } + public com.google.flatbuffers.reflection.KeyValue attributesByKey(com.google.flatbuffers.reflection.KeyValue obj, String key) { int o = __offset(10); return o != 0 ? com.google.flatbuffers.reflection.KeyValue.__lookup_by_key(obj, __vector(o), key, bb) : null; } + public com.google.flatbuffers.reflection.KeyValue.Vector attributesVector() { return attributesVector(new com.google.flatbuffers.reflection.KeyValue.Vector()); } + public com.google.flatbuffers.reflection.KeyValue.Vector attributesVector(com.google.flatbuffers.reflection.KeyValue.Vector obj) { int o = __offset(10); return o != 0 ? obj.__assign(__vector(o), 4, bb) : null; } + public String documentation(int j) { int o = __offset(12); return o != 0 ? __string(__vector(o) + j * 4) : null; } + public int documentationLength() { int o = __offset(12); return o != 0 ? __vector_len(o) : 0; } + public StringVector documentationVector() { return documentationVector(new StringVector()); } + public StringVector documentationVector(StringVector obj) { int o = __offset(12); return o != 0 ? obj.__assign(__vector(o), 4, bb) : null; } + + public static int createRPCCall(FlatBufferBuilder builder, + int nameOffset, + int requestOffset, + int responseOffset, + int attributesOffset, + int documentationOffset) { + builder.startTable(5); + RPCCall.addDocumentation(builder, documentationOffset); + RPCCall.addAttributes(builder, attributesOffset); + RPCCall.addResponse(builder, responseOffset); + RPCCall.addRequest(builder, requestOffset); + RPCCall.addName(builder, nameOffset); + return RPCCall.endRPCCall(builder); + } + + public static void startRPCCall(FlatBufferBuilder builder) { builder.startTable(5); } + public static void addName(FlatBufferBuilder builder, int nameOffset) { builder.addOffset(nameOffset); builder.slot(0); } + public static void addRequest(FlatBufferBuilder builder, int requestOffset) { builder.addOffset(1, requestOffset, 0); } + public static void addResponse(FlatBufferBuilder builder, int responseOffset) { builder.addOffset(2, responseOffset, 0); } + public static void addAttributes(FlatBufferBuilder builder, int attributesOffset) { builder.addOffset(3, attributesOffset, 0); } + public static int createAttributesVector(FlatBufferBuilder builder, int[] data) { builder.startVector(4, data.length, 4); for (int i = data.length - 1; i >= 0; i--) builder.addOffset(data[i]); return builder.endVector(); } + public static void startAttributesVector(FlatBufferBuilder builder, int numElems) { builder.startVector(4, numElems, 4); } + public static void addDocumentation(FlatBufferBuilder builder, int documentationOffset) { builder.addOffset(4, documentationOffset, 0); } + public static int createDocumentationVector(FlatBufferBuilder builder, int[] data) { builder.startVector(4, data.length, 4); for (int i = data.length - 1; i >= 0; i--) builder.addOffset(data[i]); return builder.endVector(); } + public static void startDocumentationVector(FlatBufferBuilder builder, int numElems) { builder.startVector(4, numElems, 4); } + public static int endRPCCall(FlatBufferBuilder builder) { + int o = builder.endTable(); + builder.required(o, 4); // name + builder.required(o, 6); // request + builder.required(o, 8); // response + return o; + } + + @Override + protected int keysCompare(Integer o1, Integer o2, ByteBuffer _bb) { return compareStrings(__offset(4, o1, _bb), __offset(4, o2, _bb), _bb); } + + public static RPCCall __lookup_by_key(RPCCall obj, int vectorLocation, String key, ByteBuffer bb) { + byte[] byteKey = key.getBytes(java.nio.charset.StandardCharsets.UTF_8); + int span = bb.getInt(vectorLocation - 4); + int start = 0; + while (span != 0) { + int middle = span / 2; + int tableOffset = __indirect(vectorLocation + 4 * (start + middle), bb); + int comp = compareStrings(__offset(4, bb.capacity() - tableOffset, bb), byteKey, bb); + if (comp > 0) { + span = middle; + } else if (comp < 0) { + middle++; + start += middle; + span -= middle; + } else { + return (obj == null ? new RPCCall() : obj).__assign(tableOffset, bb); + } + } + return null; + } + + public static final class Vector extends BaseVector { + public Vector __assign(int _vector, int _element_size, ByteBuffer _bb) { __reset(_vector, _element_size, _bb); return this; } + + public RPCCall get(int j) { return get(new RPCCall(), j); } + public RPCCall get(RPCCall obj, int j) { return obj.__assign(__indirect(__element(j), bb), bb); } + public RPCCall getByKey(String key) { return __lookup_by_key(null, __vector(), key, bb); } + public RPCCall getByKey(RPCCall obj, String key) { return __lookup_by_key(obj, __vector(), key, bb); } + } +} + diff --git a/java/src/main/java/com/google/flatbuffers/reflection/Schema.java b/java/src/main/java/com/google/flatbuffers/reflection/Schema.java new file mode 100644 index 0000000000..13ba7b59be --- /dev/null +++ b/java/src/main/java/com/google/flatbuffers/reflection/Schema.java @@ -0,0 +1,127 @@ +// automatically generated by the FlatBuffers compiler, do not modify + +package com.google.flatbuffers.reflection; + +import com.google.flatbuffers.BaseVector; +import com.google.flatbuffers.BooleanVector; +import com.google.flatbuffers.ByteVector; +import com.google.flatbuffers.Constants; +import com.google.flatbuffers.DoubleVector; +import com.google.flatbuffers.FlatBufferBuilder; +import com.google.flatbuffers.FloatVector; +import com.google.flatbuffers.IntVector; +import com.google.flatbuffers.LongVector; +import com.google.flatbuffers.ShortVector; +import com.google.flatbuffers.StringVector; +import com.google.flatbuffers.Struct; +import com.google.flatbuffers.Table; +import com.google.flatbuffers.UnionVector; +import java.nio.ByteBuffer; +import java.nio.ByteOrder; + +@SuppressWarnings("unused") +public final class Schema extends Table { + public static void ValidateVersion() { Constants.FLATBUFFERS_23_1_21(); } + public static Schema getRootAsSchema(ByteBuffer _bb) { return getRootAsSchema(_bb, new Schema()); } + public static Schema getRootAsSchema(ByteBuffer _bb, Schema obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } + public static boolean SchemaBufferHasIdentifier(ByteBuffer _bb) { return __has_identifier(_bb, "BFBS"); } + public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } + public Schema __assign(int _i, ByteBuffer _bb) { __init(_i, _bb); return this; } + + public com.google.flatbuffers.reflection.Object objects(int j) { return objects(new com.google.flatbuffers.reflection.Object(), j); } + public com.google.flatbuffers.reflection.Object objects(com.google.flatbuffers.reflection.Object obj, int j) { int o = __offset(4); return o != 0 ? obj.__assign(__indirect(__vector(o) + j * 4), bb) : null; } + public int objectsLength() { int o = __offset(4); return o != 0 ? __vector_len(o) : 0; } + public com.google.flatbuffers.reflection.Object objectsByKey(String key) { int o = __offset(4); return o != 0 ? com.google.flatbuffers.reflection.Object.__lookup_by_key(null, __vector(o), key, bb) : null; } + public com.google.flatbuffers.reflection.Object objectsByKey(com.google.flatbuffers.reflection.Object obj, String key) { int o = __offset(4); return o != 0 ? com.google.flatbuffers.reflection.Object.__lookup_by_key(obj, __vector(o), key, bb) : null; } + public com.google.flatbuffers.reflection.Object.Vector objectsVector() { return objectsVector(new com.google.flatbuffers.reflection.Object.Vector()); } + public com.google.flatbuffers.reflection.Object.Vector objectsVector(com.google.flatbuffers.reflection.Object.Vector obj) { int o = __offset(4); return o != 0 ? obj.__assign(__vector(o), 4, bb) : null; } + public com.google.flatbuffers.reflection.Enum enums(int j) { return enums(new com.google.flatbuffers.reflection.Enum(), j); } + public com.google.flatbuffers.reflection.Enum enums(com.google.flatbuffers.reflection.Enum obj, int j) { int o = __offset(6); return o != 0 ? obj.__assign(__indirect(__vector(o) + j * 4), bb) : null; } + public int enumsLength() { int o = __offset(6); return o != 0 ? __vector_len(o) : 0; } + public com.google.flatbuffers.reflection.Enum enumsByKey(String key) { int o = __offset(6); return o != 0 ? com.google.flatbuffers.reflection.Enum.__lookup_by_key(null, __vector(o), key, bb) : null; } + public com.google.flatbuffers.reflection.Enum enumsByKey(com.google.flatbuffers.reflection.Enum obj, String key) { int o = __offset(6); return o != 0 ? com.google.flatbuffers.reflection.Enum.__lookup_by_key(obj, __vector(o), key, bb) : null; } + public com.google.flatbuffers.reflection.Enum.Vector enumsVector() { return enumsVector(new com.google.flatbuffers.reflection.Enum.Vector()); } + public com.google.flatbuffers.reflection.Enum.Vector enumsVector(com.google.flatbuffers.reflection.Enum.Vector obj) { int o = __offset(6); return o != 0 ? obj.__assign(__vector(o), 4, bb) : null; } + public String fileIdent() { int o = __offset(8); return o != 0 ? __string(o + bb_pos) : null; } + public ByteBuffer fileIdentAsByteBuffer() { return __vector_as_bytebuffer(8, 1); } + public ByteBuffer fileIdentInByteBuffer(ByteBuffer _bb) { return __vector_in_bytebuffer(_bb, 8, 1); } + public String fileExt() { int o = __offset(10); return o != 0 ? __string(o + bb_pos) : null; } + public ByteBuffer fileExtAsByteBuffer() { return __vector_as_bytebuffer(10, 1); } + public ByteBuffer fileExtInByteBuffer(ByteBuffer _bb) { return __vector_in_bytebuffer(_bb, 10, 1); } + public com.google.flatbuffers.reflection.Object rootTable() { return rootTable(new com.google.flatbuffers.reflection.Object()); } + public com.google.flatbuffers.reflection.Object rootTable(com.google.flatbuffers.reflection.Object obj) { int o = __offset(12); return o != 0 ? obj.__assign(__indirect(o + bb_pos), bb) : null; } + public com.google.flatbuffers.reflection.Service services(int j) { return services(new com.google.flatbuffers.reflection.Service(), j); } + public com.google.flatbuffers.reflection.Service services(com.google.flatbuffers.reflection.Service obj, int j) { int o = __offset(14); return o != 0 ? obj.__assign(__indirect(__vector(o) + j * 4), bb) : null; } + public int servicesLength() { int o = __offset(14); return o != 0 ? __vector_len(o) : 0; } + public com.google.flatbuffers.reflection.Service servicesByKey(String key) { int o = __offset(14); return o != 0 ? com.google.flatbuffers.reflection.Service.__lookup_by_key(null, __vector(o), key, bb) : null; } + public com.google.flatbuffers.reflection.Service servicesByKey(com.google.flatbuffers.reflection.Service obj, String key) { int o = __offset(14); return o != 0 ? com.google.flatbuffers.reflection.Service.__lookup_by_key(obj, __vector(o), key, bb) : null; } + public com.google.flatbuffers.reflection.Service.Vector servicesVector() { return servicesVector(new com.google.flatbuffers.reflection.Service.Vector()); } + public com.google.flatbuffers.reflection.Service.Vector servicesVector(com.google.flatbuffers.reflection.Service.Vector obj) { int o = __offset(14); return o != 0 ? obj.__assign(__vector(o), 4, bb) : null; } + public long advancedFeatures() { int o = __offset(16); return o != 0 ? bb.getLong(o + bb_pos) : 0L; } + /** + * All the files used in this compilation. Files are relative to where + * flatc was invoked. + */ + public com.google.flatbuffers.reflection.SchemaFile fbsFiles(int j) { return fbsFiles(new com.google.flatbuffers.reflection.SchemaFile(), j); } + public com.google.flatbuffers.reflection.SchemaFile fbsFiles(com.google.flatbuffers.reflection.SchemaFile obj, int j) { int o = __offset(18); return o != 0 ? obj.__assign(__indirect(__vector(o) + j * 4), bb) : null; } + public int fbsFilesLength() { int o = __offset(18); return o != 0 ? __vector_len(o) : 0; } + public com.google.flatbuffers.reflection.SchemaFile fbsFilesByKey(String key) { int o = __offset(18); return o != 0 ? com.google.flatbuffers.reflection.SchemaFile.__lookup_by_key(null, __vector(o), key, bb) : null; } + public com.google.flatbuffers.reflection.SchemaFile fbsFilesByKey(com.google.flatbuffers.reflection.SchemaFile obj, String key) { int o = __offset(18); return o != 0 ? com.google.flatbuffers.reflection.SchemaFile.__lookup_by_key(obj, __vector(o), key, bb) : null; } + public com.google.flatbuffers.reflection.SchemaFile.Vector fbsFilesVector() { return fbsFilesVector(new com.google.flatbuffers.reflection.SchemaFile.Vector()); } + public com.google.flatbuffers.reflection.SchemaFile.Vector fbsFilesVector(com.google.flatbuffers.reflection.SchemaFile.Vector obj) { int o = __offset(18); return o != 0 ? obj.__assign(__vector(o), 4, bb) : null; } + + public static int createSchema(FlatBufferBuilder builder, + int objectsOffset, + int enumsOffset, + int fileIdentOffset, + int fileExtOffset, + int rootTableOffset, + int servicesOffset, + long advancedFeatures, + int fbsFilesOffset) { + builder.startTable(8); + Schema.addAdvancedFeatures(builder, advancedFeatures); + Schema.addFbsFiles(builder, fbsFilesOffset); + Schema.addServices(builder, servicesOffset); + Schema.addRootTable(builder, rootTableOffset); + Schema.addFileExt(builder, fileExtOffset); + Schema.addFileIdent(builder, fileIdentOffset); + Schema.addEnums(builder, enumsOffset); + Schema.addObjects(builder, objectsOffset); + return Schema.endSchema(builder); + } + + public static void startSchema(FlatBufferBuilder builder) { builder.startTable(8); } + public static void addObjects(FlatBufferBuilder builder, int objectsOffset) { builder.addOffset(0, objectsOffset, 0); } + public static int createObjectsVector(FlatBufferBuilder builder, int[] data) { builder.startVector(4, data.length, 4); for (int i = data.length - 1; i >= 0; i--) builder.addOffset(data[i]); return builder.endVector(); } + public static void startObjectsVector(FlatBufferBuilder builder, int numElems) { builder.startVector(4, numElems, 4); } + public static void addEnums(FlatBufferBuilder builder, int enumsOffset) { builder.addOffset(1, enumsOffset, 0); } + public static int createEnumsVector(FlatBufferBuilder builder, int[] data) { builder.startVector(4, data.length, 4); for (int i = data.length - 1; i >= 0; i--) builder.addOffset(data[i]); return builder.endVector(); } + public static void startEnumsVector(FlatBufferBuilder builder, int numElems) { builder.startVector(4, numElems, 4); } + public static void addFileIdent(FlatBufferBuilder builder, int fileIdentOffset) { builder.addOffset(2, fileIdentOffset, 0); } + public static void addFileExt(FlatBufferBuilder builder, int fileExtOffset) { builder.addOffset(3, fileExtOffset, 0); } + public static void addRootTable(FlatBufferBuilder builder, int rootTableOffset) { builder.addOffset(4, rootTableOffset, 0); } + public static void addServices(FlatBufferBuilder builder, int servicesOffset) { builder.addOffset(5, servicesOffset, 0); } + public static int createServicesVector(FlatBufferBuilder builder, int[] data) { builder.startVector(4, data.length, 4); for (int i = data.length - 1; i >= 0; i--) builder.addOffset(data[i]); return builder.endVector(); } + public static void startServicesVector(FlatBufferBuilder builder, int numElems) { builder.startVector(4, numElems, 4); } + public static void addAdvancedFeatures(FlatBufferBuilder builder, long advancedFeatures) { builder.addLong(6, advancedFeatures, 0L); } + public static void addFbsFiles(FlatBufferBuilder builder, int fbsFilesOffset) { builder.addOffset(7, fbsFilesOffset, 0); } + public static int createFbsFilesVector(FlatBufferBuilder builder, int[] data) { builder.startVector(4, data.length, 4); for (int i = data.length - 1; i >= 0; i--) builder.addOffset(data[i]); return builder.endVector(); } + public static void startFbsFilesVector(FlatBufferBuilder builder, int numElems) { builder.startVector(4, numElems, 4); } + public static int endSchema(FlatBufferBuilder builder) { + int o = builder.endTable(); + builder.required(o, 4); // objects + builder.required(o, 6); // enums + return o; + } + public static void finishSchemaBuffer(FlatBufferBuilder builder, int offset) { builder.finish(offset, "BFBS"); } + public static void finishSizePrefixedSchemaBuffer(FlatBufferBuilder builder, int offset) { builder.finishSizePrefixed(offset, "BFBS"); } + + public static final class Vector extends BaseVector { + public Vector __assign(int _vector, int _element_size, ByteBuffer _bb) { __reset(_vector, _element_size, _bb); return this; } + + public Schema get(int j) { return get(new Schema(), j); } + public Schema get(Schema obj, int j) { return obj.__assign(__indirect(__element(j), bb), bb); } + } +} + diff --git a/java/src/main/java/com/google/flatbuffers/reflection/SchemaFile.java b/java/src/main/java/com/google/flatbuffers/reflection/SchemaFile.java new file mode 100644 index 0000000000..b159848f14 --- /dev/null +++ b/java/src/main/java/com/google/flatbuffers/reflection/SchemaFile.java @@ -0,0 +1,102 @@ +// automatically generated by the FlatBuffers compiler, do not modify + +package com.google.flatbuffers.reflection; + +import com.google.flatbuffers.BaseVector; +import com.google.flatbuffers.BooleanVector; +import com.google.flatbuffers.ByteVector; +import com.google.flatbuffers.Constants; +import com.google.flatbuffers.DoubleVector; +import com.google.flatbuffers.FlatBufferBuilder; +import com.google.flatbuffers.FloatVector; +import com.google.flatbuffers.IntVector; +import com.google.flatbuffers.LongVector; +import com.google.flatbuffers.ShortVector; +import com.google.flatbuffers.StringVector; +import com.google.flatbuffers.Struct; +import com.google.flatbuffers.Table; +import com.google.flatbuffers.UnionVector; +import java.nio.ByteBuffer; +import java.nio.ByteOrder; + +/** + * File specific information. + * Symbols declared within a file may be recovered by iterating over all + * symbols and examining the `declaration_file` field. + */ +@SuppressWarnings("unused") +public final class SchemaFile extends Table { + public static void ValidateVersion() { Constants.FLATBUFFERS_23_1_21(); } + public static SchemaFile getRootAsSchemaFile(ByteBuffer _bb) { return getRootAsSchemaFile(_bb, new SchemaFile()); } + public static SchemaFile getRootAsSchemaFile(ByteBuffer _bb, SchemaFile obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } + public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } + public SchemaFile __assign(int _i, ByteBuffer _bb) { __init(_i, _bb); return this; } + + /** + * Filename, relative to project root. + */ + public String filename() { int o = __offset(4); return o != 0 ? __string(o + bb_pos) : null; } + public ByteBuffer filenameAsByteBuffer() { return __vector_as_bytebuffer(4, 1); } + public ByteBuffer filenameInByteBuffer(ByteBuffer _bb) { return __vector_in_bytebuffer(_bb, 4, 1); } + /** + * Names of included files, relative to project root. + */ + public String includedFilenames(int j) { int o = __offset(6); return o != 0 ? __string(__vector(o) + j * 4) : null; } + public int includedFilenamesLength() { int o = __offset(6); return o != 0 ? __vector_len(o) : 0; } + public StringVector includedFilenamesVector() { return includedFilenamesVector(new StringVector()); } + public StringVector includedFilenamesVector(StringVector obj) { int o = __offset(6); return o != 0 ? obj.__assign(__vector(o), 4, bb) : null; } + + public static int createSchemaFile(FlatBufferBuilder builder, + int filenameOffset, + int includedFilenamesOffset) { + builder.startTable(2); + SchemaFile.addIncludedFilenames(builder, includedFilenamesOffset); + SchemaFile.addFilename(builder, filenameOffset); + return SchemaFile.endSchemaFile(builder); + } + + public static void startSchemaFile(FlatBufferBuilder builder) { builder.startTable(2); } + public static void addFilename(FlatBufferBuilder builder, int filenameOffset) { builder.addOffset(filenameOffset); builder.slot(0); } + public static void addIncludedFilenames(FlatBufferBuilder builder, int includedFilenamesOffset) { builder.addOffset(1, includedFilenamesOffset, 0); } + public static int createIncludedFilenamesVector(FlatBufferBuilder builder, int[] data) { builder.startVector(4, data.length, 4); for (int i = data.length - 1; i >= 0; i--) builder.addOffset(data[i]); return builder.endVector(); } + public static void startIncludedFilenamesVector(FlatBufferBuilder builder, int numElems) { builder.startVector(4, numElems, 4); } + public static int endSchemaFile(FlatBufferBuilder builder) { + int o = builder.endTable(); + builder.required(o, 4); // filename + return o; + } + + @Override + protected int keysCompare(Integer o1, Integer o2, ByteBuffer _bb) { return compareStrings(__offset(4, o1, _bb), __offset(4, o2, _bb), _bb); } + + public static SchemaFile __lookup_by_key(SchemaFile obj, int vectorLocation, String key, ByteBuffer bb) { + byte[] byteKey = key.getBytes(java.nio.charset.StandardCharsets.UTF_8); + int span = bb.getInt(vectorLocation - 4); + int start = 0; + while (span != 0) { + int middle = span / 2; + int tableOffset = __indirect(vectorLocation + 4 * (start + middle), bb); + int comp = compareStrings(__offset(4, bb.capacity() - tableOffset, bb), byteKey, bb); + if (comp > 0) { + span = middle; + } else if (comp < 0) { + middle++; + start += middle; + span -= middle; + } else { + return (obj == null ? new SchemaFile() : obj).__assign(tableOffset, bb); + } + } + return null; + } + + public static final class Vector extends BaseVector { + public Vector __assign(int _vector, int _element_size, ByteBuffer _bb) { __reset(_vector, _element_size, _bb); return this; } + + public SchemaFile get(int j) { return get(new SchemaFile(), j); } + public SchemaFile get(SchemaFile obj, int j) { return obj.__assign(__indirect(__element(j), bb), bb); } + public SchemaFile getByKey(String key) { return __lookup_by_key(null, __vector(), key, bb); } + public SchemaFile getByKey(SchemaFile obj, String key) { return __lookup_by_key(obj, __vector(), key, bb); } + } +} + diff --git a/java/src/main/java/com/google/flatbuffers/reflection/Service.java b/java/src/main/java/com/google/flatbuffers/reflection/Service.java new file mode 100644 index 0000000000..0acabb4b76 --- /dev/null +++ b/java/src/main/java/com/google/flatbuffers/reflection/Service.java @@ -0,0 +1,124 @@ +// automatically generated by the FlatBuffers compiler, do not modify + +package com.google.flatbuffers.reflection; + +import com.google.flatbuffers.BaseVector; +import com.google.flatbuffers.BooleanVector; +import com.google.flatbuffers.ByteVector; +import com.google.flatbuffers.Constants; +import com.google.flatbuffers.DoubleVector; +import com.google.flatbuffers.FlatBufferBuilder; +import com.google.flatbuffers.FloatVector; +import com.google.flatbuffers.IntVector; +import com.google.flatbuffers.LongVector; +import com.google.flatbuffers.ShortVector; +import com.google.flatbuffers.StringVector; +import com.google.flatbuffers.Struct; +import com.google.flatbuffers.Table; +import com.google.flatbuffers.UnionVector; +import java.nio.ByteBuffer; +import java.nio.ByteOrder; + +@SuppressWarnings("unused") +public final class Service extends Table { + public static void ValidateVersion() { Constants.FLATBUFFERS_23_1_21(); } + public static Service getRootAsService(ByteBuffer _bb) { return getRootAsService(_bb, new Service()); } + public static Service getRootAsService(ByteBuffer _bb, Service obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } + public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } + public Service __assign(int _i, ByteBuffer _bb) { __init(_i, _bb); return this; } + + public String name() { int o = __offset(4); return o != 0 ? __string(o + bb_pos) : null; } + public ByteBuffer nameAsByteBuffer() { return __vector_as_bytebuffer(4, 1); } + public ByteBuffer nameInByteBuffer(ByteBuffer _bb) { return __vector_in_bytebuffer(_bb, 4, 1); } + public com.google.flatbuffers.reflection.RPCCall calls(int j) { return calls(new com.google.flatbuffers.reflection.RPCCall(), j); } + public com.google.flatbuffers.reflection.RPCCall calls(com.google.flatbuffers.reflection.RPCCall obj, int j) { int o = __offset(6); return o != 0 ? obj.__assign(__indirect(__vector(o) + j * 4), bb) : null; } + public int callsLength() { int o = __offset(6); return o != 0 ? __vector_len(o) : 0; } + public com.google.flatbuffers.reflection.RPCCall callsByKey(String key) { int o = __offset(6); return o != 0 ? com.google.flatbuffers.reflection.RPCCall.__lookup_by_key(null, __vector(o), key, bb) : null; } + public com.google.flatbuffers.reflection.RPCCall callsByKey(com.google.flatbuffers.reflection.RPCCall obj, String key) { int o = __offset(6); return o != 0 ? com.google.flatbuffers.reflection.RPCCall.__lookup_by_key(obj, __vector(o), key, bb) : null; } + public com.google.flatbuffers.reflection.RPCCall.Vector callsVector() { return callsVector(new com.google.flatbuffers.reflection.RPCCall.Vector()); } + public com.google.flatbuffers.reflection.RPCCall.Vector callsVector(com.google.flatbuffers.reflection.RPCCall.Vector obj) { int o = __offset(6); return o != 0 ? obj.__assign(__vector(o), 4, bb) : null; } + public com.google.flatbuffers.reflection.KeyValue attributes(int j) { return attributes(new com.google.flatbuffers.reflection.KeyValue(), j); } + public com.google.flatbuffers.reflection.KeyValue attributes(com.google.flatbuffers.reflection.KeyValue obj, int j) { int o = __offset(8); return o != 0 ? obj.__assign(__indirect(__vector(o) + j * 4), bb) : null; } + public int attributesLength() { int o = __offset(8); return o != 0 ? __vector_len(o) : 0; } + public com.google.flatbuffers.reflection.KeyValue attributesByKey(String key) { int o = __offset(8); return o != 0 ? com.google.flatbuffers.reflection.KeyValue.__lookup_by_key(null, __vector(o), key, bb) : null; } + public com.google.flatbuffers.reflection.KeyValue attributesByKey(com.google.flatbuffers.reflection.KeyValue obj, String key) { int o = __offset(8); return o != 0 ? com.google.flatbuffers.reflection.KeyValue.__lookup_by_key(obj, __vector(o), key, bb) : null; } + public com.google.flatbuffers.reflection.KeyValue.Vector attributesVector() { return attributesVector(new com.google.flatbuffers.reflection.KeyValue.Vector()); } + public com.google.flatbuffers.reflection.KeyValue.Vector attributesVector(com.google.flatbuffers.reflection.KeyValue.Vector obj) { int o = __offset(8); return o != 0 ? obj.__assign(__vector(o), 4, bb) : null; } + public String documentation(int j) { int o = __offset(10); return o != 0 ? __string(__vector(o) + j * 4) : null; } + public int documentationLength() { int o = __offset(10); return o != 0 ? __vector_len(o) : 0; } + public StringVector documentationVector() { return documentationVector(new StringVector()); } + public StringVector documentationVector(StringVector obj) { int o = __offset(10); return o != 0 ? obj.__assign(__vector(o), 4, bb) : null; } + /** + * File that this Service is declared in. + */ + public String declarationFile() { int o = __offset(12); return o != 0 ? __string(o + bb_pos) : null; } + public ByteBuffer declarationFileAsByteBuffer() { return __vector_as_bytebuffer(12, 1); } + public ByteBuffer declarationFileInByteBuffer(ByteBuffer _bb) { return __vector_in_bytebuffer(_bb, 12, 1); } + + public static int createService(FlatBufferBuilder builder, + int nameOffset, + int callsOffset, + int attributesOffset, + int documentationOffset, + int declarationFileOffset) { + builder.startTable(5); + Service.addDeclarationFile(builder, declarationFileOffset); + Service.addDocumentation(builder, documentationOffset); + Service.addAttributes(builder, attributesOffset); + Service.addCalls(builder, callsOffset); + Service.addName(builder, nameOffset); + return Service.endService(builder); + } + + public static void startService(FlatBufferBuilder builder) { builder.startTable(5); } + public static void addName(FlatBufferBuilder builder, int nameOffset) { builder.addOffset(nameOffset); builder.slot(0); } + public static void addCalls(FlatBufferBuilder builder, int callsOffset) { builder.addOffset(1, callsOffset, 0); } + public static int createCallsVector(FlatBufferBuilder builder, int[] data) { builder.startVector(4, data.length, 4); for (int i = data.length - 1; i >= 0; i--) builder.addOffset(data[i]); return builder.endVector(); } + public static void startCallsVector(FlatBufferBuilder builder, int numElems) { builder.startVector(4, numElems, 4); } + public static void addAttributes(FlatBufferBuilder builder, int attributesOffset) { builder.addOffset(2, attributesOffset, 0); } + public static int createAttributesVector(FlatBufferBuilder builder, int[] data) { builder.startVector(4, data.length, 4); for (int i = data.length - 1; i >= 0; i--) builder.addOffset(data[i]); return builder.endVector(); } + public static void startAttributesVector(FlatBufferBuilder builder, int numElems) { builder.startVector(4, numElems, 4); } + public static void addDocumentation(FlatBufferBuilder builder, int documentationOffset) { builder.addOffset(3, documentationOffset, 0); } + public static int createDocumentationVector(FlatBufferBuilder builder, int[] data) { builder.startVector(4, data.length, 4); for (int i = data.length - 1; i >= 0; i--) builder.addOffset(data[i]); return builder.endVector(); } + public static void startDocumentationVector(FlatBufferBuilder builder, int numElems) { builder.startVector(4, numElems, 4); } + public static void addDeclarationFile(FlatBufferBuilder builder, int declarationFileOffset) { builder.addOffset(4, declarationFileOffset, 0); } + public static int endService(FlatBufferBuilder builder) { + int o = builder.endTable(); + builder.required(o, 4); // name + return o; + } + + @Override + protected int keysCompare(Integer o1, Integer o2, ByteBuffer _bb) { return compareStrings(__offset(4, o1, _bb), __offset(4, o2, _bb), _bb); } + + public static Service __lookup_by_key(Service obj, int vectorLocation, String key, ByteBuffer bb) { + byte[] byteKey = key.getBytes(java.nio.charset.StandardCharsets.UTF_8); + int span = bb.getInt(vectorLocation - 4); + int start = 0; + while (span != 0) { + int middle = span / 2; + int tableOffset = __indirect(vectorLocation + 4 * (start + middle), bb); + int comp = compareStrings(__offset(4, bb.capacity() - tableOffset, bb), byteKey, bb); + if (comp > 0) { + span = middle; + } else if (comp < 0) { + middle++; + start += middle; + span -= middle; + } else { + return (obj == null ? new Service() : obj).__assign(tableOffset, bb); + } + } + return null; + } + + public static final class Vector extends BaseVector { + public Vector __assign(int _vector, int _element_size, ByteBuffer _bb) { __reset(_vector, _element_size, _bb); return this; } + + public Service get(int j) { return get(new Service(), j); } + public Service get(Service obj, int j) { return obj.__assign(__indirect(__element(j), bb), bb); } + public Service getByKey(String key) { return __lookup_by_key(null, __vector(), key, bb); } + public Service getByKey(Service obj, String key) { return __lookup_by_key(obj, __vector(), key, bb); } + } +} + diff --git a/java/src/main/java/com/google/flatbuffers/reflection/Type.java b/java/src/main/java/com/google/flatbuffers/reflection/Type.java new file mode 100644 index 0000000000..b434da8962 --- /dev/null +++ b/java/src/main/java/com/google/flatbuffers/reflection/Type.java @@ -0,0 +1,79 @@ +// automatically generated by the FlatBuffers compiler, do not modify + +package com.google.flatbuffers.reflection; + +import com.google.flatbuffers.BaseVector; +import com.google.flatbuffers.BooleanVector; +import com.google.flatbuffers.ByteVector; +import com.google.flatbuffers.Constants; +import com.google.flatbuffers.DoubleVector; +import com.google.flatbuffers.FlatBufferBuilder; +import com.google.flatbuffers.FloatVector; +import com.google.flatbuffers.IntVector; +import com.google.flatbuffers.LongVector; +import com.google.flatbuffers.ShortVector; +import com.google.flatbuffers.StringVector; +import com.google.flatbuffers.Struct; +import com.google.flatbuffers.Table; +import com.google.flatbuffers.UnionVector; +import java.nio.ByteBuffer; +import java.nio.ByteOrder; + +@SuppressWarnings("unused") +public final class Type extends Table { + public static void ValidateVersion() { Constants.FLATBUFFERS_23_1_21(); } + public static Type getRootAsType(ByteBuffer _bb) { return getRootAsType(_bb, new Type()); } + public static Type getRootAsType(ByteBuffer _bb, Type obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } + public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } + public Type __assign(int _i, ByteBuffer _bb) { __init(_i, _bb); return this; } + + public byte baseType() { int o = __offset(4); return o != 0 ? bb.get(o + bb_pos) : 0; } + public byte element() { int o = __offset(6); return o != 0 ? bb.get(o + bb_pos) : 0; } + public int index() { int o = __offset(8); return o != 0 ? bb.getInt(o + bb_pos) : -1; } + public int fixedLength() { int o = __offset(10); return o != 0 ? bb.getShort(o + bb_pos) & 0xFFFF : 0; } + /** + * The size (octets) of the `base_type` field. + */ + public long baseSize() { int o = __offset(12); return o != 0 ? (long)bb.getInt(o + bb_pos) & 0xFFFFFFFFL : 4L; } + /** + * The size (octets) of the `element` field, if present. + */ + public long elementSize() { int o = __offset(14); return o != 0 ? (long)bb.getInt(o + bb_pos) & 0xFFFFFFFFL : 0L; } + + public static int createType(FlatBufferBuilder builder, + byte baseType, + byte element, + int index, + int fixedLength, + long baseSize, + long elementSize) { + builder.startTable(6); + Type.addElementSize(builder, elementSize); + Type.addBaseSize(builder, baseSize); + Type.addIndex(builder, index); + Type.addFixedLength(builder, fixedLength); + Type.addElement(builder, element); + Type.addBaseType(builder, baseType); + return Type.endType(builder); + } + + public static void startType(FlatBufferBuilder builder) { builder.startTable(6); } + public static void addBaseType(FlatBufferBuilder builder, byte baseType) { builder.addByte(0, baseType, 0); } + public static void addElement(FlatBufferBuilder builder, byte element) { builder.addByte(1, element, 0); } + public static void addIndex(FlatBufferBuilder builder, int index) { builder.addInt(2, index, -1); } + public static void addFixedLength(FlatBufferBuilder builder, int fixedLength) { builder.addShort(3, (short) fixedLength, (short) 0); } + public static void addBaseSize(FlatBufferBuilder builder, long baseSize) { builder.addInt(4, (int) baseSize, (int) 4L); } + public static void addElementSize(FlatBufferBuilder builder, long elementSize) { builder.addInt(5, (int) elementSize, (int) 0L); } + public static int endType(FlatBufferBuilder builder) { + int o = builder.endTable(); + return o; + } + + public static final class Vector extends BaseVector { + public Vector __assign(int _vector, int _element_size, ByteBuffer _bb) { __reset(_vector, _element_size, _bb); return this; } + + public Type get(int j) { return get(new Type(), j); } + public Type get(Type obj, int j) { return obj.__assign(__indirect(__element(j), bb), bb); } + } +} + diff --git a/scripts/generate_code.py b/scripts/generate_code.py index 82981d4183..49dfe34e15 100755 --- a/scripts/generate_code.py +++ b/scripts/generate_code.py @@ -507,6 +507,12 @@ def glob(path, pattern): # Python Reflection flatc_reflection(["-p"], "python/flatbuffers", "reflection") +# Java Reflection +flatc_reflection( + ["-j", "--java-package-prefix", "com.google.flatbuffers"], + "java/src/main/java", "com/google/flatbuffers/reflection" +) + # Annotation From 01834de25e4bf3975a9a00e816292b1ad0fe184b Mon Sep 17 00:00:00 2001 From: Derek Bailey Date: Fri, 3 Mar 2023 11:46:55 -0800 Subject: [PATCH 131/571] FlatBuffers Version 23.3.3 (#7852) --- CHANGELOG.md | 6 ++++ CMake/Version.cmake | 4 +-- FlatBuffers.podspec | 2 +- .../main/java/generated/com/fbs/app/Animal.kt | 2 +- dart/pubspec.yaml | 2 +- .../Sources/Model/greeter_generated.swift | 4 +-- include/flatbuffers/base.h | 4 +-- include/flatbuffers/reflection_generated.h | 4 +-- java/pom.xml | 2 +- .../com/google/flatbuffers/Constants.java | 2 +- .../google/flatbuffers/reflection/Enum.java | 2 +- .../flatbuffers/reflection/EnumVal.java | 2 +- .../google/flatbuffers/reflection/Field.java | 2 +- .../flatbuffers/reflection/KeyValue.java | 2 +- .../google/flatbuffers/reflection/Object.java | 2 +- .../flatbuffers/reflection/RPCCall.java | 2 +- .../google/flatbuffers/reflection/Schema.java | 2 +- .../flatbuffers/reflection/SchemaFile.java | 2 +- .../flatbuffers/reflection/Service.java | 2 +- .../google/flatbuffers/reflection/Type.java | 2 +- net/FlatBuffers/FlatBufferConstants.cs | 2 +- net/FlatBuffers/Google.FlatBuffers.csproj | 2 +- package.json | 2 +- python/flatbuffers/_version.py | 2 +- python/setup.py | 2 +- rust/flatbuffers/Cargo.toml | 2 +- samples/monster_generated.h | 4 +-- samples/monster_generated.swift | 8 ++--- src/idl_gen_csharp.cpp | 2 +- src/idl_gen_java.cpp | 2 +- src/idl_gen_kotlin.cpp | 2 +- src/idl_gen_swift.cpp | 2 +- swift/Sources/FlatBuffers/Constants.swift | 2 +- tests/Abc.nim | 2 +- tests/DictionaryLookup/LongFloatEntry.java | 2 +- tests/DictionaryLookup/LongFloatEntry.kt | 2 +- tests/DictionaryLookup/LongFloatMap.java | 2 +- tests/DictionaryLookup/LongFloatMap.kt | 2 +- tests/KeywordTest/KeywordsInTable.cs | 2 +- tests/KeywordTest/Table2.cs | 2 +- tests/MoreDefaults.nim | 2 +- tests/MyGame/Example/Ability.lua | 2 +- tests/MyGame/Example/Ability.nim | 2 +- tests/MyGame/Example/Any.lua | 2 +- tests/MyGame/Example/Any.nim | 2 +- tests/MyGame/Example/AnyAmbiguousAliases.lua | 2 +- tests/MyGame/Example/AnyAmbiguousAliases.nim | 2 +- tests/MyGame/Example/AnyUniqueAliases.lua | 2 +- tests/MyGame/Example/AnyUniqueAliases.nim | 2 +- tests/MyGame/Example/ArrayTable.cs | 2 +- tests/MyGame/Example/ArrayTable.java | 2 +- tests/MyGame/Example/Color.lua | 2 +- tests/MyGame/Example/Color.nim | 2 +- tests/MyGame/Example/LongEnum.lua | 2 +- tests/MyGame/Example/LongEnum.nim | 2 +- tests/MyGame/Example/Monster.cs | 2 +- tests/MyGame/Example/Monster.java | 2 +- tests/MyGame/Example/Monster.kt | 2 +- tests/MyGame/Example/Monster.lua | 2 +- tests/MyGame/Example/Monster.nim | 2 +- tests/MyGame/Example/Race.lua | 2 +- tests/MyGame/Example/Race.nim | 2 +- tests/MyGame/Example/Referrable.cs | 2 +- tests/MyGame/Example/Referrable.java | 2 +- tests/MyGame/Example/Referrable.kt | 2 +- tests/MyGame/Example/Referrable.lua | 2 +- tests/MyGame/Example/Referrable.nim | 2 +- tests/MyGame/Example/Stat.cs | 2 +- tests/MyGame/Example/Stat.java | 2 +- tests/MyGame/Example/Stat.kt | 2 +- tests/MyGame/Example/Stat.lua | 2 +- tests/MyGame/Example/Stat.nim | 2 +- tests/MyGame/Example/StructOfStructs.lua | 2 +- tests/MyGame/Example/StructOfStructs.nim | 2 +- .../Example/StructOfStructsOfStructs.lua | 2 +- .../Example/StructOfStructsOfStructs.nim | 2 +- tests/MyGame/Example/Test.lua | 2 +- tests/MyGame/Example/Test.nim | 2 +- .../MyGame/Example/TestSimpleTableWithEnum.cs | 2 +- .../Example/TestSimpleTableWithEnum.java | 2 +- .../MyGame/Example/TestSimpleTableWithEnum.kt | 2 +- .../Example/TestSimpleTableWithEnum.lua | 2 +- .../Example/TestSimpleTableWithEnum.nim | 2 +- tests/MyGame/Example/TypeAliases.cs | 2 +- tests/MyGame/Example/TypeAliases.java | 2 +- tests/MyGame/Example/TypeAliases.kt | 2 +- tests/MyGame/Example/TypeAliases.lua | 2 +- tests/MyGame/Example/TypeAliases.nim | 2 +- tests/MyGame/Example/Vec3.lua | 2 +- tests/MyGame/Example/Vec3.nim | 2 +- tests/MyGame/Example2/Monster.cs | 2 +- tests/MyGame/Example2/Monster.java | 2 +- tests/MyGame/Example2/Monster.kt | 2 +- tests/MyGame/Example2/Monster.lua | 2 +- tests/MyGame/Example2/Monster.nim | 2 +- tests/MyGame/InParentNamespace.cs | 2 +- tests/MyGame/InParentNamespace.java | 2 +- tests/MyGame/InParentNamespace.kt | 2 +- tests/MyGame/InParentNamespace.lua | 2 +- tests/MyGame/InParentNamespace.nim | 2 +- tests/MyGame/MonsterExtra.cs | 2 +- tests/MyGame/MonsterExtra.java | 2 +- tests/MyGame/MonsterExtra.kt | 2 +- tests/MyGame/OtherNameSpace/FromInclude.lua | 2 +- tests/MyGame/OtherNameSpace/FromInclude.nim | 2 +- tests/MyGame/OtherNameSpace/TableB.lua | 2 +- tests/MyGame/OtherNameSpace/TableB.nim | 2 +- tests/MyGame/OtherNameSpace/Unused.lua | 2 +- tests/MyGame/OtherNameSpace/Unused.nim | 2 +- tests/Property.nim | 2 +- tests/TableA.lua | 2 +- tests/TableA.nim | 2 +- tests/TestMutatingBool.nim | 2 +- tests/alignment_test_generated.h | 4 +-- tests/arrays_test_generated.h | 4 +-- .../generated_cpp17/monster_test_generated.h | 4 +-- .../optional_scalars_generated.h | 4 +-- .../generated_cpp17/union_vector_generated.h | 4 +-- tests/evolution_test/evolution_v1_generated.h | 4 +-- tests/evolution_test/evolution_v2_generated.h | 4 +-- tests/key_field/key_field_sample_generated.h | 4 +-- tests/monster_extra_generated.h | 4 +-- tests/monster_test_bfbs_generated.h | 4 +-- tests/monster_test_generated.h | 4 +-- .../ext_only/monster_test_generated.hpp | 4 +-- .../filesuffix_only/monster_test_suffix.h | 4 +-- .../monster_test_suffix.hpp | 4 +-- .../NamespaceA/NamespaceB/TableInNestedNS.cs | 2 +- .../NamespaceB/TableInNestedNS.java | 2 +- .../NamespaceA/NamespaceB/TableInNestedNS.kt | 2 +- .../NamespaceA/SecondTableInA.cs | 2 +- .../NamespaceA/SecondTableInA.java | 2 +- .../NamespaceA/SecondTableInA.kt | 2 +- .../NamespaceA/TableInFirstNS.cs | 2 +- .../NamespaceA/TableInFirstNS.java | 2 +- .../NamespaceA/TableInFirstNS.kt | 2 +- tests/namespace_test/NamespaceC/TableInC.cs | 2 +- tests/namespace_test/NamespaceC/TableInC.java | 2 +- tests/namespace_test/NamespaceC/TableInC.kt | 2 +- .../namespace_test1_generated.h | 4 +-- .../namespace_test2_generated.h | 4 +-- tests/native_inline_table_test_generated.h | 4 +-- tests/native_type_test_generated.h | 4 +-- .../nested_namespace_test3_generated.cs | 2 +- tests/optional_scalars/OptionalByte.nim | 2 +- tests/optional_scalars/ScalarStuff.cs | 2 +- tests/optional_scalars/ScalarStuff.java | 2 +- tests/optional_scalars/ScalarStuff.kt | 2 +- tests/optional_scalars/ScalarStuff.nim | 2 +- tests/optional_scalars_generated.h | 4 +-- .../monster_test_generated.swift | 34 +++++++++---------- .../test_import_generated.swift | 2 +- .../test_no_include_generated.swift | 8 ++--- .../SwiftFlatBuffers/fuzzer_generated.swift | 10 +++--- .../MutatingBool_generated.swift | 6 ++-- .../monster_test_generated.swift | 34 +++++++++---------- .../more_defaults_generated.swift | 2 +- .../nan_inf_test_generated.swift | 2 +- .../optional_scalars_generated.swift | 2 +- .../union_vector_generated.swift | 18 +++++----- .../vector_has_test_generated.swift | 2 +- tests/type_field_collsion/Collision.cs | 2 +- .../union_value_collision_generated.cs | 6 ++-- tests/union_vector/Attacker.cs | 2 +- tests/union_vector/Attacker.java | 2 +- tests/union_vector/Attacker.kt | 2 +- tests/union_vector/HandFan.cs | 2 +- tests/union_vector/HandFan.java | 2 +- tests/union_vector/HandFan.kt | 2 +- tests/union_vector/Movie.cs | 2 +- tests/union_vector/Movie.java | 2 +- tests/union_vector/Movie.kt | 2 +- tests/union_vector/union_vector_generated.h | 4 +-- 173 files changed, 257 insertions(+), 251 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 70c0368095..061229edeb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,12 @@ All major or breaking changes will be documented in this file, as well as any new features that should be highlighted. Minor fixes or improvements are not necessarily listed. +## [23.3.3 (Mar 3 2023)](https://github.com/google/flatbuffers/releases/tag/v23.3.3) + +* Refactoring of `flatc` generators to use an interface (#7797). + +* Removed legacy cmake support and set min to 3.8 (#7801). + ## [23.1.21 (Jan 21 2023)](https://github.com/google/flatbuffers/releases/tag/v23.1.20) * Reworked entry points for Typescript/Javascript and compatibility for single diff --git a/CMake/Version.cmake b/CMake/Version.cmake index d3ff4fd75d..ac145ba7fa 100644 --- a/CMake/Version.cmake +++ b/CMake/Version.cmake @@ -1,6 +1,6 @@ set(VERSION_MAJOR 23) -set(VERSION_MINOR 1) -set(VERSION_PATCH 21) +set(VERSION_MINOR 3) +set(VERSION_PATCH 3) set(VERSION_COMMIT 0) if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/.git") diff --git a/FlatBuffers.podspec b/FlatBuffers.podspec index c4e004c3c8..0a26d9f17b 100644 --- a/FlatBuffers.podspec +++ b/FlatBuffers.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = 'FlatBuffers' - s.version = '23.1.21' + s.version = '23.3.3' s.summary = 'FlatBuffers: Memory Efficient Serialization Library' s.description = "FlatBuffers is a cross platform serialization library architected for diff --git a/android/app/src/main/java/generated/com/fbs/app/Animal.kt b/android/app/src/main/java/generated/com/fbs/app/Animal.kt index c8851618f4..7654a995c8 100644 --- a/android/app/src/main/java/generated/com/fbs/app/Animal.kt +++ b/android/app/src/main/java/generated/com/fbs/app/Animal.kt @@ -57,7 +57,7 @@ class Animal : Table() { return if(o != 0) bb.getShort(o + bb_pos).toUShort() else 0u } companion object { - fun validateVersion() = Constants.FLATBUFFERS_23_1_21() + fun validateVersion() = Constants.FLATBUFFERS_23_3_3() fun getRootAsAnimal(_bb: ByteBuffer): Animal = getRootAsAnimal(_bb, Animal()) fun getRootAsAnimal(_bb: ByteBuffer, obj: Animal): Animal { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/dart/pubspec.yaml b/dart/pubspec.yaml index 6e725defc0..8ca66328fe 100644 --- a/dart/pubspec.yaml +++ b/dart/pubspec.yaml @@ -1,5 +1,5 @@ name: flat_buffers -version: 23.1.21 +version: 23.3.3 description: FlatBuffers reading and writing library for Dart. Based on original work by Konstantin Scheglov and Paul Berry of the Dart SDK team. homepage: https://github.com/google/flatbuffers documentation: https://google.github.io/flatbuffers/index.html diff --git a/grpc/examples/swift/Greeter/Sources/Model/greeter_generated.swift b/grpc/examples/swift/Greeter/Sources/Model/greeter_generated.swift index 4ef90dcd9f..91060c4760 100644 --- a/grpc/examples/swift/Greeter/Sources/Model/greeter_generated.swift +++ b/grpc/examples/swift/Greeter/Sources/Model/greeter_generated.swift @@ -6,7 +6,7 @@ import FlatBuffers public struct models_HelloReply: FlatBufferObject, Verifiable { - static func validateVersion() { FlatBuffersVersion_23_1_21() } + static func validateVersion() { FlatBuffersVersion_23_3_3() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -53,7 +53,7 @@ extension models_HelloReply: Encodable { public struct models_HelloRequest: FlatBufferObject, Verifiable { - static func validateVersion() { FlatBuffersVersion_23_1_21() } + static func validateVersion() { FlatBuffersVersion_23_3_3() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table diff --git a/include/flatbuffers/base.h b/include/flatbuffers/base.h index 219b6d308a..bc64f18ad9 100644 --- a/include/flatbuffers/base.h +++ b/include/flatbuffers/base.h @@ -139,8 +139,8 @@ #endif // !defined(FLATBUFFERS_LITTLEENDIAN) #define FLATBUFFERS_VERSION_MAJOR 23 -#define FLATBUFFERS_VERSION_MINOR 1 -#define FLATBUFFERS_VERSION_REVISION 21 +#define FLATBUFFERS_VERSION_MINOR 3 +#define FLATBUFFERS_VERSION_REVISION 3 #define FLATBUFFERS_STRING_EXPAND(X) #X #define FLATBUFFERS_STRING(X) FLATBUFFERS_STRING_EXPAND(X) namespace flatbuffers { diff --git a/include/flatbuffers/reflection_generated.h b/include/flatbuffers/reflection_generated.h index 23e968cb41..ff0d645748 100644 --- a/include/flatbuffers/reflection_generated.h +++ b/include/flatbuffers/reflection_generated.h @@ -9,8 +9,8 @@ // Ensure the included flatbuffers.h is the same version as when this file was // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && - FLATBUFFERS_VERSION_MINOR == 1 && - FLATBUFFERS_VERSION_REVISION == 21, + FLATBUFFERS_VERSION_MINOR == 3 && + FLATBUFFERS_VERSION_REVISION == 3, "Non-compatible flatbuffers version included"); namespace reflection { diff --git a/java/pom.xml b/java/pom.xml index c9a1a2adfd..d8314e1b9d 100644 --- a/java/pom.xml +++ b/java/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.flatbuffers flatbuffers-java - 23.1.21 + 23.3.3 bundle FlatBuffers Java API diff --git a/java/src/main/java/com/google/flatbuffers/Constants.java b/java/src/main/java/com/google/flatbuffers/Constants.java index 52ba3be2f7..5c48ef7cf5 100644 --- a/java/src/main/java/com/google/flatbuffers/Constants.java +++ b/java/src/main/java/com/google/flatbuffers/Constants.java @@ -46,7 +46,7 @@ public class Constants { Changes to the Java implementation need to be sure to change the version here and in the code generator on every possible incompatible change */ - public static void FLATBUFFERS_23_1_21() {} + public static void FLATBUFFERS_23_3_3() {} } /// @endcond diff --git a/java/src/main/java/com/google/flatbuffers/reflection/Enum.java b/java/src/main/java/com/google/flatbuffers/reflection/Enum.java index dde70405a7..0b3ce2c387 100644 --- a/java/src/main/java/com/google/flatbuffers/reflection/Enum.java +++ b/java/src/main/java/com/google/flatbuffers/reflection/Enum.java @@ -21,7 +21,7 @@ @SuppressWarnings("unused") public final class Enum extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_23_1_21(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_3_3(); } public static Enum getRootAsEnum(ByteBuffer _bb) { return getRootAsEnum(_bb, new Enum()); } public static Enum getRootAsEnum(ByteBuffer _bb, Enum obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/java/src/main/java/com/google/flatbuffers/reflection/EnumVal.java b/java/src/main/java/com/google/flatbuffers/reflection/EnumVal.java index f832fcea8c..e34581634c 100644 --- a/java/src/main/java/com/google/flatbuffers/reflection/EnumVal.java +++ b/java/src/main/java/com/google/flatbuffers/reflection/EnumVal.java @@ -21,7 +21,7 @@ @SuppressWarnings("unused") public final class EnumVal extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_23_1_21(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_3_3(); } public static EnumVal getRootAsEnumVal(ByteBuffer _bb) { return getRootAsEnumVal(_bb, new EnumVal()); } public static EnumVal getRootAsEnumVal(ByteBuffer _bb, EnumVal obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/java/src/main/java/com/google/flatbuffers/reflection/Field.java b/java/src/main/java/com/google/flatbuffers/reflection/Field.java index 8107def6f3..4715e34319 100644 --- a/java/src/main/java/com/google/flatbuffers/reflection/Field.java +++ b/java/src/main/java/com/google/flatbuffers/reflection/Field.java @@ -21,7 +21,7 @@ @SuppressWarnings("unused") public final class Field extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_23_1_21(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_3_3(); } public static Field getRootAsField(ByteBuffer _bb) { return getRootAsField(_bb, new Field()); } public static Field getRootAsField(ByteBuffer _bb, Field obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/java/src/main/java/com/google/flatbuffers/reflection/KeyValue.java b/java/src/main/java/com/google/flatbuffers/reflection/KeyValue.java index 7f1ab6ddf1..43abada10b 100644 --- a/java/src/main/java/com/google/flatbuffers/reflection/KeyValue.java +++ b/java/src/main/java/com/google/flatbuffers/reflection/KeyValue.java @@ -21,7 +21,7 @@ @SuppressWarnings("unused") public final class KeyValue extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_23_1_21(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_3_3(); } public static KeyValue getRootAsKeyValue(ByteBuffer _bb) { return getRootAsKeyValue(_bb, new KeyValue()); } public static KeyValue getRootAsKeyValue(ByteBuffer _bb, KeyValue obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/java/src/main/java/com/google/flatbuffers/reflection/Object.java b/java/src/main/java/com/google/flatbuffers/reflection/Object.java index 22f68ca7ca..06fbff2762 100644 --- a/java/src/main/java/com/google/flatbuffers/reflection/Object.java +++ b/java/src/main/java/com/google/flatbuffers/reflection/Object.java @@ -21,7 +21,7 @@ @SuppressWarnings("unused") public final class Object extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_23_1_21(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_3_3(); } public static Object getRootAsObject(ByteBuffer _bb) { return getRootAsObject(_bb, new Object()); } public static Object getRootAsObject(ByteBuffer _bb, Object obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/java/src/main/java/com/google/flatbuffers/reflection/RPCCall.java b/java/src/main/java/com/google/flatbuffers/reflection/RPCCall.java index 5ea5884b40..1b56cef019 100644 --- a/java/src/main/java/com/google/flatbuffers/reflection/RPCCall.java +++ b/java/src/main/java/com/google/flatbuffers/reflection/RPCCall.java @@ -21,7 +21,7 @@ @SuppressWarnings("unused") public final class RPCCall extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_23_1_21(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_3_3(); } public static RPCCall getRootAsRPCCall(ByteBuffer _bb) { return getRootAsRPCCall(_bb, new RPCCall()); } public static RPCCall getRootAsRPCCall(ByteBuffer _bb, RPCCall obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/java/src/main/java/com/google/flatbuffers/reflection/Schema.java b/java/src/main/java/com/google/flatbuffers/reflection/Schema.java index 13ba7b59be..8b698299cf 100644 --- a/java/src/main/java/com/google/flatbuffers/reflection/Schema.java +++ b/java/src/main/java/com/google/flatbuffers/reflection/Schema.java @@ -21,7 +21,7 @@ @SuppressWarnings("unused") public final class Schema extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_23_1_21(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_3_3(); } public static Schema getRootAsSchema(ByteBuffer _bb) { return getRootAsSchema(_bb, new Schema()); } public static Schema getRootAsSchema(ByteBuffer _bb, Schema obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public static boolean SchemaBufferHasIdentifier(ByteBuffer _bb) { return __has_identifier(_bb, "BFBS"); } diff --git a/java/src/main/java/com/google/flatbuffers/reflection/SchemaFile.java b/java/src/main/java/com/google/flatbuffers/reflection/SchemaFile.java index b159848f14..362b46ea7b 100644 --- a/java/src/main/java/com/google/flatbuffers/reflection/SchemaFile.java +++ b/java/src/main/java/com/google/flatbuffers/reflection/SchemaFile.java @@ -26,7 +26,7 @@ */ @SuppressWarnings("unused") public final class SchemaFile extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_23_1_21(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_3_3(); } public static SchemaFile getRootAsSchemaFile(ByteBuffer _bb) { return getRootAsSchemaFile(_bb, new SchemaFile()); } public static SchemaFile getRootAsSchemaFile(ByteBuffer _bb, SchemaFile obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/java/src/main/java/com/google/flatbuffers/reflection/Service.java b/java/src/main/java/com/google/flatbuffers/reflection/Service.java index 0acabb4b76..2dd5cc4071 100644 --- a/java/src/main/java/com/google/flatbuffers/reflection/Service.java +++ b/java/src/main/java/com/google/flatbuffers/reflection/Service.java @@ -21,7 +21,7 @@ @SuppressWarnings("unused") public final class Service extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_23_1_21(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_3_3(); } public static Service getRootAsService(ByteBuffer _bb) { return getRootAsService(_bb, new Service()); } public static Service getRootAsService(ByteBuffer _bb, Service obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/java/src/main/java/com/google/flatbuffers/reflection/Type.java b/java/src/main/java/com/google/flatbuffers/reflection/Type.java index b434da8962..405df8acbf 100644 --- a/java/src/main/java/com/google/flatbuffers/reflection/Type.java +++ b/java/src/main/java/com/google/flatbuffers/reflection/Type.java @@ -21,7 +21,7 @@ @SuppressWarnings("unused") public final class Type extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_23_1_21(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_3_3(); } public static Type getRootAsType(ByteBuffer _bb) { return getRootAsType(_bb, new Type()); } public static Type getRootAsType(ByteBuffer _bb, Type obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/net/FlatBuffers/FlatBufferConstants.cs b/net/FlatBuffers/FlatBufferConstants.cs index 69235c773f..6717c16fec 100644 --- a/net/FlatBuffers/FlatBufferConstants.cs +++ b/net/FlatBuffers/FlatBufferConstants.cs @@ -32,6 +32,6 @@ the runtime and generated code are modified in sync. Changes to the C# implementation need to be sure to change the version here and in the code generator on every possible incompatible change */ - public static void FLATBUFFERS_23_1_21() {} + public static void FLATBUFFERS_23_3_3() {} } } diff --git a/net/FlatBuffers/Google.FlatBuffers.csproj b/net/FlatBuffers/Google.FlatBuffers.csproj index 998f7e7b4c..d633805afc 100644 --- a/net/FlatBuffers/Google.FlatBuffers.csproj +++ b/net/FlatBuffers/Google.FlatBuffers.csproj @@ -3,7 +3,7 @@ netstandard2.1;netstandard2.0;net46 A cross-platform memory efficient serialization library - 23.1.21 + 23.3.3 Google LLC https://github.com/google/flatbuffers https://github.com/google/flatbuffers diff --git a/package.json b/package.json index 4431df775e..d3d8db8d6b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "flatbuffers", - "version": "23.1.21", + "version": "23.3.3", "description": "Memory Efficient Serialization Library", "files": [ "js/**/*.js", diff --git a/python/flatbuffers/_version.py b/python/flatbuffers/_version.py index f02ff77992..186bbbfd89 100644 --- a/python/flatbuffers/_version.py +++ b/python/flatbuffers/_version.py @@ -14,4 +14,4 @@ # Placeholder, to be updated during the release process # by the setup.py -__version__ = u"23.1.21" +__version__ = u"23.3.3" diff --git a/python/setup.py b/python/setup.py index 78039a396b..4c908945da 100644 --- a/python/setup.py +++ b/python/setup.py @@ -16,7 +16,7 @@ setup( name='flatbuffers', - version='23.1.21', + version='23.3.3', license='Apache 2.0', license_files='../LICENSE.txt', author='Derek Bailey', diff --git a/rust/flatbuffers/Cargo.toml b/rust/flatbuffers/Cargo.toml index 7a41a2d69f..32d0df83b9 100644 --- a/rust/flatbuffers/Cargo.toml +++ b/rust/flatbuffers/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "flatbuffers" -version = "23.1.21" +version = "23.3.3" edition = "2018" authors = ["Robert Winslow ", "FlatBuffers Maintainers"] license = "Apache-2.0" diff --git a/samples/monster_generated.h b/samples/monster_generated.h index 5874dd4db4..7682e1915c 100644 --- a/samples/monster_generated.h +++ b/samples/monster_generated.h @@ -9,8 +9,8 @@ // Ensure the included flatbuffers.h is the same version as when this file was // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && - FLATBUFFERS_VERSION_MINOR == 1 && - FLATBUFFERS_VERSION_REVISION == 21, + FLATBUFFERS_VERSION_MINOR == 3 && + FLATBUFFERS_VERSION_REVISION == 3, "Non-compatible flatbuffers version included"); namespace MyGame { diff --git a/samples/monster_generated.swift b/samples/monster_generated.swift index 220c02959b..8a9c43ae31 100644 --- a/samples/monster_generated.swift +++ b/samples/monster_generated.swift @@ -36,7 +36,7 @@ public enum MyGame_Sample_Equipment: UInt8, UnionEnum { public struct MyGame_Sample_Vec3: NativeStruct, Verifiable, FlatbuffersInitializable { - static func validateVersion() { FlatBuffersVersion_23_1_21() } + static func validateVersion() { FlatBuffersVersion_23_3_3() } private var _x: Float32 private var _y: Float32 @@ -72,7 +72,7 @@ public struct MyGame_Sample_Vec3: NativeStruct, Verifiable, FlatbuffersInitializ public struct MyGame_Sample_Vec3_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_23_1_21() } + static func validateVersion() { FlatBuffersVersion_23_3_3() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -88,7 +88,7 @@ public struct MyGame_Sample_Vec3_Mutable: FlatBufferObject { public struct MyGame_Sample_Monster: FlatBufferObject, Verifiable { - static func validateVersion() { FlatBuffersVersion_23_1_21() } + static func validateVersion() { FlatBuffersVersion_23_3_3() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -200,7 +200,7 @@ public struct MyGame_Sample_Monster: FlatBufferObject, Verifiable { public struct MyGame_Sample_Weapon: FlatBufferObject, Verifiable { - static func validateVersion() { FlatBuffersVersion_23_1_21() } + static func validateVersion() { FlatBuffersVersion_23_3_3() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table diff --git a/src/idl_gen_csharp.cpp b/src/idl_gen_csharp.cpp index a113b9beb7..a2dc5611ef 100644 --- a/src/idl_gen_csharp.cpp +++ b/src/idl_gen_csharp.cpp @@ -658,7 +658,7 @@ class CSharpGenerator : public BaseGenerator { // Force compile time error if not using the same version runtime. code += " public static void ValidateVersion() {"; code += " FlatBufferConstants."; - code += "FLATBUFFERS_23_1_21(); "; + code += "FLATBUFFERS_23_3_3(); "; code += "}\n"; // Generate a special accessor for the table that when used as the root diff --git a/src/idl_gen_java.cpp b/src/idl_gen_java.cpp index 2faca5c535..7c44671cf6 100644 --- a/src/idl_gen_java.cpp +++ b/src/idl_gen_java.cpp @@ -703,7 +703,7 @@ class JavaGenerator : public BaseGenerator { // Force compile time error if not using the same version runtime. code += " public static void ValidateVersion() {"; code += " Constants."; - code += "FLATBUFFERS_23_1_21(); "; + code += "FLATBUFFERS_23_3_3(); "; code += "}\n"; // Generate a special accessor for the table that when used as the root diff --git a/src/idl_gen_kotlin.cpp b/src/idl_gen_kotlin.cpp index 3bf2bd6b07..2f94b4ca21 100644 --- a/src/idl_gen_kotlin.cpp +++ b/src/idl_gen_kotlin.cpp @@ -526,7 +526,7 @@ class KotlinGenerator : public BaseGenerator { // runtime. GenerateFunOneLine( writer, "validateVersion", "", "", - [&]() { writer += "Constants.FLATBUFFERS_23_1_21()"; }, + [&]() { writer += "Constants.FLATBUFFERS_23_3_3()"; }, options.gen_jvmstatic); GenerateGetRootAsAccessors(namer_.Type(struct_def), writer, options); diff --git a/src/idl_gen_swift.cpp b/src/idl_gen_swift.cpp index 0bbaac1904..6afa069ea3 100644 --- a/src/idl_gen_swift.cpp +++ b/src/idl_gen_swift.cpp @@ -1842,7 +1842,7 @@ class SwiftGenerator : public BaseGenerator { } std::string ValidateFunc() { - return "static func validateVersion() { FlatBuffersVersion_23_1_21() }"; + return "static func validateVersion() { FlatBuffersVersion_23_3_3() }"; } std::string GenType(const Type &type, diff --git a/swift/Sources/FlatBuffers/Constants.swift b/swift/Sources/FlatBuffers/Constants.swift index 3c074fc43c..030b3bb571 100644 --- a/swift/Sources/FlatBuffers/Constants.swift +++ b/swift/Sources/FlatBuffers/Constants.swift @@ -119,4 +119,4 @@ extension UInt64: Scalar, Verifiable { public typealias NumericValue = UInt64 } -public func FlatBuffersVersion_23_1_21() {} +public func FlatBuffersVersion_23_3_3() {} diff --git a/tests/Abc.nim b/tests/Abc.nim index 659693f342..4845e7ec90 100644 --- a/tests/Abc.nim +++ b/tests/Abc.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.21 + flatc version: 23.3.3 Declared by : ]# diff --git a/tests/DictionaryLookup/LongFloatEntry.java b/tests/DictionaryLookup/LongFloatEntry.java index 02d5d7f90b..f4955e6135 100644 --- a/tests/DictionaryLookup/LongFloatEntry.java +++ b/tests/DictionaryLookup/LongFloatEntry.java @@ -21,7 +21,7 @@ @SuppressWarnings("unused") public final class LongFloatEntry extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_23_1_21(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_3_3(); } public static LongFloatEntry getRootAsLongFloatEntry(ByteBuffer _bb) { return getRootAsLongFloatEntry(_bb, new LongFloatEntry()); } public static LongFloatEntry getRootAsLongFloatEntry(ByteBuffer _bb, LongFloatEntry obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/tests/DictionaryLookup/LongFloatEntry.kt b/tests/DictionaryLookup/LongFloatEntry.kt index ce86cf35bc..c9be31d8b2 100644 --- a/tests/DictionaryLookup/LongFloatEntry.kt +++ b/tests/DictionaryLookup/LongFloatEntry.kt @@ -45,7 +45,7 @@ class LongFloatEntry : Table() { return (val_1 - val_2).sign } companion object { - fun validateVersion() = Constants.FLATBUFFERS_23_1_21() + fun validateVersion() = Constants.FLATBUFFERS_23_3_3() fun getRootAsLongFloatEntry(_bb: ByteBuffer): LongFloatEntry = getRootAsLongFloatEntry(_bb, LongFloatEntry()) fun getRootAsLongFloatEntry(_bb: ByteBuffer, obj: LongFloatEntry): LongFloatEntry { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/DictionaryLookup/LongFloatMap.java b/tests/DictionaryLookup/LongFloatMap.java index 38f7728756..6d02ca5bc1 100644 --- a/tests/DictionaryLookup/LongFloatMap.java +++ b/tests/DictionaryLookup/LongFloatMap.java @@ -21,7 +21,7 @@ @SuppressWarnings("unused") public final class LongFloatMap extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_23_1_21(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_3_3(); } public static LongFloatMap getRootAsLongFloatMap(ByteBuffer _bb) { return getRootAsLongFloatMap(_bb, new LongFloatMap()); } public static LongFloatMap getRootAsLongFloatMap(ByteBuffer _bb, LongFloatMap obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/tests/DictionaryLookup/LongFloatMap.kt b/tests/DictionaryLookup/LongFloatMap.kt index 5f55fe292b..32467ddb2f 100644 --- a/tests/DictionaryLookup/LongFloatMap.kt +++ b/tests/DictionaryLookup/LongFloatMap.kt @@ -59,7 +59,7 @@ class LongFloatMap : Table() { } } companion object { - fun validateVersion() = Constants.FLATBUFFERS_23_1_21() + fun validateVersion() = Constants.FLATBUFFERS_23_3_3() fun getRootAsLongFloatMap(_bb: ByteBuffer): LongFloatMap = getRootAsLongFloatMap(_bb, LongFloatMap()) fun getRootAsLongFloatMap(_bb: ByteBuffer, obj: LongFloatMap): LongFloatMap { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/KeywordTest/KeywordsInTable.cs b/tests/KeywordTest/KeywordsInTable.cs index 8c57d8ecc4..90030116a1 100644 --- a/tests/KeywordTest/KeywordsInTable.cs +++ b/tests/KeywordTest/KeywordsInTable.cs @@ -13,7 +13,7 @@ public struct KeywordsInTable : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_21(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_3_3(); } public static KeywordsInTable GetRootAsKeywordsInTable(ByteBuffer _bb) { return GetRootAsKeywordsInTable(_bb, new KeywordsInTable()); } public static KeywordsInTable GetRootAsKeywordsInTable(ByteBuffer _bb, KeywordsInTable obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/KeywordTest/Table2.cs b/tests/KeywordTest/Table2.cs index 299b22dbf3..56ee6898e9 100644 --- a/tests/KeywordTest/Table2.cs +++ b/tests/KeywordTest/Table2.cs @@ -13,7 +13,7 @@ public struct Table2 : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_21(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_3_3(); } public static Table2 GetRootAsTable2(ByteBuffer _bb) { return GetRootAsTable2(_bb, new Table2()); } public static Table2 GetRootAsTable2(ByteBuffer _bb, Table2 obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/MoreDefaults.nim b/tests/MoreDefaults.nim index 347f02626c..2eb0def1ff 100644 --- a/tests/MoreDefaults.nim +++ b/tests/MoreDefaults.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.21 + flatc version: 23.3.3 Declared by : ]# diff --git a/tests/MyGame/Example/Ability.lua b/tests/MyGame/Example/Ability.lua index 5cf539f8de..a572cb3598 100644 --- a/tests/MyGame/Example/Ability.lua +++ b/tests/MyGame/Example/Ability.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.21 + flatc version: 23.3.3 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/Ability.nim b/tests/MyGame/Example/Ability.nim index 8563141ff1..befe7319c9 100644 --- a/tests/MyGame/Example/Ability.nim +++ b/tests/MyGame/Example/Ability.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.21 + flatc version: 23.3.3 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example/Any.lua b/tests/MyGame/Example/Any.lua index acf556865d..0d7cbb1abe 100644 --- a/tests/MyGame/Example/Any.lua +++ b/tests/MyGame/Example/Any.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.21 + flatc version: 23.3.3 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/Any.nim b/tests/MyGame/Example/Any.nim index 0b6ae13444..48ad0864ff 100644 --- a/tests/MyGame/Example/Any.nim +++ b/tests/MyGame/Example/Any.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.21 + flatc version: 23.3.3 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example/AnyAmbiguousAliases.lua b/tests/MyGame/Example/AnyAmbiguousAliases.lua index ac2b209002..083d7b7869 100644 --- a/tests/MyGame/Example/AnyAmbiguousAliases.lua +++ b/tests/MyGame/Example/AnyAmbiguousAliases.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.21 + flatc version: 23.3.3 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/AnyAmbiguousAliases.nim b/tests/MyGame/Example/AnyAmbiguousAliases.nim index 3acd53d182..6736c5a81f 100644 --- a/tests/MyGame/Example/AnyAmbiguousAliases.nim +++ b/tests/MyGame/Example/AnyAmbiguousAliases.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.21 + flatc version: 23.3.3 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example/AnyUniqueAliases.lua b/tests/MyGame/Example/AnyUniqueAliases.lua index d41834ed32..4f7e521844 100644 --- a/tests/MyGame/Example/AnyUniqueAliases.lua +++ b/tests/MyGame/Example/AnyUniqueAliases.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.21 + flatc version: 23.3.3 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/AnyUniqueAliases.nim b/tests/MyGame/Example/AnyUniqueAliases.nim index 515d545a2b..d6cef37979 100644 --- a/tests/MyGame/Example/AnyUniqueAliases.nim +++ b/tests/MyGame/Example/AnyUniqueAliases.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.21 + flatc version: 23.3.3 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example/ArrayTable.cs b/tests/MyGame/Example/ArrayTable.cs index 5ab459d887..56b8353f86 100644 --- a/tests/MyGame/Example/ArrayTable.cs +++ b/tests/MyGame/Example/ArrayTable.cs @@ -13,7 +13,7 @@ public struct ArrayTable : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_21(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_3_3(); } public static ArrayTable GetRootAsArrayTable(ByteBuffer _bb) { return GetRootAsArrayTable(_bb, new ArrayTable()); } public static ArrayTable GetRootAsArrayTable(ByteBuffer _bb, ArrayTable obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public static bool ArrayTableBufferHasIdentifier(ByteBuffer _bb) { return Table.__has_identifier(_bb, "ARRT"); } diff --git a/tests/MyGame/Example/ArrayTable.java b/tests/MyGame/Example/ArrayTable.java index 54131c2a8b..17cea9a9bb 100644 --- a/tests/MyGame/Example/ArrayTable.java +++ b/tests/MyGame/Example/ArrayTable.java @@ -21,7 +21,7 @@ @SuppressWarnings("unused") public final class ArrayTable extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_23_1_21(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_3_3(); } public static ArrayTable getRootAsArrayTable(ByteBuffer _bb) { return getRootAsArrayTable(_bb, new ArrayTable()); } public static ArrayTable getRootAsArrayTable(ByteBuffer _bb, ArrayTable obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public static boolean ArrayTableBufferHasIdentifier(ByteBuffer _bb) { return __has_identifier(_bb, "ARRT"); } diff --git a/tests/MyGame/Example/Color.lua b/tests/MyGame/Example/Color.lua index 8f70daa6ae..4722a9249b 100644 --- a/tests/MyGame/Example/Color.lua +++ b/tests/MyGame/Example/Color.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.21 + flatc version: 23.3.3 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/Color.nim b/tests/MyGame/Example/Color.nim index 22b1d6efb7..350768296b 100644 --- a/tests/MyGame/Example/Color.nim +++ b/tests/MyGame/Example/Color.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.21 + flatc version: 23.3.3 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example/LongEnum.lua b/tests/MyGame/Example/LongEnum.lua index 1644ac7a88..1f2b039fa4 100644 --- a/tests/MyGame/Example/LongEnum.lua +++ b/tests/MyGame/Example/LongEnum.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.21 + flatc version: 23.3.3 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/LongEnum.nim b/tests/MyGame/Example/LongEnum.nim index 590bfc7c50..fe8dc9e338 100644 --- a/tests/MyGame/Example/LongEnum.nim +++ b/tests/MyGame/Example/LongEnum.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.21 + flatc version: 23.3.3 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example/Monster.cs b/tests/MyGame/Example/Monster.cs index 8d9606594e..4abde535cc 100644 --- a/tests/MyGame/Example/Monster.cs +++ b/tests/MyGame/Example/Monster.cs @@ -14,7 +14,7 @@ public struct Monster : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_21(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_3_3(); } public static Monster GetRootAsMonster(ByteBuffer _bb) { return GetRootAsMonster(_bb, new Monster()); } public static Monster GetRootAsMonster(ByteBuffer _bb, Monster obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public static bool MonsterBufferHasIdentifier(ByteBuffer _bb) { return Table.__has_identifier(_bb, "MONS"); } diff --git a/tests/MyGame/Example/Monster.java b/tests/MyGame/Example/Monster.java index 072c343838..cd8b2c0140 100644 --- a/tests/MyGame/Example/Monster.java +++ b/tests/MyGame/Example/Monster.java @@ -24,7 +24,7 @@ */ @SuppressWarnings("unused") public final class Monster extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_23_1_21(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_3_3(); } public static Monster getRootAsMonster(ByteBuffer _bb) { return getRootAsMonster(_bb, new Monster()); } public static Monster getRootAsMonster(ByteBuffer _bb, Monster obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public static boolean MonsterBufferHasIdentifier(ByteBuffer _bb) { return __has_identifier(_bb, "MONS"); } diff --git a/tests/MyGame/Example/Monster.kt b/tests/MyGame/Example/Monster.kt index c6e19aa94c..eae51e0fdb 100644 --- a/tests/MyGame/Example/Monster.kt +++ b/tests/MyGame/Example/Monster.kt @@ -1003,7 +1003,7 @@ class Monster : Table() { return compareStrings(__offset(10, o1, _bb), __offset(10, o2, _bb), _bb) } companion object { - fun validateVersion() = Constants.FLATBUFFERS_23_1_21() + fun validateVersion() = Constants.FLATBUFFERS_23_3_3() fun getRootAsMonster(_bb: ByteBuffer): Monster = getRootAsMonster(_bb, Monster()) fun getRootAsMonster(_bb: ByteBuffer, obj: Monster): Monster { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/MyGame/Example/Monster.lua b/tests/MyGame/Example/Monster.lua index b33b8d5a5b..2ccc25b282 100644 --- a/tests/MyGame/Example/Monster.lua +++ b/tests/MyGame/Example/Monster.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.21 + flatc version: 23.3.3 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/Monster.nim b/tests/MyGame/Example/Monster.nim index de260e33c7..ec3eebd1e4 100644 --- a/tests/MyGame/Example/Monster.nim +++ b/tests/MyGame/Example/Monster.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.21 + flatc version: 23.3.3 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example/Race.lua b/tests/MyGame/Example/Race.lua index e4b9451c54..c8f2c53523 100644 --- a/tests/MyGame/Example/Race.lua +++ b/tests/MyGame/Example/Race.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.21 + flatc version: 23.3.3 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/Race.nim b/tests/MyGame/Example/Race.nim index 8abc4e472e..602679390b 100644 --- a/tests/MyGame/Example/Race.nim +++ b/tests/MyGame/Example/Race.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.21 + flatc version: 23.3.3 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example/Referrable.cs b/tests/MyGame/Example/Referrable.cs index acd33e2de8..095b1f6f2b 100644 --- a/tests/MyGame/Example/Referrable.cs +++ b/tests/MyGame/Example/Referrable.cs @@ -13,7 +13,7 @@ public struct Referrable : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_21(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_3_3(); } public static Referrable GetRootAsReferrable(ByteBuffer _bb) { return GetRootAsReferrable(_bb, new Referrable()); } public static Referrable GetRootAsReferrable(ByteBuffer _bb, Referrable obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/MyGame/Example/Referrable.java b/tests/MyGame/Example/Referrable.java index b4297d9d4f..d43f0fa5f0 100644 --- a/tests/MyGame/Example/Referrable.java +++ b/tests/MyGame/Example/Referrable.java @@ -21,7 +21,7 @@ @SuppressWarnings("unused") public final class Referrable extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_23_1_21(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_3_3(); } public static Referrable getRootAsReferrable(ByteBuffer _bb) { return getRootAsReferrable(_bb, new Referrable()); } public static Referrable getRootAsReferrable(ByteBuffer _bb, Referrable obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/tests/MyGame/Example/Referrable.kt b/tests/MyGame/Example/Referrable.kt index 9e6e0ff70d..064d3e72da 100644 --- a/tests/MyGame/Example/Referrable.kt +++ b/tests/MyGame/Example/Referrable.kt @@ -49,7 +49,7 @@ class Referrable : Table() { return (val_1 - val_2).sign } companion object { - fun validateVersion() = Constants.FLATBUFFERS_23_1_21() + fun validateVersion() = Constants.FLATBUFFERS_23_3_3() fun getRootAsReferrable(_bb: ByteBuffer): Referrable = getRootAsReferrable(_bb, Referrable()) fun getRootAsReferrable(_bb: ByteBuffer, obj: Referrable): Referrable { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/MyGame/Example/Referrable.lua b/tests/MyGame/Example/Referrable.lua index 5c148eb20f..c5d75dff49 100644 --- a/tests/MyGame/Example/Referrable.lua +++ b/tests/MyGame/Example/Referrable.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.21 + flatc version: 23.3.3 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/Referrable.nim b/tests/MyGame/Example/Referrable.nim index f1934bd9d8..fc8aed81e9 100644 --- a/tests/MyGame/Example/Referrable.nim +++ b/tests/MyGame/Example/Referrable.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.21 + flatc version: 23.3.3 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example/Stat.cs b/tests/MyGame/Example/Stat.cs index 7ea5b8c317..dc29bd48f7 100644 --- a/tests/MyGame/Example/Stat.cs +++ b/tests/MyGame/Example/Stat.cs @@ -13,7 +13,7 @@ public struct Stat : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_21(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_3_3(); } public static Stat GetRootAsStat(ByteBuffer _bb) { return GetRootAsStat(_bb, new Stat()); } public static Stat GetRootAsStat(ByteBuffer _bb, Stat obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/MyGame/Example/Stat.java b/tests/MyGame/Example/Stat.java index abab0489eb..6613dd50f5 100644 --- a/tests/MyGame/Example/Stat.java +++ b/tests/MyGame/Example/Stat.java @@ -21,7 +21,7 @@ @SuppressWarnings("unused") public final class Stat extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_23_1_21(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_3_3(); } public static Stat getRootAsStat(ByteBuffer _bb) { return getRootAsStat(_bb, new Stat()); } public static Stat getRootAsStat(ByteBuffer _bb, Stat obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/tests/MyGame/Example/Stat.kt b/tests/MyGame/Example/Stat.kt index 0a755336f4..44a6fbc91f 100644 --- a/tests/MyGame/Example/Stat.kt +++ b/tests/MyGame/Example/Stat.kt @@ -74,7 +74,7 @@ class Stat : Table() { return (val_1 - val_2).sign } companion object { - fun validateVersion() = Constants.FLATBUFFERS_23_1_21() + fun validateVersion() = Constants.FLATBUFFERS_23_3_3() fun getRootAsStat(_bb: ByteBuffer): Stat = getRootAsStat(_bb, Stat()) fun getRootAsStat(_bb: ByteBuffer, obj: Stat): Stat { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/MyGame/Example/Stat.lua b/tests/MyGame/Example/Stat.lua index 8b537d4f8a..7f2cd94000 100644 --- a/tests/MyGame/Example/Stat.lua +++ b/tests/MyGame/Example/Stat.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.21 + flatc version: 23.3.3 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/Stat.nim b/tests/MyGame/Example/Stat.nim index 3e484ad018..3533fe9157 100644 --- a/tests/MyGame/Example/Stat.nim +++ b/tests/MyGame/Example/Stat.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.21 + flatc version: 23.3.3 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example/StructOfStructs.lua b/tests/MyGame/Example/StructOfStructs.lua index ba75339e03..bae77ff5e2 100644 --- a/tests/MyGame/Example/StructOfStructs.lua +++ b/tests/MyGame/Example/StructOfStructs.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.21 + flatc version: 23.3.3 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/StructOfStructs.nim b/tests/MyGame/Example/StructOfStructs.nim index b2ca7da2a6..697a7172ff 100644 --- a/tests/MyGame/Example/StructOfStructs.nim +++ b/tests/MyGame/Example/StructOfStructs.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.21 + flatc version: 23.3.3 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example/StructOfStructsOfStructs.lua b/tests/MyGame/Example/StructOfStructsOfStructs.lua index 576d35b97a..8c412059e9 100644 --- a/tests/MyGame/Example/StructOfStructsOfStructs.lua +++ b/tests/MyGame/Example/StructOfStructsOfStructs.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.21 + flatc version: 23.3.3 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/StructOfStructsOfStructs.nim b/tests/MyGame/Example/StructOfStructsOfStructs.nim index e7e8c16b2a..2999f767bf 100644 --- a/tests/MyGame/Example/StructOfStructsOfStructs.nim +++ b/tests/MyGame/Example/StructOfStructsOfStructs.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.21 + flatc version: 23.3.3 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example/Test.lua b/tests/MyGame/Example/Test.lua index 87673d797d..4c14737593 100644 --- a/tests/MyGame/Example/Test.lua +++ b/tests/MyGame/Example/Test.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.21 + flatc version: 23.3.3 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/Test.nim b/tests/MyGame/Example/Test.nim index c3dda88e22..f8f73d6ee2 100644 --- a/tests/MyGame/Example/Test.nim +++ b/tests/MyGame/Example/Test.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.21 + flatc version: 23.3.3 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example/TestSimpleTableWithEnum.cs b/tests/MyGame/Example/TestSimpleTableWithEnum.cs index a723ec14b9..2184110089 100644 --- a/tests/MyGame/Example/TestSimpleTableWithEnum.cs +++ b/tests/MyGame/Example/TestSimpleTableWithEnum.cs @@ -13,7 +13,7 @@ internal partial struct TestSimpleTableWithEnum : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_21(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_3_3(); } public static TestSimpleTableWithEnum GetRootAsTestSimpleTableWithEnum(ByteBuffer _bb) { return GetRootAsTestSimpleTableWithEnum(_bb, new TestSimpleTableWithEnum()); } public static TestSimpleTableWithEnum GetRootAsTestSimpleTableWithEnum(ByteBuffer _bb, TestSimpleTableWithEnum obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/MyGame/Example/TestSimpleTableWithEnum.java b/tests/MyGame/Example/TestSimpleTableWithEnum.java index 6a043d5a63..0209f18a53 100644 --- a/tests/MyGame/Example/TestSimpleTableWithEnum.java +++ b/tests/MyGame/Example/TestSimpleTableWithEnum.java @@ -21,7 +21,7 @@ @SuppressWarnings("unused") final class TestSimpleTableWithEnum extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_23_1_21(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_3_3(); } public static TestSimpleTableWithEnum getRootAsTestSimpleTableWithEnum(ByteBuffer _bb) { return getRootAsTestSimpleTableWithEnum(_bb, new TestSimpleTableWithEnum()); } public static TestSimpleTableWithEnum getRootAsTestSimpleTableWithEnum(ByteBuffer _bb, TestSimpleTableWithEnum obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/tests/MyGame/Example/TestSimpleTableWithEnum.kt b/tests/MyGame/Example/TestSimpleTableWithEnum.kt index ebe4b5f651..17d90c631f 100644 --- a/tests/MyGame/Example/TestSimpleTableWithEnum.kt +++ b/tests/MyGame/Example/TestSimpleTableWithEnum.kt @@ -44,7 +44,7 @@ class TestSimpleTableWithEnum : Table() { } } companion object { - fun validateVersion() = Constants.FLATBUFFERS_23_1_21() + fun validateVersion() = Constants.FLATBUFFERS_23_3_3() fun getRootAsTestSimpleTableWithEnum(_bb: ByteBuffer): TestSimpleTableWithEnum = getRootAsTestSimpleTableWithEnum(_bb, TestSimpleTableWithEnum()) fun getRootAsTestSimpleTableWithEnum(_bb: ByteBuffer, obj: TestSimpleTableWithEnum): TestSimpleTableWithEnum { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/MyGame/Example/TestSimpleTableWithEnum.lua b/tests/MyGame/Example/TestSimpleTableWithEnum.lua index c57c78524b..4590599a06 100644 --- a/tests/MyGame/Example/TestSimpleTableWithEnum.lua +++ b/tests/MyGame/Example/TestSimpleTableWithEnum.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.21 + flatc version: 23.3.3 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/TestSimpleTableWithEnum.nim b/tests/MyGame/Example/TestSimpleTableWithEnum.nim index d9a389f7ab..83afb88426 100644 --- a/tests/MyGame/Example/TestSimpleTableWithEnum.nim +++ b/tests/MyGame/Example/TestSimpleTableWithEnum.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.21 + flatc version: 23.3.3 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example/TypeAliases.cs b/tests/MyGame/Example/TypeAliases.cs index 3d821cbe0d..0980db91b9 100644 --- a/tests/MyGame/Example/TypeAliases.cs +++ b/tests/MyGame/Example/TypeAliases.cs @@ -13,7 +13,7 @@ public struct TypeAliases : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_21(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_3_3(); } public static TypeAliases GetRootAsTypeAliases(ByteBuffer _bb) { return GetRootAsTypeAliases(_bb, new TypeAliases()); } public static TypeAliases GetRootAsTypeAliases(ByteBuffer _bb, TypeAliases obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/MyGame/Example/TypeAliases.java b/tests/MyGame/Example/TypeAliases.java index 58c1995d10..38f51764bb 100644 --- a/tests/MyGame/Example/TypeAliases.java +++ b/tests/MyGame/Example/TypeAliases.java @@ -21,7 +21,7 @@ @SuppressWarnings("unused") public final class TypeAliases extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_23_1_21(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_3_3(); } public static TypeAliases getRootAsTypeAliases(ByteBuffer _bb) { return getRootAsTypeAliases(_bb, new TypeAliases()); } public static TypeAliases getRootAsTypeAliases(ByteBuffer _bb, TypeAliases obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/tests/MyGame/Example/TypeAliases.kt b/tests/MyGame/Example/TypeAliases.kt index e719c7a214..4bd5964174 100644 --- a/tests/MyGame/Example/TypeAliases.kt +++ b/tests/MyGame/Example/TypeAliases.kt @@ -216,7 +216,7 @@ class TypeAliases : Table() { } } companion object { - fun validateVersion() = Constants.FLATBUFFERS_23_1_21() + fun validateVersion() = Constants.FLATBUFFERS_23_3_3() fun getRootAsTypeAliases(_bb: ByteBuffer): TypeAliases = getRootAsTypeAliases(_bb, TypeAliases()) fun getRootAsTypeAliases(_bb: ByteBuffer, obj: TypeAliases): TypeAliases { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/MyGame/Example/TypeAliases.lua b/tests/MyGame/Example/TypeAliases.lua index 1b0ab87543..8373d9abf7 100644 --- a/tests/MyGame/Example/TypeAliases.lua +++ b/tests/MyGame/Example/TypeAliases.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.21 + flatc version: 23.3.3 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/TypeAliases.nim b/tests/MyGame/Example/TypeAliases.nim index 34078ea692..36cc85132d 100644 --- a/tests/MyGame/Example/TypeAliases.nim +++ b/tests/MyGame/Example/TypeAliases.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.21 + flatc version: 23.3.3 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example/Vec3.lua b/tests/MyGame/Example/Vec3.lua index ef6972e2e3..00620ff203 100644 --- a/tests/MyGame/Example/Vec3.lua +++ b/tests/MyGame/Example/Vec3.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.21 + flatc version: 23.3.3 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/Vec3.nim b/tests/MyGame/Example/Vec3.nim index d151ee9fd8..326b91448c 100644 --- a/tests/MyGame/Example/Vec3.nim +++ b/tests/MyGame/Example/Vec3.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.21 + flatc version: 23.3.3 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example2/Monster.cs b/tests/MyGame/Example2/Monster.cs index 6cffde7c10..465f04d514 100644 --- a/tests/MyGame/Example2/Monster.cs +++ b/tests/MyGame/Example2/Monster.cs @@ -13,7 +13,7 @@ public struct Monster : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_21(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_3_3(); } public static Monster GetRootAsMonster(ByteBuffer _bb) { return GetRootAsMonster(_bb, new Monster()); } public static Monster GetRootAsMonster(ByteBuffer _bb, Monster obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/MyGame/Example2/Monster.java b/tests/MyGame/Example2/Monster.java index 2704c7598a..508c327905 100644 --- a/tests/MyGame/Example2/Monster.java +++ b/tests/MyGame/Example2/Monster.java @@ -21,7 +21,7 @@ @SuppressWarnings("unused") public final class Monster extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_23_1_21(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_3_3(); } public static Monster getRootAsMonster(ByteBuffer _bb) { return getRootAsMonster(_bb, new Monster()); } public static Monster getRootAsMonster(ByteBuffer _bb, Monster obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/tests/MyGame/Example2/Monster.kt b/tests/MyGame/Example2/Monster.kt index 71c5de2b4f..dad657fec6 100644 --- a/tests/MyGame/Example2/Monster.kt +++ b/tests/MyGame/Example2/Monster.kt @@ -30,7 +30,7 @@ class Monster : Table() { return this } companion object { - fun validateVersion() = Constants.FLATBUFFERS_23_1_21() + fun validateVersion() = Constants.FLATBUFFERS_23_3_3() fun getRootAsMonster(_bb: ByteBuffer): Monster = getRootAsMonster(_bb, Monster()) fun getRootAsMonster(_bb: ByteBuffer, obj: Monster): Monster { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/MyGame/Example2/Monster.lua b/tests/MyGame/Example2/Monster.lua index dbc0eb6488..2f853ec64e 100644 --- a/tests/MyGame/Example2/Monster.lua +++ b/tests/MyGame/Example2/Monster.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.21 + flatc version: 23.3.3 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example2/Monster.nim b/tests/MyGame/Example2/Monster.nim index 50d1803793..4eaba9b44b 100644 --- a/tests/MyGame/Example2/Monster.nim +++ b/tests/MyGame/Example2/Monster.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.21 + flatc version: 23.3.3 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/InParentNamespace.cs b/tests/MyGame/InParentNamespace.cs index f6ecc36394..ca99f3e868 100644 --- a/tests/MyGame/InParentNamespace.cs +++ b/tests/MyGame/InParentNamespace.cs @@ -13,7 +13,7 @@ public struct InParentNamespace : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_21(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_3_3(); } public static InParentNamespace GetRootAsInParentNamespace(ByteBuffer _bb) { return GetRootAsInParentNamespace(_bb, new InParentNamespace()); } public static InParentNamespace GetRootAsInParentNamespace(ByteBuffer _bb, InParentNamespace obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/MyGame/InParentNamespace.java b/tests/MyGame/InParentNamespace.java index 9c831d2e80..2fd4769833 100644 --- a/tests/MyGame/InParentNamespace.java +++ b/tests/MyGame/InParentNamespace.java @@ -21,7 +21,7 @@ @SuppressWarnings("unused") public final class InParentNamespace extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_23_1_21(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_3_3(); } public static InParentNamespace getRootAsInParentNamespace(ByteBuffer _bb) { return getRootAsInParentNamespace(_bb, new InParentNamespace()); } public static InParentNamespace getRootAsInParentNamespace(ByteBuffer _bb, InParentNamespace obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/tests/MyGame/InParentNamespace.kt b/tests/MyGame/InParentNamespace.kt index d40175ea79..2116626c9f 100644 --- a/tests/MyGame/InParentNamespace.kt +++ b/tests/MyGame/InParentNamespace.kt @@ -30,7 +30,7 @@ class InParentNamespace : Table() { return this } companion object { - fun validateVersion() = Constants.FLATBUFFERS_23_1_21() + fun validateVersion() = Constants.FLATBUFFERS_23_3_3() fun getRootAsInParentNamespace(_bb: ByteBuffer): InParentNamespace = getRootAsInParentNamespace(_bb, InParentNamespace()) fun getRootAsInParentNamespace(_bb: ByteBuffer, obj: InParentNamespace): InParentNamespace { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/MyGame/InParentNamespace.lua b/tests/MyGame/InParentNamespace.lua index b0f518210b..9a5ea924cf 100644 --- a/tests/MyGame/InParentNamespace.lua +++ b/tests/MyGame/InParentNamespace.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.21 + flatc version: 23.3.3 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/InParentNamespace.nim b/tests/MyGame/InParentNamespace.nim index 02c41fb03d..4357bfa5bd 100644 --- a/tests/MyGame/InParentNamespace.nim +++ b/tests/MyGame/InParentNamespace.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.21 + flatc version: 23.3.3 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/MonsterExtra.cs b/tests/MyGame/MonsterExtra.cs index b92a55e609..f5bd71f1ad 100644 --- a/tests/MyGame/MonsterExtra.cs +++ b/tests/MyGame/MonsterExtra.cs @@ -13,7 +13,7 @@ public struct MonsterExtra : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_21(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_3_3(); } public static MonsterExtra GetRootAsMonsterExtra(ByteBuffer _bb) { return GetRootAsMonsterExtra(_bb, new MonsterExtra()); } public static MonsterExtra GetRootAsMonsterExtra(ByteBuffer _bb, MonsterExtra obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public static bool MonsterExtraBufferHasIdentifier(ByteBuffer _bb) { return Table.__has_identifier(_bb, "MONE"); } diff --git a/tests/MyGame/MonsterExtra.java b/tests/MyGame/MonsterExtra.java index 62f6862c59..474c0eb812 100644 --- a/tests/MyGame/MonsterExtra.java +++ b/tests/MyGame/MonsterExtra.java @@ -21,7 +21,7 @@ @SuppressWarnings("unused") public final class MonsterExtra extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_23_1_21(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_3_3(); } public static MonsterExtra getRootAsMonsterExtra(ByteBuffer _bb) { return getRootAsMonsterExtra(_bb, new MonsterExtra()); } public static MonsterExtra getRootAsMonsterExtra(ByteBuffer _bb, MonsterExtra obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public static boolean MonsterExtraBufferHasIdentifier(ByteBuffer _bb) { return __has_identifier(_bb, "MONE"); } diff --git a/tests/MyGame/MonsterExtra.kt b/tests/MyGame/MonsterExtra.kt index a613a239c7..cdc8891104 100644 --- a/tests/MyGame/MonsterExtra.kt +++ b/tests/MyGame/MonsterExtra.kt @@ -188,7 +188,7 @@ class MonsterExtra : Table() { } } companion object { - fun validateVersion() = Constants.FLATBUFFERS_23_1_21() + fun validateVersion() = Constants.FLATBUFFERS_23_3_3() fun getRootAsMonsterExtra(_bb: ByteBuffer): MonsterExtra = getRootAsMonsterExtra(_bb, MonsterExtra()) fun getRootAsMonsterExtra(_bb: ByteBuffer, obj: MonsterExtra): MonsterExtra { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/MyGame/OtherNameSpace/FromInclude.lua b/tests/MyGame/OtherNameSpace/FromInclude.lua index d9fac805a4..0d7afd4e38 100644 --- a/tests/MyGame/OtherNameSpace/FromInclude.lua +++ b/tests/MyGame/OtherNameSpace/FromInclude.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.21 + flatc version: 23.3.3 Declared by : //include_test/sub/include_test2.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/OtherNameSpace/FromInclude.nim b/tests/MyGame/OtherNameSpace/FromInclude.nim index 428ed042a9..af47a45156 100644 --- a/tests/MyGame/OtherNameSpace/FromInclude.nim +++ b/tests/MyGame/OtherNameSpace/FromInclude.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.21 + flatc version: 23.3.3 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/OtherNameSpace/TableB.lua b/tests/MyGame/OtherNameSpace/TableB.lua index 3b4fe07e09..faa701b0d4 100644 --- a/tests/MyGame/OtherNameSpace/TableB.lua +++ b/tests/MyGame/OtherNameSpace/TableB.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.21 + flatc version: 23.3.3 Declared by : //include_test/sub/include_test2.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/OtherNameSpace/TableB.nim b/tests/MyGame/OtherNameSpace/TableB.nim index 1962ff3ca0..f947d0e026 100644 --- a/tests/MyGame/OtherNameSpace/TableB.nim +++ b/tests/MyGame/OtherNameSpace/TableB.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.21 + flatc version: 23.3.3 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/OtherNameSpace/Unused.lua b/tests/MyGame/OtherNameSpace/Unused.lua index 1ef71a2d65..0136e5bb48 100644 --- a/tests/MyGame/OtherNameSpace/Unused.lua +++ b/tests/MyGame/OtherNameSpace/Unused.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.21 + flatc version: 23.3.3 Declared by : //include_test/sub/include_test2.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/OtherNameSpace/Unused.nim b/tests/MyGame/OtherNameSpace/Unused.nim index cfda3a0c34..f1ab009dc3 100644 --- a/tests/MyGame/OtherNameSpace/Unused.nim +++ b/tests/MyGame/OtherNameSpace/Unused.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.21 + flatc version: 23.3.3 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/Property.nim b/tests/Property.nim index 9bdd9f6363..fa78a7b1f4 100644 --- a/tests/Property.nim +++ b/tests/Property.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.21 + flatc version: 23.3.3 Declared by : ]# diff --git a/tests/TableA.lua b/tests/TableA.lua index 7cbd50c3fd..8eebd25ae3 100644 --- a/tests/TableA.lua +++ b/tests/TableA.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.21 + flatc version: 23.3.3 Declared by : //include_test/include_test1.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/TableA.nim b/tests/TableA.nim index 8b5ac4be73..4df6ec0b06 100644 --- a/tests/TableA.nim +++ b/tests/TableA.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.21 + flatc version: 23.3.3 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/TestMutatingBool.nim b/tests/TestMutatingBool.nim index 32a1324ace..2ab320a288 100644 --- a/tests/TestMutatingBool.nim +++ b/tests/TestMutatingBool.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.21 + flatc version: 23.3.3 Declared by : ]# diff --git a/tests/alignment_test_generated.h b/tests/alignment_test_generated.h index b47d5397d6..0c61c8fe31 100644 --- a/tests/alignment_test_generated.h +++ b/tests/alignment_test_generated.h @@ -9,8 +9,8 @@ // Ensure the included flatbuffers.h is the same version as when this file was // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && - FLATBUFFERS_VERSION_MINOR == 1 && - FLATBUFFERS_VERSION_REVISION == 21, + FLATBUFFERS_VERSION_MINOR == 3 && + FLATBUFFERS_VERSION_REVISION == 3, "Non-compatible flatbuffers version included"); struct BadAlignmentSmall; diff --git a/tests/arrays_test_generated.h b/tests/arrays_test_generated.h index aa58612d66..7df769f4a3 100644 --- a/tests/arrays_test_generated.h +++ b/tests/arrays_test_generated.h @@ -9,8 +9,8 @@ // Ensure the included flatbuffers.h is the same version as when this file was // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && - FLATBUFFERS_VERSION_MINOR == 1 && - FLATBUFFERS_VERSION_REVISION == 21, + FLATBUFFERS_VERSION_MINOR == 3 && + FLATBUFFERS_VERSION_REVISION == 3, "Non-compatible flatbuffers version included"); namespace MyGame { diff --git a/tests/cpp17/generated_cpp17/monster_test_generated.h b/tests/cpp17/generated_cpp17/monster_test_generated.h index 6176d47c9e..8433c094b4 100644 --- a/tests/cpp17/generated_cpp17/monster_test_generated.h +++ b/tests/cpp17/generated_cpp17/monster_test_generated.h @@ -11,8 +11,8 @@ // Ensure the included flatbuffers.h is the same version as when this file was // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && - FLATBUFFERS_VERSION_MINOR == 1 && - FLATBUFFERS_VERSION_REVISION == 21, + FLATBUFFERS_VERSION_MINOR == 3 && + FLATBUFFERS_VERSION_REVISION == 3, "Non-compatible flatbuffers version included"); namespace MyGame { diff --git a/tests/cpp17/generated_cpp17/optional_scalars_generated.h b/tests/cpp17/generated_cpp17/optional_scalars_generated.h index a9395ce3ea..86d62fd93c 100644 --- a/tests/cpp17/generated_cpp17/optional_scalars_generated.h +++ b/tests/cpp17/generated_cpp17/optional_scalars_generated.h @@ -9,8 +9,8 @@ // Ensure the included flatbuffers.h is the same version as when this file was // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && - FLATBUFFERS_VERSION_MINOR == 1 && - FLATBUFFERS_VERSION_REVISION == 21, + FLATBUFFERS_VERSION_MINOR == 3 && + FLATBUFFERS_VERSION_REVISION == 3, "Non-compatible flatbuffers version included"); namespace optional_scalars { diff --git a/tests/cpp17/generated_cpp17/union_vector_generated.h b/tests/cpp17/generated_cpp17/union_vector_generated.h index 801b0b354b..fe7dc72334 100644 --- a/tests/cpp17/generated_cpp17/union_vector_generated.h +++ b/tests/cpp17/generated_cpp17/union_vector_generated.h @@ -9,8 +9,8 @@ // Ensure the included flatbuffers.h is the same version as when this file was // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && - FLATBUFFERS_VERSION_MINOR == 1 && - FLATBUFFERS_VERSION_REVISION == 21, + FLATBUFFERS_VERSION_MINOR == 3 && + FLATBUFFERS_VERSION_REVISION == 3, "Non-compatible flatbuffers version included"); struct Attacker; diff --git a/tests/evolution_test/evolution_v1_generated.h b/tests/evolution_test/evolution_v1_generated.h index f8090074d2..e7470b7e89 100644 --- a/tests/evolution_test/evolution_v1_generated.h +++ b/tests/evolution_test/evolution_v1_generated.h @@ -9,8 +9,8 @@ // Ensure the included flatbuffers.h is the same version as when this file was // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && - FLATBUFFERS_VERSION_MINOR == 1 && - FLATBUFFERS_VERSION_REVISION == 21, + FLATBUFFERS_VERSION_MINOR == 3 && + FLATBUFFERS_VERSION_REVISION == 3, "Non-compatible flatbuffers version included"); namespace Evolution { diff --git a/tests/evolution_test/evolution_v2_generated.h b/tests/evolution_test/evolution_v2_generated.h index 897213f798..259b2837c9 100644 --- a/tests/evolution_test/evolution_v2_generated.h +++ b/tests/evolution_test/evolution_v2_generated.h @@ -9,8 +9,8 @@ // Ensure the included flatbuffers.h is the same version as when this file was // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && - FLATBUFFERS_VERSION_MINOR == 1 && - FLATBUFFERS_VERSION_REVISION == 21, + FLATBUFFERS_VERSION_MINOR == 3 && + FLATBUFFERS_VERSION_REVISION == 3, "Non-compatible flatbuffers version included"); namespace Evolution { diff --git a/tests/key_field/key_field_sample_generated.h b/tests/key_field/key_field_sample_generated.h index f37d4d6e6b..aeafd082a5 100644 --- a/tests/key_field/key_field_sample_generated.h +++ b/tests/key_field/key_field_sample_generated.h @@ -9,8 +9,8 @@ // Ensure the included flatbuffers.h is the same version as when this file was // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && - FLATBUFFERS_VERSION_MINOR == 1 && - FLATBUFFERS_VERSION_REVISION == 21, + FLATBUFFERS_VERSION_MINOR == 3 && + FLATBUFFERS_VERSION_REVISION == 3, "Non-compatible flatbuffers version included"); namespace keyfield { diff --git a/tests/monster_extra_generated.h b/tests/monster_extra_generated.h index 07eedaaffd..6ed45fe291 100644 --- a/tests/monster_extra_generated.h +++ b/tests/monster_extra_generated.h @@ -9,8 +9,8 @@ // Ensure the included flatbuffers.h is the same version as when this file was // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && - FLATBUFFERS_VERSION_MINOR == 1 && - FLATBUFFERS_VERSION_REVISION == 21, + FLATBUFFERS_VERSION_MINOR == 3 && + FLATBUFFERS_VERSION_REVISION == 3, "Non-compatible flatbuffers version included"); namespace MyGame { diff --git a/tests/monster_test_bfbs_generated.h b/tests/monster_test_bfbs_generated.h index 2155a190f9..4c08816261 100644 --- a/tests/monster_test_bfbs_generated.h +++ b/tests/monster_test_bfbs_generated.h @@ -9,8 +9,8 @@ // Ensure the included flatbuffers.h is the same version as when this file was // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && - FLATBUFFERS_VERSION_MINOR == 1 && - FLATBUFFERS_VERSION_REVISION == 21, + FLATBUFFERS_VERSION_MINOR == 3 && + FLATBUFFERS_VERSION_REVISION == 3, "Non-compatible flatbuffers version included"); namespace MyGame { diff --git a/tests/monster_test_generated.h b/tests/monster_test_generated.h index dc86043cea..eebb0c6f1e 100644 --- a/tests/monster_test_generated.h +++ b/tests/monster_test_generated.h @@ -11,8 +11,8 @@ // Ensure the included flatbuffers.h is the same version as when this file was // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && - FLATBUFFERS_VERSION_MINOR == 1 && - FLATBUFFERS_VERSION_REVISION == 21, + FLATBUFFERS_VERSION_MINOR == 3 && + FLATBUFFERS_VERSION_REVISION == 3, "Non-compatible flatbuffers version included"); namespace MyGame { diff --git a/tests/monster_test_suffix/ext_only/monster_test_generated.hpp b/tests/monster_test_suffix/ext_only/monster_test_generated.hpp index dc86043cea..eebb0c6f1e 100644 --- a/tests/monster_test_suffix/ext_only/monster_test_generated.hpp +++ b/tests/monster_test_suffix/ext_only/monster_test_generated.hpp @@ -11,8 +11,8 @@ // Ensure the included flatbuffers.h is the same version as when this file was // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && - FLATBUFFERS_VERSION_MINOR == 1 && - FLATBUFFERS_VERSION_REVISION == 21, + FLATBUFFERS_VERSION_MINOR == 3 && + FLATBUFFERS_VERSION_REVISION == 3, "Non-compatible flatbuffers version included"); namespace MyGame { diff --git a/tests/monster_test_suffix/filesuffix_only/monster_test_suffix.h b/tests/monster_test_suffix/filesuffix_only/monster_test_suffix.h index dc86043cea..eebb0c6f1e 100644 --- a/tests/monster_test_suffix/filesuffix_only/monster_test_suffix.h +++ b/tests/monster_test_suffix/filesuffix_only/monster_test_suffix.h @@ -11,8 +11,8 @@ // Ensure the included flatbuffers.h is the same version as when this file was // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && - FLATBUFFERS_VERSION_MINOR == 1 && - FLATBUFFERS_VERSION_REVISION == 21, + FLATBUFFERS_VERSION_MINOR == 3 && + FLATBUFFERS_VERSION_REVISION == 3, "Non-compatible flatbuffers version included"); namespace MyGame { diff --git a/tests/monster_test_suffix/monster_test_suffix.hpp b/tests/monster_test_suffix/monster_test_suffix.hpp index dc86043cea..eebb0c6f1e 100644 --- a/tests/monster_test_suffix/monster_test_suffix.hpp +++ b/tests/monster_test_suffix/monster_test_suffix.hpp @@ -11,8 +11,8 @@ // Ensure the included flatbuffers.h is the same version as when this file was // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && - FLATBUFFERS_VERSION_MINOR == 1 && - FLATBUFFERS_VERSION_REVISION == 21, + FLATBUFFERS_VERSION_MINOR == 3 && + FLATBUFFERS_VERSION_REVISION == 3, "Non-compatible flatbuffers version included"); namespace MyGame { diff --git a/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.cs b/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.cs index ace2f0f41f..8ec7b8d586 100644 --- a/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.cs +++ b/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.cs @@ -13,7 +13,7 @@ public struct TableInNestedNS : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_21(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_3_3(); } public static TableInNestedNS GetRootAsTableInNestedNS(ByteBuffer _bb) { return GetRootAsTableInNestedNS(_bb, new TableInNestedNS()); } public static TableInNestedNS GetRootAsTableInNestedNS(ByteBuffer _bb, TableInNestedNS obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.java b/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.java index 09eaea29f7..e5fb67a453 100644 --- a/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.java +++ b/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.java @@ -9,7 +9,7 @@ @SuppressWarnings("unused") public final class TableInNestedNS extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_23_1_21(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_3_3(); } public static TableInNestedNS getRootAsTableInNestedNS(ByteBuffer _bb) { return getRootAsTableInNestedNS(_bb, new TableInNestedNS()); } public static TableInNestedNS getRootAsTableInNestedNS(ByteBuffer _bb, TableInNestedNS obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.kt b/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.kt index 1a8ff5b218..314d902fd7 100644 --- a/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.kt +++ b/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.kt @@ -44,7 +44,7 @@ class TableInNestedNS : Table() { } } companion object { - fun validateVersion() = Constants.FLATBUFFERS_23_1_21() + fun validateVersion() = Constants.FLATBUFFERS_23_3_3() fun getRootAsTableInNestedNS(_bb: ByteBuffer): TableInNestedNS = getRootAsTableInNestedNS(_bb, TableInNestedNS()) fun getRootAsTableInNestedNS(_bb: ByteBuffer, obj: TableInNestedNS): TableInNestedNS { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/namespace_test/NamespaceA/SecondTableInA.cs b/tests/namespace_test/NamespaceA/SecondTableInA.cs index 22ec787b57..7e7556cdc7 100644 --- a/tests/namespace_test/NamespaceA/SecondTableInA.cs +++ b/tests/namespace_test/NamespaceA/SecondTableInA.cs @@ -13,7 +13,7 @@ public struct SecondTableInA : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_21(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_3_3(); } public static SecondTableInA GetRootAsSecondTableInA(ByteBuffer _bb) { return GetRootAsSecondTableInA(_bb, new SecondTableInA()); } public static SecondTableInA GetRootAsSecondTableInA(ByteBuffer _bb, SecondTableInA obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/namespace_test/NamespaceA/SecondTableInA.java b/tests/namespace_test/NamespaceA/SecondTableInA.java index 2df3e2d02e..7436ba98aa 100644 --- a/tests/namespace_test/NamespaceA/SecondTableInA.java +++ b/tests/namespace_test/NamespaceA/SecondTableInA.java @@ -9,7 +9,7 @@ @SuppressWarnings("unused") public final class SecondTableInA extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_23_1_21(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_3_3(); } public static SecondTableInA getRootAsSecondTableInA(ByteBuffer _bb) { return getRootAsSecondTableInA(_bb, new SecondTableInA()); } public static SecondTableInA getRootAsSecondTableInA(ByteBuffer _bb, SecondTableInA obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/tests/namespace_test/NamespaceA/SecondTableInA.kt b/tests/namespace_test/NamespaceA/SecondTableInA.kt index 58af7d734d..db5769e92a 100644 --- a/tests/namespace_test/NamespaceA/SecondTableInA.kt +++ b/tests/namespace_test/NamespaceA/SecondTableInA.kt @@ -39,7 +39,7 @@ class SecondTableInA : Table() { } } companion object { - fun validateVersion() = Constants.FLATBUFFERS_23_1_21() + fun validateVersion() = Constants.FLATBUFFERS_23_3_3() fun getRootAsSecondTableInA(_bb: ByteBuffer): SecondTableInA = getRootAsSecondTableInA(_bb, SecondTableInA()) fun getRootAsSecondTableInA(_bb: ByteBuffer, obj: SecondTableInA): SecondTableInA { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/namespace_test/NamespaceA/TableInFirstNS.cs b/tests/namespace_test/NamespaceA/TableInFirstNS.cs index 94e2aac1d7..5c5e7b01f8 100644 --- a/tests/namespace_test/NamespaceA/TableInFirstNS.cs +++ b/tests/namespace_test/NamespaceA/TableInFirstNS.cs @@ -13,7 +13,7 @@ public struct TableInFirstNS : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_21(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_3_3(); } public static TableInFirstNS GetRootAsTableInFirstNS(ByteBuffer _bb) { return GetRootAsTableInFirstNS(_bb, new TableInFirstNS()); } public static TableInFirstNS GetRootAsTableInFirstNS(ByteBuffer _bb, TableInFirstNS obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/namespace_test/NamespaceA/TableInFirstNS.java b/tests/namespace_test/NamespaceA/TableInFirstNS.java index 50ac18a993..9804a1e76e 100644 --- a/tests/namespace_test/NamespaceA/TableInFirstNS.java +++ b/tests/namespace_test/NamespaceA/TableInFirstNS.java @@ -9,7 +9,7 @@ @SuppressWarnings("unused") public final class TableInFirstNS extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_23_1_21(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_3_3(); } public static TableInFirstNS getRootAsTableInFirstNS(ByteBuffer _bb) { return getRootAsTableInFirstNS(_bb, new TableInFirstNS()); } public static TableInFirstNS getRootAsTableInFirstNS(ByteBuffer _bb, TableInFirstNS obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/tests/namespace_test/NamespaceA/TableInFirstNS.kt b/tests/namespace_test/NamespaceA/TableInFirstNS.kt index ab575bca61..587eb0d4a6 100644 --- a/tests/namespace_test/NamespaceA/TableInFirstNS.kt +++ b/tests/namespace_test/NamespaceA/TableInFirstNS.kt @@ -79,7 +79,7 @@ class TableInFirstNS : Table() { } } companion object { - fun validateVersion() = Constants.FLATBUFFERS_23_1_21() + fun validateVersion() = Constants.FLATBUFFERS_23_3_3() fun getRootAsTableInFirstNS(_bb: ByteBuffer): TableInFirstNS = getRootAsTableInFirstNS(_bb, TableInFirstNS()) fun getRootAsTableInFirstNS(_bb: ByteBuffer, obj: TableInFirstNS): TableInFirstNS { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/namespace_test/NamespaceC/TableInC.cs b/tests/namespace_test/NamespaceC/TableInC.cs index c157ed7636..42714d2a47 100644 --- a/tests/namespace_test/NamespaceC/TableInC.cs +++ b/tests/namespace_test/NamespaceC/TableInC.cs @@ -13,7 +13,7 @@ public struct TableInC : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_21(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_3_3(); } public static TableInC GetRootAsTableInC(ByteBuffer _bb) { return GetRootAsTableInC(_bb, new TableInC()); } public static TableInC GetRootAsTableInC(ByteBuffer _bb, TableInC obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/namespace_test/NamespaceC/TableInC.java b/tests/namespace_test/NamespaceC/TableInC.java index 3be39d291c..3b01069831 100644 --- a/tests/namespace_test/NamespaceC/TableInC.java +++ b/tests/namespace_test/NamespaceC/TableInC.java @@ -9,7 +9,7 @@ @SuppressWarnings("unused") public final class TableInC extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_23_1_21(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_3_3(); } public static TableInC getRootAsTableInC(ByteBuffer _bb) { return getRootAsTableInC(_bb, new TableInC()); } public static TableInC getRootAsTableInC(ByteBuffer _bb, TableInC obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/tests/namespace_test/NamespaceC/TableInC.kt b/tests/namespace_test/NamespaceC/TableInC.kt index a955975f2c..390396094d 100644 --- a/tests/namespace_test/NamespaceC/TableInC.kt +++ b/tests/namespace_test/NamespaceC/TableInC.kt @@ -48,7 +48,7 @@ class TableInC : Table() { } } companion object { - fun validateVersion() = Constants.FLATBUFFERS_23_1_21() + fun validateVersion() = Constants.FLATBUFFERS_23_3_3() fun getRootAsTableInC(_bb: ByteBuffer): TableInC = getRootAsTableInC(_bb, TableInC()) fun getRootAsTableInC(_bb: ByteBuffer, obj: TableInC): TableInC { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/namespace_test/namespace_test1_generated.h b/tests/namespace_test/namespace_test1_generated.h index bb5078b896..78ddd126af 100644 --- a/tests/namespace_test/namespace_test1_generated.h +++ b/tests/namespace_test/namespace_test1_generated.h @@ -9,8 +9,8 @@ // Ensure the included flatbuffers.h is the same version as when this file was // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && - FLATBUFFERS_VERSION_MINOR == 1 && - FLATBUFFERS_VERSION_REVISION == 21, + FLATBUFFERS_VERSION_MINOR == 3 && + FLATBUFFERS_VERSION_REVISION == 3, "Non-compatible flatbuffers version included"); namespace NamespaceA { diff --git a/tests/namespace_test/namespace_test2_generated.h b/tests/namespace_test/namespace_test2_generated.h index b30d308205..212d0f1ef8 100644 --- a/tests/namespace_test/namespace_test2_generated.h +++ b/tests/namespace_test/namespace_test2_generated.h @@ -9,8 +9,8 @@ // Ensure the included flatbuffers.h is the same version as when this file was // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && - FLATBUFFERS_VERSION_MINOR == 1 && - FLATBUFFERS_VERSION_REVISION == 21, + FLATBUFFERS_VERSION_MINOR == 3 && + FLATBUFFERS_VERSION_REVISION == 3, "Non-compatible flatbuffers version included"); namespace NamespaceA { diff --git a/tests/native_inline_table_test_generated.h b/tests/native_inline_table_test_generated.h index ea42ba4409..aabd99ab46 100644 --- a/tests/native_inline_table_test_generated.h +++ b/tests/native_inline_table_test_generated.h @@ -9,8 +9,8 @@ // Ensure the included flatbuffers.h is the same version as when this file was // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && - FLATBUFFERS_VERSION_MINOR == 1 && - FLATBUFFERS_VERSION_REVISION == 21, + FLATBUFFERS_VERSION_MINOR == 3 && + FLATBUFFERS_VERSION_REVISION == 3, "Non-compatible flatbuffers version included"); struct NativeInlineTable; diff --git a/tests/native_type_test_generated.h b/tests/native_type_test_generated.h index f99ce02f84..062176b256 100644 --- a/tests/native_type_test_generated.h +++ b/tests/native_type_test_generated.h @@ -9,8 +9,8 @@ // Ensure the included flatbuffers.h is the same version as when this file was // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && - FLATBUFFERS_VERSION_MINOR == 1 && - FLATBUFFERS_VERSION_REVISION == 21, + FLATBUFFERS_VERSION_MINOR == 3 && + FLATBUFFERS_VERSION_REVISION == 3, "Non-compatible flatbuffers version included"); #include "native_type_test_impl.h" diff --git a/tests/nested_namespace_test/nested_namespace_test3_generated.cs b/tests/nested_namespace_test/nested_namespace_test3_generated.cs index a44ceae3fb..b26aae0a21 100644 --- a/tests/nested_namespace_test/nested_namespace_test3_generated.cs +++ b/tests/nested_namespace_test/nested_namespace_test3_generated.cs @@ -13,7 +13,7 @@ public struct ColorTestTable : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_21(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_3_3(); } public static ColorTestTable GetRootAsColorTestTable(ByteBuffer _bb) { return GetRootAsColorTestTable(_bb, new ColorTestTable()); } public static ColorTestTable GetRootAsColorTestTable(ByteBuffer _bb, ColorTestTable obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/optional_scalars/OptionalByte.nim b/tests/optional_scalars/OptionalByte.nim index 8077183cdc..b58a0ee4b6 100644 --- a/tests/optional_scalars/OptionalByte.nim +++ b/tests/optional_scalars/OptionalByte.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.21 + flatc version: 23.3.3 Declared by : Rooting type : optional_scalars.ScalarStuff () diff --git a/tests/optional_scalars/ScalarStuff.cs b/tests/optional_scalars/ScalarStuff.cs index 3d3e664fe5..ec2388b346 100644 --- a/tests/optional_scalars/ScalarStuff.cs +++ b/tests/optional_scalars/ScalarStuff.cs @@ -13,7 +13,7 @@ public struct ScalarStuff : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_21(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_3_3(); } public static ScalarStuff GetRootAsScalarStuff(ByteBuffer _bb) { return GetRootAsScalarStuff(_bb, new ScalarStuff()); } public static ScalarStuff GetRootAsScalarStuff(ByteBuffer _bb, ScalarStuff obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public static bool ScalarStuffBufferHasIdentifier(ByteBuffer _bb) { return Table.__has_identifier(_bb, "NULL"); } diff --git a/tests/optional_scalars/ScalarStuff.java b/tests/optional_scalars/ScalarStuff.java index cae0669be8..b8332d3049 100644 --- a/tests/optional_scalars/ScalarStuff.java +++ b/tests/optional_scalars/ScalarStuff.java @@ -21,7 +21,7 @@ @SuppressWarnings("unused") public final class ScalarStuff extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_23_1_21(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_3_3(); } public static ScalarStuff getRootAsScalarStuff(ByteBuffer _bb) { return getRootAsScalarStuff(_bb, new ScalarStuff()); } public static ScalarStuff getRootAsScalarStuff(ByteBuffer _bb, ScalarStuff obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public static boolean ScalarStuffBufferHasIdentifier(ByteBuffer _bb) { return __has_identifier(_bb, "NULL"); } diff --git a/tests/optional_scalars/ScalarStuff.kt b/tests/optional_scalars/ScalarStuff.kt index eef02f2743..bcc99d9bd4 100644 --- a/tests/optional_scalars/ScalarStuff.kt +++ b/tests/optional_scalars/ScalarStuff.kt @@ -210,7 +210,7 @@ class ScalarStuff : Table() { return if(o != 0) bb.get(o + bb_pos) else 1 } companion object { - fun validateVersion() = Constants.FLATBUFFERS_23_1_21() + fun validateVersion() = Constants.FLATBUFFERS_23_3_3() fun getRootAsScalarStuff(_bb: ByteBuffer): ScalarStuff = getRootAsScalarStuff(_bb, ScalarStuff()) fun getRootAsScalarStuff(_bb: ByteBuffer, obj: ScalarStuff): ScalarStuff { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/optional_scalars/ScalarStuff.nim b/tests/optional_scalars/ScalarStuff.nim index a877a989be..995a080667 100644 --- a/tests/optional_scalars/ScalarStuff.nim +++ b/tests/optional_scalars/ScalarStuff.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.1.21 + flatc version: 23.3.3 Declared by : Rooting type : optional_scalars.ScalarStuff () diff --git a/tests/optional_scalars_generated.h b/tests/optional_scalars_generated.h index b15ef55edf..40a3c91c84 100644 --- a/tests/optional_scalars_generated.h +++ b/tests/optional_scalars_generated.h @@ -9,8 +9,8 @@ // Ensure the included flatbuffers.h is the same version as when this file was // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && - FLATBUFFERS_VERSION_MINOR == 1 && - FLATBUFFERS_VERSION_REVISION == 21, + FLATBUFFERS_VERSION_MINOR == 3 && + FLATBUFFERS_VERSION_REVISION == 3, "Non-compatible flatbuffers version included"); namespace optional_scalars { diff --git a/tests/swift/Wasm.tests/Tests/FlatBuffers.Test.Swift.WasmTests/monster_test_generated.swift b/tests/swift/Wasm.tests/Tests/FlatBuffers.Test.Swift.WasmTests/monster_test_generated.swift index fd2ca74685..b11c142d78 100644 --- a/tests/swift/Wasm.tests/Tests/FlatBuffers.Test.Swift.WasmTests/monster_test_generated.swift +++ b/tests/swift/Wasm.tests/Tests/FlatBuffers.Test.Swift.WasmTests/monster_test_generated.swift @@ -237,7 +237,7 @@ public struct MyGame_Example_AnyAmbiguousAliasesUnion { } public struct MyGame_Example_Test: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject { - static func validateVersion() { FlatBuffersVersion_23_1_21() } + static func validateVersion() { FlatBuffersVersion_23_3_3() } private var _a: Int16 private var _b: Int8 @@ -291,7 +291,7 @@ extension MyGame_Example_Test: Encodable { public struct MyGame_Example_Test_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_23_1_21() } + static func validateVersion() { FlatBuffersVersion_23_3_3() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -318,7 +318,7 @@ public struct MyGame_Example_Test_Mutable: FlatBufferObject { public struct MyGame_Example_Vec3: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject { - static func validateVersion() { FlatBuffersVersion_23_1_21() } + static func validateVersion() { FlatBuffersVersion_23_3_3() } private var _x: Float32 private var _y: Float32 @@ -413,7 +413,7 @@ extension MyGame_Example_Vec3: Encodable { public struct MyGame_Example_Vec3_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_23_1_21() } + static func validateVersion() { FlatBuffersVersion_23_3_3() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -447,7 +447,7 @@ public struct MyGame_Example_Vec3_Mutable: FlatBufferObject { public struct MyGame_Example_Ability: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject { - static func validateVersion() { FlatBuffersVersion_23_1_21() } + static func validateVersion() { FlatBuffersVersion_23_3_3() } private var _id: UInt32 private var _distance: UInt32 @@ -500,7 +500,7 @@ extension MyGame_Example_Ability: Encodable { public struct MyGame_Example_Ability_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_23_1_21() } + static func validateVersion() { FlatBuffersVersion_23_3_3() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -527,7 +527,7 @@ public struct MyGame_Example_Ability_Mutable: FlatBufferObject { public struct MyGame_Example_StructOfStructs: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject { - static func validateVersion() { FlatBuffersVersion_23_1_21() } + static func validateVersion() { FlatBuffersVersion_23_3_3() } private var _a: MyGame_Example_Ability private var _b: MyGame_Example_Test @@ -587,7 +587,7 @@ extension MyGame_Example_StructOfStructs: Encodable { public struct MyGame_Example_StructOfStructs_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_23_1_21() } + static func validateVersion() { FlatBuffersVersion_23_3_3() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -613,7 +613,7 @@ public struct MyGame_Example_StructOfStructs_Mutable: FlatBufferObject { public struct MyGame_Example_StructOfStructsOfStructs: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject { - static func validateVersion() { FlatBuffersVersion_23_1_21() } + static func validateVersion() { FlatBuffersVersion_23_3_3() } private var _a: MyGame_Example_StructOfStructs @@ -655,7 +655,7 @@ extension MyGame_Example_StructOfStructsOfStructs: Encodable { public struct MyGame_Example_StructOfStructsOfStructs_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_23_1_21() } + static func validateVersion() { FlatBuffersVersion_23_3_3() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -679,7 +679,7 @@ public struct MyGame_Example_StructOfStructsOfStructs_Mutable: FlatBufferObject public struct MyGame_InParentNamespace: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_23_1_21() } + static func validateVersion() { FlatBuffersVersion_23_3_3() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -731,7 +731,7 @@ public class MyGame_InParentNamespaceT: NativeObject { } public struct MyGame_Example2_Monster: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_23_1_21() } + static func validateVersion() { FlatBuffersVersion_23_3_3() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -783,7 +783,7 @@ public class MyGame_Example2_MonsterT: NativeObject { } internal struct MyGame_Example_TestSimpleTableWithEnum: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_23_1_21() } + static func validateVersion() { FlatBuffersVersion_23_3_3() } internal var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -864,7 +864,7 @@ internal class MyGame_Example_TestSimpleTableWithEnumT: NativeObject { } public struct MyGame_Example_Stat: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_23_1_21() } + static func validateVersion() { FlatBuffersVersion_23_3_3() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -1003,7 +1003,7 @@ public class MyGame_Example_StatT: NativeObject { } public struct MyGame_Example_Referrable: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_23_1_21() } + static func validateVersion() { FlatBuffersVersion_23_3_3() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -1109,7 +1109,7 @@ public class MyGame_Example_ReferrableT: NativeObject { /// an example documentation comment: "monster object" public struct MyGame_Example_Monster: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_23_1_21() } + static func validateVersion() { FlatBuffersVersion_23_3_3() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -2405,7 +2405,7 @@ public class MyGame_Example_MonsterT: NativeObject { } public struct MyGame_Example_TypeAliases: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_23_1_21() } + static func validateVersion() { FlatBuffersVersion_23_3_3() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table diff --git a/tests/swift/tests/CodeGenerationTests/test_import_generated.swift b/tests/swift/tests/CodeGenerationTests/test_import_generated.swift index ac8a85f8d5..67a31e6b34 100644 --- a/tests/swift/tests/CodeGenerationTests/test_import_generated.swift +++ b/tests/swift/tests/CodeGenerationTests/test_import_generated.swift @@ -6,7 +6,7 @@ internal struct Message: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_23_1_21() } + static func validateVersion() { FlatBuffersVersion_23_3_3() } internal var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table diff --git a/tests/swift/tests/CodeGenerationTests/test_no_include_generated.swift b/tests/swift/tests/CodeGenerationTests/test_no_include_generated.swift index 956e72b877..5e429cb96c 100644 --- a/tests/swift/tests/CodeGenerationTests/test_no_include_generated.swift +++ b/tests/swift/tests/CodeGenerationTests/test_no_include_generated.swift @@ -4,7 +4,7 @@ public struct BytesCount: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject { - static func validateVersion() { FlatBuffersVersion_23_1_21() } + static func validateVersion() { FlatBuffersVersion_23_3_3() } private var _x: Int64 @@ -47,7 +47,7 @@ extension BytesCount: Encodable { public struct BytesCount_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_23_1_21() } + static func validateVersion() { FlatBuffersVersion_23_3_3() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -72,7 +72,7 @@ public struct BytesCount_Mutable: FlatBufferObject { public struct InternalMessage: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_23_1_21() } + static func validateVersion() { FlatBuffersVersion_23_3_3() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -155,7 +155,7 @@ public class InternalMessageT: NativeObject { } public struct Message: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_23_1_21() } + static func validateVersion() { FlatBuffersVersion_23_3_3() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table diff --git a/tests/swift/tests/Sources/SwiftFlatBuffers/fuzzer_generated.swift b/tests/swift/tests/Sources/SwiftFlatBuffers/fuzzer_generated.swift index 8631c92a60..3ca2b15ce8 100644 --- a/tests/swift/tests/Sources/SwiftFlatBuffers/fuzzer_generated.swift +++ b/tests/swift/tests/Sources/SwiftFlatBuffers/fuzzer_generated.swift @@ -32,7 +32,7 @@ extension Color: Encodable { public struct Test: NativeStruct, Verifiable, FlatbuffersInitializable { - static func validateVersion() { FlatBuffersVersion_23_1_21() } + static func validateVersion() { FlatBuffersVersion_23_3_3() } private var _a: Int16 private var _b: Int8 @@ -81,7 +81,7 @@ extension Test: Encodable { public struct Test_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_23_1_21() } + static func validateVersion() { FlatBuffersVersion_23_3_3() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -93,7 +93,7 @@ public struct Test_Mutable: FlatBufferObject { public struct Vec3: NativeStruct, Verifiable, FlatbuffersInitializable { - static func validateVersion() { FlatBuffersVersion_23_1_21() } + static func validateVersion() { FlatBuffersVersion_23_3_3() } private var _x: Float32 private var _y: Float32 @@ -178,7 +178,7 @@ extension Vec3: Encodable { public struct Vec3_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_23_1_21() } + static func validateVersion() { FlatBuffersVersion_23_3_3() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -195,7 +195,7 @@ public struct Vec3_Mutable: FlatBufferObject { /// an example documentation comment: "monster object" public struct Monster: FlatBufferObject, Verifiable { - static func validateVersion() { FlatBuffersVersion_23_1_21() } + static func validateVersion() { FlatBuffersVersion_23_3_3() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table diff --git a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/MutatingBool_generated.swift b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/MutatingBool_generated.swift index cee24baf16..48a73a5cb2 100644 --- a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/MutatingBool_generated.swift +++ b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/MutatingBool_generated.swift @@ -6,7 +6,7 @@ import FlatBuffers public struct Property: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject { - static func validateVersion() { FlatBuffersVersion_23_1_21() } + static func validateVersion() { FlatBuffersVersion_23_3_3() } private var _property: Bool @@ -49,7 +49,7 @@ extension Property: Encodable { public struct Property_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_23_1_21() } + static func validateVersion() { FlatBuffersVersion_23_3_3() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -74,7 +74,7 @@ public struct Property_Mutable: FlatBufferObject { public struct TestMutatingBool: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_23_1_21() } + static func validateVersion() { FlatBuffersVersion_23_3_3() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table diff --git a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/monster_test_generated.swift b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/monster_test_generated.swift index fd2ca74685..b11c142d78 100644 --- a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/monster_test_generated.swift +++ b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/monster_test_generated.swift @@ -237,7 +237,7 @@ public struct MyGame_Example_AnyAmbiguousAliasesUnion { } public struct MyGame_Example_Test: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject { - static func validateVersion() { FlatBuffersVersion_23_1_21() } + static func validateVersion() { FlatBuffersVersion_23_3_3() } private var _a: Int16 private var _b: Int8 @@ -291,7 +291,7 @@ extension MyGame_Example_Test: Encodable { public struct MyGame_Example_Test_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_23_1_21() } + static func validateVersion() { FlatBuffersVersion_23_3_3() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -318,7 +318,7 @@ public struct MyGame_Example_Test_Mutable: FlatBufferObject { public struct MyGame_Example_Vec3: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject { - static func validateVersion() { FlatBuffersVersion_23_1_21() } + static func validateVersion() { FlatBuffersVersion_23_3_3() } private var _x: Float32 private var _y: Float32 @@ -413,7 +413,7 @@ extension MyGame_Example_Vec3: Encodable { public struct MyGame_Example_Vec3_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_23_1_21() } + static func validateVersion() { FlatBuffersVersion_23_3_3() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -447,7 +447,7 @@ public struct MyGame_Example_Vec3_Mutable: FlatBufferObject { public struct MyGame_Example_Ability: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject { - static func validateVersion() { FlatBuffersVersion_23_1_21() } + static func validateVersion() { FlatBuffersVersion_23_3_3() } private var _id: UInt32 private var _distance: UInt32 @@ -500,7 +500,7 @@ extension MyGame_Example_Ability: Encodable { public struct MyGame_Example_Ability_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_23_1_21() } + static func validateVersion() { FlatBuffersVersion_23_3_3() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -527,7 +527,7 @@ public struct MyGame_Example_Ability_Mutable: FlatBufferObject { public struct MyGame_Example_StructOfStructs: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject { - static func validateVersion() { FlatBuffersVersion_23_1_21() } + static func validateVersion() { FlatBuffersVersion_23_3_3() } private var _a: MyGame_Example_Ability private var _b: MyGame_Example_Test @@ -587,7 +587,7 @@ extension MyGame_Example_StructOfStructs: Encodable { public struct MyGame_Example_StructOfStructs_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_23_1_21() } + static func validateVersion() { FlatBuffersVersion_23_3_3() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -613,7 +613,7 @@ public struct MyGame_Example_StructOfStructs_Mutable: FlatBufferObject { public struct MyGame_Example_StructOfStructsOfStructs: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject { - static func validateVersion() { FlatBuffersVersion_23_1_21() } + static func validateVersion() { FlatBuffersVersion_23_3_3() } private var _a: MyGame_Example_StructOfStructs @@ -655,7 +655,7 @@ extension MyGame_Example_StructOfStructsOfStructs: Encodable { public struct MyGame_Example_StructOfStructsOfStructs_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_23_1_21() } + static func validateVersion() { FlatBuffersVersion_23_3_3() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -679,7 +679,7 @@ public struct MyGame_Example_StructOfStructsOfStructs_Mutable: FlatBufferObject public struct MyGame_InParentNamespace: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_23_1_21() } + static func validateVersion() { FlatBuffersVersion_23_3_3() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -731,7 +731,7 @@ public class MyGame_InParentNamespaceT: NativeObject { } public struct MyGame_Example2_Monster: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_23_1_21() } + static func validateVersion() { FlatBuffersVersion_23_3_3() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -783,7 +783,7 @@ public class MyGame_Example2_MonsterT: NativeObject { } internal struct MyGame_Example_TestSimpleTableWithEnum: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_23_1_21() } + static func validateVersion() { FlatBuffersVersion_23_3_3() } internal var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -864,7 +864,7 @@ internal class MyGame_Example_TestSimpleTableWithEnumT: NativeObject { } public struct MyGame_Example_Stat: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_23_1_21() } + static func validateVersion() { FlatBuffersVersion_23_3_3() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -1003,7 +1003,7 @@ public class MyGame_Example_StatT: NativeObject { } public struct MyGame_Example_Referrable: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_23_1_21() } + static func validateVersion() { FlatBuffersVersion_23_3_3() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -1109,7 +1109,7 @@ public class MyGame_Example_ReferrableT: NativeObject { /// an example documentation comment: "monster object" public struct MyGame_Example_Monster: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_23_1_21() } + static func validateVersion() { FlatBuffersVersion_23_3_3() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -2405,7 +2405,7 @@ public class MyGame_Example_MonsterT: NativeObject { } public struct MyGame_Example_TypeAliases: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_23_1_21() } + static func validateVersion() { FlatBuffersVersion_23_3_3() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table diff --git a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/more_defaults_generated.swift b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/more_defaults_generated.swift index 4705376455..ec37924f04 100644 --- a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/more_defaults_generated.swift +++ b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/more_defaults_generated.swift @@ -29,7 +29,7 @@ extension ABC: Encodable { public struct MoreDefaults: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_23_1_21() } + static func validateVersion() { FlatBuffersVersion_23_3_3() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table diff --git a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/nan_inf_test_generated.swift b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/nan_inf_test_generated.swift index d9fb9bd543..2285c651d8 100644 --- a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/nan_inf_test_generated.swift +++ b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/nan_inf_test_generated.swift @@ -6,7 +6,7 @@ import FlatBuffers public struct Swift_Tests_NanInfTable: FlatBufferObject, Verifiable { - static func validateVersion() { FlatBuffersVersion_23_1_21() } + static func validateVersion() { FlatBuffersVersion_23_3_3() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table diff --git a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/optional_scalars_generated.swift b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/optional_scalars_generated.swift index fb6614a0d0..74585a1704 100644 --- a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/optional_scalars_generated.swift +++ b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/optional_scalars_generated.swift @@ -29,7 +29,7 @@ extension optional_scalars_OptionalByte: Encodable { public struct optional_scalars_ScalarStuff: FlatBufferObject, Verifiable { - static func validateVersion() { FlatBuffersVersion_23_1_21() } + static func validateVersion() { FlatBuffersVersion_23_3_3() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table diff --git a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/union_vector_generated.swift b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/union_vector_generated.swift index e5801135d0..cfdc1615de 100644 --- a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/union_vector_generated.swift +++ b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/union_vector_generated.swift @@ -120,7 +120,7 @@ public struct GadgetUnion { } public struct Rapunzel: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject { - static func validateVersion() { FlatBuffersVersion_23_1_21() } + static func validateVersion() { FlatBuffersVersion_23_3_3() } private var _hairLength: Int32 @@ -163,7 +163,7 @@ extension Rapunzel: Encodable { public struct Rapunzel_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_23_1_21() } + static func validateVersion() { FlatBuffersVersion_23_3_3() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -188,7 +188,7 @@ public struct Rapunzel_Mutable: FlatBufferObject { public struct BookReader: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject { - static func validateVersion() { FlatBuffersVersion_23_1_21() } + static func validateVersion() { FlatBuffersVersion_23_3_3() } private var _booksRead: Int32 @@ -231,7 +231,7 @@ extension BookReader: Encodable { public struct BookReader_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_23_1_21() } + static func validateVersion() { FlatBuffersVersion_23_3_3() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -256,7 +256,7 @@ public struct BookReader_Mutable: FlatBufferObject { public struct FallingTub: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject { - static func validateVersion() { FlatBuffersVersion_23_1_21() } + static func validateVersion() { FlatBuffersVersion_23_3_3() } private var _weight: Int32 @@ -299,7 +299,7 @@ extension FallingTub: Encodable { public struct FallingTub_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_23_1_21() } + static func validateVersion() { FlatBuffersVersion_23_3_3() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -324,7 +324,7 @@ public struct FallingTub_Mutable: FlatBufferObject { public struct Attacker: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_23_1_21() } + static func validateVersion() { FlatBuffersVersion_23_3_3() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -405,7 +405,7 @@ public class AttackerT: NativeObject { } public struct HandFan: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_23_1_21() } + static func validateVersion() { FlatBuffersVersion_23_3_3() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -486,7 +486,7 @@ public class HandFanT: NativeObject { } public struct Movie: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_23_1_21() } + static func validateVersion() { FlatBuffersVersion_23_3_3() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table diff --git a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/vector_has_test_generated.swift b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/vector_has_test_generated.swift index 29298f5c58..86b2a59f1a 100644 --- a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/vector_has_test_generated.swift +++ b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/vector_has_test_generated.swift @@ -6,7 +6,7 @@ import FlatBuffers public struct Swift_Tests_Vectors: FlatBufferObject, Verifiable { - static func validateVersion() { FlatBuffersVersion_23_1_21() } + static func validateVersion() { FlatBuffersVersion_23_3_3() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table diff --git a/tests/type_field_collsion/Collision.cs b/tests/type_field_collsion/Collision.cs index 00c5fa2e01..0d24aba919 100644 --- a/tests/type_field_collsion/Collision.cs +++ b/tests/type_field_collsion/Collision.cs @@ -13,7 +13,7 @@ public struct Collision : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_21(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_3_3(); } public static Collision GetRootAsCollision(ByteBuffer _bb) { return GetRootAsCollision(_bb, new Collision()); } public static Collision GetRootAsCollision(ByteBuffer _bb, Collision obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/union_value_collsion/union_value_collision_generated.cs b/tests/union_value_collsion/union_value_collision_generated.cs index 4d016b5f3d..c49701eb01 100644 --- a/tests/union_value_collsion/union_value_collision_generated.cs +++ b/tests/union_value_collsion/union_value_collision_generated.cs @@ -151,7 +151,7 @@ public struct IntValue : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_21(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_3_3(); } public static IntValue GetRootAsIntValue(ByteBuffer _bb) { return GetRootAsIntValue(_bb, new IntValue()); } public static IntValue GetRootAsIntValue(ByteBuffer _bb, IntValue obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } @@ -202,7 +202,7 @@ public struct Collide : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_21(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_3_3(); } public static Collide GetRootAsCollide(ByteBuffer _bb) { return GetRootAsCollide(_bb, new Collide()); } public static Collide GetRootAsCollide(ByteBuffer _bb, Collide obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } @@ -306,7 +306,7 @@ public struct Collision : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_21(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_3_3(); } public static Collision GetRootAsCollision(ByteBuffer _bb) { return GetRootAsCollision(_bb, new Collision()); } public static Collision GetRootAsCollision(ByteBuffer _bb, Collision obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/union_vector/Attacker.cs b/tests/union_vector/Attacker.cs index 7f633e5d67..cb48863a0b 100644 --- a/tests/union_vector/Attacker.cs +++ b/tests/union_vector/Attacker.cs @@ -10,7 +10,7 @@ public struct Attacker : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_21(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_3_3(); } public static Attacker GetRootAsAttacker(ByteBuffer _bb) { return GetRootAsAttacker(_bb, new Attacker()); } public static Attacker GetRootAsAttacker(ByteBuffer _bb, Attacker obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/union_vector/Attacker.java b/tests/union_vector/Attacker.java index 0149d780ad..1e7df26a62 100644 --- a/tests/union_vector/Attacker.java +++ b/tests/union_vector/Attacker.java @@ -19,7 +19,7 @@ @SuppressWarnings("unused") public final class Attacker extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_23_1_21(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_3_3(); } public static Attacker getRootAsAttacker(ByteBuffer _bb) { return getRootAsAttacker(_bb, new Attacker()); } public static Attacker getRootAsAttacker(ByteBuffer _bb, Attacker obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/tests/union_vector/Attacker.kt b/tests/union_vector/Attacker.kt index 89786e22f9..60a2fa1a54 100644 --- a/tests/union_vector/Attacker.kt +++ b/tests/union_vector/Attacker.kt @@ -42,7 +42,7 @@ class Attacker : Table() { } } companion object { - fun validateVersion() = Constants.FLATBUFFERS_23_1_21() + fun validateVersion() = Constants.FLATBUFFERS_23_3_3() fun getRootAsAttacker(_bb: ByteBuffer): Attacker = getRootAsAttacker(_bb, Attacker()) fun getRootAsAttacker(_bb: ByteBuffer, obj: Attacker): Attacker { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/union_vector/HandFan.cs b/tests/union_vector/HandFan.cs index 6cb2487709..63e10539c7 100644 --- a/tests/union_vector/HandFan.cs +++ b/tests/union_vector/HandFan.cs @@ -10,7 +10,7 @@ public struct HandFan : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_21(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_3_3(); } public static HandFan GetRootAsHandFan(ByteBuffer _bb) { return GetRootAsHandFan(_bb, new HandFan()); } public static HandFan GetRootAsHandFan(ByteBuffer _bb, HandFan obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/union_vector/HandFan.java b/tests/union_vector/HandFan.java index aa25470739..9989af5e8e 100644 --- a/tests/union_vector/HandFan.java +++ b/tests/union_vector/HandFan.java @@ -19,7 +19,7 @@ @SuppressWarnings("unused") public final class HandFan extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_23_1_21(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_3_3(); } public static HandFan getRootAsHandFan(ByteBuffer _bb) { return getRootAsHandFan(_bb, new HandFan()); } public static HandFan getRootAsHandFan(ByteBuffer _bb, HandFan obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/tests/union_vector/HandFan.kt b/tests/union_vector/HandFan.kt index 2ccfd8c05b..c432d22de8 100644 --- a/tests/union_vector/HandFan.kt +++ b/tests/union_vector/HandFan.kt @@ -42,7 +42,7 @@ class HandFan : Table() { } } companion object { - fun validateVersion() = Constants.FLATBUFFERS_23_1_21() + fun validateVersion() = Constants.FLATBUFFERS_23_3_3() fun getRootAsHandFan(_bb: ByteBuffer): HandFan = getRootAsHandFan(_bb, HandFan()) fun getRootAsHandFan(_bb: ByteBuffer, obj: HandFan): HandFan { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/union_vector/Movie.cs b/tests/union_vector/Movie.cs index f306325196..f77bc497ed 100644 --- a/tests/union_vector/Movie.cs +++ b/tests/union_vector/Movie.cs @@ -10,7 +10,7 @@ public struct Movie : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_1_21(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_3_3(); } public static Movie GetRootAsMovie(ByteBuffer _bb) { return GetRootAsMovie(_bb, new Movie()); } public static Movie GetRootAsMovie(ByteBuffer _bb, Movie obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public static bool MovieBufferHasIdentifier(ByteBuffer _bb) { return Table.__has_identifier(_bb, "MOVI"); } diff --git a/tests/union_vector/Movie.java b/tests/union_vector/Movie.java index 265d960f5c..62fcecd1a2 100644 --- a/tests/union_vector/Movie.java +++ b/tests/union_vector/Movie.java @@ -19,7 +19,7 @@ @SuppressWarnings("unused") public final class Movie extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_23_1_21(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_3_3(); } public static Movie getRootAsMovie(ByteBuffer _bb) { return getRootAsMovie(_bb, new Movie()); } public static Movie getRootAsMovie(ByteBuffer _bb, Movie obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public static boolean MovieBufferHasIdentifier(ByteBuffer _bb) { return __has_identifier(_bb, "MOVI"); } diff --git a/tests/union_vector/Movie.kt b/tests/union_vector/Movie.kt index 4826dff875..87488dade7 100644 --- a/tests/union_vector/Movie.kt +++ b/tests/union_vector/Movie.kt @@ -80,7 +80,7 @@ class Movie : Table() { val o = __offset(10); return if (o != 0) __vector_len(o) else 0 } companion object { - fun validateVersion() = Constants.FLATBUFFERS_23_1_21() + fun validateVersion() = Constants.FLATBUFFERS_23_3_3() fun getRootAsMovie(_bb: ByteBuffer): Movie = getRootAsMovie(_bb, Movie()) fun getRootAsMovie(_bb: ByteBuffer, obj: Movie): Movie { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/union_vector/union_vector_generated.h b/tests/union_vector/union_vector_generated.h index c17ea1c84a..d1d06aaa9a 100644 --- a/tests/union_vector/union_vector_generated.h +++ b/tests/union_vector/union_vector_generated.h @@ -9,8 +9,8 @@ // Ensure the included flatbuffers.h is the same version as when this file was // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && - FLATBUFFERS_VERSION_MINOR == 1 && - FLATBUFFERS_VERSION_REVISION == 21, + FLATBUFFERS_VERSION_MINOR == 3 && + FLATBUFFERS_VERSION_REVISION == 3, "Non-compatible flatbuffers version included"); struct Attacker; From d44ce00af13b55701420b78c73725a2edc9fdb37 Mon Sep 17 00:00:00 2001 From: Derek Bailey Date: Fri, 3 Mar 2023 12:01:08 -0800 Subject: [PATCH 132/571] Updated remaining usages of LICENSE.txt --- CMake/PackageRedhat.cmake | 2 +- conanfile.py | 4 ++-- docs/source/FlatBuffers.md | 2 +- net/FlatBuffers/Google.FlatBuffers.csproj | 4 ++-- package.json | 2 +- python/setup.cfg | 2 +- python/setup.py | 2 +- 7 files changed, 9 insertions(+), 9 deletions(-) diff --git a/CMake/PackageRedhat.cmake b/CMake/PackageRedhat.cmake index 78f8eaa76a..34302882fb 100644 --- a/CMake/PackageRedhat.cmake +++ b/CMake/PackageRedhat.cmake @@ -22,7 +22,7 @@ if (UNIX) set(CPACK_RPM_PACKAGE_VENDOR "Google, Inc.") set(CPACK_RPM_PACKAGE_LICENSE "Apache 2.0") - set(CPACK_RESOURCE_FILE_LICENSE ${CMAKE_SOURCE_DIR}/LICENSE.txt) + set(CPACK_RESOURCE_FILE_LICENSE ${CMAKE_SOURCE_DIR}/LICENSE) set(CPACK_PACKAGE_DESCRIPTION_FILE ${CMAKE_SOURCE_DIR}/CMake/DESCRIPTION.txt) # This may reduce rpm compatiblity with very old systems. diff --git a/conanfile.py b/conanfile.py index bdd832c36b..9d622908ac 100644 --- a/conanfile.py +++ b/conanfile.py @@ -20,7 +20,7 @@ class FlatbuffersConan(ConanFile): options = {"shared": [True, False], "fPIC": [True, False]} default_options = {"shared": False, "fPIC": True} generators = "cmake" - exports = "LICENSE.txt" + exports = "LICENSE" exports_sources = ["CMake/*", "include/*", "src/*", "grpc/*", "CMakeLists.txt", "conan/CMakeLists.txt"] def source(self): @@ -56,7 +56,7 @@ def package(self): """ cmake = self.configure_cmake() cmake.install() - self.copy(pattern="LICENSE.txt", dst="licenses") + self.copy(pattern="LICENSE", dst="licenses") self.copy(pattern="FindFlatBuffers.cmake", dst=os.path.join("lib", "cmake", "flatbuffers"), src="CMake") self.copy(pattern="flathash*", dst="bin", src="bin") self.copy(pattern="flatc*", dst="bin", src="bin") diff --git a/docs/source/FlatBuffers.md b/docs/source/FlatBuffers.md index bbd2cb0f3f..e0c24cef43 100644 --- a/docs/source/FlatBuffers.md +++ b/docs/source/FlatBuffers.md @@ -9,7 +9,7 @@ It was originally created at Google for game development and other performance-critical applications. It is available as Open Source on [GitHub](http://github.com/google/flatbuffers) -under the Apache license, v2 (see LICENSE.txt). +under the Apache license, v2 (see LICENSE). ## Why use FlatBuffers? diff --git a/net/FlatBuffers/Google.FlatBuffers.csproj b/net/FlatBuffers/Google.FlatBuffers.csproj index d633805afc..3c1c7f2209 100644 --- a/net/FlatBuffers/Google.FlatBuffers.csproj +++ b/net/FlatBuffers/Google.FlatBuffers.csproj @@ -8,7 +8,7 @@ https://github.com/google/flatbuffers https://github.com/google/flatbuffers true - LICENSE.txt + LICENSE flatbuffers.png Google;FlatBuffers;Serialization;Buffer;Binary;zero copy Copyright 2022 Google LLC @@ -39,7 +39,7 @@
- + diff --git a/package.json b/package.json index d3d8db8d6b..680ea02a40 100644 --- a/package.json +++ b/package.json @@ -29,7 +29,7 @@ "flatbuffers" ], "author": "The FlatBuffers project", - "license": "SEE LICENSE IN LICENSE.txt", + "license": "SEE LICENSE IN LICENSE", "bugs": { "url": "https://github.com/google/flatbuffers/issues" }, diff --git a/python/setup.cfg b/python/setup.cfg index bb0feff994..e36470372f 100644 --- a/python/setup.cfg +++ b/python/setup.cfg @@ -3,4 +3,4 @@ universal=1 [metadata] license_files = - ../license.txt \ No newline at end of file + ../license \ No newline at end of file diff --git a/python/setup.py b/python/setup.py index 4c908945da..f52065edbc 100644 --- a/python/setup.py +++ b/python/setup.py @@ -18,7 +18,7 @@ name='flatbuffers', version='23.3.3', license='Apache 2.0', - license_files='../LICENSE.txt', + license_files='../LICENSE', author='Derek Bailey', author_email='derekbailey@google.com', url='https://google.github.io/flatbuffers/', From df007dfde8b2a59a0726d5bd123ed43c825dd882 Mon Sep 17 00:00:00 2001 From: Derek Bailey Date: Fri, 3 Mar 2023 16:52:14 -0800 Subject: [PATCH 133/571] Update stale.yml Shorten the PR staleness from 6 months to 3 weeks + 1 week notice. PRs become much harder to deal with the old they become due to merge conflicts and divergence. Updated to stale@v7.0.0 --- .github/workflows/stale.yml | 27 +++++++++++++++++++-------- 1 file changed, 19 insertions(+), 8 deletions(-) diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml index 45f0119292..5634aeb852 100644 --- a/.github/workflows/stale.yml +++ b/.github/workflows/stale.yml @@ -1,5 +1,7 @@ name: Mark stale issues and pull requests -permissions: read-all +permissions: + issues: write + pull-requests: write on: schedule: @@ -11,14 +13,23 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/stale@v4.0.0 + - uses: actions/stale@v7.0.0 with: repo-token: ${{ secrets.GITHUB_TOKEN }} - stale-pr-message: 'This pull request is stale because it has been open 6 months with no activity. Please comment or this will be closed in 14 days.' - stale-issue-message: 'This issue is stale because it has been open 6 months with no activity. Please comment or this will be closed in 14 days.' - days-before-stale: 182 # 6 months - days-before-close: 14 - operations-per-run: 1500 + operations-per-run: 50 + exempt-all-milestones: true + remove-stale-when-updated: true + + stale-issue-message: 'This issue is stale because it has been open 6 months with no activity. Please comment or label `not-stale`, or this will be closed in 14 days.' + close-issue-message: 'This issue was automatically closed due to no activity for 6 months plus the 14 day notice period.' + days-before-issue-stale: 182 # 6 months + days-before-issue-close: 14 # 2 weeks exempt-issue-labels: not-stale + + stale-pr-message: 'This pull request is stale because it has been open 3 weeks with no activity. Please comment or label `not-stale`, or this will be closed in 7 days.' + close-pr-message: 'This pull request was automatically closed due to no activity for 3 weeks plus the 7 day notice period.' + days-before-pr-stale: 21 # 3 weeks + days-before-pr-close: 7 # 1 week exempt-pr-labels: not-stale - exempt-all-milestones: true + exempt-draft-pr: false + From 42ee479c31aa5fe771ae146fd382cc4d77612a30 Mon Sep 17 00:00:00 2001 From: Derek Bailey Date: Fri, 3 Mar 2023 16:59:45 -0800 Subject: [PATCH 134/571] Allow manual runs of stale.yml --- .github/workflows/stale.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml index 5634aeb852..1a82431075 100644 --- a/.github/workflows/stale.yml +++ b/.github/workflows/stale.yml @@ -4,8 +4,10 @@ permissions: pull-requests: write on: + # For manual tests. + workflow_dispatch: schedule: - - cron: "30 20 * * *" + - cron: "30 20 * * *" jobs: stale: From 32a67442865703704a8d382743eddcd92a0917f3 Mon Sep 17 00:00:00 2001 From: Derek Bailey Date: Fri, 3 Mar 2023 17:02:14 -0800 Subject: [PATCH 135/571] Increase limit on stale.yml items processed --- .github/workflows/stale.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml index 1a82431075..afcd4e0ce2 100644 --- a/.github/workflows/stale.yml +++ b/.github/workflows/stale.yml @@ -18,7 +18,7 @@ jobs: - uses: actions/stale@v7.0.0 with: repo-token: ${{ secrets.GITHUB_TOKEN }} - operations-per-run: 50 + operations-per-run: 500 exempt-all-milestones: true remove-stale-when-updated: true From 0fde16e426c1722d0aefa73851e5f34259ed0aec Mon Sep 17 00:00:00 2001 From: SmashedFrenzy16 <68993968+SmashedFrenzy16@users.noreply.github.com> Date: Thu, 9 Mar 2023 04:55:13 +0000 Subject: [PATCH 136/571] Update filename to README.md and improve formatting (#7855) --- readme.md => README.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) rename readme.md => README.md (97%) diff --git a/readme.md b/README.md similarity index 97% rename from readme.md rename to README.md index f90c959afd..7f528cdad3 100644 --- a/readme.md +++ b/README.md @@ -17,11 +17,11 @@ maximum memory efficiency. It allows you to directly access serialized data with **Go to our [landing page][] to browse our documentation.** ## Supported operating systems -* Windows -* macOS -* Linux -* Android -* And any others with a recent C++ compiler (C++ 11 and newer) +- Windows +- macOS +- Linux +- Android +- And any others with a recent C++ compiler (C++ 11 and newer) ## Supported programming languages From d4d355d883b31a6cacd5a28b08db7cff4ec30360 Mon Sep 17 00:00:00 2001 From: Ben Beasley Date: Thu, 9 Mar 2023 01:53:37 -0500 Subject: [PATCH 137/571] Fix help output for --java-checkerframework (#7854) --- src/flatc.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/flatc.cpp b/src/flatc.cpp index 31291a2544..1cdfc3c16a 100644 --- a/src/flatc.cpp +++ b/src/flatc.cpp @@ -117,7 +117,7 @@ const static FlatCOption flatc_options[] = { "Add Clang _Nullable for C++ pointer. or @Nullable for Java" }, { "", "java-package-prefix", "", "Add a prefix to the generated package name for Java." }, - { "", "java-checkerframe", "", "Add @Pure for Java." }, + { "", "java-checkerframework", "", "Add @Pure for Java." }, { "", "gen-generated", "", "Add @Generated annotation for Java." }, { "", "gen-jvmstatic", "", "Add @JvmStatic annotation for Kotlin methods in companion object for " From d3d7e2ef992ef1e711785d39080fc4f359267f36 Mon Sep 17 00:00:00 2001 From: Paulo Pinheiro Date: Wed, 15 Mar 2023 02:09:24 +0100 Subject: [PATCH 138/571] ToCamelCase() when kLowerCamel now converts first char to lower. (#7838) ToCamelCase(input, true) converts first char to upper case, but ToCamelCase(input, false) keeps the case of the first char. We are changing its behavior to force a lower case. Co-authored-by: Derek Bailey --- src/idl_gen_kotlin.cpp | 4 ++-- src/util.cpp | 13 ++++++++++--- tests/MyGame/Example/Any.kt | 2 +- tests/util_test.cpp | 6 +++--- 4 files changed, 16 insertions(+), 9 deletions(-) diff --git a/src/idl_gen_kotlin.cpp b/src/idl_gen_kotlin.cpp index 2f94b4ca21..4ca75e3d02 100644 --- a/src/idl_gen_kotlin.cpp +++ b/src/idl_gen_kotlin.cpp @@ -55,7 +55,7 @@ static Namer::Config KotlinDefaultConfig() { /*functions=*/Case::kKeep, /*fields=*/Case::kLowerCamel, /*variables=*/Case::kLowerCamel, - /*variants=*/Case::kLowerCamel, + /*variants=*/Case::kKeep, /*enum_variant_seperator=*/"", // I.e. Concatenate. /*escape_keywords=*/Namer::Config::Escape::BeforeConvertingCase, /*namespaces=*/Case::kKeep, @@ -301,7 +301,7 @@ class KotlinGenerator : public BaseGenerator { auto field_type = GenTypeBasic(enum_def.underlying_type.base_type); auto val = enum_def.ToString(ev); auto suffix = LiteralSuffix(enum_def.underlying_type.base_type); - writer.SetValue("name", namer_.LegacyKotlinVariant(ev)); + writer.SetValue("name", namer_.Variant(ev.name)); writer.SetValue("type", field_type); writer.SetValue("val", val + suffix); GenerateComment(ev.doc_comment, writer, &comment_config); diff --git a/src/util.cpp b/src/util.cpp index aabc23aa40..38d8536c09 100644 --- a/src/util.cpp +++ b/src/util.cpp @@ -86,11 +86,18 @@ static bool LoadFileRaw(const char *name, bool binary, std::string *buf) { LoadFileFunction g_load_file_function = LoadFileRaw; FileExistsFunction g_file_exists_function = FileExistsRaw; -static std::string ToCamelCase(const std::string &input, bool first) { +static std::string ToCamelCase(const std::string &input, bool is_upper) { std::string s; for (size_t i = 0; i < input.length(); i++) { - if (!i && first) - s += CharToUpper(input[i]); + if (!i && input[i] == '_') { + s += input[i]; + // we ignore leading underscore but make following + // alphabet char upper. + if (i + 1 < input.length() && is_alpha(input[i + 1])) + s += CharToUpper(input[++i]); + } + else if (!i) + s += is_upper ? CharToUpper(input[i]) : CharToLower(input[i]); else if (input[i] == '_' && i + 1 < input.length()) s += CharToUpper(input[++i]); else diff --git a/tests/MyGame/Example/Any.kt b/tests/MyGame/Example/Any.kt index 8818c3903f..8b900723a5 100644 --- a/tests/MyGame/Example/Any.kt +++ b/tests/MyGame/Example/Any.kt @@ -9,7 +9,7 @@ class Any_ private constructor() { const val NONE: UByte = 0u const val Monster: UByte = 1u const val TestSimpleTableWithEnum: UByte = 2u - const val MyGameExample2Monster: UByte = 3u + const val MyGame_Example2_Monster: UByte = 3u val names : Array = arrayOf("NONE", "Monster", "TestSimpleTableWithEnum", "MyGame_Example2_Monster") fun name(e: Int) : String = names[e] } diff --git a/tests/util_test.cpp b/tests/util_test.cpp index f2821a40ce..924855d0c4 100644 --- a/tests/util_test.cpp +++ b/tests/util_test.cpp @@ -92,14 +92,14 @@ void UtilConvertCase() { // missing. cases.push_back({ "single", flatbuffers::Case::kUpperCamel, "Single" }); cases.push_back({ "Single", flatbuffers::Case::kUpperCamel, "Single" }); - cases.push_back({ "_leading", flatbuffers::Case::kUpperCamel, "_leading" }); + cases.push_back({ "_leading", flatbuffers::Case::kUpperCamel, "_Leading" }); cases.push_back( { "trailing_", flatbuffers::Case::kUpperCamel, "Trailing_" }); cases.push_back({ "double__underscore", flatbuffers::Case::kUpperCamel, "Double_underscore" }); cases.push_back({ "single", flatbuffers::Case::kLowerCamel, "single" }); - cases.push_back({ "Single", flatbuffers::Case::kLowerCamel, "Single" }); - cases.push_back({ "_leading", flatbuffers::Case::kLowerCamel, "Leading" }); + cases.push_back({ "Single", flatbuffers::Case::kLowerCamel, "single" }); + cases.push_back({ "_leading", flatbuffers::Case::kLowerCamel, "_Leading" }); cases.push_back( { "trailing_", flatbuffers::Case::kLowerCamel, "trailing_" }); cases.push_back({ "double__underscore", flatbuffers::Case::kLowerCamel, From 3cb27fa24130df43e39d3fcc7def2177ae0d6d3a Mon Sep 17 00:00:00 2001 From: SmashedFrenzy16 <68993968+SmashedFrenzy16@users.noreply.github.com> Date: Wed, 15 Mar 2023 01:14:05 +0000 Subject: [PATCH 139/571] Adding comment for code clarification (#7856) Co-authored-by: Derek Bailey --- dart/test/monster_test.fbs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/dart/test/monster_test.fbs b/dart/test/monster_test.fbs index b40ecf58f9..8a124f25ac 100644 --- a/dart/test/monster_test.fbs +++ b/dart/test/monster_test.fbs @@ -59,6 +59,8 @@ struct Vec3 (force_align: 8) { test3:Test; } +// Stats for monster + struct Ability { id:uint(key); distance:uint; From 9a7fb4d68a1fb73a005ee01a57d434caa25a3117 Mon Sep 17 00:00:00 2001 From: Jeffrey Smith Date: Thu, 16 Mar 2023 00:29:57 +0000 Subject: [PATCH 140/571] made changes to the rust docs so they would compile. new_with_capacity is deprecated should use with_capacity, get_root_as_monster should be root_as_monster (#7871) --- docs/source/Tutorial.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/source/Tutorial.md b/docs/source/Tutorial.md index 752b3e23c0..70196fd29c 100644 --- a/docs/source/Tutorial.md +++ b/docs/source/Tutorial.md @@ -529,7 +529,7 @@ The first step is to import/include the library, generated files, etc. #[allow(dead_code, unused_imports)] #[path = "./monster_generated.rs"] mod monster_generated; - pub use monster_generated::my_game::sample::{get_root_as_monster, + pub use monster_generated::my_game::sample::{root_as_monster, Color, Equipment, Monster, MonsterArgs, Vec3, @@ -652,7 +652,7 @@ which will grow automatically if needed: ~~~{.rs} // Build up a serialized buffer algorithmically. // Initialize it with a capacity of 1024 bytes. - let mut builder = flatbuffers::FlatBufferBuilder::new_with_capacity(1024); + let mut builder = flatbuffers::FlatBufferBuilder::with_capacity(1024); ~~~
@@ -2309,7 +2309,7 @@ import './monster_my_game.sample_generated.dart' as myGame; #[allow(dead_code, unused_imports)] #[path = "./monster_generated.rs"] mod monster_generated; - pub use monster_generated::my_game::sample::{get_root_as_monster, + pub use monster_generated::my_game::sample::{root_as_monster, Color, Equipment, Monster, MonsterArgs, Vec3, @@ -2465,7 +2465,7 @@ myGame.Monster monster = new myGame.Monster(data); let buf = /* the data you just read, in a &[u8] */ // Get an accessor to the root object inside the buffer. - let monster = get_root_as_monster(buf); + let monster = root_as_monster(buf).unwrap(); ~~~
From 50cdf92e1ef4182f9e6174eebd3d930221617613 Mon Sep 17 00:00:00 2001 From: Derek Bailey Date: Wed, 15 Mar 2023 23:58:26 -0700 Subject: [PATCH 141/571] Add `flatbuffers-64` branch to CI for pushes --- .github/workflows/build.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 159c3647f6..90c6cfe508 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -9,6 +9,7 @@ on: - "*" # new tag version, like `0.8.4` or else branches: - master + - flatbuffers-64 pull_request: branches: - master From 1cb1c4baeeedfe3bc90d8c4110c889dd17af5ca7 Mon Sep 17 00:00:00 2001 From: phenixxy Date: Fri, 24 Mar 2023 11:15:34 +0800 Subject: [PATCH 142/571] fix using null string in vector (#7872) Use 0 offset as special value. 0 offset is not a valid relative offset, so it's safe to use 0 offset to indicate value is null. https://github.com/google/flatbuffers/issues/7846 --- net/FlatBuffers/FlatBufferBuilder.cs | 3 ++- net/FlatBuffers/Table.cs | 6 +++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/net/FlatBuffers/FlatBufferBuilder.cs b/net/FlatBuffers/FlatBufferBuilder.cs index e550f90f83..e08db847be 100644 --- a/net/FlatBuffers/FlatBufferBuilder.cs +++ b/net/FlatBuffers/FlatBufferBuilder.cs @@ -438,7 +438,8 @@ public void AddOffset(int off) if (off > Offset) throw new ArgumentException(); - off = Offset - off + sizeof(int); + if (off != 0) + off = Offset - off + sizeof(int); PutInt(off); } diff --git a/net/FlatBuffers/Table.cs b/net/FlatBuffers/Table.cs index 21ef7dc8b8..2aaa86e99b 100644 --- a/net/FlatBuffers/Table.cs +++ b/net/FlatBuffers/Table.cs @@ -65,7 +65,11 @@ public static int __indirect(int offset, ByteBuffer bb) // Create a .NET String from UTF-8 data stored inside the flatbuffer. public string __string(int offset) { - offset += bb.GetInt(offset); + int stringOffset = bb.GetInt(offset); + if (stringOffset == 0) + return null; + + offset += stringOffset; var len = bb.GetInt(offset); var startPos = offset + sizeof(int); return bb.GetStringUTF8(startPos, len); From 477b1b5d1349a2f869e401bee61f50200ccf4c70 Mon Sep 17 00:00:00 2001 From: blindspotbounty <127803250+blindspotbounty@users.noreply.github.com> Date: Sun, 26 Mar 2023 19:45:48 -0400 Subject: [PATCH 143/571] use Bool for flatbuffers bool instead of Byte (#7876) Add test for Bool type in swift Co-authored-by: mustiikhalil <26250654+mustiikhalil@users.noreply.github.com> --- src/idl_gen_swift.cpp | 6 +++--- .../FlatBuffersMonsterWriterTests.swift | 4 ++++ .../monster_test_generated.swift | 4 ++-- .../monster_test_generated.swift | 4 ++-- .../optional_scalars_generated.swift | 6 +++--- 5 files changed, 14 insertions(+), 10 deletions(-) diff --git a/src/idl_gen_swift.cpp b/src/idl_gen_swift.cpp index 6afa069ea3..8257c0c12f 100644 --- a/src/idl_gen_swift.cpp +++ b/src/idl_gen_swift.cpp @@ -725,9 +725,9 @@ class SwiftGenerator : public BaseGenerator { code_.SetValue("CONSTANT", default_value); code_.SetValue("VALUETYPE", "Bool"); code_ += GenReaderMainBody(optional) + "\\"; - code_.SetValue("VALUETYPE", "Byte"); - code_ += GenOffset() + "return o == 0 ? {{CONSTANT}} : 0 != " + - GenReader("VALUETYPE", "o") + " }"; + code_ += GenOffset() + + "return o == 0 ? {{CONSTANT}} : " + GenReader("VALUETYPE", "o") + + " }"; if (parser_.opts.mutable_buffer) code_ += GenMutate("o", GenOffset()); return; } diff --git a/tests/swift/Wasm.tests/Tests/FlatBuffers.Test.Swift.WasmTests/FlatBuffersMonsterWriterTests.swift b/tests/swift/Wasm.tests/Tests/FlatBuffers.Test.Swift.WasmTests/FlatBuffersMonsterWriterTests.swift index adc918a5d9..b00094e2ab 100644 --- a/tests/swift/Wasm.tests/Tests/FlatBuffers.Test.Swift.WasmTests/FlatBuffersMonsterWriterTests.swift +++ b/tests/swift/Wasm.tests/Tests/FlatBuffers.Test.Swift.WasmTests/FlatBuffersMonsterWriterTests.swift @@ -217,6 +217,10 @@ class FlatBuffersMonsterWriterTests: XCTestCase { XCTAssertEqual(monster.testType, .monster) + XCTAssertTrue(monster.mutate(testbool: false)) + XCTAssertEqual(monster.testbool, false) + XCTAssertTrue(monster.mutate(testbool: true)) + XCTAssertEqual(monster.mutate(inventory: 1, at: 0), true) XCTAssertEqual(monster.mutate(inventory: 2, at: 1), true) XCTAssertEqual(monster.mutate(inventory: 3, at: 2), true) diff --git a/tests/swift/Wasm.tests/Tests/FlatBuffers.Test.Swift.WasmTests/monster_test_generated.swift b/tests/swift/Wasm.tests/Tests/FlatBuffers.Test.Swift.WasmTests/monster_test_generated.swift index b11c142d78..a295a07b84 100644 --- a/tests/swift/Wasm.tests/Tests/FlatBuffers.Test.Swift.WasmTests/monster_test_generated.swift +++ b/tests/swift/Wasm.tests/Tests/FlatBuffers.Test.Swift.WasmTests/monster_test_generated.swift @@ -1221,8 +1221,8 @@ public struct MyGame_Example_Monster: FlatBufferObject, Verifiable, ObjectAPIPac public var testnestedflatbuffer: [UInt8] { return _accessor.getVector(at: VTOFFSET.testnestedflatbuffer.v) ?? [] } public func mutate(testnestedflatbuffer: UInt8, at index: Int32) -> Bool { let o = _accessor.offset(VTOFFSET.testnestedflatbuffer.v); return _accessor.directMutate(testnestedflatbuffer, index: _accessor.vector(at: o) + index * 1) } public var testempty: MyGame_Example_Stat? { let o = _accessor.offset(VTOFFSET.testempty.v); return o == 0 ? nil : MyGame_Example_Stat(_accessor.bb, o: _accessor.indirect(o + _accessor.postion)) } - public var testbool: Bool { let o = _accessor.offset(VTOFFSET.testbool.v); return o == 0 ? false : 0 != _accessor.readBuffer(of: Byte.self, at: o) } - @discardableResult public func mutate(testbool: Byte) -> Bool {let o = _accessor.offset(VTOFFSET.testbool.v); return _accessor.mutate(testbool, index: o) } + public var testbool: Bool { let o = _accessor.offset(VTOFFSET.testbool.v); return o == 0 ? false : _accessor.readBuffer(of: Bool.self, at: o) } + @discardableResult public func mutate(testbool: Bool) -> Bool {let o = _accessor.offset(VTOFFSET.testbool.v); return _accessor.mutate(testbool, index: o) } public var testhashs32Fnv1: Int32 { let o = _accessor.offset(VTOFFSET.testhashs32Fnv1.v); return o == 0 ? 0 : _accessor.readBuffer(of: Int32.self, at: o) } @discardableResult public func mutate(testhashs32Fnv1: Int32) -> Bool {let o = _accessor.offset(VTOFFSET.testhashs32Fnv1.v); return _accessor.mutate(testhashs32Fnv1, index: o) } public var testhashu32Fnv1: UInt32 { let o = _accessor.offset(VTOFFSET.testhashu32Fnv1.v); return o == 0 ? 0 : _accessor.readBuffer(of: UInt32.self, at: o) } diff --git a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/monster_test_generated.swift b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/monster_test_generated.swift index b11c142d78..a295a07b84 100644 --- a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/monster_test_generated.swift +++ b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/monster_test_generated.swift @@ -1221,8 +1221,8 @@ public struct MyGame_Example_Monster: FlatBufferObject, Verifiable, ObjectAPIPac public var testnestedflatbuffer: [UInt8] { return _accessor.getVector(at: VTOFFSET.testnestedflatbuffer.v) ?? [] } public func mutate(testnestedflatbuffer: UInt8, at index: Int32) -> Bool { let o = _accessor.offset(VTOFFSET.testnestedflatbuffer.v); return _accessor.directMutate(testnestedflatbuffer, index: _accessor.vector(at: o) + index * 1) } public var testempty: MyGame_Example_Stat? { let o = _accessor.offset(VTOFFSET.testempty.v); return o == 0 ? nil : MyGame_Example_Stat(_accessor.bb, o: _accessor.indirect(o + _accessor.postion)) } - public var testbool: Bool { let o = _accessor.offset(VTOFFSET.testbool.v); return o == 0 ? false : 0 != _accessor.readBuffer(of: Byte.self, at: o) } - @discardableResult public func mutate(testbool: Byte) -> Bool {let o = _accessor.offset(VTOFFSET.testbool.v); return _accessor.mutate(testbool, index: o) } + public var testbool: Bool { let o = _accessor.offset(VTOFFSET.testbool.v); return o == 0 ? false : _accessor.readBuffer(of: Bool.self, at: o) } + @discardableResult public func mutate(testbool: Bool) -> Bool {let o = _accessor.offset(VTOFFSET.testbool.v); return _accessor.mutate(testbool, index: o) } public var testhashs32Fnv1: Int32 { let o = _accessor.offset(VTOFFSET.testhashs32Fnv1.v); return o == 0 ? 0 : _accessor.readBuffer(of: Int32.self, at: o) } @discardableResult public func mutate(testhashs32Fnv1: Int32) -> Bool {let o = _accessor.offset(VTOFFSET.testhashs32Fnv1.v); return _accessor.mutate(testhashs32Fnv1, index: o) } public var testhashu32Fnv1: UInt32 { let o = _accessor.offset(VTOFFSET.testhashu32Fnv1.v); return o == 0 ? 0 : _accessor.readBuffer(of: UInt32.self, at: o) } diff --git a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/optional_scalars_generated.swift b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/optional_scalars_generated.swift index 74585a1704..8758b1ef3d 100644 --- a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/optional_scalars_generated.swift +++ b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/optional_scalars_generated.swift @@ -109,9 +109,9 @@ public struct optional_scalars_ScalarStuff: FlatBufferObject, Verifiable { public var justF64: Double { let o = _accessor.offset(VTOFFSET.justF64.v); return o == 0 ? 0.0 : _accessor.readBuffer(of: Double.self, at: o) } public var maybeF64: Double? { let o = _accessor.offset(VTOFFSET.maybeF64.v); return o == 0 ? nil : _accessor.readBuffer(of: Double.self, at: o) } public var defaultF64: Double { let o = _accessor.offset(VTOFFSET.defaultF64.v); return o == 0 ? 42.0 : _accessor.readBuffer(of: Double.self, at: o) } - public var justBool: Bool { let o = _accessor.offset(VTOFFSET.justBool.v); return o == 0 ? false : 0 != _accessor.readBuffer(of: Byte.self, at: o) } - public var maybeBool: Bool? { let o = _accessor.offset(VTOFFSET.maybeBool.v); return o == 0 ? nil : 0 != _accessor.readBuffer(of: Byte.self, at: o) } - public var defaultBool: Bool { let o = _accessor.offset(VTOFFSET.defaultBool.v); return o == 0 ? true : 0 != _accessor.readBuffer(of: Byte.self, at: o) } + public var justBool: Bool { let o = _accessor.offset(VTOFFSET.justBool.v); return o == 0 ? false : _accessor.readBuffer(of: Bool.self, at: o) } + public var maybeBool: Bool? { let o = _accessor.offset(VTOFFSET.maybeBool.v); return o == 0 ? nil : _accessor.readBuffer(of: Bool.self, at: o) } + public var defaultBool: Bool { let o = _accessor.offset(VTOFFSET.defaultBool.v); return o == 0 ? true : _accessor.readBuffer(of: Bool.self, at: o) } public var justEnum: optional_scalars_OptionalByte { let o = _accessor.offset(VTOFFSET.justEnum.v); return o == 0 ? .none_ : optional_scalars_OptionalByte(rawValue: _accessor.readBuffer(of: Int8.self, at: o)) ?? .none_ } public var maybeEnum: optional_scalars_OptionalByte? { let o = _accessor.offset(VTOFFSET.maybeEnum.v); return o == 0 ? nil : optional_scalars_OptionalByte(rawValue: _accessor.readBuffer(of: Int8.self, at: o)) ?? nil } public var defaultEnum: optional_scalars_OptionalByte { let o = _accessor.offset(VTOFFSET.defaultEnum.v); return o == 0 ? .one : optional_scalars_OptionalByte(rawValue: _accessor.readBuffer(of: Int8.self, at: o)) ?? .one } From 88dd92de4055583062aa40861324fba55891bed8 Mon Sep 17 00:00:00 2001 From: Michael Le Date: Wed, 29 Mar 2023 10:50:54 -0700 Subject: [PATCH 144/571] Update go documentation link to point to root module (#7879) Co-authored-by: Derek Bailey --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 7f528cdad3..e46f0b35af 100644 --- a/README.md +++ b/README.md @@ -31,7 +31,7 @@ Code generation and runtime libraries for many popular languages. 1. C++ - [snapcraft.io](https://snapcraft.io/flatbuffers) 1. C# - [nuget.org](https://www.nuget.org/packages/Google.FlatBuffers) 1. Dart - [pub.dev](https://pub.dev/packages/flat_buffers) -1. Go - [go.dev](https://pkg.go.dev/github.com/google/flatbuffers/go) +1. Go - [go.dev](https://pkg.go.dev/github.com/google/flatbuffers) 1. Java - [Maven](https://search.maven.org/artifact/com.google.flatbuffers/flatbuffers-java) 1. JavaScript - [NPM](https://www.npmjs.com/package/flatbuffers) 1. Kotlin From 2803983c708ff6f4861c324597fd8e5f74660f67 Mon Sep 17 00:00:00 2001 From: Daniel Frederick Crisman Date: Thu, 30 Mar 2023 16:32:16 -0400 Subject: [PATCH 145/571] README.md: PyPI case typo (#7880) PyPI has three capital letters. See the front page of the service: https://pypi.org/ "The Python Package Index (PyPI) ..." Update the Python link under "Supported programming languages" Co-authored-by: Michael Le --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index e46f0b35af..1fb2fe0c66 100644 --- a/README.md +++ b/README.md @@ -38,7 +38,7 @@ Code generation and runtime libraries for many popular languages. 1. Lobster 1. Lua 1. PHP -1. Python - [PyPi](https://pypi.org/project/flatbuffers/) +1. Python - [PyPI](https://pypi.org/project/flatbuffers/) 1. Rust - [crates.io](https://crates.io/crates/flatbuffers) 1. Swift - [swiftpackageindex](https://swiftpackageindex.com/google/flatbuffers) 1. TypeScript - [NPM](https://www.npmjs.com/package/flatbuffers) From 876a64aae138be5d9eb9245348719a18161d8e09 Mon Sep 17 00:00:00 2001 From: tira-misu Date: Thu, 6 Apr 2023 00:29:14 +0200 Subject: [PATCH 146/571] [CS] Verifier (#7850) * Fix C/C++ CreateDirect with sorted vectors If a struct has a key the vector has to be sorted. To sort the vector you can't use "const". * Changes due to code review * Improve code readability * Add generate of JSON schema to string to lib * option indent_step is supported * Remove unused variables * Fix break in test * Fix style to be consistent with rest of the code * [TS] Fix reserved words as arguments (#6955) * [TS] Fix generation of reserved words in object api (#7106) * [TS] Fix generation of object api * [TS] Fix MakeCamel -> ConvertCase * [C#] Fix collision of field name and type name * [TS] Add test for struct of struct of struct * Update generated files * Add missing files * [TS] Fix query of null/undefined fields in object api * Add .Net verfier * Add some fuzz tests for .Net * Remove additional files * Fix .net test * Changes due to PR * Fix generated files --------- Co-authored-by: Derek Bailey --- docs/source/CsharpUsage.md | 41 + docs/source/doxyfile | 3 +- net/FlatBuffers/FlatBufferVerify.cs | 822 ++++++++++++++++++ net/FlatBuffers/FlatBuffers.net35.csproj | 2 +- src/idl_gen_csharp.cpp | 244 ++++++ .../FlatBuffers.Core.Test.csproj | 3 + .../FlatBuffersExampleTests.cs | 5 +- .../FlatBuffers.Test/FlatBuffersFuzzTests.cs | 253 +++++- tests/KeywordTest/KeywordsInTable.cs | 13 + tests/KeywordTest/KeywordsInUnion.cs | 22 + tests/KeywordTest/Table2.cs | 11 + tests/MyGame/Example/Any.cs | 25 + tests/MyGame/Example/AnyAmbiguousAliases.cs | 25 + tests/MyGame/Example/AnyUniqueAliases.cs | 25 + tests/MyGame/Example/ArrayTable.cs | 11 + tests/MyGame/Example/Monster.cs | 71 ++ tests/MyGame/Example/Referrable.cs | 10 + tests/MyGame/Example/Stat.cs | 12 + .../MyGame/Example/TestSimpleTableWithEnum.cs | 10 + tests/MyGame/Example/TypeAliases.cs | 21 + tests/MyGame/Example2/Monster.cs | 9 + tests/MyGame/InParentNamespace.cs | 9 + tests/MyGame/MonsterExtra.cs | 20 + .../NamespaceA/NamespaceB/TableInNestedNS.cs | 10 + .../NamespaceA/NamespaceB/UnionInNestedNS.cs | 19 + .../NamespaceA/SecondTableInA.cs | 10 + .../NamespaceA/TableInFirstNS.cs | 14 + tests/namespace_test/NamespaceC/TableInC.cs | 11 + .../nested_namespace_test3_generated.cs | 10 + tests/optional_scalars/ScalarStuff.cs | 46 + tests/type_field_collsion/Collision.cs | 11 + .../union_value_collision_generated.cs | 74 ++ tests/union_vector/Attacker.cs | 10 + tests/union_vector/Character.cs | 34 + tests/union_vector/Gadget.cs | 22 + tests/union_vector/HandFan.cs | 10 + tests/union_vector/Movie.cs | 13 + 37 files changed, 1952 insertions(+), 9 deletions(-) create mode 100644 net/FlatBuffers/FlatBufferVerify.cs diff --git a/docs/source/CsharpUsage.md b/docs/source/CsharpUsage.md index da36fa8b51..b0acc77d86 100644 --- a/docs/source/CsharpUsage.md +++ b/docs/source/CsharpUsage.md @@ -142,6 +142,47 @@ To use it: `ByKey` only works if the vector has been sorted, it will likely not find elements if it hasn't been sorted. +## Buffer verification + +As mentioned in [C++ Usage](@ref flatbuffers_guide_use_cpp) buffer +accessor functions do not verify buffer offsets at run-time. +If it is necessary, you can optionally use a buffer verifier before you +access the data. This verifier will check all offsets, all sizes of +fields, and null termination of strings to ensure that when a buffer +is accessed, all reads will end up inside the buffer. + +Each root type will have a verification function generated for it, +e.g. `Monster.VerifyMonster`. This can be called as shown: +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cs} + var ok = Monster.VerifyMonster(buf); +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +if `ok` is true, the buffer is safe to read. + +For a more detailed control of verification `MonsterVerify.Verify` +for `Monster` type can be used: +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cs} + # Sequence of calls + FlatBuffers.Verifier verifier = new FlatBuffers.Verifier(buf); + var ok = verifier.VerifyBuffer("MONS", false, MonsterVerify.Verify); + + # Or single line call + var ok = new FlatBuffers.Verifier(bb).setStringCheck(true).\ + VerifyBuffer("MONS", false, MonsterVerify.Verify); + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +if `ok` is true, the buffer is safe to read. + +A second parameter of `verifyBuffer` specifies whether buffer content is +size prefixed or not. In the example above, the buffer is assumed to not include +size prefix (`false`). + +Verifier supports options that can be set using appropriate fluent methods: +* SetMaxDepth - limit the nesting depth. Default: 1000000 +* SetMaxTables - total amount of tables the verifier may encounter. Default: 64 +* SetAlignmentCheck - check content alignment. Default: True +* SetStringCheck - check if strings contain termination '0' character. Default: true + + ## Text parsing There currently is no support for parsing text (Schema's and JSON) directly diff --git a/docs/source/doxyfile b/docs/source/doxyfile index 8cf9000da3..9541aaff7f 100644 --- a/docs/source/doxyfile +++ b/docs/source/doxyfile @@ -779,7 +779,8 @@ INPUT = "FlatBuffers.md" \ "../../python/flatbuffers/builder.py" \ "../../js/flatbuffers.js" \ "../../php/FlatbufferBuilder.php" \ - "../../net/FlatBuffers/FlatBufferBuilder.cs" \ + "../../net/FlatBuffers/FlatBufferBuilder.cs" + "../../net/FlatBuffers/FlatBufferVerify.cs" \ "../../include/flatbuffers/flatbuffers.h" \ "../../go/builder.go" \ "../../rust/flatbuffers/src/builder.rs" diff --git a/net/FlatBuffers/FlatBufferVerify.cs b/net/FlatBuffers/FlatBufferVerify.cs new file mode 100644 index 0000000000..15064e8a50 --- /dev/null +++ b/net/FlatBuffers/FlatBufferVerify.cs @@ -0,0 +1,822 @@ +/* + * Copyright 2014 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. + */ +using System; +using System.Reflection;using System.Collections.Generic; +using System.IO; + +namespace Google.FlatBuffers +{ + + /// + /// The Class of the Verifier Options + /// + public class Options + { + public const int DEFAULT_MAX_DEPTH = 64; + public const int DEFAULT_MAX_TABLES = 1000000; + + private int max_depth = 0; + private int max_tables = 0; + private bool string_end_check = false; + private bool alignment_check = false; + + public Options() + { + max_depth = DEFAULT_MAX_DEPTH; + max_tables = DEFAULT_MAX_TABLES; + string_end_check = true; + alignment_check = true; + } + + public Options(int maxDepth, int maxTables, bool stringEndCheck, bool alignmentCheck) + { + max_depth = maxDepth; + max_tables = maxTables; + string_end_check = stringEndCheck; + alignment_check = alignmentCheck; + } + /// Maximum depth of nested tables allowed in a valid flatbuffer. + public int maxDepth + { + get { return max_depth; } + set { max_depth = value; } + } + /// Maximum number of tables allowed in a valid flatbuffer. + public int maxTables + { + get { return max_tables; } + set { max_tables = value; } + } + /// Check that string contains its null terminator + public bool stringEndCheck + { + get { return string_end_check; } + set { string_end_check = value; } + } + /// Check alignment of elements + public bool alignmentCheck + { + get { return alignment_check; } + set { alignment_check = value; } + } + } + + public struct checkElementStruct + { + public bool elementValid; + public uint elementOffset; + } + + public delegate bool VerifyTableAction(Verifier verifier, uint tablePos); + public delegate bool VerifyUnionAction(Verifier verifier, byte typeId, uint tablePos); + + /// + /// The Main Class of the FlatBuffer Verifier + /// + public class Verifier + { + private ByteBuffer verifier_buffer = null; + private Options verifier_options = null; + private int depth_cnt = 0; + private int num_tables_cnt = 0; + + public const int SIZE_BYTE = 1; + public const int SIZE_INT = 4; + public const int SIZE_U_OFFSET = 4; + public const int SIZE_S_OFFSET = 4; + public const int SIZE_V_OFFSET = 2; + public const int SIZE_PREFIX_LENGTH = FlatBufferConstants.SizePrefixLength; // default size = 4 + public const int FLATBUFFERS_MAX_BUFFER_SIZE = System.Int32.MaxValue; // default size = 2147483647 + public const int FILE_IDENTIFIER_LENGTH = FlatBufferConstants.FileIdentifierLength; // default size = 4 + + /// The Base Constructor of the Verifier object + public Verifier() + { + // Verifier buffer + verifier_buffer = null; + // Verifier settings + verifier_options = null; + // Depth counter + depth_cnt = 0; + // Tables counter + num_tables_cnt = 0; + } + + /// The Constructor of the Verifier object with input parameters: ByteBuffer and/or Options + /// Input flat byte buffer defined as ByteBuffer type + /// Options object with settings for the coniguration the Verifier + public Verifier(ByteBuffer buf, Options options = null) + { + verifier_buffer = buf; + verifier_options = options ?? new Options(); + depth_cnt = 0; + num_tables_cnt = 0; + } + + /// Bytes Buffer for Verify + public ByteBuffer Buf + { + get { return verifier_buffer; } + set { verifier_buffer = value; } + } + /// Options of the Verifier + public Options options + { + get { return verifier_options; } + set { verifier_options = value; } + } + /// Counter of tables depth in a tested flatbuffer + public int depth + { + get { return depth_cnt; } + set { depth_cnt = value; } + } + /// Counter of tables in a tested flatbuffer + public int numTables + { + get { return num_tables_cnt; } + set { num_tables_cnt = value; } + } + + + /// Method set maximum tables depth of valid structure + /// Specify Value of the maximum depth of the structure + public Verifier SetMaxDepth(int value) + { + verifier_options.maxDepth = value; + return this; + } + /// Specify maximum number of tables in structure + /// Specify Value of the maximum number of the tables in the structure + public Verifier SetMaxTables(int value) + { + verifier_options.maxTables = value; + return this; + } + /// Enable/disable buffer content alignment check + /// Value of the State for buffer content alignment check (Enable = true) + public Verifier SetAlignmentCheck(bool value) + { + verifier_options.alignmentCheck = value; + return this; + } + /// Enable/disable checking of string termination '0' character + /// Value of the option for string termination '0' character check (Enable = true) + public Verifier SetStringCheck(bool value) + { + verifier_options.stringEndCheck = value; + return this; + } + + /// Check if there is identifier in buffer + /// Input flat byte buffer defined as ByteBuffer type + /// Start position of data in the Byte Buffer + /// Identifier for the Byte Buffer + /// Return True when the Byte Buffer Identifier is present + private bool BufferHasIdentifier(ByteBuffer buf, uint startPos, string identifier) + { + if (identifier.Length != FILE_IDENTIFIER_LENGTH) + { + throw new ArgumentException("FlatBuffers: file identifier must be length" + Convert.ToString(FILE_IDENTIFIER_LENGTH)); + } + for (int i = 0; i < FILE_IDENTIFIER_LENGTH; i++) + { + if ((sbyte)identifier[i] != verifier_buffer.GetSbyte(Convert.ToInt32(SIZE_S_OFFSET + i + startPos))) + { + return false; + } + } + + return true; + } + + /// Get UOffsetT from buffer at given position - it must be verified before read + /// Input flat byte buffer defined as ByteBuffer type + /// Position of data in the Byte Buffer + /// Return the UOffset Value (Unsigned Integer type - 4 bytes) in pos + private uint ReadUOffsetT(ByteBuffer buf, uint pos) + { + return buf.GetUint(Convert.ToInt32(pos)); + } + /// Get SOffsetT from buffer at given position - it must be verified before read + /// Input flat byte buffer defined as ByteBuffer type + /// Position of data in the Byte Buffer + /// Return the SOffset Value (Signed Integer type - 4 bytes) in pos + private int ReadSOffsetT(ByteBuffer buf, int pos) + { + return buf.GetInt(pos); + } + /// Get VOffsetT from buffer at given position - it must be verified before read + /// Input flat byte buffer defined as ByteBuffer type + /// Position of data in the Byte Buffer + /// Return the VOffset Value (Short type - 2 bytes) in pos + private short ReadVOffsetT(ByteBuffer buf, int pos) + { + return buf.GetShort(pos); + } + + /// Get table data area relative offset from vtable. Result is relative to table start + /// Fields which are deprecated are ignored by checking against the vtable's length. + /// Position of data in the Byte Buffer + /// offset of value in the Table + /// Return the relative VOffset Value (Short type - 2 bytes) in calculated offset + private short GetVRelOffset(int pos, short vtableOffset) + { + short VOffset = 0; + // Used try/catch because pos typa as int 32bit + try + { + // First, get vtable offset + short vtable = Convert.ToInt16(pos - ReadSOffsetT(verifier_buffer, pos)); + // Check that offset points to vtable area (is smaller than vtable size) + if (vtableOffset < ReadVOffsetT(verifier_buffer, vtable)) + { + // Now, we can read offset value - TODO check this value against size of table data + VOffset = ReadVOffsetT(verifier_buffer, vtable + vtableOffset); + } + else + { + VOffset = 0; + } + } + catch (Exception e) + { + Console.WriteLine("Exception: {0}", e); + return VOffset; + } + return VOffset; + + } + /// Get table data area absolute offset from vtable. Result is the absolute buffer offset. + /// The result value offset cannot be '0' (pointing to itself) so after validation this method returnes '0' + /// value as a marker for missing optional entry + /// Table Position value in the Byte Buffer + /// offset value in the Table + /// Return the absolute UOffset Value + private uint GetVOffset(uint tablePos, short vtableOffset) + { + uint UOffset = 0; + // First, get vtable relative offset + short relPos = GetVRelOffset(Convert.ToInt32(tablePos), vtableOffset); + if (relPos != 0) + { + // Calculate offset based on table postion + UOffset = Convert.ToUInt32(tablePos + relPos); + } + else + { + UOffset = 0; + } + return UOffset; + } + + /// Check flatbuffer complexity (tables depth, elements counter and so on) + /// If complexity is too high function returns false as verification error + private bool CheckComplexity() + { + return ((depth <= options.maxDepth) && (numTables <= options.maxTables)); + } + + /// Check alignment of element. + /// Return True when alignment of the element is correct + private bool CheckAlignment(uint element, ulong align) + { + return (((element & (align - 1)) == 0) || (!options.alignmentCheck)); + } + + /// Check if element is valid in buffer area. + /// Value defines the offset/position to element + /// Size of element + /// Return True when Element is correct + private bool CheckElement(uint pos, ulong elementSize) + { + return ((elementSize < Convert.ToUInt64(verifier_buffer.Length)) && (pos <= (Convert.ToUInt32(verifier_buffer.Length) - elementSize))); + } + /// Check if element is a valid scalar. + /// Value defines the offset to scalar + /// Size of element + /// Return True when Scalar Element is correct + private bool CheckScalar(uint pos, ulong elementSize) + { + return ((CheckAlignment(pos, elementSize)) && (CheckElement(pos, elementSize))); + } + /// Check offset. It is a scalar with size of UOffsetT. + private bool CheckOffset(uint offset) + { + return (CheckScalar(offset, SIZE_U_OFFSET)); + } + + private checkElementStruct CheckVectorOrString(uint pos, ulong elementSize) + { + var result = new checkElementStruct + { + elementValid = false, + elementOffset = 0 + }; + + uint vectorPos = pos; + // Check we can read the vector/string size field (it is of uoffset size) + if (!CheckScalar(vectorPos, SIZE_U_OFFSET)) + { + // result.elementValid = false; result.elementOffset = 0; + return result; + } + // Check the whole array. If this is a string, the byte past the array + // must be 0. + uint size = ReadUOffsetT(verifier_buffer, vectorPos); + ulong max_elements = (FLATBUFFERS_MAX_BUFFER_SIZE / elementSize); + if (size >= max_elements) + { + // Protect against byte_size overflowing. + // result.elementValid = false; result.elementOffset = 0; + return result; + } + + uint bytes_size = SIZE_U_OFFSET + (Convert.ToUInt32(elementSize) * size); + uint buffer_end_pos = vectorPos + bytes_size; + result.elementValid = CheckElement(vectorPos, bytes_size); + result.elementOffset = buffer_end_pos; + return (result); + } + + /// Verify a string at given position. + private bool CheckString(uint pos) + { + var result = CheckVectorOrString(pos, SIZE_BYTE); + if (options.stringEndCheck) + { + result.elementValid = result.elementValid && CheckScalar(result.elementOffset, 1); // Must have terminator + result.elementValid = result.elementValid && (verifier_buffer.GetSbyte(Convert.ToInt32(result.elementOffset)) == 0); // Terminating byte must be 0. + } + return result.elementValid; + } + + /// Verify the vector of elements of given size + private bool CheckVector(uint pos, ulong elementSize) + { + var result = CheckVectorOrString(pos, elementSize); + return result.elementValid; + } + /// Verify table content using structure dependent generated function + private bool CheckTable(uint tablePos, VerifyTableAction verifyAction) + { + return verifyAction(this, tablePos); + } + + /// String check wrapper function to be used in vector of strings check + private bool CheckStringFunc(Verifier verifier, uint pos) + { + return verifier.CheckString(pos); + } + + /// Check vector of objects. Use generated object verification function + private bool CheckVectorOfObjects(uint pos, VerifyTableAction verifyAction) + { + if (!CheckVector(pos, SIZE_U_OFFSET)) + { + return false; + } + uint size = ReadUOffsetT(verifier_buffer, pos); + // Vector data starts just after vector size/length + uint vecStart = pos + SIZE_U_OFFSET; + uint vecOff = 0; + // Iterate offsets and verify referenced objects + for (uint i = 0; i < size; i++) + { + vecOff = vecStart + (i * SIZE_U_OFFSET); + if (!CheckIndirectOffset(vecOff)) + { + return false; + } + uint objOffset = GetIndirectOffset(vecOff); + if (!verifyAction(this, objOffset)) + { + return false; + } + } + return true; + } + + /// Check if the offset referenced by offsetPos is the valid offset pointing to buffer + // offsetPos - offset to offset data + private bool CheckIndirectOffset(uint pos) + { + // Check the input offset is valid + if(!CheckScalar(pos, SIZE_U_OFFSET)) + { + return false; + } + // Get indirect offset + uint offset = ReadUOffsetT(verifier_buffer, pos); + // May not point to itself neither wrap around (buffers are max 2GB) + if ((offset == 0) || (offset >= FLATBUFFERS_MAX_BUFFER_SIZE)) + { + return false; + } + // Must be inside the buffer + return CheckElement(pos + offset, 1); + } + + /// Check flatbuffer content using generated object verification function + private bool CheckBufferFromStart(string identifier, uint startPos, VerifyTableAction verifyAction) + { + if ((identifier != null) && + (identifier.Length == 0) && + ((verifier_buffer.Length < (SIZE_U_OFFSET + FILE_IDENTIFIER_LENGTH)) || (!BufferHasIdentifier(verifier_buffer, startPos, identifier)))) + { + return false; + } + if(!CheckIndirectOffset(startPos)) + { + return false; + } + uint offset = GetIndirectOffset(startPos); + return CheckTable(offset, verifyAction); // && GetComputedSize() + } + + /// Get indirect offset. It is an offset referenced by offset Pos + private uint GetIndirectOffset(uint pos) + { + // Get indirect offset referenced by offsetPos + uint offset = pos + ReadUOffsetT(verifier_buffer, pos); + return offset; + } + + /// Verify beginning of table + /// Position in the Table + /// Return True when the verification of the beginning of the table is passed + // (this method is used internally by generated verification functions) + public bool VerifyTableStart(uint tablePos) + { + // Starting new table verification increases complexity of structure + depth_cnt++; + num_tables_cnt++; + + if (!CheckScalar(tablePos, SIZE_S_OFFSET)) + { + return false; + } + uint vtable = (uint)(tablePos - ReadSOffsetT(verifier_buffer, Convert.ToInt32(tablePos))); + return ((CheckComplexity()) && (CheckScalar(vtable, SIZE_V_OFFSET)) && (CheckAlignment(Convert.ToUInt32(ReadVOffsetT(verifier_buffer, Convert.ToInt32(vtable))), SIZE_V_OFFSET)) && (CheckElement(vtable, Convert.ToUInt64(ReadVOffsetT(verifier_buffer, Convert.ToInt32(vtable)))))); + } + + /// Verify end of table. In practice, this function does not check buffer but handles + /// verification statistics update + // (this method is used internally by generated verification functions) + public bool VerifyTableEnd(uint tablePos) + { + depth--; + return true; + } + + /// Verifiy static/inlined data area field + /// Position in the Table + /// Offset to the static/inlined data element + /// Size of the element + /// Alignment bool value + /// Required Value when the offset == 0 + /// Return True when the verification of the static/inlined data element is passed + // (this method is used internally by generated verification functions) + public bool VerifyField(uint tablePos, short offsetId, ulong elementSize, ulong align, bool required) + { + uint offset = GetVOffset(tablePos, offsetId); + if (offset != 0) + { + return ((CheckAlignment(offset, align)) && (CheckElement(offset, elementSize))); + } + return !required; // it is OK if field is not required + } + + /// Verify string + /// Position in the Table + /// Offset to the String element + /// Required Value when the offset == 0 + /// Return True when the verification of the String is passed + // (this method is used internally by generated verification functions) + public bool VerifyString(uint tablePos, short vOffset, bool required) + { + var offset = GetVOffset(tablePos, vOffset); + if (offset == 0) + { + return !required; + } + if (!CheckIndirectOffset(offset)) + { + return false; + } + var strOffset = GetIndirectOffset(offset); + return CheckString(strOffset); + } + + /// Verify vector of fixed size structures and scalars + /// Position in the Table + /// Offset to the Vector of Data + /// Size of the element + /// Required Value when the offset == 0 + /// Return True when the verification of the Vector of Data passed + // (this method is used internally by generated verification functions) + public bool VerifyVectorOfData(uint tablePos, short vOffset, ulong elementSize, bool required) + { + var offset = GetVOffset(tablePos, vOffset); + if (offset == 0) + { + return !required; + } + if (!CheckIndirectOffset(offset)) + { + return false; + } + var vecOffset = GetIndirectOffset(offset); + return CheckVector(vecOffset, elementSize); + } + + /// Verify array of strings + /// Position in the Table + /// Offset to the Vector of String + /// Required Value when the offset == 0 + /// Return True when the verification of the Vector of String passed + // (this method is used internally by generated verification functions) + public bool VerifyVectorOfStrings(uint tablePos, short offsetId, bool required) + { + var offset = GetVOffset(tablePos, offsetId); + if (offset == 0) + { + return !required; + } + if (!CheckIndirectOffset(offset)) + { + return false; + } + var vecOffset = GetIndirectOffset(offset); + return CheckVectorOfObjects(vecOffset, CheckStringFunc); + } + + /// Verify vector of tables (objects). Tables are verified using generated verifyObjFunc + /// Position in the Table + /// Offset to the Vector of Table + /// Method used to the verification Table + /// Required Value when the offset == 0 + /// Return True when the verification of the Vector of Table passed + // (this method is used internally by generated verification functions) + public bool VerifyVectorOfTables(uint tablePos, short offsetId, VerifyTableAction verifyAction, bool required) + { + var offset = GetVOffset(tablePos, offsetId); + if (offset == 0) + { + return !required; + } + if (!CheckIndirectOffset(offset)) + { + return false; + } + var vecOffset = GetIndirectOffset(offset); + return CheckVectorOfObjects(vecOffset, verifyAction); + } + + /// Verify table object using generated verification function. + /// Position in the Table + /// Offset to the Table + /// Method used to the verification Table + /// Required Value when the offset == 0 + /// Return True when the verification of the Table passed + // (this method is used internally by generated verification functions) + public bool VerifyTable(uint tablePos, short offsetId, VerifyTableAction verifyAction, bool required) + { + var offset = GetVOffset(tablePos, offsetId); + if (offset == 0) + { + return !required; + } + if (!CheckIndirectOffset(offset)) + { + return false; + } + var tabOffset = GetIndirectOffset(offset); + return CheckTable(tabOffset, verifyAction); + } + + /// Verify nested buffer object. When verifyObjFunc is provided, it is used to verify object structure. + /// Position in the Table + /// Offset to the Table + /// Method used to the verification Table + /// Required Value when the offset == 0 + // (this method is used internally by generated verification functions) + public bool VerifyNestedBuffer(uint tablePos, short offsetId, VerifyTableAction verifyAction, bool required) + { + var offset = GetVOffset(tablePos, offsetId); + if (offset == 0) + { + return !required; + } + uint vecOffset = GetIndirectOffset(offset); + if (!CheckVector(vecOffset, SIZE_BYTE)) + { + return false; + } + if (verifyAction != null) + { + var vecLength = ReadUOffsetT(verifier_buffer, vecOffset); + // Buffer begins after vector length + var vecStart = vecOffset + SIZE_U_OFFSET; + // Create and Copy nested buffer bytes from part of Verify Buffer + var nestedByteBuffer = new ByteBuffer(verifier_buffer.ToArray(Convert.ToInt32(vecStart), Convert.ToInt32(vecLength))); + var nestedVerifyier = new Verifier(nestedByteBuffer, options); + // There is no internal identifier - use empty one + if (!nestedVerifyier.CheckBufferFromStart("", 0, verifyAction)) + { + return false; + } + } + return true; + } + + /// Verifiy static/inlined data area at absolute offset + /// Position of static/inlined data area in the Byte Buffer + /// Size of the union data + /// Alignment bool value + /// Return True when the verification of the Union Data is passed + // (this method is used internally by generated verification functions) + public bool VerifyUnionData(uint pos, ulong elementSize, ulong align) + { + bool result = ((CheckAlignment(pos, align)) && (CheckElement(pos, elementSize))); + return result; + } + + /// Verify string referenced by absolute offset value + /// Position of Union String in the Byte Buffer + /// Return True when the verification of the Union String is passed + // (this method is used internally by generated verification functions) + public bool VerifyUnionString(uint pos) + { + bool result = CheckString(pos); + return result; + } + + /// Method verifies union object using generated verification function + /// Position in the Table + /// Offset in the Table + /// Offset to Element + /// Verification Method used for Union + /// Required Value when the offset == 0 + // (this method is used internally by generated verification functions) + public bool VerifyUnion(uint tablePos, short typeIdVOffset, short valueVOffset, VerifyUnionAction verifyAction, bool required) + { + // Check the union type index + var offset = GetVOffset(tablePos, typeIdVOffset); + if (offset == 0) + { + return !required; + } + if (!((CheckAlignment(offset, SIZE_BYTE)) && (CheckElement(offset, SIZE_BYTE)))) + { + return false; + } + // Check union data + offset = GetVOffset(tablePos, valueVOffset); + // Take type id + var typeId = verifier_buffer.Get(Convert.ToInt32(offset)); + if (offset == 0) + { + // When value data is not present, allow union verification function to deal with illegal offset + return verifyAction(this, typeId, Convert.ToUInt32(verifier_buffer.Length)); + } + if (!CheckIndirectOffset(offset)) + { + return false; + } + // Take value offset and validate union structure + uint unionOffset = GetIndirectOffset(offset); + return verifyAction(this, typeId, unionOffset); + } + + /// Verify vector of unions (objects). Unions are verified using generated verifyObjFunc + /// Position of the Table + /// Offset in the Table (Union type id) + /// Offset to vector of Data Stucture offset + /// Verification Method used for Union + /// Required Value when the offset == 0 + /// Return True when the verification of the Vector of Unions passed + // (this method is used internally by generated verification functions) + public bool VerifyVectorOfUnion(uint tablePos, short typeOffsetId, short offsetId, VerifyUnionAction verifyAction, bool required) + { + // type id offset must be valid + var offset = GetVOffset(tablePos, typeOffsetId); + if (offset == 0) + { + return !required; + } + if (!CheckIndirectOffset(offset)) + { + return false; + } + // Get type id table absolute offset + var typeIdVectorOffset = GetIndirectOffset(offset); + // values offset must be valid + offset = GetVOffset(tablePos, offsetId); + if (!CheckIndirectOffset(offset)) + { + return false; + } + var valueVectorOffset = GetIndirectOffset(offset); + // validate referenced vectors + if(!CheckVector(typeIdVectorOffset, SIZE_BYTE) || + !CheckVector(valueVectorOffset, SIZE_U_OFFSET)) + { + return false; + } + // Both vectors should have the same length + var typeIdVectorLength = ReadUOffsetT(verifier_buffer, typeIdVectorOffset); + var valueVectorLength = ReadUOffsetT(verifier_buffer, valueVectorOffset); + if (typeIdVectorLength != valueVectorLength) + { + return false; + } + // Verify each union from vectors + var typeIdStart = typeIdVectorOffset + SIZE_U_OFFSET; + var valueStart = valueVectorOffset + SIZE_U_OFFSET; + for (uint i = 0; i < typeIdVectorLength; i++) + { + // Get type id + byte typeId = verifier_buffer.Get(Convert.ToInt32(typeIdStart + i * SIZE_U_OFFSET)); + // get offset to vector item + uint off = valueStart + i * SIZE_U_OFFSET; + // Check the vector item has a proper offset + if (!CheckIndirectOffset(off)) + { + return false; + } + uint valueOffset = GetIndirectOffset(off); + // Verify object + if (!verifyAction(this, typeId, valueOffset)) + { + return false; + } + } + return true; + } + + // Method verifies flatbuffer data using generated Table verification function. + // The data buffer is already provided when creating [Verifier] object (see [NewVerifier]) + // + // - identifier - the expected identifier of buffer data. + // When empty identifier is provided the identifier validation is skipped. + // - sizePrefixed - this flag should be true when buffer is prefixed with content size + // - verifyObjFunc - function to be used for verification. This function is generated by compiler and included in each table definition file with name "Verify" + // + // Example: + // + // /* Verify Monster table. Ignore buffer name and assume buffer does not contain data length prefix */ + // isValid = verifier.verifyBuffer(bb, false, MonsterVerify) + // + // /* Verify Monster table. Buffer name is 'MONS' and contains data length prefix */ + // isValid = verifier.verifyBuffer("MONS", true, MonsterVerify) + /// Method verifies flatbuffer data using generated Table verification function + /// + /// The expected identifier of buffer data + /// Flag should be true when buffer is prefixed with content size + /// Function to be used for verification. This function is generated by compiler and included in each table definition file + /// Return True when verification of FlatBuffer passed + /// + /// Example 1. Verify Monster table. Ignore buffer name and assume buffer does not contain data length prefix + /// isValid = verifier.VerifyBuffer(bb, false, MonsterVerify) + /// Example 2. Verify Monster table. Buffer name is 'MONS' and contains data length prefix + /// isValid = verifier.VerifyBuffer("MONS", true, MonsterVerify) + /// + public bool VerifyBuffer(string identifier, bool sizePrefixed, VerifyTableAction verifyAction) + { + // Reset counters - starting verification from beginning + depth = 0; + numTables = 0; + + var start = (uint)(verifier_buffer.Position); + if (sizePrefixed) + { + start = (uint)(verifier_buffer.Position) + SIZE_PREFIX_LENGTH; + if(!CheckScalar((uint)(verifier_buffer.Position), SIZE_PREFIX_LENGTH)) + { + return false; + } + uint size = ReadUOffsetT(verifier_buffer, (uint)(verifier_buffer.Position)); + if (size != ((uint)(verifier_buffer.Length) - start)) + { + return false; + } + } + return CheckBufferFromStart(identifier, start, verifyAction); + } + } + +} diff --git a/net/FlatBuffers/FlatBuffers.net35.csproj b/net/FlatBuffers/FlatBuffers.net35.csproj index 574580e37c..9c64d006e3 100644 --- a/net/FlatBuffers/FlatBuffers.net35.csproj +++ b/net/FlatBuffers/FlatBuffers.net35.csproj @@ -40,9 +40,9 @@ + - diff --git a/src/idl_gen_csharp.cpp b/src/idl_gen_csharp.cpp index a2dc5611ef..8b1fafdf59 100644 --- a/src/idl_gen_csharp.cpp +++ b/src/idl_gen_csharp.cpp @@ -169,6 +169,7 @@ class CSharpGenerator : public BaseGenerator { if (!parser_.opts.one_file) cur_name_space_ = struct_def.defined_namespace; GenStruct(struct_def, &declcode, parser_.opts); + GenStructVerifier(struct_def, &declcode); if (parser_.opts.one_file) { one_file_code += declcode; } else { @@ -623,6 +624,173 @@ class CSharpGenerator : public BaseGenerator { ")"; } + // Get the value of a table verification function start + void GetStartOfTableVerifier(const StructDef &struct_def, std::string *code_ptr) { + std::string &code = *code_ptr; + code += "\n"; + code += "static public class " + struct_def.name + "Verify\n"; + code += "{\n"; + code += " static public bool Verify"; + code += "(Google.FlatBuffers.Verifier verifier, uint tablePos)\n"; + code += " {\n"; + code += " return verifier.VerifyTableStart(tablePos)\n"; + } + + // Get the value of a table verification function end + void GetEndOfTableVerifier(std::string *code_ptr) { + std::string &code = *code_ptr; + code += " && verifier.VerifyTableEnd(tablePos);\n"; + code += " }\n"; + code += "}\n"; + } + + std::string GetNestedFlatBufferName(const FieldDef &field) { + std::string name; + if (field.nested_flatbuffer) { + name = NamespacedName(*field.nested_flatbuffer); + } else { + name = ""; + } + return name ; + } + + // Generate the code to call the appropriate Verify function(s) for a field. + void GenVerifyCall(CodeWriter &code_, const FieldDef &field, const char *prefix) { + code_.SetValue("PRE", prefix); + code_.SetValue("NAME", ConvertCase(field.name, Case::kUpperCamel)); + code_.SetValue("REQUIRED", field.IsRequired() ? "Required" : ""); + code_.SetValue("REQUIRED_FLAG", field.IsRequired() ? "true" : "false"); + code_.SetValue("TYPE", GenTypeGet(field.value.type)); + code_.SetValue("INLINESIZE", NumToString(InlineSize(field.value.type))); + code_.SetValue("OFFSET", NumToString(field.value.offset)); + + if (IsScalar(field.value.type.base_type) || IsStruct(field.value.type)) { + code_.SetValue("ALIGN", NumToString(InlineAlignment(field.value.type))); + code_ += + "{{PRE}} && verifier.VerifyField(tablePos, " + "{{OFFSET}} /*{{NAME}}*/, {{INLINESIZE}} /*{{TYPE}}*/, {{ALIGN}}, {{REQUIRED_FLAG}})"; + } else { + // TODO - probably code below should go to this 'else' - code_ += "{{PRE}}VerifyOffset{{REQUIRED}}(verifier, {{OFFSET}})\\"; + } + + switch (field.value.type.base_type) { + case BASE_TYPE_UNION: { + auto union_name = NamespacedName(*field.value.type.enum_def); + code_.SetValue("ENUM_NAME1", field.value.type.enum_def->name); + code_.SetValue("ENUM_NAME", union_name); + code_.SetValue("SUFFIX", UnionTypeFieldSuffix()); + // Caution: This construction assumes, that UNION type id element has been created just before union data and + // its offset precedes union. Such assumption is common in flatbuffer implementation + code_.SetValue("TYPE_ID_OFFSET", NumToString(field.value.offset - sizeof(voffset_t))); + code_ += "{{PRE}} && verifier.VerifyUnion(tablePos, {{TYPE_ID_OFFSET}}, " + "{{OFFSET}} /*{{NAME}}*/, {{ENUM_NAME}}Verify.Verify, {{REQUIRED_FLAG}})"; + break; + } + case BASE_TYPE_STRUCT: { + if (!field.value.type.struct_def->fixed) { + code_ += "{{PRE}} && verifier.VerifyTable(tablePos, " + "{{OFFSET}} /*{{NAME}}*/, {{TYPE}}Verify.Verify, {{REQUIRED_FLAG}})"; + } + break; + } + case BASE_TYPE_STRING: { + code_ += "{{PRE}} && verifier.VerifyString(tablePos, " + "{{OFFSET}} /*{{NAME}}*/, {{REQUIRED_FLAG}})"; + break; + } + case BASE_TYPE_VECTOR: { + + switch (field.value.type.element) { + case BASE_TYPE_STRING: { + code_ += "{{PRE}} && verifier.VerifyVectorOfStrings(tablePos, " + "{{OFFSET}} /*{{NAME}}*/, {{REQUIRED_FLAG}})"; + break; + } + case BASE_TYPE_STRUCT: { + if (!field.value.type.struct_def->fixed) { + code_ += "{{PRE}} && verifier.VerifyVectorOfTables(tablePos, " + "{{OFFSET}} /*{{NAME}}*/, {{TYPE}}Verify.Verify, {{REQUIRED_FLAG}})"; + } else { + code_.SetValue( + "VECTOR_ELEM_INLINESIZE", + NumToString(InlineSize(field.value.type.VectorType()))); + code_ += + "{{PRE}} && " + "verifier.VerifyVectorOfData(tablePos, " + "{{OFFSET}} /*{{NAME}}*/, {{VECTOR_ELEM_INLINESIZE}} " + "/*{{TYPE}}*/, {{REQUIRED_FLAG}})"; + } + break; + } + case BASE_TYPE_UNION: { + // Vectors of unions are not yet supported for go + break; + } + default: + // Generate verifier for vector of data. + // It may be either nested flatbuffer of just vector of bytes + auto nfn = GetNestedFlatBufferName(field); + if (!nfn.empty()) { + code_.SetValue("CPP_NAME", nfn); + // FIXME: file_identifier. + code_ += "{{PRE}} && verifier.VerifyNestedBuffer(tablePos, " + "{{OFFSET}} /*{{NAME}}*/, {{CPP_NAME}}Verify.Verify, {{REQUIRED_FLAG}})"; + } else if (field.flexbuffer) { + code_ += "{{PRE}} && verifier.VerifyNestedBuffer(tablePos, " + "{{OFFSET}} /*{{NAME}}*/, null, {{REQUIRED_FLAG}})"; + } else { + code_.SetValue("VECTOR_ELEM_INLINESIZE", NumToString(InlineSize(field.value.type.VectorType()))); + code_ += + "{{PRE}} && verifier.VerifyVectorOfData(tablePos, " + "{{OFFSET}} /*{{NAME}}*/, {{VECTOR_ELEM_INLINESIZE}} /*{{TYPE}}*/, {{REQUIRED_FLAG}})"; + } + break; + } + + break; + } + default: { + break; + } + } + } + + // Generate table constructors, conditioned on its members' types. + void GenTableVerifier(const StructDef &struct_def, std::string *code_ptr) { + CodeWriter code_; + + GetStartOfTableVerifier(struct_def, code_ptr); + + // Generate struct fields accessors + for (auto it = struct_def.fields.vec.begin(); + it != struct_def.fields.vec.end(); ++it) { + auto &field = **it; + if (field.deprecated) continue; + + GenVerifyCall(code_, field, ""); + } + + *code_ptr += code_.ToString(); + + GetEndOfTableVerifier(code_ptr); + } + + // Generate struct or table methods. + void GenStructVerifier(const StructDef &struct_def, std::string *code_ptr) { + if (struct_def.generated) return; + + // cur_name_space_ = struct_def.defined_namespace; + + // Generate verifiers + if (struct_def.fixed) { + // Fixed size structures do not require table members + // verification - instead structure size is verified using VerifyField + } else { + // Create table verification function + GenTableVerifier(struct_def, code_ptr); + } + } + void GenStruct(StructDef &struct_def, std::string *code_ptr, const IDLOptions &opts) const { if (struct_def.generated) return; @@ -688,8 +856,20 @@ class CSharpGenerator : public BaseGenerator { code += parser_.file_identifier_; code += "\"); }\n"; } + + // Generate the Verify method that checks if a ByteBuffer is save to + // access + code += " public static "; + code += "bool Verify" + struct_def.name + "(ByteBuffer _bb) {"; + code += "Google.FlatBuffers.Verifier verifier = new "; + code += "Google.FlatBuffers.Verifier(_bb); "; + code += "return verifier.VerifyBuffer(\""; + code += parser_.file_identifier_; + code += "\", false, " + struct_def.name + "Verify.Verify);"; + code += " }\n"; } } + // Generate the __init method that sets the field in a pre-existing // accessor object. This is to allow object reuse. code += " public void __init(int _i, ByteBuffer _bb) "; @@ -1418,6 +1598,67 @@ class CSharpGenerator : public BaseGenerator { code += " }\n"; } + std::string GenUnionVerify(const Type &union_type) const { + if (union_type.enum_def) { + const auto &enum_def = *union_type.enum_def; + + auto ret = + "\n\nstatic public class " + enum_def.name + "Verify\n"; + ret += "{\n"; + ret += + " static public bool Verify(Google.FlatBuffers.Verifier verifier, " + "byte typeId, uint tablePos)\n"; + ret += " {\n"; + ret += " bool result = true;\n"; + + const auto union_enum_loop = [&]() { + ret += " switch((" + enum_def.name + ")typeId)\n"; + ret += " {\n"; + + for (auto it = enum_def.Vals().begin(); it != enum_def.Vals().end(); ++it) { + const auto &ev = **it; + if (ev.IsZero()) { continue; } + + ret += " case " + Name(enum_def) + "." + Name(ev) + ":\n"; + + if (IsString(ev.union_type)) { + ret += + " result = verifier.VerifyUnionString(tablePos);\n"; + ret += " break;"; + } else if (ev.union_type.base_type == BASE_TYPE_STRUCT) { + if (! ev.union_type.struct_def->fixed) { + auto type = GenTypeGet(ev.union_type); + ret += " result = " + type + "Verify.Verify(verifier, tablePos);\n"; + } else { + ret += " result = verifier.VerifyUnionData(tablePos, " + + NumToString(InlineSize(ev.union_type)) + ", " + + NumToString(InlineAlignment(ev.union_type)) + + ");\n";; + } + ret += " break;"; + } else { + FLATBUFFERS_ASSERT(false); + } + ret += "\n"; + } + + ret += " default: result = true;\n"; + ret += " break;\n"; + ret += " }\n"; + ret += " return result;\n"; + }; + + union_enum_loop(); + ret += " }\n"; + ret += "}\n"; + ret += "\n"; + + return ret; + } + FLATBUFFERS_ASSERT(0); + return ""; + } + void GenEnum_ObjectAPI(EnumDef &enum_def, std::string *code_ptr, const IDLOptions &opts) const { auto &code = *code_ptr; @@ -1493,6 +1734,9 @@ class CSharpGenerator : public BaseGenerator { code += " }\n"; code += " }\n"; code += "}\n\n"; + + code += GenUnionVerify(enum_def.underlying_type); + // JsonConverter if (opts.cs_gen_json_serializer) { if (enum_def.attributes.Lookup("private")) { diff --git a/tests/FlatBuffers.Test/FlatBuffers.Core.Test.csproj b/tests/FlatBuffers.Test/FlatBuffers.Core.Test.csproj index a82b07af32..75f70fef35 100644 --- a/tests/FlatBuffers.Test/FlatBuffers.Core.Test.csproj +++ b/tests/FlatBuffers.Test/FlatBuffers.Core.Test.csproj @@ -46,6 +46,9 @@ FlatBuffers\FlatBufferConstants.cs + + FlatBuffers\FlatBufferVerify.cs + FlatBuffers\Struct.cs diff --git a/tests/FlatBuffers.Test/FlatBuffersExampleTests.cs b/tests/FlatBuffers.Test/FlatBuffersExampleTests.cs index 6c9e309c96..e3dbea6420 100644 --- a/tests/FlatBuffers.Test/FlatBuffersExampleTests.cs +++ b/tests/FlatBuffers.Test/FlatBuffersExampleTests.cs @@ -198,6 +198,9 @@ private void CanCreateNewFlatBufferFromScratch(bool sizePrefix) private void TestBuffer(ByteBuffer bb) { + bool test = Monster.VerifyMonster(bb); + Assert.AreEqual(true, test); + Monster monster = Monster.GetRootAsMonster(bb); Assert.AreEqual(80, monster.Hp); @@ -299,7 +302,7 @@ public void CanReadJsonFile() var jsonText = File.ReadAllText(@"../monsterdata_test.json"); var mon = MonsterT.DeserializeFromJson(jsonText); var fbb = new FlatBufferBuilder(1); - fbb.Finish(Monster.Pack(fbb, mon).Value); + Monster.FinishMonsterBuffer(fbb, Monster.Pack(fbb, mon)); TestBuffer(fbb.DataBuffer); } diff --git a/tests/FlatBuffers.Test/FlatBuffersFuzzTests.cs b/tests/FlatBuffers.Test/FlatBuffersFuzzTests.cs index 0377a7b40b..fb6c4836be 100644 --- a/tests/FlatBuffers.Test/FlatBuffersFuzzTests.cs +++ b/tests/FlatBuffers.Test/FlatBuffersFuzzTests.cs @@ -15,6 +15,7 @@ */ using System; +using Google.FlatBuffers; namespace Google.FlatBuffers.Test { @@ -204,9 +205,21 @@ public void TestVTableWithOneBool() 1, // value 0 }, builder.DataBuffer.ToFullArray()); - } + var verifier = new Verifier(builder.DataBuffer); + var offset = 8; + // table must be ok + Assert.IsTrue(verifier.VerifyTableStart((uint)offset)); + // First field must be bool + Assert.IsTrue(verifier.VerifyField((uint)offset, 4, 1, 1, true)); + // Check Error: Second field + Assert.IsFalse(verifier.VerifyField((uint)offset, 6, 1, 1, true)); + // Check Error: First field too big alignment + Assert.IsFalse(verifier.VerifyField((uint)offset, 4, 1, 2, true)); + // Check Error: First size to big + Assert.IsFalse(verifier.VerifyField((uint)offset, 4, 2, 1, true)); + } - [FlatBuffersTestMethod] + [FlatBuffersTestMethod] public void TestVTableWithOneBool_DefaultValue() { var builder = new FlatBufferBuilder(1); @@ -223,6 +236,14 @@ public void TestVTableWithOneBool_DefaultValue() 4, 0, 0, 0, // int32 offset for start of vtable }, builder.DataBuffer.ToFullArray()); + var verifier = new Verifier(builder.DataBuffer); + var offset = 4; + // table must be ok + Assert.IsTrue(verifier.VerifyTableStart((uint)offset)); + // First field must be bool + Assert.IsTrue(verifier.VerifyField((uint)offset, 4, 1, 1, false)); + // Error Check: First field not present + Assert.IsFalse(verifier.VerifyField((uint)offset, 4, 1, 1, true)); } [FlatBuffersTestMethod] @@ -232,7 +253,7 @@ public void TestVTableWithOneInt16() builder.StartTable(1); Assert.ArrayEqual(new byte[] { 0 }, builder.DataBuffer.ToFullArray()); builder.AddShort(0, 0x789A, 0); - builder.EndTable(); + int offset = builder.EndTable(); Assert.ArrayEqual(new byte[] { 0, 0, // padding to 16 bytes @@ -244,6 +265,18 @@ public void TestVTableWithOneInt16() 0x9A, 0x78, //value 0 }, builder.DataBuffer.ToFullArray()); + var verifier = new Verifier(builder.DataBuffer); + offset += builder.DataBuffer.Position; + // table must be ok + Assert.IsTrue(verifier.VerifyTableStart((uint)offset)); + // First field must be ushort + Assert.IsTrue(verifier.VerifyField((uint)offset, 4, 2, 2, true)); + // Check Error: Second field + Assert.IsFalse(verifier.VerifyField((uint)offset, 6, 2, 2, true)); + // Check Error: First field too big alignment + Assert.IsFalse(verifier.VerifyField((uint)offset, 4, 4, 2, true)); + // Check Error: First field size to big + Assert.IsFalse(verifier.VerifyField((uint)offset, 4, 2, 4, true)); } [FlatBuffersTestMethod] @@ -254,7 +287,7 @@ public void TestVTableWithTwoInt16() Assert.ArrayEqual(new byte[] { 0 }, builder.DataBuffer.ToFullArray()); builder.AddShort(0, 0x3456, 0); builder.AddShort(1, 0x789A, 0); - builder.EndTable(); + int offset = builder.EndTable(); Assert.ArrayEqual(new byte[] { 8, 0, // vtable bytes @@ -266,6 +299,18 @@ public void TestVTableWithTwoInt16() 0x56, 0x34, // value 0 }, builder.DataBuffer.ToFullArray()); + var verifier = new Verifier(builder.DataBuffer); + offset += builder.DataBuffer.Position; + // table must be ok + Assert.IsTrue(verifier.VerifyTableStart((uint)offset)); + // First field must be ushort + Assert.IsTrue(verifier.VerifyField((uint)offset, 4, 2, 2, true)); + // Check Error: Second field + Assert.IsTrue(verifier.VerifyField((uint)offset, 6, 2, 2, true)); + // Check Error: Second field too big alignment + Assert.IsFalse(verifier.VerifyField((uint)offset, 4, 4, 2, true)); + // Check Error: Second field size to big + Assert.IsFalse(verifier.VerifyField((uint)offset, 4, 2, 4, true)); } [FlatBuffersTestMethod] @@ -276,7 +321,7 @@ public void TestVTableWithInt16AndBool() Assert.ArrayEqual(new byte[] { 0 }, builder.DataBuffer.ToFullArray()); builder.AddShort(0, 0x3456, 0); builder.AddBool(1, true, false); - builder.EndTable(); + int offset = builder.EndTable(); Assert.ArrayEqual(new byte[] { 8, 0, // vtable bytes @@ -288,6 +333,18 @@ public void TestVTableWithInt16AndBool() 0x56, 0x34, // value 0 }, builder.DataBuffer.ToFullArray()); + var verifier = new Verifier(builder.DataBuffer); + offset += builder.DataBuffer.Position; + // table must be ok + Assert.IsTrue(verifier.VerifyTableStart((uint)offset)); + // First field must be ushort + Assert.IsTrue(verifier.VerifyField((uint)offset, 4, 2, 2, true)); + // Check Error: Second field must be bool + Assert.IsTrue(verifier.VerifyField((uint)offset, 6, 1, 1, true)); + // Check Error: Second field too big alignment + Assert.IsFalse(verifier.VerifyField((uint)offset, 4, 4, 2, true)); + // Check Error: Second field size to big + Assert.IsFalse(verifier.VerifyField((uint)offset, 4, 2, 4, true)); } [FlatBuffersTestMethod] @@ -315,6 +372,12 @@ public void TestVTableWithEmptyVector() 0, 0, 0, 0, }, builder.DataBuffer.ToFullArray()); + var verifier = new Verifier(builder.DataBuffer); + uint checkOffset = 20; + // table must be ok + Assert.IsTrue(verifier.VerifyTableStart(checkOffset)); + // First field must be vector with element size 1 + Assert.IsTrue(verifier.VerifyVectorOfData(checkOffset, 4, 1, true)); } [FlatBuffersTestMethod] @@ -342,7 +405,15 @@ public void TestVTableWithEmptyVectorAndScalars() 0, 0, 0, 0, // length of vector (not in sctruc) }, builder.DataBuffer.ToFullArray()); - } + var verifier = new Verifier(builder.DataBuffer); + uint checkOffset = 16; + // table must be ok + Assert.IsTrue(verifier.VerifyTableStart(checkOffset)); + // First field must be short + Assert.IsTrue(verifier.VerifyField(checkOffset, 4, 2, 2, true)); + // Second field must be vector with element size 1 + Assert.IsTrue(verifier.VerifyVectorOfData(checkOffset, 6, 2, true)); + } [FlatBuffersTestMethod] @@ -373,6 +444,16 @@ public void TestVTableWith_1xInt16_and_Vector_or_2xInt16() 0x34, 0x12, // vector value 1 }, builder.DataBuffer.ToFullArray()); + var verifier = new Verifier(builder.DataBuffer); + uint checkOffset = 12; + // table must be ok + Assert.IsTrue(verifier.VerifyTableStart(checkOffset)); + // Second field must be vector with element size 2 + Assert.IsTrue(verifier.VerifyVectorOfData(checkOffset, 6, 2, true)); + // Check Error: Second field with too big size + Assert.IsFalse(verifier.VerifyVectorOfData(checkOffset, 6, 4, true)); + // First field must be short + Assert.IsTrue(verifier.VerifyField(checkOffset, 4, 2, 2, true)); } [FlatBuffersTestMethod] @@ -403,8 +484,17 @@ public void TestVTableWithAStruct_of_int8_int16_int32() 0x00, 0x00, 0x00, 55, // struct value 0 }, builder.DataBuffer.ToFullArray()); + var verifier = new Verifier(builder.DataBuffer); + uint checkOffset = 16; + // table must be ok + Assert.IsTrue(verifier.VerifyTableStart(checkOffset)); + // First field must be a struct with 12 bytes + Assert.IsTrue(verifier.VerifyField(checkOffset, 4, 12, 4, true)); + // Check Error: First field with more than 12 bytes + Assert.IsFalse(verifier.VerifyField(checkOffset, 4, 16, 4, true)); } + [FlatBuffersTestMethod] public void TestVTableWithAVectorOf_2xStructOf_2xInt8() { @@ -437,6 +527,12 @@ public void TestVTableWithAVectorOf_2xStructOf_2xInt8() 33, // vector 0, 0 }, builder.DataBuffer.ToFullArray()); + var verifier = new Verifier(builder.DataBuffer); + uint checkOffset = 16; + // table must be ok + Assert.IsTrue(verifier.VerifyTableStart(checkOffset)); + // First field must be vector with element size 2 + Assert.IsTrue(verifier.VerifyVectorOfData(checkOffset, 4, 2, true)); } [FlatBuffersTestMethod] @@ -470,6 +566,104 @@ public void TestVTableWithSomeElements() byte[] unpadded = new byte[padded.Length - 12]; Buffer.BlockCopy(padded, 12, unpadded, 0, unpadded.Length); Assert.ArrayEqual(unpadded, builder.DataBuffer.ToSizedArray()); + + var verifier = new Verifier(builder.DataBuffer); + uint checkOffset = builder.DataBuffer.GetUint(builder.DataBuffer.Position) + (uint)builder.DataBuffer.Position; + // table must be ok + Assert.IsTrue(verifier.VerifyTableStart(checkOffset)); + // First field must be a struct with 12 bytes + Assert.IsTrue(verifier.VerifyField(checkOffset, 4, 1, 1, true)); + // Second field must be a struct with 12 bytes + Assert.IsTrue(verifier.VerifyField(checkOffset, 6, 2, 2, true)); + } + + [FlatBuffersTestMethod] + public void TestVTableWithStrings() + { + var builder = new FlatBufferBuilder(64); + var str1 = builder.CreateString("foo"); + var str2 = builder.CreateString("foobar"); + builder.StartTable(2); + builder.AddOffset(0, str1.Value, 0); + builder.AddOffset(1, str2.Value, 0); + var off = builder.EndTable(); + builder.Finish(off); + + byte[] padded = new byte[] + { + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, //Padding to 32 bytes + 12, 0, 0, 0, // root of table, pointing to vtable offset + 8, 0, // vtable bytes + 12, 0, // object length + 8, 0, // start of value 0 + 4, 0, // start of value 1 + 8, 0, 0, 0, // int32 offset for start of vtable + 8, 0, 0, 0, // pointer to string + 16, 0, 0, 0, // pointer to string + 6, 0, 0, 0, // length of string + 102, 111, 111, 98, 97, 114, 0, 0, // "foobar" + padding + 3, 0, 0, 0, // length of string + 102, 111, 111, 0 // "bar" + }; + Assert.ArrayEqual(padded, builder.DataBuffer.ToFullArray()); + + var verifier = new Verifier(builder.DataBuffer); + uint checkOffset = builder.DataBuffer.GetUint(builder.DataBuffer.Position) + (uint)builder.DataBuffer.Position; + // table must be ok + Assert.IsTrue(verifier.VerifyTableStart(checkOffset)); + // First field string check + Assert.IsTrue(verifier.VerifyString(checkOffset, 4, true)); + // Second field string check + Assert.IsTrue(verifier.VerifyString(checkOffset, 6, true)); + } + + [FlatBuffersTestMethod] + public void TestVTableWithVectorOfStrings() + { + var builder = new FlatBufferBuilder(64); + var str1 = builder.CreateString("foo"); + var str2 = builder.CreateString("foobar"); + builder.StartVector(sizeof(int), 2, 1); + builder.AddOffset(str1.Value); + builder.AddOffset(str2.Value); + var vec = builder.EndVector(); + builder.StartTable(1); + builder.AddOffset(0, vec.Value, 0); + var off = builder.EndTable(); + builder.Finish(off); + + byte[] padded = new byte[] + { + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, //Padding to 32 bytes + 12, 0, 0, 0, // root of table, pointing to vtable offset + 0, 0, // padding + 6, 0, // vtable bytes + 8, 0, // object length + 4, 0, // start of value 0 + 6, 0, 0, 0, // int32 offset for start of vtable + 4, 0, 0, 0, // pointer to vector + 2, 0, 0, 0, // length of vector + 8, 0, 0, 0, // int32 offset to string 1 + 16, 0, 0, 0, // int32 offset to string 2 + 6, 0, 0, 0, // length of string + 102, 111, 111, 98, 97, 114, 0, 0, // "foobar" + padding + 3, 0, 0, 0, // length of string + 102, 111, 111, 0 // "bar" + }; + Assert.ArrayEqual(padded, builder.DataBuffer.ToFullArray()); + + var verifier = new Verifier(builder.DataBuffer); + uint checkOffset = builder.DataBuffer.GetUint(builder.DataBuffer.Position) + (uint)builder.DataBuffer.Position; + // table must be ok + Assert.IsTrue(verifier.VerifyTableStart(checkOffset)); + // First field string check + Assert.IsTrue(verifier.VerifyVectorOfStrings(checkOffset, 4, true)); } [FlatBuffersTestMethod] @@ -521,6 +715,33 @@ public void TestTwoFinishTable() 33, }, builder.DataBuffer.ToFullArray()); + + // check obj1 + var verifier = new Verifier(builder.DataBuffer); + uint checkOffset = builder.DataBuffer.GetUint(builder.DataBuffer.Position) + (uint)builder.DataBuffer.Position; + // table must be ok + Assert.IsTrue(verifier.VerifyTableStart(checkOffset)); + // First field must be a struct with 12 bytes + Assert.IsTrue(verifier.VerifyField(checkOffset, 4, 1, 1, true)); + // Second field must be a struct with 12 bytes + Assert.IsTrue(verifier.VerifyField(checkOffset, 6, 1, 1, true)); + // Third field must be a struct with 12 bytes + Assert.IsTrue(verifier.VerifyField(checkOffset, 8, 1, 1, true)); + // Check Error: 4. field did not exist + Assert.IsFalse(verifier.VerifyField(checkOffset, 10, 1, 1, true)); + + // check obj0 + checkOffset = 56; + // table must be ok + Assert.IsTrue(verifier.VerifyTableStart(checkOffset)); + // First field must be a struct with 12 bytes + Assert.IsTrue(verifier.VerifyField(checkOffset, 4, 1, 1, true)); + // Second field must be a struct with 12 bytes + Assert.IsTrue(verifier.VerifyField(checkOffset, 6, 1, 1, true)); + // Check Error: 3. field did not exist + Assert.IsFalse(verifier.VerifyField(checkOffset, 8, 1, 1, true)); + // Check Error: 4. field did not exist + Assert.IsFalse(verifier.VerifyField(checkOffset, 10, 1, 1, true)); } [FlatBuffersTestMethod] @@ -569,6 +790,16 @@ public void TestBunchOfBools() byte[] unpadded = new byte[padded.Length - 28]; Buffer.BlockCopy(padded, 28, unpadded, 0, unpadded.Length); Assert.ArrayEqual(unpadded, builder.DataBuffer.ToSizedArray()); + + var verifier = new Verifier(builder.DataBuffer); + uint checkOffset = builder.DataBuffer.GetUint(builder.DataBuffer.Position) + (uint)builder.DataBuffer.Position; + // table must be ok + Assert.IsTrue(verifier.VerifyTableStart(checkOffset)); + for (var i = 0; i < 8; i++) + { + Assert.IsTrue(verifier.VerifyField(checkOffset, (short)(4 + i * 2), 1, 1, true)); + } + Assert.IsFalse(verifier.VerifyField(checkOffset, (short)(4 + 8 * 2), 1, 1, true)); } [FlatBuffersTestMethod] @@ -639,6 +870,16 @@ public void TestWithFloat() }, builder.DataBuffer.ToFullArray()); + var verifier = new Verifier(builder.DataBuffer); + uint checkOffset = 8; + // table must be ok + Assert.IsTrue(verifier.VerifyTableStart(checkOffset)); + // First Field must be float + Assert.IsTrue(verifier.VerifyField(checkOffset, 4, 4, 4, true)); + // Check Error: First Field with to big size + Assert.IsFalse(verifier.VerifyField(checkOffset, 4, 8, 4, true)); + // Check Error: First Field with to big padding + Assert.IsFalse(verifier.VerifyField(checkOffset, 4, 4, 8, true)); } private void CheckObjects(int fieldCount, int objectCount) diff --git a/tests/KeywordTest/KeywordsInTable.cs b/tests/KeywordTest/KeywordsInTable.cs index 90030116a1..9556c9f6df 100644 --- a/tests/KeywordTest/KeywordsInTable.cs +++ b/tests/KeywordTest/KeywordsInTable.cs @@ -92,4 +92,17 @@ public KeywordsInTableT() { } +static public class KeywordsInTableVerify +{ + static public bool Verify(Google.FlatBuffers.Verifier verifier, uint tablePos) + { + return verifier.VerifyTableStart(tablePos) + && verifier.VerifyField(tablePos, 4 /*Is*/, 4 /*KeywordTest.ABC*/, 4, false) + && verifier.VerifyField(tablePos, 6 /*Private*/, 4 /*KeywordTest.@public*/, 4, false) + && verifier.VerifyField(tablePos, 8 /*Type*/, 4 /*int*/, 4, false) + && verifier.VerifyField(tablePos, 10 /*Default*/, 1 /*bool*/, 1, false) + && verifier.VerifyTableEnd(tablePos); + } +} + } diff --git a/tests/KeywordTest/KeywordsInUnion.cs b/tests/KeywordTest/KeywordsInUnion.cs index 0efa0668d7..d8a870f41a 100644 --- a/tests/KeywordTest/KeywordsInUnion.cs +++ b/tests/KeywordTest/KeywordsInUnion.cs @@ -37,6 +37,28 @@ public static int Pack(Google.FlatBuffers.FlatBufferBuilder builder, KeywordsInU } } + + +static public class KeywordsInUnionVerify +{ + static public bool Verify(Google.FlatBuffers.Verifier verifier, byte typeId, uint tablePos) + { + bool result = true; + switch((KeywordsInUnion)typeId) + { + case KeywordsInUnion.@static: + result = KeywordTest.KeywordsInTableVerify.Verify(verifier, tablePos); + break; + case KeywordsInUnion.@internal: + result = KeywordTest.KeywordsInTableVerify.Verify(verifier, tablePos); + break; + default: result = true; + break; + } + return result; + } +} + public class KeywordsInUnionUnion_JsonConverter : Newtonsoft.Json.JsonConverter { public override bool CanConvert(System.Type objectType) { return objectType == typeof(KeywordsInUnionUnion) || objectType == typeof(System.Collections.Generic.List); diff --git a/tests/KeywordTest/Table2.cs b/tests/KeywordTest/Table2.cs index 56ee6898e9..59cfee06f5 100644 --- a/tests/KeywordTest/Table2.cs +++ b/tests/KeywordTest/Table2.cs @@ -91,4 +91,15 @@ public Table2T() { } +static public class Table2Verify +{ + static public bool Verify(Google.FlatBuffers.Verifier verifier, uint tablePos) + { + return verifier.VerifyTableStart(tablePos) + && verifier.VerifyField(tablePos, 4 /*TypeType*/, 1 /*KeywordTest.KeywordsInUnion*/, 1, false) + && verifier.VerifyUnion(tablePos, 4, 6 /*Type*/, KeywordTest.KeywordsInUnionVerify.Verify, false) + && verifier.VerifyTableEnd(tablePos); + } +} + } diff --git a/tests/MyGame/Example/Any.cs b/tests/MyGame/Example/Any.cs index 90cd22bf9a..021faa6263 100644 --- a/tests/MyGame/Example/Any.cs +++ b/tests/MyGame/Example/Any.cs @@ -41,6 +41,31 @@ public static int Pack(Google.FlatBuffers.FlatBufferBuilder builder, AnyUnion _o } } + + +static public class AnyVerify +{ + static public bool Verify(Google.FlatBuffers.Verifier verifier, byte typeId, uint tablePos) + { + bool result = true; + switch((Any)typeId) + { + case Any.Monster: + result = MyGame.Example.MonsterVerify.Verify(verifier, tablePos); + break; + case Any.TestSimpleTableWithEnum: + result = MyGame.Example.TestSimpleTableWithEnumVerify.Verify(verifier, tablePos); + break; + case Any.MyGame_Example2_Monster: + result = MyGame.Example2.MonsterVerify.Verify(verifier, tablePos); + break; + default: result = true; + break; + } + return result; + } +} + public class AnyUnion_JsonConverter : Newtonsoft.Json.JsonConverter { public override bool CanConvert(System.Type objectType) { return objectType == typeof(AnyUnion) || objectType == typeof(System.Collections.Generic.List); diff --git a/tests/MyGame/Example/AnyAmbiguousAliases.cs b/tests/MyGame/Example/AnyAmbiguousAliases.cs index eec4172351..3fb3d779d3 100644 --- a/tests/MyGame/Example/AnyAmbiguousAliases.cs +++ b/tests/MyGame/Example/AnyAmbiguousAliases.cs @@ -41,6 +41,31 @@ public static int Pack(Google.FlatBuffers.FlatBufferBuilder builder, AnyAmbiguou } } + + +static public class AnyAmbiguousAliasesVerify +{ + static public bool Verify(Google.FlatBuffers.Verifier verifier, byte typeId, uint tablePos) + { + bool result = true; + switch((AnyAmbiguousAliases)typeId) + { + case AnyAmbiguousAliases.M1: + result = MyGame.Example.MonsterVerify.Verify(verifier, tablePos); + break; + case AnyAmbiguousAliases.M2: + result = MyGame.Example.MonsterVerify.Verify(verifier, tablePos); + break; + case AnyAmbiguousAliases.M3: + result = MyGame.Example.MonsterVerify.Verify(verifier, tablePos); + break; + default: result = true; + break; + } + return result; + } +} + public class AnyAmbiguousAliasesUnion_JsonConverter : Newtonsoft.Json.JsonConverter { public override bool CanConvert(System.Type objectType) { return objectType == typeof(AnyAmbiguousAliasesUnion) || objectType == typeof(System.Collections.Generic.List); diff --git a/tests/MyGame/Example/AnyUniqueAliases.cs b/tests/MyGame/Example/AnyUniqueAliases.cs index bb6a21206b..629edb69f6 100644 --- a/tests/MyGame/Example/AnyUniqueAliases.cs +++ b/tests/MyGame/Example/AnyUniqueAliases.cs @@ -41,6 +41,31 @@ public static int Pack(Google.FlatBuffers.FlatBufferBuilder builder, AnyUniqueAl } } + + +static public class AnyUniqueAliasesVerify +{ + static public bool Verify(Google.FlatBuffers.Verifier verifier, byte typeId, uint tablePos) + { + bool result = true; + switch((AnyUniqueAliases)typeId) + { + case AnyUniqueAliases.M: + result = MyGame.Example.MonsterVerify.Verify(verifier, tablePos); + break; + case AnyUniqueAliases.TS: + result = MyGame.Example.TestSimpleTableWithEnumVerify.Verify(verifier, tablePos); + break; + case AnyUniqueAliases.M2: + result = MyGame.Example2.MonsterVerify.Verify(verifier, tablePos); + break; + default: result = true; + break; + } + return result; + } +} + public class AnyUniqueAliasesUnion_JsonConverter : Newtonsoft.Json.JsonConverter { public override bool CanConvert(System.Type objectType) { return objectType == typeof(AnyUniqueAliasesUnion) || objectType == typeof(System.Collections.Generic.List); diff --git a/tests/MyGame/Example/ArrayTable.cs b/tests/MyGame/Example/ArrayTable.cs index 56b8353f86..d38b70c06a 100644 --- a/tests/MyGame/Example/ArrayTable.cs +++ b/tests/MyGame/Example/ArrayTable.cs @@ -17,6 +17,7 @@ public struct ArrayTable : IFlatbufferObject public static ArrayTable GetRootAsArrayTable(ByteBuffer _bb) { return GetRootAsArrayTable(_bb, new ArrayTable()); } public static ArrayTable GetRootAsArrayTable(ByteBuffer _bb, ArrayTable obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public static bool ArrayTableBufferHasIdentifier(ByteBuffer _bb) { return Table.__has_identifier(_bb, "ARRT"); } + public static bool VerifyArrayTable(ByteBuffer _bb) {Google.FlatBuffers.Verifier verifier = new Google.FlatBuffers.Verifier(_bb); return verifier.VerifyBuffer("ARRT", false, ArrayTableVerify.Verify); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } public ArrayTable __assign(int _i, ByteBuffer _bb) { __init(_i, _bb); return this; } @@ -72,4 +73,14 @@ public byte[] SerializeToBinary() { } +static public class ArrayTableVerify +{ + static public bool Verify(Google.FlatBuffers.Verifier verifier, uint tablePos) + { + return verifier.VerifyTableStart(tablePos) + && verifier.VerifyField(tablePos, 4 /*A*/, 160 /*MyGame.Example.ArrayStruct*/, 8, false) + && verifier.VerifyTableEnd(tablePos); + } +} + } diff --git a/tests/MyGame/Example/Monster.cs b/tests/MyGame/Example/Monster.cs index 4abde535cc..e7cdd2e859 100644 --- a/tests/MyGame/Example/Monster.cs +++ b/tests/MyGame/Example/Monster.cs @@ -18,6 +18,7 @@ public struct Monster : IFlatbufferObject public static Monster GetRootAsMonster(ByteBuffer _bb) { return GetRootAsMonster(_bb, new Monster()); } public static Monster GetRootAsMonster(ByteBuffer _bb, Monster obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public static bool MonsterBufferHasIdentifier(ByteBuffer _bb) { return Table.__has_identifier(_bb, "MONS"); } + public static bool VerifyMonster(ByteBuffer _bb) {Google.FlatBuffers.Verifier verifier = new Google.FlatBuffers.Verifier(_bb); return verifier.VerifyBuffer("MONS", false, MonsterVerify.Verify); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } public Monster __assign(int _i, ByteBuffer _bb) { __init(_i, _bb); return this; } @@ -1100,4 +1101,74 @@ public byte[] SerializeToBinary() { } +static public class MonsterVerify +{ + static public bool Verify(Google.FlatBuffers.Verifier verifier, uint tablePos) + { + return verifier.VerifyTableStart(tablePos) + && verifier.VerifyField(tablePos, 4 /*Pos*/, 32 /*MyGame.Example.Vec3*/, 8, false) + && verifier.VerifyField(tablePos, 6 /*Mana*/, 2 /*short*/, 2, false) + && verifier.VerifyField(tablePos, 8 /*Hp*/, 2 /*short*/, 2, false) + && verifier.VerifyString(tablePos, 10 /*Name*/, true) + && verifier.VerifyVectorOfData(tablePos, 14 /*Inventory*/, 1 /*byte*/, false) + && verifier.VerifyField(tablePos, 16 /*Color*/, 1 /*MyGame.Example.Color*/, 1, false) + && verifier.VerifyField(tablePos, 18 /*TestType*/, 1 /*MyGame.Example.Any*/, 1, false) + && verifier.VerifyUnion(tablePos, 18, 20 /*Test*/, MyGame.Example.AnyVerify.Verify, false) + && verifier.VerifyVectorOfData(tablePos, 22 /*Test4*/, 4 /*MyGame.Example.Test*/, false) + && verifier.VerifyVectorOfStrings(tablePos, 24 /*Testarrayofstring*/, false) + && verifier.VerifyVectorOfTables(tablePos, 26 /*Testarrayoftables*/, MyGame.Example.MonsterVerify.Verify, false) + && verifier.VerifyTable(tablePos, 28 /*Enemy*/, MyGame.Example.MonsterVerify.Verify, false) + && verifier.VerifyNestedBuffer(tablePos, 30 /*Testnestedflatbuffer*/, MyGame.Example.MonsterVerify.Verify, false) + && verifier.VerifyTable(tablePos, 32 /*Testempty*/, MyGame.Example.StatVerify.Verify, false) + && verifier.VerifyField(tablePos, 34 /*Testbool*/, 1 /*bool*/, 1, false) + && verifier.VerifyField(tablePos, 36 /*Testhashs32Fnv1*/, 4 /*int*/, 4, false) + && verifier.VerifyField(tablePos, 38 /*Testhashu32Fnv1*/, 4 /*uint*/, 4, false) + && verifier.VerifyField(tablePos, 40 /*Testhashs64Fnv1*/, 8 /*long*/, 8, false) + && verifier.VerifyField(tablePos, 42 /*Testhashu64Fnv1*/, 8 /*ulong*/, 8, false) + && verifier.VerifyField(tablePos, 44 /*Testhashs32Fnv1a*/, 4 /*int*/, 4, false) + && verifier.VerifyField(tablePos, 46 /*Testhashu32Fnv1a*/, 4 /*uint*/, 4, false) + && verifier.VerifyField(tablePos, 48 /*Testhashs64Fnv1a*/, 8 /*long*/, 8, false) + && verifier.VerifyField(tablePos, 50 /*Testhashu64Fnv1a*/, 8 /*ulong*/, 8, false) + && verifier.VerifyVectorOfData(tablePos, 52 /*Testarrayofbools*/, 1 /*bool*/, false) + && verifier.VerifyField(tablePos, 54 /*Testf*/, 4 /*float*/, 4, false) + && verifier.VerifyField(tablePos, 56 /*Testf2*/, 4 /*float*/, 4, false) + && verifier.VerifyField(tablePos, 58 /*Testf3*/, 4 /*float*/, 4, false) + && verifier.VerifyVectorOfStrings(tablePos, 60 /*Testarrayofstring2*/, false) + && verifier.VerifyVectorOfData(tablePos, 62 /*Testarrayofsortedstruct*/, 8 /*MyGame.Example.Ability*/, false) + && verifier.VerifyNestedBuffer(tablePos, 64 /*Flex*/, null, false) + && verifier.VerifyVectorOfData(tablePos, 66 /*Test5*/, 4 /*MyGame.Example.Test*/, false) + && verifier.VerifyVectorOfData(tablePos, 68 /*VectorOfLongs*/, 8 /*long*/, false) + && verifier.VerifyVectorOfData(tablePos, 70 /*VectorOfDoubles*/, 8 /*double*/, false) + && verifier.VerifyTable(tablePos, 72 /*ParentNamespaceTest*/, MyGame.InParentNamespaceVerify.Verify, false) + && verifier.VerifyVectorOfTables(tablePos, 74 /*VectorOfReferrables*/, MyGame.Example.ReferrableVerify.Verify, false) + && verifier.VerifyField(tablePos, 76 /*SingleWeakReference*/, 8 /*ulong*/, 8, false) + && verifier.VerifyVectorOfData(tablePos, 78 /*VectorOfWeakReferences*/, 8 /*ulong*/, false) + && verifier.VerifyVectorOfTables(tablePos, 80 /*VectorOfStrongReferrables*/, MyGame.Example.ReferrableVerify.Verify, false) + && verifier.VerifyField(tablePos, 82 /*CoOwningReference*/, 8 /*ulong*/, 8, false) + && verifier.VerifyVectorOfData(tablePos, 84 /*VectorOfCoOwningReferences*/, 8 /*ulong*/, false) + && verifier.VerifyField(tablePos, 86 /*NonOwningReference*/, 8 /*ulong*/, 8, false) + && verifier.VerifyVectorOfData(tablePos, 88 /*VectorOfNonOwningReferences*/, 8 /*ulong*/, false) + && verifier.VerifyField(tablePos, 90 /*AnyUniqueType*/, 1 /*MyGame.Example.AnyUniqueAliases*/, 1, false) + && verifier.VerifyUnion(tablePos, 90, 92 /*AnyUnique*/, MyGame.Example.AnyUniqueAliasesVerify.Verify, false) + && verifier.VerifyField(tablePos, 94 /*AnyAmbiguousType*/, 1 /*MyGame.Example.AnyAmbiguousAliases*/, 1, false) + && verifier.VerifyUnion(tablePos, 94, 96 /*AnyAmbiguous*/, MyGame.Example.AnyAmbiguousAliasesVerify.Verify, false) + && verifier.VerifyVectorOfData(tablePos, 98 /*VectorOfEnums*/, 1 /*MyGame.Example.Color*/, false) + && verifier.VerifyField(tablePos, 100 /*SignedEnum*/, 1 /*MyGame.Example.Race*/, 1, false) + && verifier.VerifyNestedBuffer(tablePos, 102 /*Testrequirednestedflatbuffer*/, MyGame.Example.MonsterVerify.Verify, false) + && verifier.VerifyVectorOfTables(tablePos, 104 /*ScalarKeySortedTables*/, MyGame.Example.StatVerify.Verify, false) + && verifier.VerifyField(tablePos, 106 /*NativeInline*/, 4 /*MyGame.Example.Test*/, 2, false) + && verifier.VerifyField(tablePos, 108 /*LongEnumNonEnumDefault*/, 8 /*MyGame.Example.LongEnum*/, 8, false) + && verifier.VerifyField(tablePos, 110 /*LongEnumNormalDefault*/, 8 /*MyGame.Example.LongEnum*/, 8, false) + && verifier.VerifyField(tablePos, 112 /*NanDefault*/, 4 /*float*/, 4, false) + && verifier.VerifyField(tablePos, 114 /*InfDefault*/, 4 /*float*/, 4, false) + && verifier.VerifyField(tablePos, 116 /*PositiveInfDefault*/, 4 /*float*/, 4, false) + && verifier.VerifyField(tablePos, 118 /*InfinityDefault*/, 4 /*float*/, 4, false) + && verifier.VerifyField(tablePos, 120 /*PositiveInfinityDefault*/, 4 /*float*/, 4, false) + && verifier.VerifyField(tablePos, 122 /*NegativeInfDefault*/, 4 /*float*/, 4, false) + && verifier.VerifyField(tablePos, 124 /*NegativeInfinityDefault*/, 4 /*float*/, 4, false) + && verifier.VerifyField(tablePos, 126 /*DoubleInfDefault*/, 8 /*double*/, 8, false) + && verifier.VerifyTableEnd(tablePos); + } +} + } diff --git a/tests/MyGame/Example/Referrable.cs b/tests/MyGame/Example/Referrable.cs index 095b1f6f2b..c6434d265e 100644 --- a/tests/MyGame/Example/Referrable.cs +++ b/tests/MyGame/Example/Referrable.cs @@ -92,4 +92,14 @@ public ReferrableT() { } +static public class ReferrableVerify +{ + static public bool Verify(Google.FlatBuffers.Verifier verifier, uint tablePos) + { + return verifier.VerifyTableStart(tablePos) + && verifier.VerifyField(tablePos, 4 /*Id*/, 8 /*ulong*/, 8, false) + && verifier.VerifyTableEnd(tablePos); + } +} + } diff --git a/tests/MyGame/Example/Stat.cs b/tests/MyGame/Example/Stat.cs index dc29bd48f7..c73f2aaeaa 100644 --- a/tests/MyGame/Example/Stat.cs +++ b/tests/MyGame/Example/Stat.cs @@ -117,4 +117,16 @@ public StatT() { } +static public class StatVerify +{ + static public bool Verify(Google.FlatBuffers.Verifier verifier, uint tablePos) + { + return verifier.VerifyTableStart(tablePos) + && verifier.VerifyString(tablePos, 4 /*Id*/, false) + && verifier.VerifyField(tablePos, 6 /*Val*/, 8 /*long*/, 8, false) + && verifier.VerifyField(tablePos, 8 /*Count*/, 2 /*ushort*/, 2, false) + && verifier.VerifyTableEnd(tablePos); + } +} + } diff --git a/tests/MyGame/Example/TestSimpleTableWithEnum.cs b/tests/MyGame/Example/TestSimpleTableWithEnum.cs index 2184110089..2a827a5074 100644 --- a/tests/MyGame/Example/TestSimpleTableWithEnum.cs +++ b/tests/MyGame/Example/TestSimpleTableWithEnum.cs @@ -62,4 +62,14 @@ public TestSimpleTableWithEnumT() { } +static public class TestSimpleTableWithEnumVerify +{ + static public bool Verify(Google.FlatBuffers.Verifier verifier, uint tablePos) + { + return verifier.VerifyTableStart(tablePos) + && verifier.VerifyField(tablePos, 4 /*Color*/, 1 /*MyGame.Example.Color*/, 1, false) + && verifier.VerifyTableEnd(tablePos); + } +} + } diff --git a/tests/MyGame/Example/TypeAliases.cs b/tests/MyGame/Example/TypeAliases.cs index 0980db91b9..e4eecf3e0d 100644 --- a/tests/MyGame/Example/TypeAliases.cs +++ b/tests/MyGame/Example/TypeAliases.cs @@ -208,4 +208,25 @@ public TypeAliasesT() { } +static public class TypeAliasesVerify +{ + static public bool Verify(Google.FlatBuffers.Verifier verifier, uint tablePos) + { + return verifier.VerifyTableStart(tablePos) + && verifier.VerifyField(tablePos, 4 /*I8*/, 1 /*sbyte*/, 1, false) + && verifier.VerifyField(tablePos, 6 /*U8*/, 1 /*byte*/, 1, false) + && verifier.VerifyField(tablePos, 8 /*I16*/, 2 /*short*/, 2, false) + && verifier.VerifyField(tablePos, 10 /*U16*/, 2 /*ushort*/, 2, false) + && verifier.VerifyField(tablePos, 12 /*I32*/, 4 /*int*/, 4, false) + && verifier.VerifyField(tablePos, 14 /*U32*/, 4 /*uint*/, 4, false) + && verifier.VerifyField(tablePos, 16 /*I64*/, 8 /*long*/, 8, false) + && verifier.VerifyField(tablePos, 18 /*U64*/, 8 /*ulong*/, 8, false) + && verifier.VerifyField(tablePos, 20 /*F32*/, 4 /*float*/, 4, false) + && verifier.VerifyField(tablePos, 22 /*F64*/, 8 /*double*/, 8, false) + && verifier.VerifyVectorOfData(tablePos, 24 /*V8*/, 1 /*sbyte*/, false) + && verifier.VerifyVectorOfData(tablePos, 26 /*Vf64*/, 8 /*double*/, false) + && verifier.VerifyTableEnd(tablePos); + } +} + } diff --git a/tests/MyGame/Example2/Monster.cs b/tests/MyGame/Example2/Monster.cs index 465f04d514..f9fa70060f 100644 --- a/tests/MyGame/Example2/Monster.cs +++ b/tests/MyGame/Example2/Monster.cs @@ -47,4 +47,13 @@ public MonsterT() { } +static public class MonsterVerify +{ + static public bool Verify(Google.FlatBuffers.Verifier verifier, uint tablePos) + { + return verifier.VerifyTableStart(tablePos) + && verifier.VerifyTableEnd(tablePos); + } +} + } diff --git a/tests/MyGame/InParentNamespace.cs b/tests/MyGame/InParentNamespace.cs index ca99f3e868..8416105f0d 100644 --- a/tests/MyGame/InParentNamespace.cs +++ b/tests/MyGame/InParentNamespace.cs @@ -47,4 +47,13 @@ public InParentNamespaceT() { } +static public class InParentNamespaceVerify +{ + static public bool Verify(Google.FlatBuffers.Verifier verifier, uint tablePos) + { + return verifier.VerifyTableStart(tablePos) + && verifier.VerifyTableEnd(tablePos); + } +} + } diff --git a/tests/MyGame/MonsterExtra.cs b/tests/MyGame/MonsterExtra.cs index f5bd71f1ad..c1061b6b22 100644 --- a/tests/MyGame/MonsterExtra.cs +++ b/tests/MyGame/MonsterExtra.cs @@ -17,6 +17,7 @@ public struct MonsterExtra : IFlatbufferObject public static MonsterExtra GetRootAsMonsterExtra(ByteBuffer _bb) { return GetRootAsMonsterExtra(_bb, new MonsterExtra()); } public static MonsterExtra GetRootAsMonsterExtra(ByteBuffer _bb, MonsterExtra obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public static bool MonsterExtraBufferHasIdentifier(ByteBuffer _bb) { return Table.__has_identifier(_bb, "MONE"); } + public static bool VerifyMonsterExtra(ByteBuffer _bb) {Google.FlatBuffers.Verifier verifier = new Google.FlatBuffers.Verifier(_bb); return verifier.VerifyBuffer("MONE", false, MonsterExtraVerify.Verify); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } public MonsterExtra __assign(int _i, ByteBuffer _bb) { __init(_i, _bb); return this; } @@ -206,4 +207,23 @@ public byte[] SerializeToBinary() { } +static public class MonsterExtraVerify +{ + static public bool Verify(Google.FlatBuffers.Verifier verifier, uint tablePos) + { + return verifier.VerifyTableStart(tablePos) + && verifier.VerifyField(tablePos, 4 /*D0*/, 8 /*double*/, 8, false) + && verifier.VerifyField(tablePos, 6 /*D1*/, 8 /*double*/, 8, false) + && verifier.VerifyField(tablePos, 8 /*D2*/, 8 /*double*/, 8, false) + && verifier.VerifyField(tablePos, 10 /*D3*/, 8 /*double*/, 8, false) + && verifier.VerifyField(tablePos, 12 /*F0*/, 4 /*float*/, 4, false) + && verifier.VerifyField(tablePos, 14 /*F1*/, 4 /*float*/, 4, false) + && verifier.VerifyField(tablePos, 16 /*F2*/, 4 /*float*/, 4, false) + && verifier.VerifyField(tablePos, 18 /*F3*/, 4 /*float*/, 4, false) + && verifier.VerifyVectorOfData(tablePos, 20 /*Dvec*/, 8 /*double*/, false) + && verifier.VerifyVectorOfData(tablePos, 22 /*Fvec*/, 4 /*float*/, false) + && verifier.VerifyTableEnd(tablePos); + } +} + } diff --git a/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.cs b/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.cs index 8ec7b8d586..bfb8a8a28c 100644 --- a/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.cs +++ b/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.cs @@ -62,4 +62,14 @@ public TableInNestedNST() { } +static public class TableInNestedNSVerify +{ + static public bool Verify(Google.FlatBuffers.Verifier verifier, uint tablePos) + { + return verifier.VerifyTableStart(tablePos) + && verifier.VerifyField(tablePos, 4 /*Foo*/, 4 /*int*/, 4, false) + && verifier.VerifyTableEnd(tablePos); + } +} + } diff --git a/tests/namespace_test/NamespaceA/NamespaceB/UnionInNestedNS.cs b/tests/namespace_test/NamespaceA/NamespaceB/UnionInNestedNS.cs index 08bc431e24..8105c3b0ef 100644 --- a/tests/namespace_test/NamespaceA/NamespaceB/UnionInNestedNS.cs +++ b/tests/namespace_test/NamespaceA/NamespaceB/UnionInNestedNS.cs @@ -33,6 +33,25 @@ public static int Pack(Google.FlatBuffers.FlatBufferBuilder builder, UnionInNest } } + + +static public class UnionInNestedNSVerify +{ + static public bool Verify(Google.FlatBuffers.Verifier verifier, byte typeId, uint tablePos) + { + bool result = true; + switch((UnionInNestedNS)typeId) + { + case UnionInNestedNS.TableInNestedNS: + result = NamespaceA.NamespaceB.TableInNestedNSVerify.Verify(verifier, tablePos); + break; + default: result = true; + break; + } + return result; + } +} + public class UnionInNestedNSUnion_JsonConverter : Newtonsoft.Json.JsonConverter { public override bool CanConvert(System.Type objectType) { return objectType == typeof(UnionInNestedNSUnion) || objectType == typeof(System.Collections.Generic.List); diff --git a/tests/namespace_test/NamespaceA/SecondTableInA.cs b/tests/namespace_test/NamespaceA/SecondTableInA.cs index 7e7556cdc7..b6ea91a9da 100644 --- a/tests/namespace_test/NamespaceA/SecondTableInA.cs +++ b/tests/namespace_test/NamespaceA/SecondTableInA.cs @@ -62,4 +62,14 @@ public SecondTableInAT() { } +static public class SecondTableInAVerify +{ + static public bool Verify(Google.FlatBuffers.Verifier verifier, uint tablePos) + { + return verifier.VerifyTableStart(tablePos) + && verifier.VerifyTable(tablePos, 4 /*ReferToC*/, NamespaceC.TableInCVerify.Verify, false) + && verifier.VerifyTableEnd(tablePos); + } +} + } diff --git a/tests/namespace_test/NamespaceA/TableInFirstNS.cs b/tests/namespace_test/NamespaceA/TableInFirstNS.cs index 5c5e7b01f8..202983ab35 100644 --- a/tests/namespace_test/NamespaceA/TableInFirstNS.cs +++ b/tests/namespace_test/NamespaceA/TableInFirstNS.cs @@ -116,4 +116,18 @@ public TableInFirstNST() { } +static public class TableInFirstNSVerify +{ + static public bool Verify(Google.FlatBuffers.Verifier verifier, uint tablePos) + { + return verifier.VerifyTableStart(tablePos) + && verifier.VerifyTable(tablePos, 4 /*FooTable*/, NamespaceA.NamespaceB.TableInNestedNSVerify.Verify, false) + && verifier.VerifyField(tablePos, 6 /*FooEnum*/, 1 /*NamespaceA.NamespaceB.EnumInNestedNS*/, 1, false) + && verifier.VerifyField(tablePos, 8 /*FooUnionType*/, 1 /*NamespaceA.NamespaceB.UnionInNestedNS*/, 1, false) + && verifier.VerifyUnion(tablePos, 8, 10 /*FooUnion*/, NamespaceA.NamespaceB.UnionInNestedNSVerify.Verify, false) + && verifier.VerifyField(tablePos, 12 /*FooStruct*/, 8 /*NamespaceA.NamespaceB.StructInNestedNS*/, 4, false) + && verifier.VerifyTableEnd(tablePos); + } +} + } diff --git a/tests/namespace_test/NamespaceC/TableInC.cs b/tests/namespace_test/NamespaceC/TableInC.cs index 42714d2a47..5cc60d0450 100644 --- a/tests/namespace_test/NamespaceC/TableInC.cs +++ b/tests/namespace_test/NamespaceC/TableInC.cs @@ -72,4 +72,15 @@ public TableInCT() { } +static public class TableInCVerify +{ + static public bool Verify(Google.FlatBuffers.Verifier verifier, uint tablePos) + { + return verifier.VerifyTableStart(tablePos) + && verifier.VerifyTable(tablePos, 4 /*ReferToA1*/, NamespaceA.TableInFirstNSVerify.Verify, false) + && verifier.VerifyTable(tablePos, 6 /*ReferToA2*/, NamespaceA.SecondTableInAVerify.Verify, false) + && verifier.VerifyTableEnd(tablePos); + } +} + } diff --git a/tests/nested_namespace_test/nested_namespace_test3_generated.cs b/tests/nested_namespace_test/nested_namespace_test3_generated.cs index b26aae0a21..6927bc390c 100644 --- a/tests/nested_namespace_test/nested_namespace_test3_generated.cs +++ b/tests/nested_namespace_test/nested_namespace_test3_generated.cs @@ -62,4 +62,14 @@ public ColorTestTableT() { } +static public class ColorTestTableVerify +{ + static public bool Verify(Google.FlatBuffers.Verifier verifier, uint tablePos) + { + return verifier.VerifyTableStart(tablePos) + && verifier.VerifyField(tablePos, 4 /*Color*/, 1 /*global::NamespaceB.Color*/, 1, false) + && verifier.VerifyTableEnd(tablePos); + } +} + } diff --git a/tests/optional_scalars/ScalarStuff.cs b/tests/optional_scalars/ScalarStuff.cs index ec2388b346..74bfb61ff2 100644 --- a/tests/optional_scalars/ScalarStuff.cs +++ b/tests/optional_scalars/ScalarStuff.cs @@ -17,6 +17,7 @@ public struct ScalarStuff : IFlatbufferObject public static ScalarStuff GetRootAsScalarStuff(ByteBuffer _bb) { return GetRootAsScalarStuff(_bb, new ScalarStuff()); } public static ScalarStuff GetRootAsScalarStuff(ByteBuffer _bb, ScalarStuff obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public static bool ScalarStuffBufferHasIdentifier(ByteBuffer _bb) { return Table.__has_identifier(_bb, "NULL"); } + public static bool VerifyScalarStuff(ByteBuffer _bb) {Google.FlatBuffers.Verifier verifier = new Google.FlatBuffers.Verifier(_bb); return verifier.VerifyBuffer("NULL", false, ScalarStuffVerify.Verify); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } public ScalarStuff __assign(int _i, ByteBuffer _bb) { __init(_i, _bb); return this; } @@ -351,4 +352,49 @@ public byte[] SerializeToBinary() { } +static public class ScalarStuffVerify +{ + static public bool Verify(Google.FlatBuffers.Verifier verifier, uint tablePos) + { + return verifier.VerifyTableStart(tablePos) + && verifier.VerifyField(tablePos, 4 /*JustI8*/, 1 /*sbyte*/, 1, false) + && verifier.VerifyField(tablePos, 6 /*MaybeI8*/, 1 /*sbyte*/, 1, false) + && verifier.VerifyField(tablePos, 8 /*DefaultI8*/, 1 /*sbyte*/, 1, false) + && verifier.VerifyField(tablePos, 10 /*JustU8*/, 1 /*byte*/, 1, false) + && verifier.VerifyField(tablePos, 12 /*MaybeU8*/, 1 /*byte*/, 1, false) + && verifier.VerifyField(tablePos, 14 /*DefaultU8*/, 1 /*byte*/, 1, false) + && verifier.VerifyField(tablePos, 16 /*JustI16*/, 2 /*short*/, 2, false) + && verifier.VerifyField(tablePos, 18 /*MaybeI16*/, 2 /*short*/, 2, false) + && verifier.VerifyField(tablePos, 20 /*DefaultI16*/, 2 /*short*/, 2, false) + && verifier.VerifyField(tablePos, 22 /*JustU16*/, 2 /*ushort*/, 2, false) + && verifier.VerifyField(tablePos, 24 /*MaybeU16*/, 2 /*ushort*/, 2, false) + && verifier.VerifyField(tablePos, 26 /*DefaultU16*/, 2 /*ushort*/, 2, false) + && verifier.VerifyField(tablePos, 28 /*JustI32*/, 4 /*int*/, 4, false) + && verifier.VerifyField(tablePos, 30 /*MaybeI32*/, 4 /*int*/, 4, false) + && verifier.VerifyField(tablePos, 32 /*DefaultI32*/, 4 /*int*/, 4, false) + && verifier.VerifyField(tablePos, 34 /*JustU32*/, 4 /*uint*/, 4, false) + && verifier.VerifyField(tablePos, 36 /*MaybeU32*/, 4 /*uint*/, 4, false) + && verifier.VerifyField(tablePos, 38 /*DefaultU32*/, 4 /*uint*/, 4, false) + && verifier.VerifyField(tablePos, 40 /*JustI64*/, 8 /*long*/, 8, false) + && verifier.VerifyField(tablePos, 42 /*MaybeI64*/, 8 /*long*/, 8, false) + && verifier.VerifyField(tablePos, 44 /*DefaultI64*/, 8 /*long*/, 8, false) + && verifier.VerifyField(tablePos, 46 /*JustU64*/, 8 /*ulong*/, 8, false) + && verifier.VerifyField(tablePos, 48 /*MaybeU64*/, 8 /*ulong*/, 8, false) + && verifier.VerifyField(tablePos, 50 /*DefaultU64*/, 8 /*ulong*/, 8, false) + && verifier.VerifyField(tablePos, 52 /*JustF32*/, 4 /*float*/, 4, false) + && verifier.VerifyField(tablePos, 54 /*MaybeF32*/, 4 /*float*/, 4, false) + && verifier.VerifyField(tablePos, 56 /*DefaultF32*/, 4 /*float*/, 4, false) + && verifier.VerifyField(tablePos, 58 /*JustF64*/, 8 /*double*/, 8, false) + && verifier.VerifyField(tablePos, 60 /*MaybeF64*/, 8 /*double*/, 8, false) + && verifier.VerifyField(tablePos, 62 /*DefaultF64*/, 8 /*double*/, 8, false) + && verifier.VerifyField(tablePos, 64 /*JustBool*/, 1 /*bool*/, 1, false) + && verifier.VerifyField(tablePos, 66 /*MaybeBool*/, 1 /*bool*/, 1, false) + && verifier.VerifyField(tablePos, 68 /*DefaultBool*/, 1 /*bool*/, 1, false) + && verifier.VerifyField(tablePos, 70 /*JustEnum*/, 1 /*optional_scalars.OptionalByte*/, 1, false) + && verifier.VerifyField(tablePos, 72 /*MaybeEnum*/, 1 /*optional_scalars.OptionalByte*/, 1, false) + && verifier.VerifyField(tablePos, 74 /*DefaultEnum*/, 1 /*optional_scalars.OptionalByte*/, 1, false) + && verifier.VerifyTableEnd(tablePos); + } +} + } diff --git a/tests/type_field_collsion/Collision.cs b/tests/type_field_collsion/Collision.cs index 0d24aba919..c1a877a15a 100644 --- a/tests/type_field_collsion/Collision.cs +++ b/tests/type_field_collsion/Collision.cs @@ -16,6 +16,7 @@ public struct Collision : IFlatbufferObject public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_3_3(); } public static Collision GetRootAsCollision(ByteBuffer _bb) { return GetRootAsCollision(_bb, new Collision()); } public static Collision GetRootAsCollision(ByteBuffer _bb, Collision obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } + public static bool VerifyCollision(ByteBuffer _bb) {Google.FlatBuffers.Verifier verifier = new Google.FlatBuffers.Verifier(_bb); return verifier.VerifyBuffer("", false, CollisionVerify.Verify); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } public Collision __assign(int _i, ByteBuffer _bb) { __init(_i, _bb); return this; } @@ -70,4 +71,14 @@ public byte[] SerializeToBinary() { } +static public class CollisionVerify +{ + static public bool Verify(Google.FlatBuffers.Verifier verifier, uint tablePos) + { + return verifier.VerifyTableStart(tablePos) + && verifier.VerifyField(tablePos, 4 /*Collision*/, 4 /*int*/, 4, false) + && verifier.VerifyTableEnd(tablePos); + } +} + } diff --git a/tests/union_value_collsion/union_value_collision_generated.cs b/tests/union_value_collsion/union_value_collision_generated.cs index c49701eb01..6dc1b4061e 100644 --- a/tests/union_value_collsion/union_value_collision_generated.cs +++ b/tests/union_value_collsion/union_value_collision_generated.cs @@ -37,6 +37,25 @@ public static int Pack(Google.FlatBuffers.FlatBufferBuilder builder, ValueUnion } } + + +static public class ValueVerify +{ + static public bool Verify(Google.FlatBuffers.Verifier verifier, byte typeId, uint tablePos) + { + bool result = true; + switch((Value)typeId) + { + case Value.IntValue: + result = union_value_collsion.IntValueVerify.Verify(verifier, tablePos); + break; + default: result = true; + break; + } + return result; + } +} + public class ValueUnion_JsonConverter : Newtonsoft.Json.JsonConverter { public override bool CanConvert(System.Type objectType) { return objectType == typeof(ValueUnion) || objectType == typeof(System.Collections.Generic.List); @@ -106,6 +125,25 @@ public static int Pack(Google.FlatBuffers.FlatBufferBuilder builder, OtherUnion } } + + +static public class OtherVerify +{ + static public bool Verify(Google.FlatBuffers.Verifier verifier, byte typeId, uint tablePos) + { + bool result = true; + switch((Other)typeId) + { + case Other.IntValue: + result = union_value_collsion.IntValueVerify.Verify(verifier, tablePos); + break; + default: result = true; + break; + } + return result; + } +} + public class OtherUnion_JsonConverter : Newtonsoft.Json.JsonConverter { public override bool CanConvert(System.Type objectType) { return objectType == typeof(OtherUnion) || objectType == typeof(System.Collections.Generic.List); @@ -198,6 +236,16 @@ public IntValueT() { } } + +static public class IntValueVerify +{ + static public bool Verify(Google.FlatBuffers.Verifier verifier, uint tablePos) + { + return verifier.VerifyTableStart(tablePos) + && verifier.VerifyField(tablePos, 4 /*Value*/, 4 /*int*/, 4, false) + && verifier.VerifyTableEnd(tablePos); + } +} public struct Collide : IFlatbufferObject { private Table __p; @@ -302,6 +350,17 @@ public CollideT() { } } + +static public class CollideVerify +{ + static public bool Verify(Google.FlatBuffers.Verifier verifier, uint tablePos) + { + return verifier.VerifyTableStart(tablePos) + && verifier.VerifyString(tablePos, 4 /*Collide*/, true) + && verifier.VerifyString(tablePos, 6 /*Value*/, false) + && verifier.VerifyTableEnd(tablePos); + } +} public struct Collision : IFlatbufferObject { private Table __p; @@ -309,6 +368,7 @@ public struct Collision : IFlatbufferObject public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_3_3(); } public static Collision GetRootAsCollision(ByteBuffer _bb) { return GetRootAsCollision(_bb, new Collision()); } public static Collision GetRootAsCollision(ByteBuffer _bb, Collision obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } + public static bool VerifyCollision(ByteBuffer _bb) {Google.FlatBuffers.Verifier verifier = new Google.FlatBuffers.Verifier(_bb); return verifier.VerifyBuffer("", false, CollisionVerify.Verify); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } public Collision __assign(int _i, ByteBuffer _bb) { __init(_i, _bb); return this; } @@ -454,4 +514,18 @@ public byte[] SerializeToBinary() { } +static public class CollisionVerify +{ + static public bool Verify(Google.FlatBuffers.Verifier verifier, uint tablePos) + { + return verifier.VerifyTableStart(tablePos) + && verifier.VerifyField(tablePos, 4 /*SomeValueType*/, 1 /*union_value_collsion.Value*/, 1, false) + && verifier.VerifyUnion(tablePos, 4, 6 /*SomeValue*/, union_value_collsion.ValueVerify.Verify, false) + && verifier.VerifyField(tablePos, 8 /*ValueType*/, 1 /*union_value_collsion.Other*/, 1, false) + && verifier.VerifyUnion(tablePos, 8, 10 /*Value*/, union_value_collsion.OtherVerify.Verify, false) + && verifier.VerifyVectorOfTables(tablePos, 12 /*Collide*/, union_value_collsion.CollisionVerify.Verify, false) + && verifier.VerifyTableEnd(tablePos); + } +} + } diff --git a/tests/union_vector/Attacker.cs b/tests/union_vector/Attacker.cs index cb48863a0b..e1716a1df0 100644 --- a/tests/union_vector/Attacker.cs +++ b/tests/union_vector/Attacker.cs @@ -58,3 +58,13 @@ public AttackerT() { } } + +static public class AttackerVerify +{ + static public bool Verify(Google.FlatBuffers.Verifier verifier, uint tablePos) + { + return verifier.VerifyTableStart(tablePos) + && verifier.VerifyField(tablePos, 4 /*SwordAttackDamage*/, 4 /*int*/, 4, false) + && verifier.VerifyTableEnd(tablePos); + } +} diff --git a/tests/union_vector/Character.cs b/tests/union_vector/Character.cs index 181f914a37..f6e7c88a7e 100644 --- a/tests/union_vector/Character.cs +++ b/tests/union_vector/Character.cs @@ -50,6 +50,40 @@ public static int Pack(Google.FlatBuffers.FlatBufferBuilder builder, CharacterUn } } + + +static public class CharacterVerify +{ + static public bool Verify(Google.FlatBuffers.Verifier verifier, byte typeId, uint tablePos) + { + bool result = true; + switch((Character)typeId) + { + case Character.MuLan: + result = AttackerVerify.Verify(verifier, tablePos); + break; + case Character.Rapunzel: + result = verifier.VerifyUnionData(tablePos, 4, 4); + break; + case Character.Belle: + result = verifier.VerifyUnionData(tablePos, 4, 4); + break; + case Character.BookFan: + result = verifier.VerifyUnionData(tablePos, 4, 4); + break; + case Character.Other: + result = verifier.VerifyUnionString(tablePos); + break; + case Character.Unused: + result = verifier.VerifyUnionString(tablePos); + break; + default: result = true; + break; + } + return result; + } +} + public class CharacterUnion_JsonConverter : Newtonsoft.Json.JsonConverter { public override bool CanConvert(System.Type objectType) { return objectType == typeof(CharacterUnion) || objectType == typeof(System.Collections.Generic.List); diff --git a/tests/union_vector/Gadget.cs b/tests/union_vector/Gadget.cs index 8e5ca7b155..32f0d8131b 100644 --- a/tests/union_vector/Gadget.cs +++ b/tests/union_vector/Gadget.cs @@ -34,6 +34,28 @@ public static int Pack(Google.FlatBuffers.FlatBufferBuilder builder, GadgetUnion } } + + +static public class GadgetVerify +{ + static public bool Verify(Google.FlatBuffers.Verifier verifier, byte typeId, uint tablePos) + { + bool result = true; + switch((Gadget)typeId) + { + case Gadget.FallingTub: + result = verifier.VerifyUnionData(tablePos, 4, 4); + break; + case Gadget.HandFan: + result = HandFanVerify.Verify(verifier, tablePos); + break; + default: result = true; + break; + } + return result; + } +} + public class GadgetUnion_JsonConverter : Newtonsoft.Json.JsonConverter { public override bool CanConvert(System.Type objectType) { return objectType == typeof(GadgetUnion) || objectType == typeof(System.Collections.Generic.List); diff --git a/tests/union_vector/HandFan.cs b/tests/union_vector/HandFan.cs index 63e10539c7..14cf69ffb3 100644 --- a/tests/union_vector/HandFan.cs +++ b/tests/union_vector/HandFan.cs @@ -58,3 +58,13 @@ public HandFanT() { } } + +static public class HandFanVerify +{ + static public bool Verify(Google.FlatBuffers.Verifier verifier, uint tablePos) + { + return verifier.VerifyTableStart(tablePos) + && verifier.VerifyField(tablePos, 4 /*Length*/, 4 /*int*/, 4, false) + && verifier.VerifyTableEnd(tablePos); + } +} diff --git a/tests/union_vector/Movie.cs b/tests/union_vector/Movie.cs index f77bc497ed..faa47fe062 100644 --- a/tests/union_vector/Movie.cs +++ b/tests/union_vector/Movie.cs @@ -14,6 +14,7 @@ public struct Movie : IFlatbufferObject public static Movie GetRootAsMovie(ByteBuffer _bb) { return GetRootAsMovie(_bb, new Movie()); } public static Movie GetRootAsMovie(ByteBuffer _bb, Movie obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public static bool MovieBufferHasIdentifier(ByteBuffer _bb) { return Table.__has_identifier(_bb, "MOVI"); } + public static bool VerifyMovie(ByteBuffer _bb) {Google.FlatBuffers.Verifier verifier = new Google.FlatBuffers.Verifier(_bb); return verifier.VerifyBuffer("MOVI", false, MovieVerify.Verify); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } public Movie __assign(int _i, ByteBuffer _bb) { __init(_i, _bb); return this; } @@ -211,3 +212,15 @@ public byte[] SerializeToBinary() { } } + +static public class MovieVerify +{ + static public bool Verify(Google.FlatBuffers.Verifier verifier, uint tablePos) + { + return verifier.VerifyTableStart(tablePos) + && verifier.VerifyField(tablePos, 4 /*MainCharacterType*/, 1 /*Character*/, 1, false) + && verifier.VerifyUnion(tablePos, 4, 6 /*MainCharacter*/, CharacterVerify.Verify, false) + && verifier.VerifyVectorOfData(tablePos, 8 /*CharactersType*/, 1 /*Character*/, false) + && verifier.VerifyTableEnd(tablePos); + } +} From 0888e7cb4d4d3b3a54aefd761b04d36215cb31ed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Harrtell?= Date: Thu, 6 Apr 2023 03:26:05 +0200 Subject: [PATCH 147/571] TS/JS: Use minvalue from enum if not found (#7888) Co-authored-by: Derek Bailey --- src/idl_gen_ts.cpp | 15 +++++++-------- .../arrays_test_complex_generated.cjs | 4 ---- tests/ts/monster_test_generated.cjs | 10 +--------- tests/ts/my-game/example/vec3.js | 3 ++- tests/ts/my-game/example/vec3.ts | 2 +- tests/ts/typescript_keywords_generated.cjs | 17 ----------------- .../ts/union_vector/union_vector_generated.cjs | 4 ---- 7 files changed, 11 insertions(+), 44 deletions(-) diff --git a/src/idl_gen_ts.cpp b/src/idl_gen_ts.cpp index af0836acfd..ca072f1c41 100644 --- a/src/idl_gen_ts.cpp +++ b/src/idl_gen_ts.cpp @@ -474,14 +474,13 @@ class TsGenerator : public BaseGenerator { return "BigInt('" + value.constant + "')"; } default: { - if (auto val = value.type.enum_def->FindByValue(value.constant)) { - return AddImport(imports, *value.type.enum_def, - *value.type.enum_def) - .name + - "." + namer_.Variant(*val); - } else { - return value.constant; - } + EnumVal *val = value.type.enum_def->FindByValue(value.constant); + if (val == nullptr) + val = const_cast(value.type.enum_def->MinValue()); + return AddImport(imports, *value.type.enum_def, + *value.type.enum_def) + .name + + "." + namer_.Variant(*val); } } } diff --git a/tests/ts/arrays_test_complex/arrays_test_complex_generated.cjs b/tests/ts/arrays_test_complex/arrays_test_complex_generated.cjs index ec2df6334e..3ae6bcd007 100644 --- a/tests/ts/arrays_test_complex/arrays_test_complex_generated.cjs +++ b/tests/ts/arrays_test_complex/arrays_test_complex_generated.cjs @@ -18,10 +18,6 @@ var __copyProps = (to, from, except, desc) => { 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 )); diff --git a/tests/ts/monster_test_generated.cjs b/tests/ts/monster_test_generated.cjs index 8eb338e680..3f05fd0abb 100644 --- a/tests/ts/monster_test_generated.cjs +++ b/tests/ts/monster_test_generated.cjs @@ -18,10 +18,6 @@ var __copyProps = (to, from, except, desc) => { 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 )); @@ -818,7 +814,7 @@ var Vec3 = class { } }; var Vec3T = class { - constructor(x = 0, y = 0, z = 0, test1 = 0, test2 = 0, test3 = null) { + constructor(x = 0, y = 0, z = 0, test1 = 0, test2 = Color.Red, test3 = null) { this.x = x; this.y = y; this.z = z; @@ -932,10 +928,6 @@ var Monster2 = class { const offset = this.bb.__offset(this.bb_pos, 24); return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; } - /** - * an example documentation comment: this will end up in the generated code - * multiline too - */ testarrayoftables(index, obj) { const offset = this.bb.__offset(this.bb_pos, 26); return offset ? (obj || new Monster2()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; diff --git a/tests/ts/my-game/example/vec3.js b/tests/ts/my-game/example/vec3.js index 655fa7e5ee..cd5b03461b 100644 --- a/tests/ts/my-game/example/vec3.js +++ b/tests/ts/my-game/example/vec3.js @@ -1,4 +1,5 @@ // automatically generated by the FlatBuffers compiler, do not modify +import { Color } from '../../my-game/example/color.js'; import { Test } from '../../my-game/example/test.js'; export class Vec3 { constructor() { @@ -83,7 +84,7 @@ export class Vec3 { } } export class Vec3T { - constructor(x = 0.0, y = 0.0, z = 0.0, test1 = 0.0, test2 = 0, test3 = null) { + constructor(x = 0.0, y = 0.0, z = 0.0, test1 = 0.0, test2 = Color.Red, test3 = null) { this.x = x; this.y = y; this.z = z; diff --git a/tests/ts/my-game/example/vec3.ts b/tests/ts/my-game/example/vec3.ts index ad6cafaa73..9e31323b6f 100644 --- a/tests/ts/my-game/example/vec3.ts +++ b/tests/ts/my-game/example/vec3.ts @@ -118,7 +118,7 @@ constructor( public y: number = 0.0, public z: number = 0.0, public test1: number = 0.0, - public test2: Color = 0, + public test2: Color = Color.Red, public test3: TestT|null = null ){} diff --git a/tests/ts/typescript_keywords_generated.cjs b/tests/ts/typescript_keywords_generated.cjs index 5e2e1a870a..a25f9adbc1 100644 --- a/tests/ts/typescript_keywords_generated.cjs +++ b/tests/ts/typescript_keywords_generated.cjs @@ -18,10 +18,6 @@ var __copyProps = (to, from, except, desc) => { 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 )); @@ -250,9 +246,6 @@ var Type = class { this.bb.writeUint16(this.bb_pos + offset, value); return true; } - /** - * The size (octets) of the `base_type` field. - */ baseSize() { const offset = this.bb.__offset(this.bb_pos, 12); return offset ? this.bb.readUint32(this.bb_pos + offset) : 4; @@ -265,9 +258,6 @@ var Type = class { this.bb.writeUint32(this.bb_pos + offset, value); return true; } - /** - * The size (octets) of the `element` field, if present. - */ elementSize() { const offset = this.bb.__offset(this.bb_pos, 14); return offset ? this.bb.readUint32(this.bb_pos + offset) : 0; @@ -789,9 +779,6 @@ var Field = class { this.bb.writeInt8(this.bb_pos + offset, +value); return true; } - /** - * Number of padding octets to always add after this field. Structs only. - */ padding() { const offset = this.bb.__offset(this.bb_pos, 28); return offset ? this.bb.readUint16(this.bb_pos + offset) : 0; @@ -1564,10 +1551,6 @@ var Schema = class { this.bb.writeUint64(this.bb_pos + offset, value); return true; } - /** - * All the files used in this compilation. Files are relative to where - * flatc was invoked. - */ fbsFiles(index, obj) { const offset = this.bb.__offset(this.bb_pos, 18); return offset ? (obj || new SchemaFile()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; diff --git a/tests/ts/union_vector/union_vector_generated.cjs b/tests/ts/union_vector/union_vector_generated.cjs index b63140cd68..ab4b0dcfda 100644 --- a/tests/ts/union_vector/union_vector_generated.cjs +++ b/tests/ts/union_vector/union_vector_generated.cjs @@ -18,10 +18,6 @@ var __copyProps = (to, from, except, desc) => { 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 )); From 0916f1c87ed04619a06133c9bebf007c9b746f74 Mon Sep 17 00:00:00 2001 From: Khanh Nguyen <44149581+Kn99HN@users.noreply.github.com> Date: Wed, 5 Apr 2023 18:49:29 -0700 Subject: [PATCH 148/571] Add a FileWriter interface (#7821) * Add a FileWriter interface * Change interface * Provide 2 impl for File interface: FileManager & FileNameManager * Update * update * Update * Add file_writer file * Update * Format files * Update based on review * Update * Format bzl file * Add LoadFile function * Format --------- Co-authored-by: Derek Bailey --- BUILD.bazel | 1 + CMakeLists.txt | 4 ++ include/flatbuffers/file_manager.h | 48 +++++++++++++++++++++++ include/flatbuffers/flatbuffer_builder.h | 3 +- include/flatbuffers/flatc.h | 1 + include/flatbuffers/flexbuffers.h | 10 ++--- include/flatbuffers/minireflect.h | 2 +- include/flatbuffers/util.h | 5 ++- src/BUILD.bazel | 3 ++ src/file_binary_writer.cpp | 49 ++++++++++++++++++++++++ src/file_name_saving_file_manager.cpp | 49 ++++++++++++++++++++++++ src/file_writer.cpp | 47 +++++++++++++++++++++++ src/flatc.cpp | 5 +++ 13 files changed, 217 insertions(+), 10 deletions(-) create mode 100644 include/flatbuffers/file_manager.h create mode 100644 src/file_binary_writer.cpp create mode 100644 src/file_name_saving_file_manager.cpp create mode 100644 src/file_writer.cpp diff --git a/BUILD.bazel b/BUILD.bazel index de910bc530..0ff3b234ef 100644 --- a/BUILD.bazel +++ b/BUILD.bazel @@ -47,6 +47,7 @@ filegroup( "include/flatbuffers/code_generators.h", "include/flatbuffers/default_allocator.h", "include/flatbuffers/detached_buffer.h", + "include/flatbuffers/file_manager.h", "include/flatbuffers/flatbuffer_builder.h", "include/flatbuffers/flatbuffers.h", "include/flatbuffers/flex_flat_util.h", diff --git a/CMakeLists.txt b/CMakeLists.txt index 27d80859f7..2b65c20e50 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -127,6 +127,7 @@ set(FlatBuffers_Library_SRCS include/flatbuffers/default_allocator.h include/flatbuffers/detached_buffer.h include/flatbuffers/code_generator.h + include/flatbuffers/file_manager.h include/flatbuffers/flatbuffer_builder.h include/flatbuffers/flatbuffers.h include/flatbuffers/flexbuffers.h @@ -171,6 +172,9 @@ set(FlatBuffers_Compiler_SRCS src/idl_gen_grpc.cpp src/idl_gen_json_schema.cpp src/idl_gen_swift.cpp + src/file_name_saving_file_manager.cpp + src/file_binary_writer.cpp + src/file_writer.cpp src/idl_namer.h src/namer.h src/flatc.cpp diff --git a/include/flatbuffers/file_manager.h b/include/flatbuffers/file_manager.h new file mode 100644 index 0000000000..069df5b884 --- /dev/null +++ b/include/flatbuffers/file_manager.h @@ -0,0 +1,48 @@ +/* + * Copyright 2023 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. + */ + +#ifndef FLATBUFFERS_FILE_MANAGER_H_ +#define FLATBUFFERS_FILE_MANAGER_H_ + +#include +#include + +#include "flatbuffers/util.h" + +namespace flatbuffers { + +// A File interface to write data to file by default or +// save only file names +class FileManager { + public: + FileManager() = default; + virtual ~FileManager() = default; + + virtual bool SaveFile(const std::string &absolute_file_name, + const std::string &content) = 0; + + virtual bool LoadFile(const std::string &absolute_file_name, + std::string *buf) = 0; + + private: + // Copying is not supported. + FileManager(const FileManager &) = delete; + FileManager &operator=(const FileManager &) = delete; +}; + +} // namespace flatbuffers + +#endif // FLATBUFFERS_FILE_MANAGER_H_ diff --git a/include/flatbuffers/flatbuffer_builder.h b/include/flatbuffers/flatbuffer_builder.h index a1d3d60a79..b9015d8502 100644 --- a/include/flatbuffers/flatbuffer_builder.h +++ b/include/flatbuffers/flatbuffer_builder.h @@ -1184,7 +1184,8 @@ class FlatBufferBuilder { // Allocates space for a vector of structures. // Must be completed with EndVectorOfStructs(). template T *StartVectorOfStructs(size_t vector_size) { - StartVector(vector_size * sizeof(T) / AlignOf(), sizeof(T), AlignOf()); + StartVector(vector_size * sizeof(T) / AlignOf(), sizeof(T), + AlignOf()); return reinterpret_cast(buf_.make_space(vector_size * sizeof(T))); } diff --git a/include/flatbuffers/flatc.h b/include/flatbuffers/flatc.h index e6227d6405..e98eb80d7f 100644 --- a/include/flatbuffers/flatc.h +++ b/include/flatbuffers/flatc.h @@ -56,6 +56,7 @@ struct FlatCOptions { bool schema_binary = false; bool grpc_enabled = false; bool requires_bfbs = false; + bool file_names_only = false; std::vector> generators; }; diff --git a/include/flatbuffers/flexbuffers.h b/include/flatbuffers/flexbuffers.h index a0ee670035..8e8cac144e 100644 --- a/include/flatbuffers/flexbuffers.h +++ b/include/flatbuffers/flexbuffers.h @@ -1424,12 +1424,10 @@ class Builder FLATBUFFERS_FINAL_CLASS { template static Type GetScalarType() { static_assert(flatbuffers::is_scalar::value, "Unrelated types"); - return flatbuffers::is_floating_point::value - ? FBT_FLOAT - : flatbuffers::is_same::value - ? FBT_BOOL - : (flatbuffers::is_unsigned::value ? FBT_UINT - : FBT_INT); + return flatbuffers::is_floating_point::value ? FBT_FLOAT + : flatbuffers::is_same::value + ? FBT_BOOL + : (flatbuffers::is_unsigned::value ? FBT_UINT : FBT_INT); } public: diff --git a/include/flatbuffers/minireflect.h b/include/flatbuffers/minireflect.h index 22f43fbab9..1e04bfff02 100644 --- a/include/flatbuffers/minireflect.h +++ b/include/flatbuffers/minireflect.h @@ -408,7 +408,7 @@ inline std::string FlatBufferToString(const uint8_t *buffer, const TypeTable *type_table, bool multi_line = false, bool vector_delimited = true, - const std::string& indent = "") { + const std::string &indent = "") { ToStringVisitor tostring_visitor(multi_line ? "\n" : " ", false, indent, vector_delimited); IterateFlatBuffer(buffer, type_table, &tostring_visitor); diff --git a/include/flatbuffers/util.h b/include/flatbuffers/util.h index 6d0cd2c0c4..a6bcf34b68 100644 --- a/include/flatbuffers/util.h +++ b/include/flatbuffers/util.h @@ -722,9 +722,10 @@ enum class Case { kSnake2 = 9, }; -// Convert the `input` string of case `input_case` to the specified `output_case`. +// Convert the `input` string of case `input_case` to the specified +// `output_case`. std::string ConvertCase(const std::string &input, Case output_case, - Case input_case = Case::kSnake); + Case input_case = Case::kSnake); } // namespace flatbuffers diff --git a/src/BUILD.bazel b/src/BUILD.bazel index 66c355d707..28d0868ced 100644 --- a/src/BUILD.bazel +++ b/src/BUILD.bazel @@ -69,6 +69,9 @@ cc_library( "bfbs_gen_nim.cpp", "bfbs_gen_nim.h", "bfbs_namer.h", + "file_binary_writer.cpp", + "file_name_saving_file_manager.cpp", + "file_writer.cpp", "flatc_main.cpp", "idl_gen_binary.cpp", "idl_gen_binary.h", diff --git a/src/file_binary_writer.cpp b/src/file_binary_writer.cpp new file mode 100644 index 0000000000..69d83e77c9 --- /dev/null +++ b/src/file_binary_writer.cpp @@ -0,0 +1,49 @@ +/* + * Copyright 2023 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. + */ + +#include +#include +#include + +#include "flatbuffers/file_manager.h" + +namespace flatbuffers { + +class FileBinaryWriter : public FileManager { + public: + bool SaveFile(const std::string &absolute_file_name, + const std::string &content) override { + std::ofstream ofs(absolute_file_name, std::ofstream::binary); + if (!ofs.is_open()) return false; + ofs.write(content.c_str(), content.size()); + return !ofs.bad(); + } + + bool Loadfile(const std::string &absolute_file_name, std::string *output) { + if (DirExists(absolute_file_name.c_str())) return false; + std::ifstream ifs(absolute_file_name, std::ifstream::binary); + if (!ifs.is_open()) return false; + // The fastest way to read a file into a string. + ifs.seekg(0, std::ios::end); + auto size = ifs.tellg(); + (*output).resize(static_cast(size)); + ifs.seekg(0, std::ios::beg); + ifs.read(&(*output)[0], (*output).size()); + return !ifs.bad(); + } +}; + +} // namespace flatbuffers diff --git a/src/file_name_saving_file_manager.cpp b/src/file_name_saving_file_manager.cpp new file mode 100644 index 0000000000..fc4a4aa1ec --- /dev/null +++ b/src/file_name_saving_file_manager.cpp @@ -0,0 +1,49 @@ +/* + * Copyright 2023 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. + */ + +#include +#include +#include + +#include "flatbuffers/file_manager.h" + +namespace flatbuffers { + +class FileNameSavingFileManager : public FileManager { + public: + FileNameSavingFileManager(std::set file_names) + : file_names_(file_names) {} + + bool SaveFile(const std::string &absolute_file_name, + const std::string &content) override { + (void)content; + auto pair = file_names_.insert(absolute_file_name); + // pair.second indicates whether the insertion is + // successful or not. + return pair.second; + } + + bool Loadfile(const std::string &absolute_file_name, std::string *content) { + (void) absolute_file_name; + (void) content; + return false; + } + + private: + std::set file_names_; +}; + +} // namespace flatbuffers diff --git a/src/file_writer.cpp b/src/file_writer.cpp new file mode 100644 index 0000000000..bd34545b00 --- /dev/null +++ b/src/file_writer.cpp @@ -0,0 +1,47 @@ +/* + * Copyright 2023 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. + */ + +#include +#include +#include + +#include "flatbuffers/file_manager.h" + +namespace flatbuffers { + +class FileWriter : public FileManager { + public: + bool SaveFile(const std::string &absolute_file_name, + const std::string &content) override { + std::ofstream ofs(absolute_file_name, std::ofstream::out); + if (!ofs.is_open()) return false; + ofs.write(content.c_str(), content.size()); + return !ofs.bad(); + } + + bool Loadfile(const std::string &absolute_file_name, std::string *output) { + if (DirExists(absolute_file_name.c_str())) return false; + std::ifstream ifs(absolute_file_name, std::ifstream::in); + if (!ifs.is_open()) return false; + // This is slower, but works correctly on all platforms for text files. + std::ostringstream oss; + oss << ifs.rdbuf(); + *output = oss.str(); + return !ifs.bad(); + } +}; + +} // namespace flatbuffers diff --git a/src/flatc.cpp b/src/flatc.cpp index 1cdfc3c16a..a5dd0b1f3b 100644 --- a/src/flatc.cpp +++ b/src/flatc.cpp @@ -250,6 +250,8 @@ const static FlatCOption flatc_options[] = { { "", "no-leak-private-annotation", "", "Prevents multiple type of annotations within a Fbs SCHEMA file. " "Currently this is required to generate private types in Rust" }, + { "", "file-names-only", "", + "Print out generated file names without writing to the files"}, }; auto cmp = [](FlatCOption a, FlatCOption b) { return a.long_opt < b.long_opt; }; @@ -653,6 +655,9 @@ FlatCOptions FlatCompiler::ParseFromCommandLineArguments(int argc, } else if (arg == "--annotate") { if (++argi >= argc) Error("missing path following: " + arg, true); options.annotate_schema = flatbuffers::PosixPath(argv[argi]); + } else if(arg == "--file-names-only") { + // TODO (khhn): Provide 2 implementation + options.file_names_only = true; } else { if (arg == "--proto") { opts.proto_mode = true; } From 52f2596e1568dc2ace313bde6a63bc1ee2d7f0bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Harrtell?= Date: Thu, 6 Apr 2023 04:00:23 +0200 Subject: [PATCH 149/571] [TS/JS] Upgrade dependencies (#7889) Co-authored-by: Derek Bailey --- package.json | 12 +- yarn.lock | 556 ++++++++++++++++++++++++++------------------------- 2 files changed, 285 insertions(+), 283 deletions(-) diff --git a/package.json b/package.json index 680ea02a40..505648fc86 100644 --- a/package.json +++ b/package.json @@ -37,11 +37,11 @@ "dependencies": {}, "devDependencies": { "@bazel/typescript": "5.2.0", - "@types/node": "18.7.16", - "@typescript-eslint/eslint-plugin": "^5.46.0", - "@typescript-eslint/parser": "^5.46.0", - "esbuild": "^0.16.4", - "eslint": "^8.29.0", - "typescript": "^4.8.3" + "@types/node": "18.15.11", + "@typescript-eslint/eslint-plugin": "^5.57.0", + "@typescript-eslint/parser": "^5.57.0", + "esbuild": "^0.17.14", + "eslint": "^8.37.0", + "typescript": "^5.0.3" } } diff --git a/yarn.lock b/yarn.lock index 8b806a5443..e65a4e918f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -20,135 +20,152 @@ dependencies: google-protobuf "^3.6.1" -"@esbuild/android-arm64@0.16.4": - version "0.16.4" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.16.4.tgz#4b31b9e3da2e4c12a8170bd682f713c775f68ab1" - integrity sha512-VPuTzXFm/m2fcGfN6CiwZTlLzxrKsWbPkG7ArRFpuxyaHUm/XFHQPD4xNwZT6uUmpIHhnSjcaCmcla8COzmZ5Q== - -"@esbuild/android-arm@0.16.4": - version "0.16.4" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.16.4.tgz#057d3e8b0ee41ff59386c33ba6dcf20f4bedd1f7" - integrity sha512-rZzb7r22m20S1S7ufIc6DC6W659yxoOrl7sKP1nCYhuvUlnCFHVSbATG4keGUtV8rDz11sRRDbWkvQZpzPaHiw== - -"@esbuild/android-x64@0.16.4": - version "0.16.4" - resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.16.4.tgz#62ccab8ac1d3e6ef1df3fa2e1974bc2b8528d74a" - integrity sha512-MW+B2O++BkcOfMWmuHXB15/l1i7wXhJFqbJhp82IBOais8RBEQv2vQz/jHrDEHaY2X0QY7Wfw86SBL2PbVOr0g== - -"@esbuild/darwin-arm64@0.16.4": - version "0.16.4" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.16.4.tgz#c19a6489d626c36fc611c85ccd8a3333c1f2a930" - integrity sha512-a28X1O//aOfxwJVZVs7ZfM8Tyih2Za4nKJrBwW5Wm4yKsnwBy9aiS/xwpxiiTRttw3EaTg4Srerhcm6z0bu9Wg== - -"@esbuild/darwin-x64@0.16.4": - version "0.16.4" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.16.4.tgz#b726bbc84a1e277f6ec2509d10b8ee03f242b776" - integrity sha512-e3doCr6Ecfwd7VzlaQqEPrnbvvPjE9uoTpxG5pyLzr2rI2NMjDHmvY1E5EO81O/e9TUOLLkXA5m6T8lfjK9yAA== - -"@esbuild/freebsd-arm64@0.16.4": - version "0.16.4" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.16.4.tgz#364568e6ca2901297f247de0681c9b14bbe658c8" - integrity sha512-Oup3G/QxBgvvqnXWrBed7xxkFNwAwJVHZcklWyQt7YCAL5bfUkaa6FVWnR78rNQiM8MqqLiT6ZTZSdUFuVIg1w== - -"@esbuild/freebsd-x64@0.16.4": - version "0.16.4" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.16.4.tgz#44701ba4a5497ba64eec0a6c9e221d8f46a25e72" - integrity sha512-vAP+eYOxlN/Bpo/TZmzEQapNS8W1njECrqkTpNgvXskkkJC2AwOXwZWai/Kc2vEFZUXQttx6UJbj9grqjD/+9Q== - -"@esbuild/linux-arm64@0.16.4": - version "0.16.4" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.16.4.tgz#b58fb418ec9ac714d8dbb38c787ff2441eb1d9db" - integrity sha512-2zXoBhv4r5pZiyjBKrOdFP4CXOChxXiYD50LRUU+65DkdS5niPFHbboKZd/c81l0ezpw7AQnHeoCy5hFrzzs4g== - -"@esbuild/linux-arm@0.16.4": - version "0.16.4" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.16.4.tgz#b37f15ecddb53eeea466e5960e31a58f33e0e87e" - integrity sha512-A47ZmtpIPyERxkSvIv+zLd6kNIOtJH03XA0Hy7jaceRDdQaQVGSDt4mZqpWqJYgDk9rg96aglbF6kCRvPGDSUA== - -"@esbuild/linux-ia32@0.16.4": - version "0.16.4" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.16.4.tgz#117e32a9680b5deac184ebee122f8575369fad1b" - integrity sha512-uxdSrpe9wFhz4yBwt2kl2TxS/NWEINYBUFIxQtaEVtglm1eECvsj1vEKI0KX2k2wCe17zDdQ3v+jVxfwVfvvjw== - -"@esbuild/linux-loong64@0.16.4": - version "0.16.4" - resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.16.4.tgz#dd504fb83c280752d4b485d9acb3cf391cb7bf5b" - integrity sha512-peDrrUuxbZ9Jw+DwLCh/9xmZAk0p0K1iY5d2IcwmnN+B87xw7kujOkig6ZRcZqgrXgeRGurRHn0ENMAjjD5DEg== - -"@esbuild/linux-mips64el@0.16.4": - version "0.16.4" - resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.16.4.tgz#9ab77e31cf3be1e35572afff94b51df8149d15bd" - integrity sha512-sD9EEUoGtVhFjjsauWjflZklTNr57KdQ6xfloO4yH1u7vNQlOfAlhEzbyBKfgbJlW7rwXYBdl5/NcZ+Mg2XhQA== - -"@esbuild/linux-ppc64@0.16.4": - version "0.16.4" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.16.4.tgz#69d56c2a960808bee1c7b9b84a115220ec9ce05c" - integrity sha512-X1HSqHUX9D+d0l6/nIh4ZZJ94eQky8d8z6yxAptpZE3FxCWYWvTDd9X9ST84MGZEJx04VYUD/AGgciddwO0b8g== - -"@esbuild/linux-riscv64@0.16.4": - version "0.16.4" - resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.16.4.tgz#9fc23583f4a1508a8d352bd376340e42217e8a90" - integrity sha512-97ANpzyNp0GTXCt6SRdIx1ngwncpkV/z453ZuxbnBROCJ5p/55UjhbaG23UdHj88fGWLKPFtMoU4CBacz4j9FA== - -"@esbuild/linux-s390x@0.16.4": - version "0.16.4" - resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.16.4.tgz#4cae1f70ac2943f076dd130c3c80d28f57bf75d1" - integrity sha512-pUvPQLPmbEeJRPjP0DYTC1vjHyhrnCklQmCGYbipkep+oyfTn7GTBJXoPodR7ZS5upmEyc8lzAkn2o29wD786A== - -"@esbuild/linux-x64@0.16.4": - version "0.16.4" - resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.16.4.tgz#fdf494de07cda23a2dc4b71ff1e0848e4ee6539c" - integrity sha512-N55Q0mJs3Sl8+utPRPBrL6NLYZKBCLLx0bme/+RbjvMforTGGzFvsRl4xLTZMUBFC1poDzBEPTEu5nxizQ9Nlw== - -"@esbuild/netbsd-x64@0.16.4": - version "0.16.4" - resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.16.4.tgz#b59ecb49087119c575c0f64d7e66001d52799e24" - integrity sha512-LHSJLit8jCObEQNYkgsDYBh2JrJT53oJO2HVdkSYLa6+zuLJh0lAr06brXIkljrlI+N7NNW1IAXGn/6IZPi3YQ== - -"@esbuild/openbsd-x64@0.16.4": - version "0.16.4" - resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.16.4.tgz#c51e36db875948b7b11d08bafa355605a1aa289c" - integrity sha512-nLgdc6tWEhcCFg/WVFaUxHcPK3AP/bh+KEwKtl69Ay5IBqUwKDaq/6Xk0E+fh/FGjnLwqFSsarsbPHeKM8t8Sw== - -"@esbuild/sunos-x64@0.16.4": - version "0.16.4" - resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.16.4.tgz#0b50e941cd44f069e9f2573321aec984244ec228" - integrity sha512-08SluG24GjPO3tXKk95/85n9kpyZtXCVwURR2i4myhrOfi3jspClV0xQQ0W0PYWHioJj+LejFMt41q+PG3mlAQ== - -"@esbuild/win32-arm64@0.16.4": - version "0.16.4" - resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.16.4.tgz#d1c93b20f17355ab2221cd18e13ae2f1b68013e3" - integrity sha512-yYiRDQcqLYQSvNQcBKN7XogbrSvBE45FEQdH8fuXPl7cngzkCvpsG2H9Uey39IjQ6gqqc+Q4VXYHsQcKW0OMjQ== - -"@esbuild/win32-ia32@0.16.4": - version "0.16.4" - resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.16.4.tgz#df5910e76660e0acbbdceb8d4ae6bf1efeade6ae" - integrity sha512-5rabnGIqexekYkh9zXG5waotq8mrdlRoBqAktjx2W3kb0zsI83mdCwrcAeKYirnUaTGztR5TxXcXmQrEzny83w== - -"@esbuild/win32-x64@0.16.4": - version "0.16.4" - resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.16.4.tgz#6ec594468610c176933da1387c609558371d37e0" - integrity sha512-sN/I8FMPtmtT2Yw+Dly8Ur5vQ5a/RmC8hW7jO9PtPSQUPkowxWpcUZnqOggU7VwyT3Xkj6vcXWd3V/qTXwultQ== - -"@eslint/eslintrc@^1.3.3": - version "1.3.3" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.3.3.tgz#2b044ab39fdfa75b4688184f9e573ce3c5b0ff95" - integrity sha512-uj3pT6Mg+3t39fvLrj8iuCIJ38zKO9FpGtJ4BBJebJhEwjoT+KLVNCcHT5QC9NGRIEi7fZ0ZR8YRb884auB4Lg== +"@esbuild/android-arm64@0.17.14": + version "0.17.14" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.17.14.tgz#4624cea3c8941c91f9e9c1228f550d23f1cef037" + integrity sha512-eLOpPO1RvtsP71afiFTvS7tVFShJBCT0txiv/xjFBo5a7R7Gjw7X0IgIaFoLKhqXYAXhahoXm7qAmRXhY4guJg== + +"@esbuild/android-arm@0.17.14": + version "0.17.14" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.17.14.tgz#74fae60fcab34c3f0e15cb56473a6091ba2b53a6" + integrity sha512-0CnlwnjDU8cks0yJLXfkaU/uoLyRf9VZJs4p1PskBr2AlAHeEsFEwJEo0of/Z3g+ilw5mpyDwThlxzNEIxOE4g== + +"@esbuild/android-x64@0.17.14": + version "0.17.14" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.17.14.tgz#f002fbc08d5e939d8314bd23bcfb1e95d029491f" + integrity sha512-nrfQYWBfLGfSGLvRVlt6xi63B5IbfHm3tZCdu/82zuFPQ7zez4XjmRtF/wIRYbJQ/DsZrxJdEvYFE67avYXyng== + +"@esbuild/darwin-arm64@0.17.14": + version "0.17.14" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.17.14.tgz#b8dcd79a1dd19564950b4ca51d62999011e2e168" + integrity sha512-eoSjEuDsU1ROwgBH/c+fZzuSyJUVXQTOIN9xuLs9dE/9HbV/A5IqdXHU1p2OfIMwBwOYJ9SFVGGldxeRCUJFyw== + +"@esbuild/darwin-x64@0.17.14": + version "0.17.14" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.17.14.tgz#4b49f195d9473625efc3c773fc757018f2c0d979" + integrity sha512-zN0U8RWfrDttdFNkHqFYZtOH8hdi22z0pFm0aIJPsNC4QQZv7je8DWCX5iA4Zx6tRhS0CCc0XC2m7wKsbWEo5g== + +"@esbuild/freebsd-arm64@0.17.14": + version "0.17.14" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.14.tgz#480923fd38f644c6342c55e916cc7c231a85eeb7" + integrity sha512-z0VcD4ibeZWVQCW1O7szaLxGsx54gcCnajEJMdYoYjLiq4g1jrP2lMq6pk71dbS5+7op/L2Aod+erw+EUr28/A== + +"@esbuild/freebsd-x64@0.17.14": + version "0.17.14" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.17.14.tgz#a6b6b01954ad8562461cb8a5e40e8a860af69cbe" + integrity sha512-hd9mPcxfTgJlolrPlcXkQk9BMwNBvNBsVaUe5eNUqXut6weDQH8whcNaKNF2RO8NbpT6GY8rHOK2A9y++s+ehw== + +"@esbuild/linux-arm64@0.17.14": + version "0.17.14" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.17.14.tgz#1fe2f39f78183b59f75a4ad9c48d079916d92418" + integrity sha512-FhAMNYOq3Iblcj9i+K0l1Fp/MHt+zBeRu/Qkf0LtrcFu3T45jcwB6A1iMsemQ42vR3GBhjNZJZTaCe3VFPbn9g== + +"@esbuild/linux-arm@0.17.14": + version "0.17.14" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.17.14.tgz#18d594a49b64e4a3a05022c005cb384a58056a2a" + integrity sha512-BNTl+wSJ1omsH8s3TkQmIIIQHwvwJrU9u1ggb9XU2KTVM4TmthRIVyxSp2qxROJHhZuW/r8fht46/QE8hU8Qvg== + +"@esbuild/linux-ia32@0.17.14": + version "0.17.14" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.17.14.tgz#f7f0182a9cfc0159e0922ed66c805c9c6ef1b654" + integrity sha512-91OK/lQ5y2v7AsmnFT+0EyxdPTNhov3y2CWMdizyMfxSxRqHazXdzgBKtlmkU2KYIc+9ZK3Vwp2KyXogEATYxQ== + +"@esbuild/linux-loong64@0.17.14": + version "0.17.14" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.17.14.tgz#5f5305fdffe2d71dd9a97aa77d0c99c99409066f" + integrity sha512-vp15H+5NR6hubNgMluqqKza85HcGJgq7t6rMH7O3Y6ApiOWPkvW2AJfNojUQimfTp6OUrACUXfR4hmpcENXoMQ== + +"@esbuild/linux-mips64el@0.17.14": + version "0.17.14" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.17.14.tgz#a602e85c51b2f71d2aedfe7f4143b2f92f97f3f5" + integrity sha512-90TOdFV7N+fgi6c2+GO9ochEkmm9kBAKnuD5e08GQMgMINOdOFHuYLPQ91RYVrnWwQ5683sJKuLi9l4SsbJ7Hg== + +"@esbuild/linux-ppc64@0.17.14": + version "0.17.14" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.17.14.tgz#32d918d782105cbd9345dbfba14ee018b9c7afdf" + integrity sha512-NnBGeoqKkTugpBOBZZoktQQ1Yqb7aHKmHxsw43NddPB2YWLAlpb7THZIzsRsTr0Xw3nqiPxbA1H31ZMOG+VVPQ== + +"@esbuild/linux-riscv64@0.17.14": + version "0.17.14" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.17.14.tgz#38612e7b6c037dff7022c33f49ca17f85c5dec58" + integrity sha512-0qdlKScLXA8MGVy21JUKvMzCYWovctuP8KKqhtE5A6IVPq4onxXhSuhwDd2g5sRCzNDlDjitc5sX31BzDoL5Fw== + +"@esbuild/linux-s390x@0.17.14": + version "0.17.14" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.17.14.tgz#4397dff354f899e72fd035d72af59a700c465ccb" + integrity sha512-Hdm2Jo1yaaOro4v3+6/zJk6ygCqIZuSDJHdHaf8nVH/tfOuoEX5Riv03Ka15LmQBYJObUTNS1UdyoMk0WUn9Ww== + +"@esbuild/linux-x64@0.17.14": + version "0.17.14" + resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.17.14.tgz#6c5cb99891b6c3e0c08369da3ef465e8038ad9c2" + integrity sha512-8KHF17OstlK4DuzeF/KmSgzrTWQrkWj5boluiiq7kvJCiQVzUrmSkaBvcLB2UgHpKENO2i6BthPkmUhNDaJsVw== + +"@esbuild/netbsd-x64@0.17.14": + version "0.17.14" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.17.14.tgz#5fa5255a64e9bf3947c1b3bef5e458b50b211994" + integrity sha512-nVwpqvb3yyXztxIT2+VsxJhB5GCgzPdk1n0HHSnchRAcxqKO6ghXwHhJnr0j/B+5FSyEqSxF4q03rbA2fKXtUQ== + +"@esbuild/openbsd-x64@0.17.14": + version "0.17.14" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.17.14.tgz#74d14c79dcb6faf446878cc64284aa4e02f5ca6f" + integrity sha512-1RZ7uQQ9zcy/GSAJL1xPdN7NDdOOtNEGiJalg/MOzeakZeTrgH/DoCkbq7TaPDiPhWqnDF+4bnydxRqQD7il6g== + +"@esbuild/sunos-x64@0.17.14": + version "0.17.14" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.17.14.tgz#5c7d1c7203781d86c2a9b2ff77bd2f8036d24cfa" + integrity sha512-nqMjDsFwv7vp7msrwWRysnM38Sd44PKmW8EzV01YzDBTcTWUpczQg6mGao9VLicXSgW/iookNK6AxeogNVNDZA== + +"@esbuild/win32-arm64@0.17.14": + version "0.17.14" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.17.14.tgz#dc36ed84f1390e73b6019ccf0566c80045e5ca3d" + integrity sha512-xrD0mccTKRBBIotrITV7WVQAwNJ5+1va6L0H9zN92v2yEdjfAN7864cUaZwJS7JPEs53bDTzKFbfqVlG2HhyKQ== + +"@esbuild/win32-ia32@0.17.14": + version "0.17.14" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.17.14.tgz#0802a107afa9193c13e35de15a94fe347c588767" + integrity sha512-nXpkz9bbJrLLyUTYtRotSS3t5b+FOuljg8LgLdINWFs3FfqZMtbnBCZFUmBzQPyxqU87F8Av+3Nco/M3hEcu1w== + +"@esbuild/win32-x64@0.17.14": + version "0.17.14" + resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.17.14.tgz#e81fb49de05fed91bf74251c9ca0343f4fc77d31" + integrity sha512-gPQmsi2DKTaEgG14hc3CHXHp62k8g6qr0Pas+I4lUxRMugGSATh/Bi8Dgusoz9IQ0IfdrvLpco6kujEIBoaogA== + +"@eslint-community/eslint-utils@^4.2.0": + version "4.4.0" + resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59" + integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA== + dependencies: + eslint-visitor-keys "^3.3.0" + +"@eslint-community/regexpp@^4.4.0": + version "4.5.0" + resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.5.0.tgz#f6f729b02feee2c749f57e334b7a1b5f40a81724" + integrity sha512-vITaYzIcNmjn5tF5uxcZ/ft7/RXGrMUIS9HalWckEOF6ESiwXKoMzAQf2UW0aVd6rnOeExTJVd5hmWXucBKGXQ== + +"@eslint/eslintrc@^2.0.2": + version "2.0.2" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.0.2.tgz#01575e38707add677cf73ca1589abba8da899a02" + integrity sha512-3W4f5tDUra+pA+FzgugqL2pRimUTDJWKr7BINqOpkZrC0uYI0NIc0/JFgBROCU07HR6GieA5m3/rsPIhDmCXTQ== dependencies: ajv "^6.12.4" debug "^4.3.2" - espree "^9.4.0" - globals "^13.15.0" + espree "^9.5.1" + globals "^13.19.0" ignore "^5.2.0" import-fresh "^3.2.1" js-yaml "^4.1.0" minimatch "^3.1.2" strip-json-comments "^3.1.1" -"@humanwhocodes/config-array@^0.11.6": - version "0.11.7" - resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.7.tgz#38aec044c6c828f6ed51d5d7ae3d9b9faf6dbb0f" - integrity sha512-kBbPWzN8oVMLb0hOUYXhmxggL/1cJE6ydvjDIGi9EnAGUyA7cLVKQg+d/Dsm+KZwx2czGHrCmMVLiyg8s5JPKw== +"@eslint/js@8.37.0": + version "8.37.0" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.37.0.tgz#cf1b5fa24217fe007f6487a26d765274925efa7d" + integrity sha512-x5vzdtOOGgFVDCUs81QRB2+liax8rFg3+7hqM+QhBG0/G3F1ZsoYl97UrqgHgQ9KKT7G6c4V+aTUCgu/n22v1A== + +"@humanwhocodes/config-array@^0.11.8": + version "0.11.8" + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.8.tgz#03595ac2075a4dc0f191cc2131de14fbd7d410b9" + integrity sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g== dependencies: "@humanwhocodes/object-schema" "^1.2.1" debug "^4.1.1" @@ -248,10 +265,10 @@ resolved "https://registry.yarnpkg.com/@types/long/-/long-4.0.2.tgz#b74129719fc8d11c01868010082d483b7545591a" integrity sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA== -"@types/node@18.7.16": - version "18.7.16" - resolved "https://registry.yarnpkg.com/@types/node/-/node-18.7.16.tgz#0eb3cce1e37c79619943d2fd903919fc30850601" - integrity sha512-EQHhixfu+mkqHMZl1R2Ovuvn47PUw18azMJOTwSZr9/fhzHNGXAJ0ma0dayRVchprpCj0Kc1K1xKoWaATWF1qg== +"@types/node@18.15.11": + version "18.15.11" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.15.11.tgz#b3b790f09cb1696cffcec605de025b088fa4225f" + integrity sha512-E5Kwq2n4SbMzQOn6wnmBjuK9ouqlURrcZDVfbo9ftDDTFt3nk7ZKK4GMOzoYgnpQJKcxwQw+lGaBvvlMo0qN/Q== "@types/node@^10.1.0": version "10.17.60" @@ -263,87 +280,88 @@ resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.3.13.tgz#da4bfd73f49bd541d28920ab0e2bf0ee80f71c91" integrity sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw== -"@typescript-eslint/eslint-plugin@^5.46.0": - version "5.46.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.46.0.tgz#9a96a713b9616c783501a3c1774c9e2b40217ad0" - integrity sha512-QrZqaIOzJAjv0sfjY4EjbXUi3ZOFpKfzntx22gPGr9pmFcTjcFw/1sS1LJhEubfAGwuLjNrPV0rH+D1/XZFy7Q== +"@typescript-eslint/eslint-plugin@^5.57.0": + version "5.57.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.57.0.tgz#52c8a7a4512f10e7249ca1e2e61f81c62c34365c" + integrity sha512-itag0qpN6q2UMM6Xgk6xoHa0D0/P+M17THnr4SVgqn9Rgam5k/He33MA7/D7QoJcdMxHFyX7U9imaBonAX/6qA== dependencies: - "@typescript-eslint/scope-manager" "5.46.0" - "@typescript-eslint/type-utils" "5.46.0" - "@typescript-eslint/utils" "5.46.0" + "@eslint-community/regexpp" "^4.4.0" + "@typescript-eslint/scope-manager" "5.57.0" + "@typescript-eslint/type-utils" "5.57.0" + "@typescript-eslint/utils" "5.57.0" debug "^4.3.4" + grapheme-splitter "^1.0.4" ignore "^5.2.0" natural-compare-lite "^1.4.0" - regexpp "^3.2.0" semver "^7.3.7" tsutils "^3.21.0" -"@typescript-eslint/parser@^5.46.0": - version "5.46.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.46.0.tgz#002d8e67122947922a62547acfed3347cbf2c0b6" - integrity sha512-joNO6zMGUZg+C73vwrKXCd8usnsmOYmgW/w5ZW0pG0RGvqeznjtGDk61EqqTpNrFLUYBW2RSBFrxdAZMqA4OZA== +"@typescript-eslint/parser@^5.57.0": + version "5.57.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.57.0.tgz#f675bf2cd1a838949fd0de5683834417b757e4fa" + integrity sha512-orrduvpWYkgLCyAdNtR1QIWovcNZlEm6yL8nwH/eTxWLd8gsP+25pdLHYzL2QdkqrieaDwLpytHqycncv0woUQ== dependencies: - "@typescript-eslint/scope-manager" "5.46.0" - "@typescript-eslint/types" "5.46.0" - "@typescript-eslint/typescript-estree" "5.46.0" + "@typescript-eslint/scope-manager" "5.57.0" + "@typescript-eslint/types" "5.57.0" + "@typescript-eslint/typescript-estree" "5.57.0" debug "^4.3.4" -"@typescript-eslint/scope-manager@5.46.0": - version "5.46.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.46.0.tgz#60790b14d0c687dd633b22b8121374764f76ce0d" - integrity sha512-7wWBq9d/GbPiIM6SqPK9tfynNxVbfpihoY5cSFMer19OYUA3l4powA2uv0AV2eAZV6KoAh6lkzxv4PoxOLh1oA== +"@typescript-eslint/scope-manager@5.57.0": + version "5.57.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.57.0.tgz#79ccd3fa7bde0758059172d44239e871e087ea36" + integrity sha512-NANBNOQvllPlizl9LatX8+MHi7bx7WGIWYjPHDmQe5Si/0YEYfxSljJpoTyTWFTgRy3X8gLYSE4xQ2U+aCozSw== dependencies: - "@typescript-eslint/types" "5.46.0" - "@typescript-eslint/visitor-keys" "5.46.0" + "@typescript-eslint/types" "5.57.0" + "@typescript-eslint/visitor-keys" "5.57.0" -"@typescript-eslint/type-utils@5.46.0": - version "5.46.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.46.0.tgz#3a4507b3b437e2fd9e95c3e5eea5ae16f79d64b3" - integrity sha512-dwv4nimVIAsVS2dTA0MekkWaRnoYNXY26dKz8AN5W3cBFYwYGFQEqm/cG+TOoooKlncJS4RTbFKgcFY/pOiBCg== +"@typescript-eslint/type-utils@5.57.0": + version "5.57.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.57.0.tgz#98e7531c4e927855d45bd362de922a619b4319f2" + integrity sha512-kxXoq9zOTbvqzLbdNKy1yFrxLC6GDJFE2Yuo3KqSwTmDOFjUGeWSakgoXT864WcK5/NAJkkONCiKb1ddsqhLXQ== dependencies: - "@typescript-eslint/typescript-estree" "5.46.0" - "@typescript-eslint/utils" "5.46.0" + "@typescript-eslint/typescript-estree" "5.57.0" + "@typescript-eslint/utils" "5.57.0" debug "^4.3.4" tsutils "^3.21.0" -"@typescript-eslint/types@5.46.0": - version "5.46.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.46.0.tgz#f4d76622a996b88153bbd829ea9ccb9f7a5d28bc" - integrity sha512-wHWgQHFB+qh6bu0IAPAJCdeCdI0wwzZnnWThlmHNY01XJ9Z97oKqKOzWYpR2I83QmshhQJl6LDM9TqMiMwJBTw== +"@typescript-eslint/types@5.57.0": + version "5.57.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.57.0.tgz#727bfa2b64c73a4376264379cf1f447998eaa132" + integrity sha512-mxsod+aZRSyLT+jiqHw1KK6xrANm19/+VFALVFP5qa/aiJnlP38qpyaTd0fEKhWvQk6YeNZ5LGwI1pDpBRBhtQ== -"@typescript-eslint/typescript-estree@5.46.0": - version "5.46.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.46.0.tgz#a6c2b84b9351f78209a1d1f2d99ca553f7fa29a5" - integrity sha512-kDLNn/tQP+Yp8Ro2dUpyyVV0Ksn2rmpPpB0/3MO874RNmXtypMwSeazjEN/Q6CTp8D7ExXAAekPEcCEB/vtJkw== +"@typescript-eslint/typescript-estree@5.57.0": + version "5.57.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.57.0.tgz#ebcd0ee3e1d6230e888d88cddf654252d41e2e40" + integrity sha512-LTzQ23TV82KpO8HPnWuxM2V7ieXW8O142I7hQTxWIHDcCEIjtkat6H96PFkYBQqGFLW/G/eVVOB9Z8rcvdY/Vw== dependencies: - "@typescript-eslint/types" "5.46.0" - "@typescript-eslint/visitor-keys" "5.46.0" + "@typescript-eslint/types" "5.57.0" + "@typescript-eslint/visitor-keys" "5.57.0" debug "^4.3.4" globby "^11.1.0" is-glob "^4.0.3" semver "^7.3.7" tsutils "^3.21.0" -"@typescript-eslint/utils@5.46.0": - version "5.46.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.46.0.tgz#600cd873ba471b7d8b0b9f35de34cf852c6fcb31" - integrity sha512-4O+Ps1CRDw+D+R40JYh5GlKLQERXRKW5yIQoNDpmXPJ+C7kaPF9R7GWl+PxGgXjB3PQCqsaaZUpZ9dG4U6DO7g== +"@typescript-eslint/utils@5.57.0": + version "5.57.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.57.0.tgz#eab8f6563a2ac31f60f3e7024b91bf75f43ecef6" + integrity sha512-ps/4WohXV7C+LTSgAL5CApxvxbMkl9B9AUZRtnEFonpIxZDIT7wC1xfvuJONMidrkB9scs4zhtRyIwHh4+18kw== dependencies: + "@eslint-community/eslint-utils" "^4.2.0" "@types/json-schema" "^7.0.9" "@types/semver" "^7.3.12" - "@typescript-eslint/scope-manager" "5.46.0" - "@typescript-eslint/types" "5.46.0" - "@typescript-eslint/typescript-estree" "5.46.0" + "@typescript-eslint/scope-manager" "5.57.0" + "@typescript-eslint/types" "5.57.0" + "@typescript-eslint/typescript-estree" "5.57.0" eslint-scope "^5.1.1" - eslint-utils "^3.0.0" semver "^7.3.7" -"@typescript-eslint/visitor-keys@5.46.0": - version "5.46.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.46.0.tgz#36d87248ae20c61ef72404bcd61f14aa2563915f" - integrity sha512-E13gBoIXmaNhwjipuvQg1ByqSAu/GbEpP/qzFihugJ+MomtoJtFAJG/+2DRPByf57B863m0/q7Zt16V9ohhANw== +"@typescript-eslint/visitor-keys@5.57.0": + version "5.57.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.57.0.tgz#e2b2f4174aff1d15eef887ce3d019ecc2d7a8ac1" + integrity sha512-ery2g3k0hv5BLiKpPuwYt9KBkAp2ugT6VvyShXdLOkax895EC55sP0Tx5L0fZaQueiK3fBLvHVvEl3jFS5ia+g== dependencies: - "@typescript-eslint/types" "5.46.0" + "@typescript-eslint/types" "5.57.0" eslint-visitor-keys "^3.3.0" acorn-jsx@^5.3.2: @@ -352,9 +370,9 @@ acorn-jsx@^5.3.2: integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== acorn@^8.8.0: - version "8.8.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.0.tgz#88c0187620435c7f6015803f5539dae05a9dbea8" - integrity sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w== + version "8.8.2" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.2.tgz#1b2f25db02af965399b9776b0c2c391276d37c4a" + integrity sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw== ajv@^6.10.0, ajv@^6.12.4: version "6.12.6" @@ -478,33 +496,33 @@ doctrine@^3.0.0: dependencies: esutils "^2.0.2" -esbuild@^0.16.4: - version "0.16.4" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.16.4.tgz#06c86298d233386f5e41bcc14d36086daf3f40bd" - integrity sha512-qQrPMQpPTWf8jHugLWHoGqZjApyx3OEm76dlTXobHwh/EBbavbRdjXdYi/GWr43GyN0sfpap14GPkb05NH3ROA== +esbuild@^0.17.14: + version "0.17.14" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.17.14.tgz#d61a22de751a3133f3c6c7f9c1c3e231e91a3245" + integrity sha512-vOO5XhmVj/1XQR9NQ1UPq6qvMYL7QFJU57J5fKBKBKxp17uDt5PgxFDb4A2nEiXhr1qQs4x0F5+66hVVw4ruNw== optionalDependencies: - "@esbuild/android-arm" "0.16.4" - "@esbuild/android-arm64" "0.16.4" - "@esbuild/android-x64" "0.16.4" - "@esbuild/darwin-arm64" "0.16.4" - "@esbuild/darwin-x64" "0.16.4" - "@esbuild/freebsd-arm64" "0.16.4" - "@esbuild/freebsd-x64" "0.16.4" - "@esbuild/linux-arm" "0.16.4" - "@esbuild/linux-arm64" "0.16.4" - "@esbuild/linux-ia32" "0.16.4" - "@esbuild/linux-loong64" "0.16.4" - "@esbuild/linux-mips64el" "0.16.4" - "@esbuild/linux-ppc64" "0.16.4" - "@esbuild/linux-riscv64" "0.16.4" - "@esbuild/linux-s390x" "0.16.4" - "@esbuild/linux-x64" "0.16.4" - "@esbuild/netbsd-x64" "0.16.4" - "@esbuild/openbsd-x64" "0.16.4" - "@esbuild/sunos-x64" "0.16.4" - "@esbuild/win32-arm64" "0.16.4" - "@esbuild/win32-ia32" "0.16.4" - "@esbuild/win32-x64" "0.16.4" + "@esbuild/android-arm" "0.17.14" + "@esbuild/android-arm64" "0.17.14" + "@esbuild/android-x64" "0.17.14" + "@esbuild/darwin-arm64" "0.17.14" + "@esbuild/darwin-x64" "0.17.14" + "@esbuild/freebsd-arm64" "0.17.14" + "@esbuild/freebsd-x64" "0.17.14" + "@esbuild/linux-arm" "0.17.14" + "@esbuild/linux-arm64" "0.17.14" + "@esbuild/linux-ia32" "0.17.14" + "@esbuild/linux-loong64" "0.17.14" + "@esbuild/linux-mips64el" "0.17.14" + "@esbuild/linux-ppc64" "0.17.14" + "@esbuild/linux-riscv64" "0.17.14" + "@esbuild/linux-s390x" "0.17.14" + "@esbuild/linux-x64" "0.17.14" + "@esbuild/netbsd-x64" "0.17.14" + "@esbuild/openbsd-x64" "0.17.14" + "@esbuild/sunos-x64" "0.17.14" + "@esbuild/win32-arm64" "0.17.14" + "@esbuild/win32-ia32" "0.17.14" + "@esbuild/win32-x64" "0.17.14" escape-string-regexp@^4.0.0: version "4.0.0" @@ -527,30 +545,21 @@ eslint-scope@^7.1.1: esrecurse "^4.3.0" estraverse "^5.2.0" -eslint-utils@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-3.0.0.tgz#8aebaface7345bb33559db0a1f13a1d2d48c3672" - integrity sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA== - dependencies: - eslint-visitor-keys "^2.0.0" - -eslint-visitor-keys@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" - integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== - -eslint-visitor-keys@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz#f6480fa6b1f30efe2d1968aa8ac745b862469826" - integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA== - -eslint@^8.29.0: - version "8.29.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.29.0.tgz#d74a88a20fb44d59c51851625bc4ee8d0ec43f87" - integrity sha512-isQ4EEiyUjZFbEKvEGJKKGBwXtvXX+zJbkVKCgTuB9t/+jUBcy8avhkEwWJecI15BkRkOYmvIM5ynbhRjEkoeg== - dependencies: - "@eslint/eslintrc" "^1.3.3" - "@humanwhocodes/config-array" "^0.11.6" +eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.0.tgz#c7f0f956124ce677047ddbc192a68f999454dedc" + integrity sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ== + +eslint@^8.37.0: + version "8.37.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.37.0.tgz#1f660ef2ce49a0bfdec0b0d698e0b8b627287412" + integrity sha512-NU3Ps9nI05GUoVMxcZx1J8CNR6xOvUT4jAUMH5+z8lpp3aEdPVCImKw6PWG4PY+Vfkpr+jvMpxs/qoE7wq0sPw== + dependencies: + "@eslint-community/eslint-utils" "^4.2.0" + "@eslint-community/regexpp" "^4.4.0" + "@eslint/eslintrc" "^2.0.2" + "@eslint/js" "8.37.0" + "@humanwhocodes/config-array" "^0.11.8" "@humanwhocodes/module-importer" "^1.0.1" "@nodelib/fs.walk" "^1.2.8" ajv "^6.10.0" @@ -560,16 +569,15 @@ eslint@^8.29.0: doctrine "^3.0.0" escape-string-regexp "^4.0.0" eslint-scope "^7.1.1" - eslint-utils "^3.0.0" - eslint-visitor-keys "^3.3.0" - espree "^9.4.0" - esquery "^1.4.0" + eslint-visitor-keys "^3.4.0" + espree "^9.5.1" + esquery "^1.4.2" esutils "^2.0.2" fast-deep-equal "^3.1.3" file-entry-cache "^6.0.1" find-up "^5.0.0" glob-parent "^6.0.2" - globals "^13.15.0" + globals "^13.19.0" grapheme-splitter "^1.0.4" ignore "^5.2.0" import-fresh "^3.0.0" @@ -584,24 +592,23 @@ eslint@^8.29.0: minimatch "^3.1.2" natural-compare "^1.4.0" optionator "^0.9.1" - regexpp "^3.2.0" strip-ansi "^6.0.1" strip-json-comments "^3.1.0" text-table "^0.2.0" -espree@^9.4.0: - version "9.4.0" - resolved "https://registry.yarnpkg.com/espree/-/espree-9.4.0.tgz#cd4bc3d6e9336c433265fc0aa016fc1aaf182f8a" - integrity sha512-DQmnRpLj7f6TgN/NYb0MTzJXL+vJF9h3pHy4JhCIs3zwcgez8xmGg3sXHcEO97BrmO2OSvCwMdfdlyl+E9KjOw== +espree@^9.5.1: + version "9.5.1" + resolved "https://registry.yarnpkg.com/espree/-/espree-9.5.1.tgz#4f26a4d5f18905bf4f2e0bd99002aab807e96dd4" + integrity sha512-5yxtHSZXRSW5pvv3hAlXM5+/Oswi1AUFqBmbibKb5s6bp3rGIDkyXU6xCoyuuLhijr4SFwPrXRoZjz0AZDN9tg== dependencies: acorn "^8.8.0" acorn-jsx "^5.3.2" - eslint-visitor-keys "^3.3.0" + eslint-visitor-keys "^3.4.0" -esquery@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.4.0.tgz#2148ffc38b82e8c7057dfed48425b3e61f0f24a5" - integrity sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w== +esquery@^1.4.2: + version "1.5.0" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.5.0.tgz#6ce17738de8577694edd7361c57182ac8cb0db0b" + integrity sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg== dependencies: estraverse "^5.1.0" @@ -633,9 +640,9 @@ fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== fast-glob@^3.2.9: - version "3.2.11" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.11.tgz#a1172ad95ceb8a16e20caa5c5e56480e5129c1d9" - integrity sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew== + version "3.2.12" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.12.tgz#7f39ec99c2e6ab030337142da9e0c18f37afae80" + integrity sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w== dependencies: "@nodelib/fs.stat" "^2.0.2" "@nodelib/fs.walk" "^1.2.3" @@ -654,9 +661,9 @@ fast-levenshtein@^2.0.6: integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== fastq@^1.6.0: - version "1.13.0" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.13.0.tgz#616760f88a7526bdfc596b7cab8c18938c36b98c" - integrity sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw== + version "1.15.0" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.15.0.tgz#d04d07c6a2a68fe4599fea8d2e103a937fae6b3a" + integrity sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw== dependencies: reusify "^1.0.4" @@ -726,10 +733,10 @@ glob@^7.1.3: once "^1.3.0" path-is-absolute "^1.0.0" -globals@^13.15.0: - version "13.17.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-13.17.0.tgz#902eb1e680a41da93945adbdcb5a9f361ba69bd4" - integrity sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw== +globals@^13.19.0: + version "13.20.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.20.0.tgz#ea276a1e508ffd4f1612888f9d1bad1e2717bf82" + integrity sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ== dependencies: type-fest "^0.20.2" @@ -746,9 +753,9 @@ globby@^11.1.0: slash "^3.0.0" google-protobuf@^3.6.1: - version "3.21.0" - resolved "https://registry.yarnpkg.com/google-protobuf/-/google-protobuf-3.21.0.tgz#8dfa3fca16218618d373d414d3c1139e28034d6e" - integrity sha512-byR7MBTK4tZ5PZEb+u5ZTzpt4SfrTxv5682MjPlHN16XeqgZE2/8HOIWeiXe8JKnT9OVbtBGhbq8mtvkK8cd5g== + version "3.21.2" + resolved "https://registry.yarnpkg.com/google-protobuf/-/google-protobuf-3.21.2.tgz#4580a2bea8bbb291ee579d1fefb14d6fa3070ea4" + integrity sha512-3MSOYFO5U9mPGikIYCzK0SaThypfGgS6bHqrUGXG3DPHCrb+txNqeEcns1W0lkGfk0rCyNXm7xB9rMxnCiZOoA== grapheme-splitter@^1.0.4: version "1.0.4" @@ -761,9 +768,9 @@ has-flag@^4.0.0: integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== ignore@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.0.tgz#6d3bac8fa7fe0d45d9f9be7bac2fc279577e345a" - integrity sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ== + version "5.2.4" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.4.tgz#a291c0c6178ff1b960befe47fcdec301674a6324" + integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ== import-fresh@^3.0.0, import-fresh@^3.2.1: version "3.3.0" @@ -819,9 +826,9 @@ isexe@^2.0.0: integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== js-sdsl@^4.1.4: - version "4.1.4" - resolved "https://registry.yarnpkg.com/js-sdsl/-/js-sdsl-4.1.4.tgz#78793c90f80e8430b7d8dc94515b6c77d98a26a6" - integrity sha512-Y2/yD55y5jteOAmY50JbUZYwk3CP3wnLPEZnlR1w9oKhITrBEtAxwuWKebFf8hMrPMgbYwFoWK/lH2sBkErELw== + version "4.4.0" + resolved "https://registry.yarnpkg.com/js-sdsl/-/js-sdsl-4.4.0.tgz#8b437dbe642daa95760400b602378ed8ffea8430" + integrity sha512-FfVSdx6pJ41Oa+CF7RDaFmTnCaFhua+SNYQX74riGOpl96x+2jQCqEfQ2bnXu/5DPCqlRuiqyvTJM0Qjz26IVg== js-yaml@^4.1.0: version "4.1.0" @@ -997,20 +1004,15 @@ protobufjs@6.8.8: long "^4.0.0" punycode@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" - integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== + version "2.3.0" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.0.tgz#f67fa67c94da8f4d0cfff981aee4118064199b8f" + integrity sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA== queue-microtask@^1.2.2: version "1.2.3" resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== -regexpp@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2" - integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== - resolve-from@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" @@ -1041,9 +1043,9 @@ semver@5.6.0: integrity sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg== semver@^7.3.7: - version "7.3.7" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.7.tgz#12c5b649afdbf9049707796e22a4028814ce523f" - integrity sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g== + version "7.3.8" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.8.tgz#07a78feafb3f7b32347d725e33de7e2a2df67798" + integrity sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A== dependencies: lru-cache "^6.0.0" @@ -1132,10 +1134,10 @@ type-fest@^0.20.2: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== -typescript@^4.8.3: - version "4.8.3" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.8.3.tgz#d59344522c4bc464a65a730ac695007fdb66dd88" - integrity sha512-goMHfm00nWPa8UvR/CPSvykqf6dVV8x/dp0c5mFTMTIu0u0FlGWRioyy7Nn0PGAdHxpJZnuO/ut+PpQ8UiHAig== +typescript@^5.0.3: + version "5.0.3" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.0.3.tgz#fe976f0c826a88d0a382007681cbb2da44afdedf" + integrity sha512-xv8mOEDnigb/tN9PSMTwSEqAnUvkoXMQlicOb0IUVDBSQCgBSaAAROUZYy2IcUy5qU6XajK5jjjO7TMWqBTKZA== uri-js@^4.2.2: version "4.4.1" @@ -1169,4 +1171,4 @@ yallist@^4.0.0: yocto-queue@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" - integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== \ No newline at end of file + integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== From fa3fa91936fe42a1d687c332c7b84412a21f64a6 Mon Sep 17 00:00:00 2001 From: Jeroen Demeyer Date: Tue, 11 Apr 2023 21:40:00 +0200 Subject: [PATCH 150/571] Fix go_sample.sh (#7903) --- samples/go.mod | 7 +++++++ samples/go_sample.sh | 19 +++++++------------ samples/sample_binary.go | 2 +- 3 files changed, 15 insertions(+), 13 deletions(-) create mode 100644 samples/go.mod diff --git a/samples/go.mod b/samples/go.mod new file mode 100644 index 0000000000..c8f892b81d --- /dev/null +++ b/samples/go.mod @@ -0,0 +1,7 @@ +module github.com/google/flatbuffers/samples + +go 1.20 + +replace github.com/google/flatbuffers/go => ./go_gen + +require github.com/google/flatbuffers/go v0.0.0-00010101000000-000000000000 diff --git a/samples/go_sample.sh b/samples/go_sample.sh index 13a96c1293..9ccd48ed1c 100755 --- a/samples/go_sample.sh +++ b/samples/go_sample.sh @@ -41,23 +41,18 @@ fi echo Compiling and running the Go sample. -# Go requires a particular layout of files in order to link the necessary -# packages. Copy these files to the respective directores to compile the -# sample. -mkdir -p ${sampledir}/go_gen/src/MyGame/Sample -mkdir -p ${sampledir}/go_gen/src/github.com/google/flatbuffers/go -cp MyGame/Sample/*.go ${sampledir}/go_gen/src/MyGame/Sample/ -cp ${sampledir}/../go/* ${sampledir}/go_gen/src/github.com/google/flatbuffers/go - -# Export the `GOPATH`, so that `go` will know which directories to search for -# the libraries. -export GOPATH=${sampledir}/go_gen/ +# Workaround for https://github.com/google/flatbuffers/issues/7780: +# go mod replace requires a go.mod file in the target directory, +# but there currently isn't one in the ../go directory. +# So we copy the ../go directory to go_gen and manually create go_gen/go.mod +mkdir -p ${sampledir}/go_gen +cp ${sampledir}/../go/* ${sampledir}/go_gen +( cd ${sampledir}/go_gen && go mod init github.com/google/flatbuffers/go ) # Compile and execute the sample. go build -o go_sample sample_binary.go ./go_sample # Clean up the temporary files. -rm -rf MyGame/ rm -rf ${sampledir}/go_gen/ rm go_sample diff --git a/samples/sample_binary.go b/samples/sample_binary.go index e04650be6d..7b7efac2e1 100644 --- a/samples/sample_binary.go +++ b/samples/sample_binary.go @@ -19,7 +19,7 @@ package main import ( - sample "MyGame/Sample" + sample "github.com/google/flatbuffers/samples/MyGame/Sample" "fmt" flatbuffers "github.com/google/flatbuffers/go" "strconv" From 3fda20d7c7fe1f8006210bddae8cb55bc7a74c3b Mon Sep 17 00:00:00 2001 From: Jeroen Demeyer Date: Wed, 12 Apr 2023 02:08:04 +0200 Subject: [PATCH 151/571] Go: add test for FinishWithFileIdentifier (#7905) Co-authored-by: Michael Le --- tests/go_test.go | 77 ++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 75 insertions(+), 2 deletions(-) diff --git a/tests/go_test.go b/tests/go_test.go index 7cbac1e5e8..1a46b272bd 100644 --- a/tests/go_test.go +++ b/tests/go_test.go @@ -17,12 +17,12 @@ package main import ( - order "order" - pizza "Pizza" mygame "MyGame" // refers to generated code example "MyGame/Example" // refers to generated code + pizza "Pizza" "encoding/json" optional_scalars "optional_scalars" // refers to generated code + order "order" "bytes" "flag" @@ -1067,6 +1067,79 @@ func CheckByteLayout(fail func(string, ...interface{})) { 33, // value 0 }) + // test 16b: same as test 16, size prefixed + b = flatbuffers.NewBuilder(0) + b.StartObject(2) + b.PrependInt8Slot(0, 33, 0) + b.PrependInt16Slot(1, 66, 0) + off = b.EndObject() + b.FinishSizePrefixed(off) + + check([]byte{ + 20, 0, 0, 0, // size prefix + 12, 0, 0, 0, // root of table: points to vtable offset + + 8, 0, // vtable bytes + 8, 0, // end of object from here + 7, 0, // start of value 0 + 4, 0, // start of value 1 + + 8, 0, 0, 0, // offset for start of vtable (int32) + + 66, 0, // value 1 + 0, // padding + 33, // value 0 + }) + + // test 16c: same as test 16, with file identifier + b = flatbuffers.NewBuilder(0) + b.StartObject(2) + b.PrependInt8Slot(0, 33, 0) + b.PrependInt16Slot(1, 66, 0) + off = b.EndObject() + b.FinishWithFileIdentifier(off, []byte("TEST")) + + check([]byte{ + 16, 0, 0, 0, // root of table: points to vtable offset + 'T', 'E', 'S', 'T', // file identifier + + 8, 0, // vtable bytes + 8, 0, // end of object from here + 7, 0, // start of value 0 + 4, 0, // start of value 1 + + 8, 0, 0, 0, // offset for start of vtable (int32) + + 66, 0, // value 1 + 0, // padding + 33, // value 0 + }) + + // test 16d: same as test 16, size prefixed with file identifier + b = flatbuffers.NewBuilder(0) + b.StartObject(2) + b.PrependInt8Slot(0, 33, 0) + b.PrependInt16Slot(1, 66, 0) + off = b.EndObject() + b.FinishSizePrefixedWithFileIdentifier(off, []byte("TEST")) + + check([]byte{ + 24, 0, 0, 0, // size prefix + 16, 0, 0, 0, // root of table: points to vtable offset + 'T', 'E', 'S', 'T', // file identifier + + 8, 0, // vtable bytes + 8, 0, // end of object from here + 7, 0, // start of value 0 + 4, 0, // start of value 1 + + 8, 0, 0, 0, // offset for start of vtable (int32) + + 66, 0, // value 1 + 0, // padding + 33, // value 0 + }) + // test 17: one unfinished table and one finished table b = flatbuffers.NewBuilder(0) b.StartObject(2) From 56ecc1f548f4bb4143b7a01db9b01d331e468977 Mon Sep 17 00:00:00 2001 From: Max Burke Date: Tue, 25 Apr 2023 21:38:16 -0700 Subject: [PATCH 152/571] Optionally generate type prefixes and suffixes for python code (#7857) * optionally generate type prefixes and suffixes for python code * fix codegen error when qualified name is empty * generated code updated --- .../python/greeter/models/HelloReply.py | 16 +- .../python/greeter/models/HelloRequest.py | 16 +- include/flatbuffers/idl.h | 2 + python/flatbuffers/reflection/Enum.py | 61 ++- python/flatbuffers/reflection/EnumVal.py | 46 +- python/flatbuffers/reflection/Field.py | 86 +++- python/flatbuffers/reflection/KeyValue.py | 21 +- python/flatbuffers/reflection/Object.py | 66 ++- python/flatbuffers/reflection/RPCCall.py | 46 +- python/flatbuffers/reflection/Schema.py | 71 ++- python/flatbuffers/reflection/SchemaFile.py | 26 +- python/flatbuffers/reflection/Service.py | 51 +- python/flatbuffers/reflection/Type.py | 41 +- src/flatc.cpp | 6 +- src/idl_gen_python.cpp | 71 +-- tests/MyGame/Example/ArrayTable.py | 15 +- tests/MyGame/Example/Monster.py | 419 ++++++++++++---- .../Example/NestedUnion/NestedUnionTest.py | 30 +- .../NestedUnion/TestSimpleTableWithEnum.py | 15 +- tests/MyGame/Example/NestedUnion/Vec3.py | 40 +- tests/MyGame/Example/Referrable.py | 15 +- tests/MyGame/Example/Stat.py | 25 +- .../MyGame/Example/TestSimpleTableWithEnum.py | 15 +- tests/MyGame/Example/TypeAliases.py | 80 ++- tests/MyGame/Example2/Monster.py | 10 +- tests/MyGame/InParentNamespace.py | 10 +- tests/MyGame/MonsterExtra.py | 70 ++- tests/monster_test_generated.py | 460 +++++++++++++----- tests/optional_scalars/ScalarStuff.py | 190 ++++++-- 29 files changed, 1567 insertions(+), 453 deletions(-) diff --git a/grpc/examples/python/greeter/models/HelloReply.py b/grpc/examples/python/greeter/models/HelloReply.py index 301c84d9c5..f1082fa23e 100644 --- a/grpc/examples/python/greeter/models/HelloReply.py +++ b/grpc/examples/python/greeter/models/HelloReply.py @@ -31,12 +31,20 @@ def Message(self): return self._tab.String(o + self._tab.Pos) return None -def HelloReplyStart(builder): builder.StartObject(1) +def HelloReplyStart(builder): + return builder.StartObject(1) + def Start(builder): return HelloReplyStart(builder) -def HelloReplyAddMessage(builder, message): builder.PrependUOffsetTRelativeSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(message), 0) + +def HelloReplyAddMessage(builder, message): + return builder.PrependUOffsetTRelativeSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(message), 0) + def AddMessage(builder, message): return HelloReplyAddMessage(builder, message) -def HelloReplyEnd(builder): return builder.EndObject() + +def HelloReplyEnd(builder): + return builder.EndObject() + def End(builder): - return HelloReplyEnd(builder) \ No newline at end of file + return HelloReplyEnd(builder) diff --git a/grpc/examples/python/greeter/models/HelloRequest.py b/grpc/examples/python/greeter/models/HelloRequest.py index 122568fd21..b295369e64 100644 --- a/grpc/examples/python/greeter/models/HelloRequest.py +++ b/grpc/examples/python/greeter/models/HelloRequest.py @@ -31,12 +31,20 @@ def Name(self): return self._tab.String(o + self._tab.Pos) return None -def HelloRequestStart(builder): builder.StartObject(1) +def HelloRequestStart(builder): + return builder.StartObject(1) + def Start(builder): return HelloRequestStart(builder) -def HelloRequestAddName(builder, name): builder.PrependUOffsetTRelativeSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(name), 0) + +def HelloRequestAddName(builder, name): + return builder.PrependUOffsetTRelativeSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(name), 0) + def AddName(builder, name): return HelloRequestAddName(builder, name) -def HelloRequestEnd(builder): return builder.EndObject() + +def HelloRequestEnd(builder): + return builder.EndObject() + def End(builder): - return HelloRequestEnd(builder) \ No newline at end of file + return HelloRequestEnd(builder) diff --git a/include/flatbuffers/idl.h b/include/flatbuffers/idl.h index 8f08003d2c..bee6727404 100644 --- a/include/flatbuffers/idl.h +++ b/include/flatbuffers/idl.h @@ -697,6 +697,7 @@ struct IDLOptions { bool no_leak_private_annotations; bool require_json_eof; bool keep_proto_id; + bool python_no_type_prefix_suffix; ProtoIdGapAction proto_id_gap_action; // Possible options for the more general generator below. @@ -806,6 +807,7 @@ struct IDLOptions { no_leak_private_annotations(false), require_json_eof(true), keep_proto_id(false), + python_no_type_prefix_suffix(false), proto_id_gap_action(ProtoIdGapAction::WARNING), mini_reflect(IDLOptions::kNone), require_explicit_ids(false), diff --git a/python/flatbuffers/reflection/Enum.py b/python/flatbuffers/reflection/Enum.py index b27e4102c2..bd2a7b3363 100644 --- a/python/flatbuffers/reflection/Enum.py +++ b/python/flatbuffers/reflection/Enum.py @@ -131,39 +131,74 @@ def DeclarationFile(self): return self._tab.String(o + self._tab.Pos) return None -def EnumStart(builder): builder.StartObject(7) +def EnumStart(builder): + return builder.StartObject(7) + def Start(builder): return EnumStart(builder) -def EnumAddName(builder, name): builder.PrependUOffsetTRelativeSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(name), 0) + +def EnumAddName(builder, name): + return builder.PrependUOffsetTRelativeSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(name), 0) + def AddName(builder, name): return EnumAddName(builder, name) -def EnumAddValues(builder, values): builder.PrependUOffsetTRelativeSlot(1, flatbuffers.number_types.UOffsetTFlags.py_type(values), 0) + +def EnumAddValues(builder, values): + return builder.PrependUOffsetTRelativeSlot(1, flatbuffers.number_types.UOffsetTFlags.py_type(values), 0) + def AddValues(builder, values): return EnumAddValues(builder, values) -def EnumStartValuesVector(builder, numElems): return builder.StartVector(4, numElems, 4) + +def EnumStartValuesVector(builder, numElems): + return builder.StartVector(4, numElems, 4) + def StartValuesVector(builder, numElems): return EnumStartValuesVector(builder, numElems) -def EnumAddIsUnion(builder, isUnion): builder.PrependBoolSlot(2, isUnion, 0) + +def EnumAddIsUnion(builder, isUnion): + return builder.PrependBoolSlot(2, isUnion, 0) + def AddIsUnion(builder, isUnion): return EnumAddIsUnion(builder, isUnion) -def EnumAddUnderlyingType(builder, underlyingType): builder.PrependUOffsetTRelativeSlot(3, flatbuffers.number_types.UOffsetTFlags.py_type(underlyingType), 0) + +def EnumAddUnderlyingType(builder, underlyingType): + return builder.PrependUOffsetTRelativeSlot(3, flatbuffers.number_types.UOffsetTFlags.py_type(underlyingType), 0) + def AddUnderlyingType(builder, underlyingType): return EnumAddUnderlyingType(builder, underlyingType) -def EnumAddAttributes(builder, attributes): builder.PrependUOffsetTRelativeSlot(4, flatbuffers.number_types.UOffsetTFlags.py_type(attributes), 0) + +def EnumAddAttributes(builder, attributes): + return builder.PrependUOffsetTRelativeSlot(4, flatbuffers.number_types.UOffsetTFlags.py_type(attributes), 0) + def AddAttributes(builder, attributes): return EnumAddAttributes(builder, attributes) -def EnumStartAttributesVector(builder, numElems): return builder.StartVector(4, numElems, 4) + +def EnumStartAttributesVector(builder, numElems): + return builder.StartVector(4, numElems, 4) + def StartAttributesVector(builder, numElems): return EnumStartAttributesVector(builder, numElems) -def EnumAddDocumentation(builder, documentation): builder.PrependUOffsetTRelativeSlot(5, flatbuffers.number_types.UOffsetTFlags.py_type(documentation), 0) + +def EnumAddDocumentation(builder, documentation): + return builder.PrependUOffsetTRelativeSlot(5, flatbuffers.number_types.UOffsetTFlags.py_type(documentation), 0) + def AddDocumentation(builder, documentation): return EnumAddDocumentation(builder, documentation) -def EnumStartDocumentationVector(builder, numElems): return builder.StartVector(4, numElems, 4) + +def EnumStartDocumentationVector(builder, numElems): + return builder.StartVector(4, numElems, 4) + def StartDocumentationVector(builder, numElems): return EnumStartDocumentationVector(builder, numElems) -def EnumAddDeclarationFile(builder, declarationFile): builder.PrependUOffsetTRelativeSlot(6, flatbuffers.number_types.UOffsetTFlags.py_type(declarationFile), 0) + +def EnumAddDeclarationFile(builder, declarationFile): + return builder.PrependUOffsetTRelativeSlot(6, flatbuffers.number_types.UOffsetTFlags.py_type(declarationFile), 0) + def AddDeclarationFile(builder, declarationFile): return EnumAddDeclarationFile(builder, declarationFile) -def EnumEnd(builder): return builder.EndObject() + +def EnumEnd(builder): + return builder.EndObject() + def End(builder): - return EnumEnd(builder) \ No newline at end of file + return EnumEnd(builder) diff --git a/python/flatbuffers/reflection/EnumVal.py b/python/flatbuffers/reflection/EnumVal.py index 3592de08c4..7019ec46d5 100644 --- a/python/flatbuffers/reflection/EnumVal.py +++ b/python/flatbuffers/reflection/EnumVal.py @@ -98,30 +98,56 @@ def AttributesIsNone(self): o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(14)) return o == 0 -def EnumValStart(builder): builder.StartObject(6) +def EnumValStart(builder): + return builder.StartObject(6) + def Start(builder): return EnumValStart(builder) -def EnumValAddName(builder, name): builder.PrependUOffsetTRelativeSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(name), 0) + +def EnumValAddName(builder, name): + return builder.PrependUOffsetTRelativeSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(name), 0) + def AddName(builder, name): return EnumValAddName(builder, name) -def EnumValAddValue(builder, value): builder.PrependInt64Slot(1, value, 0) + +def EnumValAddValue(builder, value): + return builder.PrependInt64Slot(1, value, 0) + def AddValue(builder, value): return EnumValAddValue(builder, value) -def EnumValAddUnionType(builder, unionType): builder.PrependUOffsetTRelativeSlot(3, flatbuffers.number_types.UOffsetTFlags.py_type(unionType), 0) + +def EnumValAddUnionType(builder, unionType): + return builder.PrependUOffsetTRelativeSlot(3, flatbuffers.number_types.UOffsetTFlags.py_type(unionType), 0) + def AddUnionType(builder, unionType): return EnumValAddUnionType(builder, unionType) -def EnumValAddDocumentation(builder, documentation): builder.PrependUOffsetTRelativeSlot(4, flatbuffers.number_types.UOffsetTFlags.py_type(documentation), 0) + +def EnumValAddDocumentation(builder, documentation): + return builder.PrependUOffsetTRelativeSlot(4, flatbuffers.number_types.UOffsetTFlags.py_type(documentation), 0) + def AddDocumentation(builder, documentation): return EnumValAddDocumentation(builder, documentation) -def EnumValStartDocumentationVector(builder, numElems): return builder.StartVector(4, numElems, 4) + +def EnumValStartDocumentationVector(builder, numElems): + return builder.StartVector(4, numElems, 4) + def StartDocumentationVector(builder, numElems): return EnumValStartDocumentationVector(builder, numElems) -def EnumValAddAttributes(builder, attributes): builder.PrependUOffsetTRelativeSlot(5, flatbuffers.number_types.UOffsetTFlags.py_type(attributes), 0) + +def EnumValAddAttributes(builder, attributes): + return builder.PrependUOffsetTRelativeSlot(5, flatbuffers.number_types.UOffsetTFlags.py_type(attributes), 0) + def AddAttributes(builder, attributes): return EnumValAddAttributes(builder, attributes) -def EnumValStartAttributesVector(builder, numElems): return builder.StartVector(4, numElems, 4) + +def EnumValStartAttributesVector(builder, numElems): + return builder.StartVector(4, numElems, 4) + def StartAttributesVector(builder, numElems): return EnumValStartAttributesVector(builder, numElems) -def EnumValEnd(builder): return builder.EndObject() + +def EnumValEnd(builder): + return builder.EndObject() + def End(builder): - return EnumValEnd(builder) \ No newline at end of file + return EnumValEnd(builder) diff --git a/python/flatbuffers/reflection/Field.py b/python/flatbuffers/reflection/Field.py index 01b52808a1..a0e660fd66 100644 --- a/python/flatbuffers/reflection/Field.py +++ b/python/flatbuffers/reflection/Field.py @@ -155,54 +155,104 @@ def Padding(self): return self._tab.Get(flatbuffers.number_types.Uint16Flags, o + self._tab.Pos) return 0 -def FieldStart(builder): builder.StartObject(13) +def FieldStart(builder): + return builder.StartObject(13) + def Start(builder): return FieldStart(builder) -def FieldAddName(builder, name): builder.PrependUOffsetTRelativeSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(name), 0) + +def FieldAddName(builder, name): + return builder.PrependUOffsetTRelativeSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(name), 0) + def AddName(builder, name): return FieldAddName(builder, name) -def FieldAddType(builder, type): builder.PrependUOffsetTRelativeSlot(1, flatbuffers.number_types.UOffsetTFlags.py_type(type), 0) + +def FieldAddType(builder, type): + return builder.PrependUOffsetTRelativeSlot(1, flatbuffers.number_types.UOffsetTFlags.py_type(type), 0) + def AddType(builder, type): return FieldAddType(builder, type) -def FieldAddId(builder, id): builder.PrependUint16Slot(2, id, 0) + +def FieldAddId(builder, id): + return builder.PrependUint16Slot(2, id, 0) + def AddId(builder, id): return FieldAddId(builder, id) -def FieldAddOffset(builder, offset): builder.PrependUint16Slot(3, offset, 0) + +def FieldAddOffset(builder, offset): + return builder.PrependUint16Slot(3, offset, 0) + def AddOffset(builder, offset): return FieldAddOffset(builder, offset) -def FieldAddDefaultInteger(builder, defaultInteger): builder.PrependInt64Slot(4, defaultInteger, 0) + +def FieldAddDefaultInteger(builder, defaultInteger): + return builder.PrependInt64Slot(4, defaultInteger, 0) + def AddDefaultInteger(builder, defaultInteger): return FieldAddDefaultInteger(builder, defaultInteger) -def FieldAddDefaultReal(builder, defaultReal): builder.PrependFloat64Slot(5, defaultReal, 0.0) + +def FieldAddDefaultReal(builder, defaultReal): + return builder.PrependFloat64Slot(5, defaultReal, 0.0) + def AddDefaultReal(builder, defaultReal): return FieldAddDefaultReal(builder, defaultReal) -def FieldAddDeprecated(builder, deprecated): builder.PrependBoolSlot(6, deprecated, 0) + +def FieldAddDeprecated(builder, deprecated): + return builder.PrependBoolSlot(6, deprecated, 0) + def AddDeprecated(builder, deprecated): return FieldAddDeprecated(builder, deprecated) -def FieldAddRequired(builder, required): builder.PrependBoolSlot(7, required, 0) + +def FieldAddRequired(builder, required): + return builder.PrependBoolSlot(7, required, 0) + def AddRequired(builder, required): return FieldAddRequired(builder, required) -def FieldAddKey(builder, key): builder.PrependBoolSlot(8, key, 0) + +def FieldAddKey(builder, key): + return builder.PrependBoolSlot(8, key, 0) + def AddKey(builder, key): return FieldAddKey(builder, key) -def FieldAddAttributes(builder, attributes): builder.PrependUOffsetTRelativeSlot(9, flatbuffers.number_types.UOffsetTFlags.py_type(attributes), 0) + +def FieldAddAttributes(builder, attributes): + return builder.PrependUOffsetTRelativeSlot(9, flatbuffers.number_types.UOffsetTFlags.py_type(attributes), 0) + def AddAttributes(builder, attributes): return FieldAddAttributes(builder, attributes) -def FieldStartAttributesVector(builder, numElems): return builder.StartVector(4, numElems, 4) + +def FieldStartAttributesVector(builder, numElems): + return builder.StartVector(4, numElems, 4) + def StartAttributesVector(builder, numElems): return FieldStartAttributesVector(builder, numElems) -def FieldAddDocumentation(builder, documentation): builder.PrependUOffsetTRelativeSlot(10, flatbuffers.number_types.UOffsetTFlags.py_type(documentation), 0) + +def FieldAddDocumentation(builder, documentation): + return builder.PrependUOffsetTRelativeSlot(10, flatbuffers.number_types.UOffsetTFlags.py_type(documentation), 0) + def AddDocumentation(builder, documentation): return FieldAddDocumentation(builder, documentation) -def FieldStartDocumentationVector(builder, numElems): return builder.StartVector(4, numElems, 4) + +def FieldStartDocumentationVector(builder, numElems): + return builder.StartVector(4, numElems, 4) + def StartDocumentationVector(builder, numElems): return FieldStartDocumentationVector(builder, numElems) -def FieldAddOptional(builder, optional): builder.PrependBoolSlot(11, optional, 0) + +def FieldAddOptional(builder, optional): + return builder.PrependBoolSlot(11, optional, 0) + def AddOptional(builder, optional): return FieldAddOptional(builder, optional) -def FieldAddPadding(builder, padding): builder.PrependUint16Slot(12, padding, 0) + +def FieldAddPadding(builder, padding): + return builder.PrependUint16Slot(12, padding, 0) + def AddPadding(builder, padding): return FieldAddPadding(builder, padding) -def FieldEnd(builder): return builder.EndObject() + +def FieldEnd(builder): + return builder.EndObject() + def End(builder): - return FieldEnd(builder) \ No newline at end of file + return FieldEnd(builder) diff --git a/python/flatbuffers/reflection/KeyValue.py b/python/flatbuffers/reflection/KeyValue.py index dde37dff8a..7b24a76e51 100644 --- a/python/flatbuffers/reflection/KeyValue.py +++ b/python/flatbuffers/reflection/KeyValue.py @@ -42,15 +42,26 @@ def Value(self): return self._tab.String(o + self._tab.Pos) return None -def KeyValueStart(builder): builder.StartObject(2) +def KeyValueStart(builder): + return builder.StartObject(2) + def Start(builder): return KeyValueStart(builder) -def KeyValueAddKey(builder, key): builder.PrependUOffsetTRelativeSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(key), 0) + +def KeyValueAddKey(builder, key): + return builder.PrependUOffsetTRelativeSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(key), 0) + def AddKey(builder, key): return KeyValueAddKey(builder, key) -def KeyValueAddValue(builder, value): builder.PrependUOffsetTRelativeSlot(1, flatbuffers.number_types.UOffsetTFlags.py_type(value), 0) + +def KeyValueAddValue(builder, value): + return builder.PrependUOffsetTRelativeSlot(1, flatbuffers.number_types.UOffsetTFlags.py_type(value), 0) + def AddValue(builder, value): return KeyValueAddValue(builder, value) -def KeyValueEnd(builder): return builder.EndObject() + +def KeyValueEnd(builder): + return builder.EndObject() + def End(builder): - return KeyValueEnd(builder) \ No newline at end of file + return KeyValueEnd(builder) diff --git a/python/flatbuffers/reflection/Object.py b/python/flatbuffers/reflection/Object.py index 598927c8af..f890ffbc1e 100644 --- a/python/flatbuffers/reflection/Object.py +++ b/python/flatbuffers/reflection/Object.py @@ -134,42 +134,80 @@ def DeclarationFile(self): return self._tab.String(o + self._tab.Pos) return None -def ObjectStart(builder): builder.StartObject(8) +def ObjectStart(builder): + return builder.StartObject(8) + def Start(builder): return ObjectStart(builder) -def ObjectAddName(builder, name): builder.PrependUOffsetTRelativeSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(name), 0) + +def ObjectAddName(builder, name): + return builder.PrependUOffsetTRelativeSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(name), 0) + def AddName(builder, name): return ObjectAddName(builder, name) -def ObjectAddFields(builder, fields): builder.PrependUOffsetTRelativeSlot(1, flatbuffers.number_types.UOffsetTFlags.py_type(fields), 0) + +def ObjectAddFields(builder, fields): + return builder.PrependUOffsetTRelativeSlot(1, flatbuffers.number_types.UOffsetTFlags.py_type(fields), 0) + def AddFields(builder, fields): return ObjectAddFields(builder, fields) -def ObjectStartFieldsVector(builder, numElems): return builder.StartVector(4, numElems, 4) + +def ObjectStartFieldsVector(builder, numElems): + return builder.StartVector(4, numElems, 4) + def StartFieldsVector(builder, numElems): return ObjectStartFieldsVector(builder, numElems) -def ObjectAddIsStruct(builder, isStruct): builder.PrependBoolSlot(2, isStruct, 0) + +def ObjectAddIsStruct(builder, isStruct): + return builder.PrependBoolSlot(2, isStruct, 0) + def AddIsStruct(builder, isStruct): return ObjectAddIsStruct(builder, isStruct) -def ObjectAddMinalign(builder, minalign): builder.PrependInt32Slot(3, minalign, 0) + +def ObjectAddMinalign(builder, minalign): + return builder.PrependInt32Slot(3, minalign, 0) + def AddMinalign(builder, minalign): return ObjectAddMinalign(builder, minalign) -def ObjectAddBytesize(builder, bytesize): builder.PrependInt32Slot(4, bytesize, 0) + +def ObjectAddBytesize(builder, bytesize): + return builder.PrependInt32Slot(4, bytesize, 0) + def AddBytesize(builder, bytesize): return ObjectAddBytesize(builder, bytesize) -def ObjectAddAttributes(builder, attributes): builder.PrependUOffsetTRelativeSlot(5, flatbuffers.number_types.UOffsetTFlags.py_type(attributes), 0) + +def ObjectAddAttributes(builder, attributes): + return builder.PrependUOffsetTRelativeSlot(5, flatbuffers.number_types.UOffsetTFlags.py_type(attributes), 0) + def AddAttributes(builder, attributes): return ObjectAddAttributes(builder, attributes) -def ObjectStartAttributesVector(builder, numElems): return builder.StartVector(4, numElems, 4) + +def ObjectStartAttributesVector(builder, numElems): + return builder.StartVector(4, numElems, 4) + def StartAttributesVector(builder, numElems): return ObjectStartAttributesVector(builder, numElems) -def ObjectAddDocumentation(builder, documentation): builder.PrependUOffsetTRelativeSlot(6, flatbuffers.number_types.UOffsetTFlags.py_type(documentation), 0) + +def ObjectAddDocumentation(builder, documentation): + return builder.PrependUOffsetTRelativeSlot(6, flatbuffers.number_types.UOffsetTFlags.py_type(documentation), 0) + def AddDocumentation(builder, documentation): return ObjectAddDocumentation(builder, documentation) -def ObjectStartDocumentationVector(builder, numElems): return builder.StartVector(4, numElems, 4) + +def ObjectStartDocumentationVector(builder, numElems): + return builder.StartVector(4, numElems, 4) + def StartDocumentationVector(builder, numElems): return ObjectStartDocumentationVector(builder, numElems) -def ObjectAddDeclarationFile(builder, declarationFile): builder.PrependUOffsetTRelativeSlot(7, flatbuffers.number_types.UOffsetTFlags.py_type(declarationFile), 0) + +def ObjectAddDeclarationFile(builder, declarationFile): + return builder.PrependUOffsetTRelativeSlot(7, flatbuffers.number_types.UOffsetTFlags.py_type(declarationFile), 0) + def AddDeclarationFile(builder, declarationFile): return ObjectAddDeclarationFile(builder, declarationFile) -def ObjectEnd(builder): return builder.EndObject() + +def ObjectEnd(builder): + return builder.EndObject() + def End(builder): - return ObjectEnd(builder) \ No newline at end of file + return ObjectEnd(builder) diff --git a/python/flatbuffers/reflection/RPCCall.py b/python/flatbuffers/reflection/RPCCall.py index 9fdbf468b8..b126f04e43 100644 --- a/python/flatbuffers/reflection/RPCCall.py +++ b/python/flatbuffers/reflection/RPCCall.py @@ -102,30 +102,56 @@ def DocumentationIsNone(self): o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(12)) return o == 0 -def RPCCallStart(builder): builder.StartObject(5) +def RPCCallStart(builder): + return builder.StartObject(5) + def Start(builder): return RPCCallStart(builder) -def RPCCallAddName(builder, name): builder.PrependUOffsetTRelativeSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(name), 0) + +def RPCCallAddName(builder, name): + return builder.PrependUOffsetTRelativeSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(name), 0) + def AddName(builder, name): return RPCCallAddName(builder, name) -def RPCCallAddRequest(builder, request): builder.PrependUOffsetTRelativeSlot(1, flatbuffers.number_types.UOffsetTFlags.py_type(request), 0) + +def RPCCallAddRequest(builder, request): + return builder.PrependUOffsetTRelativeSlot(1, flatbuffers.number_types.UOffsetTFlags.py_type(request), 0) + def AddRequest(builder, request): return RPCCallAddRequest(builder, request) -def RPCCallAddResponse(builder, response): builder.PrependUOffsetTRelativeSlot(2, flatbuffers.number_types.UOffsetTFlags.py_type(response), 0) + +def RPCCallAddResponse(builder, response): + return builder.PrependUOffsetTRelativeSlot(2, flatbuffers.number_types.UOffsetTFlags.py_type(response), 0) + def AddResponse(builder, response): return RPCCallAddResponse(builder, response) -def RPCCallAddAttributes(builder, attributes): builder.PrependUOffsetTRelativeSlot(3, flatbuffers.number_types.UOffsetTFlags.py_type(attributes), 0) + +def RPCCallAddAttributes(builder, attributes): + return builder.PrependUOffsetTRelativeSlot(3, flatbuffers.number_types.UOffsetTFlags.py_type(attributes), 0) + def AddAttributes(builder, attributes): return RPCCallAddAttributes(builder, attributes) -def RPCCallStartAttributesVector(builder, numElems): return builder.StartVector(4, numElems, 4) + +def RPCCallStartAttributesVector(builder, numElems): + return builder.StartVector(4, numElems, 4) + def StartAttributesVector(builder, numElems): return RPCCallStartAttributesVector(builder, numElems) -def RPCCallAddDocumentation(builder, documentation): builder.PrependUOffsetTRelativeSlot(4, flatbuffers.number_types.UOffsetTFlags.py_type(documentation), 0) + +def RPCCallAddDocumentation(builder, documentation): + return builder.PrependUOffsetTRelativeSlot(4, flatbuffers.number_types.UOffsetTFlags.py_type(documentation), 0) + def AddDocumentation(builder, documentation): return RPCCallAddDocumentation(builder, documentation) -def RPCCallStartDocumentationVector(builder, numElems): return builder.StartVector(4, numElems, 4) + +def RPCCallStartDocumentationVector(builder, numElems): + return builder.StartVector(4, numElems, 4) + def StartDocumentationVector(builder, numElems): return RPCCallStartDocumentationVector(builder, numElems) -def RPCCallEnd(builder): return builder.EndObject() + +def RPCCallEnd(builder): + return builder.EndObject() + def End(builder): - return RPCCallEnd(builder) \ No newline at end of file + return RPCCallEnd(builder) diff --git a/python/flatbuffers/reflection/Schema.py b/python/flatbuffers/reflection/Schema.py index df2f072f98..d7929a49b6 100644 --- a/python/flatbuffers/reflection/Schema.py +++ b/python/flatbuffers/reflection/Schema.py @@ -162,45 +162,86 @@ def FbsFilesIsNone(self): o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(18)) return o == 0 -def SchemaStart(builder): builder.StartObject(8) +def SchemaStart(builder): + return builder.StartObject(8) + def Start(builder): return SchemaStart(builder) -def SchemaAddObjects(builder, objects): builder.PrependUOffsetTRelativeSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(objects), 0) + +def SchemaAddObjects(builder, objects): + return builder.PrependUOffsetTRelativeSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(objects), 0) + def AddObjects(builder, objects): return SchemaAddObjects(builder, objects) -def SchemaStartObjectsVector(builder, numElems): return builder.StartVector(4, numElems, 4) + +def SchemaStartObjectsVector(builder, numElems): + return builder.StartVector(4, numElems, 4) + def StartObjectsVector(builder, numElems): return SchemaStartObjectsVector(builder, numElems) -def SchemaAddEnums(builder, enums): builder.PrependUOffsetTRelativeSlot(1, flatbuffers.number_types.UOffsetTFlags.py_type(enums), 0) + +def SchemaAddEnums(builder, enums): + return builder.PrependUOffsetTRelativeSlot(1, flatbuffers.number_types.UOffsetTFlags.py_type(enums), 0) + def AddEnums(builder, enums): return SchemaAddEnums(builder, enums) -def SchemaStartEnumsVector(builder, numElems): return builder.StartVector(4, numElems, 4) + +def SchemaStartEnumsVector(builder, numElems): + return builder.StartVector(4, numElems, 4) + def StartEnumsVector(builder, numElems): return SchemaStartEnumsVector(builder, numElems) -def SchemaAddFileIdent(builder, fileIdent): builder.PrependUOffsetTRelativeSlot(2, flatbuffers.number_types.UOffsetTFlags.py_type(fileIdent), 0) + +def SchemaAddFileIdent(builder, fileIdent): + return builder.PrependUOffsetTRelativeSlot(2, flatbuffers.number_types.UOffsetTFlags.py_type(fileIdent), 0) + def AddFileIdent(builder, fileIdent): return SchemaAddFileIdent(builder, fileIdent) -def SchemaAddFileExt(builder, fileExt): builder.PrependUOffsetTRelativeSlot(3, flatbuffers.number_types.UOffsetTFlags.py_type(fileExt), 0) + +def SchemaAddFileExt(builder, fileExt): + return builder.PrependUOffsetTRelativeSlot(3, flatbuffers.number_types.UOffsetTFlags.py_type(fileExt), 0) + def AddFileExt(builder, fileExt): return SchemaAddFileExt(builder, fileExt) -def SchemaAddRootTable(builder, rootTable): builder.PrependUOffsetTRelativeSlot(4, flatbuffers.number_types.UOffsetTFlags.py_type(rootTable), 0) + +def SchemaAddRootTable(builder, rootTable): + return builder.PrependUOffsetTRelativeSlot(4, flatbuffers.number_types.UOffsetTFlags.py_type(rootTable), 0) + def AddRootTable(builder, rootTable): return SchemaAddRootTable(builder, rootTable) -def SchemaAddServices(builder, services): builder.PrependUOffsetTRelativeSlot(5, flatbuffers.number_types.UOffsetTFlags.py_type(services), 0) + +def SchemaAddServices(builder, services): + return builder.PrependUOffsetTRelativeSlot(5, flatbuffers.number_types.UOffsetTFlags.py_type(services), 0) + def AddServices(builder, services): return SchemaAddServices(builder, services) -def SchemaStartServicesVector(builder, numElems): return builder.StartVector(4, numElems, 4) + +def SchemaStartServicesVector(builder, numElems): + return builder.StartVector(4, numElems, 4) + def StartServicesVector(builder, numElems): return SchemaStartServicesVector(builder, numElems) -def SchemaAddAdvancedFeatures(builder, advancedFeatures): builder.PrependUint64Slot(6, advancedFeatures, 0) + +def SchemaAddAdvancedFeatures(builder, advancedFeatures): + return builder.PrependUint64Slot(6, advancedFeatures, 0) + def AddAdvancedFeatures(builder, advancedFeatures): return SchemaAddAdvancedFeatures(builder, advancedFeatures) -def SchemaAddFbsFiles(builder, fbsFiles): builder.PrependUOffsetTRelativeSlot(7, flatbuffers.number_types.UOffsetTFlags.py_type(fbsFiles), 0) + +def SchemaAddFbsFiles(builder, fbsFiles): + return builder.PrependUOffsetTRelativeSlot(7, flatbuffers.number_types.UOffsetTFlags.py_type(fbsFiles), 0) + def AddFbsFiles(builder, fbsFiles): return SchemaAddFbsFiles(builder, fbsFiles) -def SchemaStartFbsFilesVector(builder, numElems): return builder.StartVector(4, numElems, 4) + +def SchemaStartFbsFilesVector(builder, numElems): + return builder.StartVector(4, numElems, 4) + def StartFbsFilesVector(builder, numElems): return SchemaStartFbsFilesVector(builder, numElems) -def SchemaEnd(builder): return builder.EndObject() + +def SchemaEnd(builder): + return builder.EndObject() + def End(builder): - return SchemaEnd(builder) \ No newline at end of file + return SchemaEnd(builder) diff --git a/python/flatbuffers/reflection/SchemaFile.py b/python/flatbuffers/reflection/SchemaFile.py index 890fd3b530..d4c8178621 100644 --- a/python/flatbuffers/reflection/SchemaFile.py +++ b/python/flatbuffers/reflection/SchemaFile.py @@ -60,18 +60,32 @@ def IncludedFilenamesIsNone(self): o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(6)) return o == 0 -def SchemaFileStart(builder): builder.StartObject(2) +def SchemaFileStart(builder): + return builder.StartObject(2) + def Start(builder): return SchemaFileStart(builder) -def SchemaFileAddFilename(builder, filename): builder.PrependUOffsetTRelativeSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(filename), 0) + +def SchemaFileAddFilename(builder, filename): + return builder.PrependUOffsetTRelativeSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(filename), 0) + def AddFilename(builder, filename): return SchemaFileAddFilename(builder, filename) -def SchemaFileAddIncludedFilenames(builder, includedFilenames): builder.PrependUOffsetTRelativeSlot(1, flatbuffers.number_types.UOffsetTFlags.py_type(includedFilenames), 0) + +def SchemaFileAddIncludedFilenames(builder, includedFilenames): + return builder.PrependUOffsetTRelativeSlot(1, flatbuffers.number_types.UOffsetTFlags.py_type(includedFilenames), 0) + def AddIncludedFilenames(builder, includedFilenames): return SchemaFileAddIncludedFilenames(builder, includedFilenames) -def SchemaFileStartIncludedFilenamesVector(builder, numElems): return builder.StartVector(4, numElems, 4) + +def SchemaFileStartIncludedFilenamesVector(builder, numElems): + return builder.StartVector(4, numElems, 4) + def StartIncludedFilenamesVector(builder, numElems): return SchemaFileStartIncludedFilenamesVector(builder, numElems) -def SchemaFileEnd(builder): return builder.EndObject() + +def SchemaFileEnd(builder): + return builder.EndObject() + def End(builder): - return SchemaFileEnd(builder) \ No newline at end of file + return SchemaFileEnd(builder) diff --git a/python/flatbuffers/reflection/Service.py b/python/flatbuffers/reflection/Service.py index d4f1a6a8ea..eaec60af1c 100644 --- a/python/flatbuffers/reflection/Service.py +++ b/python/flatbuffers/reflection/Service.py @@ -113,33 +113,62 @@ def DeclarationFile(self): return self._tab.String(o + self._tab.Pos) return None -def ServiceStart(builder): builder.StartObject(5) +def ServiceStart(builder): + return builder.StartObject(5) + def Start(builder): return ServiceStart(builder) -def ServiceAddName(builder, name): builder.PrependUOffsetTRelativeSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(name), 0) + +def ServiceAddName(builder, name): + return builder.PrependUOffsetTRelativeSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(name), 0) + def AddName(builder, name): return ServiceAddName(builder, name) -def ServiceAddCalls(builder, calls): builder.PrependUOffsetTRelativeSlot(1, flatbuffers.number_types.UOffsetTFlags.py_type(calls), 0) + +def ServiceAddCalls(builder, calls): + return builder.PrependUOffsetTRelativeSlot(1, flatbuffers.number_types.UOffsetTFlags.py_type(calls), 0) + def AddCalls(builder, calls): return ServiceAddCalls(builder, calls) -def ServiceStartCallsVector(builder, numElems): return builder.StartVector(4, numElems, 4) + +def ServiceStartCallsVector(builder, numElems): + return builder.StartVector(4, numElems, 4) + def StartCallsVector(builder, numElems): return ServiceStartCallsVector(builder, numElems) -def ServiceAddAttributes(builder, attributes): builder.PrependUOffsetTRelativeSlot(2, flatbuffers.number_types.UOffsetTFlags.py_type(attributes), 0) + +def ServiceAddAttributes(builder, attributes): + return builder.PrependUOffsetTRelativeSlot(2, flatbuffers.number_types.UOffsetTFlags.py_type(attributes), 0) + def AddAttributes(builder, attributes): return ServiceAddAttributes(builder, attributes) -def ServiceStartAttributesVector(builder, numElems): return builder.StartVector(4, numElems, 4) + +def ServiceStartAttributesVector(builder, numElems): + return builder.StartVector(4, numElems, 4) + def StartAttributesVector(builder, numElems): return ServiceStartAttributesVector(builder, numElems) -def ServiceAddDocumentation(builder, documentation): builder.PrependUOffsetTRelativeSlot(3, flatbuffers.number_types.UOffsetTFlags.py_type(documentation), 0) + +def ServiceAddDocumentation(builder, documentation): + return builder.PrependUOffsetTRelativeSlot(3, flatbuffers.number_types.UOffsetTFlags.py_type(documentation), 0) + def AddDocumentation(builder, documentation): return ServiceAddDocumentation(builder, documentation) -def ServiceStartDocumentationVector(builder, numElems): return builder.StartVector(4, numElems, 4) + +def ServiceStartDocumentationVector(builder, numElems): + return builder.StartVector(4, numElems, 4) + def StartDocumentationVector(builder, numElems): return ServiceStartDocumentationVector(builder, numElems) -def ServiceAddDeclarationFile(builder, declarationFile): builder.PrependUOffsetTRelativeSlot(4, flatbuffers.number_types.UOffsetTFlags.py_type(declarationFile), 0) + +def ServiceAddDeclarationFile(builder, declarationFile): + return builder.PrependUOffsetTRelativeSlot(4, flatbuffers.number_types.UOffsetTFlags.py_type(declarationFile), 0) + def AddDeclarationFile(builder, declarationFile): return ServiceAddDeclarationFile(builder, declarationFile) -def ServiceEnd(builder): return builder.EndObject() + +def ServiceEnd(builder): + return builder.EndObject() + def End(builder): - return ServiceEnd(builder) \ No newline at end of file + return ServiceEnd(builder) diff --git a/python/flatbuffers/reflection/Type.py b/python/flatbuffers/reflection/Type.py index d606ab9ac0..eb58dd8a01 100644 --- a/python/flatbuffers/reflection/Type.py +++ b/python/flatbuffers/reflection/Type.py @@ -72,27 +72,50 @@ def ElementSize(self): return self._tab.Get(flatbuffers.number_types.Uint32Flags, o + self._tab.Pos) return 0 -def TypeStart(builder): builder.StartObject(6) +def TypeStart(builder): + return builder.StartObject(6) + def Start(builder): return TypeStart(builder) -def TypeAddBaseType(builder, baseType): builder.PrependInt8Slot(0, baseType, 0) + +def TypeAddBaseType(builder, baseType): + return builder.PrependInt8Slot(0, baseType, 0) + def AddBaseType(builder, baseType): return TypeAddBaseType(builder, baseType) -def TypeAddElement(builder, element): builder.PrependInt8Slot(1, element, 0) + +def TypeAddElement(builder, element): + return builder.PrependInt8Slot(1, element, 0) + def AddElement(builder, element): return TypeAddElement(builder, element) -def TypeAddIndex(builder, index): builder.PrependInt32Slot(2, index, -1) + +def TypeAddIndex(builder, index): + return builder.PrependInt32Slot(2, index, -1) + def AddIndex(builder, index): return TypeAddIndex(builder, index) -def TypeAddFixedLength(builder, fixedLength): builder.PrependUint16Slot(3, fixedLength, 0) + +def TypeAddFixedLength(builder, fixedLength): + return builder.PrependUint16Slot(3, fixedLength, 0) + def AddFixedLength(builder, fixedLength): return TypeAddFixedLength(builder, fixedLength) -def TypeAddBaseSize(builder, baseSize): builder.PrependUint32Slot(4, baseSize, 4) + +def TypeAddBaseSize(builder, baseSize): + return builder.PrependUint32Slot(4, baseSize, 4) + def AddBaseSize(builder, baseSize): return TypeAddBaseSize(builder, baseSize) -def TypeAddElementSize(builder, elementSize): builder.PrependUint32Slot(5, elementSize, 0) + +def TypeAddElementSize(builder, elementSize): + return builder.PrependUint32Slot(5, elementSize, 0) + def AddElementSize(builder, elementSize): return TypeAddElementSize(builder, elementSize) -def TypeEnd(builder): return builder.EndObject() + +def TypeEnd(builder): + return builder.EndObject() + def End(builder): - return TypeEnd(builder) \ No newline at end of file + return TypeEnd(builder) diff --git a/src/flatc.cpp b/src/flatc.cpp index a5dd0b1f3b..0e20a2f7da 100644 --- a/src/flatc.cpp +++ b/src/flatc.cpp @@ -250,6 +250,8 @@ const static FlatCOption flatc_options[] = { { "", "no-leak-private-annotation", "", "Prevents multiple type of annotations within a Fbs SCHEMA file. " "Currently this is required to generate private types in Rust" }, + { "", "python-no-type-prefix-suffix", "", + "Skip emission of Python functions that are prefixed with typenames" }, { "", "file-names-only", "", "Print out generated file names without writing to the files"}, }; @@ -650,7 +652,9 @@ FlatCOptions FlatCompiler::ParseFromCommandLineArguments(int argc, opts.ts_no_import_ext = true; } else if (arg == "--no-leak-private-annotation") { opts.no_leak_private_annotations = true; - } else if (arg == "--annotate-sparse-vectors") { + } else if (arg == "--python-no-type-prefix-suffix") { + opts.python_no_type_prefix_suffix = true; + } else if (arg == "--annotate-sparse-vectors") { options.annotate_include_vector_contents = false; } else if (arg == "--annotate") { if (++argi >= argc) Error("missing path following: " + arg, true); diff --git a/src/idl_gen_python.cpp b/src/idl_gen_python.cpp index 5b5ce353a0..6c93b9092d 100644 --- a/src/idl_gen_python.cpp +++ b/src/idl_gen_python.cpp @@ -139,13 +139,15 @@ class PythonGenerator : public BaseGenerator { code += Indent + Indent + "return x\n"; code += "\n"; - // Add an alias with the old name - code += Indent + "@classmethod\n"; - code += Indent + "def GetRootAs" + struct_type + "(cls, buf, offset=0):\n"; - code += - Indent + Indent + - "\"\"\"This method is deprecated. Please switch to GetRootAs.\"\"\"\n"; - code += Indent + Indent + "return cls.GetRootAs(buf, offset)\n"; + if (!parser_.opts.python_no_type_prefix_suffix) { + // Add an alias with the old name + code += Indent + "@classmethod\n"; + code += Indent + "def GetRootAs" + struct_type + "(cls, buf, offset=0):\n"; + code += + Indent + Indent + + "\"\"\"This method is deprecated. Please switch to GetRootAs.\"\"\"\n"; + code += Indent + Indent + "return cls.GetRootAs(buf, offset)\n"; + } } // Initialize an existing object with other data, to avoid an allocation. @@ -480,7 +482,10 @@ class PythonGenerator : public BaseGenerator { if (!nested) { return; } // There is no nested flatbuffer. const std::string unqualified_name = nested->constant; - const std::string qualified_name = NestedFlatbufferType(unqualified_name); + std::string qualified_name = NestedFlatbufferType(unqualified_name); + if (qualified_name.empty()) { + qualified_name = nested->constant; + } auto &code = *code_ptr; GenReceiver(struct_def, code_ptr); @@ -491,7 +496,7 @@ class PythonGenerator : public BaseGenerator { code += Indent + Indent + Indent; code += "from " + qualified_name + " import " + unqualified_name + "\n"; code += Indent + Indent + Indent + "return " + unqualified_name; - code += ".GetRootAs" + unqualified_name; + code += ".GetRootAs"; code += "(self._tab.Bytes, self._tab.Vector(o))\n"; code += Indent + Indent + "return 0\n"; code += "\n"; @@ -605,15 +610,18 @@ class PythonGenerator : public BaseGenerator { auto &code = *code_ptr; const auto struct_type = namer_.Type(struct_def); // Generate method with struct name. - code += "def " + struct_type + "Start(builder): "; - code += "builder.StartObject("; + + const auto name = parser_.opts.python_no_type_prefix_suffix ? "Start" : struct_type + "Start"; + + code += "def " + name + "(builder):\n"; + code += Indent + "return builder.StartObject("; code += NumToString(struct_def.fields.vec.size()); - code += ")\n"; + code += ")\n\n"; - if (!parser_.opts.one_file) { + if (!parser_.opts.one_file && !parser_.opts.python_no_type_prefix_suffix) { // Generate method without struct name. code += "def Start(builder):\n"; - code += Indent + "return " + struct_type + "Start(builder)\n"; + code += Indent + "return " + struct_type + "Start(builder)\n\n"; } } @@ -624,12 +632,14 @@ class PythonGenerator : public BaseGenerator { const std::string field_var = namer_.Variable(field); const std::string field_method = namer_.Method(field); + const auto name = parser_.opts.python_no_type_prefix_suffix ? "Add" + field_method : namer_.Type(struct_def) + "Add" + field_method; + // Generate method with struct name. - code += "def " + namer_.Type(struct_def) + "Add" + field_method; + code += "def " + name; code += "(builder, "; code += field_var; - code += "): "; - code += "builder.Prepend"; + code += "):\n"; + code += Indent + "return builder.Prepend"; code += GenMethod(field) + "Slot("; code += NumToString(offset) + ", "; if (!IsScalar(field.value.type.base_type) && (!struct_def.fixed)) { @@ -646,16 +656,16 @@ class PythonGenerator : public BaseGenerator { } else { code += field.value.constant; } - code += ")\n"; + code += ")\n\n"; - if (!parser_.opts.one_file) { + if (!parser_.opts.one_file && !parser_.opts.python_no_type_prefix_suffix) { // Generate method without struct name. code += "def Add" + field_method + "(builder, " + field_var + "):\n"; code += Indent + "return " + namer_.Type(struct_def) + "Add" + field_method; code += "(builder, "; code += field_var; - code += ")\n"; + code += ")\n\n"; } } @@ -667,20 +677,22 @@ class PythonGenerator : public BaseGenerator { const std::string field_method = namer_.Method(field); // Generate method with struct name. - code += "def " + struct_type + "Start" + field_method; - code += "Vector(builder, numElems): return builder.StartVector("; + const auto name = parser_.opts.python_no_type_prefix_suffix ? "Start" + field_method : struct_type + "Start" + field_method; + code += "def " + name; + code += "Vector(builder, numElems):\n"; + code += Indent + "return builder.StartVector("; auto vector_type = field.value.type.VectorType(); auto alignment = InlineAlignment(vector_type); auto elem_size = InlineSize(vector_type); code += NumToString(elem_size); code += ", numElems, " + NumToString(alignment); - code += ")\n"; + code += ")\n\n"; - if (!parser_.opts.one_file) { + if (!parser_.opts.one_file && !parser_.opts.python_no_type_prefix_suffix) { // Generate method without struct name. code += "def Start" + field_method + "Vector(builder, numElems):\n"; code += Indent + "return " + struct_type + "Start"; - code += field_method + "Vector(builder, numElems)\n"; + code += field_method + "Vector(builder, numElems)\n\n"; } } @@ -725,15 +737,16 @@ class PythonGenerator : public BaseGenerator { std::string *code_ptr) const { auto &code = *code_ptr; + const auto name = parser_.opts.python_no_type_prefix_suffix ? "End" : namer_.Type(struct_def) + "End"; // Generate method with struct name. - code += "def " + namer_.Type(struct_def) + "End"; - code += "(builder): "; - code += "return builder.EndObject()\n"; + code += "def " + name + "(builder):\n"; + code += Indent + "return builder.EndObject()\n\n"; - if (!parser_.opts.one_file) { + if (!parser_.opts.one_file && !parser_.opts.python_no_type_prefix_suffix) { // Generate method without struct name. code += "def End(builder):\n"; code += Indent + "return " + namer_.Type(struct_def) + "End(builder)"; + code += "\n"; } } diff --git a/tests/MyGame/Example/ArrayTable.py b/tests/MyGame/Example/ArrayTable.py index b7a3ac5b67..7f4051f5ef 100644 --- a/tests/MyGame/Example/ArrayTable.py +++ b/tests/MyGame/Example/ArrayTable.py @@ -39,15 +39,24 @@ def A(self): return obj return None -def ArrayTableStart(builder): builder.StartObject(1) +def ArrayTableStart(builder): + return builder.StartObject(1) + def Start(builder): return ArrayTableStart(builder) -def ArrayTableAddA(builder, a): builder.PrependStructSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(a), 0) + +def ArrayTableAddA(builder, a): + return builder.PrependStructSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(a), 0) + def AddA(builder, a): return ArrayTableAddA(builder, a) -def ArrayTableEnd(builder): return builder.EndObject() + +def ArrayTableEnd(builder): + return builder.EndObject() + def End(builder): return ArrayTableEnd(builder) + import MyGame.Example.ArrayStruct try: from typing import Optional diff --git a/tests/MyGame/Example/Monster.py b/tests/MyGame/Example/Monster.py index 03dda3b66d..bde02b4ab5 100644 --- a/tests/MyGame/Example/Monster.py +++ b/tests/MyGame/Example/Monster.py @@ -214,7 +214,7 @@ def TestnestedflatbufferNestedRoot(self): o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(30)) if o != 0: from MyGame.Example.Monster import Monster - return Monster.GetRootAsMonster(self._tab.Bytes, self._tab.Vector(o)) + return Monster.GetRootAs(self._tab.Bytes, self._tab.Vector(o)) return 0 # Monster @@ -751,7 +751,7 @@ def TestrequirednestedflatbufferNestedRoot(self): o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(102)) if o != 0: from MyGame.Example.Monster import Monster - return Monster.GetRootAsMonster(self._tab.Bytes, self._tab.Vector(o)) + return Monster.GetRootAs(self._tab.Bytes, self._tab.Vector(o)) return 0 # Monster @@ -872,63 +872,120 @@ def DoubleInfDefault(self): return self._tab.Get(flatbuffers.number_types.Float64Flags, o + self._tab.Pos) return float('inf') -def MonsterStart(builder): builder.StartObject(62) +def MonsterStart(builder): + return builder.StartObject(62) + def Start(builder): return MonsterStart(builder) -def MonsterAddPos(builder, pos): builder.PrependStructSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(pos), 0) + +def MonsterAddPos(builder, pos): + return builder.PrependStructSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(pos), 0) + def AddPos(builder, pos): return MonsterAddPos(builder, pos) -def MonsterAddMana(builder, mana): builder.PrependInt16Slot(1, mana, 150) + +def MonsterAddMana(builder, mana): + return builder.PrependInt16Slot(1, mana, 150) + def AddMana(builder, mana): return MonsterAddMana(builder, mana) -def MonsterAddHp(builder, hp): builder.PrependInt16Slot(2, hp, 100) + +def MonsterAddHp(builder, hp): + return builder.PrependInt16Slot(2, hp, 100) + def AddHp(builder, hp): return MonsterAddHp(builder, hp) -def MonsterAddName(builder, name): builder.PrependUOffsetTRelativeSlot(3, flatbuffers.number_types.UOffsetTFlags.py_type(name), 0) + +def MonsterAddName(builder, name): + return builder.PrependUOffsetTRelativeSlot(3, flatbuffers.number_types.UOffsetTFlags.py_type(name), 0) + def AddName(builder, name): return MonsterAddName(builder, name) -def MonsterAddInventory(builder, inventory): builder.PrependUOffsetTRelativeSlot(5, flatbuffers.number_types.UOffsetTFlags.py_type(inventory), 0) + +def MonsterAddInventory(builder, inventory): + return builder.PrependUOffsetTRelativeSlot(5, flatbuffers.number_types.UOffsetTFlags.py_type(inventory), 0) + def AddInventory(builder, inventory): return MonsterAddInventory(builder, inventory) -def MonsterStartInventoryVector(builder, numElems): return builder.StartVector(1, numElems, 1) + +def MonsterStartInventoryVector(builder, numElems): + return builder.StartVector(1, numElems, 1) + def StartInventoryVector(builder, numElems): return MonsterStartInventoryVector(builder, numElems) -def MonsterAddColor(builder, color): builder.PrependUint8Slot(6, color, 8) + +def MonsterAddColor(builder, color): + return builder.PrependUint8Slot(6, color, 8) + def AddColor(builder, color): return MonsterAddColor(builder, color) -def MonsterAddTestType(builder, testType): builder.PrependUint8Slot(7, testType, 0) + +def MonsterAddTestType(builder, testType): + return builder.PrependUint8Slot(7, testType, 0) + def AddTestType(builder, testType): return MonsterAddTestType(builder, testType) -def MonsterAddTest(builder, test): builder.PrependUOffsetTRelativeSlot(8, flatbuffers.number_types.UOffsetTFlags.py_type(test), 0) + +def MonsterAddTest(builder, test): + return builder.PrependUOffsetTRelativeSlot(8, flatbuffers.number_types.UOffsetTFlags.py_type(test), 0) + def AddTest(builder, test): return MonsterAddTest(builder, test) -def MonsterAddTest4(builder, test4): builder.PrependUOffsetTRelativeSlot(9, flatbuffers.number_types.UOffsetTFlags.py_type(test4), 0) + +def MonsterAddTest4(builder, test4): + return builder.PrependUOffsetTRelativeSlot(9, flatbuffers.number_types.UOffsetTFlags.py_type(test4), 0) + def AddTest4(builder, test4): return MonsterAddTest4(builder, test4) -def MonsterStartTest4Vector(builder, numElems): return builder.StartVector(4, numElems, 2) + +def MonsterStartTest4Vector(builder, numElems): + return builder.StartVector(4, numElems, 2) + def StartTest4Vector(builder, numElems): return MonsterStartTest4Vector(builder, numElems) -def MonsterAddTestarrayofstring(builder, testarrayofstring): builder.PrependUOffsetTRelativeSlot(10, flatbuffers.number_types.UOffsetTFlags.py_type(testarrayofstring), 0) + +def MonsterAddTestarrayofstring(builder, testarrayofstring): + return builder.PrependUOffsetTRelativeSlot(10, flatbuffers.number_types.UOffsetTFlags.py_type(testarrayofstring), 0) + def AddTestarrayofstring(builder, testarrayofstring): return MonsterAddTestarrayofstring(builder, testarrayofstring) -def MonsterStartTestarrayofstringVector(builder, numElems): return builder.StartVector(4, numElems, 4) + +def MonsterStartTestarrayofstringVector(builder, numElems): + return builder.StartVector(4, numElems, 4) + def StartTestarrayofstringVector(builder, numElems): return MonsterStartTestarrayofstringVector(builder, numElems) -def MonsterAddTestarrayoftables(builder, testarrayoftables): builder.PrependUOffsetTRelativeSlot(11, flatbuffers.number_types.UOffsetTFlags.py_type(testarrayoftables), 0) + +def MonsterAddTestarrayoftables(builder, testarrayoftables): + return builder.PrependUOffsetTRelativeSlot(11, flatbuffers.number_types.UOffsetTFlags.py_type(testarrayoftables), 0) + def AddTestarrayoftables(builder, testarrayoftables): return MonsterAddTestarrayoftables(builder, testarrayoftables) -def MonsterStartTestarrayoftablesVector(builder, numElems): return builder.StartVector(4, numElems, 4) + +def MonsterStartTestarrayoftablesVector(builder, numElems): + return builder.StartVector(4, numElems, 4) + def StartTestarrayoftablesVector(builder, numElems): return MonsterStartTestarrayoftablesVector(builder, numElems) -def MonsterAddEnemy(builder, enemy): builder.PrependUOffsetTRelativeSlot(12, flatbuffers.number_types.UOffsetTFlags.py_type(enemy), 0) + +def MonsterAddEnemy(builder, enemy): + return builder.PrependUOffsetTRelativeSlot(12, flatbuffers.number_types.UOffsetTFlags.py_type(enemy), 0) + def AddEnemy(builder, enemy): return MonsterAddEnemy(builder, enemy) -def MonsterAddTestnestedflatbuffer(builder, testnestedflatbuffer): builder.PrependUOffsetTRelativeSlot(13, flatbuffers.number_types.UOffsetTFlags.py_type(testnestedflatbuffer), 0) + +def MonsterAddTestnestedflatbuffer(builder, testnestedflatbuffer): + return builder.PrependUOffsetTRelativeSlot(13, flatbuffers.number_types.UOffsetTFlags.py_type(testnestedflatbuffer), 0) + def AddTestnestedflatbuffer(builder, testnestedflatbuffer): return MonsterAddTestnestedflatbuffer(builder, testnestedflatbuffer) -def MonsterStartTestnestedflatbufferVector(builder, numElems): return builder.StartVector(1, numElems, 1) + +def MonsterStartTestnestedflatbufferVector(builder, numElems): + return builder.StartVector(1, numElems, 1) + def StartTestnestedflatbufferVector(builder, numElems): return MonsterStartTestnestedflatbufferVector(builder, numElems) + def MonsterMakeTestnestedflatbufferVectorFromBytes(builder, bytes): builder.StartVector(1, len(bytes), 1) builder.head = builder.head - len(bytes) @@ -936,156 +993,306 @@ def MonsterMakeTestnestedflatbufferVectorFromBytes(builder, bytes): return builder.EndVector() def MakeTestnestedflatbufferVectorFromBytes(builder, bytes): return MonsterMakeTestnestedflatbufferVectorFromBytes(builder, bytes) -def MonsterAddTestempty(builder, testempty): builder.PrependUOffsetTRelativeSlot(14, flatbuffers.number_types.UOffsetTFlags.py_type(testempty), 0) +def MonsterAddTestempty(builder, testempty): + return builder.PrependUOffsetTRelativeSlot(14, flatbuffers.number_types.UOffsetTFlags.py_type(testempty), 0) + def AddTestempty(builder, testempty): return MonsterAddTestempty(builder, testempty) -def MonsterAddTestbool(builder, testbool): builder.PrependBoolSlot(15, testbool, 0) + +def MonsterAddTestbool(builder, testbool): + return builder.PrependBoolSlot(15, testbool, 0) + def AddTestbool(builder, testbool): return MonsterAddTestbool(builder, testbool) -def MonsterAddTesthashs32Fnv1(builder, testhashs32Fnv1): builder.PrependInt32Slot(16, testhashs32Fnv1, 0) + +def MonsterAddTesthashs32Fnv1(builder, testhashs32Fnv1): + return builder.PrependInt32Slot(16, testhashs32Fnv1, 0) + def AddTesthashs32Fnv1(builder, testhashs32Fnv1): return MonsterAddTesthashs32Fnv1(builder, testhashs32Fnv1) -def MonsterAddTesthashu32Fnv1(builder, testhashu32Fnv1): builder.PrependUint32Slot(17, testhashu32Fnv1, 0) + +def MonsterAddTesthashu32Fnv1(builder, testhashu32Fnv1): + return builder.PrependUint32Slot(17, testhashu32Fnv1, 0) + def AddTesthashu32Fnv1(builder, testhashu32Fnv1): return MonsterAddTesthashu32Fnv1(builder, testhashu32Fnv1) -def MonsterAddTesthashs64Fnv1(builder, testhashs64Fnv1): builder.PrependInt64Slot(18, testhashs64Fnv1, 0) + +def MonsterAddTesthashs64Fnv1(builder, testhashs64Fnv1): + return builder.PrependInt64Slot(18, testhashs64Fnv1, 0) + def AddTesthashs64Fnv1(builder, testhashs64Fnv1): return MonsterAddTesthashs64Fnv1(builder, testhashs64Fnv1) -def MonsterAddTesthashu64Fnv1(builder, testhashu64Fnv1): builder.PrependUint64Slot(19, testhashu64Fnv1, 0) + +def MonsterAddTesthashu64Fnv1(builder, testhashu64Fnv1): + return builder.PrependUint64Slot(19, testhashu64Fnv1, 0) + def AddTesthashu64Fnv1(builder, testhashu64Fnv1): return MonsterAddTesthashu64Fnv1(builder, testhashu64Fnv1) -def MonsterAddTesthashs32Fnv1a(builder, testhashs32Fnv1a): builder.PrependInt32Slot(20, testhashs32Fnv1a, 0) + +def MonsterAddTesthashs32Fnv1a(builder, testhashs32Fnv1a): + return builder.PrependInt32Slot(20, testhashs32Fnv1a, 0) + def AddTesthashs32Fnv1a(builder, testhashs32Fnv1a): return MonsterAddTesthashs32Fnv1a(builder, testhashs32Fnv1a) -def MonsterAddTesthashu32Fnv1a(builder, testhashu32Fnv1a): builder.PrependUint32Slot(21, testhashu32Fnv1a, 0) + +def MonsterAddTesthashu32Fnv1a(builder, testhashu32Fnv1a): + return builder.PrependUint32Slot(21, testhashu32Fnv1a, 0) + def AddTesthashu32Fnv1a(builder, testhashu32Fnv1a): return MonsterAddTesthashu32Fnv1a(builder, testhashu32Fnv1a) -def MonsterAddTesthashs64Fnv1a(builder, testhashs64Fnv1a): builder.PrependInt64Slot(22, testhashs64Fnv1a, 0) + +def MonsterAddTesthashs64Fnv1a(builder, testhashs64Fnv1a): + return builder.PrependInt64Slot(22, testhashs64Fnv1a, 0) + def AddTesthashs64Fnv1a(builder, testhashs64Fnv1a): return MonsterAddTesthashs64Fnv1a(builder, testhashs64Fnv1a) -def MonsterAddTesthashu64Fnv1a(builder, testhashu64Fnv1a): builder.PrependUint64Slot(23, testhashu64Fnv1a, 0) + +def MonsterAddTesthashu64Fnv1a(builder, testhashu64Fnv1a): + return builder.PrependUint64Slot(23, testhashu64Fnv1a, 0) + def AddTesthashu64Fnv1a(builder, testhashu64Fnv1a): return MonsterAddTesthashu64Fnv1a(builder, testhashu64Fnv1a) -def MonsterAddTestarrayofbools(builder, testarrayofbools): builder.PrependUOffsetTRelativeSlot(24, flatbuffers.number_types.UOffsetTFlags.py_type(testarrayofbools), 0) + +def MonsterAddTestarrayofbools(builder, testarrayofbools): + return builder.PrependUOffsetTRelativeSlot(24, flatbuffers.number_types.UOffsetTFlags.py_type(testarrayofbools), 0) + def AddTestarrayofbools(builder, testarrayofbools): return MonsterAddTestarrayofbools(builder, testarrayofbools) -def MonsterStartTestarrayofboolsVector(builder, numElems): return builder.StartVector(1, numElems, 1) + +def MonsterStartTestarrayofboolsVector(builder, numElems): + return builder.StartVector(1, numElems, 1) + def StartTestarrayofboolsVector(builder, numElems): return MonsterStartTestarrayofboolsVector(builder, numElems) -def MonsterAddTestf(builder, testf): builder.PrependFloat32Slot(25, testf, 3.14159) + +def MonsterAddTestf(builder, testf): + return builder.PrependFloat32Slot(25, testf, 3.14159) + def AddTestf(builder, testf): return MonsterAddTestf(builder, testf) -def MonsterAddTestf2(builder, testf2): builder.PrependFloat32Slot(26, testf2, 3.0) + +def MonsterAddTestf2(builder, testf2): + return builder.PrependFloat32Slot(26, testf2, 3.0) + def AddTestf2(builder, testf2): return MonsterAddTestf2(builder, testf2) -def MonsterAddTestf3(builder, testf3): builder.PrependFloat32Slot(27, testf3, 0.0) + +def MonsterAddTestf3(builder, testf3): + return builder.PrependFloat32Slot(27, testf3, 0.0) + def AddTestf3(builder, testf3): return MonsterAddTestf3(builder, testf3) -def MonsterAddTestarrayofstring2(builder, testarrayofstring2): builder.PrependUOffsetTRelativeSlot(28, flatbuffers.number_types.UOffsetTFlags.py_type(testarrayofstring2), 0) + +def MonsterAddTestarrayofstring2(builder, testarrayofstring2): + return builder.PrependUOffsetTRelativeSlot(28, flatbuffers.number_types.UOffsetTFlags.py_type(testarrayofstring2), 0) + def AddTestarrayofstring2(builder, testarrayofstring2): return MonsterAddTestarrayofstring2(builder, testarrayofstring2) -def MonsterStartTestarrayofstring2Vector(builder, numElems): return builder.StartVector(4, numElems, 4) + +def MonsterStartTestarrayofstring2Vector(builder, numElems): + return builder.StartVector(4, numElems, 4) + def StartTestarrayofstring2Vector(builder, numElems): return MonsterStartTestarrayofstring2Vector(builder, numElems) -def MonsterAddTestarrayofsortedstruct(builder, testarrayofsortedstruct): builder.PrependUOffsetTRelativeSlot(29, flatbuffers.number_types.UOffsetTFlags.py_type(testarrayofsortedstruct), 0) + +def MonsterAddTestarrayofsortedstruct(builder, testarrayofsortedstruct): + return builder.PrependUOffsetTRelativeSlot(29, flatbuffers.number_types.UOffsetTFlags.py_type(testarrayofsortedstruct), 0) + def AddTestarrayofsortedstruct(builder, testarrayofsortedstruct): return MonsterAddTestarrayofsortedstruct(builder, testarrayofsortedstruct) -def MonsterStartTestarrayofsortedstructVector(builder, numElems): return builder.StartVector(8, numElems, 4) + +def MonsterStartTestarrayofsortedstructVector(builder, numElems): + return builder.StartVector(8, numElems, 4) + def StartTestarrayofsortedstructVector(builder, numElems): return MonsterStartTestarrayofsortedstructVector(builder, numElems) -def MonsterAddFlex(builder, flex): builder.PrependUOffsetTRelativeSlot(30, flatbuffers.number_types.UOffsetTFlags.py_type(flex), 0) + +def MonsterAddFlex(builder, flex): + return builder.PrependUOffsetTRelativeSlot(30, flatbuffers.number_types.UOffsetTFlags.py_type(flex), 0) + def AddFlex(builder, flex): return MonsterAddFlex(builder, flex) -def MonsterStartFlexVector(builder, numElems): return builder.StartVector(1, numElems, 1) + +def MonsterStartFlexVector(builder, numElems): + return builder.StartVector(1, numElems, 1) + def StartFlexVector(builder, numElems): return MonsterStartFlexVector(builder, numElems) -def MonsterAddTest5(builder, test5): builder.PrependUOffsetTRelativeSlot(31, flatbuffers.number_types.UOffsetTFlags.py_type(test5), 0) + +def MonsterAddTest5(builder, test5): + return builder.PrependUOffsetTRelativeSlot(31, flatbuffers.number_types.UOffsetTFlags.py_type(test5), 0) + def AddTest5(builder, test5): return MonsterAddTest5(builder, test5) -def MonsterStartTest5Vector(builder, numElems): return builder.StartVector(4, numElems, 2) + +def MonsterStartTest5Vector(builder, numElems): + return builder.StartVector(4, numElems, 2) + def StartTest5Vector(builder, numElems): return MonsterStartTest5Vector(builder, numElems) -def MonsterAddVectorOfLongs(builder, vectorOfLongs): builder.PrependUOffsetTRelativeSlot(32, flatbuffers.number_types.UOffsetTFlags.py_type(vectorOfLongs), 0) + +def MonsterAddVectorOfLongs(builder, vectorOfLongs): + return builder.PrependUOffsetTRelativeSlot(32, flatbuffers.number_types.UOffsetTFlags.py_type(vectorOfLongs), 0) + def AddVectorOfLongs(builder, vectorOfLongs): return MonsterAddVectorOfLongs(builder, vectorOfLongs) -def MonsterStartVectorOfLongsVector(builder, numElems): return builder.StartVector(8, numElems, 8) + +def MonsterStartVectorOfLongsVector(builder, numElems): + return builder.StartVector(8, numElems, 8) + def StartVectorOfLongsVector(builder, numElems): return MonsterStartVectorOfLongsVector(builder, numElems) -def MonsterAddVectorOfDoubles(builder, vectorOfDoubles): builder.PrependUOffsetTRelativeSlot(33, flatbuffers.number_types.UOffsetTFlags.py_type(vectorOfDoubles), 0) + +def MonsterAddVectorOfDoubles(builder, vectorOfDoubles): + return builder.PrependUOffsetTRelativeSlot(33, flatbuffers.number_types.UOffsetTFlags.py_type(vectorOfDoubles), 0) + def AddVectorOfDoubles(builder, vectorOfDoubles): return MonsterAddVectorOfDoubles(builder, vectorOfDoubles) -def MonsterStartVectorOfDoublesVector(builder, numElems): return builder.StartVector(8, numElems, 8) + +def MonsterStartVectorOfDoublesVector(builder, numElems): + return builder.StartVector(8, numElems, 8) + def StartVectorOfDoublesVector(builder, numElems): return MonsterStartVectorOfDoublesVector(builder, numElems) -def MonsterAddParentNamespaceTest(builder, parentNamespaceTest): builder.PrependUOffsetTRelativeSlot(34, flatbuffers.number_types.UOffsetTFlags.py_type(parentNamespaceTest), 0) + +def MonsterAddParentNamespaceTest(builder, parentNamespaceTest): + return builder.PrependUOffsetTRelativeSlot(34, flatbuffers.number_types.UOffsetTFlags.py_type(parentNamespaceTest), 0) + def AddParentNamespaceTest(builder, parentNamespaceTest): return MonsterAddParentNamespaceTest(builder, parentNamespaceTest) -def MonsterAddVectorOfReferrables(builder, vectorOfReferrables): builder.PrependUOffsetTRelativeSlot(35, flatbuffers.number_types.UOffsetTFlags.py_type(vectorOfReferrables), 0) + +def MonsterAddVectorOfReferrables(builder, vectorOfReferrables): + return builder.PrependUOffsetTRelativeSlot(35, flatbuffers.number_types.UOffsetTFlags.py_type(vectorOfReferrables), 0) + def AddVectorOfReferrables(builder, vectorOfReferrables): return MonsterAddVectorOfReferrables(builder, vectorOfReferrables) -def MonsterStartVectorOfReferrablesVector(builder, numElems): return builder.StartVector(4, numElems, 4) + +def MonsterStartVectorOfReferrablesVector(builder, numElems): + return builder.StartVector(4, numElems, 4) + def StartVectorOfReferrablesVector(builder, numElems): return MonsterStartVectorOfReferrablesVector(builder, numElems) -def MonsterAddSingleWeakReference(builder, singleWeakReference): builder.PrependUint64Slot(36, singleWeakReference, 0) + +def MonsterAddSingleWeakReference(builder, singleWeakReference): + return builder.PrependUint64Slot(36, singleWeakReference, 0) + def AddSingleWeakReference(builder, singleWeakReference): return MonsterAddSingleWeakReference(builder, singleWeakReference) -def MonsterAddVectorOfWeakReferences(builder, vectorOfWeakReferences): builder.PrependUOffsetTRelativeSlot(37, flatbuffers.number_types.UOffsetTFlags.py_type(vectorOfWeakReferences), 0) + +def MonsterAddVectorOfWeakReferences(builder, vectorOfWeakReferences): + return builder.PrependUOffsetTRelativeSlot(37, flatbuffers.number_types.UOffsetTFlags.py_type(vectorOfWeakReferences), 0) + def AddVectorOfWeakReferences(builder, vectorOfWeakReferences): return MonsterAddVectorOfWeakReferences(builder, vectorOfWeakReferences) -def MonsterStartVectorOfWeakReferencesVector(builder, numElems): return builder.StartVector(8, numElems, 8) + +def MonsterStartVectorOfWeakReferencesVector(builder, numElems): + return builder.StartVector(8, numElems, 8) + def StartVectorOfWeakReferencesVector(builder, numElems): return MonsterStartVectorOfWeakReferencesVector(builder, numElems) -def MonsterAddVectorOfStrongReferrables(builder, vectorOfStrongReferrables): builder.PrependUOffsetTRelativeSlot(38, flatbuffers.number_types.UOffsetTFlags.py_type(vectorOfStrongReferrables), 0) + +def MonsterAddVectorOfStrongReferrables(builder, vectorOfStrongReferrables): + return builder.PrependUOffsetTRelativeSlot(38, flatbuffers.number_types.UOffsetTFlags.py_type(vectorOfStrongReferrables), 0) + def AddVectorOfStrongReferrables(builder, vectorOfStrongReferrables): return MonsterAddVectorOfStrongReferrables(builder, vectorOfStrongReferrables) -def MonsterStartVectorOfStrongReferrablesVector(builder, numElems): return builder.StartVector(4, numElems, 4) + +def MonsterStartVectorOfStrongReferrablesVector(builder, numElems): + return builder.StartVector(4, numElems, 4) + def StartVectorOfStrongReferrablesVector(builder, numElems): return MonsterStartVectorOfStrongReferrablesVector(builder, numElems) -def MonsterAddCoOwningReference(builder, coOwningReference): builder.PrependUint64Slot(39, coOwningReference, 0) + +def MonsterAddCoOwningReference(builder, coOwningReference): + return builder.PrependUint64Slot(39, coOwningReference, 0) + def AddCoOwningReference(builder, coOwningReference): return MonsterAddCoOwningReference(builder, coOwningReference) -def MonsterAddVectorOfCoOwningReferences(builder, vectorOfCoOwningReferences): builder.PrependUOffsetTRelativeSlot(40, flatbuffers.number_types.UOffsetTFlags.py_type(vectorOfCoOwningReferences), 0) + +def MonsterAddVectorOfCoOwningReferences(builder, vectorOfCoOwningReferences): + return builder.PrependUOffsetTRelativeSlot(40, flatbuffers.number_types.UOffsetTFlags.py_type(vectorOfCoOwningReferences), 0) + def AddVectorOfCoOwningReferences(builder, vectorOfCoOwningReferences): return MonsterAddVectorOfCoOwningReferences(builder, vectorOfCoOwningReferences) -def MonsterStartVectorOfCoOwningReferencesVector(builder, numElems): return builder.StartVector(8, numElems, 8) + +def MonsterStartVectorOfCoOwningReferencesVector(builder, numElems): + return builder.StartVector(8, numElems, 8) + def StartVectorOfCoOwningReferencesVector(builder, numElems): return MonsterStartVectorOfCoOwningReferencesVector(builder, numElems) -def MonsterAddNonOwningReference(builder, nonOwningReference): builder.PrependUint64Slot(41, nonOwningReference, 0) + +def MonsterAddNonOwningReference(builder, nonOwningReference): + return builder.PrependUint64Slot(41, nonOwningReference, 0) + def AddNonOwningReference(builder, nonOwningReference): return MonsterAddNonOwningReference(builder, nonOwningReference) -def MonsterAddVectorOfNonOwningReferences(builder, vectorOfNonOwningReferences): builder.PrependUOffsetTRelativeSlot(42, flatbuffers.number_types.UOffsetTFlags.py_type(vectorOfNonOwningReferences), 0) + +def MonsterAddVectorOfNonOwningReferences(builder, vectorOfNonOwningReferences): + return builder.PrependUOffsetTRelativeSlot(42, flatbuffers.number_types.UOffsetTFlags.py_type(vectorOfNonOwningReferences), 0) + def AddVectorOfNonOwningReferences(builder, vectorOfNonOwningReferences): return MonsterAddVectorOfNonOwningReferences(builder, vectorOfNonOwningReferences) -def MonsterStartVectorOfNonOwningReferencesVector(builder, numElems): return builder.StartVector(8, numElems, 8) + +def MonsterStartVectorOfNonOwningReferencesVector(builder, numElems): + return builder.StartVector(8, numElems, 8) + def StartVectorOfNonOwningReferencesVector(builder, numElems): return MonsterStartVectorOfNonOwningReferencesVector(builder, numElems) -def MonsterAddAnyUniqueType(builder, anyUniqueType): builder.PrependUint8Slot(43, anyUniqueType, 0) + +def MonsterAddAnyUniqueType(builder, anyUniqueType): + return builder.PrependUint8Slot(43, anyUniqueType, 0) + def AddAnyUniqueType(builder, anyUniqueType): return MonsterAddAnyUniqueType(builder, anyUniqueType) -def MonsterAddAnyUnique(builder, anyUnique): builder.PrependUOffsetTRelativeSlot(44, flatbuffers.number_types.UOffsetTFlags.py_type(anyUnique), 0) + +def MonsterAddAnyUnique(builder, anyUnique): + return builder.PrependUOffsetTRelativeSlot(44, flatbuffers.number_types.UOffsetTFlags.py_type(anyUnique), 0) + def AddAnyUnique(builder, anyUnique): return MonsterAddAnyUnique(builder, anyUnique) -def MonsterAddAnyAmbiguousType(builder, anyAmbiguousType): builder.PrependUint8Slot(45, anyAmbiguousType, 0) + +def MonsterAddAnyAmbiguousType(builder, anyAmbiguousType): + return builder.PrependUint8Slot(45, anyAmbiguousType, 0) + def AddAnyAmbiguousType(builder, anyAmbiguousType): return MonsterAddAnyAmbiguousType(builder, anyAmbiguousType) -def MonsterAddAnyAmbiguous(builder, anyAmbiguous): builder.PrependUOffsetTRelativeSlot(46, flatbuffers.number_types.UOffsetTFlags.py_type(anyAmbiguous), 0) + +def MonsterAddAnyAmbiguous(builder, anyAmbiguous): + return builder.PrependUOffsetTRelativeSlot(46, flatbuffers.number_types.UOffsetTFlags.py_type(anyAmbiguous), 0) + def AddAnyAmbiguous(builder, anyAmbiguous): return MonsterAddAnyAmbiguous(builder, anyAmbiguous) -def MonsterAddVectorOfEnums(builder, vectorOfEnums): builder.PrependUOffsetTRelativeSlot(47, flatbuffers.number_types.UOffsetTFlags.py_type(vectorOfEnums), 0) + +def MonsterAddVectorOfEnums(builder, vectorOfEnums): + return builder.PrependUOffsetTRelativeSlot(47, flatbuffers.number_types.UOffsetTFlags.py_type(vectorOfEnums), 0) + def AddVectorOfEnums(builder, vectorOfEnums): return MonsterAddVectorOfEnums(builder, vectorOfEnums) -def MonsterStartVectorOfEnumsVector(builder, numElems): return builder.StartVector(1, numElems, 1) + +def MonsterStartVectorOfEnumsVector(builder, numElems): + return builder.StartVector(1, numElems, 1) + def StartVectorOfEnumsVector(builder, numElems): return MonsterStartVectorOfEnumsVector(builder, numElems) -def MonsterAddSignedEnum(builder, signedEnum): builder.PrependInt8Slot(48, signedEnum, -1) + +def MonsterAddSignedEnum(builder, signedEnum): + return builder.PrependInt8Slot(48, signedEnum, -1) + def AddSignedEnum(builder, signedEnum): return MonsterAddSignedEnum(builder, signedEnum) -def MonsterAddTestrequirednestedflatbuffer(builder, testrequirednestedflatbuffer): builder.PrependUOffsetTRelativeSlot(49, flatbuffers.number_types.UOffsetTFlags.py_type(testrequirednestedflatbuffer), 0) + +def MonsterAddTestrequirednestedflatbuffer(builder, testrequirednestedflatbuffer): + return builder.PrependUOffsetTRelativeSlot(49, flatbuffers.number_types.UOffsetTFlags.py_type(testrequirednestedflatbuffer), 0) + def AddTestrequirednestedflatbuffer(builder, testrequirednestedflatbuffer): return MonsterAddTestrequirednestedflatbuffer(builder, testrequirednestedflatbuffer) -def MonsterStartTestrequirednestedflatbufferVector(builder, numElems): return builder.StartVector(1, numElems, 1) + +def MonsterStartTestrequirednestedflatbufferVector(builder, numElems): + return builder.StartVector(1, numElems, 1) + def StartTestrequirednestedflatbufferVector(builder, numElems): return MonsterStartTestrequirednestedflatbufferVector(builder, numElems) + def MonsterMakeTestrequirednestedflatbufferVectorFromBytes(builder, bytes): builder.StartVector(1, len(bytes), 1) builder.head = builder.head - len(bytes) @@ -1093,48 +1300,90 @@ def MonsterMakeTestrequirednestedflatbufferVectorFromBytes(builder, bytes): return builder.EndVector() def MakeTestrequirednestedflatbufferVectorFromBytes(builder, bytes): return MonsterMakeTestrequirednestedflatbufferVectorFromBytes(builder, bytes) -def MonsterAddScalarKeySortedTables(builder, scalarKeySortedTables): builder.PrependUOffsetTRelativeSlot(50, flatbuffers.number_types.UOffsetTFlags.py_type(scalarKeySortedTables), 0) +def MonsterAddScalarKeySortedTables(builder, scalarKeySortedTables): + return builder.PrependUOffsetTRelativeSlot(50, flatbuffers.number_types.UOffsetTFlags.py_type(scalarKeySortedTables), 0) + def AddScalarKeySortedTables(builder, scalarKeySortedTables): return MonsterAddScalarKeySortedTables(builder, scalarKeySortedTables) -def MonsterStartScalarKeySortedTablesVector(builder, numElems): return builder.StartVector(4, numElems, 4) + +def MonsterStartScalarKeySortedTablesVector(builder, numElems): + return builder.StartVector(4, numElems, 4) + def StartScalarKeySortedTablesVector(builder, numElems): return MonsterStartScalarKeySortedTablesVector(builder, numElems) -def MonsterAddNativeInline(builder, nativeInline): builder.PrependStructSlot(51, flatbuffers.number_types.UOffsetTFlags.py_type(nativeInline), 0) + +def MonsterAddNativeInline(builder, nativeInline): + return builder.PrependStructSlot(51, flatbuffers.number_types.UOffsetTFlags.py_type(nativeInline), 0) + def AddNativeInline(builder, nativeInline): return MonsterAddNativeInline(builder, nativeInline) -def MonsterAddLongEnumNonEnumDefault(builder, longEnumNonEnumDefault): builder.PrependUint64Slot(52, longEnumNonEnumDefault, 0) + +def MonsterAddLongEnumNonEnumDefault(builder, longEnumNonEnumDefault): + return builder.PrependUint64Slot(52, longEnumNonEnumDefault, 0) + def AddLongEnumNonEnumDefault(builder, longEnumNonEnumDefault): return MonsterAddLongEnumNonEnumDefault(builder, longEnumNonEnumDefault) -def MonsterAddLongEnumNormalDefault(builder, longEnumNormalDefault): builder.PrependUint64Slot(53, longEnumNormalDefault, 2) + +def MonsterAddLongEnumNormalDefault(builder, longEnumNormalDefault): + return builder.PrependUint64Slot(53, longEnumNormalDefault, 2) + def AddLongEnumNormalDefault(builder, longEnumNormalDefault): return MonsterAddLongEnumNormalDefault(builder, longEnumNormalDefault) -def MonsterAddNanDefault(builder, nanDefault): builder.PrependFloat32Slot(54, nanDefault, float('nan')) + +def MonsterAddNanDefault(builder, nanDefault): + return builder.PrependFloat32Slot(54, nanDefault, float('nan')) + def AddNanDefault(builder, nanDefault): return MonsterAddNanDefault(builder, nanDefault) -def MonsterAddInfDefault(builder, infDefault): builder.PrependFloat32Slot(55, infDefault, float('inf')) + +def MonsterAddInfDefault(builder, infDefault): + return builder.PrependFloat32Slot(55, infDefault, float('inf')) + def AddInfDefault(builder, infDefault): return MonsterAddInfDefault(builder, infDefault) -def MonsterAddPositiveInfDefault(builder, positiveInfDefault): builder.PrependFloat32Slot(56, positiveInfDefault, float('inf')) + +def MonsterAddPositiveInfDefault(builder, positiveInfDefault): + return builder.PrependFloat32Slot(56, positiveInfDefault, float('inf')) + def AddPositiveInfDefault(builder, positiveInfDefault): return MonsterAddPositiveInfDefault(builder, positiveInfDefault) -def MonsterAddInfinityDefault(builder, infinityDefault): builder.PrependFloat32Slot(57, infinityDefault, float('inf')) + +def MonsterAddInfinityDefault(builder, infinityDefault): + return builder.PrependFloat32Slot(57, infinityDefault, float('inf')) + def AddInfinityDefault(builder, infinityDefault): return MonsterAddInfinityDefault(builder, infinityDefault) -def MonsterAddPositiveInfinityDefault(builder, positiveInfinityDefault): builder.PrependFloat32Slot(58, positiveInfinityDefault, float('inf')) + +def MonsterAddPositiveInfinityDefault(builder, positiveInfinityDefault): + return builder.PrependFloat32Slot(58, positiveInfinityDefault, float('inf')) + def AddPositiveInfinityDefault(builder, positiveInfinityDefault): return MonsterAddPositiveInfinityDefault(builder, positiveInfinityDefault) -def MonsterAddNegativeInfDefault(builder, negativeInfDefault): builder.PrependFloat32Slot(59, negativeInfDefault, float('-inf')) + +def MonsterAddNegativeInfDefault(builder, negativeInfDefault): + return builder.PrependFloat32Slot(59, negativeInfDefault, float('-inf')) + def AddNegativeInfDefault(builder, negativeInfDefault): return MonsterAddNegativeInfDefault(builder, negativeInfDefault) -def MonsterAddNegativeInfinityDefault(builder, negativeInfinityDefault): builder.PrependFloat32Slot(60, negativeInfinityDefault, float('-inf')) + +def MonsterAddNegativeInfinityDefault(builder, negativeInfinityDefault): + return builder.PrependFloat32Slot(60, negativeInfinityDefault, float('-inf')) + def AddNegativeInfinityDefault(builder, negativeInfinityDefault): return MonsterAddNegativeInfinityDefault(builder, negativeInfinityDefault) -def MonsterAddDoubleInfDefault(builder, doubleInfDefault): builder.PrependFloat64Slot(61, doubleInfDefault, float('inf')) + +def MonsterAddDoubleInfDefault(builder, doubleInfDefault): + return builder.PrependFloat64Slot(61, doubleInfDefault, float('inf')) + def AddDoubleInfDefault(builder, doubleInfDefault): return MonsterAddDoubleInfDefault(builder, doubleInfDefault) -def MonsterEnd(builder): return builder.EndObject() + +def MonsterEnd(builder): + return builder.EndObject() + def End(builder): return MonsterEnd(builder) + import MyGame.Example.Ability import MyGame.Example.Any import MyGame.Example.AnyAmbiguousAliases diff --git a/tests/MyGame/Example/NestedUnion/NestedUnionTest.py b/tests/MyGame/Example/NestedUnion/NestedUnionTest.py index 9a3cbee225..33c2a44156 100644 --- a/tests/MyGame/Example/NestedUnion/NestedUnionTest.py +++ b/tests/MyGame/Example/NestedUnion/NestedUnionTest.py @@ -55,24 +55,42 @@ def Id(self): return self._tab.Get(flatbuffers.number_types.Int16Flags, o + self._tab.Pos) return 0 -def NestedUnionTestStart(builder): builder.StartObject(4) +def NestedUnionTestStart(builder): + return builder.StartObject(4) + def Start(builder): return NestedUnionTestStart(builder) -def NestedUnionTestAddName(builder, name): builder.PrependUOffsetTRelativeSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(name), 0) + +def NestedUnionTestAddName(builder, name): + return builder.PrependUOffsetTRelativeSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(name), 0) + def AddName(builder, name): return NestedUnionTestAddName(builder, name) -def NestedUnionTestAddDataType(builder, dataType): builder.PrependUint8Slot(1, dataType, 0) + +def NestedUnionTestAddDataType(builder, dataType): + return builder.PrependUint8Slot(1, dataType, 0) + def AddDataType(builder, dataType): return NestedUnionTestAddDataType(builder, dataType) -def NestedUnionTestAddData(builder, data): builder.PrependUOffsetTRelativeSlot(2, flatbuffers.number_types.UOffsetTFlags.py_type(data), 0) + +def NestedUnionTestAddData(builder, data): + return builder.PrependUOffsetTRelativeSlot(2, flatbuffers.number_types.UOffsetTFlags.py_type(data), 0) + def AddData(builder, data): return NestedUnionTestAddData(builder, data) -def NestedUnionTestAddId(builder, id): builder.PrependInt16Slot(3, id, 0) + +def NestedUnionTestAddId(builder, id): + return builder.PrependInt16Slot(3, id, 0) + def AddId(builder, id): return NestedUnionTestAddId(builder, id) -def NestedUnionTestEnd(builder): return builder.EndObject() + +def NestedUnionTestEnd(builder): + return builder.EndObject() + def End(builder): return NestedUnionTestEnd(builder) + import MyGame.Example.NestedUnion.Any import MyGame.Example.NestedUnion.TestSimpleTableWithEnum import MyGame.Example.NestedUnion.Vec3 diff --git a/tests/MyGame/Example/NestedUnion/TestSimpleTableWithEnum.py b/tests/MyGame/Example/NestedUnion/TestSimpleTableWithEnum.py index 46ebc263c9..b3ad74f76a 100644 --- a/tests/MyGame/Example/NestedUnion/TestSimpleTableWithEnum.py +++ b/tests/MyGame/Example/NestedUnion/TestSimpleTableWithEnum.py @@ -31,16 +31,25 @@ def Color(self): return self._tab.Get(flatbuffers.number_types.Uint8Flags, o + self._tab.Pos) return 2 -def TestSimpleTableWithEnumStart(builder): builder.StartObject(1) +def TestSimpleTableWithEnumStart(builder): + return builder.StartObject(1) + def Start(builder): return TestSimpleTableWithEnumStart(builder) -def TestSimpleTableWithEnumAddColor(builder, color): builder.PrependUint8Slot(0, color, 2) + +def TestSimpleTableWithEnumAddColor(builder, color): + return builder.PrependUint8Slot(0, color, 2) + def AddColor(builder, color): return TestSimpleTableWithEnumAddColor(builder, color) -def TestSimpleTableWithEnumEnd(builder): return builder.EndObject() + +def TestSimpleTableWithEnumEnd(builder): + return builder.EndObject() + def End(builder): return TestSimpleTableWithEnumEnd(builder) + class TestSimpleTableWithEnumT(object): # TestSimpleTableWithEnumT diff --git a/tests/MyGame/Example/NestedUnion/Vec3.py b/tests/MyGame/Example/NestedUnion/Vec3.py index f3bb75f26c..915f580146 100644 --- a/tests/MyGame/Example/NestedUnion/Vec3.py +++ b/tests/MyGame/Example/NestedUnion/Vec3.py @@ -70,30 +70,54 @@ def Test3(self): return obj return None -def Vec3Start(builder): builder.StartObject(6) +def Vec3Start(builder): + return builder.StartObject(6) + def Start(builder): return Vec3Start(builder) -def Vec3AddX(builder, x): builder.PrependFloat64Slot(0, x, 0.0) + +def Vec3AddX(builder, x): + return builder.PrependFloat64Slot(0, x, 0.0) + def AddX(builder, x): return Vec3AddX(builder, x) -def Vec3AddY(builder, y): builder.PrependFloat64Slot(1, y, 0.0) + +def Vec3AddY(builder, y): + return builder.PrependFloat64Slot(1, y, 0.0) + def AddY(builder, y): return Vec3AddY(builder, y) -def Vec3AddZ(builder, z): builder.PrependFloat64Slot(2, z, 0.0) + +def Vec3AddZ(builder, z): + return builder.PrependFloat64Slot(2, z, 0.0) + def AddZ(builder, z): return Vec3AddZ(builder, z) -def Vec3AddTest1(builder, test1): builder.PrependFloat64Slot(3, test1, 0.0) + +def Vec3AddTest1(builder, test1): + return builder.PrependFloat64Slot(3, test1, 0.0) + def AddTest1(builder, test1): return Vec3AddTest1(builder, test1) -def Vec3AddTest2(builder, test2): builder.PrependUint8Slot(4, test2, 0) + +def Vec3AddTest2(builder, test2): + return builder.PrependUint8Slot(4, test2, 0) + def AddTest2(builder, test2): return Vec3AddTest2(builder, test2) -def Vec3AddTest3(builder, test3): builder.PrependStructSlot(5, flatbuffers.number_types.UOffsetTFlags.py_type(test3), 0) + +def Vec3AddTest3(builder, test3): + return builder.PrependStructSlot(5, flatbuffers.number_types.UOffsetTFlags.py_type(test3), 0) + def AddTest3(builder, test3): return Vec3AddTest3(builder, test3) -def Vec3End(builder): return builder.EndObject() + +def Vec3End(builder): + return builder.EndObject() + def End(builder): return Vec3End(builder) + import MyGame.Example.NestedUnion.Test try: from typing import Optional diff --git a/tests/MyGame/Example/Referrable.py b/tests/MyGame/Example/Referrable.py index 5fd1e24a27..e5081e1ae2 100644 --- a/tests/MyGame/Example/Referrable.py +++ b/tests/MyGame/Example/Referrable.py @@ -35,16 +35,25 @@ def Id(self): return self._tab.Get(flatbuffers.number_types.Uint64Flags, o + self._tab.Pos) return 0 -def ReferrableStart(builder): builder.StartObject(1) +def ReferrableStart(builder): + return builder.StartObject(1) + def Start(builder): return ReferrableStart(builder) -def ReferrableAddId(builder, id): builder.PrependUint64Slot(0, id, 0) + +def ReferrableAddId(builder, id): + return builder.PrependUint64Slot(0, id, 0) + def AddId(builder, id): return ReferrableAddId(builder, id) -def ReferrableEnd(builder): return builder.EndObject() + +def ReferrableEnd(builder): + return builder.EndObject() + def End(builder): return ReferrableEnd(builder) + class ReferrableT(object): # ReferrableT diff --git a/tests/MyGame/Example/Stat.py b/tests/MyGame/Example/Stat.py index 471bc36ff0..00ca1a468a 100644 --- a/tests/MyGame/Example/Stat.py +++ b/tests/MyGame/Example/Stat.py @@ -49,22 +49,37 @@ def Count(self): return self._tab.Get(flatbuffers.number_types.Uint16Flags, o + self._tab.Pos) return 0 -def StatStart(builder): builder.StartObject(3) +def StatStart(builder): + return builder.StartObject(3) + def Start(builder): return StatStart(builder) -def StatAddId(builder, id): builder.PrependUOffsetTRelativeSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(id), 0) + +def StatAddId(builder, id): + return builder.PrependUOffsetTRelativeSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(id), 0) + def AddId(builder, id): return StatAddId(builder, id) -def StatAddVal(builder, val): builder.PrependInt64Slot(1, val, 0) + +def StatAddVal(builder, val): + return builder.PrependInt64Slot(1, val, 0) + def AddVal(builder, val): return StatAddVal(builder, val) -def StatAddCount(builder, count): builder.PrependUint16Slot(2, count, 0) + +def StatAddCount(builder, count): + return builder.PrependUint16Slot(2, count, 0) + def AddCount(builder, count): return StatAddCount(builder, count) -def StatEnd(builder): return builder.EndObject() + +def StatEnd(builder): + return builder.EndObject() + def End(builder): return StatEnd(builder) + class StatT(object): # StatT diff --git a/tests/MyGame/Example/TestSimpleTableWithEnum.py b/tests/MyGame/Example/TestSimpleTableWithEnum.py index 9e58cc4b55..99e5c41bcd 100644 --- a/tests/MyGame/Example/TestSimpleTableWithEnum.py +++ b/tests/MyGame/Example/TestSimpleTableWithEnum.py @@ -35,16 +35,25 @@ def Color(self): return self._tab.Get(flatbuffers.number_types.Uint8Flags, o + self._tab.Pos) return 2 -def TestSimpleTableWithEnumStart(builder): builder.StartObject(1) +def TestSimpleTableWithEnumStart(builder): + return builder.StartObject(1) + def Start(builder): return TestSimpleTableWithEnumStart(builder) -def TestSimpleTableWithEnumAddColor(builder, color): builder.PrependUint8Slot(0, color, 2) + +def TestSimpleTableWithEnumAddColor(builder, color): + return builder.PrependUint8Slot(0, color, 2) + def AddColor(builder, color): return TestSimpleTableWithEnumAddColor(builder, color) -def TestSimpleTableWithEnumEnd(builder): return builder.EndObject() + +def TestSimpleTableWithEnumEnd(builder): + return builder.EndObject() + def End(builder): return TestSimpleTableWithEnumEnd(builder) + class TestSimpleTableWithEnumT(object): # TestSimpleTableWithEnumT diff --git a/tests/MyGame/Example/TypeAliases.py b/tests/MyGame/Example/TypeAliases.py index b3020490a0..8fb33b9d31 100644 --- a/tests/MyGame/Example/TypeAliases.py +++ b/tests/MyGame/Example/TypeAliases.py @@ -152,54 +152,102 @@ def Vf64IsNone(self): o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(26)) return o == 0 -def TypeAliasesStart(builder): builder.StartObject(12) +def TypeAliasesStart(builder): + return builder.StartObject(12) + def Start(builder): return TypeAliasesStart(builder) -def TypeAliasesAddI8(builder, i8): builder.PrependInt8Slot(0, i8, 0) + +def TypeAliasesAddI8(builder, i8): + return builder.PrependInt8Slot(0, i8, 0) + def AddI8(builder, i8): return TypeAliasesAddI8(builder, i8) -def TypeAliasesAddU8(builder, u8): builder.PrependUint8Slot(1, u8, 0) + +def TypeAliasesAddU8(builder, u8): + return builder.PrependUint8Slot(1, u8, 0) + def AddU8(builder, u8): return TypeAliasesAddU8(builder, u8) -def TypeAliasesAddI16(builder, i16): builder.PrependInt16Slot(2, i16, 0) + +def TypeAliasesAddI16(builder, i16): + return builder.PrependInt16Slot(2, i16, 0) + def AddI16(builder, i16): return TypeAliasesAddI16(builder, i16) -def TypeAliasesAddU16(builder, u16): builder.PrependUint16Slot(3, u16, 0) + +def TypeAliasesAddU16(builder, u16): + return builder.PrependUint16Slot(3, u16, 0) + def AddU16(builder, u16): return TypeAliasesAddU16(builder, u16) -def TypeAliasesAddI32(builder, i32): builder.PrependInt32Slot(4, i32, 0) + +def TypeAliasesAddI32(builder, i32): + return builder.PrependInt32Slot(4, i32, 0) + def AddI32(builder, i32): return TypeAliasesAddI32(builder, i32) -def TypeAliasesAddU32(builder, u32): builder.PrependUint32Slot(5, u32, 0) + +def TypeAliasesAddU32(builder, u32): + return builder.PrependUint32Slot(5, u32, 0) + def AddU32(builder, u32): return TypeAliasesAddU32(builder, u32) -def TypeAliasesAddI64(builder, i64): builder.PrependInt64Slot(6, i64, 0) + +def TypeAliasesAddI64(builder, i64): + return builder.PrependInt64Slot(6, i64, 0) + def AddI64(builder, i64): return TypeAliasesAddI64(builder, i64) -def TypeAliasesAddU64(builder, u64): builder.PrependUint64Slot(7, u64, 0) + +def TypeAliasesAddU64(builder, u64): + return builder.PrependUint64Slot(7, u64, 0) + def AddU64(builder, u64): return TypeAliasesAddU64(builder, u64) -def TypeAliasesAddF32(builder, f32): builder.PrependFloat32Slot(8, f32, 0.0) + +def TypeAliasesAddF32(builder, f32): + return builder.PrependFloat32Slot(8, f32, 0.0) + def AddF32(builder, f32): return TypeAliasesAddF32(builder, f32) -def TypeAliasesAddF64(builder, f64): builder.PrependFloat64Slot(9, f64, 0.0) + +def TypeAliasesAddF64(builder, f64): + return builder.PrependFloat64Slot(9, f64, 0.0) + def AddF64(builder, f64): return TypeAliasesAddF64(builder, f64) -def TypeAliasesAddV8(builder, v8): builder.PrependUOffsetTRelativeSlot(10, flatbuffers.number_types.UOffsetTFlags.py_type(v8), 0) + +def TypeAliasesAddV8(builder, v8): + return builder.PrependUOffsetTRelativeSlot(10, flatbuffers.number_types.UOffsetTFlags.py_type(v8), 0) + def AddV8(builder, v8): return TypeAliasesAddV8(builder, v8) -def TypeAliasesStartV8Vector(builder, numElems): return builder.StartVector(1, numElems, 1) + +def TypeAliasesStartV8Vector(builder, numElems): + return builder.StartVector(1, numElems, 1) + def StartV8Vector(builder, numElems): return TypeAliasesStartV8Vector(builder, numElems) -def TypeAliasesAddVf64(builder, vf64): builder.PrependUOffsetTRelativeSlot(11, flatbuffers.number_types.UOffsetTFlags.py_type(vf64), 0) + +def TypeAliasesAddVf64(builder, vf64): + return builder.PrependUOffsetTRelativeSlot(11, flatbuffers.number_types.UOffsetTFlags.py_type(vf64), 0) + def AddVf64(builder, vf64): return TypeAliasesAddVf64(builder, vf64) -def TypeAliasesStartVf64Vector(builder, numElems): return builder.StartVector(8, numElems, 8) + +def TypeAliasesStartVf64Vector(builder, numElems): + return builder.StartVector(8, numElems, 8) + def StartVf64Vector(builder, numElems): return TypeAliasesStartVf64Vector(builder, numElems) -def TypeAliasesEnd(builder): return builder.EndObject() + +def TypeAliasesEnd(builder): + return builder.EndObject() + def End(builder): return TypeAliasesEnd(builder) + try: from typing import List except: diff --git a/tests/MyGame/Example2/Monster.py b/tests/MyGame/Example2/Monster.py index 020efef731..965c4ffdc2 100644 --- a/tests/MyGame/Example2/Monster.py +++ b/tests/MyGame/Example2/Monster.py @@ -28,13 +28,19 @@ def MonsterBufferHasIdentifier(cls, buf, offset, size_prefixed=False): def Init(self, buf, pos): self._tab = flatbuffers.table.Table(buf, pos) -def MonsterStart(builder): builder.StartObject(0) +def MonsterStart(builder): + return builder.StartObject(0) + def Start(builder): return MonsterStart(builder) -def MonsterEnd(builder): return builder.EndObject() + +def MonsterEnd(builder): + return builder.EndObject() + def End(builder): return MonsterEnd(builder) + class MonsterT(object): # MonsterT diff --git a/tests/MyGame/InParentNamespace.py b/tests/MyGame/InParentNamespace.py index 0914aa4624..bd10e6955e 100644 --- a/tests/MyGame/InParentNamespace.py +++ b/tests/MyGame/InParentNamespace.py @@ -28,13 +28,19 @@ def InParentNamespaceBufferHasIdentifier(cls, buf, offset, size_prefixed=False): def Init(self, buf, pos): self._tab = flatbuffers.table.Table(buf, pos) -def InParentNamespaceStart(builder): builder.StartObject(0) +def InParentNamespaceStart(builder): + return builder.StartObject(0) + def Start(builder): return InParentNamespaceStart(builder) -def InParentNamespaceEnd(builder): return builder.EndObject() + +def InParentNamespaceEnd(builder): + return builder.EndObject() + def End(builder): return InParentNamespaceEnd(builder) + class InParentNamespaceT(object): # InParentNamespaceT diff --git a/tests/MyGame/MonsterExtra.py b/tests/MyGame/MonsterExtra.py index 90916523c9..10e380b79d 100644 --- a/tests/MyGame/MonsterExtra.py +++ b/tests/MyGame/MonsterExtra.py @@ -138,48 +138,90 @@ def FvecIsNone(self): o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(22)) return o == 0 -def MonsterExtraStart(builder): builder.StartObject(11) +def MonsterExtraStart(builder): + return builder.StartObject(11) + def Start(builder): return MonsterExtraStart(builder) -def MonsterExtraAddD0(builder, d0): builder.PrependFloat64Slot(0, d0, float('nan')) + +def MonsterExtraAddD0(builder, d0): + return builder.PrependFloat64Slot(0, d0, float('nan')) + def AddD0(builder, d0): return MonsterExtraAddD0(builder, d0) -def MonsterExtraAddD1(builder, d1): builder.PrependFloat64Slot(1, d1, float('nan')) + +def MonsterExtraAddD1(builder, d1): + return builder.PrependFloat64Slot(1, d1, float('nan')) + def AddD1(builder, d1): return MonsterExtraAddD1(builder, d1) -def MonsterExtraAddD2(builder, d2): builder.PrependFloat64Slot(2, d2, float('inf')) + +def MonsterExtraAddD2(builder, d2): + return builder.PrependFloat64Slot(2, d2, float('inf')) + def AddD2(builder, d2): return MonsterExtraAddD2(builder, d2) -def MonsterExtraAddD3(builder, d3): builder.PrependFloat64Slot(3, d3, float('-inf')) + +def MonsterExtraAddD3(builder, d3): + return builder.PrependFloat64Slot(3, d3, float('-inf')) + def AddD3(builder, d3): return MonsterExtraAddD3(builder, d3) -def MonsterExtraAddF0(builder, f0): builder.PrependFloat32Slot(4, f0, float('nan')) + +def MonsterExtraAddF0(builder, f0): + return builder.PrependFloat32Slot(4, f0, float('nan')) + def AddF0(builder, f0): return MonsterExtraAddF0(builder, f0) -def MonsterExtraAddF1(builder, f1): builder.PrependFloat32Slot(5, f1, float('nan')) + +def MonsterExtraAddF1(builder, f1): + return builder.PrependFloat32Slot(5, f1, float('nan')) + def AddF1(builder, f1): return MonsterExtraAddF1(builder, f1) -def MonsterExtraAddF2(builder, f2): builder.PrependFloat32Slot(6, f2, float('inf')) + +def MonsterExtraAddF2(builder, f2): + return builder.PrependFloat32Slot(6, f2, float('inf')) + def AddF2(builder, f2): return MonsterExtraAddF2(builder, f2) -def MonsterExtraAddF3(builder, f3): builder.PrependFloat32Slot(7, f3, float('-inf')) + +def MonsterExtraAddF3(builder, f3): + return builder.PrependFloat32Slot(7, f3, float('-inf')) + def AddF3(builder, f3): return MonsterExtraAddF3(builder, f3) -def MonsterExtraAddDvec(builder, dvec): builder.PrependUOffsetTRelativeSlot(8, flatbuffers.number_types.UOffsetTFlags.py_type(dvec), 0) + +def MonsterExtraAddDvec(builder, dvec): + return builder.PrependUOffsetTRelativeSlot(8, flatbuffers.number_types.UOffsetTFlags.py_type(dvec), 0) + def AddDvec(builder, dvec): return MonsterExtraAddDvec(builder, dvec) -def MonsterExtraStartDvecVector(builder, numElems): return builder.StartVector(8, numElems, 8) + +def MonsterExtraStartDvecVector(builder, numElems): + return builder.StartVector(8, numElems, 8) + def StartDvecVector(builder, numElems): return MonsterExtraStartDvecVector(builder, numElems) -def MonsterExtraAddFvec(builder, fvec): builder.PrependUOffsetTRelativeSlot(9, flatbuffers.number_types.UOffsetTFlags.py_type(fvec), 0) + +def MonsterExtraAddFvec(builder, fvec): + return builder.PrependUOffsetTRelativeSlot(9, flatbuffers.number_types.UOffsetTFlags.py_type(fvec), 0) + def AddFvec(builder, fvec): return MonsterExtraAddFvec(builder, fvec) -def MonsterExtraStartFvecVector(builder, numElems): return builder.StartVector(4, numElems, 4) + +def MonsterExtraStartFvecVector(builder, numElems): + return builder.StartVector(4, numElems, 4) + def StartFvecVector(builder, numElems): return MonsterExtraStartFvecVector(builder, numElems) -def MonsterExtraEnd(builder): return builder.EndObject() + +def MonsterExtraEnd(builder): + return builder.EndObject() + def End(builder): return MonsterExtraEnd(builder) + try: from typing import List except: diff --git a/tests/monster_test_generated.py b/tests/monster_test_generated.py index b70c31a2fb..36bbb6021a 100644 --- a/tests/monster_test_generated.py +++ b/tests/monster_test_generated.py @@ -108,8 +108,12 @@ def InParentNamespaceBufferHasIdentifier(cls, buf, offset, size_prefixed=False): def Init(self, buf, pos): self._tab = flatbuffers.table.Table(buf, pos) -def InParentNamespaceStart(builder): builder.StartObject(0) -def InParentNamespaceEnd(builder): return builder.EndObject() +def InParentNamespaceStart(builder): + return builder.StartObject(0) + +def InParentNamespaceEnd(builder): + return builder.EndObject() + class InParentNamespaceT(object): @@ -169,8 +173,12 @@ def MonsterBufferHasIdentifier(cls, buf, offset, size_prefixed=False): def Init(self, buf, pos): self._tab = flatbuffers.table.Table(buf, pos) -def MonsterStart(builder): builder.StartObject(0) -def MonsterEnd(builder): return builder.EndObject() +def MonsterStart(builder): + return builder.StartObject(0) + +def MonsterEnd(builder): + return builder.EndObject() + class MonsterT(object): @@ -297,9 +305,15 @@ def Color(self): return self._tab.Get(flatbuffers.number_types.Uint8Flags, o + self._tab.Pos) return 2 -def TestSimpleTableWithEnumStart(builder): builder.StartObject(1) -def TestSimpleTableWithEnumAddColor(builder, color): builder.PrependUint8Slot(0, color, 2) -def TestSimpleTableWithEnumEnd(builder): return builder.EndObject() +def TestSimpleTableWithEnumStart(builder): + return builder.StartObject(1) + +def TestSimpleTableWithEnumAddColor(builder, color): + return builder.PrependUint8Slot(0, color, 2) + +def TestSimpleTableWithEnumEnd(builder): + return builder.EndObject() + class TestSimpleTableWithEnumT(object): @@ -693,11 +707,21 @@ def Count(self): return self._tab.Get(flatbuffers.number_types.Uint16Flags, o + self._tab.Pos) return 0 -def StatStart(builder): builder.StartObject(3) -def StatAddId(builder, id): builder.PrependUOffsetTRelativeSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(id), 0) -def StatAddVal(builder, val): builder.PrependInt64Slot(1, val, 0) -def StatAddCount(builder, count): builder.PrependUint16Slot(2, count, 0) -def StatEnd(builder): return builder.EndObject() +def StatStart(builder): + return builder.StartObject(3) + +def StatAddId(builder, id): + return builder.PrependUOffsetTRelativeSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(id), 0) + +def StatAddVal(builder, val): + return builder.PrependInt64Slot(1, val, 0) + +def StatAddCount(builder, count): + return builder.PrependUint16Slot(2, count, 0) + +def StatEnd(builder): + return builder.EndObject() + class StatT(object): @@ -775,9 +799,15 @@ def Id(self): return self._tab.Get(flatbuffers.number_types.Uint64Flags, o + self._tab.Pos) return 0 -def ReferrableStart(builder): builder.StartObject(1) -def ReferrableAddId(builder, id): builder.PrependUint64Slot(0, id, 0) -def ReferrableEnd(builder): return builder.EndObject() +def ReferrableStart(builder): + return builder.StartObject(1) + +def ReferrableAddId(builder, id): + return builder.PrependUint64Slot(0, id, 0) + +def ReferrableEnd(builder): + return builder.EndObject() + class ReferrableT(object): @@ -1021,7 +1051,7 @@ def TestnestedflatbufferNestedRoot(self): o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(30)) if o != 0: from MyGame.Example.Monster import Monster - return Monster.GetRootAsMonster(self._tab.Bytes, self._tab.Vector(o)) + return Monster.GetRootAs(self._tab.Bytes, self._tab.Vector(o)) return 0 # Monster @@ -1552,7 +1582,7 @@ def TestrequirednestedflatbufferNestedRoot(self): o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(102)) if o != 0: from MyGame.Example.Monster import Monster - return Monster.GetRootAsMonster(self._tab.Bytes, self._tab.Vector(o)) + return Monster.GetRootAs(self._tab.Bytes, self._tab.Vector(o)) return 0 # Monster @@ -1671,99 +1701,265 @@ def DoubleInfDefault(self): return self._tab.Get(flatbuffers.number_types.Float64Flags, o + self._tab.Pos) return float('inf') -def MonsterStart(builder): builder.StartObject(62) -def MonsterAddPos(builder, pos): builder.PrependStructSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(pos), 0) -def MonsterAddMana(builder, mana): builder.PrependInt16Slot(1, mana, 150) -def MonsterAddHp(builder, hp): builder.PrependInt16Slot(2, hp, 100) -def MonsterAddName(builder, name): builder.PrependUOffsetTRelativeSlot(3, flatbuffers.number_types.UOffsetTFlags.py_type(name), 0) -def MonsterAddInventory(builder, inventory): builder.PrependUOffsetTRelativeSlot(5, flatbuffers.number_types.UOffsetTFlags.py_type(inventory), 0) -def MonsterStartInventoryVector(builder, numElems): return builder.StartVector(1, numElems, 1) -def MonsterAddColor(builder, color): builder.PrependUint8Slot(6, color, 8) -def MonsterAddTestType(builder, testType): builder.PrependUint8Slot(7, testType, 0) -def MonsterAddTest(builder, test): builder.PrependUOffsetTRelativeSlot(8, flatbuffers.number_types.UOffsetTFlags.py_type(test), 0) -def MonsterAddTest4(builder, test4): builder.PrependUOffsetTRelativeSlot(9, flatbuffers.number_types.UOffsetTFlags.py_type(test4), 0) -def MonsterStartTest4Vector(builder, numElems): return builder.StartVector(4, numElems, 2) -def MonsterAddTestarrayofstring(builder, testarrayofstring): builder.PrependUOffsetTRelativeSlot(10, flatbuffers.number_types.UOffsetTFlags.py_type(testarrayofstring), 0) -def MonsterStartTestarrayofstringVector(builder, numElems): return builder.StartVector(4, numElems, 4) -def MonsterAddTestarrayoftables(builder, testarrayoftables): builder.PrependUOffsetTRelativeSlot(11, flatbuffers.number_types.UOffsetTFlags.py_type(testarrayoftables), 0) -def MonsterStartTestarrayoftablesVector(builder, numElems): return builder.StartVector(4, numElems, 4) -def MonsterAddEnemy(builder, enemy): builder.PrependUOffsetTRelativeSlot(12, flatbuffers.number_types.UOffsetTFlags.py_type(enemy), 0) -def MonsterAddTestnestedflatbuffer(builder, testnestedflatbuffer): builder.PrependUOffsetTRelativeSlot(13, flatbuffers.number_types.UOffsetTFlags.py_type(testnestedflatbuffer), 0) -def MonsterStartTestnestedflatbufferVector(builder, numElems): return builder.StartVector(1, numElems, 1) +def MonsterStart(builder): + return builder.StartObject(62) + +def MonsterAddPos(builder, pos): + return builder.PrependStructSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(pos), 0) + +def MonsterAddMana(builder, mana): + return builder.PrependInt16Slot(1, mana, 150) + +def MonsterAddHp(builder, hp): + return builder.PrependInt16Slot(2, hp, 100) + +def MonsterAddName(builder, name): + return builder.PrependUOffsetTRelativeSlot(3, flatbuffers.number_types.UOffsetTFlags.py_type(name), 0) + +def MonsterAddInventory(builder, inventory): + return builder.PrependUOffsetTRelativeSlot(5, flatbuffers.number_types.UOffsetTFlags.py_type(inventory), 0) + +def MonsterStartInventoryVector(builder, numElems): + return builder.StartVector(1, numElems, 1) + +def MonsterAddColor(builder, color): + return builder.PrependUint8Slot(6, color, 8) + +def MonsterAddTestType(builder, testType): + return builder.PrependUint8Slot(7, testType, 0) + +def MonsterAddTest(builder, test): + return builder.PrependUOffsetTRelativeSlot(8, flatbuffers.number_types.UOffsetTFlags.py_type(test), 0) + +def MonsterAddTest4(builder, test4): + return builder.PrependUOffsetTRelativeSlot(9, flatbuffers.number_types.UOffsetTFlags.py_type(test4), 0) + +def MonsterStartTest4Vector(builder, numElems): + return builder.StartVector(4, numElems, 2) + +def MonsterAddTestarrayofstring(builder, testarrayofstring): + return builder.PrependUOffsetTRelativeSlot(10, flatbuffers.number_types.UOffsetTFlags.py_type(testarrayofstring), 0) + +def MonsterStartTestarrayofstringVector(builder, numElems): + return builder.StartVector(4, numElems, 4) + +def MonsterAddTestarrayoftables(builder, testarrayoftables): + return builder.PrependUOffsetTRelativeSlot(11, flatbuffers.number_types.UOffsetTFlags.py_type(testarrayoftables), 0) + +def MonsterStartTestarrayoftablesVector(builder, numElems): + return builder.StartVector(4, numElems, 4) + +def MonsterAddEnemy(builder, enemy): + return builder.PrependUOffsetTRelativeSlot(12, flatbuffers.number_types.UOffsetTFlags.py_type(enemy), 0) + +def MonsterAddTestnestedflatbuffer(builder, testnestedflatbuffer): + return builder.PrependUOffsetTRelativeSlot(13, flatbuffers.number_types.UOffsetTFlags.py_type(testnestedflatbuffer), 0) + +def MonsterStartTestnestedflatbufferVector(builder, numElems): + return builder.StartVector(1, numElems, 1) + def MonsterMakeTestnestedflatbufferVectorFromBytes(builder, bytes): builder.StartVector(1, len(bytes), 1) builder.head = builder.head - len(bytes) builder.Bytes[builder.head : builder.head + len(bytes)] = bytes return builder.EndVector() -def MonsterAddTestempty(builder, testempty): builder.PrependUOffsetTRelativeSlot(14, flatbuffers.number_types.UOffsetTFlags.py_type(testempty), 0) -def MonsterAddTestbool(builder, testbool): builder.PrependBoolSlot(15, testbool, 0) -def MonsterAddTesthashs32Fnv1(builder, testhashs32Fnv1): builder.PrependInt32Slot(16, testhashs32Fnv1, 0) -def MonsterAddTesthashu32Fnv1(builder, testhashu32Fnv1): builder.PrependUint32Slot(17, testhashu32Fnv1, 0) -def MonsterAddTesthashs64Fnv1(builder, testhashs64Fnv1): builder.PrependInt64Slot(18, testhashs64Fnv1, 0) -def MonsterAddTesthashu64Fnv1(builder, testhashu64Fnv1): builder.PrependUint64Slot(19, testhashu64Fnv1, 0) -def MonsterAddTesthashs32Fnv1a(builder, testhashs32Fnv1a): builder.PrependInt32Slot(20, testhashs32Fnv1a, 0) -def MonsterAddTesthashu32Fnv1a(builder, testhashu32Fnv1a): builder.PrependUint32Slot(21, testhashu32Fnv1a, 0) -def MonsterAddTesthashs64Fnv1a(builder, testhashs64Fnv1a): builder.PrependInt64Slot(22, testhashs64Fnv1a, 0) -def MonsterAddTesthashu64Fnv1a(builder, testhashu64Fnv1a): builder.PrependUint64Slot(23, testhashu64Fnv1a, 0) -def MonsterAddTestarrayofbools(builder, testarrayofbools): builder.PrependUOffsetTRelativeSlot(24, flatbuffers.number_types.UOffsetTFlags.py_type(testarrayofbools), 0) -def MonsterStartTestarrayofboolsVector(builder, numElems): return builder.StartVector(1, numElems, 1) -def MonsterAddTestf(builder, testf): builder.PrependFloat32Slot(25, testf, 3.14159) -def MonsterAddTestf2(builder, testf2): builder.PrependFloat32Slot(26, testf2, 3.0) -def MonsterAddTestf3(builder, testf3): builder.PrependFloat32Slot(27, testf3, 0.0) -def MonsterAddTestarrayofstring2(builder, testarrayofstring2): builder.PrependUOffsetTRelativeSlot(28, flatbuffers.number_types.UOffsetTFlags.py_type(testarrayofstring2), 0) -def MonsterStartTestarrayofstring2Vector(builder, numElems): return builder.StartVector(4, numElems, 4) -def MonsterAddTestarrayofsortedstruct(builder, testarrayofsortedstruct): builder.PrependUOffsetTRelativeSlot(29, flatbuffers.number_types.UOffsetTFlags.py_type(testarrayofsortedstruct), 0) -def MonsterStartTestarrayofsortedstructVector(builder, numElems): return builder.StartVector(8, numElems, 4) -def MonsterAddFlex(builder, flex): builder.PrependUOffsetTRelativeSlot(30, flatbuffers.number_types.UOffsetTFlags.py_type(flex), 0) -def MonsterStartFlexVector(builder, numElems): return builder.StartVector(1, numElems, 1) -def MonsterAddTest5(builder, test5): builder.PrependUOffsetTRelativeSlot(31, flatbuffers.number_types.UOffsetTFlags.py_type(test5), 0) -def MonsterStartTest5Vector(builder, numElems): return builder.StartVector(4, numElems, 2) -def MonsterAddVectorOfLongs(builder, vectorOfLongs): builder.PrependUOffsetTRelativeSlot(32, flatbuffers.number_types.UOffsetTFlags.py_type(vectorOfLongs), 0) -def MonsterStartVectorOfLongsVector(builder, numElems): return builder.StartVector(8, numElems, 8) -def MonsterAddVectorOfDoubles(builder, vectorOfDoubles): builder.PrependUOffsetTRelativeSlot(33, flatbuffers.number_types.UOffsetTFlags.py_type(vectorOfDoubles), 0) -def MonsterStartVectorOfDoublesVector(builder, numElems): return builder.StartVector(8, numElems, 8) -def MonsterAddParentNamespaceTest(builder, parentNamespaceTest): builder.PrependUOffsetTRelativeSlot(34, flatbuffers.number_types.UOffsetTFlags.py_type(parentNamespaceTest), 0) -def MonsterAddVectorOfReferrables(builder, vectorOfReferrables): builder.PrependUOffsetTRelativeSlot(35, flatbuffers.number_types.UOffsetTFlags.py_type(vectorOfReferrables), 0) -def MonsterStartVectorOfReferrablesVector(builder, numElems): return builder.StartVector(4, numElems, 4) -def MonsterAddSingleWeakReference(builder, singleWeakReference): builder.PrependUint64Slot(36, singleWeakReference, 0) -def MonsterAddVectorOfWeakReferences(builder, vectorOfWeakReferences): builder.PrependUOffsetTRelativeSlot(37, flatbuffers.number_types.UOffsetTFlags.py_type(vectorOfWeakReferences), 0) -def MonsterStartVectorOfWeakReferencesVector(builder, numElems): return builder.StartVector(8, numElems, 8) -def MonsterAddVectorOfStrongReferrables(builder, vectorOfStrongReferrables): builder.PrependUOffsetTRelativeSlot(38, flatbuffers.number_types.UOffsetTFlags.py_type(vectorOfStrongReferrables), 0) -def MonsterStartVectorOfStrongReferrablesVector(builder, numElems): return builder.StartVector(4, numElems, 4) -def MonsterAddCoOwningReference(builder, coOwningReference): builder.PrependUint64Slot(39, coOwningReference, 0) -def MonsterAddVectorOfCoOwningReferences(builder, vectorOfCoOwningReferences): builder.PrependUOffsetTRelativeSlot(40, flatbuffers.number_types.UOffsetTFlags.py_type(vectorOfCoOwningReferences), 0) -def MonsterStartVectorOfCoOwningReferencesVector(builder, numElems): return builder.StartVector(8, numElems, 8) -def MonsterAddNonOwningReference(builder, nonOwningReference): builder.PrependUint64Slot(41, nonOwningReference, 0) -def MonsterAddVectorOfNonOwningReferences(builder, vectorOfNonOwningReferences): builder.PrependUOffsetTRelativeSlot(42, flatbuffers.number_types.UOffsetTFlags.py_type(vectorOfNonOwningReferences), 0) -def MonsterStartVectorOfNonOwningReferencesVector(builder, numElems): return builder.StartVector(8, numElems, 8) -def MonsterAddAnyUniqueType(builder, anyUniqueType): builder.PrependUint8Slot(43, anyUniqueType, 0) -def MonsterAddAnyUnique(builder, anyUnique): builder.PrependUOffsetTRelativeSlot(44, flatbuffers.number_types.UOffsetTFlags.py_type(anyUnique), 0) -def MonsterAddAnyAmbiguousType(builder, anyAmbiguousType): builder.PrependUint8Slot(45, anyAmbiguousType, 0) -def MonsterAddAnyAmbiguous(builder, anyAmbiguous): builder.PrependUOffsetTRelativeSlot(46, flatbuffers.number_types.UOffsetTFlags.py_type(anyAmbiguous), 0) -def MonsterAddVectorOfEnums(builder, vectorOfEnums): builder.PrependUOffsetTRelativeSlot(47, flatbuffers.number_types.UOffsetTFlags.py_type(vectorOfEnums), 0) -def MonsterStartVectorOfEnumsVector(builder, numElems): return builder.StartVector(1, numElems, 1) -def MonsterAddSignedEnum(builder, signedEnum): builder.PrependInt8Slot(48, signedEnum, -1) -def MonsterAddTestrequirednestedflatbuffer(builder, testrequirednestedflatbuffer): builder.PrependUOffsetTRelativeSlot(49, flatbuffers.number_types.UOffsetTFlags.py_type(testrequirednestedflatbuffer), 0) -def MonsterStartTestrequirednestedflatbufferVector(builder, numElems): return builder.StartVector(1, numElems, 1) +def MonsterAddTestempty(builder, testempty): + return builder.PrependUOffsetTRelativeSlot(14, flatbuffers.number_types.UOffsetTFlags.py_type(testempty), 0) + +def MonsterAddTestbool(builder, testbool): + return builder.PrependBoolSlot(15, testbool, 0) + +def MonsterAddTesthashs32Fnv1(builder, testhashs32Fnv1): + return builder.PrependInt32Slot(16, testhashs32Fnv1, 0) + +def MonsterAddTesthashu32Fnv1(builder, testhashu32Fnv1): + return builder.PrependUint32Slot(17, testhashu32Fnv1, 0) + +def MonsterAddTesthashs64Fnv1(builder, testhashs64Fnv1): + return builder.PrependInt64Slot(18, testhashs64Fnv1, 0) + +def MonsterAddTesthashu64Fnv1(builder, testhashu64Fnv1): + return builder.PrependUint64Slot(19, testhashu64Fnv1, 0) + +def MonsterAddTesthashs32Fnv1a(builder, testhashs32Fnv1a): + return builder.PrependInt32Slot(20, testhashs32Fnv1a, 0) + +def MonsterAddTesthashu32Fnv1a(builder, testhashu32Fnv1a): + return builder.PrependUint32Slot(21, testhashu32Fnv1a, 0) + +def MonsterAddTesthashs64Fnv1a(builder, testhashs64Fnv1a): + return builder.PrependInt64Slot(22, testhashs64Fnv1a, 0) + +def MonsterAddTesthashu64Fnv1a(builder, testhashu64Fnv1a): + return builder.PrependUint64Slot(23, testhashu64Fnv1a, 0) + +def MonsterAddTestarrayofbools(builder, testarrayofbools): + return builder.PrependUOffsetTRelativeSlot(24, flatbuffers.number_types.UOffsetTFlags.py_type(testarrayofbools), 0) + +def MonsterStartTestarrayofboolsVector(builder, numElems): + return builder.StartVector(1, numElems, 1) + +def MonsterAddTestf(builder, testf): + return builder.PrependFloat32Slot(25, testf, 3.14159) + +def MonsterAddTestf2(builder, testf2): + return builder.PrependFloat32Slot(26, testf2, 3.0) + +def MonsterAddTestf3(builder, testf3): + return builder.PrependFloat32Slot(27, testf3, 0.0) + +def MonsterAddTestarrayofstring2(builder, testarrayofstring2): + return builder.PrependUOffsetTRelativeSlot(28, flatbuffers.number_types.UOffsetTFlags.py_type(testarrayofstring2), 0) + +def MonsterStartTestarrayofstring2Vector(builder, numElems): + return builder.StartVector(4, numElems, 4) + +def MonsterAddTestarrayofsortedstruct(builder, testarrayofsortedstruct): + return builder.PrependUOffsetTRelativeSlot(29, flatbuffers.number_types.UOffsetTFlags.py_type(testarrayofsortedstruct), 0) + +def MonsterStartTestarrayofsortedstructVector(builder, numElems): + return builder.StartVector(8, numElems, 4) + +def MonsterAddFlex(builder, flex): + return builder.PrependUOffsetTRelativeSlot(30, flatbuffers.number_types.UOffsetTFlags.py_type(flex), 0) + +def MonsterStartFlexVector(builder, numElems): + return builder.StartVector(1, numElems, 1) + +def MonsterAddTest5(builder, test5): + return builder.PrependUOffsetTRelativeSlot(31, flatbuffers.number_types.UOffsetTFlags.py_type(test5), 0) + +def MonsterStartTest5Vector(builder, numElems): + return builder.StartVector(4, numElems, 2) + +def MonsterAddVectorOfLongs(builder, vectorOfLongs): + return builder.PrependUOffsetTRelativeSlot(32, flatbuffers.number_types.UOffsetTFlags.py_type(vectorOfLongs), 0) + +def MonsterStartVectorOfLongsVector(builder, numElems): + return builder.StartVector(8, numElems, 8) + +def MonsterAddVectorOfDoubles(builder, vectorOfDoubles): + return builder.PrependUOffsetTRelativeSlot(33, flatbuffers.number_types.UOffsetTFlags.py_type(vectorOfDoubles), 0) + +def MonsterStartVectorOfDoublesVector(builder, numElems): + return builder.StartVector(8, numElems, 8) + +def MonsterAddParentNamespaceTest(builder, parentNamespaceTest): + return builder.PrependUOffsetTRelativeSlot(34, flatbuffers.number_types.UOffsetTFlags.py_type(parentNamespaceTest), 0) + +def MonsterAddVectorOfReferrables(builder, vectorOfReferrables): + return builder.PrependUOffsetTRelativeSlot(35, flatbuffers.number_types.UOffsetTFlags.py_type(vectorOfReferrables), 0) + +def MonsterStartVectorOfReferrablesVector(builder, numElems): + return builder.StartVector(4, numElems, 4) + +def MonsterAddSingleWeakReference(builder, singleWeakReference): + return builder.PrependUint64Slot(36, singleWeakReference, 0) + +def MonsterAddVectorOfWeakReferences(builder, vectorOfWeakReferences): + return builder.PrependUOffsetTRelativeSlot(37, flatbuffers.number_types.UOffsetTFlags.py_type(vectorOfWeakReferences), 0) + +def MonsterStartVectorOfWeakReferencesVector(builder, numElems): + return builder.StartVector(8, numElems, 8) + +def MonsterAddVectorOfStrongReferrables(builder, vectorOfStrongReferrables): + return builder.PrependUOffsetTRelativeSlot(38, flatbuffers.number_types.UOffsetTFlags.py_type(vectorOfStrongReferrables), 0) + +def MonsterStartVectorOfStrongReferrablesVector(builder, numElems): + return builder.StartVector(4, numElems, 4) + +def MonsterAddCoOwningReference(builder, coOwningReference): + return builder.PrependUint64Slot(39, coOwningReference, 0) + +def MonsterAddVectorOfCoOwningReferences(builder, vectorOfCoOwningReferences): + return builder.PrependUOffsetTRelativeSlot(40, flatbuffers.number_types.UOffsetTFlags.py_type(vectorOfCoOwningReferences), 0) + +def MonsterStartVectorOfCoOwningReferencesVector(builder, numElems): + return builder.StartVector(8, numElems, 8) + +def MonsterAddNonOwningReference(builder, nonOwningReference): + return builder.PrependUint64Slot(41, nonOwningReference, 0) + +def MonsterAddVectorOfNonOwningReferences(builder, vectorOfNonOwningReferences): + return builder.PrependUOffsetTRelativeSlot(42, flatbuffers.number_types.UOffsetTFlags.py_type(vectorOfNonOwningReferences), 0) + +def MonsterStartVectorOfNonOwningReferencesVector(builder, numElems): + return builder.StartVector(8, numElems, 8) + +def MonsterAddAnyUniqueType(builder, anyUniqueType): + return builder.PrependUint8Slot(43, anyUniqueType, 0) + +def MonsterAddAnyUnique(builder, anyUnique): + return builder.PrependUOffsetTRelativeSlot(44, flatbuffers.number_types.UOffsetTFlags.py_type(anyUnique), 0) + +def MonsterAddAnyAmbiguousType(builder, anyAmbiguousType): + return builder.PrependUint8Slot(45, anyAmbiguousType, 0) + +def MonsterAddAnyAmbiguous(builder, anyAmbiguous): + return builder.PrependUOffsetTRelativeSlot(46, flatbuffers.number_types.UOffsetTFlags.py_type(anyAmbiguous), 0) + +def MonsterAddVectorOfEnums(builder, vectorOfEnums): + return builder.PrependUOffsetTRelativeSlot(47, flatbuffers.number_types.UOffsetTFlags.py_type(vectorOfEnums), 0) + +def MonsterStartVectorOfEnumsVector(builder, numElems): + return builder.StartVector(1, numElems, 1) + +def MonsterAddSignedEnum(builder, signedEnum): + return builder.PrependInt8Slot(48, signedEnum, -1) + +def MonsterAddTestrequirednestedflatbuffer(builder, testrequirednestedflatbuffer): + return builder.PrependUOffsetTRelativeSlot(49, flatbuffers.number_types.UOffsetTFlags.py_type(testrequirednestedflatbuffer), 0) + +def MonsterStartTestrequirednestedflatbufferVector(builder, numElems): + return builder.StartVector(1, numElems, 1) + def MonsterMakeTestrequirednestedflatbufferVectorFromBytes(builder, bytes): builder.StartVector(1, len(bytes), 1) builder.head = builder.head - len(bytes) builder.Bytes[builder.head : builder.head + len(bytes)] = bytes return builder.EndVector() -def MonsterAddScalarKeySortedTables(builder, scalarKeySortedTables): builder.PrependUOffsetTRelativeSlot(50, flatbuffers.number_types.UOffsetTFlags.py_type(scalarKeySortedTables), 0) -def MonsterStartScalarKeySortedTablesVector(builder, numElems): return builder.StartVector(4, numElems, 4) -def MonsterAddNativeInline(builder, nativeInline): builder.PrependStructSlot(51, flatbuffers.number_types.UOffsetTFlags.py_type(nativeInline), 0) -def MonsterAddLongEnumNonEnumDefault(builder, longEnumNonEnumDefault): builder.PrependUint64Slot(52, longEnumNonEnumDefault, 0) -def MonsterAddLongEnumNormalDefault(builder, longEnumNormalDefault): builder.PrependUint64Slot(53, longEnumNormalDefault, 2) -def MonsterAddNanDefault(builder, nanDefault): builder.PrependFloat32Slot(54, nanDefault, float('nan')) -def MonsterAddInfDefault(builder, infDefault): builder.PrependFloat32Slot(55, infDefault, float('inf')) -def MonsterAddPositiveInfDefault(builder, positiveInfDefault): builder.PrependFloat32Slot(56, positiveInfDefault, float('inf')) -def MonsterAddInfinityDefault(builder, infinityDefault): builder.PrependFloat32Slot(57, infinityDefault, float('inf')) -def MonsterAddPositiveInfinityDefault(builder, positiveInfinityDefault): builder.PrependFloat32Slot(58, positiveInfinityDefault, float('inf')) -def MonsterAddNegativeInfDefault(builder, negativeInfDefault): builder.PrependFloat32Slot(59, negativeInfDefault, float('-inf')) -def MonsterAddNegativeInfinityDefault(builder, negativeInfinityDefault): builder.PrependFloat32Slot(60, negativeInfinityDefault, float('-inf')) -def MonsterAddDoubleInfDefault(builder, doubleInfDefault): builder.PrependFloat64Slot(61, doubleInfDefault, float('inf')) -def MonsterEnd(builder): return builder.EndObject() +def MonsterAddScalarKeySortedTables(builder, scalarKeySortedTables): + return builder.PrependUOffsetTRelativeSlot(50, flatbuffers.number_types.UOffsetTFlags.py_type(scalarKeySortedTables), 0) + +def MonsterStartScalarKeySortedTablesVector(builder, numElems): + return builder.StartVector(4, numElems, 4) + +def MonsterAddNativeInline(builder, nativeInline): + return builder.PrependStructSlot(51, flatbuffers.number_types.UOffsetTFlags.py_type(nativeInline), 0) + +def MonsterAddLongEnumNonEnumDefault(builder, longEnumNonEnumDefault): + return builder.PrependUint64Slot(52, longEnumNonEnumDefault, 0) + +def MonsterAddLongEnumNormalDefault(builder, longEnumNormalDefault): + return builder.PrependUint64Slot(53, longEnumNormalDefault, 2) + +def MonsterAddNanDefault(builder, nanDefault): + return builder.PrependFloat32Slot(54, nanDefault, float('nan')) + +def MonsterAddInfDefault(builder, infDefault): + return builder.PrependFloat32Slot(55, infDefault, float('inf')) + +def MonsterAddPositiveInfDefault(builder, positiveInfDefault): + return builder.PrependFloat32Slot(56, positiveInfDefault, float('inf')) + +def MonsterAddInfinityDefault(builder, infinityDefault): + return builder.PrependFloat32Slot(57, infinityDefault, float('inf')) + +def MonsterAddPositiveInfinityDefault(builder, positiveInfinityDefault): + return builder.PrependFloat32Slot(58, positiveInfinityDefault, float('inf')) + +def MonsterAddNegativeInfDefault(builder, negativeInfDefault): + return builder.PrependFloat32Slot(59, negativeInfDefault, float('-inf')) + +def MonsterAddNegativeInfinityDefault(builder, negativeInfinityDefault): + return builder.PrependFloat32Slot(60, negativeInfinityDefault, float('-inf')) + +def MonsterAddDoubleInfDefault(builder, doubleInfDefault): + return builder.PrependFloat64Slot(61, doubleInfDefault, float('inf')) + +def MonsterEnd(builder): + return builder.EndObject() + try: from typing import List, Optional, Union @@ -2455,22 +2651,54 @@ def Vf64IsNone(self): o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(26)) return o == 0 -def TypeAliasesStart(builder): builder.StartObject(12) -def TypeAliasesAddI8(builder, i8): builder.PrependInt8Slot(0, i8, 0) -def TypeAliasesAddU8(builder, u8): builder.PrependUint8Slot(1, u8, 0) -def TypeAliasesAddI16(builder, i16): builder.PrependInt16Slot(2, i16, 0) -def TypeAliasesAddU16(builder, u16): builder.PrependUint16Slot(3, u16, 0) -def TypeAliasesAddI32(builder, i32): builder.PrependInt32Slot(4, i32, 0) -def TypeAliasesAddU32(builder, u32): builder.PrependUint32Slot(5, u32, 0) -def TypeAliasesAddI64(builder, i64): builder.PrependInt64Slot(6, i64, 0) -def TypeAliasesAddU64(builder, u64): builder.PrependUint64Slot(7, u64, 0) -def TypeAliasesAddF32(builder, f32): builder.PrependFloat32Slot(8, f32, 0.0) -def TypeAliasesAddF64(builder, f64): builder.PrependFloat64Slot(9, f64, 0.0) -def TypeAliasesAddV8(builder, v8): builder.PrependUOffsetTRelativeSlot(10, flatbuffers.number_types.UOffsetTFlags.py_type(v8), 0) -def TypeAliasesStartV8Vector(builder, numElems): return builder.StartVector(1, numElems, 1) -def TypeAliasesAddVf64(builder, vf64): builder.PrependUOffsetTRelativeSlot(11, flatbuffers.number_types.UOffsetTFlags.py_type(vf64), 0) -def TypeAliasesStartVf64Vector(builder, numElems): return builder.StartVector(8, numElems, 8) -def TypeAliasesEnd(builder): return builder.EndObject() +def TypeAliasesStart(builder): + return builder.StartObject(12) + +def TypeAliasesAddI8(builder, i8): + return builder.PrependInt8Slot(0, i8, 0) + +def TypeAliasesAddU8(builder, u8): + return builder.PrependUint8Slot(1, u8, 0) + +def TypeAliasesAddI16(builder, i16): + return builder.PrependInt16Slot(2, i16, 0) + +def TypeAliasesAddU16(builder, u16): + return builder.PrependUint16Slot(3, u16, 0) + +def TypeAliasesAddI32(builder, i32): + return builder.PrependInt32Slot(4, i32, 0) + +def TypeAliasesAddU32(builder, u32): + return builder.PrependUint32Slot(5, u32, 0) + +def TypeAliasesAddI64(builder, i64): + return builder.PrependInt64Slot(6, i64, 0) + +def TypeAliasesAddU64(builder, u64): + return builder.PrependUint64Slot(7, u64, 0) + +def TypeAliasesAddF32(builder, f32): + return builder.PrependFloat32Slot(8, f32, 0.0) + +def TypeAliasesAddF64(builder, f64): + return builder.PrependFloat64Slot(9, f64, 0.0) + +def TypeAliasesAddV8(builder, v8): + return builder.PrependUOffsetTRelativeSlot(10, flatbuffers.number_types.UOffsetTFlags.py_type(v8), 0) + +def TypeAliasesStartV8Vector(builder, numElems): + return builder.StartVector(1, numElems, 1) + +def TypeAliasesAddVf64(builder, vf64): + return builder.PrependUOffsetTRelativeSlot(11, flatbuffers.number_types.UOffsetTFlags.py_type(vf64), 0) + +def TypeAliasesStartVf64Vector(builder, numElems): + return builder.StartVector(8, numElems, 8) + +def TypeAliasesEnd(builder): + return builder.EndObject() + try: from typing import List diff --git a/tests/optional_scalars/ScalarStuff.py b/tests/optional_scalars/ScalarStuff.py index ca7c253a64..b75ba22df3 100644 --- a/tests/optional_scalars/ScalarStuff.py +++ b/tests/optional_scalars/ScalarStuff.py @@ -280,121 +280,235 @@ def DefaultEnum(self): return self._tab.Get(flatbuffers.number_types.Int8Flags, o + self._tab.Pos) return 1 -def ScalarStuffStart(builder): builder.StartObject(36) +def ScalarStuffStart(builder): + return builder.StartObject(36) + def Start(builder): return ScalarStuffStart(builder) -def ScalarStuffAddJustI8(builder, justI8): builder.PrependInt8Slot(0, justI8, 0) + +def ScalarStuffAddJustI8(builder, justI8): + return builder.PrependInt8Slot(0, justI8, 0) + def AddJustI8(builder, justI8): return ScalarStuffAddJustI8(builder, justI8) -def ScalarStuffAddMaybeI8(builder, maybeI8): builder.PrependInt8Slot(1, maybeI8, None) + +def ScalarStuffAddMaybeI8(builder, maybeI8): + return builder.PrependInt8Slot(1, maybeI8, None) + def AddMaybeI8(builder, maybeI8): return ScalarStuffAddMaybeI8(builder, maybeI8) -def ScalarStuffAddDefaultI8(builder, defaultI8): builder.PrependInt8Slot(2, defaultI8, 42) + +def ScalarStuffAddDefaultI8(builder, defaultI8): + return builder.PrependInt8Slot(2, defaultI8, 42) + def AddDefaultI8(builder, defaultI8): return ScalarStuffAddDefaultI8(builder, defaultI8) -def ScalarStuffAddJustU8(builder, justU8): builder.PrependUint8Slot(3, justU8, 0) + +def ScalarStuffAddJustU8(builder, justU8): + return builder.PrependUint8Slot(3, justU8, 0) + def AddJustU8(builder, justU8): return ScalarStuffAddJustU8(builder, justU8) -def ScalarStuffAddMaybeU8(builder, maybeU8): builder.PrependUint8Slot(4, maybeU8, None) + +def ScalarStuffAddMaybeU8(builder, maybeU8): + return builder.PrependUint8Slot(4, maybeU8, None) + def AddMaybeU8(builder, maybeU8): return ScalarStuffAddMaybeU8(builder, maybeU8) -def ScalarStuffAddDefaultU8(builder, defaultU8): builder.PrependUint8Slot(5, defaultU8, 42) + +def ScalarStuffAddDefaultU8(builder, defaultU8): + return builder.PrependUint8Slot(5, defaultU8, 42) + def AddDefaultU8(builder, defaultU8): return ScalarStuffAddDefaultU8(builder, defaultU8) -def ScalarStuffAddJustI16(builder, justI16): builder.PrependInt16Slot(6, justI16, 0) + +def ScalarStuffAddJustI16(builder, justI16): + return builder.PrependInt16Slot(6, justI16, 0) + def AddJustI16(builder, justI16): return ScalarStuffAddJustI16(builder, justI16) -def ScalarStuffAddMaybeI16(builder, maybeI16): builder.PrependInt16Slot(7, maybeI16, None) + +def ScalarStuffAddMaybeI16(builder, maybeI16): + return builder.PrependInt16Slot(7, maybeI16, None) + def AddMaybeI16(builder, maybeI16): return ScalarStuffAddMaybeI16(builder, maybeI16) -def ScalarStuffAddDefaultI16(builder, defaultI16): builder.PrependInt16Slot(8, defaultI16, 42) + +def ScalarStuffAddDefaultI16(builder, defaultI16): + return builder.PrependInt16Slot(8, defaultI16, 42) + def AddDefaultI16(builder, defaultI16): return ScalarStuffAddDefaultI16(builder, defaultI16) -def ScalarStuffAddJustU16(builder, justU16): builder.PrependUint16Slot(9, justU16, 0) + +def ScalarStuffAddJustU16(builder, justU16): + return builder.PrependUint16Slot(9, justU16, 0) + def AddJustU16(builder, justU16): return ScalarStuffAddJustU16(builder, justU16) -def ScalarStuffAddMaybeU16(builder, maybeU16): builder.PrependUint16Slot(10, maybeU16, None) + +def ScalarStuffAddMaybeU16(builder, maybeU16): + return builder.PrependUint16Slot(10, maybeU16, None) + def AddMaybeU16(builder, maybeU16): return ScalarStuffAddMaybeU16(builder, maybeU16) -def ScalarStuffAddDefaultU16(builder, defaultU16): builder.PrependUint16Slot(11, defaultU16, 42) + +def ScalarStuffAddDefaultU16(builder, defaultU16): + return builder.PrependUint16Slot(11, defaultU16, 42) + def AddDefaultU16(builder, defaultU16): return ScalarStuffAddDefaultU16(builder, defaultU16) -def ScalarStuffAddJustI32(builder, justI32): builder.PrependInt32Slot(12, justI32, 0) + +def ScalarStuffAddJustI32(builder, justI32): + return builder.PrependInt32Slot(12, justI32, 0) + def AddJustI32(builder, justI32): return ScalarStuffAddJustI32(builder, justI32) -def ScalarStuffAddMaybeI32(builder, maybeI32): builder.PrependInt32Slot(13, maybeI32, None) + +def ScalarStuffAddMaybeI32(builder, maybeI32): + return builder.PrependInt32Slot(13, maybeI32, None) + def AddMaybeI32(builder, maybeI32): return ScalarStuffAddMaybeI32(builder, maybeI32) -def ScalarStuffAddDefaultI32(builder, defaultI32): builder.PrependInt32Slot(14, defaultI32, 42) + +def ScalarStuffAddDefaultI32(builder, defaultI32): + return builder.PrependInt32Slot(14, defaultI32, 42) + def AddDefaultI32(builder, defaultI32): return ScalarStuffAddDefaultI32(builder, defaultI32) -def ScalarStuffAddJustU32(builder, justU32): builder.PrependUint32Slot(15, justU32, 0) + +def ScalarStuffAddJustU32(builder, justU32): + return builder.PrependUint32Slot(15, justU32, 0) + def AddJustU32(builder, justU32): return ScalarStuffAddJustU32(builder, justU32) -def ScalarStuffAddMaybeU32(builder, maybeU32): builder.PrependUint32Slot(16, maybeU32, None) + +def ScalarStuffAddMaybeU32(builder, maybeU32): + return builder.PrependUint32Slot(16, maybeU32, None) + def AddMaybeU32(builder, maybeU32): return ScalarStuffAddMaybeU32(builder, maybeU32) -def ScalarStuffAddDefaultU32(builder, defaultU32): builder.PrependUint32Slot(17, defaultU32, 42) + +def ScalarStuffAddDefaultU32(builder, defaultU32): + return builder.PrependUint32Slot(17, defaultU32, 42) + def AddDefaultU32(builder, defaultU32): return ScalarStuffAddDefaultU32(builder, defaultU32) -def ScalarStuffAddJustI64(builder, justI64): builder.PrependInt64Slot(18, justI64, 0) + +def ScalarStuffAddJustI64(builder, justI64): + return builder.PrependInt64Slot(18, justI64, 0) + def AddJustI64(builder, justI64): return ScalarStuffAddJustI64(builder, justI64) -def ScalarStuffAddMaybeI64(builder, maybeI64): builder.PrependInt64Slot(19, maybeI64, None) + +def ScalarStuffAddMaybeI64(builder, maybeI64): + return builder.PrependInt64Slot(19, maybeI64, None) + def AddMaybeI64(builder, maybeI64): return ScalarStuffAddMaybeI64(builder, maybeI64) -def ScalarStuffAddDefaultI64(builder, defaultI64): builder.PrependInt64Slot(20, defaultI64, 42) + +def ScalarStuffAddDefaultI64(builder, defaultI64): + return builder.PrependInt64Slot(20, defaultI64, 42) + def AddDefaultI64(builder, defaultI64): return ScalarStuffAddDefaultI64(builder, defaultI64) -def ScalarStuffAddJustU64(builder, justU64): builder.PrependUint64Slot(21, justU64, 0) + +def ScalarStuffAddJustU64(builder, justU64): + return builder.PrependUint64Slot(21, justU64, 0) + def AddJustU64(builder, justU64): return ScalarStuffAddJustU64(builder, justU64) -def ScalarStuffAddMaybeU64(builder, maybeU64): builder.PrependUint64Slot(22, maybeU64, None) + +def ScalarStuffAddMaybeU64(builder, maybeU64): + return builder.PrependUint64Slot(22, maybeU64, None) + def AddMaybeU64(builder, maybeU64): return ScalarStuffAddMaybeU64(builder, maybeU64) -def ScalarStuffAddDefaultU64(builder, defaultU64): builder.PrependUint64Slot(23, defaultU64, 42) + +def ScalarStuffAddDefaultU64(builder, defaultU64): + return builder.PrependUint64Slot(23, defaultU64, 42) + def AddDefaultU64(builder, defaultU64): return ScalarStuffAddDefaultU64(builder, defaultU64) -def ScalarStuffAddJustF32(builder, justF32): builder.PrependFloat32Slot(24, justF32, 0.0) + +def ScalarStuffAddJustF32(builder, justF32): + return builder.PrependFloat32Slot(24, justF32, 0.0) + def AddJustF32(builder, justF32): return ScalarStuffAddJustF32(builder, justF32) -def ScalarStuffAddMaybeF32(builder, maybeF32): builder.PrependFloat32Slot(25, maybeF32, None) + +def ScalarStuffAddMaybeF32(builder, maybeF32): + return builder.PrependFloat32Slot(25, maybeF32, None) + def AddMaybeF32(builder, maybeF32): return ScalarStuffAddMaybeF32(builder, maybeF32) -def ScalarStuffAddDefaultF32(builder, defaultF32): builder.PrependFloat32Slot(26, defaultF32, 42.0) + +def ScalarStuffAddDefaultF32(builder, defaultF32): + return builder.PrependFloat32Slot(26, defaultF32, 42.0) + def AddDefaultF32(builder, defaultF32): return ScalarStuffAddDefaultF32(builder, defaultF32) -def ScalarStuffAddJustF64(builder, justF64): builder.PrependFloat64Slot(27, justF64, 0.0) + +def ScalarStuffAddJustF64(builder, justF64): + return builder.PrependFloat64Slot(27, justF64, 0.0) + def AddJustF64(builder, justF64): return ScalarStuffAddJustF64(builder, justF64) -def ScalarStuffAddMaybeF64(builder, maybeF64): builder.PrependFloat64Slot(28, maybeF64, None) + +def ScalarStuffAddMaybeF64(builder, maybeF64): + return builder.PrependFloat64Slot(28, maybeF64, None) + def AddMaybeF64(builder, maybeF64): return ScalarStuffAddMaybeF64(builder, maybeF64) -def ScalarStuffAddDefaultF64(builder, defaultF64): builder.PrependFloat64Slot(29, defaultF64, 42.0) + +def ScalarStuffAddDefaultF64(builder, defaultF64): + return builder.PrependFloat64Slot(29, defaultF64, 42.0) + def AddDefaultF64(builder, defaultF64): return ScalarStuffAddDefaultF64(builder, defaultF64) -def ScalarStuffAddJustBool(builder, justBool): builder.PrependBoolSlot(30, justBool, 0) + +def ScalarStuffAddJustBool(builder, justBool): + return builder.PrependBoolSlot(30, justBool, 0) + def AddJustBool(builder, justBool): return ScalarStuffAddJustBool(builder, justBool) -def ScalarStuffAddMaybeBool(builder, maybeBool): builder.PrependBoolSlot(31, maybeBool, None) + +def ScalarStuffAddMaybeBool(builder, maybeBool): + return builder.PrependBoolSlot(31, maybeBool, None) + def AddMaybeBool(builder, maybeBool): return ScalarStuffAddMaybeBool(builder, maybeBool) -def ScalarStuffAddDefaultBool(builder, defaultBool): builder.PrependBoolSlot(32, defaultBool, 1) + +def ScalarStuffAddDefaultBool(builder, defaultBool): + return builder.PrependBoolSlot(32, defaultBool, 1) + def AddDefaultBool(builder, defaultBool): return ScalarStuffAddDefaultBool(builder, defaultBool) -def ScalarStuffAddJustEnum(builder, justEnum): builder.PrependInt8Slot(33, justEnum, 0) + +def ScalarStuffAddJustEnum(builder, justEnum): + return builder.PrependInt8Slot(33, justEnum, 0) + def AddJustEnum(builder, justEnum): return ScalarStuffAddJustEnum(builder, justEnum) -def ScalarStuffAddMaybeEnum(builder, maybeEnum): builder.PrependInt8Slot(34, maybeEnum, None) + +def ScalarStuffAddMaybeEnum(builder, maybeEnum): + return builder.PrependInt8Slot(34, maybeEnum, None) + def AddMaybeEnum(builder, maybeEnum): return ScalarStuffAddMaybeEnum(builder, maybeEnum) -def ScalarStuffAddDefaultEnum(builder, defaultEnum): builder.PrependInt8Slot(35, defaultEnum, 1) + +def ScalarStuffAddDefaultEnum(builder, defaultEnum): + return builder.PrependInt8Slot(35, defaultEnum, 1) + def AddDefaultEnum(builder, defaultEnum): return ScalarStuffAddDefaultEnum(builder, defaultEnum) -def ScalarStuffEnd(builder): return builder.EndObject() + +def ScalarStuffEnd(builder): + return builder.EndObject() + def End(builder): return ScalarStuffEnd(builder) + class ScalarStuffT(object): # ScalarStuffT From 63495b935a06cba8f3b09e21fb79f08d50f06648 Mon Sep 17 00:00:00 2001 From: Jeroen Demeyer Date: Wed, 26 Apr 2023 07:15:09 +0200 Subject: [PATCH 153/571] Support file_identifier in Go (#7904) Co-authored-by: Derek Bailey --- go/lib.go | 20 +++++ grpc/examples/go/greeter/models/HelloReply.go | 8 ++ .../go/greeter/models/HelloRequest.go | 8 ++ src/idl_gen_go.cpp | 28 ++++++ tests/MyGame/Example/Monster.go | 20 +++++ tests/MyGame/Example/Referrable.go | 8 ++ tests/MyGame/Example/Stat.go | 8 ++ .../MyGame/Example/TestSimpleTableWithEnum.go | 8 ++ tests/MyGame/Example/TypeAliases.go | 8 ++ tests/MyGame/Example2/Monster.go | 8 ++ tests/MyGame/InParentNamespace.go | 8 ++ tests/go_test.go | 81 +++++++++++++++--- tests/monsterdata_go_wire.mon.sp | Bin 224 -> 232 bytes 13 files changed, 200 insertions(+), 13 deletions(-) diff --git a/go/lib.go b/go/lib.go index 9333d8bd3f..a4e99de101 100644 --- a/go/lib.go +++ b/go/lib.go @@ -28,3 +28,23 @@ func GetSizePrefix(buf []byte, offset UOffsetT) uint32 { func GetIndirectOffset(buf []byte, offset UOffsetT) UOffsetT { return offset + GetUOffsetT(buf[offset:]) } + +// GetBufferIdentifier returns the file identifier as string +func GetBufferIdentifier(buf []byte) string { + return string(buf[SizeUOffsetT:][:fileIdentifierLength]) +} + +// GetBufferIdentifier returns the file identifier as string for a size-prefixed buffer +func GetSizePrefixedBufferIdentifier(buf []byte) string { + return string(buf[SizeUOffsetT+sizePrefixLength:][:fileIdentifierLength]) +} + +// BufferHasIdentifier checks if the identifier in a buffer has the expected value +func BufferHasIdentifier(buf []byte, identifier string) bool { + return GetBufferIdentifier(buf) == identifier +} + +// BufferHasIdentifier checks if the identifier in a buffer has the expected value for a size-prefixed buffer +func SizePrefixedBufferHasIdentifier(buf []byte, identifier string) bool { + return GetSizePrefixedBufferIdentifier(buf) == identifier +} diff --git a/grpc/examples/go/greeter/models/HelloReply.go b/grpc/examples/go/greeter/models/HelloReply.go index bb5db40785..747db2d872 100644 --- a/grpc/examples/go/greeter/models/HelloReply.go +++ b/grpc/examples/go/greeter/models/HelloReply.go @@ -17,6 +17,10 @@ func GetRootAsHelloReply(buf []byte, offset flatbuffers.UOffsetT) *HelloReply { return x } +func FinishHelloReplyBuffer(builder *flatbuffers.Builder, offset flatbuffers.UOffsetT) { + builder.Finish(offset) +} + func GetSizePrefixedRootAsHelloReply(buf []byte, offset flatbuffers.UOffsetT) *HelloReply { n := flatbuffers.GetUOffsetT(buf[offset+flatbuffers.SizeUint32:]) x := &HelloReply{} @@ -24,6 +28,10 @@ func GetSizePrefixedRootAsHelloReply(buf []byte, offset flatbuffers.UOffsetT) *H return x } +func FinishSizePrefixedHelloReplyBuffer(builder *flatbuffers.Builder, offset flatbuffers.UOffsetT) { + builder.FinishSizePrefixed(offset) +} + func (rcv *HelloReply) Init(buf []byte, i flatbuffers.UOffsetT) { rcv._tab.Bytes = buf rcv._tab.Pos = i diff --git a/grpc/examples/go/greeter/models/HelloRequest.go b/grpc/examples/go/greeter/models/HelloRequest.go index 52feab9764..3710cf5aaf 100644 --- a/grpc/examples/go/greeter/models/HelloRequest.go +++ b/grpc/examples/go/greeter/models/HelloRequest.go @@ -17,6 +17,10 @@ func GetRootAsHelloRequest(buf []byte, offset flatbuffers.UOffsetT) *HelloReques return x } +func FinishHelloRequestBuffer(builder *flatbuffers.Builder, offset flatbuffers.UOffsetT) { + builder.Finish(offset) +} + func GetSizePrefixedRootAsHelloRequest(buf []byte, offset flatbuffers.UOffsetT) *HelloRequest { n := flatbuffers.GetUOffsetT(buf[offset+flatbuffers.SizeUint32:]) x := &HelloRequest{} @@ -24,6 +28,10 @@ func GetSizePrefixedRootAsHelloRequest(buf []byte, offset flatbuffers.UOffsetT) return x } +func FinishSizePrefixedHelloRequestBuffer(builder *flatbuffers.Builder, offset flatbuffers.UOffsetT) { + builder.FinishSizePrefixed(offset) +} + func (rcv *HelloRequest) Init(buf []byte, i flatbuffers.UOffsetT) { rcv._tab.Bytes = buf rcv._tab.Pos = i diff --git a/src/idl_gen_go.cpp b/src/idl_gen_go.cpp index 6a66b5c629..f2ffc3e73c 100644 --- a/src/idl_gen_go.cpp +++ b/src/idl_gen_go.cpp @@ -292,6 +292,14 @@ class GoGenerator : public BaseGenerator { const std::string size_prefix[] = { "", "SizePrefixed" }; const std::string struct_type = namer_.Type(struct_def); + bool has_file_identifier = (parser_.root_struct_def_ == &struct_def) && + parser_.file_identifier_.length(); + + if (has_file_identifier) { + code += "const " + struct_type + "Identifier = \"" + + parser_.file_identifier_ + "\"\n\n"; + } + for (int i = 0; i < 2; i++) { code += "func Get" + size_prefix[i] + "RootAs" + struct_type; code += "(buf []byte, offset flatbuffers.UOffsetT) "; @@ -312,6 +320,26 @@ class GoGenerator : public BaseGenerator { } code += "\treturn x\n"; code += "}\n\n"; + + code += "func Finish" + size_prefix[i] + struct_type + + "Buffer(builder *flatbuffers.Builder, offset " + "flatbuffers.UOffsetT) {\n"; + if (has_file_identifier) { + code += "\tidentifierBytes := []byte(" + struct_type + "Identifier)\n"; + code += "\tbuilder.Finish" + size_prefix[i] + + "WithFileIdentifier(offset, identifierBytes)\n"; + } else { + code += "\tbuilder.Finish" + size_prefix[i] + "(offset)\n"; + } + code += "}\n\n"; + + if (has_file_identifier) { + code += "func " + size_prefix[i] + struct_type + + "BufferHasIdentifier(buf []byte) bool {\n"; + code += "\treturn flatbuffers." + size_prefix[i] + + "BufferHasIdentifier(buf, " + struct_type + "Identifier)\n"; + code += "}\n\n"; + } } } diff --git a/tests/MyGame/Example/Monster.go b/tests/MyGame/Example/Monster.go index 5380e13508..899b510372 100644 --- a/tests/MyGame/Example/Monster.go +++ b/tests/MyGame/Example/Monster.go @@ -503,6 +503,8 @@ type Monster struct { _tab flatbuffers.Table } +const MonsterIdentifier = "MONS" + func GetRootAsMonster(buf []byte, offset flatbuffers.UOffsetT) *Monster { n := flatbuffers.GetUOffsetT(buf[offset:]) x := &Monster{} @@ -510,6 +512,15 @@ func GetRootAsMonster(buf []byte, offset flatbuffers.UOffsetT) *Monster { return x } +func FinishMonsterBuffer(builder *flatbuffers.Builder, offset flatbuffers.UOffsetT) { + identifierBytes := []byte(MonsterIdentifier) + builder.FinishWithFileIdentifier(offset, identifierBytes) +} + +func MonsterBufferHasIdentifier(buf []byte) bool { + return flatbuffers.BufferHasIdentifier(buf, MonsterIdentifier) +} + func GetSizePrefixedRootAsMonster(buf []byte, offset flatbuffers.UOffsetT) *Monster { n := flatbuffers.GetUOffsetT(buf[offset+flatbuffers.SizeUint32:]) x := &Monster{} @@ -517,6 +528,15 @@ func GetSizePrefixedRootAsMonster(buf []byte, offset flatbuffers.UOffsetT) *Mons return x } +func FinishSizePrefixedMonsterBuffer(builder *flatbuffers.Builder, offset flatbuffers.UOffsetT) { + identifierBytes := []byte(MonsterIdentifier) + builder.FinishSizePrefixedWithFileIdentifier(offset, identifierBytes) +} + +func SizePrefixedMonsterBufferHasIdentifier(buf []byte) bool { + return flatbuffers.SizePrefixedBufferHasIdentifier(buf, MonsterIdentifier) +} + func (rcv *Monster) Init(buf []byte, i flatbuffers.UOffsetT) { rcv._tab.Bytes = buf rcv._tab.Pos = i diff --git a/tests/MyGame/Example/Referrable.go b/tests/MyGame/Example/Referrable.go index 0b14beb2e9..beaf8574fb 100644 --- a/tests/MyGame/Example/Referrable.go +++ b/tests/MyGame/Example/Referrable.go @@ -39,6 +39,10 @@ func GetRootAsReferrable(buf []byte, offset flatbuffers.UOffsetT) *Referrable { return x } +func FinishReferrableBuffer(builder *flatbuffers.Builder, offset flatbuffers.UOffsetT) { + builder.Finish(offset) +} + func GetSizePrefixedRootAsReferrable(buf []byte, offset flatbuffers.UOffsetT) *Referrable { n := flatbuffers.GetUOffsetT(buf[offset+flatbuffers.SizeUint32:]) x := &Referrable{} @@ -46,6 +50,10 @@ func GetSizePrefixedRootAsReferrable(buf []byte, offset flatbuffers.UOffsetT) *R return x } +func FinishSizePrefixedReferrableBuffer(builder *flatbuffers.Builder, offset flatbuffers.UOffsetT) { + builder.FinishSizePrefixed(offset) +} + func (rcv *Referrable) Init(buf []byte, i flatbuffers.UOffsetT) { rcv._tab.Bytes = buf rcv._tab.Pos = i diff --git a/tests/MyGame/Example/Stat.go b/tests/MyGame/Example/Stat.go index 9c0821419f..9c7238c1ab 100644 --- a/tests/MyGame/Example/Stat.go +++ b/tests/MyGame/Example/Stat.go @@ -49,6 +49,10 @@ func GetRootAsStat(buf []byte, offset flatbuffers.UOffsetT) *Stat { return x } +func FinishStatBuffer(builder *flatbuffers.Builder, offset flatbuffers.UOffsetT) { + builder.Finish(offset) +} + func GetSizePrefixedRootAsStat(buf []byte, offset flatbuffers.UOffsetT) *Stat { n := flatbuffers.GetUOffsetT(buf[offset+flatbuffers.SizeUint32:]) x := &Stat{} @@ -56,6 +60,10 @@ func GetSizePrefixedRootAsStat(buf []byte, offset flatbuffers.UOffsetT) *Stat { return x } +func FinishSizePrefixedStatBuffer(builder *flatbuffers.Builder, offset flatbuffers.UOffsetT) { + builder.FinishSizePrefixed(offset) +} + func (rcv *Stat) Init(buf []byte, i flatbuffers.UOffsetT) { rcv._tab.Bytes = buf rcv._tab.Pos = i diff --git a/tests/MyGame/Example/TestSimpleTableWithEnum.go b/tests/MyGame/Example/TestSimpleTableWithEnum.go index 553867fe43..97f72de718 100644 --- a/tests/MyGame/Example/TestSimpleTableWithEnum.go +++ b/tests/MyGame/Example/TestSimpleTableWithEnum.go @@ -39,6 +39,10 @@ func GetRootAsTestSimpleTableWithEnum(buf []byte, offset flatbuffers.UOffsetT) * return x } +func FinishTestSimpleTableWithEnumBuffer(builder *flatbuffers.Builder, offset flatbuffers.UOffsetT) { + builder.Finish(offset) +} + func GetSizePrefixedRootAsTestSimpleTableWithEnum(buf []byte, offset flatbuffers.UOffsetT) *TestSimpleTableWithEnum { n := flatbuffers.GetUOffsetT(buf[offset+flatbuffers.SizeUint32:]) x := &TestSimpleTableWithEnum{} @@ -46,6 +50,10 @@ func GetSizePrefixedRootAsTestSimpleTableWithEnum(buf []byte, offset flatbuffers return x } +func FinishSizePrefixedTestSimpleTableWithEnumBuffer(builder *flatbuffers.Builder, offset flatbuffers.UOffsetT) { + builder.FinishSizePrefixed(offset) +} + func (rcv *TestSimpleTableWithEnum) Init(buf []byte, i flatbuffers.UOffsetT) { rcv._tab.Bytes = buf rcv._tab.Pos = i diff --git a/tests/MyGame/Example/TypeAliases.go b/tests/MyGame/Example/TypeAliases.go index 9ded35e6f5..cb79778d74 100644 --- a/tests/MyGame/Example/TypeAliases.go +++ b/tests/MyGame/Example/TypeAliases.go @@ -98,6 +98,10 @@ func GetRootAsTypeAliases(buf []byte, offset flatbuffers.UOffsetT) *TypeAliases return x } +func FinishTypeAliasesBuffer(builder *flatbuffers.Builder, offset flatbuffers.UOffsetT) { + builder.Finish(offset) +} + func GetSizePrefixedRootAsTypeAliases(buf []byte, offset flatbuffers.UOffsetT) *TypeAliases { n := flatbuffers.GetUOffsetT(buf[offset+flatbuffers.SizeUint32:]) x := &TypeAliases{} @@ -105,6 +109,10 @@ func GetSizePrefixedRootAsTypeAliases(buf []byte, offset flatbuffers.UOffsetT) * return x } +func FinishSizePrefixedTypeAliasesBuffer(builder *flatbuffers.Builder, offset flatbuffers.UOffsetT) { + builder.FinishSizePrefixed(offset) +} + func (rcv *TypeAliases) Init(buf []byte, i flatbuffers.UOffsetT) { rcv._tab.Bytes = buf rcv._tab.Pos = i diff --git a/tests/MyGame/Example2/Monster.go b/tests/MyGame/Example2/Monster.go index 792011f244..b01755cedd 100644 --- a/tests/MyGame/Example2/Monster.go +++ b/tests/MyGame/Example2/Monster.go @@ -36,6 +36,10 @@ func GetRootAsMonster(buf []byte, offset flatbuffers.UOffsetT) *Monster { return x } +func FinishMonsterBuffer(builder *flatbuffers.Builder, offset flatbuffers.UOffsetT) { + builder.Finish(offset) +} + func GetSizePrefixedRootAsMonster(buf []byte, offset flatbuffers.UOffsetT) *Monster { n := flatbuffers.GetUOffsetT(buf[offset+flatbuffers.SizeUint32:]) x := &Monster{} @@ -43,6 +47,10 @@ func GetSizePrefixedRootAsMonster(buf []byte, offset flatbuffers.UOffsetT) *Mons return x } +func FinishSizePrefixedMonsterBuffer(builder *flatbuffers.Builder, offset flatbuffers.UOffsetT) { + builder.FinishSizePrefixed(offset) +} + func (rcv *Monster) Init(buf []byte, i flatbuffers.UOffsetT) { rcv._tab.Bytes = buf rcv._tab.Pos = i diff --git a/tests/MyGame/InParentNamespace.go b/tests/MyGame/InParentNamespace.go index 2c4a4e0e69..832dea15b8 100644 --- a/tests/MyGame/InParentNamespace.go +++ b/tests/MyGame/InParentNamespace.go @@ -36,6 +36,10 @@ func GetRootAsInParentNamespace(buf []byte, offset flatbuffers.UOffsetT) *InPare return x } +func FinishInParentNamespaceBuffer(builder *flatbuffers.Builder, offset flatbuffers.UOffsetT) { + builder.Finish(offset) +} + func GetSizePrefixedRootAsInParentNamespace(buf []byte, offset flatbuffers.UOffsetT) *InParentNamespace { n := flatbuffers.GetUOffsetT(buf[offset+flatbuffers.SizeUint32:]) x := &InParentNamespace{} @@ -43,6 +47,10 @@ func GetSizePrefixedRootAsInParentNamespace(buf []byte, offset flatbuffers.UOffs return x } +func FinishSizePrefixedInParentNamespaceBuffer(builder *flatbuffers.Builder, offset flatbuffers.UOffsetT) { + builder.FinishSizePrefixed(offset) +} + func (rcv *InParentNamespace) Init(buf []byte, i flatbuffers.UOffsetT) { rcv._tab.Bytes = buf rcv._tab.Pos = i diff --git a/tests/go_test.go b/tests/go_test.go index 1a46b272bd..f230060a66 100644 --- a/tests/go_test.go +++ b/tests/go_test.go @@ -140,7 +140,7 @@ func TestAll(t *testing.T) { // Verify that using the generated Go code builds a buffer without // returning errors: - generated, off := CheckGeneratedBuild(false, t.Fatalf) + generated, off := CheckGeneratedBuild(false, false, t.Fatalf) // Verify that the buffer generated by Go code is readable by the // generated Go code: @@ -148,6 +148,16 @@ func TestAll(t *testing.T) { CheckMutateBuffer(generated, off, false, t.Fatalf) CheckObjectAPI(generated, off, false, t.Fatalf) + // Generate the buffer again, with file identifier. + generated, off = CheckGeneratedBuild(false, true, t.Fatalf) + + // Check that this buffer with file identifier is usable + // and that the file identifier is correct. + CheckReadBuffer(generated, off, false, t.Fatalf) + CheckMutateBuffer(generated, off, false, t.Fatalf) + CheckObjectAPI(generated, off, false, t.Fatalf) + CheckFileIdentifier(generated, off, false, t.Fatalf) + // Verify that the buffer generated by C++ code is readable by the // generated Go code: monsterDataCpp, err := os.ReadFile(cppData) @@ -157,6 +167,7 @@ func TestAll(t *testing.T) { CheckReadBuffer(monsterDataCpp, 0, false, t.Fatalf) CheckMutateBuffer(monsterDataCpp, 0, false, t.Fatalf) CheckObjectAPI(monsterDataCpp, 0, false, t.Fatalf) + CheckFileIdentifier(monsterDataCpp, 0, false, t.Fatalf) // Verify that vtables are deduplicated when written: CheckVtableDeduplication(t.Fatalf) @@ -391,6 +402,31 @@ func CheckReadBuffer(buf []byte, offset flatbuffers.UOffsetT, sizePrefix bool, f } } +// CheckFileIdentifier checks the "MONS" file identifier +func CheckFileIdentifier(buf []byte, offset flatbuffers.UOffsetT, sizePrefix bool, fail func(string, ...interface{})) { + // Strip offset + buf = buf[offset:] + + var fileIdentifier string + var hasFileIdentifier bool + + if sizePrefix { + fileIdentifier = flatbuffers.GetSizePrefixedBufferIdentifier(buf) + hasFileIdentifier = example.SizePrefixedMonsterBufferHasIdentifier(buf) + } else { + fileIdentifier = flatbuffers.GetBufferIdentifier(buf) + hasFileIdentifier = example.MonsterBufferHasIdentifier(buf) + } + + expectedFileIdentifier := "MONS" + if fileIdentifier != expectedFileIdentifier { + fail("expected file identifier %q, got %q", expectedFileIdentifier, fileIdentifier) + } + if !hasFileIdentifier { + fail("did not find file identifier") + } +} + // CheckMutateBuffer checks that the given buffer can be mutated correctly // as the example Monster. Only available scalar values are mutated. func CheckMutateBuffer(org []byte, offset flatbuffers.UOffsetT, sizePrefix bool, fail func(string, ...interface{})) { @@ -1358,7 +1394,7 @@ func CheckGetRootAsForNonRootTable(fail func(string, ...interface{})) { } // CheckGeneratedBuild uses generated code to build the example Monster. -func CheckGeneratedBuild(sizePrefix bool, fail func(string, ...interface{})) ([]byte, flatbuffers.UOffsetT) { +func CheckGeneratedBuild(sizePrefix, fileIdentifier bool, fail func(string, ...interface{})) ([]byte, flatbuffers.UOffsetT) { b := flatbuffers.NewBuilder(0) str := b.CreateString("MyMonster") test1 := b.CreateString("test1") @@ -1402,10 +1438,18 @@ func CheckGeneratedBuild(sizePrefix bool, fail func(string, ...interface{})) ([] example.MonsterAddTestarrayofstring(b, testArrayOfString) mon := example.MonsterEnd(b) - if sizePrefix { - b.FinishSizePrefixed(mon) + if fileIdentifier { + if sizePrefix { + example.FinishSizePrefixedMonsterBuffer(b, mon) + } else { + example.FinishMonsterBuffer(b, mon) + } } else { - b.Finish(mon) + if sizePrefix { + b.FinishSizePrefixed(mon) + } else { + b.Finish(mon) + } } return b.Bytes, b.Head() @@ -1806,21 +1850,32 @@ func CheckParentNamespace(fail func(string, ...interface{})) { } func CheckSizePrefixedBuffer(fail func(string, ...interface{})) { - // Generate a size-prefixed flatbuffer - generated, off := CheckGeneratedBuild(true, fail) + // Generate a size-prefixed flatbuffer, first without file identifier + generated, off := CheckGeneratedBuild(true, false, fail) + + // Check that the buffer can be used as expected + CheckReadBuffer(generated, off, true, fail) + CheckMutateBuffer(generated, off, true, fail) + CheckObjectAPI(generated, off, true, fail) + + // Now generate a size-prefixed flatbuffer with file identifier + generated, off = CheckGeneratedBuild(true, true, fail) - // Check that the size prefix is the size of monsterdata_go_wire.mon minus 4 + // Check that the size prefix is the size of monsterdata_go_wire.mon, + // plus 4 bytes for padding size := flatbuffers.GetSizePrefix(generated, off) - if size != 220 { - fail("mismatch between size prefix and expected size") + expectedSize := uint32(228) + if size != expectedSize { + fail("mismatch between size prefix (%d) and expected size (%d)", size, expectedSize) } // Check that the buffer can be used as expected CheckReadBuffer(generated, off, true, fail) CheckMutateBuffer(generated, off, true, fail) CheckObjectAPI(generated, off, true, fail) + CheckFileIdentifier(generated, off, true, fail) - // Write generated bfufer out to a file + // Write generated buffer out to a file if err := os.WriteFile(outData+".sp", generated[off:], os.FileMode(0644)); err != nil { fail("failed to write file: %s", err) } @@ -2397,7 +2452,7 @@ func BenchmarkVtableDeduplication(b *testing.B) { // BenchmarkParseGold measures the speed of parsing the 'gold' data // used throughout this test suite. func BenchmarkParseGold(b *testing.B) { - buf, offset := CheckGeneratedBuild(false, b.Fatalf) + buf, offset := CheckGeneratedBuild(false, false, b.Fatalf) monster := example.GetRootAsMonster(buf, offset) // use these to prevent allocations: @@ -2459,7 +2514,7 @@ func BenchmarkParseGold(b *testing.B) { // BenchmarkBuildGold uses generated code to build the example Monster. func BenchmarkBuildGold(b *testing.B) { - buf, offset := CheckGeneratedBuild(false, b.Fatalf) + buf, offset := CheckGeneratedBuild(false, false, b.Fatalf) bytes_length := int64(len(buf[offset:])) reuse_str := "MyMonster" diff --git a/tests/monsterdata_go_wire.mon.sp b/tests/monsterdata_go_wire.mon.sp index cf3019c031401adaa1713f56de91ca122532f54e..daddcd0e68e14f892a35392acbacb739486e10e7 100644 GIT binary patch delta 21 bcmaFB_=1u52?GOz0TBE8`vo&hWW5alKg Date: Wed, 26 Apr 2023 07:19:07 +0200 Subject: [PATCH 154/571] Go: make generated code more compliant to "go fmt" (#7907) Co-authored-by: Derek Bailey --- examples/go-echo/hero/Warrior.go | 13 ++++++-- examples/go-echo/net/Request.go | 8 +++-- examples/go-echo/net/Response.go | 8 +++-- src/idl_gen_go.cpp | 33 ++++++++++--------- tests/MyGame/Example/Ability.go | 8 +++-- tests/MyGame/Example/Any.go | 8 ++--- tests/MyGame/Example/AnyAmbiguousAliases.go | 8 ++--- tests/MyGame/Example/AnyUniqueAliases.go | 8 ++--- tests/MyGame/Example/Monster.go | 32 ++++++++++-------- tests/MyGame/Example/Referrable.go | 16 +++++---- tests/MyGame/Example/Stat.go | 16 +++++---- tests/MyGame/Example/StructOfStructs.go | 8 +++-- .../Example/StructOfStructsOfStructs.go | 8 +++-- tests/MyGame/Example/Test.go | 8 +++-- .../MyGame/Example/TestSimpleTableWithEnum.go | 8 +++-- tests/MyGame/Example/TypeAliases.go | 8 +++-- tests/MyGame/Example/Vec3.go | 8 +++-- tests/MyGame/Example2/Monster.go | 8 +++-- tests/MyGame/InParentNamespace.go | 8 +++-- 19 files changed, 143 insertions(+), 79 deletions(-) diff --git a/examples/go-echo/hero/Warrior.go b/examples/go-echo/hero/Warrior.go index 857697e16d..0e9802c189 100644 --- a/examples/go-echo/hero/Warrior.go +++ b/examples/go-echo/hero/Warrior.go @@ -12,8 +12,13 @@ type WarriorT struct { } func (t *WarriorT) Pack(builder *flatbuffers.Builder) flatbuffers.UOffsetT { - if t == nil { return 0 } - nameOffset := builder.CreateString(t.Name) + if t == nil { + return 0 + } + nameOffset := flatbuffers.UOffsetT(0) + if t.Name != "" { + nameOffset = builder.CreateString(t.Name) + } WarriorStart(builder) WarriorAddName(builder, nameOffset) WarriorAddHp(builder, t.Hp) @@ -26,7 +31,9 @@ func (rcv *Warrior) UnPackTo(t *WarriorT) { } func (rcv *Warrior) UnPack() *WarriorT { - if rcv == nil { return nil } + if rcv == nil { + return nil + } t := &WarriorT{} rcv.UnPackTo(t) return t diff --git a/examples/go-echo/net/Request.go b/examples/go-echo/net/Request.go index b2449c1ca8..4c83362654 100644 --- a/examples/go-echo/net/Request.go +++ b/examples/go-echo/net/Request.go @@ -13,7 +13,9 @@ type RequestT struct { } func (t *RequestT) Pack(builder *flatbuffers.Builder) flatbuffers.UOffsetT { - if t == nil { return 0 } + if t == nil { + return 0 + } playerOffset := t.Player.Pack(builder) RequestStart(builder) RequestAddPlayer(builder, playerOffset) @@ -25,7 +27,9 @@ func (rcv *Request) UnPackTo(t *RequestT) { } func (rcv *Request) UnPack() *RequestT { - if rcv == nil { return nil } + if rcv == nil { + return nil + } t := &RequestT{} rcv.UnPackTo(t) return t diff --git a/examples/go-echo/net/Response.go b/examples/go-echo/net/Response.go index 57e6b35358..a9d1f43783 100644 --- a/examples/go-echo/net/Response.go +++ b/examples/go-echo/net/Response.go @@ -13,7 +13,9 @@ type ResponseT struct { } func (t *ResponseT) Pack(builder *flatbuffers.Builder) flatbuffers.UOffsetT { - if t == nil { return 0 } + if t == nil { + return 0 + } playerOffset := t.Player.Pack(builder) ResponseStart(builder) ResponseAddPlayer(builder, playerOffset) @@ -25,7 +27,9 @@ func (rcv *Response) UnPackTo(t *ResponseT) { } func (rcv *Response) UnPack() *ResponseT { - if rcv == nil { return nil } + if rcv == nil { + return nil + } t := &ResponseT{} rcv.UnPackTo(t) return t diff --git a/src/idl_gen_go.cpp b/src/idl_gen_go.cpp index f2ffc3e73c..0f2882b758 100644 --- a/src/idl_gen_go.cpp +++ b/src/idl_gen_go.cpp @@ -541,7 +541,7 @@ class GoGenerator : public BaseGenerator { GenReceiver(struct_def, code_ptr); code += " " + namer_.Field(field) + "ByKey"; code += "(obj *" + TypeName(field); - code += ", key " + NativeType(key_field.value.type) + ") bool" + + code += ", key " + NativeType(key_field.value.type) + ") bool " + OffsetPrefix(field); code += "\t\tx := rcv._tab.Vector(o)\n"; code += "\t\treturn "; @@ -920,8 +920,8 @@ class GoGenerator : public BaseGenerator { code += "o1, o2 flatbuffers.UOffsetT, buf []byte) bool {\n"; code += "\tobj1 := &" + namer_.Type(struct_def) + "{}\n"; code += "\tobj2 := &" + namer_.Type(struct_def) + "{}\n"; - code += "\tobj1.Init(buf, flatbuffers.UOffsetT(len(buf)) - o1)\n"; - code += "\tobj2.Init(buf, flatbuffers.UOffsetT(len(buf)) - o2)\n"; + code += "\tobj1.Init(buf, flatbuffers.UOffsetT(len(buf))-o1)\n"; + code += "\tobj2.Init(buf, flatbuffers.UOffsetT(len(buf))-o2)\n"; if (IsString(field.value.type)) { code += "\treturn string(obj1." + namer_.Function(field.name) + "()) < "; code += "string(obj2." + namer_.Function(field.name) + "())\n"; @@ -943,13 +943,13 @@ class GoGenerator : public BaseGenerator { code += "key " + NativeType(field.value.type) + ", "; code += "vectorLocation flatbuffers.UOffsetT, "; code += "buf []byte) bool {\n"; - code += "\tspan := flatbuffers.GetUOffsetT(buf[vectorLocation - 4:])\n"; + code += "\tspan := flatbuffers.GetUOffsetT(buf[vectorLocation-4:])\n"; code += "\tstart := flatbuffers.UOffsetT(0)\n"; if (IsString(field.value.type)) { code += "\tbKey := []byte(key)\n"; } code += "\tfor span != 0 {\n"; code += "\t\tmiddle := span / 2\n"; code += "\t\ttableOffset := flatbuffers.GetIndirectOffset(buf, "; - code += "vectorLocation+ 4 * (start + middle))\n"; + code += "vectorLocation+4*(start+middle))\n"; code += "\t\tobj := &" + namer_.Type(struct_def) + "{}\n"; code += "\t\tobj.Init(buf, tableOffset)\n"; @@ -1060,8 +1060,8 @@ class GoGenerator : public BaseGenerator { code += "\t\treturn &" + WrapInNameSpaceAndTrack(&enum_def, NativeName(enum_def)) + - "{ Type: " + namer_.EnumVariant(enum_def, ev) + - ", Value: x.UnPack() }\n"; + "{Type: " + namer_.EnumVariant(enum_def, ev) + + ", Value: x.UnPack()}\n"; } code += "\t}\n"; code += "\treturn nil\n"; @@ -1074,7 +1074,7 @@ class GoGenerator : public BaseGenerator { code += "func (t *" + NativeName(struct_def) + ") Pack(builder *flatbuffers.Builder) flatbuffers.UOffsetT {\n"; - code += "\tif t == nil { return 0 }\n"; + code += "\tif t == nil {\n\t\treturn 0\n\t}\n"; for (auto it = struct_def.fields.vec.begin(); it != struct_def.fields.vec.end(); ++it) { const FieldDef &field = **it; @@ -1144,8 +1144,7 @@ class GoGenerator : public BaseGenerator { if (field.value.type.struct_def->fixed) continue; code += "\t" + offset + " := t." + field_field + ".Pack(builder)\n"; } else if (field.value.type.base_type == BASE_TYPE_UNION) { - code += "\t" + offset + " := t." + field_field + ".Pack(builder)\n"; - code += "\t\n"; + code += "\t" + offset + " := t." + field_field + ".Pack(builder)\n\n"; } else { FLATBUFFERS_ASSERT(0); } @@ -1261,7 +1260,7 @@ class GoGenerator : public BaseGenerator { code += "func (rcv *" + struct_type + ") UnPack() *" + NativeName(struct_def) + " {\n"; - code += "\tif rcv == nil { return nil }\n"; + code += "\tif rcv == nil {\n\t\treturn nil\n\t}\n"; code += "\tt := &" + NativeName(struct_def) + "{}\n"; code += "\trcv.UnPackTo(t)\n"; code += "\treturn t\n"; @@ -1273,7 +1272,7 @@ class GoGenerator : public BaseGenerator { code += "func (t *" + NativeName(struct_def) + ") Pack(builder *flatbuffers.Builder) flatbuffers.UOffsetT {\n"; - code += "\tif t == nil { return 0 }\n"; + code += "\tif t == nil {\n\t\treturn 0\n\t}\n"; code += "\treturn Create" + namer_.Type(struct_def) + "(builder"; StructPackArgs(struct_def, "", code_ptr); code += ")\n"; @@ -1317,7 +1316,7 @@ class GoGenerator : public BaseGenerator { code += "func (rcv *" + namer_.Type(struct_def) + ") UnPack() *" + NativeName(struct_def) + " {\n"; - code += "\tif rcv == nil { return nil }\n"; + code += "\tif rcv == nil {\n\t\treturn nil\n\t}\n"; code += "\tt := &" + NativeName(struct_def) + "{}\n"; code += "\trcv.UnPackTo(t)\n"; code += "\treturn t\n"; @@ -1505,15 +1504,17 @@ class GoGenerator : public BaseGenerator { code += "package " + name_space_name + "\n\n"; if (needs_imports) { code += "import (\n"; + // standard imports, in alphabetical order for go fmt if (needs_bytes_import_) code += "\t\"bytes\"\n"; - // math is needed to support non-finite scalar default values. - if (needs_math_import_) { code += "\t\"math\"\n"; } - if (is_enum) { code += "\t\"strconv\"\n"; } if (!parser_.opts.go_import.empty()) { code += "\tflatbuffers \"" + parser_.opts.go_import + "\"\n"; } else { code += "\tflatbuffers \"github.com/google/flatbuffers/go\"\n"; } + // math is needed to support non-finite scalar default values. + if (needs_math_import_) { code += "\t\"math\"\n"; } + if (is_enum) { code += "\t\"strconv\"\n"; } + if (tracked_imported_namespaces_.size() > 0) { code += "\n"; for (auto it = tracked_imported_namespaces_.begin(); diff --git a/tests/MyGame/Example/Ability.go b/tests/MyGame/Example/Ability.go index ae869aafd4..922c0e4aea 100644 --- a/tests/MyGame/Example/Ability.go +++ b/tests/MyGame/Example/Ability.go @@ -12,7 +12,9 @@ type AbilityT struct { } func (t *AbilityT) Pack(builder *flatbuffers.Builder) flatbuffers.UOffsetT { - if t == nil { return 0 } + if t == nil { + return 0 + } return CreateAbility(builder, t.Id, t.Distance) } func (rcv *Ability) UnPackTo(t *AbilityT) { @@ -21,7 +23,9 @@ func (rcv *Ability) UnPackTo(t *AbilityT) { } func (rcv *Ability) UnPack() *AbilityT { - if rcv == nil { return nil } + if rcv == nil { + return nil + } t := &AbilityT{} rcv.UnPackTo(t) return t diff --git a/tests/MyGame/Example/Any.go b/tests/MyGame/Example/Any.go index 3b7f6295d1..9d56df2757 100644 --- a/tests/MyGame/Example/Any.go +++ b/tests/MyGame/Example/Any.go @@ -3,8 +3,8 @@ package Example import ( - "strconv" flatbuffers "github.com/google/flatbuffers/go" + "strconv" MyGame__Example2 "MyGame/Example2" ) @@ -64,15 +64,15 @@ func (rcv Any) UnPack(table flatbuffers.Table) *AnyT { case AnyMonster: var x Monster x.Init(table.Bytes, table.Pos) - return &AnyT{ Type: AnyMonster, Value: x.UnPack() } + return &AnyT{Type: AnyMonster, Value: x.UnPack()} case AnyTestSimpleTableWithEnum: var x TestSimpleTableWithEnum x.Init(table.Bytes, table.Pos) - return &AnyT{ Type: AnyTestSimpleTableWithEnum, Value: x.UnPack() } + return &AnyT{Type: AnyTestSimpleTableWithEnum, Value: x.UnPack()} case AnyMyGame_Example2_Monster: var x MyGame__Example2.Monster x.Init(table.Bytes, table.Pos) - return &AnyT{ Type: AnyMyGame_Example2_Monster, Value: x.UnPack() } + return &AnyT{Type: AnyMyGame_Example2_Monster, Value: x.UnPack()} } return nil } diff --git a/tests/MyGame/Example/AnyAmbiguousAliases.go b/tests/MyGame/Example/AnyAmbiguousAliases.go index 83e5f7d82a..6cfb12f743 100644 --- a/tests/MyGame/Example/AnyAmbiguousAliases.go +++ b/tests/MyGame/Example/AnyAmbiguousAliases.go @@ -3,8 +3,8 @@ package Example import ( - "strconv" flatbuffers "github.com/google/flatbuffers/go" + "strconv" ) type AnyAmbiguousAliases byte @@ -62,15 +62,15 @@ func (rcv AnyAmbiguousAliases) UnPack(table flatbuffers.Table) *AnyAmbiguousAlia case AnyAmbiguousAliasesM1: var x Monster x.Init(table.Bytes, table.Pos) - return &AnyAmbiguousAliasesT{ Type: AnyAmbiguousAliasesM1, Value: x.UnPack() } + return &AnyAmbiguousAliasesT{Type: AnyAmbiguousAliasesM1, Value: x.UnPack()} case AnyAmbiguousAliasesM2: var x Monster x.Init(table.Bytes, table.Pos) - return &AnyAmbiguousAliasesT{ Type: AnyAmbiguousAliasesM2, Value: x.UnPack() } + return &AnyAmbiguousAliasesT{Type: AnyAmbiguousAliasesM2, Value: x.UnPack()} case AnyAmbiguousAliasesM3: var x Monster x.Init(table.Bytes, table.Pos) - return &AnyAmbiguousAliasesT{ Type: AnyAmbiguousAliasesM3, Value: x.UnPack() } + return &AnyAmbiguousAliasesT{Type: AnyAmbiguousAliasesM3, Value: x.UnPack()} } return nil } diff --git a/tests/MyGame/Example/AnyUniqueAliases.go b/tests/MyGame/Example/AnyUniqueAliases.go index b36e61d9b1..0bf17b09f9 100644 --- a/tests/MyGame/Example/AnyUniqueAliases.go +++ b/tests/MyGame/Example/AnyUniqueAliases.go @@ -3,8 +3,8 @@ package Example import ( - "strconv" flatbuffers "github.com/google/flatbuffers/go" + "strconv" MyGame__Example2 "MyGame/Example2" ) @@ -64,15 +64,15 @@ func (rcv AnyUniqueAliases) UnPack(table flatbuffers.Table) *AnyUniqueAliasesT { case AnyUniqueAliasesM: var x Monster x.Init(table.Bytes, table.Pos) - return &AnyUniqueAliasesT{ Type: AnyUniqueAliasesM, Value: x.UnPack() } + return &AnyUniqueAliasesT{Type: AnyUniqueAliasesM, Value: x.UnPack()} case AnyUniqueAliasesTS: var x TestSimpleTableWithEnum x.Init(table.Bytes, table.Pos) - return &AnyUniqueAliasesT{ Type: AnyUniqueAliasesTS, Value: x.UnPack() } + return &AnyUniqueAliasesT{Type: AnyUniqueAliasesTS, Value: x.UnPack()} case AnyUniqueAliasesM2: var x MyGame__Example2.Monster x.Init(table.Bytes, table.Pos) - return &AnyUniqueAliasesT{ Type: AnyUniqueAliasesM2, Value: x.UnPack() } + return &AnyUniqueAliasesT{Type: AnyUniqueAliasesM2, Value: x.UnPack()} } return nil } diff --git a/tests/MyGame/Example/Monster.go b/tests/MyGame/Example/Monster.go index 899b510372..cc6453b1a3 100644 --- a/tests/MyGame/Example/Monster.go +++ b/tests/MyGame/Example/Monster.go @@ -4,8 +4,8 @@ package Example import ( "bytes" - "math" flatbuffers "github.com/google/flatbuffers/go" + "math" MyGame "MyGame" ) @@ -73,7 +73,9 @@ type MonsterT struct { } func (t *MonsterT) Pack(builder *flatbuffers.Builder) flatbuffers.UOffsetT { - if t == nil { return 0 } + if t == nil { + return 0 + } nameOffset := flatbuffers.UOffsetT(0) if t.Name != "" { nameOffset = builder.CreateString(t.Name) @@ -83,7 +85,7 @@ func (t *MonsterT) Pack(builder *flatbuffers.Builder) flatbuffers.UOffsetT { inventoryOffset = builder.CreateByteString(t.Inventory) } testOffset := t.Test.Pack(builder) - + test4Offset := flatbuffers.UOffsetT(0) if t.Test4 != nil { test4Length := len(t.Test4) @@ -242,9 +244,9 @@ func (t *MonsterT) Pack(builder *flatbuffers.Builder) flatbuffers.UOffsetT { vectorOfNonOwningReferencesOffset = builder.EndVector(vectorOfNonOwningReferencesLength) } anyUniqueOffset := t.AnyUnique.Pack(builder) - + anyAmbiguousOffset := t.AnyAmbiguous.Pack(builder) - + vectorOfEnumsOffset := flatbuffers.UOffsetT(0) if t.VectorOfEnums != nil { vectorOfEnumsLength := len(t.VectorOfEnums) @@ -493,7 +495,9 @@ func (rcv *Monster) UnPackTo(t *MonsterT) { } func (rcv *Monster) UnPack() *MonsterT { - if rcv == nil { return nil } + if rcv == nil { + return nil + } t := &MonsterT{} rcv.UnPackTo(t) return t @@ -594,18 +598,18 @@ func (rcv *Monster) Name() []byte { func MonsterKeyCompare(o1, o2 flatbuffers.UOffsetT, buf []byte) bool { obj1 := &Monster{} obj2 := &Monster{} - obj1.Init(buf, flatbuffers.UOffsetT(len(buf)) - o1) - obj2.Init(buf, flatbuffers.UOffsetT(len(buf)) - o2) + obj1.Init(buf, flatbuffers.UOffsetT(len(buf))-o1) + obj2.Init(buf, flatbuffers.UOffsetT(len(buf))-o2) return string(obj1.Name()) < string(obj2.Name()) } func (rcv *Monster) LookupByKey(key string, vectorLocation flatbuffers.UOffsetT, buf []byte) bool { - span := flatbuffers.GetUOffsetT(buf[vectorLocation - 4:]) + span := flatbuffers.GetUOffsetT(buf[vectorLocation-4:]) start := flatbuffers.UOffsetT(0) bKey := []byte(key) for span != 0 { middle := span / 2 - tableOffset := flatbuffers.GetIndirectOffset(buf, vectorLocation+ 4 * (start + middle)) + tableOffset := flatbuffers.GetIndirectOffset(buf, vectorLocation+4*(start+middle)) obj := &Monster{} obj.Init(buf, tableOffset) comp := bytes.Compare(obj.Name(), bKey) @@ -740,7 +744,7 @@ func (rcv *Monster) Testarrayoftables(obj *Monster, j int) bool { return false } -func (rcv *Monster) TestarrayoftablesByKey(obj *Monster, key string) bool{ +func (rcv *Monster) TestarrayoftablesByKey(obj *Monster, key string) bool { o := flatbuffers.UOffsetT(rcv._tab.Offset(26)) if o != 0 { x := rcv._tab.Vector(o) @@ -1155,7 +1159,7 @@ func (rcv *Monster) VectorOfReferrables(obj *Referrable, j int) bool { return false } -func (rcv *Monster) VectorOfReferrablesByKey(obj *Referrable, key uint64) bool{ +func (rcv *Monster) VectorOfReferrablesByKey(obj *Referrable, key uint64) bool { o := flatbuffers.UOffsetT(rcv._tab.Offset(74)) if o != 0 { x := rcv._tab.Vector(o) @@ -1222,7 +1226,7 @@ func (rcv *Monster) VectorOfStrongReferrables(obj *Referrable, j int) bool { return false } -func (rcv *Monster) VectorOfStrongReferrablesByKey(obj *Referrable, key uint64) bool{ +func (rcv *Monster) VectorOfStrongReferrablesByKey(obj *Referrable, key uint64) bool { o := flatbuffers.UOffsetT(rcv._tab.Offset(80)) if o != 0 { x := rcv._tab.Vector(o) @@ -1449,7 +1453,7 @@ func (rcv *Monster) ScalarKeySortedTables(obj *Stat, j int) bool { return false } -func (rcv *Monster) ScalarKeySortedTablesByKey(obj *Stat, key uint16) bool{ +func (rcv *Monster) ScalarKeySortedTablesByKey(obj *Stat, key uint16) bool { o := flatbuffers.UOffsetT(rcv._tab.Offset(104)) if o != 0 { x := rcv._tab.Vector(o) diff --git a/tests/MyGame/Example/Referrable.go b/tests/MyGame/Example/Referrable.go index beaf8574fb..f6248bb7e3 100644 --- a/tests/MyGame/Example/Referrable.go +++ b/tests/MyGame/Example/Referrable.go @@ -11,7 +11,9 @@ type ReferrableT struct { } func (t *ReferrableT) Pack(builder *flatbuffers.Builder) flatbuffers.UOffsetT { - if t == nil { return 0 } + if t == nil { + return 0 + } ReferrableStart(builder) ReferrableAddId(builder, t.Id) return ReferrableEnd(builder) @@ -22,7 +24,9 @@ func (rcv *Referrable) UnPackTo(t *ReferrableT) { } func (rcv *Referrable) UnPack() *ReferrableT { - if rcv == nil { return nil } + if rcv == nil { + return nil + } t := &ReferrableT{} rcv.UnPackTo(t) return t @@ -78,17 +82,17 @@ func (rcv *Referrable) MutateId(n uint64) bool { func ReferrableKeyCompare(o1, o2 flatbuffers.UOffsetT, buf []byte) bool { obj1 := &Referrable{} obj2 := &Referrable{} - obj1.Init(buf, flatbuffers.UOffsetT(len(buf)) - o1) - obj2.Init(buf, flatbuffers.UOffsetT(len(buf)) - o2) + obj1.Init(buf, flatbuffers.UOffsetT(len(buf))-o1) + obj2.Init(buf, flatbuffers.UOffsetT(len(buf))-o2) return obj1.Id() < obj2.Id() } func (rcv *Referrable) LookupByKey(key uint64, vectorLocation flatbuffers.UOffsetT, buf []byte) bool { - span := flatbuffers.GetUOffsetT(buf[vectorLocation - 4:]) + span := flatbuffers.GetUOffsetT(buf[vectorLocation-4:]) start := flatbuffers.UOffsetT(0) for span != 0 { middle := span / 2 - tableOffset := flatbuffers.GetIndirectOffset(buf, vectorLocation+ 4 * (start + middle)) + tableOffset := flatbuffers.GetIndirectOffset(buf, vectorLocation+4*(start+middle)) obj := &Referrable{} obj.Init(buf, tableOffset) val := obj.Id() diff --git a/tests/MyGame/Example/Stat.go b/tests/MyGame/Example/Stat.go index 9c7238c1ab..5855abf166 100644 --- a/tests/MyGame/Example/Stat.go +++ b/tests/MyGame/Example/Stat.go @@ -13,7 +13,9 @@ type StatT struct { } func (t *StatT) Pack(builder *flatbuffers.Builder) flatbuffers.UOffsetT { - if t == nil { return 0 } + if t == nil { + return 0 + } idOffset := flatbuffers.UOffsetT(0) if t.Id != "" { idOffset = builder.CreateString(t.Id) @@ -32,7 +34,9 @@ func (rcv *Stat) UnPackTo(t *StatT) { } func (rcv *Stat) UnPack() *StatT { - if rcv == nil { return nil } + if rcv == nil { + return nil + } t := &StatT{} rcv.UnPackTo(t) return t @@ -108,17 +112,17 @@ func (rcv *Stat) MutateCount(n uint16) bool { func StatKeyCompare(o1, o2 flatbuffers.UOffsetT, buf []byte) bool { obj1 := &Stat{} obj2 := &Stat{} - obj1.Init(buf, flatbuffers.UOffsetT(len(buf)) - o1) - obj2.Init(buf, flatbuffers.UOffsetT(len(buf)) - o2) + obj1.Init(buf, flatbuffers.UOffsetT(len(buf))-o1) + obj2.Init(buf, flatbuffers.UOffsetT(len(buf))-o2) return obj1.Count() < obj2.Count() } func (rcv *Stat) LookupByKey(key uint16, vectorLocation flatbuffers.UOffsetT, buf []byte) bool { - span := flatbuffers.GetUOffsetT(buf[vectorLocation - 4:]) + span := flatbuffers.GetUOffsetT(buf[vectorLocation-4:]) start := flatbuffers.UOffsetT(0) for span != 0 { middle := span / 2 - tableOffset := flatbuffers.GetIndirectOffset(buf, vectorLocation+ 4 * (start + middle)) + tableOffset := flatbuffers.GetIndirectOffset(buf, vectorLocation+4*(start+middle)) obj := &Stat{} obj.Init(buf, tableOffset) val := obj.Count() diff --git a/tests/MyGame/Example/StructOfStructs.go b/tests/MyGame/Example/StructOfStructs.go index 22281b6699..234c795e38 100644 --- a/tests/MyGame/Example/StructOfStructs.go +++ b/tests/MyGame/Example/StructOfStructs.go @@ -13,7 +13,9 @@ type StructOfStructsT struct { } func (t *StructOfStructsT) Pack(builder *flatbuffers.Builder) flatbuffers.UOffsetT { - if t == nil { return 0 } + if t == nil { + return 0 + } return CreateStructOfStructs(builder, t.A.Id, t.A.Distance, t.B.A, t.B.B, t.C.Id, t.C.Distance) } func (rcv *StructOfStructs) UnPackTo(t *StructOfStructsT) { @@ -23,7 +25,9 @@ func (rcv *StructOfStructs) UnPackTo(t *StructOfStructsT) { } func (rcv *StructOfStructs) UnPack() *StructOfStructsT { - if rcv == nil { return nil } + if rcv == nil { + return nil + } t := &StructOfStructsT{} rcv.UnPackTo(t) return t diff --git a/tests/MyGame/Example/StructOfStructsOfStructs.go b/tests/MyGame/Example/StructOfStructsOfStructs.go index b8f32a0dc9..90094aa999 100644 --- a/tests/MyGame/Example/StructOfStructsOfStructs.go +++ b/tests/MyGame/Example/StructOfStructsOfStructs.go @@ -11,7 +11,9 @@ type StructOfStructsOfStructsT struct { } func (t *StructOfStructsOfStructsT) Pack(builder *flatbuffers.Builder) flatbuffers.UOffsetT { - if t == nil { return 0 } + if t == nil { + return 0 + } return CreateStructOfStructsOfStructs(builder, t.A.A.Id, t.A.A.Distance, t.A.B.A, t.A.B.B, t.A.C.Id, t.A.C.Distance) } func (rcv *StructOfStructsOfStructs) UnPackTo(t *StructOfStructsOfStructsT) { @@ -19,7 +21,9 @@ func (rcv *StructOfStructsOfStructs) UnPackTo(t *StructOfStructsOfStructsT) { } func (rcv *StructOfStructsOfStructs) UnPack() *StructOfStructsOfStructsT { - if rcv == nil { return nil } + if rcv == nil { + return nil + } t := &StructOfStructsOfStructsT{} rcv.UnPackTo(t) return t diff --git a/tests/MyGame/Example/Test.go b/tests/MyGame/Example/Test.go index 149171171f..d7efcf4f7a 100644 --- a/tests/MyGame/Example/Test.go +++ b/tests/MyGame/Example/Test.go @@ -12,7 +12,9 @@ type TestT struct { } func (t *TestT) Pack(builder *flatbuffers.Builder) flatbuffers.UOffsetT { - if t == nil { return 0 } + if t == nil { + return 0 + } return CreateTest(builder, t.A, t.B) } func (rcv *Test) UnPackTo(t *TestT) { @@ -21,7 +23,9 @@ func (rcv *Test) UnPackTo(t *TestT) { } func (rcv *Test) UnPack() *TestT { - if rcv == nil { return nil } + if rcv == nil { + return nil + } t := &TestT{} rcv.UnPackTo(t) return t diff --git a/tests/MyGame/Example/TestSimpleTableWithEnum.go b/tests/MyGame/Example/TestSimpleTableWithEnum.go index 97f72de718..f491ccd866 100644 --- a/tests/MyGame/Example/TestSimpleTableWithEnum.go +++ b/tests/MyGame/Example/TestSimpleTableWithEnum.go @@ -11,7 +11,9 @@ type TestSimpleTableWithEnumT struct { } func (t *TestSimpleTableWithEnumT) Pack(builder *flatbuffers.Builder) flatbuffers.UOffsetT { - if t == nil { return 0 } + if t == nil { + return 0 + } TestSimpleTableWithEnumStart(builder) TestSimpleTableWithEnumAddColor(builder, t.Color) return TestSimpleTableWithEnumEnd(builder) @@ -22,7 +24,9 @@ func (rcv *TestSimpleTableWithEnum) UnPackTo(t *TestSimpleTableWithEnumT) { } func (rcv *TestSimpleTableWithEnum) UnPack() *TestSimpleTableWithEnumT { - if rcv == nil { return nil } + if rcv == nil { + return nil + } t := &TestSimpleTableWithEnumT{} rcv.UnPackTo(t) return t diff --git a/tests/MyGame/Example/TypeAliases.go b/tests/MyGame/Example/TypeAliases.go index cb79778d74..e13311ee34 100644 --- a/tests/MyGame/Example/TypeAliases.go +++ b/tests/MyGame/Example/TypeAliases.go @@ -22,7 +22,9 @@ type TypeAliasesT struct { } func (t *TypeAliasesT) Pack(builder *flatbuffers.Builder) flatbuffers.UOffsetT { - if t == nil { return 0 } + if t == nil { + return 0 + } v8Offset := flatbuffers.UOffsetT(0) if t.V8 != nil { v8Length := len(t.V8) @@ -81,7 +83,9 @@ func (rcv *TypeAliases) UnPackTo(t *TypeAliasesT) { } func (rcv *TypeAliases) UnPack() *TypeAliasesT { - if rcv == nil { return nil } + if rcv == nil { + return nil + } t := &TypeAliasesT{} rcv.UnPackTo(t) return t diff --git a/tests/MyGame/Example/Vec3.go b/tests/MyGame/Example/Vec3.go index 16a05cde8c..ae0cb1e76c 100644 --- a/tests/MyGame/Example/Vec3.go +++ b/tests/MyGame/Example/Vec3.go @@ -16,7 +16,9 @@ type Vec3T struct { } func (t *Vec3T) Pack(builder *flatbuffers.Builder) flatbuffers.UOffsetT { - if t == nil { return 0 } + if t == nil { + return 0 + } return CreateVec3(builder, t.X, t.Y, t.Z, t.Test1, t.Test2, t.Test3.A, t.Test3.B) } func (rcv *Vec3) UnPackTo(t *Vec3T) { @@ -29,7 +31,9 @@ func (rcv *Vec3) UnPackTo(t *Vec3T) { } func (rcv *Vec3) UnPack() *Vec3T { - if rcv == nil { return nil } + if rcv == nil { + return nil + } t := &Vec3T{} rcv.UnPackTo(t) return t diff --git a/tests/MyGame/Example2/Monster.go b/tests/MyGame/Example2/Monster.go index b01755cedd..4062f7c2e0 100644 --- a/tests/MyGame/Example2/Monster.go +++ b/tests/MyGame/Example2/Monster.go @@ -10,7 +10,9 @@ type MonsterT struct { } func (t *MonsterT) Pack(builder *flatbuffers.Builder) flatbuffers.UOffsetT { - if t == nil { return 0 } + if t == nil { + return 0 + } MonsterStart(builder) return MonsterEnd(builder) } @@ -19,7 +21,9 @@ func (rcv *Monster) UnPackTo(t *MonsterT) { } func (rcv *Monster) UnPack() *MonsterT { - if rcv == nil { return nil } + if rcv == nil { + return nil + } t := &MonsterT{} rcv.UnPackTo(t) return t diff --git a/tests/MyGame/InParentNamespace.go b/tests/MyGame/InParentNamespace.go index 832dea15b8..37c44c1809 100644 --- a/tests/MyGame/InParentNamespace.go +++ b/tests/MyGame/InParentNamespace.go @@ -10,7 +10,9 @@ type InParentNamespaceT struct { } func (t *InParentNamespaceT) Pack(builder *flatbuffers.Builder) flatbuffers.UOffsetT { - if t == nil { return 0 } + if t == nil { + return 0 + } InParentNamespaceStart(builder) return InParentNamespaceEnd(builder) } @@ -19,7 +21,9 @@ func (rcv *InParentNamespace) UnPackTo(t *InParentNamespaceT) { } func (rcv *InParentNamespace) UnPack() *InParentNamespaceT { - if rcv == nil { return nil } + if rcv == nil { + return nil + } t := &InParentNamespaceT{} rcv.UnPackTo(t) return t From aa6848fbf652600593370bf6ab24e61b2092bead Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Luis=20Mill=C3=A1n?= Date: Wed, 26 Apr 2023 07:22:06 +0200 Subject: [PATCH 155/571] TS/JS: Use TypeError instead of Error when appropriate (#7910) Ie: when the needed conditions are not satisfied in order to perform a given action. --- ts/builder.ts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/ts/builder.ts b/ts/builder.ts index 4ba340352d..fe496ab07a 100644 --- a/ts/builder.ts +++ b/ts/builder.ts @@ -268,7 +268,7 @@ export class Builder { */ nested(obj: Offset): void { if (obj != this.offset()) { - throw new Error('FlatBuffers: struct must be serialized inline.'); + throw new TypeError('FlatBuffers: struct must be serialized inline.'); } } @@ -278,7 +278,7 @@ export class Builder { */ notNested(): void { if (this.isNested) { - throw new Error('FlatBuffers: object serialization must not be nested.'); + throw new TypeError('FlatBuffers: object serialization must not be nested.'); } } @@ -429,7 +429,7 @@ export class Builder { this.prep(this.minalign, SIZEOF_INT + FILE_IDENTIFIER_LENGTH + size_prefix); if (file_identifier.length != FILE_IDENTIFIER_LENGTH) { - throw new Error('FlatBuffers: file identifier must be length ' + + throw new TypeError('FlatBuffers: file identifier must be length ' + FILE_IDENTIFIER_LENGTH); } for (let i = FILE_IDENTIFIER_LENGTH - 1; i >= 0; i--) { @@ -463,7 +463,7 @@ export class Builder { // If this fails, the caller will show what field needs to be set. if (!ok) { - throw new Error('FlatBuffers: field ' + field + ' must be set'); + throw new TypeError('FlatBuffers: field ' + field + ' must be set'); } } @@ -576,7 +576,7 @@ export class Builder { if(val !== null) { ret.push(this.createObjectOffset(val)); } else { - throw new Error( + throw new TypeError( 'FlatBuffers: Argument for createObjectOffsetList cannot contain null.'); } } From d6d83c3a9241403f1179df171d87a77b721d09c2 Mon Sep 17 00:00:00 2001 From: KerstinKeller Date: Wed, 26 Apr 2023 07:27:14 +0200 Subject: [PATCH 156/571] Allow to use functions from `BuildFlatBuffers.cmake` from a flatbuffers installation installed with CMake. (#7912) Co-authored-by: Derek Bailey --- CMake/BuildFlatBuffers.cmake | 9 +++++++++ CMake/flatbuffers-config.cmake | 1 + 2 files changed, 10 insertions(+) diff --git a/CMake/BuildFlatBuffers.cmake b/CMake/BuildFlatBuffers.cmake index 9adba7dc8b..631e5adfbf 100644 --- a/CMake/BuildFlatBuffers.cmake +++ b/CMake/BuildFlatBuffers.cmake @@ -59,6 +59,9 @@ function(build_flatbuffers flatbuffers_schemas if(FLATBUFFERS_FLATC_EXECUTABLE) set(FLATC_TARGET "") set(FLATC ${FLATBUFFERS_FLATC_EXECUTABLE}) + elseif(TARGET flatbuffers::flatc) + set(FLATC_TARGET flatbuffers::flatc) + set(FLATC flatbuffers::flatc) else() set(FLATC_TARGET flatc) set(FLATC flatc) @@ -211,6 +214,9 @@ function(flatbuffers_generate_headers) if(FLATBUFFERS_FLATC_EXECUTABLE) set(FLATC_TARGET "") set(FLATC ${FLATBUFFERS_FLATC_EXECUTABLE}) + elseif(TARGET flatbuffers::flatc) + set(FLATC_TARGET flatbuffers::flatc) + set(FLATC flatbuffers::flatc) else() set(FLATC_TARGET flatc) set(FLATC flatc) @@ -382,6 +388,9 @@ function(flatbuffers_generate_binary_files) if(FLATBUFFERS_FLATC_EXECUTABLE) set(FLATC_TARGET "") set(FLATC ${FLATBUFFERS_FLATC_EXECUTABLE}) + elseif(TARGET flatbuffers::flatc) + set(FLATC_TARGET flatbuffers::flatc) + set(FLATC flatbuffers::flatc) else() set(FLATC_TARGET flatc) set(FLATC flatc) diff --git a/CMake/flatbuffers-config.cmake b/CMake/flatbuffers-config.cmake index 592fc79b61..0c32c2fe2b 100644 --- a/CMake/flatbuffers-config.cmake +++ b/CMake/flatbuffers-config.cmake @@ -1,3 +1,4 @@ include("${CMAKE_CURRENT_LIST_DIR}/FlatBuffersTargets.cmake" OPTIONAL) include("${CMAKE_CURRENT_LIST_DIR}/FlatcTargets.cmake" OPTIONAL) include("${CMAKE_CURRENT_LIST_DIR}/FlatBuffersSharedTargets.cmake" OPTIONAL) +include("${CMAKE_CURRENT_LIST_DIR}/BuildFlatBuffers.cmake" OPTIONAL) \ No newline at end of file From ab716ee41dc3b0f0c645d9492ea0c2b41bea64b3 Mon Sep 17 00:00:00 2001 From: Adam Oleksy Date: Wed, 26 Apr 2023 07:37:06 +0200 Subject: [PATCH 157/571] Make JSON supporting advanced union features (#7869) This change allows user to decode binary with given schema to JSON representation when schema defines union with struct. Co-authored-by: Derek Bailey --- src/idl_parser.cpp | 3 ++- tests/json_test.cpp | 33 +++++++++++++++++++++++++++++++++ tests/json_test.h | 1 + tests/test.cpp | 1 + 4 files changed, 37 insertions(+), 1 deletion(-) diff --git a/src/idl_parser.cpp b/src/idl_parser.cpp index 084506460e..36497eef24 100644 --- a/src/idl_parser.cpp +++ b/src/idl_parser.cpp @@ -2584,7 +2584,8 @@ bool Parser::SupportsAdvancedUnionFeatures() const { return (opts.lang_to_generate & ~(IDLOptions::kCpp | IDLOptions::kTs | IDLOptions::kPhp | IDLOptions::kJava | IDLOptions::kCSharp | IDLOptions::kKotlin | - IDLOptions::kBinary | IDLOptions::kSwift | IDLOptions::kNim)) == 0; + IDLOptions::kBinary | IDLOptions::kSwift | IDLOptions::kNim | + IDLOptions::kJson)) == 0; } bool Parser::SupportsAdvancedArrayFeatures() const { diff --git a/tests/json_test.cpp b/tests/json_test.cpp index 2224b1a172..e4249f9ec8 100644 --- a/tests/json_test.cpp +++ b/tests/json_test.cpp @@ -170,5 +170,38 @@ void JsonUnsortedArrayTest() { TEST_NOTNULL(monster->testarrayoftables()->LookupByKey("ccc")); } +void JsonUnionStructTest() { + // schema to parse data + auto schema = R"( +struct MyStruct { field: int; } +union UnionWithStruct { MyStruct } +table JsonUnionStructTest { union_with_struct: UnionWithStruct; } +root_type JsonUnionStructTest; +)"; + // source text to parse and expected result of generation text back + auto json_source =R"({ + union_with_struct_type: "MyStruct", + union_with_struct: { + field: 12345 + } +} +)"; + + flatbuffers::Parser parser; + // set output language to JSON, so we assure that is supported + parser.opts.lang_to_generate = IDLOptions::kJson; + // parse schema first, so we assure that output language is supported + // and can use it to parse the data after + TEST_EQ(true, parser.Parse(schema)); + TEST_EQ(true, parser.ParseJson(json_source)); + + // now generate text back from the binary, and compare the two: + std::string json_generated; + auto generate_result = + GenerateText(parser, parser.builder_.GetBufferPointer(), &json_generated); + TEST_EQ(true, generate_result); + TEST_EQ_STR(json_source, json_generated.c_str()); +} + } // namespace tests } // namespace flatbuffers diff --git a/tests/json_test.h b/tests/json_test.h index a2aa6fba5f..1c8e8093f6 100644 --- a/tests/json_test.h +++ b/tests/json_test.h @@ -11,6 +11,7 @@ void JsonEnumsTest(const std::string& tests_data_path); void JsonOptionalTest(const std::string& tests_data_path, bool default_scalars); void ParseIncorrectMonsterJsonTest(const std::string& tests_data_path); void JsonUnsortedArrayTest(); +void JsonUnionStructTest(); } // namespace tests } // namespace flatbuffers diff --git a/tests/test.cpp b/tests/test.cpp index e59245655c..6bc23ed6dc 100644 --- a/tests/test.cpp +++ b/tests/test.cpp @@ -1557,6 +1557,7 @@ int FlatBufferTests(const std::string &tests_data_path) { ParseIncorrectMonsterJsonTest(tests_data_path); FixedLengthArraySpanTest(tests_data_path); DoNotRequireEofTest(tests_data_path); + JsonUnionStructTest(); #else // Guard against -Wunused-parameter. (void)tests_data_path; From f6af2087eeb4f256972e063261b55f26ffd6dddb Mon Sep 17 00:00:00 2001 From: Nikita Sokolov Date: Wed, 26 Apr 2023 09:39:37 +0400 Subject: [PATCH 158/571] drop glibc from runtime dependencies (#7906) https://github.com/google/flatbuffers/issues/7696 The binary size grows from 5.8MB to 7.2MB, but this way it works on Ubuntu 18.04 and amazonlinux. --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 90c6cfe508..0024c49042 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -30,7 +30,7 @@ jobs: steps: - uses: actions/checkout@v3 - name: cmake - run: CXX=${{ matrix.cxx }} cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release -DFLATBUFFERS_STRICT_MODE=ON . + run: CXX=${{ matrix.cxx }} cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release -DFLATBUFFERS_STRICT_MODE=ON -DFLATBUFFERS_STATIC_FLATC=ON . - name: build run: make -j - name: test From 6eae49a79a1ac30c88255a9bea9c344589f7249d Mon Sep 17 00:00:00 2001 From: Jongwoo Han Date: Wed, 26 Apr 2023 14:50:37 +0900 Subject: [PATCH 159/571] Replace deprecated command with environment file (#7921) Co-authored-by: Derek Bailey --- .github/workflows/build.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 0024c49042..cc2a614fbb 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -60,11 +60,11 @@ jobs: - name: Generate SLSA subjects - clang if: matrix.cxx == 'clang++-12' && startsWith(github.ref, 'refs/tags/') id: hash-clang - run: echo "::set-output name=hashes::$(sha256sum Linux.flatc.binary.${{ matrix.cxx }}.zip | base64 -w0)" + run: echo "hashes=$(sha256sum Linux.flatc.binary.${{ matrix.cxx }}.zip | base64 -w0)" >> $GITHUB_OUTPUT - name: Generate SLSA subjects - gcc if: matrix.cxx == 'g++-10' && startsWith(github.ref, 'refs/tags/') id: hash-gcc - run: echo "::set-output name=hashes::$(sha256sum Linux.flatc.binary.${{ matrix.cxx }}.zip | base64 -w0)" + run: echo "hashes=$(sha256sum Linux.flatc.binary.${{ matrix.cxx }}.zip | base64 -w0)" >> $GITHUB_OUTPUT build-linux-no-file-tests: name: Build Linux with -DFLATBUFFERS_NO_FILE_TESTS @@ -166,7 +166,7 @@ jobs: if: startsWith(github.ref, 'refs/tags/') id: hash shell: bash - run: echo "::set-output name=hashes::$(sha256sum Windows.flatc.binary.zip | base64 -w0)" + run: echo "hashes=$(sha256sum Windows.flatc.binary.zip | base64 -w0)" >> $GITHUB_OUTPUT build-windows-2017: name: Build Windows 2017 @@ -267,7 +267,7 @@ jobs: - name: Generate SLSA subjects if: startsWith(github.ref, 'refs/tags/') id: hash - run: echo "::set-output name=hashes::$(shasum -a 256 MacIntel.flatc.binary.zip | base64)" + run: echo "hashes=$(shasum -a 256 MacIntel.flatc.binary.zip | base64)" >> $GITHUB_OUTPUT build-mac-universal: permissions: @@ -310,7 +310,7 @@ jobs: - name: Generate SLSA subjects if: startsWith(github.ref, 'refs/tags/') id: hash - run: echo "::set-output name=hashes::$(shasum -a 256 Mac.flatc.binary.zip | base64)" + run: echo "hashes=$(shasum -a 256 Mac.flatc.binary.zip | base64)" >> $GITHUB_OUTPUT build-android: name: Build Android (on Linux) @@ -561,7 +561,7 @@ jobs: echo "$MAC_DIGESTS" | base64 -d >> checksums.txt echo "$MACINTEL_DIGESTS" | base64 -d >> checksums.txt echo "$WINDOWS_DIGESTS" | base64 -d >> checksums.txt - echo "::set-output name=digests::$(cat checksums.txt | base64 -w0)" + echo "digests=$(cat checksums.txt | base64 -w0)" >> $GITHUB_OUTPUT provenance: if: startsWith(github.ref, 'refs/tags/') From a397dd7e8c3137fecc8b686b3efb5c31bf1d1b1e Mon Sep 17 00:00:00 2001 From: Max Burke Date: Fri, 28 Apr 2023 09:38:29 -0700 Subject: [PATCH 160/571] Optionally generate Python type annotations (#7858) * optionally generate type prefixes and suffixes for python code * fix codegen error when qualified name is empty * WIP: Python typing * more progress towards python typing * Further iterate on Python generated code typing * clang-format * Regenerate code * add documentation for Python type annotations option * generate code with Python type annotations * handle forward references * clang-format --- .../python/greeter/models/HelloReply.py | 10 +- .../python/greeter/models/HelloRequest.py | 10 +- include/flatbuffers/idl.h | 2 + python/flatbuffers/reflection/Enum.py | 58 +-- python/flatbuffers/reflection/EnumVal.py | 42 +- python/flatbuffers/reflection/Field.py | 90 ++-- python/flatbuffers/reflection/KeyValue.py | 16 +- python/flatbuffers/reflection/Object.py | 62 +-- python/flatbuffers/reflection/RPCCall.py | 44 +- python/flatbuffers/reflection/Schema.py | 70 +-- python/flatbuffers/reflection/SchemaFile.py | 18 +- python/flatbuffers/reflection/Service.py | 44 +- python/flatbuffers/reflection/Type.py | 40 +- python/py.typed | 0 scripts/generate_code.py | 2 +- src/flatc.cpp | 8 +- src/idl_gen_python.cpp | 366 ++++++++++++--- tests/MyGame/Example/ArrayStruct.py | 21 +- tests/MyGame/Example/ArrayTable.py | 30 +- tests/MyGame/Example/Monster.py | 438 +++++++++--------- tests/MyGame/Example/NestedStruct.py | 17 +- .../Example/NestedUnion/NestedUnionTest.py | 56 +-- tests/MyGame/Example/NestedUnion/Test.py | 5 +- .../NestedUnion/TestSimpleTableWithEnum.py | 25 +- tests/MyGame/Example/NestedUnion/Vec3.py | 70 +-- tests/MyGame/Example/Referrable.py | 10 +- tests/MyGame/Example/Stat.py | 22 +- .../MyGame/Example/TestSimpleTableWithEnum.py | 10 +- tests/MyGame/Example/TypeAliases.py | 80 ++-- tests/MyGame/Example2/Monster.py | 4 +- tests/MyGame/InParentNamespace.py | 4 +- tests/MyGame/MonsterExtra.py | 117 ++--- tests/monster_test_generated.py | 174 +++---- tests/optional_scalars/ScalarStuff.py | 220 ++++----- tests/test.fbs | 85 ++++ 35 files changed, 1293 insertions(+), 977 deletions(-) create mode 100644 python/py.typed create mode 100644 tests/test.fbs diff --git a/grpc/examples/python/greeter/models/HelloReply.py b/grpc/examples/python/greeter/models/HelloReply.py index f1082fa23e..bf182fc851 100644 --- a/grpc/examples/python/greeter/models/HelloReply.py +++ b/grpc/examples/python/greeter/models/HelloReply.py @@ -32,16 +32,16 @@ def Message(self): return None def HelloReplyStart(builder): - return builder.StartObject(1) + builder.StartObject(1) def Start(builder): - return HelloReplyStart(builder) + HelloReplyStart(builder) def HelloReplyAddMessage(builder, message): - return builder.PrependUOffsetTRelativeSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(message), 0) + builder.PrependUOffsetTRelativeSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(message), 0) -def AddMessage(builder, message): - return HelloReplyAddMessage(builder, message) +def AddMessage(builder: flatbuffers.Builder, message: int): + HelloReplyAddMessage(builder, message) def HelloReplyEnd(builder): return builder.EndObject() diff --git a/grpc/examples/python/greeter/models/HelloRequest.py b/grpc/examples/python/greeter/models/HelloRequest.py index b295369e64..9df6b22c9b 100644 --- a/grpc/examples/python/greeter/models/HelloRequest.py +++ b/grpc/examples/python/greeter/models/HelloRequest.py @@ -32,16 +32,16 @@ def Name(self): return None def HelloRequestStart(builder): - return builder.StartObject(1) + builder.StartObject(1) def Start(builder): - return HelloRequestStart(builder) + HelloRequestStart(builder) def HelloRequestAddName(builder, name): - return builder.PrependUOffsetTRelativeSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(name), 0) + builder.PrependUOffsetTRelativeSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(name), 0) -def AddName(builder, name): - return HelloRequestAddName(builder, name) +def AddName(builder: flatbuffers.Builder, name: int): + HelloRequestAddName(builder, name) def HelloRequestEnd(builder): return builder.EndObject() diff --git a/include/flatbuffers/idl.h b/include/flatbuffers/idl.h index bee6727404..ced2049d83 100644 --- a/include/flatbuffers/idl.h +++ b/include/flatbuffers/idl.h @@ -698,6 +698,7 @@ struct IDLOptions { bool require_json_eof; bool keep_proto_id; bool python_no_type_prefix_suffix; + bool python_typing; ProtoIdGapAction proto_id_gap_action; // Possible options for the more general generator below. @@ -808,6 +809,7 @@ struct IDLOptions { require_json_eof(true), keep_proto_id(false), python_no_type_prefix_suffix(false), + python_typing(false), proto_id_gap_action(ProtoIdGapAction::WARNING), mini_reflect(IDLOptions::kNone), require_explicit_ids(false), diff --git a/python/flatbuffers/reflection/Enum.py b/python/flatbuffers/reflection/Enum.py index bd2a7b3363..fd4c410a10 100644 --- a/python/flatbuffers/reflection/Enum.py +++ b/python/flatbuffers/reflection/Enum.py @@ -42,7 +42,7 @@ def Values(self, j): x = self._tab.Vector(o) x += flatbuffers.number_types.UOffsetTFlags.py_type(j) * 4 x = self._tab.Indirect(x) - from reflection.EnumVal import EnumVal + from .reflection.EnumVal import EnumVal obj = EnumVal() obj.Init(self._tab.Bytes, x) return obj @@ -72,7 +72,7 @@ def UnderlyingType(self): o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(10)) if o != 0: x = self._tab.Indirect(o + self._tab.Pos) - from reflection.Type import Type + from .reflection.Type import Type obj = Type() obj.Init(self._tab.Bytes, x) return obj @@ -85,7 +85,7 @@ def Attributes(self, j): x = self._tab.Vector(o) x += flatbuffers.number_types.UOffsetTFlags.py_type(j) * 4 x = self._tab.Indirect(x) - from reflection.KeyValue import KeyValue + from .reflection.KeyValue import KeyValue obj = KeyValue() obj.Init(self._tab.Bytes, x) return obj @@ -132,70 +132,70 @@ def DeclarationFile(self): return None def EnumStart(builder): - return builder.StartObject(7) + builder.StartObject(7) def Start(builder): - return EnumStart(builder) + EnumStart(builder) def EnumAddName(builder, name): - return builder.PrependUOffsetTRelativeSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(name), 0) + builder.PrependUOffsetTRelativeSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(name), 0) -def AddName(builder, name): - return EnumAddName(builder, name) +def AddName(builder: flatbuffers.Builder, name: int): + EnumAddName(builder, name) def EnumAddValues(builder, values): - return builder.PrependUOffsetTRelativeSlot(1, flatbuffers.number_types.UOffsetTFlags.py_type(values), 0) + builder.PrependUOffsetTRelativeSlot(1, flatbuffers.number_types.UOffsetTFlags.py_type(values), 0) -def AddValues(builder, values): - return EnumAddValues(builder, values) +def AddValues(builder: flatbuffers.Builder, values: int): + EnumAddValues(builder, values) def EnumStartValuesVector(builder, numElems): return builder.StartVector(4, numElems, 4) -def StartValuesVector(builder, numElems): +def StartValuesVector(builder, numElems: int) -> int: return EnumStartValuesVector(builder, numElems) def EnumAddIsUnion(builder, isUnion): - return builder.PrependBoolSlot(2, isUnion, 0) + builder.PrependBoolSlot(2, isUnion, 0) -def AddIsUnion(builder, isUnion): - return EnumAddIsUnion(builder, isUnion) +def AddIsUnion(builder: flatbuffers.Builder, isUnion: bool): + EnumAddIsUnion(builder, isUnion) def EnumAddUnderlyingType(builder, underlyingType): - return builder.PrependUOffsetTRelativeSlot(3, flatbuffers.number_types.UOffsetTFlags.py_type(underlyingType), 0) + builder.PrependUOffsetTRelativeSlot(3, flatbuffers.number_types.UOffsetTFlags.py_type(underlyingType), 0) -def AddUnderlyingType(builder, underlyingType): - return EnumAddUnderlyingType(builder, underlyingType) +def AddUnderlyingType(builder: flatbuffers.Builder, underlyingType: int): + EnumAddUnderlyingType(builder, underlyingType) def EnumAddAttributes(builder, attributes): - return builder.PrependUOffsetTRelativeSlot(4, flatbuffers.number_types.UOffsetTFlags.py_type(attributes), 0) + builder.PrependUOffsetTRelativeSlot(4, flatbuffers.number_types.UOffsetTFlags.py_type(attributes), 0) -def AddAttributes(builder, attributes): - return EnumAddAttributes(builder, attributes) +def AddAttributes(builder: flatbuffers.Builder, attributes: int): + EnumAddAttributes(builder, attributes) def EnumStartAttributesVector(builder, numElems): return builder.StartVector(4, numElems, 4) -def StartAttributesVector(builder, numElems): +def StartAttributesVector(builder, numElems: int) -> int: return EnumStartAttributesVector(builder, numElems) def EnumAddDocumentation(builder, documentation): - return builder.PrependUOffsetTRelativeSlot(5, flatbuffers.number_types.UOffsetTFlags.py_type(documentation), 0) + builder.PrependUOffsetTRelativeSlot(5, flatbuffers.number_types.UOffsetTFlags.py_type(documentation), 0) -def AddDocumentation(builder, documentation): - return EnumAddDocumentation(builder, documentation) +def AddDocumentation(builder: flatbuffers.Builder, documentation: int): + EnumAddDocumentation(builder, documentation) def EnumStartDocumentationVector(builder, numElems): return builder.StartVector(4, numElems, 4) -def StartDocumentationVector(builder, numElems): +def StartDocumentationVector(builder, numElems: int) -> int: return EnumStartDocumentationVector(builder, numElems) def EnumAddDeclarationFile(builder, declarationFile): - return builder.PrependUOffsetTRelativeSlot(6, flatbuffers.number_types.UOffsetTFlags.py_type(declarationFile), 0) + builder.PrependUOffsetTRelativeSlot(6, flatbuffers.number_types.UOffsetTFlags.py_type(declarationFile), 0) -def AddDeclarationFile(builder, declarationFile): - return EnumAddDeclarationFile(builder, declarationFile) +def AddDeclarationFile(builder: flatbuffers.Builder, declarationFile: int): + EnumAddDeclarationFile(builder, declarationFile) def EnumEnd(builder): return builder.EndObject() diff --git a/python/flatbuffers/reflection/EnumVal.py b/python/flatbuffers/reflection/EnumVal.py index 7019ec46d5..207dd84366 100644 --- a/python/flatbuffers/reflection/EnumVal.py +++ b/python/flatbuffers/reflection/EnumVal.py @@ -47,7 +47,7 @@ def UnionType(self): o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(10)) if o != 0: x = self._tab.Indirect(o + self._tab.Pos) - from reflection.Type import Type + from .reflection.Type import Type obj = Type() obj.Init(self._tab.Bytes, x) return obj @@ -80,7 +80,7 @@ def Attributes(self, j): x = self._tab.Vector(o) x += flatbuffers.number_types.UOffsetTFlags.py_type(j) * 4 x = self._tab.Indirect(x) - from reflection.KeyValue import KeyValue + from .reflection.KeyValue import KeyValue obj = KeyValue() obj.Init(self._tab.Bytes, x) return obj @@ -99,51 +99,51 @@ def AttributesIsNone(self): return o == 0 def EnumValStart(builder): - return builder.StartObject(6) + builder.StartObject(6) def Start(builder): - return EnumValStart(builder) + EnumValStart(builder) def EnumValAddName(builder, name): - return builder.PrependUOffsetTRelativeSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(name), 0) + builder.PrependUOffsetTRelativeSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(name), 0) -def AddName(builder, name): - return EnumValAddName(builder, name) +def AddName(builder: flatbuffers.Builder, name: int): + EnumValAddName(builder, name) def EnumValAddValue(builder, value): - return builder.PrependInt64Slot(1, value, 0) + builder.PrependInt64Slot(1, value, 0) -def AddValue(builder, value): - return EnumValAddValue(builder, value) +def AddValue(builder: flatbuffers.Builder, value: int): + EnumValAddValue(builder, value) def EnumValAddUnionType(builder, unionType): - return builder.PrependUOffsetTRelativeSlot(3, flatbuffers.number_types.UOffsetTFlags.py_type(unionType), 0) + builder.PrependUOffsetTRelativeSlot(3, flatbuffers.number_types.UOffsetTFlags.py_type(unionType), 0) -def AddUnionType(builder, unionType): - return EnumValAddUnionType(builder, unionType) +def AddUnionType(builder: flatbuffers.Builder, unionType: int): + EnumValAddUnionType(builder, unionType) def EnumValAddDocumentation(builder, documentation): - return builder.PrependUOffsetTRelativeSlot(4, flatbuffers.number_types.UOffsetTFlags.py_type(documentation), 0) + builder.PrependUOffsetTRelativeSlot(4, flatbuffers.number_types.UOffsetTFlags.py_type(documentation), 0) -def AddDocumentation(builder, documentation): - return EnumValAddDocumentation(builder, documentation) +def AddDocumentation(builder: flatbuffers.Builder, documentation: int): + EnumValAddDocumentation(builder, documentation) def EnumValStartDocumentationVector(builder, numElems): return builder.StartVector(4, numElems, 4) -def StartDocumentationVector(builder, numElems): +def StartDocumentationVector(builder, numElems: int) -> int: return EnumValStartDocumentationVector(builder, numElems) def EnumValAddAttributes(builder, attributes): - return builder.PrependUOffsetTRelativeSlot(5, flatbuffers.number_types.UOffsetTFlags.py_type(attributes), 0) + builder.PrependUOffsetTRelativeSlot(5, flatbuffers.number_types.UOffsetTFlags.py_type(attributes), 0) -def AddAttributes(builder, attributes): - return EnumValAddAttributes(builder, attributes) +def AddAttributes(builder: flatbuffers.Builder, attributes: int): + EnumValAddAttributes(builder, attributes) def EnumValStartAttributesVector(builder, numElems): return builder.StartVector(4, numElems, 4) -def StartAttributesVector(builder, numElems): +def StartAttributesVector(builder, numElems: int) -> int: return EnumValStartAttributesVector(builder, numElems) def EnumValEnd(builder): diff --git a/python/flatbuffers/reflection/Field.py b/python/flatbuffers/reflection/Field.py index a0e660fd66..36ceb2bfec 100644 --- a/python/flatbuffers/reflection/Field.py +++ b/python/flatbuffers/reflection/Field.py @@ -40,7 +40,7 @@ def Type(self): o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(6)) if o != 0: x = self._tab.Indirect(o + self._tab.Pos) - from reflection.Type import Type + from .reflection.Type import Type obj = Type() obj.Init(self._tab.Bytes, x) return obj @@ -102,7 +102,7 @@ def Attributes(self, j): x = self._tab.Vector(o) x += flatbuffers.number_types.UOffsetTFlags.py_type(j) * 4 x = self._tab.Indirect(x) - from reflection.KeyValue import KeyValue + from .reflection.KeyValue import KeyValue obj = KeyValue() obj.Init(self._tab.Bytes, x) return obj @@ -156,100 +156,100 @@ def Padding(self): return 0 def FieldStart(builder): - return builder.StartObject(13) + builder.StartObject(13) def Start(builder): - return FieldStart(builder) + FieldStart(builder) def FieldAddName(builder, name): - return builder.PrependUOffsetTRelativeSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(name), 0) + builder.PrependUOffsetTRelativeSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(name), 0) -def AddName(builder, name): - return FieldAddName(builder, name) +def AddName(builder: flatbuffers.Builder, name: int): + FieldAddName(builder, name) def FieldAddType(builder, type): - return builder.PrependUOffsetTRelativeSlot(1, flatbuffers.number_types.UOffsetTFlags.py_type(type), 0) + builder.PrependUOffsetTRelativeSlot(1, flatbuffers.number_types.UOffsetTFlags.py_type(type), 0) -def AddType(builder, type): - return FieldAddType(builder, type) +def AddType(builder: flatbuffers.Builder, type: int): + FieldAddType(builder, type) def FieldAddId(builder, id): - return builder.PrependUint16Slot(2, id, 0) + builder.PrependUint16Slot(2, id, 0) -def AddId(builder, id): - return FieldAddId(builder, id) +def AddId(builder: flatbuffers.Builder, id: int): + FieldAddId(builder, id) def FieldAddOffset(builder, offset): - return builder.PrependUint16Slot(3, offset, 0) + builder.PrependUint16Slot(3, offset, 0) -def AddOffset(builder, offset): - return FieldAddOffset(builder, offset) +def AddOffset(builder: flatbuffers.Builder, offset: int): + FieldAddOffset(builder, offset) def FieldAddDefaultInteger(builder, defaultInteger): - return builder.PrependInt64Slot(4, defaultInteger, 0) + builder.PrependInt64Slot(4, defaultInteger, 0) -def AddDefaultInteger(builder, defaultInteger): - return FieldAddDefaultInteger(builder, defaultInteger) +def AddDefaultInteger(builder: flatbuffers.Builder, defaultInteger: int): + FieldAddDefaultInteger(builder, defaultInteger) def FieldAddDefaultReal(builder, defaultReal): - return builder.PrependFloat64Slot(5, defaultReal, 0.0) + builder.PrependFloat64Slot(5, defaultReal, 0.0) -def AddDefaultReal(builder, defaultReal): - return FieldAddDefaultReal(builder, defaultReal) +def AddDefaultReal(builder: flatbuffers.Builder, defaultReal: float): + FieldAddDefaultReal(builder, defaultReal) def FieldAddDeprecated(builder, deprecated): - return builder.PrependBoolSlot(6, deprecated, 0) + builder.PrependBoolSlot(6, deprecated, 0) -def AddDeprecated(builder, deprecated): - return FieldAddDeprecated(builder, deprecated) +def AddDeprecated(builder: flatbuffers.Builder, deprecated: bool): + FieldAddDeprecated(builder, deprecated) def FieldAddRequired(builder, required): - return builder.PrependBoolSlot(7, required, 0) + builder.PrependBoolSlot(7, required, 0) -def AddRequired(builder, required): - return FieldAddRequired(builder, required) +def AddRequired(builder: flatbuffers.Builder, required: bool): + FieldAddRequired(builder, required) def FieldAddKey(builder, key): - return builder.PrependBoolSlot(8, key, 0) + builder.PrependBoolSlot(8, key, 0) -def AddKey(builder, key): - return FieldAddKey(builder, key) +def AddKey(builder: flatbuffers.Builder, key: bool): + FieldAddKey(builder, key) def FieldAddAttributes(builder, attributes): - return builder.PrependUOffsetTRelativeSlot(9, flatbuffers.number_types.UOffsetTFlags.py_type(attributes), 0) + builder.PrependUOffsetTRelativeSlot(9, flatbuffers.number_types.UOffsetTFlags.py_type(attributes), 0) -def AddAttributes(builder, attributes): - return FieldAddAttributes(builder, attributes) +def AddAttributes(builder: flatbuffers.Builder, attributes: int): + FieldAddAttributes(builder, attributes) def FieldStartAttributesVector(builder, numElems): return builder.StartVector(4, numElems, 4) -def StartAttributesVector(builder, numElems): +def StartAttributesVector(builder, numElems: int) -> int: return FieldStartAttributesVector(builder, numElems) def FieldAddDocumentation(builder, documentation): - return builder.PrependUOffsetTRelativeSlot(10, flatbuffers.number_types.UOffsetTFlags.py_type(documentation), 0) + builder.PrependUOffsetTRelativeSlot(10, flatbuffers.number_types.UOffsetTFlags.py_type(documentation), 0) -def AddDocumentation(builder, documentation): - return FieldAddDocumentation(builder, documentation) +def AddDocumentation(builder: flatbuffers.Builder, documentation: int): + FieldAddDocumentation(builder, documentation) def FieldStartDocumentationVector(builder, numElems): return builder.StartVector(4, numElems, 4) -def StartDocumentationVector(builder, numElems): +def StartDocumentationVector(builder, numElems: int) -> int: return FieldStartDocumentationVector(builder, numElems) def FieldAddOptional(builder, optional): - return builder.PrependBoolSlot(11, optional, 0) + builder.PrependBoolSlot(11, optional, 0) -def AddOptional(builder, optional): - return FieldAddOptional(builder, optional) +def AddOptional(builder: flatbuffers.Builder, optional: bool): + FieldAddOptional(builder, optional) def FieldAddPadding(builder, padding): - return builder.PrependUint16Slot(12, padding, 0) + builder.PrependUint16Slot(12, padding, 0) -def AddPadding(builder, padding): - return FieldAddPadding(builder, padding) +def AddPadding(builder: flatbuffers.Builder, padding: int): + FieldAddPadding(builder, padding) def FieldEnd(builder): return builder.EndObject() diff --git a/python/flatbuffers/reflection/KeyValue.py b/python/flatbuffers/reflection/KeyValue.py index 7b24a76e51..fb9014c978 100644 --- a/python/flatbuffers/reflection/KeyValue.py +++ b/python/flatbuffers/reflection/KeyValue.py @@ -43,22 +43,22 @@ def Value(self): return None def KeyValueStart(builder): - return builder.StartObject(2) + builder.StartObject(2) def Start(builder): - return KeyValueStart(builder) + KeyValueStart(builder) def KeyValueAddKey(builder, key): - return builder.PrependUOffsetTRelativeSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(key), 0) + builder.PrependUOffsetTRelativeSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(key), 0) -def AddKey(builder, key): - return KeyValueAddKey(builder, key) +def AddKey(builder: flatbuffers.Builder, key: int): + KeyValueAddKey(builder, key) def KeyValueAddValue(builder, value): - return builder.PrependUOffsetTRelativeSlot(1, flatbuffers.number_types.UOffsetTFlags.py_type(value), 0) + builder.PrependUOffsetTRelativeSlot(1, flatbuffers.number_types.UOffsetTFlags.py_type(value), 0) -def AddValue(builder, value): - return KeyValueAddValue(builder, value) +def AddValue(builder: flatbuffers.Builder, value: int): + KeyValueAddValue(builder, value) def KeyValueEnd(builder): return builder.EndObject() diff --git a/python/flatbuffers/reflection/Object.py b/python/flatbuffers/reflection/Object.py index f890ffbc1e..139e062785 100644 --- a/python/flatbuffers/reflection/Object.py +++ b/python/flatbuffers/reflection/Object.py @@ -42,7 +42,7 @@ def Fields(self, j): x = self._tab.Vector(o) x += flatbuffers.number_types.UOffsetTFlags.py_type(j) * 4 x = self._tab.Indirect(x) - from reflection.Field import Field + from .reflection.Field import Field obj = Field() obj.Init(self._tab.Bytes, x) return obj @@ -88,7 +88,7 @@ def Attributes(self, j): x = self._tab.Vector(o) x += flatbuffers.number_types.UOffsetTFlags.py_type(j) * 4 x = self._tab.Indirect(x) - from reflection.KeyValue import KeyValue + from .reflection.KeyValue import KeyValue obj = KeyValue() obj.Init(self._tab.Bytes, x) return obj @@ -135,76 +135,76 @@ def DeclarationFile(self): return None def ObjectStart(builder): - return builder.StartObject(8) + builder.StartObject(8) def Start(builder): - return ObjectStart(builder) + ObjectStart(builder) def ObjectAddName(builder, name): - return builder.PrependUOffsetTRelativeSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(name), 0) + builder.PrependUOffsetTRelativeSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(name), 0) -def AddName(builder, name): - return ObjectAddName(builder, name) +def AddName(builder: flatbuffers.Builder, name: int): + ObjectAddName(builder, name) def ObjectAddFields(builder, fields): - return builder.PrependUOffsetTRelativeSlot(1, flatbuffers.number_types.UOffsetTFlags.py_type(fields), 0) + builder.PrependUOffsetTRelativeSlot(1, flatbuffers.number_types.UOffsetTFlags.py_type(fields), 0) -def AddFields(builder, fields): - return ObjectAddFields(builder, fields) +def AddFields(builder: flatbuffers.Builder, fields: int): + ObjectAddFields(builder, fields) def ObjectStartFieldsVector(builder, numElems): return builder.StartVector(4, numElems, 4) -def StartFieldsVector(builder, numElems): +def StartFieldsVector(builder, numElems: int) -> int: return ObjectStartFieldsVector(builder, numElems) def ObjectAddIsStruct(builder, isStruct): - return builder.PrependBoolSlot(2, isStruct, 0) + builder.PrependBoolSlot(2, isStruct, 0) -def AddIsStruct(builder, isStruct): - return ObjectAddIsStruct(builder, isStruct) +def AddIsStruct(builder: flatbuffers.Builder, isStruct: bool): + ObjectAddIsStruct(builder, isStruct) def ObjectAddMinalign(builder, minalign): - return builder.PrependInt32Slot(3, minalign, 0) + builder.PrependInt32Slot(3, minalign, 0) -def AddMinalign(builder, minalign): - return ObjectAddMinalign(builder, minalign) +def AddMinalign(builder: flatbuffers.Builder, minalign: int): + ObjectAddMinalign(builder, minalign) def ObjectAddBytesize(builder, bytesize): - return builder.PrependInt32Slot(4, bytesize, 0) + builder.PrependInt32Slot(4, bytesize, 0) -def AddBytesize(builder, bytesize): - return ObjectAddBytesize(builder, bytesize) +def AddBytesize(builder: flatbuffers.Builder, bytesize: int): + ObjectAddBytesize(builder, bytesize) def ObjectAddAttributes(builder, attributes): - return builder.PrependUOffsetTRelativeSlot(5, flatbuffers.number_types.UOffsetTFlags.py_type(attributes), 0) + builder.PrependUOffsetTRelativeSlot(5, flatbuffers.number_types.UOffsetTFlags.py_type(attributes), 0) -def AddAttributes(builder, attributes): - return ObjectAddAttributes(builder, attributes) +def AddAttributes(builder: flatbuffers.Builder, attributes: int): + ObjectAddAttributes(builder, attributes) def ObjectStartAttributesVector(builder, numElems): return builder.StartVector(4, numElems, 4) -def StartAttributesVector(builder, numElems): +def StartAttributesVector(builder, numElems: int) -> int: return ObjectStartAttributesVector(builder, numElems) def ObjectAddDocumentation(builder, documentation): - return builder.PrependUOffsetTRelativeSlot(6, flatbuffers.number_types.UOffsetTFlags.py_type(documentation), 0) + builder.PrependUOffsetTRelativeSlot(6, flatbuffers.number_types.UOffsetTFlags.py_type(documentation), 0) -def AddDocumentation(builder, documentation): - return ObjectAddDocumentation(builder, documentation) +def AddDocumentation(builder: flatbuffers.Builder, documentation: int): + ObjectAddDocumentation(builder, documentation) def ObjectStartDocumentationVector(builder, numElems): return builder.StartVector(4, numElems, 4) -def StartDocumentationVector(builder, numElems): +def StartDocumentationVector(builder, numElems: int) -> int: return ObjectStartDocumentationVector(builder, numElems) def ObjectAddDeclarationFile(builder, declarationFile): - return builder.PrependUOffsetTRelativeSlot(7, flatbuffers.number_types.UOffsetTFlags.py_type(declarationFile), 0) + builder.PrependUOffsetTRelativeSlot(7, flatbuffers.number_types.UOffsetTFlags.py_type(declarationFile), 0) -def AddDeclarationFile(builder, declarationFile): - return ObjectAddDeclarationFile(builder, declarationFile) +def AddDeclarationFile(builder: flatbuffers.Builder, declarationFile: int): + ObjectAddDeclarationFile(builder, declarationFile) def ObjectEnd(builder): return builder.EndObject() diff --git a/python/flatbuffers/reflection/RPCCall.py b/python/flatbuffers/reflection/RPCCall.py index b126f04e43..f78edec082 100644 --- a/python/flatbuffers/reflection/RPCCall.py +++ b/python/flatbuffers/reflection/RPCCall.py @@ -40,7 +40,7 @@ def Request(self): o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(6)) if o != 0: x = self._tab.Indirect(o + self._tab.Pos) - from reflection.Object import Object + from .reflection.Object import Object obj = Object() obj.Init(self._tab.Bytes, x) return obj @@ -51,7 +51,7 @@ def Response(self): o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(8)) if o != 0: x = self._tab.Indirect(o + self._tab.Pos) - from reflection.Object import Object + from .reflection.Object import Object obj = Object() obj.Init(self._tab.Bytes, x) return obj @@ -64,7 +64,7 @@ def Attributes(self, j): x = self._tab.Vector(o) x += flatbuffers.number_types.UOffsetTFlags.py_type(j) * 4 x = self._tab.Indirect(x) - from reflection.KeyValue import KeyValue + from .reflection.KeyValue import KeyValue obj = KeyValue() obj.Init(self._tab.Bytes, x) return obj @@ -103,51 +103,51 @@ def DocumentationIsNone(self): return o == 0 def RPCCallStart(builder): - return builder.StartObject(5) + builder.StartObject(5) def Start(builder): - return RPCCallStart(builder) + RPCCallStart(builder) def RPCCallAddName(builder, name): - return builder.PrependUOffsetTRelativeSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(name), 0) + builder.PrependUOffsetTRelativeSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(name), 0) -def AddName(builder, name): - return RPCCallAddName(builder, name) +def AddName(builder: flatbuffers.Builder, name: int): + RPCCallAddName(builder, name) def RPCCallAddRequest(builder, request): - return builder.PrependUOffsetTRelativeSlot(1, flatbuffers.number_types.UOffsetTFlags.py_type(request), 0) + builder.PrependUOffsetTRelativeSlot(1, flatbuffers.number_types.UOffsetTFlags.py_type(request), 0) -def AddRequest(builder, request): - return RPCCallAddRequest(builder, request) +def AddRequest(builder: flatbuffers.Builder, request: int): + RPCCallAddRequest(builder, request) def RPCCallAddResponse(builder, response): - return builder.PrependUOffsetTRelativeSlot(2, flatbuffers.number_types.UOffsetTFlags.py_type(response), 0) + builder.PrependUOffsetTRelativeSlot(2, flatbuffers.number_types.UOffsetTFlags.py_type(response), 0) -def AddResponse(builder, response): - return RPCCallAddResponse(builder, response) +def AddResponse(builder: flatbuffers.Builder, response: int): + RPCCallAddResponse(builder, response) def RPCCallAddAttributes(builder, attributes): - return builder.PrependUOffsetTRelativeSlot(3, flatbuffers.number_types.UOffsetTFlags.py_type(attributes), 0) + builder.PrependUOffsetTRelativeSlot(3, flatbuffers.number_types.UOffsetTFlags.py_type(attributes), 0) -def AddAttributes(builder, attributes): - return RPCCallAddAttributes(builder, attributes) +def AddAttributes(builder: flatbuffers.Builder, attributes: int): + RPCCallAddAttributes(builder, attributes) def RPCCallStartAttributesVector(builder, numElems): return builder.StartVector(4, numElems, 4) -def StartAttributesVector(builder, numElems): +def StartAttributesVector(builder, numElems: int) -> int: return RPCCallStartAttributesVector(builder, numElems) def RPCCallAddDocumentation(builder, documentation): - return builder.PrependUOffsetTRelativeSlot(4, flatbuffers.number_types.UOffsetTFlags.py_type(documentation), 0) + builder.PrependUOffsetTRelativeSlot(4, flatbuffers.number_types.UOffsetTFlags.py_type(documentation), 0) -def AddDocumentation(builder, documentation): - return RPCCallAddDocumentation(builder, documentation) +def AddDocumentation(builder: flatbuffers.Builder, documentation: int): + RPCCallAddDocumentation(builder, documentation) def RPCCallStartDocumentationVector(builder, numElems): return builder.StartVector(4, numElems, 4) -def StartDocumentationVector(builder, numElems): +def StartDocumentationVector(builder, numElems: int) -> int: return RPCCallStartDocumentationVector(builder, numElems) def RPCCallEnd(builder): diff --git a/python/flatbuffers/reflection/Schema.py b/python/flatbuffers/reflection/Schema.py index d7929a49b6..06df1a041c 100644 --- a/python/flatbuffers/reflection/Schema.py +++ b/python/flatbuffers/reflection/Schema.py @@ -35,7 +35,7 @@ def Objects(self, j): x = self._tab.Vector(o) x += flatbuffers.number_types.UOffsetTFlags.py_type(j) * 4 x = self._tab.Indirect(x) - from reflection.Object import Object + from .reflection.Object import Object obj = Object() obj.Init(self._tab.Bytes, x) return obj @@ -60,7 +60,7 @@ def Enums(self, j): x = self._tab.Vector(o) x += flatbuffers.number_types.UOffsetTFlags.py_type(j) * 4 x = self._tab.Indirect(x) - from reflection.Enum import Enum + from .reflection.Enum import Enum obj = Enum() obj.Init(self._tab.Bytes, x) return obj @@ -97,7 +97,7 @@ def RootTable(self): o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(12)) if o != 0: x = self._tab.Indirect(o + self._tab.Pos) - from reflection.Object import Object + from .reflection.Object import Object obj = Object() obj.Init(self._tab.Bytes, x) return obj @@ -110,7 +110,7 @@ def Services(self, j): x = self._tab.Vector(o) x += flatbuffers.number_types.UOffsetTFlags.py_type(j) * 4 x = self._tab.Indirect(x) - from reflection.Service import Service + from .reflection.Service import Service obj = Service() obj.Init(self._tab.Bytes, x) return obj @@ -144,7 +144,7 @@ def FbsFiles(self, j): x = self._tab.Vector(o) x += flatbuffers.number_types.UOffsetTFlags.py_type(j) * 4 x = self._tab.Indirect(x) - from reflection.SchemaFile import SchemaFile + from .reflection.SchemaFile import SchemaFile obj = SchemaFile() obj.Init(self._tab.Bytes, x) return obj @@ -163,81 +163,81 @@ def FbsFilesIsNone(self): return o == 0 def SchemaStart(builder): - return builder.StartObject(8) + builder.StartObject(8) def Start(builder): - return SchemaStart(builder) + SchemaStart(builder) def SchemaAddObjects(builder, objects): - return builder.PrependUOffsetTRelativeSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(objects), 0) + builder.PrependUOffsetTRelativeSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(objects), 0) -def AddObjects(builder, objects): - return SchemaAddObjects(builder, objects) +def AddObjects(builder: flatbuffers.Builder, objects: int): + SchemaAddObjects(builder, objects) def SchemaStartObjectsVector(builder, numElems): return builder.StartVector(4, numElems, 4) -def StartObjectsVector(builder, numElems): +def StartObjectsVector(builder, numElems: int) -> int: return SchemaStartObjectsVector(builder, numElems) def SchemaAddEnums(builder, enums): - return builder.PrependUOffsetTRelativeSlot(1, flatbuffers.number_types.UOffsetTFlags.py_type(enums), 0) + builder.PrependUOffsetTRelativeSlot(1, flatbuffers.number_types.UOffsetTFlags.py_type(enums), 0) -def AddEnums(builder, enums): - return SchemaAddEnums(builder, enums) +def AddEnums(builder: flatbuffers.Builder, enums: int): + SchemaAddEnums(builder, enums) def SchemaStartEnumsVector(builder, numElems): return builder.StartVector(4, numElems, 4) -def StartEnumsVector(builder, numElems): +def StartEnumsVector(builder, numElems: int) -> int: return SchemaStartEnumsVector(builder, numElems) def SchemaAddFileIdent(builder, fileIdent): - return builder.PrependUOffsetTRelativeSlot(2, flatbuffers.number_types.UOffsetTFlags.py_type(fileIdent), 0) + builder.PrependUOffsetTRelativeSlot(2, flatbuffers.number_types.UOffsetTFlags.py_type(fileIdent), 0) -def AddFileIdent(builder, fileIdent): - return SchemaAddFileIdent(builder, fileIdent) +def AddFileIdent(builder: flatbuffers.Builder, fileIdent: int): + SchemaAddFileIdent(builder, fileIdent) def SchemaAddFileExt(builder, fileExt): - return builder.PrependUOffsetTRelativeSlot(3, flatbuffers.number_types.UOffsetTFlags.py_type(fileExt), 0) + builder.PrependUOffsetTRelativeSlot(3, flatbuffers.number_types.UOffsetTFlags.py_type(fileExt), 0) -def AddFileExt(builder, fileExt): - return SchemaAddFileExt(builder, fileExt) +def AddFileExt(builder: flatbuffers.Builder, fileExt: int): + SchemaAddFileExt(builder, fileExt) def SchemaAddRootTable(builder, rootTable): - return builder.PrependUOffsetTRelativeSlot(4, flatbuffers.number_types.UOffsetTFlags.py_type(rootTable), 0) + builder.PrependUOffsetTRelativeSlot(4, flatbuffers.number_types.UOffsetTFlags.py_type(rootTable), 0) -def AddRootTable(builder, rootTable): - return SchemaAddRootTable(builder, rootTable) +def AddRootTable(builder: flatbuffers.Builder, rootTable: int): + SchemaAddRootTable(builder, rootTable) def SchemaAddServices(builder, services): - return builder.PrependUOffsetTRelativeSlot(5, flatbuffers.number_types.UOffsetTFlags.py_type(services), 0) + builder.PrependUOffsetTRelativeSlot(5, flatbuffers.number_types.UOffsetTFlags.py_type(services), 0) -def AddServices(builder, services): - return SchemaAddServices(builder, services) +def AddServices(builder: flatbuffers.Builder, services: int): + SchemaAddServices(builder, services) def SchemaStartServicesVector(builder, numElems): return builder.StartVector(4, numElems, 4) -def StartServicesVector(builder, numElems): +def StartServicesVector(builder, numElems: int) -> int: return SchemaStartServicesVector(builder, numElems) def SchemaAddAdvancedFeatures(builder, advancedFeatures): - return builder.PrependUint64Slot(6, advancedFeatures, 0) + builder.PrependUint64Slot(6, advancedFeatures, 0) -def AddAdvancedFeatures(builder, advancedFeatures): - return SchemaAddAdvancedFeatures(builder, advancedFeatures) +def AddAdvancedFeatures(builder: flatbuffers.Builder, advancedFeatures: int): + SchemaAddAdvancedFeatures(builder, advancedFeatures) def SchemaAddFbsFiles(builder, fbsFiles): - return builder.PrependUOffsetTRelativeSlot(7, flatbuffers.number_types.UOffsetTFlags.py_type(fbsFiles), 0) + builder.PrependUOffsetTRelativeSlot(7, flatbuffers.number_types.UOffsetTFlags.py_type(fbsFiles), 0) -def AddFbsFiles(builder, fbsFiles): - return SchemaAddFbsFiles(builder, fbsFiles) +def AddFbsFiles(builder: flatbuffers.Builder, fbsFiles: int): + SchemaAddFbsFiles(builder, fbsFiles) def SchemaStartFbsFilesVector(builder, numElems): return builder.StartVector(4, numElems, 4) -def StartFbsFilesVector(builder, numElems): +def StartFbsFilesVector(builder, numElems: int) -> int: return SchemaStartFbsFilesVector(builder, numElems) def SchemaEnd(builder): diff --git a/python/flatbuffers/reflection/SchemaFile.py b/python/flatbuffers/reflection/SchemaFile.py index d4c8178621..009e7f2f01 100644 --- a/python/flatbuffers/reflection/SchemaFile.py +++ b/python/flatbuffers/reflection/SchemaFile.py @@ -61,27 +61,27 @@ def IncludedFilenamesIsNone(self): return o == 0 def SchemaFileStart(builder): - return builder.StartObject(2) + builder.StartObject(2) def Start(builder): - return SchemaFileStart(builder) + SchemaFileStart(builder) def SchemaFileAddFilename(builder, filename): - return builder.PrependUOffsetTRelativeSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(filename), 0) + builder.PrependUOffsetTRelativeSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(filename), 0) -def AddFilename(builder, filename): - return SchemaFileAddFilename(builder, filename) +def AddFilename(builder: flatbuffers.Builder, filename: int): + SchemaFileAddFilename(builder, filename) def SchemaFileAddIncludedFilenames(builder, includedFilenames): - return builder.PrependUOffsetTRelativeSlot(1, flatbuffers.number_types.UOffsetTFlags.py_type(includedFilenames), 0) + builder.PrependUOffsetTRelativeSlot(1, flatbuffers.number_types.UOffsetTFlags.py_type(includedFilenames), 0) -def AddIncludedFilenames(builder, includedFilenames): - return SchemaFileAddIncludedFilenames(builder, includedFilenames) +def AddIncludedFilenames(builder: flatbuffers.Builder, includedFilenames: int): + SchemaFileAddIncludedFilenames(builder, includedFilenames) def SchemaFileStartIncludedFilenamesVector(builder, numElems): return builder.StartVector(4, numElems, 4) -def StartIncludedFilenamesVector(builder, numElems): +def StartIncludedFilenamesVector(builder, numElems: int) -> int: return SchemaFileStartIncludedFilenamesVector(builder, numElems) def SchemaFileEnd(builder): diff --git a/python/flatbuffers/reflection/Service.py b/python/flatbuffers/reflection/Service.py index eaec60af1c..eb8db7ef8d 100644 --- a/python/flatbuffers/reflection/Service.py +++ b/python/flatbuffers/reflection/Service.py @@ -42,7 +42,7 @@ def Calls(self, j): x = self._tab.Vector(o) x += flatbuffers.number_types.UOffsetTFlags.py_type(j) * 4 x = self._tab.Indirect(x) - from reflection.RPCCall import RPCCall + from .reflection.RPCCall import RPCCall obj = RPCCall() obj.Init(self._tab.Bytes, x) return obj @@ -67,7 +67,7 @@ def Attributes(self, j): x = self._tab.Vector(o) x += flatbuffers.number_types.UOffsetTFlags.py_type(j) * 4 x = self._tab.Indirect(x) - from reflection.KeyValue import KeyValue + from .reflection.KeyValue import KeyValue obj = KeyValue() obj.Init(self._tab.Bytes, x) return obj @@ -114,58 +114,58 @@ def DeclarationFile(self): return None def ServiceStart(builder): - return builder.StartObject(5) + builder.StartObject(5) def Start(builder): - return ServiceStart(builder) + ServiceStart(builder) def ServiceAddName(builder, name): - return builder.PrependUOffsetTRelativeSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(name), 0) + builder.PrependUOffsetTRelativeSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(name), 0) -def AddName(builder, name): - return ServiceAddName(builder, name) +def AddName(builder: flatbuffers.Builder, name: int): + ServiceAddName(builder, name) def ServiceAddCalls(builder, calls): - return builder.PrependUOffsetTRelativeSlot(1, flatbuffers.number_types.UOffsetTFlags.py_type(calls), 0) + builder.PrependUOffsetTRelativeSlot(1, flatbuffers.number_types.UOffsetTFlags.py_type(calls), 0) -def AddCalls(builder, calls): - return ServiceAddCalls(builder, calls) +def AddCalls(builder: flatbuffers.Builder, calls: int): + ServiceAddCalls(builder, calls) def ServiceStartCallsVector(builder, numElems): return builder.StartVector(4, numElems, 4) -def StartCallsVector(builder, numElems): +def StartCallsVector(builder, numElems: int) -> int: return ServiceStartCallsVector(builder, numElems) def ServiceAddAttributes(builder, attributes): - return builder.PrependUOffsetTRelativeSlot(2, flatbuffers.number_types.UOffsetTFlags.py_type(attributes), 0) + builder.PrependUOffsetTRelativeSlot(2, flatbuffers.number_types.UOffsetTFlags.py_type(attributes), 0) -def AddAttributes(builder, attributes): - return ServiceAddAttributes(builder, attributes) +def AddAttributes(builder: flatbuffers.Builder, attributes: int): + ServiceAddAttributes(builder, attributes) def ServiceStartAttributesVector(builder, numElems): return builder.StartVector(4, numElems, 4) -def StartAttributesVector(builder, numElems): +def StartAttributesVector(builder, numElems: int) -> int: return ServiceStartAttributesVector(builder, numElems) def ServiceAddDocumentation(builder, documentation): - return builder.PrependUOffsetTRelativeSlot(3, flatbuffers.number_types.UOffsetTFlags.py_type(documentation), 0) + builder.PrependUOffsetTRelativeSlot(3, flatbuffers.number_types.UOffsetTFlags.py_type(documentation), 0) -def AddDocumentation(builder, documentation): - return ServiceAddDocumentation(builder, documentation) +def AddDocumentation(builder: flatbuffers.Builder, documentation: int): + ServiceAddDocumentation(builder, documentation) def ServiceStartDocumentationVector(builder, numElems): return builder.StartVector(4, numElems, 4) -def StartDocumentationVector(builder, numElems): +def StartDocumentationVector(builder, numElems: int) -> int: return ServiceStartDocumentationVector(builder, numElems) def ServiceAddDeclarationFile(builder, declarationFile): - return builder.PrependUOffsetTRelativeSlot(4, flatbuffers.number_types.UOffsetTFlags.py_type(declarationFile), 0) + builder.PrependUOffsetTRelativeSlot(4, flatbuffers.number_types.UOffsetTFlags.py_type(declarationFile), 0) -def AddDeclarationFile(builder, declarationFile): - return ServiceAddDeclarationFile(builder, declarationFile) +def AddDeclarationFile(builder: flatbuffers.Builder, declarationFile: int): + ServiceAddDeclarationFile(builder, declarationFile) def ServiceEnd(builder): return builder.EndObject() diff --git a/python/flatbuffers/reflection/Type.py b/python/flatbuffers/reflection/Type.py index eb58dd8a01..76c08c48ac 100644 --- a/python/flatbuffers/reflection/Type.py +++ b/python/flatbuffers/reflection/Type.py @@ -73,46 +73,46 @@ def ElementSize(self): return 0 def TypeStart(builder): - return builder.StartObject(6) + builder.StartObject(6) def Start(builder): - return TypeStart(builder) + TypeStart(builder) def TypeAddBaseType(builder, baseType): - return builder.PrependInt8Slot(0, baseType, 0) + builder.PrependInt8Slot(0, baseType, 0) -def AddBaseType(builder, baseType): - return TypeAddBaseType(builder, baseType) +def AddBaseType(builder: flatbuffers.Builder, baseType: int): + TypeAddBaseType(builder, baseType) def TypeAddElement(builder, element): - return builder.PrependInt8Slot(1, element, 0) + builder.PrependInt8Slot(1, element, 0) -def AddElement(builder, element): - return TypeAddElement(builder, element) +def AddElement(builder: flatbuffers.Builder, element: int): + TypeAddElement(builder, element) def TypeAddIndex(builder, index): - return builder.PrependInt32Slot(2, index, -1) + builder.PrependInt32Slot(2, index, -1) -def AddIndex(builder, index): - return TypeAddIndex(builder, index) +def AddIndex(builder: flatbuffers.Builder, index: int): + TypeAddIndex(builder, index) def TypeAddFixedLength(builder, fixedLength): - return builder.PrependUint16Slot(3, fixedLength, 0) + builder.PrependUint16Slot(3, fixedLength, 0) -def AddFixedLength(builder, fixedLength): - return TypeAddFixedLength(builder, fixedLength) +def AddFixedLength(builder: flatbuffers.Builder, fixedLength: int): + TypeAddFixedLength(builder, fixedLength) def TypeAddBaseSize(builder, baseSize): - return builder.PrependUint32Slot(4, baseSize, 4) + builder.PrependUint32Slot(4, baseSize, 4) -def AddBaseSize(builder, baseSize): - return TypeAddBaseSize(builder, baseSize) +def AddBaseSize(builder: flatbuffers.Builder, baseSize: int): + TypeAddBaseSize(builder, baseSize) def TypeAddElementSize(builder, elementSize): - return builder.PrependUint32Slot(5, elementSize, 0) + builder.PrependUint32Slot(5, elementSize, 0) -def AddElementSize(builder, elementSize): - return TypeAddElementSize(builder, elementSize) +def AddElementSize(builder: flatbuffers.Builder, elementSize: int): + TypeAddElementSize(builder, elementSize) def TypeEnd(builder): return builder.EndObject() diff --git a/python/py.typed b/python/py.typed new file mode 100644 index 0000000000..e69de29bb2 diff --git a/scripts/generate_code.py b/scripts/generate_code.py index 49dfe34e15..6c18c7f8a6 100755 --- a/scripts/generate_code.py +++ b/scripts/generate_code.py @@ -103,7 +103,7 @@ def glob(path, pattern): KOTLIN_OPTS = ["--kotlin"] PHP_OPTS = ["--php"] DART_OPTS = ["--dart"] -PYTHON_OPTS = ["--python"] +PYTHON_OPTS = ["--python", "--python-typing"] BINARY_OPTS = ["-b", "--schema", "--bfbs-comments", "--bfbs-builtins"] PROTO_OPTS = ["--proto"] diff --git a/src/flatc.cpp b/src/flatc.cpp index 0e20a2f7da..4a3ffb70a8 100644 --- a/src/flatc.cpp +++ b/src/flatc.cpp @@ -252,6 +252,8 @@ const static FlatCOption flatc_options[] = { "Currently this is required to generate private types in Rust" }, { "", "python-no-type-prefix-suffix", "", "Skip emission of Python functions that are prefixed with typenames" }, + { "", "python-typing", "", + "Generate Python type annotations" }, { "", "file-names-only", "", "Print out generated file names without writing to the files"}, }; @@ -652,9 +654,11 @@ FlatCOptions FlatCompiler::ParseFromCommandLineArguments(int argc, opts.ts_no_import_ext = true; } else if (arg == "--no-leak-private-annotation") { opts.no_leak_private_annotations = true; - } else if (arg == "--python-no-type-prefix-suffix") { + } else if (arg == "--python-no-type-prefix-suffix") { opts.python_no_type_prefix_suffix = true; - } else if (arg == "--annotate-sparse-vectors") { + } else if (arg == "--python-typing") { + opts.python_typing = true; + } else if (arg == "--annotate-sparse-vectors") { options.annotate_include_vector_contents = false; } else if (arg == "--annotate") { if (++argi >= argc) Error("missing path following: " + arg, true); diff --git a/src/idl_gen_python.cpp b/src/idl_gen_python.cpp index 6c93b9092d..83d589cad8 100644 --- a/src/idl_gen_python.cpp +++ b/src/idl_gen_python.cpp @@ -35,6 +35,9 @@ namespace python { namespace { +typedef std::pair ImportMapEntry; +typedef std::set ImportMap; + static std::set PythonKeywords() { return { "False", "None", "True", "and", "as", "assert", "break", "class", "continue", "def", "del", "elif", @@ -129,7 +132,11 @@ class PythonGenerator : public BaseGenerator { code += Indent + "@classmethod\n"; code += Indent + "def GetRootAs"; - code += "(cls, buf, offset=0):"; + if (parser_.opts.python_typing) { + code += "(cls, buf, offset: int = 0):"; + } else { + code += "(cls, buf, offset=0):"; + } code += "\n"; code += Indent + Indent; code += "n = flatbuffers.encode.Get"; @@ -156,7 +163,11 @@ class PythonGenerator : public BaseGenerator { auto &code = *code_ptr; GenReceiver(struct_def, code_ptr); - code += "Init(self, buf, pos):\n"; + if (parser_.opts.python_typing) { + code += "Init(self, buf: bytes, pos: int):\n"; + } else { + code += "Init(self, buf, pos):\n"; + } code += Indent + Indent + "self._tab = flatbuffers.table.Table(buf, pos)\n"; code += "\n"; } @@ -167,8 +178,11 @@ class PythonGenerator : public BaseGenerator { auto &code = *code_ptr; GenReceiver(struct_def, code_ptr); - code += namer_.Method(field) + "Length(self"; - code += "):"; + code += namer_.Method(field) + "Length(self)"; + if (parser_.opts.python_typing) { + code += " -> int"; + } + code += ":"; if(!IsArray(field.value.type)){ code += OffsetPrefix(field,false); code += GenIndents(3) + "return self._tab.VectorLen(o)"; @@ -184,8 +198,11 @@ class PythonGenerator : public BaseGenerator { auto &code = *code_ptr; GenReceiver(struct_def, code_ptr); - code += namer_.Method(field) + "IsNone(self"; - code += "):"; + code += namer_.Method(field) + "IsNone(self)"; + if (parser_.opts.python_typing) { + code += " -> bool"; + } + code += ":"; if(!IsArray(field.value.type)){ code += GenIndents(2) + "o = flatbuffers.number_types.UOffsetTFlags.py_type" + @@ -253,17 +270,32 @@ class PythonGenerator : public BaseGenerator { // Get the value of a fixed size array. void GetArrayOfStruct(const StructDef &struct_def, const FieldDef &field, - std::string *code_ptr) const { + std::string *code_ptr, ImportMap &imports) const { auto &code = *code_ptr; const auto vec_type = field.value.type.VectorType(); GenReceiver(struct_def, code_ptr); code += namer_.Method(field); - code += "(self, i: int):"; - if (parser_.opts.include_dependence_headers) { + + const ImportMapEntry import_entry = { + "." + GenPackageReference(field.value.type), TypeName(field) + }; + + if (parser_.opts.python_typing) { + const std::string return_type = ReturnType(struct_def, field); + code += "(self, i: int)"; + code += " -> " + return_type + ":"; + + imports.insert(import_entry); + } else { + code += "(self, i):"; + } + + if (parser_.opts.include_dependence_headers && !parser_.opts.python_typing) { code += GenIndents(2); - code += "from " + GenPackageReference(field.value.type) + " import " + - TypeName(field); + code += "from " + import_entry.first + " import " + import_entry.second + + "\n"; } + code += GenIndents(2) + "obj = " + TypeName(field) + "()"; code += GenIndents(2) + "obj.Init(self._tab.Bytes, self._tab.Pos + "; code += NumToString(field.value.offset) + " + i * "; @@ -299,11 +331,22 @@ class PythonGenerator : public BaseGenerator { // Get a struct by initializing an existing struct. // Specific to Table. void GetStructFieldOfTable(const StructDef &struct_def, const FieldDef &field, - std::string *code_ptr) const { + std::string *code_ptr, ImportMap &imports) const { auto &code = *code_ptr; GenReceiver(struct_def, code_ptr); - code += namer_.Method(field); - code += "(self):"; + code += namer_.Method(field) + "(self)"; + + const ImportMapEntry import_entry = { + "." + GenPackageReference(field.value.type), TypeName(field) + }; + + if (parser_.opts.python_typing) { + const std::string return_type = ReturnType(struct_def, field); + code += " -> Optional[" + return_type + "]"; + imports.insert(ImportMapEntry{ "typing", "Optional" }); + imports.insert(import_entry); + } + code += ":"; code += OffsetPrefix(field); if (field.value.type.struct_def->fixed) { code += Indent + Indent + Indent + "x = o + self._tab.Pos\n"; @@ -311,10 +354,11 @@ class PythonGenerator : public BaseGenerator { code += Indent + Indent + Indent; code += "x = self._tab.Indirect(o + self._tab.Pos)\n"; } - if (parser_.opts.include_dependence_headers) { + + if (parser_.opts.include_dependence_headers && !parser_.opts.python_typing) { code += Indent + Indent + Indent; - code += "from " + GenPackageReference(field.value.type) + " import " + - TypeName(field) + "\n"; + code += "from " + import_entry.first + " import " + import_entry.second + + "\n"; } code += Indent + Indent + Indent + "obj = " + TypeName(field) + "()\n"; code += Indent + Indent + Indent + "obj.Init(self._tab.Bytes, x)\n"; @@ -324,11 +368,18 @@ class PythonGenerator : public BaseGenerator { // Get the value of a string. void GetStringField(const StructDef &struct_def, const FieldDef &field, - std::string *code_ptr) const { + std::string *code_ptr, ImportMap &imports) const { auto &code = *code_ptr; GenReceiver(struct_def, code_ptr); code += namer_.Method(field); - code += "(self):"; + + if (parser_.opts.python_typing) { + code += "(self) -> Optional[str]:"; + imports.insert(ImportMapEntry{ "typing", "Optional" }); + } else { + code += "(self):"; + } + code += OffsetPrefix(field); code += Indent + Indent + Indent + "return " + GenGetter(field.value.type); code += "o + self._tab.Pos)\n"; @@ -337,21 +388,34 @@ class PythonGenerator : public BaseGenerator { // Get the value of a union from an object. void GetUnionField(const StructDef &struct_def, const FieldDef &field, - std::string *code_ptr) const { + std::string *code_ptr, ImportMap &imports) const { auto &code = *code_ptr; GenReceiver(struct_def, code_ptr); - code += namer_.Method(field) + "(self):"; - code += OffsetPrefix(field); + std::string return_ty = "flatbuffers.table.Table"; - // TODO(rw): this works and is not the good way to it: bool is_native_table = TypeName(field) == "*flatbuffers.Table"; + ImportMapEntry import_entry; if (is_native_table) { - code += - Indent + Indent + Indent + "from flatbuffers.table import Table\n"; - } else if (parser_.opts.include_dependence_headers) { + import_entry = ImportMapEntry{ "flatbuffers.table", "Table" }; + } else { + return_ty = TypeName(field); + import_entry = ImportMapEntry{ GenPackageReference(field.value.type), + TypeName(field) }; + } + + code += namer_.Method(field) + "(self)"; + if (parser_.opts.python_typing) { + code += " -> Optional[" + return_ty + "]"; + imports.insert(ImportMapEntry{ "typing", "Optional" }); + imports.insert(import_entry); + } + code += ":"; + code += OffsetPrefix(field); + + if (!parser_.opts.python_typing) { code += Indent + Indent + Indent; - code += "from " + GenPackageReference(field.value.type) + " import " + - TypeName(field) + "\n"; + code += "from " + import_entry.first + " import " + import_entry.second + + "\n"; } code += Indent + Indent + Indent + "obj = Table(bytearray(), 0)\n"; code += Indent + Indent + Indent + GenGetter(field.value.type); @@ -373,14 +437,26 @@ class PythonGenerator : public BaseGenerator { // Get the value of a vector's struct member. void GetMemberOfVectorOfStruct(const StructDef &struct_def, - const FieldDef &field, - std::string *code_ptr) const { + const FieldDef &field, std::string *code_ptr, + ImportMap &imports) const { auto &code = *code_ptr; auto vectortype = field.value.type.VectorType(); GenReceiver(struct_def, code_ptr); code += namer_.Method(field); - code += "(self, j):" + OffsetPrefix(field); + const ImportMapEntry import_entry = { + "." + GenPackageReference(field.value.type), TypeName(field) + }; + + if (parser_.opts.python_typing) { + const std::string return_type = ReturnType(struct_def, field); + code += "(self, j: int) -> Optional[" + return_type + "]"; + imports.insert(ImportMapEntry{ "typing", "Optional" }); + imports.insert(import_entry); + } else { + code += "(self, j)"; + } + code += ":" + OffsetPrefix(field); code += Indent + Indent + Indent + "x = self._tab.Vector(o)\n"; code += Indent + Indent + Indent; code += "x += flatbuffers.number_types.UOffsetTFlags.py_type(j) * "; @@ -388,10 +464,10 @@ class PythonGenerator : public BaseGenerator { if (!(vectortype.struct_def->fixed)) { code += Indent + Indent + Indent + "x = self._tab.Indirect(x)\n"; } - if (parser_.opts.include_dependence_headers) { + if (parser_.opts.include_dependence_headers && !parser_.opts.python_typing) { code += Indent + Indent + Indent; - code += "from " + GenPackageReference(field.value.type) + " import " + - TypeName(field) + "\n"; + code += "from " + import_entry.first + " import " + import_entry.second + + "\n"; } code += Indent + Indent + Indent + "obj = " + TypeName(field) + "()\n"; code += Indent + Indent + Indent + "obj.Init(self._tab.Bytes, x)\n"; @@ -409,7 +485,12 @@ class PythonGenerator : public BaseGenerator { GenReceiver(struct_def, code_ptr); code += namer_.Method(field); - code += "(self, j):"; + if (parser_.opts.python_typing) { + code += "(self, j: int)"; + } else { + code += "(self, j)"; + } + code += ":"; code += OffsetPrefix(field); code += Indent + Indent + Indent + "a = self._tab.Vector(o)\n"; code += Indent + Indent + Indent; @@ -476,8 +557,8 @@ class PythonGenerator : public BaseGenerator { // Returns a nested flatbuffer as itself. void GetVectorAsNestedFlatbuffer(const StructDef &struct_def, - const FieldDef &field, - std::string *code_ptr) const { + const FieldDef &field, std::string *code_ptr, + ImportMap &imports) const { auto nested = field.attributes.Lookup("nested_flatbuffer"); if (!nested) { return; } // There is no nested flatbuffer. @@ -487,14 +568,26 @@ class PythonGenerator : public BaseGenerator { qualified_name = nested->constant; } + const ImportMapEntry import_entry = { "." + qualified_name, + unqualified_name }; + auto &code = *code_ptr; GenReceiver(struct_def, code_ptr); - code += namer_.Method(field) + "NestedRoot(self):"; + code += namer_.Method(field) + "NestedRoot(self)"; + if (parser_.opts.python_typing) { + code += " -> Union[" + unqualified_name + ", int]"; + imports.insert(ImportMapEntry{ "typing", "Union" }); + imports.insert(import_entry); + } + code += ":"; code += OffsetPrefix(field); - code += Indent + Indent + Indent; - code += "from " + qualified_name + " import " + unqualified_name + "\n"; + if (!parser_.opts.python_typing) { + code += Indent + Indent + Indent; + code += "from " + import_entry.first + " import " + import_entry.second + + "\n"; + } code += Indent + Indent + Indent + "return " + unqualified_name; code += ".GetRootAs"; code += "(self._tab.Bytes, self._tab.Vector(o))\n"; @@ -613,15 +706,25 @@ class PythonGenerator : public BaseGenerator { const auto name = parser_.opts.python_no_type_prefix_suffix ? "Start" : struct_type + "Start"; - code += "def " + name + "(builder):\n"; - code += Indent + "return builder.StartObject("; + code += "def " + name; + if (parser_.opts.python_typing) { + code += "(builder: flatbuffers.Builder):\n"; + } else { + code += "(builder):\n"; + } + + code += Indent + "builder.StartObject("; code += NumToString(struct_def.fields.vec.size()); code += ")\n\n"; if (!parser_.opts.one_file && !parser_.opts.python_no_type_prefix_suffix) { // Generate method without struct name. - code += "def Start(builder):\n"; - code += Indent + "return " + struct_type + "Start(builder)\n\n"; + if (parser_.opts.python_typing) { + code += "def Start(builder: flatbuffers.Builder):\n"; + } else { + code += "def Start(builder):\n"; + } + code += Indent + struct_type + "Start(builder)\n\n"; } } @@ -631,15 +734,19 @@ class PythonGenerator : public BaseGenerator { auto &code = *code_ptr; const std::string field_var = namer_.Variable(field); const std::string field_method = namer_.Method(field); + const std::string field_ty = GenFieldTy(field); const auto name = parser_.opts.python_no_type_prefix_suffix ? "Add" + field_method : namer_.Type(struct_def) + "Add" + field_method; // Generate method with struct name. code += "def " + name; - code += "(builder, "; - code += field_var; + if (parser_.opts.python_typing) { + code += "(builder: flatbuffers.Builder, " + field_var + ": " + field_ty; + } else { + code += "(builder, " + field_var; + } code += "):\n"; - code += Indent + "return builder.Prepend"; + code += Indent + "builder.Prepend"; code += GenMethod(field) + "Slot("; code += NumToString(offset) + ", "; if (!IsScalar(field.value.type.base_type) && (!struct_def.fixed)) { @@ -660,9 +767,9 @@ class PythonGenerator : public BaseGenerator { if (!parser_.opts.one_file && !parser_.opts.python_no_type_prefix_suffix) { // Generate method without struct name. - code += "def Add" + field_method + "(builder, " + field_var + "):\n"; + code += "def Add" + field_method + "(builder: flatbuffers.Builder, " + field_var + ": " + field_ty + "):\n"; code += - Indent + "return " + namer_.Type(struct_def) + "Add" + field_method; + Indent + namer_.Type(struct_def) + "Add" + field_method; code += "(builder, "; code += field_var; code += ")\n\n"; @@ -679,7 +786,12 @@ class PythonGenerator : public BaseGenerator { // Generate method with struct name. const auto name = parser_.opts.python_no_type_prefix_suffix ? "Start" + field_method : struct_type + "Start" + field_method; code += "def " + name; - code += "Vector(builder, numElems):\n"; + if (parser_.opts.python_typing) { + code += "Vector(builder, numElems: int) -> int:\n"; + } else { + code += "Vector(builder, numElems):\n"; + } + code += Indent + "return builder.StartVector("; auto vector_type = field.value.type.VectorType(); auto alignment = InlineAlignment(vector_type); @@ -690,7 +802,7 @@ class PythonGenerator : public BaseGenerator { if (!parser_.opts.one_file && !parser_.opts.python_no_type_prefix_suffix) { // Generate method without struct name. - code += "def Start" + field_method + "Vector(builder, numElems):\n"; + code += "def Start" + field_method + "Vector(builder, numElems: int) -> int:\n"; code += Indent + "return " + struct_type + "Start"; code += field_method + "Vector(builder, numElems)\n\n"; } @@ -739,12 +851,20 @@ class PythonGenerator : public BaseGenerator { const auto name = parser_.opts.python_no_type_prefix_suffix ? "End" : namer_.Type(struct_def) + "End"; // Generate method with struct name. - code += "def " + name + "(builder):\n"; + if (parser_.opts.python_typing) { + code += "def " + name + "(builder: flatbuffers.Builder) -> int:\n"; + } else { + code += "def " + name + "(builder):\n"; + } code += Indent + "return builder.EndObject()\n\n"; if (!parser_.opts.one_file && !parser_.opts.python_no_type_prefix_suffix) { // Generate method without struct name. - code += "def End(builder):\n"; + if (parser_.opts.python_typing) { + code += "def End(builder: flatbuffers.Builder) -> int:\n"; + } else { + code += "def End(builder):\n"; + } code += Indent + "return " + namer_.Type(struct_def) + "End(builder)"; code += "\n"; } @@ -759,7 +879,7 @@ class PythonGenerator : public BaseGenerator { // Generate a struct field, conditioned on its child type(s). void GenStructAccessor(const StructDef &struct_def, const FieldDef &field, - std::string *code_ptr) const { + std::string *code_ptr, ImportMap &imports) const { GenComment(field.doc_comment, code_ptr, &def_comment, Indent.c_str()); if (IsScalar(field.value.type.base_type)) { if (struct_def.fixed) { @@ -773,35 +893,35 @@ class PythonGenerator : public BaseGenerator { if (struct_def.fixed) { GetStructFieldOfStruct(struct_def, field, code_ptr); } else { - GetStructFieldOfTable(struct_def, field, code_ptr); + GetStructFieldOfTable(struct_def, field, code_ptr, imports); } break; case BASE_TYPE_STRING: - GetStringField(struct_def, field, code_ptr); + GetStringField(struct_def, field, code_ptr, imports); break; case BASE_TYPE_VECTOR: { auto vectortype = field.value.type.VectorType(); if (vectortype.base_type == BASE_TYPE_STRUCT) { - GetMemberOfVectorOfStruct(struct_def, field, code_ptr); + GetMemberOfVectorOfStruct(struct_def, field, code_ptr, imports); } else { GetMemberOfVectorOfNonStruct(struct_def, field, code_ptr); GetVectorOfNonStructAsNumpy(struct_def, field, code_ptr); - GetVectorAsNestedFlatbuffer(struct_def, field, code_ptr); + GetVectorAsNestedFlatbuffer(struct_def, field, code_ptr, imports); } break; } case BASE_TYPE_ARRAY: { auto vectortype = field.value.type.VectorType(); if (vectortype.base_type == BASE_TYPE_STRUCT) { - GetArrayOfStruct(struct_def, field, code_ptr); + GetArrayOfStruct(struct_def, field, code_ptr, imports); } else { GetArrayOfNonStruct(struct_def, field, code_ptr); GetVectorOfNonStructAsNumpy(struct_def, field, code_ptr); - GetVectorAsNestedFlatbuffer(struct_def, field, code_ptr); + GetVectorAsNestedFlatbuffer(struct_def, field, code_ptr, imports); } break; } - case BASE_TYPE_UNION: GetUnionField(struct_def, field, code_ptr); break; + case BASE_TYPE_UNION: GetUnionField(struct_def, field, code_ptr, imports); break; default: FLATBUFFERS_ASSERT(0); } } @@ -816,7 +936,11 @@ class PythonGenerator : public BaseGenerator { std::string *code_ptr) const { auto &code = *code_ptr; code += Indent + "@classmethod\n"; - code += Indent + "def SizeOf(cls):\n"; + if (parser_.opts.python_typing) { + code += Indent + "def SizeOf(cls) -> int:\n"; + } else { + code += Indent + "def SizeOf(cls):\n"; + } code += Indent + Indent + "return " + NumToString(struct_def.bytesize) + "\n"; code += "\n"; @@ -868,7 +992,8 @@ class PythonGenerator : public BaseGenerator { } // Generates struct or table methods. - void GenStruct(const StructDef &struct_def, std::string *code_ptr) const { + void GenStruct(const StructDef &struct_def, std::string *code_ptr, + ImportMap &imports) const { if (struct_def.generated) return; GenComment(struct_def.doc_comment, code_ptr, &def_comment); @@ -893,7 +1018,7 @@ class PythonGenerator : public BaseGenerator { auto &field = **it; if (field.deprecated) continue; - GenStructAccessor(struct_def, field, code_ptr); + GenStructAccessor(struct_def, field, code_ptr, imports); } if (struct_def.fixed) { @@ -1763,6 +1888,31 @@ class PythonGenerator : public BaseGenerator { } } + std::string GenFieldTy(const FieldDef &field) const { + if (IsScalar(field.value.type.base_type) || IsArray(field.value.type)) { + const std::string ty = GenTypeBasic(field.value.type); + if (ty.find("int") != std::string::npos) { + return "int"; + } + + if (ty.find("float") != std::string::npos) { + return "float"; + } + + if (ty == "bool") { + return "bool"; + } + + return "Any"; + } else { + if (IsStruct(field.value.type)) { + return "Any"; + } else { + return "int"; + } + } + } + // Returns the method name for use with add/put calls. std::string GenMethod(const FieldDef &field) const { return (IsScalar(field.value.type.base_type) || IsArray(field.value.type)) @@ -1805,6 +1955,31 @@ class PythonGenerator : public BaseGenerator { return GenTypeGet(field.value.type); } + std::string ReturnType(const StructDef &struct_def, + const FieldDef &field) const { + // If we have a class member that returns an instance of the same class, + // for example: + // class Field(object): + // def Children(self, j: int) -> Optional[Field]: + // pass + // + // we need to quote the return type: + // class Field(object): + // def Children(self, j: int) -> Optional['Field']: + // pass + // + // because Python is unable to resolve the name during parse and will return + // an error. + // (see PEP 484 under forward references: + // https://peps.python.org/pep-0484/#forward-references) + const std::string self_type = struct_def.name; + std::string field_type = TypeName(field); + + if (self_type == field_type) { field_type = "'" + field_type + "'"; } + + return field_type; + } + // Create a struct with a builder and the struct's arguments. void GenStructBuilder(const StructDef &struct_def, std::string *code_ptr) const { @@ -1822,13 +1997,16 @@ class PythonGenerator : public BaseGenerator { bool generate() { std::string one_file_code; + ImportMap one_file_imports; if (!generateEnums(&one_file_code)) return false; - if (!generateStructs(&one_file_code)) return false; + if (!generateStructs(&one_file_code, one_file_imports)) return false; if (parser_.opts.one_file) { + const std::string mod = file_name_ + "_generated"; + // Legacy file format uses keep casing. - return SaveType(file_name_ + "_generated.py", *parser_.current_namespace_, - one_file_code, true); + return SaveType(mod + ".py", *parser_.current_namespace_, one_file_code, + one_file_imports, mod, true); } return true; @@ -1848,29 +2026,45 @@ class PythonGenerator : public BaseGenerator { if (parser_.opts.one_file && !enumcode.empty()) { *one_file_code += enumcode + "\n\n"; } else { + ImportMap imports; + const std::string mod = + namer_.File(enum_def, SkipFile::SuffixAndExtension); + if (!SaveType(namer_.File(enum_def, SkipFile::Suffix), - *enum_def.defined_namespace, enumcode, false)) + *enum_def.defined_namespace, enumcode, imports, mod, + false)) return false; } } return true; } - bool generateStructs(std::string *one_file_code) const { + bool generateStructs(std::string *one_file_code, + ImportMap &one_file_imports) const { for (auto it = parser_.structs_.vec.begin(); it != parser_.structs_.vec.end(); ++it) { auto &struct_def = **it; std::string declcode; - GenStruct(struct_def, &declcode); + ImportMap imports; + GenStruct(struct_def, &declcode, imports); if (parser_.opts.generate_object_based_api) { GenStructForObjectAPI(struct_def, &declcode); } - if (parser_.opts.one_file && !declcode.empty()) { - *one_file_code += declcode + "\n\n"; + if (parser_.opts.one_file) { + if (!declcode.empty()) { + *one_file_code += declcode + "\n\n"; + } + + for (auto import_str: imports) { + one_file_imports.insert(import_str); + } } else { + const std::string mod = + namer_.File(struct_def, SkipFile::SuffixAndExtension); if (!SaveType(namer_.File(struct_def, SkipFile::Suffix), - *struct_def.defined_namespace, declcode, true)) + *struct_def.defined_namespace, declcode, imports, mod, + true)) return false; } } @@ -1879,24 +2073,44 @@ class PythonGenerator : public BaseGenerator { // Begin by declaring namespace and imports. void BeginFile(const std::string &name_space_name, const bool needs_imports, - std::string *code_ptr) const { + std::string *code_ptr, const std::string &mod, + const ImportMap &imports) const { auto &code = *code_ptr; code = code + "# " + FlatBuffersGeneratedWarning() + "\n\n"; code += "# namespace: " + name_space_name + "\n\n"; + if (needs_imports) { + const std::string local_import = "." + mod; + code += "import flatbuffers\n"; code += "from flatbuffers.compat import import_numpy\n"; + if (parser_.opts.python_typing) { + code += "from typing import Any\n"; + + for (auto import_entry : imports) { + // If we have a file called, say, "MyType.py" and in it we have a + // class "MyType", we can generate imports -- usually when we + // have a type that contains arrays of itself -- of the type + // "from .MyType import MyType", which Python can't resolve. So + // if we are trying to import ourself, we skip. + if (import_entry.first != local_import) { + code += "from " + import_entry.first + " import " + + import_entry.second + "\n"; + } + } + } code += "np = import_numpy()\n\n"; } } // Save out the generated code for a Python Table type. bool SaveType(const std::string &defname, const Namespace &ns, - const std::string &classcode, bool needs_imports) const { + const std::string &classcode, const ImportMap &imports, + const std::string &mod, bool needs_imports) const { if (!classcode.length()) return true; std::string code = ""; - BeginFile(LastNamespacePart(ns), needs_imports, &code); + BeginFile(LastNamespacePart(ns), needs_imports, &code, mod, imports); code += classcode; const std::string directories = diff --git a/tests/MyGame/Example/ArrayStruct.py b/tests/MyGame/Example/ArrayStruct.py index d80f84253f..be85ec8967 100644 --- a/tests/MyGame/Example/ArrayStruct.py +++ b/tests/MyGame/Example/ArrayStruct.py @@ -4,17 +4,19 @@ import flatbuffers from flatbuffers.compat import import_numpy +from typing import Any +from .MyGame.Example.NestedStruct import NestedStruct np = import_numpy() class ArrayStruct(object): __slots__ = ['_tab'] @classmethod - def SizeOf(cls): + def SizeOf(cls) -> int: return 160 # ArrayStruct - def Init(self, buf, pos): + def Init(self, buf: bytes, pos: int): self._tab = flatbuffers.table.Table(buf, pos) # ArrayStruct @@ -33,28 +35,27 @@ def BAsNumpy(self): return self._tab.GetArrayAsNumpy(flatbuffers.number_types.Int32Flags, self._tab.Pos + 4, self.BLength()) # ArrayStruct - def BLength(self): + def BLength(self) -> int: return 15 # ArrayStruct - def BIsNone(self): + def BIsNone(self) -> bool: return False # ArrayStruct def C(self): return self._tab.Get(flatbuffers.number_types.Int8Flags, self._tab.Pos + flatbuffers.number_types.UOffsetTFlags.py_type(64)) # ArrayStruct - def D(self, i: int): - from MyGame.Example.NestedStruct import NestedStruct + def D(self, i: int) -> NestedStruct: obj = NestedStruct() obj.Init(self._tab.Bytes, self._tab.Pos + 72 + i * 32) return obj # ArrayStruct - def DLength(self): + def DLength(self) -> int: return 2 # ArrayStruct - def DIsNone(self): + def DIsNone(self) -> bool: return False # ArrayStruct @@ -73,11 +74,11 @@ def FAsNumpy(self): return self._tab.GetArrayAsNumpy(flatbuffers.number_types.Int64Flags, self._tab.Pos + 144, self.FLength()) # ArrayStruct - def FLength(self): + def FLength(self) -> int: return 2 # ArrayStruct - def FIsNone(self): + def FIsNone(self) -> bool: return False diff --git a/tests/MyGame/Example/ArrayTable.py b/tests/MyGame/Example/ArrayTable.py index 7f4051f5ef..90fbb4a465 100644 --- a/tests/MyGame/Example/ArrayTable.py +++ b/tests/MyGame/Example/ArrayTable.py @@ -4,13 +4,16 @@ import flatbuffers from flatbuffers.compat import import_numpy +from typing import Any +from .MyGame.Example.ArrayStruct import ArrayStruct +from typing import Optional np = import_numpy() class ArrayTable(object): __slots__ = ['_tab'] @classmethod - def GetRootAs(cls, buf, offset=0): + def GetRootAs(cls, buf, offset: int = 0): n = flatbuffers.encode.Get(flatbuffers.packer.uoffset, buf, offset) x = ArrayTable() x.Init(buf, n + offset) @@ -25,36 +28,35 @@ def ArrayTableBufferHasIdentifier(cls, buf, offset, size_prefixed=False): return flatbuffers.util.BufferHasIdentifier(buf, offset, b"\x41\x52\x52\x54", size_prefixed=size_prefixed) # ArrayTable - def Init(self, buf, pos): + def Init(self, buf: bytes, pos: int): self._tab = flatbuffers.table.Table(buf, pos) # ArrayTable - def A(self): + def A(self) -> Optional[ArrayStruct]: o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(4)) if o != 0: x = o + self._tab.Pos - from MyGame.Example.ArrayStruct import ArrayStruct obj = ArrayStruct() obj.Init(self._tab.Bytes, x) return obj return None -def ArrayTableStart(builder): - return builder.StartObject(1) +def ArrayTableStart(builder: flatbuffers.Builder): + builder.StartObject(1) -def Start(builder): - return ArrayTableStart(builder) +def Start(builder: flatbuffers.Builder): + ArrayTableStart(builder) -def ArrayTableAddA(builder, a): - return builder.PrependStructSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(a), 0) +def ArrayTableAddA(builder: flatbuffers.Builder, a: Any): + builder.PrependStructSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(a), 0) -def AddA(builder, a): - return ArrayTableAddA(builder, a) +def AddA(builder: flatbuffers.Builder, a: Any): + ArrayTableAddA(builder, a) -def ArrayTableEnd(builder): +def ArrayTableEnd(builder: flatbuffers.Builder) -> int: return builder.EndObject() -def End(builder): +def End(builder: flatbuffers.Builder) -> int: return ArrayTableEnd(builder) import MyGame.Example.ArrayStruct diff --git a/tests/MyGame/Example/Monster.py b/tests/MyGame/Example/Monster.py index bde02b4ab5..f216f84f7b 100644 --- a/tests/MyGame/Example/Monster.py +++ b/tests/MyGame/Example/Monster.py @@ -34,7 +34,7 @@ def Pos(self): o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(4)) if o != 0: x = o + self._tab.Pos - from MyGame.Example.Vec3 import Vec3 + from .MyGame.Example.Vec3 import Vec3 obj = Vec3() obj.Init(self._tab.Bytes, x) return obj @@ -118,7 +118,7 @@ def Test4(self, j): if o != 0: x = self._tab.Vector(o) x += flatbuffers.number_types.UOffsetTFlags.py_type(j) * 4 - from MyGame.Example.Test import Test + from .MyGame.Example.Test import Test obj = Test() obj.Init(self._tab.Bytes, x) return obj @@ -165,7 +165,7 @@ def Testarrayoftables(self, j): x = self._tab.Vector(o) x += flatbuffers.number_types.UOffsetTFlags.py_type(j) * 4 x = self._tab.Indirect(x) - from MyGame.Example.Monster import Monster + from .MyGame.Example.Monster import Monster obj = Monster() obj.Init(self._tab.Bytes, x) return obj @@ -188,7 +188,7 @@ def Enemy(self): o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(28)) if o != 0: x = self._tab.Indirect(o + self._tab.Pos) - from MyGame.Example.Monster import Monster + from .MyGame.Example.Monster import Monster obj = Monster() obj.Init(self._tab.Bytes, x) return obj @@ -213,7 +213,7 @@ def TestnestedflatbufferAsNumpy(self): def TestnestedflatbufferNestedRoot(self): o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(30)) if o != 0: - from MyGame.Example.Monster import Monster + from .MyGame.Example.Monster import Monster return Monster.GetRootAs(self._tab.Bytes, self._tab.Vector(o)) return 0 @@ -234,7 +234,7 @@ def Testempty(self): o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(32)) if o != 0: x = self._tab.Indirect(o + self._tab.Pos) - from MyGame.Example.Stat import Stat + from .MyGame.Example.Stat import Stat obj = Stat() obj.Init(self._tab.Bytes, x) return obj @@ -377,7 +377,7 @@ def Testarrayofsortedstruct(self, j): if o != 0: x = self._tab.Vector(o) x += flatbuffers.number_types.UOffsetTFlags.py_type(j) * 8 - from MyGame.Example.Ability import Ability + from .MyGame.Example.Ability import Ability obj = Ability() obj.Init(self._tab.Bytes, x) return obj @@ -428,7 +428,7 @@ def Test5(self, j): if o != 0: x = self._tab.Vector(o) x += flatbuffers.number_types.UOffsetTFlags.py_type(j) * 4 - from MyGame.Example.Test import Test + from .MyGame.Example.Test import Test obj = Test() obj.Init(self._tab.Bytes, x) return obj @@ -505,7 +505,7 @@ def ParentNamespaceTest(self): o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(72)) if o != 0: x = self._tab.Indirect(o + self._tab.Pos) - from MyGame.InParentNamespace import InParentNamespace + from .MyGame.InParentNamespace import InParentNamespace obj = InParentNamespace() obj.Init(self._tab.Bytes, x) return obj @@ -518,7 +518,7 @@ def VectorOfReferrables(self, j): x = self._tab.Vector(o) x += flatbuffers.number_types.UOffsetTFlags.py_type(j) * 4 x = self._tab.Indirect(x) - from MyGame.Example.Referrable import Referrable + from .MyGame.Example.Referrable import Referrable obj = Referrable() obj.Init(self._tab.Bytes, x) return obj @@ -577,7 +577,7 @@ def VectorOfStrongReferrables(self, j): x = self._tab.Vector(o) x += flatbuffers.number_types.UOffsetTFlags.py_type(j) * 4 x = self._tab.Indirect(x) - from MyGame.Example.Referrable import Referrable + from .MyGame.Example.Referrable import Referrable obj = Referrable() obj.Init(self._tab.Bytes, x) return obj @@ -750,7 +750,7 @@ def TestrequirednestedflatbufferAsNumpy(self): def TestrequirednestedflatbufferNestedRoot(self): o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(102)) if o != 0: - from MyGame.Example.Monster import Monster + from .MyGame.Example.Monster import Monster return Monster.GetRootAs(self._tab.Bytes, self._tab.Vector(o)) return 0 @@ -773,7 +773,7 @@ def ScalarKeySortedTables(self, j): x = self._tab.Vector(o) x += flatbuffers.number_types.UOffsetTFlags.py_type(j) * 4 x = self._tab.Indirect(x) - from MyGame.Example.Stat import Stat + from .MyGame.Example.Stat import Stat obj = Stat() obj.Init(self._tab.Bytes, x) return obj @@ -796,7 +796,7 @@ def NativeInline(self): o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(106)) if o != 0: x = o + self._tab.Pos - from MyGame.Example.Test import Test + from .MyGame.Example.Test import Test obj = Test() obj.Init(self._tab.Bytes, x) return obj @@ -873,117 +873,117 @@ def DoubleInfDefault(self): return float('inf') def MonsterStart(builder): - return builder.StartObject(62) + builder.StartObject(62) def Start(builder): - return MonsterStart(builder) + MonsterStart(builder) def MonsterAddPos(builder, pos): - return builder.PrependStructSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(pos), 0) + builder.PrependStructSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(pos), 0) -def AddPos(builder, pos): - return MonsterAddPos(builder, pos) +def AddPos(builder: flatbuffers.Builder, pos: Any): + MonsterAddPos(builder, pos) def MonsterAddMana(builder, mana): - return builder.PrependInt16Slot(1, mana, 150) + builder.PrependInt16Slot(1, mana, 150) -def AddMana(builder, mana): - return MonsterAddMana(builder, mana) +def AddMana(builder: flatbuffers.Builder, mana: int): + MonsterAddMana(builder, mana) def MonsterAddHp(builder, hp): - return builder.PrependInt16Slot(2, hp, 100) + builder.PrependInt16Slot(2, hp, 100) -def AddHp(builder, hp): - return MonsterAddHp(builder, hp) +def AddHp(builder: flatbuffers.Builder, hp: int): + MonsterAddHp(builder, hp) def MonsterAddName(builder, name): - return builder.PrependUOffsetTRelativeSlot(3, flatbuffers.number_types.UOffsetTFlags.py_type(name), 0) + builder.PrependUOffsetTRelativeSlot(3, flatbuffers.number_types.UOffsetTFlags.py_type(name), 0) -def AddName(builder, name): - return MonsterAddName(builder, name) +def AddName(builder: flatbuffers.Builder, name: int): + MonsterAddName(builder, name) def MonsterAddInventory(builder, inventory): - return builder.PrependUOffsetTRelativeSlot(5, flatbuffers.number_types.UOffsetTFlags.py_type(inventory), 0) + builder.PrependUOffsetTRelativeSlot(5, flatbuffers.number_types.UOffsetTFlags.py_type(inventory), 0) -def AddInventory(builder, inventory): - return MonsterAddInventory(builder, inventory) +def AddInventory(builder: flatbuffers.Builder, inventory: int): + MonsterAddInventory(builder, inventory) def MonsterStartInventoryVector(builder, numElems): return builder.StartVector(1, numElems, 1) -def StartInventoryVector(builder, numElems): +def StartInventoryVector(builder, numElems: int) -> int: return MonsterStartInventoryVector(builder, numElems) def MonsterAddColor(builder, color): - return builder.PrependUint8Slot(6, color, 8) + builder.PrependUint8Slot(6, color, 8) -def AddColor(builder, color): - return MonsterAddColor(builder, color) +def AddColor(builder: flatbuffers.Builder, color: int): + MonsterAddColor(builder, color) def MonsterAddTestType(builder, testType): - return builder.PrependUint8Slot(7, testType, 0) + builder.PrependUint8Slot(7, testType, 0) -def AddTestType(builder, testType): - return MonsterAddTestType(builder, testType) +def AddTestType(builder: flatbuffers.Builder, testType: int): + MonsterAddTestType(builder, testType) def MonsterAddTest(builder, test): - return builder.PrependUOffsetTRelativeSlot(8, flatbuffers.number_types.UOffsetTFlags.py_type(test), 0) + builder.PrependUOffsetTRelativeSlot(8, flatbuffers.number_types.UOffsetTFlags.py_type(test), 0) -def AddTest(builder, test): - return MonsterAddTest(builder, test) +def AddTest(builder: flatbuffers.Builder, test: int): + MonsterAddTest(builder, test) def MonsterAddTest4(builder, test4): - return builder.PrependUOffsetTRelativeSlot(9, flatbuffers.number_types.UOffsetTFlags.py_type(test4), 0) + builder.PrependUOffsetTRelativeSlot(9, flatbuffers.number_types.UOffsetTFlags.py_type(test4), 0) -def AddTest4(builder, test4): - return MonsterAddTest4(builder, test4) +def AddTest4(builder: flatbuffers.Builder, test4: int): + MonsterAddTest4(builder, test4) def MonsterStartTest4Vector(builder, numElems): return builder.StartVector(4, numElems, 2) -def StartTest4Vector(builder, numElems): +def StartTest4Vector(builder, numElems: int) -> int: return MonsterStartTest4Vector(builder, numElems) def MonsterAddTestarrayofstring(builder, testarrayofstring): - return builder.PrependUOffsetTRelativeSlot(10, flatbuffers.number_types.UOffsetTFlags.py_type(testarrayofstring), 0) + builder.PrependUOffsetTRelativeSlot(10, flatbuffers.number_types.UOffsetTFlags.py_type(testarrayofstring), 0) -def AddTestarrayofstring(builder, testarrayofstring): - return MonsterAddTestarrayofstring(builder, testarrayofstring) +def AddTestarrayofstring(builder: flatbuffers.Builder, testarrayofstring: int): + MonsterAddTestarrayofstring(builder, testarrayofstring) def MonsterStartTestarrayofstringVector(builder, numElems): return builder.StartVector(4, numElems, 4) -def StartTestarrayofstringVector(builder, numElems): +def StartTestarrayofstringVector(builder, numElems: int) -> int: return MonsterStartTestarrayofstringVector(builder, numElems) def MonsterAddTestarrayoftables(builder, testarrayoftables): - return builder.PrependUOffsetTRelativeSlot(11, flatbuffers.number_types.UOffsetTFlags.py_type(testarrayoftables), 0) + builder.PrependUOffsetTRelativeSlot(11, flatbuffers.number_types.UOffsetTFlags.py_type(testarrayoftables), 0) -def AddTestarrayoftables(builder, testarrayoftables): - return MonsterAddTestarrayoftables(builder, testarrayoftables) +def AddTestarrayoftables(builder: flatbuffers.Builder, testarrayoftables: int): + MonsterAddTestarrayoftables(builder, testarrayoftables) def MonsterStartTestarrayoftablesVector(builder, numElems): return builder.StartVector(4, numElems, 4) -def StartTestarrayoftablesVector(builder, numElems): +def StartTestarrayoftablesVector(builder, numElems: int) -> int: return MonsterStartTestarrayoftablesVector(builder, numElems) def MonsterAddEnemy(builder, enemy): - return builder.PrependUOffsetTRelativeSlot(12, flatbuffers.number_types.UOffsetTFlags.py_type(enemy), 0) + builder.PrependUOffsetTRelativeSlot(12, flatbuffers.number_types.UOffsetTFlags.py_type(enemy), 0) -def AddEnemy(builder, enemy): - return MonsterAddEnemy(builder, enemy) +def AddEnemy(builder: flatbuffers.Builder, enemy: int): + MonsterAddEnemy(builder, enemy) def MonsterAddTestnestedflatbuffer(builder, testnestedflatbuffer): - return builder.PrependUOffsetTRelativeSlot(13, flatbuffers.number_types.UOffsetTFlags.py_type(testnestedflatbuffer), 0) + builder.PrependUOffsetTRelativeSlot(13, flatbuffers.number_types.UOffsetTFlags.py_type(testnestedflatbuffer), 0) -def AddTestnestedflatbuffer(builder, testnestedflatbuffer): - return MonsterAddTestnestedflatbuffer(builder, testnestedflatbuffer) +def AddTestnestedflatbuffer(builder: flatbuffers.Builder, testnestedflatbuffer: int): + MonsterAddTestnestedflatbuffer(builder, testnestedflatbuffer) def MonsterStartTestnestedflatbufferVector(builder, numElems): return builder.StartVector(1, numElems, 1) -def StartTestnestedflatbufferVector(builder, numElems): +def StartTestnestedflatbufferVector(builder, numElems: int) -> int: return MonsterStartTestnestedflatbufferVector(builder, numElems) def MonsterMakeTestnestedflatbufferVectorFromBytes(builder, bytes): @@ -994,303 +994,303 @@ def MonsterMakeTestnestedflatbufferVectorFromBytes(builder, bytes): def MakeTestnestedflatbufferVectorFromBytes(builder, bytes): return MonsterMakeTestnestedflatbufferVectorFromBytes(builder, bytes) def MonsterAddTestempty(builder, testempty): - return builder.PrependUOffsetTRelativeSlot(14, flatbuffers.number_types.UOffsetTFlags.py_type(testempty), 0) + builder.PrependUOffsetTRelativeSlot(14, flatbuffers.number_types.UOffsetTFlags.py_type(testempty), 0) -def AddTestempty(builder, testempty): - return MonsterAddTestempty(builder, testempty) +def AddTestempty(builder: flatbuffers.Builder, testempty: int): + MonsterAddTestempty(builder, testempty) def MonsterAddTestbool(builder, testbool): - return builder.PrependBoolSlot(15, testbool, 0) + builder.PrependBoolSlot(15, testbool, 0) -def AddTestbool(builder, testbool): - return MonsterAddTestbool(builder, testbool) +def AddTestbool(builder: flatbuffers.Builder, testbool: bool): + MonsterAddTestbool(builder, testbool) def MonsterAddTesthashs32Fnv1(builder, testhashs32Fnv1): - return builder.PrependInt32Slot(16, testhashs32Fnv1, 0) + builder.PrependInt32Slot(16, testhashs32Fnv1, 0) -def AddTesthashs32Fnv1(builder, testhashs32Fnv1): - return MonsterAddTesthashs32Fnv1(builder, testhashs32Fnv1) +def AddTesthashs32Fnv1(builder: flatbuffers.Builder, testhashs32Fnv1: int): + MonsterAddTesthashs32Fnv1(builder, testhashs32Fnv1) def MonsterAddTesthashu32Fnv1(builder, testhashu32Fnv1): - return builder.PrependUint32Slot(17, testhashu32Fnv1, 0) + builder.PrependUint32Slot(17, testhashu32Fnv1, 0) -def AddTesthashu32Fnv1(builder, testhashu32Fnv1): - return MonsterAddTesthashu32Fnv1(builder, testhashu32Fnv1) +def AddTesthashu32Fnv1(builder: flatbuffers.Builder, testhashu32Fnv1: int): + MonsterAddTesthashu32Fnv1(builder, testhashu32Fnv1) def MonsterAddTesthashs64Fnv1(builder, testhashs64Fnv1): - return builder.PrependInt64Slot(18, testhashs64Fnv1, 0) + builder.PrependInt64Slot(18, testhashs64Fnv1, 0) -def AddTesthashs64Fnv1(builder, testhashs64Fnv1): - return MonsterAddTesthashs64Fnv1(builder, testhashs64Fnv1) +def AddTesthashs64Fnv1(builder: flatbuffers.Builder, testhashs64Fnv1: int): + MonsterAddTesthashs64Fnv1(builder, testhashs64Fnv1) def MonsterAddTesthashu64Fnv1(builder, testhashu64Fnv1): - return builder.PrependUint64Slot(19, testhashu64Fnv1, 0) + builder.PrependUint64Slot(19, testhashu64Fnv1, 0) -def AddTesthashu64Fnv1(builder, testhashu64Fnv1): - return MonsterAddTesthashu64Fnv1(builder, testhashu64Fnv1) +def AddTesthashu64Fnv1(builder: flatbuffers.Builder, testhashu64Fnv1: int): + MonsterAddTesthashu64Fnv1(builder, testhashu64Fnv1) def MonsterAddTesthashs32Fnv1a(builder, testhashs32Fnv1a): - return builder.PrependInt32Slot(20, testhashs32Fnv1a, 0) + builder.PrependInt32Slot(20, testhashs32Fnv1a, 0) -def AddTesthashs32Fnv1a(builder, testhashs32Fnv1a): - return MonsterAddTesthashs32Fnv1a(builder, testhashs32Fnv1a) +def AddTesthashs32Fnv1a(builder: flatbuffers.Builder, testhashs32Fnv1a: int): + MonsterAddTesthashs32Fnv1a(builder, testhashs32Fnv1a) def MonsterAddTesthashu32Fnv1a(builder, testhashu32Fnv1a): - return builder.PrependUint32Slot(21, testhashu32Fnv1a, 0) + builder.PrependUint32Slot(21, testhashu32Fnv1a, 0) -def AddTesthashu32Fnv1a(builder, testhashu32Fnv1a): - return MonsterAddTesthashu32Fnv1a(builder, testhashu32Fnv1a) +def AddTesthashu32Fnv1a(builder: flatbuffers.Builder, testhashu32Fnv1a: int): + MonsterAddTesthashu32Fnv1a(builder, testhashu32Fnv1a) def MonsterAddTesthashs64Fnv1a(builder, testhashs64Fnv1a): - return builder.PrependInt64Slot(22, testhashs64Fnv1a, 0) + builder.PrependInt64Slot(22, testhashs64Fnv1a, 0) -def AddTesthashs64Fnv1a(builder, testhashs64Fnv1a): - return MonsterAddTesthashs64Fnv1a(builder, testhashs64Fnv1a) +def AddTesthashs64Fnv1a(builder: flatbuffers.Builder, testhashs64Fnv1a: int): + MonsterAddTesthashs64Fnv1a(builder, testhashs64Fnv1a) def MonsterAddTesthashu64Fnv1a(builder, testhashu64Fnv1a): - return builder.PrependUint64Slot(23, testhashu64Fnv1a, 0) + builder.PrependUint64Slot(23, testhashu64Fnv1a, 0) -def AddTesthashu64Fnv1a(builder, testhashu64Fnv1a): - return MonsterAddTesthashu64Fnv1a(builder, testhashu64Fnv1a) +def AddTesthashu64Fnv1a(builder: flatbuffers.Builder, testhashu64Fnv1a: int): + MonsterAddTesthashu64Fnv1a(builder, testhashu64Fnv1a) def MonsterAddTestarrayofbools(builder, testarrayofbools): - return builder.PrependUOffsetTRelativeSlot(24, flatbuffers.number_types.UOffsetTFlags.py_type(testarrayofbools), 0) + builder.PrependUOffsetTRelativeSlot(24, flatbuffers.number_types.UOffsetTFlags.py_type(testarrayofbools), 0) -def AddTestarrayofbools(builder, testarrayofbools): - return MonsterAddTestarrayofbools(builder, testarrayofbools) +def AddTestarrayofbools(builder: flatbuffers.Builder, testarrayofbools: int): + MonsterAddTestarrayofbools(builder, testarrayofbools) def MonsterStartTestarrayofboolsVector(builder, numElems): return builder.StartVector(1, numElems, 1) -def StartTestarrayofboolsVector(builder, numElems): +def StartTestarrayofboolsVector(builder, numElems: int) -> int: return MonsterStartTestarrayofboolsVector(builder, numElems) def MonsterAddTestf(builder, testf): - return builder.PrependFloat32Slot(25, testf, 3.14159) + builder.PrependFloat32Slot(25, testf, 3.14159) -def AddTestf(builder, testf): - return MonsterAddTestf(builder, testf) +def AddTestf(builder: flatbuffers.Builder, testf: float): + MonsterAddTestf(builder, testf) def MonsterAddTestf2(builder, testf2): - return builder.PrependFloat32Slot(26, testf2, 3.0) + builder.PrependFloat32Slot(26, testf2, 3.0) -def AddTestf2(builder, testf2): - return MonsterAddTestf2(builder, testf2) +def AddTestf2(builder: flatbuffers.Builder, testf2: float): + MonsterAddTestf2(builder, testf2) def MonsterAddTestf3(builder, testf3): - return builder.PrependFloat32Slot(27, testf3, 0.0) + builder.PrependFloat32Slot(27, testf3, 0.0) -def AddTestf3(builder, testf3): - return MonsterAddTestf3(builder, testf3) +def AddTestf3(builder: flatbuffers.Builder, testf3: float): + MonsterAddTestf3(builder, testf3) def MonsterAddTestarrayofstring2(builder, testarrayofstring2): - return builder.PrependUOffsetTRelativeSlot(28, flatbuffers.number_types.UOffsetTFlags.py_type(testarrayofstring2), 0) + builder.PrependUOffsetTRelativeSlot(28, flatbuffers.number_types.UOffsetTFlags.py_type(testarrayofstring2), 0) -def AddTestarrayofstring2(builder, testarrayofstring2): - return MonsterAddTestarrayofstring2(builder, testarrayofstring2) +def AddTestarrayofstring2(builder: flatbuffers.Builder, testarrayofstring2: int): + MonsterAddTestarrayofstring2(builder, testarrayofstring2) def MonsterStartTestarrayofstring2Vector(builder, numElems): return builder.StartVector(4, numElems, 4) -def StartTestarrayofstring2Vector(builder, numElems): +def StartTestarrayofstring2Vector(builder, numElems: int) -> int: return MonsterStartTestarrayofstring2Vector(builder, numElems) def MonsterAddTestarrayofsortedstruct(builder, testarrayofsortedstruct): - return builder.PrependUOffsetTRelativeSlot(29, flatbuffers.number_types.UOffsetTFlags.py_type(testarrayofsortedstruct), 0) + builder.PrependUOffsetTRelativeSlot(29, flatbuffers.number_types.UOffsetTFlags.py_type(testarrayofsortedstruct), 0) -def AddTestarrayofsortedstruct(builder, testarrayofsortedstruct): - return MonsterAddTestarrayofsortedstruct(builder, testarrayofsortedstruct) +def AddTestarrayofsortedstruct(builder: flatbuffers.Builder, testarrayofsortedstruct: int): + MonsterAddTestarrayofsortedstruct(builder, testarrayofsortedstruct) def MonsterStartTestarrayofsortedstructVector(builder, numElems): return builder.StartVector(8, numElems, 4) -def StartTestarrayofsortedstructVector(builder, numElems): +def StartTestarrayofsortedstructVector(builder, numElems: int) -> int: return MonsterStartTestarrayofsortedstructVector(builder, numElems) def MonsterAddFlex(builder, flex): - return builder.PrependUOffsetTRelativeSlot(30, flatbuffers.number_types.UOffsetTFlags.py_type(flex), 0) + builder.PrependUOffsetTRelativeSlot(30, flatbuffers.number_types.UOffsetTFlags.py_type(flex), 0) -def AddFlex(builder, flex): - return MonsterAddFlex(builder, flex) +def AddFlex(builder: flatbuffers.Builder, flex: int): + MonsterAddFlex(builder, flex) def MonsterStartFlexVector(builder, numElems): return builder.StartVector(1, numElems, 1) -def StartFlexVector(builder, numElems): +def StartFlexVector(builder, numElems: int) -> int: return MonsterStartFlexVector(builder, numElems) def MonsterAddTest5(builder, test5): - return builder.PrependUOffsetTRelativeSlot(31, flatbuffers.number_types.UOffsetTFlags.py_type(test5), 0) + builder.PrependUOffsetTRelativeSlot(31, flatbuffers.number_types.UOffsetTFlags.py_type(test5), 0) -def AddTest5(builder, test5): - return MonsterAddTest5(builder, test5) +def AddTest5(builder: flatbuffers.Builder, test5: int): + MonsterAddTest5(builder, test5) def MonsterStartTest5Vector(builder, numElems): return builder.StartVector(4, numElems, 2) -def StartTest5Vector(builder, numElems): +def StartTest5Vector(builder, numElems: int) -> int: return MonsterStartTest5Vector(builder, numElems) def MonsterAddVectorOfLongs(builder, vectorOfLongs): - return builder.PrependUOffsetTRelativeSlot(32, flatbuffers.number_types.UOffsetTFlags.py_type(vectorOfLongs), 0) + builder.PrependUOffsetTRelativeSlot(32, flatbuffers.number_types.UOffsetTFlags.py_type(vectorOfLongs), 0) -def AddVectorOfLongs(builder, vectorOfLongs): - return MonsterAddVectorOfLongs(builder, vectorOfLongs) +def AddVectorOfLongs(builder: flatbuffers.Builder, vectorOfLongs: int): + MonsterAddVectorOfLongs(builder, vectorOfLongs) def MonsterStartVectorOfLongsVector(builder, numElems): return builder.StartVector(8, numElems, 8) -def StartVectorOfLongsVector(builder, numElems): +def StartVectorOfLongsVector(builder, numElems: int) -> int: return MonsterStartVectorOfLongsVector(builder, numElems) def MonsterAddVectorOfDoubles(builder, vectorOfDoubles): - return builder.PrependUOffsetTRelativeSlot(33, flatbuffers.number_types.UOffsetTFlags.py_type(vectorOfDoubles), 0) + builder.PrependUOffsetTRelativeSlot(33, flatbuffers.number_types.UOffsetTFlags.py_type(vectorOfDoubles), 0) -def AddVectorOfDoubles(builder, vectorOfDoubles): - return MonsterAddVectorOfDoubles(builder, vectorOfDoubles) +def AddVectorOfDoubles(builder: flatbuffers.Builder, vectorOfDoubles: int): + MonsterAddVectorOfDoubles(builder, vectorOfDoubles) def MonsterStartVectorOfDoublesVector(builder, numElems): return builder.StartVector(8, numElems, 8) -def StartVectorOfDoublesVector(builder, numElems): +def StartVectorOfDoublesVector(builder, numElems: int) -> int: return MonsterStartVectorOfDoublesVector(builder, numElems) def MonsterAddParentNamespaceTest(builder, parentNamespaceTest): - return builder.PrependUOffsetTRelativeSlot(34, flatbuffers.number_types.UOffsetTFlags.py_type(parentNamespaceTest), 0) + builder.PrependUOffsetTRelativeSlot(34, flatbuffers.number_types.UOffsetTFlags.py_type(parentNamespaceTest), 0) -def AddParentNamespaceTest(builder, parentNamespaceTest): - return MonsterAddParentNamespaceTest(builder, parentNamespaceTest) +def AddParentNamespaceTest(builder: flatbuffers.Builder, parentNamespaceTest: int): + MonsterAddParentNamespaceTest(builder, parentNamespaceTest) def MonsterAddVectorOfReferrables(builder, vectorOfReferrables): - return builder.PrependUOffsetTRelativeSlot(35, flatbuffers.number_types.UOffsetTFlags.py_type(vectorOfReferrables), 0) + builder.PrependUOffsetTRelativeSlot(35, flatbuffers.number_types.UOffsetTFlags.py_type(vectorOfReferrables), 0) -def AddVectorOfReferrables(builder, vectorOfReferrables): - return MonsterAddVectorOfReferrables(builder, vectorOfReferrables) +def AddVectorOfReferrables(builder: flatbuffers.Builder, vectorOfReferrables: int): + MonsterAddVectorOfReferrables(builder, vectorOfReferrables) def MonsterStartVectorOfReferrablesVector(builder, numElems): return builder.StartVector(4, numElems, 4) -def StartVectorOfReferrablesVector(builder, numElems): +def StartVectorOfReferrablesVector(builder, numElems: int) -> int: return MonsterStartVectorOfReferrablesVector(builder, numElems) def MonsterAddSingleWeakReference(builder, singleWeakReference): - return builder.PrependUint64Slot(36, singleWeakReference, 0) + builder.PrependUint64Slot(36, singleWeakReference, 0) -def AddSingleWeakReference(builder, singleWeakReference): - return MonsterAddSingleWeakReference(builder, singleWeakReference) +def AddSingleWeakReference(builder: flatbuffers.Builder, singleWeakReference: int): + MonsterAddSingleWeakReference(builder, singleWeakReference) def MonsterAddVectorOfWeakReferences(builder, vectorOfWeakReferences): - return builder.PrependUOffsetTRelativeSlot(37, flatbuffers.number_types.UOffsetTFlags.py_type(vectorOfWeakReferences), 0) + builder.PrependUOffsetTRelativeSlot(37, flatbuffers.number_types.UOffsetTFlags.py_type(vectorOfWeakReferences), 0) -def AddVectorOfWeakReferences(builder, vectorOfWeakReferences): - return MonsterAddVectorOfWeakReferences(builder, vectorOfWeakReferences) +def AddVectorOfWeakReferences(builder: flatbuffers.Builder, vectorOfWeakReferences: int): + MonsterAddVectorOfWeakReferences(builder, vectorOfWeakReferences) def MonsterStartVectorOfWeakReferencesVector(builder, numElems): return builder.StartVector(8, numElems, 8) -def StartVectorOfWeakReferencesVector(builder, numElems): +def StartVectorOfWeakReferencesVector(builder, numElems: int) -> int: return MonsterStartVectorOfWeakReferencesVector(builder, numElems) def MonsterAddVectorOfStrongReferrables(builder, vectorOfStrongReferrables): - return builder.PrependUOffsetTRelativeSlot(38, flatbuffers.number_types.UOffsetTFlags.py_type(vectorOfStrongReferrables), 0) + builder.PrependUOffsetTRelativeSlot(38, flatbuffers.number_types.UOffsetTFlags.py_type(vectorOfStrongReferrables), 0) -def AddVectorOfStrongReferrables(builder, vectorOfStrongReferrables): - return MonsterAddVectorOfStrongReferrables(builder, vectorOfStrongReferrables) +def AddVectorOfStrongReferrables(builder: flatbuffers.Builder, vectorOfStrongReferrables: int): + MonsterAddVectorOfStrongReferrables(builder, vectorOfStrongReferrables) def MonsterStartVectorOfStrongReferrablesVector(builder, numElems): return builder.StartVector(4, numElems, 4) -def StartVectorOfStrongReferrablesVector(builder, numElems): +def StartVectorOfStrongReferrablesVector(builder, numElems: int) -> int: return MonsterStartVectorOfStrongReferrablesVector(builder, numElems) def MonsterAddCoOwningReference(builder, coOwningReference): - return builder.PrependUint64Slot(39, coOwningReference, 0) + builder.PrependUint64Slot(39, coOwningReference, 0) -def AddCoOwningReference(builder, coOwningReference): - return MonsterAddCoOwningReference(builder, coOwningReference) +def AddCoOwningReference(builder: flatbuffers.Builder, coOwningReference: int): + MonsterAddCoOwningReference(builder, coOwningReference) def MonsterAddVectorOfCoOwningReferences(builder, vectorOfCoOwningReferences): - return builder.PrependUOffsetTRelativeSlot(40, flatbuffers.number_types.UOffsetTFlags.py_type(vectorOfCoOwningReferences), 0) + builder.PrependUOffsetTRelativeSlot(40, flatbuffers.number_types.UOffsetTFlags.py_type(vectorOfCoOwningReferences), 0) -def AddVectorOfCoOwningReferences(builder, vectorOfCoOwningReferences): - return MonsterAddVectorOfCoOwningReferences(builder, vectorOfCoOwningReferences) +def AddVectorOfCoOwningReferences(builder: flatbuffers.Builder, vectorOfCoOwningReferences: int): + MonsterAddVectorOfCoOwningReferences(builder, vectorOfCoOwningReferences) def MonsterStartVectorOfCoOwningReferencesVector(builder, numElems): return builder.StartVector(8, numElems, 8) -def StartVectorOfCoOwningReferencesVector(builder, numElems): +def StartVectorOfCoOwningReferencesVector(builder, numElems: int) -> int: return MonsterStartVectorOfCoOwningReferencesVector(builder, numElems) def MonsterAddNonOwningReference(builder, nonOwningReference): - return builder.PrependUint64Slot(41, nonOwningReference, 0) + builder.PrependUint64Slot(41, nonOwningReference, 0) -def AddNonOwningReference(builder, nonOwningReference): - return MonsterAddNonOwningReference(builder, nonOwningReference) +def AddNonOwningReference(builder: flatbuffers.Builder, nonOwningReference: int): + MonsterAddNonOwningReference(builder, nonOwningReference) def MonsterAddVectorOfNonOwningReferences(builder, vectorOfNonOwningReferences): - return builder.PrependUOffsetTRelativeSlot(42, flatbuffers.number_types.UOffsetTFlags.py_type(vectorOfNonOwningReferences), 0) + builder.PrependUOffsetTRelativeSlot(42, flatbuffers.number_types.UOffsetTFlags.py_type(vectorOfNonOwningReferences), 0) -def AddVectorOfNonOwningReferences(builder, vectorOfNonOwningReferences): - return MonsterAddVectorOfNonOwningReferences(builder, vectorOfNonOwningReferences) +def AddVectorOfNonOwningReferences(builder: flatbuffers.Builder, vectorOfNonOwningReferences: int): + MonsterAddVectorOfNonOwningReferences(builder, vectorOfNonOwningReferences) def MonsterStartVectorOfNonOwningReferencesVector(builder, numElems): return builder.StartVector(8, numElems, 8) -def StartVectorOfNonOwningReferencesVector(builder, numElems): +def StartVectorOfNonOwningReferencesVector(builder, numElems: int) -> int: return MonsterStartVectorOfNonOwningReferencesVector(builder, numElems) def MonsterAddAnyUniqueType(builder, anyUniqueType): - return builder.PrependUint8Slot(43, anyUniqueType, 0) + builder.PrependUint8Slot(43, anyUniqueType, 0) -def AddAnyUniqueType(builder, anyUniqueType): - return MonsterAddAnyUniqueType(builder, anyUniqueType) +def AddAnyUniqueType(builder: flatbuffers.Builder, anyUniqueType: int): + MonsterAddAnyUniqueType(builder, anyUniqueType) def MonsterAddAnyUnique(builder, anyUnique): - return builder.PrependUOffsetTRelativeSlot(44, flatbuffers.number_types.UOffsetTFlags.py_type(anyUnique), 0) + builder.PrependUOffsetTRelativeSlot(44, flatbuffers.number_types.UOffsetTFlags.py_type(anyUnique), 0) -def AddAnyUnique(builder, anyUnique): - return MonsterAddAnyUnique(builder, anyUnique) +def AddAnyUnique(builder: flatbuffers.Builder, anyUnique: int): + MonsterAddAnyUnique(builder, anyUnique) def MonsterAddAnyAmbiguousType(builder, anyAmbiguousType): - return builder.PrependUint8Slot(45, anyAmbiguousType, 0) + builder.PrependUint8Slot(45, anyAmbiguousType, 0) -def AddAnyAmbiguousType(builder, anyAmbiguousType): - return MonsterAddAnyAmbiguousType(builder, anyAmbiguousType) +def AddAnyAmbiguousType(builder: flatbuffers.Builder, anyAmbiguousType: int): + MonsterAddAnyAmbiguousType(builder, anyAmbiguousType) def MonsterAddAnyAmbiguous(builder, anyAmbiguous): - return builder.PrependUOffsetTRelativeSlot(46, flatbuffers.number_types.UOffsetTFlags.py_type(anyAmbiguous), 0) + builder.PrependUOffsetTRelativeSlot(46, flatbuffers.number_types.UOffsetTFlags.py_type(anyAmbiguous), 0) -def AddAnyAmbiguous(builder, anyAmbiguous): - return MonsterAddAnyAmbiguous(builder, anyAmbiguous) +def AddAnyAmbiguous(builder: flatbuffers.Builder, anyAmbiguous: int): + MonsterAddAnyAmbiguous(builder, anyAmbiguous) def MonsterAddVectorOfEnums(builder, vectorOfEnums): - return builder.PrependUOffsetTRelativeSlot(47, flatbuffers.number_types.UOffsetTFlags.py_type(vectorOfEnums), 0) + builder.PrependUOffsetTRelativeSlot(47, flatbuffers.number_types.UOffsetTFlags.py_type(vectorOfEnums), 0) -def AddVectorOfEnums(builder, vectorOfEnums): - return MonsterAddVectorOfEnums(builder, vectorOfEnums) +def AddVectorOfEnums(builder: flatbuffers.Builder, vectorOfEnums: int): + MonsterAddVectorOfEnums(builder, vectorOfEnums) def MonsterStartVectorOfEnumsVector(builder, numElems): return builder.StartVector(1, numElems, 1) -def StartVectorOfEnumsVector(builder, numElems): +def StartVectorOfEnumsVector(builder, numElems: int) -> int: return MonsterStartVectorOfEnumsVector(builder, numElems) def MonsterAddSignedEnum(builder, signedEnum): - return builder.PrependInt8Slot(48, signedEnum, -1) + builder.PrependInt8Slot(48, signedEnum, -1) -def AddSignedEnum(builder, signedEnum): - return MonsterAddSignedEnum(builder, signedEnum) +def AddSignedEnum(builder: flatbuffers.Builder, signedEnum: int): + MonsterAddSignedEnum(builder, signedEnum) def MonsterAddTestrequirednestedflatbuffer(builder, testrequirednestedflatbuffer): - return builder.PrependUOffsetTRelativeSlot(49, flatbuffers.number_types.UOffsetTFlags.py_type(testrequirednestedflatbuffer), 0) + builder.PrependUOffsetTRelativeSlot(49, flatbuffers.number_types.UOffsetTFlags.py_type(testrequirednestedflatbuffer), 0) -def AddTestrequirednestedflatbuffer(builder, testrequirednestedflatbuffer): - return MonsterAddTestrequirednestedflatbuffer(builder, testrequirednestedflatbuffer) +def AddTestrequirednestedflatbuffer(builder: flatbuffers.Builder, testrequirednestedflatbuffer: int): + MonsterAddTestrequirednestedflatbuffer(builder, testrequirednestedflatbuffer) def MonsterStartTestrequirednestedflatbufferVector(builder, numElems): return builder.StartVector(1, numElems, 1) -def StartTestrequirednestedflatbufferVector(builder, numElems): +def StartTestrequirednestedflatbufferVector(builder, numElems: int) -> int: return MonsterStartTestrequirednestedflatbufferVector(builder, numElems) def MonsterMakeTestrequirednestedflatbufferVectorFromBytes(builder, bytes): @@ -1301,82 +1301,82 @@ def MonsterMakeTestrequirednestedflatbufferVectorFromBytes(builder, bytes): def MakeTestrequirednestedflatbufferVectorFromBytes(builder, bytes): return MonsterMakeTestrequirednestedflatbufferVectorFromBytes(builder, bytes) def MonsterAddScalarKeySortedTables(builder, scalarKeySortedTables): - return builder.PrependUOffsetTRelativeSlot(50, flatbuffers.number_types.UOffsetTFlags.py_type(scalarKeySortedTables), 0) + builder.PrependUOffsetTRelativeSlot(50, flatbuffers.number_types.UOffsetTFlags.py_type(scalarKeySortedTables), 0) -def AddScalarKeySortedTables(builder, scalarKeySortedTables): - return MonsterAddScalarKeySortedTables(builder, scalarKeySortedTables) +def AddScalarKeySortedTables(builder: flatbuffers.Builder, scalarKeySortedTables: int): + MonsterAddScalarKeySortedTables(builder, scalarKeySortedTables) def MonsterStartScalarKeySortedTablesVector(builder, numElems): return builder.StartVector(4, numElems, 4) -def StartScalarKeySortedTablesVector(builder, numElems): +def StartScalarKeySortedTablesVector(builder, numElems: int) -> int: return MonsterStartScalarKeySortedTablesVector(builder, numElems) def MonsterAddNativeInline(builder, nativeInline): - return builder.PrependStructSlot(51, flatbuffers.number_types.UOffsetTFlags.py_type(nativeInline), 0) + builder.PrependStructSlot(51, flatbuffers.number_types.UOffsetTFlags.py_type(nativeInline), 0) -def AddNativeInline(builder, nativeInline): - return MonsterAddNativeInline(builder, nativeInline) +def AddNativeInline(builder: flatbuffers.Builder, nativeInline: Any): + MonsterAddNativeInline(builder, nativeInline) def MonsterAddLongEnumNonEnumDefault(builder, longEnumNonEnumDefault): - return builder.PrependUint64Slot(52, longEnumNonEnumDefault, 0) + builder.PrependUint64Slot(52, longEnumNonEnumDefault, 0) -def AddLongEnumNonEnumDefault(builder, longEnumNonEnumDefault): - return MonsterAddLongEnumNonEnumDefault(builder, longEnumNonEnumDefault) +def AddLongEnumNonEnumDefault(builder: flatbuffers.Builder, longEnumNonEnumDefault: int): + MonsterAddLongEnumNonEnumDefault(builder, longEnumNonEnumDefault) def MonsterAddLongEnumNormalDefault(builder, longEnumNormalDefault): - return builder.PrependUint64Slot(53, longEnumNormalDefault, 2) + builder.PrependUint64Slot(53, longEnumNormalDefault, 2) -def AddLongEnumNormalDefault(builder, longEnumNormalDefault): - return MonsterAddLongEnumNormalDefault(builder, longEnumNormalDefault) +def AddLongEnumNormalDefault(builder: flatbuffers.Builder, longEnumNormalDefault: int): + MonsterAddLongEnumNormalDefault(builder, longEnumNormalDefault) def MonsterAddNanDefault(builder, nanDefault): - return builder.PrependFloat32Slot(54, nanDefault, float('nan')) + builder.PrependFloat32Slot(54, nanDefault, float('nan')) -def AddNanDefault(builder, nanDefault): - return MonsterAddNanDefault(builder, nanDefault) +def AddNanDefault(builder: flatbuffers.Builder, nanDefault: float): + MonsterAddNanDefault(builder, nanDefault) def MonsterAddInfDefault(builder, infDefault): - return builder.PrependFloat32Slot(55, infDefault, float('inf')) + builder.PrependFloat32Slot(55, infDefault, float('inf')) -def AddInfDefault(builder, infDefault): - return MonsterAddInfDefault(builder, infDefault) +def AddInfDefault(builder: flatbuffers.Builder, infDefault: float): + MonsterAddInfDefault(builder, infDefault) def MonsterAddPositiveInfDefault(builder, positiveInfDefault): - return builder.PrependFloat32Slot(56, positiveInfDefault, float('inf')) + builder.PrependFloat32Slot(56, positiveInfDefault, float('inf')) -def AddPositiveInfDefault(builder, positiveInfDefault): - return MonsterAddPositiveInfDefault(builder, positiveInfDefault) +def AddPositiveInfDefault(builder: flatbuffers.Builder, positiveInfDefault: float): + MonsterAddPositiveInfDefault(builder, positiveInfDefault) def MonsterAddInfinityDefault(builder, infinityDefault): - return builder.PrependFloat32Slot(57, infinityDefault, float('inf')) + builder.PrependFloat32Slot(57, infinityDefault, float('inf')) -def AddInfinityDefault(builder, infinityDefault): - return MonsterAddInfinityDefault(builder, infinityDefault) +def AddInfinityDefault(builder: flatbuffers.Builder, infinityDefault: float): + MonsterAddInfinityDefault(builder, infinityDefault) def MonsterAddPositiveInfinityDefault(builder, positiveInfinityDefault): - return builder.PrependFloat32Slot(58, positiveInfinityDefault, float('inf')) + builder.PrependFloat32Slot(58, positiveInfinityDefault, float('inf')) -def AddPositiveInfinityDefault(builder, positiveInfinityDefault): - return MonsterAddPositiveInfinityDefault(builder, positiveInfinityDefault) +def AddPositiveInfinityDefault(builder: flatbuffers.Builder, positiveInfinityDefault: float): + MonsterAddPositiveInfinityDefault(builder, positiveInfinityDefault) def MonsterAddNegativeInfDefault(builder, negativeInfDefault): - return builder.PrependFloat32Slot(59, negativeInfDefault, float('-inf')) + builder.PrependFloat32Slot(59, negativeInfDefault, float('-inf')) -def AddNegativeInfDefault(builder, negativeInfDefault): - return MonsterAddNegativeInfDefault(builder, negativeInfDefault) +def AddNegativeInfDefault(builder: flatbuffers.Builder, negativeInfDefault: float): + MonsterAddNegativeInfDefault(builder, negativeInfDefault) def MonsterAddNegativeInfinityDefault(builder, negativeInfinityDefault): - return builder.PrependFloat32Slot(60, negativeInfinityDefault, float('-inf')) + builder.PrependFloat32Slot(60, negativeInfinityDefault, float('-inf')) -def AddNegativeInfinityDefault(builder, negativeInfinityDefault): - return MonsterAddNegativeInfinityDefault(builder, negativeInfinityDefault) +def AddNegativeInfinityDefault(builder: flatbuffers.Builder, negativeInfinityDefault: float): + MonsterAddNegativeInfinityDefault(builder, negativeInfinityDefault) def MonsterAddDoubleInfDefault(builder, doubleInfDefault): - return builder.PrependFloat64Slot(61, doubleInfDefault, float('inf')) + builder.PrependFloat64Slot(61, doubleInfDefault, float('inf')) -def AddDoubleInfDefault(builder, doubleInfDefault): - return MonsterAddDoubleInfDefault(builder, doubleInfDefault) +def AddDoubleInfDefault(builder: flatbuffers.Builder, doubleInfDefault: float): + MonsterAddDoubleInfDefault(builder, doubleInfDefault) def MonsterEnd(builder): return builder.EndObject() diff --git a/tests/MyGame/Example/NestedStruct.py b/tests/MyGame/Example/NestedStruct.py index 7f8d18ef19..d5d672a2ea 100644 --- a/tests/MyGame/Example/NestedStruct.py +++ b/tests/MyGame/Example/NestedStruct.py @@ -4,17 +4,18 @@ import flatbuffers from flatbuffers.compat import import_numpy +from typing import Any np = import_numpy() class NestedStruct(object): __slots__ = ['_tab'] @classmethod - def SizeOf(cls): + def SizeOf(cls) -> int: return 32 # NestedStruct - def Init(self, buf, pos): + def Init(self, buf: bytes, pos: int): self._tab = flatbuffers.table.Table(buf, pos) # NestedStruct @@ -31,11 +32,11 @@ def AAsNumpy(self): return self._tab.GetArrayAsNumpy(flatbuffers.number_types.Int32Flags, self._tab.Pos + 0, self.ALength()) # NestedStruct - def ALength(self): + def ALength(self) -> int: return 2 # NestedStruct - def AIsNone(self): + def AIsNone(self) -> bool: return False # NestedStruct @@ -54,11 +55,11 @@ def CAsNumpy(self): return self._tab.GetArrayAsNumpy(flatbuffers.number_types.Int8Flags, self._tab.Pos + 9, self.CLength()) # NestedStruct - def CLength(self): + def CLength(self) -> int: return 2 # NestedStruct - def CIsNone(self): + def CIsNone(self) -> bool: return False # NestedStruct @@ -75,11 +76,11 @@ def DAsNumpy(self): return self._tab.GetArrayAsNumpy(flatbuffers.number_types.Int64Flags, self._tab.Pos + 16, self.DLength()) # NestedStruct - def DLength(self): + def DLength(self) -> int: return 2 # NestedStruct - def DIsNone(self): + def DIsNone(self) -> bool: return False diff --git a/tests/MyGame/Example/NestedUnion/NestedUnionTest.py b/tests/MyGame/Example/NestedUnion/NestedUnionTest.py index 33c2a44156..7540b6e8ad 100644 --- a/tests/MyGame/Example/NestedUnion/NestedUnionTest.py +++ b/tests/MyGame/Example/NestedUnion/NestedUnionTest.py @@ -4,13 +4,16 @@ import flatbuffers from flatbuffers.compat import import_numpy +from typing import Any +from flatbuffers.table import Table +from typing import Optional np = import_numpy() class NestedUnionTest(object): __slots__ = ['_tab'] @classmethod - def GetRootAs(cls, buf, offset=0): + def GetRootAs(cls, buf, offset: int = 0): n = flatbuffers.encode.Get(flatbuffers.packer.uoffset, buf, offset) x = NestedUnionTest() x.Init(buf, n + offset) @@ -21,11 +24,11 @@ def GetRootAsNestedUnionTest(cls, buf, offset=0): """This method is deprecated. Please switch to GetRootAs.""" return cls.GetRootAs(buf, offset) # NestedUnionTest - def Init(self, buf, pos): + def Init(self, buf: bytes, pos: int): self._tab = flatbuffers.table.Table(buf, pos) # NestedUnionTest - def Name(self): + def Name(self) -> Optional[str]: o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(4)) if o != 0: return self._tab.String(o + self._tab.Pos) @@ -39,10 +42,9 @@ def DataType(self): return 0 # NestedUnionTest - def Data(self): + def Data(self) -> Optional[flatbuffers.table.Table]: o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(8)) if o != 0: - from flatbuffers.table import Table obj = Table(bytearray(), 0) self._tab.Union(obj, o) return obj @@ -55,40 +57,40 @@ def Id(self): return self._tab.Get(flatbuffers.number_types.Int16Flags, o + self._tab.Pos) return 0 -def NestedUnionTestStart(builder): - return builder.StartObject(4) +def NestedUnionTestStart(builder: flatbuffers.Builder): + builder.StartObject(4) -def Start(builder): - return NestedUnionTestStart(builder) +def Start(builder: flatbuffers.Builder): + NestedUnionTestStart(builder) -def NestedUnionTestAddName(builder, name): - return builder.PrependUOffsetTRelativeSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(name), 0) +def NestedUnionTestAddName(builder: flatbuffers.Builder, name: int): + builder.PrependUOffsetTRelativeSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(name), 0) -def AddName(builder, name): - return NestedUnionTestAddName(builder, name) +def AddName(builder: flatbuffers.Builder, name: int): + NestedUnionTestAddName(builder, name) -def NestedUnionTestAddDataType(builder, dataType): - return builder.PrependUint8Slot(1, dataType, 0) +def NestedUnionTestAddDataType(builder: flatbuffers.Builder, dataType: int): + builder.PrependUint8Slot(1, dataType, 0) -def AddDataType(builder, dataType): - return NestedUnionTestAddDataType(builder, dataType) +def AddDataType(builder: flatbuffers.Builder, dataType: int): + NestedUnionTestAddDataType(builder, dataType) -def NestedUnionTestAddData(builder, data): - return builder.PrependUOffsetTRelativeSlot(2, flatbuffers.number_types.UOffsetTFlags.py_type(data), 0) +def NestedUnionTestAddData(builder: flatbuffers.Builder, data: int): + builder.PrependUOffsetTRelativeSlot(2, flatbuffers.number_types.UOffsetTFlags.py_type(data), 0) -def AddData(builder, data): - return NestedUnionTestAddData(builder, data) +def AddData(builder: flatbuffers.Builder, data: int): + NestedUnionTestAddData(builder, data) -def NestedUnionTestAddId(builder, id): - return builder.PrependInt16Slot(3, id, 0) +def NestedUnionTestAddId(builder: flatbuffers.Builder, id: int): + builder.PrependInt16Slot(3, id, 0) -def AddId(builder, id): - return NestedUnionTestAddId(builder, id) +def AddId(builder: flatbuffers.Builder, id: int): + NestedUnionTestAddId(builder, id) -def NestedUnionTestEnd(builder): +def NestedUnionTestEnd(builder: flatbuffers.Builder) -> int: return builder.EndObject() -def End(builder): +def End(builder: flatbuffers.Builder) -> int: return NestedUnionTestEnd(builder) import MyGame.Example.NestedUnion.Any diff --git a/tests/MyGame/Example/NestedUnion/Test.py b/tests/MyGame/Example/NestedUnion/Test.py index 143d1dfde9..e4e90be27f 100644 --- a/tests/MyGame/Example/NestedUnion/Test.py +++ b/tests/MyGame/Example/NestedUnion/Test.py @@ -4,17 +4,18 @@ import flatbuffers from flatbuffers.compat import import_numpy +from typing import Any np = import_numpy() class Test(object): __slots__ = ['_tab'] @classmethod - def SizeOf(cls): + def SizeOf(cls) -> int: return 4 # Test - def Init(self, buf, pos): + def Init(self, buf: bytes, pos: int): self._tab = flatbuffers.table.Table(buf, pos) # Test diff --git a/tests/MyGame/Example/NestedUnion/TestSimpleTableWithEnum.py b/tests/MyGame/Example/NestedUnion/TestSimpleTableWithEnum.py index b3ad74f76a..9b7ef28c01 100644 --- a/tests/MyGame/Example/NestedUnion/TestSimpleTableWithEnum.py +++ b/tests/MyGame/Example/NestedUnion/TestSimpleTableWithEnum.py @@ -4,13 +4,14 @@ import flatbuffers from flatbuffers.compat import import_numpy +from typing import Any np = import_numpy() class TestSimpleTableWithEnum(object): __slots__ = ['_tab'] @classmethod - def GetRootAs(cls, buf, offset=0): + def GetRootAs(cls, buf, offset: int = 0): n = flatbuffers.encode.Get(flatbuffers.packer.uoffset, buf, offset) x = TestSimpleTableWithEnum() x.Init(buf, n + offset) @@ -21,7 +22,7 @@ def GetRootAsTestSimpleTableWithEnum(cls, buf, offset=0): """This method is deprecated. Please switch to GetRootAs.""" return cls.GetRootAs(buf, offset) # TestSimpleTableWithEnum - def Init(self, buf, pos): + def Init(self, buf: bytes, pos: int): self._tab = flatbuffers.table.Table(buf, pos) # TestSimpleTableWithEnum @@ -31,22 +32,22 @@ def Color(self): return self._tab.Get(flatbuffers.number_types.Uint8Flags, o + self._tab.Pos) return 2 -def TestSimpleTableWithEnumStart(builder): - return builder.StartObject(1) +def TestSimpleTableWithEnumStart(builder: flatbuffers.Builder): + builder.StartObject(1) -def Start(builder): - return TestSimpleTableWithEnumStart(builder) +def Start(builder: flatbuffers.Builder): + TestSimpleTableWithEnumStart(builder) -def TestSimpleTableWithEnumAddColor(builder, color): - return builder.PrependUint8Slot(0, color, 2) +def TestSimpleTableWithEnumAddColor(builder: flatbuffers.Builder, color: int): + builder.PrependUint8Slot(0, color, 2) -def AddColor(builder, color): - return TestSimpleTableWithEnumAddColor(builder, color) +def AddColor(builder: flatbuffers.Builder, color: int): + TestSimpleTableWithEnumAddColor(builder, color) -def TestSimpleTableWithEnumEnd(builder): +def TestSimpleTableWithEnumEnd(builder: flatbuffers.Builder) -> int: return builder.EndObject() -def End(builder): +def End(builder: flatbuffers.Builder) -> int: return TestSimpleTableWithEnumEnd(builder) diff --git a/tests/MyGame/Example/NestedUnion/Vec3.py b/tests/MyGame/Example/NestedUnion/Vec3.py index 915f580146..11feab1196 100644 --- a/tests/MyGame/Example/NestedUnion/Vec3.py +++ b/tests/MyGame/Example/NestedUnion/Vec3.py @@ -4,13 +4,16 @@ import flatbuffers from flatbuffers.compat import import_numpy +from typing import Any +from .MyGame.Example.NestedUnion.Test import Test +from typing import Optional np = import_numpy() class Vec3(object): __slots__ = ['_tab'] @classmethod - def GetRootAs(cls, buf, offset=0): + def GetRootAs(cls, buf, offset: int = 0): n = flatbuffers.encode.Get(flatbuffers.packer.uoffset, buf, offset) x = Vec3() x.Init(buf, n + offset) @@ -21,7 +24,7 @@ def GetRootAsVec3(cls, buf, offset=0): """This method is deprecated. Please switch to GetRootAs.""" return cls.GetRootAs(buf, offset) # Vec3 - def Init(self, buf, pos): + def Init(self, buf: bytes, pos: int): self._tab = flatbuffers.table.Table(buf, pos) # Vec3 @@ -60,62 +63,61 @@ def Test2(self): return 0 # Vec3 - def Test3(self): + def Test3(self) -> Optional[Test]: o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(14)) if o != 0: x = o + self._tab.Pos - from MyGame.Example.NestedUnion.Test import Test obj = Test() obj.Init(self._tab.Bytes, x) return obj return None -def Vec3Start(builder): - return builder.StartObject(6) +def Vec3Start(builder: flatbuffers.Builder): + builder.StartObject(6) -def Start(builder): - return Vec3Start(builder) +def Start(builder: flatbuffers.Builder): + Vec3Start(builder) -def Vec3AddX(builder, x): - return builder.PrependFloat64Slot(0, x, 0.0) +def Vec3AddX(builder: flatbuffers.Builder, x: float): + builder.PrependFloat64Slot(0, x, 0.0) -def AddX(builder, x): - return Vec3AddX(builder, x) +def AddX(builder: flatbuffers.Builder, x: float): + Vec3AddX(builder, x) -def Vec3AddY(builder, y): - return builder.PrependFloat64Slot(1, y, 0.0) +def Vec3AddY(builder: flatbuffers.Builder, y: float): + builder.PrependFloat64Slot(1, y, 0.0) -def AddY(builder, y): - return Vec3AddY(builder, y) +def AddY(builder: flatbuffers.Builder, y: float): + Vec3AddY(builder, y) -def Vec3AddZ(builder, z): - return builder.PrependFloat64Slot(2, z, 0.0) +def Vec3AddZ(builder: flatbuffers.Builder, z: float): + builder.PrependFloat64Slot(2, z, 0.0) -def AddZ(builder, z): - return Vec3AddZ(builder, z) +def AddZ(builder: flatbuffers.Builder, z: float): + Vec3AddZ(builder, z) -def Vec3AddTest1(builder, test1): - return builder.PrependFloat64Slot(3, test1, 0.0) +def Vec3AddTest1(builder: flatbuffers.Builder, test1: float): + builder.PrependFloat64Slot(3, test1, 0.0) -def AddTest1(builder, test1): - return Vec3AddTest1(builder, test1) +def AddTest1(builder: flatbuffers.Builder, test1: float): + Vec3AddTest1(builder, test1) -def Vec3AddTest2(builder, test2): - return builder.PrependUint8Slot(4, test2, 0) +def Vec3AddTest2(builder: flatbuffers.Builder, test2: int): + builder.PrependUint8Slot(4, test2, 0) -def AddTest2(builder, test2): - return Vec3AddTest2(builder, test2) +def AddTest2(builder: flatbuffers.Builder, test2: int): + Vec3AddTest2(builder, test2) -def Vec3AddTest3(builder, test3): - return builder.PrependStructSlot(5, flatbuffers.number_types.UOffsetTFlags.py_type(test3), 0) +def Vec3AddTest3(builder: flatbuffers.Builder, test3: Any): + builder.PrependStructSlot(5, flatbuffers.number_types.UOffsetTFlags.py_type(test3), 0) -def AddTest3(builder, test3): - return Vec3AddTest3(builder, test3) +def AddTest3(builder: flatbuffers.Builder, test3: Any): + Vec3AddTest3(builder, test3) -def Vec3End(builder): +def Vec3End(builder: flatbuffers.Builder) -> int: return builder.EndObject() -def End(builder): +def End(builder: flatbuffers.Builder) -> int: return Vec3End(builder) import MyGame.Example.NestedUnion.Test diff --git a/tests/MyGame/Example/Referrable.py b/tests/MyGame/Example/Referrable.py index e5081e1ae2..203c93412c 100644 --- a/tests/MyGame/Example/Referrable.py +++ b/tests/MyGame/Example/Referrable.py @@ -36,16 +36,16 @@ def Id(self): return 0 def ReferrableStart(builder): - return builder.StartObject(1) + builder.StartObject(1) def Start(builder): - return ReferrableStart(builder) + ReferrableStart(builder) def ReferrableAddId(builder, id): - return builder.PrependUint64Slot(0, id, 0) + builder.PrependUint64Slot(0, id, 0) -def AddId(builder, id): - return ReferrableAddId(builder, id) +def AddId(builder: flatbuffers.Builder, id: int): + ReferrableAddId(builder, id) def ReferrableEnd(builder): return builder.EndObject() diff --git a/tests/MyGame/Example/Stat.py b/tests/MyGame/Example/Stat.py index 00ca1a468a..4f175574eb 100644 --- a/tests/MyGame/Example/Stat.py +++ b/tests/MyGame/Example/Stat.py @@ -50,28 +50,28 @@ def Count(self): return 0 def StatStart(builder): - return builder.StartObject(3) + builder.StartObject(3) def Start(builder): - return StatStart(builder) + StatStart(builder) def StatAddId(builder, id): - return builder.PrependUOffsetTRelativeSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(id), 0) + builder.PrependUOffsetTRelativeSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(id), 0) -def AddId(builder, id): - return StatAddId(builder, id) +def AddId(builder: flatbuffers.Builder, id: int): + StatAddId(builder, id) def StatAddVal(builder, val): - return builder.PrependInt64Slot(1, val, 0) + builder.PrependInt64Slot(1, val, 0) -def AddVal(builder, val): - return StatAddVal(builder, val) +def AddVal(builder: flatbuffers.Builder, val: int): + StatAddVal(builder, val) def StatAddCount(builder, count): - return builder.PrependUint16Slot(2, count, 0) + builder.PrependUint16Slot(2, count, 0) -def AddCount(builder, count): - return StatAddCount(builder, count) +def AddCount(builder: flatbuffers.Builder, count: int): + StatAddCount(builder, count) def StatEnd(builder): return builder.EndObject() diff --git a/tests/MyGame/Example/TestSimpleTableWithEnum.py b/tests/MyGame/Example/TestSimpleTableWithEnum.py index 99e5c41bcd..856442c8e4 100644 --- a/tests/MyGame/Example/TestSimpleTableWithEnum.py +++ b/tests/MyGame/Example/TestSimpleTableWithEnum.py @@ -36,16 +36,16 @@ def Color(self): return 2 def TestSimpleTableWithEnumStart(builder): - return builder.StartObject(1) + builder.StartObject(1) def Start(builder): - return TestSimpleTableWithEnumStart(builder) + TestSimpleTableWithEnumStart(builder) def TestSimpleTableWithEnumAddColor(builder, color): - return builder.PrependUint8Slot(0, color, 2) + builder.PrependUint8Slot(0, color, 2) -def AddColor(builder, color): - return TestSimpleTableWithEnumAddColor(builder, color) +def AddColor(builder: flatbuffers.Builder, color: int): + TestSimpleTableWithEnumAddColor(builder, color) def TestSimpleTableWithEnumEnd(builder): return builder.EndObject() diff --git a/tests/MyGame/Example/TypeAliases.py b/tests/MyGame/Example/TypeAliases.py index 8fb33b9d31..27c6c4f933 100644 --- a/tests/MyGame/Example/TypeAliases.py +++ b/tests/MyGame/Example/TypeAliases.py @@ -153,93 +153,93 @@ def Vf64IsNone(self): return o == 0 def TypeAliasesStart(builder): - return builder.StartObject(12) + builder.StartObject(12) def Start(builder): - return TypeAliasesStart(builder) + TypeAliasesStart(builder) def TypeAliasesAddI8(builder, i8): - return builder.PrependInt8Slot(0, i8, 0) + builder.PrependInt8Slot(0, i8, 0) -def AddI8(builder, i8): - return TypeAliasesAddI8(builder, i8) +def AddI8(builder: flatbuffers.Builder, i8: int): + TypeAliasesAddI8(builder, i8) def TypeAliasesAddU8(builder, u8): - return builder.PrependUint8Slot(1, u8, 0) + builder.PrependUint8Slot(1, u8, 0) -def AddU8(builder, u8): - return TypeAliasesAddU8(builder, u8) +def AddU8(builder: flatbuffers.Builder, u8: int): + TypeAliasesAddU8(builder, u8) def TypeAliasesAddI16(builder, i16): - return builder.PrependInt16Slot(2, i16, 0) + builder.PrependInt16Slot(2, i16, 0) -def AddI16(builder, i16): - return TypeAliasesAddI16(builder, i16) +def AddI16(builder: flatbuffers.Builder, i16: int): + TypeAliasesAddI16(builder, i16) def TypeAliasesAddU16(builder, u16): - return builder.PrependUint16Slot(3, u16, 0) + builder.PrependUint16Slot(3, u16, 0) -def AddU16(builder, u16): - return TypeAliasesAddU16(builder, u16) +def AddU16(builder: flatbuffers.Builder, u16: int): + TypeAliasesAddU16(builder, u16) def TypeAliasesAddI32(builder, i32): - return builder.PrependInt32Slot(4, i32, 0) + builder.PrependInt32Slot(4, i32, 0) -def AddI32(builder, i32): - return TypeAliasesAddI32(builder, i32) +def AddI32(builder: flatbuffers.Builder, i32: int): + TypeAliasesAddI32(builder, i32) def TypeAliasesAddU32(builder, u32): - return builder.PrependUint32Slot(5, u32, 0) + builder.PrependUint32Slot(5, u32, 0) -def AddU32(builder, u32): - return TypeAliasesAddU32(builder, u32) +def AddU32(builder: flatbuffers.Builder, u32: int): + TypeAliasesAddU32(builder, u32) def TypeAliasesAddI64(builder, i64): - return builder.PrependInt64Slot(6, i64, 0) + builder.PrependInt64Slot(6, i64, 0) -def AddI64(builder, i64): - return TypeAliasesAddI64(builder, i64) +def AddI64(builder: flatbuffers.Builder, i64: int): + TypeAliasesAddI64(builder, i64) def TypeAliasesAddU64(builder, u64): - return builder.PrependUint64Slot(7, u64, 0) + builder.PrependUint64Slot(7, u64, 0) -def AddU64(builder, u64): - return TypeAliasesAddU64(builder, u64) +def AddU64(builder: flatbuffers.Builder, u64: int): + TypeAliasesAddU64(builder, u64) def TypeAliasesAddF32(builder, f32): - return builder.PrependFloat32Slot(8, f32, 0.0) + builder.PrependFloat32Slot(8, f32, 0.0) -def AddF32(builder, f32): - return TypeAliasesAddF32(builder, f32) +def AddF32(builder: flatbuffers.Builder, f32: float): + TypeAliasesAddF32(builder, f32) def TypeAliasesAddF64(builder, f64): - return builder.PrependFloat64Slot(9, f64, 0.0) + builder.PrependFloat64Slot(9, f64, 0.0) -def AddF64(builder, f64): - return TypeAliasesAddF64(builder, f64) +def AddF64(builder: flatbuffers.Builder, f64: float): + TypeAliasesAddF64(builder, f64) def TypeAliasesAddV8(builder, v8): - return builder.PrependUOffsetTRelativeSlot(10, flatbuffers.number_types.UOffsetTFlags.py_type(v8), 0) + builder.PrependUOffsetTRelativeSlot(10, flatbuffers.number_types.UOffsetTFlags.py_type(v8), 0) -def AddV8(builder, v8): - return TypeAliasesAddV8(builder, v8) +def AddV8(builder: flatbuffers.Builder, v8: int): + TypeAliasesAddV8(builder, v8) def TypeAliasesStartV8Vector(builder, numElems): return builder.StartVector(1, numElems, 1) -def StartV8Vector(builder, numElems): +def StartV8Vector(builder, numElems: int) -> int: return TypeAliasesStartV8Vector(builder, numElems) def TypeAliasesAddVf64(builder, vf64): - return builder.PrependUOffsetTRelativeSlot(11, flatbuffers.number_types.UOffsetTFlags.py_type(vf64), 0) + builder.PrependUOffsetTRelativeSlot(11, flatbuffers.number_types.UOffsetTFlags.py_type(vf64), 0) -def AddVf64(builder, vf64): - return TypeAliasesAddVf64(builder, vf64) +def AddVf64(builder: flatbuffers.Builder, vf64: int): + TypeAliasesAddVf64(builder, vf64) def TypeAliasesStartVf64Vector(builder, numElems): return builder.StartVector(8, numElems, 8) -def StartVf64Vector(builder, numElems): +def StartVf64Vector(builder, numElems: int) -> int: return TypeAliasesStartVf64Vector(builder, numElems) def TypeAliasesEnd(builder): diff --git a/tests/MyGame/Example2/Monster.py b/tests/MyGame/Example2/Monster.py index 965c4ffdc2..41c43e9ea2 100644 --- a/tests/MyGame/Example2/Monster.py +++ b/tests/MyGame/Example2/Monster.py @@ -29,10 +29,10 @@ def Init(self, buf, pos): self._tab = flatbuffers.table.Table(buf, pos) def MonsterStart(builder): - return builder.StartObject(0) + builder.StartObject(0) def Start(builder): - return MonsterStart(builder) + MonsterStart(builder) def MonsterEnd(builder): return builder.EndObject() diff --git a/tests/MyGame/InParentNamespace.py b/tests/MyGame/InParentNamespace.py index bd10e6955e..adbce9172b 100644 --- a/tests/MyGame/InParentNamespace.py +++ b/tests/MyGame/InParentNamespace.py @@ -29,10 +29,10 @@ def Init(self, buf, pos): self._tab = flatbuffers.table.Table(buf, pos) def InParentNamespaceStart(builder): - return builder.StartObject(0) + builder.StartObject(0) def Start(builder): - return InParentNamespaceStart(builder) + InParentNamespaceStart(builder) def InParentNamespaceEnd(builder): return builder.EndObject() diff --git a/tests/MyGame/MonsterExtra.py b/tests/MyGame/MonsterExtra.py index 10e380b79d..d9e183617c 100644 --- a/tests/MyGame/MonsterExtra.py +++ b/tests/MyGame/MonsterExtra.py @@ -4,13 +4,14 @@ import flatbuffers from flatbuffers.compat import import_numpy +from typing import Any np = import_numpy() class MonsterExtra(object): __slots__ = ['_tab'] @classmethod - def GetRootAs(cls, buf, offset=0): + def GetRootAs(cls, buf, offset: int = 0): n = flatbuffers.encode.Get(flatbuffers.packer.uoffset, buf, offset) x = MonsterExtra() x.Init(buf, n + offset) @@ -25,7 +26,7 @@ def MonsterExtraBufferHasIdentifier(cls, buf, offset, size_prefixed=False): return flatbuffers.util.BufferHasIdentifier(buf, offset, b"\x4D\x4F\x4E\x45", size_prefixed=size_prefixed) # MonsterExtra - def Init(self, buf, pos): + def Init(self, buf: bytes, pos: int): self._tab = flatbuffers.table.Table(buf, pos) # MonsterExtra @@ -85,7 +86,7 @@ def F3(self): return float('-inf') # MonsterExtra - def Dvec(self, j): + def Dvec(self, j: int): o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(20)) if o != 0: a = self._tab.Vector(o) @@ -100,19 +101,19 @@ def DvecAsNumpy(self): return 0 # MonsterExtra - def DvecLength(self): + def DvecLength(self) -> int: o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(20)) if o != 0: return self._tab.VectorLen(o) return 0 # MonsterExtra - def DvecIsNone(self): + def DvecIsNone(self) -> bool: o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(20)) return o == 0 # MonsterExtra - def Fvec(self, j): + def Fvec(self, j: int): o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(22)) if o != 0: a = self._tab.Vector(o) @@ -127,99 +128,99 @@ def FvecAsNumpy(self): return 0 # MonsterExtra - def FvecLength(self): + def FvecLength(self) -> int: o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(22)) if o != 0: return self._tab.VectorLen(o) return 0 # MonsterExtra - def FvecIsNone(self): + def FvecIsNone(self) -> bool: o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(22)) return o == 0 -def MonsterExtraStart(builder): - return builder.StartObject(11) +def MonsterExtraStart(builder: flatbuffers.Builder): + builder.StartObject(11) -def Start(builder): - return MonsterExtraStart(builder) +def Start(builder: flatbuffers.Builder): + MonsterExtraStart(builder) -def MonsterExtraAddD0(builder, d0): - return builder.PrependFloat64Slot(0, d0, float('nan')) +def MonsterExtraAddD0(builder: flatbuffers.Builder, d0: float): + builder.PrependFloat64Slot(0, d0, float('nan')) -def AddD0(builder, d0): - return MonsterExtraAddD0(builder, d0) +def AddD0(builder: flatbuffers.Builder, d0: float): + MonsterExtraAddD0(builder, d0) -def MonsterExtraAddD1(builder, d1): - return builder.PrependFloat64Slot(1, d1, float('nan')) +def MonsterExtraAddD1(builder: flatbuffers.Builder, d1: float): + builder.PrependFloat64Slot(1, d1, float('nan')) -def AddD1(builder, d1): - return MonsterExtraAddD1(builder, d1) +def AddD1(builder: flatbuffers.Builder, d1: float): + MonsterExtraAddD1(builder, d1) -def MonsterExtraAddD2(builder, d2): - return builder.PrependFloat64Slot(2, d2, float('inf')) +def MonsterExtraAddD2(builder: flatbuffers.Builder, d2: float): + builder.PrependFloat64Slot(2, d2, float('inf')) -def AddD2(builder, d2): - return MonsterExtraAddD2(builder, d2) +def AddD2(builder: flatbuffers.Builder, d2: float): + MonsterExtraAddD2(builder, d2) -def MonsterExtraAddD3(builder, d3): - return builder.PrependFloat64Slot(3, d3, float('-inf')) +def MonsterExtraAddD3(builder: flatbuffers.Builder, d3: float): + builder.PrependFloat64Slot(3, d3, float('-inf')) -def AddD3(builder, d3): - return MonsterExtraAddD3(builder, d3) +def AddD3(builder: flatbuffers.Builder, d3: float): + MonsterExtraAddD3(builder, d3) -def MonsterExtraAddF0(builder, f0): - return builder.PrependFloat32Slot(4, f0, float('nan')) +def MonsterExtraAddF0(builder: flatbuffers.Builder, f0: float): + builder.PrependFloat32Slot(4, f0, float('nan')) -def AddF0(builder, f0): - return MonsterExtraAddF0(builder, f0) +def AddF0(builder: flatbuffers.Builder, f0: float): + MonsterExtraAddF0(builder, f0) -def MonsterExtraAddF1(builder, f1): - return builder.PrependFloat32Slot(5, f1, float('nan')) +def MonsterExtraAddF1(builder: flatbuffers.Builder, f1: float): + builder.PrependFloat32Slot(5, f1, float('nan')) -def AddF1(builder, f1): - return MonsterExtraAddF1(builder, f1) +def AddF1(builder: flatbuffers.Builder, f1: float): + MonsterExtraAddF1(builder, f1) -def MonsterExtraAddF2(builder, f2): - return builder.PrependFloat32Slot(6, f2, float('inf')) +def MonsterExtraAddF2(builder: flatbuffers.Builder, f2: float): + builder.PrependFloat32Slot(6, f2, float('inf')) -def AddF2(builder, f2): - return MonsterExtraAddF2(builder, f2) +def AddF2(builder: flatbuffers.Builder, f2: float): + MonsterExtraAddF2(builder, f2) -def MonsterExtraAddF3(builder, f3): - return builder.PrependFloat32Slot(7, f3, float('-inf')) +def MonsterExtraAddF3(builder: flatbuffers.Builder, f3: float): + builder.PrependFloat32Slot(7, f3, float('-inf')) -def AddF3(builder, f3): - return MonsterExtraAddF3(builder, f3) +def AddF3(builder: flatbuffers.Builder, f3: float): + MonsterExtraAddF3(builder, f3) -def MonsterExtraAddDvec(builder, dvec): - return builder.PrependUOffsetTRelativeSlot(8, flatbuffers.number_types.UOffsetTFlags.py_type(dvec), 0) +def MonsterExtraAddDvec(builder: flatbuffers.Builder, dvec: int): + builder.PrependUOffsetTRelativeSlot(8, flatbuffers.number_types.UOffsetTFlags.py_type(dvec), 0) -def AddDvec(builder, dvec): - return MonsterExtraAddDvec(builder, dvec) +def AddDvec(builder: flatbuffers.Builder, dvec: int): + MonsterExtraAddDvec(builder, dvec) -def MonsterExtraStartDvecVector(builder, numElems): +def MonsterExtraStartDvecVector(builder, numElems: int) -> int: return builder.StartVector(8, numElems, 8) -def StartDvecVector(builder, numElems): +def StartDvecVector(builder, numElems: int) -> int: return MonsterExtraStartDvecVector(builder, numElems) -def MonsterExtraAddFvec(builder, fvec): - return builder.PrependUOffsetTRelativeSlot(9, flatbuffers.number_types.UOffsetTFlags.py_type(fvec), 0) +def MonsterExtraAddFvec(builder: flatbuffers.Builder, fvec: int): + builder.PrependUOffsetTRelativeSlot(9, flatbuffers.number_types.UOffsetTFlags.py_type(fvec), 0) -def AddFvec(builder, fvec): - return MonsterExtraAddFvec(builder, fvec) +def AddFvec(builder: flatbuffers.Builder, fvec: int): + MonsterExtraAddFvec(builder, fvec) -def MonsterExtraStartFvecVector(builder, numElems): +def MonsterExtraStartFvecVector(builder, numElems: int) -> int: return builder.StartVector(4, numElems, 4) -def StartFvecVector(builder, numElems): +def StartFvecVector(builder, numElems: int) -> int: return MonsterExtraStartFvecVector(builder, numElems) -def MonsterExtraEnd(builder): +def MonsterExtraEnd(builder: flatbuffers.Builder) -> int: return builder.EndObject() -def End(builder): +def End(builder: flatbuffers.Builder) -> int: return MonsterExtraEnd(builder) try: diff --git a/tests/monster_test_generated.py b/tests/monster_test_generated.py index 36bbb6021a..2acdf6ce85 100644 --- a/tests/monster_test_generated.py +++ b/tests/monster_test_generated.py @@ -109,7 +109,7 @@ def Init(self, buf, pos): self._tab = flatbuffers.table.Table(buf, pos) def InParentNamespaceStart(builder): - return builder.StartObject(0) + builder.StartObject(0) def InParentNamespaceEnd(builder): return builder.EndObject() @@ -174,7 +174,7 @@ def Init(self, buf, pos): self._tab = flatbuffers.table.Table(buf, pos) def MonsterStart(builder): - return builder.StartObject(0) + builder.StartObject(0) def MonsterEnd(builder): return builder.EndObject() @@ -306,10 +306,10 @@ def Color(self): return 2 def TestSimpleTableWithEnumStart(builder): - return builder.StartObject(1) + builder.StartObject(1) def TestSimpleTableWithEnumAddColor(builder, color): - return builder.PrependUint8Slot(0, color, 2) + builder.PrependUint8Slot(0, color, 2) def TestSimpleTableWithEnumEnd(builder): return builder.EndObject() @@ -708,16 +708,16 @@ def Count(self): return 0 def StatStart(builder): - return builder.StartObject(3) + builder.StartObject(3) def StatAddId(builder, id): - return builder.PrependUOffsetTRelativeSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(id), 0) + builder.PrependUOffsetTRelativeSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(id), 0) def StatAddVal(builder, val): - return builder.PrependInt64Slot(1, val, 0) + builder.PrependInt64Slot(1, val, 0) def StatAddCount(builder, count): - return builder.PrependUint16Slot(2, count, 0) + builder.PrependUint16Slot(2, count, 0) def StatEnd(builder): return builder.EndObject() @@ -800,10 +800,10 @@ def Id(self): return 0 def ReferrableStart(builder): - return builder.StartObject(1) + builder.StartObject(1) def ReferrableAddId(builder, id): - return builder.PrependUint64Slot(0, id, 0) + builder.PrependUint64Slot(0, id, 0) def ReferrableEnd(builder): return builder.EndObject() @@ -1050,7 +1050,7 @@ def TestnestedflatbufferAsNumpy(self): def TestnestedflatbufferNestedRoot(self): o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(30)) if o != 0: - from MyGame.Example.Monster import Monster + from .MyGame.Example.Monster import Monster return Monster.GetRootAs(self._tab.Bytes, self._tab.Vector(o)) return 0 @@ -1581,7 +1581,7 @@ def TestrequirednestedflatbufferAsNumpy(self): def TestrequirednestedflatbufferNestedRoot(self): o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(102)) if o != 0: - from MyGame.Example.Monster import Monster + from .MyGame.Example.Monster import Monster return Monster.GetRootAs(self._tab.Bytes, self._tab.Vector(o)) return 0 @@ -1702,58 +1702,58 @@ def DoubleInfDefault(self): return float('inf') def MonsterStart(builder): - return builder.StartObject(62) + builder.StartObject(62) def MonsterAddPos(builder, pos): - return builder.PrependStructSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(pos), 0) + builder.PrependStructSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(pos), 0) def MonsterAddMana(builder, mana): - return builder.PrependInt16Slot(1, mana, 150) + builder.PrependInt16Slot(1, mana, 150) def MonsterAddHp(builder, hp): - return builder.PrependInt16Slot(2, hp, 100) + builder.PrependInt16Slot(2, hp, 100) def MonsterAddName(builder, name): - return builder.PrependUOffsetTRelativeSlot(3, flatbuffers.number_types.UOffsetTFlags.py_type(name), 0) + builder.PrependUOffsetTRelativeSlot(3, flatbuffers.number_types.UOffsetTFlags.py_type(name), 0) def MonsterAddInventory(builder, inventory): - return builder.PrependUOffsetTRelativeSlot(5, flatbuffers.number_types.UOffsetTFlags.py_type(inventory), 0) + builder.PrependUOffsetTRelativeSlot(5, flatbuffers.number_types.UOffsetTFlags.py_type(inventory), 0) def MonsterStartInventoryVector(builder, numElems): return builder.StartVector(1, numElems, 1) def MonsterAddColor(builder, color): - return builder.PrependUint8Slot(6, color, 8) + builder.PrependUint8Slot(6, color, 8) def MonsterAddTestType(builder, testType): - return builder.PrependUint8Slot(7, testType, 0) + builder.PrependUint8Slot(7, testType, 0) def MonsterAddTest(builder, test): - return builder.PrependUOffsetTRelativeSlot(8, flatbuffers.number_types.UOffsetTFlags.py_type(test), 0) + builder.PrependUOffsetTRelativeSlot(8, flatbuffers.number_types.UOffsetTFlags.py_type(test), 0) def MonsterAddTest4(builder, test4): - return builder.PrependUOffsetTRelativeSlot(9, flatbuffers.number_types.UOffsetTFlags.py_type(test4), 0) + builder.PrependUOffsetTRelativeSlot(9, flatbuffers.number_types.UOffsetTFlags.py_type(test4), 0) def MonsterStartTest4Vector(builder, numElems): return builder.StartVector(4, numElems, 2) def MonsterAddTestarrayofstring(builder, testarrayofstring): - return builder.PrependUOffsetTRelativeSlot(10, flatbuffers.number_types.UOffsetTFlags.py_type(testarrayofstring), 0) + builder.PrependUOffsetTRelativeSlot(10, flatbuffers.number_types.UOffsetTFlags.py_type(testarrayofstring), 0) def MonsterStartTestarrayofstringVector(builder, numElems): return builder.StartVector(4, numElems, 4) def MonsterAddTestarrayoftables(builder, testarrayoftables): - return builder.PrependUOffsetTRelativeSlot(11, flatbuffers.number_types.UOffsetTFlags.py_type(testarrayoftables), 0) + builder.PrependUOffsetTRelativeSlot(11, flatbuffers.number_types.UOffsetTFlags.py_type(testarrayoftables), 0) def MonsterStartTestarrayoftablesVector(builder, numElems): return builder.StartVector(4, numElems, 4) def MonsterAddEnemy(builder, enemy): - return builder.PrependUOffsetTRelativeSlot(12, flatbuffers.number_types.UOffsetTFlags.py_type(enemy), 0) + builder.PrependUOffsetTRelativeSlot(12, flatbuffers.number_types.UOffsetTFlags.py_type(enemy), 0) def MonsterAddTestnestedflatbuffer(builder, testnestedflatbuffer): - return builder.PrependUOffsetTRelativeSlot(13, flatbuffers.number_types.UOffsetTFlags.py_type(testnestedflatbuffer), 0) + builder.PrependUOffsetTRelativeSlot(13, flatbuffers.number_types.UOffsetTFlags.py_type(testnestedflatbuffer), 0) def MonsterStartTestnestedflatbufferVector(builder, numElems): return builder.StartVector(1, numElems, 1) @@ -1764,151 +1764,151 @@ def MonsterMakeTestnestedflatbufferVectorFromBytes(builder, bytes): builder.Bytes[builder.head : builder.head + len(bytes)] = bytes return builder.EndVector() def MonsterAddTestempty(builder, testempty): - return builder.PrependUOffsetTRelativeSlot(14, flatbuffers.number_types.UOffsetTFlags.py_type(testempty), 0) + builder.PrependUOffsetTRelativeSlot(14, flatbuffers.number_types.UOffsetTFlags.py_type(testempty), 0) def MonsterAddTestbool(builder, testbool): - return builder.PrependBoolSlot(15, testbool, 0) + builder.PrependBoolSlot(15, testbool, 0) def MonsterAddTesthashs32Fnv1(builder, testhashs32Fnv1): - return builder.PrependInt32Slot(16, testhashs32Fnv1, 0) + builder.PrependInt32Slot(16, testhashs32Fnv1, 0) def MonsterAddTesthashu32Fnv1(builder, testhashu32Fnv1): - return builder.PrependUint32Slot(17, testhashu32Fnv1, 0) + builder.PrependUint32Slot(17, testhashu32Fnv1, 0) def MonsterAddTesthashs64Fnv1(builder, testhashs64Fnv1): - return builder.PrependInt64Slot(18, testhashs64Fnv1, 0) + builder.PrependInt64Slot(18, testhashs64Fnv1, 0) def MonsterAddTesthashu64Fnv1(builder, testhashu64Fnv1): - return builder.PrependUint64Slot(19, testhashu64Fnv1, 0) + builder.PrependUint64Slot(19, testhashu64Fnv1, 0) def MonsterAddTesthashs32Fnv1a(builder, testhashs32Fnv1a): - return builder.PrependInt32Slot(20, testhashs32Fnv1a, 0) + builder.PrependInt32Slot(20, testhashs32Fnv1a, 0) def MonsterAddTesthashu32Fnv1a(builder, testhashu32Fnv1a): - return builder.PrependUint32Slot(21, testhashu32Fnv1a, 0) + builder.PrependUint32Slot(21, testhashu32Fnv1a, 0) def MonsterAddTesthashs64Fnv1a(builder, testhashs64Fnv1a): - return builder.PrependInt64Slot(22, testhashs64Fnv1a, 0) + builder.PrependInt64Slot(22, testhashs64Fnv1a, 0) def MonsterAddTesthashu64Fnv1a(builder, testhashu64Fnv1a): - return builder.PrependUint64Slot(23, testhashu64Fnv1a, 0) + builder.PrependUint64Slot(23, testhashu64Fnv1a, 0) def MonsterAddTestarrayofbools(builder, testarrayofbools): - return builder.PrependUOffsetTRelativeSlot(24, flatbuffers.number_types.UOffsetTFlags.py_type(testarrayofbools), 0) + builder.PrependUOffsetTRelativeSlot(24, flatbuffers.number_types.UOffsetTFlags.py_type(testarrayofbools), 0) def MonsterStartTestarrayofboolsVector(builder, numElems): return builder.StartVector(1, numElems, 1) def MonsterAddTestf(builder, testf): - return builder.PrependFloat32Slot(25, testf, 3.14159) + builder.PrependFloat32Slot(25, testf, 3.14159) def MonsterAddTestf2(builder, testf2): - return builder.PrependFloat32Slot(26, testf2, 3.0) + builder.PrependFloat32Slot(26, testf2, 3.0) def MonsterAddTestf3(builder, testf3): - return builder.PrependFloat32Slot(27, testf3, 0.0) + builder.PrependFloat32Slot(27, testf3, 0.0) def MonsterAddTestarrayofstring2(builder, testarrayofstring2): - return builder.PrependUOffsetTRelativeSlot(28, flatbuffers.number_types.UOffsetTFlags.py_type(testarrayofstring2), 0) + builder.PrependUOffsetTRelativeSlot(28, flatbuffers.number_types.UOffsetTFlags.py_type(testarrayofstring2), 0) def MonsterStartTestarrayofstring2Vector(builder, numElems): return builder.StartVector(4, numElems, 4) def MonsterAddTestarrayofsortedstruct(builder, testarrayofsortedstruct): - return builder.PrependUOffsetTRelativeSlot(29, flatbuffers.number_types.UOffsetTFlags.py_type(testarrayofsortedstruct), 0) + builder.PrependUOffsetTRelativeSlot(29, flatbuffers.number_types.UOffsetTFlags.py_type(testarrayofsortedstruct), 0) def MonsterStartTestarrayofsortedstructVector(builder, numElems): return builder.StartVector(8, numElems, 4) def MonsterAddFlex(builder, flex): - return builder.PrependUOffsetTRelativeSlot(30, flatbuffers.number_types.UOffsetTFlags.py_type(flex), 0) + builder.PrependUOffsetTRelativeSlot(30, flatbuffers.number_types.UOffsetTFlags.py_type(flex), 0) def MonsterStartFlexVector(builder, numElems): return builder.StartVector(1, numElems, 1) def MonsterAddTest5(builder, test5): - return builder.PrependUOffsetTRelativeSlot(31, flatbuffers.number_types.UOffsetTFlags.py_type(test5), 0) + builder.PrependUOffsetTRelativeSlot(31, flatbuffers.number_types.UOffsetTFlags.py_type(test5), 0) def MonsterStartTest5Vector(builder, numElems): return builder.StartVector(4, numElems, 2) def MonsterAddVectorOfLongs(builder, vectorOfLongs): - return builder.PrependUOffsetTRelativeSlot(32, flatbuffers.number_types.UOffsetTFlags.py_type(vectorOfLongs), 0) + builder.PrependUOffsetTRelativeSlot(32, flatbuffers.number_types.UOffsetTFlags.py_type(vectorOfLongs), 0) def MonsterStartVectorOfLongsVector(builder, numElems): return builder.StartVector(8, numElems, 8) def MonsterAddVectorOfDoubles(builder, vectorOfDoubles): - return builder.PrependUOffsetTRelativeSlot(33, flatbuffers.number_types.UOffsetTFlags.py_type(vectorOfDoubles), 0) + builder.PrependUOffsetTRelativeSlot(33, flatbuffers.number_types.UOffsetTFlags.py_type(vectorOfDoubles), 0) def MonsterStartVectorOfDoublesVector(builder, numElems): return builder.StartVector(8, numElems, 8) def MonsterAddParentNamespaceTest(builder, parentNamespaceTest): - return builder.PrependUOffsetTRelativeSlot(34, flatbuffers.number_types.UOffsetTFlags.py_type(parentNamespaceTest), 0) + builder.PrependUOffsetTRelativeSlot(34, flatbuffers.number_types.UOffsetTFlags.py_type(parentNamespaceTest), 0) def MonsterAddVectorOfReferrables(builder, vectorOfReferrables): - return builder.PrependUOffsetTRelativeSlot(35, flatbuffers.number_types.UOffsetTFlags.py_type(vectorOfReferrables), 0) + builder.PrependUOffsetTRelativeSlot(35, flatbuffers.number_types.UOffsetTFlags.py_type(vectorOfReferrables), 0) def MonsterStartVectorOfReferrablesVector(builder, numElems): return builder.StartVector(4, numElems, 4) def MonsterAddSingleWeakReference(builder, singleWeakReference): - return builder.PrependUint64Slot(36, singleWeakReference, 0) + builder.PrependUint64Slot(36, singleWeakReference, 0) def MonsterAddVectorOfWeakReferences(builder, vectorOfWeakReferences): - return builder.PrependUOffsetTRelativeSlot(37, flatbuffers.number_types.UOffsetTFlags.py_type(vectorOfWeakReferences), 0) + builder.PrependUOffsetTRelativeSlot(37, flatbuffers.number_types.UOffsetTFlags.py_type(vectorOfWeakReferences), 0) def MonsterStartVectorOfWeakReferencesVector(builder, numElems): return builder.StartVector(8, numElems, 8) def MonsterAddVectorOfStrongReferrables(builder, vectorOfStrongReferrables): - return builder.PrependUOffsetTRelativeSlot(38, flatbuffers.number_types.UOffsetTFlags.py_type(vectorOfStrongReferrables), 0) + builder.PrependUOffsetTRelativeSlot(38, flatbuffers.number_types.UOffsetTFlags.py_type(vectorOfStrongReferrables), 0) def MonsterStartVectorOfStrongReferrablesVector(builder, numElems): return builder.StartVector(4, numElems, 4) def MonsterAddCoOwningReference(builder, coOwningReference): - return builder.PrependUint64Slot(39, coOwningReference, 0) + builder.PrependUint64Slot(39, coOwningReference, 0) def MonsterAddVectorOfCoOwningReferences(builder, vectorOfCoOwningReferences): - return builder.PrependUOffsetTRelativeSlot(40, flatbuffers.number_types.UOffsetTFlags.py_type(vectorOfCoOwningReferences), 0) + builder.PrependUOffsetTRelativeSlot(40, flatbuffers.number_types.UOffsetTFlags.py_type(vectorOfCoOwningReferences), 0) def MonsterStartVectorOfCoOwningReferencesVector(builder, numElems): return builder.StartVector(8, numElems, 8) def MonsterAddNonOwningReference(builder, nonOwningReference): - return builder.PrependUint64Slot(41, nonOwningReference, 0) + builder.PrependUint64Slot(41, nonOwningReference, 0) def MonsterAddVectorOfNonOwningReferences(builder, vectorOfNonOwningReferences): - return builder.PrependUOffsetTRelativeSlot(42, flatbuffers.number_types.UOffsetTFlags.py_type(vectorOfNonOwningReferences), 0) + builder.PrependUOffsetTRelativeSlot(42, flatbuffers.number_types.UOffsetTFlags.py_type(vectorOfNonOwningReferences), 0) def MonsterStartVectorOfNonOwningReferencesVector(builder, numElems): return builder.StartVector(8, numElems, 8) def MonsterAddAnyUniqueType(builder, anyUniqueType): - return builder.PrependUint8Slot(43, anyUniqueType, 0) + builder.PrependUint8Slot(43, anyUniqueType, 0) def MonsterAddAnyUnique(builder, anyUnique): - return builder.PrependUOffsetTRelativeSlot(44, flatbuffers.number_types.UOffsetTFlags.py_type(anyUnique), 0) + builder.PrependUOffsetTRelativeSlot(44, flatbuffers.number_types.UOffsetTFlags.py_type(anyUnique), 0) def MonsterAddAnyAmbiguousType(builder, anyAmbiguousType): - return builder.PrependUint8Slot(45, anyAmbiguousType, 0) + builder.PrependUint8Slot(45, anyAmbiguousType, 0) def MonsterAddAnyAmbiguous(builder, anyAmbiguous): - return builder.PrependUOffsetTRelativeSlot(46, flatbuffers.number_types.UOffsetTFlags.py_type(anyAmbiguous), 0) + builder.PrependUOffsetTRelativeSlot(46, flatbuffers.number_types.UOffsetTFlags.py_type(anyAmbiguous), 0) def MonsterAddVectorOfEnums(builder, vectorOfEnums): - return builder.PrependUOffsetTRelativeSlot(47, flatbuffers.number_types.UOffsetTFlags.py_type(vectorOfEnums), 0) + builder.PrependUOffsetTRelativeSlot(47, flatbuffers.number_types.UOffsetTFlags.py_type(vectorOfEnums), 0) def MonsterStartVectorOfEnumsVector(builder, numElems): return builder.StartVector(1, numElems, 1) def MonsterAddSignedEnum(builder, signedEnum): - return builder.PrependInt8Slot(48, signedEnum, -1) + builder.PrependInt8Slot(48, signedEnum, -1) def MonsterAddTestrequirednestedflatbuffer(builder, testrequirednestedflatbuffer): - return builder.PrependUOffsetTRelativeSlot(49, flatbuffers.number_types.UOffsetTFlags.py_type(testrequirednestedflatbuffer), 0) + builder.PrependUOffsetTRelativeSlot(49, flatbuffers.number_types.UOffsetTFlags.py_type(testrequirednestedflatbuffer), 0) def MonsterStartTestrequirednestedflatbufferVector(builder, numElems): return builder.StartVector(1, numElems, 1) @@ -1919,43 +1919,43 @@ def MonsterMakeTestrequirednestedflatbufferVectorFromBytes(builder, bytes): builder.Bytes[builder.head : builder.head + len(bytes)] = bytes return builder.EndVector() def MonsterAddScalarKeySortedTables(builder, scalarKeySortedTables): - return builder.PrependUOffsetTRelativeSlot(50, flatbuffers.number_types.UOffsetTFlags.py_type(scalarKeySortedTables), 0) + builder.PrependUOffsetTRelativeSlot(50, flatbuffers.number_types.UOffsetTFlags.py_type(scalarKeySortedTables), 0) def MonsterStartScalarKeySortedTablesVector(builder, numElems): return builder.StartVector(4, numElems, 4) def MonsterAddNativeInline(builder, nativeInline): - return builder.PrependStructSlot(51, flatbuffers.number_types.UOffsetTFlags.py_type(nativeInline), 0) + builder.PrependStructSlot(51, flatbuffers.number_types.UOffsetTFlags.py_type(nativeInline), 0) def MonsterAddLongEnumNonEnumDefault(builder, longEnumNonEnumDefault): - return builder.PrependUint64Slot(52, longEnumNonEnumDefault, 0) + builder.PrependUint64Slot(52, longEnumNonEnumDefault, 0) def MonsterAddLongEnumNormalDefault(builder, longEnumNormalDefault): - return builder.PrependUint64Slot(53, longEnumNormalDefault, 2) + builder.PrependUint64Slot(53, longEnumNormalDefault, 2) def MonsterAddNanDefault(builder, nanDefault): - return builder.PrependFloat32Slot(54, nanDefault, float('nan')) + builder.PrependFloat32Slot(54, nanDefault, float('nan')) def MonsterAddInfDefault(builder, infDefault): - return builder.PrependFloat32Slot(55, infDefault, float('inf')) + builder.PrependFloat32Slot(55, infDefault, float('inf')) def MonsterAddPositiveInfDefault(builder, positiveInfDefault): - return builder.PrependFloat32Slot(56, positiveInfDefault, float('inf')) + builder.PrependFloat32Slot(56, positiveInfDefault, float('inf')) def MonsterAddInfinityDefault(builder, infinityDefault): - return builder.PrependFloat32Slot(57, infinityDefault, float('inf')) + builder.PrependFloat32Slot(57, infinityDefault, float('inf')) def MonsterAddPositiveInfinityDefault(builder, positiveInfinityDefault): - return builder.PrependFloat32Slot(58, positiveInfinityDefault, float('inf')) + builder.PrependFloat32Slot(58, positiveInfinityDefault, float('inf')) def MonsterAddNegativeInfDefault(builder, negativeInfDefault): - return builder.PrependFloat32Slot(59, negativeInfDefault, float('-inf')) + builder.PrependFloat32Slot(59, negativeInfDefault, float('-inf')) def MonsterAddNegativeInfinityDefault(builder, negativeInfinityDefault): - return builder.PrependFloat32Slot(60, negativeInfinityDefault, float('-inf')) + builder.PrependFloat32Slot(60, negativeInfinityDefault, float('-inf')) def MonsterAddDoubleInfDefault(builder, doubleInfDefault): - return builder.PrependFloat64Slot(61, doubleInfDefault, float('inf')) + builder.PrependFloat64Slot(61, doubleInfDefault, float('inf')) def MonsterEnd(builder): return builder.EndObject() @@ -2652,46 +2652,46 @@ def Vf64IsNone(self): return o == 0 def TypeAliasesStart(builder): - return builder.StartObject(12) + builder.StartObject(12) def TypeAliasesAddI8(builder, i8): - return builder.PrependInt8Slot(0, i8, 0) + builder.PrependInt8Slot(0, i8, 0) def TypeAliasesAddU8(builder, u8): - return builder.PrependUint8Slot(1, u8, 0) + builder.PrependUint8Slot(1, u8, 0) def TypeAliasesAddI16(builder, i16): - return builder.PrependInt16Slot(2, i16, 0) + builder.PrependInt16Slot(2, i16, 0) def TypeAliasesAddU16(builder, u16): - return builder.PrependUint16Slot(3, u16, 0) + builder.PrependUint16Slot(3, u16, 0) def TypeAliasesAddI32(builder, i32): - return builder.PrependInt32Slot(4, i32, 0) + builder.PrependInt32Slot(4, i32, 0) def TypeAliasesAddU32(builder, u32): - return builder.PrependUint32Slot(5, u32, 0) + builder.PrependUint32Slot(5, u32, 0) def TypeAliasesAddI64(builder, i64): - return builder.PrependInt64Slot(6, i64, 0) + builder.PrependInt64Slot(6, i64, 0) def TypeAliasesAddU64(builder, u64): - return builder.PrependUint64Slot(7, u64, 0) + builder.PrependUint64Slot(7, u64, 0) def TypeAliasesAddF32(builder, f32): - return builder.PrependFloat32Slot(8, f32, 0.0) + builder.PrependFloat32Slot(8, f32, 0.0) def TypeAliasesAddF64(builder, f64): - return builder.PrependFloat64Slot(9, f64, 0.0) + builder.PrependFloat64Slot(9, f64, 0.0) def TypeAliasesAddV8(builder, v8): - return builder.PrependUOffsetTRelativeSlot(10, flatbuffers.number_types.UOffsetTFlags.py_type(v8), 0) + builder.PrependUOffsetTRelativeSlot(10, flatbuffers.number_types.UOffsetTFlags.py_type(v8), 0) def TypeAliasesStartV8Vector(builder, numElems): return builder.StartVector(1, numElems, 1) def TypeAliasesAddVf64(builder, vf64): - return builder.PrependUOffsetTRelativeSlot(11, flatbuffers.number_types.UOffsetTFlags.py_type(vf64), 0) + builder.PrependUOffsetTRelativeSlot(11, flatbuffers.number_types.UOffsetTFlags.py_type(vf64), 0) def TypeAliasesStartVf64Vector(builder, numElems): return builder.StartVector(8, numElems, 8) diff --git a/tests/optional_scalars/ScalarStuff.py b/tests/optional_scalars/ScalarStuff.py index b75ba22df3..07737d298c 100644 --- a/tests/optional_scalars/ScalarStuff.py +++ b/tests/optional_scalars/ScalarStuff.py @@ -281,226 +281,226 @@ def DefaultEnum(self): return 1 def ScalarStuffStart(builder): - return builder.StartObject(36) + builder.StartObject(36) def Start(builder): - return ScalarStuffStart(builder) + ScalarStuffStart(builder) def ScalarStuffAddJustI8(builder, justI8): - return builder.PrependInt8Slot(0, justI8, 0) + builder.PrependInt8Slot(0, justI8, 0) -def AddJustI8(builder, justI8): - return ScalarStuffAddJustI8(builder, justI8) +def AddJustI8(builder: flatbuffers.Builder, justI8: int): + ScalarStuffAddJustI8(builder, justI8) def ScalarStuffAddMaybeI8(builder, maybeI8): - return builder.PrependInt8Slot(1, maybeI8, None) + builder.PrependInt8Slot(1, maybeI8, None) -def AddMaybeI8(builder, maybeI8): - return ScalarStuffAddMaybeI8(builder, maybeI8) +def AddMaybeI8(builder: flatbuffers.Builder, maybeI8: int): + ScalarStuffAddMaybeI8(builder, maybeI8) def ScalarStuffAddDefaultI8(builder, defaultI8): - return builder.PrependInt8Slot(2, defaultI8, 42) + builder.PrependInt8Slot(2, defaultI8, 42) -def AddDefaultI8(builder, defaultI8): - return ScalarStuffAddDefaultI8(builder, defaultI8) +def AddDefaultI8(builder: flatbuffers.Builder, defaultI8: int): + ScalarStuffAddDefaultI8(builder, defaultI8) def ScalarStuffAddJustU8(builder, justU8): - return builder.PrependUint8Slot(3, justU8, 0) + builder.PrependUint8Slot(3, justU8, 0) -def AddJustU8(builder, justU8): - return ScalarStuffAddJustU8(builder, justU8) +def AddJustU8(builder: flatbuffers.Builder, justU8: int): + ScalarStuffAddJustU8(builder, justU8) def ScalarStuffAddMaybeU8(builder, maybeU8): - return builder.PrependUint8Slot(4, maybeU8, None) + builder.PrependUint8Slot(4, maybeU8, None) -def AddMaybeU8(builder, maybeU8): - return ScalarStuffAddMaybeU8(builder, maybeU8) +def AddMaybeU8(builder: flatbuffers.Builder, maybeU8: int): + ScalarStuffAddMaybeU8(builder, maybeU8) def ScalarStuffAddDefaultU8(builder, defaultU8): - return builder.PrependUint8Slot(5, defaultU8, 42) + builder.PrependUint8Slot(5, defaultU8, 42) -def AddDefaultU8(builder, defaultU8): - return ScalarStuffAddDefaultU8(builder, defaultU8) +def AddDefaultU8(builder: flatbuffers.Builder, defaultU8: int): + ScalarStuffAddDefaultU8(builder, defaultU8) def ScalarStuffAddJustI16(builder, justI16): - return builder.PrependInt16Slot(6, justI16, 0) + builder.PrependInt16Slot(6, justI16, 0) -def AddJustI16(builder, justI16): - return ScalarStuffAddJustI16(builder, justI16) +def AddJustI16(builder: flatbuffers.Builder, justI16: int): + ScalarStuffAddJustI16(builder, justI16) def ScalarStuffAddMaybeI16(builder, maybeI16): - return builder.PrependInt16Slot(7, maybeI16, None) + builder.PrependInt16Slot(7, maybeI16, None) -def AddMaybeI16(builder, maybeI16): - return ScalarStuffAddMaybeI16(builder, maybeI16) +def AddMaybeI16(builder: flatbuffers.Builder, maybeI16: int): + ScalarStuffAddMaybeI16(builder, maybeI16) def ScalarStuffAddDefaultI16(builder, defaultI16): - return builder.PrependInt16Slot(8, defaultI16, 42) + builder.PrependInt16Slot(8, defaultI16, 42) -def AddDefaultI16(builder, defaultI16): - return ScalarStuffAddDefaultI16(builder, defaultI16) +def AddDefaultI16(builder: flatbuffers.Builder, defaultI16: int): + ScalarStuffAddDefaultI16(builder, defaultI16) def ScalarStuffAddJustU16(builder, justU16): - return builder.PrependUint16Slot(9, justU16, 0) + builder.PrependUint16Slot(9, justU16, 0) -def AddJustU16(builder, justU16): - return ScalarStuffAddJustU16(builder, justU16) +def AddJustU16(builder: flatbuffers.Builder, justU16: int): + ScalarStuffAddJustU16(builder, justU16) def ScalarStuffAddMaybeU16(builder, maybeU16): - return builder.PrependUint16Slot(10, maybeU16, None) + builder.PrependUint16Slot(10, maybeU16, None) -def AddMaybeU16(builder, maybeU16): - return ScalarStuffAddMaybeU16(builder, maybeU16) +def AddMaybeU16(builder: flatbuffers.Builder, maybeU16: int): + ScalarStuffAddMaybeU16(builder, maybeU16) def ScalarStuffAddDefaultU16(builder, defaultU16): - return builder.PrependUint16Slot(11, defaultU16, 42) + builder.PrependUint16Slot(11, defaultU16, 42) -def AddDefaultU16(builder, defaultU16): - return ScalarStuffAddDefaultU16(builder, defaultU16) +def AddDefaultU16(builder: flatbuffers.Builder, defaultU16: int): + ScalarStuffAddDefaultU16(builder, defaultU16) def ScalarStuffAddJustI32(builder, justI32): - return builder.PrependInt32Slot(12, justI32, 0) + builder.PrependInt32Slot(12, justI32, 0) -def AddJustI32(builder, justI32): - return ScalarStuffAddJustI32(builder, justI32) +def AddJustI32(builder: flatbuffers.Builder, justI32: int): + ScalarStuffAddJustI32(builder, justI32) def ScalarStuffAddMaybeI32(builder, maybeI32): - return builder.PrependInt32Slot(13, maybeI32, None) + builder.PrependInt32Slot(13, maybeI32, None) -def AddMaybeI32(builder, maybeI32): - return ScalarStuffAddMaybeI32(builder, maybeI32) +def AddMaybeI32(builder: flatbuffers.Builder, maybeI32: int): + ScalarStuffAddMaybeI32(builder, maybeI32) def ScalarStuffAddDefaultI32(builder, defaultI32): - return builder.PrependInt32Slot(14, defaultI32, 42) + builder.PrependInt32Slot(14, defaultI32, 42) -def AddDefaultI32(builder, defaultI32): - return ScalarStuffAddDefaultI32(builder, defaultI32) +def AddDefaultI32(builder: flatbuffers.Builder, defaultI32: int): + ScalarStuffAddDefaultI32(builder, defaultI32) def ScalarStuffAddJustU32(builder, justU32): - return builder.PrependUint32Slot(15, justU32, 0) + builder.PrependUint32Slot(15, justU32, 0) -def AddJustU32(builder, justU32): - return ScalarStuffAddJustU32(builder, justU32) +def AddJustU32(builder: flatbuffers.Builder, justU32: int): + ScalarStuffAddJustU32(builder, justU32) def ScalarStuffAddMaybeU32(builder, maybeU32): - return builder.PrependUint32Slot(16, maybeU32, None) + builder.PrependUint32Slot(16, maybeU32, None) -def AddMaybeU32(builder, maybeU32): - return ScalarStuffAddMaybeU32(builder, maybeU32) +def AddMaybeU32(builder: flatbuffers.Builder, maybeU32: int): + ScalarStuffAddMaybeU32(builder, maybeU32) def ScalarStuffAddDefaultU32(builder, defaultU32): - return builder.PrependUint32Slot(17, defaultU32, 42) + builder.PrependUint32Slot(17, defaultU32, 42) -def AddDefaultU32(builder, defaultU32): - return ScalarStuffAddDefaultU32(builder, defaultU32) +def AddDefaultU32(builder: flatbuffers.Builder, defaultU32: int): + ScalarStuffAddDefaultU32(builder, defaultU32) def ScalarStuffAddJustI64(builder, justI64): - return builder.PrependInt64Slot(18, justI64, 0) + builder.PrependInt64Slot(18, justI64, 0) -def AddJustI64(builder, justI64): - return ScalarStuffAddJustI64(builder, justI64) +def AddJustI64(builder: flatbuffers.Builder, justI64: int): + ScalarStuffAddJustI64(builder, justI64) def ScalarStuffAddMaybeI64(builder, maybeI64): - return builder.PrependInt64Slot(19, maybeI64, None) + builder.PrependInt64Slot(19, maybeI64, None) -def AddMaybeI64(builder, maybeI64): - return ScalarStuffAddMaybeI64(builder, maybeI64) +def AddMaybeI64(builder: flatbuffers.Builder, maybeI64: int): + ScalarStuffAddMaybeI64(builder, maybeI64) def ScalarStuffAddDefaultI64(builder, defaultI64): - return builder.PrependInt64Slot(20, defaultI64, 42) + builder.PrependInt64Slot(20, defaultI64, 42) -def AddDefaultI64(builder, defaultI64): - return ScalarStuffAddDefaultI64(builder, defaultI64) +def AddDefaultI64(builder: flatbuffers.Builder, defaultI64: int): + ScalarStuffAddDefaultI64(builder, defaultI64) def ScalarStuffAddJustU64(builder, justU64): - return builder.PrependUint64Slot(21, justU64, 0) + builder.PrependUint64Slot(21, justU64, 0) -def AddJustU64(builder, justU64): - return ScalarStuffAddJustU64(builder, justU64) +def AddJustU64(builder: flatbuffers.Builder, justU64: int): + ScalarStuffAddJustU64(builder, justU64) def ScalarStuffAddMaybeU64(builder, maybeU64): - return builder.PrependUint64Slot(22, maybeU64, None) + builder.PrependUint64Slot(22, maybeU64, None) -def AddMaybeU64(builder, maybeU64): - return ScalarStuffAddMaybeU64(builder, maybeU64) +def AddMaybeU64(builder: flatbuffers.Builder, maybeU64: int): + ScalarStuffAddMaybeU64(builder, maybeU64) def ScalarStuffAddDefaultU64(builder, defaultU64): - return builder.PrependUint64Slot(23, defaultU64, 42) + builder.PrependUint64Slot(23, defaultU64, 42) -def AddDefaultU64(builder, defaultU64): - return ScalarStuffAddDefaultU64(builder, defaultU64) +def AddDefaultU64(builder: flatbuffers.Builder, defaultU64: int): + ScalarStuffAddDefaultU64(builder, defaultU64) def ScalarStuffAddJustF32(builder, justF32): - return builder.PrependFloat32Slot(24, justF32, 0.0) + builder.PrependFloat32Slot(24, justF32, 0.0) -def AddJustF32(builder, justF32): - return ScalarStuffAddJustF32(builder, justF32) +def AddJustF32(builder: flatbuffers.Builder, justF32: float): + ScalarStuffAddJustF32(builder, justF32) def ScalarStuffAddMaybeF32(builder, maybeF32): - return builder.PrependFloat32Slot(25, maybeF32, None) + builder.PrependFloat32Slot(25, maybeF32, None) -def AddMaybeF32(builder, maybeF32): - return ScalarStuffAddMaybeF32(builder, maybeF32) +def AddMaybeF32(builder: flatbuffers.Builder, maybeF32: float): + ScalarStuffAddMaybeF32(builder, maybeF32) def ScalarStuffAddDefaultF32(builder, defaultF32): - return builder.PrependFloat32Slot(26, defaultF32, 42.0) + builder.PrependFloat32Slot(26, defaultF32, 42.0) -def AddDefaultF32(builder, defaultF32): - return ScalarStuffAddDefaultF32(builder, defaultF32) +def AddDefaultF32(builder: flatbuffers.Builder, defaultF32: float): + ScalarStuffAddDefaultF32(builder, defaultF32) def ScalarStuffAddJustF64(builder, justF64): - return builder.PrependFloat64Slot(27, justF64, 0.0) + builder.PrependFloat64Slot(27, justF64, 0.0) -def AddJustF64(builder, justF64): - return ScalarStuffAddJustF64(builder, justF64) +def AddJustF64(builder: flatbuffers.Builder, justF64: float): + ScalarStuffAddJustF64(builder, justF64) def ScalarStuffAddMaybeF64(builder, maybeF64): - return builder.PrependFloat64Slot(28, maybeF64, None) + builder.PrependFloat64Slot(28, maybeF64, None) -def AddMaybeF64(builder, maybeF64): - return ScalarStuffAddMaybeF64(builder, maybeF64) +def AddMaybeF64(builder: flatbuffers.Builder, maybeF64: float): + ScalarStuffAddMaybeF64(builder, maybeF64) def ScalarStuffAddDefaultF64(builder, defaultF64): - return builder.PrependFloat64Slot(29, defaultF64, 42.0) + builder.PrependFloat64Slot(29, defaultF64, 42.0) -def AddDefaultF64(builder, defaultF64): - return ScalarStuffAddDefaultF64(builder, defaultF64) +def AddDefaultF64(builder: flatbuffers.Builder, defaultF64: float): + ScalarStuffAddDefaultF64(builder, defaultF64) def ScalarStuffAddJustBool(builder, justBool): - return builder.PrependBoolSlot(30, justBool, 0) + builder.PrependBoolSlot(30, justBool, 0) -def AddJustBool(builder, justBool): - return ScalarStuffAddJustBool(builder, justBool) +def AddJustBool(builder: flatbuffers.Builder, justBool: bool): + ScalarStuffAddJustBool(builder, justBool) def ScalarStuffAddMaybeBool(builder, maybeBool): - return builder.PrependBoolSlot(31, maybeBool, None) + builder.PrependBoolSlot(31, maybeBool, None) -def AddMaybeBool(builder, maybeBool): - return ScalarStuffAddMaybeBool(builder, maybeBool) +def AddMaybeBool(builder: flatbuffers.Builder, maybeBool: bool): + ScalarStuffAddMaybeBool(builder, maybeBool) def ScalarStuffAddDefaultBool(builder, defaultBool): - return builder.PrependBoolSlot(32, defaultBool, 1) + builder.PrependBoolSlot(32, defaultBool, 1) -def AddDefaultBool(builder, defaultBool): - return ScalarStuffAddDefaultBool(builder, defaultBool) +def AddDefaultBool(builder: flatbuffers.Builder, defaultBool: bool): + ScalarStuffAddDefaultBool(builder, defaultBool) def ScalarStuffAddJustEnum(builder, justEnum): - return builder.PrependInt8Slot(33, justEnum, 0) + builder.PrependInt8Slot(33, justEnum, 0) -def AddJustEnum(builder, justEnum): - return ScalarStuffAddJustEnum(builder, justEnum) +def AddJustEnum(builder: flatbuffers.Builder, justEnum: int): + ScalarStuffAddJustEnum(builder, justEnum) def ScalarStuffAddMaybeEnum(builder, maybeEnum): - return builder.PrependInt8Slot(34, maybeEnum, None) + builder.PrependInt8Slot(34, maybeEnum, None) -def AddMaybeEnum(builder, maybeEnum): - return ScalarStuffAddMaybeEnum(builder, maybeEnum) +def AddMaybeEnum(builder: flatbuffers.Builder, maybeEnum: int): + ScalarStuffAddMaybeEnum(builder, maybeEnum) def ScalarStuffAddDefaultEnum(builder, defaultEnum): - return builder.PrependInt8Slot(35, defaultEnum, 1) + builder.PrependInt8Slot(35, defaultEnum, 1) -def AddDefaultEnum(builder, defaultEnum): - return ScalarStuffAddDefaultEnum(builder, defaultEnum) +def AddDefaultEnum(builder: flatbuffers.Builder, defaultEnum: int): + ScalarStuffAddDefaultEnum(builder, defaultEnum) def ScalarStuffEnd(builder): return builder.EndObject() diff --git a/tests/test.fbs b/tests/test.fbs new file mode 100644 index 0000000000..791f7f7b5c --- /dev/null +++ b/tests/test.fbs @@ -0,0 +1,85 @@ +// Generated from test.proto + +include "imported.fbs"; + +namespace proto.test; + +/// Enum doc comment. +enum ProtoEnum : int { + NUL = 0, + FOO = 1, + /// Enum 2nd value doc comment misaligned. + BAR = 5, +} + +namespace proto.test.ProtoMessage_.OtherMessage_; + +enum ProtoEnum : int { + NUL = 0, + FOO = 1, + BAR = 2, + BAZ = 3, +} + +namespace proto.test; + +/// 2nd table doc comment with +/// many lines. +table ProtoMessage { + c:int = 16; + d:long; + p:uint; + e:ulong; + /// doc comment for f. + f:int = -1; + g:long; + h:uint; + q:ulong; + i:int; + j:long; + /// doc comment for k. + k:bool; + /// doc comment for l on 2 + /// lines + l:string (required); + m:[ubyte]; + n:proto.test.ProtoMessage_.OtherMessage; + o:[string]; + z:proto.test.ImportedMessage; + /// doc comment for r. + r:proto.test.ProtoMessage_.Anonymous0; + outer_enum:proto.test.ProtoEnum; + u:float = +inf; + v:float = +inf; + w:float = -inf; + grades:[proto.test.ProtoMessage_.GradesEntry]; + other_message_map:[proto.test.ProtoMessage_.OtherMessageMapEntry]; +} + +namespace proto.test.ProtoMessage_; + +table OtherMessage { + a:double; + /// doc comment for b. + b:float = 3.14149; + foo_bar_baz:proto.test.ProtoMessage_.OtherMessage_.ProtoEnum; +} + +table Anonymous0 { + /// doc comment for s. + s:proto.test.ImportedMessage; + /// doc comment for t on 2 + /// lines. + t:proto.test.ProtoMessage_.OtherMessage; +} + +table GradesEntry { + key:string (key); + value:float; +} + +table OtherMessageMapEntry { + key:string (key); + value:proto.test.ProtoMessage_.OtherMessage; +} + From c192ab423b5dc63f467a2ad32bab6bc883d44dbe Mon Sep 17 00:00:00 2001 From: Berke Date: Fri, 28 Apr 2023 19:51:11 +0300 Subject: [PATCH 161/571] additional check for absl::string_view availability (#7897) absl::string_view is uses std::string_view when available. It already checks if std::string_view is available in the earlier code. It should only use absl::string_view implementation. Co-authored-by: Derek Bailey --- include/flatbuffers/base.h | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/include/flatbuffers/base.h b/include/flatbuffers/base.h index bc64f18ad9..98a02262c2 100644 --- a/include/flatbuffers/base.h +++ b/include/flatbuffers/base.h @@ -233,12 +233,17 @@ namespace flatbuffers { } #define FLATBUFFERS_HAS_STRING_VIEW 1 // Check for absl::string_view - #elif __has_include("absl/strings/string_view.h") && (__cplusplus >= 201411) - #include "absl/strings/string_view.h" - namespace flatbuffers { - typedef absl::string_view string_view; - } - #define FLATBUFFERS_HAS_STRING_VIEW 1 + #elif __has_include("absl/strings/string_view.h") && \ + __has_include("absl/base/config.h") && \ + (__cplusplus >= 201411) + #include "absl/base/config.h" + #if !defined(ABSL_USES_STD_STRING_VIEW) + #include "absl/strings/string_view.h" + namespace flatbuffers { + typedef absl::string_view string_view; + } + #define FLATBUFFERS_HAS_STRING_VIEW 1 + #endif #endif #endif // __has_include #endif // !FLATBUFFERS_HAS_STRING_VIEW From 417821fdd7eb82d0ebbd9ea1e920d4b27fb5c1b7 Mon Sep 17 00:00:00 2001 From: Aaron Riekenberg Date: Fri, 28 Apr 2023 12:10:01 -0500 Subject: [PATCH 162/571] Only generate @kotlin.ExperimentalUnsigned annotation on create*Vector methods having an unsigned array type parameter. (#7881) Co-authored-by: Derek Bailey --- src/idl_gen_kotlin.cpp | 5 +++-- tests/DictionaryLookup/LongFloatEntry.kt | 1 - tests/DictionaryLookup/LongFloatMap.kt | 1 - tests/MyGame/Example/Ability.kt | 1 - tests/MyGame/Example/Any.kt | 1 - tests/MyGame/Example/AnyAmbiguousAliases.kt | 1 - tests/MyGame/Example/AnyUniqueAliases.kt | 1 - tests/MyGame/Example/Color.kt | 1 - tests/MyGame/Example/LongEnum.kt | 1 - tests/MyGame/Example/Monster.kt | 9 ++++++++- tests/MyGame/Example/Race.kt | 1 - tests/MyGame/Example/Referrable.kt | 1 - tests/MyGame/Example/Stat.kt | 1 - tests/MyGame/Example/StructOfStructs.kt | 1 - tests/MyGame/Example/StructOfStructsOfStructs.kt | 1 - tests/MyGame/Example/Test.kt | 1 - tests/MyGame/Example/TestSimpleTableWithEnum.kt | 1 - tests/MyGame/Example/TypeAliases.kt | 1 - tests/MyGame/Example/Vec3.kt | 1 - tests/MyGame/Example2/Monster.kt | 1 - tests/MyGame/InParentNamespace.kt | 1 - tests/MyGame/MonsterExtra.kt | 1 - tests/optional_scalars/OptionalByte.kt | 1 - tests/optional_scalars/ScalarStuff.kt | 1 - tests/union_vector/Attacker.kt | 1 - tests/union_vector/BookReader.kt | 1 - tests/union_vector/Character.kt | 1 - tests/union_vector/FallingTub.kt | 1 - tests/union_vector/Gadget.kt | 1 - tests/union_vector/HandFan.kt | 1 - tests/union_vector/Movie.kt | 2 +- tests/union_vector/Rapunzel.kt | 1 - 32 files changed, 12 insertions(+), 33 deletions(-) diff --git a/src/idl_gen_kotlin.cpp b/src/idl_gen_kotlin.cpp index 4ca75e3d02..71b9db5c6f 100644 --- a/src/idl_gen_kotlin.cpp +++ b/src/idl_gen_kotlin.cpp @@ -289,7 +289,6 @@ class KotlinGenerator : public BaseGenerator { GenerateComment(enum_def.doc_comment, writer, &comment_config); writer += "@Suppress(\"unused\")"; - writer += "@kotlin.ExperimentalUnsignedTypes"; writer += "class " + namer_.Type(enum_def) + " private constructor() {"; writer.IncrementIdentLevel(); @@ -495,7 +494,6 @@ class KotlinGenerator : public BaseGenerator { writer.SetValue("superclass", fixed ? "Struct" : "Table"); writer += "@Suppress(\"unused\")"; - writer += "@kotlin.ExperimentalUnsignedTypes"; writer += "class {{struct_name}} : {{superclass}}() {\n"; writer.IncrementIdentLevel(); @@ -703,6 +701,9 @@ class KotlinGenerator : public BaseGenerator { writer.SetValue("root", GenMethod(vector_type)); writer.SetValue("cast", CastToSigned(vector_type)); + if (IsUnsigned(vector_type.base_type)) { + writer += "@kotlin.ExperimentalUnsignedTypes"; + } GenerateFun( writer, method_name, params, "Int", [&]() { diff --git a/tests/DictionaryLookup/LongFloatEntry.kt b/tests/DictionaryLookup/LongFloatEntry.kt index c9be31d8b2..bf1a0f4b4a 100644 --- a/tests/DictionaryLookup/LongFloatEntry.kt +++ b/tests/DictionaryLookup/LongFloatEntry.kt @@ -19,7 +19,6 @@ import java.nio.ByteOrder import kotlin.math.sign @Suppress("unused") -@kotlin.ExperimentalUnsignedTypes class LongFloatEntry : Table() { fun __init(_i: Int, _bb: ByteBuffer) { diff --git a/tests/DictionaryLookup/LongFloatMap.kt b/tests/DictionaryLookup/LongFloatMap.kt index 32467ddb2f..816382a403 100644 --- a/tests/DictionaryLookup/LongFloatMap.kt +++ b/tests/DictionaryLookup/LongFloatMap.kt @@ -19,7 +19,6 @@ import java.nio.ByteOrder import kotlin.math.sign @Suppress("unused") -@kotlin.ExperimentalUnsignedTypes class LongFloatMap : Table() { fun __init(_i: Int, _bb: ByteBuffer) { diff --git a/tests/MyGame/Example/Ability.kt b/tests/MyGame/Example/Ability.kt index a3e17bef1a..dc2b0b8640 100644 --- a/tests/MyGame/Example/Ability.kt +++ b/tests/MyGame/Example/Ability.kt @@ -19,7 +19,6 @@ import java.nio.ByteOrder import kotlin.math.sign @Suppress("unused") -@kotlin.ExperimentalUnsignedTypes class Ability : Struct() { fun __init(_i: Int, _bb: ByteBuffer) { diff --git a/tests/MyGame/Example/Any.kt b/tests/MyGame/Example/Any.kt index 8b900723a5..d7dd7bbe1d 100644 --- a/tests/MyGame/Example/Any.kt +++ b/tests/MyGame/Example/Any.kt @@ -3,7 +3,6 @@ package MyGame.Example @Suppress("unused") -@kotlin.ExperimentalUnsignedTypes class Any_ private constructor() { companion object { const val NONE: UByte = 0u diff --git a/tests/MyGame/Example/AnyAmbiguousAliases.kt b/tests/MyGame/Example/AnyAmbiguousAliases.kt index 4043096546..c38923b9e9 100644 --- a/tests/MyGame/Example/AnyAmbiguousAliases.kt +++ b/tests/MyGame/Example/AnyAmbiguousAliases.kt @@ -3,7 +3,6 @@ package MyGame.Example @Suppress("unused") -@kotlin.ExperimentalUnsignedTypes class AnyAmbiguousAliases private constructor() { companion object { const val NONE: UByte = 0u diff --git a/tests/MyGame/Example/AnyUniqueAliases.kt b/tests/MyGame/Example/AnyUniqueAliases.kt index 8be0cc8260..2db45a6c2c 100644 --- a/tests/MyGame/Example/AnyUniqueAliases.kt +++ b/tests/MyGame/Example/AnyUniqueAliases.kt @@ -3,7 +3,6 @@ package MyGame.Example @Suppress("unused") -@kotlin.ExperimentalUnsignedTypes class AnyUniqueAliases private constructor() { companion object { const val NONE: UByte = 0u diff --git a/tests/MyGame/Example/Color.kt b/tests/MyGame/Example/Color.kt index 61a313e63e..0af56e1ee3 100644 --- a/tests/MyGame/Example/Color.kt +++ b/tests/MyGame/Example/Color.kt @@ -6,7 +6,6 @@ package MyGame.Example * Composite components of Monster color. */ @Suppress("unused") -@kotlin.ExperimentalUnsignedTypes class Color private constructor() { companion object { const val Red: UByte = 1u diff --git a/tests/MyGame/Example/LongEnum.kt b/tests/MyGame/Example/LongEnum.kt index 328c9c4f2d..ecb5aabf92 100644 --- a/tests/MyGame/Example/LongEnum.kt +++ b/tests/MyGame/Example/LongEnum.kt @@ -3,7 +3,6 @@ package MyGame.Example @Suppress("unused") -@kotlin.ExperimentalUnsignedTypes class LongEnum private constructor() { companion object { const val LongOne: ULong = 2UL diff --git a/tests/MyGame/Example/Monster.kt b/tests/MyGame/Example/Monster.kt index eae51e0fdb..4631ae0f9c 100644 --- a/tests/MyGame/Example/Monster.kt +++ b/tests/MyGame/Example/Monster.kt @@ -22,7 +22,6 @@ import kotlin.math.sign * an example documentation comment: "monster object" */ @Suppress("unused") -@kotlin.ExperimentalUnsignedTypes class Monster : Table() { fun __init(_i: Int, _bb: ByteBuffer) { @@ -1019,6 +1018,7 @@ class Monster : Table() { builder.slot(3) } fun addInventory(builder: FlatBufferBuilder, inventory: Int) = builder.addOffset(5, inventory, 0) + @kotlin.ExperimentalUnsignedTypes fun createInventoryVector(builder: FlatBufferBuilder, data: UByteArray) : Int { builder.startVector(1, data.size, 1) for (i in data.size - 1 downTo 0) { @@ -1052,6 +1052,7 @@ class Monster : Table() { fun startTestarrayoftablesVector(builder: FlatBufferBuilder, numElems: Int) = builder.startVector(4, numElems, 4) fun addEnemy(builder: FlatBufferBuilder, enemy: Int) = builder.addOffset(12, enemy, 0) fun addTestnestedflatbuffer(builder: FlatBufferBuilder, testnestedflatbuffer: Int) = builder.addOffset(13, testnestedflatbuffer, 0) + @kotlin.ExperimentalUnsignedTypes fun createTestnestedflatbufferVector(builder: FlatBufferBuilder, data: UByteArray) : Int { builder.startVector(1, data.size, 1) for (i in data.size - 1 downTo 0) { @@ -1094,6 +1095,7 @@ class Monster : Table() { fun addTestarrayofsortedstruct(builder: FlatBufferBuilder, testarrayofsortedstruct: Int) = builder.addOffset(29, testarrayofsortedstruct, 0) fun startTestarrayofsortedstructVector(builder: FlatBufferBuilder, numElems: Int) = builder.startVector(8, numElems, 4) fun addFlex(builder: FlatBufferBuilder, flex: Int) = builder.addOffset(30, flex, 0) + @kotlin.ExperimentalUnsignedTypes fun createFlexVector(builder: FlatBufferBuilder, data: UByteArray) : Int { builder.startVector(1, data.size, 1) for (i in data.size - 1 downTo 0) { @@ -1134,6 +1136,7 @@ class Monster : Table() { fun startVectorOfReferrablesVector(builder: FlatBufferBuilder, numElems: Int) = builder.startVector(4, numElems, 4) fun addSingleWeakReference(builder: FlatBufferBuilder, singleWeakReference: ULong) = builder.addLong(36, singleWeakReference.toLong(), 0) fun addVectorOfWeakReferences(builder: FlatBufferBuilder, vectorOfWeakReferences: Int) = builder.addOffset(37, vectorOfWeakReferences, 0) + @kotlin.ExperimentalUnsignedTypes fun createVectorOfWeakReferencesVector(builder: FlatBufferBuilder, data: ULongArray) : Int { builder.startVector(8, data.size, 8) for (i in data.size - 1 downTo 0) { @@ -1153,6 +1156,7 @@ class Monster : Table() { fun startVectorOfStrongReferrablesVector(builder: FlatBufferBuilder, numElems: Int) = builder.startVector(4, numElems, 4) fun addCoOwningReference(builder: FlatBufferBuilder, coOwningReference: ULong) = builder.addLong(39, coOwningReference.toLong(), 0) fun addVectorOfCoOwningReferences(builder: FlatBufferBuilder, vectorOfCoOwningReferences: Int) = builder.addOffset(40, vectorOfCoOwningReferences, 0) + @kotlin.ExperimentalUnsignedTypes fun createVectorOfCoOwningReferencesVector(builder: FlatBufferBuilder, data: ULongArray) : Int { builder.startVector(8, data.size, 8) for (i in data.size - 1 downTo 0) { @@ -1163,6 +1167,7 @@ class Monster : Table() { fun startVectorOfCoOwningReferencesVector(builder: FlatBufferBuilder, numElems: Int) = builder.startVector(8, numElems, 8) fun addNonOwningReference(builder: FlatBufferBuilder, nonOwningReference: ULong) = builder.addLong(41, nonOwningReference.toLong(), 0) fun addVectorOfNonOwningReferences(builder: FlatBufferBuilder, vectorOfNonOwningReferences: Int) = builder.addOffset(42, vectorOfNonOwningReferences, 0) + @kotlin.ExperimentalUnsignedTypes fun createVectorOfNonOwningReferencesVector(builder: FlatBufferBuilder, data: ULongArray) : Int { builder.startVector(8, data.size, 8) for (i in data.size - 1 downTo 0) { @@ -1176,6 +1181,7 @@ class Monster : Table() { fun addAnyAmbiguousType(builder: FlatBufferBuilder, anyAmbiguousType: UByte) = builder.addByte(45, anyAmbiguousType.toByte(), 0) fun addAnyAmbiguous(builder: FlatBufferBuilder, anyAmbiguous: Int) = builder.addOffset(46, anyAmbiguous, 0) fun addVectorOfEnums(builder: FlatBufferBuilder, vectorOfEnums: Int) = builder.addOffset(47, vectorOfEnums, 0) + @kotlin.ExperimentalUnsignedTypes fun createVectorOfEnumsVector(builder: FlatBufferBuilder, data: UByteArray) : Int { builder.startVector(1, data.size, 1) for (i in data.size - 1 downTo 0) { @@ -1186,6 +1192,7 @@ class Monster : Table() { fun startVectorOfEnumsVector(builder: FlatBufferBuilder, numElems: Int) = builder.startVector(1, numElems, 1) fun addSignedEnum(builder: FlatBufferBuilder, signedEnum: Byte) = builder.addByte(48, signedEnum, -1) fun addTestrequirednestedflatbuffer(builder: FlatBufferBuilder, testrequirednestedflatbuffer: Int) = builder.addOffset(49, testrequirednestedflatbuffer, 0) + @kotlin.ExperimentalUnsignedTypes fun createTestrequirednestedflatbufferVector(builder: FlatBufferBuilder, data: UByteArray) : Int { builder.startVector(1, data.size, 1) for (i in data.size - 1 downTo 0) { diff --git a/tests/MyGame/Example/Race.kt b/tests/MyGame/Example/Race.kt index 9cf8857231..6f770a3c9a 100644 --- a/tests/MyGame/Example/Race.kt +++ b/tests/MyGame/Example/Race.kt @@ -3,7 +3,6 @@ package MyGame.Example @Suppress("unused") -@kotlin.ExperimentalUnsignedTypes class Race private constructor() { companion object { const val None: Byte = -1 diff --git a/tests/MyGame/Example/Referrable.kt b/tests/MyGame/Example/Referrable.kt index 064d3e72da..55dc603de3 100644 --- a/tests/MyGame/Example/Referrable.kt +++ b/tests/MyGame/Example/Referrable.kt @@ -19,7 +19,6 @@ import java.nio.ByteOrder import kotlin.math.sign @Suppress("unused") -@kotlin.ExperimentalUnsignedTypes class Referrable : Table() { fun __init(_i: Int, _bb: ByteBuffer) { diff --git a/tests/MyGame/Example/Stat.kt b/tests/MyGame/Example/Stat.kt index 44a6fbc91f..d5f09baed1 100644 --- a/tests/MyGame/Example/Stat.kt +++ b/tests/MyGame/Example/Stat.kt @@ -19,7 +19,6 @@ import java.nio.ByteOrder import kotlin.math.sign @Suppress("unused") -@kotlin.ExperimentalUnsignedTypes class Stat : Table() { fun __init(_i: Int, _bb: ByteBuffer) { diff --git a/tests/MyGame/Example/StructOfStructs.kt b/tests/MyGame/Example/StructOfStructs.kt index 89fd831f6b..e7a27a2315 100644 --- a/tests/MyGame/Example/StructOfStructs.kt +++ b/tests/MyGame/Example/StructOfStructs.kt @@ -19,7 +19,6 @@ import java.nio.ByteOrder import kotlin.math.sign @Suppress("unused") -@kotlin.ExperimentalUnsignedTypes class StructOfStructs : Struct() { fun __init(_i: Int, _bb: ByteBuffer) { diff --git a/tests/MyGame/Example/StructOfStructsOfStructs.kt b/tests/MyGame/Example/StructOfStructsOfStructs.kt index 24bd1cfad3..5fb1a1ef55 100644 --- a/tests/MyGame/Example/StructOfStructsOfStructs.kt +++ b/tests/MyGame/Example/StructOfStructsOfStructs.kt @@ -19,7 +19,6 @@ import java.nio.ByteOrder import kotlin.math.sign @Suppress("unused") -@kotlin.ExperimentalUnsignedTypes class StructOfStructsOfStructs : Struct() { fun __init(_i: Int, _bb: ByteBuffer) { diff --git a/tests/MyGame/Example/Test.kt b/tests/MyGame/Example/Test.kt index c910b3e048..c2ce96e9b4 100644 --- a/tests/MyGame/Example/Test.kt +++ b/tests/MyGame/Example/Test.kt @@ -19,7 +19,6 @@ import java.nio.ByteOrder import kotlin.math.sign @Suppress("unused") -@kotlin.ExperimentalUnsignedTypes class Test : Struct() { fun __init(_i: Int, _bb: ByteBuffer) { diff --git a/tests/MyGame/Example/TestSimpleTableWithEnum.kt b/tests/MyGame/Example/TestSimpleTableWithEnum.kt index 17d90c631f..2b6edbb277 100644 --- a/tests/MyGame/Example/TestSimpleTableWithEnum.kt +++ b/tests/MyGame/Example/TestSimpleTableWithEnum.kt @@ -19,7 +19,6 @@ import java.nio.ByteOrder import kotlin.math.sign @Suppress("unused") -@kotlin.ExperimentalUnsignedTypes class TestSimpleTableWithEnum : Table() { fun __init(_i: Int, _bb: ByteBuffer) { diff --git a/tests/MyGame/Example/TypeAliases.kt b/tests/MyGame/Example/TypeAliases.kt index 4bd5964174..bf6914a95b 100644 --- a/tests/MyGame/Example/TypeAliases.kt +++ b/tests/MyGame/Example/TypeAliases.kt @@ -19,7 +19,6 @@ import java.nio.ByteOrder import kotlin.math.sign @Suppress("unused") -@kotlin.ExperimentalUnsignedTypes class TypeAliases : Table() { fun __init(_i: Int, _bb: ByteBuffer) { diff --git a/tests/MyGame/Example/Vec3.kt b/tests/MyGame/Example/Vec3.kt index 59a431d7a4..9e1f89ed88 100644 --- a/tests/MyGame/Example/Vec3.kt +++ b/tests/MyGame/Example/Vec3.kt @@ -19,7 +19,6 @@ import java.nio.ByteOrder import kotlin.math.sign @Suppress("unused") -@kotlin.ExperimentalUnsignedTypes class Vec3 : Struct() { fun __init(_i: Int, _bb: ByteBuffer) { diff --git a/tests/MyGame/Example2/Monster.kt b/tests/MyGame/Example2/Monster.kt index dad657fec6..9822b081b5 100644 --- a/tests/MyGame/Example2/Monster.kt +++ b/tests/MyGame/Example2/Monster.kt @@ -19,7 +19,6 @@ import java.nio.ByteOrder import kotlin.math.sign @Suppress("unused") -@kotlin.ExperimentalUnsignedTypes class Monster : Table() { fun __init(_i: Int, _bb: ByteBuffer) { diff --git a/tests/MyGame/InParentNamespace.kt b/tests/MyGame/InParentNamespace.kt index 2116626c9f..445057e984 100644 --- a/tests/MyGame/InParentNamespace.kt +++ b/tests/MyGame/InParentNamespace.kt @@ -19,7 +19,6 @@ import java.nio.ByteOrder import kotlin.math.sign @Suppress("unused") -@kotlin.ExperimentalUnsignedTypes class InParentNamespace : Table() { fun __init(_i: Int, _bb: ByteBuffer) { diff --git a/tests/MyGame/MonsterExtra.kt b/tests/MyGame/MonsterExtra.kt index cdc8891104..cb0274daad 100644 --- a/tests/MyGame/MonsterExtra.kt +++ b/tests/MyGame/MonsterExtra.kt @@ -19,7 +19,6 @@ import java.nio.ByteOrder import kotlin.math.sign @Suppress("unused") -@kotlin.ExperimentalUnsignedTypes class MonsterExtra : Table() { fun __init(_i: Int, _bb: ByteBuffer) { diff --git a/tests/optional_scalars/OptionalByte.kt b/tests/optional_scalars/OptionalByte.kt index 1379cd105b..7a8788631d 100644 --- a/tests/optional_scalars/OptionalByte.kt +++ b/tests/optional_scalars/OptionalByte.kt @@ -3,7 +3,6 @@ package optional_scalars @Suppress("unused") -@kotlin.ExperimentalUnsignedTypes class OptionalByte private constructor() { companion object { const val None: Byte = 0 diff --git a/tests/optional_scalars/ScalarStuff.kt b/tests/optional_scalars/ScalarStuff.kt index bcc99d9bd4..76bbb7275a 100644 --- a/tests/optional_scalars/ScalarStuff.kt +++ b/tests/optional_scalars/ScalarStuff.kt @@ -19,7 +19,6 @@ import java.nio.ByteOrder import kotlin.math.sign @Suppress("unused") -@kotlin.ExperimentalUnsignedTypes class ScalarStuff : Table() { fun __init(_i: Int, _bb: ByteBuffer) { diff --git a/tests/union_vector/Attacker.kt b/tests/union_vector/Attacker.kt index 60a2fa1a54..bd51612ae5 100644 --- a/tests/union_vector/Attacker.kt +++ b/tests/union_vector/Attacker.kt @@ -17,7 +17,6 @@ import java.nio.ByteOrder import kotlin.math.sign @Suppress("unused") -@kotlin.ExperimentalUnsignedTypes class Attacker : Table() { fun __init(_i: Int, _bb: ByteBuffer) { diff --git a/tests/union_vector/BookReader.kt b/tests/union_vector/BookReader.kt index ddeb09dda3..87dff73286 100644 --- a/tests/union_vector/BookReader.kt +++ b/tests/union_vector/BookReader.kt @@ -17,7 +17,6 @@ import java.nio.ByteOrder import kotlin.math.sign @Suppress("unused") -@kotlin.ExperimentalUnsignedTypes class BookReader : Struct() { fun __init(_i: Int, _bb: ByteBuffer) { diff --git a/tests/union_vector/Character.kt b/tests/union_vector/Character.kt index 302b7e50fc..2e80a35f1f 100644 --- a/tests/union_vector/Character.kt +++ b/tests/union_vector/Character.kt @@ -1,7 +1,6 @@ // automatically generated by the FlatBuffers compiler, do not modify @Suppress("unused") -@kotlin.ExperimentalUnsignedTypes class Character_ private constructor() { companion object { const val NONE: UByte = 0u diff --git a/tests/union_vector/FallingTub.kt b/tests/union_vector/FallingTub.kt index 0f167250aa..43e477a393 100644 --- a/tests/union_vector/FallingTub.kt +++ b/tests/union_vector/FallingTub.kt @@ -17,7 +17,6 @@ import java.nio.ByteOrder import kotlin.math.sign @Suppress("unused") -@kotlin.ExperimentalUnsignedTypes class FallingTub : Struct() { fun __init(_i: Int, _bb: ByteBuffer) { diff --git a/tests/union_vector/Gadget.kt b/tests/union_vector/Gadget.kt index c537a4f30f..4fb3b10070 100644 --- a/tests/union_vector/Gadget.kt +++ b/tests/union_vector/Gadget.kt @@ -1,7 +1,6 @@ // automatically generated by the FlatBuffers compiler, do not modify @Suppress("unused") -@kotlin.ExperimentalUnsignedTypes class Gadget private constructor() { companion object { const val NONE: UByte = 0u diff --git a/tests/union_vector/HandFan.kt b/tests/union_vector/HandFan.kt index c432d22de8..afae3142c2 100644 --- a/tests/union_vector/HandFan.kt +++ b/tests/union_vector/HandFan.kt @@ -17,7 +17,6 @@ import java.nio.ByteOrder import kotlin.math.sign @Suppress("unused") -@kotlin.ExperimentalUnsignedTypes class HandFan : Table() { fun __init(_i: Int, _bb: ByteBuffer) { diff --git a/tests/union_vector/Movie.kt b/tests/union_vector/Movie.kt index 87488dade7..d346dfcb91 100644 --- a/tests/union_vector/Movie.kt +++ b/tests/union_vector/Movie.kt @@ -17,7 +17,6 @@ import java.nio.ByteOrder import kotlin.math.sign @Suppress("unused") -@kotlin.ExperimentalUnsignedTypes class Movie : Table() { fun __init(_i: Int, _bb: ByteBuffer) { @@ -99,6 +98,7 @@ class Movie : Table() { fun addMainCharacterType(builder: FlatBufferBuilder, mainCharacterType: UByte) = builder.addByte(0, mainCharacterType.toByte(), 0) fun addMainCharacter(builder: FlatBufferBuilder, mainCharacter: Int) = builder.addOffset(1, mainCharacter, 0) fun addCharactersType(builder: FlatBufferBuilder, charactersType: Int) = builder.addOffset(2, charactersType, 0) + @kotlin.ExperimentalUnsignedTypes fun createCharactersTypeVector(builder: FlatBufferBuilder, data: UByteArray) : Int { builder.startVector(1, data.size, 1) for (i in data.size - 1 downTo 0) { diff --git a/tests/union_vector/Rapunzel.kt b/tests/union_vector/Rapunzel.kt index d51402a250..e3296e1933 100644 --- a/tests/union_vector/Rapunzel.kt +++ b/tests/union_vector/Rapunzel.kt @@ -17,7 +17,6 @@ import java.nio.ByteOrder import kotlin.math.sign @Suppress("unused") -@kotlin.ExperimentalUnsignedTypes class Rapunzel : Struct() { fun __init(_i: Int, _bb: ByteBuffer) { From 4172c3f0bd6a62cd29ef160f9236352466b634ca Mon Sep 17 00:00:00 2001 From: Philipp Schrader Date: Fri, 28 Apr 2023 11:17:45 -0700 Subject: [PATCH 163/571] Migrate from rules_nodejs to rules_js/rules_ts (#7923) * Start using pnpm * Add @npm * get more stuff set up * Get the analysis phase passing. * Get esbuild working? * Get it compiling? $ bazel build //tests/ts/... * Try to get the test working * test is passing * Get the other tests working * clarify comment * clean up a bit * Try to add another test * Add another test * clean up more * remove unused reference * Add e2e test * Get more of the test working * add lock file * Get test working on its own * Get e2e test passing * fix infinite recursion * Add comments * clean up some more * clean up more again * Source typescript version from package.json * run buildifier * lint * Fix unset `extra_env` * Incorporate feedback * run buildifier --------- Co-authored-by: Derek Bailey --- .bazelignore | 1 + .bazelrc | 1 + .npmrc | 1 + BUILD.bazel | 26 + WORKSPACE | 84 +- build_defs.bzl | 17 +- grpc/src/compiler/BUILD.bazel | 10 + package.json | 3 +- pnpm-lock.yaml | 1184 +++++++++++++++++ reflection/BUILD.bazel | 9 + reflection/ts/BUILD.bazel | 1 - src/BUILD.bazel | 11 + tests/BUILD.bazel | 12 + tests/ts/BUILD.bazel | 66 + tests/ts/bazel_repository_test.sh | 29 + .../ts/bazel_repository_test_dir/.bazelignore | 1 + tests/ts/bazel_repository_test_dir/.bazelrc | 1 + tests/ts/bazel_repository_test_dir/.gitignore | 1 + tests/ts/bazel_repository_test_dir/.npmrc | 1 + tests/ts/bazel_repository_test_dir/BUILD | 32 + tests/ts/bazel_repository_test_dir/WORKSPACE | 71 + .../bazel_repository_test_dir/import_test.js | 28 + tests/ts/bazel_repository_test_dir/one.fbs | 7 + .../ts/bazel_repository_test_dir/package.json | 8 + .../bazel_repository_test_dir/pnpm-lock.yaml | 12 + tests/ts/bazel_repository_test_dir/two.fbs | 9 + tests/ts/package.json | 1 - tests/ts/test_dir/BUILD.bazel | 12 + tests/ts/test_dir/import_test.js | 31 + tests/ts/test_dir/package.json | 6 + tests/ts/test_dir/typescript_include.fbs | 7 + ts/BUILD.bazel | 37 +- ts/compile_flat_file.sh | 7 +- typescript.bzl | 10 +- yarn.lock | 1174 ---------------- 35 files changed, 1697 insertions(+), 1214 deletions(-) create mode 100644 .bazelignore create mode 100644 .bazelrc create mode 100644 .npmrc create mode 100644 pnpm-lock.yaml create mode 100755 tests/ts/bazel_repository_test.sh create mode 100644 tests/ts/bazel_repository_test_dir/.bazelignore create mode 100644 tests/ts/bazel_repository_test_dir/.bazelrc create mode 100644 tests/ts/bazel_repository_test_dir/.gitignore create mode 120000 tests/ts/bazel_repository_test_dir/.npmrc create mode 100644 tests/ts/bazel_repository_test_dir/BUILD create mode 100644 tests/ts/bazel_repository_test_dir/WORKSPACE create mode 100644 tests/ts/bazel_repository_test_dir/import_test.js create mode 100644 tests/ts/bazel_repository_test_dir/one.fbs create mode 100644 tests/ts/bazel_repository_test_dir/package.json create mode 100644 tests/ts/bazel_repository_test_dir/pnpm-lock.yaml create mode 100644 tests/ts/bazel_repository_test_dir/two.fbs create mode 100644 tests/ts/test_dir/import_test.js create mode 100644 tests/ts/test_dir/package.json delete mode 100644 yarn.lock diff --git a/.bazelignore b/.bazelignore new file mode 100644 index 0000000000..3c3629e647 --- /dev/null +++ b/.bazelignore @@ -0,0 +1 @@ +node_modules diff --git a/.bazelrc b/.bazelrc new file mode 100644 index 0000000000..a8f33c98af --- /dev/null +++ b/.bazelrc @@ -0,0 +1 @@ +build --deleted_packages=tests/ts/bazel_repository_test_dir diff --git a/.npmrc b/.npmrc new file mode 100644 index 0000000000..84ff0791f0 --- /dev/null +++ b/.npmrc @@ -0,0 +1 @@ +hoist=false diff --git a/BUILD.bazel b/BUILD.bazel index 0ff3b234ef..b4f015a0e2 100644 --- a/BUILD.bazel +++ b/BUILD.bazel @@ -1,3 +1,5 @@ +load("@aspect_rules_js//npm:defs.bzl", "npm_link_package") +load("@npm//:defs.bzl", "npm_link_all_packages") load("@rules_cc//cc:defs.bzl", "cc_binary", "cc_library") licenses(["notice"]) @@ -6,6 +8,13 @@ package( default_visibility = ["//visibility:public"], ) +npm_link_all_packages(name = "node_modules") + +npm_link_package( + name = "node_modules/flatbuffers", + src = "//ts:flatbuffers", +) + exports_files([ "LICENSE", "tsconfig.json", @@ -25,6 +34,23 @@ config_setting( ], ) +filegroup( + name = "distribution", + srcs = [ + "BUILD.bazel", + "WORKSPACE", + "build_defs.bzl", + "typescript.bzl", + "//grpc/src/compiler:distribution", + "//reflection:distribution", + "//src:distribution", + "//ts:distribution", + ] + glob([ + "include/flatbuffers/*.h", + ]), + visibility = ["//visibility:public"], +) + # Public flatc library to compile flatbuffer files at runtime. cc_library( name = "flatbuffers", diff --git a/WORKSPACE b/WORKSPACE index e8474e0b74..9f70edd44c 100644 --- a/WORKSPACE +++ b/WORKSPACE @@ -1,6 +1,6 @@ workspace(name = "com_github_google_flatbuffers") -load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") +load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive", "http_file") http_archive( name = "platforms", @@ -76,30 +76,80 @@ load("@com_github_grpc_grpc//bazel:grpc_extra_deps.bzl", "grpc_extra_deps") grpc_extra_deps() # rules_go from https://github.com/bazelbuild/rules_go/releases/tag/v0.34.0 + +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 = "build_bazel_rules_nodejs", - sha256 = "965ee2492a2b087cf9e0f2ca472aeaf1be2eb650e0cfbddf514b9a7d3ea4b02a", - urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/5.2.0/rules_nodejs-5.2.0.tar.gz"], + 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("@build_bazel_rules_nodejs//:repositories.bzl", "build_bazel_rules_nodejs_dependencies") +load("@aspect_rules_ts//ts:repositories.bzl", "rules_ts_dependencies") -build_bazel_rules_nodejs_dependencies() +rules_ts_dependencies( + # Since rules_ts doesn't always have the newest integrity hashes, we + # compute it manually here. + # $ curl --silent https://registry.npmjs.org/typescript/5.0.4 | jq ._integrity + ts_integrity = "sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==", + ts_version_from = "//:package.json", +) -load("@build_bazel_rules_nodejs//:index.bzl", "node_repositories", "yarn_install") +load("@rules_nodejs//nodejs:repositories.bzl", "DEFAULT_NODE_VERSION", "nodejs_register_toolchains") -node_repositories() +nodejs_register_toolchains( + name = "nodejs", + node_version = DEFAULT_NODE_VERSION, +) -yarn_install( +npm_translate_lock( name = "npm", - exports_directories_only = False, - # Unfreeze to add/remove packages. - frozen_lockfile = False, - package_json = "//:package.json", - symlink_node_modules = False, - yarn_lock = "//:yarn.lock", + npmrc = "//:.npmrc", + pnpm_lock = "//:pnpm-lock.yaml", + # Set this to True when the lock file needs to be updated, commit the + # changes, then set to False again. + update_pnpm_lock = False, + verify_node_modules_ignored = "//:.bazelignore", ) -load("@build_bazel_rules_nodejs//toolchains/esbuild:esbuild_repositories.bzl", "esbuild_repositories") +load("@npm//:repositories.bzl", "npm_repositories") -esbuild_repositories(npm_repository = "npm") +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, +) + +http_file( + name = "bazel_linux_x86_64", + downloaded_file_path = "bazel", + sha256 = "e89747d63443e225b140d7d37ded952dacea73aaed896bca01ccd745827c6289", + urls = [ + "https://github.com/bazelbuild/bazel/releases/download/6.1.2/bazel-6.1.2-linux-x86_64", + ], +) diff --git a/build_defs.bzl b/build_defs.bzl index 66b22d2ea6..5437d7ae07 100644 --- a/build_defs.bzl +++ b/build_defs.bzl @@ -48,7 +48,10 @@ def flatbuffer_library_public( restricted_to = None, target_compatible_with = None, flatc_path = "@com_github_google_flatbuffers//:flatc", - output_to_bindir = False): + output_to_bindir = False, + tools = None, + extra_env = None, + **kwargs): """Generates code files for reading/writing the given flatbuffers in the requested language using the public compiler. Args: @@ -73,6 +76,11 @@ def flatbuffer_library_public( to use. flatc_path: Bazel target corresponding to the flatc compiler to use. output_to_bindir: Passed to genrule for output to bin directory. + tools: Optional, passed to genrule for list of tools to make available + during the action. + extra_env: Optional, must be a string of "VAR1=VAL1 VAR2=VAL2". These get + set as environment variables that "flatc_path" sees. + **kwargs: Passed to the underlying genrule. This rule creates a filegroup(name) with all generated source files, and @@ -83,6 +91,8 @@ def flatbuffer_library_public( include_paths = default_include_paths(flatc_path) include_paths_cmd = ["-I %s" % (s) for s in include_paths] + extra_env = extra_env or "" + # '$(@D)' when given a single source target will give the appropriate # directory. Appending 'out_prefix' is only necessary when given a build # target with multiple sources. @@ -92,7 +102,7 @@ def flatbuffer_library_public( genrule_cmd = " ".join([ "SRCS=($(SRCS));", "for f in $${SRCS[@]:0:%s}; do" % len(srcs), - "OUTPUT_FILE=\"$(OUTS)\" $(location %s)" % (flatc_path), + "OUTPUT_FILE=\"$(OUTS)\" %s $(location %s)" % (extra_env, flatc_path), " ".join(include_paths_cmd), " ".join(flatc_args), language_flag, @@ -105,12 +115,13 @@ def flatbuffer_library_public( srcs = srcs + includes, outs = outs, output_to_bindir = output_to_bindir, - tools = [flatc_path], + tools = (tools or []) + [flatc_path], cmd = genrule_cmd, compatible_with = compatible_with, target_compatible_with = target_compatible_with, restricted_to = restricted_to, message = "Generating flatbuffer files for %s:" % (name), + **kwargs ) if reflection_name: reflection_genrule_cmd = " ".join([ diff --git a/grpc/src/compiler/BUILD.bazel b/grpc/src/compiler/BUILD.bazel index 544885e0f1..0efa9560c2 100644 --- a/grpc/src/compiler/BUILD.bazel +++ b/grpc/src/compiler/BUILD.bazel @@ -4,6 +4,16 @@ package( default_visibility = ["//visibility:public"], ) +filegroup( + name = "distribution", + srcs = [ + "BUILD.bazel", + ] + glob([ + "*.cc", + "*.h", + ]), +) + filegroup( name = "common_headers", srcs = [ diff --git a/package.json b/package.json index 505648fc86..5a2aecaf77 100644 --- a/package.json +++ b/package.json @@ -36,12 +36,11 @@ "homepage": "https://google.github.io/flatbuffers/", "dependencies": {}, "devDependencies": { - "@bazel/typescript": "5.2.0", "@types/node": "18.15.11", "@typescript-eslint/eslint-plugin": "^5.57.0", "@typescript-eslint/parser": "^5.57.0", "esbuild": "^0.17.14", "eslint": "^8.37.0", - "typescript": "^5.0.3" + "typescript": "5.0.4" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml new file mode 100644 index 0000000000..45c645b440 --- /dev/null +++ b/pnpm-lock.yaml @@ -0,0 +1,1184 @@ +lockfileVersion: '6.0' + +devDependencies: + '@types/node': + specifier: 18.15.11 + version: 18.15.11 + '@typescript-eslint/eslint-plugin': + specifier: ^5.57.0 + version: 5.57.0(@typescript-eslint/parser@5.57.0)(eslint@8.37.0)(typescript@5.0.3) + '@typescript-eslint/parser': + specifier: ^5.57.0 + version: 5.57.0(eslint@8.37.0)(typescript@5.0.3) + esbuild: + specifier: ^0.17.14 + version: 0.17.14 + eslint: + specifier: ^8.37.0 + version: 8.37.0 + typescript: + specifier: 5.0.3 + version: 5.0.3 + +packages: + + /@esbuild/android-arm64@0.17.14: + resolution: {integrity: sha512-eLOpPO1RvtsP71afiFTvS7tVFShJBCT0txiv/xjFBo5a7R7Gjw7X0IgIaFoLKhqXYAXhahoXm7qAmRXhY4guJg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-arm@0.17.14: + resolution: {integrity: sha512-0CnlwnjDU8cks0yJLXfkaU/uoLyRf9VZJs4p1PskBr2AlAHeEsFEwJEo0of/Z3g+ilw5mpyDwThlxzNEIxOE4g==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-x64@0.17.14: + resolution: {integrity: sha512-nrfQYWBfLGfSGLvRVlt6xi63B5IbfHm3tZCdu/82zuFPQ7zez4XjmRtF/wIRYbJQ/DsZrxJdEvYFE67avYXyng==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-arm64@0.17.14: + resolution: {integrity: sha512-eoSjEuDsU1ROwgBH/c+fZzuSyJUVXQTOIN9xuLs9dE/9HbV/A5IqdXHU1p2OfIMwBwOYJ9SFVGGldxeRCUJFyw==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-x64@0.17.14: + resolution: {integrity: sha512-zN0U8RWfrDttdFNkHqFYZtOH8hdi22z0pFm0aIJPsNC4QQZv7je8DWCX5iA4Zx6tRhS0CCc0XC2m7wKsbWEo5g==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@esbuild/freebsd-arm64@0.17.14: + resolution: {integrity: sha512-z0VcD4ibeZWVQCW1O7szaLxGsx54gcCnajEJMdYoYjLiq4g1jrP2lMq6pk71dbS5+7op/L2Aod+erw+EUr28/A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/freebsd-x64@0.17.14: + resolution: {integrity: sha512-hd9mPcxfTgJlolrPlcXkQk9BMwNBvNBsVaUe5eNUqXut6weDQH8whcNaKNF2RO8NbpT6GY8rHOK2A9y++s+ehw==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-arm64@0.17.14: + resolution: {integrity: sha512-FhAMNYOq3Iblcj9i+K0l1Fp/MHt+zBeRu/Qkf0LtrcFu3T45jcwB6A1iMsemQ42vR3GBhjNZJZTaCe3VFPbn9g==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-arm@0.17.14: + resolution: {integrity: sha512-BNTl+wSJ1omsH8s3TkQmIIIQHwvwJrU9u1ggb9XU2KTVM4TmthRIVyxSp2qxROJHhZuW/r8fht46/QE8hU8Qvg==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-ia32@0.17.14: + resolution: {integrity: sha512-91OK/lQ5y2v7AsmnFT+0EyxdPTNhov3y2CWMdizyMfxSxRqHazXdzgBKtlmkU2KYIc+9ZK3Vwp2KyXogEATYxQ==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-loong64@0.17.14: + resolution: {integrity: sha512-vp15H+5NR6hubNgMluqqKza85HcGJgq7t6rMH7O3Y6ApiOWPkvW2AJfNojUQimfTp6OUrACUXfR4hmpcENXoMQ==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-mips64el@0.17.14: + resolution: {integrity: sha512-90TOdFV7N+fgi6c2+GO9ochEkmm9kBAKnuD5e08GQMgMINOdOFHuYLPQ91RYVrnWwQ5683sJKuLi9l4SsbJ7Hg==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-ppc64@0.17.14: + resolution: {integrity: sha512-NnBGeoqKkTugpBOBZZoktQQ1Yqb7aHKmHxsw43NddPB2YWLAlpb7THZIzsRsTr0Xw3nqiPxbA1H31ZMOG+VVPQ==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-riscv64@0.17.14: + resolution: {integrity: sha512-0qdlKScLXA8MGVy21JUKvMzCYWovctuP8KKqhtE5A6IVPq4onxXhSuhwDd2g5sRCzNDlDjitc5sX31BzDoL5Fw==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-s390x@0.17.14: + resolution: {integrity: sha512-Hdm2Jo1yaaOro4v3+6/zJk6ygCqIZuSDJHdHaf8nVH/tfOuoEX5Riv03Ka15LmQBYJObUTNS1UdyoMk0WUn9Ww==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-x64@0.17.14: + resolution: {integrity: sha512-8KHF17OstlK4DuzeF/KmSgzrTWQrkWj5boluiiq7kvJCiQVzUrmSkaBvcLB2UgHpKENO2i6BthPkmUhNDaJsVw==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/netbsd-x64@0.17.14: + resolution: {integrity: sha512-nVwpqvb3yyXztxIT2+VsxJhB5GCgzPdk1n0HHSnchRAcxqKO6ghXwHhJnr0j/B+5FSyEqSxF4q03rbA2fKXtUQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/openbsd-x64@0.17.14: + resolution: {integrity: sha512-1RZ7uQQ9zcy/GSAJL1xPdN7NDdOOtNEGiJalg/MOzeakZeTrgH/DoCkbq7TaPDiPhWqnDF+4bnydxRqQD7il6g==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/sunos-x64@0.17.14: + resolution: {integrity: sha512-nqMjDsFwv7vp7msrwWRysnM38Sd44PKmW8EzV01YzDBTcTWUpczQg6mGao9VLicXSgW/iookNK6AxeogNVNDZA==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-arm64@0.17.14: + resolution: {integrity: sha512-xrD0mccTKRBBIotrITV7WVQAwNJ5+1va6L0H9zN92v2yEdjfAN7864cUaZwJS7JPEs53bDTzKFbfqVlG2HhyKQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-ia32@0.17.14: + resolution: {integrity: sha512-nXpkz9bbJrLLyUTYtRotSS3t5b+FOuljg8LgLdINWFs3FfqZMtbnBCZFUmBzQPyxqU87F8Av+3Nco/M3hEcu1w==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-x64@0.17.14: + resolution: {integrity: sha512-gPQmsi2DKTaEgG14hc3CHXHp62k8g6qr0Pas+I4lUxRMugGSATh/Bi8Dgusoz9IQ0IfdrvLpco6kujEIBoaogA==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@eslint-community/eslint-utils@4.4.0(eslint@8.37.0): + resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + dependencies: + eslint: 8.37.0 + eslint-visitor-keys: 3.4.0 + dev: true + + /@eslint-community/regexpp@4.5.0: + resolution: {integrity: sha512-vITaYzIcNmjn5tF5uxcZ/ft7/RXGrMUIS9HalWckEOF6ESiwXKoMzAQf2UW0aVd6rnOeExTJVd5hmWXucBKGXQ==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + dev: true + + /@eslint/eslintrc@2.0.2: + resolution: {integrity: sha512-3W4f5tDUra+pA+FzgugqL2pRimUTDJWKr7BINqOpkZrC0uYI0NIc0/JFgBROCU07HR6GieA5m3/rsPIhDmCXTQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + ajv: 6.12.6 + debug: 4.3.4 + espree: 9.5.1 + globals: 13.20.0 + ignore: 5.2.4 + import-fresh: 3.3.0 + js-yaml: 4.1.0 + minimatch: 3.1.2 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + dev: true + + /@eslint/js@8.37.0: + resolution: {integrity: sha512-x5vzdtOOGgFVDCUs81QRB2+liax8rFg3+7hqM+QhBG0/G3F1ZsoYl97UrqgHgQ9KKT7G6c4V+aTUCgu/n22v1A==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: true + + /@humanwhocodes/config-array@0.11.8: + resolution: {integrity: sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==} + engines: {node: '>=10.10.0'} + dependencies: + '@humanwhocodes/object-schema': 1.2.1 + debug: 4.3.4 + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@humanwhocodes/module-importer@1.0.1: + resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} + engines: {node: '>=12.22'} + dev: true + + /@humanwhocodes/object-schema@1.2.1: + resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==} + dev: true + + /@nodelib/fs.scandir@2.1.5: + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 + dev: true + + /@nodelib/fs.stat@2.0.5: + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} + dev: true + + /@nodelib/fs.walk@1.2.8: + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.15.0 + dev: true + + /@types/json-schema@7.0.11: + resolution: {integrity: sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==} + dev: true + + /@types/node@18.15.11: + resolution: {integrity: sha512-E5Kwq2n4SbMzQOn6wnmBjuK9ouqlURrcZDVfbo9ftDDTFt3nk7ZKK4GMOzoYgnpQJKcxwQw+lGaBvvlMo0qN/Q==} + dev: true + + /@types/semver@7.3.13: + resolution: {integrity: sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==} + dev: true + + /@typescript-eslint/eslint-plugin@5.57.0(@typescript-eslint/parser@5.57.0)(eslint@8.37.0)(typescript@5.0.3): + resolution: {integrity: sha512-itag0qpN6q2UMM6Xgk6xoHa0D0/P+M17THnr4SVgqn9Rgam5k/He33MA7/D7QoJcdMxHFyX7U9imaBonAX/6qA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + '@typescript-eslint/parser': ^5.0.0 + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@eslint-community/regexpp': 4.5.0 + '@typescript-eslint/parser': 5.57.0(eslint@8.37.0)(typescript@5.0.3) + '@typescript-eslint/scope-manager': 5.57.0 + '@typescript-eslint/type-utils': 5.57.0(eslint@8.37.0)(typescript@5.0.3) + '@typescript-eslint/utils': 5.57.0(eslint@8.37.0)(typescript@5.0.3) + debug: 4.3.4 + eslint: 8.37.0 + grapheme-splitter: 1.0.4 + ignore: 5.2.4 + natural-compare-lite: 1.4.0 + semver: 7.3.8 + tsutils: 3.21.0(typescript@5.0.3) + typescript: 5.0.3 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/parser@5.57.0(eslint@8.37.0)(typescript@5.0.3): + resolution: {integrity: sha512-orrduvpWYkgLCyAdNtR1QIWovcNZlEm6yL8nwH/eTxWLd8gsP+25pdLHYzL2QdkqrieaDwLpytHqycncv0woUQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/scope-manager': 5.57.0 + '@typescript-eslint/types': 5.57.0 + '@typescript-eslint/typescript-estree': 5.57.0(typescript@5.0.3) + debug: 4.3.4 + eslint: 8.37.0 + typescript: 5.0.3 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/scope-manager@5.57.0: + resolution: {integrity: sha512-NANBNOQvllPlizl9LatX8+MHi7bx7WGIWYjPHDmQe5Si/0YEYfxSljJpoTyTWFTgRy3X8gLYSE4xQ2U+aCozSw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + '@typescript-eslint/types': 5.57.0 + '@typescript-eslint/visitor-keys': 5.57.0 + dev: true + + /@typescript-eslint/type-utils@5.57.0(eslint@8.37.0)(typescript@5.0.3): + resolution: {integrity: sha512-kxXoq9zOTbvqzLbdNKy1yFrxLC6GDJFE2Yuo3KqSwTmDOFjUGeWSakgoXT864WcK5/NAJkkONCiKb1ddsqhLXQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: '*' + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/typescript-estree': 5.57.0(typescript@5.0.3) + '@typescript-eslint/utils': 5.57.0(eslint@8.37.0)(typescript@5.0.3) + debug: 4.3.4 + eslint: 8.37.0 + tsutils: 3.21.0(typescript@5.0.3) + typescript: 5.0.3 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/types@5.57.0: + resolution: {integrity: sha512-mxsod+aZRSyLT+jiqHw1KK6xrANm19/+VFALVFP5qa/aiJnlP38qpyaTd0fEKhWvQk6YeNZ5LGwI1pDpBRBhtQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: true + + /@typescript-eslint/typescript-estree@5.57.0(typescript@5.0.3): + resolution: {integrity: sha512-LTzQ23TV82KpO8HPnWuxM2V7ieXW8O142I7hQTxWIHDcCEIjtkat6H96PFkYBQqGFLW/G/eVVOB9Z8rcvdY/Vw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/types': 5.57.0 + '@typescript-eslint/visitor-keys': 5.57.0 + debug: 4.3.4 + globby: 11.1.0 + is-glob: 4.0.3 + semver: 7.3.8 + tsutils: 3.21.0(typescript@5.0.3) + typescript: 5.0.3 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/utils@5.57.0(eslint@8.37.0)(typescript@5.0.3): + resolution: {integrity: sha512-ps/4WohXV7C+LTSgAL5CApxvxbMkl9B9AUZRtnEFonpIxZDIT7wC1xfvuJONMidrkB9scs4zhtRyIwHh4+18kw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.37.0) + '@types/json-schema': 7.0.11 + '@types/semver': 7.3.13 + '@typescript-eslint/scope-manager': 5.57.0 + '@typescript-eslint/types': 5.57.0 + '@typescript-eslint/typescript-estree': 5.57.0(typescript@5.0.3) + eslint: 8.37.0 + eslint-scope: 5.1.1 + semver: 7.3.8 + transitivePeerDependencies: + - supports-color + - typescript + dev: true + + /@typescript-eslint/visitor-keys@5.57.0: + resolution: {integrity: sha512-ery2g3k0hv5BLiKpPuwYt9KBkAp2ugT6VvyShXdLOkax895EC55sP0Tx5L0fZaQueiK3fBLvHVvEl3jFS5ia+g==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + '@typescript-eslint/types': 5.57.0 + eslint-visitor-keys: 3.4.0 + dev: true + + /acorn-jsx@5.3.2(acorn@8.8.2): + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + acorn: 8.8.2 + dev: true + + /acorn@8.8.2: + resolution: {integrity: sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==} + engines: {node: '>=0.4.0'} + hasBin: true + dev: true + + /ajv@6.12.6: + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + dependencies: + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 + dev: true + + /ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + dev: true + + /ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + dependencies: + color-convert: 2.0.1 + dev: true + + /argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + dev: true + + /array-union@2.1.0: + resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} + engines: {node: '>=8'} + dev: true + + /balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + dev: true + + /brace-expansion@1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 + dev: true + + /braces@3.0.2: + resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} + engines: {node: '>=8'} + dependencies: + fill-range: 7.0.1 + dev: true + + /callsites@3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} + dev: true + + /chalk@4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + dev: true + + /color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + dependencies: + color-name: 1.1.4 + dev: true + + /color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + dev: true + + /concat-map@0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + dev: true + + /cross-spawn@7.0.3: + resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} + engines: {node: '>= 8'} + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + dev: true + + /debug@4.3.4: + resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.2 + dev: true + + /deep-is@0.1.4: + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + dev: true + + /dir-glob@3.0.1: + resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} + engines: {node: '>=8'} + dependencies: + path-type: 4.0.0 + dev: true + + /doctrine@3.0.0: + resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} + engines: {node: '>=6.0.0'} + dependencies: + esutils: 2.0.3 + dev: true + + /esbuild@0.17.14: + resolution: {integrity: sha512-vOO5XhmVj/1XQR9NQ1UPq6qvMYL7QFJU57J5fKBKBKxp17uDt5PgxFDb4A2nEiXhr1qQs4x0F5+66hVVw4ruNw==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + optionalDependencies: + '@esbuild/android-arm': 0.17.14 + '@esbuild/android-arm64': 0.17.14 + '@esbuild/android-x64': 0.17.14 + '@esbuild/darwin-arm64': 0.17.14 + '@esbuild/darwin-x64': 0.17.14 + '@esbuild/freebsd-arm64': 0.17.14 + '@esbuild/freebsd-x64': 0.17.14 + '@esbuild/linux-arm': 0.17.14 + '@esbuild/linux-arm64': 0.17.14 + '@esbuild/linux-ia32': 0.17.14 + '@esbuild/linux-loong64': 0.17.14 + '@esbuild/linux-mips64el': 0.17.14 + '@esbuild/linux-ppc64': 0.17.14 + '@esbuild/linux-riscv64': 0.17.14 + '@esbuild/linux-s390x': 0.17.14 + '@esbuild/linux-x64': 0.17.14 + '@esbuild/netbsd-x64': 0.17.14 + '@esbuild/openbsd-x64': 0.17.14 + '@esbuild/sunos-x64': 0.17.14 + '@esbuild/win32-arm64': 0.17.14 + '@esbuild/win32-ia32': 0.17.14 + '@esbuild/win32-x64': 0.17.14 + dev: true + + /escape-string-regexp@4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} + dev: true + + /eslint-scope@5.1.1: + resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} + engines: {node: '>=8.0.0'} + dependencies: + esrecurse: 4.3.0 + estraverse: 4.3.0 + dev: true + + /eslint-scope@7.1.1: + resolution: {integrity: sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + esrecurse: 4.3.0 + estraverse: 5.3.0 + dev: true + + /eslint-visitor-keys@3.4.0: + resolution: {integrity: sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: true + + /eslint@8.37.0: + resolution: {integrity: sha512-NU3Ps9nI05GUoVMxcZx1J8CNR6xOvUT4jAUMH5+z8lpp3aEdPVCImKw6PWG4PY+Vfkpr+jvMpxs/qoE7wq0sPw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + hasBin: true + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.37.0) + '@eslint-community/regexpp': 4.5.0 + '@eslint/eslintrc': 2.0.2 + '@eslint/js': 8.37.0 + '@humanwhocodes/config-array': 0.11.8 + '@humanwhocodes/module-importer': 1.0.1 + '@nodelib/fs.walk': 1.2.8 + ajv: 6.12.6 + chalk: 4.1.2 + cross-spawn: 7.0.3 + debug: 4.3.4 + doctrine: 3.0.0 + escape-string-regexp: 4.0.0 + eslint-scope: 7.1.1 + eslint-visitor-keys: 3.4.0 + espree: 9.5.1 + esquery: 1.5.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 6.0.1 + find-up: 5.0.0 + glob-parent: 6.0.2 + globals: 13.20.0 + grapheme-splitter: 1.0.4 + ignore: 5.2.4 + import-fresh: 3.3.0 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + is-path-inside: 3.0.3 + js-sdsl: 4.4.0 + js-yaml: 4.1.0 + json-stable-stringify-without-jsonify: 1.0.1 + levn: 0.4.1 + lodash.merge: 4.6.2 + minimatch: 3.1.2 + natural-compare: 1.4.0 + optionator: 0.9.1 + strip-ansi: 6.0.1 + strip-json-comments: 3.1.1 + text-table: 0.2.0 + transitivePeerDependencies: + - supports-color + dev: true + + /espree@9.5.1: + resolution: {integrity: sha512-5yxtHSZXRSW5pvv3hAlXM5+/Oswi1AUFqBmbibKb5s6bp3rGIDkyXU6xCoyuuLhijr4SFwPrXRoZjz0AZDN9tg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + acorn: 8.8.2 + acorn-jsx: 5.3.2(acorn@8.8.2) + eslint-visitor-keys: 3.4.0 + dev: true + + /esquery@1.5.0: + resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} + engines: {node: '>=0.10'} + dependencies: + estraverse: 5.3.0 + dev: true + + /esrecurse@4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + engines: {node: '>=4.0'} + dependencies: + estraverse: 5.3.0 + dev: true + + /estraverse@4.3.0: + resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} + engines: {node: '>=4.0'} + dev: true + + /estraverse@5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} + dev: true + + /esutils@2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} + dev: true + + /fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + dev: true + + /fast-glob@3.2.12: + resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==} + engines: {node: '>=8.6.0'} + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.5 + dev: true + + /fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + dev: true + + /fast-levenshtein@2.0.6: + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + dev: true + + /fastq@1.15.0: + resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} + dependencies: + reusify: 1.0.4 + dev: true + + /file-entry-cache@6.0.1: + resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} + engines: {node: ^10.12.0 || >=12.0.0} + dependencies: + flat-cache: 3.0.4 + dev: true + + /fill-range@7.0.1: + resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} + engines: {node: '>=8'} + dependencies: + to-regex-range: 5.0.1 + dev: true + + /find-up@5.0.0: + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} + engines: {node: '>=10'} + dependencies: + locate-path: 6.0.0 + path-exists: 4.0.0 + dev: true + + /flat-cache@3.0.4: + resolution: {integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==} + engines: {node: ^10.12.0 || >=12.0.0} + dependencies: + flatted: 3.2.7 + rimraf: 3.0.2 + dev: true + + /flatted@3.2.7: + resolution: {integrity: sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==} + dev: true + + /fs.realpath@1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + dev: true + + /glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + dependencies: + is-glob: 4.0.3 + dev: true + + /glob-parent@6.0.2: + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} + engines: {node: '>=10.13.0'} + dependencies: + is-glob: 4.0.3 + dev: true + + /glob@7.2.3: + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + dev: true + + /globals@13.20.0: + resolution: {integrity: sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==} + engines: {node: '>=8'} + dependencies: + type-fest: 0.20.2 + dev: true + + /globby@11.1.0: + resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} + engines: {node: '>=10'} + dependencies: + array-union: 2.1.0 + dir-glob: 3.0.1 + fast-glob: 3.2.12 + ignore: 5.2.4 + merge2: 1.4.1 + slash: 3.0.0 + dev: true + + /grapheme-splitter@1.0.4: + resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==} + dev: true + + /has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + dev: true + + /ignore@5.2.4: + resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==} + engines: {node: '>= 4'} + dev: true + + /import-fresh@3.3.0: + resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} + engines: {node: '>=6'} + dependencies: + parent-module: 1.0.1 + resolve-from: 4.0.0 + dev: true + + /imurmurhash@0.1.4: + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} + engines: {node: '>=0.8.19'} + dev: true + + /inflight@1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + dependencies: + once: 1.4.0 + wrappy: 1.0.2 + dev: true + + /inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + dev: true + + /is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + dev: true + + /is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + dependencies: + is-extglob: 2.1.1 + dev: true + + /is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + dev: true + + /is-path-inside@3.0.3: + resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} + engines: {node: '>=8'} + dev: true + + /isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + dev: true + + /js-sdsl@4.4.0: + resolution: {integrity: sha512-FfVSdx6pJ41Oa+CF7RDaFmTnCaFhua+SNYQX74riGOpl96x+2jQCqEfQ2bnXu/5DPCqlRuiqyvTJM0Qjz26IVg==} + dev: true + + /js-yaml@4.1.0: + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + hasBin: true + dependencies: + argparse: 2.0.1 + dev: true + + /json-schema-traverse@0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + dev: true + + /json-stable-stringify-without-jsonify@1.0.1: + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + dev: true + + /levn@0.4.1: + resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} + engines: {node: '>= 0.8.0'} + dependencies: + prelude-ls: 1.2.1 + type-check: 0.4.0 + dev: true + + /locate-path@6.0.0: + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} + engines: {node: '>=10'} + dependencies: + p-locate: 5.0.0 + dev: true + + /lodash.merge@4.6.2: + resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + dev: true + + /lru-cache@6.0.0: + resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} + engines: {node: '>=10'} + dependencies: + yallist: 4.0.0 + dev: true + + /merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + dev: true + + /micromatch@4.0.5: + resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} + engines: {node: '>=8.6'} + dependencies: + braces: 3.0.2 + picomatch: 2.3.1 + dev: true + + /minimatch@3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + dependencies: + brace-expansion: 1.1.11 + dev: true + + /ms@2.1.2: + resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + dev: true + + /natural-compare-lite@1.4.0: + resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==} + dev: true + + /natural-compare@1.4.0: + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + dev: true + + /once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + dependencies: + wrappy: 1.0.2 + dev: true + + /optionator@0.9.1: + resolution: {integrity: sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==} + engines: {node: '>= 0.8.0'} + dependencies: + deep-is: 0.1.4 + fast-levenshtein: 2.0.6 + levn: 0.4.1 + prelude-ls: 1.2.1 + type-check: 0.4.0 + word-wrap: 1.2.3 + dev: true + + /p-limit@3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} + dependencies: + yocto-queue: 0.1.0 + dev: true + + /p-locate@5.0.0: + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} + engines: {node: '>=10'} + dependencies: + p-limit: 3.1.0 + dev: true + + /parent-module@1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} + dependencies: + callsites: 3.1.0 + dev: true + + /path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + dev: true + + /path-is-absolute@1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + engines: {node: '>=0.10.0'} + dev: true + + /path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + dev: true + + /path-type@4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} + dev: true + + /picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + dev: true + + /prelude-ls@1.2.1: + resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} + engines: {node: '>= 0.8.0'} + dev: true + + /punycode@2.3.0: + resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==} + engines: {node: '>=6'} + dev: true + + /queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + dev: true + + /resolve-from@4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} + dev: true + + /reusify@1.0.4: + resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + dev: true + + /rimraf@3.0.2: + resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + hasBin: true + dependencies: + glob: 7.2.3 + dev: true + + /run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + dependencies: + queue-microtask: 1.2.3 + dev: true + + /semver@7.3.8: + resolution: {integrity: sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==} + engines: {node: '>=10'} + hasBin: true + dependencies: + lru-cache: 6.0.0 + dev: true + + /shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} + dependencies: + shebang-regex: 3.0.0 + dev: true + + /shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + dev: true + + /slash@3.0.0: + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} + engines: {node: '>=8'} + dev: true + + /strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + dependencies: + ansi-regex: 5.0.1 + dev: true + + /strip-json-comments@3.1.1: + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} + engines: {node: '>=8'} + dev: true + + /supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} + dependencies: + has-flag: 4.0.0 + dev: true + + /text-table@0.2.0: + resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} + dev: true + + /to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + dependencies: + is-number: 7.0.0 + dev: true + + /tslib@1.14.1: + resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} + dev: true + + /tsutils@3.21.0(typescript@5.0.3): + resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} + engines: {node: '>= 6'} + peerDependencies: + typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' + dependencies: + tslib: 1.14.1 + typescript: 5.0.3 + dev: true + + /type-check@0.4.0: + resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} + engines: {node: '>= 0.8.0'} + dependencies: + prelude-ls: 1.2.1 + dev: true + + /type-fest@0.20.2: + resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} + engines: {node: '>=10'} + dev: true + + /typescript@5.0.3: + resolution: {integrity: sha512-xv8mOEDnigb/tN9PSMTwSEqAnUvkoXMQlicOb0IUVDBSQCgBSaAAROUZYy2IcUy5qU6XajK5jjjO7TMWqBTKZA==} + engines: {node: '>=12.20'} + hasBin: true + dev: true + + /uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + dependencies: + punycode: 2.3.0 + dev: true + + /which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + dependencies: + isexe: 2.0.0 + dev: true + + /word-wrap@1.2.3: + resolution: {integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==} + engines: {node: '>=0.10.0'} + dev: true + + /wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + dev: true + + /yallist@4.0.0: + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + dev: true + + /yocto-queue@0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} + dev: true diff --git a/reflection/BUILD.bazel b/reflection/BUILD.bazel index f2760933c2..4bdada5b8b 100644 --- a/reflection/BUILD.bazel +++ b/reflection/BUILD.bazel @@ -1,3 +1,12 @@ +filegroup( + name = "distribution", + srcs = [ + "BUILD.bazel", + "reflection.fbs", + ], + visibility = ["//visibility:public"], +) + filegroup( name = "reflection_fbs_schema", srcs = ["reflection.fbs"], diff --git a/reflection/ts/BUILD.bazel b/reflection/ts/BUILD.bazel index b9bd70848b..18ffd983bd 100644 --- a/reflection/ts/BUILD.bazel +++ b/reflection/ts/BUILD.bazel @@ -9,7 +9,6 @@ genrule( flatbuffer_ts_library( name = "reflection_ts_fbs", - package_name = "flatbuffers_reflection", srcs = [":reflection.fbs"], visibility = ["//visibility:public"], ) diff --git a/src/BUILD.bazel b/src/BUILD.bazel index 28d0868ced..b4d2a9128f 100644 --- a/src/BUILD.bazel +++ b/src/BUILD.bazel @@ -5,6 +5,17 @@ package( default_visibility = ["//visibility:private"], ) +filegroup( + name = "distribution", + srcs = [ + "BUILD.bazel", + ] + glob([ + "*.cpp", + "*.h", + ]), + visibility = ["//visibility:public"], +) + # Public flatc library to compile flatbuffer files at runtime. cc_library( name = "flatbuffers", diff --git a/tests/BUILD.bazel b/tests/BUILD.bazel index ee14272494..3a3cbc5066 100644 --- a/tests/BUILD.bazel +++ b/tests/BUILD.bazel @@ -1,8 +1,20 @@ +load("@aspect_bazel_lib//lib:copy_to_bin.bzl", "copy_to_bin") load("@rules_cc//cc:defs.bzl", "cc_test") load("//:build_defs.bzl", "flatbuffer_cc_library") package(default_visibility = ["//visibility:private"]) +# rules_js works around various JS tooling limitations by copying everything +# into the output directory. Make the test data available to the tests this way. +copy_to_bin( + name = "test_data_copied_to_bin", + srcs = glob([ + "*.mon", + "*.json", + ]), + visibility = ["//tests/ts:__subpackages__"], +) + # Test binary. cc_test( name = "flatbuffers_test", diff --git a/tests/ts/BUILD.bazel b/tests/ts/BUILD.bazel index 054011a57b..82635450b7 100644 --- a/tests/ts/BUILD.bazel +++ b/tests/ts/BUILD.bazel @@ -1,3 +1,4 @@ +load("@aspect_rules_js//js:defs.bzl", "js_test") load("//:typescript.bzl", "flatbuffer_ts_library") package(default_visibility = ["//visibility:private"]) @@ -10,3 +11,68 @@ flatbuffer_ts_library( "//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"], +) diff --git a/tests/ts/bazel_repository_test.sh b/tests/ts/bazel_repository_test.sh new file mode 100755 index 0000000000..5030809329 --- /dev/null +++ b/tests/ts/bazel_repository_test.sh @@ -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 [[ ! -e "${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 //... diff --git a/tests/ts/bazel_repository_test_dir/.bazelignore b/tests/ts/bazel_repository_test_dir/.bazelignore new file mode 100644 index 0000000000..3c3629e647 --- /dev/null +++ b/tests/ts/bazel_repository_test_dir/.bazelignore @@ -0,0 +1 @@ +node_modules diff --git a/tests/ts/bazel_repository_test_dir/.bazelrc b/tests/ts/bazel_repository_test_dir/.bazelrc new file mode 100644 index 0000000000..78003332b0 --- /dev/null +++ b/tests/ts/bazel_repository_test_dir/.bazelrc @@ -0,0 +1 @@ +build --symlink_prefix=/ diff --git a/tests/ts/bazel_repository_test_dir/.gitignore b/tests/ts/bazel_repository_test_dir/.gitignore new file mode 100644 index 0000000000..ac51a054d2 --- /dev/null +++ b/tests/ts/bazel_repository_test_dir/.gitignore @@ -0,0 +1 @@ +bazel-* diff --git a/tests/ts/bazel_repository_test_dir/.npmrc b/tests/ts/bazel_repository_test_dir/.npmrc new file mode 120000 index 0000000000..6b271c2f96 --- /dev/null +++ b/tests/ts/bazel_repository_test_dir/.npmrc @@ -0,0 +1 @@ +../../../.npmrc \ No newline at end of file diff --git a/tests/ts/bazel_repository_test_dir/BUILD b/tests/ts/bazel_repository_test_dir/BUILD new file mode 100644 index 0000000000..f4e89a602d --- /dev/null +++ b/tests/ts/bazel_repository_test_dir/BUILD @@ -0,0 +1,32 @@ +load("@aspect_rules_js//js:defs.bzl", "js_test") +load("@com_github_google_flatbuffers//:typescript.bzl", "flatbuffer_ts_library") +load("@aspect_rules_js//npm:defs.bzl", "npm_link_package") +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", +) diff --git a/tests/ts/bazel_repository_test_dir/WORKSPACE b/tests/ts/bazel_repository_test_dir/WORKSPACE new file mode 100644 index 0000000000..f7ef4541f3 --- /dev/null +++ b/tests/ts/bazel_repository_test_dir/WORKSPACE @@ -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, +) diff --git a/tests/ts/bazel_repository_test_dir/import_test.js b/tests/ts/bazel_repository_test_dir/import_test.js new file mode 100644 index 0000000000..05e7929ffb --- /dev/null +++ b/tests/ts/bazel_repository_test_dir/import_test.js @@ -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(); diff --git a/tests/ts/bazel_repository_test_dir/one.fbs b/tests/ts/bazel_repository_test_dir/one.fbs new file mode 100644 index 0000000000..318170913f --- /dev/null +++ b/tests/ts/bazel_repository_test_dir/one.fbs @@ -0,0 +1,7 @@ +namespace bazel_repository_test; + +table One { + information:int; +} + +root_type One; diff --git a/tests/ts/bazel_repository_test_dir/package.json b/tests/ts/bazel_repository_test_dir/package.json new file mode 100644 index 0000000000..7bab70109d --- /dev/null +++ b/tests/ts/bazel_repository_test_dir/package.json @@ -0,0 +1,8 @@ +{ + "name": "bazel_repository_test", + "type": "module", + "private": true, + "devDependencies": { + "@types/node": "18.15.11" + } +} diff --git a/tests/ts/bazel_repository_test_dir/pnpm-lock.yaml b/tests/ts/bazel_repository_test_dir/pnpm-lock.yaml new file mode 100644 index 0000000000..331070a317 --- /dev/null +++ b/tests/ts/bazel_repository_test_dir/pnpm-lock.yaml @@ -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 diff --git a/tests/ts/bazel_repository_test_dir/two.fbs b/tests/ts/bazel_repository_test_dir/two.fbs new file mode 100644 index 0000000000..8e0cdd879b --- /dev/null +++ b/tests/ts/bazel_repository_test_dir/two.fbs @@ -0,0 +1,9 @@ +include 'one.fbs'; + +namespace bazel_repository_test; + +table Two { + one:One; +} + +root_type Two; diff --git a/tests/ts/package.json b/tests/ts/package.json index ac2639e3ce..1639cf831e 100644 --- a/tests/ts/package.json +++ b/tests/ts/package.json @@ -1,7 +1,6 @@ { "type": "module", "dependencies": { - "@grpc/grpc-js": "^1.7.0", "flatbuffers": "../../" } } diff --git a/tests/ts/test_dir/BUILD.bazel b/tests/ts/test_dir/BUILD.bazel index 8b0accaa7f..6026d9ff56 100644 --- a/tests/ts/test_dir/BUILD.bazel +++ b/tests/ts/test_dir/BUILD.bazel @@ -1,3 +1,4 @@ +load("@aspect_rules_js//js:defs.bzl", "js_test") load("//:typescript.bzl", "flatbuffer_ts_library") flatbuffer_ts_library( @@ -12,3 +13,14 @@ flatbuffer_ts_library( visibility = ["//visibility:public"], deps = [":typescript_transitive_ts_fbs"], ) + +js_test( + name = "import_test", + chdir = package_name(), + data = [ + "package.json", + ":include_ts_fbs", + "//:node_modules/flatbuffers", + ], + entry_point = "import_test.js", +) diff --git a/tests/ts/test_dir/import_test.js b/tests/ts/test_dir/import_test.js new file mode 100644 index 0000000000..594b11e0ec --- /dev/null +++ b/tests/ts/test_dir/import_test.js @@ -0,0 +1,31 @@ +import assert from 'assert' +import * as flatbuffers from 'flatbuffers' + +import typescript_include from './typescript_include_generated.cjs' + +const foobar = typescript_include.foobar; + +function main() { + // Validate the enums. + assert.strictEqual(foobar.Abc.a, 0); + assert.strictEqual(foobar.class_.arguments_, 0); + + // Validate building a table. + var fbb = new flatbuffers.Builder(1); + var name = fbb.createString("Foo Bar"); + + foobar.Tab.startTab(fbb); + foobar.Tab.addAbc(fbb, foobar.Abc.a); + foobar.Tab.addArg(fbb, foobar.class_.arguments_); + foobar.Tab.addName(fbb, name); + var tab = foobar.Tab.endTab(fbb); + + fbb.finish(tab); + + // Call as a sanity check. Would be better to validate actual output here. + fbb.asUint8Array(); + + console.log('FlatBuffers Bazel Import test: completed successfully'); +} + +main(); diff --git a/tests/ts/test_dir/package.json b/tests/ts/test_dir/package.json new file mode 100644 index 0000000000..af3f206b37 --- /dev/null +++ b/tests/ts/test_dir/package.json @@ -0,0 +1,6 @@ +{ + "type": "module", + "dependencies": { + "flatbuffers": "../../../" + } +} diff --git a/tests/ts/test_dir/typescript_include.fbs b/tests/ts/test_dir/typescript_include.fbs index c805693b29..aa43fe38a6 100644 --- a/tests/ts/test_dir/typescript_include.fbs +++ b/tests/ts/test_dir/typescript_include.fbs @@ -1,6 +1,13 @@ include 'typescript_transitive_include.fbs'; + namespace foobar; enum class: int { arguments, } + +table Tab { + abc:Abc; + arg:class; + name:string; +} diff --git a/ts/BUILD.bazel b/ts/BUILD.bazel index 34fa6746aa..4b86fe3d3c 100644 --- a/ts/BUILD.bazel +++ b/ts/BUILD.bazel @@ -1,5 +1,23 @@ -load("@npm//@bazel/typescript:index.bzl", "ts_project") -load("@build_bazel_rules_nodejs//:index.bzl", "js_library") +load("@aspect_rules_ts//ts:defs.bzl", "ts_project") +load("@aspect_rules_js//npm:defs.bzl", "npm_package") + +filegroup( + name = "distribution", + srcs = [ + "BUILD.bazel", + "compile_flat_file.sh", + ] + glob([ + "*.ts", + ]), + visibility = ["//visibility:public"], +) + +# Add an index to emulate the top-level package.json's "main" entry. +genrule( + name = "generate_index.ts", + outs = ["index.ts"], + cmd = """echo "export * from './flatbuffers.js'" > $(OUTS)""", +) ts_project( name = "flatbuffers_ts", @@ -11,6 +29,7 @@ ts_project( "flatbuffers.ts", "types.ts", "utils.ts", + ":index.ts", ], declaration = True, tsconfig = { @@ -28,14 +47,19 @@ ts_project( }, }, visibility = ["//visibility:public"], - deps = ["@npm//@types/node"], + deps = [ + # Because the main repository instantiates the @npm repository, we need + # to depend on the main repository's node import. + "@//:node_modules/@types/node", + ], ) -js_library( +npm_package( name = "flatbuffers", - package_name = "flatbuffers", + srcs = [":flatbuffers_ts"], + include_external_repositories = ["*"], + package = "flatbuffers", visibility = ["//visibility:public"], - deps = [":flatbuffers_ts"], ) sh_binary( @@ -44,7 +68,6 @@ sh_binary( data = [ "@com_github_google_flatbuffers//:flatc", "@nodejs_linux_amd64//:node_bin", - "@npm//esbuild/bin:esbuild", ], # We just depend directly on the linux amd64 nodejs binary, so only support # running this script on amd64 for now. diff --git a/ts/compile_flat_file.sh b/ts/compile_flat_file.sh index 0aeaebeaea..43e0c391aa 100755 --- a/ts/compile_flat_file.sh +++ b/ts/compile_flat_file.sh @@ -14,10 +14,9 @@ source "${RUNFILES_DIR:-/dev/null}/$f" 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 v2 --- -set -e +set -eu runfiles_export_envvars FLATC=$(rlocation com_github_google_flatbuffers/flatc) -ESBUILD=$(rlocation npm/node_modules/esbuild/bin/esbuild) TS_FILE=$(${FLATC} $@ | grep "Entry point.*generated" | grep -o "bazel-out.*ts") -export PATH=$(rlocation nodejs_linux_amd64/bin/nodejs/bin) -${ESBUILD} ${TS_FILE} --format=cjs --bundle --outfile="${OUTPUT_FILE}" --external:flatbuffers --log-level=warning +export PATH="$(rlocation nodejs_linux_amd64/bin/nodejs/bin):${PATH}" +${ESBUILD_BIN} ${TS_FILE} --format=cjs --bundle --outfile="${OUTPUT_FILE}" --external:flatbuffers --log-level=warning diff --git a/typescript.bzl b/typescript.bzl index 41eb335cc0..63c1218c64 100644 --- a/typescript.bzl +++ b/typescript.bzl @@ -2,7 +2,7 @@ Rules for building typescript flatbuffers with Bazel. """ -load("@build_bazel_rules_nodejs//:index.bzl", "js_library") +load("@aspect_rules_js//js:defs.bzl", "js_library") load(":build_defs.bzl", "flatbuffer_library_public") DEFAULT_FLATC_TS_ARGS = [ @@ -24,8 +24,7 @@ def flatbuffer_ts_library( flatc_args = DEFAULT_FLATC_TS_ARGS, visibility = None, restricted_to = None, - gen_reflections = False, - package_name = None): + gen_reflections = False): """Generates a ts_library rule for a given flatbuffer definition. Args: @@ -46,7 +45,6 @@ def flatbuffer_ts_library( to use. gen_reflections: Optional, if true this will generate the flatbuffer reflection binaries for the schemas. - package_name: Optional, Package name to use for the generated code. """ srcs_lib = "%s_srcs" % (name) out_base = [s.replace(".fbs", "").split("/")[-1].split(":")[-1] for s in srcs] @@ -64,6 +62,7 @@ def flatbuffer_ts_library( language_flag = "--ts", includes = includes, include_paths = include_paths, + extra_env = "ESBUILD_BIN=$(ESBUILD_BIN)", flatc_args = flatc_args + ["--filename-suffix _generated"], compatible_with = compatible_with, restricted_to = restricted_to, @@ -71,6 +70,8 @@ def flatbuffer_ts_library( reflection_visibility = visibility, target_compatible_with = target_compatible_with, flatc_path = "@com_github_google_flatbuffers//ts:compile_flat_file", + toolchains = ["@aspect_rules_esbuild//esbuild:resolved_toolchain"], + tools = ["@aspect_rules_esbuild//esbuild:resolved_toolchain"], ) js_library( name = name, @@ -79,7 +80,6 @@ def flatbuffer_ts_library( restricted_to = restricted_to, target_compatible_with = target_compatible_with, srcs = outs, - package_name = package_name, ) native.filegroup( name = "%s_includes" % (name), diff --git a/yarn.lock b/yarn.lock deleted file mode 100644 index e65a4e918f..0000000000 --- a/yarn.lock +++ /dev/null @@ -1,1174 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"@bazel/typescript@5.2.0": - version "5.2.0" - resolved "https://registry.yarnpkg.com/@bazel/typescript/-/typescript-5.2.0.tgz#131127c8016c712ef1b291f2b52108e5326f0447" - integrity sha512-hNpSCQj5dOX95iC4Yf/fuyxfMU5uTAe84thqPcTCvOJFmpypN6qzxH24S5UiXkwbsL8sQM9DP0+qFyT/TRKdNw== - dependencies: - "@bazel/worker" "5.2.0" - protobufjs "6.8.8" - semver "5.6.0" - source-map-support "0.5.9" - tsutils "3.21.0" - -"@bazel/worker@5.2.0": - version "5.2.0" - resolved "https://registry.yarnpkg.com/@bazel/worker/-/worker-5.2.0.tgz#464726821f9d98b11c6536e2547d44459a321a61" - integrity sha512-C9ozvgRP2iug4e9XaVjfXSKmrUMyzsYhDN2/A+MqKl8qlAf5AlveNofCUBASHxJsYiBn3ATbPNUznGsjeMpVWg== - dependencies: - google-protobuf "^3.6.1" - -"@esbuild/android-arm64@0.17.14": - version "0.17.14" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.17.14.tgz#4624cea3c8941c91f9e9c1228f550d23f1cef037" - integrity sha512-eLOpPO1RvtsP71afiFTvS7tVFShJBCT0txiv/xjFBo5a7R7Gjw7X0IgIaFoLKhqXYAXhahoXm7qAmRXhY4guJg== - -"@esbuild/android-arm@0.17.14": - version "0.17.14" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.17.14.tgz#74fae60fcab34c3f0e15cb56473a6091ba2b53a6" - integrity sha512-0CnlwnjDU8cks0yJLXfkaU/uoLyRf9VZJs4p1PskBr2AlAHeEsFEwJEo0of/Z3g+ilw5mpyDwThlxzNEIxOE4g== - -"@esbuild/android-x64@0.17.14": - version "0.17.14" - resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.17.14.tgz#f002fbc08d5e939d8314bd23bcfb1e95d029491f" - integrity sha512-nrfQYWBfLGfSGLvRVlt6xi63B5IbfHm3tZCdu/82zuFPQ7zez4XjmRtF/wIRYbJQ/DsZrxJdEvYFE67avYXyng== - -"@esbuild/darwin-arm64@0.17.14": - version "0.17.14" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.17.14.tgz#b8dcd79a1dd19564950b4ca51d62999011e2e168" - integrity sha512-eoSjEuDsU1ROwgBH/c+fZzuSyJUVXQTOIN9xuLs9dE/9HbV/A5IqdXHU1p2OfIMwBwOYJ9SFVGGldxeRCUJFyw== - -"@esbuild/darwin-x64@0.17.14": - version "0.17.14" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.17.14.tgz#4b49f195d9473625efc3c773fc757018f2c0d979" - integrity sha512-zN0U8RWfrDttdFNkHqFYZtOH8hdi22z0pFm0aIJPsNC4QQZv7je8DWCX5iA4Zx6tRhS0CCc0XC2m7wKsbWEo5g== - -"@esbuild/freebsd-arm64@0.17.14": - version "0.17.14" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.14.tgz#480923fd38f644c6342c55e916cc7c231a85eeb7" - integrity sha512-z0VcD4ibeZWVQCW1O7szaLxGsx54gcCnajEJMdYoYjLiq4g1jrP2lMq6pk71dbS5+7op/L2Aod+erw+EUr28/A== - -"@esbuild/freebsd-x64@0.17.14": - version "0.17.14" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.17.14.tgz#a6b6b01954ad8562461cb8a5e40e8a860af69cbe" - integrity sha512-hd9mPcxfTgJlolrPlcXkQk9BMwNBvNBsVaUe5eNUqXut6weDQH8whcNaKNF2RO8NbpT6GY8rHOK2A9y++s+ehw== - -"@esbuild/linux-arm64@0.17.14": - version "0.17.14" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.17.14.tgz#1fe2f39f78183b59f75a4ad9c48d079916d92418" - integrity sha512-FhAMNYOq3Iblcj9i+K0l1Fp/MHt+zBeRu/Qkf0LtrcFu3T45jcwB6A1iMsemQ42vR3GBhjNZJZTaCe3VFPbn9g== - -"@esbuild/linux-arm@0.17.14": - version "0.17.14" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.17.14.tgz#18d594a49b64e4a3a05022c005cb384a58056a2a" - integrity sha512-BNTl+wSJ1omsH8s3TkQmIIIQHwvwJrU9u1ggb9XU2KTVM4TmthRIVyxSp2qxROJHhZuW/r8fht46/QE8hU8Qvg== - -"@esbuild/linux-ia32@0.17.14": - version "0.17.14" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.17.14.tgz#f7f0182a9cfc0159e0922ed66c805c9c6ef1b654" - integrity sha512-91OK/lQ5y2v7AsmnFT+0EyxdPTNhov3y2CWMdizyMfxSxRqHazXdzgBKtlmkU2KYIc+9ZK3Vwp2KyXogEATYxQ== - -"@esbuild/linux-loong64@0.17.14": - version "0.17.14" - resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.17.14.tgz#5f5305fdffe2d71dd9a97aa77d0c99c99409066f" - integrity sha512-vp15H+5NR6hubNgMluqqKza85HcGJgq7t6rMH7O3Y6ApiOWPkvW2AJfNojUQimfTp6OUrACUXfR4hmpcENXoMQ== - -"@esbuild/linux-mips64el@0.17.14": - version "0.17.14" - resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.17.14.tgz#a602e85c51b2f71d2aedfe7f4143b2f92f97f3f5" - integrity sha512-90TOdFV7N+fgi6c2+GO9ochEkmm9kBAKnuD5e08GQMgMINOdOFHuYLPQ91RYVrnWwQ5683sJKuLi9l4SsbJ7Hg== - -"@esbuild/linux-ppc64@0.17.14": - version "0.17.14" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.17.14.tgz#32d918d782105cbd9345dbfba14ee018b9c7afdf" - integrity sha512-NnBGeoqKkTugpBOBZZoktQQ1Yqb7aHKmHxsw43NddPB2YWLAlpb7THZIzsRsTr0Xw3nqiPxbA1H31ZMOG+VVPQ== - -"@esbuild/linux-riscv64@0.17.14": - version "0.17.14" - resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.17.14.tgz#38612e7b6c037dff7022c33f49ca17f85c5dec58" - integrity sha512-0qdlKScLXA8MGVy21JUKvMzCYWovctuP8KKqhtE5A6IVPq4onxXhSuhwDd2g5sRCzNDlDjitc5sX31BzDoL5Fw== - -"@esbuild/linux-s390x@0.17.14": - version "0.17.14" - resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.17.14.tgz#4397dff354f899e72fd035d72af59a700c465ccb" - integrity sha512-Hdm2Jo1yaaOro4v3+6/zJk6ygCqIZuSDJHdHaf8nVH/tfOuoEX5Riv03Ka15LmQBYJObUTNS1UdyoMk0WUn9Ww== - -"@esbuild/linux-x64@0.17.14": - version "0.17.14" - resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.17.14.tgz#6c5cb99891b6c3e0c08369da3ef465e8038ad9c2" - integrity sha512-8KHF17OstlK4DuzeF/KmSgzrTWQrkWj5boluiiq7kvJCiQVzUrmSkaBvcLB2UgHpKENO2i6BthPkmUhNDaJsVw== - -"@esbuild/netbsd-x64@0.17.14": - version "0.17.14" - resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.17.14.tgz#5fa5255a64e9bf3947c1b3bef5e458b50b211994" - integrity sha512-nVwpqvb3yyXztxIT2+VsxJhB5GCgzPdk1n0HHSnchRAcxqKO6ghXwHhJnr0j/B+5FSyEqSxF4q03rbA2fKXtUQ== - -"@esbuild/openbsd-x64@0.17.14": - version "0.17.14" - resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.17.14.tgz#74d14c79dcb6faf446878cc64284aa4e02f5ca6f" - integrity sha512-1RZ7uQQ9zcy/GSAJL1xPdN7NDdOOtNEGiJalg/MOzeakZeTrgH/DoCkbq7TaPDiPhWqnDF+4bnydxRqQD7il6g== - -"@esbuild/sunos-x64@0.17.14": - version "0.17.14" - resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.17.14.tgz#5c7d1c7203781d86c2a9b2ff77bd2f8036d24cfa" - integrity sha512-nqMjDsFwv7vp7msrwWRysnM38Sd44PKmW8EzV01YzDBTcTWUpczQg6mGao9VLicXSgW/iookNK6AxeogNVNDZA== - -"@esbuild/win32-arm64@0.17.14": - version "0.17.14" - resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.17.14.tgz#dc36ed84f1390e73b6019ccf0566c80045e5ca3d" - integrity sha512-xrD0mccTKRBBIotrITV7WVQAwNJ5+1va6L0H9zN92v2yEdjfAN7864cUaZwJS7JPEs53bDTzKFbfqVlG2HhyKQ== - -"@esbuild/win32-ia32@0.17.14": - version "0.17.14" - resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.17.14.tgz#0802a107afa9193c13e35de15a94fe347c588767" - integrity sha512-nXpkz9bbJrLLyUTYtRotSS3t5b+FOuljg8LgLdINWFs3FfqZMtbnBCZFUmBzQPyxqU87F8Av+3Nco/M3hEcu1w== - -"@esbuild/win32-x64@0.17.14": - version "0.17.14" - resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.17.14.tgz#e81fb49de05fed91bf74251c9ca0343f4fc77d31" - integrity sha512-gPQmsi2DKTaEgG14hc3CHXHp62k8g6qr0Pas+I4lUxRMugGSATh/Bi8Dgusoz9IQ0IfdrvLpco6kujEIBoaogA== - -"@eslint-community/eslint-utils@^4.2.0": - version "4.4.0" - resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59" - integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA== - dependencies: - eslint-visitor-keys "^3.3.0" - -"@eslint-community/regexpp@^4.4.0": - version "4.5.0" - resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.5.0.tgz#f6f729b02feee2c749f57e334b7a1b5f40a81724" - integrity sha512-vITaYzIcNmjn5tF5uxcZ/ft7/RXGrMUIS9HalWckEOF6ESiwXKoMzAQf2UW0aVd6rnOeExTJVd5hmWXucBKGXQ== - -"@eslint/eslintrc@^2.0.2": - version "2.0.2" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.0.2.tgz#01575e38707add677cf73ca1589abba8da899a02" - integrity sha512-3W4f5tDUra+pA+FzgugqL2pRimUTDJWKr7BINqOpkZrC0uYI0NIc0/JFgBROCU07HR6GieA5m3/rsPIhDmCXTQ== - dependencies: - ajv "^6.12.4" - debug "^4.3.2" - espree "^9.5.1" - globals "^13.19.0" - ignore "^5.2.0" - import-fresh "^3.2.1" - js-yaml "^4.1.0" - minimatch "^3.1.2" - strip-json-comments "^3.1.1" - -"@eslint/js@8.37.0": - version "8.37.0" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.37.0.tgz#cf1b5fa24217fe007f6487a26d765274925efa7d" - integrity sha512-x5vzdtOOGgFVDCUs81QRB2+liax8rFg3+7hqM+QhBG0/G3F1ZsoYl97UrqgHgQ9KKT7G6c4V+aTUCgu/n22v1A== - -"@humanwhocodes/config-array@^0.11.8": - version "0.11.8" - resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.8.tgz#03595ac2075a4dc0f191cc2131de14fbd7d410b9" - integrity sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g== - dependencies: - "@humanwhocodes/object-schema" "^1.2.1" - debug "^4.1.1" - minimatch "^3.0.5" - -"@humanwhocodes/module-importer@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" - integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== - -"@humanwhocodes/object-schema@^1.2.1": - version "1.2.1" - resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45" - integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== - -"@nodelib/fs.scandir@2.1.5": - version "2.1.5" - resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" - integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== - dependencies: - "@nodelib/fs.stat" "2.0.5" - run-parallel "^1.1.9" - -"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": - version "2.0.5" - resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" - integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== - -"@nodelib/fs.walk@^1.2.3", "@nodelib/fs.walk@^1.2.8": - version "1.2.8" - resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" - integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== - dependencies: - "@nodelib/fs.scandir" "2.1.5" - fastq "^1.6.0" - -"@protobufjs/aspromise@^1.1.1", "@protobufjs/aspromise@^1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@protobufjs/aspromise/-/aspromise-1.1.2.tgz#9b8b0cc663d669a7d8f6f5d0893a14d348f30fbf" - integrity sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ== - -"@protobufjs/base64@^1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@protobufjs/base64/-/base64-1.1.2.tgz#4c85730e59b9a1f1f349047dbf24296034bb2735" - integrity sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg== - -"@protobufjs/codegen@^2.0.4": - version "2.0.4" - resolved "https://registry.yarnpkg.com/@protobufjs/codegen/-/codegen-2.0.4.tgz#7ef37f0d010fb028ad1ad59722e506d9262815cb" - integrity sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg== - -"@protobufjs/eventemitter@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz#355cbc98bafad5978f9ed095f397621f1d066b70" - integrity sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q== - -"@protobufjs/fetch@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@protobufjs/fetch/-/fetch-1.1.0.tgz#ba99fb598614af65700c1619ff06d454b0d84c45" - integrity sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ== - dependencies: - "@protobufjs/aspromise" "^1.1.1" - "@protobufjs/inquire" "^1.1.0" - -"@protobufjs/float@^1.0.2": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@protobufjs/float/-/float-1.0.2.tgz#5e9e1abdcb73fc0a7cb8b291df78c8cbd97b87d1" - integrity sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ== - -"@protobufjs/inquire@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@protobufjs/inquire/-/inquire-1.1.0.tgz#ff200e3e7cf2429e2dcafc1140828e8cc638f089" - integrity sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q== - -"@protobufjs/path@^1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@protobufjs/path/-/path-1.1.2.tgz#6cc2b20c5c9ad6ad0dccfd21ca7673d8d7fbf68d" - integrity sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA== - -"@protobufjs/pool@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@protobufjs/pool/-/pool-1.1.0.tgz#09fd15f2d6d3abfa9b65bc366506d6ad7846ff54" - integrity sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw== - -"@protobufjs/utf8@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@protobufjs/utf8/-/utf8-1.1.0.tgz#a777360b5b39a1a2e5106f8e858f2fd2d060c570" - integrity sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw== - -"@types/json-schema@^7.0.9": - version "7.0.11" - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.11.tgz#d421b6c527a3037f7c84433fd2c4229e016863d3" - integrity sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ== - -"@types/long@^4.0.0": - version "4.0.2" - resolved "https://registry.yarnpkg.com/@types/long/-/long-4.0.2.tgz#b74129719fc8d11c01868010082d483b7545591a" - integrity sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA== - -"@types/node@18.15.11": - version "18.15.11" - resolved "https://registry.yarnpkg.com/@types/node/-/node-18.15.11.tgz#b3b790f09cb1696cffcec605de025b088fa4225f" - integrity sha512-E5Kwq2n4SbMzQOn6wnmBjuK9ouqlURrcZDVfbo9ftDDTFt3nk7ZKK4GMOzoYgnpQJKcxwQw+lGaBvvlMo0qN/Q== - -"@types/node@^10.1.0": - version "10.17.60" - resolved "https://registry.yarnpkg.com/@types/node/-/node-10.17.60.tgz#35f3d6213daed95da7f0f73e75bcc6980e90597b" - integrity sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw== - -"@types/semver@^7.3.12": - version "7.3.13" - resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.3.13.tgz#da4bfd73f49bd541d28920ab0e2bf0ee80f71c91" - integrity sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw== - -"@typescript-eslint/eslint-plugin@^5.57.0": - version "5.57.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.57.0.tgz#52c8a7a4512f10e7249ca1e2e61f81c62c34365c" - integrity sha512-itag0qpN6q2UMM6Xgk6xoHa0D0/P+M17THnr4SVgqn9Rgam5k/He33MA7/D7QoJcdMxHFyX7U9imaBonAX/6qA== - dependencies: - "@eslint-community/regexpp" "^4.4.0" - "@typescript-eslint/scope-manager" "5.57.0" - "@typescript-eslint/type-utils" "5.57.0" - "@typescript-eslint/utils" "5.57.0" - debug "^4.3.4" - grapheme-splitter "^1.0.4" - ignore "^5.2.0" - natural-compare-lite "^1.4.0" - semver "^7.3.7" - tsutils "^3.21.0" - -"@typescript-eslint/parser@^5.57.0": - version "5.57.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.57.0.tgz#f675bf2cd1a838949fd0de5683834417b757e4fa" - integrity sha512-orrduvpWYkgLCyAdNtR1QIWovcNZlEm6yL8nwH/eTxWLd8gsP+25pdLHYzL2QdkqrieaDwLpytHqycncv0woUQ== - dependencies: - "@typescript-eslint/scope-manager" "5.57.0" - "@typescript-eslint/types" "5.57.0" - "@typescript-eslint/typescript-estree" "5.57.0" - debug "^4.3.4" - -"@typescript-eslint/scope-manager@5.57.0": - version "5.57.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.57.0.tgz#79ccd3fa7bde0758059172d44239e871e087ea36" - integrity sha512-NANBNOQvllPlizl9LatX8+MHi7bx7WGIWYjPHDmQe5Si/0YEYfxSljJpoTyTWFTgRy3X8gLYSE4xQ2U+aCozSw== - dependencies: - "@typescript-eslint/types" "5.57.0" - "@typescript-eslint/visitor-keys" "5.57.0" - -"@typescript-eslint/type-utils@5.57.0": - version "5.57.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.57.0.tgz#98e7531c4e927855d45bd362de922a619b4319f2" - integrity sha512-kxXoq9zOTbvqzLbdNKy1yFrxLC6GDJFE2Yuo3KqSwTmDOFjUGeWSakgoXT864WcK5/NAJkkONCiKb1ddsqhLXQ== - dependencies: - "@typescript-eslint/typescript-estree" "5.57.0" - "@typescript-eslint/utils" "5.57.0" - debug "^4.3.4" - tsutils "^3.21.0" - -"@typescript-eslint/types@5.57.0": - version "5.57.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.57.0.tgz#727bfa2b64c73a4376264379cf1f447998eaa132" - integrity sha512-mxsod+aZRSyLT+jiqHw1KK6xrANm19/+VFALVFP5qa/aiJnlP38qpyaTd0fEKhWvQk6YeNZ5LGwI1pDpBRBhtQ== - -"@typescript-eslint/typescript-estree@5.57.0": - version "5.57.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.57.0.tgz#ebcd0ee3e1d6230e888d88cddf654252d41e2e40" - integrity sha512-LTzQ23TV82KpO8HPnWuxM2V7ieXW8O142I7hQTxWIHDcCEIjtkat6H96PFkYBQqGFLW/G/eVVOB9Z8rcvdY/Vw== - dependencies: - "@typescript-eslint/types" "5.57.0" - "@typescript-eslint/visitor-keys" "5.57.0" - debug "^4.3.4" - globby "^11.1.0" - is-glob "^4.0.3" - semver "^7.3.7" - tsutils "^3.21.0" - -"@typescript-eslint/utils@5.57.0": - version "5.57.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.57.0.tgz#eab8f6563a2ac31f60f3e7024b91bf75f43ecef6" - integrity sha512-ps/4WohXV7C+LTSgAL5CApxvxbMkl9B9AUZRtnEFonpIxZDIT7wC1xfvuJONMidrkB9scs4zhtRyIwHh4+18kw== - dependencies: - "@eslint-community/eslint-utils" "^4.2.0" - "@types/json-schema" "^7.0.9" - "@types/semver" "^7.3.12" - "@typescript-eslint/scope-manager" "5.57.0" - "@typescript-eslint/types" "5.57.0" - "@typescript-eslint/typescript-estree" "5.57.0" - eslint-scope "^5.1.1" - semver "^7.3.7" - -"@typescript-eslint/visitor-keys@5.57.0": - version "5.57.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.57.0.tgz#e2b2f4174aff1d15eef887ce3d019ecc2d7a8ac1" - integrity sha512-ery2g3k0hv5BLiKpPuwYt9KBkAp2ugT6VvyShXdLOkax895EC55sP0Tx5L0fZaQueiK3fBLvHVvEl3jFS5ia+g== - dependencies: - "@typescript-eslint/types" "5.57.0" - eslint-visitor-keys "^3.3.0" - -acorn-jsx@^5.3.2: - version "5.3.2" - resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" - integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== - -acorn@^8.8.0: - version "8.8.2" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.2.tgz#1b2f25db02af965399b9776b0c2c391276d37c4a" - integrity sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw== - -ajv@^6.10.0, ajv@^6.12.4: - version "6.12.6" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" - integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== - dependencies: - fast-deep-equal "^3.1.1" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.4.1" - uri-js "^4.2.2" - -ansi-regex@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" - integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== - -ansi-styles@^4.1.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" - integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== - dependencies: - color-convert "^2.0.1" - -argparse@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" - integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== - -array-union@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" - integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== - -balanced-match@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" - integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== - -brace-expansion@^1.1.7: - version "1.1.11" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" - integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== - dependencies: - balanced-match "^1.0.0" - concat-map "0.0.1" - -braces@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" - integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== - dependencies: - fill-range "^7.0.1" - -buffer-from@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" - integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== - -callsites@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" - integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== - -chalk@^4.0.0: - version "4.1.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" - integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -color-convert@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" - integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== - dependencies: - color-name "~1.1.4" - -color-name@~1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" - integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== - -concat-map@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== - -cross-spawn@^7.0.2: - version "7.0.3" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" - integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== - dependencies: - path-key "^3.1.0" - shebang-command "^2.0.0" - which "^2.0.1" - -debug@^4.1.1, debug@^4.3.2, debug@^4.3.4: - version "4.3.4" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" - integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== - dependencies: - ms "2.1.2" - -deep-is@^0.1.3: - version "0.1.4" - resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" - integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== - -dir-glob@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" - integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== - dependencies: - path-type "^4.0.0" - -doctrine@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" - integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== - dependencies: - esutils "^2.0.2" - -esbuild@^0.17.14: - version "0.17.14" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.17.14.tgz#d61a22de751a3133f3c6c7f9c1c3e231e91a3245" - integrity sha512-vOO5XhmVj/1XQR9NQ1UPq6qvMYL7QFJU57J5fKBKBKxp17uDt5PgxFDb4A2nEiXhr1qQs4x0F5+66hVVw4ruNw== - optionalDependencies: - "@esbuild/android-arm" "0.17.14" - "@esbuild/android-arm64" "0.17.14" - "@esbuild/android-x64" "0.17.14" - "@esbuild/darwin-arm64" "0.17.14" - "@esbuild/darwin-x64" "0.17.14" - "@esbuild/freebsd-arm64" "0.17.14" - "@esbuild/freebsd-x64" "0.17.14" - "@esbuild/linux-arm" "0.17.14" - "@esbuild/linux-arm64" "0.17.14" - "@esbuild/linux-ia32" "0.17.14" - "@esbuild/linux-loong64" "0.17.14" - "@esbuild/linux-mips64el" "0.17.14" - "@esbuild/linux-ppc64" "0.17.14" - "@esbuild/linux-riscv64" "0.17.14" - "@esbuild/linux-s390x" "0.17.14" - "@esbuild/linux-x64" "0.17.14" - "@esbuild/netbsd-x64" "0.17.14" - "@esbuild/openbsd-x64" "0.17.14" - "@esbuild/sunos-x64" "0.17.14" - "@esbuild/win32-arm64" "0.17.14" - "@esbuild/win32-ia32" "0.17.14" - "@esbuild/win32-x64" "0.17.14" - -escape-string-regexp@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" - integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== - -eslint-scope@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" - integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== - dependencies: - esrecurse "^4.3.0" - estraverse "^4.1.1" - -eslint-scope@^7.1.1: - version "7.1.1" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.1.1.tgz#fff34894c2f65e5226d3041ac480b4513a163642" - integrity sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw== - dependencies: - esrecurse "^4.3.0" - estraverse "^5.2.0" - -eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.0.tgz#c7f0f956124ce677047ddbc192a68f999454dedc" - integrity sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ== - -eslint@^8.37.0: - version "8.37.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.37.0.tgz#1f660ef2ce49a0bfdec0b0d698e0b8b627287412" - integrity sha512-NU3Ps9nI05GUoVMxcZx1J8CNR6xOvUT4jAUMH5+z8lpp3aEdPVCImKw6PWG4PY+Vfkpr+jvMpxs/qoE7wq0sPw== - dependencies: - "@eslint-community/eslint-utils" "^4.2.0" - "@eslint-community/regexpp" "^4.4.0" - "@eslint/eslintrc" "^2.0.2" - "@eslint/js" "8.37.0" - "@humanwhocodes/config-array" "^0.11.8" - "@humanwhocodes/module-importer" "^1.0.1" - "@nodelib/fs.walk" "^1.2.8" - ajv "^6.10.0" - chalk "^4.0.0" - cross-spawn "^7.0.2" - debug "^4.3.2" - doctrine "^3.0.0" - escape-string-regexp "^4.0.0" - eslint-scope "^7.1.1" - eslint-visitor-keys "^3.4.0" - espree "^9.5.1" - esquery "^1.4.2" - esutils "^2.0.2" - fast-deep-equal "^3.1.3" - file-entry-cache "^6.0.1" - find-up "^5.0.0" - glob-parent "^6.0.2" - globals "^13.19.0" - grapheme-splitter "^1.0.4" - ignore "^5.2.0" - import-fresh "^3.0.0" - imurmurhash "^0.1.4" - is-glob "^4.0.0" - is-path-inside "^3.0.3" - js-sdsl "^4.1.4" - js-yaml "^4.1.0" - json-stable-stringify-without-jsonify "^1.0.1" - levn "^0.4.1" - lodash.merge "^4.6.2" - minimatch "^3.1.2" - natural-compare "^1.4.0" - optionator "^0.9.1" - strip-ansi "^6.0.1" - strip-json-comments "^3.1.0" - text-table "^0.2.0" - -espree@^9.5.1: - version "9.5.1" - resolved "https://registry.yarnpkg.com/espree/-/espree-9.5.1.tgz#4f26a4d5f18905bf4f2e0bd99002aab807e96dd4" - integrity sha512-5yxtHSZXRSW5pvv3hAlXM5+/Oswi1AUFqBmbibKb5s6bp3rGIDkyXU6xCoyuuLhijr4SFwPrXRoZjz0AZDN9tg== - dependencies: - acorn "^8.8.0" - acorn-jsx "^5.3.2" - eslint-visitor-keys "^3.4.0" - -esquery@^1.4.2: - version "1.5.0" - resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.5.0.tgz#6ce17738de8577694edd7361c57182ac8cb0db0b" - integrity sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg== - dependencies: - estraverse "^5.1.0" - -esrecurse@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" - integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== - dependencies: - estraverse "^5.2.0" - -estraverse@^4.1.1: - version "4.3.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" - integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== - -estraverse@^5.1.0, estraverse@^5.2.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" - integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== - -esutils@^2.0.2: - version "2.0.3" - resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" - integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== - -fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" - integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== - -fast-glob@^3.2.9: - version "3.2.12" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.12.tgz#7f39ec99c2e6ab030337142da9e0c18f37afae80" - integrity sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w== - dependencies: - "@nodelib/fs.stat" "^2.0.2" - "@nodelib/fs.walk" "^1.2.3" - glob-parent "^5.1.2" - merge2 "^1.3.0" - micromatch "^4.0.4" - -fast-json-stable-stringify@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" - integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== - -fast-levenshtein@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" - integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== - -fastq@^1.6.0: - version "1.15.0" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.15.0.tgz#d04d07c6a2a68fe4599fea8d2e103a937fae6b3a" - integrity sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw== - dependencies: - reusify "^1.0.4" - -file-entry-cache@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" - integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== - dependencies: - flat-cache "^3.0.4" - -fill-range@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" - integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== - dependencies: - to-regex-range "^5.0.1" - -find-up@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" - integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== - dependencies: - locate-path "^6.0.0" - path-exists "^4.0.0" - -flat-cache@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11" - integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg== - dependencies: - flatted "^3.1.0" - rimraf "^3.0.2" - -flatted@^3.1.0: - version "3.2.7" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.7.tgz#609f39207cb614b89d0765b477cb2d437fbf9787" - integrity sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ== - -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== - -glob-parent@^5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" - integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== - dependencies: - is-glob "^4.0.1" - -glob-parent@^6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" - integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== - dependencies: - is-glob "^4.0.3" - -glob@^7.1.3: - version "7.2.3" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" - integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.1.1" - once "^1.3.0" - path-is-absolute "^1.0.0" - -globals@^13.19.0: - version "13.20.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-13.20.0.tgz#ea276a1e508ffd4f1612888f9d1bad1e2717bf82" - integrity sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ== - dependencies: - type-fest "^0.20.2" - -globby@^11.1.0: - version "11.1.0" - resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" - integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== - dependencies: - array-union "^2.1.0" - dir-glob "^3.0.1" - fast-glob "^3.2.9" - ignore "^5.2.0" - merge2 "^1.4.1" - slash "^3.0.0" - -google-protobuf@^3.6.1: - version "3.21.2" - resolved "https://registry.yarnpkg.com/google-protobuf/-/google-protobuf-3.21.2.tgz#4580a2bea8bbb291ee579d1fefb14d6fa3070ea4" - integrity sha512-3MSOYFO5U9mPGikIYCzK0SaThypfGgS6bHqrUGXG3DPHCrb+txNqeEcns1W0lkGfk0rCyNXm7xB9rMxnCiZOoA== - -grapheme-splitter@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz#9cf3a665c6247479896834af35cf1dbb4400767e" - integrity sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ== - -has-flag@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" - integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== - -ignore@^5.2.0: - version "5.2.4" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.4.tgz#a291c0c6178ff1b960befe47fcdec301674a6324" - integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ== - -import-fresh@^3.0.0, import-fresh@^3.2.1: - version "3.3.0" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" - integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== - dependencies: - parent-module "^1.0.0" - resolve-from "^4.0.0" - -imurmurhash@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" - integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== - -inflight@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== - dependencies: - once "^1.3.0" - wrappy "1" - -inherits@2: - version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - -is-extglob@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" - integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== - -is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" - integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== - dependencies: - is-extglob "^2.1.1" - -is-number@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" - integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== - -is-path-inside@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" - integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== - -isexe@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== - -js-sdsl@^4.1.4: - version "4.4.0" - resolved "https://registry.yarnpkg.com/js-sdsl/-/js-sdsl-4.4.0.tgz#8b437dbe642daa95760400b602378ed8ffea8430" - integrity sha512-FfVSdx6pJ41Oa+CF7RDaFmTnCaFhua+SNYQX74riGOpl96x+2jQCqEfQ2bnXu/5DPCqlRuiqyvTJM0Qjz26IVg== - -js-yaml@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" - integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== - dependencies: - argparse "^2.0.1" - -json-schema-traverse@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" - integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== - -json-stable-stringify-without-jsonify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" - integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== - -levn@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" - integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== - dependencies: - prelude-ls "^1.2.1" - type-check "~0.4.0" - -locate-path@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" - integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== - dependencies: - p-locate "^5.0.0" - -lodash.merge@^4.6.2: - version "4.6.2" - resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" - integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== - -long@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/long/-/long-4.0.0.tgz#9a7b71cfb7d361a194ea555241c92f7468d5bf28" - integrity sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA== - -lru-cache@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" - integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== - dependencies: - yallist "^4.0.0" - -merge2@^1.3.0, merge2@^1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" - integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== - -micromatch@^4.0.4: - version "4.0.5" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" - integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== - dependencies: - braces "^3.0.2" - picomatch "^2.3.1" - -minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" - integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== - dependencies: - brace-expansion "^1.1.7" - -ms@2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" - integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== - -natural-compare-lite@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz#17b09581988979fddafe0201e931ba933c96cbb4" - integrity sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g== - -natural-compare@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" - integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== - -once@^1.3.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== - dependencies: - wrappy "1" - -optionator@^0.9.1: - version "0.9.1" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" - integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== - dependencies: - deep-is "^0.1.3" - fast-levenshtein "^2.0.6" - levn "^0.4.1" - prelude-ls "^1.2.1" - type-check "^0.4.0" - word-wrap "^1.2.3" - -p-limit@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" - integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== - dependencies: - yocto-queue "^0.1.0" - -p-locate@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" - integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== - dependencies: - p-limit "^3.0.2" - -parent-module@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" - integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== - dependencies: - callsites "^3.0.0" - -path-exists@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" - integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== - -path-is-absolute@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== - -path-key@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" - integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== - -path-type@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" - integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== - -picomatch@^2.3.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" - integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== - -prelude-ls@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" - integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== - -protobufjs@6.8.8: - version "6.8.8" - resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-6.8.8.tgz#c8b4f1282fd7a90e6f5b109ed11c84af82908e7c" - integrity sha512-AAmHtD5pXgZfi7GMpllpO3q1Xw1OYldr+dMUlAnffGTAhqkg72WdmSY71uKBF/JuyiKs8psYbtKrhi0ASCD8qw== - dependencies: - "@protobufjs/aspromise" "^1.1.2" - "@protobufjs/base64" "^1.1.2" - "@protobufjs/codegen" "^2.0.4" - "@protobufjs/eventemitter" "^1.1.0" - "@protobufjs/fetch" "^1.1.0" - "@protobufjs/float" "^1.0.2" - "@protobufjs/inquire" "^1.1.0" - "@protobufjs/path" "^1.1.2" - "@protobufjs/pool" "^1.1.0" - "@protobufjs/utf8" "^1.1.0" - "@types/long" "^4.0.0" - "@types/node" "^10.1.0" - long "^4.0.0" - -punycode@^2.1.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.0.tgz#f67fa67c94da8f4d0cfff981aee4118064199b8f" - integrity sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA== - -queue-microtask@^1.2.2: - version "1.2.3" - resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" - integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== - -resolve-from@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" - integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== - -reusify@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" - integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== - -rimraf@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" - integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== - dependencies: - glob "^7.1.3" - -run-parallel@^1.1.9: - version "1.2.0" - resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" - integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== - dependencies: - queue-microtask "^1.2.2" - -semver@5.6.0: - version "5.6.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.6.0.tgz#7e74256fbaa49c75aa7c7a205cc22799cac80004" - integrity sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg== - -semver@^7.3.7: - version "7.3.8" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.8.tgz#07a78feafb3f7b32347d725e33de7e2a2df67798" - integrity sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A== - dependencies: - lru-cache "^6.0.0" - -shebang-command@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" - integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== - dependencies: - shebang-regex "^3.0.0" - -shebang-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" - integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== - -slash@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" - integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== - -source-map-support@0.5.9: - version "0.5.9" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.9.tgz#41bc953b2534267ea2d605bccfa7bfa3111ced5f" - integrity sha512-gR6Rw4MvUlYy83vP0vxoVNzM6t8MUXqNuRsuBmBHQDu1Fh6X015FrLdgoDKcNdkwGubozq0P4N0Q37UyFVr1EA== - dependencies: - buffer-from "^1.0.0" - source-map "^0.6.0" - -source-map@^0.6.0: - version "0.6.1" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" - integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== - -strip-ansi@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== - dependencies: - ansi-regex "^5.0.1" - -strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" - integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== - -supports-color@^7.1.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" - integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== - dependencies: - has-flag "^4.0.0" - -text-table@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" - integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== - -to-regex-range@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" - integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== - dependencies: - is-number "^7.0.0" - -tslib@^1.8.1: - version "1.14.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" - integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== - -tsutils@3.21.0, tsutils@^3.21.0: - version "3.21.0" - resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" - integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA== - dependencies: - tslib "^1.8.1" - -type-check@^0.4.0, type-check@~0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" - integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== - dependencies: - prelude-ls "^1.2.1" - -type-fest@^0.20.2: - version "0.20.2" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" - integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== - -typescript@^5.0.3: - version "5.0.3" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.0.3.tgz#fe976f0c826a88d0a382007681cbb2da44afdedf" - integrity sha512-xv8mOEDnigb/tN9PSMTwSEqAnUvkoXMQlicOb0IUVDBSQCgBSaAAROUZYy2IcUy5qU6XajK5jjjO7TMWqBTKZA== - -uri-js@^4.2.2: - version "4.4.1" - resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" - integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== - dependencies: - punycode "^2.1.0" - -which@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" - integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== - dependencies: - isexe "^2.0.0" - -word-wrap@^1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" - integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== - -wrappy@1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== - -yallist@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" - integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== - -yocto-queue@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" - integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== From e7dc252b0e86c440c782975c03de309a42593250 Mon Sep 17 00:00:00 2001 From: Derek Bailey Date: Fri, 28 Apr 2023 12:58:49 -0700 Subject: [PATCH 164/571] Revert "Migrate from rules_nodejs to rules_js/rules_ts (#7923)" (#7927) This reverts commit 4172c3f0bd6a62cd29ef160f9236352466b634ca. --- .bazelignore | 1 - .bazelrc | 1 - .npmrc | 1 - BUILD.bazel | 26 - WORKSPACE | 84 +- build_defs.bzl | 17 +- grpc/src/compiler/BUILD.bazel | 10 - package.json | 3 +- pnpm-lock.yaml | 1184 ----------------- reflection/BUILD.bazel | 9 - reflection/ts/BUILD.bazel | 1 + src/BUILD.bazel | 11 - tests/BUILD.bazel | 12 - tests/ts/BUILD.bazel | 66 - tests/ts/bazel_repository_test.sh | 29 - .../ts/bazel_repository_test_dir/.bazelignore | 1 - tests/ts/bazel_repository_test_dir/.bazelrc | 1 - tests/ts/bazel_repository_test_dir/.gitignore | 1 - tests/ts/bazel_repository_test_dir/.npmrc | 1 - tests/ts/bazel_repository_test_dir/BUILD | 32 - tests/ts/bazel_repository_test_dir/WORKSPACE | 71 - .../bazel_repository_test_dir/import_test.js | 28 - tests/ts/bazel_repository_test_dir/one.fbs | 7 - .../ts/bazel_repository_test_dir/package.json | 8 - .../bazel_repository_test_dir/pnpm-lock.yaml | 12 - tests/ts/bazel_repository_test_dir/two.fbs | 9 - tests/ts/package.json | 1 + tests/ts/test_dir/BUILD.bazel | 12 - tests/ts/test_dir/import_test.js | 31 - tests/ts/test_dir/package.json | 6 - tests/ts/test_dir/typescript_include.fbs | 7 - ts/BUILD.bazel | 37 +- ts/compile_flat_file.sh | 7 +- typescript.bzl | 10 +- yarn.lock | 1174 ++++++++++++++++ 35 files changed, 1214 insertions(+), 1697 deletions(-) delete mode 100644 .bazelignore delete mode 100644 .bazelrc delete mode 100644 .npmrc delete mode 100644 pnpm-lock.yaml delete mode 100755 tests/ts/bazel_repository_test.sh delete mode 100644 tests/ts/bazel_repository_test_dir/.bazelignore delete mode 100644 tests/ts/bazel_repository_test_dir/.bazelrc delete mode 100644 tests/ts/bazel_repository_test_dir/.gitignore delete mode 120000 tests/ts/bazel_repository_test_dir/.npmrc delete mode 100644 tests/ts/bazel_repository_test_dir/BUILD delete mode 100644 tests/ts/bazel_repository_test_dir/WORKSPACE delete mode 100644 tests/ts/bazel_repository_test_dir/import_test.js delete mode 100644 tests/ts/bazel_repository_test_dir/one.fbs delete mode 100644 tests/ts/bazel_repository_test_dir/package.json delete mode 100644 tests/ts/bazel_repository_test_dir/pnpm-lock.yaml delete mode 100644 tests/ts/bazel_repository_test_dir/two.fbs delete mode 100644 tests/ts/test_dir/import_test.js delete mode 100644 tests/ts/test_dir/package.json create mode 100644 yarn.lock diff --git a/.bazelignore b/.bazelignore deleted file mode 100644 index 3c3629e647..0000000000 --- a/.bazelignore +++ /dev/null @@ -1 +0,0 @@ -node_modules diff --git a/.bazelrc b/.bazelrc deleted file mode 100644 index a8f33c98af..0000000000 --- a/.bazelrc +++ /dev/null @@ -1 +0,0 @@ -build --deleted_packages=tests/ts/bazel_repository_test_dir diff --git a/.npmrc b/.npmrc deleted file mode 100644 index 84ff0791f0..0000000000 --- a/.npmrc +++ /dev/null @@ -1 +0,0 @@ -hoist=false diff --git a/BUILD.bazel b/BUILD.bazel index b4f015a0e2..0ff3b234ef 100644 --- a/BUILD.bazel +++ b/BUILD.bazel @@ -1,5 +1,3 @@ -load("@aspect_rules_js//npm:defs.bzl", "npm_link_package") -load("@npm//:defs.bzl", "npm_link_all_packages") load("@rules_cc//cc:defs.bzl", "cc_binary", "cc_library") licenses(["notice"]) @@ -8,13 +6,6 @@ package( default_visibility = ["//visibility:public"], ) -npm_link_all_packages(name = "node_modules") - -npm_link_package( - name = "node_modules/flatbuffers", - src = "//ts:flatbuffers", -) - exports_files([ "LICENSE", "tsconfig.json", @@ -34,23 +25,6 @@ config_setting( ], ) -filegroup( - name = "distribution", - srcs = [ - "BUILD.bazel", - "WORKSPACE", - "build_defs.bzl", - "typescript.bzl", - "//grpc/src/compiler:distribution", - "//reflection:distribution", - "//src:distribution", - "//ts:distribution", - ] + glob([ - "include/flatbuffers/*.h", - ]), - visibility = ["//visibility:public"], -) - # Public flatc library to compile flatbuffer files at runtime. cc_library( name = "flatbuffers", diff --git a/WORKSPACE b/WORKSPACE index 9f70edd44c..e8474e0b74 100644 --- a/WORKSPACE +++ b/WORKSPACE @@ -1,6 +1,6 @@ workspace(name = "com_github_google_flatbuffers") -load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive", "http_file") +load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") http_archive( name = "platforms", @@ -76,80 +76,30 @@ load("@com_github_grpc_grpc//bazel:grpc_extra_deps.bzl", "grpc_extra_deps") grpc_extra_deps() # rules_go from https://github.com/bazelbuild/rules_go/releases/tag/v0.34.0 - -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", + name = "build_bazel_rules_nodejs", + sha256 = "965ee2492a2b087cf9e0f2ca472aeaf1be2eb650e0cfbddf514b9a7d3ea4b02a", + urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/5.2.0/rules_nodejs-5.2.0.tar.gz"], ) -load("@aspect_rules_ts//ts:repositories.bzl", "rules_ts_dependencies") +load("@build_bazel_rules_nodejs//:repositories.bzl", "build_bazel_rules_nodejs_dependencies") -rules_ts_dependencies( - # Since rules_ts doesn't always have the newest integrity hashes, we - # compute it manually here. - # $ curl --silent https://registry.npmjs.org/typescript/5.0.4 | jq ._integrity - ts_integrity = "sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==", - ts_version_from = "//:package.json", -) +build_bazel_rules_nodejs_dependencies() -load("@rules_nodejs//nodejs:repositories.bzl", "DEFAULT_NODE_VERSION", "nodejs_register_toolchains") +load("@build_bazel_rules_nodejs//:index.bzl", "node_repositories", "yarn_install") -nodejs_register_toolchains( - name = "nodejs", - node_version = DEFAULT_NODE_VERSION, -) +node_repositories() -npm_translate_lock( +yarn_install( name = "npm", - npmrc = "//:.npmrc", - pnpm_lock = "//:pnpm-lock.yaml", - # Set this to True when the lock file needs to be updated, commit the - # changes, then set to False again. - update_pnpm_lock = False, - verify_node_modules_ignored = "//:.bazelignore", + exports_directories_only = False, + # Unfreeze to add/remove packages. + frozen_lockfile = False, + package_json = "//:package.json", + symlink_node_modules = False, + yarn_lock = "//:yarn.lock", ) -load("@npm//:repositories.bzl", "npm_repositories") +load("@build_bazel_rules_nodejs//toolchains/esbuild:esbuild_repositories.bzl", "esbuild_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, -) - -http_file( - name = "bazel_linux_x86_64", - downloaded_file_path = "bazel", - sha256 = "e89747d63443e225b140d7d37ded952dacea73aaed896bca01ccd745827c6289", - urls = [ - "https://github.com/bazelbuild/bazel/releases/download/6.1.2/bazel-6.1.2-linux-x86_64", - ], -) +esbuild_repositories(npm_repository = "npm") diff --git a/build_defs.bzl b/build_defs.bzl index 5437d7ae07..66b22d2ea6 100644 --- a/build_defs.bzl +++ b/build_defs.bzl @@ -48,10 +48,7 @@ def flatbuffer_library_public( restricted_to = None, target_compatible_with = None, flatc_path = "@com_github_google_flatbuffers//:flatc", - output_to_bindir = False, - tools = None, - extra_env = None, - **kwargs): + output_to_bindir = False): """Generates code files for reading/writing the given flatbuffers in the requested language using the public compiler. Args: @@ -76,11 +73,6 @@ def flatbuffer_library_public( to use. flatc_path: Bazel target corresponding to the flatc compiler to use. output_to_bindir: Passed to genrule for output to bin directory. - tools: Optional, passed to genrule for list of tools to make available - during the action. - extra_env: Optional, must be a string of "VAR1=VAL1 VAR2=VAL2". These get - set as environment variables that "flatc_path" sees. - **kwargs: Passed to the underlying genrule. This rule creates a filegroup(name) with all generated source files, and @@ -91,8 +83,6 @@ def flatbuffer_library_public( include_paths = default_include_paths(flatc_path) include_paths_cmd = ["-I %s" % (s) for s in include_paths] - extra_env = extra_env or "" - # '$(@D)' when given a single source target will give the appropriate # directory. Appending 'out_prefix' is only necessary when given a build # target with multiple sources. @@ -102,7 +92,7 @@ def flatbuffer_library_public( genrule_cmd = " ".join([ "SRCS=($(SRCS));", "for f in $${SRCS[@]:0:%s}; do" % len(srcs), - "OUTPUT_FILE=\"$(OUTS)\" %s $(location %s)" % (extra_env, flatc_path), + "OUTPUT_FILE=\"$(OUTS)\" $(location %s)" % (flatc_path), " ".join(include_paths_cmd), " ".join(flatc_args), language_flag, @@ -115,13 +105,12 @@ def flatbuffer_library_public( srcs = srcs + includes, outs = outs, output_to_bindir = output_to_bindir, - tools = (tools or []) + [flatc_path], + tools = [flatc_path], cmd = genrule_cmd, compatible_with = compatible_with, target_compatible_with = target_compatible_with, restricted_to = restricted_to, message = "Generating flatbuffer files for %s:" % (name), - **kwargs ) if reflection_name: reflection_genrule_cmd = " ".join([ diff --git a/grpc/src/compiler/BUILD.bazel b/grpc/src/compiler/BUILD.bazel index 0efa9560c2..544885e0f1 100644 --- a/grpc/src/compiler/BUILD.bazel +++ b/grpc/src/compiler/BUILD.bazel @@ -4,16 +4,6 @@ package( default_visibility = ["//visibility:public"], ) -filegroup( - name = "distribution", - srcs = [ - "BUILD.bazel", - ] + glob([ - "*.cc", - "*.h", - ]), -) - filegroup( name = "common_headers", srcs = [ diff --git a/package.json b/package.json index 5a2aecaf77..505648fc86 100644 --- a/package.json +++ b/package.json @@ -36,11 +36,12 @@ "homepage": "https://google.github.io/flatbuffers/", "dependencies": {}, "devDependencies": { + "@bazel/typescript": "5.2.0", "@types/node": "18.15.11", "@typescript-eslint/eslint-plugin": "^5.57.0", "@typescript-eslint/parser": "^5.57.0", "esbuild": "^0.17.14", "eslint": "^8.37.0", - "typescript": "5.0.4" + "typescript": "^5.0.3" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml deleted file mode 100644 index 45c645b440..0000000000 --- a/pnpm-lock.yaml +++ /dev/null @@ -1,1184 +0,0 @@ -lockfileVersion: '6.0' - -devDependencies: - '@types/node': - specifier: 18.15.11 - version: 18.15.11 - '@typescript-eslint/eslint-plugin': - specifier: ^5.57.0 - version: 5.57.0(@typescript-eslint/parser@5.57.0)(eslint@8.37.0)(typescript@5.0.3) - '@typescript-eslint/parser': - specifier: ^5.57.0 - version: 5.57.0(eslint@8.37.0)(typescript@5.0.3) - esbuild: - specifier: ^0.17.14 - version: 0.17.14 - eslint: - specifier: ^8.37.0 - version: 8.37.0 - typescript: - specifier: 5.0.3 - version: 5.0.3 - -packages: - - /@esbuild/android-arm64@0.17.14: - resolution: {integrity: sha512-eLOpPO1RvtsP71afiFTvS7tVFShJBCT0txiv/xjFBo5a7R7Gjw7X0IgIaFoLKhqXYAXhahoXm7qAmRXhY4guJg==} - engines: {node: '>=12'} - cpu: [arm64] - os: [android] - requiresBuild: true - dev: true - optional: true - - /@esbuild/android-arm@0.17.14: - resolution: {integrity: sha512-0CnlwnjDU8cks0yJLXfkaU/uoLyRf9VZJs4p1PskBr2AlAHeEsFEwJEo0of/Z3g+ilw5mpyDwThlxzNEIxOE4g==} - engines: {node: '>=12'} - cpu: [arm] - os: [android] - requiresBuild: true - dev: true - optional: true - - /@esbuild/android-x64@0.17.14: - resolution: {integrity: sha512-nrfQYWBfLGfSGLvRVlt6xi63B5IbfHm3tZCdu/82zuFPQ7zez4XjmRtF/wIRYbJQ/DsZrxJdEvYFE67avYXyng==} - engines: {node: '>=12'} - cpu: [x64] - os: [android] - requiresBuild: true - dev: true - optional: true - - /@esbuild/darwin-arm64@0.17.14: - resolution: {integrity: sha512-eoSjEuDsU1ROwgBH/c+fZzuSyJUVXQTOIN9xuLs9dE/9HbV/A5IqdXHU1p2OfIMwBwOYJ9SFVGGldxeRCUJFyw==} - engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /@esbuild/darwin-x64@0.17.14: - resolution: {integrity: sha512-zN0U8RWfrDttdFNkHqFYZtOH8hdi22z0pFm0aIJPsNC4QQZv7je8DWCX5iA4Zx6tRhS0CCc0XC2m7wKsbWEo5g==} - engines: {node: '>=12'} - cpu: [x64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /@esbuild/freebsd-arm64@0.17.14: - resolution: {integrity: sha512-z0VcD4ibeZWVQCW1O7szaLxGsx54gcCnajEJMdYoYjLiq4g1jrP2lMq6pk71dbS5+7op/L2Aod+erw+EUr28/A==} - engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] - requiresBuild: true - dev: true - optional: true - - /@esbuild/freebsd-x64@0.17.14: - resolution: {integrity: sha512-hd9mPcxfTgJlolrPlcXkQk9BMwNBvNBsVaUe5eNUqXut6weDQH8whcNaKNF2RO8NbpT6GY8rHOK2A9y++s+ehw==} - engines: {node: '>=12'} - cpu: [x64] - os: [freebsd] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-arm64@0.17.14: - resolution: {integrity: sha512-FhAMNYOq3Iblcj9i+K0l1Fp/MHt+zBeRu/Qkf0LtrcFu3T45jcwB6A1iMsemQ42vR3GBhjNZJZTaCe3VFPbn9g==} - engines: {node: '>=12'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-arm@0.17.14: - resolution: {integrity: sha512-BNTl+wSJ1omsH8s3TkQmIIIQHwvwJrU9u1ggb9XU2KTVM4TmthRIVyxSp2qxROJHhZuW/r8fht46/QE8hU8Qvg==} - engines: {node: '>=12'} - cpu: [arm] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-ia32@0.17.14: - resolution: {integrity: sha512-91OK/lQ5y2v7AsmnFT+0EyxdPTNhov3y2CWMdizyMfxSxRqHazXdzgBKtlmkU2KYIc+9ZK3Vwp2KyXogEATYxQ==} - engines: {node: '>=12'} - cpu: [ia32] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-loong64@0.17.14: - resolution: {integrity: sha512-vp15H+5NR6hubNgMluqqKza85HcGJgq7t6rMH7O3Y6ApiOWPkvW2AJfNojUQimfTp6OUrACUXfR4hmpcENXoMQ==} - engines: {node: '>=12'} - cpu: [loong64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-mips64el@0.17.14: - resolution: {integrity: sha512-90TOdFV7N+fgi6c2+GO9ochEkmm9kBAKnuD5e08GQMgMINOdOFHuYLPQ91RYVrnWwQ5683sJKuLi9l4SsbJ7Hg==} - engines: {node: '>=12'} - cpu: [mips64el] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-ppc64@0.17.14: - resolution: {integrity: sha512-NnBGeoqKkTugpBOBZZoktQQ1Yqb7aHKmHxsw43NddPB2YWLAlpb7THZIzsRsTr0Xw3nqiPxbA1H31ZMOG+VVPQ==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-riscv64@0.17.14: - resolution: {integrity: sha512-0qdlKScLXA8MGVy21JUKvMzCYWovctuP8KKqhtE5A6IVPq4onxXhSuhwDd2g5sRCzNDlDjitc5sX31BzDoL5Fw==} - engines: {node: '>=12'} - cpu: [riscv64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-s390x@0.17.14: - resolution: {integrity: sha512-Hdm2Jo1yaaOro4v3+6/zJk6ygCqIZuSDJHdHaf8nVH/tfOuoEX5Riv03Ka15LmQBYJObUTNS1UdyoMk0WUn9Ww==} - engines: {node: '>=12'} - cpu: [s390x] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-x64@0.17.14: - resolution: {integrity: sha512-8KHF17OstlK4DuzeF/KmSgzrTWQrkWj5boluiiq7kvJCiQVzUrmSkaBvcLB2UgHpKENO2i6BthPkmUhNDaJsVw==} - engines: {node: '>=12'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/netbsd-x64@0.17.14: - resolution: {integrity: sha512-nVwpqvb3yyXztxIT2+VsxJhB5GCgzPdk1n0HHSnchRAcxqKO6ghXwHhJnr0j/B+5FSyEqSxF4q03rbA2fKXtUQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [netbsd] - requiresBuild: true - dev: true - optional: true - - /@esbuild/openbsd-x64@0.17.14: - resolution: {integrity: sha512-1RZ7uQQ9zcy/GSAJL1xPdN7NDdOOtNEGiJalg/MOzeakZeTrgH/DoCkbq7TaPDiPhWqnDF+4bnydxRqQD7il6g==} - engines: {node: '>=12'} - cpu: [x64] - os: [openbsd] - requiresBuild: true - dev: true - optional: true - - /@esbuild/sunos-x64@0.17.14: - resolution: {integrity: sha512-nqMjDsFwv7vp7msrwWRysnM38Sd44PKmW8EzV01YzDBTcTWUpczQg6mGao9VLicXSgW/iookNK6AxeogNVNDZA==} - engines: {node: '>=12'} - cpu: [x64] - os: [sunos] - requiresBuild: true - dev: true - optional: true - - /@esbuild/win32-arm64@0.17.14: - resolution: {integrity: sha512-xrD0mccTKRBBIotrITV7WVQAwNJ5+1va6L0H9zN92v2yEdjfAN7864cUaZwJS7JPEs53bDTzKFbfqVlG2HhyKQ==} - engines: {node: '>=12'} - cpu: [arm64] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /@esbuild/win32-ia32@0.17.14: - resolution: {integrity: sha512-nXpkz9bbJrLLyUTYtRotSS3t5b+FOuljg8LgLdINWFs3FfqZMtbnBCZFUmBzQPyxqU87F8Av+3Nco/M3hEcu1w==} - engines: {node: '>=12'} - cpu: [ia32] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /@esbuild/win32-x64@0.17.14: - resolution: {integrity: sha512-gPQmsi2DKTaEgG14hc3CHXHp62k8g6qr0Pas+I4lUxRMugGSATh/Bi8Dgusoz9IQ0IfdrvLpco6kujEIBoaogA==} - engines: {node: '>=12'} - cpu: [x64] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /@eslint-community/eslint-utils@4.4.0(eslint@8.37.0): - resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - dependencies: - eslint: 8.37.0 - eslint-visitor-keys: 3.4.0 - dev: true - - /@eslint-community/regexpp@4.5.0: - resolution: {integrity: sha512-vITaYzIcNmjn5tF5uxcZ/ft7/RXGrMUIS9HalWckEOF6ESiwXKoMzAQf2UW0aVd6rnOeExTJVd5hmWXucBKGXQ==} - engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - dev: true - - /@eslint/eslintrc@2.0.2: - resolution: {integrity: sha512-3W4f5tDUra+pA+FzgugqL2pRimUTDJWKr7BINqOpkZrC0uYI0NIc0/JFgBROCU07HR6GieA5m3/rsPIhDmCXTQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dependencies: - ajv: 6.12.6 - debug: 4.3.4 - espree: 9.5.1 - globals: 13.20.0 - ignore: 5.2.4 - import-fresh: 3.3.0 - js-yaml: 4.1.0 - minimatch: 3.1.2 - strip-json-comments: 3.1.1 - transitivePeerDependencies: - - supports-color - dev: true - - /@eslint/js@8.37.0: - resolution: {integrity: sha512-x5vzdtOOGgFVDCUs81QRB2+liax8rFg3+7hqM+QhBG0/G3F1ZsoYl97UrqgHgQ9KKT7G6c4V+aTUCgu/n22v1A==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dev: true - - /@humanwhocodes/config-array@0.11.8: - resolution: {integrity: sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==} - engines: {node: '>=10.10.0'} - dependencies: - '@humanwhocodes/object-schema': 1.2.1 - debug: 4.3.4 - minimatch: 3.1.2 - transitivePeerDependencies: - - supports-color - dev: true - - /@humanwhocodes/module-importer@1.0.1: - resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} - engines: {node: '>=12.22'} - dev: true - - /@humanwhocodes/object-schema@1.2.1: - resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==} - dev: true - - /@nodelib/fs.scandir@2.1.5: - resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} - engines: {node: '>= 8'} - dependencies: - '@nodelib/fs.stat': 2.0.5 - run-parallel: 1.2.0 - dev: true - - /@nodelib/fs.stat@2.0.5: - resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} - engines: {node: '>= 8'} - dev: true - - /@nodelib/fs.walk@1.2.8: - resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} - engines: {node: '>= 8'} - dependencies: - '@nodelib/fs.scandir': 2.1.5 - fastq: 1.15.0 - dev: true - - /@types/json-schema@7.0.11: - resolution: {integrity: sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==} - dev: true - - /@types/node@18.15.11: - resolution: {integrity: sha512-E5Kwq2n4SbMzQOn6wnmBjuK9ouqlURrcZDVfbo9ftDDTFt3nk7ZKK4GMOzoYgnpQJKcxwQw+lGaBvvlMo0qN/Q==} - dev: true - - /@types/semver@7.3.13: - resolution: {integrity: sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==} - dev: true - - /@typescript-eslint/eslint-plugin@5.57.0(@typescript-eslint/parser@5.57.0)(eslint@8.37.0)(typescript@5.0.3): - resolution: {integrity: sha512-itag0qpN6q2UMM6Xgk6xoHa0D0/P+M17THnr4SVgqn9Rgam5k/He33MA7/D7QoJcdMxHFyX7U9imaBonAX/6qA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - '@typescript-eslint/parser': ^5.0.0 - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@eslint-community/regexpp': 4.5.0 - '@typescript-eslint/parser': 5.57.0(eslint@8.37.0)(typescript@5.0.3) - '@typescript-eslint/scope-manager': 5.57.0 - '@typescript-eslint/type-utils': 5.57.0(eslint@8.37.0)(typescript@5.0.3) - '@typescript-eslint/utils': 5.57.0(eslint@8.37.0)(typescript@5.0.3) - debug: 4.3.4 - eslint: 8.37.0 - grapheme-splitter: 1.0.4 - ignore: 5.2.4 - natural-compare-lite: 1.4.0 - semver: 7.3.8 - tsutils: 3.21.0(typescript@5.0.3) - typescript: 5.0.3 - transitivePeerDependencies: - - supports-color - dev: true - - /@typescript-eslint/parser@5.57.0(eslint@8.37.0)(typescript@5.0.3): - resolution: {integrity: sha512-orrduvpWYkgLCyAdNtR1QIWovcNZlEm6yL8nwH/eTxWLd8gsP+25pdLHYzL2QdkqrieaDwLpytHqycncv0woUQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@typescript-eslint/scope-manager': 5.57.0 - '@typescript-eslint/types': 5.57.0 - '@typescript-eslint/typescript-estree': 5.57.0(typescript@5.0.3) - debug: 4.3.4 - eslint: 8.37.0 - typescript: 5.0.3 - transitivePeerDependencies: - - supports-color - dev: true - - /@typescript-eslint/scope-manager@5.57.0: - resolution: {integrity: sha512-NANBNOQvllPlizl9LatX8+MHi7bx7WGIWYjPHDmQe5Si/0YEYfxSljJpoTyTWFTgRy3X8gLYSE4xQ2U+aCozSw==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dependencies: - '@typescript-eslint/types': 5.57.0 - '@typescript-eslint/visitor-keys': 5.57.0 - dev: true - - /@typescript-eslint/type-utils@5.57.0(eslint@8.37.0)(typescript@5.0.3): - resolution: {integrity: sha512-kxXoq9zOTbvqzLbdNKy1yFrxLC6GDJFE2Yuo3KqSwTmDOFjUGeWSakgoXT864WcK5/NAJkkONCiKb1ddsqhLXQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: '*' - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@typescript-eslint/typescript-estree': 5.57.0(typescript@5.0.3) - '@typescript-eslint/utils': 5.57.0(eslint@8.37.0)(typescript@5.0.3) - debug: 4.3.4 - eslint: 8.37.0 - tsutils: 3.21.0(typescript@5.0.3) - typescript: 5.0.3 - transitivePeerDependencies: - - supports-color - dev: true - - /@typescript-eslint/types@5.57.0: - resolution: {integrity: sha512-mxsod+aZRSyLT+jiqHw1KK6xrANm19/+VFALVFP5qa/aiJnlP38qpyaTd0fEKhWvQk6YeNZ5LGwI1pDpBRBhtQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dev: true - - /@typescript-eslint/typescript-estree@5.57.0(typescript@5.0.3): - resolution: {integrity: sha512-LTzQ23TV82KpO8HPnWuxM2V7ieXW8O142I7hQTxWIHDcCEIjtkat6H96PFkYBQqGFLW/G/eVVOB9Z8rcvdY/Vw==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@typescript-eslint/types': 5.57.0 - '@typescript-eslint/visitor-keys': 5.57.0 - debug: 4.3.4 - globby: 11.1.0 - is-glob: 4.0.3 - semver: 7.3.8 - tsutils: 3.21.0(typescript@5.0.3) - typescript: 5.0.3 - transitivePeerDependencies: - - supports-color - dev: true - - /@typescript-eslint/utils@5.57.0(eslint@8.37.0)(typescript@5.0.3): - resolution: {integrity: sha512-ps/4WohXV7C+LTSgAL5CApxvxbMkl9B9AUZRtnEFonpIxZDIT7wC1xfvuJONMidrkB9scs4zhtRyIwHh4+18kw==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.37.0) - '@types/json-schema': 7.0.11 - '@types/semver': 7.3.13 - '@typescript-eslint/scope-manager': 5.57.0 - '@typescript-eslint/types': 5.57.0 - '@typescript-eslint/typescript-estree': 5.57.0(typescript@5.0.3) - eslint: 8.37.0 - eslint-scope: 5.1.1 - semver: 7.3.8 - transitivePeerDependencies: - - supports-color - - typescript - dev: true - - /@typescript-eslint/visitor-keys@5.57.0: - resolution: {integrity: sha512-ery2g3k0hv5BLiKpPuwYt9KBkAp2ugT6VvyShXdLOkax895EC55sP0Tx5L0fZaQueiK3fBLvHVvEl3jFS5ia+g==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dependencies: - '@typescript-eslint/types': 5.57.0 - eslint-visitor-keys: 3.4.0 - dev: true - - /acorn-jsx@5.3.2(acorn@8.8.2): - resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} - peerDependencies: - acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - dependencies: - acorn: 8.8.2 - dev: true - - /acorn@8.8.2: - resolution: {integrity: sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==} - engines: {node: '>=0.4.0'} - hasBin: true - dev: true - - /ajv@6.12.6: - resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} - dependencies: - fast-deep-equal: 3.1.3 - fast-json-stable-stringify: 2.1.0 - json-schema-traverse: 0.4.1 - uri-js: 4.4.1 - dev: true - - /ansi-regex@5.0.1: - resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} - engines: {node: '>=8'} - dev: true - - /ansi-styles@4.3.0: - resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} - engines: {node: '>=8'} - dependencies: - color-convert: 2.0.1 - dev: true - - /argparse@2.0.1: - resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} - dev: true - - /array-union@2.1.0: - resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} - engines: {node: '>=8'} - dev: true - - /balanced-match@1.0.2: - resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - dev: true - - /brace-expansion@1.1.11: - resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} - dependencies: - balanced-match: 1.0.2 - concat-map: 0.0.1 - dev: true - - /braces@3.0.2: - resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} - engines: {node: '>=8'} - dependencies: - fill-range: 7.0.1 - dev: true - - /callsites@3.1.0: - resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} - engines: {node: '>=6'} - dev: true - - /chalk@4.1.2: - resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} - engines: {node: '>=10'} - dependencies: - ansi-styles: 4.3.0 - supports-color: 7.2.0 - dev: true - - /color-convert@2.0.1: - resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} - engines: {node: '>=7.0.0'} - dependencies: - color-name: 1.1.4 - dev: true - - /color-name@1.1.4: - resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - dev: true - - /concat-map@0.0.1: - resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} - dev: true - - /cross-spawn@7.0.3: - resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} - engines: {node: '>= 8'} - dependencies: - path-key: 3.1.1 - shebang-command: 2.0.0 - which: 2.0.2 - dev: true - - /debug@4.3.4: - resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - dependencies: - ms: 2.1.2 - dev: true - - /deep-is@0.1.4: - resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} - dev: true - - /dir-glob@3.0.1: - resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} - engines: {node: '>=8'} - dependencies: - path-type: 4.0.0 - dev: true - - /doctrine@3.0.0: - resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} - engines: {node: '>=6.0.0'} - dependencies: - esutils: 2.0.3 - dev: true - - /esbuild@0.17.14: - resolution: {integrity: sha512-vOO5XhmVj/1XQR9NQ1UPq6qvMYL7QFJU57J5fKBKBKxp17uDt5PgxFDb4A2nEiXhr1qQs4x0F5+66hVVw4ruNw==} - engines: {node: '>=12'} - hasBin: true - requiresBuild: true - optionalDependencies: - '@esbuild/android-arm': 0.17.14 - '@esbuild/android-arm64': 0.17.14 - '@esbuild/android-x64': 0.17.14 - '@esbuild/darwin-arm64': 0.17.14 - '@esbuild/darwin-x64': 0.17.14 - '@esbuild/freebsd-arm64': 0.17.14 - '@esbuild/freebsd-x64': 0.17.14 - '@esbuild/linux-arm': 0.17.14 - '@esbuild/linux-arm64': 0.17.14 - '@esbuild/linux-ia32': 0.17.14 - '@esbuild/linux-loong64': 0.17.14 - '@esbuild/linux-mips64el': 0.17.14 - '@esbuild/linux-ppc64': 0.17.14 - '@esbuild/linux-riscv64': 0.17.14 - '@esbuild/linux-s390x': 0.17.14 - '@esbuild/linux-x64': 0.17.14 - '@esbuild/netbsd-x64': 0.17.14 - '@esbuild/openbsd-x64': 0.17.14 - '@esbuild/sunos-x64': 0.17.14 - '@esbuild/win32-arm64': 0.17.14 - '@esbuild/win32-ia32': 0.17.14 - '@esbuild/win32-x64': 0.17.14 - dev: true - - /escape-string-regexp@4.0.0: - resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} - engines: {node: '>=10'} - dev: true - - /eslint-scope@5.1.1: - resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} - engines: {node: '>=8.0.0'} - dependencies: - esrecurse: 4.3.0 - estraverse: 4.3.0 - dev: true - - /eslint-scope@7.1.1: - resolution: {integrity: sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dependencies: - esrecurse: 4.3.0 - estraverse: 5.3.0 - dev: true - - /eslint-visitor-keys@3.4.0: - resolution: {integrity: sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dev: true - - /eslint@8.37.0: - resolution: {integrity: sha512-NU3Ps9nI05GUoVMxcZx1J8CNR6xOvUT4jAUMH5+z8lpp3aEdPVCImKw6PWG4PY+Vfkpr+jvMpxs/qoE7wq0sPw==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - hasBin: true - dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.37.0) - '@eslint-community/regexpp': 4.5.0 - '@eslint/eslintrc': 2.0.2 - '@eslint/js': 8.37.0 - '@humanwhocodes/config-array': 0.11.8 - '@humanwhocodes/module-importer': 1.0.1 - '@nodelib/fs.walk': 1.2.8 - ajv: 6.12.6 - chalk: 4.1.2 - cross-spawn: 7.0.3 - debug: 4.3.4 - doctrine: 3.0.0 - escape-string-regexp: 4.0.0 - eslint-scope: 7.1.1 - eslint-visitor-keys: 3.4.0 - espree: 9.5.1 - esquery: 1.5.0 - esutils: 2.0.3 - fast-deep-equal: 3.1.3 - file-entry-cache: 6.0.1 - find-up: 5.0.0 - glob-parent: 6.0.2 - globals: 13.20.0 - grapheme-splitter: 1.0.4 - ignore: 5.2.4 - import-fresh: 3.3.0 - imurmurhash: 0.1.4 - is-glob: 4.0.3 - is-path-inside: 3.0.3 - js-sdsl: 4.4.0 - js-yaml: 4.1.0 - json-stable-stringify-without-jsonify: 1.0.1 - levn: 0.4.1 - lodash.merge: 4.6.2 - minimatch: 3.1.2 - natural-compare: 1.4.0 - optionator: 0.9.1 - strip-ansi: 6.0.1 - strip-json-comments: 3.1.1 - text-table: 0.2.0 - transitivePeerDependencies: - - supports-color - dev: true - - /espree@9.5.1: - resolution: {integrity: sha512-5yxtHSZXRSW5pvv3hAlXM5+/Oswi1AUFqBmbibKb5s6bp3rGIDkyXU6xCoyuuLhijr4SFwPrXRoZjz0AZDN9tg==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dependencies: - acorn: 8.8.2 - acorn-jsx: 5.3.2(acorn@8.8.2) - eslint-visitor-keys: 3.4.0 - dev: true - - /esquery@1.5.0: - resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} - engines: {node: '>=0.10'} - dependencies: - estraverse: 5.3.0 - dev: true - - /esrecurse@4.3.0: - resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} - engines: {node: '>=4.0'} - dependencies: - estraverse: 5.3.0 - dev: true - - /estraverse@4.3.0: - resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} - engines: {node: '>=4.0'} - dev: true - - /estraverse@5.3.0: - resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} - engines: {node: '>=4.0'} - dev: true - - /esutils@2.0.3: - resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} - engines: {node: '>=0.10.0'} - dev: true - - /fast-deep-equal@3.1.3: - resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} - dev: true - - /fast-glob@3.2.12: - resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==} - engines: {node: '>=8.6.0'} - dependencies: - '@nodelib/fs.stat': 2.0.5 - '@nodelib/fs.walk': 1.2.8 - glob-parent: 5.1.2 - merge2: 1.4.1 - micromatch: 4.0.5 - dev: true - - /fast-json-stable-stringify@2.1.0: - resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} - dev: true - - /fast-levenshtein@2.0.6: - resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} - dev: true - - /fastq@1.15.0: - resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} - dependencies: - reusify: 1.0.4 - dev: true - - /file-entry-cache@6.0.1: - resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} - engines: {node: ^10.12.0 || >=12.0.0} - dependencies: - flat-cache: 3.0.4 - dev: true - - /fill-range@7.0.1: - resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} - engines: {node: '>=8'} - dependencies: - to-regex-range: 5.0.1 - dev: true - - /find-up@5.0.0: - resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} - engines: {node: '>=10'} - dependencies: - locate-path: 6.0.0 - path-exists: 4.0.0 - dev: true - - /flat-cache@3.0.4: - resolution: {integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==} - engines: {node: ^10.12.0 || >=12.0.0} - dependencies: - flatted: 3.2.7 - rimraf: 3.0.2 - dev: true - - /flatted@3.2.7: - resolution: {integrity: sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==} - dev: true - - /fs.realpath@1.0.0: - resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} - dev: true - - /glob-parent@5.1.2: - resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} - engines: {node: '>= 6'} - dependencies: - is-glob: 4.0.3 - dev: true - - /glob-parent@6.0.2: - resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} - engines: {node: '>=10.13.0'} - dependencies: - is-glob: 4.0.3 - dev: true - - /glob@7.2.3: - resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} - dependencies: - fs.realpath: 1.0.0 - inflight: 1.0.6 - inherits: 2.0.4 - minimatch: 3.1.2 - once: 1.4.0 - path-is-absolute: 1.0.1 - dev: true - - /globals@13.20.0: - resolution: {integrity: sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==} - engines: {node: '>=8'} - dependencies: - type-fest: 0.20.2 - dev: true - - /globby@11.1.0: - resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} - engines: {node: '>=10'} - dependencies: - array-union: 2.1.0 - dir-glob: 3.0.1 - fast-glob: 3.2.12 - ignore: 5.2.4 - merge2: 1.4.1 - slash: 3.0.0 - dev: true - - /grapheme-splitter@1.0.4: - resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==} - dev: true - - /has-flag@4.0.0: - resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} - engines: {node: '>=8'} - dev: true - - /ignore@5.2.4: - resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==} - engines: {node: '>= 4'} - dev: true - - /import-fresh@3.3.0: - resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} - engines: {node: '>=6'} - dependencies: - parent-module: 1.0.1 - resolve-from: 4.0.0 - dev: true - - /imurmurhash@0.1.4: - resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} - engines: {node: '>=0.8.19'} - dev: true - - /inflight@1.0.6: - resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} - dependencies: - once: 1.4.0 - wrappy: 1.0.2 - dev: true - - /inherits@2.0.4: - resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} - dev: true - - /is-extglob@2.1.1: - resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} - engines: {node: '>=0.10.0'} - dev: true - - /is-glob@4.0.3: - resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} - engines: {node: '>=0.10.0'} - dependencies: - is-extglob: 2.1.1 - dev: true - - /is-number@7.0.0: - resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} - engines: {node: '>=0.12.0'} - dev: true - - /is-path-inside@3.0.3: - resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} - engines: {node: '>=8'} - dev: true - - /isexe@2.0.0: - resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} - dev: true - - /js-sdsl@4.4.0: - resolution: {integrity: sha512-FfVSdx6pJ41Oa+CF7RDaFmTnCaFhua+SNYQX74riGOpl96x+2jQCqEfQ2bnXu/5DPCqlRuiqyvTJM0Qjz26IVg==} - dev: true - - /js-yaml@4.1.0: - resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} - hasBin: true - dependencies: - argparse: 2.0.1 - dev: true - - /json-schema-traverse@0.4.1: - resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} - dev: true - - /json-stable-stringify-without-jsonify@1.0.1: - resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} - dev: true - - /levn@0.4.1: - resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} - engines: {node: '>= 0.8.0'} - dependencies: - prelude-ls: 1.2.1 - type-check: 0.4.0 - dev: true - - /locate-path@6.0.0: - resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} - engines: {node: '>=10'} - dependencies: - p-locate: 5.0.0 - dev: true - - /lodash.merge@4.6.2: - resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} - dev: true - - /lru-cache@6.0.0: - resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} - engines: {node: '>=10'} - dependencies: - yallist: 4.0.0 - dev: true - - /merge2@1.4.1: - resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} - engines: {node: '>= 8'} - dev: true - - /micromatch@4.0.5: - resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} - engines: {node: '>=8.6'} - dependencies: - braces: 3.0.2 - picomatch: 2.3.1 - dev: true - - /minimatch@3.1.2: - resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} - dependencies: - brace-expansion: 1.1.11 - dev: true - - /ms@2.1.2: - resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} - dev: true - - /natural-compare-lite@1.4.0: - resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==} - dev: true - - /natural-compare@1.4.0: - resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} - dev: true - - /once@1.4.0: - resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} - dependencies: - wrappy: 1.0.2 - dev: true - - /optionator@0.9.1: - resolution: {integrity: sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==} - engines: {node: '>= 0.8.0'} - dependencies: - deep-is: 0.1.4 - fast-levenshtein: 2.0.6 - levn: 0.4.1 - prelude-ls: 1.2.1 - type-check: 0.4.0 - word-wrap: 1.2.3 - dev: true - - /p-limit@3.1.0: - resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} - engines: {node: '>=10'} - dependencies: - yocto-queue: 0.1.0 - dev: true - - /p-locate@5.0.0: - resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} - engines: {node: '>=10'} - dependencies: - p-limit: 3.1.0 - dev: true - - /parent-module@1.0.1: - resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} - engines: {node: '>=6'} - dependencies: - callsites: 3.1.0 - dev: true - - /path-exists@4.0.0: - resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} - engines: {node: '>=8'} - dev: true - - /path-is-absolute@1.0.1: - resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} - engines: {node: '>=0.10.0'} - dev: true - - /path-key@3.1.1: - resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} - engines: {node: '>=8'} - dev: true - - /path-type@4.0.0: - resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} - engines: {node: '>=8'} - dev: true - - /picomatch@2.3.1: - resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} - engines: {node: '>=8.6'} - dev: true - - /prelude-ls@1.2.1: - resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} - engines: {node: '>= 0.8.0'} - dev: true - - /punycode@2.3.0: - resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==} - engines: {node: '>=6'} - dev: true - - /queue-microtask@1.2.3: - resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} - dev: true - - /resolve-from@4.0.0: - resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} - engines: {node: '>=4'} - dev: true - - /reusify@1.0.4: - resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} - engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - dev: true - - /rimraf@3.0.2: - resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} - hasBin: true - dependencies: - glob: 7.2.3 - dev: true - - /run-parallel@1.2.0: - resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} - dependencies: - queue-microtask: 1.2.3 - dev: true - - /semver@7.3.8: - resolution: {integrity: sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==} - engines: {node: '>=10'} - hasBin: true - dependencies: - lru-cache: 6.0.0 - dev: true - - /shebang-command@2.0.0: - resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} - engines: {node: '>=8'} - dependencies: - shebang-regex: 3.0.0 - dev: true - - /shebang-regex@3.0.0: - resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} - engines: {node: '>=8'} - dev: true - - /slash@3.0.0: - resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} - engines: {node: '>=8'} - dev: true - - /strip-ansi@6.0.1: - resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} - engines: {node: '>=8'} - dependencies: - ansi-regex: 5.0.1 - dev: true - - /strip-json-comments@3.1.1: - resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} - engines: {node: '>=8'} - dev: true - - /supports-color@7.2.0: - resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} - engines: {node: '>=8'} - dependencies: - has-flag: 4.0.0 - dev: true - - /text-table@0.2.0: - resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} - dev: true - - /to-regex-range@5.0.1: - resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} - engines: {node: '>=8.0'} - dependencies: - is-number: 7.0.0 - dev: true - - /tslib@1.14.1: - resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} - dev: true - - /tsutils@3.21.0(typescript@5.0.3): - resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} - engines: {node: '>= 6'} - peerDependencies: - typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' - dependencies: - tslib: 1.14.1 - typescript: 5.0.3 - dev: true - - /type-check@0.4.0: - resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} - engines: {node: '>= 0.8.0'} - dependencies: - prelude-ls: 1.2.1 - dev: true - - /type-fest@0.20.2: - resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} - engines: {node: '>=10'} - dev: true - - /typescript@5.0.3: - resolution: {integrity: sha512-xv8mOEDnigb/tN9PSMTwSEqAnUvkoXMQlicOb0IUVDBSQCgBSaAAROUZYy2IcUy5qU6XajK5jjjO7TMWqBTKZA==} - engines: {node: '>=12.20'} - hasBin: true - dev: true - - /uri-js@4.4.1: - resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} - dependencies: - punycode: 2.3.0 - dev: true - - /which@2.0.2: - resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} - engines: {node: '>= 8'} - hasBin: true - dependencies: - isexe: 2.0.0 - dev: true - - /word-wrap@1.2.3: - resolution: {integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==} - engines: {node: '>=0.10.0'} - dev: true - - /wrappy@1.0.2: - resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} - dev: true - - /yallist@4.0.0: - resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} - dev: true - - /yocto-queue@0.1.0: - resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} - engines: {node: '>=10'} - dev: true diff --git a/reflection/BUILD.bazel b/reflection/BUILD.bazel index 4bdada5b8b..f2760933c2 100644 --- a/reflection/BUILD.bazel +++ b/reflection/BUILD.bazel @@ -1,12 +1,3 @@ -filegroup( - name = "distribution", - srcs = [ - "BUILD.bazel", - "reflection.fbs", - ], - visibility = ["//visibility:public"], -) - filegroup( name = "reflection_fbs_schema", srcs = ["reflection.fbs"], diff --git a/reflection/ts/BUILD.bazel b/reflection/ts/BUILD.bazel index 18ffd983bd..b9bd70848b 100644 --- a/reflection/ts/BUILD.bazel +++ b/reflection/ts/BUILD.bazel @@ -9,6 +9,7 @@ genrule( flatbuffer_ts_library( name = "reflection_ts_fbs", + package_name = "flatbuffers_reflection", srcs = [":reflection.fbs"], visibility = ["//visibility:public"], ) diff --git a/src/BUILD.bazel b/src/BUILD.bazel index b4d2a9128f..28d0868ced 100644 --- a/src/BUILD.bazel +++ b/src/BUILD.bazel @@ -5,17 +5,6 @@ package( default_visibility = ["//visibility:private"], ) -filegroup( - name = "distribution", - srcs = [ - "BUILD.bazel", - ] + glob([ - "*.cpp", - "*.h", - ]), - visibility = ["//visibility:public"], -) - # Public flatc library to compile flatbuffer files at runtime. cc_library( name = "flatbuffers", diff --git a/tests/BUILD.bazel b/tests/BUILD.bazel index 3a3cbc5066..ee14272494 100644 --- a/tests/BUILD.bazel +++ b/tests/BUILD.bazel @@ -1,20 +1,8 @@ -load("@aspect_bazel_lib//lib:copy_to_bin.bzl", "copy_to_bin") load("@rules_cc//cc:defs.bzl", "cc_test") load("//:build_defs.bzl", "flatbuffer_cc_library") package(default_visibility = ["//visibility:private"]) -# rules_js works around various JS tooling limitations by copying everything -# into the output directory. Make the test data available to the tests this way. -copy_to_bin( - name = "test_data_copied_to_bin", - srcs = glob([ - "*.mon", - "*.json", - ]), - visibility = ["//tests/ts:__subpackages__"], -) - # Test binary. cc_test( name = "flatbuffers_test", diff --git a/tests/ts/BUILD.bazel b/tests/ts/BUILD.bazel index 82635450b7..054011a57b 100644 --- a/tests/ts/BUILD.bazel +++ b/tests/ts/BUILD.bazel @@ -1,4 +1,3 @@ -load("@aspect_rules_js//js:defs.bzl", "js_test") load("//:typescript.bzl", "flatbuffer_ts_library") package(default_visibility = ["//visibility:private"]) @@ -11,68 +10,3 @@ flatbuffer_ts_library( "//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"], -) diff --git a/tests/ts/bazel_repository_test.sh b/tests/ts/bazel_repository_test.sh deleted file mode 100755 index 5030809329..0000000000 --- a/tests/ts/bazel_repository_test.sh +++ /dev/null @@ -1,29 +0,0 @@ -#!/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 [[ ! -e "${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 //... diff --git a/tests/ts/bazel_repository_test_dir/.bazelignore b/tests/ts/bazel_repository_test_dir/.bazelignore deleted file mode 100644 index 3c3629e647..0000000000 --- a/tests/ts/bazel_repository_test_dir/.bazelignore +++ /dev/null @@ -1 +0,0 @@ -node_modules diff --git a/tests/ts/bazel_repository_test_dir/.bazelrc b/tests/ts/bazel_repository_test_dir/.bazelrc deleted file mode 100644 index 78003332b0..0000000000 --- a/tests/ts/bazel_repository_test_dir/.bazelrc +++ /dev/null @@ -1 +0,0 @@ -build --symlink_prefix=/ diff --git a/tests/ts/bazel_repository_test_dir/.gitignore b/tests/ts/bazel_repository_test_dir/.gitignore deleted file mode 100644 index ac51a054d2..0000000000 --- a/tests/ts/bazel_repository_test_dir/.gitignore +++ /dev/null @@ -1 +0,0 @@ -bazel-* diff --git a/tests/ts/bazel_repository_test_dir/.npmrc b/tests/ts/bazel_repository_test_dir/.npmrc deleted file mode 120000 index 6b271c2f96..0000000000 --- a/tests/ts/bazel_repository_test_dir/.npmrc +++ /dev/null @@ -1 +0,0 @@ -../../../.npmrc \ No newline at end of file diff --git a/tests/ts/bazel_repository_test_dir/BUILD b/tests/ts/bazel_repository_test_dir/BUILD deleted file mode 100644 index f4e89a602d..0000000000 --- a/tests/ts/bazel_repository_test_dir/BUILD +++ /dev/null @@ -1,32 +0,0 @@ -load("@aspect_rules_js//js:defs.bzl", "js_test") -load("@com_github_google_flatbuffers//:typescript.bzl", "flatbuffer_ts_library") -load("@aspect_rules_js//npm:defs.bzl", "npm_link_package") -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", -) diff --git a/tests/ts/bazel_repository_test_dir/WORKSPACE b/tests/ts/bazel_repository_test_dir/WORKSPACE deleted file mode 100644 index f7ef4541f3..0000000000 --- a/tests/ts/bazel_repository_test_dir/WORKSPACE +++ /dev/null @@ -1,71 +0,0 @@ -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, -) diff --git a/tests/ts/bazel_repository_test_dir/import_test.js b/tests/ts/bazel_repository_test_dir/import_test.js deleted file mode 100644 index 05e7929ffb..0000000000 --- a/tests/ts/bazel_repository_test_dir/import_test.js +++ /dev/null @@ -1,28 +0,0 @@ -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(); diff --git a/tests/ts/bazel_repository_test_dir/one.fbs b/tests/ts/bazel_repository_test_dir/one.fbs deleted file mode 100644 index 318170913f..0000000000 --- a/tests/ts/bazel_repository_test_dir/one.fbs +++ /dev/null @@ -1,7 +0,0 @@ -namespace bazel_repository_test; - -table One { - information:int; -} - -root_type One; diff --git a/tests/ts/bazel_repository_test_dir/package.json b/tests/ts/bazel_repository_test_dir/package.json deleted file mode 100644 index 7bab70109d..0000000000 --- a/tests/ts/bazel_repository_test_dir/package.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "name": "bazel_repository_test", - "type": "module", - "private": true, - "devDependencies": { - "@types/node": "18.15.11" - } -} diff --git a/tests/ts/bazel_repository_test_dir/pnpm-lock.yaml b/tests/ts/bazel_repository_test_dir/pnpm-lock.yaml deleted file mode 100644 index 331070a317..0000000000 --- a/tests/ts/bazel_repository_test_dir/pnpm-lock.yaml +++ /dev/null @@ -1,12 +0,0 @@ -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 diff --git a/tests/ts/bazel_repository_test_dir/two.fbs b/tests/ts/bazel_repository_test_dir/two.fbs deleted file mode 100644 index 8e0cdd879b..0000000000 --- a/tests/ts/bazel_repository_test_dir/two.fbs +++ /dev/null @@ -1,9 +0,0 @@ -include 'one.fbs'; - -namespace bazel_repository_test; - -table Two { - one:One; -} - -root_type Two; diff --git a/tests/ts/package.json b/tests/ts/package.json index 1639cf831e..ac2639e3ce 100644 --- a/tests/ts/package.json +++ b/tests/ts/package.json @@ -1,6 +1,7 @@ { "type": "module", "dependencies": { + "@grpc/grpc-js": "^1.7.0", "flatbuffers": "../../" } } diff --git a/tests/ts/test_dir/BUILD.bazel b/tests/ts/test_dir/BUILD.bazel index 6026d9ff56..8b0accaa7f 100644 --- a/tests/ts/test_dir/BUILD.bazel +++ b/tests/ts/test_dir/BUILD.bazel @@ -1,4 +1,3 @@ -load("@aspect_rules_js//js:defs.bzl", "js_test") load("//:typescript.bzl", "flatbuffer_ts_library") flatbuffer_ts_library( @@ -13,14 +12,3 @@ flatbuffer_ts_library( visibility = ["//visibility:public"], deps = [":typescript_transitive_ts_fbs"], ) - -js_test( - name = "import_test", - chdir = package_name(), - data = [ - "package.json", - ":include_ts_fbs", - "//:node_modules/flatbuffers", - ], - entry_point = "import_test.js", -) diff --git a/tests/ts/test_dir/import_test.js b/tests/ts/test_dir/import_test.js deleted file mode 100644 index 594b11e0ec..0000000000 --- a/tests/ts/test_dir/import_test.js +++ /dev/null @@ -1,31 +0,0 @@ -import assert from 'assert' -import * as flatbuffers from 'flatbuffers' - -import typescript_include from './typescript_include_generated.cjs' - -const foobar = typescript_include.foobar; - -function main() { - // Validate the enums. - assert.strictEqual(foobar.Abc.a, 0); - assert.strictEqual(foobar.class_.arguments_, 0); - - // Validate building a table. - var fbb = new flatbuffers.Builder(1); - var name = fbb.createString("Foo Bar"); - - foobar.Tab.startTab(fbb); - foobar.Tab.addAbc(fbb, foobar.Abc.a); - foobar.Tab.addArg(fbb, foobar.class_.arguments_); - foobar.Tab.addName(fbb, name); - var tab = foobar.Tab.endTab(fbb); - - fbb.finish(tab); - - // Call as a sanity check. Would be better to validate actual output here. - fbb.asUint8Array(); - - console.log('FlatBuffers Bazel Import test: completed successfully'); -} - -main(); diff --git a/tests/ts/test_dir/package.json b/tests/ts/test_dir/package.json deleted file mode 100644 index af3f206b37..0000000000 --- a/tests/ts/test_dir/package.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "type": "module", - "dependencies": { - "flatbuffers": "../../../" - } -} diff --git a/tests/ts/test_dir/typescript_include.fbs b/tests/ts/test_dir/typescript_include.fbs index aa43fe38a6..c805693b29 100644 --- a/tests/ts/test_dir/typescript_include.fbs +++ b/tests/ts/test_dir/typescript_include.fbs @@ -1,13 +1,6 @@ include 'typescript_transitive_include.fbs'; - namespace foobar; enum class: int { arguments, } - -table Tab { - abc:Abc; - arg:class; - name:string; -} diff --git a/ts/BUILD.bazel b/ts/BUILD.bazel index 4b86fe3d3c..34fa6746aa 100644 --- a/ts/BUILD.bazel +++ b/ts/BUILD.bazel @@ -1,23 +1,5 @@ -load("@aspect_rules_ts//ts:defs.bzl", "ts_project") -load("@aspect_rules_js//npm:defs.bzl", "npm_package") - -filegroup( - name = "distribution", - srcs = [ - "BUILD.bazel", - "compile_flat_file.sh", - ] + glob([ - "*.ts", - ]), - visibility = ["//visibility:public"], -) - -# Add an index to emulate the top-level package.json's "main" entry. -genrule( - name = "generate_index.ts", - outs = ["index.ts"], - cmd = """echo "export * from './flatbuffers.js'" > $(OUTS)""", -) +load("@npm//@bazel/typescript:index.bzl", "ts_project") +load("@build_bazel_rules_nodejs//:index.bzl", "js_library") ts_project( name = "flatbuffers_ts", @@ -29,7 +11,6 @@ ts_project( "flatbuffers.ts", "types.ts", "utils.ts", - ":index.ts", ], declaration = True, tsconfig = { @@ -47,19 +28,14 @@ ts_project( }, }, visibility = ["//visibility:public"], - deps = [ - # Because the main repository instantiates the @npm repository, we need - # to depend on the main repository's node import. - "@//:node_modules/@types/node", - ], + deps = ["@npm//@types/node"], ) -npm_package( +js_library( name = "flatbuffers", - srcs = [":flatbuffers_ts"], - include_external_repositories = ["*"], - package = "flatbuffers", + package_name = "flatbuffers", visibility = ["//visibility:public"], + deps = [":flatbuffers_ts"], ) sh_binary( @@ -68,6 +44,7 @@ sh_binary( data = [ "@com_github_google_flatbuffers//:flatc", "@nodejs_linux_amd64//:node_bin", + "@npm//esbuild/bin:esbuild", ], # We just depend directly on the linux amd64 nodejs binary, so only support # running this script on amd64 for now. diff --git a/ts/compile_flat_file.sh b/ts/compile_flat_file.sh index 43e0c391aa..0aeaebeaea 100755 --- a/ts/compile_flat_file.sh +++ b/ts/compile_flat_file.sh @@ -14,9 +14,10 @@ source "${RUNFILES_DIR:-/dev/null}/$f" 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 v2 --- -set -eu +set -e runfiles_export_envvars FLATC=$(rlocation com_github_google_flatbuffers/flatc) +ESBUILD=$(rlocation npm/node_modules/esbuild/bin/esbuild) TS_FILE=$(${FLATC} $@ | grep "Entry point.*generated" | grep -o "bazel-out.*ts") -export PATH="$(rlocation nodejs_linux_amd64/bin/nodejs/bin):${PATH}" -${ESBUILD_BIN} ${TS_FILE} --format=cjs --bundle --outfile="${OUTPUT_FILE}" --external:flatbuffers --log-level=warning +export PATH=$(rlocation nodejs_linux_amd64/bin/nodejs/bin) +${ESBUILD} ${TS_FILE} --format=cjs --bundle --outfile="${OUTPUT_FILE}" --external:flatbuffers --log-level=warning diff --git a/typescript.bzl b/typescript.bzl index 63c1218c64..41eb335cc0 100644 --- a/typescript.bzl +++ b/typescript.bzl @@ -2,7 +2,7 @@ Rules for building typescript flatbuffers with Bazel. """ -load("@aspect_rules_js//js:defs.bzl", "js_library") +load("@build_bazel_rules_nodejs//:index.bzl", "js_library") load(":build_defs.bzl", "flatbuffer_library_public") DEFAULT_FLATC_TS_ARGS = [ @@ -24,7 +24,8 @@ def flatbuffer_ts_library( flatc_args = DEFAULT_FLATC_TS_ARGS, visibility = None, restricted_to = None, - gen_reflections = False): + gen_reflections = False, + package_name = None): """Generates a ts_library rule for a given flatbuffer definition. Args: @@ -45,6 +46,7 @@ def flatbuffer_ts_library( to use. gen_reflections: Optional, if true this will generate the flatbuffer reflection binaries for the schemas. + package_name: Optional, Package name to use for the generated code. """ srcs_lib = "%s_srcs" % (name) out_base = [s.replace(".fbs", "").split("/")[-1].split(":")[-1] for s in srcs] @@ -62,7 +64,6 @@ def flatbuffer_ts_library( language_flag = "--ts", includes = includes, include_paths = include_paths, - extra_env = "ESBUILD_BIN=$(ESBUILD_BIN)", flatc_args = flatc_args + ["--filename-suffix _generated"], compatible_with = compatible_with, restricted_to = restricted_to, @@ -70,8 +71,6 @@ def flatbuffer_ts_library( reflection_visibility = visibility, target_compatible_with = target_compatible_with, flatc_path = "@com_github_google_flatbuffers//ts:compile_flat_file", - toolchains = ["@aspect_rules_esbuild//esbuild:resolved_toolchain"], - tools = ["@aspect_rules_esbuild//esbuild:resolved_toolchain"], ) js_library( name = name, @@ -80,6 +79,7 @@ def flatbuffer_ts_library( restricted_to = restricted_to, target_compatible_with = target_compatible_with, srcs = outs, + package_name = package_name, ) native.filegroup( name = "%s_includes" % (name), diff --git a/yarn.lock b/yarn.lock new file mode 100644 index 0000000000..e65a4e918f --- /dev/null +++ b/yarn.lock @@ -0,0 +1,1174 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@bazel/typescript@5.2.0": + version "5.2.0" + resolved "https://registry.yarnpkg.com/@bazel/typescript/-/typescript-5.2.0.tgz#131127c8016c712ef1b291f2b52108e5326f0447" + integrity sha512-hNpSCQj5dOX95iC4Yf/fuyxfMU5uTAe84thqPcTCvOJFmpypN6qzxH24S5UiXkwbsL8sQM9DP0+qFyT/TRKdNw== + dependencies: + "@bazel/worker" "5.2.0" + protobufjs "6.8.8" + semver "5.6.0" + source-map-support "0.5.9" + tsutils "3.21.0" + +"@bazel/worker@5.2.0": + version "5.2.0" + resolved "https://registry.yarnpkg.com/@bazel/worker/-/worker-5.2.0.tgz#464726821f9d98b11c6536e2547d44459a321a61" + integrity sha512-C9ozvgRP2iug4e9XaVjfXSKmrUMyzsYhDN2/A+MqKl8qlAf5AlveNofCUBASHxJsYiBn3ATbPNUznGsjeMpVWg== + dependencies: + google-protobuf "^3.6.1" + +"@esbuild/android-arm64@0.17.14": + version "0.17.14" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.17.14.tgz#4624cea3c8941c91f9e9c1228f550d23f1cef037" + integrity sha512-eLOpPO1RvtsP71afiFTvS7tVFShJBCT0txiv/xjFBo5a7R7Gjw7X0IgIaFoLKhqXYAXhahoXm7qAmRXhY4guJg== + +"@esbuild/android-arm@0.17.14": + version "0.17.14" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.17.14.tgz#74fae60fcab34c3f0e15cb56473a6091ba2b53a6" + integrity sha512-0CnlwnjDU8cks0yJLXfkaU/uoLyRf9VZJs4p1PskBr2AlAHeEsFEwJEo0of/Z3g+ilw5mpyDwThlxzNEIxOE4g== + +"@esbuild/android-x64@0.17.14": + version "0.17.14" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.17.14.tgz#f002fbc08d5e939d8314bd23bcfb1e95d029491f" + integrity sha512-nrfQYWBfLGfSGLvRVlt6xi63B5IbfHm3tZCdu/82zuFPQ7zez4XjmRtF/wIRYbJQ/DsZrxJdEvYFE67avYXyng== + +"@esbuild/darwin-arm64@0.17.14": + version "0.17.14" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.17.14.tgz#b8dcd79a1dd19564950b4ca51d62999011e2e168" + integrity sha512-eoSjEuDsU1ROwgBH/c+fZzuSyJUVXQTOIN9xuLs9dE/9HbV/A5IqdXHU1p2OfIMwBwOYJ9SFVGGldxeRCUJFyw== + +"@esbuild/darwin-x64@0.17.14": + version "0.17.14" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.17.14.tgz#4b49f195d9473625efc3c773fc757018f2c0d979" + integrity sha512-zN0U8RWfrDttdFNkHqFYZtOH8hdi22z0pFm0aIJPsNC4QQZv7je8DWCX5iA4Zx6tRhS0CCc0XC2m7wKsbWEo5g== + +"@esbuild/freebsd-arm64@0.17.14": + version "0.17.14" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.14.tgz#480923fd38f644c6342c55e916cc7c231a85eeb7" + integrity sha512-z0VcD4ibeZWVQCW1O7szaLxGsx54gcCnajEJMdYoYjLiq4g1jrP2lMq6pk71dbS5+7op/L2Aod+erw+EUr28/A== + +"@esbuild/freebsd-x64@0.17.14": + version "0.17.14" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.17.14.tgz#a6b6b01954ad8562461cb8a5e40e8a860af69cbe" + integrity sha512-hd9mPcxfTgJlolrPlcXkQk9BMwNBvNBsVaUe5eNUqXut6weDQH8whcNaKNF2RO8NbpT6GY8rHOK2A9y++s+ehw== + +"@esbuild/linux-arm64@0.17.14": + version "0.17.14" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.17.14.tgz#1fe2f39f78183b59f75a4ad9c48d079916d92418" + integrity sha512-FhAMNYOq3Iblcj9i+K0l1Fp/MHt+zBeRu/Qkf0LtrcFu3T45jcwB6A1iMsemQ42vR3GBhjNZJZTaCe3VFPbn9g== + +"@esbuild/linux-arm@0.17.14": + version "0.17.14" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.17.14.tgz#18d594a49b64e4a3a05022c005cb384a58056a2a" + integrity sha512-BNTl+wSJ1omsH8s3TkQmIIIQHwvwJrU9u1ggb9XU2KTVM4TmthRIVyxSp2qxROJHhZuW/r8fht46/QE8hU8Qvg== + +"@esbuild/linux-ia32@0.17.14": + version "0.17.14" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.17.14.tgz#f7f0182a9cfc0159e0922ed66c805c9c6ef1b654" + integrity sha512-91OK/lQ5y2v7AsmnFT+0EyxdPTNhov3y2CWMdizyMfxSxRqHazXdzgBKtlmkU2KYIc+9ZK3Vwp2KyXogEATYxQ== + +"@esbuild/linux-loong64@0.17.14": + version "0.17.14" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.17.14.tgz#5f5305fdffe2d71dd9a97aa77d0c99c99409066f" + integrity sha512-vp15H+5NR6hubNgMluqqKza85HcGJgq7t6rMH7O3Y6ApiOWPkvW2AJfNojUQimfTp6OUrACUXfR4hmpcENXoMQ== + +"@esbuild/linux-mips64el@0.17.14": + version "0.17.14" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.17.14.tgz#a602e85c51b2f71d2aedfe7f4143b2f92f97f3f5" + integrity sha512-90TOdFV7N+fgi6c2+GO9ochEkmm9kBAKnuD5e08GQMgMINOdOFHuYLPQ91RYVrnWwQ5683sJKuLi9l4SsbJ7Hg== + +"@esbuild/linux-ppc64@0.17.14": + version "0.17.14" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.17.14.tgz#32d918d782105cbd9345dbfba14ee018b9c7afdf" + integrity sha512-NnBGeoqKkTugpBOBZZoktQQ1Yqb7aHKmHxsw43NddPB2YWLAlpb7THZIzsRsTr0Xw3nqiPxbA1H31ZMOG+VVPQ== + +"@esbuild/linux-riscv64@0.17.14": + version "0.17.14" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.17.14.tgz#38612e7b6c037dff7022c33f49ca17f85c5dec58" + integrity sha512-0qdlKScLXA8MGVy21JUKvMzCYWovctuP8KKqhtE5A6IVPq4onxXhSuhwDd2g5sRCzNDlDjitc5sX31BzDoL5Fw== + +"@esbuild/linux-s390x@0.17.14": + version "0.17.14" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.17.14.tgz#4397dff354f899e72fd035d72af59a700c465ccb" + integrity sha512-Hdm2Jo1yaaOro4v3+6/zJk6ygCqIZuSDJHdHaf8nVH/tfOuoEX5Riv03Ka15LmQBYJObUTNS1UdyoMk0WUn9Ww== + +"@esbuild/linux-x64@0.17.14": + version "0.17.14" + resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.17.14.tgz#6c5cb99891b6c3e0c08369da3ef465e8038ad9c2" + integrity sha512-8KHF17OstlK4DuzeF/KmSgzrTWQrkWj5boluiiq7kvJCiQVzUrmSkaBvcLB2UgHpKENO2i6BthPkmUhNDaJsVw== + +"@esbuild/netbsd-x64@0.17.14": + version "0.17.14" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.17.14.tgz#5fa5255a64e9bf3947c1b3bef5e458b50b211994" + integrity sha512-nVwpqvb3yyXztxIT2+VsxJhB5GCgzPdk1n0HHSnchRAcxqKO6ghXwHhJnr0j/B+5FSyEqSxF4q03rbA2fKXtUQ== + +"@esbuild/openbsd-x64@0.17.14": + version "0.17.14" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.17.14.tgz#74d14c79dcb6faf446878cc64284aa4e02f5ca6f" + integrity sha512-1RZ7uQQ9zcy/GSAJL1xPdN7NDdOOtNEGiJalg/MOzeakZeTrgH/DoCkbq7TaPDiPhWqnDF+4bnydxRqQD7il6g== + +"@esbuild/sunos-x64@0.17.14": + version "0.17.14" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.17.14.tgz#5c7d1c7203781d86c2a9b2ff77bd2f8036d24cfa" + integrity sha512-nqMjDsFwv7vp7msrwWRysnM38Sd44PKmW8EzV01YzDBTcTWUpczQg6mGao9VLicXSgW/iookNK6AxeogNVNDZA== + +"@esbuild/win32-arm64@0.17.14": + version "0.17.14" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.17.14.tgz#dc36ed84f1390e73b6019ccf0566c80045e5ca3d" + integrity sha512-xrD0mccTKRBBIotrITV7WVQAwNJ5+1va6L0H9zN92v2yEdjfAN7864cUaZwJS7JPEs53bDTzKFbfqVlG2HhyKQ== + +"@esbuild/win32-ia32@0.17.14": + version "0.17.14" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.17.14.tgz#0802a107afa9193c13e35de15a94fe347c588767" + integrity sha512-nXpkz9bbJrLLyUTYtRotSS3t5b+FOuljg8LgLdINWFs3FfqZMtbnBCZFUmBzQPyxqU87F8Av+3Nco/M3hEcu1w== + +"@esbuild/win32-x64@0.17.14": + version "0.17.14" + resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.17.14.tgz#e81fb49de05fed91bf74251c9ca0343f4fc77d31" + integrity sha512-gPQmsi2DKTaEgG14hc3CHXHp62k8g6qr0Pas+I4lUxRMugGSATh/Bi8Dgusoz9IQ0IfdrvLpco6kujEIBoaogA== + +"@eslint-community/eslint-utils@^4.2.0": + version "4.4.0" + resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59" + integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA== + dependencies: + eslint-visitor-keys "^3.3.0" + +"@eslint-community/regexpp@^4.4.0": + version "4.5.0" + resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.5.0.tgz#f6f729b02feee2c749f57e334b7a1b5f40a81724" + integrity sha512-vITaYzIcNmjn5tF5uxcZ/ft7/RXGrMUIS9HalWckEOF6ESiwXKoMzAQf2UW0aVd6rnOeExTJVd5hmWXucBKGXQ== + +"@eslint/eslintrc@^2.0.2": + version "2.0.2" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.0.2.tgz#01575e38707add677cf73ca1589abba8da899a02" + integrity sha512-3W4f5tDUra+pA+FzgugqL2pRimUTDJWKr7BINqOpkZrC0uYI0NIc0/JFgBROCU07HR6GieA5m3/rsPIhDmCXTQ== + dependencies: + ajv "^6.12.4" + debug "^4.3.2" + espree "^9.5.1" + globals "^13.19.0" + ignore "^5.2.0" + import-fresh "^3.2.1" + js-yaml "^4.1.0" + minimatch "^3.1.2" + strip-json-comments "^3.1.1" + +"@eslint/js@8.37.0": + version "8.37.0" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.37.0.tgz#cf1b5fa24217fe007f6487a26d765274925efa7d" + integrity sha512-x5vzdtOOGgFVDCUs81QRB2+liax8rFg3+7hqM+QhBG0/G3F1ZsoYl97UrqgHgQ9KKT7G6c4V+aTUCgu/n22v1A== + +"@humanwhocodes/config-array@^0.11.8": + version "0.11.8" + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.8.tgz#03595ac2075a4dc0f191cc2131de14fbd7d410b9" + integrity sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g== + dependencies: + "@humanwhocodes/object-schema" "^1.2.1" + debug "^4.1.1" + minimatch "^3.0.5" + +"@humanwhocodes/module-importer@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" + integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== + +"@humanwhocodes/object-schema@^1.2.1": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45" + integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== + +"@nodelib/fs.scandir@2.1.5": + version "2.1.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" + integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== + dependencies: + "@nodelib/fs.stat" "2.0.5" + run-parallel "^1.1.9" + +"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" + integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== + +"@nodelib/fs.walk@^1.2.3", "@nodelib/fs.walk@^1.2.8": + version "1.2.8" + resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" + integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== + dependencies: + "@nodelib/fs.scandir" "2.1.5" + fastq "^1.6.0" + +"@protobufjs/aspromise@^1.1.1", "@protobufjs/aspromise@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@protobufjs/aspromise/-/aspromise-1.1.2.tgz#9b8b0cc663d669a7d8f6f5d0893a14d348f30fbf" + integrity sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ== + +"@protobufjs/base64@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@protobufjs/base64/-/base64-1.1.2.tgz#4c85730e59b9a1f1f349047dbf24296034bb2735" + integrity sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg== + +"@protobufjs/codegen@^2.0.4": + version "2.0.4" + resolved "https://registry.yarnpkg.com/@protobufjs/codegen/-/codegen-2.0.4.tgz#7ef37f0d010fb028ad1ad59722e506d9262815cb" + integrity sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg== + +"@protobufjs/eventemitter@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz#355cbc98bafad5978f9ed095f397621f1d066b70" + integrity sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q== + +"@protobufjs/fetch@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@protobufjs/fetch/-/fetch-1.1.0.tgz#ba99fb598614af65700c1619ff06d454b0d84c45" + integrity sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ== + dependencies: + "@protobufjs/aspromise" "^1.1.1" + "@protobufjs/inquire" "^1.1.0" + +"@protobufjs/float@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@protobufjs/float/-/float-1.0.2.tgz#5e9e1abdcb73fc0a7cb8b291df78c8cbd97b87d1" + integrity sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ== + +"@protobufjs/inquire@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@protobufjs/inquire/-/inquire-1.1.0.tgz#ff200e3e7cf2429e2dcafc1140828e8cc638f089" + integrity sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q== + +"@protobufjs/path@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@protobufjs/path/-/path-1.1.2.tgz#6cc2b20c5c9ad6ad0dccfd21ca7673d8d7fbf68d" + integrity sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA== + +"@protobufjs/pool@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@protobufjs/pool/-/pool-1.1.0.tgz#09fd15f2d6d3abfa9b65bc366506d6ad7846ff54" + integrity sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw== + +"@protobufjs/utf8@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@protobufjs/utf8/-/utf8-1.1.0.tgz#a777360b5b39a1a2e5106f8e858f2fd2d060c570" + integrity sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw== + +"@types/json-schema@^7.0.9": + version "7.0.11" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.11.tgz#d421b6c527a3037f7c84433fd2c4229e016863d3" + integrity sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ== + +"@types/long@^4.0.0": + version "4.0.2" + resolved "https://registry.yarnpkg.com/@types/long/-/long-4.0.2.tgz#b74129719fc8d11c01868010082d483b7545591a" + integrity sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA== + +"@types/node@18.15.11": + version "18.15.11" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.15.11.tgz#b3b790f09cb1696cffcec605de025b088fa4225f" + integrity sha512-E5Kwq2n4SbMzQOn6wnmBjuK9ouqlURrcZDVfbo9ftDDTFt3nk7ZKK4GMOzoYgnpQJKcxwQw+lGaBvvlMo0qN/Q== + +"@types/node@^10.1.0": + version "10.17.60" + resolved "https://registry.yarnpkg.com/@types/node/-/node-10.17.60.tgz#35f3d6213daed95da7f0f73e75bcc6980e90597b" + integrity sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw== + +"@types/semver@^7.3.12": + version "7.3.13" + resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.3.13.tgz#da4bfd73f49bd541d28920ab0e2bf0ee80f71c91" + integrity sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw== + +"@typescript-eslint/eslint-plugin@^5.57.0": + version "5.57.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.57.0.tgz#52c8a7a4512f10e7249ca1e2e61f81c62c34365c" + integrity sha512-itag0qpN6q2UMM6Xgk6xoHa0D0/P+M17THnr4SVgqn9Rgam5k/He33MA7/D7QoJcdMxHFyX7U9imaBonAX/6qA== + dependencies: + "@eslint-community/regexpp" "^4.4.0" + "@typescript-eslint/scope-manager" "5.57.0" + "@typescript-eslint/type-utils" "5.57.0" + "@typescript-eslint/utils" "5.57.0" + debug "^4.3.4" + grapheme-splitter "^1.0.4" + ignore "^5.2.0" + natural-compare-lite "^1.4.0" + semver "^7.3.7" + tsutils "^3.21.0" + +"@typescript-eslint/parser@^5.57.0": + version "5.57.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.57.0.tgz#f675bf2cd1a838949fd0de5683834417b757e4fa" + integrity sha512-orrduvpWYkgLCyAdNtR1QIWovcNZlEm6yL8nwH/eTxWLd8gsP+25pdLHYzL2QdkqrieaDwLpytHqycncv0woUQ== + dependencies: + "@typescript-eslint/scope-manager" "5.57.0" + "@typescript-eslint/types" "5.57.0" + "@typescript-eslint/typescript-estree" "5.57.0" + debug "^4.3.4" + +"@typescript-eslint/scope-manager@5.57.0": + version "5.57.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.57.0.tgz#79ccd3fa7bde0758059172d44239e871e087ea36" + integrity sha512-NANBNOQvllPlizl9LatX8+MHi7bx7WGIWYjPHDmQe5Si/0YEYfxSljJpoTyTWFTgRy3X8gLYSE4xQ2U+aCozSw== + dependencies: + "@typescript-eslint/types" "5.57.0" + "@typescript-eslint/visitor-keys" "5.57.0" + +"@typescript-eslint/type-utils@5.57.0": + version "5.57.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.57.0.tgz#98e7531c4e927855d45bd362de922a619b4319f2" + integrity sha512-kxXoq9zOTbvqzLbdNKy1yFrxLC6GDJFE2Yuo3KqSwTmDOFjUGeWSakgoXT864WcK5/NAJkkONCiKb1ddsqhLXQ== + dependencies: + "@typescript-eslint/typescript-estree" "5.57.0" + "@typescript-eslint/utils" "5.57.0" + debug "^4.3.4" + tsutils "^3.21.0" + +"@typescript-eslint/types@5.57.0": + version "5.57.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.57.0.tgz#727bfa2b64c73a4376264379cf1f447998eaa132" + integrity sha512-mxsod+aZRSyLT+jiqHw1KK6xrANm19/+VFALVFP5qa/aiJnlP38qpyaTd0fEKhWvQk6YeNZ5LGwI1pDpBRBhtQ== + +"@typescript-eslint/typescript-estree@5.57.0": + version "5.57.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.57.0.tgz#ebcd0ee3e1d6230e888d88cddf654252d41e2e40" + integrity sha512-LTzQ23TV82KpO8HPnWuxM2V7ieXW8O142I7hQTxWIHDcCEIjtkat6H96PFkYBQqGFLW/G/eVVOB9Z8rcvdY/Vw== + dependencies: + "@typescript-eslint/types" "5.57.0" + "@typescript-eslint/visitor-keys" "5.57.0" + debug "^4.3.4" + globby "^11.1.0" + is-glob "^4.0.3" + semver "^7.3.7" + tsutils "^3.21.0" + +"@typescript-eslint/utils@5.57.0": + version "5.57.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.57.0.tgz#eab8f6563a2ac31f60f3e7024b91bf75f43ecef6" + integrity sha512-ps/4WohXV7C+LTSgAL5CApxvxbMkl9B9AUZRtnEFonpIxZDIT7wC1xfvuJONMidrkB9scs4zhtRyIwHh4+18kw== + dependencies: + "@eslint-community/eslint-utils" "^4.2.0" + "@types/json-schema" "^7.0.9" + "@types/semver" "^7.3.12" + "@typescript-eslint/scope-manager" "5.57.0" + "@typescript-eslint/types" "5.57.0" + "@typescript-eslint/typescript-estree" "5.57.0" + eslint-scope "^5.1.1" + semver "^7.3.7" + +"@typescript-eslint/visitor-keys@5.57.0": + version "5.57.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.57.0.tgz#e2b2f4174aff1d15eef887ce3d019ecc2d7a8ac1" + integrity sha512-ery2g3k0hv5BLiKpPuwYt9KBkAp2ugT6VvyShXdLOkax895EC55sP0Tx5L0fZaQueiK3fBLvHVvEl3jFS5ia+g== + dependencies: + "@typescript-eslint/types" "5.57.0" + eslint-visitor-keys "^3.3.0" + +acorn-jsx@^5.3.2: + version "5.3.2" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" + integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== + +acorn@^8.8.0: + version "8.8.2" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.2.tgz#1b2f25db02af965399b9776b0c2c391276d37c4a" + integrity sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw== + +ajv@^6.10.0, ajv@^6.12.4: + version "6.12.6" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" + integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== + dependencies: + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +ansi-regex@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" + integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== + +ansi-styles@^4.1.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + dependencies: + color-convert "^2.0.1" + +argparse@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" + integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== + +array-union@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" + integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== + +balanced-match@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +braces@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" + integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== + dependencies: + fill-range "^7.0.1" + +buffer-from@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" + integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== + +callsites@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== + +chalk@^4.0.0: + version "4.1.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + +color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== + +cross-spawn@^7.0.2: + version "7.0.3" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" + integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + +debug@^4.1.1, debug@^4.3.2, debug@^4.3.4: + version "4.3.4" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" + integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== + dependencies: + ms "2.1.2" + +deep-is@^0.1.3: + version "0.1.4" + resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" + integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== + +dir-glob@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" + integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== + dependencies: + path-type "^4.0.0" + +doctrine@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" + integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== + dependencies: + esutils "^2.0.2" + +esbuild@^0.17.14: + version "0.17.14" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.17.14.tgz#d61a22de751a3133f3c6c7f9c1c3e231e91a3245" + integrity sha512-vOO5XhmVj/1XQR9NQ1UPq6qvMYL7QFJU57J5fKBKBKxp17uDt5PgxFDb4A2nEiXhr1qQs4x0F5+66hVVw4ruNw== + optionalDependencies: + "@esbuild/android-arm" "0.17.14" + "@esbuild/android-arm64" "0.17.14" + "@esbuild/android-x64" "0.17.14" + "@esbuild/darwin-arm64" "0.17.14" + "@esbuild/darwin-x64" "0.17.14" + "@esbuild/freebsd-arm64" "0.17.14" + "@esbuild/freebsd-x64" "0.17.14" + "@esbuild/linux-arm" "0.17.14" + "@esbuild/linux-arm64" "0.17.14" + "@esbuild/linux-ia32" "0.17.14" + "@esbuild/linux-loong64" "0.17.14" + "@esbuild/linux-mips64el" "0.17.14" + "@esbuild/linux-ppc64" "0.17.14" + "@esbuild/linux-riscv64" "0.17.14" + "@esbuild/linux-s390x" "0.17.14" + "@esbuild/linux-x64" "0.17.14" + "@esbuild/netbsd-x64" "0.17.14" + "@esbuild/openbsd-x64" "0.17.14" + "@esbuild/sunos-x64" "0.17.14" + "@esbuild/win32-arm64" "0.17.14" + "@esbuild/win32-ia32" "0.17.14" + "@esbuild/win32-x64" "0.17.14" + +escape-string-regexp@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" + integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== + +eslint-scope@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" + integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== + dependencies: + esrecurse "^4.3.0" + estraverse "^4.1.1" + +eslint-scope@^7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.1.1.tgz#fff34894c2f65e5226d3041ac480b4513a163642" + integrity sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw== + dependencies: + esrecurse "^4.3.0" + estraverse "^5.2.0" + +eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.0.tgz#c7f0f956124ce677047ddbc192a68f999454dedc" + integrity sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ== + +eslint@^8.37.0: + version "8.37.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.37.0.tgz#1f660ef2ce49a0bfdec0b0d698e0b8b627287412" + integrity sha512-NU3Ps9nI05GUoVMxcZx1J8CNR6xOvUT4jAUMH5+z8lpp3aEdPVCImKw6PWG4PY+Vfkpr+jvMpxs/qoE7wq0sPw== + dependencies: + "@eslint-community/eslint-utils" "^4.2.0" + "@eslint-community/regexpp" "^4.4.0" + "@eslint/eslintrc" "^2.0.2" + "@eslint/js" "8.37.0" + "@humanwhocodes/config-array" "^0.11.8" + "@humanwhocodes/module-importer" "^1.0.1" + "@nodelib/fs.walk" "^1.2.8" + ajv "^6.10.0" + chalk "^4.0.0" + cross-spawn "^7.0.2" + debug "^4.3.2" + doctrine "^3.0.0" + escape-string-regexp "^4.0.0" + eslint-scope "^7.1.1" + eslint-visitor-keys "^3.4.0" + espree "^9.5.1" + esquery "^1.4.2" + esutils "^2.0.2" + fast-deep-equal "^3.1.3" + file-entry-cache "^6.0.1" + find-up "^5.0.0" + glob-parent "^6.0.2" + globals "^13.19.0" + grapheme-splitter "^1.0.4" + ignore "^5.2.0" + import-fresh "^3.0.0" + imurmurhash "^0.1.4" + is-glob "^4.0.0" + is-path-inside "^3.0.3" + js-sdsl "^4.1.4" + js-yaml "^4.1.0" + json-stable-stringify-without-jsonify "^1.0.1" + levn "^0.4.1" + lodash.merge "^4.6.2" + minimatch "^3.1.2" + natural-compare "^1.4.0" + optionator "^0.9.1" + strip-ansi "^6.0.1" + strip-json-comments "^3.1.0" + text-table "^0.2.0" + +espree@^9.5.1: + version "9.5.1" + resolved "https://registry.yarnpkg.com/espree/-/espree-9.5.1.tgz#4f26a4d5f18905bf4f2e0bd99002aab807e96dd4" + integrity sha512-5yxtHSZXRSW5pvv3hAlXM5+/Oswi1AUFqBmbibKb5s6bp3rGIDkyXU6xCoyuuLhijr4SFwPrXRoZjz0AZDN9tg== + dependencies: + acorn "^8.8.0" + acorn-jsx "^5.3.2" + eslint-visitor-keys "^3.4.0" + +esquery@^1.4.2: + version "1.5.0" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.5.0.tgz#6ce17738de8577694edd7361c57182ac8cb0db0b" + integrity sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg== + dependencies: + estraverse "^5.1.0" + +esrecurse@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" + integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== + dependencies: + estraverse "^5.2.0" + +estraverse@^4.1.1: + version "4.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" + integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== + +estraverse@^5.1.0, estraverse@^5.2.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" + integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== + +esutils@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" + integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== + +fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" + integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== + +fast-glob@^3.2.9: + version "3.2.12" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.12.tgz#7f39ec99c2e6ab030337142da9e0c18f37afae80" + integrity sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w== + dependencies: + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + glob-parent "^5.1.2" + merge2 "^1.3.0" + micromatch "^4.0.4" + +fast-json-stable-stringify@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" + integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== + +fast-levenshtein@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== + +fastq@^1.6.0: + version "1.15.0" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.15.0.tgz#d04d07c6a2a68fe4599fea8d2e103a937fae6b3a" + integrity sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw== + dependencies: + reusify "^1.0.4" + +file-entry-cache@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" + integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== + dependencies: + flat-cache "^3.0.4" + +fill-range@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" + integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== + dependencies: + to-regex-range "^5.0.1" + +find-up@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" + integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== + dependencies: + locate-path "^6.0.0" + path-exists "^4.0.0" + +flat-cache@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11" + integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg== + dependencies: + flatted "^3.1.0" + rimraf "^3.0.2" + +flatted@^3.1.0: + version "3.2.7" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.7.tgz#609f39207cb614b89d0765b477cb2d437fbf9787" + integrity sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ== + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== + +glob-parent@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== + dependencies: + is-glob "^4.0.1" + +glob-parent@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" + integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== + dependencies: + is-glob "^4.0.3" + +glob@^7.1.3: + version "7.2.3" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" + integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.1.1" + once "^1.3.0" + path-is-absolute "^1.0.0" + +globals@^13.19.0: + version "13.20.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.20.0.tgz#ea276a1e508ffd4f1612888f9d1bad1e2717bf82" + integrity sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ== + dependencies: + type-fest "^0.20.2" + +globby@^11.1.0: + version "11.1.0" + resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" + integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== + dependencies: + array-union "^2.1.0" + dir-glob "^3.0.1" + fast-glob "^3.2.9" + ignore "^5.2.0" + merge2 "^1.4.1" + slash "^3.0.0" + +google-protobuf@^3.6.1: + version "3.21.2" + resolved "https://registry.yarnpkg.com/google-protobuf/-/google-protobuf-3.21.2.tgz#4580a2bea8bbb291ee579d1fefb14d6fa3070ea4" + integrity sha512-3MSOYFO5U9mPGikIYCzK0SaThypfGgS6bHqrUGXG3DPHCrb+txNqeEcns1W0lkGfk0rCyNXm7xB9rMxnCiZOoA== + +grapheme-splitter@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz#9cf3a665c6247479896834af35cf1dbb4400767e" + integrity sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ== + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +ignore@^5.2.0: + version "5.2.4" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.4.tgz#a291c0c6178ff1b960befe47fcdec301674a6324" + integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ== + +import-fresh@^3.0.0, import-fresh@^3.2.1: + version "3.3.0" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" + integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== + dependencies: + parent-module "^1.0.0" + resolve-from "^4.0.0" + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== + +is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" + integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== + dependencies: + is-extglob "^2.1.1" + +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +is-path-inside@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" + integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== + +js-sdsl@^4.1.4: + version "4.4.0" + resolved "https://registry.yarnpkg.com/js-sdsl/-/js-sdsl-4.4.0.tgz#8b437dbe642daa95760400b602378ed8ffea8430" + integrity sha512-FfVSdx6pJ41Oa+CF7RDaFmTnCaFhua+SNYQX74riGOpl96x+2jQCqEfQ2bnXu/5DPCqlRuiqyvTJM0Qjz26IVg== + +js-yaml@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" + integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== + dependencies: + argparse "^2.0.1" + +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== + +json-stable-stringify-without-jsonify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" + integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== + +levn@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" + integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== + dependencies: + prelude-ls "^1.2.1" + type-check "~0.4.0" + +locate-path@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" + integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== + dependencies: + p-locate "^5.0.0" + +lodash.merge@^4.6.2: + version "4.6.2" + resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" + integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== + +long@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/long/-/long-4.0.0.tgz#9a7b71cfb7d361a194ea555241c92f7468d5bf28" + integrity sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA== + +lru-cache@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" + integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== + dependencies: + yallist "^4.0.0" + +merge2@^1.3.0, merge2@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" + integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== + +micromatch@^4.0.4: + version "4.0.5" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" + integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== + dependencies: + braces "^3.0.2" + picomatch "^2.3.1" + +minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== + dependencies: + brace-expansion "^1.1.7" + +ms@2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +natural-compare-lite@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz#17b09581988979fddafe0201e931ba933c96cbb4" + integrity sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g== + +natural-compare@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== + +once@^1.3.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== + dependencies: + wrappy "1" + +optionator@^0.9.1: + version "0.9.1" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" + integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== + dependencies: + deep-is "^0.1.3" + fast-levenshtein "^2.0.6" + levn "^0.4.1" + prelude-ls "^1.2.1" + type-check "^0.4.0" + word-wrap "^1.2.3" + +p-limit@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" + integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== + dependencies: + yocto-queue "^0.1.0" + +p-locate@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" + integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== + dependencies: + p-limit "^3.0.2" + +parent-module@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" + integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== + dependencies: + callsites "^3.0.0" + +path-exists@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== + +path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + +path-type@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" + integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== + +picomatch@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== + +prelude-ls@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" + integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== + +protobufjs@6.8.8: + version "6.8.8" + resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-6.8.8.tgz#c8b4f1282fd7a90e6f5b109ed11c84af82908e7c" + integrity sha512-AAmHtD5pXgZfi7GMpllpO3q1Xw1OYldr+dMUlAnffGTAhqkg72WdmSY71uKBF/JuyiKs8psYbtKrhi0ASCD8qw== + dependencies: + "@protobufjs/aspromise" "^1.1.2" + "@protobufjs/base64" "^1.1.2" + "@protobufjs/codegen" "^2.0.4" + "@protobufjs/eventemitter" "^1.1.0" + "@protobufjs/fetch" "^1.1.0" + "@protobufjs/float" "^1.0.2" + "@protobufjs/inquire" "^1.1.0" + "@protobufjs/path" "^1.1.2" + "@protobufjs/pool" "^1.1.0" + "@protobufjs/utf8" "^1.1.0" + "@types/long" "^4.0.0" + "@types/node" "^10.1.0" + long "^4.0.0" + +punycode@^2.1.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.0.tgz#f67fa67c94da8f4d0cfff981aee4118064199b8f" + integrity sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA== + +queue-microtask@^1.2.2: + version "1.2.3" + resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" + integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== + +resolve-from@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== + +reusify@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" + integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== + +rimraf@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" + integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== + dependencies: + glob "^7.1.3" + +run-parallel@^1.1.9: + version "1.2.0" + resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" + integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== + dependencies: + queue-microtask "^1.2.2" + +semver@5.6.0: + version "5.6.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.6.0.tgz#7e74256fbaa49c75aa7c7a205cc22799cac80004" + integrity sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg== + +semver@^7.3.7: + version "7.3.8" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.8.tgz#07a78feafb3f7b32347d725e33de7e2a2df67798" + integrity sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A== + dependencies: + lru-cache "^6.0.0" + +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + dependencies: + shebang-regex "^3.0.0" + +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + +slash@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" + integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== + +source-map-support@0.5.9: + version "0.5.9" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.9.tgz#41bc953b2534267ea2d605bccfa7bfa3111ced5f" + integrity sha512-gR6Rw4MvUlYy83vP0vxoVNzM6t8MUXqNuRsuBmBHQDu1Fh6X015FrLdgoDKcNdkwGubozq0P4N0Q37UyFVr1EA== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + +source-map@^0.6.0: + version "0.6.1" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + +strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" + integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== + +supports-color@^7.1.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + dependencies: + has-flag "^4.0.0" + +text-table@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== + +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + +tslib@^1.8.1: + version "1.14.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" + integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== + +tsutils@3.21.0, tsutils@^3.21.0: + version "3.21.0" + resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" + integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA== + dependencies: + tslib "^1.8.1" + +type-check@^0.4.0, type-check@~0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" + integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== + dependencies: + prelude-ls "^1.2.1" + +type-fest@^0.20.2: + version "0.20.2" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" + integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== + +typescript@^5.0.3: + version "5.0.3" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.0.3.tgz#fe976f0c826a88d0a382007681cbb2da44afdedf" + integrity sha512-xv8mOEDnigb/tN9PSMTwSEqAnUvkoXMQlicOb0IUVDBSQCgBSaAAROUZYy2IcUy5qU6XajK5jjjO7TMWqBTKZA== + +uri-js@^4.2.2: + version "4.4.1" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" + integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== + dependencies: + punycode "^2.1.0" + +which@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" + +word-wrap@^1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" + integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== + +yallist@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" + integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== + +yocto-queue@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" + integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== From 966aae2144e5cf8850eba0101016307d0ca58ee0 Mon Sep 17 00:00:00 2001 From: Derek Bailey Date: Fri, 28 Apr 2023 13:40:38 -0700 Subject: [PATCH 165/571] inject no long for FBS generation to remove logs in flattests (#7926) * inject no long for FBS generation to remove logs in flattests * updated blaze rules --- CMakeLists.txt | 1 + include/flatbuffers/idl.h | 5 +-- src/BUILD.bazel | 32 +++++++++++++++--- src/idl_gen_fbs.cpp | 68 +++++++++++++++++++++++++-------------- src/idl_gen_fbs.h | 2 +- tests/BUILD.bazel | 1 + tests/proto_test.cpp | 25 ++++++++------ tests/test_assert.h | 21 ++++++++++++ 8 files changed, 113 insertions(+), 42 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 2b65c20e50..1fa7a84156 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -634,6 +634,7 @@ if(FLATBUFFERS_BUILD_TESTS) add_executable(flattests ${FlatBuffers_Tests_SRCS}) target_link_libraries(flattests PRIVATE $) + target_include_directories(flattests PUBLIC src) add_dependencies(flattests generated_code) if(FLATBUFFERS_CODE_SANITIZE) diff --git a/include/flatbuffers/idl.h b/include/flatbuffers/idl.h index ced2049d83..6865f12f7a 100644 --- a/include/flatbuffers/idl.h +++ b/include/flatbuffers/idl.h @@ -1287,9 +1287,10 @@ extern bool GenerateSwift(const Parser &parser, const std::string &path, // Generate a schema file from the internal representation, useful after // parsing a .proto schema. extern std::string GenerateFBS(const Parser &parser, - const std::string &file_name); + const std::string &file_name, + bool no_log); extern bool GenerateFBS(const Parser &parser, const std::string &path, - const std::string &file_name); + const std::string &file_name, bool no_log); // Generate a make rule for the generated TypeScript code. // See idl_gen_ts.cpp. diff --git a/src/BUILD.bazel b/src/BUILD.bazel index 28d0868ced..9991f4ad2d 100644 --- a/src/BUILD.bazel +++ b/src/BUILD.bazel @@ -5,20 +5,38 @@ package( default_visibility = ["//visibility:private"], ) +cc_library( + name = "code_generators", + srcs = ["code_generators.cpp"], + hdrs = [ + "//:public_headers", + ], + strip_include_prefix = "/include", + visibility = ["//:__subpackages__"], +) + +cc_library( + name = "generate_fbs", + srcs = ["idl_gen_fbs.cpp"], + hdrs = ["idl_gen_fbs.h"], + strip_include_prefix = "/src", + visibility = ["//:__subpackages__"], + deps = [":code_generators"], +) + # Public flatc library to compile flatbuffer files at runtime. cc_library( name = "flatbuffers", srcs = [ - "code_generators.cpp", - "idl_gen_fbs.cpp", - "idl_gen_fbs.h", "idl_gen_text.cpp", "idl_gen_text.h", "idl_parser.cpp", "reflection.cpp", "util.cpp", ], - hdrs = ["//:public_headers"], + hdrs = [ + "//:public_headers", + ], linkopts = select({ # TODO: Bazel uses `clang` instead of `clang++` to link # C++ code on BSD. Temporarily adding these linker flags while @@ -29,7 +47,11 @@ cc_library( "//conditions:default": [], }), strip_include_prefix = "/include", - visibility = ["//:__pkg__"], + visibility = ["//:__subpackages__"], + deps = [ + ":code_generators", + ":generate_fbs", + ], ) # Public flatc compiler library. diff --git a/src/idl_gen_fbs.cpp b/src/idl_gen_fbs.cpp index 6a6d0351bb..f71c21f97d 100644 --- a/src/idl_gen_fbs.cpp +++ b/src/idl_gen_fbs.cpp @@ -129,34 +129,43 @@ static bool HasGapInProtoId(const std::vector &fields) { } static bool ProtobufIdSanityCheck(const StructDef &struct_def, - IDLOptions::ProtoIdGapAction gap_action) { + IDLOptions::ProtoIdGapAction gap_action, + bool no_log = false) { const auto &fields = struct_def.fields.vec; if (HasNonPositiveFieldId(fields)) { // TODO: Use LogCompilerWarn - fprintf(stderr, "Field id in struct %s has a non positive number value\n", - struct_def.name.c_str()); + if (!no_log) { + fprintf(stderr, "Field id in struct %s has a non positive number value\n", + struct_def.name.c_str()); + } return false; } if (HasTwiceUsedId(fields)) { // TODO: Use LogCompilerWarn - fprintf(stderr, "Fields in struct %s have used an id twice\n", - struct_def.name.c_str()); + if (!no_log) { + fprintf(stderr, "Fields in struct %s have used an id twice\n", + struct_def.name.c_str()); + } return false; } if (HasFieldIdFromReservedIds(fields, struct_def.reserved_ids)) { // TODO: Use LogCompilerWarn - fprintf(stderr, "Fields in struct %s use id from reserved ids\n", - struct_def.name.c_str()); + if (!no_log) { + fprintf(stderr, "Fields in struct %s use id from reserved ids\n", + struct_def.name.c_str()); + } return false; } if (gap_action != IDLOptions::ProtoIdGapAction::NO_OP) { if (HasGapInProtoId(fields)) { // TODO: Use LogCompilerWarn - fprintf(stderr, "Fields in struct %s have gap between ids\n", - struct_def.name.c_str()); + if (!no_log) { + fprintf(stderr, "Fields in struct %s have gap between ids\n", + struct_def.name.c_str()); + } if (gap_action == IDLOptions::ProtoIdGapAction::ERROR) { return false; } } } @@ -174,7 +183,8 @@ struct ProtobufToFbsIdMap { }; static ProtobufToFbsIdMap MapProtoIdsToFieldsId( - const StructDef &struct_def, IDLOptions::ProtoIdGapAction gap_action) { + const StructDef &struct_def, IDLOptions::ProtoIdGapAction gap_action, + bool no_log) { const auto &fields = struct_def.fields.vec; if (!HasFieldWithId(fields)) { @@ -183,7 +193,7 @@ static ProtobufToFbsIdMap MapProtoIdsToFieldsId( return result; } - if (!ProtobufIdSanityCheck(struct_def, gap_action)) { return {}; } + if (!ProtobufIdSanityCheck(struct_def, gap_action, no_log)) { return {}; } static constexpr int UNION_ID = -1; using ProtoIdFieldNamePair = std::pair; @@ -203,8 +213,10 @@ static ProtobufToFbsIdMap MapProtoIdsToFieldsId( } } else { // TODO: Use LogCompilerWarn - fprintf(stderr, "Fields id in struct %s is missing\n", - struct_def.name.c_str()); + if (!no_log) { + fprintf(stderr, "Fields id in struct %s is missing\n", + struct_def.name.c_str()); + } return {}; } } @@ -240,7 +252,8 @@ static void GenNameSpace(const Namespace &name_space, std::string *_schema, } // Generate a flatbuffer schema from the Parser's internal representation. -std::string GenerateFBS(const Parser &parser, const std::string &file_name) { +std::string GenerateFBS(const Parser &parser, const std::string &file_name, + bool no_log = false) { // Proto namespaces may clash with table names, escape the ones that were // generated from a table: for (auto it = parser.namespaces_.begin(); it != parser.namespaces_.end(); @@ -315,8 +328,8 @@ std::string GenerateFBS(const Parser &parser, const std::string &file_name) { for (auto it = parser.structs_.vec.begin(); it != parser.structs_.vec.end(); ++it) { StructDef &struct_def = **it; - const auto proto_fbs_ids = - MapProtoIdsToFieldsId(struct_def, parser.opts.proto_id_gap_action); + const auto proto_fbs_ids = MapProtoIdsToFieldsId( + struct_def, parser.opts.proto_id_gap_action, no_log); if (!proto_fbs_ids.successful) { return {}; } if (parser.opts.include_dependence_headers && struct_def.generated) { @@ -362,13 +375,15 @@ std::string GenerateFBS(const Parser &parser, const std::string &file_name) { } bool GenerateFBS(const Parser &parser, const std::string &path, - const std::string &file_name) { - const std::string fbs = GenerateFBS(parser, file_name); + const std::string &file_name, bool no_log = false) { + const std::string fbs = GenerateFBS(parser, file_name, no_log); if (fbs.empty()) { return false; } // TODO: Use LogCompilerWarn - fprintf(stderr, - "When you use --proto, that you should check for conformity " - "yourself, using the existing --conform"); + if (!no_log) { + fprintf(stderr, + "When you use --proto, that you should check for conformity " + "yourself, using the existing --conform"); + } return SaveFile((path + file_name + ".fbs").c_str(), fbs, false); } @@ -376,9 +391,11 @@ namespace { class FBSCodeGenerator : public CodeGenerator { public: + explicit FBSCodeGenerator(const bool no_log) : no_log_(no_log) {} + Status GenerateCode(const Parser &parser, const std::string &path, const std::string &filename) override { - if (!GenerateFBS(parser, path, filename)) { return Status::ERROR; } + if (!GenerateFBS(parser, path, filename, no_log_)) { return Status::ERROR; } return Status::OK; } @@ -424,12 +441,15 @@ class FBSCodeGenerator : public CodeGenerator { IDLOptions::Language Language() const override { return IDLOptions::kProto; } std::string LanguageName() const override { return "proto"; } + + protected: + const bool no_log_; }; } // namespace -std::unique_ptr NewFBSCodeGenerator() { - return std::unique_ptr(new FBSCodeGenerator()); +std::unique_ptr NewFBSCodeGenerator(const bool no_log) { + return std::unique_ptr(new FBSCodeGenerator(no_log)); } } // namespace flatbuffers diff --git a/src/idl_gen_fbs.h b/src/idl_gen_fbs.h index 7f73d33bcd..403f160b9b 100644 --- a/src/idl_gen_fbs.h +++ b/src/idl_gen_fbs.h @@ -21,7 +21,7 @@ namespace flatbuffers { -std::unique_ptr NewFBSCodeGenerator(); +std::unique_ptr NewFBSCodeGenerator(bool no_log = false); } // namespace flatbuffers diff --git a/tests/BUILD.bazel b/tests/BUILD.bazel index ee14272494..8d815b52c9 100644 --- a/tests/BUILD.bazel +++ b/tests/BUILD.bazel @@ -113,6 +113,7 @@ cc_test( ":monster_test_cc_fbs", ":native_type_test_cc_fbs", "//:flatbuffers", + "//src:generate_fbs", ], ) diff --git a/tests/proto_test.cpp b/tests/proto_test.cpp index b9fd10b072..6c98bc1409 100644 --- a/tests/proto_test.cpp +++ b/tests/proto_test.cpp @@ -1,5 +1,7 @@ #include "proto_test.h" +#include "flatbuffers/code_generator.h" +#include "idl_gen_fbs.h" #include "test_assert.h" namespace flatbuffers { @@ -15,7 +17,7 @@ void RunTest(const flatbuffers::IDLOptions &opts, const std::string &proto_path, TEST_EQ(parser.Parse(proto_file.c_str(), include_directories), true); // Generate fbs. - auto fbs = flatbuffers::GenerateFBS(parser, "test"); + auto fbs = flatbuffers::GenerateFBS(parser, "test", true); // Ensure generated file is parsable. flatbuffers::Parser parser2; @@ -25,7 +27,7 @@ void RunTest(const flatbuffers::IDLOptions &opts, const std::string &proto_path, flatbuffers::Parser import_parser(opts); TEST_EQ(import_parser.Parse(import_proto_file.c_str(), include_directories), true); - auto import_fbs = flatbuffers::GenerateFBS(import_parser, "test"); + auto import_fbs = flatbuffers::GenerateFBS(import_parser, "test", true); // Since `imported.fbs` isn't in the filesystem AbsolutePath can't figure it // out by itself. We manually construct it so Parser works. std::string imported_fbs = flatbuffers::PosixPath( @@ -222,6 +224,8 @@ void ParseCorruptedProto(const std::string &proto_path) { std::string proto_file; + std::unique_ptr fbs_generator = NewFBSCodeGenerator(true); + // Parse proto with non positive id. { flatbuffers::Parser parser(opts); @@ -230,8 +234,8 @@ void ParseCorruptedProto(const std::string &proto_path) { false, &proto_file), true); TEST_EQ(parser.Parse(proto_file.c_str(), include_directories), true); - auto fbs = flatbuffers::GenerateFBS(parser, "test"); - TEST_EQ(fbs.empty(), true); + TEST_NE(fbs_generator->GenerateCode(parser, "temp.fbs", "test"), + CodeGenerator::Status::OK); } // Parse proto with twice id. @@ -241,8 +245,8 @@ void ParseCorruptedProto(const std::string &proto_path) { false, &proto_file), true); TEST_EQ(parser.Parse(proto_file.c_str(), include_directories), true); - auto fbs = flatbuffers::GenerateFBS(parser, "test"); - TEST_EQ(fbs.empty(), true); + TEST_NE(fbs_generator->GenerateCode(parser, "temp.fbs", "test"), + CodeGenerator::Status::OK); } // Parse proto with using reserved id. @@ -252,8 +256,8 @@ void ParseCorruptedProto(const std::string &proto_path) { false, &proto_file), true); TEST_EQ(parser.Parse(proto_file.c_str(), include_directories), true); - auto fbs = flatbuffers::GenerateFBS(parser, "test"); - TEST_EQ(fbs.empty(), true); + TEST_NE(fbs_generator->GenerateCode(parser, "temp.fbs", "test"), + CodeGenerator::Status::OK); } // Parse proto with error on gap. @@ -264,8 +268,9 @@ void ParseCorruptedProto(const std::string &proto_path) { &proto_file), true); TEST_EQ(parser.Parse(proto_file.c_str(), include_directories), true); - auto fbs = flatbuffers::GenerateFBS(parser, "test"); - TEST_EQ(fbs.empty(), true); + + TEST_NE(fbs_generator->GenerateCode(parser, "temp.fbs", "test"), + CodeGenerator::Status::OK); } } diff --git a/tests/test_assert.h b/tests/test_assert.h index 9d5f7801fc..8b4133827c 100644 --- a/tests/test_assert.h +++ b/tests/test_assert.h @@ -17,6 +17,7 @@ #endif #define TEST_EQ(exp, val) TestEq(exp, val, "'" #exp "' != '" #val "'", __FILE__, __LINE__, "") +#define TEST_NE(exp, val) TestNe(exp, val, "'" #exp "' == '" #val "'", __FILE__, __LINE__, "") #define TEST_ASSERT(val) TestEq(true, !!(val), "'" "true" "' != '" #val "'", __FILE__, __LINE__, "") #define TEST_NOTNULL(val) TestEq(true, (val) != nullptr, "'" "nullptr" "' == '" #val "'", __FILE__, __LINE__, "") #define TEST_EQ_STR(exp, val) TestEqStr(exp, val, "'" #exp "' != '" #val "'", __FILE__, __LINE__, "") @@ -106,4 +107,24 @@ inline void TestEq(std::string expval, } } +template +void TestNe(T expval, U val, const char *exp, const char *file, int line, + const char *func) { + if (static_cast(expval) == val) { + TestFail(flatbuffers::NumToString(scalar_as_underlying(expval)).c_str(), + flatbuffers::NumToString(scalar_as_underlying(val)).c_str(), exp, + file, line, func); + } +} + +template<> +inline void TestNe(std::string expval, + std::string val, const char *exp, + const char *file, int line, + const char *func) { + if (expval == val) { + TestFail(expval.c_str(), val.c_str(), exp, file, line, func); + } +} + #endif // !TEST_ASSERT_H From aeba096403d8b1796c8781f4a1cbf4214bcf539f Mon Sep 17 00:00:00 2001 From: Derek Bailey Date: Fri, 28 Apr 2023 23:22:41 -0700 Subject: [PATCH 166/571] fixed some windows warnings (#7929) --- include/flatbuffers/flatbuffer_builder.h | 10 +++++----- src/idl_gen_cpp.cpp | 25 ++++++++++++------------ tests/monster_test.cpp | 4 ++-- 3 files changed, 20 insertions(+), 19 deletions(-) diff --git a/include/flatbuffers/flatbuffer_builder.h b/include/flatbuffers/flatbuffer_builder.h index b9015d8502..caf9a3d156 100644 --- a/include/flatbuffers/flatbuffer_builder.h +++ b/include/flatbuffers/flatbuffer_builder.h @@ -40,8 +40,8 @@ namespace flatbuffers { // Converts a Field ID to a virtual table offset. inline voffset_t FieldIndexToOffset(voffset_t field_id) { // Should correspond to what EndTable() below builds up. - const int fixed_fields = 2; // Vtable size and Object Size. - return static_cast((field_id + fixed_fields) * sizeof(voffset_t)); + const voffset_t fixed_fields = 2 * sizeof(voffset_t); // Vtable size and Object Size. + return fixed_fields + field_id * sizeof(voffset_t); } template> @@ -360,7 +360,7 @@ class FlatBufferBuilder { FLATBUFFERS_ASSERT(nested); // Write the vtable offset, which is the start of any Table. // We fill its value later. - auto vtableoffsetloc = PushElement(0); + const uoffset_t vtableoffsetloc = PushElement(0); // Write a vtable, which consists entirely of voffset_t elements. // It starts with the number of offsets, followed by a type id, followed // by the offsets themselves. In reverse: @@ -400,7 +400,7 @@ class FlatBufferBuilder { auto vt2_size = ReadScalar(vt2); if (vt1_size != vt2_size || 0 != memcmp(vt2, vt1, vt1_size)) continue; vt_use = *vt_offset_ptr; - buf_.pop(GetSize() - vtableoffsetloc); + buf_.pop(GetSize() - static_cast(vtableoffsetloc)); break; } } @@ -525,7 +525,7 @@ class FlatBufferBuilder { FLATBUFFERS_ASSERT(FLATBUFFERS_GENERAL_HEAP_ALLOC_OK); if (!string_pool) string_pool = new StringOffsetMap(StringOffsetCompare(buf_)); - auto size_before_string = buf_.size(); + const size_t size_before_string = buf_.size(); // Must first serialize the string, since the set is all offsets into // buffer. auto off = CreateString(str, len); diff --git a/src/idl_gen_cpp.cpp b/src/idl_gen_cpp.cpp index 67f228a250..1b33016e2b 100644 --- a/src/idl_gen_cpp.cpp +++ b/src/idl_gen_cpp.cpp @@ -22,6 +22,7 @@ #include #include #include +#include #include "flatbuffers/base.h" #include "flatbuffers/code_generators.h" @@ -965,9 +966,9 @@ class CppGenerator : public BaseGenerator { std::string GetUnionElement(const EnumVal &ev, bool native_type, const IDLOptions &opts) { if (ev.union_type.base_type == BASE_TYPE_STRUCT) { - auto name = ev.union_type.struct_def->name; + std::string name = ev.union_type.struct_def->name; if (native_type) { - name = NativeName(name, ev.union_type.struct_def, opts); + name = NativeName(std::move(name), ev.union_type.struct_def, opts); } return WrapInNameSpace(ev.union_type.struct_def->defined_namespace, name); } else if (IsString(ev.union_type)) { @@ -985,8 +986,8 @@ class CppGenerator : public BaseGenerator { } std::string UnionVectorVerifySignature(const EnumDef &enum_def) { - auto name = Name(enum_def); - auto type = opts_.scoped_enums ? name : "uint8_t"; + const std::string name = Name(enum_def); + const std::string & type = opts_.scoped_enums ? name : "uint8_t"; return "bool Verify" + name + "Vector" + "(::flatbuffers::Verifier &verifier, " + "const ::flatbuffers::Vector<::flatbuffers::Offset> " @@ -1806,7 +1807,7 @@ class CppGenerator : public BaseGenerator { field.value.type.element != BASE_TYPE_UTYPE)) { auto type = GenTypeNative(field.value.type, false, field); auto cpp_type = field.attributes.Lookup("cpp_type"); - auto full_type = + const std::string & full_type = (cpp_type ? (IsVector(field.value.type) ? "std::vector<" + @@ -1953,7 +1954,7 @@ class CppGenerator : public BaseGenerator { if (!initializer_list.empty()) { initializer_list += ",\n "; } const auto cpp_type = field->attributes.Lookup("cpp_type"); const auto cpp_ptr_type = field->attributes.Lookup("cpp_ptr_type"); - auto type_name = (cpp_type) ? cpp_type->constant + const std::string & type_name = (cpp_type) ? cpp_type->constant : GenTypeNative(type, /*invector*/ false, *field, /*forcopy*/ true); const bool is_ptr = !(IsStruct(type) && field->native_inline) || @@ -1975,7 +1976,7 @@ class CppGenerator : public BaseGenerator { if (vec_type.base_type == BASE_TYPE_UTYPE) continue; const auto cpp_type = field->attributes.Lookup("cpp_type"); const auto cpp_ptr_type = field->attributes.Lookup("cpp_ptr_type"); - const auto type_name = (cpp_type) + const std::string & type_name = (cpp_type) ? cpp_type->constant : GenTypeNative(vec_type, /*invector*/ true, *field, /*forcopy*/ true); @@ -2834,7 +2835,7 @@ class CppGenerator : public BaseGenerator { // Generate code to do force_align for the vector. if (align > 1) { const auto vtype = field.value.type.VectorType(); - const auto type = IsStruct(vtype) ? WrapInNameSpace(*vtype.struct_def) + const std::string & type = IsStruct(vtype) ? WrapInNameSpace(*vtype.struct_def) : GenTypeWire(vtype, "", false); return "_fbb.ForceVectorAlignment(" + field_size + ", sizeof(" + type + "), " + std::to_string(static_cast(align)) + ");"; @@ -3356,7 +3357,7 @@ class CppGenerator : public BaseGenerator { } case BASE_TYPE_UTYPE: { value = StripUnionType(value); - auto type = opts_.scoped_enums ? Name(*field.value.type.enum_def) + const std::string & type = opts_.scoped_enums ? Name(*field.value.type.enum_def) : "uint8_t"; auto enum_value = "__va->_" + value + "[i].type"; if (!opts_.scoped_enums) @@ -3423,7 +3424,7 @@ class CppGenerator : public BaseGenerator { } } else { // _o->field ? CreateT(_fbb, _o->field.get(), _rehasher); - const auto type = field.value.type.struct_def->name; + const std::string & type = field.value.type.struct_def->name; code += value + " ? Create" + type; code += "(_fbb, " + value; if (!field.native_inline) code += GenPtrGet(field); @@ -3809,7 +3810,7 @@ class CppGenerator : public BaseGenerator { const auto field_type = GenTypeGet(type, " ", is_array ? "" : "const ", is_array ? "" : " &", true); auto member = Name(*field) + "_"; - auto value = + const std::string & value = is_scalar ? "::flatbuffers::EndianScalar(" + member + ")" : member; code_.SetValue("FIELD_NAME", Name(*field)); @@ -3918,7 +3919,7 @@ bool GenerateCPP(const Parser &parser, const std::string &path, cpp::IDLOptionsCpp opts(parser.opts); // The '--cpp_std' argument could be extended (like ASAN): // Example: "flatc --cpp_std c++17:option1:option2". - auto cpp_std = !opts.cpp_std.empty() ? opts.cpp_std : "C++11"; + std::string cpp_std = !opts.cpp_std.empty() ? opts.cpp_std : "C++11"; std::transform(cpp_std.begin(), cpp_std.end(), cpp_std.begin(), CharToUpper); if (cpp_std == "C++0X") { opts.g_cpp_std = cpp::CPP_STD_X0; diff --git a/tests/monster_test.cpp b/tests/monster_test.cpp index f081dd92f5..ed6d55bf68 100644 --- a/tests/monster_test.cpp +++ b/tests/monster_test.cpp @@ -422,7 +422,7 @@ void MutateFlatBuffersTest(uint8_t *flatbuf, std::size_t length) { // Mutate structs. auto pos = monster->mutable_pos(); - auto test3 = pos->mutable_test3(); // Struct inside a struct. + auto & test3 = pos->mutable_test3(); // Struct inside a struct. test3.mutate_a(50); // Struct fields never fail. TEST_EQ(test3.a(), 50); test3.mutate_a(10); @@ -508,7 +508,7 @@ void ObjectFlatBuffersTest(uint8_t *flatbuf) { CheckMonsterObject(monster2.get()); // Test object copy. - auto monster3 = *monster2; + MonsterT monster3 = *monster2; flatbuffers::FlatBufferBuilder fbb3; fbb3.Finish(CreateMonster(fbb3, &monster3, &rehasher), MonsterIdentifier()); const auto len3 = fbb3.GetSize(); From dbce69c63b0f3cee8f6d9521479fd3b087338314 Mon Sep 17 00:00:00 2001 From: Derek Bailey Date: Sat, 29 Apr 2023 00:08:14 -0700 Subject: [PATCH 167/571] more window fixes --- src/binary_annotator.cpp | 4 ++-- src/binary_annotator.h | 2 +- src/reflection.cpp | 8 +++++--- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/binary_annotator.cpp b/src/binary_annotator.cpp index 2c31fe5f3d..c5fa42f729 100644 --- a/src/binary_annotator.cpp +++ b/src/binary_annotator.cpp @@ -26,7 +26,7 @@ static BinaryRegion MakeBinaryRegion( const uint64_t offset = 0, const uint64_t length = 0, const BinaryRegionType type = BinaryRegionType::Unknown, const uint64_t array_length = 0, const uint64_t points_to_offset = 0, - const BinaryRegionComment comment = {}) { + BinaryRegionComment comment = {}) { BinaryRegion region; region.offset = offset; region.length = length; @@ -39,7 +39,7 @@ static BinaryRegion MakeBinaryRegion( static BinarySection MakeBinarySection( const std::string &name, const BinarySectionType type, - const std::vector regions) { + std::vector regions) { BinarySection section; section.name = name; section.type = type; diff --git a/src/binary_annotator.h b/src/binary_annotator.h index 096f9a4815..fd0a9af0c7 100644 --- a/src/binary_annotator.h +++ b/src/binary_annotator.h @@ -258,7 +258,7 @@ class BinaryAnnotator { uint16_t offset_from_table = 0; }; - const reflection::Object *referring_table; + const reflection::Object *referring_table = nullptr; // Field ID -> {field def, offset from table} std::map fields; diff --git a/src/reflection.cpp b/src/reflection.cpp index 6ea2d20b12..0d0814ef62 100644 --- a/src/reflection.cpp +++ b/src/reflection.cpp @@ -506,7 +506,9 @@ class ResizeContext { // Recurse. switch (base_type) { case reflection::Obj: { - ResizeTable(*subobjectdef, reinterpret_cast(ref)); + if (subobjectdef) { + ResizeTable(*subobjectdef, reinterpret_cast
(ref)); + } break; } case reflection::Vector: { @@ -564,7 +566,7 @@ void SetString(const reflection::Schema &schema, const std::string &val, // Clear the old string, since we don't want parts of it remaining. memset(flatbuf->data() + start, 0, str->size()); // Different size, we must expand (or contract). - ResizeContext(schema, start, delta, flatbuf, root_table); + ResizeContext ctx(schema, start, delta, flatbuf, root_table); // Set the new length. WriteScalar(flatbuf->data() + str_start, static_cast(val.size())); @@ -590,7 +592,7 @@ uint8_t *ResizeAnyVector(const reflection::Schema &schema, uoffset_t newsize, auto size_clear = -delta_elem * elem_size; memset(flatbuf->data() + start - size_clear, 0, size_clear); } - ResizeContext(schema, start, delta_bytes, flatbuf, root_table); + ResizeContext ctx(schema, start, delta_bytes, flatbuf, root_table); WriteScalar(flatbuf->data() + vec_start, newsize); // Length field. // Set new elements to 0.. this can be overwritten by the caller. if (delta_elem > 0) { From 19d8942943b1951e01806b508821c9d93a31c9b3 Mon Sep 17 00:00:00 2001 From: Derek Bailey Date: Mon, 1 May 2023 09:55:47 -0700 Subject: [PATCH 168/571] `flat_buffers.dart`: mark const variable finals for internal Dart linters --- dart/lib/flat_buffers.dart | 54 +++++++++++++++++++------------------- 1 file changed, 27 insertions(+), 27 deletions(-) diff --git a/dart/lib/flat_buffers.dart b/dart/lib/flat_buffers.dart index 8ce1ab907e..071f3cc92f 100644 --- a/dart/lib/flat_buffers.dart +++ b/dart/lib/flat_buffers.dart @@ -304,7 +304,7 @@ class Builder { assert(_inVTable); // Prepare for writing the VTable. _prepare(_sizeofInt32, 1); - var tableTail = _tail; + final tableTail = _tail; // Prepare the size of the current table. final currentVTable = _currentVTable!; currentVTable.tableSize = tableTail - _currentTableEndTail; @@ -514,7 +514,7 @@ class Builder { var tail = _tail; _setUint32AtTail(tail, values.length); tail -= _sizeofUint32; - for (var value in values) { + for (final value in values) { _setUint32AtTail(tail, tail - value); tail -= _sizeofUint32; } @@ -529,7 +529,7 @@ class Builder { var tail = _tail; _setUint32AtTail(tail, values.length); tail -= _sizeofUint32; - for (var value in values) { + for (final value in values) { _setFloat64AtTail(tail, value); tail -= _sizeofFloat64; } @@ -544,7 +544,7 @@ class Builder { var tail = _tail; _setUint32AtTail(tail, values.length); tail -= _sizeofUint32; - for (var value in values) { + for (final value in values) { _setFloat32AtTail(tail, value); tail -= _sizeofFloat32; } @@ -559,7 +559,7 @@ class Builder { var tail = _tail; _setUint32AtTail(tail, values.length); tail -= _sizeofUint32; - for (var value in values) { + for (final value in values) { _setInt64AtTail(tail, value); tail -= _sizeofInt64; } @@ -574,7 +574,7 @@ class Builder { var tail = _tail; _setUint32AtTail(tail, values.length); tail -= _sizeofUint32; - for (var value in values) { + for (final value in values) { _setUint64AtTail(tail, value); tail -= _sizeofUint64; } @@ -589,7 +589,7 @@ class Builder { var tail = _tail; _setUint32AtTail(tail, values.length); tail -= _sizeofUint32; - for (var value in values) { + for (final value in values) { _setInt32AtTail(tail, value); tail -= _sizeofInt32; } @@ -604,7 +604,7 @@ class Builder { var tail = _tail; _setUint32AtTail(tail, values.length); tail -= _sizeofUint32; - for (var value in values) { + for (final value in values) { _setUint32AtTail(tail, value); tail -= _sizeofUint32; } @@ -619,7 +619,7 @@ class Builder { var tail = _tail; _setUint32AtTail(tail, values.length); tail -= _sizeofUint32; - for (var value in values) { + for (final value in values) { _setInt16AtTail(tail, value); tail -= _sizeofInt16; } @@ -634,7 +634,7 @@ class Builder { var tail = _tail; _setUint32AtTail(tail, values.length); tail -= _sizeofUint32; - for (var value in values) { + for (final value in values) { _setUint16AtTail(tail, value); tail -= _sizeofUint16; } @@ -669,7 +669,7 @@ class Builder { var tail = _tail; _setUint32AtTail(tail, values.length); tail -= _sizeofUint32; - for (var value in values) { + for (final value in values) { _setUint8AtTail(tail, value); tail -= _sizeofUint8; } @@ -777,17 +777,17 @@ class Builder { _maxAlign = size; } // Prepare amount of required space. - var dataSize = size * count + additionalBytes; - var alignDelta = (-(_tail + dataSize)) & (size - 1); - var bufSize = alignDelta + dataSize; + final dataSize = size * count + additionalBytes; + final alignDelta = (-(_tail + dataSize)) & (size - 1); + final bufSize = alignDelta + dataSize; // Ensure that we have the required amount of space. { - var oldCapacity = _buf.lengthInBytes; + final oldCapacity = _buf.lengthInBytes; if (_tail + bufSize > oldCapacity) { - var desiredNewCapacity = (oldCapacity + bufSize) * 2; + final desiredNewCapacity = (oldCapacity + bufSize) * 2; var deltaCapacity = desiredNewCapacity - oldCapacity; deltaCapacity += (-deltaCapacity) & (_maxAlign - 1); - var newCapacity = oldCapacity + deltaCapacity; + final newCapacity = oldCapacity + deltaCapacity; _buf = _allocator.resize(_buf, newCapacity, _tail, 0); } } @@ -1023,22 +1023,22 @@ abstract class Reader { /// Read the value of the given [field] in the given [object]. @pragma('vm:prefer-inline') T vTableGet(BufferContext object, int offset, int field, T defaultValue) { - var fieldOffset = _vTableFieldOffset(object, offset, field); + final fieldOffset = _vTableFieldOffset(object, offset, field); return fieldOffset == 0 ? defaultValue : read(object, offset + fieldOffset); } /// Read the value of the given [field] in the given [object]. @pragma('vm:prefer-inline') T? vTableGetNullable(BufferContext object, int offset, int field) { - var fieldOffset = _vTableFieldOffset(object, offset, field); + final fieldOffset = _vTableFieldOffset(object, offset, field); return fieldOffset == 0 ? null : read(object, offset + fieldOffset); } @pragma('vm:prefer-inline') int _vTableFieldOffset(BufferContext object, int offset, int field) { - var vTableSOffset = object._getInt32(offset); - var vTableOffset = offset - vTableSOffset; - var vTableSize = object._getUint16(vTableOffset); + final vTableSOffset = object._getInt32(offset); + final vTableOffset = offset - vTableSOffset; + final vTableSize = object._getUint16(vTableOffset); if (field >= vTableSize) return 0; return object._getUint16(vTableOffset + field); } @@ -1057,9 +1057,9 @@ class StringReader extends Reader { @override @pragma('vm:prefer-inline') String read(BufferContext bc, int offset) { - var strOffset = bc.derefObject(offset); - var length = bc._getUint32(strOffset); - var bytes = bc._asUint8List(strOffset + _sizeofUint32, length); + final strOffset = bc.derefObject(offset); + final length = bc._getUint32(strOffset); + final bytes = bc._asUint8List(strOffset + _sizeofUint32, length); if (asciiOptimization && _isLatin(bytes)) { return String.fromCharCodes(bytes); } @@ -1068,7 +1068,7 @@ class StringReader extends Reader { @pragma('vm:prefer-inline') static bool _isLatin(Uint8List bytes) { - var length = bytes.length; + final length = bytes.length; for (var i = 0; i < length; i++) { if (bytes[i] > 127) { return false; @@ -1104,7 +1104,7 @@ abstract class TableReader extends Reader { @override T read(BufferContext bc, int offset) { - var objectOffset = bc.derefObject(offset); + final objectOffset = bc.derefObject(offset); return createObject(bc, objectOffset); } } From fb4f6fb894804fee2160ab0085e828c7d8300b80 Mon Sep 17 00:00:00 2001 From: Derek Bailey Date: Tue, 2 May 2023 23:50:20 -0700 Subject: [PATCH 169/571] fix possible null dereference for nested_root accessor --- src/idl_gen_cpp.cpp | 44 ++++++++++++++++++---------------- tests/monster_test_generated.h | 12 +++++++--- 2 files changed, 33 insertions(+), 23 deletions(-) diff --git a/src/idl_gen_cpp.cpp b/src/idl_gen_cpp.cpp index 1b33016e2b..ad85847393 100644 --- a/src/idl_gen_cpp.cpp +++ b/src/idl_gen_cpp.cpp @@ -987,7 +987,7 @@ class CppGenerator : public BaseGenerator { std::string UnionVectorVerifySignature(const EnumDef &enum_def) { const std::string name = Name(enum_def); - const std::string & type = opts_.scoped_enums ? name : "uint8_t"; + const std::string &type = opts_.scoped_enums ? name : "uint8_t"; return "bool Verify" + name + "Vector" + "(::flatbuffers::Verifier &verifier, " + "const ::flatbuffers::Vector<::flatbuffers::Offset> " @@ -1807,7 +1807,7 @@ class CppGenerator : public BaseGenerator { field.value.type.element != BASE_TYPE_UTYPE)) { auto type = GenTypeNative(field.value.type, false, field); auto cpp_type = field.attributes.Lookup("cpp_type"); - const std::string & full_type = + const std::string &full_type = (cpp_type ? (IsVector(field.value.type) ? "std::vector<" + @@ -1954,9 +1954,10 @@ class CppGenerator : public BaseGenerator { if (!initializer_list.empty()) { initializer_list += ",\n "; } const auto cpp_type = field->attributes.Lookup("cpp_type"); const auto cpp_ptr_type = field->attributes.Lookup("cpp_ptr_type"); - const std::string & type_name = (cpp_type) ? cpp_type->constant - : GenTypeNative(type, /*invector*/ false, - *field, /*forcopy*/ true); + const std::string &type_name = + (cpp_type) ? cpp_type->constant + : GenTypeNative(type, /*invector*/ false, *field, + /*forcopy*/ true); const bool is_ptr = !(IsStruct(type) && field->native_inline) || (cpp_type && cpp_ptr_type->constant != "naked"); CodeWriter cw; @@ -1976,10 +1977,10 @@ class CppGenerator : public BaseGenerator { if (vec_type.base_type == BASE_TYPE_UTYPE) continue; const auto cpp_type = field->attributes.Lookup("cpp_type"); const auto cpp_ptr_type = field->attributes.Lookup("cpp_ptr_type"); - const std::string & type_name = (cpp_type) - ? cpp_type->constant - : GenTypeNative(vec_type, /*invector*/ true, - *field, /*forcopy*/ true); + const std::string &type_name = + (cpp_type) ? cpp_type->constant + : GenTypeNative(vec_type, /*invector*/ true, *field, + /*forcopy*/ true); const bool is_ptr = IsVectorOfPointers(*field) || (cpp_type && cpp_ptr_type->constant != "naked"); CodeWriter cw(" "); @@ -2733,9 +2734,10 @@ class CppGenerator : public BaseGenerator { if (!nfn.empty()) { code_.SetValue("CPP_NAME", nfn); code_ += " const {{CPP_NAME}} *{{FIELD_NAME}}_nested_root() const {"; + code_ += " const auto _f = {{FIELD_NAME}}();"; code_ += - " return " - "::flatbuffers::GetRoot<{{CPP_NAME}}>({{FIELD_NAME}}()->Data());"; + " return _f ? ::flatbuffers::GetRoot<{{CPP_NAME}}>(_f->Data())"; + code_ += " : nullptr;"; code_ += " }"; } @@ -2745,9 +2747,9 @@ class CppGenerator : public BaseGenerator { " const {"; // Both Data() and size() are const-methods, therefore call order // doesn't matter. - code_ += - " return flexbuffers::GetRoot({{FIELD_NAME}}()->Data(), " - "{{FIELD_NAME}}()->size());"; + code_ += " const auto _f = {{FIELD_NAME}}();"; + code_ += " return _f ? flexbuffers::GetRoot(_f->Data(), _f->size())"; + code_ += " : flexbuffers::Reference();"; code_ += " }"; } @@ -2835,8 +2837,9 @@ class CppGenerator : public BaseGenerator { // Generate code to do force_align for the vector. if (align > 1) { const auto vtype = field.value.type.VectorType(); - const std::string & type = IsStruct(vtype) ? WrapInNameSpace(*vtype.struct_def) - : GenTypeWire(vtype, "", false); + const std::string &type = IsStruct(vtype) + ? WrapInNameSpace(*vtype.struct_def) + : GenTypeWire(vtype, "", false); return "_fbb.ForceVectorAlignment(" + field_size + ", sizeof(" + type + "), " + std::to_string(static_cast(align)) + ");"; } @@ -3357,8 +3360,9 @@ class CppGenerator : public BaseGenerator { } case BASE_TYPE_UTYPE: { value = StripUnionType(value); - const std::string & type = opts_.scoped_enums ? Name(*field.value.type.enum_def) - : "uint8_t"; + const std::string &type = opts_.scoped_enums + ? Name(*field.value.type.enum_def) + : "uint8_t"; auto enum_value = "__va->_" + value + "[i].type"; if (!opts_.scoped_enums) enum_value = "static_cast(" + enum_value + ")"; @@ -3424,7 +3428,7 @@ class CppGenerator : public BaseGenerator { } } else { // _o->field ? CreateT(_fbb, _o->field.get(), _rehasher); - const std::string & type = field.value.type.struct_def->name; + const std::string &type = field.value.type.struct_def->name; code += value + " ? Create" + type; code += "(_fbb, " + value; if (!field.native_inline) code += GenPtrGet(field); @@ -3810,7 +3814,7 @@ class CppGenerator : public BaseGenerator { const auto field_type = GenTypeGet(type, " ", is_array ? "" : "const ", is_array ? "" : " &", true); auto member = Name(*field) + "_"; - const std::string & value = + const std::string &value = is_scalar ? "::flatbuffers::EndianScalar(" + member + ")" : member; code_.SetValue("FIELD_NAME", Name(*field)); diff --git a/tests/monster_test_generated.h b/tests/monster_test_generated.h index eebb0c6f1e..d11788e10c 100644 --- a/tests/monster_test_generated.h +++ b/tests/monster_test_generated.h @@ -1487,7 +1487,9 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { return GetPointer<::flatbuffers::Vector *>(VT_TESTNESTEDFLATBUFFER); } const MyGame::Example::Monster *testnestedflatbuffer_nested_root() const { - return ::flatbuffers::GetRoot(testnestedflatbuffer()->Data()); + const auto _f = testnestedflatbuffer(); + return _f ? ::flatbuffers::GetRoot(_f->Data()) + : nullptr; } const MyGame::Example::Stat *testempty() const { return GetPointer(VT_TESTEMPTY); @@ -1592,7 +1594,9 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { return GetPointer<::flatbuffers::Vector *>(VT_FLEX); } flexbuffers::Reference flex_flexbuffer_root() const { - return flexbuffers::GetRoot(flex()->Data(), flex()->size()); + const auto _f = flex(); + return _f ? flexbuffers::GetRoot(_f->Data(), _f->size()) + : flexbuffers::Reference(); } const ::flatbuffers::Vector *test5() const { return GetPointer *>(VT_TEST5); @@ -1722,7 +1726,9 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { return GetPointer<::flatbuffers::Vector *>(VT_TESTREQUIREDNESTEDFLATBUFFER); } const MyGame::Example::Monster *testrequirednestedflatbuffer_nested_root() const { - return ::flatbuffers::GetRoot(testrequirednestedflatbuffer()->Data()); + const auto _f = testrequirednestedflatbuffer(); + return _f ? ::flatbuffers::GetRoot(_f->Data()) + : nullptr; } const ::flatbuffers::Vector<::flatbuffers::Offset> *scalar_key_sorted_tables() const { return GetPointer> *>(VT_SCALAR_KEY_SORTED_TABLES); From 75143f836b7fae6257b455c2072548d9c34e615d Mon Sep 17 00:00:00 2001 From: Derek Bailey Date: Tue, 2 May 2023 23:50:20 -0700 Subject: [PATCH 170/571] fix possible null dereference for nested_root accessor --- tests/cpp17/generated_cpp17/monster_test_generated.h | 12 +++++++++--- .../ext_only/monster_test_generated.hpp | 12 +++++++++--- .../filesuffix_only/monster_test_suffix.h | 12 +++++++++--- tests/monster_test_suffix/monster_test_suffix.hpp | 12 +++++++++--- 4 files changed, 36 insertions(+), 12 deletions(-) diff --git a/tests/cpp17/generated_cpp17/monster_test_generated.h b/tests/cpp17/generated_cpp17/monster_test_generated.h index 8433c094b4..1d593359fd 100644 --- a/tests/cpp17/generated_cpp17/monster_test_generated.h +++ b/tests/cpp17/generated_cpp17/monster_test_generated.h @@ -1500,7 +1500,9 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { return GetPointer<::flatbuffers::Vector *>(VT_TESTNESTEDFLATBUFFER); } const MyGame::Example::Monster *testnestedflatbuffer_nested_root() const { - return ::flatbuffers::GetRoot(testnestedflatbuffer()->Data()); + const auto _f = testnestedflatbuffer(); + return _f ? ::flatbuffers::GetRoot(_f->Data()) + : nullptr; } const MyGame::Example::Stat *testempty() const { return GetPointer(VT_TESTEMPTY); @@ -1605,7 +1607,9 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { return GetPointer<::flatbuffers::Vector *>(VT_FLEX); } flexbuffers::Reference flex_flexbuffer_root() const { - return flexbuffers::GetRoot(flex()->Data(), flex()->size()); + const auto _f = flex(); + return _f ? flexbuffers::GetRoot(_f->Data(), _f->size()) + : flexbuffers::Reference(); } const ::flatbuffers::Vector *test5() const { return GetPointer *>(VT_TEST5); @@ -1735,7 +1739,9 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { return GetPointer<::flatbuffers::Vector *>(VT_TESTREQUIREDNESTEDFLATBUFFER); } const MyGame::Example::Monster *testrequirednestedflatbuffer_nested_root() const { - return ::flatbuffers::GetRoot(testrequirednestedflatbuffer()->Data()); + const auto _f = testrequirednestedflatbuffer(); + return _f ? ::flatbuffers::GetRoot(_f->Data()) + : nullptr; } const ::flatbuffers::Vector<::flatbuffers::Offset> *scalar_key_sorted_tables() const { return GetPointer> *>(VT_SCALAR_KEY_SORTED_TABLES); diff --git a/tests/monster_test_suffix/ext_only/monster_test_generated.hpp b/tests/monster_test_suffix/ext_only/monster_test_generated.hpp index eebb0c6f1e..d11788e10c 100644 --- a/tests/monster_test_suffix/ext_only/monster_test_generated.hpp +++ b/tests/monster_test_suffix/ext_only/monster_test_generated.hpp @@ -1487,7 +1487,9 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { return GetPointer<::flatbuffers::Vector *>(VT_TESTNESTEDFLATBUFFER); } const MyGame::Example::Monster *testnestedflatbuffer_nested_root() const { - return ::flatbuffers::GetRoot(testnestedflatbuffer()->Data()); + const auto _f = testnestedflatbuffer(); + return _f ? ::flatbuffers::GetRoot(_f->Data()) + : nullptr; } const MyGame::Example::Stat *testempty() const { return GetPointer(VT_TESTEMPTY); @@ -1592,7 +1594,9 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { return GetPointer<::flatbuffers::Vector *>(VT_FLEX); } flexbuffers::Reference flex_flexbuffer_root() const { - return flexbuffers::GetRoot(flex()->Data(), flex()->size()); + const auto _f = flex(); + return _f ? flexbuffers::GetRoot(_f->Data(), _f->size()) + : flexbuffers::Reference(); } const ::flatbuffers::Vector *test5() const { return GetPointer *>(VT_TEST5); @@ -1722,7 +1726,9 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { return GetPointer<::flatbuffers::Vector *>(VT_TESTREQUIREDNESTEDFLATBUFFER); } const MyGame::Example::Monster *testrequirednestedflatbuffer_nested_root() const { - return ::flatbuffers::GetRoot(testrequirednestedflatbuffer()->Data()); + const auto _f = testrequirednestedflatbuffer(); + return _f ? ::flatbuffers::GetRoot(_f->Data()) + : nullptr; } const ::flatbuffers::Vector<::flatbuffers::Offset> *scalar_key_sorted_tables() const { return GetPointer> *>(VT_SCALAR_KEY_SORTED_TABLES); diff --git a/tests/monster_test_suffix/filesuffix_only/monster_test_suffix.h b/tests/monster_test_suffix/filesuffix_only/monster_test_suffix.h index eebb0c6f1e..d11788e10c 100644 --- a/tests/monster_test_suffix/filesuffix_only/monster_test_suffix.h +++ b/tests/monster_test_suffix/filesuffix_only/monster_test_suffix.h @@ -1487,7 +1487,9 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { return GetPointer<::flatbuffers::Vector *>(VT_TESTNESTEDFLATBUFFER); } const MyGame::Example::Monster *testnestedflatbuffer_nested_root() const { - return ::flatbuffers::GetRoot(testnestedflatbuffer()->Data()); + const auto _f = testnestedflatbuffer(); + return _f ? ::flatbuffers::GetRoot(_f->Data()) + : nullptr; } const MyGame::Example::Stat *testempty() const { return GetPointer(VT_TESTEMPTY); @@ -1592,7 +1594,9 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { return GetPointer<::flatbuffers::Vector *>(VT_FLEX); } flexbuffers::Reference flex_flexbuffer_root() const { - return flexbuffers::GetRoot(flex()->Data(), flex()->size()); + const auto _f = flex(); + return _f ? flexbuffers::GetRoot(_f->Data(), _f->size()) + : flexbuffers::Reference(); } const ::flatbuffers::Vector *test5() const { return GetPointer *>(VT_TEST5); @@ -1722,7 +1726,9 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { return GetPointer<::flatbuffers::Vector *>(VT_TESTREQUIREDNESTEDFLATBUFFER); } const MyGame::Example::Monster *testrequirednestedflatbuffer_nested_root() const { - return ::flatbuffers::GetRoot(testrequirednestedflatbuffer()->Data()); + const auto _f = testrequirednestedflatbuffer(); + return _f ? ::flatbuffers::GetRoot(_f->Data()) + : nullptr; } const ::flatbuffers::Vector<::flatbuffers::Offset> *scalar_key_sorted_tables() const { return GetPointer> *>(VT_SCALAR_KEY_SORTED_TABLES); diff --git a/tests/monster_test_suffix/monster_test_suffix.hpp b/tests/monster_test_suffix/monster_test_suffix.hpp index eebb0c6f1e..d11788e10c 100644 --- a/tests/monster_test_suffix/monster_test_suffix.hpp +++ b/tests/monster_test_suffix/monster_test_suffix.hpp @@ -1487,7 +1487,9 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { return GetPointer<::flatbuffers::Vector *>(VT_TESTNESTEDFLATBUFFER); } const MyGame::Example::Monster *testnestedflatbuffer_nested_root() const { - return ::flatbuffers::GetRoot(testnestedflatbuffer()->Data()); + const auto _f = testnestedflatbuffer(); + return _f ? ::flatbuffers::GetRoot(_f->Data()) + : nullptr; } const MyGame::Example::Stat *testempty() const { return GetPointer(VT_TESTEMPTY); @@ -1592,7 +1594,9 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { return GetPointer<::flatbuffers::Vector *>(VT_FLEX); } flexbuffers::Reference flex_flexbuffer_root() const { - return flexbuffers::GetRoot(flex()->Data(), flex()->size()); + const auto _f = flex(); + return _f ? flexbuffers::GetRoot(_f->Data(), _f->size()) + : flexbuffers::Reference(); } const ::flatbuffers::Vector *test5() const { return GetPointer *>(VT_TEST5); @@ -1722,7 +1726,9 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { return GetPointer<::flatbuffers::Vector *>(VT_TESTREQUIREDNESTEDFLATBUFFER); } const MyGame::Example::Monster *testrequirednestedflatbuffer_nested_root() const { - return ::flatbuffers::GetRoot(testrequirednestedflatbuffer()->Data()); + const auto _f = testrequirednestedflatbuffer(); + return _f ? ::flatbuffers::GetRoot(_f->Data()) + : nullptr; } const ::flatbuffers::Vector<::flatbuffers::Offset> *scalar_key_sorted_tables() const { return GetPointer> *>(VT_SCALAR_KEY_SORTED_TABLES); From c1e7aee48950e952a69b886f83d0196eec10cc07 Mon Sep 17 00:00:00 2001 From: Philipp Schrader Date: Wed, 3 May 2023 11:48:15 -0700 Subject: [PATCH 171/571] Migrate from rules_nodejs to rules_js/rules_ts (take 2) (#7928) * Migrate from rules_nodejs to rules_js/rules_ts (take 2) This is the second version of patch #7923. The first version got reverted because bazel query was failing: $ bazel --nosystem_rc --nohome_rc query tests(set('//...')) except tests(attr("tags", "manual", set('//...'))) ERROR: Traceback (most recent call last): File "/workdir/tests/ts/bazel_repository_test_dir/BUILD", line 6, column 22, in npm_link_all_packages(name = "node_modules") File "/var/lib/buildkite-agent/.cache/bazel/_bazel_buildkite-agent/ec321eb2cc2d0f8f91b676b6d4c66c29/external/npm/defs.bzl", line 188, column 13, in npm_link_all_packages fail(msg) Error in fail: The npm_link_all_packages() macro loaded from @npm//:defs.bzl and called in bazel package 'tests/ts/bazel_repository_test_dir' may only be called in bazel packages that correspond to the pnpm root package '' and pnpm workspace projects '' This was happening because the `.bazelrc` file only added `--deleted_packages` to the `build` command. We also need it for the `query` command. This second version of the patch fixes that. Original commit message: This patch migrates the current use of rules_nodejs to the new rules_js. rules_js is the intended replacement of rules_nodejs as per this note: https://github.com/aspect-build/rules_js#relationship-to-rules_nodejs > rules_js is an alternative to the build_bazel_rules_nodejs Bazel module > and accompanying npm packages hosted in > https://github.com/bazelbuild/rules_nodejs, which is now > unmaintained. All users are recommended to use rules_js instead. There are a few notable changes in this patch: 1. The `flatbuffer_ts_library` macro no longer accepts a `package_name` attribute. This is because rules_js appears to manage the import naming of dependencies via top-level `npm_link_package` targets. Users will have to migrate. 2. I added a few more arguments to `flatbuffer_library_public()`. These helped with exposing esbuild to `ts/compile_flat_file.sh`. 3. I pinned the version of `typescript` in `package.json` so that rules_ts can download the exact same version. rules_ts doesn't know what to do if the version isn't exact. 4. Since rules_js uses the pnpm locking mechanism, we now have a `pnpm-lock.yaml` file instead of a yarn lock file. 4. I added bazel targets for a few of the existing tests in `tests/ts`. They can be run with `bazel test //test/ts:all`. Since there is no flexbuffers bazel target, I did not add a bazel target for the corresponding test. 5. I added a separate workspace in `tests/ts/bazel_repository_test_dir/` to validate that the flatbuffers code can be imported as an external repository. You can run the test with `bazel test //test/ts:bazel_repository_test`. For this to work, I needed to expose a non-trivial chunk of the flatbuffers code to the test. I achieved this through some recursive `distribution` filegroups. This is inspired by rules_python's workspace tests. I did not do anything special to validate that the `gen_reflections` parameter works the same. This patch doesn't change anything about the TypeScript generation. As a side note: I am not an expert with rules_js. This patch is my attempt based on my limited understanding of the rule set. Fixes #7817 * Fix the query --------- Co-authored-by: Derek Bailey --- .bazelignore | 1 + .bazelrc | 4 + .npmrc | 1 + BUILD.bazel | 26 + WORKSPACE | 84 +- build_defs.bzl | 17 +- grpc/src/compiler/BUILD.bazel | 10 + package.json | 3 +- pnpm-lock.yaml | 1184 +++++++++++++++++ reflection/BUILD.bazel | 9 + reflection/ts/BUILD.bazel | 1 - src/BUILD.bazel | 11 + tests/BUILD.bazel | 12 + tests/ts/BUILD.bazel | 66 + tests/ts/bazel_repository_test.sh | 29 + .../ts/bazel_repository_test_dir/.bazelignore | 1 + tests/ts/bazel_repository_test_dir/.bazelrc | 1 + tests/ts/bazel_repository_test_dir/.gitignore | 1 + tests/ts/bazel_repository_test_dir/.npmrc | 1 + tests/ts/bazel_repository_test_dir/BUILD | 32 + tests/ts/bazel_repository_test_dir/WORKSPACE | 71 + .../bazel_repository_test_dir/import_test.js | 28 + tests/ts/bazel_repository_test_dir/one.fbs | 7 + .../ts/bazel_repository_test_dir/package.json | 8 + .../bazel_repository_test_dir/pnpm-lock.yaml | 12 + tests/ts/bazel_repository_test_dir/two.fbs | 9 + tests/ts/package.json | 1 - tests/ts/test_dir/BUILD.bazel | 12 + tests/ts/test_dir/import_test.js | 31 + tests/ts/test_dir/package.json | 6 + tests/ts/test_dir/typescript_include.fbs | 7 + ts/BUILD.bazel | 37 +- ts/compile_flat_file.sh | 7 +- typescript.bzl | 10 +- yarn.lock | 1174 ---------------- 35 files changed, 1700 insertions(+), 1214 deletions(-) create mode 100644 .bazelignore create mode 100644 .bazelrc create mode 100644 .npmrc create mode 100644 pnpm-lock.yaml create mode 100755 tests/ts/bazel_repository_test.sh create mode 100644 tests/ts/bazel_repository_test_dir/.bazelignore create mode 100644 tests/ts/bazel_repository_test_dir/.bazelrc create mode 100644 tests/ts/bazel_repository_test_dir/.gitignore create mode 120000 tests/ts/bazel_repository_test_dir/.npmrc create mode 100644 tests/ts/bazel_repository_test_dir/BUILD create mode 100644 tests/ts/bazel_repository_test_dir/WORKSPACE create mode 100644 tests/ts/bazel_repository_test_dir/import_test.js create mode 100644 tests/ts/bazel_repository_test_dir/one.fbs create mode 100644 tests/ts/bazel_repository_test_dir/package.json create mode 100644 tests/ts/bazel_repository_test_dir/pnpm-lock.yaml create mode 100644 tests/ts/bazel_repository_test_dir/two.fbs create mode 100644 tests/ts/test_dir/import_test.js create mode 100644 tests/ts/test_dir/package.json delete mode 100644 yarn.lock diff --git a/.bazelignore b/.bazelignore new file mode 100644 index 0000000000..3c3629e647 --- /dev/null +++ b/.bazelignore @@ -0,0 +1 @@ +node_modules diff --git a/.bazelrc b/.bazelrc new file mode 100644 index 0000000000..f9f47a7423 --- /dev/null +++ b/.bazelrc @@ -0,0 +1,4 @@ +# We cannot use "common" here because the "version" command doesn't support +# --deleted_packages. We need to specify it for both build and query instead. +build --deleted_packages=tests/ts/bazel_repository_test_dir +query --deleted_packages=tests/ts/bazel_repository_test_dir diff --git a/.npmrc b/.npmrc new file mode 100644 index 0000000000..84ff0791f0 --- /dev/null +++ b/.npmrc @@ -0,0 +1 @@ +hoist=false diff --git a/BUILD.bazel b/BUILD.bazel index 0ff3b234ef..b4f015a0e2 100644 --- a/BUILD.bazel +++ b/BUILD.bazel @@ -1,3 +1,5 @@ +load("@aspect_rules_js//npm:defs.bzl", "npm_link_package") +load("@npm//:defs.bzl", "npm_link_all_packages") load("@rules_cc//cc:defs.bzl", "cc_binary", "cc_library") licenses(["notice"]) @@ -6,6 +8,13 @@ package( default_visibility = ["//visibility:public"], ) +npm_link_all_packages(name = "node_modules") + +npm_link_package( + name = "node_modules/flatbuffers", + src = "//ts:flatbuffers", +) + exports_files([ "LICENSE", "tsconfig.json", @@ -25,6 +34,23 @@ config_setting( ], ) +filegroup( + name = "distribution", + srcs = [ + "BUILD.bazel", + "WORKSPACE", + "build_defs.bzl", + "typescript.bzl", + "//grpc/src/compiler:distribution", + "//reflection:distribution", + "//src:distribution", + "//ts:distribution", + ] + glob([ + "include/flatbuffers/*.h", + ]), + visibility = ["//visibility:public"], +) + # Public flatc library to compile flatbuffer files at runtime. cc_library( name = "flatbuffers", diff --git a/WORKSPACE b/WORKSPACE index e8474e0b74..9f70edd44c 100644 --- a/WORKSPACE +++ b/WORKSPACE @@ -1,6 +1,6 @@ workspace(name = "com_github_google_flatbuffers") -load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") +load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive", "http_file") http_archive( name = "platforms", @@ -76,30 +76,80 @@ load("@com_github_grpc_grpc//bazel:grpc_extra_deps.bzl", "grpc_extra_deps") grpc_extra_deps() # rules_go from https://github.com/bazelbuild/rules_go/releases/tag/v0.34.0 + +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 = "build_bazel_rules_nodejs", - sha256 = "965ee2492a2b087cf9e0f2ca472aeaf1be2eb650e0cfbddf514b9a7d3ea4b02a", - urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/5.2.0/rules_nodejs-5.2.0.tar.gz"], + 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("@build_bazel_rules_nodejs//:repositories.bzl", "build_bazel_rules_nodejs_dependencies") +load("@aspect_rules_ts//ts:repositories.bzl", "rules_ts_dependencies") -build_bazel_rules_nodejs_dependencies() +rules_ts_dependencies( + # Since rules_ts doesn't always have the newest integrity hashes, we + # compute it manually here. + # $ curl --silent https://registry.npmjs.org/typescript/5.0.4 | jq ._integrity + ts_integrity = "sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==", + ts_version_from = "//:package.json", +) -load("@build_bazel_rules_nodejs//:index.bzl", "node_repositories", "yarn_install") +load("@rules_nodejs//nodejs:repositories.bzl", "DEFAULT_NODE_VERSION", "nodejs_register_toolchains") -node_repositories() +nodejs_register_toolchains( + name = "nodejs", + node_version = DEFAULT_NODE_VERSION, +) -yarn_install( +npm_translate_lock( name = "npm", - exports_directories_only = False, - # Unfreeze to add/remove packages. - frozen_lockfile = False, - package_json = "//:package.json", - symlink_node_modules = False, - yarn_lock = "//:yarn.lock", + npmrc = "//:.npmrc", + pnpm_lock = "//:pnpm-lock.yaml", + # Set this to True when the lock file needs to be updated, commit the + # changes, then set to False again. + update_pnpm_lock = False, + verify_node_modules_ignored = "//:.bazelignore", ) -load("@build_bazel_rules_nodejs//toolchains/esbuild:esbuild_repositories.bzl", "esbuild_repositories") +load("@npm//:repositories.bzl", "npm_repositories") -esbuild_repositories(npm_repository = "npm") +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, +) + +http_file( + name = "bazel_linux_x86_64", + downloaded_file_path = "bazel", + sha256 = "e89747d63443e225b140d7d37ded952dacea73aaed896bca01ccd745827c6289", + urls = [ + "https://github.com/bazelbuild/bazel/releases/download/6.1.2/bazel-6.1.2-linux-x86_64", + ], +) diff --git a/build_defs.bzl b/build_defs.bzl index 66b22d2ea6..5437d7ae07 100644 --- a/build_defs.bzl +++ b/build_defs.bzl @@ -48,7 +48,10 @@ def flatbuffer_library_public( restricted_to = None, target_compatible_with = None, flatc_path = "@com_github_google_flatbuffers//:flatc", - output_to_bindir = False): + output_to_bindir = False, + tools = None, + extra_env = None, + **kwargs): """Generates code files for reading/writing the given flatbuffers in the requested language using the public compiler. Args: @@ -73,6 +76,11 @@ def flatbuffer_library_public( to use. flatc_path: Bazel target corresponding to the flatc compiler to use. output_to_bindir: Passed to genrule for output to bin directory. + tools: Optional, passed to genrule for list of tools to make available + during the action. + extra_env: Optional, must be a string of "VAR1=VAL1 VAR2=VAL2". These get + set as environment variables that "flatc_path" sees. + **kwargs: Passed to the underlying genrule. This rule creates a filegroup(name) with all generated source files, and @@ -83,6 +91,8 @@ def flatbuffer_library_public( include_paths = default_include_paths(flatc_path) include_paths_cmd = ["-I %s" % (s) for s in include_paths] + extra_env = extra_env or "" + # '$(@D)' when given a single source target will give the appropriate # directory. Appending 'out_prefix' is only necessary when given a build # target with multiple sources. @@ -92,7 +102,7 @@ def flatbuffer_library_public( genrule_cmd = " ".join([ "SRCS=($(SRCS));", "for f in $${SRCS[@]:0:%s}; do" % len(srcs), - "OUTPUT_FILE=\"$(OUTS)\" $(location %s)" % (flatc_path), + "OUTPUT_FILE=\"$(OUTS)\" %s $(location %s)" % (extra_env, flatc_path), " ".join(include_paths_cmd), " ".join(flatc_args), language_flag, @@ -105,12 +115,13 @@ def flatbuffer_library_public( srcs = srcs + includes, outs = outs, output_to_bindir = output_to_bindir, - tools = [flatc_path], + tools = (tools or []) + [flatc_path], cmd = genrule_cmd, compatible_with = compatible_with, target_compatible_with = target_compatible_with, restricted_to = restricted_to, message = "Generating flatbuffer files for %s:" % (name), + **kwargs ) if reflection_name: reflection_genrule_cmd = " ".join([ diff --git a/grpc/src/compiler/BUILD.bazel b/grpc/src/compiler/BUILD.bazel index 544885e0f1..0efa9560c2 100644 --- a/grpc/src/compiler/BUILD.bazel +++ b/grpc/src/compiler/BUILD.bazel @@ -4,6 +4,16 @@ package( default_visibility = ["//visibility:public"], ) +filegroup( + name = "distribution", + srcs = [ + "BUILD.bazel", + ] + glob([ + "*.cc", + "*.h", + ]), +) + filegroup( name = "common_headers", srcs = [ diff --git a/package.json b/package.json index 505648fc86..5a2aecaf77 100644 --- a/package.json +++ b/package.json @@ -36,12 +36,11 @@ "homepage": "https://google.github.io/flatbuffers/", "dependencies": {}, "devDependencies": { - "@bazel/typescript": "5.2.0", "@types/node": "18.15.11", "@typescript-eslint/eslint-plugin": "^5.57.0", "@typescript-eslint/parser": "^5.57.0", "esbuild": "^0.17.14", "eslint": "^8.37.0", - "typescript": "^5.0.3" + "typescript": "5.0.4" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml new file mode 100644 index 0000000000..45c645b440 --- /dev/null +++ b/pnpm-lock.yaml @@ -0,0 +1,1184 @@ +lockfileVersion: '6.0' + +devDependencies: + '@types/node': + specifier: 18.15.11 + version: 18.15.11 + '@typescript-eslint/eslint-plugin': + specifier: ^5.57.0 + version: 5.57.0(@typescript-eslint/parser@5.57.0)(eslint@8.37.0)(typescript@5.0.3) + '@typescript-eslint/parser': + specifier: ^5.57.0 + version: 5.57.0(eslint@8.37.0)(typescript@5.0.3) + esbuild: + specifier: ^0.17.14 + version: 0.17.14 + eslint: + specifier: ^8.37.0 + version: 8.37.0 + typescript: + specifier: 5.0.3 + version: 5.0.3 + +packages: + + /@esbuild/android-arm64@0.17.14: + resolution: {integrity: sha512-eLOpPO1RvtsP71afiFTvS7tVFShJBCT0txiv/xjFBo5a7R7Gjw7X0IgIaFoLKhqXYAXhahoXm7qAmRXhY4guJg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-arm@0.17.14: + resolution: {integrity: sha512-0CnlwnjDU8cks0yJLXfkaU/uoLyRf9VZJs4p1PskBr2AlAHeEsFEwJEo0of/Z3g+ilw5mpyDwThlxzNEIxOE4g==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-x64@0.17.14: + resolution: {integrity: sha512-nrfQYWBfLGfSGLvRVlt6xi63B5IbfHm3tZCdu/82zuFPQ7zez4XjmRtF/wIRYbJQ/DsZrxJdEvYFE67avYXyng==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-arm64@0.17.14: + resolution: {integrity: sha512-eoSjEuDsU1ROwgBH/c+fZzuSyJUVXQTOIN9xuLs9dE/9HbV/A5IqdXHU1p2OfIMwBwOYJ9SFVGGldxeRCUJFyw==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-x64@0.17.14: + resolution: {integrity: sha512-zN0U8RWfrDttdFNkHqFYZtOH8hdi22z0pFm0aIJPsNC4QQZv7je8DWCX5iA4Zx6tRhS0CCc0XC2m7wKsbWEo5g==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@esbuild/freebsd-arm64@0.17.14: + resolution: {integrity: sha512-z0VcD4ibeZWVQCW1O7szaLxGsx54gcCnajEJMdYoYjLiq4g1jrP2lMq6pk71dbS5+7op/L2Aod+erw+EUr28/A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/freebsd-x64@0.17.14: + resolution: {integrity: sha512-hd9mPcxfTgJlolrPlcXkQk9BMwNBvNBsVaUe5eNUqXut6weDQH8whcNaKNF2RO8NbpT6GY8rHOK2A9y++s+ehw==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-arm64@0.17.14: + resolution: {integrity: sha512-FhAMNYOq3Iblcj9i+K0l1Fp/MHt+zBeRu/Qkf0LtrcFu3T45jcwB6A1iMsemQ42vR3GBhjNZJZTaCe3VFPbn9g==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-arm@0.17.14: + resolution: {integrity: sha512-BNTl+wSJ1omsH8s3TkQmIIIQHwvwJrU9u1ggb9XU2KTVM4TmthRIVyxSp2qxROJHhZuW/r8fht46/QE8hU8Qvg==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-ia32@0.17.14: + resolution: {integrity: sha512-91OK/lQ5y2v7AsmnFT+0EyxdPTNhov3y2CWMdizyMfxSxRqHazXdzgBKtlmkU2KYIc+9ZK3Vwp2KyXogEATYxQ==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-loong64@0.17.14: + resolution: {integrity: sha512-vp15H+5NR6hubNgMluqqKza85HcGJgq7t6rMH7O3Y6ApiOWPkvW2AJfNojUQimfTp6OUrACUXfR4hmpcENXoMQ==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-mips64el@0.17.14: + resolution: {integrity: sha512-90TOdFV7N+fgi6c2+GO9ochEkmm9kBAKnuD5e08GQMgMINOdOFHuYLPQ91RYVrnWwQ5683sJKuLi9l4SsbJ7Hg==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-ppc64@0.17.14: + resolution: {integrity: sha512-NnBGeoqKkTugpBOBZZoktQQ1Yqb7aHKmHxsw43NddPB2YWLAlpb7THZIzsRsTr0Xw3nqiPxbA1H31ZMOG+VVPQ==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-riscv64@0.17.14: + resolution: {integrity: sha512-0qdlKScLXA8MGVy21JUKvMzCYWovctuP8KKqhtE5A6IVPq4onxXhSuhwDd2g5sRCzNDlDjitc5sX31BzDoL5Fw==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-s390x@0.17.14: + resolution: {integrity: sha512-Hdm2Jo1yaaOro4v3+6/zJk6ygCqIZuSDJHdHaf8nVH/tfOuoEX5Riv03Ka15LmQBYJObUTNS1UdyoMk0WUn9Ww==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-x64@0.17.14: + resolution: {integrity: sha512-8KHF17OstlK4DuzeF/KmSgzrTWQrkWj5boluiiq7kvJCiQVzUrmSkaBvcLB2UgHpKENO2i6BthPkmUhNDaJsVw==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/netbsd-x64@0.17.14: + resolution: {integrity: sha512-nVwpqvb3yyXztxIT2+VsxJhB5GCgzPdk1n0HHSnchRAcxqKO6ghXwHhJnr0j/B+5FSyEqSxF4q03rbA2fKXtUQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/openbsd-x64@0.17.14: + resolution: {integrity: sha512-1RZ7uQQ9zcy/GSAJL1xPdN7NDdOOtNEGiJalg/MOzeakZeTrgH/DoCkbq7TaPDiPhWqnDF+4bnydxRqQD7il6g==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/sunos-x64@0.17.14: + resolution: {integrity: sha512-nqMjDsFwv7vp7msrwWRysnM38Sd44PKmW8EzV01YzDBTcTWUpczQg6mGao9VLicXSgW/iookNK6AxeogNVNDZA==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-arm64@0.17.14: + resolution: {integrity: sha512-xrD0mccTKRBBIotrITV7WVQAwNJ5+1va6L0H9zN92v2yEdjfAN7864cUaZwJS7JPEs53bDTzKFbfqVlG2HhyKQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-ia32@0.17.14: + resolution: {integrity: sha512-nXpkz9bbJrLLyUTYtRotSS3t5b+FOuljg8LgLdINWFs3FfqZMtbnBCZFUmBzQPyxqU87F8Av+3Nco/M3hEcu1w==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-x64@0.17.14: + resolution: {integrity: sha512-gPQmsi2DKTaEgG14hc3CHXHp62k8g6qr0Pas+I4lUxRMugGSATh/Bi8Dgusoz9IQ0IfdrvLpco6kujEIBoaogA==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@eslint-community/eslint-utils@4.4.0(eslint@8.37.0): + resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + dependencies: + eslint: 8.37.0 + eslint-visitor-keys: 3.4.0 + dev: true + + /@eslint-community/regexpp@4.5.0: + resolution: {integrity: sha512-vITaYzIcNmjn5tF5uxcZ/ft7/RXGrMUIS9HalWckEOF6ESiwXKoMzAQf2UW0aVd6rnOeExTJVd5hmWXucBKGXQ==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + dev: true + + /@eslint/eslintrc@2.0.2: + resolution: {integrity: sha512-3W4f5tDUra+pA+FzgugqL2pRimUTDJWKr7BINqOpkZrC0uYI0NIc0/JFgBROCU07HR6GieA5m3/rsPIhDmCXTQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + ajv: 6.12.6 + debug: 4.3.4 + espree: 9.5.1 + globals: 13.20.0 + ignore: 5.2.4 + import-fresh: 3.3.0 + js-yaml: 4.1.0 + minimatch: 3.1.2 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + dev: true + + /@eslint/js@8.37.0: + resolution: {integrity: sha512-x5vzdtOOGgFVDCUs81QRB2+liax8rFg3+7hqM+QhBG0/G3F1ZsoYl97UrqgHgQ9KKT7G6c4V+aTUCgu/n22v1A==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: true + + /@humanwhocodes/config-array@0.11.8: + resolution: {integrity: sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==} + engines: {node: '>=10.10.0'} + dependencies: + '@humanwhocodes/object-schema': 1.2.1 + debug: 4.3.4 + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@humanwhocodes/module-importer@1.0.1: + resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} + engines: {node: '>=12.22'} + dev: true + + /@humanwhocodes/object-schema@1.2.1: + resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==} + dev: true + + /@nodelib/fs.scandir@2.1.5: + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 + dev: true + + /@nodelib/fs.stat@2.0.5: + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} + dev: true + + /@nodelib/fs.walk@1.2.8: + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.15.0 + dev: true + + /@types/json-schema@7.0.11: + resolution: {integrity: sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==} + dev: true + + /@types/node@18.15.11: + resolution: {integrity: sha512-E5Kwq2n4SbMzQOn6wnmBjuK9ouqlURrcZDVfbo9ftDDTFt3nk7ZKK4GMOzoYgnpQJKcxwQw+lGaBvvlMo0qN/Q==} + dev: true + + /@types/semver@7.3.13: + resolution: {integrity: sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==} + dev: true + + /@typescript-eslint/eslint-plugin@5.57.0(@typescript-eslint/parser@5.57.0)(eslint@8.37.0)(typescript@5.0.3): + resolution: {integrity: sha512-itag0qpN6q2UMM6Xgk6xoHa0D0/P+M17THnr4SVgqn9Rgam5k/He33MA7/D7QoJcdMxHFyX7U9imaBonAX/6qA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + '@typescript-eslint/parser': ^5.0.0 + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@eslint-community/regexpp': 4.5.0 + '@typescript-eslint/parser': 5.57.0(eslint@8.37.0)(typescript@5.0.3) + '@typescript-eslint/scope-manager': 5.57.0 + '@typescript-eslint/type-utils': 5.57.0(eslint@8.37.0)(typescript@5.0.3) + '@typescript-eslint/utils': 5.57.0(eslint@8.37.0)(typescript@5.0.3) + debug: 4.3.4 + eslint: 8.37.0 + grapheme-splitter: 1.0.4 + ignore: 5.2.4 + natural-compare-lite: 1.4.0 + semver: 7.3.8 + tsutils: 3.21.0(typescript@5.0.3) + typescript: 5.0.3 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/parser@5.57.0(eslint@8.37.0)(typescript@5.0.3): + resolution: {integrity: sha512-orrduvpWYkgLCyAdNtR1QIWovcNZlEm6yL8nwH/eTxWLd8gsP+25pdLHYzL2QdkqrieaDwLpytHqycncv0woUQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/scope-manager': 5.57.0 + '@typescript-eslint/types': 5.57.0 + '@typescript-eslint/typescript-estree': 5.57.0(typescript@5.0.3) + debug: 4.3.4 + eslint: 8.37.0 + typescript: 5.0.3 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/scope-manager@5.57.0: + resolution: {integrity: sha512-NANBNOQvllPlizl9LatX8+MHi7bx7WGIWYjPHDmQe5Si/0YEYfxSljJpoTyTWFTgRy3X8gLYSE4xQ2U+aCozSw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + '@typescript-eslint/types': 5.57.0 + '@typescript-eslint/visitor-keys': 5.57.0 + dev: true + + /@typescript-eslint/type-utils@5.57.0(eslint@8.37.0)(typescript@5.0.3): + resolution: {integrity: sha512-kxXoq9zOTbvqzLbdNKy1yFrxLC6GDJFE2Yuo3KqSwTmDOFjUGeWSakgoXT864WcK5/NAJkkONCiKb1ddsqhLXQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: '*' + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/typescript-estree': 5.57.0(typescript@5.0.3) + '@typescript-eslint/utils': 5.57.0(eslint@8.37.0)(typescript@5.0.3) + debug: 4.3.4 + eslint: 8.37.0 + tsutils: 3.21.0(typescript@5.0.3) + typescript: 5.0.3 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/types@5.57.0: + resolution: {integrity: sha512-mxsod+aZRSyLT+jiqHw1KK6xrANm19/+VFALVFP5qa/aiJnlP38qpyaTd0fEKhWvQk6YeNZ5LGwI1pDpBRBhtQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: true + + /@typescript-eslint/typescript-estree@5.57.0(typescript@5.0.3): + resolution: {integrity: sha512-LTzQ23TV82KpO8HPnWuxM2V7ieXW8O142I7hQTxWIHDcCEIjtkat6H96PFkYBQqGFLW/G/eVVOB9Z8rcvdY/Vw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/types': 5.57.0 + '@typescript-eslint/visitor-keys': 5.57.0 + debug: 4.3.4 + globby: 11.1.0 + is-glob: 4.0.3 + semver: 7.3.8 + tsutils: 3.21.0(typescript@5.0.3) + typescript: 5.0.3 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/utils@5.57.0(eslint@8.37.0)(typescript@5.0.3): + resolution: {integrity: sha512-ps/4WohXV7C+LTSgAL5CApxvxbMkl9B9AUZRtnEFonpIxZDIT7wC1xfvuJONMidrkB9scs4zhtRyIwHh4+18kw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.37.0) + '@types/json-schema': 7.0.11 + '@types/semver': 7.3.13 + '@typescript-eslint/scope-manager': 5.57.0 + '@typescript-eslint/types': 5.57.0 + '@typescript-eslint/typescript-estree': 5.57.0(typescript@5.0.3) + eslint: 8.37.0 + eslint-scope: 5.1.1 + semver: 7.3.8 + transitivePeerDependencies: + - supports-color + - typescript + dev: true + + /@typescript-eslint/visitor-keys@5.57.0: + resolution: {integrity: sha512-ery2g3k0hv5BLiKpPuwYt9KBkAp2ugT6VvyShXdLOkax895EC55sP0Tx5L0fZaQueiK3fBLvHVvEl3jFS5ia+g==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + '@typescript-eslint/types': 5.57.0 + eslint-visitor-keys: 3.4.0 + dev: true + + /acorn-jsx@5.3.2(acorn@8.8.2): + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + acorn: 8.8.2 + dev: true + + /acorn@8.8.2: + resolution: {integrity: sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==} + engines: {node: '>=0.4.0'} + hasBin: true + dev: true + + /ajv@6.12.6: + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + dependencies: + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 + dev: true + + /ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + dev: true + + /ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + dependencies: + color-convert: 2.0.1 + dev: true + + /argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + dev: true + + /array-union@2.1.0: + resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} + engines: {node: '>=8'} + dev: true + + /balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + dev: true + + /brace-expansion@1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 + dev: true + + /braces@3.0.2: + resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} + engines: {node: '>=8'} + dependencies: + fill-range: 7.0.1 + dev: true + + /callsites@3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} + dev: true + + /chalk@4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + dev: true + + /color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + dependencies: + color-name: 1.1.4 + dev: true + + /color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + dev: true + + /concat-map@0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + dev: true + + /cross-spawn@7.0.3: + resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} + engines: {node: '>= 8'} + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + dev: true + + /debug@4.3.4: + resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.2 + dev: true + + /deep-is@0.1.4: + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + dev: true + + /dir-glob@3.0.1: + resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} + engines: {node: '>=8'} + dependencies: + path-type: 4.0.0 + dev: true + + /doctrine@3.0.0: + resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} + engines: {node: '>=6.0.0'} + dependencies: + esutils: 2.0.3 + dev: true + + /esbuild@0.17.14: + resolution: {integrity: sha512-vOO5XhmVj/1XQR9NQ1UPq6qvMYL7QFJU57J5fKBKBKxp17uDt5PgxFDb4A2nEiXhr1qQs4x0F5+66hVVw4ruNw==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + optionalDependencies: + '@esbuild/android-arm': 0.17.14 + '@esbuild/android-arm64': 0.17.14 + '@esbuild/android-x64': 0.17.14 + '@esbuild/darwin-arm64': 0.17.14 + '@esbuild/darwin-x64': 0.17.14 + '@esbuild/freebsd-arm64': 0.17.14 + '@esbuild/freebsd-x64': 0.17.14 + '@esbuild/linux-arm': 0.17.14 + '@esbuild/linux-arm64': 0.17.14 + '@esbuild/linux-ia32': 0.17.14 + '@esbuild/linux-loong64': 0.17.14 + '@esbuild/linux-mips64el': 0.17.14 + '@esbuild/linux-ppc64': 0.17.14 + '@esbuild/linux-riscv64': 0.17.14 + '@esbuild/linux-s390x': 0.17.14 + '@esbuild/linux-x64': 0.17.14 + '@esbuild/netbsd-x64': 0.17.14 + '@esbuild/openbsd-x64': 0.17.14 + '@esbuild/sunos-x64': 0.17.14 + '@esbuild/win32-arm64': 0.17.14 + '@esbuild/win32-ia32': 0.17.14 + '@esbuild/win32-x64': 0.17.14 + dev: true + + /escape-string-regexp@4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} + dev: true + + /eslint-scope@5.1.1: + resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} + engines: {node: '>=8.0.0'} + dependencies: + esrecurse: 4.3.0 + estraverse: 4.3.0 + dev: true + + /eslint-scope@7.1.1: + resolution: {integrity: sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + esrecurse: 4.3.0 + estraverse: 5.3.0 + dev: true + + /eslint-visitor-keys@3.4.0: + resolution: {integrity: sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: true + + /eslint@8.37.0: + resolution: {integrity: sha512-NU3Ps9nI05GUoVMxcZx1J8CNR6xOvUT4jAUMH5+z8lpp3aEdPVCImKw6PWG4PY+Vfkpr+jvMpxs/qoE7wq0sPw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + hasBin: true + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.37.0) + '@eslint-community/regexpp': 4.5.0 + '@eslint/eslintrc': 2.0.2 + '@eslint/js': 8.37.0 + '@humanwhocodes/config-array': 0.11.8 + '@humanwhocodes/module-importer': 1.0.1 + '@nodelib/fs.walk': 1.2.8 + ajv: 6.12.6 + chalk: 4.1.2 + cross-spawn: 7.0.3 + debug: 4.3.4 + doctrine: 3.0.0 + escape-string-regexp: 4.0.0 + eslint-scope: 7.1.1 + eslint-visitor-keys: 3.4.0 + espree: 9.5.1 + esquery: 1.5.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 6.0.1 + find-up: 5.0.0 + glob-parent: 6.0.2 + globals: 13.20.0 + grapheme-splitter: 1.0.4 + ignore: 5.2.4 + import-fresh: 3.3.0 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + is-path-inside: 3.0.3 + js-sdsl: 4.4.0 + js-yaml: 4.1.0 + json-stable-stringify-without-jsonify: 1.0.1 + levn: 0.4.1 + lodash.merge: 4.6.2 + minimatch: 3.1.2 + natural-compare: 1.4.0 + optionator: 0.9.1 + strip-ansi: 6.0.1 + strip-json-comments: 3.1.1 + text-table: 0.2.0 + transitivePeerDependencies: + - supports-color + dev: true + + /espree@9.5.1: + resolution: {integrity: sha512-5yxtHSZXRSW5pvv3hAlXM5+/Oswi1AUFqBmbibKb5s6bp3rGIDkyXU6xCoyuuLhijr4SFwPrXRoZjz0AZDN9tg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + acorn: 8.8.2 + acorn-jsx: 5.3.2(acorn@8.8.2) + eslint-visitor-keys: 3.4.0 + dev: true + + /esquery@1.5.0: + resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} + engines: {node: '>=0.10'} + dependencies: + estraverse: 5.3.0 + dev: true + + /esrecurse@4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + engines: {node: '>=4.0'} + dependencies: + estraverse: 5.3.0 + dev: true + + /estraverse@4.3.0: + resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} + engines: {node: '>=4.0'} + dev: true + + /estraverse@5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} + dev: true + + /esutils@2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} + dev: true + + /fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + dev: true + + /fast-glob@3.2.12: + resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==} + engines: {node: '>=8.6.0'} + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.5 + dev: true + + /fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + dev: true + + /fast-levenshtein@2.0.6: + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + dev: true + + /fastq@1.15.0: + resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} + dependencies: + reusify: 1.0.4 + dev: true + + /file-entry-cache@6.0.1: + resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} + engines: {node: ^10.12.0 || >=12.0.0} + dependencies: + flat-cache: 3.0.4 + dev: true + + /fill-range@7.0.1: + resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} + engines: {node: '>=8'} + dependencies: + to-regex-range: 5.0.1 + dev: true + + /find-up@5.0.0: + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} + engines: {node: '>=10'} + dependencies: + locate-path: 6.0.0 + path-exists: 4.0.0 + dev: true + + /flat-cache@3.0.4: + resolution: {integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==} + engines: {node: ^10.12.0 || >=12.0.0} + dependencies: + flatted: 3.2.7 + rimraf: 3.0.2 + dev: true + + /flatted@3.2.7: + resolution: {integrity: sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==} + dev: true + + /fs.realpath@1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + dev: true + + /glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + dependencies: + is-glob: 4.0.3 + dev: true + + /glob-parent@6.0.2: + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} + engines: {node: '>=10.13.0'} + dependencies: + is-glob: 4.0.3 + dev: true + + /glob@7.2.3: + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + dev: true + + /globals@13.20.0: + resolution: {integrity: sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==} + engines: {node: '>=8'} + dependencies: + type-fest: 0.20.2 + dev: true + + /globby@11.1.0: + resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} + engines: {node: '>=10'} + dependencies: + array-union: 2.1.0 + dir-glob: 3.0.1 + fast-glob: 3.2.12 + ignore: 5.2.4 + merge2: 1.4.1 + slash: 3.0.0 + dev: true + + /grapheme-splitter@1.0.4: + resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==} + dev: true + + /has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + dev: true + + /ignore@5.2.4: + resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==} + engines: {node: '>= 4'} + dev: true + + /import-fresh@3.3.0: + resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} + engines: {node: '>=6'} + dependencies: + parent-module: 1.0.1 + resolve-from: 4.0.0 + dev: true + + /imurmurhash@0.1.4: + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} + engines: {node: '>=0.8.19'} + dev: true + + /inflight@1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + dependencies: + once: 1.4.0 + wrappy: 1.0.2 + dev: true + + /inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + dev: true + + /is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + dev: true + + /is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + dependencies: + is-extglob: 2.1.1 + dev: true + + /is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + dev: true + + /is-path-inside@3.0.3: + resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} + engines: {node: '>=8'} + dev: true + + /isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + dev: true + + /js-sdsl@4.4.0: + resolution: {integrity: sha512-FfVSdx6pJ41Oa+CF7RDaFmTnCaFhua+SNYQX74riGOpl96x+2jQCqEfQ2bnXu/5DPCqlRuiqyvTJM0Qjz26IVg==} + dev: true + + /js-yaml@4.1.0: + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + hasBin: true + dependencies: + argparse: 2.0.1 + dev: true + + /json-schema-traverse@0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + dev: true + + /json-stable-stringify-without-jsonify@1.0.1: + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + dev: true + + /levn@0.4.1: + resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} + engines: {node: '>= 0.8.0'} + dependencies: + prelude-ls: 1.2.1 + type-check: 0.4.0 + dev: true + + /locate-path@6.0.0: + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} + engines: {node: '>=10'} + dependencies: + p-locate: 5.0.0 + dev: true + + /lodash.merge@4.6.2: + resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + dev: true + + /lru-cache@6.0.0: + resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} + engines: {node: '>=10'} + dependencies: + yallist: 4.0.0 + dev: true + + /merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + dev: true + + /micromatch@4.0.5: + resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} + engines: {node: '>=8.6'} + dependencies: + braces: 3.0.2 + picomatch: 2.3.1 + dev: true + + /minimatch@3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + dependencies: + brace-expansion: 1.1.11 + dev: true + + /ms@2.1.2: + resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + dev: true + + /natural-compare-lite@1.4.0: + resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==} + dev: true + + /natural-compare@1.4.0: + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + dev: true + + /once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + dependencies: + wrappy: 1.0.2 + dev: true + + /optionator@0.9.1: + resolution: {integrity: sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==} + engines: {node: '>= 0.8.0'} + dependencies: + deep-is: 0.1.4 + fast-levenshtein: 2.0.6 + levn: 0.4.1 + prelude-ls: 1.2.1 + type-check: 0.4.0 + word-wrap: 1.2.3 + dev: true + + /p-limit@3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} + dependencies: + yocto-queue: 0.1.0 + dev: true + + /p-locate@5.0.0: + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} + engines: {node: '>=10'} + dependencies: + p-limit: 3.1.0 + dev: true + + /parent-module@1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} + dependencies: + callsites: 3.1.0 + dev: true + + /path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + dev: true + + /path-is-absolute@1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + engines: {node: '>=0.10.0'} + dev: true + + /path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + dev: true + + /path-type@4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} + dev: true + + /picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + dev: true + + /prelude-ls@1.2.1: + resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} + engines: {node: '>= 0.8.0'} + dev: true + + /punycode@2.3.0: + resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==} + engines: {node: '>=6'} + dev: true + + /queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + dev: true + + /resolve-from@4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} + dev: true + + /reusify@1.0.4: + resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + dev: true + + /rimraf@3.0.2: + resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + hasBin: true + dependencies: + glob: 7.2.3 + dev: true + + /run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + dependencies: + queue-microtask: 1.2.3 + dev: true + + /semver@7.3.8: + resolution: {integrity: sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==} + engines: {node: '>=10'} + hasBin: true + dependencies: + lru-cache: 6.0.0 + dev: true + + /shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} + dependencies: + shebang-regex: 3.0.0 + dev: true + + /shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + dev: true + + /slash@3.0.0: + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} + engines: {node: '>=8'} + dev: true + + /strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + dependencies: + ansi-regex: 5.0.1 + dev: true + + /strip-json-comments@3.1.1: + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} + engines: {node: '>=8'} + dev: true + + /supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} + dependencies: + has-flag: 4.0.0 + dev: true + + /text-table@0.2.0: + resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} + dev: true + + /to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + dependencies: + is-number: 7.0.0 + dev: true + + /tslib@1.14.1: + resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} + dev: true + + /tsutils@3.21.0(typescript@5.0.3): + resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} + engines: {node: '>= 6'} + peerDependencies: + typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' + dependencies: + tslib: 1.14.1 + typescript: 5.0.3 + dev: true + + /type-check@0.4.0: + resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} + engines: {node: '>= 0.8.0'} + dependencies: + prelude-ls: 1.2.1 + dev: true + + /type-fest@0.20.2: + resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} + engines: {node: '>=10'} + dev: true + + /typescript@5.0.3: + resolution: {integrity: sha512-xv8mOEDnigb/tN9PSMTwSEqAnUvkoXMQlicOb0IUVDBSQCgBSaAAROUZYy2IcUy5qU6XajK5jjjO7TMWqBTKZA==} + engines: {node: '>=12.20'} + hasBin: true + dev: true + + /uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + dependencies: + punycode: 2.3.0 + dev: true + + /which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + dependencies: + isexe: 2.0.0 + dev: true + + /word-wrap@1.2.3: + resolution: {integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==} + engines: {node: '>=0.10.0'} + dev: true + + /wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + dev: true + + /yallist@4.0.0: + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + dev: true + + /yocto-queue@0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} + dev: true diff --git a/reflection/BUILD.bazel b/reflection/BUILD.bazel index f2760933c2..4bdada5b8b 100644 --- a/reflection/BUILD.bazel +++ b/reflection/BUILD.bazel @@ -1,3 +1,12 @@ +filegroup( + name = "distribution", + srcs = [ + "BUILD.bazel", + "reflection.fbs", + ], + visibility = ["//visibility:public"], +) + filegroup( name = "reflection_fbs_schema", srcs = ["reflection.fbs"], diff --git a/reflection/ts/BUILD.bazel b/reflection/ts/BUILD.bazel index b9bd70848b..18ffd983bd 100644 --- a/reflection/ts/BUILD.bazel +++ b/reflection/ts/BUILD.bazel @@ -9,7 +9,6 @@ genrule( flatbuffer_ts_library( name = "reflection_ts_fbs", - package_name = "flatbuffers_reflection", srcs = [":reflection.fbs"], visibility = ["//visibility:public"], ) diff --git a/src/BUILD.bazel b/src/BUILD.bazel index 9991f4ad2d..9971892e97 100644 --- a/src/BUILD.bazel +++ b/src/BUILD.bazel @@ -5,6 +5,17 @@ package( default_visibility = ["//visibility:private"], ) +filegroup( + name = "distribution", + srcs = [ + "BUILD.bazel", + ] + glob([ + "*.cpp", + "*.h", + ]), + visibility = ["//visibility:public"], +) + cc_library( name = "code_generators", srcs = ["code_generators.cpp"], diff --git a/tests/BUILD.bazel b/tests/BUILD.bazel index 8d815b52c9..6cbb4fcf1a 100644 --- a/tests/BUILD.bazel +++ b/tests/BUILD.bazel @@ -1,8 +1,20 @@ +load("@aspect_bazel_lib//lib:copy_to_bin.bzl", "copy_to_bin") load("@rules_cc//cc:defs.bzl", "cc_test") load("//:build_defs.bzl", "flatbuffer_cc_library") package(default_visibility = ["//visibility:private"]) +# rules_js works around various JS tooling limitations by copying everything +# into the output directory. Make the test data available to the tests this way. +copy_to_bin( + name = "test_data_copied_to_bin", + srcs = glob([ + "*.mon", + "*.json", + ]), + visibility = ["//tests/ts:__subpackages__"], +) + # Test binary. cc_test( name = "flatbuffers_test", diff --git a/tests/ts/BUILD.bazel b/tests/ts/BUILD.bazel index 054011a57b..82635450b7 100644 --- a/tests/ts/BUILD.bazel +++ b/tests/ts/BUILD.bazel @@ -1,3 +1,4 @@ +load("@aspect_rules_js//js:defs.bzl", "js_test") load("//:typescript.bzl", "flatbuffer_ts_library") package(default_visibility = ["//visibility:private"]) @@ -10,3 +11,68 @@ flatbuffer_ts_library( "//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"], +) diff --git a/tests/ts/bazel_repository_test.sh b/tests/ts/bazel_repository_test.sh new file mode 100755 index 0000000000..5030809329 --- /dev/null +++ b/tests/ts/bazel_repository_test.sh @@ -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 [[ ! -e "${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 //... diff --git a/tests/ts/bazel_repository_test_dir/.bazelignore b/tests/ts/bazel_repository_test_dir/.bazelignore new file mode 100644 index 0000000000..3c3629e647 --- /dev/null +++ b/tests/ts/bazel_repository_test_dir/.bazelignore @@ -0,0 +1 @@ +node_modules diff --git a/tests/ts/bazel_repository_test_dir/.bazelrc b/tests/ts/bazel_repository_test_dir/.bazelrc new file mode 100644 index 0000000000..78003332b0 --- /dev/null +++ b/tests/ts/bazel_repository_test_dir/.bazelrc @@ -0,0 +1 @@ +build --symlink_prefix=/ diff --git a/tests/ts/bazel_repository_test_dir/.gitignore b/tests/ts/bazel_repository_test_dir/.gitignore new file mode 100644 index 0000000000..ac51a054d2 --- /dev/null +++ b/tests/ts/bazel_repository_test_dir/.gitignore @@ -0,0 +1 @@ +bazel-* diff --git a/tests/ts/bazel_repository_test_dir/.npmrc b/tests/ts/bazel_repository_test_dir/.npmrc new file mode 120000 index 0000000000..6b271c2f96 --- /dev/null +++ b/tests/ts/bazel_repository_test_dir/.npmrc @@ -0,0 +1 @@ +../../../.npmrc \ No newline at end of file diff --git a/tests/ts/bazel_repository_test_dir/BUILD b/tests/ts/bazel_repository_test_dir/BUILD new file mode 100644 index 0000000000..f4e89a602d --- /dev/null +++ b/tests/ts/bazel_repository_test_dir/BUILD @@ -0,0 +1,32 @@ +load("@aspect_rules_js//js:defs.bzl", "js_test") +load("@com_github_google_flatbuffers//:typescript.bzl", "flatbuffer_ts_library") +load("@aspect_rules_js//npm:defs.bzl", "npm_link_package") +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", +) diff --git a/tests/ts/bazel_repository_test_dir/WORKSPACE b/tests/ts/bazel_repository_test_dir/WORKSPACE new file mode 100644 index 0000000000..f7ef4541f3 --- /dev/null +++ b/tests/ts/bazel_repository_test_dir/WORKSPACE @@ -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, +) diff --git a/tests/ts/bazel_repository_test_dir/import_test.js b/tests/ts/bazel_repository_test_dir/import_test.js new file mode 100644 index 0000000000..05e7929ffb --- /dev/null +++ b/tests/ts/bazel_repository_test_dir/import_test.js @@ -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(); diff --git a/tests/ts/bazel_repository_test_dir/one.fbs b/tests/ts/bazel_repository_test_dir/one.fbs new file mode 100644 index 0000000000..318170913f --- /dev/null +++ b/tests/ts/bazel_repository_test_dir/one.fbs @@ -0,0 +1,7 @@ +namespace bazel_repository_test; + +table One { + information:int; +} + +root_type One; diff --git a/tests/ts/bazel_repository_test_dir/package.json b/tests/ts/bazel_repository_test_dir/package.json new file mode 100644 index 0000000000..7bab70109d --- /dev/null +++ b/tests/ts/bazel_repository_test_dir/package.json @@ -0,0 +1,8 @@ +{ + "name": "bazel_repository_test", + "type": "module", + "private": true, + "devDependencies": { + "@types/node": "18.15.11" + } +} diff --git a/tests/ts/bazel_repository_test_dir/pnpm-lock.yaml b/tests/ts/bazel_repository_test_dir/pnpm-lock.yaml new file mode 100644 index 0000000000..331070a317 --- /dev/null +++ b/tests/ts/bazel_repository_test_dir/pnpm-lock.yaml @@ -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 diff --git a/tests/ts/bazel_repository_test_dir/two.fbs b/tests/ts/bazel_repository_test_dir/two.fbs new file mode 100644 index 0000000000..8e0cdd879b --- /dev/null +++ b/tests/ts/bazel_repository_test_dir/two.fbs @@ -0,0 +1,9 @@ +include 'one.fbs'; + +namespace bazel_repository_test; + +table Two { + one:One; +} + +root_type Two; diff --git a/tests/ts/package.json b/tests/ts/package.json index ac2639e3ce..1639cf831e 100644 --- a/tests/ts/package.json +++ b/tests/ts/package.json @@ -1,7 +1,6 @@ { "type": "module", "dependencies": { - "@grpc/grpc-js": "^1.7.0", "flatbuffers": "../../" } } diff --git a/tests/ts/test_dir/BUILD.bazel b/tests/ts/test_dir/BUILD.bazel index 8b0accaa7f..6026d9ff56 100644 --- a/tests/ts/test_dir/BUILD.bazel +++ b/tests/ts/test_dir/BUILD.bazel @@ -1,3 +1,4 @@ +load("@aspect_rules_js//js:defs.bzl", "js_test") load("//:typescript.bzl", "flatbuffer_ts_library") flatbuffer_ts_library( @@ -12,3 +13,14 @@ flatbuffer_ts_library( visibility = ["//visibility:public"], deps = [":typescript_transitive_ts_fbs"], ) + +js_test( + name = "import_test", + chdir = package_name(), + data = [ + "package.json", + ":include_ts_fbs", + "//:node_modules/flatbuffers", + ], + entry_point = "import_test.js", +) diff --git a/tests/ts/test_dir/import_test.js b/tests/ts/test_dir/import_test.js new file mode 100644 index 0000000000..594b11e0ec --- /dev/null +++ b/tests/ts/test_dir/import_test.js @@ -0,0 +1,31 @@ +import assert from 'assert' +import * as flatbuffers from 'flatbuffers' + +import typescript_include from './typescript_include_generated.cjs' + +const foobar = typescript_include.foobar; + +function main() { + // Validate the enums. + assert.strictEqual(foobar.Abc.a, 0); + assert.strictEqual(foobar.class_.arguments_, 0); + + // Validate building a table. + var fbb = new flatbuffers.Builder(1); + var name = fbb.createString("Foo Bar"); + + foobar.Tab.startTab(fbb); + foobar.Tab.addAbc(fbb, foobar.Abc.a); + foobar.Tab.addArg(fbb, foobar.class_.arguments_); + foobar.Tab.addName(fbb, name); + var tab = foobar.Tab.endTab(fbb); + + fbb.finish(tab); + + // Call as a sanity check. Would be better to validate actual output here. + fbb.asUint8Array(); + + console.log('FlatBuffers Bazel Import test: completed successfully'); +} + +main(); diff --git a/tests/ts/test_dir/package.json b/tests/ts/test_dir/package.json new file mode 100644 index 0000000000..af3f206b37 --- /dev/null +++ b/tests/ts/test_dir/package.json @@ -0,0 +1,6 @@ +{ + "type": "module", + "dependencies": { + "flatbuffers": "../../../" + } +} diff --git a/tests/ts/test_dir/typescript_include.fbs b/tests/ts/test_dir/typescript_include.fbs index c805693b29..aa43fe38a6 100644 --- a/tests/ts/test_dir/typescript_include.fbs +++ b/tests/ts/test_dir/typescript_include.fbs @@ -1,6 +1,13 @@ include 'typescript_transitive_include.fbs'; + namespace foobar; enum class: int { arguments, } + +table Tab { + abc:Abc; + arg:class; + name:string; +} diff --git a/ts/BUILD.bazel b/ts/BUILD.bazel index 34fa6746aa..4b86fe3d3c 100644 --- a/ts/BUILD.bazel +++ b/ts/BUILD.bazel @@ -1,5 +1,23 @@ -load("@npm//@bazel/typescript:index.bzl", "ts_project") -load("@build_bazel_rules_nodejs//:index.bzl", "js_library") +load("@aspect_rules_ts//ts:defs.bzl", "ts_project") +load("@aspect_rules_js//npm:defs.bzl", "npm_package") + +filegroup( + name = "distribution", + srcs = [ + "BUILD.bazel", + "compile_flat_file.sh", + ] + glob([ + "*.ts", + ]), + visibility = ["//visibility:public"], +) + +# Add an index to emulate the top-level package.json's "main" entry. +genrule( + name = "generate_index.ts", + outs = ["index.ts"], + cmd = """echo "export * from './flatbuffers.js'" > $(OUTS)""", +) ts_project( name = "flatbuffers_ts", @@ -11,6 +29,7 @@ ts_project( "flatbuffers.ts", "types.ts", "utils.ts", + ":index.ts", ], declaration = True, tsconfig = { @@ -28,14 +47,19 @@ ts_project( }, }, visibility = ["//visibility:public"], - deps = ["@npm//@types/node"], + deps = [ + # Because the main repository instantiates the @npm repository, we need + # to depend on the main repository's node import. + "@//:node_modules/@types/node", + ], ) -js_library( +npm_package( name = "flatbuffers", - package_name = "flatbuffers", + srcs = [":flatbuffers_ts"], + include_external_repositories = ["*"], + package = "flatbuffers", visibility = ["//visibility:public"], - deps = [":flatbuffers_ts"], ) sh_binary( @@ -44,7 +68,6 @@ sh_binary( data = [ "@com_github_google_flatbuffers//:flatc", "@nodejs_linux_amd64//:node_bin", - "@npm//esbuild/bin:esbuild", ], # We just depend directly on the linux amd64 nodejs binary, so only support # running this script on amd64 for now. diff --git a/ts/compile_flat_file.sh b/ts/compile_flat_file.sh index 0aeaebeaea..43e0c391aa 100755 --- a/ts/compile_flat_file.sh +++ b/ts/compile_flat_file.sh @@ -14,10 +14,9 @@ source "${RUNFILES_DIR:-/dev/null}/$f" 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 v2 --- -set -e +set -eu runfiles_export_envvars FLATC=$(rlocation com_github_google_flatbuffers/flatc) -ESBUILD=$(rlocation npm/node_modules/esbuild/bin/esbuild) TS_FILE=$(${FLATC} $@ | grep "Entry point.*generated" | grep -o "bazel-out.*ts") -export PATH=$(rlocation nodejs_linux_amd64/bin/nodejs/bin) -${ESBUILD} ${TS_FILE} --format=cjs --bundle --outfile="${OUTPUT_FILE}" --external:flatbuffers --log-level=warning +export PATH="$(rlocation nodejs_linux_amd64/bin/nodejs/bin):${PATH}" +${ESBUILD_BIN} ${TS_FILE} --format=cjs --bundle --outfile="${OUTPUT_FILE}" --external:flatbuffers --log-level=warning diff --git a/typescript.bzl b/typescript.bzl index 41eb335cc0..63c1218c64 100644 --- a/typescript.bzl +++ b/typescript.bzl @@ -2,7 +2,7 @@ Rules for building typescript flatbuffers with Bazel. """ -load("@build_bazel_rules_nodejs//:index.bzl", "js_library") +load("@aspect_rules_js//js:defs.bzl", "js_library") load(":build_defs.bzl", "flatbuffer_library_public") DEFAULT_FLATC_TS_ARGS = [ @@ -24,8 +24,7 @@ def flatbuffer_ts_library( flatc_args = DEFAULT_FLATC_TS_ARGS, visibility = None, restricted_to = None, - gen_reflections = False, - package_name = None): + gen_reflections = False): """Generates a ts_library rule for a given flatbuffer definition. Args: @@ -46,7 +45,6 @@ def flatbuffer_ts_library( to use. gen_reflections: Optional, if true this will generate the flatbuffer reflection binaries for the schemas. - package_name: Optional, Package name to use for the generated code. """ srcs_lib = "%s_srcs" % (name) out_base = [s.replace(".fbs", "").split("/")[-1].split(":")[-1] for s in srcs] @@ -64,6 +62,7 @@ def flatbuffer_ts_library( language_flag = "--ts", includes = includes, include_paths = include_paths, + extra_env = "ESBUILD_BIN=$(ESBUILD_BIN)", flatc_args = flatc_args + ["--filename-suffix _generated"], compatible_with = compatible_with, restricted_to = restricted_to, @@ -71,6 +70,8 @@ def flatbuffer_ts_library( reflection_visibility = visibility, target_compatible_with = target_compatible_with, flatc_path = "@com_github_google_flatbuffers//ts:compile_flat_file", + toolchains = ["@aspect_rules_esbuild//esbuild:resolved_toolchain"], + tools = ["@aspect_rules_esbuild//esbuild:resolved_toolchain"], ) js_library( name = name, @@ -79,7 +80,6 @@ def flatbuffer_ts_library( restricted_to = restricted_to, target_compatible_with = target_compatible_with, srcs = outs, - package_name = package_name, ) native.filegroup( name = "%s_includes" % (name), diff --git a/yarn.lock b/yarn.lock deleted file mode 100644 index e65a4e918f..0000000000 --- a/yarn.lock +++ /dev/null @@ -1,1174 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"@bazel/typescript@5.2.0": - version "5.2.0" - resolved "https://registry.yarnpkg.com/@bazel/typescript/-/typescript-5.2.0.tgz#131127c8016c712ef1b291f2b52108e5326f0447" - integrity sha512-hNpSCQj5dOX95iC4Yf/fuyxfMU5uTAe84thqPcTCvOJFmpypN6qzxH24S5UiXkwbsL8sQM9DP0+qFyT/TRKdNw== - dependencies: - "@bazel/worker" "5.2.0" - protobufjs "6.8.8" - semver "5.6.0" - source-map-support "0.5.9" - tsutils "3.21.0" - -"@bazel/worker@5.2.0": - version "5.2.0" - resolved "https://registry.yarnpkg.com/@bazel/worker/-/worker-5.2.0.tgz#464726821f9d98b11c6536e2547d44459a321a61" - integrity sha512-C9ozvgRP2iug4e9XaVjfXSKmrUMyzsYhDN2/A+MqKl8qlAf5AlveNofCUBASHxJsYiBn3ATbPNUznGsjeMpVWg== - dependencies: - google-protobuf "^3.6.1" - -"@esbuild/android-arm64@0.17.14": - version "0.17.14" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.17.14.tgz#4624cea3c8941c91f9e9c1228f550d23f1cef037" - integrity sha512-eLOpPO1RvtsP71afiFTvS7tVFShJBCT0txiv/xjFBo5a7R7Gjw7X0IgIaFoLKhqXYAXhahoXm7qAmRXhY4guJg== - -"@esbuild/android-arm@0.17.14": - version "0.17.14" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.17.14.tgz#74fae60fcab34c3f0e15cb56473a6091ba2b53a6" - integrity sha512-0CnlwnjDU8cks0yJLXfkaU/uoLyRf9VZJs4p1PskBr2AlAHeEsFEwJEo0of/Z3g+ilw5mpyDwThlxzNEIxOE4g== - -"@esbuild/android-x64@0.17.14": - version "0.17.14" - resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.17.14.tgz#f002fbc08d5e939d8314bd23bcfb1e95d029491f" - integrity sha512-nrfQYWBfLGfSGLvRVlt6xi63B5IbfHm3tZCdu/82zuFPQ7zez4XjmRtF/wIRYbJQ/DsZrxJdEvYFE67avYXyng== - -"@esbuild/darwin-arm64@0.17.14": - version "0.17.14" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.17.14.tgz#b8dcd79a1dd19564950b4ca51d62999011e2e168" - integrity sha512-eoSjEuDsU1ROwgBH/c+fZzuSyJUVXQTOIN9xuLs9dE/9HbV/A5IqdXHU1p2OfIMwBwOYJ9SFVGGldxeRCUJFyw== - -"@esbuild/darwin-x64@0.17.14": - version "0.17.14" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.17.14.tgz#4b49f195d9473625efc3c773fc757018f2c0d979" - integrity sha512-zN0U8RWfrDttdFNkHqFYZtOH8hdi22z0pFm0aIJPsNC4QQZv7je8DWCX5iA4Zx6tRhS0CCc0XC2m7wKsbWEo5g== - -"@esbuild/freebsd-arm64@0.17.14": - version "0.17.14" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.14.tgz#480923fd38f644c6342c55e916cc7c231a85eeb7" - integrity sha512-z0VcD4ibeZWVQCW1O7szaLxGsx54gcCnajEJMdYoYjLiq4g1jrP2lMq6pk71dbS5+7op/L2Aod+erw+EUr28/A== - -"@esbuild/freebsd-x64@0.17.14": - version "0.17.14" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.17.14.tgz#a6b6b01954ad8562461cb8a5e40e8a860af69cbe" - integrity sha512-hd9mPcxfTgJlolrPlcXkQk9BMwNBvNBsVaUe5eNUqXut6weDQH8whcNaKNF2RO8NbpT6GY8rHOK2A9y++s+ehw== - -"@esbuild/linux-arm64@0.17.14": - version "0.17.14" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.17.14.tgz#1fe2f39f78183b59f75a4ad9c48d079916d92418" - integrity sha512-FhAMNYOq3Iblcj9i+K0l1Fp/MHt+zBeRu/Qkf0LtrcFu3T45jcwB6A1iMsemQ42vR3GBhjNZJZTaCe3VFPbn9g== - -"@esbuild/linux-arm@0.17.14": - version "0.17.14" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.17.14.tgz#18d594a49b64e4a3a05022c005cb384a58056a2a" - integrity sha512-BNTl+wSJ1omsH8s3TkQmIIIQHwvwJrU9u1ggb9XU2KTVM4TmthRIVyxSp2qxROJHhZuW/r8fht46/QE8hU8Qvg== - -"@esbuild/linux-ia32@0.17.14": - version "0.17.14" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.17.14.tgz#f7f0182a9cfc0159e0922ed66c805c9c6ef1b654" - integrity sha512-91OK/lQ5y2v7AsmnFT+0EyxdPTNhov3y2CWMdizyMfxSxRqHazXdzgBKtlmkU2KYIc+9ZK3Vwp2KyXogEATYxQ== - -"@esbuild/linux-loong64@0.17.14": - version "0.17.14" - resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.17.14.tgz#5f5305fdffe2d71dd9a97aa77d0c99c99409066f" - integrity sha512-vp15H+5NR6hubNgMluqqKza85HcGJgq7t6rMH7O3Y6ApiOWPkvW2AJfNojUQimfTp6OUrACUXfR4hmpcENXoMQ== - -"@esbuild/linux-mips64el@0.17.14": - version "0.17.14" - resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.17.14.tgz#a602e85c51b2f71d2aedfe7f4143b2f92f97f3f5" - integrity sha512-90TOdFV7N+fgi6c2+GO9ochEkmm9kBAKnuD5e08GQMgMINOdOFHuYLPQ91RYVrnWwQ5683sJKuLi9l4SsbJ7Hg== - -"@esbuild/linux-ppc64@0.17.14": - version "0.17.14" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.17.14.tgz#32d918d782105cbd9345dbfba14ee018b9c7afdf" - integrity sha512-NnBGeoqKkTugpBOBZZoktQQ1Yqb7aHKmHxsw43NddPB2YWLAlpb7THZIzsRsTr0Xw3nqiPxbA1H31ZMOG+VVPQ== - -"@esbuild/linux-riscv64@0.17.14": - version "0.17.14" - resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.17.14.tgz#38612e7b6c037dff7022c33f49ca17f85c5dec58" - integrity sha512-0qdlKScLXA8MGVy21JUKvMzCYWovctuP8KKqhtE5A6IVPq4onxXhSuhwDd2g5sRCzNDlDjitc5sX31BzDoL5Fw== - -"@esbuild/linux-s390x@0.17.14": - version "0.17.14" - resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.17.14.tgz#4397dff354f899e72fd035d72af59a700c465ccb" - integrity sha512-Hdm2Jo1yaaOro4v3+6/zJk6ygCqIZuSDJHdHaf8nVH/tfOuoEX5Riv03Ka15LmQBYJObUTNS1UdyoMk0WUn9Ww== - -"@esbuild/linux-x64@0.17.14": - version "0.17.14" - resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.17.14.tgz#6c5cb99891b6c3e0c08369da3ef465e8038ad9c2" - integrity sha512-8KHF17OstlK4DuzeF/KmSgzrTWQrkWj5boluiiq7kvJCiQVzUrmSkaBvcLB2UgHpKENO2i6BthPkmUhNDaJsVw== - -"@esbuild/netbsd-x64@0.17.14": - version "0.17.14" - resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.17.14.tgz#5fa5255a64e9bf3947c1b3bef5e458b50b211994" - integrity sha512-nVwpqvb3yyXztxIT2+VsxJhB5GCgzPdk1n0HHSnchRAcxqKO6ghXwHhJnr0j/B+5FSyEqSxF4q03rbA2fKXtUQ== - -"@esbuild/openbsd-x64@0.17.14": - version "0.17.14" - resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.17.14.tgz#74d14c79dcb6faf446878cc64284aa4e02f5ca6f" - integrity sha512-1RZ7uQQ9zcy/GSAJL1xPdN7NDdOOtNEGiJalg/MOzeakZeTrgH/DoCkbq7TaPDiPhWqnDF+4bnydxRqQD7il6g== - -"@esbuild/sunos-x64@0.17.14": - version "0.17.14" - resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.17.14.tgz#5c7d1c7203781d86c2a9b2ff77bd2f8036d24cfa" - integrity sha512-nqMjDsFwv7vp7msrwWRysnM38Sd44PKmW8EzV01YzDBTcTWUpczQg6mGao9VLicXSgW/iookNK6AxeogNVNDZA== - -"@esbuild/win32-arm64@0.17.14": - version "0.17.14" - resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.17.14.tgz#dc36ed84f1390e73b6019ccf0566c80045e5ca3d" - integrity sha512-xrD0mccTKRBBIotrITV7WVQAwNJ5+1va6L0H9zN92v2yEdjfAN7864cUaZwJS7JPEs53bDTzKFbfqVlG2HhyKQ== - -"@esbuild/win32-ia32@0.17.14": - version "0.17.14" - resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.17.14.tgz#0802a107afa9193c13e35de15a94fe347c588767" - integrity sha512-nXpkz9bbJrLLyUTYtRotSS3t5b+FOuljg8LgLdINWFs3FfqZMtbnBCZFUmBzQPyxqU87F8Av+3Nco/M3hEcu1w== - -"@esbuild/win32-x64@0.17.14": - version "0.17.14" - resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.17.14.tgz#e81fb49de05fed91bf74251c9ca0343f4fc77d31" - integrity sha512-gPQmsi2DKTaEgG14hc3CHXHp62k8g6qr0Pas+I4lUxRMugGSATh/Bi8Dgusoz9IQ0IfdrvLpco6kujEIBoaogA== - -"@eslint-community/eslint-utils@^4.2.0": - version "4.4.0" - resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59" - integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA== - dependencies: - eslint-visitor-keys "^3.3.0" - -"@eslint-community/regexpp@^4.4.0": - version "4.5.0" - resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.5.0.tgz#f6f729b02feee2c749f57e334b7a1b5f40a81724" - integrity sha512-vITaYzIcNmjn5tF5uxcZ/ft7/RXGrMUIS9HalWckEOF6ESiwXKoMzAQf2UW0aVd6rnOeExTJVd5hmWXucBKGXQ== - -"@eslint/eslintrc@^2.0.2": - version "2.0.2" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.0.2.tgz#01575e38707add677cf73ca1589abba8da899a02" - integrity sha512-3W4f5tDUra+pA+FzgugqL2pRimUTDJWKr7BINqOpkZrC0uYI0NIc0/JFgBROCU07HR6GieA5m3/rsPIhDmCXTQ== - dependencies: - ajv "^6.12.4" - debug "^4.3.2" - espree "^9.5.1" - globals "^13.19.0" - ignore "^5.2.0" - import-fresh "^3.2.1" - js-yaml "^4.1.0" - minimatch "^3.1.2" - strip-json-comments "^3.1.1" - -"@eslint/js@8.37.0": - version "8.37.0" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.37.0.tgz#cf1b5fa24217fe007f6487a26d765274925efa7d" - integrity sha512-x5vzdtOOGgFVDCUs81QRB2+liax8rFg3+7hqM+QhBG0/G3F1ZsoYl97UrqgHgQ9KKT7G6c4V+aTUCgu/n22v1A== - -"@humanwhocodes/config-array@^0.11.8": - version "0.11.8" - resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.8.tgz#03595ac2075a4dc0f191cc2131de14fbd7d410b9" - integrity sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g== - dependencies: - "@humanwhocodes/object-schema" "^1.2.1" - debug "^4.1.1" - minimatch "^3.0.5" - -"@humanwhocodes/module-importer@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" - integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== - -"@humanwhocodes/object-schema@^1.2.1": - version "1.2.1" - resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45" - integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== - -"@nodelib/fs.scandir@2.1.5": - version "2.1.5" - resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" - integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== - dependencies: - "@nodelib/fs.stat" "2.0.5" - run-parallel "^1.1.9" - -"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": - version "2.0.5" - resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" - integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== - -"@nodelib/fs.walk@^1.2.3", "@nodelib/fs.walk@^1.2.8": - version "1.2.8" - resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" - integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== - dependencies: - "@nodelib/fs.scandir" "2.1.5" - fastq "^1.6.0" - -"@protobufjs/aspromise@^1.1.1", "@protobufjs/aspromise@^1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@protobufjs/aspromise/-/aspromise-1.1.2.tgz#9b8b0cc663d669a7d8f6f5d0893a14d348f30fbf" - integrity sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ== - -"@protobufjs/base64@^1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@protobufjs/base64/-/base64-1.1.2.tgz#4c85730e59b9a1f1f349047dbf24296034bb2735" - integrity sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg== - -"@protobufjs/codegen@^2.0.4": - version "2.0.4" - resolved "https://registry.yarnpkg.com/@protobufjs/codegen/-/codegen-2.0.4.tgz#7ef37f0d010fb028ad1ad59722e506d9262815cb" - integrity sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg== - -"@protobufjs/eventemitter@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz#355cbc98bafad5978f9ed095f397621f1d066b70" - integrity sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q== - -"@protobufjs/fetch@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@protobufjs/fetch/-/fetch-1.1.0.tgz#ba99fb598614af65700c1619ff06d454b0d84c45" - integrity sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ== - dependencies: - "@protobufjs/aspromise" "^1.1.1" - "@protobufjs/inquire" "^1.1.0" - -"@protobufjs/float@^1.0.2": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@protobufjs/float/-/float-1.0.2.tgz#5e9e1abdcb73fc0a7cb8b291df78c8cbd97b87d1" - integrity sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ== - -"@protobufjs/inquire@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@protobufjs/inquire/-/inquire-1.1.0.tgz#ff200e3e7cf2429e2dcafc1140828e8cc638f089" - integrity sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q== - -"@protobufjs/path@^1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@protobufjs/path/-/path-1.1.2.tgz#6cc2b20c5c9ad6ad0dccfd21ca7673d8d7fbf68d" - integrity sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA== - -"@protobufjs/pool@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@protobufjs/pool/-/pool-1.1.0.tgz#09fd15f2d6d3abfa9b65bc366506d6ad7846ff54" - integrity sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw== - -"@protobufjs/utf8@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@protobufjs/utf8/-/utf8-1.1.0.tgz#a777360b5b39a1a2e5106f8e858f2fd2d060c570" - integrity sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw== - -"@types/json-schema@^7.0.9": - version "7.0.11" - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.11.tgz#d421b6c527a3037f7c84433fd2c4229e016863d3" - integrity sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ== - -"@types/long@^4.0.0": - version "4.0.2" - resolved "https://registry.yarnpkg.com/@types/long/-/long-4.0.2.tgz#b74129719fc8d11c01868010082d483b7545591a" - integrity sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA== - -"@types/node@18.15.11": - version "18.15.11" - resolved "https://registry.yarnpkg.com/@types/node/-/node-18.15.11.tgz#b3b790f09cb1696cffcec605de025b088fa4225f" - integrity sha512-E5Kwq2n4SbMzQOn6wnmBjuK9ouqlURrcZDVfbo9ftDDTFt3nk7ZKK4GMOzoYgnpQJKcxwQw+lGaBvvlMo0qN/Q== - -"@types/node@^10.1.0": - version "10.17.60" - resolved "https://registry.yarnpkg.com/@types/node/-/node-10.17.60.tgz#35f3d6213daed95da7f0f73e75bcc6980e90597b" - integrity sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw== - -"@types/semver@^7.3.12": - version "7.3.13" - resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.3.13.tgz#da4bfd73f49bd541d28920ab0e2bf0ee80f71c91" - integrity sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw== - -"@typescript-eslint/eslint-plugin@^5.57.0": - version "5.57.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.57.0.tgz#52c8a7a4512f10e7249ca1e2e61f81c62c34365c" - integrity sha512-itag0qpN6q2UMM6Xgk6xoHa0D0/P+M17THnr4SVgqn9Rgam5k/He33MA7/D7QoJcdMxHFyX7U9imaBonAX/6qA== - dependencies: - "@eslint-community/regexpp" "^4.4.0" - "@typescript-eslint/scope-manager" "5.57.0" - "@typescript-eslint/type-utils" "5.57.0" - "@typescript-eslint/utils" "5.57.0" - debug "^4.3.4" - grapheme-splitter "^1.0.4" - ignore "^5.2.0" - natural-compare-lite "^1.4.0" - semver "^7.3.7" - tsutils "^3.21.0" - -"@typescript-eslint/parser@^5.57.0": - version "5.57.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.57.0.tgz#f675bf2cd1a838949fd0de5683834417b757e4fa" - integrity sha512-orrduvpWYkgLCyAdNtR1QIWovcNZlEm6yL8nwH/eTxWLd8gsP+25pdLHYzL2QdkqrieaDwLpytHqycncv0woUQ== - dependencies: - "@typescript-eslint/scope-manager" "5.57.0" - "@typescript-eslint/types" "5.57.0" - "@typescript-eslint/typescript-estree" "5.57.0" - debug "^4.3.4" - -"@typescript-eslint/scope-manager@5.57.0": - version "5.57.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.57.0.tgz#79ccd3fa7bde0758059172d44239e871e087ea36" - integrity sha512-NANBNOQvllPlizl9LatX8+MHi7bx7WGIWYjPHDmQe5Si/0YEYfxSljJpoTyTWFTgRy3X8gLYSE4xQ2U+aCozSw== - dependencies: - "@typescript-eslint/types" "5.57.0" - "@typescript-eslint/visitor-keys" "5.57.0" - -"@typescript-eslint/type-utils@5.57.0": - version "5.57.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.57.0.tgz#98e7531c4e927855d45bd362de922a619b4319f2" - integrity sha512-kxXoq9zOTbvqzLbdNKy1yFrxLC6GDJFE2Yuo3KqSwTmDOFjUGeWSakgoXT864WcK5/NAJkkONCiKb1ddsqhLXQ== - dependencies: - "@typescript-eslint/typescript-estree" "5.57.0" - "@typescript-eslint/utils" "5.57.0" - debug "^4.3.4" - tsutils "^3.21.0" - -"@typescript-eslint/types@5.57.0": - version "5.57.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.57.0.tgz#727bfa2b64c73a4376264379cf1f447998eaa132" - integrity sha512-mxsod+aZRSyLT+jiqHw1KK6xrANm19/+VFALVFP5qa/aiJnlP38qpyaTd0fEKhWvQk6YeNZ5LGwI1pDpBRBhtQ== - -"@typescript-eslint/typescript-estree@5.57.0": - version "5.57.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.57.0.tgz#ebcd0ee3e1d6230e888d88cddf654252d41e2e40" - integrity sha512-LTzQ23TV82KpO8HPnWuxM2V7ieXW8O142I7hQTxWIHDcCEIjtkat6H96PFkYBQqGFLW/G/eVVOB9Z8rcvdY/Vw== - dependencies: - "@typescript-eslint/types" "5.57.0" - "@typescript-eslint/visitor-keys" "5.57.0" - debug "^4.3.4" - globby "^11.1.0" - is-glob "^4.0.3" - semver "^7.3.7" - tsutils "^3.21.0" - -"@typescript-eslint/utils@5.57.0": - version "5.57.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.57.0.tgz#eab8f6563a2ac31f60f3e7024b91bf75f43ecef6" - integrity sha512-ps/4WohXV7C+LTSgAL5CApxvxbMkl9B9AUZRtnEFonpIxZDIT7wC1xfvuJONMidrkB9scs4zhtRyIwHh4+18kw== - dependencies: - "@eslint-community/eslint-utils" "^4.2.0" - "@types/json-schema" "^7.0.9" - "@types/semver" "^7.3.12" - "@typescript-eslint/scope-manager" "5.57.0" - "@typescript-eslint/types" "5.57.0" - "@typescript-eslint/typescript-estree" "5.57.0" - eslint-scope "^5.1.1" - semver "^7.3.7" - -"@typescript-eslint/visitor-keys@5.57.0": - version "5.57.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.57.0.tgz#e2b2f4174aff1d15eef887ce3d019ecc2d7a8ac1" - integrity sha512-ery2g3k0hv5BLiKpPuwYt9KBkAp2ugT6VvyShXdLOkax895EC55sP0Tx5L0fZaQueiK3fBLvHVvEl3jFS5ia+g== - dependencies: - "@typescript-eslint/types" "5.57.0" - eslint-visitor-keys "^3.3.0" - -acorn-jsx@^5.3.2: - version "5.3.2" - resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" - integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== - -acorn@^8.8.0: - version "8.8.2" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.2.tgz#1b2f25db02af965399b9776b0c2c391276d37c4a" - integrity sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw== - -ajv@^6.10.0, ajv@^6.12.4: - version "6.12.6" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" - integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== - dependencies: - fast-deep-equal "^3.1.1" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.4.1" - uri-js "^4.2.2" - -ansi-regex@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" - integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== - -ansi-styles@^4.1.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" - integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== - dependencies: - color-convert "^2.0.1" - -argparse@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" - integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== - -array-union@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" - integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== - -balanced-match@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" - integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== - -brace-expansion@^1.1.7: - version "1.1.11" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" - integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== - dependencies: - balanced-match "^1.0.0" - concat-map "0.0.1" - -braces@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" - integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== - dependencies: - fill-range "^7.0.1" - -buffer-from@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" - integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== - -callsites@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" - integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== - -chalk@^4.0.0: - version "4.1.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" - integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -color-convert@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" - integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== - dependencies: - color-name "~1.1.4" - -color-name@~1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" - integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== - -concat-map@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== - -cross-spawn@^7.0.2: - version "7.0.3" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" - integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== - dependencies: - path-key "^3.1.0" - shebang-command "^2.0.0" - which "^2.0.1" - -debug@^4.1.1, debug@^4.3.2, debug@^4.3.4: - version "4.3.4" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" - integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== - dependencies: - ms "2.1.2" - -deep-is@^0.1.3: - version "0.1.4" - resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" - integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== - -dir-glob@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" - integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== - dependencies: - path-type "^4.0.0" - -doctrine@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" - integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== - dependencies: - esutils "^2.0.2" - -esbuild@^0.17.14: - version "0.17.14" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.17.14.tgz#d61a22de751a3133f3c6c7f9c1c3e231e91a3245" - integrity sha512-vOO5XhmVj/1XQR9NQ1UPq6qvMYL7QFJU57J5fKBKBKxp17uDt5PgxFDb4A2nEiXhr1qQs4x0F5+66hVVw4ruNw== - optionalDependencies: - "@esbuild/android-arm" "0.17.14" - "@esbuild/android-arm64" "0.17.14" - "@esbuild/android-x64" "0.17.14" - "@esbuild/darwin-arm64" "0.17.14" - "@esbuild/darwin-x64" "0.17.14" - "@esbuild/freebsd-arm64" "0.17.14" - "@esbuild/freebsd-x64" "0.17.14" - "@esbuild/linux-arm" "0.17.14" - "@esbuild/linux-arm64" "0.17.14" - "@esbuild/linux-ia32" "0.17.14" - "@esbuild/linux-loong64" "0.17.14" - "@esbuild/linux-mips64el" "0.17.14" - "@esbuild/linux-ppc64" "0.17.14" - "@esbuild/linux-riscv64" "0.17.14" - "@esbuild/linux-s390x" "0.17.14" - "@esbuild/linux-x64" "0.17.14" - "@esbuild/netbsd-x64" "0.17.14" - "@esbuild/openbsd-x64" "0.17.14" - "@esbuild/sunos-x64" "0.17.14" - "@esbuild/win32-arm64" "0.17.14" - "@esbuild/win32-ia32" "0.17.14" - "@esbuild/win32-x64" "0.17.14" - -escape-string-regexp@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" - integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== - -eslint-scope@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" - integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== - dependencies: - esrecurse "^4.3.0" - estraverse "^4.1.1" - -eslint-scope@^7.1.1: - version "7.1.1" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.1.1.tgz#fff34894c2f65e5226d3041ac480b4513a163642" - integrity sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw== - dependencies: - esrecurse "^4.3.0" - estraverse "^5.2.0" - -eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.0.tgz#c7f0f956124ce677047ddbc192a68f999454dedc" - integrity sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ== - -eslint@^8.37.0: - version "8.37.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.37.0.tgz#1f660ef2ce49a0bfdec0b0d698e0b8b627287412" - integrity sha512-NU3Ps9nI05GUoVMxcZx1J8CNR6xOvUT4jAUMH5+z8lpp3aEdPVCImKw6PWG4PY+Vfkpr+jvMpxs/qoE7wq0sPw== - dependencies: - "@eslint-community/eslint-utils" "^4.2.0" - "@eslint-community/regexpp" "^4.4.0" - "@eslint/eslintrc" "^2.0.2" - "@eslint/js" "8.37.0" - "@humanwhocodes/config-array" "^0.11.8" - "@humanwhocodes/module-importer" "^1.0.1" - "@nodelib/fs.walk" "^1.2.8" - ajv "^6.10.0" - chalk "^4.0.0" - cross-spawn "^7.0.2" - debug "^4.3.2" - doctrine "^3.0.0" - escape-string-regexp "^4.0.0" - eslint-scope "^7.1.1" - eslint-visitor-keys "^3.4.0" - espree "^9.5.1" - esquery "^1.4.2" - esutils "^2.0.2" - fast-deep-equal "^3.1.3" - file-entry-cache "^6.0.1" - find-up "^5.0.0" - glob-parent "^6.0.2" - globals "^13.19.0" - grapheme-splitter "^1.0.4" - ignore "^5.2.0" - import-fresh "^3.0.0" - imurmurhash "^0.1.4" - is-glob "^4.0.0" - is-path-inside "^3.0.3" - js-sdsl "^4.1.4" - js-yaml "^4.1.0" - json-stable-stringify-without-jsonify "^1.0.1" - levn "^0.4.1" - lodash.merge "^4.6.2" - minimatch "^3.1.2" - natural-compare "^1.4.0" - optionator "^0.9.1" - strip-ansi "^6.0.1" - strip-json-comments "^3.1.0" - text-table "^0.2.0" - -espree@^9.5.1: - version "9.5.1" - resolved "https://registry.yarnpkg.com/espree/-/espree-9.5.1.tgz#4f26a4d5f18905bf4f2e0bd99002aab807e96dd4" - integrity sha512-5yxtHSZXRSW5pvv3hAlXM5+/Oswi1AUFqBmbibKb5s6bp3rGIDkyXU6xCoyuuLhijr4SFwPrXRoZjz0AZDN9tg== - dependencies: - acorn "^8.8.0" - acorn-jsx "^5.3.2" - eslint-visitor-keys "^3.4.0" - -esquery@^1.4.2: - version "1.5.0" - resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.5.0.tgz#6ce17738de8577694edd7361c57182ac8cb0db0b" - integrity sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg== - dependencies: - estraverse "^5.1.0" - -esrecurse@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" - integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== - dependencies: - estraverse "^5.2.0" - -estraverse@^4.1.1: - version "4.3.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" - integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== - -estraverse@^5.1.0, estraverse@^5.2.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" - integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== - -esutils@^2.0.2: - version "2.0.3" - resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" - integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== - -fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" - integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== - -fast-glob@^3.2.9: - version "3.2.12" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.12.tgz#7f39ec99c2e6ab030337142da9e0c18f37afae80" - integrity sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w== - dependencies: - "@nodelib/fs.stat" "^2.0.2" - "@nodelib/fs.walk" "^1.2.3" - glob-parent "^5.1.2" - merge2 "^1.3.0" - micromatch "^4.0.4" - -fast-json-stable-stringify@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" - integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== - -fast-levenshtein@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" - integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== - -fastq@^1.6.0: - version "1.15.0" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.15.0.tgz#d04d07c6a2a68fe4599fea8d2e103a937fae6b3a" - integrity sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw== - dependencies: - reusify "^1.0.4" - -file-entry-cache@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" - integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== - dependencies: - flat-cache "^3.0.4" - -fill-range@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" - integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== - dependencies: - to-regex-range "^5.0.1" - -find-up@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" - integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== - dependencies: - locate-path "^6.0.0" - path-exists "^4.0.0" - -flat-cache@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11" - integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg== - dependencies: - flatted "^3.1.0" - rimraf "^3.0.2" - -flatted@^3.1.0: - version "3.2.7" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.7.tgz#609f39207cb614b89d0765b477cb2d437fbf9787" - integrity sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ== - -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== - -glob-parent@^5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" - integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== - dependencies: - is-glob "^4.0.1" - -glob-parent@^6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" - integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== - dependencies: - is-glob "^4.0.3" - -glob@^7.1.3: - version "7.2.3" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" - integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.1.1" - once "^1.3.0" - path-is-absolute "^1.0.0" - -globals@^13.19.0: - version "13.20.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-13.20.0.tgz#ea276a1e508ffd4f1612888f9d1bad1e2717bf82" - integrity sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ== - dependencies: - type-fest "^0.20.2" - -globby@^11.1.0: - version "11.1.0" - resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" - integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== - dependencies: - array-union "^2.1.0" - dir-glob "^3.0.1" - fast-glob "^3.2.9" - ignore "^5.2.0" - merge2 "^1.4.1" - slash "^3.0.0" - -google-protobuf@^3.6.1: - version "3.21.2" - resolved "https://registry.yarnpkg.com/google-protobuf/-/google-protobuf-3.21.2.tgz#4580a2bea8bbb291ee579d1fefb14d6fa3070ea4" - integrity sha512-3MSOYFO5U9mPGikIYCzK0SaThypfGgS6bHqrUGXG3DPHCrb+txNqeEcns1W0lkGfk0rCyNXm7xB9rMxnCiZOoA== - -grapheme-splitter@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz#9cf3a665c6247479896834af35cf1dbb4400767e" - integrity sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ== - -has-flag@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" - integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== - -ignore@^5.2.0: - version "5.2.4" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.4.tgz#a291c0c6178ff1b960befe47fcdec301674a6324" - integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ== - -import-fresh@^3.0.0, import-fresh@^3.2.1: - version "3.3.0" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" - integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== - dependencies: - parent-module "^1.0.0" - resolve-from "^4.0.0" - -imurmurhash@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" - integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== - -inflight@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== - dependencies: - once "^1.3.0" - wrappy "1" - -inherits@2: - version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - -is-extglob@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" - integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== - -is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" - integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== - dependencies: - is-extglob "^2.1.1" - -is-number@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" - integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== - -is-path-inside@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" - integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== - -isexe@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== - -js-sdsl@^4.1.4: - version "4.4.0" - resolved "https://registry.yarnpkg.com/js-sdsl/-/js-sdsl-4.4.0.tgz#8b437dbe642daa95760400b602378ed8ffea8430" - integrity sha512-FfVSdx6pJ41Oa+CF7RDaFmTnCaFhua+SNYQX74riGOpl96x+2jQCqEfQ2bnXu/5DPCqlRuiqyvTJM0Qjz26IVg== - -js-yaml@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" - integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== - dependencies: - argparse "^2.0.1" - -json-schema-traverse@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" - integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== - -json-stable-stringify-without-jsonify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" - integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== - -levn@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" - integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== - dependencies: - prelude-ls "^1.2.1" - type-check "~0.4.0" - -locate-path@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" - integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== - dependencies: - p-locate "^5.0.0" - -lodash.merge@^4.6.2: - version "4.6.2" - resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" - integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== - -long@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/long/-/long-4.0.0.tgz#9a7b71cfb7d361a194ea555241c92f7468d5bf28" - integrity sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA== - -lru-cache@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" - integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== - dependencies: - yallist "^4.0.0" - -merge2@^1.3.0, merge2@^1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" - integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== - -micromatch@^4.0.4: - version "4.0.5" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" - integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== - dependencies: - braces "^3.0.2" - picomatch "^2.3.1" - -minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" - integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== - dependencies: - brace-expansion "^1.1.7" - -ms@2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" - integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== - -natural-compare-lite@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz#17b09581988979fddafe0201e931ba933c96cbb4" - integrity sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g== - -natural-compare@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" - integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== - -once@^1.3.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== - dependencies: - wrappy "1" - -optionator@^0.9.1: - version "0.9.1" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" - integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== - dependencies: - deep-is "^0.1.3" - fast-levenshtein "^2.0.6" - levn "^0.4.1" - prelude-ls "^1.2.1" - type-check "^0.4.0" - word-wrap "^1.2.3" - -p-limit@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" - integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== - dependencies: - yocto-queue "^0.1.0" - -p-locate@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" - integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== - dependencies: - p-limit "^3.0.2" - -parent-module@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" - integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== - dependencies: - callsites "^3.0.0" - -path-exists@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" - integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== - -path-is-absolute@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== - -path-key@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" - integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== - -path-type@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" - integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== - -picomatch@^2.3.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" - integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== - -prelude-ls@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" - integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== - -protobufjs@6.8.8: - version "6.8.8" - resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-6.8.8.tgz#c8b4f1282fd7a90e6f5b109ed11c84af82908e7c" - integrity sha512-AAmHtD5pXgZfi7GMpllpO3q1Xw1OYldr+dMUlAnffGTAhqkg72WdmSY71uKBF/JuyiKs8psYbtKrhi0ASCD8qw== - dependencies: - "@protobufjs/aspromise" "^1.1.2" - "@protobufjs/base64" "^1.1.2" - "@protobufjs/codegen" "^2.0.4" - "@protobufjs/eventemitter" "^1.1.0" - "@protobufjs/fetch" "^1.1.0" - "@protobufjs/float" "^1.0.2" - "@protobufjs/inquire" "^1.1.0" - "@protobufjs/path" "^1.1.2" - "@protobufjs/pool" "^1.1.0" - "@protobufjs/utf8" "^1.1.0" - "@types/long" "^4.0.0" - "@types/node" "^10.1.0" - long "^4.0.0" - -punycode@^2.1.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.0.tgz#f67fa67c94da8f4d0cfff981aee4118064199b8f" - integrity sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA== - -queue-microtask@^1.2.2: - version "1.2.3" - resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" - integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== - -resolve-from@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" - integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== - -reusify@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" - integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== - -rimraf@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" - integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== - dependencies: - glob "^7.1.3" - -run-parallel@^1.1.9: - version "1.2.0" - resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" - integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== - dependencies: - queue-microtask "^1.2.2" - -semver@5.6.0: - version "5.6.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.6.0.tgz#7e74256fbaa49c75aa7c7a205cc22799cac80004" - integrity sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg== - -semver@^7.3.7: - version "7.3.8" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.8.tgz#07a78feafb3f7b32347d725e33de7e2a2df67798" - integrity sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A== - dependencies: - lru-cache "^6.0.0" - -shebang-command@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" - integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== - dependencies: - shebang-regex "^3.0.0" - -shebang-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" - integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== - -slash@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" - integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== - -source-map-support@0.5.9: - version "0.5.9" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.9.tgz#41bc953b2534267ea2d605bccfa7bfa3111ced5f" - integrity sha512-gR6Rw4MvUlYy83vP0vxoVNzM6t8MUXqNuRsuBmBHQDu1Fh6X015FrLdgoDKcNdkwGubozq0P4N0Q37UyFVr1EA== - dependencies: - buffer-from "^1.0.0" - source-map "^0.6.0" - -source-map@^0.6.0: - version "0.6.1" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" - integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== - -strip-ansi@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== - dependencies: - ansi-regex "^5.0.1" - -strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" - integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== - -supports-color@^7.1.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" - integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== - dependencies: - has-flag "^4.0.0" - -text-table@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" - integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== - -to-regex-range@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" - integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== - dependencies: - is-number "^7.0.0" - -tslib@^1.8.1: - version "1.14.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" - integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== - -tsutils@3.21.0, tsutils@^3.21.0: - version "3.21.0" - resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" - integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA== - dependencies: - tslib "^1.8.1" - -type-check@^0.4.0, type-check@~0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" - integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== - dependencies: - prelude-ls "^1.2.1" - -type-fest@^0.20.2: - version "0.20.2" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" - integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== - -typescript@^5.0.3: - version "5.0.3" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.0.3.tgz#fe976f0c826a88d0a382007681cbb2da44afdedf" - integrity sha512-xv8mOEDnigb/tN9PSMTwSEqAnUvkoXMQlicOb0IUVDBSQCgBSaAAROUZYy2IcUy5qU6XajK5jjjO7TMWqBTKZA== - -uri-js@^4.2.2: - version "4.4.1" - resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" - integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== - dependencies: - punycode "^2.1.0" - -which@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" - integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== - dependencies: - isexe "^2.0.0" - -word-wrap@^1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" - integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== - -wrappy@1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== - -yallist@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" - integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== - -yocto-queue@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" - integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== From ed11b08fc9829b45cd3c5c77b4735c2024036cfb Mon Sep 17 00:00:00 2001 From: Wouter van Oortmerssen Date: Wed, 3 May 2023 13:03:00 -0700 Subject: [PATCH 172/571] GenerateText gives text error on failure --- include/flatbuffers/code_generator.h | 2 + include/flatbuffers/idl.h | 15 +-- include/flatbuffers/registry.h | 6 +- samples/sample_bfbs.cpp | 4 +- samples/sample_text.cpp | 2 +- src/flatc.cpp | 5 +- src/idl_gen_text.cpp | 142 ++++++++++++++------------- tests/fuzz_test.cpp | 2 +- tests/json_test.cpp | 10 +- tests/monster_test.cpp | 9 +- tests/parser_test.cpp | 12 +-- tests/proto_test.cpp | 4 +- tests/test.cpp | 20 ++-- tests/test_assert.h | 1 + 14 files changed, 122 insertions(+), 112 deletions(-) diff --git a/include/flatbuffers/code_generator.h b/include/flatbuffers/code_generator.h index 85d4430cfa..a88b789cb3 100644 --- a/include/flatbuffers/code_generator.h +++ b/include/flatbuffers/code_generator.h @@ -36,6 +36,8 @@ class CodeGenerator { NOT_IMPLEMENTED = 3 }; + std::string status_detail; + // Generate code from the provided `parser`. // // DEPRECATED: prefer using the other overload of GenerateCode for bfbs. diff --git a/include/flatbuffers/idl.h b/include/flatbuffers/idl.h index 6865f12f7a..eb385fab84 100644 --- a/include/flatbuffers/idl.h +++ b/include/flatbuffers/idl.h @@ -1200,13 +1200,14 @@ class Parser : public ParserState { // strict_json adds "quotes" around field names if true. // If the flatbuffer cannot be encoded in JSON (e.g., it contains non-UTF-8 // byte arrays in String values), returns false. -extern bool GenerateTextFromTable(const Parser &parser, const void *table, - const std::string &tablename, - std::string *text); -extern bool GenerateText(const Parser &parser, const void *flatbuffer, - std::string *text); -extern bool GenerateTextFile(const Parser &parser, const std::string &path, - const std::string &file_name); +extern const char *GenerateTextFromTable(const Parser &parser, const void *table, + const std::string &tablename, + std::string *text); +extern const char *GenerateText(const Parser &parser, const void *flatbuffer, + std::string *text); +extern const char *GenerateTextFile(const Parser &parser, + const std::string &path, + const std::string &file_name); // Generate Json schema to string // See idl_gen_json_schema.cpp. diff --git a/include/flatbuffers/registry.h b/include/flatbuffers/registry.h index e8bb8f5e32..80c385c36f 100644 --- a/include/flatbuffers/registry.h +++ b/include/flatbuffers/registry.h @@ -52,8 +52,10 @@ class Registry { Parser parser; if (!LoadSchema(ident, &parser)) return false; // Now we're ready to generate text. - if (!GenerateText(parser, flatbuf, dest)) { - lasterror_ = "unable to generate text for FlatBuffer binary"; + auto err = GenerateText(parser, flatbuf, dest); + if (err) { + lasterror_ = "unable to generate text for FlatBuffer binary: " + + std::string(err); return false; } return true; diff --git a/samples/sample_bfbs.cpp b/samples/sample_bfbs.cpp index 560de70bc1..c0017bea32 100644 --- a/samples/sample_bfbs.cpp +++ b/samples/sample_bfbs.cpp @@ -59,13 +59,13 @@ int main(int /*argc*/, const char * /*argv*/[]) { // to ensure it is correct, we now generate text back from the binary, // and compare the two: std::string jsongen1; - if (!GenerateText(parser1, parser1.builder_.GetBufferPointer(), &jsongen1)) { + if (GenerateText(parser1, parser1.builder_.GetBufferPointer(), &jsongen1)) { printf("Couldn't serialize parsed data to JSON!\n"); return 1; } std::string jsongen2; - if (!GenerateText(parser2, parser2.builder_.GetBufferPointer(), &jsongen2)) { + if (GenerateText(parser2, parser2.builder_.GetBufferPointer(), &jsongen2)) { printf("Couldn't serialize parsed data to JSON!\n"); return 1; } diff --git a/samples/sample_text.cpp b/samples/sample_text.cpp index d46185b36a..8580b523d3 100644 --- a/samples/sample_text.cpp +++ b/samples/sample_text.cpp @@ -45,7 +45,7 @@ int main(int /*argc*/, const char * /*argv*/[]) { // to ensure it is correct, we now generate text back from the binary, // and compare the two: std::string jsongen; - if (!GenerateText(parser, parser.builder_.GetBufferPointer(), &jsongen)) { + if (GenerateText(parser, parser.builder_.GetBufferPointer(), &jsongen)) { printf("Couldn't serialize parsed data to JSON!\n"); return 1; } diff --git a/src/flatc.cpp b/src/flatc.cpp index 4a3ffb70a8..99433c3bf0 100644 --- a/src/flatc.cpp +++ b/src/flatc.cpp @@ -869,7 +869,8 @@ std::unique_ptr FlatCompiler::GenerateCode(const FlatCOptions &options, code_generator->GenerateCode(bfbs_buffer, bfbs_length); if (status != CodeGenerator::Status::OK) { Error("Unable to generate " + code_generator->LanguageName() + - " for " + filebase + " using bfbs generator."); + " for " + filebase + code_generator->status_detail + + " using bfbs generator."); } } else { if ((!code_generator->IsSchemaOnly() || @@ -878,7 +879,7 @@ std::unique_ptr FlatCompiler::GenerateCode(const FlatCOptions &options, filebase) != CodeGenerator::Status::OK) { Error("Unable to generate " + code_generator->LanguageName() + - " for " + filebase); + " for " + filebase + code_generator->status_detail); } } } diff --git a/src/idl_gen_text.cpp b/src/idl_gen_text.cpp index 9de3a6d378..5100e97a1a 100644 --- a/src/idl_gen_text.cpp +++ b/src/idl_gen_text.cpp @@ -54,10 +54,10 @@ struct JsonPrinter { // for a single FlatBuffer value into JSON format. // The general case for scalars: template - bool PrintScalar(T val, const Type &type, int /*indent*/) { + void PrintScalar(T val, const Type &type, int /*indent*/) { if (IsBool(type.base_type)) { text += val != 0 ? "true" : "false"; - return true; // done + return; // done } if (opts.output_enum_identifiers && type.enum_def) { @@ -66,7 +66,7 @@ struct JsonPrinter { text += '\"'; text += ev->name; text += '\"'; - return true; // done + return; // done } else if (val && enum_def.attributes.Lookup("bit_flags")) { const auto entry_len = text.length(); const auto u64 = static_cast(val); @@ -84,7 +84,7 @@ struct JsonPrinter { // Don't slice if (u64 != mask) if (mask && (u64 == mask)) { text[text.length() - 1] = '\"'; - return true; // done + return; // done } text.resize(entry_len); // restore } @@ -92,7 +92,7 @@ struct JsonPrinter { } text += NumToString(val); - return true; + return; } void AddComma() { @@ -102,7 +102,7 @@ struct JsonPrinter { // Print a vector or an array of JSON values, comma seperated, wrapped in // "[]". template - bool PrintContainer(PrintScalarTag, const Container &c, size_t size, + const char *PrintContainer(PrintScalarTag, const Container &c, size_t size, const Type &type, int indent, const uint8_t *) { const auto elem_indent = indent + Indent(); text += '['; @@ -113,18 +113,18 @@ struct JsonPrinter { AddNewLine(); } AddIndent(elem_indent); - if (!PrintScalar(c[i], type, elem_indent)) { return false; } + PrintScalar(c[i], type, elem_indent); } AddNewLine(); AddIndent(indent); text += ']'; - return true; + return nullptr; } // Print a vector or an array of JSON values, comma seperated, wrapped in // "[]". template - bool PrintContainer(PrintPointerTag, const Container &c, size_t size, + const char *PrintContainer(PrintPointerTag, const Container &c, size_t size, const Type &type, int indent, const uint8_t *prev_val) { const auto is_struct = IsStruct(type); const auto elem_indent = indent + Indent(); @@ -139,19 +139,18 @@ struct JsonPrinter { auto ptr = is_struct ? reinterpret_cast( c.Data() + type.struct_def->bytesize * i) : c[i]; - if (!PrintOffset(ptr, type, elem_indent, prev_val, - static_cast(i))) { - return false; - } + auto err = PrintOffset(ptr, type, elem_indent, prev_val, + static_cast(i)); + if (err) return err; } AddNewLine(); AddIndent(indent); text += ']'; - return true; + return nullptr; } template - bool PrintVector(const void *val, const Type &type, int indent, + const char *PrintVector(const void *val, const Type &type, int indent, const uint8_t *prev_val) { typedef Vector Container; typedef typename PrintTag::type tag; @@ -162,14 +161,15 @@ struct JsonPrinter { // Print an array a sequence of JSON values, comma separated, wrapped in "[]". template - bool PrintArray(const void *val, size_t size, const Type &type, int indent) { + const char *PrintArray(const void *val, size_t size, const Type &type, + int indent) { typedef Array Container; typedef typename PrintTag::type tag; auto &arr = *reinterpret_cast(val); return PrintContainer(tag(), arr, size, type, indent, nullptr); } - bool PrintOffset(const void *val, const Type &type, int indent, + const char *PrintOffset(const void *val, const Type &type, int indent, const uint8_t *prev_val, soffset_t vector_index) { switch (type.base_type) { case BASE_TYPE_UNION: { @@ -186,7 +186,7 @@ struct JsonPrinter { if (enum_val) { return PrintOffset(val, enum_val->union_type, indent, nullptr, -1); } else { - return false; + return "unknown enum value"; } } case BASE_TYPE_STRUCT: @@ -194,8 +194,9 @@ struct JsonPrinter { indent); case BASE_TYPE_STRING: { auto s = reinterpret_cast(val); - return EscapeString(s->c_str(), s->size(), &text, opts.allow_non_utf8, - opts.natural_utf8); + bool ok = EscapeString(s->c_str(), s->size(), &text, opts.allow_non_utf8, + opts.natural_utf8); + return ok ? nullptr : "string contains non-utf8 bytes"; } case BASE_TYPE_VECTOR: { const auto vec_type = type.VectorType(); @@ -203,17 +204,15 @@ struct JsonPrinter { // clang-format off switch (vec_type.base_type) { #define FLATBUFFERS_TD(ENUM, IDLTYPE, CTYPE, ...) \ - case BASE_TYPE_ ## ENUM: \ - if (!PrintVector( \ - val, vec_type, indent, prev_val)) { \ - return false; \ - } \ - break; + case BASE_TYPE_ ## ENUM: { \ + auto err = PrintVector(val, vec_type, indent, prev_val); \ + if (err) return err; \ + break; } FLATBUFFERS_GEN_TYPES(FLATBUFFERS_TD) #undef FLATBUFFERS_TD } // clang-format on - return true; + return nullptr; } case BASE_TYPE_ARRAY: { const auto vec_type = type.VectorType(); @@ -221,12 +220,10 @@ struct JsonPrinter { // clang-format off switch (vec_type.base_type) { #define FLATBUFFERS_TD(ENUM, IDLTYPE, CTYPE, ...) \ - case BASE_TYPE_ ## ENUM: \ - if (!PrintArray( \ - val, type.fixed_length, vec_type, indent)) { \ - return false; \ - } \ - break; + case BASE_TYPE_ ## ENUM: { \ + auto err = PrintArray(val, type.fixed_length, vec_type, indent); \ + if (err) return err; \ + break; } FLATBUFFERS_GEN_TYPES_SCALAR(FLATBUFFERS_TD) // Arrays of scalars or structs are only possible. FLATBUFFERS_GEN_TYPES_POINTER(FLATBUFFERS_TD) @@ -234,9 +231,11 @@ struct JsonPrinter { case BASE_TYPE_ARRAY: FLATBUFFERS_ASSERT(0); } // clang-format on - return true; + return nullptr; } - default: FLATBUFFERS_ASSERT(0); return false; + default: + FLATBUFFERS_ASSERT(0); + return "unknown type"; } } @@ -250,29 +249,28 @@ struct JsonPrinter { // Generate text for a scalar field. template - bool GenField(const FieldDef &fd, const Table *table, bool fixed, + void GenField(const FieldDef &fd, const Table *table, bool fixed, int indent) { if (fixed) { - return PrintScalar( + PrintScalar( reinterpret_cast(table)->GetField(fd.value.offset), fd.value.type, indent); } else if (fd.IsOptional()) { auto opt = table->GetOptional(fd.value.offset); if (opt) { - return PrintScalar(*opt, fd.value.type, indent); + PrintScalar(*opt, fd.value.type, indent); } else { text += "null"; - return true; } } else { - return PrintScalar( + PrintScalar( table->GetField(fd.value.offset, GetFieldDefault(fd)), fd.value.type, indent); } } // Generate text for non-scalar field. - bool GenFieldOffset(const FieldDef &fd, const Table *table, bool fixed, + const char *GenFieldOffset(const FieldDef &fd, const Table *table, bool fixed, int indent, const uint8_t *prev_val) { const void *val = nullptr; if (fixed) { @@ -290,7 +288,7 @@ struct JsonPrinter { auto vec = table->GetPointer *>(fd.value.offset); auto root = flexbuffers::GetRoot(vec->data(), vec->size()); root.ToString(true, opts.strict_json, text); - return true; + return nullptr; } else if (fd.nested_flatbuffer && opts.json_nested_flatbuffers) { auto vec = table->GetPointer *>(fd.value.offset); auto root = GetRoot
(vec->data()); @@ -305,7 +303,8 @@ struct JsonPrinter { // Generate text for a struct or table, values separated by commas, indented, // and bracketed by "{}" - bool GenStruct(const StructDef &struct_def, const Table *table, int indent) { + const char *GenStruct(const StructDef &struct_def, const Table *table, + int indent) { text += '{'; int fieldout = 0; const uint8_t *prev_val = nullptr; @@ -329,11 +328,9 @@ struct JsonPrinter { // clang-format off switch (fd.value.type.base_type) { #define FLATBUFFERS_TD(ENUM, IDLTYPE, CTYPE, ...) \ - case BASE_TYPE_ ## ENUM: \ - if (!GenField(fd, table, struct_def.fixed, elem_indent)) { \ - return false; \ - } \ - break; + case BASE_TYPE_ ## ENUM: { \ + GenField(fd, table, struct_def.fixed, elem_indent); \ + break; } FLATBUFFERS_GEN_TYPES_SCALAR(FLATBUFFERS_TD) #undef FLATBUFFERS_TD // Generate drop-thru case statements for all pointer types: @@ -342,10 +339,11 @@ struct JsonPrinter { FLATBUFFERS_GEN_TYPES_POINTER(FLATBUFFERS_TD) FLATBUFFERS_GEN_TYPE_ARRAY(FLATBUFFERS_TD) #undef FLATBUFFERS_TD - if (!GenFieldOffset(fd, table, struct_def.fixed, elem_indent, prev_val)) { - return false; - } - break; + { + auto err = GenFieldOffset(fd, table, struct_def.fixed, elem_indent, prev_val); + if (err) return err; + break; + } } // clang-format on // Track prev val for use with union types. @@ -359,7 +357,7 @@ struct JsonPrinter { AddNewLine(); AddIndent(indent); text += '}'; - return true; + return nullptr; } JsonPrinter(const Parser &parser, std::string &dest) @@ -371,16 +369,17 @@ struct JsonPrinter { std::string &text; }; -static bool GenerateTextImpl(const Parser &parser, const Table *table, - const StructDef &struct_def, std::string *_text) { +static const char *GenerateTextImpl(const Parser &parser, const Table *table, + const StructDef &struct_def, std::string *_text) { JsonPrinter printer(parser, *_text); - if (!printer.GenStruct(struct_def, table, 0)) { return false; } + auto err = printer.GenStruct(struct_def, table, 0); + if (err) return err; printer.AddNewLine(); - return true; + return nullptr; } // Generate a text representation of a flatbuffer in JSON format. -bool GenerateTextFromTable(const Parser &parser, const void *table, +const char *GenerateTextFromTable(const Parser &parser, const void *table, const std::string &table_name, std::string *_text) { auto struct_def = parser.LookupStruct(table_name); if (struct_def == nullptr) { return false; } @@ -389,7 +388,7 @@ bool GenerateTextFromTable(const Parser &parser, const void *table, } // Generate a text representation of a flatbuffer in JSON format. -bool GenerateText(const Parser &parser, const void *flatbuffer, +const char *GenerateText(const Parser &parser, const void *flatbuffer, std::string *_text) { FLATBUFFERS_ASSERT(parser.root_struct_def_); // call SetRootType() auto root = parser.opts.size_prefixed ? GetSizePrefixedRoot
(flatbuffer) @@ -402,21 +401,24 @@ static std::string TextFileName(const std::string &path, return path + file_name + ".json"; } -bool GenerateTextFile(const Parser &parser, const std::string &path, - const std::string &file_name) { +const char *GenerateTextFile(const Parser &parser, const std::string &path, + const std::string &file_name) { if (parser.opts.use_flexbuffers) { std::string json; parser.flex_root_.ToString(true, parser.opts.strict_json, json); return flatbuffers::SaveFile(TextFileName(path, file_name).c_str(), - json.c_str(), json.size(), true); + json.c_str(), json.size(), true) + ? nullptr + : "SaveFile failed"; } - if (!parser.builder_.GetSize() || !parser.root_struct_def_) return true; + if (!parser.builder_.GetSize() || !parser.root_struct_def_) return nullptr; std::string text; - if (!GenerateText(parser, parser.builder_.GetBufferPointer(), &text)) { - return false; - } + auto err = GenerateText(parser, parser.builder_.GetBufferPointer(), &text); + if (err) return err; return flatbuffers::SaveFile(TextFileName(path, file_name).c_str(), text, - false); + false) + ? nullptr + : "SaveFile failed"; } std::string TextMakeRule(const Parser &parser, const std::string &path, @@ -439,7 +441,11 @@ class TextCodeGenerator : public CodeGenerator { public: Status GenerateCode(const Parser &parser, const std::string &path, const std::string &filename) override { - if (!GenerateTextFile(parser, path, filename)) { return Status::ERROR; } + auto err = GenerateTextFile(parser, path, filename); + if (err) { + status_detail = " (" + std::string(err) + ")"; + return Status::ERROR; + } return Status::OK; } diff --git a/tests/fuzz_test.cpp b/tests/fuzz_test.cpp index b0ba3cd308..f6ee238d7f 100644 --- a/tests/fuzz_test.cpp +++ b/tests/fuzz_test.cpp @@ -275,7 +275,7 @@ void FuzzTest2() { parser.opts.indent_step = 0; auto result = GenerateText(parser, parser.builder_.GetBufferPointer(), &jsongen); - TEST_EQ(result, true); + TEST_NULL(result); if (jsongen != json) { // These strings are larger than a megabyte, so we show the bytes around diff --git a/tests/json_test.cpp b/tests/json_test.cpp index e4249f9ec8..8acbb10eeb 100644 --- a/tests/json_test.cpp +++ b/tests/json_test.cpp @@ -37,7 +37,7 @@ void JsonDefaultTest(const std::string& tests_data_path) { FinishMonsterBuffer(builder, color_monster.Finish()); std::string jsongen; auto result = GenerateText(parser, builder.GetBufferPointer(), &jsongen); - TEST_EQ(result, true); + TEST_NULL(result); // default value of the "color" field is Blue TEST_EQ(std::string::npos != jsongen.find("color: \"Blue\""), true); // default value of the "testf" field is 3.14159 @@ -66,7 +66,7 @@ void JsonEnumsTest(const std::string& tests_data_path) { FinishMonsterBuffer(builder, color_monster.Finish()); std::string jsongen; auto result = GenerateText(parser, builder.GetBufferPointer(), &jsongen); - TEST_EQ(result, true); + TEST_NULL(result); TEST_EQ(std::string::npos != jsongen.find("color: \"Red Blue\""), true); // Test forward compatibility with 'output_enum_identifiers = true'. // Current Color doesn't have '(1u << 2)' field, let's add it. @@ -79,7 +79,7 @@ void JsonEnumsTest(const std::string& tests_data_path) { static_cast((1u << 2) | Color_Blue | Color_Red)); FinishMonsterBuffer(builder, future_color.Finish()); result = GenerateText(parser, builder.GetBufferPointer(), &future_json); - TEST_EQ(result, true); + TEST_NULL(result); TEST_EQ(std::string::npos != future_json.find("color: 13"), true); } @@ -120,7 +120,7 @@ void JsonOptionalTest(const std::string& tests_data_path, bool default_scalars) std::string jsongen; auto result = GenerateText(parser, parser.builder_.GetBufferPointer(), &jsongen); - TEST_EQ(result, true); + TEST_NULL(result); TEST_EQ_STR(jsongen.c_str(), jsonfile.c_str()); } @@ -199,7 +199,7 @@ root_type JsonUnionStructTest; std::string json_generated; auto generate_result = GenerateText(parser, parser.builder_.GetBufferPointer(), &json_generated); - TEST_EQ(true, generate_result); + TEST_NULL(generate_result); TEST_EQ_STR(json_source, json_generated.c_str()); } diff --git a/tests/monster_test.cpp b/tests/monster_test.cpp index ed6d55bf68..2ca3277a9b 100644 --- a/tests/monster_test.cpp +++ b/tests/monster_test.cpp @@ -626,7 +626,7 @@ void TestMonsterExtraFloats(const std::string &tests_data_path) { TEST_EQ(def_extra->d3(), -infinity_d); std::string jsongen; auto result = GenerateText(parser, def_obj, &jsongen); - TEST_EQ(result, true); + TEST_NULL(result); // Check expected default values. TEST_EQ(std::string::npos != jsongen.find("f0: nan"), true); TEST_EQ(std::string::npos != jsongen.find("f1: nan"), true); @@ -777,7 +777,7 @@ void ParseAndGenerateTextTest(const std::string &tests_data_path, bool binary) { std::string jsongen; auto result = GenerateText(parser, parser.builder_.GetBufferPointer(), &jsongen); - TEST_EQ(result, true); + TEST_NULL(result); TEST_EQ_STR(jsongen.c_str(), jsonfile.c_str()); // We can also do the above using the convenient Registry that knows about @@ -815,9 +815,8 @@ void ParseAndGenerateTextTest(const std::string &tests_data_path, bool binary) { // request natural printing for utf-8 strings parser.opts.natural_utf8 = true; parser.opts.strict_json = true; - TEST_EQ( - GenerateText(parser, parser.builder_.GetBufferPointer(), &jsongen_utf8), - true); + TEST_NULL( + GenerateText(parser, parser.builder_.GetBufferPointer(), &jsongen_utf8)); TEST_EQ_STR(jsongen_utf8.c_str(), jsonfile_utf8.c_str()); } diff --git a/tests/parser_test.cpp b/tests/parser_test.cpp index 4d9e0762bc..7bcf62bff2 100644 --- a/tests/parser_test.cpp +++ b/tests/parser_test.cpp @@ -455,8 +455,8 @@ T TestValue(const char *json, const char *type_name, // Check with print. std::string print_back; parser.opts.indent_step = -1; - TEST_EQ(GenerateText(parser, parser.builder_.GetBufferPointer(), &print_back), - true); + TEST_NULL( + GenerateText(parser, parser.builder_.GetBufferPointer(), &print_back)); // restore value from its default if (check_default) { TEST_EQ(parser.Parse(print_back.c_str()), true); } @@ -713,7 +713,7 @@ void UnicodeTest() { parser.opts.indent_step = -1; auto result = GenerateText(parser, parser.builder_.GetBufferPointer(), &jsongen); - TEST_EQ(result, true); + TEST_NULL(result); TEST_EQ_STR(jsongen.c_str(), "{F: \"\\u20AC\\u00A2\\u30E6\\u30FC\\u30B6\\u30FC" "\\u5225\\u30B5\\u30A4\\u30C8\\u20AC\\u0080\\uD83D\\uDE0E\"}"); @@ -733,7 +733,7 @@ void UnicodeTestAllowNonUTF8() { parser.opts.indent_step = -1; auto result = GenerateText(parser, parser.builder_.GetBufferPointer(), &jsongen); - TEST_EQ(result, true); + TEST_NULL(result); TEST_EQ_STR( jsongen.c_str(), "{F: \"\\u20AC\\u00A2\\u30E6\\u30FC\\u30B6\\u30FC" @@ -759,7 +759,7 @@ void UnicodeTestGenerateTextFailsOnNonUTF8() { parser.opts.allow_non_utf8 = false; auto result = GenerateText(parser, parser.builder_.GetBufferPointer(), &jsongen); - TEST_EQ(result, false); + TEST_EQ_STR(result, "string contains non-utf8 bytes"); } void UnicodeSurrogatesTest() { @@ -800,7 +800,7 @@ void UnknownFieldsTest() { parser.opts.indent_step = -1; auto result = GenerateText(parser, parser.builder_.GetBufferPointer(), &jsongen); - TEST_EQ(result, true); + TEST_NULL(result); TEST_EQ_STR(jsongen.c_str(), "{str: \"test\",i: 10}"); } diff --git a/tests/proto_test.cpp b/tests/proto_test.cpp index 6c98bc1409..3480bc57f2 100644 --- a/tests/proto_test.cpp +++ b/tests/proto_test.cpp @@ -317,9 +317,9 @@ void ParseProtoBufAsciiTest() { TEST_EQ(parser.Parse("{ A [1 2] C { B:2 }}"), true); // Similarly, in text output, it should omit these. std::string text; - auto ok = flatbuffers::GenerateText( + auto err = flatbuffers::GenerateText( parser, parser.builder_.GetBufferPointer(), &text); - TEST_EQ(ok, true); + TEST_NULL(err); TEST_EQ_STR(text.c_str(), "{\n A [\n 1\n 2\n ]\n C {\n B: 2\n }\n}\n"); } diff --git a/tests/test.cpp b/tests/test.cpp index 6bc23ed6dc..e7d154d487 100644 --- a/tests/test.cpp +++ b/tests/test.cpp @@ -120,12 +120,12 @@ void GenerateTableTextTest(const std::string &tests_data_path) { std::string jsongen; auto result = GenerateTextFromTable(parser, monster, "MyGame.Example.Monster", &jsongen); - TEST_EQ(result, true); + TEST_NULL(result); // Test sub table const Vec3 *pos = monster->pos(); jsongen.clear(); result = GenerateTextFromTable(parser, pos, "MyGame.Example.Vec3", &jsongen); - TEST_EQ(result, true); + TEST_NULL(result); TEST_EQ_STR( jsongen.c_str(), "{x: 1.0,y: 2.0,z: 3.0,test1: 3.0,test2: \"Green\",test3: {a: 5,b: 6}}"); @@ -133,13 +133,13 @@ void GenerateTableTextTest(const std::string &tests_data_path) { jsongen.clear(); result = GenerateTextFromTable(parser, &test3, "MyGame.Example.Test", &jsongen); - TEST_EQ(result, true); + TEST_NULL(result); TEST_EQ_STR(jsongen.c_str(), "{a: 5,b: 6}"); const Test *test4 = monster->test4()->Get(0); jsongen.clear(); result = GenerateTextFromTable(parser, test4, "MyGame.Example.Test", &jsongen); - TEST_EQ(result, true); + TEST_NULL(result); TEST_EQ_STR(jsongen.c_str(), "{a: 10,b: 20}"); } @@ -337,7 +337,7 @@ void UnionVectorTest(const std::string &tests_data_path) { // Generate text using parsed schema. std::string jsongen; auto result = GenerateText(parser, fbb.GetBufferPointer(), &jsongen); - TEST_EQ(result, true); + TEST_NULL(result); TEST_EQ_STR(jsongen.c_str(), "{\n" " main_character_type: \"Rapunzel\",\n" @@ -955,9 +955,8 @@ void FixedLengthArrayJsonTest(const std::string &tests_data_path, bool binary) { // Export to JSON std::string jsonGen; - TEST_EQ( - GenerateText(parserOrg, parserOrg.builder_.GetBufferPointer(), &jsonGen), - true); + TEST_NULL( + GenerateText(parserOrg, parserOrg.builder_.GetBufferPointer(), &jsonGen)); // Import from JSON TEST_EQ(parserGen.Parse(jsonGen.c_str()), true); @@ -1082,9 +1081,8 @@ void TestEmbeddedBinarySchema(const std::string &tests_data_path) { // Export to JSON std::string jsonGen; - TEST_EQ( - GenerateText(parserOrg, parserOrg.builder_.GetBufferPointer(), &jsonGen), - true); + TEST_NULL( + GenerateText(parserOrg, parserOrg.builder_.GetBufferPointer(), &jsonGen)); // Import from JSON TEST_EQ(parserGen.Parse(jsonGen.c_str()), true); diff --git a/tests/test_assert.h b/tests/test_assert.h index 8b4133827c..75e5c518db 100644 --- a/tests/test_assert.h +++ b/tests/test_assert.h @@ -19,6 +19,7 @@ #define TEST_EQ(exp, val) TestEq(exp, val, "'" #exp "' != '" #val "'", __FILE__, __LINE__, "") #define TEST_NE(exp, val) TestNe(exp, val, "'" #exp "' == '" #val "'", __FILE__, __LINE__, "") #define TEST_ASSERT(val) TestEq(true, !!(val), "'" "true" "' != '" #val "'", __FILE__, __LINE__, "") +#define TEST_NULL(val) TestEq(true, (val) == nullptr, "'" "nullptr" "' != '" #val "'", __FILE__, __LINE__, "") #define TEST_NOTNULL(val) TestEq(true, (val) != nullptr, "'" "nullptr" "' == '" #val "'", __FILE__, __LINE__, "") #define TEST_EQ_STR(exp, val) TestEqStr(exp, val, "'" #exp "' != '" #val "'", __FILE__, __LINE__, "") From 67084b99219967a9ed73848446170a158385a022 Mon Sep 17 00:00:00 2001 From: Wouter van Oortmerssen Date: Wed, 3 May 2023 13:23:53 -0700 Subject: [PATCH 173/571] Fix missing return error string for GenerateText --- src/idl_gen_text.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/idl_gen_text.cpp b/src/idl_gen_text.cpp index 5100e97a1a..1e86737a6d 100644 --- a/src/idl_gen_text.cpp +++ b/src/idl_gen_text.cpp @@ -382,7 +382,7 @@ static const char *GenerateTextImpl(const Parser &parser, const Table *table, const char *GenerateTextFromTable(const Parser &parser, const void *table, const std::string &table_name, std::string *_text) { auto struct_def = parser.LookupStruct(table_name); - if (struct_def == nullptr) { return false; } + if (struct_def == nullptr) { return "unknown struct"; } auto root = static_cast(table); return GenerateTextImpl(parser, root, *struct_def, _text); } From 01a7bc3c58da52ee0b159417b61e0dc6c846bdfa Mon Sep 17 00:00:00 2001 From: Derek Bailey Date: Thu, 4 May 2023 16:12:45 -0700 Subject: [PATCH 174/571] Add binary schema reflection (#7932) * Add binary schema reflection * remove not-used parameter * move logic from object API to base API * forward declare * remove duplicate code gen that was stompping on the edits * reduce to just typedef generation * fixed bazel rules to not stomp * more bazel fixes to support additional generated files --- CMakeLists.txt | 1 - build_defs.bzl | 4 ++- src/idl_gen_cpp.cpp | 22 ++++++++++++++++ tests/BUILD.bazel | 10 +++++++- tests/monster_test_generated.h | 10 ++++++++ tests/test.cpp | 47 ++++++++++++++++++++++++++++------ 6 files changed, 83 insertions(+), 11 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 1fa7a84156..db829a67f8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -614,7 +614,6 @@ if(FLATBUFFERS_BUILD_TESTS) file(COPY "${CMAKE_CURRENT_SOURCE_DIR}/samples" DESTINATION "${CMAKE_CURRENT_BINARY_DIR}") # TODO Add (monster_test.fbs monsterdata_test.json)->monsterdata_test.mon - compile_flatbuffers_schema_to_cpp(tests/monster_test.fbs) compile_flatbuffers_schema_to_binary(tests/monster_test.fbs) compile_flatbuffers_schema_to_cpp_opt(tests/namespace_test/namespace_test1.fbs "--no-includes;--gen-compare;--gen-name-strings") compile_flatbuffers_schema_to_cpp_opt(tests/namespace_test/namespace_test2.fbs "--no-includes;--gen-compare;--gen-name-strings") diff --git a/build_defs.bzl b/build_defs.bzl index 5437d7ae07..e2d21e4546 100644 --- a/build_defs.bzl +++ b/build_defs.bzl @@ -165,6 +165,7 @@ def flatbuffer_cc_library( name, srcs, srcs_filegroup_name = "", + outs = [], out_prefix = "", deps = [], includes = [], @@ -185,6 +186,7 @@ def flatbuffer_cc_library( srcs_filegroup_name: Name of the output filegroup that holds srcs. Pass this filegroup into the `includes` parameter of any other flatbuffer_cc_library that depends on this one's schemas. + outs: Additional outputs expected to be generated by flatc. out_prefix: Prepend this path to the front of all generated files. Usually is a directory name. deps: Optional, list of other flatbuffer_cc_library's to depend on. Cannot be specified @@ -232,7 +234,7 @@ def flatbuffer_cc_library( flatbuffer_library_public( name = srcs_lib, srcs = srcs, - outs = output_headers, + outs = outs + output_headers, language_flag = "-c", out_prefix = out_prefix, includes = includes, diff --git a/src/idl_gen_cpp.cpp b/src/idl_gen_cpp.cpp index ad85847393..922be05acc 100644 --- a/src/idl_gen_cpp.cpp +++ b/src/idl_gen_cpp.cpp @@ -280,6 +280,16 @@ class CppGenerator : public BaseGenerator { if (!opts_.cpp_includes.empty()) { code_ += ""; } } + void GenEmbeddedIncludes() { + if (parser_.opts.binary_schema_gen_embed && parser_.root_struct_def_) { + const std::string file_path = + GeneratedFileName(opts_.include_prefix, file_name_ + "_bfbs", opts_); + code_ += "// For access to the binary schema that produced this file."; + code_ += "#include \"" + file_path + "\""; + code_ += ""; + } + } + std::string EscapeKeyword(const std::string &name) const { return keywords_.find(name) == keywords_.end() ? name : name + "_"; } @@ -408,6 +418,7 @@ class CppGenerator : public BaseGenerator { if (opts_.include_dependence_headers) { GenIncludeDependencies(); } GenExtraIncludes(); + GenEmbeddedIncludes(); FLATBUFFERS_ASSERT(!cur_name_space_); @@ -2152,6 +2163,15 @@ class CppGenerator : public BaseGenerator { code_ += ""; } + // Adds a typedef to the binary schema type so one could get the bfbs based + // on the type at runtime. + void GenBinarySchemaTypeDef(const StructDef *struct_def) { + if (struct_def && opts_.binary_schema_gen_embed) { + code_ += " typedef " + WrapInNameSpace(*struct_def) + + "BinarySchema BinarySchema;"; + } + } + void GenNativeTablePost(const StructDef &struct_def) { if (opts_.gen_compare) { const auto native_name = NativeName(Name(struct_def), &struct_def, opts_); @@ -2687,6 +2707,8 @@ class CppGenerator : public BaseGenerator { code_ += " typedef {{NATIVE_NAME}} NativeTableType;"; } code_ += " typedef {{STRUCT_NAME}}Builder Builder;"; + GenBinarySchemaTypeDef(parser_.root_struct_def_); + if (opts_.g_cpp_std >= cpp::CPP_STD_17) { code_ += " struct Traits;"; } if (opts_.mini_reflect != IDLOptions::kNone) { code_ += diff --git a/tests/BUILD.bazel b/tests/BUILD.bazel index 6cbb4fcf1a..96fd9c1e95 100644 --- a/tests/BUILD.bazel +++ b/tests/BUILD.bazel @@ -1,6 +1,6 @@ load("@aspect_bazel_lib//lib:copy_to_bin.bzl", "copy_to_bin") load("@rules_cc//cc:defs.bzl", "cc_test") -load("//:build_defs.bzl", "flatbuffer_cc_library") +load("//:build_defs.bzl", "DEFAULT_FLATC_ARGS", "flatbuffer_cc_library") package(default_visibility = ["//visibility:private"]) @@ -160,6 +160,7 @@ cc_library( ], hdrs = [ "monster_test.grpc.fb.h", + "monster_test_bfbs_generated.h", "monster_test_generated.h", ], includes = ["."], @@ -182,6 +183,13 @@ flatbuffer_cc_library( flatbuffer_cc_library( name = "monster_test_cc_fbs", srcs = ["monster_test.fbs"], + outs = ["monster_test_bfbs_generated.h"], + flatc_args = DEFAULT_FLATC_ARGS + [ + "--bfbs-comments", + "--bfbs-builtins", + "--bfbs-gen-embed", + "--bfbs-filenames tests", + ], include_paths = ["tests/include_test"], visibility = ["//grpc/tests:__subpackages__"], deps = [":include_test_fbs"], diff --git a/tests/monster_test_generated.h b/tests/monster_test_generated.h index d11788e10c..127522dc1f 100644 --- a/tests/monster_test_generated.h +++ b/tests/monster_test_generated.h @@ -15,6 +15,9 @@ static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && FLATBUFFERS_VERSION_REVISION == 3, "Non-compatible flatbuffers version included"); +// For access to the binary schema that produced this file. +#include "monster_test_bfbs_generated.h" + namespace MyGame { struct InParentNamespace; @@ -946,6 +949,7 @@ struct InParentNamespaceT : public ::flatbuffers::NativeTable { struct InParentNamespace FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { typedef InParentNamespaceT NativeTableType; typedef InParentNamespaceBuilder Builder; + typedef MyGame::Example::MonsterBinarySchema BinarySchema; static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { return InParentNamespaceTypeTable(); } @@ -990,6 +994,7 @@ struct MonsterT : public ::flatbuffers::NativeTable { struct Monster FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { typedef MonsterT NativeTableType; typedef MonsterBuilder Builder; + typedef MyGame::Example::MonsterBinarySchema BinarySchema; static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { return MonsterTypeTable(); } @@ -1037,6 +1042,7 @@ struct TestSimpleTableWithEnumT : public ::flatbuffers::NativeTable { struct TestSimpleTableWithEnum FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { typedef TestSimpleTableWithEnumT NativeTableType; typedef TestSimpleTableWithEnumBuilder Builder; + typedef MyGame::Example::MonsterBinarySchema BinarySchema; static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { return TestSimpleTableWithEnumTypeTable(); } @@ -1097,6 +1103,7 @@ struct StatT : public ::flatbuffers::NativeTable { struct Stat FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { typedef StatT NativeTableType; typedef StatBuilder Builder; + typedef MyGame::Example::MonsterBinarySchema BinarySchema; static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { return StatTypeTable(); } @@ -1201,6 +1208,7 @@ struct ReferrableT : public ::flatbuffers::NativeTable { struct Referrable FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { typedef ReferrableT NativeTableType; typedef ReferrableBuilder Builder; + typedef MyGame::Example::MonsterBinarySchema BinarySchema; static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { return ReferrableTypeTable(); } @@ -1327,6 +1335,7 @@ struct MonsterT : public ::flatbuffers::NativeTable { struct Monster FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { typedef MonsterT NativeTableType; typedef MonsterBuilder Builder; + typedef MyGame::Example::MonsterBinarySchema BinarySchema; static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { return MonsterTypeTable(); } @@ -2429,6 +2438,7 @@ struct TypeAliasesT : public ::flatbuffers::NativeTable { struct TypeAliases FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { typedef TypeAliasesT NativeTableType; typedef TypeAliasesBuilder Builder; + typedef MyGame::Example::MonsterBinarySchema BinarySchema; static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { return TypeAliasesTypeTable(); } diff --git a/tests/test.cpp b/tests/test.cpp index e7d154d487..1faf33e423 100644 --- a/tests/test.cpp +++ b/tests/test.cpp @@ -25,6 +25,7 @@ #include "flatbuffers/flatbuffers.h" #include "flatbuffers/idl.h" #include "flatbuffers/minireflect.h" +#include "flatbuffers/reflection_generated.h" #include "flatbuffers/registry.h" #include "flatbuffers/util.h" #include "fuzz_test.h" @@ -912,7 +913,7 @@ void NativeTypeTest() { // Guard against -Wunused-function on platforms without file tests. #ifndef FLATBUFFERS_NO_FILE_TESTS // VS10 does not support typed enums, exclude from tests -#if !defined(_MSC_VER) || _MSC_VER >= 1700 +# if !defined(_MSC_VER) || _MSC_VER >= 1700 void FixedLengthArrayJsonTest(const std::string &tests_data_path, bool binary) { // load FlatBuffer schema (.fbs) and JSON from disk std::string schemafile; @@ -1031,7 +1032,7 @@ void FixedLengthArraySpanTest(const std::string &tests_data_path) { std::equal(const_d_c.begin(), const_d_c.end(), mutable_d_c.begin())); } // test little endian array of int32 -# if FLATBUFFERS_LITTLEENDIAN +# if FLATBUFFERS_LITTLEENDIAN { flatbuffers::span const_d_a = flatbuffers::make_span(*const_nested.a()); @@ -1046,12 +1047,12 @@ void FixedLengthArraySpanTest(const std::string &tests_data_path) { TEST_ASSERT( std::equal(const_d_a.begin(), const_d_a.end(), mutable_d_a.begin())); } -# endif +# endif } -#else +# else void FixedLengthArrayJsonTest(bool /*binary*/) {} void FixedLengthArraySpanTest() {} -#endif +# endif void TestEmbeddedBinarySchema(const std::string &tests_data_path) { // load JSON from disk @@ -1101,6 +1102,37 @@ void TestEmbeddedBinarySchema(const std::string &tests_data_path) { } #endif +template void EmbeddedSchemaAccessByType() { + // Get the binary schema from the Type itself. + // Verify the schema is OK. + flatbuffers::Verifier verifierEmbeddedSchema( + T::TableType::BinarySchema::data(), T::TableType::BinarySchema::size()); + TEST_EQ(reflection::VerifySchemaBuffer(verifierEmbeddedSchema), true); + + // Reflect it. + auto schema = reflection::GetSchema(T::TableType::BinarySchema::data()); + + // This should equal the expected root table. + TEST_EQ_STR(schema->root_table()->name()->c_str(), "MyGame.Example.Monster"); +} + +void EmbeddedSchemaAccess() { + // Get the binary schema for the monster. + // Verify the schema is OK. + flatbuffers::Verifier verifierEmbeddedSchema(Monster::BinarySchema::data(), + Monster::BinarySchema::size()); + TEST_EQ(reflection::VerifySchemaBuffer(verifierEmbeddedSchema), true); + + // Reflect it. + auto schema = reflection::GetSchema(Monster::BinarySchema::data()); + + // This should equal the expected root table. + TEST_EQ_STR(schema->root_table()->name()->c_str(), "MyGame.Example.Monster"); + + // Repeat above, but do so through a template parameter: + EmbeddedSchemaAccessByType(); +} + void NestedVerifierTest() { // Create a nested monster. flatbuffers::FlatBufferBuilder nested_builder; @@ -1458,9 +1490,7 @@ void NativeInlineTableVectorTest() { TestNativeInlineTableT unpacked; root->UnPackTo(&unpacked); - for (int i = 0; i < 10; ++i) { - TEST_ASSERT(unpacked.t[i] == test.t[i]); - } + for (int i = 0; i < 10; ++i) { TEST_ASSERT(unpacked.t[i] == test.t[i]); } TEST_ASSERT(unpacked.t == test.t); } @@ -1620,6 +1650,7 @@ int FlatBufferTests(const std::string &tests_data_path) { StructKeyInStructTest(); NestedStructKeyInStructTest(); FixedSizedStructArrayKeyInStructTest(); + EmbeddedSchemaAccess(); return 0; } } // namespace From 08efe60954595c7df0295872e53efaf6c9325f5b Mon Sep 17 00:00:00 2001 From: Derek Bailey Date: Thu, 4 May 2023 16:25:50 -0700 Subject: [PATCH 175/571] remove defining generated files in test srcs --- CMakeLists.txt | 23 ----------------------- 1 file changed, 23 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index db829a67f8..53f79db596 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -236,29 +236,6 @@ set(FlatBuffers_Tests_SRCS tests/alignment_test.cpp include/flatbuffers/code_generators.h src/code_generators.cpp - # file generate by running compiler on tests/monster_test.fbs - ${CMAKE_CURRENT_BINARY_DIR}/tests/monster_test_generated.h - # file generate by running compiler on namespace_test/namespace_test1.fbs - ${CMAKE_CURRENT_BINARY_DIR}/tests/namespace_test/namespace_test1_generated.h - ${CMAKE_CURRENT_BINARY_DIR}/tests/namespace_test/namespace_test2_generated.h - # file generate by running compiler on union_vector/union_vector.fbs - ${CMAKE_CURRENT_BINARY_DIR}/tests/union_vector/union_vector_generated.h - # file generate by running compiler on tests/arrays_test.fbs - ${CMAKE_CURRENT_BINARY_DIR}/tests/arrays_test_generated.h - # file generate by running compiler on tests/native_type_test.fbs - ${CMAKE_CURRENT_BINARY_DIR}/tests/native_type_test_generated.h - # file generate by running compiler on tests/monster_extra.fbs - ${CMAKE_CURRENT_BINARY_DIR}/tests/monster_extra_generated.h - # file generate by running compiler on tests/monster_test.fbs - ${CMAKE_CURRENT_BINARY_DIR}/tests/monster_test_bfbs_generated.h - # file generate by running compiler on tests/optional_scalars.fbs - ${CMAKE_CURRENT_BINARY_DIR}/tests/optional_scalars_generated.h - # file generate by running compiler on tests/native_inline_table_test.fbs - ${CMAKE_CURRENT_BINARY_DIR}/tests/native_inline_table_test_generated.h - # file generate by running compiler on tests/alignment_test.fbs - ${CMAKE_CURRENT_BINARY_DIR}/tests/alignment_test_generated.h - # file generate by running compiler on tests/key_field/key_field_sample.fbs - ${CMAKE_CURRENT_BINARY_DIR}/tests/key_field/key_field_sample_generated.h ) set(FlatBuffers_Tests_CPP17_SRCS From ef5ae488dd5c5574b804208d098509a011e48e54 Mon Sep 17 00:00:00 2001 From: Derek Bailey Date: Fri, 5 May 2023 12:08:09 -0700 Subject: [PATCH 176/571] Rework cmake flatc codegeneration (#7938) * start fixing the code generation steps * reworked flatc generation in cmake --- CMakeLists.txt | 170 ++++-------------- samples/monster_generated.h | 18 +- scripts/generate_code.py | 58 ++++-- tests/alignment_test_generated.h | 16 +- tests/arrays_test_generated.h | 12 +- tests/monster_extra_generated.h | 8 +- tests/monster_test_generated.h | 50 +++--- .../ext_only/monster_test_generated.hpp | 50 +++--- .../filesuffix_only/monster_test_suffix.h | 50 +++--- .../monster_test_suffix.hpp | 50 +++--- .../namespace_test2_generated.h | 20 +-- tests/native_inline_table_test_generated.h | 2 +- tests/native_type_test_generated.h | 8 +- tests/optional_scalars_generated.h | 8 +- tests/union_vector/union_vector_generated.h | 8 +- 15 files changed, 222 insertions(+), 306 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 53f79db596..885984db4e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -21,7 +21,7 @@ option(FLATBUFFERS_BUILD_FLATC "Enable the build of the flatbuffers compiler" ON) option(FLATBUFFERS_STATIC_FLATC "Build flatbuffers compiler with -static flag" OFF) -option(FLATBUFFERS_BUILD_FLATHASH "Enable the build of flathash" ON) +option(FLATBUFFERS_BUILD_FLATHASH "Enable the build of flathash" OFF) option(FLATBUFFERS_BUILD_BENCHMARKS "Enable the build of flatbenchmark." OFF) option(FLATBUFFERS_BUILD_GRPCTEST "Enable the build of grpctest" OFF) @@ -243,32 +243,21 @@ set(FlatBuffers_Tests_CPP17_SRCS tests/test_assert.h tests/test_assert.cpp tests/cpp17/test_cpp17.cpp - # file generate by running compiler on tests/monster_test.fbs - ${CMAKE_CURRENT_BINARY_DIR}/tests/cpp17/generated_cpp17/monster_test_generated.h - ${CMAKE_CURRENT_BINARY_DIR}/tests/monster_test_generated.h - ${CMAKE_CURRENT_BINARY_DIR}/tests/cpp17/generated_cpp17/optional_scalars_generated.h - ${CMAKE_CURRENT_BINARY_DIR}/tests/optional_scalars_generated.h ) set(FlatBuffers_Sample_Binary_SRCS include/flatbuffers/flatbuffers.h samples/sample_binary.cpp - # file generated by running compiler on samples/monster.fbs - ${CMAKE_CURRENT_BINARY_DIR}/samples/monster_generated.h ) set(FlatBuffers_Sample_Text_SRCS ${FlatBuffers_Library_SRCS} samples/sample_text.cpp - # file generated by running compiler on samples/monster.fbs - ${CMAKE_CURRENT_BINARY_DIR}/samples/monster_generated.h ) set(FlatBuffers_Sample_BFBS_SRCS ${FlatBuffers_Library_SRCS} samples/sample_bfbs.cpp - # file generated by running compiler on samples/monster.fbs - ${CMAKE_CURRENT_BINARY_DIR}/samples/monster_generated.h ) set(FlatBuffers_GRPCTest_SRCS @@ -284,8 +273,6 @@ set(FlatBuffers_GRPCTest_SRCS tests/test_builder.cpp grpc/tests/grpctest.cpp grpc/tests/message_builder_test.cpp - # file generate by running compiler on tests/monster_test.fbs - ${CMAKE_CURRENT_BINARY_DIR}/tests/monster_test_generated.h ) # TODO(dbaileychess): Figure out how this would now work. I posted a question on @@ -500,144 +487,64 @@ if(FLATBUFFERS_BUILD_SHAREDLIB) endif() endif() -# Global list of generated files. -# Use the global property to be independent of PARENT_SCOPE. -set_property(GLOBAL PROPERTY FBS_GENERATED_OUTPUTS) - -function(get_generated_output generated_files) - get_property(tmp GLOBAL PROPERTY FBS_GENERATED_OUTPUTS) - set(${generated_files} ${tmp} PARENT_SCOPE) -endfunction(get_generated_output) - -function(register_generated_output file_name) - get_property(tmp GLOBAL PROPERTY FBS_GENERATED_OUTPUTS) - list(APPEND tmp ${file_name}) - set_property(GLOBAL PROPERTY FBS_GENERATED_OUTPUTS ${tmp}) -endfunction(register_generated_output) - -function(compile_flatbuffers_schema_to_cpp_opt SRC_FBS OPT) - if(FLATBUFFERS_BUILD_LEGACY) - set(OPT ${OPT};--cpp-std c++0x) - else() - # --cpp-std is defined by flatc default settings. - endif() - message(STATUS "`${SRC_FBS}`: add generation of C++ code with '${OPT}'") +function(compile_schema SRC_FBS OPT OUT_GEN_FILE) get_filename_component(SRC_FBS_DIR ${SRC_FBS} PATH) string(REGEX REPLACE "\\.fbs$" "_generated.h" GEN_HEADER ${SRC_FBS}) - add_custom_command( - OUTPUT ${GEN_HEADER} - COMMAND "${FLATBUFFERS_FLATC_EXECUTABLE}" - --cpp --gen-mutable --gen-object-api --reflect-names - --cpp-ptr-type flatbuffers::unique_ptr # Used to test with C++98 STLs - ${OPT} - -I "${CMAKE_CURRENT_SOURCE_DIR}/tests/include_test" - -o "${SRC_FBS_DIR}" - "${CMAKE_CURRENT_SOURCE_DIR}/${SRC_FBS}" - DEPENDS flatc - COMMENT "Run generation: '${GEN_HEADER}'") - register_generated_output(${GEN_HEADER}) -endfunction() - -function(compile_flatbuffers_schema_to_cpp SRC_FBS) - compile_flatbuffers_schema_to_cpp_opt(${SRC_FBS} "--no-includes;--gen-compare") + add_custom_command(TARGET flatc POST_BUILD + COMMAND "${FLATBUFFERS_FLATC_EXECUTABLE}" + ${OPT} + -o "${SRC_FBS_DIR}" + "${CMAKE_CURRENT_SOURCE_DIR}/${SRC_FBS}" + BYPRODUCTS ${GEN_HEADER} + COMMENT "flatc generation: `${SRC_FBS}` -> `${GEN_HEADER}`" + ) + set(${OUT_GEN_FILE} ${GEN_HEADER} PARENT_SCOPE) endfunction() -function(compile_flatbuffers_schema_to_binary SRC_FBS) - message(STATUS "`${SRC_FBS}`: add generation of binary (.bfbs) schema") - get_filename_component(SRC_FBS_DIR ${SRC_FBS} PATH) - string(REGEX REPLACE "\\.fbs$" ".bfbs" GEN_BINARY_SCHEMA ${SRC_FBS}) - # For details about flags see generate_code.py - add_custom_command( - OUTPUT ${GEN_BINARY_SCHEMA} - COMMAND "${FLATBUFFERS_FLATC_EXECUTABLE}" - -b --schema --bfbs-comments --bfbs-builtins - --bfbs-filenames "${CMAKE_CURRENT_SOURCE_DIR}/${SRC_FBS_DIR}" - -I "${CMAKE_CURRENT_SOURCE_DIR}/tests/include_test" - -o "${SRC_FBS_DIR}" - "${CMAKE_CURRENT_SOURCE_DIR}/${SRC_FBS}" - DEPENDS flatc - COMMENT "Run generation: '${GEN_BINARY_SCHEMA}'") - register_generated_output(${GEN_BINARY_SCHEMA}) +function(compile_schema_for_test SRC_FBS OPT) + compile_schema("${SRC_FBS}" "${OPT}" GEN_FILE) + target_sources(flattests PRIVATE ${GEN_FILE}) endfunction() -function(compile_flatbuffers_schema_to_embedded_binary SRC_FBS OPT) - if(FLATBUFFERS_BUILD_LEGACY) - set(OPT ${OPT};--cpp-std c++0x) - else() - # --cpp-std is defined by flatc default settings. - endif() - message(STATUS "`${SRC_FBS}`: add generation of C++ embedded binary schema code with '${OPT}'") - get_filename_component(SRC_FBS_DIR ${SRC_FBS} PATH) - string(REGEX REPLACE "\\.fbs$" "_bfbs_generated.h" GEN_BFBS_HEADER ${SRC_FBS}) - # For details about flags see generate_code.py - add_custom_command( - OUTPUT ${GEN_BFBS_HEADER} - COMMAND "${FLATBUFFERS_FLATC_EXECUTABLE}" - --cpp --gen-mutable --gen-object-api --reflect-names - --cpp-ptr-type flatbuffers::unique_ptr # Used to test with C++98 STLs - ${OPT} - --bfbs-comments --bfbs-builtins --bfbs-gen-embed - --bfbs-filenames ${SRC_FBS_DIR} - -I "${CMAKE_CURRENT_SOURCE_DIR}/tests/include_test" - -o "${SRC_FBS_DIR}" - "${CMAKE_CURRENT_SOURCE_DIR}/${SRC_FBS}" - DEPENDS flatc - COMMENT "Run generation: '${GEN_BFBS_HEADER}'") - register_generated_output(${GEN_BFBS_HEADER}) +function(compile_schema_for_samples SRC_FBS OPT) + compile_schema("${SRC_FBS}" "${OPT}" GEN_FILE) + target_sources(flatsamplebinary PRIVATE ${GEN_FILE}) + target_sources(flatsampletext PRIVATE ${GEN_FILE}) + target_sources(flatsamplebfbs PRIVATE ${GEN_FILE}) endfunction() if(FLATBUFFERS_BUILD_TESTS) - file(COPY "${CMAKE_CURRENT_SOURCE_DIR}/tests" DESTINATION "${CMAKE_CURRENT_BINARY_DIR}") - file(COPY "${CMAKE_CURRENT_SOURCE_DIR}/samples" DESTINATION "${CMAKE_CURRENT_BINARY_DIR}") - - # TODO Add (monster_test.fbs monsterdata_test.json)->monsterdata_test.mon - compile_flatbuffers_schema_to_binary(tests/monster_test.fbs) - compile_flatbuffers_schema_to_cpp_opt(tests/namespace_test/namespace_test1.fbs "--no-includes;--gen-compare;--gen-name-strings") - compile_flatbuffers_schema_to_cpp_opt(tests/namespace_test/namespace_test2.fbs "--no-includes;--gen-compare;--gen-name-strings") - compile_flatbuffers_schema_to_cpp_opt(tests/union_vector/union_vector.fbs "--no-includes;--gen-compare;") - compile_flatbuffers_schema_to_cpp(tests/optional_scalars.fbs) - compile_flatbuffers_schema_to_cpp_opt(tests/native_type_test.fbs "") - compile_flatbuffers_schema_to_cpp_opt(tests/arrays_test.fbs "--scoped-enums;--gen-compare") - compile_flatbuffers_schema_to_binary(tests/arrays_test.fbs) - compile_flatbuffers_schema_to_embedded_binary(tests/monster_test.fbs "--no-includes;--gen-compare") - compile_flatbuffers_schema_to_cpp(tests/native_inline_table_test.fbs "--gen-compare") - compile_flatbuffers_schema_to_cpp(tests/alignment_test.fbs "--gen-compare") - compile_flatbuffers_schema_to_cpp(tests/key_field/key_field_sample.fbs) - if(NOT (MSVC AND (MSVC_VERSION LESS 1900))) - compile_flatbuffers_schema_to_cpp(tests/monster_extra.fbs) # Test floating-point NAN/INF. - endif() include_directories(${CMAKE_CURRENT_BINARY_DIR}/tests) add_executable(flattests ${FlatBuffers_Tests_SRCS}) target_link_libraries(flattests PRIVATE $) - target_include_directories(flattests PUBLIC src) - add_dependencies(flattests generated_code) + + # The flattest target needs some generated files + SET(FLATC_OPT --cpp --gen-mutable --gen-object-api --reflect-names) + SET(FLATC_OPT_COMP ${FLATC_OPT};--gen-compare) + + compile_schema_for_test(tests/alignment_test.fbs "${FLATC_OPT_COMP}") + compile_schema_for_test(tests/native_inline_table_test.fbs "${FLATC_OPT_COMP}") + compile_schema_for_test(tests/native_type_test.fbs "${FLATC_OPT}") if(FLATBUFFERS_CODE_SANITIZE) add_fsanitize_to_target(flattests ${FLATBUFFERS_CODE_SANITIZE}) endif() - - compile_flatbuffers_schema_to_cpp(samples/monster.fbs) - compile_flatbuffers_schema_to_binary(samples/monster.fbs) + include_directories(${CMAKE_CURRENT_BINARY_DIR}/samples) add_executable(flatsamplebinary ${FlatBuffers_Sample_Binary_SRCS}) - target_link_libraries(flatsamplebinary PRIVATE $) - add_dependencies(flatsamplebinary generated_code) - add_executable(flatsampletext ${FlatBuffers_Sample_Text_SRCS}) - target_link_libraries(flatsampletext PRIVATE $) - add_dependencies(flatsampletext generated_code) - add_executable(flatsamplebfbs ${FlatBuffers_Sample_BFBS_SRCS}) + + target_link_libraries(flatsamplebinary PRIVATE $) + target_link_libraries(flatsampletext PRIVATE $) target_link_libraries(flatsamplebfbs PRIVATE $) - add_dependencies(flatsamplebfbs generated_code) + + compile_schema_for_samples(samples/monster.fbs "${FLATC_OPT_COMP}") if(FLATBUFFERS_BUILD_CPP17) - # Don't generate header for flattests_cpp17 target. - # This target uses "generated_cpp17/monster_test_generated.h" add_executable(flattests_cpp17 ${FlatBuffers_Tests_CPP17_SRCS}) - add_dependencies(flattests_cpp17 generated_code) target_link_libraries(flattests_cpp17 PRIVATE $) target_compile_features(flattests_cpp17 PRIVATE cxx_std_17) # requires cmake 3.8 @@ -662,7 +569,6 @@ if(FLATBUFFERS_BUILD_GRPCTEST) find_package(protobuf CONFIG REQUIRED) find_package(gRPC CONFIG REQUIRED) add_executable(grpctest ${FlatBuffers_GRPCTest_SRCS}) - add_dependencies(grpctest generated_code) target_link_libraries(grpctext PRIVATE $ @@ -755,16 +661,6 @@ if(FLATBUFFERS_BUILD_TESTS) endif() endif() -# This target is sync-barrier. -# Other generate-dependent targets can depend on 'generated_code' only. -get_generated_output(fbs_generated) -if(fbs_generated) - # message(STATUS "Add generated_code target with files:${fbs_generated}") - add_custom_target(generated_code - DEPENDS ${fbs_generated} - COMMENT "All generated files were updated.") -endif() - include(CMake/BuildFlatBuffers.cmake) if(UNIX) diff --git a/samples/monster_generated.h b/samples/monster_generated.h index 7682e1915c..34d1a67b96 100644 --- a/samples/monster_generated.h +++ b/samples/monster_generated.h @@ -237,13 +237,13 @@ inline bool operator!=(const Vec3 &lhs, const Vec3 &rhs) { struct MonsterT : public ::flatbuffers::NativeTable { typedef Monster TableType; - flatbuffers::unique_ptr pos{}; + std::unique_ptr pos{}; int16_t mana = 150; int16_t hp = 100; std::string name{}; std::vector inventory{}; MyGame::Sample::Color color = MyGame::Sample::Color_Blue; - std::vector> weapons{}; + std::vector> weapons{}; MyGame::Sample::EquipmentUnion equipped{}; std::vector path{}; MonsterT() = default; @@ -556,7 +556,7 @@ inline bool operator==(const MonsterT &lhs, const MonsterT &rhs) { (lhs.name == rhs.name) && (lhs.inventory == rhs.inventory) && (lhs.color == rhs.color) && - (lhs.weapons.size() == rhs.weapons.size() && std::equal(lhs.weapons.cbegin(), lhs.weapons.cend(), rhs.weapons.cbegin(), [](flatbuffers::unique_ptr const &a, flatbuffers::unique_ptr const &b) { return (a == b) || (a && b && *a == *b); })) && + (lhs.weapons.size() == rhs.weapons.size() && std::equal(lhs.weapons.cbegin(), lhs.weapons.cend(), rhs.weapons.cbegin(), [](std::unique_ptr const &a, std::unique_ptr const &b) { return (a == b) || (a && b && *a == *b); })) && (lhs.equipped == rhs.equipped) && (lhs.path == rhs.path); } @@ -601,13 +601,13 @@ inline MonsterT *Monster::UnPack(const ::flatbuffers::resolver_function_t *_reso inline void Monster::UnPackTo(MonsterT *_o, const ::flatbuffers::resolver_function_t *_resolver) const { (void)_o; (void)_resolver; - { auto _e = pos(); if (_e) _o->pos = flatbuffers::unique_ptr(new MyGame::Sample::Vec3(*_e)); } + { auto _e = pos(); if (_e) _o->pos = std::unique_ptr(new MyGame::Sample::Vec3(*_e)); } { auto _e = mana(); _o->mana = _e; } { auto _e = hp(); _o->hp = _e; } { auto _e = name(); if (_e) _o->name = _e->str(); } { auto _e = inventory(); if (_e) { _o->inventory.resize(_e->size()); std::copy(_e->begin(), _e->end(), _o->inventory.begin()); } } { auto _e = color(); _o->color = _e; } - { auto _e = weapons(); if (_e) { _o->weapons.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { if(_o->weapons[_i]) { _e->Get(_i)->UnPackTo(_o->weapons[_i].get(), _resolver); } else { _o->weapons[_i] = flatbuffers::unique_ptr(_e->Get(_i)->UnPack(_resolver)); }; } } else { _o->weapons.resize(0); } } + { auto _e = weapons(); if (_e) { _o->weapons.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { if(_o->weapons[_i]) { _e->Get(_i)->UnPackTo(_o->weapons[_i].get(), _resolver); } else { _o->weapons[_i] = std::unique_ptr(_e->Get(_i)->UnPack(_resolver)); }; } } else { _o->weapons.resize(0); } } { auto _e = equipped_type(); _o->equipped.type = _e; } { auto _e = equipped(); if (_e) _o->equipped.value = MyGame::Sample::EquipmentUnion::UnPack(_e, equipped_type(), _resolver); } { auto _e = path(); if (_e) { _o->path.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->path[_i] = *_e->Get(_i); } } else { _o->path.resize(0); } } @@ -905,16 +905,16 @@ inline void FinishSizePrefixedMonsterBuffer( fbb.FinishSizePrefixed(root); } -inline flatbuffers::unique_ptr UnPackMonster( +inline std::unique_ptr UnPackMonster( const void *buf, const ::flatbuffers::resolver_function_t *res = nullptr) { - return flatbuffers::unique_ptr(GetMonster(buf)->UnPack(res)); + return std::unique_ptr(GetMonster(buf)->UnPack(res)); } -inline flatbuffers::unique_ptr UnPackSizePrefixedMonster( +inline std::unique_ptr UnPackSizePrefixedMonster( const void *buf, const ::flatbuffers::resolver_function_t *res = nullptr) { - return flatbuffers::unique_ptr(GetSizePrefixedMonster(buf)->UnPack(res)); + return std::unique_ptr(GetSizePrefixedMonster(buf)->UnPack(res)); } } // namespace Sample diff --git a/scripts/generate_code.py b/scripts/generate_code.py index 6c18c7f8a6..57af85ca56 100755 --- a/scripts/generate_code.py +++ b/scripts/generate_code.py @@ -28,6 +28,7 @@ samples_path = Path(root_path, "samples") reflection_path = Path(root_path, "reflection") + # Generate the code for flatbuffers reflection schema def flatc_reflection(options, location, target): full_options = ["--no-prefix"] + options @@ -45,6 +46,7 @@ def flatc_reflection(options, location, target): shutil.move(str(new_reflection_path), str(original_reflection_path)) shutil.rmtree(str(Path(reflection_path, temp_dir))) + def flatc_annotate(schema, file, include=None, cwd=tests_path): cmd = [str(flatc_path)] if include: @@ -52,6 +54,7 @@ def flatc_annotate(schema, file, include=None, cwd=tests_path): cmd += ["--annotate", schema, file] result = subprocess.run(cmd, cwd=str(cwd), check=True) + # Glob a pattern relative to file path def glob(path, pattern): return [str(p) for p in path.glob(pattern)] @@ -66,8 +69,6 @@ def glob(path, pattern): CPP_OPTS = [ "--cpp", "--gen-compare", - "--cpp-ptr-type", - "flatbuffers::unique_ptr", ] + (["--cpp-std", "c++0x"] if args.cpp_0x else []) CPP_17_OPTS = NO_INCL_OPTS + [ @@ -97,7 +98,7 @@ def glob(path, pattern): "--swift", "--gen-json-emit", "--bfbs-filenames", - str(swift_code_gen) + str(swift_code_gen), ] JAVA_OPTS = ["--java"] KOTLIN_OPTS = ["--kotlin"] @@ -128,22 +129,19 @@ def glob(path, pattern): ) flatc( - NO_INCL_OPTS - + DART_OPTS, + NO_INCL_OPTS + DART_OPTS, schema="include_test/include_test1.fbs", include="include_test/sub", ) flatc( - NO_INCL_OPTS - + DART_OPTS, + NO_INCL_OPTS + DART_OPTS, schema="include_test/sub/include_test2.fbs", include="include_test", ) flatc( - NO_INCL_OPTS - + TS_OPTS, + NO_INCL_OPTS + TS_OPTS, cwd=ts_code_gen, schema="../monster_test.fbs", include="../include_test", @@ -209,6 +207,23 @@ def glob(path, pattern): ], ) +flatc( + [ + "--cpp", + "--reflect-names", + "--no-includes", + "--gen-mutable", + "--gen-object-api", + "--gen-compare", + "--gen-name-strings", + ], + prefix="namespace_test", + schema=[ + "namespace_test/namespace_test1.fbs", + "namespace_test/namespace_test2.fbs", + ], +) + flatc( BASE_OPTS + CPP_OPTS + CS_OPTS + JAVA_OPTS + KOTLIN_OPTS + PHP_OPTS, prefix="union_vector", @@ -268,13 +283,11 @@ def glob(path, pattern): flatc_annotate( schema="../reflection/reflection.fbs", file="monster_test.bfbs", - include="include_test" + include="include_test", ) flatc_annotate( - schema="monster_test.fbs", - file="monsterdata_test.mon", - include="include_test" + schema="monster_test.fbs", file="monsterdata_test.mon", include="include_test" ) flatc( @@ -358,7 +371,7 @@ def glob(path, pattern): flatc( CS_OPTS + ["--gen-object-api", "--gen-onefile"], prefix="union_value_collsion", - schema="union_value_collision.fbs" + schema="union_value_collision.fbs", ) # Generate string/vector default code for tests @@ -415,13 +428,13 @@ def glob(path, pattern): flatc( SWIFT_OPTS_CODE_GEN + BASE_OPTS + ["--grpc", "--swift-implementation-only"], schema="test_import.fbs", - cwd=swift_code_gen + cwd=swift_code_gen, ) flatc( SWIFT_OPTS_CODE_GEN + NO_INCL_OPTS + ["--grpc"], schema="test_no_include.fbs", - cwd=swift_code_gen + cwd=swift_code_gen, ) # Swift Wasm Tests @@ -454,7 +467,9 @@ def glob(path, pattern): schema="monster_test.fbs", ) flatc( - CPP_OPTS + NO_INCL_OPTS + ["--grpc", "--filename-suffix", "_suffix", "--filename-ext", "hpp"], + CPP_OPTS + + NO_INCL_OPTS + + ["--grpc", "--filename-suffix", "_suffix", "--filename-ext", "hpp"], include="include_test", prefix="monster_test_suffix", schema="monster_test.fbs", @@ -482,7 +497,11 @@ def glob(path, pattern): # Private annotations annotations_test_schema = "private_annotation_test.fbs" -flatc(RUST_OPTS + ["--no-leak-private-annotation", "--gen-object-api"], prefix="private_annotation_test", schema=annotations_test_schema) +flatc( + RUST_OPTS + ["--no-leak-private-annotation", "--gen-object-api"], + prefix="private_annotation_test", + schema=annotations_test_schema, +) # Sample files samples_schema = "monster.fbs" @@ -510,7 +529,8 @@ def glob(path, pattern): # Java Reflection flatc_reflection( ["-j", "--java-package-prefix", "com.google.flatbuffers"], - "java/src/main/java", "com/google/flatbuffers/reflection" + "java/src/main/java", + "com/google/flatbuffers/reflection", ) # Annotation diff --git a/tests/alignment_test_generated.h b/tests/alignment_test_generated.h index 0c61c8fe31..71421cacaf 100644 --- a/tests/alignment_test_generated.h +++ b/tests/alignment_test_generated.h @@ -130,7 +130,7 @@ inline bool operator!=(const BadAlignmentLarge &lhs, const BadAlignmentLarge &rh struct OuterLargeT : public ::flatbuffers::NativeTable { typedef OuterLarge TableType; - flatbuffers::unique_ptr large{}; + std::unique_ptr large{}; OuterLargeT() = default; OuterLargeT(const OuterLargeT &o); OuterLargeT(OuterLargeT&&) FLATBUFFERS_NOEXCEPT = default; @@ -192,7 +192,7 @@ ::flatbuffers::Offset CreateOuterLarge(::flatbuffers::FlatBufferBuil struct BadAlignmentRootT : public ::flatbuffers::NativeTable { typedef BadAlignmentRoot TableType; - flatbuffers::unique_ptr large{}; + std::unique_ptr large{}; std::vector small{}; BadAlignmentRootT() = default; BadAlignmentRootT(const BadAlignmentRootT &o); @@ -308,7 +308,7 @@ inline OuterLargeT *OuterLarge::UnPack(const ::flatbuffers::resolver_function_t inline void OuterLarge::UnPackTo(OuterLargeT *_o, const ::flatbuffers::resolver_function_t *_resolver) const { (void)_o; (void)_resolver; - { auto _e = large(); if (_e) _o->large = flatbuffers::unique_ptr(new BadAlignmentLarge(*_e)); } + { auto _e = large(); if (_e) _o->large = std::unique_ptr(new BadAlignmentLarge(*_e)); } } inline ::flatbuffers::Offset OuterLarge::Pack(::flatbuffers::FlatBufferBuilder &_fbb, const OuterLargeT* _o, const ::flatbuffers::rehasher_function_t *_rehasher) { @@ -357,7 +357,7 @@ inline BadAlignmentRootT *BadAlignmentRoot::UnPack(const ::flatbuffers::resolver inline void BadAlignmentRoot::UnPackTo(BadAlignmentRootT *_o, const ::flatbuffers::resolver_function_t *_resolver) const { (void)_o; (void)_resolver; - { auto _e = large(); if (_e) { if(_o->large) { _e->UnPackTo(_o->large.get(), _resolver); } else { _o->large = flatbuffers::unique_ptr(_e->UnPack(_resolver)); } } else if (_o->large) { _o->large.reset(); } } + { auto _e = large(); if (_e) { if(_o->large) { _e->UnPackTo(_o->large.get(), _resolver); } else { _o->large = std::unique_ptr(_e->UnPack(_resolver)); } } else if (_o->large) { _o->large.reset(); } } { auto _e = small(); if (_e) { _o->small.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->small[_i] = *_e->Get(_i); } } else { _o->small.resize(0); } } } @@ -482,16 +482,16 @@ inline void FinishSizePrefixedBadAlignmentRootBuffer( fbb.FinishSizePrefixed(root); } -inline flatbuffers::unique_ptr UnPackBadAlignmentRoot( +inline std::unique_ptr UnPackBadAlignmentRoot( const void *buf, const ::flatbuffers::resolver_function_t *res = nullptr) { - return flatbuffers::unique_ptr(GetBadAlignmentRoot(buf)->UnPack(res)); + return std::unique_ptr(GetBadAlignmentRoot(buf)->UnPack(res)); } -inline flatbuffers::unique_ptr UnPackSizePrefixedBadAlignmentRoot( +inline std::unique_ptr UnPackSizePrefixedBadAlignmentRoot( const void *buf, const ::flatbuffers::resolver_function_t *res = nullptr) { - return flatbuffers::unique_ptr(GetSizePrefixedBadAlignmentRoot(buf)->UnPack(res)); + return std::unique_ptr(GetSizePrefixedBadAlignmentRoot(buf)->UnPack(res)); } #endif // FLATBUFFERS_GENERATED_ALIGNMENTTEST_H_ diff --git a/tests/arrays_test_generated.h b/tests/arrays_test_generated.h index 7df769f4a3..3d137f8920 100644 --- a/tests/arrays_test_generated.h +++ b/tests/arrays_test_generated.h @@ -271,7 +271,7 @@ inline bool operator!=(const ArrayStruct &lhs, const ArrayStruct &rhs) { struct ArrayTableT : public ::flatbuffers::NativeTable { typedef ArrayTable TableType; - flatbuffers::unique_ptr a{}; + std::unique_ptr a{}; ArrayTableT() = default; ArrayTableT(const ArrayTableT &o); ArrayTableT(ArrayTableT&&) FLATBUFFERS_NOEXCEPT = default; @@ -360,7 +360,7 @@ inline ArrayTableT *ArrayTable::UnPack(const ::flatbuffers::resolver_function_t inline void ArrayTable::UnPackTo(ArrayTableT *_o, const ::flatbuffers::resolver_function_t *_resolver) const { (void)_o; (void)_resolver; - { auto _e = a(); if (_e) _o->a = flatbuffers::unique_ptr(new MyGame::Example::ArrayStruct(*_e)); } + { auto _e = a(); if (_e) _o->a = std::unique_ptr(new MyGame::Example::ArrayStruct(*_e)); } } inline ::flatbuffers::Offset ArrayTable::Pack(::flatbuffers::FlatBufferBuilder &_fbb, const ArrayTableT* _o, const ::flatbuffers::rehasher_function_t *_rehasher) { @@ -521,16 +521,16 @@ inline void FinishSizePrefixedArrayTableBuffer( fbb.FinishSizePrefixed(root, ArrayTableIdentifier()); } -inline flatbuffers::unique_ptr UnPackArrayTable( +inline std::unique_ptr UnPackArrayTable( const void *buf, const ::flatbuffers::resolver_function_t *res = nullptr) { - return flatbuffers::unique_ptr(GetArrayTable(buf)->UnPack(res)); + return std::unique_ptr(GetArrayTable(buf)->UnPack(res)); } -inline flatbuffers::unique_ptr UnPackSizePrefixedArrayTable( +inline std::unique_ptr UnPackSizePrefixedArrayTable( const void *buf, const ::flatbuffers::resolver_function_t *res = nullptr) { - return flatbuffers::unique_ptr(GetSizePrefixedArrayTable(buf)->UnPack(res)); + return std::unique_ptr(GetSizePrefixedArrayTable(buf)->UnPack(res)); } } // namespace Example diff --git a/tests/monster_extra_generated.h b/tests/monster_extra_generated.h index 6ed45fe291..ac8f61478c 100644 --- a/tests/monster_extra_generated.h +++ b/tests/monster_extra_generated.h @@ -400,16 +400,16 @@ inline void FinishSizePrefixedMonsterExtraBuffer( fbb.FinishSizePrefixed(root, MonsterExtraIdentifier()); } -inline flatbuffers::unique_ptr UnPackMonsterExtra( +inline std::unique_ptr UnPackMonsterExtra( const void *buf, const ::flatbuffers::resolver_function_t *res = nullptr) { - return flatbuffers::unique_ptr(GetMonsterExtra(buf)->UnPack(res)); + return std::unique_ptr(GetMonsterExtra(buf)->UnPack(res)); } -inline flatbuffers::unique_ptr UnPackSizePrefixedMonsterExtra( +inline std::unique_ptr UnPackSizePrefixedMonsterExtra( const void *buf, const ::flatbuffers::resolver_function_t *res = nullptr) { - return flatbuffers::unique_ptr(GetSizePrefixedMonsterExtra(buf)->UnPack(res)); + return std::unique_ptr(GetSizePrefixedMonsterExtra(buf)->UnPack(res)); } } // namespace MyGame diff --git a/tests/monster_test_generated.h b/tests/monster_test_generated.h index 127522dc1f..f7b8f4aca0 100644 --- a/tests/monster_test_generated.h +++ b/tests/monster_test_generated.h @@ -1267,7 +1267,7 @@ ::flatbuffers::Offset CreateReferrable(::flatbuffers::FlatBufferBuil struct MonsterT : public ::flatbuffers::NativeTable { typedef Monster TableType; - flatbuffers::unique_ptr pos{}; + std::unique_ptr pos{}; int16_t mana = 150; int16_t hp = 100; std::string name{}; @@ -1276,10 +1276,10 @@ struct MonsterT : public ::flatbuffers::NativeTable { MyGame::Example::AnyUnion test{}; std::vector test4{}; std::vector testarrayofstring{}; - std::vector> testarrayoftables{}; - flatbuffers::unique_ptr enemy{}; + std::vector> testarrayoftables{}; + std::unique_ptr enemy{}; std::vector testnestedflatbuffer{}; - flatbuffers::unique_ptr testempty{}; + std::unique_ptr testempty{}; bool testbool = false; int32_t testhashs32_fnv1 = 0; uint32_t testhashu32_fnv1 = 0; @@ -1299,13 +1299,13 @@ struct MonsterT : public ::flatbuffers::NativeTable { std::vector test5{}; std::vector vector_of_longs{}; std::vector vector_of_doubles{}; - flatbuffers::unique_ptr parent_namespace_test{}; - std::vector> vector_of_referrables{}; + std::unique_ptr parent_namespace_test{}; + std::vector> vector_of_referrables{}; ReferrableT *single_weak_reference = nullptr; std::vector vector_of_weak_references{}; - std::vector> vector_of_strong_referrables{}; + std::vector> vector_of_strong_referrables{}; ReferrableT *co_owning_reference = nullptr; - std::vector> vector_of_co_owning_references{}; + std::vector> vector_of_co_owning_references{}; ReferrableT *non_owning_reference = nullptr; std::vector vector_of_non_owning_references{}; MyGame::Example::AnyUniqueAliasesUnion any_unique{}; @@ -1313,7 +1313,7 @@ struct MonsterT : public ::flatbuffers::NativeTable { std::vector vector_of_enums{}; MyGame::Example::Race signed_enum = MyGame::Example::Race_None; std::vector testrequirednestedflatbuffer{}; - std::vector> scalar_key_sorted_tables{}; + std::vector> scalar_key_sorted_tables{}; MyGame::Example::Test native_inline{}; MyGame::Example::LongEnum long_enum_non_enum_default = static_cast(0); MyGame::Example::LongEnum long_enum_normal_default = MyGame::Example::LongEnum_LongOne; @@ -2871,7 +2871,7 @@ inline bool operator==(const MonsterT &lhs, const MonsterT &rhs) { (lhs.test == rhs.test) && (lhs.test4 == rhs.test4) && (lhs.testarrayofstring == rhs.testarrayofstring) && - (lhs.testarrayoftables.size() == rhs.testarrayoftables.size() && std::equal(lhs.testarrayoftables.cbegin(), lhs.testarrayoftables.cend(), rhs.testarrayoftables.cbegin(), [](flatbuffers::unique_ptr const &a, flatbuffers::unique_ptr const &b) { return (a == b) || (a && b && *a == *b); })) && + (lhs.testarrayoftables.size() == rhs.testarrayoftables.size() && std::equal(lhs.testarrayoftables.cbegin(), lhs.testarrayoftables.cend(), rhs.testarrayoftables.cbegin(), [](std::unique_ptr const &a, std::unique_ptr const &b) { return (a == b) || (a && b && *a == *b); })) && ((lhs.enemy == rhs.enemy) || (lhs.enemy && rhs.enemy && *lhs.enemy == *rhs.enemy)) && (lhs.testnestedflatbuffer == rhs.testnestedflatbuffer) && ((lhs.testempty == rhs.testempty) || (lhs.testempty && rhs.testempty && *lhs.testempty == *rhs.testempty)) && @@ -2895,10 +2895,10 @@ inline bool operator==(const MonsterT &lhs, const MonsterT &rhs) { (lhs.vector_of_longs == rhs.vector_of_longs) && (lhs.vector_of_doubles == rhs.vector_of_doubles) && ((lhs.parent_namespace_test == rhs.parent_namespace_test) || (lhs.parent_namespace_test && rhs.parent_namespace_test && *lhs.parent_namespace_test == *rhs.parent_namespace_test)) && - (lhs.vector_of_referrables.size() == rhs.vector_of_referrables.size() && std::equal(lhs.vector_of_referrables.cbegin(), lhs.vector_of_referrables.cend(), rhs.vector_of_referrables.cbegin(), [](flatbuffers::unique_ptr const &a, flatbuffers::unique_ptr const &b) { return (a == b) || (a && b && *a == *b); })) && + (lhs.vector_of_referrables.size() == rhs.vector_of_referrables.size() && std::equal(lhs.vector_of_referrables.cbegin(), lhs.vector_of_referrables.cend(), rhs.vector_of_referrables.cbegin(), [](std::unique_ptr const &a, std::unique_ptr const &b) { return (a == b) || (a && b && *a == *b); })) && (lhs.single_weak_reference == rhs.single_weak_reference) && (lhs.vector_of_weak_references == rhs.vector_of_weak_references) && - (lhs.vector_of_strong_referrables.size() == rhs.vector_of_strong_referrables.size() && std::equal(lhs.vector_of_strong_referrables.cbegin(), lhs.vector_of_strong_referrables.cend(), rhs.vector_of_strong_referrables.cbegin(), [](flatbuffers::unique_ptr const &a, flatbuffers::unique_ptr const &b) { return (a == b) || (a && b && *a == *b); })) && + (lhs.vector_of_strong_referrables.size() == rhs.vector_of_strong_referrables.size() && std::equal(lhs.vector_of_strong_referrables.cbegin(), lhs.vector_of_strong_referrables.cend(), rhs.vector_of_strong_referrables.cbegin(), [](std::unique_ptr const &a, std::unique_ptr const &b) { return (a == b) || (a && b && *a == *b); })) && (lhs.co_owning_reference == rhs.co_owning_reference) && (lhs.vector_of_co_owning_references == rhs.vector_of_co_owning_references) && (lhs.non_owning_reference == rhs.non_owning_reference) && @@ -2908,7 +2908,7 @@ inline bool operator==(const MonsterT &lhs, const MonsterT &rhs) { (lhs.vector_of_enums == rhs.vector_of_enums) && (lhs.signed_enum == rhs.signed_enum) && (lhs.testrequirednestedflatbuffer == rhs.testrequirednestedflatbuffer) && - (lhs.scalar_key_sorted_tables.size() == rhs.scalar_key_sorted_tables.size() && std::equal(lhs.scalar_key_sorted_tables.cbegin(), lhs.scalar_key_sorted_tables.cend(), rhs.scalar_key_sorted_tables.cbegin(), [](flatbuffers::unique_ptr const &a, flatbuffers::unique_ptr const &b) { return (a == b) || (a && b && *a == *b); })) && + (lhs.scalar_key_sorted_tables.size() == rhs.scalar_key_sorted_tables.size() && std::equal(lhs.scalar_key_sorted_tables.cbegin(), lhs.scalar_key_sorted_tables.cend(), rhs.scalar_key_sorted_tables.cbegin(), [](std::unique_ptr const &a, std::unique_ptr const &b) { return (a == b) || (a && b && *a == *b); })) && (lhs.native_inline == rhs.native_inline) && (lhs.long_enum_non_enum_default == rhs.long_enum_non_enum_default) && (lhs.long_enum_normal_default == rhs.long_enum_normal_default) && @@ -3064,7 +3064,7 @@ inline MonsterT *Monster::UnPack(const ::flatbuffers::resolver_function_t *_reso inline void Monster::UnPackTo(MonsterT *_o, const ::flatbuffers::resolver_function_t *_resolver) const { (void)_o; (void)_resolver; - { auto _e = pos(); if (_e) _o->pos = flatbuffers::unique_ptr(new MyGame::Example::Vec3(*_e)); } + { auto _e = pos(); if (_e) _o->pos = std::unique_ptr(new MyGame::Example::Vec3(*_e)); } { auto _e = mana(); _o->mana = _e; } { auto _e = hp(); _o->hp = _e; } { auto _e = name(); if (_e) _o->name = _e->str(); } @@ -3074,10 +3074,10 @@ inline void Monster::UnPackTo(MonsterT *_o, const ::flatbuffers::resolver_functi { auto _e = test(); if (_e) _o->test.value = MyGame::Example::AnyUnion::UnPack(_e, test_type(), _resolver); } { auto _e = test4(); if (_e) { _o->test4.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->test4[_i] = *_e->Get(_i); } } else { _o->test4.resize(0); } } { auto _e = testarrayofstring(); if (_e) { _o->testarrayofstring.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->testarrayofstring[_i] = _e->Get(_i)->str(); } } else { _o->testarrayofstring.resize(0); } } - { auto _e = testarrayoftables(); if (_e) { _o->testarrayoftables.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { if(_o->testarrayoftables[_i]) { _e->Get(_i)->UnPackTo(_o->testarrayoftables[_i].get(), _resolver); } else { _o->testarrayoftables[_i] = flatbuffers::unique_ptr(_e->Get(_i)->UnPack(_resolver)); }; } } else { _o->testarrayoftables.resize(0); } } - { auto _e = enemy(); if (_e) { if(_o->enemy) { _e->UnPackTo(_o->enemy.get(), _resolver); } else { _o->enemy = flatbuffers::unique_ptr(_e->UnPack(_resolver)); } } else if (_o->enemy) { _o->enemy.reset(); } } + { auto _e = testarrayoftables(); if (_e) { _o->testarrayoftables.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { if(_o->testarrayoftables[_i]) { _e->Get(_i)->UnPackTo(_o->testarrayoftables[_i].get(), _resolver); } else { _o->testarrayoftables[_i] = std::unique_ptr(_e->Get(_i)->UnPack(_resolver)); }; } } else { _o->testarrayoftables.resize(0); } } + { auto _e = enemy(); if (_e) { if(_o->enemy) { _e->UnPackTo(_o->enemy.get(), _resolver); } else { _o->enemy = std::unique_ptr(_e->UnPack(_resolver)); } } else if (_o->enemy) { _o->enemy.reset(); } } { auto _e = testnestedflatbuffer(); if (_e) { _o->testnestedflatbuffer.resize(_e->size()); std::copy(_e->begin(), _e->end(), _o->testnestedflatbuffer.begin()); } } - { auto _e = testempty(); if (_e) { if(_o->testempty) { _e->UnPackTo(_o->testempty.get(), _resolver); } else { _o->testempty = flatbuffers::unique_ptr(_e->UnPack(_resolver)); } } else if (_o->testempty) { _o->testempty.reset(); } } + { auto _e = testempty(); if (_e) { if(_o->testempty) { _e->UnPackTo(_o->testempty.get(), _resolver); } else { _o->testempty = std::unique_ptr(_e->UnPack(_resolver)); } } else if (_o->testempty) { _o->testempty.reset(); } } { auto _e = testbool(); _o->testbool = _e; } { auto _e = testhashs32_fnv1(); _o->testhashs32_fnv1 = _e; } { auto _e = testhashu32_fnv1(); _o->testhashu32_fnv1 = _e; } @@ -3097,11 +3097,11 @@ inline void Monster::UnPackTo(MonsterT *_o, const ::flatbuffers::resolver_functi { auto _e = test5(); if (_e) { _o->test5.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->test5[_i] = *_e->Get(_i); } } else { _o->test5.resize(0); } } { auto _e = vector_of_longs(); if (_e) { _o->vector_of_longs.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->vector_of_longs[_i] = _e->Get(_i); } } else { _o->vector_of_longs.resize(0); } } { auto _e = vector_of_doubles(); if (_e) { _o->vector_of_doubles.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->vector_of_doubles[_i] = _e->Get(_i); } } else { _o->vector_of_doubles.resize(0); } } - { auto _e = parent_namespace_test(); if (_e) { if(_o->parent_namespace_test) { _e->UnPackTo(_o->parent_namespace_test.get(), _resolver); } else { _o->parent_namespace_test = flatbuffers::unique_ptr(_e->UnPack(_resolver)); } } else if (_o->parent_namespace_test) { _o->parent_namespace_test.reset(); } } - { auto _e = vector_of_referrables(); if (_e) { _o->vector_of_referrables.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { if(_o->vector_of_referrables[_i]) { _e->Get(_i)->UnPackTo(_o->vector_of_referrables[_i].get(), _resolver); } else { _o->vector_of_referrables[_i] = flatbuffers::unique_ptr(_e->Get(_i)->UnPack(_resolver)); }; } } else { _o->vector_of_referrables.resize(0); } } + { auto _e = parent_namespace_test(); if (_e) { if(_o->parent_namespace_test) { _e->UnPackTo(_o->parent_namespace_test.get(), _resolver); } else { _o->parent_namespace_test = std::unique_ptr(_e->UnPack(_resolver)); } } else if (_o->parent_namespace_test) { _o->parent_namespace_test.reset(); } } + { auto _e = vector_of_referrables(); if (_e) { _o->vector_of_referrables.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { if(_o->vector_of_referrables[_i]) { _e->Get(_i)->UnPackTo(_o->vector_of_referrables[_i].get(), _resolver); } else { _o->vector_of_referrables[_i] = std::unique_ptr(_e->Get(_i)->UnPack(_resolver)); }; } } else { _o->vector_of_referrables.resize(0); } } { auto _e = single_weak_reference(); /*scalar resolver, naked*/ if (_resolver) (*_resolver)(reinterpret_cast(&_o->single_weak_reference), static_cast<::flatbuffers::hash_value_t>(_e)); else _o->single_weak_reference = nullptr; } { auto _e = vector_of_weak_references(); if (_e) { _o->vector_of_weak_references.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { /*vector resolver, naked*/ if (_resolver) (*_resolver)(reinterpret_cast(&_o->vector_of_weak_references[_i]), static_cast<::flatbuffers::hash_value_t>(_e->Get(_i))); else _o->vector_of_weak_references[_i] = nullptr; } } else { _o->vector_of_weak_references.resize(0); } } - { auto _e = vector_of_strong_referrables(); if (_e) { _o->vector_of_strong_referrables.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { if(_o->vector_of_strong_referrables[_i]) { _e->Get(_i)->UnPackTo(_o->vector_of_strong_referrables[_i].get(), _resolver); } else { _o->vector_of_strong_referrables[_i] = flatbuffers::unique_ptr(_e->Get(_i)->UnPack(_resolver)); }; } } else { _o->vector_of_strong_referrables.resize(0); } } + { auto _e = vector_of_strong_referrables(); if (_e) { _o->vector_of_strong_referrables.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { if(_o->vector_of_strong_referrables[_i]) { _e->Get(_i)->UnPackTo(_o->vector_of_strong_referrables[_i].get(), _resolver); } else { _o->vector_of_strong_referrables[_i] = std::unique_ptr(_e->Get(_i)->UnPack(_resolver)); }; } } else { _o->vector_of_strong_referrables.resize(0); } } { auto _e = co_owning_reference(); /*scalar resolver, naked*/ if (_resolver) (*_resolver)(reinterpret_cast(&_o->co_owning_reference), static_cast<::flatbuffers::hash_value_t>(_e)); else _o->co_owning_reference = nullptr; } { auto _e = vector_of_co_owning_references(); if (_e) { _o->vector_of_co_owning_references.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { /*vector resolver, default_ptr_type*/ if (_resolver) (*_resolver)(reinterpret_cast(&_o->vector_of_co_owning_references[_i]), static_cast<::flatbuffers::hash_value_t>(_e->Get(_i)));/* else do nothing */; } } else { _o->vector_of_co_owning_references.resize(0); } } { auto _e = non_owning_reference(); /*scalar resolver, naked*/ if (_resolver) (*_resolver)(reinterpret_cast(&_o->non_owning_reference), static_cast<::flatbuffers::hash_value_t>(_e)); else _o->non_owning_reference = nullptr; } @@ -3113,7 +3113,7 @@ inline void Monster::UnPackTo(MonsterT *_o, const ::flatbuffers::resolver_functi { auto _e = vector_of_enums(); if (_e) { _o->vector_of_enums.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->vector_of_enums[_i] = static_cast(_e->Get(_i)); } } else { _o->vector_of_enums.resize(0); } } { auto _e = signed_enum(); _o->signed_enum = _e; } { auto _e = testrequirednestedflatbuffer(); if (_e) { _o->testrequirednestedflatbuffer.resize(_e->size()); std::copy(_e->begin(), _e->end(), _o->testrequirednestedflatbuffer.begin()); } } - { auto _e = scalar_key_sorted_tables(); if (_e) { _o->scalar_key_sorted_tables.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { if(_o->scalar_key_sorted_tables[_i]) { _e->Get(_i)->UnPackTo(_o->scalar_key_sorted_tables[_i].get(), _resolver); } else { _o->scalar_key_sorted_tables[_i] = flatbuffers::unique_ptr(_e->Get(_i)->UnPack(_resolver)); }; } } else { _o->scalar_key_sorted_tables.resize(0); } } + { auto _e = scalar_key_sorted_tables(); if (_e) { _o->scalar_key_sorted_tables.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { if(_o->scalar_key_sorted_tables[_i]) { _e->Get(_i)->UnPackTo(_o->scalar_key_sorted_tables[_i].get(), _resolver); } else { _o->scalar_key_sorted_tables[_i] = std::unique_ptr(_e->Get(_i)->UnPack(_resolver)); }; } } else { _o->scalar_key_sorted_tables.resize(0); } } { auto _e = native_inline(); if (_e) _o->native_inline = *_e; } { auto _e = long_enum_non_enum_default(); _o->long_enum_non_enum_default = _e; } { auto _e = long_enum_normal_default(); _o->long_enum_normal_default = _e; } @@ -4224,16 +4224,16 @@ inline void FinishSizePrefixedMonsterBuffer( fbb.FinishSizePrefixed(root, MonsterIdentifier()); } -inline flatbuffers::unique_ptr UnPackMonster( +inline std::unique_ptr UnPackMonster( const void *buf, const ::flatbuffers::resolver_function_t *res = nullptr) { - return flatbuffers::unique_ptr(GetMonster(buf)->UnPack(res)); + return std::unique_ptr(GetMonster(buf)->UnPack(res)); } -inline flatbuffers::unique_ptr UnPackSizePrefixedMonster( +inline std::unique_ptr UnPackSizePrefixedMonster( const void *buf, const ::flatbuffers::resolver_function_t *res = nullptr) { - return flatbuffers::unique_ptr(GetSizePrefixedMonster(buf)->UnPack(res)); + return std::unique_ptr(GetSizePrefixedMonster(buf)->UnPack(res)); } } // namespace Example diff --git a/tests/monster_test_suffix/ext_only/monster_test_generated.hpp b/tests/monster_test_suffix/ext_only/monster_test_generated.hpp index d11788e10c..9c64fbbc1d 100644 --- a/tests/monster_test_suffix/ext_only/monster_test_generated.hpp +++ b/tests/monster_test_suffix/ext_only/monster_test_generated.hpp @@ -1259,7 +1259,7 @@ ::flatbuffers::Offset CreateReferrable(::flatbuffers::FlatBufferBuil struct MonsterT : public ::flatbuffers::NativeTable { typedef Monster TableType; - flatbuffers::unique_ptr pos{}; + std::unique_ptr pos{}; int16_t mana = 150; int16_t hp = 100; std::string name{}; @@ -1268,10 +1268,10 @@ struct MonsterT : public ::flatbuffers::NativeTable { MyGame::Example::AnyUnion test{}; std::vector test4{}; std::vector testarrayofstring{}; - std::vector> testarrayoftables{}; - flatbuffers::unique_ptr enemy{}; + std::vector> testarrayoftables{}; + std::unique_ptr enemy{}; std::vector testnestedflatbuffer{}; - flatbuffers::unique_ptr testempty{}; + std::unique_ptr testempty{}; bool testbool = false; int32_t testhashs32_fnv1 = 0; uint32_t testhashu32_fnv1 = 0; @@ -1291,13 +1291,13 @@ struct MonsterT : public ::flatbuffers::NativeTable { std::vector test5{}; std::vector vector_of_longs{}; std::vector vector_of_doubles{}; - flatbuffers::unique_ptr parent_namespace_test{}; - std::vector> vector_of_referrables{}; + std::unique_ptr parent_namespace_test{}; + std::vector> vector_of_referrables{}; ReferrableT *single_weak_reference = nullptr; std::vector vector_of_weak_references{}; - std::vector> vector_of_strong_referrables{}; + std::vector> vector_of_strong_referrables{}; ReferrableT *co_owning_reference = nullptr; - std::vector> vector_of_co_owning_references{}; + std::vector> vector_of_co_owning_references{}; ReferrableT *non_owning_reference = nullptr; std::vector vector_of_non_owning_references{}; MyGame::Example::AnyUniqueAliasesUnion any_unique{}; @@ -1305,7 +1305,7 @@ struct MonsterT : public ::flatbuffers::NativeTable { std::vector vector_of_enums{}; MyGame::Example::Race signed_enum = MyGame::Example::Race_None; std::vector testrequirednestedflatbuffer{}; - std::vector> scalar_key_sorted_tables{}; + std::vector> scalar_key_sorted_tables{}; MyGame::Example::Test native_inline{}; MyGame::Example::LongEnum long_enum_non_enum_default = static_cast(0); MyGame::Example::LongEnum long_enum_normal_default = MyGame::Example::LongEnum_LongOne; @@ -2861,7 +2861,7 @@ inline bool operator==(const MonsterT &lhs, const MonsterT &rhs) { (lhs.test == rhs.test) && (lhs.test4 == rhs.test4) && (lhs.testarrayofstring == rhs.testarrayofstring) && - (lhs.testarrayoftables.size() == rhs.testarrayoftables.size() && std::equal(lhs.testarrayoftables.cbegin(), lhs.testarrayoftables.cend(), rhs.testarrayoftables.cbegin(), [](flatbuffers::unique_ptr const &a, flatbuffers::unique_ptr const &b) { return (a == b) || (a && b && *a == *b); })) && + (lhs.testarrayoftables.size() == rhs.testarrayoftables.size() && std::equal(lhs.testarrayoftables.cbegin(), lhs.testarrayoftables.cend(), rhs.testarrayoftables.cbegin(), [](std::unique_ptr const &a, std::unique_ptr const &b) { return (a == b) || (a && b && *a == *b); })) && ((lhs.enemy == rhs.enemy) || (lhs.enemy && rhs.enemy && *lhs.enemy == *rhs.enemy)) && (lhs.testnestedflatbuffer == rhs.testnestedflatbuffer) && ((lhs.testempty == rhs.testempty) || (lhs.testempty && rhs.testempty && *lhs.testempty == *rhs.testempty)) && @@ -2885,10 +2885,10 @@ inline bool operator==(const MonsterT &lhs, const MonsterT &rhs) { (lhs.vector_of_longs == rhs.vector_of_longs) && (lhs.vector_of_doubles == rhs.vector_of_doubles) && ((lhs.parent_namespace_test == rhs.parent_namespace_test) || (lhs.parent_namespace_test && rhs.parent_namespace_test && *lhs.parent_namespace_test == *rhs.parent_namespace_test)) && - (lhs.vector_of_referrables.size() == rhs.vector_of_referrables.size() && std::equal(lhs.vector_of_referrables.cbegin(), lhs.vector_of_referrables.cend(), rhs.vector_of_referrables.cbegin(), [](flatbuffers::unique_ptr const &a, flatbuffers::unique_ptr const &b) { return (a == b) || (a && b && *a == *b); })) && + (lhs.vector_of_referrables.size() == rhs.vector_of_referrables.size() && std::equal(lhs.vector_of_referrables.cbegin(), lhs.vector_of_referrables.cend(), rhs.vector_of_referrables.cbegin(), [](std::unique_ptr const &a, std::unique_ptr const &b) { return (a == b) || (a && b && *a == *b); })) && (lhs.single_weak_reference == rhs.single_weak_reference) && (lhs.vector_of_weak_references == rhs.vector_of_weak_references) && - (lhs.vector_of_strong_referrables.size() == rhs.vector_of_strong_referrables.size() && std::equal(lhs.vector_of_strong_referrables.cbegin(), lhs.vector_of_strong_referrables.cend(), rhs.vector_of_strong_referrables.cbegin(), [](flatbuffers::unique_ptr const &a, flatbuffers::unique_ptr const &b) { return (a == b) || (a && b && *a == *b); })) && + (lhs.vector_of_strong_referrables.size() == rhs.vector_of_strong_referrables.size() && std::equal(lhs.vector_of_strong_referrables.cbegin(), lhs.vector_of_strong_referrables.cend(), rhs.vector_of_strong_referrables.cbegin(), [](std::unique_ptr const &a, std::unique_ptr const &b) { return (a == b) || (a && b && *a == *b); })) && (lhs.co_owning_reference == rhs.co_owning_reference) && (lhs.vector_of_co_owning_references == rhs.vector_of_co_owning_references) && (lhs.non_owning_reference == rhs.non_owning_reference) && @@ -2898,7 +2898,7 @@ inline bool operator==(const MonsterT &lhs, const MonsterT &rhs) { (lhs.vector_of_enums == rhs.vector_of_enums) && (lhs.signed_enum == rhs.signed_enum) && (lhs.testrequirednestedflatbuffer == rhs.testrequirednestedflatbuffer) && - (lhs.scalar_key_sorted_tables.size() == rhs.scalar_key_sorted_tables.size() && std::equal(lhs.scalar_key_sorted_tables.cbegin(), lhs.scalar_key_sorted_tables.cend(), rhs.scalar_key_sorted_tables.cbegin(), [](flatbuffers::unique_ptr const &a, flatbuffers::unique_ptr const &b) { return (a == b) || (a && b && *a == *b); })) && + (lhs.scalar_key_sorted_tables.size() == rhs.scalar_key_sorted_tables.size() && std::equal(lhs.scalar_key_sorted_tables.cbegin(), lhs.scalar_key_sorted_tables.cend(), rhs.scalar_key_sorted_tables.cbegin(), [](std::unique_ptr const &a, std::unique_ptr const &b) { return (a == b) || (a && b && *a == *b); })) && (lhs.native_inline == rhs.native_inline) && (lhs.long_enum_non_enum_default == rhs.long_enum_non_enum_default) && (lhs.long_enum_normal_default == rhs.long_enum_normal_default) && @@ -3054,7 +3054,7 @@ inline MonsterT *Monster::UnPack(const ::flatbuffers::resolver_function_t *_reso inline void Monster::UnPackTo(MonsterT *_o, const ::flatbuffers::resolver_function_t *_resolver) const { (void)_o; (void)_resolver; - { auto _e = pos(); if (_e) _o->pos = flatbuffers::unique_ptr(new MyGame::Example::Vec3(*_e)); } + { auto _e = pos(); if (_e) _o->pos = std::unique_ptr(new MyGame::Example::Vec3(*_e)); } { auto _e = mana(); _o->mana = _e; } { auto _e = hp(); _o->hp = _e; } { auto _e = name(); if (_e) _o->name = _e->str(); } @@ -3064,10 +3064,10 @@ inline void Monster::UnPackTo(MonsterT *_o, const ::flatbuffers::resolver_functi { auto _e = test(); if (_e) _o->test.value = MyGame::Example::AnyUnion::UnPack(_e, test_type(), _resolver); } { auto _e = test4(); if (_e) { _o->test4.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->test4[_i] = *_e->Get(_i); } } else { _o->test4.resize(0); } } { auto _e = testarrayofstring(); if (_e) { _o->testarrayofstring.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->testarrayofstring[_i] = _e->Get(_i)->str(); } } else { _o->testarrayofstring.resize(0); } } - { auto _e = testarrayoftables(); if (_e) { _o->testarrayoftables.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { if(_o->testarrayoftables[_i]) { _e->Get(_i)->UnPackTo(_o->testarrayoftables[_i].get(), _resolver); } else { _o->testarrayoftables[_i] = flatbuffers::unique_ptr(_e->Get(_i)->UnPack(_resolver)); }; } } else { _o->testarrayoftables.resize(0); } } - { auto _e = enemy(); if (_e) { if(_o->enemy) { _e->UnPackTo(_o->enemy.get(), _resolver); } else { _o->enemy = flatbuffers::unique_ptr(_e->UnPack(_resolver)); } } else if (_o->enemy) { _o->enemy.reset(); } } + { auto _e = testarrayoftables(); if (_e) { _o->testarrayoftables.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { if(_o->testarrayoftables[_i]) { _e->Get(_i)->UnPackTo(_o->testarrayoftables[_i].get(), _resolver); } else { _o->testarrayoftables[_i] = std::unique_ptr(_e->Get(_i)->UnPack(_resolver)); }; } } else { _o->testarrayoftables.resize(0); } } + { auto _e = enemy(); if (_e) { if(_o->enemy) { _e->UnPackTo(_o->enemy.get(), _resolver); } else { _o->enemy = std::unique_ptr(_e->UnPack(_resolver)); } } else if (_o->enemy) { _o->enemy.reset(); } } { auto _e = testnestedflatbuffer(); if (_e) { _o->testnestedflatbuffer.resize(_e->size()); std::copy(_e->begin(), _e->end(), _o->testnestedflatbuffer.begin()); } } - { auto _e = testempty(); if (_e) { if(_o->testempty) { _e->UnPackTo(_o->testempty.get(), _resolver); } else { _o->testempty = flatbuffers::unique_ptr(_e->UnPack(_resolver)); } } else if (_o->testempty) { _o->testempty.reset(); } } + { auto _e = testempty(); if (_e) { if(_o->testempty) { _e->UnPackTo(_o->testempty.get(), _resolver); } else { _o->testempty = std::unique_ptr(_e->UnPack(_resolver)); } } else if (_o->testempty) { _o->testempty.reset(); } } { auto _e = testbool(); _o->testbool = _e; } { auto _e = testhashs32_fnv1(); _o->testhashs32_fnv1 = _e; } { auto _e = testhashu32_fnv1(); _o->testhashu32_fnv1 = _e; } @@ -3087,11 +3087,11 @@ inline void Monster::UnPackTo(MonsterT *_o, const ::flatbuffers::resolver_functi { auto _e = test5(); if (_e) { _o->test5.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->test5[_i] = *_e->Get(_i); } } else { _o->test5.resize(0); } } { auto _e = vector_of_longs(); if (_e) { _o->vector_of_longs.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->vector_of_longs[_i] = _e->Get(_i); } } else { _o->vector_of_longs.resize(0); } } { auto _e = vector_of_doubles(); if (_e) { _o->vector_of_doubles.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->vector_of_doubles[_i] = _e->Get(_i); } } else { _o->vector_of_doubles.resize(0); } } - { auto _e = parent_namespace_test(); if (_e) { if(_o->parent_namespace_test) { _e->UnPackTo(_o->parent_namespace_test.get(), _resolver); } else { _o->parent_namespace_test = flatbuffers::unique_ptr(_e->UnPack(_resolver)); } } else if (_o->parent_namespace_test) { _o->parent_namespace_test.reset(); } } - { auto _e = vector_of_referrables(); if (_e) { _o->vector_of_referrables.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { if(_o->vector_of_referrables[_i]) { _e->Get(_i)->UnPackTo(_o->vector_of_referrables[_i].get(), _resolver); } else { _o->vector_of_referrables[_i] = flatbuffers::unique_ptr(_e->Get(_i)->UnPack(_resolver)); }; } } else { _o->vector_of_referrables.resize(0); } } + { auto _e = parent_namespace_test(); if (_e) { if(_o->parent_namespace_test) { _e->UnPackTo(_o->parent_namespace_test.get(), _resolver); } else { _o->parent_namespace_test = std::unique_ptr(_e->UnPack(_resolver)); } } else if (_o->parent_namespace_test) { _o->parent_namespace_test.reset(); } } + { auto _e = vector_of_referrables(); if (_e) { _o->vector_of_referrables.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { if(_o->vector_of_referrables[_i]) { _e->Get(_i)->UnPackTo(_o->vector_of_referrables[_i].get(), _resolver); } else { _o->vector_of_referrables[_i] = std::unique_ptr(_e->Get(_i)->UnPack(_resolver)); }; } } else { _o->vector_of_referrables.resize(0); } } { auto _e = single_weak_reference(); /*scalar resolver, naked*/ if (_resolver) (*_resolver)(reinterpret_cast(&_o->single_weak_reference), static_cast<::flatbuffers::hash_value_t>(_e)); else _o->single_weak_reference = nullptr; } { auto _e = vector_of_weak_references(); if (_e) { _o->vector_of_weak_references.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { /*vector resolver, naked*/ if (_resolver) (*_resolver)(reinterpret_cast(&_o->vector_of_weak_references[_i]), static_cast<::flatbuffers::hash_value_t>(_e->Get(_i))); else _o->vector_of_weak_references[_i] = nullptr; } } else { _o->vector_of_weak_references.resize(0); } } - { auto _e = vector_of_strong_referrables(); if (_e) { _o->vector_of_strong_referrables.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { if(_o->vector_of_strong_referrables[_i]) { _e->Get(_i)->UnPackTo(_o->vector_of_strong_referrables[_i].get(), _resolver); } else { _o->vector_of_strong_referrables[_i] = flatbuffers::unique_ptr(_e->Get(_i)->UnPack(_resolver)); }; } } else { _o->vector_of_strong_referrables.resize(0); } } + { auto _e = vector_of_strong_referrables(); if (_e) { _o->vector_of_strong_referrables.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { if(_o->vector_of_strong_referrables[_i]) { _e->Get(_i)->UnPackTo(_o->vector_of_strong_referrables[_i].get(), _resolver); } else { _o->vector_of_strong_referrables[_i] = std::unique_ptr(_e->Get(_i)->UnPack(_resolver)); }; } } else { _o->vector_of_strong_referrables.resize(0); } } { auto _e = co_owning_reference(); /*scalar resolver, naked*/ if (_resolver) (*_resolver)(reinterpret_cast(&_o->co_owning_reference), static_cast<::flatbuffers::hash_value_t>(_e)); else _o->co_owning_reference = nullptr; } { auto _e = vector_of_co_owning_references(); if (_e) { _o->vector_of_co_owning_references.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { /*vector resolver, default_ptr_type*/ if (_resolver) (*_resolver)(reinterpret_cast(&_o->vector_of_co_owning_references[_i]), static_cast<::flatbuffers::hash_value_t>(_e->Get(_i)));/* else do nothing */; } } else { _o->vector_of_co_owning_references.resize(0); } } { auto _e = non_owning_reference(); /*scalar resolver, naked*/ if (_resolver) (*_resolver)(reinterpret_cast(&_o->non_owning_reference), static_cast<::flatbuffers::hash_value_t>(_e)); else _o->non_owning_reference = nullptr; } @@ -3103,7 +3103,7 @@ inline void Monster::UnPackTo(MonsterT *_o, const ::flatbuffers::resolver_functi { auto _e = vector_of_enums(); if (_e) { _o->vector_of_enums.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->vector_of_enums[_i] = static_cast(_e->Get(_i)); } } else { _o->vector_of_enums.resize(0); } } { auto _e = signed_enum(); _o->signed_enum = _e; } { auto _e = testrequirednestedflatbuffer(); if (_e) { _o->testrequirednestedflatbuffer.resize(_e->size()); std::copy(_e->begin(), _e->end(), _o->testrequirednestedflatbuffer.begin()); } } - { auto _e = scalar_key_sorted_tables(); if (_e) { _o->scalar_key_sorted_tables.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { if(_o->scalar_key_sorted_tables[_i]) { _e->Get(_i)->UnPackTo(_o->scalar_key_sorted_tables[_i].get(), _resolver); } else { _o->scalar_key_sorted_tables[_i] = flatbuffers::unique_ptr(_e->Get(_i)->UnPack(_resolver)); }; } } else { _o->scalar_key_sorted_tables.resize(0); } } + { auto _e = scalar_key_sorted_tables(); if (_e) { _o->scalar_key_sorted_tables.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { if(_o->scalar_key_sorted_tables[_i]) { _e->Get(_i)->UnPackTo(_o->scalar_key_sorted_tables[_i].get(), _resolver); } else { _o->scalar_key_sorted_tables[_i] = std::unique_ptr(_e->Get(_i)->UnPack(_resolver)); }; } } else { _o->scalar_key_sorted_tables.resize(0); } } { auto _e = native_inline(); if (_e) _o->native_inline = *_e; } { auto _e = long_enum_non_enum_default(); _o->long_enum_non_enum_default = _e; } { auto _e = long_enum_normal_default(); _o->long_enum_normal_default = _e; } @@ -4214,16 +4214,16 @@ inline void FinishSizePrefixedMonsterBuffer( fbb.FinishSizePrefixed(root, MonsterIdentifier()); } -inline flatbuffers::unique_ptr UnPackMonster( +inline std::unique_ptr UnPackMonster( const void *buf, const ::flatbuffers::resolver_function_t *res = nullptr) { - return flatbuffers::unique_ptr(GetMonster(buf)->UnPack(res)); + return std::unique_ptr(GetMonster(buf)->UnPack(res)); } -inline flatbuffers::unique_ptr UnPackSizePrefixedMonster( +inline std::unique_ptr UnPackSizePrefixedMonster( const void *buf, const ::flatbuffers::resolver_function_t *res = nullptr) { - return flatbuffers::unique_ptr(GetSizePrefixedMonster(buf)->UnPack(res)); + return std::unique_ptr(GetSizePrefixedMonster(buf)->UnPack(res)); } } // namespace Example diff --git a/tests/monster_test_suffix/filesuffix_only/monster_test_suffix.h b/tests/monster_test_suffix/filesuffix_only/monster_test_suffix.h index d11788e10c..9c64fbbc1d 100644 --- a/tests/monster_test_suffix/filesuffix_only/monster_test_suffix.h +++ b/tests/monster_test_suffix/filesuffix_only/monster_test_suffix.h @@ -1259,7 +1259,7 @@ ::flatbuffers::Offset CreateReferrable(::flatbuffers::FlatBufferBuil struct MonsterT : public ::flatbuffers::NativeTable { typedef Monster TableType; - flatbuffers::unique_ptr pos{}; + std::unique_ptr pos{}; int16_t mana = 150; int16_t hp = 100; std::string name{}; @@ -1268,10 +1268,10 @@ struct MonsterT : public ::flatbuffers::NativeTable { MyGame::Example::AnyUnion test{}; std::vector test4{}; std::vector testarrayofstring{}; - std::vector> testarrayoftables{}; - flatbuffers::unique_ptr enemy{}; + std::vector> testarrayoftables{}; + std::unique_ptr enemy{}; std::vector testnestedflatbuffer{}; - flatbuffers::unique_ptr testempty{}; + std::unique_ptr testempty{}; bool testbool = false; int32_t testhashs32_fnv1 = 0; uint32_t testhashu32_fnv1 = 0; @@ -1291,13 +1291,13 @@ struct MonsterT : public ::flatbuffers::NativeTable { std::vector test5{}; std::vector vector_of_longs{}; std::vector vector_of_doubles{}; - flatbuffers::unique_ptr parent_namespace_test{}; - std::vector> vector_of_referrables{}; + std::unique_ptr parent_namespace_test{}; + std::vector> vector_of_referrables{}; ReferrableT *single_weak_reference = nullptr; std::vector vector_of_weak_references{}; - std::vector> vector_of_strong_referrables{}; + std::vector> vector_of_strong_referrables{}; ReferrableT *co_owning_reference = nullptr; - std::vector> vector_of_co_owning_references{}; + std::vector> vector_of_co_owning_references{}; ReferrableT *non_owning_reference = nullptr; std::vector vector_of_non_owning_references{}; MyGame::Example::AnyUniqueAliasesUnion any_unique{}; @@ -1305,7 +1305,7 @@ struct MonsterT : public ::flatbuffers::NativeTable { std::vector vector_of_enums{}; MyGame::Example::Race signed_enum = MyGame::Example::Race_None; std::vector testrequirednestedflatbuffer{}; - std::vector> scalar_key_sorted_tables{}; + std::vector> scalar_key_sorted_tables{}; MyGame::Example::Test native_inline{}; MyGame::Example::LongEnum long_enum_non_enum_default = static_cast(0); MyGame::Example::LongEnum long_enum_normal_default = MyGame::Example::LongEnum_LongOne; @@ -2861,7 +2861,7 @@ inline bool operator==(const MonsterT &lhs, const MonsterT &rhs) { (lhs.test == rhs.test) && (lhs.test4 == rhs.test4) && (lhs.testarrayofstring == rhs.testarrayofstring) && - (lhs.testarrayoftables.size() == rhs.testarrayoftables.size() && std::equal(lhs.testarrayoftables.cbegin(), lhs.testarrayoftables.cend(), rhs.testarrayoftables.cbegin(), [](flatbuffers::unique_ptr const &a, flatbuffers::unique_ptr const &b) { return (a == b) || (a && b && *a == *b); })) && + (lhs.testarrayoftables.size() == rhs.testarrayoftables.size() && std::equal(lhs.testarrayoftables.cbegin(), lhs.testarrayoftables.cend(), rhs.testarrayoftables.cbegin(), [](std::unique_ptr const &a, std::unique_ptr const &b) { return (a == b) || (a && b && *a == *b); })) && ((lhs.enemy == rhs.enemy) || (lhs.enemy && rhs.enemy && *lhs.enemy == *rhs.enemy)) && (lhs.testnestedflatbuffer == rhs.testnestedflatbuffer) && ((lhs.testempty == rhs.testempty) || (lhs.testempty && rhs.testempty && *lhs.testempty == *rhs.testempty)) && @@ -2885,10 +2885,10 @@ inline bool operator==(const MonsterT &lhs, const MonsterT &rhs) { (lhs.vector_of_longs == rhs.vector_of_longs) && (lhs.vector_of_doubles == rhs.vector_of_doubles) && ((lhs.parent_namespace_test == rhs.parent_namespace_test) || (lhs.parent_namespace_test && rhs.parent_namespace_test && *lhs.parent_namespace_test == *rhs.parent_namespace_test)) && - (lhs.vector_of_referrables.size() == rhs.vector_of_referrables.size() && std::equal(lhs.vector_of_referrables.cbegin(), lhs.vector_of_referrables.cend(), rhs.vector_of_referrables.cbegin(), [](flatbuffers::unique_ptr const &a, flatbuffers::unique_ptr const &b) { return (a == b) || (a && b && *a == *b); })) && + (lhs.vector_of_referrables.size() == rhs.vector_of_referrables.size() && std::equal(lhs.vector_of_referrables.cbegin(), lhs.vector_of_referrables.cend(), rhs.vector_of_referrables.cbegin(), [](std::unique_ptr const &a, std::unique_ptr const &b) { return (a == b) || (a && b && *a == *b); })) && (lhs.single_weak_reference == rhs.single_weak_reference) && (lhs.vector_of_weak_references == rhs.vector_of_weak_references) && - (lhs.vector_of_strong_referrables.size() == rhs.vector_of_strong_referrables.size() && std::equal(lhs.vector_of_strong_referrables.cbegin(), lhs.vector_of_strong_referrables.cend(), rhs.vector_of_strong_referrables.cbegin(), [](flatbuffers::unique_ptr const &a, flatbuffers::unique_ptr const &b) { return (a == b) || (a && b && *a == *b); })) && + (lhs.vector_of_strong_referrables.size() == rhs.vector_of_strong_referrables.size() && std::equal(lhs.vector_of_strong_referrables.cbegin(), lhs.vector_of_strong_referrables.cend(), rhs.vector_of_strong_referrables.cbegin(), [](std::unique_ptr const &a, std::unique_ptr const &b) { return (a == b) || (a && b && *a == *b); })) && (lhs.co_owning_reference == rhs.co_owning_reference) && (lhs.vector_of_co_owning_references == rhs.vector_of_co_owning_references) && (lhs.non_owning_reference == rhs.non_owning_reference) && @@ -2898,7 +2898,7 @@ inline bool operator==(const MonsterT &lhs, const MonsterT &rhs) { (lhs.vector_of_enums == rhs.vector_of_enums) && (lhs.signed_enum == rhs.signed_enum) && (lhs.testrequirednestedflatbuffer == rhs.testrequirednestedflatbuffer) && - (lhs.scalar_key_sorted_tables.size() == rhs.scalar_key_sorted_tables.size() && std::equal(lhs.scalar_key_sorted_tables.cbegin(), lhs.scalar_key_sorted_tables.cend(), rhs.scalar_key_sorted_tables.cbegin(), [](flatbuffers::unique_ptr const &a, flatbuffers::unique_ptr const &b) { return (a == b) || (a && b && *a == *b); })) && + (lhs.scalar_key_sorted_tables.size() == rhs.scalar_key_sorted_tables.size() && std::equal(lhs.scalar_key_sorted_tables.cbegin(), lhs.scalar_key_sorted_tables.cend(), rhs.scalar_key_sorted_tables.cbegin(), [](std::unique_ptr const &a, std::unique_ptr const &b) { return (a == b) || (a && b && *a == *b); })) && (lhs.native_inline == rhs.native_inline) && (lhs.long_enum_non_enum_default == rhs.long_enum_non_enum_default) && (lhs.long_enum_normal_default == rhs.long_enum_normal_default) && @@ -3054,7 +3054,7 @@ inline MonsterT *Monster::UnPack(const ::flatbuffers::resolver_function_t *_reso inline void Monster::UnPackTo(MonsterT *_o, const ::flatbuffers::resolver_function_t *_resolver) const { (void)_o; (void)_resolver; - { auto _e = pos(); if (_e) _o->pos = flatbuffers::unique_ptr(new MyGame::Example::Vec3(*_e)); } + { auto _e = pos(); if (_e) _o->pos = std::unique_ptr(new MyGame::Example::Vec3(*_e)); } { auto _e = mana(); _o->mana = _e; } { auto _e = hp(); _o->hp = _e; } { auto _e = name(); if (_e) _o->name = _e->str(); } @@ -3064,10 +3064,10 @@ inline void Monster::UnPackTo(MonsterT *_o, const ::flatbuffers::resolver_functi { auto _e = test(); if (_e) _o->test.value = MyGame::Example::AnyUnion::UnPack(_e, test_type(), _resolver); } { auto _e = test4(); if (_e) { _o->test4.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->test4[_i] = *_e->Get(_i); } } else { _o->test4.resize(0); } } { auto _e = testarrayofstring(); if (_e) { _o->testarrayofstring.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->testarrayofstring[_i] = _e->Get(_i)->str(); } } else { _o->testarrayofstring.resize(0); } } - { auto _e = testarrayoftables(); if (_e) { _o->testarrayoftables.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { if(_o->testarrayoftables[_i]) { _e->Get(_i)->UnPackTo(_o->testarrayoftables[_i].get(), _resolver); } else { _o->testarrayoftables[_i] = flatbuffers::unique_ptr(_e->Get(_i)->UnPack(_resolver)); }; } } else { _o->testarrayoftables.resize(0); } } - { auto _e = enemy(); if (_e) { if(_o->enemy) { _e->UnPackTo(_o->enemy.get(), _resolver); } else { _o->enemy = flatbuffers::unique_ptr(_e->UnPack(_resolver)); } } else if (_o->enemy) { _o->enemy.reset(); } } + { auto _e = testarrayoftables(); if (_e) { _o->testarrayoftables.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { if(_o->testarrayoftables[_i]) { _e->Get(_i)->UnPackTo(_o->testarrayoftables[_i].get(), _resolver); } else { _o->testarrayoftables[_i] = std::unique_ptr(_e->Get(_i)->UnPack(_resolver)); }; } } else { _o->testarrayoftables.resize(0); } } + { auto _e = enemy(); if (_e) { if(_o->enemy) { _e->UnPackTo(_o->enemy.get(), _resolver); } else { _o->enemy = std::unique_ptr(_e->UnPack(_resolver)); } } else if (_o->enemy) { _o->enemy.reset(); } } { auto _e = testnestedflatbuffer(); if (_e) { _o->testnestedflatbuffer.resize(_e->size()); std::copy(_e->begin(), _e->end(), _o->testnestedflatbuffer.begin()); } } - { auto _e = testempty(); if (_e) { if(_o->testempty) { _e->UnPackTo(_o->testempty.get(), _resolver); } else { _o->testempty = flatbuffers::unique_ptr(_e->UnPack(_resolver)); } } else if (_o->testempty) { _o->testempty.reset(); } } + { auto _e = testempty(); if (_e) { if(_o->testempty) { _e->UnPackTo(_o->testempty.get(), _resolver); } else { _o->testempty = std::unique_ptr(_e->UnPack(_resolver)); } } else if (_o->testempty) { _o->testempty.reset(); } } { auto _e = testbool(); _o->testbool = _e; } { auto _e = testhashs32_fnv1(); _o->testhashs32_fnv1 = _e; } { auto _e = testhashu32_fnv1(); _o->testhashu32_fnv1 = _e; } @@ -3087,11 +3087,11 @@ inline void Monster::UnPackTo(MonsterT *_o, const ::flatbuffers::resolver_functi { auto _e = test5(); if (_e) { _o->test5.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->test5[_i] = *_e->Get(_i); } } else { _o->test5.resize(0); } } { auto _e = vector_of_longs(); if (_e) { _o->vector_of_longs.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->vector_of_longs[_i] = _e->Get(_i); } } else { _o->vector_of_longs.resize(0); } } { auto _e = vector_of_doubles(); if (_e) { _o->vector_of_doubles.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->vector_of_doubles[_i] = _e->Get(_i); } } else { _o->vector_of_doubles.resize(0); } } - { auto _e = parent_namespace_test(); if (_e) { if(_o->parent_namespace_test) { _e->UnPackTo(_o->parent_namespace_test.get(), _resolver); } else { _o->parent_namespace_test = flatbuffers::unique_ptr(_e->UnPack(_resolver)); } } else if (_o->parent_namespace_test) { _o->parent_namespace_test.reset(); } } - { auto _e = vector_of_referrables(); if (_e) { _o->vector_of_referrables.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { if(_o->vector_of_referrables[_i]) { _e->Get(_i)->UnPackTo(_o->vector_of_referrables[_i].get(), _resolver); } else { _o->vector_of_referrables[_i] = flatbuffers::unique_ptr(_e->Get(_i)->UnPack(_resolver)); }; } } else { _o->vector_of_referrables.resize(0); } } + { auto _e = parent_namespace_test(); if (_e) { if(_o->parent_namespace_test) { _e->UnPackTo(_o->parent_namespace_test.get(), _resolver); } else { _o->parent_namespace_test = std::unique_ptr(_e->UnPack(_resolver)); } } else if (_o->parent_namespace_test) { _o->parent_namespace_test.reset(); } } + { auto _e = vector_of_referrables(); if (_e) { _o->vector_of_referrables.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { if(_o->vector_of_referrables[_i]) { _e->Get(_i)->UnPackTo(_o->vector_of_referrables[_i].get(), _resolver); } else { _o->vector_of_referrables[_i] = std::unique_ptr(_e->Get(_i)->UnPack(_resolver)); }; } } else { _o->vector_of_referrables.resize(0); } } { auto _e = single_weak_reference(); /*scalar resolver, naked*/ if (_resolver) (*_resolver)(reinterpret_cast(&_o->single_weak_reference), static_cast<::flatbuffers::hash_value_t>(_e)); else _o->single_weak_reference = nullptr; } { auto _e = vector_of_weak_references(); if (_e) { _o->vector_of_weak_references.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { /*vector resolver, naked*/ if (_resolver) (*_resolver)(reinterpret_cast(&_o->vector_of_weak_references[_i]), static_cast<::flatbuffers::hash_value_t>(_e->Get(_i))); else _o->vector_of_weak_references[_i] = nullptr; } } else { _o->vector_of_weak_references.resize(0); } } - { auto _e = vector_of_strong_referrables(); if (_e) { _o->vector_of_strong_referrables.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { if(_o->vector_of_strong_referrables[_i]) { _e->Get(_i)->UnPackTo(_o->vector_of_strong_referrables[_i].get(), _resolver); } else { _o->vector_of_strong_referrables[_i] = flatbuffers::unique_ptr(_e->Get(_i)->UnPack(_resolver)); }; } } else { _o->vector_of_strong_referrables.resize(0); } } + { auto _e = vector_of_strong_referrables(); if (_e) { _o->vector_of_strong_referrables.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { if(_o->vector_of_strong_referrables[_i]) { _e->Get(_i)->UnPackTo(_o->vector_of_strong_referrables[_i].get(), _resolver); } else { _o->vector_of_strong_referrables[_i] = std::unique_ptr(_e->Get(_i)->UnPack(_resolver)); }; } } else { _o->vector_of_strong_referrables.resize(0); } } { auto _e = co_owning_reference(); /*scalar resolver, naked*/ if (_resolver) (*_resolver)(reinterpret_cast(&_o->co_owning_reference), static_cast<::flatbuffers::hash_value_t>(_e)); else _o->co_owning_reference = nullptr; } { auto _e = vector_of_co_owning_references(); if (_e) { _o->vector_of_co_owning_references.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { /*vector resolver, default_ptr_type*/ if (_resolver) (*_resolver)(reinterpret_cast(&_o->vector_of_co_owning_references[_i]), static_cast<::flatbuffers::hash_value_t>(_e->Get(_i)));/* else do nothing */; } } else { _o->vector_of_co_owning_references.resize(0); } } { auto _e = non_owning_reference(); /*scalar resolver, naked*/ if (_resolver) (*_resolver)(reinterpret_cast(&_o->non_owning_reference), static_cast<::flatbuffers::hash_value_t>(_e)); else _o->non_owning_reference = nullptr; } @@ -3103,7 +3103,7 @@ inline void Monster::UnPackTo(MonsterT *_o, const ::flatbuffers::resolver_functi { auto _e = vector_of_enums(); if (_e) { _o->vector_of_enums.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->vector_of_enums[_i] = static_cast(_e->Get(_i)); } } else { _o->vector_of_enums.resize(0); } } { auto _e = signed_enum(); _o->signed_enum = _e; } { auto _e = testrequirednestedflatbuffer(); if (_e) { _o->testrequirednestedflatbuffer.resize(_e->size()); std::copy(_e->begin(), _e->end(), _o->testrequirednestedflatbuffer.begin()); } } - { auto _e = scalar_key_sorted_tables(); if (_e) { _o->scalar_key_sorted_tables.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { if(_o->scalar_key_sorted_tables[_i]) { _e->Get(_i)->UnPackTo(_o->scalar_key_sorted_tables[_i].get(), _resolver); } else { _o->scalar_key_sorted_tables[_i] = flatbuffers::unique_ptr(_e->Get(_i)->UnPack(_resolver)); }; } } else { _o->scalar_key_sorted_tables.resize(0); } } + { auto _e = scalar_key_sorted_tables(); if (_e) { _o->scalar_key_sorted_tables.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { if(_o->scalar_key_sorted_tables[_i]) { _e->Get(_i)->UnPackTo(_o->scalar_key_sorted_tables[_i].get(), _resolver); } else { _o->scalar_key_sorted_tables[_i] = std::unique_ptr(_e->Get(_i)->UnPack(_resolver)); }; } } else { _o->scalar_key_sorted_tables.resize(0); } } { auto _e = native_inline(); if (_e) _o->native_inline = *_e; } { auto _e = long_enum_non_enum_default(); _o->long_enum_non_enum_default = _e; } { auto _e = long_enum_normal_default(); _o->long_enum_normal_default = _e; } @@ -4214,16 +4214,16 @@ inline void FinishSizePrefixedMonsterBuffer( fbb.FinishSizePrefixed(root, MonsterIdentifier()); } -inline flatbuffers::unique_ptr UnPackMonster( +inline std::unique_ptr UnPackMonster( const void *buf, const ::flatbuffers::resolver_function_t *res = nullptr) { - return flatbuffers::unique_ptr(GetMonster(buf)->UnPack(res)); + return std::unique_ptr(GetMonster(buf)->UnPack(res)); } -inline flatbuffers::unique_ptr UnPackSizePrefixedMonster( +inline std::unique_ptr UnPackSizePrefixedMonster( const void *buf, const ::flatbuffers::resolver_function_t *res = nullptr) { - return flatbuffers::unique_ptr(GetSizePrefixedMonster(buf)->UnPack(res)); + return std::unique_ptr(GetSizePrefixedMonster(buf)->UnPack(res)); } } // namespace Example diff --git a/tests/monster_test_suffix/monster_test_suffix.hpp b/tests/monster_test_suffix/monster_test_suffix.hpp index d11788e10c..9c64fbbc1d 100644 --- a/tests/monster_test_suffix/monster_test_suffix.hpp +++ b/tests/monster_test_suffix/monster_test_suffix.hpp @@ -1259,7 +1259,7 @@ ::flatbuffers::Offset CreateReferrable(::flatbuffers::FlatBufferBuil struct MonsterT : public ::flatbuffers::NativeTable { typedef Monster TableType; - flatbuffers::unique_ptr pos{}; + std::unique_ptr pos{}; int16_t mana = 150; int16_t hp = 100; std::string name{}; @@ -1268,10 +1268,10 @@ struct MonsterT : public ::flatbuffers::NativeTable { MyGame::Example::AnyUnion test{}; std::vector test4{}; std::vector testarrayofstring{}; - std::vector> testarrayoftables{}; - flatbuffers::unique_ptr enemy{}; + std::vector> testarrayoftables{}; + std::unique_ptr enemy{}; std::vector testnestedflatbuffer{}; - flatbuffers::unique_ptr testempty{}; + std::unique_ptr testempty{}; bool testbool = false; int32_t testhashs32_fnv1 = 0; uint32_t testhashu32_fnv1 = 0; @@ -1291,13 +1291,13 @@ struct MonsterT : public ::flatbuffers::NativeTable { std::vector test5{}; std::vector vector_of_longs{}; std::vector vector_of_doubles{}; - flatbuffers::unique_ptr parent_namespace_test{}; - std::vector> vector_of_referrables{}; + std::unique_ptr parent_namespace_test{}; + std::vector> vector_of_referrables{}; ReferrableT *single_weak_reference = nullptr; std::vector vector_of_weak_references{}; - std::vector> vector_of_strong_referrables{}; + std::vector> vector_of_strong_referrables{}; ReferrableT *co_owning_reference = nullptr; - std::vector> vector_of_co_owning_references{}; + std::vector> vector_of_co_owning_references{}; ReferrableT *non_owning_reference = nullptr; std::vector vector_of_non_owning_references{}; MyGame::Example::AnyUniqueAliasesUnion any_unique{}; @@ -1305,7 +1305,7 @@ struct MonsterT : public ::flatbuffers::NativeTable { std::vector vector_of_enums{}; MyGame::Example::Race signed_enum = MyGame::Example::Race_None; std::vector testrequirednestedflatbuffer{}; - std::vector> scalar_key_sorted_tables{}; + std::vector> scalar_key_sorted_tables{}; MyGame::Example::Test native_inline{}; MyGame::Example::LongEnum long_enum_non_enum_default = static_cast(0); MyGame::Example::LongEnum long_enum_normal_default = MyGame::Example::LongEnum_LongOne; @@ -2861,7 +2861,7 @@ inline bool operator==(const MonsterT &lhs, const MonsterT &rhs) { (lhs.test == rhs.test) && (lhs.test4 == rhs.test4) && (lhs.testarrayofstring == rhs.testarrayofstring) && - (lhs.testarrayoftables.size() == rhs.testarrayoftables.size() && std::equal(lhs.testarrayoftables.cbegin(), lhs.testarrayoftables.cend(), rhs.testarrayoftables.cbegin(), [](flatbuffers::unique_ptr const &a, flatbuffers::unique_ptr const &b) { return (a == b) || (a && b && *a == *b); })) && + (lhs.testarrayoftables.size() == rhs.testarrayoftables.size() && std::equal(lhs.testarrayoftables.cbegin(), lhs.testarrayoftables.cend(), rhs.testarrayoftables.cbegin(), [](std::unique_ptr const &a, std::unique_ptr const &b) { return (a == b) || (a && b && *a == *b); })) && ((lhs.enemy == rhs.enemy) || (lhs.enemy && rhs.enemy && *lhs.enemy == *rhs.enemy)) && (lhs.testnestedflatbuffer == rhs.testnestedflatbuffer) && ((lhs.testempty == rhs.testempty) || (lhs.testempty && rhs.testempty && *lhs.testempty == *rhs.testempty)) && @@ -2885,10 +2885,10 @@ inline bool operator==(const MonsterT &lhs, const MonsterT &rhs) { (lhs.vector_of_longs == rhs.vector_of_longs) && (lhs.vector_of_doubles == rhs.vector_of_doubles) && ((lhs.parent_namespace_test == rhs.parent_namespace_test) || (lhs.parent_namespace_test && rhs.parent_namespace_test && *lhs.parent_namespace_test == *rhs.parent_namespace_test)) && - (lhs.vector_of_referrables.size() == rhs.vector_of_referrables.size() && std::equal(lhs.vector_of_referrables.cbegin(), lhs.vector_of_referrables.cend(), rhs.vector_of_referrables.cbegin(), [](flatbuffers::unique_ptr const &a, flatbuffers::unique_ptr const &b) { return (a == b) || (a && b && *a == *b); })) && + (lhs.vector_of_referrables.size() == rhs.vector_of_referrables.size() && std::equal(lhs.vector_of_referrables.cbegin(), lhs.vector_of_referrables.cend(), rhs.vector_of_referrables.cbegin(), [](std::unique_ptr const &a, std::unique_ptr const &b) { return (a == b) || (a && b && *a == *b); })) && (lhs.single_weak_reference == rhs.single_weak_reference) && (lhs.vector_of_weak_references == rhs.vector_of_weak_references) && - (lhs.vector_of_strong_referrables.size() == rhs.vector_of_strong_referrables.size() && std::equal(lhs.vector_of_strong_referrables.cbegin(), lhs.vector_of_strong_referrables.cend(), rhs.vector_of_strong_referrables.cbegin(), [](flatbuffers::unique_ptr const &a, flatbuffers::unique_ptr const &b) { return (a == b) || (a && b && *a == *b); })) && + (lhs.vector_of_strong_referrables.size() == rhs.vector_of_strong_referrables.size() && std::equal(lhs.vector_of_strong_referrables.cbegin(), lhs.vector_of_strong_referrables.cend(), rhs.vector_of_strong_referrables.cbegin(), [](std::unique_ptr const &a, std::unique_ptr const &b) { return (a == b) || (a && b && *a == *b); })) && (lhs.co_owning_reference == rhs.co_owning_reference) && (lhs.vector_of_co_owning_references == rhs.vector_of_co_owning_references) && (lhs.non_owning_reference == rhs.non_owning_reference) && @@ -2898,7 +2898,7 @@ inline bool operator==(const MonsterT &lhs, const MonsterT &rhs) { (lhs.vector_of_enums == rhs.vector_of_enums) && (lhs.signed_enum == rhs.signed_enum) && (lhs.testrequirednestedflatbuffer == rhs.testrequirednestedflatbuffer) && - (lhs.scalar_key_sorted_tables.size() == rhs.scalar_key_sorted_tables.size() && std::equal(lhs.scalar_key_sorted_tables.cbegin(), lhs.scalar_key_sorted_tables.cend(), rhs.scalar_key_sorted_tables.cbegin(), [](flatbuffers::unique_ptr const &a, flatbuffers::unique_ptr const &b) { return (a == b) || (a && b && *a == *b); })) && + (lhs.scalar_key_sorted_tables.size() == rhs.scalar_key_sorted_tables.size() && std::equal(lhs.scalar_key_sorted_tables.cbegin(), lhs.scalar_key_sorted_tables.cend(), rhs.scalar_key_sorted_tables.cbegin(), [](std::unique_ptr const &a, std::unique_ptr const &b) { return (a == b) || (a && b && *a == *b); })) && (lhs.native_inline == rhs.native_inline) && (lhs.long_enum_non_enum_default == rhs.long_enum_non_enum_default) && (lhs.long_enum_normal_default == rhs.long_enum_normal_default) && @@ -3054,7 +3054,7 @@ inline MonsterT *Monster::UnPack(const ::flatbuffers::resolver_function_t *_reso inline void Monster::UnPackTo(MonsterT *_o, const ::flatbuffers::resolver_function_t *_resolver) const { (void)_o; (void)_resolver; - { auto _e = pos(); if (_e) _o->pos = flatbuffers::unique_ptr(new MyGame::Example::Vec3(*_e)); } + { auto _e = pos(); if (_e) _o->pos = std::unique_ptr(new MyGame::Example::Vec3(*_e)); } { auto _e = mana(); _o->mana = _e; } { auto _e = hp(); _o->hp = _e; } { auto _e = name(); if (_e) _o->name = _e->str(); } @@ -3064,10 +3064,10 @@ inline void Monster::UnPackTo(MonsterT *_o, const ::flatbuffers::resolver_functi { auto _e = test(); if (_e) _o->test.value = MyGame::Example::AnyUnion::UnPack(_e, test_type(), _resolver); } { auto _e = test4(); if (_e) { _o->test4.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->test4[_i] = *_e->Get(_i); } } else { _o->test4.resize(0); } } { auto _e = testarrayofstring(); if (_e) { _o->testarrayofstring.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->testarrayofstring[_i] = _e->Get(_i)->str(); } } else { _o->testarrayofstring.resize(0); } } - { auto _e = testarrayoftables(); if (_e) { _o->testarrayoftables.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { if(_o->testarrayoftables[_i]) { _e->Get(_i)->UnPackTo(_o->testarrayoftables[_i].get(), _resolver); } else { _o->testarrayoftables[_i] = flatbuffers::unique_ptr(_e->Get(_i)->UnPack(_resolver)); }; } } else { _o->testarrayoftables.resize(0); } } - { auto _e = enemy(); if (_e) { if(_o->enemy) { _e->UnPackTo(_o->enemy.get(), _resolver); } else { _o->enemy = flatbuffers::unique_ptr(_e->UnPack(_resolver)); } } else if (_o->enemy) { _o->enemy.reset(); } } + { auto _e = testarrayoftables(); if (_e) { _o->testarrayoftables.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { if(_o->testarrayoftables[_i]) { _e->Get(_i)->UnPackTo(_o->testarrayoftables[_i].get(), _resolver); } else { _o->testarrayoftables[_i] = std::unique_ptr(_e->Get(_i)->UnPack(_resolver)); }; } } else { _o->testarrayoftables.resize(0); } } + { auto _e = enemy(); if (_e) { if(_o->enemy) { _e->UnPackTo(_o->enemy.get(), _resolver); } else { _o->enemy = std::unique_ptr(_e->UnPack(_resolver)); } } else if (_o->enemy) { _o->enemy.reset(); } } { auto _e = testnestedflatbuffer(); if (_e) { _o->testnestedflatbuffer.resize(_e->size()); std::copy(_e->begin(), _e->end(), _o->testnestedflatbuffer.begin()); } } - { auto _e = testempty(); if (_e) { if(_o->testempty) { _e->UnPackTo(_o->testempty.get(), _resolver); } else { _o->testempty = flatbuffers::unique_ptr(_e->UnPack(_resolver)); } } else if (_o->testempty) { _o->testempty.reset(); } } + { auto _e = testempty(); if (_e) { if(_o->testempty) { _e->UnPackTo(_o->testempty.get(), _resolver); } else { _o->testempty = std::unique_ptr(_e->UnPack(_resolver)); } } else if (_o->testempty) { _o->testempty.reset(); } } { auto _e = testbool(); _o->testbool = _e; } { auto _e = testhashs32_fnv1(); _o->testhashs32_fnv1 = _e; } { auto _e = testhashu32_fnv1(); _o->testhashu32_fnv1 = _e; } @@ -3087,11 +3087,11 @@ inline void Monster::UnPackTo(MonsterT *_o, const ::flatbuffers::resolver_functi { auto _e = test5(); if (_e) { _o->test5.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->test5[_i] = *_e->Get(_i); } } else { _o->test5.resize(0); } } { auto _e = vector_of_longs(); if (_e) { _o->vector_of_longs.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->vector_of_longs[_i] = _e->Get(_i); } } else { _o->vector_of_longs.resize(0); } } { auto _e = vector_of_doubles(); if (_e) { _o->vector_of_doubles.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->vector_of_doubles[_i] = _e->Get(_i); } } else { _o->vector_of_doubles.resize(0); } } - { auto _e = parent_namespace_test(); if (_e) { if(_o->parent_namespace_test) { _e->UnPackTo(_o->parent_namespace_test.get(), _resolver); } else { _o->parent_namespace_test = flatbuffers::unique_ptr(_e->UnPack(_resolver)); } } else if (_o->parent_namespace_test) { _o->parent_namespace_test.reset(); } } - { auto _e = vector_of_referrables(); if (_e) { _o->vector_of_referrables.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { if(_o->vector_of_referrables[_i]) { _e->Get(_i)->UnPackTo(_o->vector_of_referrables[_i].get(), _resolver); } else { _o->vector_of_referrables[_i] = flatbuffers::unique_ptr(_e->Get(_i)->UnPack(_resolver)); }; } } else { _o->vector_of_referrables.resize(0); } } + { auto _e = parent_namespace_test(); if (_e) { if(_o->parent_namespace_test) { _e->UnPackTo(_o->parent_namespace_test.get(), _resolver); } else { _o->parent_namespace_test = std::unique_ptr(_e->UnPack(_resolver)); } } else if (_o->parent_namespace_test) { _o->parent_namespace_test.reset(); } } + { auto _e = vector_of_referrables(); if (_e) { _o->vector_of_referrables.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { if(_o->vector_of_referrables[_i]) { _e->Get(_i)->UnPackTo(_o->vector_of_referrables[_i].get(), _resolver); } else { _o->vector_of_referrables[_i] = std::unique_ptr(_e->Get(_i)->UnPack(_resolver)); }; } } else { _o->vector_of_referrables.resize(0); } } { auto _e = single_weak_reference(); /*scalar resolver, naked*/ if (_resolver) (*_resolver)(reinterpret_cast(&_o->single_weak_reference), static_cast<::flatbuffers::hash_value_t>(_e)); else _o->single_weak_reference = nullptr; } { auto _e = vector_of_weak_references(); if (_e) { _o->vector_of_weak_references.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { /*vector resolver, naked*/ if (_resolver) (*_resolver)(reinterpret_cast(&_o->vector_of_weak_references[_i]), static_cast<::flatbuffers::hash_value_t>(_e->Get(_i))); else _o->vector_of_weak_references[_i] = nullptr; } } else { _o->vector_of_weak_references.resize(0); } } - { auto _e = vector_of_strong_referrables(); if (_e) { _o->vector_of_strong_referrables.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { if(_o->vector_of_strong_referrables[_i]) { _e->Get(_i)->UnPackTo(_o->vector_of_strong_referrables[_i].get(), _resolver); } else { _o->vector_of_strong_referrables[_i] = flatbuffers::unique_ptr(_e->Get(_i)->UnPack(_resolver)); }; } } else { _o->vector_of_strong_referrables.resize(0); } } + { auto _e = vector_of_strong_referrables(); if (_e) { _o->vector_of_strong_referrables.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { if(_o->vector_of_strong_referrables[_i]) { _e->Get(_i)->UnPackTo(_o->vector_of_strong_referrables[_i].get(), _resolver); } else { _o->vector_of_strong_referrables[_i] = std::unique_ptr(_e->Get(_i)->UnPack(_resolver)); }; } } else { _o->vector_of_strong_referrables.resize(0); } } { auto _e = co_owning_reference(); /*scalar resolver, naked*/ if (_resolver) (*_resolver)(reinterpret_cast(&_o->co_owning_reference), static_cast<::flatbuffers::hash_value_t>(_e)); else _o->co_owning_reference = nullptr; } { auto _e = vector_of_co_owning_references(); if (_e) { _o->vector_of_co_owning_references.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { /*vector resolver, default_ptr_type*/ if (_resolver) (*_resolver)(reinterpret_cast(&_o->vector_of_co_owning_references[_i]), static_cast<::flatbuffers::hash_value_t>(_e->Get(_i)));/* else do nothing */; } } else { _o->vector_of_co_owning_references.resize(0); } } { auto _e = non_owning_reference(); /*scalar resolver, naked*/ if (_resolver) (*_resolver)(reinterpret_cast(&_o->non_owning_reference), static_cast<::flatbuffers::hash_value_t>(_e)); else _o->non_owning_reference = nullptr; } @@ -3103,7 +3103,7 @@ inline void Monster::UnPackTo(MonsterT *_o, const ::flatbuffers::resolver_functi { auto _e = vector_of_enums(); if (_e) { _o->vector_of_enums.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->vector_of_enums[_i] = static_cast(_e->Get(_i)); } } else { _o->vector_of_enums.resize(0); } } { auto _e = signed_enum(); _o->signed_enum = _e; } { auto _e = testrequirednestedflatbuffer(); if (_e) { _o->testrequirednestedflatbuffer.resize(_e->size()); std::copy(_e->begin(), _e->end(), _o->testrequirednestedflatbuffer.begin()); } } - { auto _e = scalar_key_sorted_tables(); if (_e) { _o->scalar_key_sorted_tables.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { if(_o->scalar_key_sorted_tables[_i]) { _e->Get(_i)->UnPackTo(_o->scalar_key_sorted_tables[_i].get(), _resolver); } else { _o->scalar_key_sorted_tables[_i] = flatbuffers::unique_ptr(_e->Get(_i)->UnPack(_resolver)); }; } } else { _o->scalar_key_sorted_tables.resize(0); } } + { auto _e = scalar_key_sorted_tables(); if (_e) { _o->scalar_key_sorted_tables.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { if(_o->scalar_key_sorted_tables[_i]) { _e->Get(_i)->UnPackTo(_o->scalar_key_sorted_tables[_i].get(), _resolver); } else { _o->scalar_key_sorted_tables[_i] = std::unique_ptr(_e->Get(_i)->UnPack(_resolver)); }; } } else { _o->scalar_key_sorted_tables.resize(0); } } { auto _e = native_inline(); if (_e) _o->native_inline = *_e; } { auto _e = long_enum_non_enum_default(); _o->long_enum_non_enum_default = _e; } { auto _e = long_enum_normal_default(); _o->long_enum_normal_default = _e; } @@ -4214,16 +4214,16 @@ inline void FinishSizePrefixedMonsterBuffer( fbb.FinishSizePrefixed(root, MonsterIdentifier()); } -inline flatbuffers::unique_ptr UnPackMonster( +inline std::unique_ptr UnPackMonster( const void *buf, const ::flatbuffers::resolver_function_t *res = nullptr) { - return flatbuffers::unique_ptr(GetMonster(buf)->UnPack(res)); + return std::unique_ptr(GetMonster(buf)->UnPack(res)); } -inline flatbuffers::unique_ptr UnPackSizePrefixedMonster( +inline std::unique_ptr UnPackSizePrefixedMonster( const void *buf, const ::flatbuffers::resolver_function_t *res = nullptr) { - return flatbuffers::unique_ptr(GetSizePrefixedMonster(buf)->UnPack(res)); + return std::unique_ptr(GetSizePrefixedMonster(buf)->UnPack(res)); } } // namespace Example diff --git a/tests/namespace_test/namespace_test2_generated.h b/tests/namespace_test/namespace_test2_generated.h index 212d0f1ef8..d59355df2d 100644 --- a/tests/namespace_test/namespace_test2_generated.h +++ b/tests/namespace_test/namespace_test2_generated.h @@ -69,10 +69,10 @@ struct TableInFirstNST : public ::flatbuffers::NativeTable { static FLATBUFFERS_CONSTEXPR_CPP11 const char *GetFullyQualifiedName() { return "NamespaceA.TableInFirstNST"; } - flatbuffers::unique_ptr foo_table{}; + std::unique_ptr foo_table{}; NamespaceA::NamespaceB::EnumInNestedNS foo_enum = NamespaceA::NamespaceB::EnumInNestedNS_A; NamespaceA::NamespaceB::UnionInNestedNSUnion foo_union{}; - flatbuffers::unique_ptr foo_struct{}; + std::unique_ptr foo_struct{}; TableInFirstNST() = default; TableInFirstNST(const TableInFirstNST &o); TableInFirstNST(TableInFirstNST&&) FLATBUFFERS_NOEXCEPT = default; @@ -203,8 +203,8 @@ struct TableInCT : public ::flatbuffers::NativeTable { static FLATBUFFERS_CONSTEXPR_CPP11 const char *GetFullyQualifiedName() { return "NamespaceC.TableInCT"; } - flatbuffers::unique_ptr refer_to_a1{}; - flatbuffers::unique_ptr refer_to_a2{}; + std::unique_ptr refer_to_a1{}; + std::unique_ptr refer_to_a2{}; TableInCT() = default; TableInCT(const TableInCT &o); TableInCT(TableInCT&&) FLATBUFFERS_NOEXCEPT = default; @@ -291,7 +291,7 @@ struct SecondTableInAT : public ::flatbuffers::NativeTable { static FLATBUFFERS_CONSTEXPR_CPP11 const char *GetFullyQualifiedName() { return "NamespaceA.SecondTableInAT"; } - flatbuffers::unique_ptr refer_to_c{}; + std::unique_ptr refer_to_c{}; SecondTableInAT() = default; SecondTableInAT(const SecondTableInAT &o); SecondTableInAT(SecondTableInAT&&) FLATBUFFERS_NOEXCEPT = default; @@ -393,11 +393,11 @@ inline TableInFirstNST *TableInFirstNS::UnPack(const ::flatbuffers::resolver_fun inline void TableInFirstNS::UnPackTo(TableInFirstNST *_o, const ::flatbuffers::resolver_function_t *_resolver) const { (void)_o; (void)_resolver; - { auto _e = foo_table(); if (_e) { if(_o->foo_table) { _e->UnPackTo(_o->foo_table.get(), _resolver); } else { _o->foo_table = flatbuffers::unique_ptr(_e->UnPack(_resolver)); } } else if (_o->foo_table) { _o->foo_table.reset(); } } + { auto _e = foo_table(); if (_e) { if(_o->foo_table) { _e->UnPackTo(_o->foo_table.get(), _resolver); } else { _o->foo_table = std::unique_ptr(_e->UnPack(_resolver)); } } else if (_o->foo_table) { _o->foo_table.reset(); } } { auto _e = foo_enum(); _o->foo_enum = _e; } { auto _e = foo_union_type(); _o->foo_union.type = _e; } { auto _e = foo_union(); if (_e) _o->foo_union.value = NamespaceA::NamespaceB::UnionInNestedNSUnion::UnPack(_e, foo_union_type(), _resolver); } - { auto _e = foo_struct(); if (_e) _o->foo_struct = flatbuffers::unique_ptr(new NamespaceA::NamespaceB::StructInNestedNS(*_e)); } + { auto _e = foo_struct(); if (_e) _o->foo_struct = std::unique_ptr(new NamespaceA::NamespaceB::StructInNestedNS(*_e)); } } inline ::flatbuffers::Offset TableInFirstNS::Pack(::flatbuffers::FlatBufferBuilder &_fbb, const TableInFirstNST* _o, const ::flatbuffers::rehasher_function_t *_rehasher) { @@ -458,8 +458,8 @@ inline TableInCT *TableInC::UnPack(const ::flatbuffers::resolver_function_t *_re inline void TableInC::UnPackTo(TableInCT *_o, const ::flatbuffers::resolver_function_t *_resolver) const { (void)_o; (void)_resolver; - { auto _e = refer_to_a1(); if (_e) { if(_o->refer_to_a1) { _e->UnPackTo(_o->refer_to_a1.get(), _resolver); } else { _o->refer_to_a1 = flatbuffers::unique_ptr(_e->UnPack(_resolver)); } } else if (_o->refer_to_a1) { _o->refer_to_a1.reset(); } } - { auto _e = refer_to_a2(); if (_e) { if(_o->refer_to_a2) { _e->UnPackTo(_o->refer_to_a2.get(), _resolver); } else { _o->refer_to_a2 = flatbuffers::unique_ptr(_e->UnPack(_resolver)); } } else if (_o->refer_to_a2) { _o->refer_to_a2.reset(); } } + { auto _e = refer_to_a1(); if (_e) { if(_o->refer_to_a1) { _e->UnPackTo(_o->refer_to_a1.get(), _resolver); } else { _o->refer_to_a1 = std::unique_ptr(_e->UnPack(_resolver)); } } else if (_o->refer_to_a1) { _o->refer_to_a1.reset(); } } + { auto _e = refer_to_a2(); if (_e) { if(_o->refer_to_a2) { _e->UnPackTo(_o->refer_to_a2.get(), _resolver); } else { _o->refer_to_a2 = std::unique_ptr(_e->UnPack(_resolver)); } } else if (_o->refer_to_a2) { _o->refer_to_a2.reset(); } } } inline ::flatbuffers::Offset TableInC::Pack(::flatbuffers::FlatBufferBuilder &_fbb, const TableInCT* _o, const ::flatbuffers::rehasher_function_t *_rehasher) { @@ -511,7 +511,7 @@ inline SecondTableInAT *SecondTableInA::UnPack(const ::flatbuffers::resolver_fun inline void SecondTableInA::UnPackTo(SecondTableInAT *_o, const ::flatbuffers::resolver_function_t *_resolver) const { (void)_o; (void)_resolver; - { auto _e = refer_to_c(); if (_e) { if(_o->refer_to_c) { _e->UnPackTo(_o->refer_to_c.get(), _resolver); } else { _o->refer_to_c = flatbuffers::unique_ptr(_e->UnPack(_resolver)); } } else if (_o->refer_to_c) { _o->refer_to_c.reset(); } } + { auto _e = refer_to_c(); if (_e) { if(_o->refer_to_c) { _e->UnPackTo(_o->refer_to_c.get(), _resolver); } else { _o->refer_to_c = std::unique_ptr(_e->UnPack(_resolver)); } } else if (_o->refer_to_c) { _o->refer_to_c.reset(); } } } inline ::flatbuffers::Offset SecondTableInA::Pack(::flatbuffers::FlatBufferBuilder &_fbb, const SecondTableInAT* _o, const ::flatbuffers::rehasher_function_t *_rehasher) { diff --git a/tests/native_inline_table_test_generated.h b/tests/native_inline_table_test_generated.h index aabd99ab46..7c025a695b 100644 --- a/tests/native_inline_table_test_generated.h +++ b/tests/native_inline_table_test_generated.h @@ -214,7 +214,7 @@ inline TestNativeInlineTableT *TestNativeInlineTable::UnPack(const ::flatbuffers inline void TestNativeInlineTable::UnPackTo(TestNativeInlineTableT *_o, const ::flatbuffers::resolver_function_t *_resolver) const { (void)_o; (void)_resolver; - { auto _e = t(); if (_e) { _o->t.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->t[_i] = *flatbuffers::unique_ptr(_e->Get(_i)->UnPack(_resolver)); } } else { _o->t.resize(0); } } + { auto _e = t(); if (_e) { _o->t.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->t[_i] = *std::unique_ptr(_e->Get(_i)->UnPack(_resolver)); } } else { _o->t.resize(0); } } } inline ::flatbuffers::Offset TestNativeInlineTable::Pack(::flatbuffers::FlatBufferBuilder &_fbb, const TestNativeInlineTableT* _o, const ::flatbuffers::rehasher_function_t *_rehasher) { diff --git a/tests/native_type_test_generated.h b/tests/native_type_test_generated.h index 062176b256..6c3534be2e 100644 --- a/tests/native_type_test_generated.h +++ b/tests/native_type_test_generated.h @@ -321,16 +321,16 @@ inline void FinishSizePrefixedApplicationDataBuffer( fbb.FinishSizePrefixed(root); } -inline flatbuffers::unique_ptr UnPackApplicationData( +inline std::unique_ptr UnPackApplicationData( const void *buf, const ::flatbuffers::resolver_function_t *res = nullptr) { - return flatbuffers::unique_ptr(GetApplicationData(buf)->UnPack(res)); + return std::unique_ptr(GetApplicationData(buf)->UnPack(res)); } -inline flatbuffers::unique_ptr UnPackSizePrefixedApplicationData( +inline std::unique_ptr UnPackSizePrefixedApplicationData( const void *buf, const ::flatbuffers::resolver_function_t *res = nullptr) { - return flatbuffers::unique_ptr(GetSizePrefixedApplicationData(buf)->UnPack(res)); + return std::unique_ptr(GetSizePrefixedApplicationData(buf)->UnPack(res)); } } // namespace Geometry diff --git a/tests/optional_scalars_generated.h b/tests/optional_scalars_generated.h index 40a3c91c84..3cfc19c35a 100644 --- a/tests/optional_scalars_generated.h +++ b/tests/optional_scalars_generated.h @@ -944,16 +944,16 @@ inline void FinishSizePrefixedScalarStuffBuffer( fbb.FinishSizePrefixed(root, ScalarStuffIdentifier()); } -inline flatbuffers::unique_ptr UnPackScalarStuff( +inline std::unique_ptr UnPackScalarStuff( const void *buf, const ::flatbuffers::resolver_function_t *res = nullptr) { - return flatbuffers::unique_ptr(GetScalarStuff(buf)->UnPack(res)); + return std::unique_ptr(GetScalarStuff(buf)->UnPack(res)); } -inline flatbuffers::unique_ptr UnPackSizePrefixedScalarStuff( +inline std::unique_ptr UnPackSizePrefixedScalarStuff( const void *buf, const ::flatbuffers::resolver_function_t *res = nullptr) { - return flatbuffers::unique_ptr(GetSizePrefixedScalarStuff(buf)->UnPack(res)); + return std::unique_ptr(GetSizePrefixedScalarStuff(buf)->UnPack(res)); } } // namespace optional_scalars diff --git a/tests/union_vector/union_vector_generated.h b/tests/union_vector/union_vector_generated.h index d1d06aaa9a..b44d7241ec 100644 --- a/tests/union_vector/union_vector_generated.h +++ b/tests/union_vector/union_vector_generated.h @@ -1274,16 +1274,16 @@ inline void FinishSizePrefixedMovieBuffer( fbb.FinishSizePrefixed(root, MovieIdentifier()); } -inline flatbuffers::unique_ptr UnPackMovie( +inline std::unique_ptr UnPackMovie( const void *buf, const ::flatbuffers::resolver_function_t *res = nullptr) { - return flatbuffers::unique_ptr(GetMovie(buf)->UnPack(res)); + return std::unique_ptr(GetMovie(buf)->UnPack(res)); } -inline flatbuffers::unique_ptr UnPackSizePrefixedMovie( +inline std::unique_ptr UnPackSizePrefixedMovie( const void *buf, const ::flatbuffers::resolver_function_t *res = nullptr) { - return flatbuffers::unique_ptr(GetSizePrefixedMovie(buf)->UnPack(res)); + return std::unique_ptr(GetSizePrefixedMovie(buf)->UnPack(res)); } #endif // FLATBUFFERS_GENERATED_UNIONVECTOR_H_ From 33084441477c6c92362b82eaaa8f62ad232a2515 Mon Sep 17 00:00:00 2001 From: Derek Bailey Date: Fri, 5 May 2023 13:43:07 -0700 Subject: [PATCH 177/571] Add goldens directory --- goldens/README.md | 26 ++++++ goldens/cpp/basic_generated.h | 157 ++++++++++++++++++++++++++++++++++ goldens/cpp/generate.py | 10 +++ goldens/csharp/Galaxy.cs | 45 ++++++++++ goldens/csharp/Universe.cs | 59 +++++++++++++ goldens/csharp/generate.py | 10 +++ goldens/generate_goldens.py | 10 +++ goldens/golden_utils.py | 30 +++++++ goldens/schema/basic.fbs | 13 +++ 9 files changed, 360 insertions(+) create mode 100644 goldens/README.md create mode 100644 goldens/cpp/basic_generated.h create mode 100644 goldens/cpp/generate.py create mode 100644 goldens/csharp/Galaxy.cs create mode 100644 goldens/csharp/Universe.cs create mode 100644 goldens/csharp/generate.py create mode 100755 goldens/generate_goldens.py create mode 100644 goldens/golden_utils.py create mode 100644 goldens/schema/basic.fbs diff --git a/goldens/README.md b/goldens/README.md new file mode 100644 index 0000000000..00bbdc0118 --- /dev/null +++ b/goldens/README.md @@ -0,0 +1,26 @@ +# Golden Generated Files + +This directory is a repository for the generated files of `flatc`. + +We check in the generated code so we can see, during a PR review, how the +changes affect the generated output. Its also useful as a reference to point too +as how things work across various languages. + +These files are **NOT** intended to be depended on by any code, such as tests or +or compiled examples. + +## Languages Specifics + +Each language should keep their generated code in their respective directories. +However, the parent schemas can, and should, be shared so we have a consistent +view of things across languages. These are kept in the `schema/` directory. + +Some languages may not support every generation feature, so each language is +required to specify the `flatc` arguments individually. + +* Try to avoid includes and nested directories, preferring it as flat as +possible. + +## Updating + +Just run the `generate_goldens.py` script and it should generate them all. diff --git a/goldens/cpp/basic_generated.h b/goldens/cpp/basic_generated.h new file mode 100644 index 0000000000..d2fa84ae27 --- /dev/null +++ b/goldens/cpp/basic_generated.h @@ -0,0 +1,157 @@ +// automatically generated by the FlatBuffers compiler, do not modify + + +#ifndef FLATBUFFERS_GENERATED_BASIC_H_ +#define FLATBUFFERS_GENERATED_BASIC_H_ + +#include "flatbuffers/flatbuffers.h" + +// Ensure the included flatbuffers.h is the same version as when this file was +// generated, otherwise it may not be compatible. +static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && + FLATBUFFERS_VERSION_MINOR == 3 && + FLATBUFFERS_VERSION_REVISION == 3, + "Non-compatible flatbuffers version included"); + +struct Galaxy; +struct GalaxyBuilder; + +struct Universe; +struct UniverseBuilder; + +struct Galaxy FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { + typedef GalaxyBuilder Builder; + enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { + VT_NUM_STARS = 4 + }; + int64_t num_stars() const { + return GetField(VT_NUM_STARS, 0); + } + bool Verify(::flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && + VerifyField(verifier, VT_NUM_STARS, 8) && + verifier.EndTable(); + } +}; + +struct GalaxyBuilder { + typedef Galaxy Table; + ::flatbuffers::FlatBufferBuilder &fbb_; + ::flatbuffers::uoffset_t start_; + void add_num_stars(int64_t num_stars) { + fbb_.AddElement(Galaxy::VT_NUM_STARS, num_stars, 0); + } + explicit GalaxyBuilder(::flatbuffers::FlatBufferBuilder &_fbb) + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } + ::flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = ::flatbuffers::Offset(end); + return o; + } +}; + +inline ::flatbuffers::Offset CreateGalaxy( + ::flatbuffers::FlatBufferBuilder &_fbb, + int64_t num_stars = 0) { + GalaxyBuilder builder_(_fbb); + builder_.add_num_stars(num_stars); + return builder_.Finish(); +} + +struct Universe FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { + typedef UniverseBuilder Builder; + enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { + VT_AGE = 4, + VT_GALAXIES = 6 + }; + double age() const { + return GetField(VT_AGE, 0.0); + } + const ::flatbuffers::Vector<::flatbuffers::Offset> *galaxies() const { + return GetPointer> *>(VT_GALAXIES); + } + bool Verify(::flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && + VerifyField(verifier, VT_AGE, 8) && + VerifyOffset(verifier, VT_GALAXIES) && + verifier.VerifyVector(galaxies()) && + verifier.VerifyVectorOfTables(galaxies()) && + verifier.EndTable(); + } +}; + +struct UniverseBuilder { + typedef Universe Table; + ::flatbuffers::FlatBufferBuilder &fbb_; + ::flatbuffers::uoffset_t start_; + void add_age(double age) { + fbb_.AddElement(Universe::VT_AGE, age, 0.0); + } + void add_galaxies(::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset>> galaxies) { + fbb_.AddOffset(Universe::VT_GALAXIES, galaxies); + } + explicit UniverseBuilder(::flatbuffers::FlatBufferBuilder &_fbb) + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } + ::flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = ::flatbuffers::Offset(end); + return o; + } +}; + +inline ::flatbuffers::Offset CreateUniverse( + ::flatbuffers::FlatBufferBuilder &_fbb, + double age = 0.0, + ::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset>> galaxies = 0) { + UniverseBuilder builder_(_fbb); + builder_.add_age(age); + builder_.add_galaxies(galaxies); + return builder_.Finish(); +} + +inline ::flatbuffers::Offset CreateUniverseDirect( + ::flatbuffers::FlatBufferBuilder &_fbb, + double age = 0.0, + const std::vector<::flatbuffers::Offset> *galaxies = nullptr) { + auto galaxies__ = galaxies ? _fbb.CreateVector<::flatbuffers::Offset>(*galaxies) : 0; + return CreateUniverse( + _fbb, + age, + galaxies__); +} + +inline const Universe *GetUniverse(const void *buf) { + return ::flatbuffers::GetRoot(buf); +} + +inline const Universe *GetSizePrefixedUniverse(const void *buf) { + return ::flatbuffers::GetSizePrefixedRoot(buf); +} + +inline bool VerifyUniverseBuffer( + ::flatbuffers::Verifier &verifier) { + return verifier.VerifyBuffer(nullptr); +} + +inline bool VerifySizePrefixedUniverseBuffer( + ::flatbuffers::Verifier &verifier) { + return verifier.VerifySizePrefixedBuffer(nullptr); +} + +inline void FinishUniverseBuffer( + ::flatbuffers::FlatBufferBuilder &fbb, + ::flatbuffers::Offset root) { + fbb.Finish(root); +} + +inline void FinishSizePrefixedUniverseBuffer( + ::flatbuffers::FlatBufferBuilder &fbb, + ::flatbuffers::Offset root) { + fbb.FinishSizePrefixed(root); +} + +#endif // FLATBUFFERS_GENERATED_BASIC_H_ diff --git a/goldens/cpp/generate.py b/goldens/cpp/generate.py new file mode 100644 index 0000000000..cdc7e8c37b --- /dev/null +++ b/goldens/cpp/generate.py @@ -0,0 +1,10 @@ +from golden_utils import flatc_golden + + +def flatc(options, schema): + # Wrap the golden flatc generator with C++ specifics + flatc_golden(options=["--cpp"] + options, schema=schema, prefix="cpp") + + +def GenerateCpp(): + flatc([], "basic.fbs") diff --git a/goldens/csharp/Galaxy.cs b/goldens/csharp/Galaxy.cs new file mode 100644 index 0000000000..4d39ca944f --- /dev/null +++ b/goldens/csharp/Galaxy.cs @@ -0,0 +1,45 @@ +// +// automatically generated by the FlatBuffers compiler, do not modify +// + +using global::System; +using global::System.Collections.Generic; +using global::Google.FlatBuffers; + +public struct Galaxy : IFlatbufferObject +{ + private Table __p; + public ByteBuffer ByteBuffer { get { return __p.bb; } } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_3_3(); } + public static Galaxy GetRootAsGalaxy(ByteBuffer _bb) { return GetRootAsGalaxy(_bb, new Galaxy()); } + public static Galaxy GetRootAsGalaxy(ByteBuffer _bb, Galaxy obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } + public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } + public Galaxy __assign(int _i, ByteBuffer _bb) { __init(_i, _bb); return this; } + + public long NumStars { get { int o = __p.__offset(4); return o != 0 ? __p.bb.GetLong(o + __p.bb_pos) : (long)0; } } + + public static Offset CreateGalaxy(FlatBufferBuilder builder, + long num_stars = 0) { + builder.StartTable(1); + Galaxy.AddNumStars(builder, num_stars); + return Galaxy.EndGalaxy(builder); + } + + public static void StartGalaxy(FlatBufferBuilder builder) { builder.StartTable(1); } + public static void AddNumStars(FlatBufferBuilder builder, long numStars) { builder.AddLong(0, numStars, 0); } + public static Offset EndGalaxy(FlatBufferBuilder builder) { + int o = builder.EndTable(); + return new Offset(o); + } +} + + +static public class GalaxyVerify +{ + static public bool Verify(Google.FlatBuffers.Verifier verifier, uint tablePos) + { + return verifier.VerifyTableStart(tablePos) + && verifier.VerifyField(tablePos, 4 /*NumStars*/, 8 /*long*/, 8, false) + && verifier.VerifyTableEnd(tablePos); + } +} diff --git a/goldens/csharp/Universe.cs b/goldens/csharp/Universe.cs new file mode 100644 index 0000000000..27178ad261 --- /dev/null +++ b/goldens/csharp/Universe.cs @@ -0,0 +1,59 @@ +// +// automatically generated by the FlatBuffers compiler, do not modify +// + +using global::System; +using global::System.Collections.Generic; +using global::Google.FlatBuffers; + +public struct Universe : IFlatbufferObject +{ + private Table __p; + public ByteBuffer ByteBuffer { get { return __p.bb; } } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_3_3(); } + public static Universe GetRootAsUniverse(ByteBuffer _bb) { return GetRootAsUniverse(_bb, new Universe()); } + public static Universe GetRootAsUniverse(ByteBuffer _bb, Universe obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } + public static bool VerifyUniverse(ByteBuffer _bb) {Google.FlatBuffers.Verifier verifier = new Google.FlatBuffers.Verifier(_bb); return verifier.VerifyBuffer("", false, UniverseVerify.Verify); } + public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } + public Universe __assign(int _i, ByteBuffer _bb) { __init(_i, _bb); return this; } + + public double Age { get { int o = __p.__offset(4); return o != 0 ? __p.bb.GetDouble(o + __p.bb_pos) : (double)0.0; } } + public Galaxy? Galaxies(int j) { int o = __p.__offset(6); return o != 0 ? (Galaxy?)(new Galaxy()).__assign(__p.__indirect(__p.__vector(o) + j * 4), __p.bb) : null; } + public int GalaxiesLength { get { int o = __p.__offset(6); return o != 0 ? __p.__vector_len(o) : 0; } } + + public static Offset CreateUniverse(FlatBufferBuilder builder, + double age = 0.0, + VectorOffset galaxiesOffset = default(VectorOffset)) { + builder.StartTable(2); + Universe.AddAge(builder, age); + Universe.AddGalaxies(builder, galaxiesOffset); + return Universe.EndUniverse(builder); + } + + public static void StartUniverse(FlatBufferBuilder builder) { builder.StartTable(2); } + public static void AddAge(FlatBufferBuilder builder, double age) { builder.AddDouble(0, age, 0.0); } + public static void AddGalaxies(FlatBufferBuilder builder, VectorOffset galaxiesOffset) { builder.AddOffset(1, galaxiesOffset.Value, 0); } + public static VectorOffset CreateGalaxiesVector(FlatBufferBuilder builder, Offset[] data) { builder.StartVector(4, data.Length, 4); for (int i = data.Length - 1; i >= 0; i--) builder.AddOffset(data[i].Value); return builder.EndVector(); } + public static VectorOffset CreateGalaxiesVectorBlock(FlatBufferBuilder builder, Offset[] data) { builder.StartVector(4, data.Length, 4); builder.Add(data); return builder.EndVector(); } + public static VectorOffset CreateGalaxiesVectorBlock(FlatBufferBuilder builder, ArraySegment> data) { builder.StartVector(4, data.Count, 4); builder.Add(data); return builder.EndVector(); } + public static VectorOffset CreateGalaxiesVectorBlock(FlatBufferBuilder builder, IntPtr dataPtr, int sizeInBytes) { builder.StartVector(1, sizeInBytes, 1); builder.Add>(dataPtr, sizeInBytes); return builder.EndVector(); } + public static void StartGalaxiesVector(FlatBufferBuilder builder, int numElems) { builder.StartVector(4, numElems, 4); } + public static Offset EndUniverse(FlatBufferBuilder builder) { + int o = builder.EndTable(); + return new Offset(o); + } + public static void FinishUniverseBuffer(FlatBufferBuilder builder, Offset offset) { builder.Finish(offset.Value); } + public static void FinishSizePrefixedUniverseBuffer(FlatBufferBuilder builder, Offset offset) { builder.FinishSizePrefixed(offset.Value); } +} + + +static public class UniverseVerify +{ + static public bool Verify(Google.FlatBuffers.Verifier verifier, uint tablePos) + { + return verifier.VerifyTableStart(tablePos) + && verifier.VerifyField(tablePos, 4 /*Age*/, 8 /*double*/, 8, false) + && verifier.VerifyVectorOfTables(tablePos, 6 /*Galaxies*/, GalaxyVerify.Verify, false) + && verifier.VerifyTableEnd(tablePos); + } +} diff --git a/goldens/csharp/generate.py b/goldens/csharp/generate.py new file mode 100644 index 0000000000..86a3a80f5a --- /dev/null +++ b/goldens/csharp/generate.py @@ -0,0 +1,10 @@ +from golden_utils import flatc_golden + + +def flatc(options, schema): + # Wrap the golden flatc generator with C# specifics + flatc_golden(options=["--csharp"] + options, schema=schema, prefix="csharp") + + +def GenerateCSharp(): + flatc([], "basic.fbs") diff --git a/goldens/generate_goldens.py b/goldens/generate_goldens.py new file mode 100755 index 0000000000..22fdd4e85b --- /dev/null +++ b/goldens/generate_goldens.py @@ -0,0 +1,10 @@ +#!/usr/bin/env python3 + +from cpp.generate import GenerateCpp +from csharp.generate import GenerateCSharp + +# Run each language generation logic +GenerateCpp() +GenerateCSharp() + +# TODO add other languages \ No newline at end of file diff --git a/goldens/golden_utils.py b/goldens/golden_utils.py new file mode 100644 index 0000000000..d2aab1330b --- /dev/null +++ b/goldens/golden_utils.py @@ -0,0 +1,30 @@ +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. +script_path = Path(__file__).parent.resolve() + +# Get the root path as an absolute path, so all derived paths are absolute. +root_path = script_path.parent.absolute() + +# Get the location of the schema +schema_path = Path(script_path, "schema") + +# Too add the util package in /scripts/util.py +sys.path.append(str(root_path.absolute())) + +from scripts.util import flatc + + +def flatc_golden(options, schema, prefix): + # wrap the generic flatc call with specifis for these goldens. + flatc( + options=options, + # where the files are generated, typically the language (e.g. "cpp"). + prefix=prefix, + # The schema are relative to the schema directory. + schema=str(Path(schema_path, schema)), + # Run flatc from this location. + cwd=script_path, + ) diff --git a/goldens/schema/basic.fbs b/goldens/schema/basic.fbs new file mode 100644 index 0000000000..8034599c7d --- /dev/null +++ b/goldens/schema/basic.fbs @@ -0,0 +1,13 @@ +// This file should contain the basics of flatbuffers that all languages should +// support. + +table Galaxy { + num_stars:long; +} + +table Universe { + age:double; + galaxies:[Galaxy]; +} + +root_type Universe; \ No newline at end of file From 489d9735e9a757ca8c661534f649e0a18117bd52 Mon Sep 17 00:00:00 2001 From: Derek Bailey Date: Fri, 5 May 2023 14:15:48 -0700 Subject: [PATCH 178/571] add rest of golden language directories --- goldens/dart/basic_generated.dart | 160 +++++++++++++ goldens/dart/generate.py | 10 + goldens/generate_goldens.py | 27 ++- goldens/go/Galaxy.go | 64 ++++++ goldens/go/Universe.go | 90 ++++++++ goldens/go/generate.py | 10 + goldens/java/Galaxy.java | 51 +++++ goldens/java/Universe.java | 63 +++++ goldens/java/generate.py | 10 + goldens/kotlin/Galaxy.kt | 53 +++++ goldens/kotlin/Universe.kt | 78 +++++++ goldens/kotlin/generate.py | 10 + goldens/lobster/basic_generated.lobster | 55 +++++ goldens/lobster/generate.py | 10 + goldens/lua/generate.py | 10 + goldens/nim/generate.py | 10 + goldens/php/Galaxy.php | 82 +++++++ goldens/php/Universe.php | 141 ++++++++++++ goldens/php/generate.py | 10 + goldens/py/Galaxy.py | 50 ++++ goldens/py/Universe.py | 87 +++++++ goldens/py/__init__.py | 0 goldens/py/generate.py | 10 + goldens/rust/basic_generated.rs | 293 ++++++++++++++++++++++++ goldens/rust/generate.py | 10 + goldens/swift/basic_generated.swift | 84 +++++++ goldens/swift/generate.py | 10 + goldens/ts/basic.ts | 4 + goldens/ts/galaxy.ts | 46 ++++ goldens/ts/generate.py | 10 + goldens/ts/universe.ts | 84 +++++++ 31 files changed, 1630 insertions(+), 2 deletions(-) create mode 100644 goldens/dart/basic_generated.dart create mode 100644 goldens/dart/generate.py create mode 100644 goldens/go/Galaxy.go create mode 100644 goldens/go/Universe.go create mode 100644 goldens/go/generate.py create mode 100644 goldens/java/Galaxy.java create mode 100644 goldens/java/Universe.java create mode 100644 goldens/java/generate.py create mode 100644 goldens/kotlin/Galaxy.kt create mode 100644 goldens/kotlin/Universe.kt create mode 100644 goldens/kotlin/generate.py create mode 100644 goldens/lobster/basic_generated.lobster create mode 100644 goldens/lobster/generate.py create mode 100644 goldens/lua/generate.py create mode 100644 goldens/nim/generate.py create mode 100644 goldens/php/Galaxy.php create mode 100644 goldens/php/Universe.php create mode 100644 goldens/php/generate.py create mode 100644 goldens/py/Galaxy.py create mode 100644 goldens/py/Universe.py create mode 100644 goldens/py/__init__.py create mode 100644 goldens/py/generate.py create mode 100644 goldens/rust/basic_generated.rs create mode 100644 goldens/rust/generate.py create mode 100644 goldens/swift/basic_generated.swift create mode 100644 goldens/swift/generate.py create mode 100644 goldens/ts/basic.ts create mode 100644 goldens/ts/galaxy.ts create mode 100644 goldens/ts/generate.py create mode 100644 goldens/ts/universe.ts diff --git a/goldens/dart/basic_generated.dart b/goldens/dart/basic_generated.dart new file mode 100644 index 0000000000..dabd596019 --- /dev/null +++ b/goldens/dart/basic_generated.dart @@ -0,0 +1,160 @@ +// automatically generated by the FlatBuffers compiler, do not modify +// ignore_for_file: unused_import, unused_field, unused_element, unused_local_variable + +import 'dart:typed_data' show Uint8List; +import 'package:flat_buffers/flat_buffers.dart' as fb; + + +class Galaxy { + Galaxy._(this._bc, this._bcOffset); + factory Galaxy(List bytes) { + final rootRef = fb.BufferContext.fromBytes(bytes); + return reader.read(rootRef, 0); + } + + static const fb.Reader reader = _GalaxyReader(); + + final fb.BufferContext _bc; + final int _bcOffset; + + int get numStars => const fb.Int64Reader().vTableGet(_bc, _bcOffset, 4, 0); + + @override + String toString() { + return 'Galaxy{numStars: ${numStars}}'; + } +} + +class _GalaxyReader extends fb.TableReader { + const _GalaxyReader(); + + @override + Galaxy createObject(fb.BufferContext bc, int offset) => + Galaxy._(bc, offset); +} + +class GalaxyBuilder { + GalaxyBuilder(this.fbBuilder); + + final fb.Builder fbBuilder; + + void begin() { + fbBuilder.startTable(1); + } + + int addNumStars(int? numStars) { + fbBuilder.addInt64(0, numStars); + return fbBuilder.offset; + } + + int finish() { + return fbBuilder.endTable(); + } +} + +class GalaxyObjectBuilder extends fb.ObjectBuilder { + final int? _numStars; + + GalaxyObjectBuilder({ + int? numStars, + }) + : _numStars = numStars; + + /// Finish building, and store into the [fbBuilder]. + @override + int finish(fb.Builder fbBuilder) { + fbBuilder.startTable(1); + fbBuilder.addInt64(0, _numStars); + return fbBuilder.endTable(); + } + + /// Convenience method to serialize to byte list. + @override + Uint8List toBytes([String? fileIdentifier]) { + final fbBuilder = fb.Builder(deduplicateTables: false); + fbBuilder.finish(finish(fbBuilder), fileIdentifier); + return fbBuilder.buffer; + } +} +class Universe { + Universe._(this._bc, this._bcOffset); + factory Universe(List bytes) { + final rootRef = fb.BufferContext.fromBytes(bytes); + return reader.read(rootRef, 0); + } + + static const fb.Reader reader = _UniverseReader(); + + final fb.BufferContext _bc; + final int _bcOffset; + + double get age => const fb.Float64Reader().vTableGet(_bc, _bcOffset, 4, 0.0); + List? get galaxies => const fb.ListReader(Galaxy.reader).vTableGetNullable(_bc, _bcOffset, 6); + + @override + String toString() { + return 'Universe{age: ${age}, galaxies: ${galaxies}}'; + } +} + +class _UniverseReader extends fb.TableReader { + const _UniverseReader(); + + @override + Universe createObject(fb.BufferContext bc, int offset) => + Universe._(bc, offset); +} + +class UniverseBuilder { + UniverseBuilder(this.fbBuilder); + + final fb.Builder fbBuilder; + + void begin() { + fbBuilder.startTable(2); + } + + int addAge(double? age) { + fbBuilder.addFloat64(0, age); + return fbBuilder.offset; + } + int addGalaxiesOffset(int? offset) { + fbBuilder.addOffset(1, offset); + return fbBuilder.offset; + } + + int finish() { + return fbBuilder.endTable(); + } +} + +class UniverseObjectBuilder extends fb.ObjectBuilder { + final double? _age; + final List? _galaxies; + + UniverseObjectBuilder({ + double? age, + List? galaxies, + }) + : _age = age, + _galaxies = galaxies; + + /// Finish building, and store into the [fbBuilder]. + @override + int finish(fb.Builder fbBuilder) { + final int? galaxiesOffset = _galaxies == null ? null + : fbBuilder.writeList(_galaxies!.map((b) => b.getOrCreateOffset(fbBuilder)).toList()); + fbBuilder.startTable(2); + fbBuilder.addFloat64(0, _age); + fbBuilder.addOffset(1, galaxiesOffset); + return fbBuilder.endTable(); + } + + /// Convenience method to serialize to byte list. + @override + Uint8List toBytes([String? fileIdentifier]) { + final fbBuilder = fb.Builder(deduplicateTables: false); + fbBuilder.finish(finish(fbBuilder), fileIdentifier); + return fbBuilder.buffer; + } +} diff --git a/goldens/dart/generate.py b/goldens/dart/generate.py new file mode 100644 index 0000000000..a92070c265 --- /dev/null +++ b/goldens/dart/generate.py @@ -0,0 +1,10 @@ +from golden_utils import flatc_golden + + +def flatc(options, schema): + # Wrap the golden flatc generator with Dart specifics + flatc_golden(options=["--dart"] + options, schema=schema, prefix="dart") + + +def GenerateDart(): + flatc([], "basic.fbs") diff --git a/goldens/generate_goldens.py b/goldens/generate_goldens.py index 22fdd4e85b..756a604cbc 100755 --- a/goldens/generate_goldens.py +++ b/goldens/generate_goldens.py @@ -2,9 +2,32 @@ from cpp.generate import GenerateCpp from csharp.generate import GenerateCSharp +from dart.generate import GenerateDart +from go.generate import GenerateGo +from java.generate import GenerateJava +from kotlin.generate import GenerateKotlin +from lobster.generate import GenerateLobster +from lua.generate import GenerateLua +from nim.generate import GenerateNim +from php.generate import GeneratePhp +from py.generate import GeneratePython +from rust.generate import GenerateRust +from swift.generate import GenerateSwift +from ts.generate import GenerateTs # Run each language generation logic GenerateCpp() GenerateCSharp() - -# TODO add other languages \ No newline at end of file +GenerateDart() +GenerateGo() +GenerateJava() +GenerateKotlin() +GenerateLobster() +# TODO this doesn't respect the output prefix, fix and reenable +#GenerateLua() +GenerateNim() +GeneratePhp() +GeneratePython() +GenerateRust() +GenerateSwift() +GenerateTs() diff --git a/goldens/go/Galaxy.go b/goldens/go/Galaxy.go new file mode 100644 index 0000000000..870490518d --- /dev/null +++ b/goldens/go/Galaxy.go @@ -0,0 +1,64 @@ +// Code generated by the FlatBuffers compiler. DO NOT EDIT. + +package Galaxy + +import ( + flatbuffers "github.com/google/flatbuffers/go" +) + +type Galaxy struct { + _tab flatbuffers.Table +} + +func GetRootAsGalaxy(buf []byte, offset flatbuffers.UOffsetT) *Galaxy { + n := flatbuffers.GetUOffsetT(buf[offset:]) + x := &Galaxy{} + x.Init(buf, n+offset) + return x +} + +func FinishGalaxyBuffer(builder *flatbuffers.Builder, offset flatbuffers.UOffsetT) { + builder.Finish(offset) +} + +func GetSizePrefixedRootAsGalaxy(buf []byte, offset flatbuffers.UOffsetT) *Galaxy { + n := flatbuffers.GetUOffsetT(buf[offset+flatbuffers.SizeUint32:]) + x := &Galaxy{} + x.Init(buf, n+offset+flatbuffers.SizeUint32) + return x +} + +func FinishSizePrefixedGalaxyBuffer(builder *flatbuffers.Builder, offset flatbuffers.UOffsetT) { + builder.FinishSizePrefixed(offset) +} + +func (rcv *Galaxy) Init(buf []byte, i flatbuffers.UOffsetT) { + rcv._tab.Bytes = buf + rcv._tab.Pos = i +} + +func (rcv *Galaxy) Table() flatbuffers.Table { + return rcv._tab +} + +func (rcv *Galaxy) NumStars() int64 { + o := flatbuffers.UOffsetT(rcv._tab.Offset(4)) + if o != 0 { + return rcv._tab.GetInt64(o + rcv._tab.Pos) + } + return 0 +} + +func (rcv *Galaxy) MutateNumStars(n int64) bool { + return rcv._tab.MutateInt64Slot(4, n) +} + +func GalaxyStart(builder *flatbuffers.Builder) { + builder.StartObject(1) +} +func GalaxyAddNumStars(builder *flatbuffers.Builder, numStars int64) { + builder.PrependInt64Slot(0, numStars, 0) +} +func GalaxyEnd(builder *flatbuffers.Builder) flatbuffers.UOffsetT { + return builder.EndObject() +} diff --git a/goldens/go/Universe.go b/goldens/go/Universe.go new file mode 100644 index 0000000000..0f07f16933 --- /dev/null +++ b/goldens/go/Universe.go @@ -0,0 +1,90 @@ +// Code generated by the FlatBuffers compiler. DO NOT EDIT. + +package Universe + +import ( + flatbuffers "github.com/google/flatbuffers/go" +) + +type Universe struct { + _tab flatbuffers.Table +} + +func GetRootAsUniverse(buf []byte, offset flatbuffers.UOffsetT) *Universe { + n := flatbuffers.GetUOffsetT(buf[offset:]) + x := &Universe{} + x.Init(buf, n+offset) + return x +} + +func FinishUniverseBuffer(builder *flatbuffers.Builder, offset flatbuffers.UOffsetT) { + builder.Finish(offset) +} + +func GetSizePrefixedRootAsUniverse(buf []byte, offset flatbuffers.UOffsetT) *Universe { + n := flatbuffers.GetUOffsetT(buf[offset+flatbuffers.SizeUint32:]) + x := &Universe{} + x.Init(buf, n+offset+flatbuffers.SizeUint32) + return x +} + +func FinishSizePrefixedUniverseBuffer(builder *flatbuffers.Builder, offset flatbuffers.UOffsetT) { + builder.FinishSizePrefixed(offset) +} + +func (rcv *Universe) Init(buf []byte, i flatbuffers.UOffsetT) { + rcv._tab.Bytes = buf + rcv._tab.Pos = i +} + +func (rcv *Universe) Table() flatbuffers.Table { + return rcv._tab +} + +func (rcv *Universe) Age() float64 { + o := flatbuffers.UOffsetT(rcv._tab.Offset(4)) + if o != 0 { + return rcv._tab.GetFloat64(o + rcv._tab.Pos) + } + return 0.0 +} + +func (rcv *Universe) MutateAge(n float64) bool { + return rcv._tab.MutateFloat64Slot(4, n) +} + +func (rcv *Universe) Galaxies(obj *Galaxy, j int) bool { + o := flatbuffers.UOffsetT(rcv._tab.Offset(6)) + if o != 0 { + x := rcv._tab.Vector(o) + x += flatbuffers.UOffsetT(j) * 4 + x = rcv._tab.Indirect(x) + obj.Init(rcv._tab.Bytes, x) + return true + } + return false +} + +func (rcv *Universe) GalaxiesLength() int { + o := flatbuffers.UOffsetT(rcv._tab.Offset(6)) + if o != 0 { + return rcv._tab.VectorLen(o) + } + return 0 +} + +func UniverseStart(builder *flatbuffers.Builder) { + builder.StartObject(2) +} +func UniverseAddAge(builder *flatbuffers.Builder, age float64) { + builder.PrependFloat64Slot(0, age, 0.0) +} +func UniverseAddGalaxies(builder *flatbuffers.Builder, galaxies flatbuffers.UOffsetT) { + builder.PrependUOffsetTSlot(1, flatbuffers.UOffsetT(galaxies), 0) +} +func UniverseStartGalaxiesVector(builder *flatbuffers.Builder, numElems int) flatbuffers.UOffsetT { + return builder.StartVector(4, numElems, 4) +} +func UniverseEnd(builder *flatbuffers.Builder) flatbuffers.UOffsetT { + return builder.EndObject() +} diff --git a/goldens/go/generate.py b/goldens/go/generate.py new file mode 100644 index 0000000000..358c42c30b --- /dev/null +++ b/goldens/go/generate.py @@ -0,0 +1,10 @@ +from golden_utils import flatc_golden + + +def flatc(options, schema): + # Wrap the golden flatc generator with Go specifics + flatc_golden(options=["--go"] + options, schema=schema, prefix="go") + + +def GenerateGo(): + flatc([], "basic.fbs") diff --git a/goldens/java/Galaxy.java b/goldens/java/Galaxy.java new file mode 100644 index 0000000000..d18124b738 --- /dev/null +++ b/goldens/java/Galaxy.java @@ -0,0 +1,51 @@ +// automatically generated by the FlatBuffers compiler, do not modify + +import com.google.flatbuffers.BaseVector; +import com.google.flatbuffers.BooleanVector; +import com.google.flatbuffers.ByteVector; +import com.google.flatbuffers.Constants; +import com.google.flatbuffers.DoubleVector; +import com.google.flatbuffers.FlatBufferBuilder; +import com.google.flatbuffers.FloatVector; +import com.google.flatbuffers.IntVector; +import com.google.flatbuffers.LongVector; +import com.google.flatbuffers.ShortVector; +import com.google.flatbuffers.StringVector; +import com.google.flatbuffers.Struct; +import com.google.flatbuffers.Table; +import com.google.flatbuffers.UnionVector; +import java.nio.ByteBuffer; +import java.nio.ByteOrder; + +@SuppressWarnings("unused") +public final class Galaxy extends Table { + public static void ValidateVersion() { Constants.FLATBUFFERS_23_3_3(); } + public static Galaxy getRootAsGalaxy(ByteBuffer _bb) { return getRootAsGalaxy(_bb, new Galaxy()); } + public static Galaxy getRootAsGalaxy(ByteBuffer _bb, Galaxy obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } + public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } + public Galaxy __assign(int _i, ByteBuffer _bb) { __init(_i, _bb); return this; } + + public long numStars() { int o = __offset(4); return o != 0 ? bb.getLong(o + bb_pos) : 0L; } + + public static int createGalaxy(FlatBufferBuilder builder, + long numStars) { + builder.startTable(1); + Galaxy.addNumStars(builder, numStars); + return Galaxy.endGalaxy(builder); + } + + public static void startGalaxy(FlatBufferBuilder builder) { builder.startTable(1); } + public static void addNumStars(FlatBufferBuilder builder, long numStars) { builder.addLong(0, numStars, 0L); } + public static int endGalaxy(FlatBufferBuilder builder) { + int o = builder.endTable(); + return o; + } + + public static final class Vector extends BaseVector { + public Vector __assign(int _vector, int _element_size, ByteBuffer _bb) { __reset(_vector, _element_size, _bb); return this; } + + public Galaxy get(int j) { return get(new Galaxy(), j); } + public Galaxy get(Galaxy obj, int j) { return obj.__assign(__indirect(__element(j), bb), bb); } + } +} + diff --git a/goldens/java/Universe.java b/goldens/java/Universe.java new file mode 100644 index 0000000000..b02bdc390f --- /dev/null +++ b/goldens/java/Universe.java @@ -0,0 +1,63 @@ +// automatically generated by the FlatBuffers compiler, do not modify + +import com.google.flatbuffers.BaseVector; +import com.google.flatbuffers.BooleanVector; +import com.google.flatbuffers.ByteVector; +import com.google.flatbuffers.Constants; +import com.google.flatbuffers.DoubleVector; +import com.google.flatbuffers.FlatBufferBuilder; +import com.google.flatbuffers.FloatVector; +import com.google.flatbuffers.IntVector; +import com.google.flatbuffers.LongVector; +import com.google.flatbuffers.ShortVector; +import com.google.flatbuffers.StringVector; +import com.google.flatbuffers.Struct; +import com.google.flatbuffers.Table; +import com.google.flatbuffers.UnionVector; +import java.nio.ByteBuffer; +import java.nio.ByteOrder; + +@SuppressWarnings("unused") +public final class Universe extends Table { + public static void ValidateVersion() { Constants.FLATBUFFERS_23_3_3(); } + public static Universe getRootAsUniverse(ByteBuffer _bb) { return getRootAsUniverse(_bb, new Universe()); } + public static Universe getRootAsUniverse(ByteBuffer _bb, Universe obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } + public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } + public Universe __assign(int _i, ByteBuffer _bb) { __init(_i, _bb); return this; } + + public double age() { int o = __offset(4); return o != 0 ? bb.getDouble(o + bb_pos) : 0.0; } + public Galaxy galaxies(int j) { return galaxies(new Galaxy(), j); } + public Galaxy galaxies(Galaxy obj, int j) { int o = __offset(6); return o != 0 ? obj.__assign(__indirect(__vector(o) + j * 4), bb) : null; } + public int galaxiesLength() { int o = __offset(6); return o != 0 ? __vector_len(o) : 0; } + public Galaxy.Vector galaxiesVector() { return galaxiesVector(new Galaxy.Vector()); } + public Galaxy.Vector galaxiesVector(Galaxy.Vector obj) { int o = __offset(6); return o != 0 ? obj.__assign(__vector(o), 4, bb) : null; } + + public static int createUniverse(FlatBufferBuilder builder, + double age, + int galaxiesOffset) { + builder.startTable(2); + Universe.addAge(builder, age); + Universe.addGalaxies(builder, galaxiesOffset); + return Universe.endUniverse(builder); + } + + public static void startUniverse(FlatBufferBuilder builder) { builder.startTable(2); } + public static void addAge(FlatBufferBuilder builder, double age) { builder.addDouble(0, age, 0.0); } + public static void addGalaxies(FlatBufferBuilder builder, int galaxiesOffset) { builder.addOffset(1, galaxiesOffset, 0); } + public static int createGalaxiesVector(FlatBufferBuilder builder, int[] data) { builder.startVector(4, data.length, 4); for (int i = data.length - 1; i >= 0; i--) builder.addOffset(data[i]); return builder.endVector(); } + public static void startGalaxiesVector(FlatBufferBuilder builder, int numElems) { builder.startVector(4, numElems, 4); } + public static int endUniverse(FlatBufferBuilder builder) { + int o = builder.endTable(); + return o; + } + public static void finishUniverseBuffer(FlatBufferBuilder builder, int offset) { builder.finish(offset); } + public static void finishSizePrefixedUniverseBuffer(FlatBufferBuilder builder, int offset) { builder.finishSizePrefixed(offset); } + + public static final class Vector extends BaseVector { + public Vector __assign(int _vector, int _element_size, ByteBuffer _bb) { __reset(_vector, _element_size, _bb); return this; } + + public Universe get(int j) { return get(new Universe(), j); } + public Universe get(Universe obj, int j) { return obj.__assign(__indirect(__element(j), bb), bb); } + } +} + diff --git a/goldens/java/generate.py b/goldens/java/generate.py new file mode 100644 index 0000000000..cc1a8b2945 --- /dev/null +++ b/goldens/java/generate.py @@ -0,0 +1,10 @@ +from golden_utils import flatc_golden + + +def flatc(options, schema): + # Wrap the golden flatc generator with Java specifics + flatc_golden(options=["--java"] + options, schema=schema, prefix="java") + + +def GenerateJava(): + flatc([], "basic.fbs") diff --git a/goldens/kotlin/Galaxy.kt b/goldens/kotlin/Galaxy.kt new file mode 100644 index 0000000000..891858ae15 --- /dev/null +++ b/goldens/kotlin/Galaxy.kt @@ -0,0 +1,53 @@ +// automatically generated by the FlatBuffers compiler, do not modify + +import com.google.flatbuffers.BaseVector +import com.google.flatbuffers.BooleanVector +import com.google.flatbuffers.ByteVector +import com.google.flatbuffers.Constants +import com.google.flatbuffers.DoubleVector +import com.google.flatbuffers.FlatBufferBuilder +import com.google.flatbuffers.FloatVector +import com.google.flatbuffers.LongVector +import com.google.flatbuffers.StringVector +import com.google.flatbuffers.Struct +import com.google.flatbuffers.Table +import com.google.flatbuffers.UnionVector +import java.nio.ByteBuffer +import java.nio.ByteOrder +import kotlin.math.sign + +@Suppress("unused") +class Galaxy : Table() { + + fun __init(_i: Int, _bb: ByteBuffer) { + __reset(_i, _bb) + } + fun __assign(_i: Int, _bb: ByteBuffer) : Galaxy { + __init(_i, _bb) + return this + } + val numStars : Long + get() { + val o = __offset(4) + return if(o != 0) bb.getLong(o + bb_pos) else 0L + } + companion object { + fun validateVersion() = Constants.FLATBUFFERS_23_3_3() + fun getRootAsGalaxy(_bb: ByteBuffer): Galaxy = getRootAsGalaxy(_bb, Galaxy()) + fun getRootAsGalaxy(_bb: ByteBuffer, obj: Galaxy): Galaxy { + _bb.order(ByteOrder.LITTLE_ENDIAN) + return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)) + } + fun createGalaxy(builder: FlatBufferBuilder, numStars: Long) : Int { + builder.startTable(1) + addNumStars(builder, numStars) + return endGalaxy(builder) + } + fun startGalaxy(builder: FlatBufferBuilder) = builder.startTable(1) + fun addNumStars(builder: FlatBufferBuilder, numStars: Long) = builder.addLong(0, numStars, 0L) + fun endGalaxy(builder: FlatBufferBuilder) : Int { + val o = builder.endTable() + return o + } + } +} diff --git a/goldens/kotlin/Universe.kt b/goldens/kotlin/Universe.kt new file mode 100644 index 0000000000..4944304485 --- /dev/null +++ b/goldens/kotlin/Universe.kt @@ -0,0 +1,78 @@ +// automatically generated by the FlatBuffers compiler, do not modify + +import com.google.flatbuffers.BaseVector +import com.google.flatbuffers.BooleanVector +import com.google.flatbuffers.ByteVector +import com.google.flatbuffers.Constants +import com.google.flatbuffers.DoubleVector +import com.google.flatbuffers.FlatBufferBuilder +import com.google.flatbuffers.FloatVector +import com.google.flatbuffers.LongVector +import com.google.flatbuffers.StringVector +import com.google.flatbuffers.Struct +import com.google.flatbuffers.Table +import com.google.flatbuffers.UnionVector +import java.nio.ByteBuffer +import java.nio.ByteOrder +import kotlin.math.sign + +@Suppress("unused") +class Universe : Table() { + + fun __init(_i: Int, _bb: ByteBuffer) { + __reset(_i, _bb) + } + fun __assign(_i: Int, _bb: ByteBuffer) : Universe { + __init(_i, _bb) + return this + } + val age : Double + get() { + val o = __offset(4) + return if(o != 0) bb.getDouble(o + bb_pos) else 0.0 + } + fun galaxies(j: Int) : Galaxy? = galaxies(Galaxy(), j) + fun galaxies(obj: Galaxy, j: Int) : Galaxy? { + val o = __offset(6) + return if (o != 0) { + obj.__assign(__indirect(__vector(o) + j * 4), bb) + } else { + null + } + } + val galaxiesLength : Int + get() { + val o = __offset(6); return if (o != 0) __vector_len(o) else 0 + } + companion object { + fun validateVersion() = Constants.FLATBUFFERS_23_3_3() + fun getRootAsUniverse(_bb: ByteBuffer): Universe = getRootAsUniverse(_bb, Universe()) + fun getRootAsUniverse(_bb: ByteBuffer, obj: Universe): Universe { + _bb.order(ByteOrder.LITTLE_ENDIAN) + return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)) + } + fun createUniverse(builder: FlatBufferBuilder, age: Double, galaxiesOffset: Int) : Int { + builder.startTable(2) + addAge(builder, age) + addGalaxies(builder, galaxiesOffset) + return endUniverse(builder) + } + fun startUniverse(builder: FlatBufferBuilder) = builder.startTable(2) + fun addAge(builder: FlatBufferBuilder, age: Double) = builder.addDouble(0, age, 0.0) + fun addGalaxies(builder: FlatBufferBuilder, galaxies: Int) = builder.addOffset(1, galaxies, 0) + fun createGalaxiesVector(builder: FlatBufferBuilder, data: IntArray) : Int { + builder.startVector(4, data.size, 4) + for (i in data.size - 1 downTo 0) { + builder.addOffset(data[i]) + } + return builder.endVector() + } + fun startGalaxiesVector(builder: FlatBufferBuilder, numElems: Int) = builder.startVector(4, numElems, 4) + fun endUniverse(builder: FlatBufferBuilder) : Int { + val o = builder.endTable() + return o + } + fun finishUniverseBuffer(builder: FlatBufferBuilder, offset: Int) = builder.finish(offset) + fun finishSizePrefixedUniverseBuffer(builder: FlatBufferBuilder, offset: Int) = builder.finishSizePrefixed(offset) + } +} diff --git a/goldens/kotlin/generate.py b/goldens/kotlin/generate.py new file mode 100644 index 0000000000..ac8b551743 --- /dev/null +++ b/goldens/kotlin/generate.py @@ -0,0 +1,10 @@ +from golden_utils import flatc_golden + + +def flatc(options, schema): + # Wrap the golden flatc generator with Kotlin specifics + flatc_golden(options=["--kotlin"] + options, schema=schema, prefix="kotlin") + + +def GenerateKotlin(): + flatc([], "basic.fbs") diff --git a/goldens/lobster/basic_generated.lobster b/goldens/lobster/basic_generated.lobster new file mode 100644 index 0000000000..5d4fd25b87 --- /dev/null +++ b/goldens/lobster/basic_generated.lobster @@ -0,0 +1,55 @@ +// automatically generated by the FlatBuffers compiler, do not modify +import flatbuffers + +class Galaxy + +class Universe + +class Galaxy : flatbuffers_handle + def num_stars() -> int: + return buf_.flatbuffers_field_int64(pos_, 4, 0) + +def GetRootAsGalaxy(buf:string): return Galaxy { buf, buf.flatbuffers_indirect(0) } + +struct GalaxyBuilder: + b_:flatbuffers_builder + def start(): + b_.StartObject(1) + return this + def add_num_stars(num_stars:int): + b_.PrependInt64Slot(0, num_stars, 0) + return this + def end(): + return b_.EndObject() + +class Universe : flatbuffers_handle + def age() -> float: + return buf_.flatbuffers_field_float64(pos_, 4, 0.0) + def galaxies(i:int) -> Galaxy: + return Galaxy { buf_, buf_.flatbuffers_indirect(buf_.flatbuffers_field_vector(pos_, 6) + i * 4) } + def galaxies_length() -> int: + return buf_.flatbuffers_field_vector_len(pos_, 6) + +def GetRootAsUniverse(buf:string): return Universe { buf, buf.flatbuffers_indirect(0) } + +struct UniverseBuilder: + b_:flatbuffers_builder + def start(): + b_.StartObject(2) + return this + def add_age(age:float): + b_.PrependFloat64Slot(0, age, 0.0) + return this + def add_galaxies(galaxies:flatbuffers_offset): + b_.PrependUOffsetTRelativeSlot(1, galaxies) + return this + def end(): + return b_.EndObject() + +def UniverseStartGalaxiesVector(b_:flatbuffers_builder, n_:int): + b_.StartVector(4, n_, 4) +def UniverseCreateGalaxiesVector(b_:flatbuffers_builder, v_:[flatbuffers_offset]): + b_.StartVector(4, v_.length, 4) + reverse(v_) e_: b_.PrependUOffsetTRelative(e_) + return b_.EndVector(v_.length) + diff --git a/goldens/lobster/generate.py b/goldens/lobster/generate.py new file mode 100644 index 0000000000..cb75fda4b7 --- /dev/null +++ b/goldens/lobster/generate.py @@ -0,0 +1,10 @@ +from golden_utils import flatc_golden + + +def flatc(options, schema): + # Wrap the golden flatc generator with Lobster specifics + flatc_golden(options=["--lobster"] + options, schema=schema, prefix="lobster") + + +def GenerateLobster(): + flatc([], "basic.fbs") diff --git a/goldens/lua/generate.py b/goldens/lua/generate.py new file mode 100644 index 0000000000..d099118a80 --- /dev/null +++ b/goldens/lua/generate.py @@ -0,0 +1,10 @@ +from golden_utils import flatc_golden + + +def flatc(options, schema): + # Wrap the golden flatc generator with Lua specifics + flatc_golden(options=["--lua"] + options, schema=schema, prefix="lua") + + +def GenerateLua(): + flatc([], "basic.fbs") diff --git a/goldens/nim/generate.py b/goldens/nim/generate.py new file mode 100644 index 0000000000..16c0d3bcdb --- /dev/null +++ b/goldens/nim/generate.py @@ -0,0 +1,10 @@ +from golden_utils import flatc_golden + + +def flatc(options, schema): + # Wrap the golden flatc generator with Nim specifics + flatc_golden(options=["--nim"] + options, schema=schema, prefix="nim") + + +def GenerateNim(): + flatc([], "basic.fbs") diff --git a/goldens/php/Galaxy.php b/goldens/php/Galaxy.php new file mode 100644 index 0000000000..256a72e4bf --- /dev/null +++ b/goldens/php/Galaxy.php @@ -0,0 +1,82 @@ +init($bb->getInt($bb->getPosition()) + $bb->getPosition(), $bb)); + } + + /** + * @param int $_i offset + * @param ByteBuffer $_bb + * @return Galaxy + **/ + public function init($_i, ByteBuffer $_bb) + { + $this->bb_pos = $_i; + $this->bb = $_bb; + return $this; + } + + /** + * @return long + */ + public function getNumStars() + { + $o = $this->__offset(4); + return $o != 0 ? $this->bb->getLong($o + $this->bb_pos) : 0; + } + + /** + * @param FlatBufferBuilder $builder + * @return void + */ + public static function startGalaxy(FlatBufferBuilder $builder) + { + $builder->StartObject(1); + } + + /** + * @param FlatBufferBuilder $builder + * @return Galaxy + */ + public static function createGalaxy(FlatBufferBuilder $builder, $num_stars) + { + $builder->startObject(1); + self::addNumStars($builder, $num_stars); + $o = $builder->endObject(); + return $o; + } + + /** + * @param FlatBufferBuilder $builder + * @param long + * @return void + */ + public static function addNumStars(FlatBufferBuilder $builder, $numStars) + { + $builder->addLongX(0, $numStars, 0); + } + + /** + * @param FlatBufferBuilder $builder + * @return int table offset + */ + public static function endGalaxy(FlatBufferBuilder $builder) + { + $o = $builder->endObject(); + return $o; + } +} diff --git a/goldens/php/Universe.php b/goldens/php/Universe.php new file mode 100644 index 0000000000..ea98096b62 --- /dev/null +++ b/goldens/php/Universe.php @@ -0,0 +1,141 @@ +init($bb->getInt($bb->getPosition()) + $bb->getPosition(), $bb)); + } + + /** + * @param int $_i offset + * @param ByteBuffer $_bb + * @return Universe + **/ + public function init($_i, ByteBuffer $_bb) + { + $this->bb_pos = $_i; + $this->bb = $_bb; + return $this; + } + + /** + * @return double + */ + public function getAge() + { + $o = $this->__offset(4); + return $o != 0 ? $this->bb->getDouble($o + $this->bb_pos) : 0.0; + } + + /** + * @returnVectorOffset + */ + public function getGalaxies($j) + { + $o = $this->__offset(6); + $obj = new Galaxy(); + return $o != 0 ? $obj->init($this->__indirect($this->__vector($o) + $j * 4), $this->bb) : null; + } + + /** + * @return int + */ + public function getGalaxiesLength() + { + $o = $this->__offset(6); + return $o != 0 ? $this->__vector_len($o) : 0; + } + + /** + * @param FlatBufferBuilder $builder + * @return void + */ + public static function startUniverse(FlatBufferBuilder $builder) + { + $builder->StartObject(2); + } + + /** + * @param FlatBufferBuilder $builder + * @return Universe + */ + public static function createUniverse(FlatBufferBuilder $builder, $age, $galaxies) + { + $builder->startObject(2); + self::addAge($builder, $age); + self::addGalaxies($builder, $galaxies); + $o = $builder->endObject(); + return $o; + } + + /** + * @param FlatBufferBuilder $builder + * @param double + * @return void + */ + public static function addAge(FlatBufferBuilder $builder, $age) + { + $builder->addDoubleX(0, $age, 0.0); + } + + /** + * @param FlatBufferBuilder $builder + * @param VectorOffset + * @return void + */ + public static function addGalaxies(FlatBufferBuilder $builder, $galaxies) + { + $builder->addOffsetX(1, $galaxies, 0); + } + + /** + * @param FlatBufferBuilder $builder + * @param array offset array + * @return int vector offset + */ + public static function createGalaxiesVector(FlatBufferBuilder $builder, array $data) + { + $builder->startVector(4, count($data), 4); + for ($i = count($data) - 1; $i >= 0; $i--) { + $builder->putOffset($data[$i]); + } + return $builder->endVector(); + } + + /** + * @param FlatBufferBuilder $builder + * @param int $numElems + * @return void + */ + public static function startGalaxiesVector(FlatBufferBuilder $builder, $numElems) + { + $builder->startVector(4, $numElems, 4); + } + + /** + * @param FlatBufferBuilder $builder + * @return int table offset + */ + public static function endUniverse(FlatBufferBuilder $builder) + { + $o = $builder->endObject(); + return $o; + } + + public static function finishUniverseBuffer(FlatBufferBuilder $builder, $offset) + { + $builder->finish($offset); + } +} diff --git a/goldens/php/generate.py b/goldens/php/generate.py new file mode 100644 index 0000000000..6e9144c675 --- /dev/null +++ b/goldens/php/generate.py @@ -0,0 +1,10 @@ +from golden_utils import flatc_golden + + +def flatc(options, schema): + # Wrap the golden flatc generator with PHP specifics + flatc_golden(options=["--php"] + options, schema=schema, prefix="php") + + +def GeneratePhp(): + flatc([], "basic.fbs") diff --git a/goldens/py/Galaxy.py b/goldens/py/Galaxy.py new file mode 100644 index 0000000000..4b28f68a95 --- /dev/null +++ b/goldens/py/Galaxy.py @@ -0,0 +1,50 @@ +# automatically generated by the FlatBuffers compiler, do not modify + +# namespace: + +import flatbuffers +from flatbuffers.compat import import_numpy +np = import_numpy() + +class Galaxy(object): + __slots__ = ['_tab'] + + @classmethod + def GetRootAs(cls, buf, offset=0): + n = flatbuffers.encode.Get(flatbuffers.packer.uoffset, buf, offset) + x = Galaxy() + x.Init(buf, n + offset) + return x + + @classmethod + def GetRootAsGalaxy(cls, buf, offset=0): + """This method is deprecated. Please switch to GetRootAs.""" + return cls.GetRootAs(buf, offset) + # Galaxy + def Init(self, buf, pos): + self._tab = flatbuffers.table.Table(buf, pos) + + # Galaxy + def NumStars(self): + o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(4)) + if o != 0: + return self._tab.Get(flatbuffers.number_types.Int64Flags, o + self._tab.Pos) + return 0 + +def GalaxyStart(builder): + builder.StartObject(1) + +def Start(builder): + GalaxyStart(builder) + +def GalaxyAddNumStars(builder, numStars): + builder.PrependInt64Slot(0, numStars, 0) + +def AddNumStars(builder: flatbuffers.Builder, numStars: int): + GalaxyAddNumStars(builder, numStars) + +def GalaxyEnd(builder): + return builder.EndObject() + +def End(builder): + return GalaxyEnd(builder) diff --git a/goldens/py/Universe.py b/goldens/py/Universe.py new file mode 100644 index 0000000000..fa0044c506 --- /dev/null +++ b/goldens/py/Universe.py @@ -0,0 +1,87 @@ +# automatically generated by the FlatBuffers compiler, do not modify + +# namespace: + +import flatbuffers +from flatbuffers.compat import import_numpy +np = import_numpy() + +class Universe(object): + __slots__ = ['_tab'] + + @classmethod + def GetRootAs(cls, buf, offset=0): + n = flatbuffers.encode.Get(flatbuffers.packer.uoffset, buf, offset) + x = Universe() + x.Init(buf, n + offset) + return x + + @classmethod + def GetRootAsUniverse(cls, buf, offset=0): + """This method is deprecated. Please switch to GetRootAs.""" + return cls.GetRootAs(buf, offset) + # Universe + def Init(self, buf, pos): + self._tab = flatbuffers.table.Table(buf, pos) + + # Universe + def Age(self): + o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(4)) + if o != 0: + return self._tab.Get(flatbuffers.number_types.Float64Flags, o + self._tab.Pos) + return 0.0 + + # Universe + def Galaxies(self, j): + o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(6)) + if o != 0: + x = self._tab.Vector(o) + x += flatbuffers.number_types.UOffsetTFlags.py_type(j) * 4 + x = self._tab.Indirect(x) + from .Galaxy import Galaxy + obj = Galaxy() + obj.Init(self._tab.Bytes, x) + return obj + return None + + # Universe + def GalaxiesLength(self): + o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(6)) + if o != 0: + return self._tab.VectorLen(o) + return 0 + + # Universe + def GalaxiesIsNone(self): + o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(6)) + return o == 0 + +def UniverseStart(builder): + builder.StartObject(2) + +def Start(builder): + UniverseStart(builder) + +def UniverseAddAge(builder, age): + builder.PrependFloat64Slot(0, age, 0.0) + +def AddAge(builder: flatbuffers.Builder, age: float): + UniverseAddAge(builder, age) + +def UniverseAddGalaxies(builder, galaxies): + builder.PrependUOffsetTRelativeSlot(1, flatbuffers.number_types.UOffsetTFlags.py_type(galaxies), 0) + +def AddGalaxies(builder: flatbuffers.Builder, galaxies: int): + UniverseAddGalaxies(builder, galaxies) + +def UniverseStartGalaxiesVector(builder, numElems): + return builder.StartVector(4, numElems, 4) + +def StartGalaxiesVector(builder, numElems: int) -> int: + return UniverseStartGalaxiesVector(builder, numElems) + +def UniverseEnd(builder): + return builder.EndObject() + +def End(builder): + return UniverseEnd(builder) diff --git a/goldens/py/__init__.py b/goldens/py/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/goldens/py/generate.py b/goldens/py/generate.py new file mode 100644 index 0000000000..ceff5d2d6b --- /dev/null +++ b/goldens/py/generate.py @@ -0,0 +1,10 @@ +from golden_utils import flatc_golden + + +def flatc(options, schema): + # Wrap the golden flatc generator with Python specifics + flatc_golden(options=["--python"] + options, schema=schema, prefix="py") + + +def GeneratePython(): + flatc([], "basic.fbs") diff --git a/goldens/rust/basic_generated.rs b/goldens/rust/basic_generated.rs new file mode 100644 index 0000000000..f755a5fe77 --- /dev/null +++ b/goldens/rust/basic_generated.rs @@ -0,0 +1,293 @@ +// automatically generated by the FlatBuffers compiler, do not modify + + +// @generated + +use core::mem; +use core::cmp::Ordering; + +extern crate flatbuffers; +use self::flatbuffers::{EndianScalar, Follow}; + +pub enum GalaxyOffset {} +#[derive(Copy, Clone, PartialEq)] + +pub struct Galaxy<'a> { + pub _tab: flatbuffers::Table<'a>, +} + +impl<'a> flatbuffers::Follow<'a> for Galaxy<'a> { + type Inner = Galaxy<'a>; + #[inline] + unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + Self { _tab: flatbuffers::Table::new(buf, loc) } + } +} + +impl<'a> Galaxy<'a> { + pub const VT_NUM_STARS: flatbuffers::VOffsetT = 4; + + #[inline] + pub unsafe fn init_from_table(table: flatbuffers::Table<'a>) -> Self { + Galaxy { _tab: table } + } + #[allow(unused_mut)] + pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( + _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, + args: &'args GalaxyArgs + ) -> flatbuffers::WIPOffset> { + let mut builder = GalaxyBuilder::new(_fbb); + builder.add_num_stars(args.num_stars); + builder.finish() + } + + + #[inline] + pub fn num_stars(&self) -> i64 { + // Safety: + // Created from valid Table for this object + // which contains a valid value in this slot + unsafe { self._tab.get::(Galaxy::VT_NUM_STARS, Some(0)).unwrap()} + } +} + +impl flatbuffers::Verifiable for Galaxy<'_> { + #[inline] + fn run_verifier( + v: &mut flatbuffers::Verifier, pos: usize + ) -> Result<(), flatbuffers::InvalidFlatbuffer> { + use self::flatbuffers::Verifiable; + v.visit_table(pos)? + .visit_field::("num_stars", Self::VT_NUM_STARS, false)? + .finish(); + Ok(()) + } +} +pub struct GalaxyArgs { + pub num_stars: i64, +} +impl<'a> Default for GalaxyArgs { + #[inline] + fn default() -> Self { + GalaxyArgs { + num_stars: 0, + } + } +} + +pub struct GalaxyBuilder<'a: 'b, 'b> { + fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, + start_: flatbuffers::WIPOffset, +} +impl<'a: 'b, 'b> GalaxyBuilder<'a, 'b> { + #[inline] + pub fn add_num_stars(&mut self, num_stars: i64) { + self.fbb_.push_slot::(Galaxy::VT_NUM_STARS, num_stars, 0); + } + #[inline] + pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> GalaxyBuilder<'a, 'b> { + let start = _fbb.start_table(); + GalaxyBuilder { + fbb_: _fbb, + start_: start, + } + } + #[inline] + pub fn finish(self) -> flatbuffers::WIPOffset> { + let o = self.fbb_.end_table(self.start_); + flatbuffers::WIPOffset::new(o.value()) + } +} + +impl core::fmt::Debug for Galaxy<'_> { + fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result { + let mut ds = f.debug_struct("Galaxy"); + ds.field("num_stars", &self.num_stars()); + ds.finish() + } +} +pub enum UniverseOffset {} +#[derive(Copy, Clone, PartialEq)] + +pub struct Universe<'a> { + pub _tab: flatbuffers::Table<'a>, +} + +impl<'a> flatbuffers::Follow<'a> for Universe<'a> { + type Inner = Universe<'a>; + #[inline] + unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { + Self { _tab: flatbuffers::Table::new(buf, loc) } + } +} + +impl<'a> Universe<'a> { + pub const VT_AGE: flatbuffers::VOffsetT = 4; + pub const VT_GALAXIES: flatbuffers::VOffsetT = 6; + + #[inline] + pub unsafe fn init_from_table(table: flatbuffers::Table<'a>) -> Self { + Universe { _tab: table } + } + #[allow(unused_mut)] + pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( + _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, + args: &'args UniverseArgs<'args> + ) -> flatbuffers::WIPOffset> { + let mut builder = UniverseBuilder::new(_fbb); + builder.add_age(args.age); + if let Some(x) = args.galaxies { builder.add_galaxies(x); } + builder.finish() + } + + + #[inline] + pub fn age(&self) -> f64 { + // Safety: + // Created from valid Table for this object + // which contains a valid value in this slot + unsafe { self._tab.get::(Universe::VT_AGE, Some(0.0)).unwrap()} + } + #[inline] + pub fn galaxies(&self) -> Option>>> { + // Safety: + // Created from valid Table for this object + // which contains a valid value in this slot + unsafe { self._tab.get::>>>(Universe::VT_GALAXIES, None)} + } +} + +impl flatbuffers::Verifiable for Universe<'_> { + #[inline] + fn run_verifier( + v: &mut flatbuffers::Verifier, pos: usize + ) -> Result<(), flatbuffers::InvalidFlatbuffer> { + use self::flatbuffers::Verifiable; + v.visit_table(pos)? + .visit_field::("age", Self::VT_AGE, false)? + .visit_field::>>>("galaxies", Self::VT_GALAXIES, false)? + .finish(); + Ok(()) + } +} +pub struct UniverseArgs<'a> { + pub age: f64, + pub galaxies: Option>>>>, +} +impl<'a> Default for UniverseArgs<'a> { + #[inline] + fn default() -> Self { + UniverseArgs { + age: 0.0, + galaxies: None, + } + } +} + +pub struct UniverseBuilder<'a: 'b, 'b> { + fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, + start_: flatbuffers::WIPOffset, +} +impl<'a: 'b, 'b> UniverseBuilder<'a, 'b> { + #[inline] + pub fn add_age(&mut self, age: f64) { + self.fbb_.push_slot::(Universe::VT_AGE, age, 0.0); + } + #[inline] + pub fn add_galaxies(&mut self, galaxies: flatbuffers::WIPOffset>>>) { + self.fbb_.push_slot_always::>(Universe::VT_GALAXIES, galaxies); + } + #[inline] + pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> UniverseBuilder<'a, 'b> { + let start = _fbb.start_table(); + UniverseBuilder { + fbb_: _fbb, + start_: start, + } + } + #[inline] + pub fn finish(self) -> flatbuffers::WIPOffset> { + let o = self.fbb_.end_table(self.start_); + flatbuffers::WIPOffset::new(o.value()) + } +} + +impl core::fmt::Debug for Universe<'_> { + fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result { + let mut ds = f.debug_struct("Universe"); + ds.field("age", &self.age()); + ds.field("galaxies", &self.galaxies()); + ds.finish() + } +} +#[inline] +/// Verifies that a buffer of bytes contains a `Universe` +/// and returns it. +/// Note that verification is still experimental and may not +/// catch every error, or be maximally performant. For the +/// previous, unchecked, behavior use +/// `root_as_universe_unchecked`. +pub fn root_as_universe(buf: &[u8]) -> Result { + flatbuffers::root::(buf) +} +#[inline] +/// Verifies that a buffer of bytes contains a size prefixed +/// `Universe` and returns it. +/// Note that verification is still experimental and may not +/// catch every error, or be maximally performant. For the +/// previous, unchecked, behavior use +/// `size_prefixed_root_as_universe_unchecked`. +pub fn size_prefixed_root_as_universe(buf: &[u8]) -> Result { + flatbuffers::size_prefixed_root::(buf) +} +#[inline] +/// Verifies, with the given options, that a buffer of bytes +/// contains a `Universe` and returns it. +/// Note that verification is still experimental and may not +/// catch every error, or be maximally performant. For the +/// previous, unchecked, behavior use +/// `root_as_universe_unchecked`. +pub fn root_as_universe_with_opts<'b, 'o>( + opts: &'o flatbuffers::VerifierOptions, + buf: &'b [u8], +) -> Result, flatbuffers::InvalidFlatbuffer> { + flatbuffers::root_with_opts::>(opts, buf) +} +#[inline] +/// Verifies, with the given verifier options, that a buffer of +/// bytes contains a size prefixed `Universe` and returns +/// it. Note that verification is still experimental and may not +/// catch every error, or be maximally performant. For the +/// previous, unchecked, behavior use +/// `root_as_universe_unchecked`. +pub fn size_prefixed_root_as_universe_with_opts<'b, 'o>( + opts: &'o flatbuffers::VerifierOptions, + buf: &'b [u8], +) -> Result, flatbuffers::InvalidFlatbuffer> { + flatbuffers::size_prefixed_root_with_opts::>(opts, buf) +} +#[inline] +/// Assumes, without verification, that a buffer of bytes contains a Universe and returns it. +/// # Safety +/// Callers must trust the given bytes do indeed contain a valid `Universe`. +pub unsafe fn root_as_universe_unchecked(buf: &[u8]) -> Universe { + flatbuffers::root_unchecked::(buf) +} +#[inline] +/// Assumes, without verification, that a buffer of bytes contains a size prefixed Universe and returns it. +/// # Safety +/// Callers must trust the given bytes do indeed contain a valid size prefixed `Universe`. +pub unsafe fn size_prefixed_root_as_universe_unchecked(buf: &[u8]) -> Universe { + flatbuffers::size_prefixed_root_unchecked::(buf) +} +#[inline] +pub fn finish_universe_buffer<'a, 'b>( + fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>, + root: flatbuffers::WIPOffset>) { + fbb.finish(root, None); +} + +#[inline] +pub fn finish_size_prefixed_universe_buffer<'a, 'b>(fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>, root: flatbuffers::WIPOffset>) { + fbb.finish_size_prefixed(root, None); +} diff --git a/goldens/rust/generate.py b/goldens/rust/generate.py new file mode 100644 index 0000000000..f3a568fef8 --- /dev/null +++ b/goldens/rust/generate.py @@ -0,0 +1,10 @@ +from golden_utils import flatc_golden + + +def flatc(options, schema): + # Wrap the golden flatc generator with Rust specifics + flatc_golden(options=["--rust"] + options, schema=schema, prefix="rust") + + +def GenerateRust(): + flatc([], "basic.fbs") diff --git a/goldens/swift/basic_generated.swift b/goldens/swift/basic_generated.swift new file mode 100644 index 0000000000..70e5a23354 --- /dev/null +++ b/goldens/swift/basic_generated.swift @@ -0,0 +1,84 @@ +// automatically generated by the FlatBuffers compiler, do not modify +// swiftlint:disable all +// swiftformat:disable all + +import FlatBuffers + +public struct Galaxy: FlatBufferObject, Verifiable { + + static func validateVersion() { FlatBuffersVersion_23_3_3() } + public var __buffer: ByteBuffer! { return _accessor.bb } + private var _accessor: Table + + private init(_ t: Table) { _accessor = t } + public init(_ bb: ByteBuffer, o: Int32) { _accessor = Table(bb: bb, position: o) } + + private enum VTOFFSET: VOffset { + case numStars = 4 + var v: Int32 { Int32(self.rawValue) } + var p: VOffset { self.rawValue } + } + + public var numStars: Int64 { let o = _accessor.offset(VTOFFSET.numStars.v); return o == 0 ? 0 : _accessor.readBuffer(of: Int64.self, at: o) } + public static func startGalaxy(_ fbb: inout FlatBufferBuilder) -> UOffset { fbb.startTable(with: 1) } + public static func add(numStars: Int64, _ fbb: inout FlatBufferBuilder) { fbb.add(element: numStars, def: 0, at: VTOFFSET.numStars.p) } + public static func endGalaxy(_ fbb: inout FlatBufferBuilder, start: UOffset) -> Offset { let end = Offset(offset: fbb.endTable(at: start)); return end } + public static func createGalaxy( + _ fbb: inout FlatBufferBuilder, + numStars: Int64 = 0 + ) -> Offset { + let __start = Galaxy.startGalaxy(&fbb) + Galaxy.add(numStars: numStars, &fbb) + return Galaxy.endGalaxy(&fbb, start: __start) + } + + public static func verify(_ verifier: inout Verifier, at position: Int, of type: T.Type) throws where T: Verifiable { + var _v = try verifier.visitTable(at: position) + try _v.visit(field: VTOFFSET.numStars.p, fieldName: "numStars", required: false, type: Int64.self) + _v.finish() + } +} + +public struct Universe: FlatBufferObject, Verifiable { + + static func validateVersion() { FlatBuffersVersion_23_3_3() } + public var __buffer: ByteBuffer! { return _accessor.bb } + private var _accessor: Table + + private init(_ t: Table) { _accessor = t } + public init(_ bb: ByteBuffer, o: Int32) { _accessor = Table(bb: bb, position: o) } + + private enum VTOFFSET: VOffset { + case age = 4 + case galaxies = 6 + var v: Int32 { Int32(self.rawValue) } + var p: VOffset { self.rawValue } + } + + public var age: Double { let o = _accessor.offset(VTOFFSET.age.v); return o == 0 ? 0.0 : _accessor.readBuffer(of: Double.self, at: o) } + public var hasGalaxies: Bool { let o = _accessor.offset(VTOFFSET.galaxies.v); return o == 0 ? false : true } + public var galaxiesCount: Int32 { let o = _accessor.offset(VTOFFSET.galaxies.v); return o == 0 ? 0 : _accessor.vector(count: o) } + public func galaxies(at index: Int32) -> Galaxy? { let o = _accessor.offset(VTOFFSET.galaxies.v); return o == 0 ? nil : Galaxy(_accessor.bb, o: _accessor.indirect(_accessor.vector(at: o) + index * 4)) } + public static func startUniverse(_ fbb: inout FlatBufferBuilder) -> UOffset { fbb.startTable(with: 2) } + public static func add(age: Double, _ fbb: inout FlatBufferBuilder) { fbb.add(element: age, def: 0.0, at: VTOFFSET.age.p) } + public static func addVectorOf(galaxies: Offset, _ fbb: inout FlatBufferBuilder) { fbb.add(offset: galaxies, at: VTOFFSET.galaxies.p) } + public static func endUniverse(_ fbb: inout FlatBufferBuilder, start: UOffset) -> Offset { let end = Offset(offset: fbb.endTable(at: start)); return end } + public static func createUniverse( + _ fbb: inout FlatBufferBuilder, + age: Double = 0.0, + galaxiesVectorOffset galaxies: Offset = Offset() + ) -> Offset { + let __start = Universe.startUniverse(&fbb) + Universe.add(age: age, &fbb) + Universe.addVectorOf(galaxies: galaxies, &fbb) + return Universe.endUniverse(&fbb, start: __start) + } + + public static func verify(_ verifier: inout Verifier, at position: Int, of type: T.Type) throws where T: Verifiable { + var _v = try verifier.visitTable(at: position) + try _v.visit(field: VTOFFSET.age.p, fieldName: "age", required: false, type: Double.self) + try _v.visit(field: VTOFFSET.galaxies.p, fieldName: "galaxies", required: false, type: ForwardOffset, Galaxy>>.self) + _v.finish() + } +} + diff --git a/goldens/swift/generate.py b/goldens/swift/generate.py new file mode 100644 index 0000000000..ccdb97e775 --- /dev/null +++ b/goldens/swift/generate.py @@ -0,0 +1,10 @@ +from golden_utils import flatc_golden + + +def flatc(options, schema): + # Wrap the golden flatc generator with Swift specifics + flatc_golden(options=["--swift"] + options, schema=schema, prefix="swift") + + +def GenerateSwift(): + flatc([], "basic.fbs") diff --git a/goldens/ts/basic.ts b/goldens/ts/basic.ts new file mode 100644 index 0000000000..76af441a94 --- /dev/null +++ b/goldens/ts/basic.ts @@ -0,0 +1,4 @@ +// automatically generated by the FlatBuffers compiler, do not modify + +export { Galaxy } from './galaxy.js'; +export { Universe } from './universe.js'; diff --git a/goldens/ts/galaxy.ts b/goldens/ts/galaxy.ts new file mode 100644 index 0000000000..8576cbf832 --- /dev/null +++ b/goldens/ts/galaxy.ts @@ -0,0 +1,46 @@ +// automatically generated by the FlatBuffers compiler, do not modify + +import * as flatbuffers from 'flatbuffers'; + +export class Galaxy { + bb: flatbuffers.ByteBuffer|null = null; + bb_pos = 0; + __init(i:number, bb:flatbuffers.ByteBuffer):Galaxy { + this.bb_pos = i; + this.bb = bb; + return this; +} + +static getRootAsGalaxy(bb:flatbuffers.ByteBuffer, obj?:Galaxy):Galaxy { + return (obj || new Galaxy()).__init(bb.readInt32(bb.position()) + bb.position(), bb); +} + +static getSizePrefixedRootAsGalaxy(bb:flatbuffers.ByteBuffer, obj?:Galaxy):Galaxy { + bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH); + return (obj || new Galaxy()).__init(bb.readInt32(bb.position()) + bb.position(), bb); +} + +numStars():bigint { + const offset = this.bb!.__offset(this.bb_pos, 4); + return offset ? this.bb!.readInt64(this.bb_pos + offset) : BigInt('0'); +} + +static startGalaxy(builder:flatbuffers.Builder) { + builder.startObject(1); +} + +static addNumStars(builder:flatbuffers.Builder, numStars:bigint) { + builder.addFieldInt64(0, numStars, BigInt('0')); +} + +static endGalaxy(builder:flatbuffers.Builder):flatbuffers.Offset { + const offset = builder.endObject(); + return offset; +} + +static createGalaxy(builder:flatbuffers.Builder, numStars:bigint):flatbuffers.Offset { + Galaxy.startGalaxy(builder); + Galaxy.addNumStars(builder, numStars); + return Galaxy.endGalaxy(builder); +} +} diff --git a/goldens/ts/generate.py b/goldens/ts/generate.py new file mode 100644 index 0000000000..ee072fdd63 --- /dev/null +++ b/goldens/ts/generate.py @@ -0,0 +1,10 @@ +from golden_utils import flatc_golden + + +def flatc(options, schema): + # Wrap the golden flatc generator with Swift specifics + flatc_golden(options=["--ts"] + options, schema=schema, prefix="ts") + + +def GenerateTs(): + flatc([], "basic.fbs") diff --git a/goldens/ts/universe.ts b/goldens/ts/universe.ts new file mode 100644 index 0000000000..2f8c26cffc --- /dev/null +++ b/goldens/ts/universe.ts @@ -0,0 +1,84 @@ +// automatically generated by the FlatBuffers compiler, do not modify + +import * as flatbuffers from 'flatbuffers'; + +import { Galaxy } from './galaxy.js'; + + +export class Universe { + bb: flatbuffers.ByteBuffer|null = null; + bb_pos = 0; + __init(i:number, bb:flatbuffers.ByteBuffer):Universe { + this.bb_pos = i; + this.bb = bb; + return this; +} + +static getRootAsUniverse(bb:flatbuffers.ByteBuffer, obj?:Universe):Universe { + return (obj || new Universe()).__init(bb.readInt32(bb.position()) + bb.position(), bb); +} + +static getSizePrefixedRootAsUniverse(bb:flatbuffers.ByteBuffer, obj?:Universe):Universe { + bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH); + return (obj || new Universe()).__init(bb.readInt32(bb.position()) + bb.position(), bb); +} + +age():number { + const offset = this.bb!.__offset(this.bb_pos, 4); + return offset ? this.bb!.readFloat64(this.bb_pos + offset) : 0.0; +} + +galaxies(index: number, obj?:Galaxy):Galaxy|null { + const offset = this.bb!.__offset(this.bb_pos, 6); + return offset ? (obj || new Galaxy()).__init(this.bb!.__indirect(this.bb!.__vector(this.bb_pos + offset) + index * 4), this.bb!) : null; +} + +galaxiesLength():number { + const offset = this.bb!.__offset(this.bb_pos, 6); + return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0; +} + +static startUniverse(builder:flatbuffers.Builder) { + builder.startObject(2); +} + +static addAge(builder:flatbuffers.Builder, age:number) { + builder.addFieldFloat64(0, age, 0.0); +} + +static addGalaxies(builder:flatbuffers.Builder, galaxiesOffset:flatbuffers.Offset) { + builder.addFieldOffset(1, galaxiesOffset, 0); +} + +static createGalaxiesVector(builder:flatbuffers.Builder, data:flatbuffers.Offset[]):flatbuffers.Offset { + builder.startVector(4, data.length, 4); + for (let i = data.length - 1; i >= 0; i--) { + builder.addOffset(data[i]!); + } + return builder.endVector(); +} + +static startGalaxiesVector(builder:flatbuffers.Builder, numElems:number) { + builder.startVector(4, numElems, 4); +} + +static endUniverse(builder:flatbuffers.Builder):flatbuffers.Offset { + const offset = builder.endObject(); + return offset; +} + +static finishUniverseBuffer(builder:flatbuffers.Builder, offset:flatbuffers.Offset) { + builder.finish(offset); +} + +static finishSizePrefixedUniverseBuffer(builder:flatbuffers.Builder, offset:flatbuffers.Offset) { + builder.finish(offset, undefined, true); +} + +static createUniverse(builder:flatbuffers.Builder, age:number, galaxiesOffset:flatbuffers.Offset):flatbuffers.Offset { + Universe.startUniverse(builder); + Universe.addAge(builder, age); + Universe.addGalaxies(builder, galaxiesOffset); + return Universe.endUniverse(builder); +} +} From 197ae6cc7e52c8370b32d0b203a0c603eacc4f07 Mon Sep 17 00:00:00 2001 From: Derek Bailey Date: Fri, 5 May 2023 14:15:48 -0700 Subject: [PATCH 179/571] add rest of golden language directories --- goldens/generate_goldens.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/goldens/generate_goldens.py b/goldens/generate_goldens.py index 756a604cbc..f04854aaba 100755 --- a/goldens/generate_goldens.py +++ b/goldens/generate_goldens.py @@ -23,9 +23,9 @@ GenerateJava() GenerateKotlin() GenerateLobster() -# TODO this doesn't respect the output prefix, fix and reenable -#GenerateLua() -GenerateNim() +# TODO these doesn't respect the output prefix, fix and reenable +# GenerateLua() +# GenerateNim() GeneratePhp() GeneratePython() GenerateRust() From d9f2cc2d623d33acef9808e7f1af357fb8833684 Mon Sep 17 00:00:00 2001 From: Derek Bailey Date: Mon, 8 May 2023 13:54:24 -0700 Subject: [PATCH 180/571] add key_field to compiled tests --- CMakeLists.txt | 1 + tests/key_field/key_field_sample_generated.h | 8 ++++---- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 885984db4e..e0b3248aed 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -526,6 +526,7 @@ if(FLATBUFFERS_BUILD_TESTS) compile_schema_for_test(tests/alignment_test.fbs "${FLATC_OPT_COMP}") compile_schema_for_test(tests/native_inline_table_test.fbs "${FLATC_OPT_COMP}") compile_schema_for_test(tests/native_type_test.fbs "${FLATC_OPT}") + compile_schema_for_test(tests/key_field/key_field_sample.fbs "${FLATC_OPT_COMP}") if(FLATBUFFERS_CODE_SANITIZE) add_fsanitize_to_target(flattests ${FLATBUFFERS_CODE_SANITIZE}) diff --git a/tests/key_field/key_field_sample_generated.h b/tests/key_field/key_field_sample_generated.h index aeafd082a5..0ce5709b6e 100644 --- a/tests/key_field/key_field_sample_generated.h +++ b/tests/key_field/key_field_sample_generated.h @@ -1006,16 +1006,16 @@ inline void FinishSizePrefixedFooTableBuffer( fbb.FinishSizePrefixed(root); } -inline flatbuffers::unique_ptr UnPackFooTable( +inline std::unique_ptr UnPackFooTable( const void *buf, const ::flatbuffers::resolver_function_t *res = nullptr) { - return flatbuffers::unique_ptr(GetFooTable(buf)->UnPack(res)); + return std::unique_ptr(GetFooTable(buf)->UnPack(res)); } -inline flatbuffers::unique_ptr UnPackSizePrefixedFooTable( +inline std::unique_ptr UnPackSizePrefixedFooTable( const void *buf, const ::flatbuffers::resolver_function_t *res = nullptr) { - return flatbuffers::unique_ptr(GetSizePrefixedFooTable(buf)->UnPack(res)); + return std::unique_ptr(GetSizePrefixedFooTable(buf)->UnPack(res)); } } // namespace sample From e6e38a8d1765bbb405d6963f5814ac95b1c89668 Mon Sep 17 00:00:00 2001 From: RishabhDeep Singh Date: Tue, 9 May 2023 02:50:14 +0530 Subject: [PATCH 181/571] Add #!/usr/bin/bash to release.sh (#7942) --- scripts/release.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/scripts/release.sh b/scripts/release.sh index 1450cc91f3..b97a98ba4a 100755 --- a/scripts/release.sh +++ b/scripts/release.sh @@ -1,3 +1,4 @@ +#!/usr/bin/bash printf -v year '%(%y)T' -1 printf -v month '%(%-m)T' -1 From 13fc75cb6b7b44793f3f5b4ba025ff403d012c9f Mon Sep 17 00:00:00 2001 From: RishabhDeep Singh Date: Tue, 9 May 2023 20:35:25 +0530 Subject: [PATCH 182/571] FlatBuffers Version 23.5.8 (#7943) --- CHANGELOG.md | 43 +++++++++++++++++++ CMake/Version.cmake | 4 +- FlatBuffers.podspec | 2 +- .../main/java/generated/com/fbs/app/Animal.kt | 2 +- dart/pubspec.yaml | 2 +- goldens/csharp/Galaxy.cs | 2 +- goldens/csharp/Universe.cs | 2 +- goldens/java/Galaxy.java | 2 +- goldens/java/Universe.java | 2 +- goldens/kotlin/Galaxy.kt | 2 +- goldens/kotlin/Universe.kt | 2 +- goldens/swift/basic_generated.swift | 4 +- .../Sources/Model/greeter_generated.swift | 4 +- include/flatbuffers/base.h | 4 +- include/flatbuffers/reflection_generated.h | 4 +- java/pom.xml | 2 +- .../com/google/flatbuffers/Constants.java | 2 +- .../google/flatbuffers/reflection/Enum.java | 2 +- .../flatbuffers/reflection/EnumVal.java | 2 +- .../google/flatbuffers/reflection/Field.java | 2 +- .../flatbuffers/reflection/KeyValue.java | 2 +- .../google/flatbuffers/reflection/Object.java | 2 +- .../flatbuffers/reflection/RPCCall.java | 2 +- .../google/flatbuffers/reflection/Schema.java | 2 +- .../flatbuffers/reflection/SchemaFile.java | 2 +- .../flatbuffers/reflection/Service.java | 2 +- .../google/flatbuffers/reflection/Type.java | 2 +- net/FlatBuffers/FlatBufferConstants.cs | 2 +- net/FlatBuffers/Google.FlatBuffers.csproj | 2 +- package.json | 2 +- python/flatbuffers/_version.py | 2 +- python/setup.py | 2 +- rust/flatbuffers/Cargo.toml | 2 +- samples/monster_generated.h | 4 +- samples/monster_generated.swift | 8 ++-- src/idl_gen_csharp.cpp | 2 +- src/idl_gen_java.cpp | 2 +- src/idl_gen_kotlin.cpp | 2 +- src/idl_gen_swift.cpp | 2 +- swift/Sources/FlatBuffers/Constants.swift | 2 +- tests/Abc.nim | 2 +- tests/DictionaryLookup/LongFloatEntry.java | 2 +- tests/DictionaryLookup/LongFloatEntry.kt | 2 +- tests/DictionaryLookup/LongFloatMap.java | 2 +- tests/DictionaryLookup/LongFloatMap.kt | 2 +- tests/KeywordTest/KeywordsInTable.cs | 2 +- tests/KeywordTest/Table2.cs | 2 +- tests/MoreDefaults.nim | 2 +- tests/MyGame/Example/Ability.lua | 2 +- tests/MyGame/Example/Ability.nim | 2 +- tests/MyGame/Example/Any.lua | 2 +- tests/MyGame/Example/Any.nim | 2 +- tests/MyGame/Example/AnyAmbiguousAliases.lua | 2 +- tests/MyGame/Example/AnyAmbiguousAliases.nim | 2 +- tests/MyGame/Example/AnyUniqueAliases.lua | 2 +- tests/MyGame/Example/AnyUniqueAliases.nim | 2 +- tests/MyGame/Example/ArrayTable.cs | 2 +- tests/MyGame/Example/ArrayTable.java | 2 +- tests/MyGame/Example/Color.lua | 2 +- tests/MyGame/Example/Color.nim | 2 +- tests/MyGame/Example/LongEnum.lua | 2 +- tests/MyGame/Example/LongEnum.nim | 2 +- tests/MyGame/Example/Monster.cs | 2 +- tests/MyGame/Example/Monster.java | 2 +- tests/MyGame/Example/Monster.kt | 2 +- tests/MyGame/Example/Monster.lua | 2 +- tests/MyGame/Example/Monster.nim | 2 +- tests/MyGame/Example/Race.lua | 2 +- tests/MyGame/Example/Race.nim | 2 +- tests/MyGame/Example/Referrable.cs | 2 +- tests/MyGame/Example/Referrable.java | 2 +- tests/MyGame/Example/Referrable.kt | 2 +- tests/MyGame/Example/Referrable.lua | 2 +- tests/MyGame/Example/Referrable.nim | 2 +- tests/MyGame/Example/Stat.cs | 2 +- tests/MyGame/Example/Stat.java | 2 +- tests/MyGame/Example/Stat.kt | 2 +- tests/MyGame/Example/Stat.lua | 2 +- tests/MyGame/Example/Stat.nim | 2 +- tests/MyGame/Example/StructOfStructs.lua | 2 +- tests/MyGame/Example/StructOfStructs.nim | 2 +- .../Example/StructOfStructsOfStructs.lua | 2 +- .../Example/StructOfStructsOfStructs.nim | 2 +- tests/MyGame/Example/Test.lua | 2 +- tests/MyGame/Example/Test.nim | 2 +- .../MyGame/Example/TestSimpleTableWithEnum.cs | 2 +- .../Example/TestSimpleTableWithEnum.java | 2 +- .../MyGame/Example/TestSimpleTableWithEnum.kt | 2 +- .../Example/TestSimpleTableWithEnum.lua | 2 +- .../Example/TestSimpleTableWithEnum.nim | 2 +- tests/MyGame/Example/TypeAliases.cs | 2 +- tests/MyGame/Example/TypeAliases.java | 2 +- tests/MyGame/Example/TypeAliases.kt | 2 +- tests/MyGame/Example/TypeAliases.lua | 2 +- tests/MyGame/Example/TypeAliases.nim | 2 +- tests/MyGame/Example/Vec3.lua | 2 +- tests/MyGame/Example/Vec3.nim | 2 +- tests/MyGame/Example2/Monster.cs | 2 +- tests/MyGame/Example2/Monster.java | 2 +- tests/MyGame/Example2/Monster.kt | 2 +- tests/MyGame/Example2/Monster.lua | 2 +- tests/MyGame/Example2/Monster.nim | 2 +- tests/MyGame/InParentNamespace.cs | 2 +- tests/MyGame/InParentNamespace.java | 2 +- tests/MyGame/InParentNamespace.kt | 2 +- tests/MyGame/InParentNamespace.lua | 2 +- tests/MyGame/InParentNamespace.nim | 2 +- tests/MyGame/MonsterExtra.cs | 2 +- tests/MyGame/MonsterExtra.java | 2 +- tests/MyGame/MonsterExtra.kt | 2 +- tests/MyGame/OtherNameSpace/FromInclude.lua | 2 +- tests/MyGame/OtherNameSpace/FromInclude.nim | 2 +- tests/MyGame/OtherNameSpace/TableB.lua | 2 +- tests/MyGame/OtherNameSpace/TableB.nim | 2 +- tests/MyGame/OtherNameSpace/Unused.lua | 2 +- tests/MyGame/OtherNameSpace/Unused.nim | 2 +- tests/Property.nim | 2 +- tests/TableA.lua | 2 +- tests/TableA.nim | 2 +- tests/TestMutatingBool.nim | 2 +- tests/alignment_test_generated.h | 4 +- tests/arrays_test_generated.h | 4 +- .../generated_cpp17/monster_test_generated.h | 4 +- .../optional_scalars_generated.h | 4 +- .../generated_cpp17/union_vector_generated.h | 4 +- tests/evolution_test/evolution_v1_generated.h | 4 +- tests/evolution_test/evolution_v2_generated.h | 4 +- tests/key_field/key_field_sample_generated.h | 4 +- tests/monster_extra_generated.h | 4 +- tests/monster_test_bfbs_generated.h | 4 +- tests/monster_test_generated.h | 4 +- .../ext_only/monster_test_generated.hpp | 4 +- .../filesuffix_only/monster_test_suffix.h | 4 +- .../monster_test_suffix.hpp | 4 +- .../NamespaceA/NamespaceB/TableInNestedNS.cs | 2 +- .../NamespaceB/TableInNestedNS.java | 2 +- .../NamespaceA/NamespaceB/TableInNestedNS.kt | 2 +- .../NamespaceA/SecondTableInA.cs | 2 +- .../NamespaceA/SecondTableInA.java | 2 +- .../NamespaceA/SecondTableInA.kt | 2 +- .../NamespaceA/TableInFirstNS.cs | 2 +- .../NamespaceA/TableInFirstNS.java | 2 +- .../NamespaceA/TableInFirstNS.kt | 2 +- tests/namespace_test/NamespaceC/TableInC.cs | 2 +- tests/namespace_test/NamespaceC/TableInC.java | 2 +- tests/namespace_test/NamespaceC/TableInC.kt | 2 +- .../namespace_test1_generated.h | 4 +- .../namespace_test2_generated.h | 4 +- tests/native_inline_table_test_generated.h | 4 +- tests/native_type_test_generated.h | 4 +- .../nested_namespace_test3_generated.cs | 2 +- tests/optional_scalars/OptionalByte.nim | 2 +- tests/optional_scalars/ScalarStuff.cs | 2 +- tests/optional_scalars/ScalarStuff.java | 2 +- tests/optional_scalars/ScalarStuff.kt | 2 +- tests/optional_scalars/ScalarStuff.nim | 2 +- tests/optional_scalars_generated.h | 4 +- .../monster_test_generated.swift | 34 +++++++-------- .../test_import_generated.swift | 2 +- .../test_no_include_generated.swift | 8 ++-- .../SwiftFlatBuffers/fuzzer_generated.swift | 10 ++--- .../MutatingBool_generated.swift | 6 +-- .../monster_test_generated.swift | 34 +++++++-------- .../more_defaults_generated.swift | 2 +- .../nan_inf_test_generated.swift | 2 +- .../optional_scalars_generated.swift | 2 +- .../union_vector_generated.swift | 18 ++++---- .../vector_has_test_generated.swift | 2 +- tests/type_field_collsion/Collision.cs | 2 +- .../union_value_collision_generated.cs | 6 +-- tests/union_vector/Attacker.cs | 2 +- tests/union_vector/Attacker.java | 2 +- tests/union_vector/Attacker.kt | 2 +- tests/union_vector/HandFan.cs | 2 +- tests/union_vector/HandFan.java | 2 +- tests/union_vector/HandFan.kt | 2 +- tests/union_vector/Movie.cs | 2 +- tests/union_vector/Movie.java | 2 +- tests/union_vector/Movie.kt | 2 +- tests/union_vector/union_vector_generated.h | 4 +- 180 files changed, 302 insertions(+), 259 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 061229edeb..17853fa15f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,49 @@ All major or breaking changes will be documented in this file, as well as any new features that should be highlighted. Minor fixes or improvements are not necessarily listed. +## [23.5.8 (May 8 2023)](https://github.com/google/flatbuffers/releases/tag/v23.5.8) + +* add key_field to compiled tests +* Add golden language directory +* Rework cmake flatc codegeneration (#7938) +* remove defining generated files in test srcs +* Add binary schema reflection (#7932) +* Migrate from rules_nodejs to rules_js/rules_ts (take 2) (#7928) +* `flat_buffers.dart`: mark const variable finals for internal Dart linters +* fixed some windows warnings (#7929) +* inject no long for FBS generation to remove logs in flattests (#7926) +* Revert "Migrate from rules_nodejs to rules_js/rules_ts (#7923)" (#7927) +* Migrate from rules_nodejs to rules_js/rules_ts (#7923) +* Only generate @kotlin.ExperimentalUnsigned annotation on create*Vector methods having an unsigned array type parameter. (#7881) +* additional check for absl::string_view availability (#7897) +* Optionally generate Python type annotations (#7858) +* Replace deprecated command with environment file (#7921) +* drop glibc from runtime dependencies (#7906) +* Make JSON supporting advanced union features (#7869) +* Allow to use functions from `BuildFlatBuffers.cmake` from a flatbuffers installation installed with CMake. (#7912) +* TS/JS: Use TypeError instead of Error when appropriate (#7910) +* Go: make generated code more compliant to "go fmt" (#7907) +* Support file_identifier in Go (#7904) +* Optionally generate type prefixes and suffixes for python code (#7857) +* Go: add test for FinishWithFileIdentifier (#7905) +* Fix go_sample.sh (#7903) +* [TS/JS] Upgrade dependencies (#7889) +* Add a FileWriter interface (#7821) +* TS/JS: Use minvalue from enum if not found (#7888) +* [CS] Verifier (#7850) +* README.md: PyPI case typo (#7880) +* Update go documentation link to point to root module (#7879) +* use Bool for flatbuffers bool instead of Byte (#7876) +* fix using null string in vector (#7872) +* Add `flatbuffers-64` branch to CI for pushes +* made changes to the rust docs so they would compile. new_with_capacity is deprecated should use with_capacity, get_root_as_monster should be root_as_monster (#7871) +* Adding comment for code clarification (#7856) +* ToCamelCase() when kLowerCamel now converts first char to lower. (#7838) +* Fix help output for --java-checkerframework (#7854) +* Update filename to README.md and improve formatting (#7855) +* Update stale.yml +* Updated remaining usages of LICENSE.txt + ## [23.3.3 (Mar 3 2023)](https://github.com/google/flatbuffers/releases/tag/v23.3.3) * Refactoring of `flatc` generators to use an interface (#7797). diff --git a/CMake/Version.cmake b/CMake/Version.cmake index ac145ba7fa..e68b375b0e 100644 --- a/CMake/Version.cmake +++ b/CMake/Version.cmake @@ -1,6 +1,6 @@ set(VERSION_MAJOR 23) -set(VERSION_MINOR 3) -set(VERSION_PATCH 3) +set(VERSION_MINOR 5) +set(VERSION_PATCH 8) set(VERSION_COMMIT 0) if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/.git") diff --git a/FlatBuffers.podspec b/FlatBuffers.podspec index 0a26d9f17b..d083c3ccb4 100644 --- a/FlatBuffers.podspec +++ b/FlatBuffers.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = 'FlatBuffers' - s.version = '23.3.3' + s.version = '23.5.8' s.summary = 'FlatBuffers: Memory Efficient Serialization Library' s.description = "FlatBuffers is a cross platform serialization library architected for diff --git a/android/app/src/main/java/generated/com/fbs/app/Animal.kt b/android/app/src/main/java/generated/com/fbs/app/Animal.kt index 7654a995c8..69f6a3b77e 100644 --- a/android/app/src/main/java/generated/com/fbs/app/Animal.kt +++ b/android/app/src/main/java/generated/com/fbs/app/Animal.kt @@ -57,7 +57,7 @@ class Animal : Table() { return if(o != 0) bb.getShort(o + bb_pos).toUShort() else 0u } companion object { - fun validateVersion() = Constants.FLATBUFFERS_23_3_3() + fun validateVersion() = Constants.FLATBUFFERS_23_5_8() fun getRootAsAnimal(_bb: ByteBuffer): Animal = getRootAsAnimal(_bb, Animal()) fun getRootAsAnimal(_bb: ByteBuffer, obj: Animal): Animal { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/dart/pubspec.yaml b/dart/pubspec.yaml index 8ca66328fe..799ef323ac 100644 --- a/dart/pubspec.yaml +++ b/dart/pubspec.yaml @@ -1,5 +1,5 @@ name: flat_buffers -version: 23.3.3 +version: 23.5.8 description: FlatBuffers reading and writing library for Dart. Based on original work by Konstantin Scheglov and Paul Berry of the Dart SDK team. homepage: https://github.com/google/flatbuffers documentation: https://google.github.io/flatbuffers/index.html diff --git a/goldens/csharp/Galaxy.cs b/goldens/csharp/Galaxy.cs index 4d39ca944f..da76f0bf7e 100644 --- a/goldens/csharp/Galaxy.cs +++ b/goldens/csharp/Galaxy.cs @@ -10,7 +10,7 @@ public struct Galaxy : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_3_3(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_5_8(); } public static Galaxy GetRootAsGalaxy(ByteBuffer _bb) { return GetRootAsGalaxy(_bb, new Galaxy()); } public static Galaxy GetRootAsGalaxy(ByteBuffer _bb, Galaxy obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/goldens/csharp/Universe.cs b/goldens/csharp/Universe.cs index 27178ad261..ab74a60c19 100644 --- a/goldens/csharp/Universe.cs +++ b/goldens/csharp/Universe.cs @@ -10,7 +10,7 @@ public struct Universe : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_3_3(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_5_8(); } public static Universe GetRootAsUniverse(ByteBuffer _bb) { return GetRootAsUniverse(_bb, new Universe()); } public static Universe GetRootAsUniverse(ByteBuffer _bb, Universe obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public static bool VerifyUniverse(ByteBuffer _bb) {Google.FlatBuffers.Verifier verifier = new Google.FlatBuffers.Verifier(_bb); return verifier.VerifyBuffer("", false, UniverseVerify.Verify); } diff --git a/goldens/java/Galaxy.java b/goldens/java/Galaxy.java index d18124b738..6feeed299e 100644 --- a/goldens/java/Galaxy.java +++ b/goldens/java/Galaxy.java @@ -19,7 +19,7 @@ @SuppressWarnings("unused") public final class Galaxy extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_23_3_3(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_5_8(); } public static Galaxy getRootAsGalaxy(ByteBuffer _bb) { return getRootAsGalaxy(_bb, new Galaxy()); } public static Galaxy getRootAsGalaxy(ByteBuffer _bb, Galaxy obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/goldens/java/Universe.java b/goldens/java/Universe.java index b02bdc390f..5da89216bf 100644 --- a/goldens/java/Universe.java +++ b/goldens/java/Universe.java @@ -19,7 +19,7 @@ @SuppressWarnings("unused") public final class Universe extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_23_3_3(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_5_8(); } public static Universe getRootAsUniverse(ByteBuffer _bb) { return getRootAsUniverse(_bb, new Universe()); } public static Universe getRootAsUniverse(ByteBuffer _bb, Universe obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/goldens/kotlin/Galaxy.kt b/goldens/kotlin/Galaxy.kt index 891858ae15..2cd67d4cf8 100644 --- a/goldens/kotlin/Galaxy.kt +++ b/goldens/kotlin/Galaxy.kt @@ -32,7 +32,7 @@ class Galaxy : Table() { return if(o != 0) bb.getLong(o + bb_pos) else 0L } companion object { - fun validateVersion() = Constants.FLATBUFFERS_23_3_3() + fun validateVersion() = Constants.FLATBUFFERS_23_5_8() fun getRootAsGalaxy(_bb: ByteBuffer): Galaxy = getRootAsGalaxy(_bb, Galaxy()) fun getRootAsGalaxy(_bb: ByteBuffer, obj: Galaxy): Galaxy { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/goldens/kotlin/Universe.kt b/goldens/kotlin/Universe.kt index 4944304485..4182acdd9f 100644 --- a/goldens/kotlin/Universe.kt +++ b/goldens/kotlin/Universe.kt @@ -45,7 +45,7 @@ class Universe : Table() { val o = __offset(6); return if (o != 0) __vector_len(o) else 0 } companion object { - fun validateVersion() = Constants.FLATBUFFERS_23_3_3() + fun validateVersion() = Constants.FLATBUFFERS_23_5_8() fun getRootAsUniverse(_bb: ByteBuffer): Universe = getRootAsUniverse(_bb, Universe()) fun getRootAsUniverse(_bb: ByteBuffer, obj: Universe): Universe { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/goldens/swift/basic_generated.swift b/goldens/swift/basic_generated.swift index 70e5a23354..d27d771239 100644 --- a/goldens/swift/basic_generated.swift +++ b/goldens/swift/basic_generated.swift @@ -6,7 +6,7 @@ import FlatBuffers public struct Galaxy: FlatBufferObject, Verifiable { - static func validateVersion() { FlatBuffersVersion_23_3_3() } + static func validateVersion() { FlatBuffersVersion_23_5_8() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -41,7 +41,7 @@ public struct Galaxy: FlatBufferObject, Verifiable { public struct Universe: FlatBufferObject, Verifiable { - static func validateVersion() { FlatBuffersVersion_23_3_3() } + static func validateVersion() { FlatBuffersVersion_23_5_8() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table diff --git a/grpc/examples/swift/Greeter/Sources/Model/greeter_generated.swift b/grpc/examples/swift/Greeter/Sources/Model/greeter_generated.swift index 91060c4760..9b0145cfa8 100644 --- a/grpc/examples/swift/Greeter/Sources/Model/greeter_generated.swift +++ b/grpc/examples/swift/Greeter/Sources/Model/greeter_generated.swift @@ -6,7 +6,7 @@ import FlatBuffers public struct models_HelloReply: FlatBufferObject, Verifiable { - static func validateVersion() { FlatBuffersVersion_23_3_3() } + static func validateVersion() { FlatBuffersVersion_23_5_8() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -53,7 +53,7 @@ extension models_HelloReply: Encodable { public struct models_HelloRequest: FlatBufferObject, Verifiable { - static func validateVersion() { FlatBuffersVersion_23_3_3() } + static func validateVersion() { FlatBuffersVersion_23_5_8() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table diff --git a/include/flatbuffers/base.h b/include/flatbuffers/base.h index 98a02262c2..ae3508b499 100644 --- a/include/flatbuffers/base.h +++ b/include/flatbuffers/base.h @@ -139,8 +139,8 @@ #endif // !defined(FLATBUFFERS_LITTLEENDIAN) #define FLATBUFFERS_VERSION_MAJOR 23 -#define FLATBUFFERS_VERSION_MINOR 3 -#define FLATBUFFERS_VERSION_REVISION 3 +#define FLATBUFFERS_VERSION_MINOR 5 +#define FLATBUFFERS_VERSION_REVISION 8 #define FLATBUFFERS_STRING_EXPAND(X) #X #define FLATBUFFERS_STRING(X) FLATBUFFERS_STRING_EXPAND(X) namespace flatbuffers { diff --git a/include/flatbuffers/reflection_generated.h b/include/flatbuffers/reflection_generated.h index ff0d645748..f236916f47 100644 --- a/include/flatbuffers/reflection_generated.h +++ b/include/flatbuffers/reflection_generated.h @@ -9,8 +9,8 @@ // Ensure the included flatbuffers.h is the same version as when this file was // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && - FLATBUFFERS_VERSION_MINOR == 3 && - FLATBUFFERS_VERSION_REVISION == 3, + FLATBUFFERS_VERSION_MINOR == 5 && + FLATBUFFERS_VERSION_REVISION == 8, "Non-compatible flatbuffers version included"); namespace reflection { diff --git a/java/pom.xml b/java/pom.xml index d8314e1b9d..3b9ce90897 100644 --- a/java/pom.xml +++ b/java/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.flatbuffers flatbuffers-java - 23.3.3 + 23.5.8 bundle FlatBuffers Java API diff --git a/java/src/main/java/com/google/flatbuffers/Constants.java b/java/src/main/java/com/google/flatbuffers/Constants.java index 5c48ef7cf5..d223875327 100644 --- a/java/src/main/java/com/google/flatbuffers/Constants.java +++ b/java/src/main/java/com/google/flatbuffers/Constants.java @@ -46,7 +46,7 @@ public class Constants { Changes to the Java implementation need to be sure to change the version here and in the code generator on every possible incompatible change */ - public static void FLATBUFFERS_23_3_3() {} + public static void FLATBUFFERS_23_5_8() {} } /// @endcond diff --git a/java/src/main/java/com/google/flatbuffers/reflection/Enum.java b/java/src/main/java/com/google/flatbuffers/reflection/Enum.java index 0b3ce2c387..20e0418652 100644 --- a/java/src/main/java/com/google/flatbuffers/reflection/Enum.java +++ b/java/src/main/java/com/google/flatbuffers/reflection/Enum.java @@ -21,7 +21,7 @@ @SuppressWarnings("unused") public final class Enum extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_23_3_3(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_5_8(); } public static Enum getRootAsEnum(ByteBuffer _bb) { return getRootAsEnum(_bb, new Enum()); } public static Enum getRootAsEnum(ByteBuffer _bb, Enum obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/java/src/main/java/com/google/flatbuffers/reflection/EnumVal.java b/java/src/main/java/com/google/flatbuffers/reflection/EnumVal.java index e34581634c..b8efd5e11a 100644 --- a/java/src/main/java/com/google/flatbuffers/reflection/EnumVal.java +++ b/java/src/main/java/com/google/flatbuffers/reflection/EnumVal.java @@ -21,7 +21,7 @@ @SuppressWarnings("unused") public final class EnumVal extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_23_3_3(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_5_8(); } public static EnumVal getRootAsEnumVal(ByteBuffer _bb) { return getRootAsEnumVal(_bb, new EnumVal()); } public static EnumVal getRootAsEnumVal(ByteBuffer _bb, EnumVal obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/java/src/main/java/com/google/flatbuffers/reflection/Field.java b/java/src/main/java/com/google/flatbuffers/reflection/Field.java index 4715e34319..cdaccc6b35 100644 --- a/java/src/main/java/com/google/flatbuffers/reflection/Field.java +++ b/java/src/main/java/com/google/flatbuffers/reflection/Field.java @@ -21,7 +21,7 @@ @SuppressWarnings("unused") public final class Field extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_23_3_3(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_5_8(); } public static Field getRootAsField(ByteBuffer _bb) { return getRootAsField(_bb, new Field()); } public static Field getRootAsField(ByteBuffer _bb, Field obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/java/src/main/java/com/google/flatbuffers/reflection/KeyValue.java b/java/src/main/java/com/google/flatbuffers/reflection/KeyValue.java index 43abada10b..1b163f04ea 100644 --- a/java/src/main/java/com/google/flatbuffers/reflection/KeyValue.java +++ b/java/src/main/java/com/google/flatbuffers/reflection/KeyValue.java @@ -21,7 +21,7 @@ @SuppressWarnings("unused") public final class KeyValue extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_23_3_3(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_5_8(); } public static KeyValue getRootAsKeyValue(ByteBuffer _bb) { return getRootAsKeyValue(_bb, new KeyValue()); } public static KeyValue getRootAsKeyValue(ByteBuffer _bb, KeyValue obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/java/src/main/java/com/google/flatbuffers/reflection/Object.java b/java/src/main/java/com/google/flatbuffers/reflection/Object.java index 06fbff2762..267a520f27 100644 --- a/java/src/main/java/com/google/flatbuffers/reflection/Object.java +++ b/java/src/main/java/com/google/flatbuffers/reflection/Object.java @@ -21,7 +21,7 @@ @SuppressWarnings("unused") public final class Object extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_23_3_3(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_5_8(); } public static Object getRootAsObject(ByteBuffer _bb) { return getRootAsObject(_bb, new Object()); } public static Object getRootAsObject(ByteBuffer _bb, Object obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/java/src/main/java/com/google/flatbuffers/reflection/RPCCall.java b/java/src/main/java/com/google/flatbuffers/reflection/RPCCall.java index 1b56cef019..383467a098 100644 --- a/java/src/main/java/com/google/flatbuffers/reflection/RPCCall.java +++ b/java/src/main/java/com/google/flatbuffers/reflection/RPCCall.java @@ -21,7 +21,7 @@ @SuppressWarnings("unused") public final class RPCCall extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_23_3_3(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_5_8(); } public static RPCCall getRootAsRPCCall(ByteBuffer _bb) { return getRootAsRPCCall(_bb, new RPCCall()); } public static RPCCall getRootAsRPCCall(ByteBuffer _bb, RPCCall obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/java/src/main/java/com/google/flatbuffers/reflection/Schema.java b/java/src/main/java/com/google/flatbuffers/reflection/Schema.java index 8b698299cf..7f18019fb9 100644 --- a/java/src/main/java/com/google/flatbuffers/reflection/Schema.java +++ b/java/src/main/java/com/google/flatbuffers/reflection/Schema.java @@ -21,7 +21,7 @@ @SuppressWarnings("unused") public final class Schema extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_23_3_3(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_5_8(); } public static Schema getRootAsSchema(ByteBuffer _bb) { return getRootAsSchema(_bb, new Schema()); } public static Schema getRootAsSchema(ByteBuffer _bb, Schema obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public static boolean SchemaBufferHasIdentifier(ByteBuffer _bb) { return __has_identifier(_bb, "BFBS"); } diff --git a/java/src/main/java/com/google/flatbuffers/reflection/SchemaFile.java b/java/src/main/java/com/google/flatbuffers/reflection/SchemaFile.java index 362b46ea7b..7fab505b2a 100644 --- a/java/src/main/java/com/google/flatbuffers/reflection/SchemaFile.java +++ b/java/src/main/java/com/google/flatbuffers/reflection/SchemaFile.java @@ -26,7 +26,7 @@ */ @SuppressWarnings("unused") public final class SchemaFile extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_23_3_3(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_5_8(); } public static SchemaFile getRootAsSchemaFile(ByteBuffer _bb) { return getRootAsSchemaFile(_bb, new SchemaFile()); } public static SchemaFile getRootAsSchemaFile(ByteBuffer _bb, SchemaFile obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/java/src/main/java/com/google/flatbuffers/reflection/Service.java b/java/src/main/java/com/google/flatbuffers/reflection/Service.java index 2dd5cc4071..9955eec053 100644 --- a/java/src/main/java/com/google/flatbuffers/reflection/Service.java +++ b/java/src/main/java/com/google/flatbuffers/reflection/Service.java @@ -21,7 +21,7 @@ @SuppressWarnings("unused") public final class Service extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_23_3_3(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_5_8(); } public static Service getRootAsService(ByteBuffer _bb) { return getRootAsService(_bb, new Service()); } public static Service getRootAsService(ByteBuffer _bb, Service obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/java/src/main/java/com/google/flatbuffers/reflection/Type.java b/java/src/main/java/com/google/flatbuffers/reflection/Type.java index 405df8acbf..a31158ca70 100644 --- a/java/src/main/java/com/google/flatbuffers/reflection/Type.java +++ b/java/src/main/java/com/google/flatbuffers/reflection/Type.java @@ -21,7 +21,7 @@ @SuppressWarnings("unused") public final class Type extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_23_3_3(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_5_8(); } public static Type getRootAsType(ByteBuffer _bb) { return getRootAsType(_bb, new Type()); } public static Type getRootAsType(ByteBuffer _bb, Type obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/net/FlatBuffers/FlatBufferConstants.cs b/net/FlatBuffers/FlatBufferConstants.cs index 6717c16fec..87ee0aa6b1 100644 --- a/net/FlatBuffers/FlatBufferConstants.cs +++ b/net/FlatBuffers/FlatBufferConstants.cs @@ -32,6 +32,6 @@ the runtime and generated code are modified in sync. Changes to the C# implementation need to be sure to change the version here and in the code generator on every possible incompatible change */ - public static void FLATBUFFERS_23_3_3() {} + public static void FLATBUFFERS_23_5_8() {} } } diff --git a/net/FlatBuffers/Google.FlatBuffers.csproj b/net/FlatBuffers/Google.FlatBuffers.csproj index 3c1c7f2209..1a59ed6386 100644 --- a/net/FlatBuffers/Google.FlatBuffers.csproj +++ b/net/FlatBuffers/Google.FlatBuffers.csproj @@ -3,7 +3,7 @@ netstandard2.1;netstandard2.0;net46 A cross-platform memory efficient serialization library - 23.3.3 + 23.5.8 Google LLC https://github.com/google/flatbuffers https://github.com/google/flatbuffers diff --git a/package.json b/package.json index 5a2aecaf77..2ff7bbe7e9 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "flatbuffers", - "version": "23.3.3", + "version": "23.5.8", "description": "Memory Efficient Serialization Library", "files": [ "js/**/*.js", diff --git a/python/flatbuffers/_version.py b/python/flatbuffers/_version.py index 186bbbfd89..eadac8a967 100644 --- a/python/flatbuffers/_version.py +++ b/python/flatbuffers/_version.py @@ -14,4 +14,4 @@ # Placeholder, to be updated during the release process # by the setup.py -__version__ = u"23.3.3" +__version__ = u"23.5.8" diff --git a/python/setup.py b/python/setup.py index f52065edbc..0ad48bb808 100644 --- a/python/setup.py +++ b/python/setup.py @@ -16,7 +16,7 @@ setup( name='flatbuffers', - version='23.3.3', + version='23.5.8', license='Apache 2.0', license_files='../LICENSE', author='Derek Bailey', diff --git a/rust/flatbuffers/Cargo.toml b/rust/flatbuffers/Cargo.toml index 32d0df83b9..1686892e7c 100644 --- a/rust/flatbuffers/Cargo.toml +++ b/rust/flatbuffers/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "flatbuffers" -version = "23.3.3" +version = "23.5.8" edition = "2018" authors = ["Robert Winslow ", "FlatBuffers Maintainers"] license = "Apache-2.0" diff --git a/samples/monster_generated.h b/samples/monster_generated.h index 34d1a67b96..831a298335 100644 --- a/samples/monster_generated.h +++ b/samples/monster_generated.h @@ -9,8 +9,8 @@ // Ensure the included flatbuffers.h is the same version as when this file was // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && - FLATBUFFERS_VERSION_MINOR == 3 && - FLATBUFFERS_VERSION_REVISION == 3, + FLATBUFFERS_VERSION_MINOR == 5 && + FLATBUFFERS_VERSION_REVISION == 8, "Non-compatible flatbuffers version included"); namespace MyGame { diff --git a/samples/monster_generated.swift b/samples/monster_generated.swift index 8a9c43ae31..1e9754b24b 100644 --- a/samples/monster_generated.swift +++ b/samples/monster_generated.swift @@ -36,7 +36,7 @@ public enum MyGame_Sample_Equipment: UInt8, UnionEnum { public struct MyGame_Sample_Vec3: NativeStruct, Verifiable, FlatbuffersInitializable { - static func validateVersion() { FlatBuffersVersion_23_3_3() } + static func validateVersion() { FlatBuffersVersion_23_5_8() } private var _x: Float32 private var _y: Float32 @@ -72,7 +72,7 @@ public struct MyGame_Sample_Vec3: NativeStruct, Verifiable, FlatbuffersInitializ public struct MyGame_Sample_Vec3_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_23_3_3() } + static func validateVersion() { FlatBuffersVersion_23_5_8() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -88,7 +88,7 @@ public struct MyGame_Sample_Vec3_Mutable: FlatBufferObject { public struct MyGame_Sample_Monster: FlatBufferObject, Verifiable { - static func validateVersion() { FlatBuffersVersion_23_3_3() } + static func validateVersion() { FlatBuffersVersion_23_5_8() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -200,7 +200,7 @@ public struct MyGame_Sample_Monster: FlatBufferObject, Verifiable { public struct MyGame_Sample_Weapon: FlatBufferObject, Verifiable { - static func validateVersion() { FlatBuffersVersion_23_3_3() } + static func validateVersion() { FlatBuffersVersion_23_5_8() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table diff --git a/src/idl_gen_csharp.cpp b/src/idl_gen_csharp.cpp index 8b1fafdf59..1ddf975331 100644 --- a/src/idl_gen_csharp.cpp +++ b/src/idl_gen_csharp.cpp @@ -826,7 +826,7 @@ class CSharpGenerator : public BaseGenerator { // Force compile time error if not using the same version runtime. code += " public static void ValidateVersion() {"; code += " FlatBufferConstants."; - code += "FLATBUFFERS_23_3_3(); "; + code += "FLATBUFFERS_23_5_8(); "; code += "}\n"; // Generate a special accessor for the table that when used as the root diff --git a/src/idl_gen_java.cpp b/src/idl_gen_java.cpp index 7c44671cf6..9a236b3ceb 100644 --- a/src/idl_gen_java.cpp +++ b/src/idl_gen_java.cpp @@ -703,7 +703,7 @@ class JavaGenerator : public BaseGenerator { // Force compile time error if not using the same version runtime. code += " public static void ValidateVersion() {"; code += " Constants."; - code += "FLATBUFFERS_23_3_3(); "; + code += "FLATBUFFERS_23_5_8(); "; code += "}\n"; // Generate a special accessor for the table that when used as the root diff --git a/src/idl_gen_kotlin.cpp b/src/idl_gen_kotlin.cpp index 71b9db5c6f..7048fbe412 100644 --- a/src/idl_gen_kotlin.cpp +++ b/src/idl_gen_kotlin.cpp @@ -524,7 +524,7 @@ class KotlinGenerator : public BaseGenerator { // runtime. GenerateFunOneLine( writer, "validateVersion", "", "", - [&]() { writer += "Constants.FLATBUFFERS_23_3_3()"; }, + [&]() { writer += "Constants.FLATBUFFERS_23_5_8()"; }, options.gen_jvmstatic); GenerateGetRootAsAccessors(namer_.Type(struct_def), writer, options); diff --git a/src/idl_gen_swift.cpp b/src/idl_gen_swift.cpp index 8257c0c12f..894468b341 100644 --- a/src/idl_gen_swift.cpp +++ b/src/idl_gen_swift.cpp @@ -1842,7 +1842,7 @@ class SwiftGenerator : public BaseGenerator { } std::string ValidateFunc() { - return "static func validateVersion() { FlatBuffersVersion_23_3_3() }"; + return "static func validateVersion() { FlatBuffersVersion_23_5_8() }"; } std::string GenType(const Type &type, diff --git a/swift/Sources/FlatBuffers/Constants.swift b/swift/Sources/FlatBuffers/Constants.swift index 030b3bb571..9beb366dc5 100644 --- a/swift/Sources/FlatBuffers/Constants.swift +++ b/swift/Sources/FlatBuffers/Constants.swift @@ -119,4 +119,4 @@ extension UInt64: Scalar, Verifiable { public typealias NumericValue = UInt64 } -public func FlatBuffersVersion_23_3_3() {} +public func FlatBuffersVersion_23_5_8() {} diff --git a/tests/Abc.nim b/tests/Abc.nim index 4845e7ec90..a161f906c4 100644 --- a/tests/Abc.nim +++ b/tests/Abc.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.3.3 + flatc version: 23.5.8 Declared by : ]# diff --git a/tests/DictionaryLookup/LongFloatEntry.java b/tests/DictionaryLookup/LongFloatEntry.java index f4955e6135..7b12b5843c 100644 --- a/tests/DictionaryLookup/LongFloatEntry.java +++ b/tests/DictionaryLookup/LongFloatEntry.java @@ -21,7 +21,7 @@ @SuppressWarnings("unused") public final class LongFloatEntry extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_23_3_3(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_5_8(); } public static LongFloatEntry getRootAsLongFloatEntry(ByteBuffer _bb) { return getRootAsLongFloatEntry(_bb, new LongFloatEntry()); } public static LongFloatEntry getRootAsLongFloatEntry(ByteBuffer _bb, LongFloatEntry obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/tests/DictionaryLookup/LongFloatEntry.kt b/tests/DictionaryLookup/LongFloatEntry.kt index bf1a0f4b4a..98551295c5 100644 --- a/tests/DictionaryLookup/LongFloatEntry.kt +++ b/tests/DictionaryLookup/LongFloatEntry.kt @@ -44,7 +44,7 @@ class LongFloatEntry : Table() { return (val_1 - val_2).sign } companion object { - fun validateVersion() = Constants.FLATBUFFERS_23_3_3() + fun validateVersion() = Constants.FLATBUFFERS_23_5_8() fun getRootAsLongFloatEntry(_bb: ByteBuffer): LongFloatEntry = getRootAsLongFloatEntry(_bb, LongFloatEntry()) fun getRootAsLongFloatEntry(_bb: ByteBuffer, obj: LongFloatEntry): LongFloatEntry { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/DictionaryLookup/LongFloatMap.java b/tests/DictionaryLookup/LongFloatMap.java index 6d02ca5bc1..0780fc8de2 100644 --- a/tests/DictionaryLookup/LongFloatMap.java +++ b/tests/DictionaryLookup/LongFloatMap.java @@ -21,7 +21,7 @@ @SuppressWarnings("unused") public final class LongFloatMap extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_23_3_3(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_5_8(); } public static LongFloatMap getRootAsLongFloatMap(ByteBuffer _bb) { return getRootAsLongFloatMap(_bb, new LongFloatMap()); } public static LongFloatMap getRootAsLongFloatMap(ByteBuffer _bb, LongFloatMap obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/tests/DictionaryLookup/LongFloatMap.kt b/tests/DictionaryLookup/LongFloatMap.kt index 816382a403..54adc94c25 100644 --- a/tests/DictionaryLookup/LongFloatMap.kt +++ b/tests/DictionaryLookup/LongFloatMap.kt @@ -58,7 +58,7 @@ class LongFloatMap : Table() { } } companion object { - fun validateVersion() = Constants.FLATBUFFERS_23_3_3() + fun validateVersion() = Constants.FLATBUFFERS_23_5_8() fun getRootAsLongFloatMap(_bb: ByteBuffer): LongFloatMap = getRootAsLongFloatMap(_bb, LongFloatMap()) fun getRootAsLongFloatMap(_bb: ByteBuffer, obj: LongFloatMap): LongFloatMap { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/KeywordTest/KeywordsInTable.cs b/tests/KeywordTest/KeywordsInTable.cs index 9556c9f6df..f7370096d2 100644 --- a/tests/KeywordTest/KeywordsInTable.cs +++ b/tests/KeywordTest/KeywordsInTable.cs @@ -13,7 +13,7 @@ public struct KeywordsInTable : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_3_3(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_5_8(); } public static KeywordsInTable GetRootAsKeywordsInTable(ByteBuffer _bb) { return GetRootAsKeywordsInTable(_bb, new KeywordsInTable()); } public static KeywordsInTable GetRootAsKeywordsInTable(ByteBuffer _bb, KeywordsInTable obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/KeywordTest/Table2.cs b/tests/KeywordTest/Table2.cs index 59cfee06f5..eedd380b0b 100644 --- a/tests/KeywordTest/Table2.cs +++ b/tests/KeywordTest/Table2.cs @@ -13,7 +13,7 @@ public struct Table2 : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_3_3(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_5_8(); } public static Table2 GetRootAsTable2(ByteBuffer _bb) { return GetRootAsTable2(_bb, new Table2()); } public static Table2 GetRootAsTable2(ByteBuffer _bb, Table2 obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/MoreDefaults.nim b/tests/MoreDefaults.nim index 2eb0def1ff..86b4fa19f8 100644 --- a/tests/MoreDefaults.nim +++ b/tests/MoreDefaults.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.3.3 + flatc version: 23.5.8 Declared by : ]# diff --git a/tests/MyGame/Example/Ability.lua b/tests/MyGame/Example/Ability.lua index a572cb3598..1776c53012 100644 --- a/tests/MyGame/Example/Ability.lua +++ b/tests/MyGame/Example/Ability.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.3.3 + flatc version: 23.5.8 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/Ability.nim b/tests/MyGame/Example/Ability.nim index befe7319c9..1da67f42b6 100644 --- a/tests/MyGame/Example/Ability.nim +++ b/tests/MyGame/Example/Ability.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.3.3 + flatc version: 23.5.8 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example/Any.lua b/tests/MyGame/Example/Any.lua index 0d7cbb1abe..bfa0f114d8 100644 --- a/tests/MyGame/Example/Any.lua +++ b/tests/MyGame/Example/Any.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.3.3 + flatc version: 23.5.8 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/Any.nim b/tests/MyGame/Example/Any.nim index 48ad0864ff..b1fc6132c8 100644 --- a/tests/MyGame/Example/Any.nim +++ b/tests/MyGame/Example/Any.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.3.3 + flatc version: 23.5.8 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example/AnyAmbiguousAliases.lua b/tests/MyGame/Example/AnyAmbiguousAliases.lua index 083d7b7869..fdfa0f4a09 100644 --- a/tests/MyGame/Example/AnyAmbiguousAliases.lua +++ b/tests/MyGame/Example/AnyAmbiguousAliases.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.3.3 + flatc version: 23.5.8 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/AnyAmbiguousAliases.nim b/tests/MyGame/Example/AnyAmbiguousAliases.nim index 6736c5a81f..3cc3ae8117 100644 --- a/tests/MyGame/Example/AnyAmbiguousAliases.nim +++ b/tests/MyGame/Example/AnyAmbiguousAliases.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.3.3 + flatc version: 23.5.8 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example/AnyUniqueAliases.lua b/tests/MyGame/Example/AnyUniqueAliases.lua index 4f7e521844..58605de0c7 100644 --- a/tests/MyGame/Example/AnyUniqueAliases.lua +++ b/tests/MyGame/Example/AnyUniqueAliases.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.3.3 + flatc version: 23.5.8 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/AnyUniqueAliases.nim b/tests/MyGame/Example/AnyUniqueAliases.nim index d6cef37979..5225065ea4 100644 --- a/tests/MyGame/Example/AnyUniqueAliases.nim +++ b/tests/MyGame/Example/AnyUniqueAliases.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.3.3 + flatc version: 23.5.8 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example/ArrayTable.cs b/tests/MyGame/Example/ArrayTable.cs index d38b70c06a..4653aa0adc 100644 --- a/tests/MyGame/Example/ArrayTable.cs +++ b/tests/MyGame/Example/ArrayTable.cs @@ -13,7 +13,7 @@ public struct ArrayTable : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_3_3(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_5_8(); } public static ArrayTable GetRootAsArrayTable(ByteBuffer _bb) { return GetRootAsArrayTable(_bb, new ArrayTable()); } public static ArrayTable GetRootAsArrayTable(ByteBuffer _bb, ArrayTable obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public static bool ArrayTableBufferHasIdentifier(ByteBuffer _bb) { return Table.__has_identifier(_bb, "ARRT"); } diff --git a/tests/MyGame/Example/ArrayTable.java b/tests/MyGame/Example/ArrayTable.java index 17cea9a9bb..04ac623fda 100644 --- a/tests/MyGame/Example/ArrayTable.java +++ b/tests/MyGame/Example/ArrayTable.java @@ -21,7 +21,7 @@ @SuppressWarnings("unused") public final class ArrayTable extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_23_3_3(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_5_8(); } public static ArrayTable getRootAsArrayTable(ByteBuffer _bb) { return getRootAsArrayTable(_bb, new ArrayTable()); } public static ArrayTable getRootAsArrayTable(ByteBuffer _bb, ArrayTable obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public static boolean ArrayTableBufferHasIdentifier(ByteBuffer _bb) { return __has_identifier(_bb, "ARRT"); } diff --git a/tests/MyGame/Example/Color.lua b/tests/MyGame/Example/Color.lua index 4722a9249b..66f17ad028 100644 --- a/tests/MyGame/Example/Color.lua +++ b/tests/MyGame/Example/Color.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.3.3 + flatc version: 23.5.8 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/Color.nim b/tests/MyGame/Example/Color.nim index 350768296b..09f5cb48ff 100644 --- a/tests/MyGame/Example/Color.nim +++ b/tests/MyGame/Example/Color.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.3.3 + flatc version: 23.5.8 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example/LongEnum.lua b/tests/MyGame/Example/LongEnum.lua index 1f2b039fa4..c5eca085da 100644 --- a/tests/MyGame/Example/LongEnum.lua +++ b/tests/MyGame/Example/LongEnum.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.3.3 + flatc version: 23.5.8 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/LongEnum.nim b/tests/MyGame/Example/LongEnum.nim index fe8dc9e338..006b9116ac 100644 --- a/tests/MyGame/Example/LongEnum.nim +++ b/tests/MyGame/Example/LongEnum.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.3.3 + flatc version: 23.5.8 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example/Monster.cs b/tests/MyGame/Example/Monster.cs index e7cdd2e859..03c97baa0b 100644 --- a/tests/MyGame/Example/Monster.cs +++ b/tests/MyGame/Example/Monster.cs @@ -14,7 +14,7 @@ public struct Monster : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_3_3(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_5_8(); } public static Monster GetRootAsMonster(ByteBuffer _bb) { return GetRootAsMonster(_bb, new Monster()); } public static Monster GetRootAsMonster(ByteBuffer _bb, Monster obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public static bool MonsterBufferHasIdentifier(ByteBuffer _bb) { return Table.__has_identifier(_bb, "MONS"); } diff --git a/tests/MyGame/Example/Monster.java b/tests/MyGame/Example/Monster.java index cd8b2c0140..1526408fd4 100644 --- a/tests/MyGame/Example/Monster.java +++ b/tests/MyGame/Example/Monster.java @@ -24,7 +24,7 @@ */ @SuppressWarnings("unused") public final class Monster extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_23_3_3(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_5_8(); } public static Monster getRootAsMonster(ByteBuffer _bb) { return getRootAsMonster(_bb, new Monster()); } public static Monster getRootAsMonster(ByteBuffer _bb, Monster obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public static boolean MonsterBufferHasIdentifier(ByteBuffer _bb) { return __has_identifier(_bb, "MONS"); } diff --git a/tests/MyGame/Example/Monster.kt b/tests/MyGame/Example/Monster.kt index 4631ae0f9c..b081ea8281 100644 --- a/tests/MyGame/Example/Monster.kt +++ b/tests/MyGame/Example/Monster.kt @@ -1002,7 +1002,7 @@ class Monster : Table() { return compareStrings(__offset(10, o1, _bb), __offset(10, o2, _bb), _bb) } companion object { - fun validateVersion() = Constants.FLATBUFFERS_23_3_3() + fun validateVersion() = Constants.FLATBUFFERS_23_5_8() fun getRootAsMonster(_bb: ByteBuffer): Monster = getRootAsMonster(_bb, Monster()) fun getRootAsMonster(_bb: ByteBuffer, obj: Monster): Monster { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/MyGame/Example/Monster.lua b/tests/MyGame/Example/Monster.lua index 2ccc25b282..74d353659d 100644 --- a/tests/MyGame/Example/Monster.lua +++ b/tests/MyGame/Example/Monster.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.3.3 + flatc version: 23.5.8 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/Monster.nim b/tests/MyGame/Example/Monster.nim index ec3eebd1e4..665a36c46a 100644 --- a/tests/MyGame/Example/Monster.nim +++ b/tests/MyGame/Example/Monster.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.3.3 + flatc version: 23.5.8 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example/Race.lua b/tests/MyGame/Example/Race.lua index c8f2c53523..9f8cc7b888 100644 --- a/tests/MyGame/Example/Race.lua +++ b/tests/MyGame/Example/Race.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.3.3 + flatc version: 23.5.8 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/Race.nim b/tests/MyGame/Example/Race.nim index 602679390b..ce840519cb 100644 --- a/tests/MyGame/Example/Race.nim +++ b/tests/MyGame/Example/Race.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.3.3 + flatc version: 23.5.8 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example/Referrable.cs b/tests/MyGame/Example/Referrable.cs index c6434d265e..86cf7da4da 100644 --- a/tests/MyGame/Example/Referrable.cs +++ b/tests/MyGame/Example/Referrable.cs @@ -13,7 +13,7 @@ public struct Referrable : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_3_3(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_5_8(); } public static Referrable GetRootAsReferrable(ByteBuffer _bb) { return GetRootAsReferrable(_bb, new Referrable()); } public static Referrable GetRootAsReferrable(ByteBuffer _bb, Referrable obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/MyGame/Example/Referrable.java b/tests/MyGame/Example/Referrable.java index d43f0fa5f0..f16f3922c3 100644 --- a/tests/MyGame/Example/Referrable.java +++ b/tests/MyGame/Example/Referrable.java @@ -21,7 +21,7 @@ @SuppressWarnings("unused") public final class Referrable extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_23_3_3(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_5_8(); } public static Referrable getRootAsReferrable(ByteBuffer _bb) { return getRootAsReferrable(_bb, new Referrable()); } public static Referrable getRootAsReferrable(ByteBuffer _bb, Referrable obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/tests/MyGame/Example/Referrable.kt b/tests/MyGame/Example/Referrable.kt index 55dc603de3..47958e62ee 100644 --- a/tests/MyGame/Example/Referrable.kt +++ b/tests/MyGame/Example/Referrable.kt @@ -48,7 +48,7 @@ class Referrable : Table() { return (val_1 - val_2).sign } companion object { - fun validateVersion() = Constants.FLATBUFFERS_23_3_3() + fun validateVersion() = Constants.FLATBUFFERS_23_5_8() fun getRootAsReferrable(_bb: ByteBuffer): Referrable = getRootAsReferrable(_bb, Referrable()) fun getRootAsReferrable(_bb: ByteBuffer, obj: Referrable): Referrable { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/MyGame/Example/Referrable.lua b/tests/MyGame/Example/Referrable.lua index c5d75dff49..3a0022367e 100644 --- a/tests/MyGame/Example/Referrable.lua +++ b/tests/MyGame/Example/Referrable.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.3.3 + flatc version: 23.5.8 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/Referrable.nim b/tests/MyGame/Example/Referrable.nim index fc8aed81e9..f39c0584a3 100644 --- a/tests/MyGame/Example/Referrable.nim +++ b/tests/MyGame/Example/Referrable.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.3.3 + flatc version: 23.5.8 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example/Stat.cs b/tests/MyGame/Example/Stat.cs index c73f2aaeaa..be7a9712c9 100644 --- a/tests/MyGame/Example/Stat.cs +++ b/tests/MyGame/Example/Stat.cs @@ -13,7 +13,7 @@ public struct Stat : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_3_3(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_5_8(); } public static Stat GetRootAsStat(ByteBuffer _bb) { return GetRootAsStat(_bb, new Stat()); } public static Stat GetRootAsStat(ByteBuffer _bb, Stat obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/MyGame/Example/Stat.java b/tests/MyGame/Example/Stat.java index 6613dd50f5..1508085589 100644 --- a/tests/MyGame/Example/Stat.java +++ b/tests/MyGame/Example/Stat.java @@ -21,7 +21,7 @@ @SuppressWarnings("unused") public final class Stat extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_23_3_3(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_5_8(); } public static Stat getRootAsStat(ByteBuffer _bb) { return getRootAsStat(_bb, new Stat()); } public static Stat getRootAsStat(ByteBuffer _bb, Stat obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/tests/MyGame/Example/Stat.kt b/tests/MyGame/Example/Stat.kt index d5f09baed1..48e6e4d85d 100644 --- a/tests/MyGame/Example/Stat.kt +++ b/tests/MyGame/Example/Stat.kt @@ -73,7 +73,7 @@ class Stat : Table() { return (val_1 - val_2).sign } companion object { - fun validateVersion() = Constants.FLATBUFFERS_23_3_3() + fun validateVersion() = Constants.FLATBUFFERS_23_5_8() fun getRootAsStat(_bb: ByteBuffer): Stat = getRootAsStat(_bb, Stat()) fun getRootAsStat(_bb: ByteBuffer, obj: Stat): Stat { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/MyGame/Example/Stat.lua b/tests/MyGame/Example/Stat.lua index 7f2cd94000..1fe57cf28a 100644 --- a/tests/MyGame/Example/Stat.lua +++ b/tests/MyGame/Example/Stat.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.3.3 + flatc version: 23.5.8 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/Stat.nim b/tests/MyGame/Example/Stat.nim index 3533fe9157..5b85f94f57 100644 --- a/tests/MyGame/Example/Stat.nim +++ b/tests/MyGame/Example/Stat.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.3.3 + flatc version: 23.5.8 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example/StructOfStructs.lua b/tests/MyGame/Example/StructOfStructs.lua index bae77ff5e2..c076237ad7 100644 --- a/tests/MyGame/Example/StructOfStructs.lua +++ b/tests/MyGame/Example/StructOfStructs.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.3.3 + flatc version: 23.5.8 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/StructOfStructs.nim b/tests/MyGame/Example/StructOfStructs.nim index 697a7172ff..5cc713b50c 100644 --- a/tests/MyGame/Example/StructOfStructs.nim +++ b/tests/MyGame/Example/StructOfStructs.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.3.3 + flatc version: 23.5.8 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example/StructOfStructsOfStructs.lua b/tests/MyGame/Example/StructOfStructsOfStructs.lua index 8c412059e9..ebcb702079 100644 --- a/tests/MyGame/Example/StructOfStructsOfStructs.lua +++ b/tests/MyGame/Example/StructOfStructsOfStructs.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.3.3 + flatc version: 23.5.8 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/StructOfStructsOfStructs.nim b/tests/MyGame/Example/StructOfStructsOfStructs.nim index 2999f767bf..82973117bc 100644 --- a/tests/MyGame/Example/StructOfStructsOfStructs.nim +++ b/tests/MyGame/Example/StructOfStructsOfStructs.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.3.3 + flatc version: 23.5.8 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example/Test.lua b/tests/MyGame/Example/Test.lua index 4c14737593..af1e3e2213 100644 --- a/tests/MyGame/Example/Test.lua +++ b/tests/MyGame/Example/Test.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.3.3 + flatc version: 23.5.8 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/Test.nim b/tests/MyGame/Example/Test.nim index f8f73d6ee2..7fdbca42f1 100644 --- a/tests/MyGame/Example/Test.nim +++ b/tests/MyGame/Example/Test.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.3.3 + flatc version: 23.5.8 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example/TestSimpleTableWithEnum.cs b/tests/MyGame/Example/TestSimpleTableWithEnum.cs index 2a827a5074..52be2ea155 100644 --- a/tests/MyGame/Example/TestSimpleTableWithEnum.cs +++ b/tests/MyGame/Example/TestSimpleTableWithEnum.cs @@ -13,7 +13,7 @@ internal partial struct TestSimpleTableWithEnum : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_3_3(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_5_8(); } public static TestSimpleTableWithEnum GetRootAsTestSimpleTableWithEnum(ByteBuffer _bb) { return GetRootAsTestSimpleTableWithEnum(_bb, new TestSimpleTableWithEnum()); } public static TestSimpleTableWithEnum GetRootAsTestSimpleTableWithEnum(ByteBuffer _bb, TestSimpleTableWithEnum obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/MyGame/Example/TestSimpleTableWithEnum.java b/tests/MyGame/Example/TestSimpleTableWithEnum.java index 0209f18a53..c783f302b2 100644 --- a/tests/MyGame/Example/TestSimpleTableWithEnum.java +++ b/tests/MyGame/Example/TestSimpleTableWithEnum.java @@ -21,7 +21,7 @@ @SuppressWarnings("unused") final class TestSimpleTableWithEnum extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_23_3_3(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_5_8(); } public static TestSimpleTableWithEnum getRootAsTestSimpleTableWithEnum(ByteBuffer _bb) { return getRootAsTestSimpleTableWithEnum(_bb, new TestSimpleTableWithEnum()); } public static TestSimpleTableWithEnum getRootAsTestSimpleTableWithEnum(ByteBuffer _bb, TestSimpleTableWithEnum obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/tests/MyGame/Example/TestSimpleTableWithEnum.kt b/tests/MyGame/Example/TestSimpleTableWithEnum.kt index 2b6edbb277..34c14ef420 100644 --- a/tests/MyGame/Example/TestSimpleTableWithEnum.kt +++ b/tests/MyGame/Example/TestSimpleTableWithEnum.kt @@ -43,7 +43,7 @@ class TestSimpleTableWithEnum : Table() { } } companion object { - fun validateVersion() = Constants.FLATBUFFERS_23_3_3() + fun validateVersion() = Constants.FLATBUFFERS_23_5_8() fun getRootAsTestSimpleTableWithEnum(_bb: ByteBuffer): TestSimpleTableWithEnum = getRootAsTestSimpleTableWithEnum(_bb, TestSimpleTableWithEnum()) fun getRootAsTestSimpleTableWithEnum(_bb: ByteBuffer, obj: TestSimpleTableWithEnum): TestSimpleTableWithEnum { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/MyGame/Example/TestSimpleTableWithEnum.lua b/tests/MyGame/Example/TestSimpleTableWithEnum.lua index 4590599a06..3609729759 100644 --- a/tests/MyGame/Example/TestSimpleTableWithEnum.lua +++ b/tests/MyGame/Example/TestSimpleTableWithEnum.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.3.3 + flatc version: 23.5.8 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/TestSimpleTableWithEnum.nim b/tests/MyGame/Example/TestSimpleTableWithEnum.nim index 83afb88426..56dd0997ea 100644 --- a/tests/MyGame/Example/TestSimpleTableWithEnum.nim +++ b/tests/MyGame/Example/TestSimpleTableWithEnum.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.3.3 + flatc version: 23.5.8 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example/TypeAliases.cs b/tests/MyGame/Example/TypeAliases.cs index e4eecf3e0d..d8c07ec8c3 100644 --- a/tests/MyGame/Example/TypeAliases.cs +++ b/tests/MyGame/Example/TypeAliases.cs @@ -13,7 +13,7 @@ public struct TypeAliases : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_3_3(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_5_8(); } public static TypeAliases GetRootAsTypeAliases(ByteBuffer _bb) { return GetRootAsTypeAliases(_bb, new TypeAliases()); } public static TypeAliases GetRootAsTypeAliases(ByteBuffer _bb, TypeAliases obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/MyGame/Example/TypeAliases.java b/tests/MyGame/Example/TypeAliases.java index 38f51764bb..e0eaa6ab04 100644 --- a/tests/MyGame/Example/TypeAliases.java +++ b/tests/MyGame/Example/TypeAliases.java @@ -21,7 +21,7 @@ @SuppressWarnings("unused") public final class TypeAliases extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_23_3_3(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_5_8(); } public static TypeAliases getRootAsTypeAliases(ByteBuffer _bb) { return getRootAsTypeAliases(_bb, new TypeAliases()); } public static TypeAliases getRootAsTypeAliases(ByteBuffer _bb, TypeAliases obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/tests/MyGame/Example/TypeAliases.kt b/tests/MyGame/Example/TypeAliases.kt index bf6914a95b..c60807e4ea 100644 --- a/tests/MyGame/Example/TypeAliases.kt +++ b/tests/MyGame/Example/TypeAliases.kt @@ -215,7 +215,7 @@ class TypeAliases : Table() { } } companion object { - fun validateVersion() = Constants.FLATBUFFERS_23_3_3() + fun validateVersion() = Constants.FLATBUFFERS_23_5_8() fun getRootAsTypeAliases(_bb: ByteBuffer): TypeAliases = getRootAsTypeAliases(_bb, TypeAliases()) fun getRootAsTypeAliases(_bb: ByteBuffer, obj: TypeAliases): TypeAliases { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/MyGame/Example/TypeAliases.lua b/tests/MyGame/Example/TypeAliases.lua index 8373d9abf7..f6ad3ed2ab 100644 --- a/tests/MyGame/Example/TypeAliases.lua +++ b/tests/MyGame/Example/TypeAliases.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.3.3 + flatc version: 23.5.8 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/TypeAliases.nim b/tests/MyGame/Example/TypeAliases.nim index 36cc85132d..d4593b265e 100644 --- a/tests/MyGame/Example/TypeAliases.nim +++ b/tests/MyGame/Example/TypeAliases.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.3.3 + flatc version: 23.5.8 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example/Vec3.lua b/tests/MyGame/Example/Vec3.lua index 00620ff203..9bd88ce685 100644 --- a/tests/MyGame/Example/Vec3.lua +++ b/tests/MyGame/Example/Vec3.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.3.3 + flatc version: 23.5.8 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example/Vec3.nim b/tests/MyGame/Example/Vec3.nim index 326b91448c..2a5eda966e 100644 --- a/tests/MyGame/Example/Vec3.nim +++ b/tests/MyGame/Example/Vec3.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.3.3 + flatc version: 23.5.8 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/Example2/Monster.cs b/tests/MyGame/Example2/Monster.cs index f9fa70060f..c212e2fa6b 100644 --- a/tests/MyGame/Example2/Monster.cs +++ b/tests/MyGame/Example2/Monster.cs @@ -13,7 +13,7 @@ public struct Monster : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_3_3(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_5_8(); } public static Monster GetRootAsMonster(ByteBuffer _bb) { return GetRootAsMonster(_bb, new Monster()); } public static Monster GetRootAsMonster(ByteBuffer _bb, Monster obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/MyGame/Example2/Monster.java b/tests/MyGame/Example2/Monster.java index 508c327905..01e109585f 100644 --- a/tests/MyGame/Example2/Monster.java +++ b/tests/MyGame/Example2/Monster.java @@ -21,7 +21,7 @@ @SuppressWarnings("unused") public final class Monster extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_23_3_3(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_5_8(); } public static Monster getRootAsMonster(ByteBuffer _bb) { return getRootAsMonster(_bb, new Monster()); } public static Monster getRootAsMonster(ByteBuffer _bb, Monster obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/tests/MyGame/Example2/Monster.kt b/tests/MyGame/Example2/Monster.kt index 9822b081b5..c21820b2b9 100644 --- a/tests/MyGame/Example2/Monster.kt +++ b/tests/MyGame/Example2/Monster.kt @@ -29,7 +29,7 @@ class Monster : Table() { return this } companion object { - fun validateVersion() = Constants.FLATBUFFERS_23_3_3() + fun validateVersion() = Constants.FLATBUFFERS_23_5_8() fun getRootAsMonster(_bb: ByteBuffer): Monster = getRootAsMonster(_bb, Monster()) fun getRootAsMonster(_bb: ByteBuffer, obj: Monster): Monster { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/MyGame/Example2/Monster.lua b/tests/MyGame/Example2/Monster.lua index 2f853ec64e..21fa0e38eb 100644 --- a/tests/MyGame/Example2/Monster.lua +++ b/tests/MyGame/Example2/Monster.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.3.3 + flatc version: 23.5.8 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/Example2/Monster.nim b/tests/MyGame/Example2/Monster.nim index 4eaba9b44b..5869dc36ba 100644 --- a/tests/MyGame/Example2/Monster.nim +++ b/tests/MyGame/Example2/Monster.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.3.3 + flatc version: 23.5.8 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/InParentNamespace.cs b/tests/MyGame/InParentNamespace.cs index 8416105f0d..3f1fc2ae20 100644 --- a/tests/MyGame/InParentNamespace.cs +++ b/tests/MyGame/InParentNamespace.cs @@ -13,7 +13,7 @@ public struct InParentNamespace : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_3_3(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_5_8(); } public static InParentNamespace GetRootAsInParentNamespace(ByteBuffer _bb) { return GetRootAsInParentNamespace(_bb, new InParentNamespace()); } public static InParentNamespace GetRootAsInParentNamespace(ByteBuffer _bb, InParentNamespace obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/MyGame/InParentNamespace.java b/tests/MyGame/InParentNamespace.java index 2fd4769833..865cc5bf04 100644 --- a/tests/MyGame/InParentNamespace.java +++ b/tests/MyGame/InParentNamespace.java @@ -21,7 +21,7 @@ @SuppressWarnings("unused") public final class InParentNamespace extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_23_3_3(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_5_8(); } public static InParentNamespace getRootAsInParentNamespace(ByteBuffer _bb) { return getRootAsInParentNamespace(_bb, new InParentNamespace()); } public static InParentNamespace getRootAsInParentNamespace(ByteBuffer _bb, InParentNamespace obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/tests/MyGame/InParentNamespace.kt b/tests/MyGame/InParentNamespace.kt index 445057e984..4efa397f20 100644 --- a/tests/MyGame/InParentNamespace.kt +++ b/tests/MyGame/InParentNamespace.kt @@ -29,7 +29,7 @@ class InParentNamespace : Table() { return this } companion object { - fun validateVersion() = Constants.FLATBUFFERS_23_3_3() + fun validateVersion() = Constants.FLATBUFFERS_23_5_8() fun getRootAsInParentNamespace(_bb: ByteBuffer): InParentNamespace = getRootAsInParentNamespace(_bb, InParentNamespace()) fun getRootAsInParentNamespace(_bb: ByteBuffer, obj: InParentNamespace): InParentNamespace { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/MyGame/InParentNamespace.lua b/tests/MyGame/InParentNamespace.lua index 9a5ea924cf..60dd20e1da 100644 --- a/tests/MyGame/InParentNamespace.lua +++ b/tests/MyGame/InParentNamespace.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.3.3 + flatc version: 23.5.8 Declared by : //monster_test.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/InParentNamespace.nim b/tests/MyGame/InParentNamespace.nim index 4357bfa5bd..6a50b7e6a3 100644 --- a/tests/MyGame/InParentNamespace.nim +++ b/tests/MyGame/InParentNamespace.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.3.3 + flatc version: 23.5.8 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/MonsterExtra.cs b/tests/MyGame/MonsterExtra.cs index c1061b6b22..eda66b23b8 100644 --- a/tests/MyGame/MonsterExtra.cs +++ b/tests/MyGame/MonsterExtra.cs @@ -13,7 +13,7 @@ public struct MonsterExtra : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_3_3(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_5_8(); } public static MonsterExtra GetRootAsMonsterExtra(ByteBuffer _bb) { return GetRootAsMonsterExtra(_bb, new MonsterExtra()); } public static MonsterExtra GetRootAsMonsterExtra(ByteBuffer _bb, MonsterExtra obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public static bool MonsterExtraBufferHasIdentifier(ByteBuffer _bb) { return Table.__has_identifier(_bb, "MONE"); } diff --git a/tests/MyGame/MonsterExtra.java b/tests/MyGame/MonsterExtra.java index 474c0eb812..018e89d805 100644 --- a/tests/MyGame/MonsterExtra.java +++ b/tests/MyGame/MonsterExtra.java @@ -21,7 +21,7 @@ @SuppressWarnings("unused") public final class MonsterExtra extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_23_3_3(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_5_8(); } public static MonsterExtra getRootAsMonsterExtra(ByteBuffer _bb) { return getRootAsMonsterExtra(_bb, new MonsterExtra()); } public static MonsterExtra getRootAsMonsterExtra(ByteBuffer _bb, MonsterExtra obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public static boolean MonsterExtraBufferHasIdentifier(ByteBuffer _bb) { return __has_identifier(_bb, "MONE"); } diff --git a/tests/MyGame/MonsterExtra.kt b/tests/MyGame/MonsterExtra.kt index cb0274daad..3595bf5e98 100644 --- a/tests/MyGame/MonsterExtra.kt +++ b/tests/MyGame/MonsterExtra.kt @@ -187,7 +187,7 @@ class MonsterExtra : Table() { } } companion object { - fun validateVersion() = Constants.FLATBUFFERS_23_3_3() + fun validateVersion() = Constants.FLATBUFFERS_23_5_8() fun getRootAsMonsterExtra(_bb: ByteBuffer): MonsterExtra = getRootAsMonsterExtra(_bb, MonsterExtra()) fun getRootAsMonsterExtra(_bb: ByteBuffer, obj: MonsterExtra): MonsterExtra { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/MyGame/OtherNameSpace/FromInclude.lua b/tests/MyGame/OtherNameSpace/FromInclude.lua index 0d7afd4e38..d82cf7940c 100644 --- a/tests/MyGame/OtherNameSpace/FromInclude.lua +++ b/tests/MyGame/OtherNameSpace/FromInclude.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.3.3 + flatc version: 23.5.8 Declared by : //include_test/sub/include_test2.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/OtherNameSpace/FromInclude.nim b/tests/MyGame/OtherNameSpace/FromInclude.nim index af47a45156..8511294dfa 100644 --- a/tests/MyGame/OtherNameSpace/FromInclude.nim +++ b/tests/MyGame/OtherNameSpace/FromInclude.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.3.3 + flatc version: 23.5.8 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/OtherNameSpace/TableB.lua b/tests/MyGame/OtherNameSpace/TableB.lua index faa701b0d4..106290d6d6 100644 --- a/tests/MyGame/OtherNameSpace/TableB.lua +++ b/tests/MyGame/OtherNameSpace/TableB.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.3.3 + flatc version: 23.5.8 Declared by : //include_test/sub/include_test2.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/OtherNameSpace/TableB.nim b/tests/MyGame/OtherNameSpace/TableB.nim index f947d0e026..d5a599fa0d 100644 --- a/tests/MyGame/OtherNameSpace/TableB.nim +++ b/tests/MyGame/OtherNameSpace/TableB.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.3.3 + flatc version: 23.5.8 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/MyGame/OtherNameSpace/Unused.lua b/tests/MyGame/OtherNameSpace/Unused.lua index 0136e5bb48..faeefae5ed 100644 --- a/tests/MyGame/OtherNameSpace/Unused.lua +++ b/tests/MyGame/OtherNameSpace/Unused.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.3.3 + flatc version: 23.5.8 Declared by : //include_test/sub/include_test2.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/MyGame/OtherNameSpace/Unused.nim b/tests/MyGame/OtherNameSpace/Unused.nim index f1ab009dc3..876e424565 100644 --- a/tests/MyGame/OtherNameSpace/Unused.nim +++ b/tests/MyGame/OtherNameSpace/Unused.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.3.3 + flatc version: 23.5.8 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/Property.nim b/tests/Property.nim index fa78a7b1f4..a9340abceb 100644 --- a/tests/Property.nim +++ b/tests/Property.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.3.3 + flatc version: 23.5.8 Declared by : ]# diff --git a/tests/TableA.lua b/tests/TableA.lua index 8eebd25ae3..7472e9b472 100644 --- a/tests/TableA.lua +++ b/tests/TableA.lua @@ -3,7 +3,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.3.3 + flatc version: 23.5.8 Declared by : //include_test/include_test1.fbs Rooting type : MyGame.Example.Monster (//monster_test.fbs) diff --git a/tests/TableA.nim b/tests/TableA.nim index 4df6ec0b06..64860146e2 100644 --- a/tests/TableA.nim +++ b/tests/TableA.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.3.3 + flatc version: 23.5.8 Declared by : Rooting type : MyGame.Example.Monster () diff --git a/tests/TestMutatingBool.nim b/tests/TestMutatingBool.nim index 2ab320a288..22fb236111 100644 --- a/tests/TestMutatingBool.nim +++ b/tests/TestMutatingBool.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.3.3 + flatc version: 23.5.8 Declared by : ]# diff --git a/tests/alignment_test_generated.h b/tests/alignment_test_generated.h index 71421cacaf..8c5e5cad45 100644 --- a/tests/alignment_test_generated.h +++ b/tests/alignment_test_generated.h @@ -9,8 +9,8 @@ // Ensure the included flatbuffers.h is the same version as when this file was // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && - FLATBUFFERS_VERSION_MINOR == 3 && - FLATBUFFERS_VERSION_REVISION == 3, + FLATBUFFERS_VERSION_MINOR == 5 && + FLATBUFFERS_VERSION_REVISION == 8, "Non-compatible flatbuffers version included"); struct BadAlignmentSmall; diff --git a/tests/arrays_test_generated.h b/tests/arrays_test_generated.h index 3d137f8920..5b75a04091 100644 --- a/tests/arrays_test_generated.h +++ b/tests/arrays_test_generated.h @@ -9,8 +9,8 @@ // Ensure the included flatbuffers.h is the same version as when this file was // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && - FLATBUFFERS_VERSION_MINOR == 3 && - FLATBUFFERS_VERSION_REVISION == 3, + FLATBUFFERS_VERSION_MINOR == 5 && + FLATBUFFERS_VERSION_REVISION == 8, "Non-compatible flatbuffers version included"); namespace MyGame { diff --git a/tests/cpp17/generated_cpp17/monster_test_generated.h b/tests/cpp17/generated_cpp17/monster_test_generated.h index 1d593359fd..38ef1d2f3c 100644 --- a/tests/cpp17/generated_cpp17/monster_test_generated.h +++ b/tests/cpp17/generated_cpp17/monster_test_generated.h @@ -11,8 +11,8 @@ // Ensure the included flatbuffers.h is the same version as when this file was // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && - FLATBUFFERS_VERSION_MINOR == 3 && - FLATBUFFERS_VERSION_REVISION == 3, + FLATBUFFERS_VERSION_MINOR == 5 && + FLATBUFFERS_VERSION_REVISION == 8, "Non-compatible flatbuffers version included"); namespace MyGame { diff --git a/tests/cpp17/generated_cpp17/optional_scalars_generated.h b/tests/cpp17/generated_cpp17/optional_scalars_generated.h index 86d62fd93c..24b09e5489 100644 --- a/tests/cpp17/generated_cpp17/optional_scalars_generated.h +++ b/tests/cpp17/generated_cpp17/optional_scalars_generated.h @@ -9,8 +9,8 @@ // Ensure the included flatbuffers.h is the same version as when this file was // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && - FLATBUFFERS_VERSION_MINOR == 3 && - FLATBUFFERS_VERSION_REVISION == 3, + FLATBUFFERS_VERSION_MINOR == 5 && + FLATBUFFERS_VERSION_REVISION == 8, "Non-compatible flatbuffers version included"); namespace optional_scalars { diff --git a/tests/cpp17/generated_cpp17/union_vector_generated.h b/tests/cpp17/generated_cpp17/union_vector_generated.h index fe7dc72334..9a660059ab 100644 --- a/tests/cpp17/generated_cpp17/union_vector_generated.h +++ b/tests/cpp17/generated_cpp17/union_vector_generated.h @@ -9,8 +9,8 @@ // Ensure the included flatbuffers.h is the same version as when this file was // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && - FLATBUFFERS_VERSION_MINOR == 3 && - FLATBUFFERS_VERSION_REVISION == 3, + FLATBUFFERS_VERSION_MINOR == 5 && + FLATBUFFERS_VERSION_REVISION == 8, "Non-compatible flatbuffers version included"); struct Attacker; diff --git a/tests/evolution_test/evolution_v1_generated.h b/tests/evolution_test/evolution_v1_generated.h index e7470b7e89..5ae55abff0 100644 --- a/tests/evolution_test/evolution_v1_generated.h +++ b/tests/evolution_test/evolution_v1_generated.h @@ -9,8 +9,8 @@ // Ensure the included flatbuffers.h is the same version as when this file was // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && - FLATBUFFERS_VERSION_MINOR == 3 && - FLATBUFFERS_VERSION_REVISION == 3, + FLATBUFFERS_VERSION_MINOR == 5 && + FLATBUFFERS_VERSION_REVISION == 8, "Non-compatible flatbuffers version included"); namespace Evolution { diff --git a/tests/evolution_test/evolution_v2_generated.h b/tests/evolution_test/evolution_v2_generated.h index 259b2837c9..026e5a1c45 100644 --- a/tests/evolution_test/evolution_v2_generated.h +++ b/tests/evolution_test/evolution_v2_generated.h @@ -9,8 +9,8 @@ // Ensure the included flatbuffers.h is the same version as when this file was // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && - FLATBUFFERS_VERSION_MINOR == 3 && - FLATBUFFERS_VERSION_REVISION == 3, + FLATBUFFERS_VERSION_MINOR == 5 && + FLATBUFFERS_VERSION_REVISION == 8, "Non-compatible flatbuffers version included"); namespace Evolution { diff --git a/tests/key_field/key_field_sample_generated.h b/tests/key_field/key_field_sample_generated.h index 0ce5709b6e..86e5616b23 100644 --- a/tests/key_field/key_field_sample_generated.h +++ b/tests/key_field/key_field_sample_generated.h @@ -9,8 +9,8 @@ // Ensure the included flatbuffers.h is the same version as when this file was // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && - FLATBUFFERS_VERSION_MINOR == 3 && - FLATBUFFERS_VERSION_REVISION == 3, + FLATBUFFERS_VERSION_MINOR == 5 && + FLATBUFFERS_VERSION_REVISION == 8, "Non-compatible flatbuffers version included"); namespace keyfield { diff --git a/tests/monster_extra_generated.h b/tests/monster_extra_generated.h index ac8f61478c..79188d432e 100644 --- a/tests/monster_extra_generated.h +++ b/tests/monster_extra_generated.h @@ -9,8 +9,8 @@ // Ensure the included flatbuffers.h is the same version as when this file was // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && - FLATBUFFERS_VERSION_MINOR == 3 && - FLATBUFFERS_VERSION_REVISION == 3, + FLATBUFFERS_VERSION_MINOR == 5 && + FLATBUFFERS_VERSION_REVISION == 8, "Non-compatible flatbuffers version included"); namespace MyGame { diff --git a/tests/monster_test_bfbs_generated.h b/tests/monster_test_bfbs_generated.h index 4c08816261..1b55886242 100644 --- a/tests/monster_test_bfbs_generated.h +++ b/tests/monster_test_bfbs_generated.h @@ -9,8 +9,8 @@ // Ensure the included flatbuffers.h is the same version as when this file was // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && - FLATBUFFERS_VERSION_MINOR == 3 && - FLATBUFFERS_VERSION_REVISION == 3, + FLATBUFFERS_VERSION_MINOR == 5 && + FLATBUFFERS_VERSION_REVISION == 8, "Non-compatible flatbuffers version included"); namespace MyGame { diff --git a/tests/monster_test_generated.h b/tests/monster_test_generated.h index f7b8f4aca0..18b16cfa6b 100644 --- a/tests/monster_test_generated.h +++ b/tests/monster_test_generated.h @@ -11,8 +11,8 @@ // Ensure the included flatbuffers.h is the same version as when this file was // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && - FLATBUFFERS_VERSION_MINOR == 3 && - FLATBUFFERS_VERSION_REVISION == 3, + FLATBUFFERS_VERSION_MINOR == 5 && + FLATBUFFERS_VERSION_REVISION == 8, "Non-compatible flatbuffers version included"); // For access to the binary schema that produced this file. diff --git a/tests/monster_test_suffix/ext_only/monster_test_generated.hpp b/tests/monster_test_suffix/ext_only/monster_test_generated.hpp index 9c64fbbc1d..168de943c2 100644 --- a/tests/monster_test_suffix/ext_only/monster_test_generated.hpp +++ b/tests/monster_test_suffix/ext_only/monster_test_generated.hpp @@ -11,8 +11,8 @@ // Ensure the included flatbuffers.h is the same version as when this file was // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && - FLATBUFFERS_VERSION_MINOR == 3 && - FLATBUFFERS_VERSION_REVISION == 3, + FLATBUFFERS_VERSION_MINOR == 5 && + FLATBUFFERS_VERSION_REVISION == 8, "Non-compatible flatbuffers version included"); namespace MyGame { diff --git a/tests/monster_test_suffix/filesuffix_only/monster_test_suffix.h b/tests/monster_test_suffix/filesuffix_only/monster_test_suffix.h index 9c64fbbc1d..168de943c2 100644 --- a/tests/monster_test_suffix/filesuffix_only/monster_test_suffix.h +++ b/tests/monster_test_suffix/filesuffix_only/monster_test_suffix.h @@ -11,8 +11,8 @@ // Ensure the included flatbuffers.h is the same version as when this file was // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && - FLATBUFFERS_VERSION_MINOR == 3 && - FLATBUFFERS_VERSION_REVISION == 3, + FLATBUFFERS_VERSION_MINOR == 5 && + FLATBUFFERS_VERSION_REVISION == 8, "Non-compatible flatbuffers version included"); namespace MyGame { diff --git a/tests/monster_test_suffix/monster_test_suffix.hpp b/tests/monster_test_suffix/monster_test_suffix.hpp index 9c64fbbc1d..168de943c2 100644 --- a/tests/monster_test_suffix/monster_test_suffix.hpp +++ b/tests/monster_test_suffix/monster_test_suffix.hpp @@ -11,8 +11,8 @@ // Ensure the included flatbuffers.h is the same version as when this file was // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && - FLATBUFFERS_VERSION_MINOR == 3 && - FLATBUFFERS_VERSION_REVISION == 3, + FLATBUFFERS_VERSION_MINOR == 5 && + FLATBUFFERS_VERSION_REVISION == 8, "Non-compatible flatbuffers version included"); namespace MyGame { diff --git a/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.cs b/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.cs index bfb8a8a28c..3081b45281 100644 --- a/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.cs +++ b/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.cs @@ -13,7 +13,7 @@ public struct TableInNestedNS : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_3_3(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_5_8(); } public static TableInNestedNS GetRootAsTableInNestedNS(ByteBuffer _bb) { return GetRootAsTableInNestedNS(_bb, new TableInNestedNS()); } public static TableInNestedNS GetRootAsTableInNestedNS(ByteBuffer _bb, TableInNestedNS obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.java b/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.java index e5fb67a453..5af7771288 100644 --- a/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.java +++ b/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.java @@ -9,7 +9,7 @@ @SuppressWarnings("unused") public final class TableInNestedNS extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_23_3_3(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_5_8(); } public static TableInNestedNS getRootAsTableInNestedNS(ByteBuffer _bb) { return getRootAsTableInNestedNS(_bb, new TableInNestedNS()); } public static TableInNestedNS getRootAsTableInNestedNS(ByteBuffer _bb, TableInNestedNS obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.kt b/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.kt index 314d902fd7..4d06ec7120 100644 --- a/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.kt +++ b/tests/namespace_test/NamespaceA/NamespaceB/TableInNestedNS.kt @@ -44,7 +44,7 @@ class TableInNestedNS : Table() { } } companion object { - fun validateVersion() = Constants.FLATBUFFERS_23_3_3() + fun validateVersion() = Constants.FLATBUFFERS_23_5_8() fun getRootAsTableInNestedNS(_bb: ByteBuffer): TableInNestedNS = getRootAsTableInNestedNS(_bb, TableInNestedNS()) fun getRootAsTableInNestedNS(_bb: ByteBuffer, obj: TableInNestedNS): TableInNestedNS { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/namespace_test/NamespaceA/SecondTableInA.cs b/tests/namespace_test/NamespaceA/SecondTableInA.cs index b6ea91a9da..d7579b42f9 100644 --- a/tests/namespace_test/NamespaceA/SecondTableInA.cs +++ b/tests/namespace_test/NamespaceA/SecondTableInA.cs @@ -13,7 +13,7 @@ public struct SecondTableInA : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_3_3(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_5_8(); } public static SecondTableInA GetRootAsSecondTableInA(ByteBuffer _bb) { return GetRootAsSecondTableInA(_bb, new SecondTableInA()); } public static SecondTableInA GetRootAsSecondTableInA(ByteBuffer _bb, SecondTableInA obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/namespace_test/NamespaceA/SecondTableInA.java b/tests/namespace_test/NamespaceA/SecondTableInA.java index 7436ba98aa..02281b96b5 100644 --- a/tests/namespace_test/NamespaceA/SecondTableInA.java +++ b/tests/namespace_test/NamespaceA/SecondTableInA.java @@ -9,7 +9,7 @@ @SuppressWarnings("unused") public final class SecondTableInA extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_23_3_3(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_5_8(); } public static SecondTableInA getRootAsSecondTableInA(ByteBuffer _bb) { return getRootAsSecondTableInA(_bb, new SecondTableInA()); } public static SecondTableInA getRootAsSecondTableInA(ByteBuffer _bb, SecondTableInA obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/tests/namespace_test/NamespaceA/SecondTableInA.kt b/tests/namespace_test/NamespaceA/SecondTableInA.kt index db5769e92a..5c97201706 100644 --- a/tests/namespace_test/NamespaceA/SecondTableInA.kt +++ b/tests/namespace_test/NamespaceA/SecondTableInA.kt @@ -39,7 +39,7 @@ class SecondTableInA : Table() { } } companion object { - fun validateVersion() = Constants.FLATBUFFERS_23_3_3() + fun validateVersion() = Constants.FLATBUFFERS_23_5_8() fun getRootAsSecondTableInA(_bb: ByteBuffer): SecondTableInA = getRootAsSecondTableInA(_bb, SecondTableInA()) fun getRootAsSecondTableInA(_bb: ByteBuffer, obj: SecondTableInA): SecondTableInA { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/namespace_test/NamespaceA/TableInFirstNS.cs b/tests/namespace_test/NamespaceA/TableInFirstNS.cs index 202983ab35..804d6a5013 100644 --- a/tests/namespace_test/NamespaceA/TableInFirstNS.cs +++ b/tests/namespace_test/NamespaceA/TableInFirstNS.cs @@ -13,7 +13,7 @@ public struct TableInFirstNS : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_3_3(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_5_8(); } public static TableInFirstNS GetRootAsTableInFirstNS(ByteBuffer _bb) { return GetRootAsTableInFirstNS(_bb, new TableInFirstNS()); } public static TableInFirstNS GetRootAsTableInFirstNS(ByteBuffer _bb, TableInFirstNS obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/namespace_test/NamespaceA/TableInFirstNS.java b/tests/namespace_test/NamespaceA/TableInFirstNS.java index 9804a1e76e..327383b00b 100644 --- a/tests/namespace_test/NamespaceA/TableInFirstNS.java +++ b/tests/namespace_test/NamespaceA/TableInFirstNS.java @@ -9,7 +9,7 @@ @SuppressWarnings("unused") public final class TableInFirstNS extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_23_3_3(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_5_8(); } public static TableInFirstNS getRootAsTableInFirstNS(ByteBuffer _bb) { return getRootAsTableInFirstNS(_bb, new TableInFirstNS()); } public static TableInFirstNS getRootAsTableInFirstNS(ByteBuffer _bb, TableInFirstNS obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/tests/namespace_test/NamespaceA/TableInFirstNS.kt b/tests/namespace_test/NamespaceA/TableInFirstNS.kt index 587eb0d4a6..e3990e7cf7 100644 --- a/tests/namespace_test/NamespaceA/TableInFirstNS.kt +++ b/tests/namespace_test/NamespaceA/TableInFirstNS.kt @@ -79,7 +79,7 @@ class TableInFirstNS : Table() { } } companion object { - fun validateVersion() = Constants.FLATBUFFERS_23_3_3() + fun validateVersion() = Constants.FLATBUFFERS_23_5_8() fun getRootAsTableInFirstNS(_bb: ByteBuffer): TableInFirstNS = getRootAsTableInFirstNS(_bb, TableInFirstNS()) fun getRootAsTableInFirstNS(_bb: ByteBuffer, obj: TableInFirstNS): TableInFirstNS { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/namespace_test/NamespaceC/TableInC.cs b/tests/namespace_test/NamespaceC/TableInC.cs index 5cc60d0450..9d0219bc28 100644 --- a/tests/namespace_test/NamespaceC/TableInC.cs +++ b/tests/namespace_test/NamespaceC/TableInC.cs @@ -13,7 +13,7 @@ public struct TableInC : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_3_3(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_5_8(); } public static TableInC GetRootAsTableInC(ByteBuffer _bb) { return GetRootAsTableInC(_bb, new TableInC()); } public static TableInC GetRootAsTableInC(ByteBuffer _bb, TableInC obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/namespace_test/NamespaceC/TableInC.java b/tests/namespace_test/NamespaceC/TableInC.java index 3b01069831..0c4e4571f0 100644 --- a/tests/namespace_test/NamespaceC/TableInC.java +++ b/tests/namespace_test/NamespaceC/TableInC.java @@ -9,7 +9,7 @@ @SuppressWarnings("unused") public final class TableInC extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_23_3_3(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_5_8(); } public static TableInC getRootAsTableInC(ByteBuffer _bb) { return getRootAsTableInC(_bb, new TableInC()); } public static TableInC getRootAsTableInC(ByteBuffer _bb, TableInC obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/tests/namespace_test/NamespaceC/TableInC.kt b/tests/namespace_test/NamespaceC/TableInC.kt index 390396094d..de7184ab7c 100644 --- a/tests/namespace_test/NamespaceC/TableInC.kt +++ b/tests/namespace_test/NamespaceC/TableInC.kt @@ -48,7 +48,7 @@ class TableInC : Table() { } } companion object { - fun validateVersion() = Constants.FLATBUFFERS_23_3_3() + fun validateVersion() = Constants.FLATBUFFERS_23_5_8() fun getRootAsTableInC(_bb: ByteBuffer): TableInC = getRootAsTableInC(_bb, TableInC()) fun getRootAsTableInC(_bb: ByteBuffer, obj: TableInC): TableInC { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/namespace_test/namespace_test1_generated.h b/tests/namespace_test/namespace_test1_generated.h index 78ddd126af..f4dc7f7ecf 100644 --- a/tests/namespace_test/namespace_test1_generated.h +++ b/tests/namespace_test/namespace_test1_generated.h @@ -9,8 +9,8 @@ // Ensure the included flatbuffers.h is the same version as when this file was // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && - FLATBUFFERS_VERSION_MINOR == 3 && - FLATBUFFERS_VERSION_REVISION == 3, + FLATBUFFERS_VERSION_MINOR == 5 && + FLATBUFFERS_VERSION_REVISION == 8, "Non-compatible flatbuffers version included"); namespace NamespaceA { diff --git a/tests/namespace_test/namespace_test2_generated.h b/tests/namespace_test/namespace_test2_generated.h index d59355df2d..50d37140a4 100644 --- a/tests/namespace_test/namespace_test2_generated.h +++ b/tests/namespace_test/namespace_test2_generated.h @@ -9,8 +9,8 @@ // Ensure the included flatbuffers.h is the same version as when this file was // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && - FLATBUFFERS_VERSION_MINOR == 3 && - FLATBUFFERS_VERSION_REVISION == 3, + FLATBUFFERS_VERSION_MINOR == 5 && + FLATBUFFERS_VERSION_REVISION == 8, "Non-compatible flatbuffers version included"); namespace NamespaceA { diff --git a/tests/native_inline_table_test_generated.h b/tests/native_inline_table_test_generated.h index 7c025a695b..2092ac871c 100644 --- a/tests/native_inline_table_test_generated.h +++ b/tests/native_inline_table_test_generated.h @@ -9,8 +9,8 @@ // Ensure the included flatbuffers.h is the same version as when this file was // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && - FLATBUFFERS_VERSION_MINOR == 3 && - FLATBUFFERS_VERSION_REVISION == 3, + FLATBUFFERS_VERSION_MINOR == 5 && + FLATBUFFERS_VERSION_REVISION == 8, "Non-compatible flatbuffers version included"); struct NativeInlineTable; diff --git a/tests/native_type_test_generated.h b/tests/native_type_test_generated.h index 6c3534be2e..773375fced 100644 --- a/tests/native_type_test_generated.h +++ b/tests/native_type_test_generated.h @@ -9,8 +9,8 @@ // Ensure the included flatbuffers.h is the same version as when this file was // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && - FLATBUFFERS_VERSION_MINOR == 3 && - FLATBUFFERS_VERSION_REVISION == 3, + FLATBUFFERS_VERSION_MINOR == 5 && + FLATBUFFERS_VERSION_REVISION == 8, "Non-compatible flatbuffers version included"); #include "native_type_test_impl.h" diff --git a/tests/nested_namespace_test/nested_namespace_test3_generated.cs b/tests/nested_namespace_test/nested_namespace_test3_generated.cs index 6927bc390c..c22f83bf23 100644 --- a/tests/nested_namespace_test/nested_namespace_test3_generated.cs +++ b/tests/nested_namespace_test/nested_namespace_test3_generated.cs @@ -13,7 +13,7 @@ public struct ColorTestTable : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_3_3(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_5_8(); } public static ColorTestTable GetRootAsColorTestTable(ByteBuffer _bb) { return GetRootAsColorTestTable(_bb, new ColorTestTable()); } public static ColorTestTable GetRootAsColorTestTable(ByteBuffer _bb, ColorTestTable obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/optional_scalars/OptionalByte.nim b/tests/optional_scalars/OptionalByte.nim index b58a0ee4b6..bb92f08053 100644 --- a/tests/optional_scalars/OptionalByte.nim +++ b/tests/optional_scalars/OptionalByte.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.3.3 + flatc version: 23.5.8 Declared by : Rooting type : optional_scalars.ScalarStuff () diff --git a/tests/optional_scalars/ScalarStuff.cs b/tests/optional_scalars/ScalarStuff.cs index 74bfb61ff2..531ec806b3 100644 --- a/tests/optional_scalars/ScalarStuff.cs +++ b/tests/optional_scalars/ScalarStuff.cs @@ -13,7 +13,7 @@ public struct ScalarStuff : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_3_3(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_5_8(); } public static ScalarStuff GetRootAsScalarStuff(ByteBuffer _bb) { return GetRootAsScalarStuff(_bb, new ScalarStuff()); } public static ScalarStuff GetRootAsScalarStuff(ByteBuffer _bb, ScalarStuff obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public static bool ScalarStuffBufferHasIdentifier(ByteBuffer _bb) { return Table.__has_identifier(_bb, "NULL"); } diff --git a/tests/optional_scalars/ScalarStuff.java b/tests/optional_scalars/ScalarStuff.java index b8332d3049..3a97cd6d09 100644 --- a/tests/optional_scalars/ScalarStuff.java +++ b/tests/optional_scalars/ScalarStuff.java @@ -21,7 +21,7 @@ @SuppressWarnings("unused") public final class ScalarStuff extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_23_3_3(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_5_8(); } public static ScalarStuff getRootAsScalarStuff(ByteBuffer _bb) { return getRootAsScalarStuff(_bb, new ScalarStuff()); } public static ScalarStuff getRootAsScalarStuff(ByteBuffer _bb, ScalarStuff obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public static boolean ScalarStuffBufferHasIdentifier(ByteBuffer _bb) { return __has_identifier(_bb, "NULL"); } diff --git a/tests/optional_scalars/ScalarStuff.kt b/tests/optional_scalars/ScalarStuff.kt index 76bbb7275a..8e520ad1f6 100644 --- a/tests/optional_scalars/ScalarStuff.kt +++ b/tests/optional_scalars/ScalarStuff.kt @@ -209,7 +209,7 @@ class ScalarStuff : Table() { return if(o != 0) bb.get(o + bb_pos) else 1 } companion object { - fun validateVersion() = Constants.FLATBUFFERS_23_3_3() + fun validateVersion() = Constants.FLATBUFFERS_23_5_8() fun getRootAsScalarStuff(_bb: ByteBuffer): ScalarStuff = getRootAsScalarStuff(_bb, ScalarStuff()) fun getRootAsScalarStuff(_bb: ByteBuffer, obj: ScalarStuff): ScalarStuff { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/optional_scalars/ScalarStuff.nim b/tests/optional_scalars/ScalarStuff.nim index 995a080667..c7ebc9656e 100644 --- a/tests/optional_scalars/ScalarStuff.nim +++ b/tests/optional_scalars/ScalarStuff.nim @@ -2,7 +2,7 @@ Automatically generated by the FlatBuffers compiler, do not modify. Or modify. I'm a message, not a cop. - flatc version: 23.3.3 + flatc version: 23.5.8 Declared by : Rooting type : optional_scalars.ScalarStuff () diff --git a/tests/optional_scalars_generated.h b/tests/optional_scalars_generated.h index 3cfc19c35a..f22ac5e042 100644 --- a/tests/optional_scalars_generated.h +++ b/tests/optional_scalars_generated.h @@ -9,8 +9,8 @@ // Ensure the included flatbuffers.h is the same version as when this file was // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && - FLATBUFFERS_VERSION_MINOR == 3 && - FLATBUFFERS_VERSION_REVISION == 3, + FLATBUFFERS_VERSION_MINOR == 5 && + FLATBUFFERS_VERSION_REVISION == 8, "Non-compatible flatbuffers version included"); namespace optional_scalars { diff --git a/tests/swift/Wasm.tests/Tests/FlatBuffers.Test.Swift.WasmTests/monster_test_generated.swift b/tests/swift/Wasm.tests/Tests/FlatBuffers.Test.Swift.WasmTests/monster_test_generated.swift index a295a07b84..c21f15b45b 100644 --- a/tests/swift/Wasm.tests/Tests/FlatBuffers.Test.Swift.WasmTests/monster_test_generated.swift +++ b/tests/swift/Wasm.tests/Tests/FlatBuffers.Test.Swift.WasmTests/monster_test_generated.swift @@ -237,7 +237,7 @@ public struct MyGame_Example_AnyAmbiguousAliasesUnion { } public struct MyGame_Example_Test: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject { - static func validateVersion() { FlatBuffersVersion_23_3_3() } + static func validateVersion() { FlatBuffersVersion_23_5_8() } private var _a: Int16 private var _b: Int8 @@ -291,7 +291,7 @@ extension MyGame_Example_Test: Encodable { public struct MyGame_Example_Test_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_23_3_3() } + static func validateVersion() { FlatBuffersVersion_23_5_8() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -318,7 +318,7 @@ public struct MyGame_Example_Test_Mutable: FlatBufferObject { public struct MyGame_Example_Vec3: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject { - static func validateVersion() { FlatBuffersVersion_23_3_3() } + static func validateVersion() { FlatBuffersVersion_23_5_8() } private var _x: Float32 private var _y: Float32 @@ -413,7 +413,7 @@ extension MyGame_Example_Vec3: Encodable { public struct MyGame_Example_Vec3_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_23_3_3() } + static func validateVersion() { FlatBuffersVersion_23_5_8() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -447,7 +447,7 @@ public struct MyGame_Example_Vec3_Mutable: FlatBufferObject { public struct MyGame_Example_Ability: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject { - static func validateVersion() { FlatBuffersVersion_23_3_3() } + static func validateVersion() { FlatBuffersVersion_23_5_8() } private var _id: UInt32 private var _distance: UInt32 @@ -500,7 +500,7 @@ extension MyGame_Example_Ability: Encodable { public struct MyGame_Example_Ability_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_23_3_3() } + static func validateVersion() { FlatBuffersVersion_23_5_8() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -527,7 +527,7 @@ public struct MyGame_Example_Ability_Mutable: FlatBufferObject { public struct MyGame_Example_StructOfStructs: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject { - static func validateVersion() { FlatBuffersVersion_23_3_3() } + static func validateVersion() { FlatBuffersVersion_23_5_8() } private var _a: MyGame_Example_Ability private var _b: MyGame_Example_Test @@ -587,7 +587,7 @@ extension MyGame_Example_StructOfStructs: Encodable { public struct MyGame_Example_StructOfStructs_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_23_3_3() } + static func validateVersion() { FlatBuffersVersion_23_5_8() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -613,7 +613,7 @@ public struct MyGame_Example_StructOfStructs_Mutable: FlatBufferObject { public struct MyGame_Example_StructOfStructsOfStructs: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject { - static func validateVersion() { FlatBuffersVersion_23_3_3() } + static func validateVersion() { FlatBuffersVersion_23_5_8() } private var _a: MyGame_Example_StructOfStructs @@ -655,7 +655,7 @@ extension MyGame_Example_StructOfStructsOfStructs: Encodable { public struct MyGame_Example_StructOfStructsOfStructs_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_23_3_3() } + static func validateVersion() { FlatBuffersVersion_23_5_8() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -679,7 +679,7 @@ public struct MyGame_Example_StructOfStructsOfStructs_Mutable: FlatBufferObject public struct MyGame_InParentNamespace: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_23_3_3() } + static func validateVersion() { FlatBuffersVersion_23_5_8() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -731,7 +731,7 @@ public class MyGame_InParentNamespaceT: NativeObject { } public struct MyGame_Example2_Monster: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_23_3_3() } + static func validateVersion() { FlatBuffersVersion_23_5_8() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -783,7 +783,7 @@ public class MyGame_Example2_MonsterT: NativeObject { } internal struct MyGame_Example_TestSimpleTableWithEnum: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_23_3_3() } + static func validateVersion() { FlatBuffersVersion_23_5_8() } internal var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -864,7 +864,7 @@ internal class MyGame_Example_TestSimpleTableWithEnumT: NativeObject { } public struct MyGame_Example_Stat: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_23_3_3() } + static func validateVersion() { FlatBuffersVersion_23_5_8() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -1003,7 +1003,7 @@ public class MyGame_Example_StatT: NativeObject { } public struct MyGame_Example_Referrable: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_23_3_3() } + static func validateVersion() { FlatBuffersVersion_23_5_8() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -1109,7 +1109,7 @@ public class MyGame_Example_ReferrableT: NativeObject { /// an example documentation comment: "monster object" public struct MyGame_Example_Monster: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_23_3_3() } + static func validateVersion() { FlatBuffersVersion_23_5_8() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -2405,7 +2405,7 @@ public class MyGame_Example_MonsterT: NativeObject { } public struct MyGame_Example_TypeAliases: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_23_3_3() } + static func validateVersion() { FlatBuffersVersion_23_5_8() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table diff --git a/tests/swift/tests/CodeGenerationTests/test_import_generated.swift b/tests/swift/tests/CodeGenerationTests/test_import_generated.swift index 67a31e6b34..3a46a360a4 100644 --- a/tests/swift/tests/CodeGenerationTests/test_import_generated.swift +++ b/tests/swift/tests/CodeGenerationTests/test_import_generated.swift @@ -6,7 +6,7 @@ internal struct Message: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_23_3_3() } + static func validateVersion() { FlatBuffersVersion_23_5_8() } internal var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table diff --git a/tests/swift/tests/CodeGenerationTests/test_no_include_generated.swift b/tests/swift/tests/CodeGenerationTests/test_no_include_generated.swift index 5e429cb96c..1905de180a 100644 --- a/tests/swift/tests/CodeGenerationTests/test_no_include_generated.swift +++ b/tests/swift/tests/CodeGenerationTests/test_no_include_generated.swift @@ -4,7 +4,7 @@ public struct BytesCount: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject { - static func validateVersion() { FlatBuffersVersion_23_3_3() } + static func validateVersion() { FlatBuffersVersion_23_5_8() } private var _x: Int64 @@ -47,7 +47,7 @@ extension BytesCount: Encodable { public struct BytesCount_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_23_3_3() } + static func validateVersion() { FlatBuffersVersion_23_5_8() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -72,7 +72,7 @@ public struct BytesCount_Mutable: FlatBufferObject { public struct InternalMessage: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_23_3_3() } + static func validateVersion() { FlatBuffersVersion_23_5_8() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -155,7 +155,7 @@ public class InternalMessageT: NativeObject { } public struct Message: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_23_3_3() } + static func validateVersion() { FlatBuffersVersion_23_5_8() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table diff --git a/tests/swift/tests/Sources/SwiftFlatBuffers/fuzzer_generated.swift b/tests/swift/tests/Sources/SwiftFlatBuffers/fuzzer_generated.swift index 3ca2b15ce8..ebdbe6cd6e 100644 --- a/tests/swift/tests/Sources/SwiftFlatBuffers/fuzzer_generated.swift +++ b/tests/swift/tests/Sources/SwiftFlatBuffers/fuzzer_generated.swift @@ -32,7 +32,7 @@ extension Color: Encodable { public struct Test: NativeStruct, Verifiable, FlatbuffersInitializable { - static func validateVersion() { FlatBuffersVersion_23_3_3() } + static func validateVersion() { FlatBuffersVersion_23_5_8() } private var _a: Int16 private var _b: Int8 @@ -81,7 +81,7 @@ extension Test: Encodable { public struct Test_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_23_3_3() } + static func validateVersion() { FlatBuffersVersion_23_5_8() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -93,7 +93,7 @@ public struct Test_Mutable: FlatBufferObject { public struct Vec3: NativeStruct, Verifiable, FlatbuffersInitializable { - static func validateVersion() { FlatBuffersVersion_23_3_3() } + static func validateVersion() { FlatBuffersVersion_23_5_8() } private var _x: Float32 private var _y: Float32 @@ -178,7 +178,7 @@ extension Vec3: Encodable { public struct Vec3_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_23_3_3() } + static func validateVersion() { FlatBuffersVersion_23_5_8() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -195,7 +195,7 @@ public struct Vec3_Mutable: FlatBufferObject { /// an example documentation comment: "monster object" public struct Monster: FlatBufferObject, Verifiable { - static func validateVersion() { FlatBuffersVersion_23_3_3() } + static func validateVersion() { FlatBuffersVersion_23_5_8() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table diff --git a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/MutatingBool_generated.swift b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/MutatingBool_generated.swift index 48a73a5cb2..e81aec16fd 100644 --- a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/MutatingBool_generated.swift +++ b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/MutatingBool_generated.swift @@ -6,7 +6,7 @@ import FlatBuffers public struct Property: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject { - static func validateVersion() { FlatBuffersVersion_23_3_3() } + static func validateVersion() { FlatBuffersVersion_23_5_8() } private var _property: Bool @@ -49,7 +49,7 @@ extension Property: Encodable { public struct Property_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_23_3_3() } + static func validateVersion() { FlatBuffersVersion_23_5_8() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -74,7 +74,7 @@ public struct Property_Mutable: FlatBufferObject { public struct TestMutatingBool: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_23_3_3() } + static func validateVersion() { FlatBuffersVersion_23_5_8() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table diff --git a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/monster_test_generated.swift b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/monster_test_generated.swift index a295a07b84..c21f15b45b 100644 --- a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/monster_test_generated.swift +++ b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/monster_test_generated.swift @@ -237,7 +237,7 @@ public struct MyGame_Example_AnyAmbiguousAliasesUnion { } public struct MyGame_Example_Test: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject { - static func validateVersion() { FlatBuffersVersion_23_3_3() } + static func validateVersion() { FlatBuffersVersion_23_5_8() } private var _a: Int16 private var _b: Int8 @@ -291,7 +291,7 @@ extension MyGame_Example_Test: Encodable { public struct MyGame_Example_Test_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_23_3_3() } + static func validateVersion() { FlatBuffersVersion_23_5_8() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -318,7 +318,7 @@ public struct MyGame_Example_Test_Mutable: FlatBufferObject { public struct MyGame_Example_Vec3: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject { - static func validateVersion() { FlatBuffersVersion_23_3_3() } + static func validateVersion() { FlatBuffersVersion_23_5_8() } private var _x: Float32 private var _y: Float32 @@ -413,7 +413,7 @@ extension MyGame_Example_Vec3: Encodable { public struct MyGame_Example_Vec3_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_23_3_3() } + static func validateVersion() { FlatBuffersVersion_23_5_8() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -447,7 +447,7 @@ public struct MyGame_Example_Vec3_Mutable: FlatBufferObject { public struct MyGame_Example_Ability: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject { - static func validateVersion() { FlatBuffersVersion_23_3_3() } + static func validateVersion() { FlatBuffersVersion_23_5_8() } private var _id: UInt32 private var _distance: UInt32 @@ -500,7 +500,7 @@ extension MyGame_Example_Ability: Encodable { public struct MyGame_Example_Ability_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_23_3_3() } + static func validateVersion() { FlatBuffersVersion_23_5_8() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -527,7 +527,7 @@ public struct MyGame_Example_Ability_Mutable: FlatBufferObject { public struct MyGame_Example_StructOfStructs: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject { - static func validateVersion() { FlatBuffersVersion_23_3_3() } + static func validateVersion() { FlatBuffersVersion_23_5_8() } private var _a: MyGame_Example_Ability private var _b: MyGame_Example_Test @@ -587,7 +587,7 @@ extension MyGame_Example_StructOfStructs: Encodable { public struct MyGame_Example_StructOfStructs_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_23_3_3() } + static func validateVersion() { FlatBuffersVersion_23_5_8() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -613,7 +613,7 @@ public struct MyGame_Example_StructOfStructs_Mutable: FlatBufferObject { public struct MyGame_Example_StructOfStructsOfStructs: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject { - static func validateVersion() { FlatBuffersVersion_23_3_3() } + static func validateVersion() { FlatBuffersVersion_23_5_8() } private var _a: MyGame_Example_StructOfStructs @@ -655,7 +655,7 @@ extension MyGame_Example_StructOfStructsOfStructs: Encodable { public struct MyGame_Example_StructOfStructsOfStructs_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_23_3_3() } + static func validateVersion() { FlatBuffersVersion_23_5_8() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -679,7 +679,7 @@ public struct MyGame_Example_StructOfStructsOfStructs_Mutable: FlatBufferObject public struct MyGame_InParentNamespace: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_23_3_3() } + static func validateVersion() { FlatBuffersVersion_23_5_8() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -731,7 +731,7 @@ public class MyGame_InParentNamespaceT: NativeObject { } public struct MyGame_Example2_Monster: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_23_3_3() } + static func validateVersion() { FlatBuffersVersion_23_5_8() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -783,7 +783,7 @@ public class MyGame_Example2_MonsterT: NativeObject { } internal struct MyGame_Example_TestSimpleTableWithEnum: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_23_3_3() } + static func validateVersion() { FlatBuffersVersion_23_5_8() } internal var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -864,7 +864,7 @@ internal class MyGame_Example_TestSimpleTableWithEnumT: NativeObject { } public struct MyGame_Example_Stat: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_23_3_3() } + static func validateVersion() { FlatBuffersVersion_23_5_8() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -1003,7 +1003,7 @@ public class MyGame_Example_StatT: NativeObject { } public struct MyGame_Example_Referrable: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_23_3_3() } + static func validateVersion() { FlatBuffersVersion_23_5_8() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -1109,7 +1109,7 @@ public class MyGame_Example_ReferrableT: NativeObject { /// an example documentation comment: "monster object" public struct MyGame_Example_Monster: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_23_3_3() } + static func validateVersion() { FlatBuffersVersion_23_5_8() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -2405,7 +2405,7 @@ public class MyGame_Example_MonsterT: NativeObject { } public struct MyGame_Example_TypeAliases: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_23_3_3() } + static func validateVersion() { FlatBuffersVersion_23_5_8() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table diff --git a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/more_defaults_generated.swift b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/more_defaults_generated.swift index ec37924f04..7cf241846f 100644 --- a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/more_defaults_generated.swift +++ b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/more_defaults_generated.swift @@ -29,7 +29,7 @@ extension ABC: Encodable { public struct MoreDefaults: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_23_3_3() } + static func validateVersion() { FlatBuffersVersion_23_5_8() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table diff --git a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/nan_inf_test_generated.swift b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/nan_inf_test_generated.swift index 2285c651d8..02515eede0 100644 --- a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/nan_inf_test_generated.swift +++ b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/nan_inf_test_generated.swift @@ -6,7 +6,7 @@ import FlatBuffers public struct Swift_Tests_NanInfTable: FlatBufferObject, Verifiable { - static func validateVersion() { FlatBuffersVersion_23_3_3() } + static func validateVersion() { FlatBuffersVersion_23_5_8() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table diff --git a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/optional_scalars_generated.swift b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/optional_scalars_generated.swift index 8758b1ef3d..133de88388 100644 --- a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/optional_scalars_generated.swift +++ b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/optional_scalars_generated.swift @@ -29,7 +29,7 @@ extension optional_scalars_OptionalByte: Encodable { public struct optional_scalars_ScalarStuff: FlatBufferObject, Verifiable { - static func validateVersion() { FlatBuffersVersion_23_3_3() } + static func validateVersion() { FlatBuffersVersion_23_5_8() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table diff --git a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/union_vector_generated.swift b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/union_vector_generated.swift index cfdc1615de..c396ef1ffd 100644 --- a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/union_vector_generated.swift +++ b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/union_vector_generated.swift @@ -120,7 +120,7 @@ public struct GadgetUnion { } public struct Rapunzel: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject { - static func validateVersion() { FlatBuffersVersion_23_3_3() } + static func validateVersion() { FlatBuffersVersion_23_5_8() } private var _hairLength: Int32 @@ -163,7 +163,7 @@ extension Rapunzel: Encodable { public struct Rapunzel_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_23_3_3() } + static func validateVersion() { FlatBuffersVersion_23_5_8() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -188,7 +188,7 @@ public struct Rapunzel_Mutable: FlatBufferObject { public struct BookReader: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject { - static func validateVersion() { FlatBuffersVersion_23_3_3() } + static func validateVersion() { FlatBuffersVersion_23_5_8() } private var _booksRead: Int32 @@ -231,7 +231,7 @@ extension BookReader: Encodable { public struct BookReader_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_23_3_3() } + static func validateVersion() { FlatBuffersVersion_23_5_8() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -256,7 +256,7 @@ public struct BookReader_Mutable: FlatBufferObject { public struct FallingTub: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject { - static func validateVersion() { FlatBuffersVersion_23_3_3() } + static func validateVersion() { FlatBuffersVersion_23_5_8() } private var _weight: Int32 @@ -299,7 +299,7 @@ extension FallingTub: Encodable { public struct FallingTub_Mutable: FlatBufferObject { - static func validateVersion() { FlatBuffersVersion_23_3_3() } + static func validateVersion() { FlatBuffersVersion_23_5_8() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct @@ -324,7 +324,7 @@ public struct FallingTub_Mutable: FlatBufferObject { public struct Attacker: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_23_3_3() } + static func validateVersion() { FlatBuffersVersion_23_5_8() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -405,7 +405,7 @@ public class AttackerT: NativeObject { } public struct HandFan: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_23_3_3() } + static func validateVersion() { FlatBuffersVersion_23_5_8() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table @@ -486,7 +486,7 @@ public class HandFanT: NativeObject { } public struct Movie: FlatBufferObject, Verifiable, ObjectAPIPacker { - static func validateVersion() { FlatBuffersVersion_23_3_3() } + static func validateVersion() { FlatBuffersVersion_23_5_8() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table diff --git a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/vector_has_test_generated.swift b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/vector_has_test_generated.swift index 86b2a59f1a..c78e3cc8d4 100644 --- a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/vector_has_test_generated.swift +++ b/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/vector_has_test_generated.swift @@ -6,7 +6,7 @@ import FlatBuffers public struct Swift_Tests_Vectors: FlatBufferObject, Verifiable { - static func validateVersion() { FlatBuffersVersion_23_3_3() } + static func validateVersion() { FlatBuffersVersion_23_5_8() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table diff --git a/tests/type_field_collsion/Collision.cs b/tests/type_field_collsion/Collision.cs index c1a877a15a..8bb48bb9f8 100644 --- a/tests/type_field_collsion/Collision.cs +++ b/tests/type_field_collsion/Collision.cs @@ -13,7 +13,7 @@ public struct Collision : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_3_3(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_5_8(); } public static Collision GetRootAsCollision(ByteBuffer _bb) { return GetRootAsCollision(_bb, new Collision()); } public static Collision GetRootAsCollision(ByteBuffer _bb, Collision obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public static bool VerifyCollision(ByteBuffer _bb) {Google.FlatBuffers.Verifier verifier = new Google.FlatBuffers.Verifier(_bb); return verifier.VerifyBuffer("", false, CollisionVerify.Verify); } diff --git a/tests/union_value_collsion/union_value_collision_generated.cs b/tests/union_value_collsion/union_value_collision_generated.cs index 6dc1b4061e..81df7b6ad5 100644 --- a/tests/union_value_collsion/union_value_collision_generated.cs +++ b/tests/union_value_collsion/union_value_collision_generated.cs @@ -189,7 +189,7 @@ public struct IntValue : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_3_3(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_5_8(); } public static IntValue GetRootAsIntValue(ByteBuffer _bb) { return GetRootAsIntValue(_bb, new IntValue()); } public static IntValue GetRootAsIntValue(ByteBuffer _bb, IntValue obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } @@ -250,7 +250,7 @@ public struct Collide : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_3_3(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_5_8(); } public static Collide GetRootAsCollide(ByteBuffer _bb) { return GetRootAsCollide(_bb, new Collide()); } public static Collide GetRootAsCollide(ByteBuffer _bb, Collide obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } @@ -365,7 +365,7 @@ public struct Collision : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_3_3(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_5_8(); } public static Collision GetRootAsCollision(ByteBuffer _bb) { return GetRootAsCollision(_bb, new Collision()); } public static Collision GetRootAsCollision(ByteBuffer _bb, Collision obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public static bool VerifyCollision(ByteBuffer _bb) {Google.FlatBuffers.Verifier verifier = new Google.FlatBuffers.Verifier(_bb); return verifier.VerifyBuffer("", false, CollisionVerify.Verify); } diff --git a/tests/union_vector/Attacker.cs b/tests/union_vector/Attacker.cs index e1716a1df0..d03867b2b9 100644 --- a/tests/union_vector/Attacker.cs +++ b/tests/union_vector/Attacker.cs @@ -10,7 +10,7 @@ public struct Attacker : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_3_3(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_5_8(); } public static Attacker GetRootAsAttacker(ByteBuffer _bb) { return GetRootAsAttacker(_bb, new Attacker()); } public static Attacker GetRootAsAttacker(ByteBuffer _bb, Attacker obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/union_vector/Attacker.java b/tests/union_vector/Attacker.java index 1e7df26a62..dbf8dfd374 100644 --- a/tests/union_vector/Attacker.java +++ b/tests/union_vector/Attacker.java @@ -19,7 +19,7 @@ @SuppressWarnings("unused") public final class Attacker extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_23_3_3(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_5_8(); } public static Attacker getRootAsAttacker(ByteBuffer _bb) { return getRootAsAttacker(_bb, new Attacker()); } public static Attacker getRootAsAttacker(ByteBuffer _bb, Attacker obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/tests/union_vector/Attacker.kt b/tests/union_vector/Attacker.kt index bd51612ae5..7e3b9b581f 100644 --- a/tests/union_vector/Attacker.kt +++ b/tests/union_vector/Attacker.kt @@ -41,7 +41,7 @@ class Attacker : Table() { } } companion object { - fun validateVersion() = Constants.FLATBUFFERS_23_3_3() + fun validateVersion() = Constants.FLATBUFFERS_23_5_8() fun getRootAsAttacker(_bb: ByteBuffer): Attacker = getRootAsAttacker(_bb, Attacker()) fun getRootAsAttacker(_bb: ByteBuffer, obj: Attacker): Attacker { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/union_vector/HandFan.cs b/tests/union_vector/HandFan.cs index 14cf69ffb3..e93a64614e 100644 --- a/tests/union_vector/HandFan.cs +++ b/tests/union_vector/HandFan.cs @@ -10,7 +10,7 @@ public struct HandFan : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_3_3(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_5_8(); } public static HandFan GetRootAsHandFan(ByteBuffer _bb) { return GetRootAsHandFan(_bb, new HandFan()); } public static HandFan GetRootAsHandFan(ByteBuffer _bb, HandFan obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); } diff --git a/tests/union_vector/HandFan.java b/tests/union_vector/HandFan.java index 9989af5e8e..66a576a646 100644 --- a/tests/union_vector/HandFan.java +++ b/tests/union_vector/HandFan.java @@ -19,7 +19,7 @@ @SuppressWarnings("unused") public final class HandFan extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_23_3_3(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_5_8(); } public static HandFan getRootAsHandFan(ByteBuffer _bb) { return getRootAsHandFan(_bb, new HandFan()); } public static HandFan getRootAsHandFan(ByteBuffer _bb, HandFan obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public void __init(int _i, ByteBuffer _bb) { __reset(_i, _bb); } diff --git a/tests/union_vector/HandFan.kt b/tests/union_vector/HandFan.kt index afae3142c2..b1316e18e3 100644 --- a/tests/union_vector/HandFan.kt +++ b/tests/union_vector/HandFan.kt @@ -41,7 +41,7 @@ class HandFan : Table() { } } companion object { - fun validateVersion() = Constants.FLATBUFFERS_23_3_3() + fun validateVersion() = Constants.FLATBUFFERS_23_5_8() fun getRootAsHandFan(_bb: ByteBuffer): HandFan = getRootAsHandFan(_bb, HandFan()) fun getRootAsHandFan(_bb: ByteBuffer, obj: HandFan): HandFan { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/union_vector/Movie.cs b/tests/union_vector/Movie.cs index faa47fe062..209dd55762 100644 --- a/tests/union_vector/Movie.cs +++ b/tests/union_vector/Movie.cs @@ -10,7 +10,7 @@ public struct Movie : IFlatbufferObject { private Table __p; public ByteBuffer ByteBuffer { get { return __p.bb; } } - public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_3_3(); } + public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_5_8(); } public static Movie GetRootAsMovie(ByteBuffer _bb) { return GetRootAsMovie(_bb, new Movie()); } public static Movie GetRootAsMovie(ByteBuffer _bb, Movie obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); } public static bool MovieBufferHasIdentifier(ByteBuffer _bb) { return Table.__has_identifier(_bb, "MOVI"); } diff --git a/tests/union_vector/Movie.java b/tests/union_vector/Movie.java index 62fcecd1a2..b7547dfbb6 100644 --- a/tests/union_vector/Movie.java +++ b/tests/union_vector/Movie.java @@ -19,7 +19,7 @@ @SuppressWarnings("unused") public final class Movie extends Table { - public static void ValidateVersion() { Constants.FLATBUFFERS_23_3_3(); } + public static void ValidateVersion() { Constants.FLATBUFFERS_23_5_8(); } public static Movie getRootAsMovie(ByteBuffer _bb) { return getRootAsMovie(_bb, new Movie()); } public static Movie getRootAsMovie(ByteBuffer _bb, Movie obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__assign(_bb.getInt(_bb.position()) + _bb.position(), _bb)); } public static boolean MovieBufferHasIdentifier(ByteBuffer _bb) { return __has_identifier(_bb, "MOVI"); } diff --git a/tests/union_vector/Movie.kt b/tests/union_vector/Movie.kt index d346dfcb91..be64d35927 100644 --- a/tests/union_vector/Movie.kt +++ b/tests/union_vector/Movie.kt @@ -79,7 +79,7 @@ class Movie : Table() { val o = __offset(10); return if (o != 0) __vector_len(o) else 0 } companion object { - fun validateVersion() = Constants.FLATBUFFERS_23_3_3() + fun validateVersion() = Constants.FLATBUFFERS_23_5_8() fun getRootAsMovie(_bb: ByteBuffer): Movie = getRootAsMovie(_bb, Movie()) fun getRootAsMovie(_bb: ByteBuffer, obj: Movie): Movie { _bb.order(ByteOrder.LITTLE_ENDIAN) diff --git a/tests/union_vector/union_vector_generated.h b/tests/union_vector/union_vector_generated.h index b44d7241ec..08d3591784 100644 --- a/tests/union_vector/union_vector_generated.h +++ b/tests/union_vector/union_vector_generated.h @@ -9,8 +9,8 @@ // Ensure the included flatbuffers.h is the same version as when this file was // generated, otherwise it may not be compatible. static_assert(FLATBUFFERS_VERSION_MAJOR == 23 && - FLATBUFFERS_VERSION_MINOR == 3 && - FLATBUFFERS_VERSION_REVISION == 3, + FLATBUFFERS_VERSION_MINOR == 5 && + FLATBUFFERS_VERSION_REVISION == 8, "Non-compatible flatbuffers version included"); struct Attacker; From 63b7b25289447313ab6e79191fa1733748dca0da Mon Sep 17 00:00:00 2001 From: Derek Bailey Date: Tue, 9 May 2023 09:16:30 -0700 Subject: [PATCH 183/571] FlatBuffers 64 for C++ (#7935) * First working hack of adding 64-bit. Don't judge :) * Made vector_downward work on 64 bit types * vector_downward uses size_t, added offset64 to reflection * cleaned up adding offset64 in parser * Add C++ testing skeleton for 64-bit * working test for CreateVector64 * working >2 GiB buffers * support for large strings * simplified CreateString<> to just provide the offset type * generalize CreateVector template * update test_64.afb due to upstream format change * Added Vector64 type, which is just an alias for vector ATM * Switch to Offset64 for Vector64 * Update for reflection bfbs output change * Starting to add support for vector64 type in C++ * made a generic CreateVector that can handle different offsets and vector types * Support for 32-vector with 64-addressing * Vector64 basic builder + tests working * basic support for json vector64 support * renamed fields in test_64bit.fbs to better reflect their use * working C++ vector64 builder * Apply --annotate-sparse-vector to 64-bit tests * Enable Vector64 for --annotate-sparse-vectors * Merged from upstream * Add `near_string` field for testing 32-bit offsets alongside * keep track of where the 32-bit and 64-bit regions are for flatbufferbuilder * move template<> outside class body for GCC * update run.sh to build and run tests * basic assertion for adding 64-bit offset at the wrong time * started to separate `FlatBufferBuilder` into two classes, 1 64-bit aware, the other not * add test for nested flatbuffer vector64, fix bug in alignment of big vectors * fixed CreateDirect method by iterating by Offset64 first * internal refactoring of flatbufferbuilder * block not supported languages in the parser from using 64-bit * evolution tests for adding a vector64 field * conformity tests for adding/removing offset64 attributes * ensure test is for a big buffer * add parser error tests for `offset64` and `vector64` attributes * add missing static that GCC only complains about * remove stdint-uintn.h header that gets automatically added * move 64-bit CalculateOffset internal * fixed return size of EndVector * various fixes on windows * add SizeT to vector_downward * minimze range of size changes in vector and builder * reworked how tracking if 64-offsets are added * Add ReturnT to EndVector * small cleanups * remove need for second Array definition * combine IndirectHelpers into one definition * started support for vector of struct * Support for 32/64-vectors of structs + Offset64 * small cleanups * add verification for vector64 * add sized prefix for 64-bit buffers * add fuzzer for 64-bit * add example of adding many vectors using a wrapper table * run the new -bfbs-gen-embed logic on the 64-bit tests * remove run.sh and fix cmakelist issue * fixed bazel rules * fixed some PR comments * add 64-bit tests to cmakelist --- CMakeLists.txt | 5 + include/flatbuffers/array.h | 7 +- include/flatbuffers/base.h | 6 +- include/flatbuffers/buffer.h | 93 ++- include/flatbuffers/flatbuffer_builder.h | 549 ++++++++++----- include/flatbuffers/flatbuffers.h | 5 +- include/flatbuffers/idl.h | 63 +- include/flatbuffers/reflection.h | 1 + include/flatbuffers/reflection_generated.h | 30 +- include/flatbuffers/table.h | 32 +- include/flatbuffers/vector.h | 81 +-- include/flatbuffers/vector_downward.h | 43 +- include/flatbuffers/verifier.h | 79 ++- .../flatbuffers/reflection/BaseType.java | 5 +- .../google/flatbuffers/reflection/Field.java | 13 +- python/flatbuffers/reflection/BaseType.py | 3 +- python/flatbuffers/reflection/Field.py | 16 +- reflection/reflection.fbs | 3 + src/annotated_binary_text_gen.cpp | 12 +- src/binary_annotator.cpp | 161 +++-- src/binary_annotator.h | 10 +- src/flatc.cpp | 11 +- src/idl_gen_cpp.cpp | 298 ++++++--- src/idl_gen_text.cpp | 24 +- src/idl_parser.cpp | 178 +++-- tests/64bit/evolution/v1.fbs | 8 + tests/64bit/evolution/v1_generated.h | 219 ++++++ tests/64bit/evolution/v2.fbs | 9 + tests/64bit/evolution/v2_generated.h | 243 +++++++ tests/64bit/offset64_test.cpp | 447 +++++++++++++ tests/64bit/offset64_test.h | 19 + tests/64bit/test_64bit.afb | 74 +++ tests/64bit/test_64bit.bfbs | Bin 0 -> 1572 bytes tests/64bit/test_64bit.bin | Bin 0 -> 248 bytes tests/64bit/test_64bit.fbs | 49 ++ tests/64bit/test_64bit.json | 17 + tests/64bit/test_64bit_bfbs_generated.h | 93 +++ tests/64bit/test_64bit_generated.h | 625 ++++++++++++++++++ tests/BUILD.bazel | 6 + tests/MyGame/Example/Monster.php | 10 +- tests/evolution_test.cpp | 35 +- tests/fuzzer/.gitignore | 2 + tests/fuzzer/CMakeLists.txt | 11 + tests/fuzzer/flatbuffers_64bit_fuzzer.cc | 121 ++++ tests/fuzzer/flatbuffers_annotator_fuzzer.cc | 2 +- tests/parser_test.cpp | 41 +- tests/test.cpp | 16 +- tests/test_builder.cpp | 12 +- tests/test_builder.h | 8 +- 49 files changed, 3270 insertions(+), 525 deletions(-) create mode 100644 tests/64bit/evolution/v1.fbs create mode 100644 tests/64bit/evolution/v1_generated.h create mode 100644 tests/64bit/evolution/v2.fbs create mode 100644 tests/64bit/evolution/v2_generated.h create mode 100644 tests/64bit/offset64_test.cpp create mode 100644 tests/64bit/offset64_test.h create mode 100644 tests/64bit/test_64bit.afb create mode 100644 tests/64bit/test_64bit.bfbs create mode 100644 tests/64bit/test_64bit.bin create mode 100644 tests/64bit/test_64bit.fbs create mode 100644 tests/64bit/test_64bit.json create mode 100644 tests/64bit/test_64bit_bfbs_generated.h create mode 100644 tests/64bit/test_64bit_generated.h create mode 100644 tests/fuzzer/flatbuffers_64bit_fuzzer.cc diff --git a/CMakeLists.txt b/CMakeLists.txt index e0b3248aed..d3115d8821 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -234,6 +234,8 @@ set(FlatBuffers_Tests_SRCS tests/native_type_test_impl.cpp tests/alignment_test.h tests/alignment_test.cpp + tests/64bit/offset64_test.h + tests/64bit/offset64_test.cpp include/flatbuffers/code_generators.h src/code_generators.cpp ) @@ -527,6 +529,9 @@ if(FLATBUFFERS_BUILD_TESTS) compile_schema_for_test(tests/native_inline_table_test.fbs "${FLATC_OPT_COMP}") compile_schema_for_test(tests/native_type_test.fbs "${FLATC_OPT}") compile_schema_for_test(tests/key_field/key_field_sample.fbs "${FLATC_OPT_COMP}") + compile_schema_for_test(tests/64bit/test_64bit.fbs "${FLATC_OPT_COMP};--bfbs-gen-embed") + compile_schema_for_test(tests/64bit/evolution/v1.fbs "${FLATC_OPT_COMP}") + compile_schema_for_test(tests/64bit/evolution/v2.fbs "${FLATC_OPT_COMP}") if(FLATBUFFERS_CODE_SANITIZE) add_fsanitize_to_target(flattests ${FLATBUFFERS_CODE_SANITIZE}) diff --git a/include/flatbuffers/array.h b/include/flatbuffers/array.h index 2ff58c6fb5..f4bfbf054c 100644 --- a/include/flatbuffers/array.h +++ b/include/flatbuffers/array.h @@ -17,6 +17,7 @@ #ifndef FLATBUFFERS_ARRAY_H_ #define FLATBUFFERS_ARRAY_H_ +#include #include #include "flatbuffers/base.h" @@ -37,7 +38,7 @@ template class Array { public: typedef uint16_t size_type; typedef typename IndirectHelper::return_type return_type; - typedef VectorConstIterator const_iterator; + typedef VectorConstIterator const_iterator; typedef VectorReverseIterator const_reverse_iterator; // If T is a LE-scalar or a struct (!scalar_tag::value). @@ -158,11 +159,13 @@ template class Array { // Specialization for Array[struct] with access using Offset pointer. // This specialization used by idl_gen_text.cpp. -template class Array, length> { +template class OffsetT> +class Array, length> { static_assert(flatbuffers::is_same::value, "unexpected type T"); public: typedef const void *return_type; + typedef uint16_t size_type; const uint8_t *Data() const { return data_; } diff --git a/include/flatbuffers/base.h b/include/flatbuffers/base.h index ae3508b499..74ac9c8ca2 100644 --- a/include/flatbuffers/base.h +++ b/include/flatbuffers/base.h @@ -43,6 +43,7 @@ #include #include #include +#include #include #include @@ -323,9 +324,11 @@ namespace flatbuffers { // Also, using a consistent offset type maintains compatibility of serialized // offset values between 32bit and 64bit systems. typedef uint32_t uoffset_t; +typedef uint64_t uoffset64_t; // Signed offsets for references that can go in both directions. typedef int32_t soffset_t; +typedef int64_t soffset64_t; // Offset/index used in v-tables, can be changed to uint8_t in // format forks to save a bit of space if desired. @@ -334,7 +337,8 @@ typedef uint16_t voffset_t; typedef uintmax_t largest_scalar_t; // In 32bits, this evaluates to 2GB - 1 -#define FLATBUFFERS_MAX_BUFFER_SIZE ((1ULL << (sizeof(::flatbuffers::soffset_t) * 8 - 1)) - 1) +#define FLATBUFFERS_MAX_BUFFER_SIZE std::numeric_limits<::flatbuffers::soffset_t>::max() +#define FLATBUFFERS_MAX_64_BUFFER_SIZE std::numeric_limits<::flatbuffers::soffset64_t>::max() // The minimum size buffer that can be a valid flatbuffer. // Includes the offset to the root table (uoffset_t), the offset to the vtable diff --git a/include/flatbuffers/buffer.h b/include/flatbuffers/buffer.h index e26a153c3f..94d4f7903b 100644 --- a/include/flatbuffers/buffer.h +++ b/include/flatbuffers/buffer.h @@ -25,14 +25,33 @@ namespace flatbuffers { // Wrapper for uoffset_t to allow safe template specialization. // Value is allowed to be 0 to indicate a null object (see e.g. AddOffset). -template struct Offset { - uoffset_t o; +template struct Offset { + // The type of offset to use. + typedef uoffset_t offset_type; + + offset_type o; Offset() : o(0) {} - Offset(uoffset_t _o) : o(_o) {} - Offset Union() const { return Offset(o); } + Offset(const offset_type _o) : o(_o) {} + Offset<> Union() const { return o; } + bool IsNull() const { return !o; } +}; + +// Wrapper for uoffset64_t Offsets. +template struct Offset64 { + // The type of offset to use. + typedef uoffset64_t offset_type; + + offset_type o; + Offset64() : o(0) {} + Offset64(const offset_type offset) : o(offset) {} + Offset64<> Union() const { return o; } bool IsNull() const { return !o; } }; +// Litmus check for ensuring the Offsets are the expected size. +static_assert(sizeof(Offset<>) == 4, "Offset has wrong size"); +static_assert(sizeof(Offset64<>) == 8, "Offset64 has wrong size"); + inline void EndianCheck() { int endiantest = 1; // If this fails, see FLATBUFFERS_LITTLEENDIAN above. @@ -75,35 +94,59 @@ template struct IndirectHelper { typedef T return_type; typedef T mutable_return_type; static const size_t element_stride = sizeof(T); - static return_type Read(const uint8_t *p, uoffset_t i) { + + static return_type Read(const uint8_t *p, const size_t i) { return EndianScalar((reinterpret_cast(p))[i]); } - static return_type Read(uint8_t *p, uoffset_t i) { - return Read(const_cast(p), i); + static mutable_return_type Read(uint8_t *p, const size_t i) { + return reinterpret_cast( + Read(const_cast(p), i)); } }; -template struct IndirectHelper> { + +// For vector of Offsets. +template class OffsetT> +struct IndirectHelper> { typedef const T *return_type; typedef T *mutable_return_type; - static const size_t element_stride = sizeof(uoffset_t); - static return_type Read(const uint8_t *p, uoffset_t i) { - p += i * sizeof(uoffset_t); - return reinterpret_cast(p + ReadScalar(p)); + typedef typename OffsetT::offset_type offset_type; + static const offset_type element_stride = sizeof(offset_type); + + static return_type Read(const uint8_t *const p, const offset_type i) { + // Offsets are relative to themselves, so first update the pointer to + // point to the offset location. + const uint8_t *const offset_location = p + i * element_stride; + + // Then read the scalar value of the offset (which may be 32 or 64-bits) and + // then determine the relative location from the offset location. + return reinterpret_cast( + offset_location + ReadScalar(offset_location)); } - static mutable_return_type Read(uint8_t *p, uoffset_t i) { - p += i * sizeof(uoffset_t); - return reinterpret_cast(p + ReadScalar(p)); + static mutable_return_type Read(uint8_t *const p, const offset_type i) { + // Offsets are relative to themselves, so first update the pointer to + // point to the offset location. + uint8_t *const offset_location = p + i * element_stride; + + // Then read the scalar value of the offset (which may be 32 or 64-bits) and + // then determine the relative location from the offset location. + return reinterpret_cast( + offset_location + ReadScalar(offset_location)); } }; + +// For vector of structs. template struct IndirectHelper { typedef const T *return_type; typedef T *mutable_return_type; static const size_t element_stride = sizeof(T); - static return_type Read(const uint8_t *p, uoffset_t i) { - return reinterpret_cast(p + i * sizeof(T)); + + static return_type Read(const uint8_t *const p, const size_t i) { + // Structs are stored inline, relative to the first struct pointer. + return reinterpret_cast(p + i * element_stride); } - static mutable_return_type Read(uint8_t *p, uoffset_t i) { - return reinterpret_cast(p + i * sizeof(T)); + static mutable_return_type Read(uint8_t *const p, const size_t i) { + // Structs are stored inline, relative to the first struct pointer. + return reinterpret_cast(p + i * element_stride); } }; @@ -130,23 +173,25 @@ inline bool BufferHasIdentifier(const void *buf, const char *identifier, /// @cond FLATBUFFERS_INTERNAL // Helpers to get a typed pointer to the root object contained in the buffer. template T *GetMutableRoot(void *buf) { + if (!buf) return nullptr; EndianCheck(); return reinterpret_cast( reinterpret_cast(buf) + EndianScalar(*reinterpret_cast(buf))); } -template T *GetMutableSizePrefixedRoot(void *buf) { - return GetMutableRoot(reinterpret_cast(buf) + - sizeof(uoffset_t)); +template +T *GetMutableSizePrefixedRoot(void *buf) { + return GetMutableRoot(reinterpret_cast(buf) + sizeof(SizeT)); } template const T *GetRoot(const void *buf) { return GetMutableRoot(const_cast(buf)); } -template const T *GetSizePrefixedRoot(const void *buf) { - return GetRoot(reinterpret_cast(buf) + sizeof(uoffset_t)); +template +const T *GetSizePrefixedRoot(const void *buf) { + return GetRoot(reinterpret_cast(buf) + sizeof(SizeT)); } } // namespace flatbuffers diff --git a/include/flatbuffers/flatbuffer_builder.h b/include/flatbuffers/flatbuffer_builder.h index caf9a3d156..ed932cd9cc 100644 --- a/include/flatbuffers/flatbuffer_builder.h +++ b/include/flatbuffers/flatbuffer_builder.h @@ -18,12 +18,15 @@ #define FLATBUFFERS_FLATBUFFER_BUILDER_H_ #include +#include #include #include +#include #include "flatbuffers/allocator.h" #include "flatbuffers/array.h" #include "flatbuffers/base.h" +#include "flatbuffers/buffer.h" #include "flatbuffers/buffer_ref.h" #include "flatbuffers/default_allocator.h" #include "flatbuffers/detached_buffer.h" @@ -40,8 +43,9 @@ namespace flatbuffers { // Converts a Field ID to a virtual table offset. inline voffset_t FieldIndexToOffset(voffset_t field_id) { // Should correspond to what EndTable() below builds up. - const voffset_t fixed_fields = 2 * sizeof(voffset_t); // Vtable size and Object Size. - return fixed_fields + field_id * sizeof(voffset_t); + const voffset_t fixed_fields = + 2 * sizeof(voffset_t); // Vtable size and Object Size. + return fixed_fields + field_id * sizeof(voffset_t); } template> @@ -68,8 +72,13 @@ T *data(std::vector &v) { /// `PushElement`/`AddElement`/`EndTable`, or the builtin `CreateString`/ /// `CreateVector` functions. Do this is depth-first order to build up a tree to /// the root. `Finish()` wraps up the buffer ready for transport. -class FlatBufferBuilder { +template class FlatBufferBuilderImpl { public: + // This switches the size type of the builder, based on if its 64-bit aware + // (uoffset64_t) or not (uoffset_t). + typedef + typename std::conditional::type SizeT; + /// @brief Default constructor for FlatBufferBuilder. /// @param[in] initial_size The initial size of the buffer, in bytes. Defaults /// to `1024`. @@ -81,13 +90,16 @@ class FlatBufferBuilder { /// minimum alignment upon reallocation. Only needed if you intend to store /// types with custom alignment AND you wish to read the buffer in-place /// directly after creation. - explicit FlatBufferBuilder( + explicit FlatBufferBuilderImpl( size_t initial_size = 1024, Allocator *allocator = nullptr, bool own_allocator = false, size_t buffer_minalign = AlignOf()) - : buf_(initial_size, allocator, own_allocator, buffer_minalign), + : buf_(initial_size, allocator, own_allocator, buffer_minalign, + static_cast(Is64Aware ? FLATBUFFERS_MAX_64_BUFFER_SIZE + : FLATBUFFERS_MAX_BUFFER_SIZE)), num_field_loc(0), max_voffset_(0), + length_of_64_bit_region_(0), nested(false), finished(false), minalign_(1), @@ -98,10 +110,13 @@ class FlatBufferBuilder { } /// @brief Move constructor for FlatBufferBuilder. - FlatBufferBuilder(FlatBufferBuilder &&other) noexcept - : buf_(1024, nullptr, false, AlignOf()), + FlatBufferBuilderImpl(FlatBufferBuilderImpl &&other) noexcept + : buf_(1024, nullptr, false, AlignOf(), + static_cast(Is64Aware ? FLATBUFFERS_MAX_64_BUFFER_SIZE + : FLATBUFFERS_MAX_BUFFER_SIZE)), num_field_loc(0), max_voffset_(0), + length_of_64_bit_region_(0), nested(false), finished(false), minalign_(1), @@ -116,18 +131,19 @@ class FlatBufferBuilder { } /// @brief Move assignment operator for FlatBufferBuilder. - FlatBufferBuilder &operator=(FlatBufferBuilder &&other) noexcept { + FlatBufferBuilderImpl &operator=(FlatBufferBuilderImpl &&other) noexcept { // Move construct a temporary and swap idiom - FlatBufferBuilder temp(std::move(other)); + FlatBufferBuilderImpl temp(std::move(other)); Swap(temp); return *this; } - void Swap(FlatBufferBuilder &other) { + void Swap(FlatBufferBuilderImpl &other) { using std::swap; buf_.swap(other.buf_); swap(num_field_loc, other.num_field_loc); swap(max_voffset_, other.max_voffset_); + swap(length_of_64_bit_region_, other.length_of_64_bit_region_); swap(nested, other.nested); swap(finished, other.finished); swap(minalign_, other.minalign_); @@ -136,7 +152,7 @@ class FlatBufferBuilder { swap(string_pool, other.string_pool); } - ~FlatBufferBuilder() { + ~FlatBufferBuilderImpl() { if (string_pool) delete string_pool; } @@ -153,12 +169,36 @@ class FlatBufferBuilder { nested = false; finished = false; minalign_ = 1; + length_of_64_bit_region_ = 0; if (string_pool) string_pool->clear(); } /// @brief The current size of the serialized buffer, counting from the end. + /// @return Returns an `SizeT` with the current size of the buffer. + SizeT GetSize() const { return buf_.size(); } + + /// @brief The current size of the serialized buffer relative to the end of + /// the 32-bit region. /// @return Returns an `uoffset_t` with the current size of the buffer. - uoffset_t GetSize() const { return buf_.size(); } + template + // Only enable this method for the 64-bit builder, as only that builder is + // concerned with the 32/64-bit boundary, and should be the one to bare any + // run time costs. + typename std::enable_if::type GetSizeRelative32BitRegion() + const { + //[32-bit region][64-bit region] + // [XXXXXXXXXXXXXXXXXXX] GetSize() + // [YYYYYYYYYYYYY] length_of_64_bit_region_ + // [ZZZZ] return size + return static_cast(GetSize() - length_of_64_bit_region_); + } + + template + // Only enable this method for the 32-bit builder. + typename std::enable_if::type GetSizeRelative32BitRegion() + const { + return static_cast(GetSize()); + } /// @brief Get the serialized buffer (after you call `Finish()`). /// @return Returns an `uint8_t` pointer to the FlatBuffer data inside the @@ -270,14 +310,16 @@ class FlatBufferBuilder { } // Write a single aligned scalar to the buffer - template uoffset_t PushElement(T element) { + template + ReturnT PushElement(T element) { AssertScalarT(); Align(sizeof(T)); buf_.push_small(EndianScalar(element)); - return GetSize(); + return CalculateOffset(); } - template uoffset_t PushElement(Offset off) { + template class OffsetT = Offset> + uoffset_t PushElement(OffsetT off) { // Special case for offsets: see ReferTo below. return PushElement(ReferTo(off.o)); } @@ -307,11 +349,16 @@ class FlatBufferBuilder { AddElement(field, ReferTo(off.o), static_cast(0)); } + template void AddOffset(voffset_t field, Offset64 off) { + if (off.IsNull()) return; // Don't store. + AddElement(field, ReferTo(off.o), static_cast(0)); + } + template void AddStruct(voffset_t field, const T *structptr) { if (!structptr) return; // Default, don't store. Align(AlignOf()); buf_.push_small(*structptr); - TrackField(field, GetSize()); + TrackField(field, CalculateOffset()); } void AddStructOffset(voffset_t field, uoffset_t off) { @@ -322,12 +369,29 @@ class FlatBufferBuilder { // This function converts them to be relative to the current location // in the buffer (when stored here), pointing upwards. uoffset_t ReferTo(uoffset_t off) { - // Align to ensure GetSize() below is correct. + // Align to ensure GetSizeRelative32BitRegion() below is correct. Align(sizeof(uoffset_t)); - // Offset must refer to something already in buffer. - const uoffset_t size = GetSize(); + // 32-bit offsets are relative to the tail of the 32-bit region of the + // buffer. For most cases (without 64-bit entities) this is equivalent to + // size of the whole buffer (e.g. GetSize()) + return ReferTo(off, GetSizeRelative32BitRegion()); + } + + uoffset64_t ReferTo(uoffset64_t off) { + // Align to ensure GetSize() below is correct. + Align(sizeof(uoffset64_t)); + // 64-bit offsets are relative to tail of the whole buffer + return ReferTo(off, GetSize()); + } + + template T ReferTo(const T off, const T2 size) { FLATBUFFERS_ASSERT(off && off <= size); - return size - off + static_cast(sizeof(uoffset_t)); + return size - off + static_cast(sizeof(T)); + } + + template T ReferTo(const T off, const T size) { + FLATBUFFERS_ASSERT(off && off <= size); + return size - off + static_cast(sizeof(T)); } void NotNested() { @@ -349,7 +413,7 @@ class FlatBufferBuilder { uoffset_t StartTable() { NotNested(); nested = true; - return GetSize(); + return GetSizeRelative32BitRegion(); } // This finishes one serialized object by generating the vtable if it's a @@ -360,7 +424,9 @@ class FlatBufferBuilder { FLATBUFFERS_ASSERT(nested); // Write the vtable offset, which is the start of any Table. // We fill its value later. - const uoffset_t vtableoffsetloc = PushElement(0); + // This is relative to the end of the 32-bit region. + const uoffset_t vtable_offset_loc = + static_cast(PushElement(0)); // Write a vtable, which consists entirely of voffset_t elements. // It starts with the number of offsets, followed by a type id, followed // by the offsets themselves. In reverse: @@ -370,7 +436,7 @@ class FlatBufferBuilder { (std::max)(static_cast(max_voffset_ + sizeof(voffset_t)), FieldIndexToOffset(0)); buf_.fill_big(max_voffset_); - auto table_object_size = vtableoffsetloc - start; + const uoffset_t table_object_size = vtable_offset_loc - start; // Vtable use 16bit offsets. FLATBUFFERS_ASSERT(table_object_size < 0x10000); WriteScalar(buf_.data() + sizeof(voffset_t), @@ -380,7 +446,8 @@ class FlatBufferBuilder { for (auto it = buf_.scratch_end() - num_field_loc * sizeof(FieldLoc); it < buf_.scratch_end(); it += sizeof(FieldLoc)) { auto field_location = reinterpret_cast(it); - auto pos = static_cast(vtableoffsetloc - field_location->off); + const voffset_t pos = + static_cast(vtable_offset_loc - field_location->off); // If this asserts, it means you've set a field twice. FLATBUFFERS_ASSERT( !ReadScalar(buf_.data() + field_location->id)); @@ -389,7 +456,7 @@ class FlatBufferBuilder { ClearOffsets(); auto vt1 = reinterpret_cast(buf_.data()); auto vt1_size = ReadScalar(vt1); - auto vt_use = GetSize(); + auto vt_use = GetSizeRelative32BitRegion(); // See if we already have generated a vtable with this exact same // layout before. If so, make it point to the old one, remove this one. if (dedup_vtables_) { @@ -400,23 +467,24 @@ class FlatBufferBuilder { auto vt2_size = ReadScalar(vt2); if (vt1_size != vt2_size || 0 != memcmp(vt2, vt1, vt1_size)) continue; vt_use = *vt_offset_ptr; - buf_.pop(GetSize() - static_cast(vtableoffsetloc)); + buf_.pop(GetSizeRelative32BitRegion() - vtable_offset_loc); break; } } // If this is a new vtable, remember it. - if (vt_use == GetSize()) { buf_.scratch_push_small(vt_use); } + if (vt_use == GetSizeRelative32BitRegion()) { + buf_.scratch_push_small(vt_use); + } // Fill the vtable offset we created above. - // The offset points from the beginning of the object to where the - // vtable is stored. + // The offset points from the beginning of the object to where the vtable is + // stored. // Offsets default direction is downward in memory for future format // flexibility (storing all vtables at the start of the file). - WriteScalar(buf_.data_at(vtableoffsetloc), + WriteScalar(buf_.data_at(vtable_offset_loc + length_of_64_bit_region_), static_cast(vt_use) - - static_cast(vtableoffsetloc)); - + static_cast(vtable_offset_loc)); nested = false; - return vtableoffsetloc; + return vtable_offset_loc; } FLATBUFFERS_ATTRIBUTE([[deprecated("call the version above instead")]]) @@ -426,14 +494,20 @@ class FlatBufferBuilder { // This checks a required field has been set in a given table that has // just been constructed. - template void Required(Offset table, voffset_t field); + template void Required(Offset table, voffset_t field) { + auto table_ptr = reinterpret_cast(buf_.data_at(table.o)); + bool ok = table_ptr->GetOptionalFieldOffset(field) != 0; + // If this fails, the caller will show what field needs to be set. + FLATBUFFERS_ASSERT(ok); + (void)ok; + } uoffset_t StartStruct(size_t alignment) { Align(alignment); - return GetSize(); + return GetSizeRelative32BitRegion(); } - uoffset_t EndStruct() { return GetSize(); } + uoffset_t EndStruct() { return GetSizeRelative32BitRegion(); } void ClearOffsets() { buf_.scratch_pop(num_field_loc * sizeof(FieldLoc)); @@ -442,15 +516,18 @@ class FlatBufferBuilder { } // Aligns such that when "len" bytes are written, an object can be written - // after it with "alignment" without padding. + // after it (forward in the buffer) with "alignment" without padding. void PreAlign(size_t len, size_t alignment) { if (len == 0) return; TrackMinAlign(alignment); buf_.fill(PaddingBytes(GetSize() + len, alignment)); } - template void PreAlign(size_t len) { - AssertScalarT(); - PreAlign(len, AlignOf()); + + // Aligns such than when "len" bytes are written, an object of type `AlignT` + // can be written after it (forward in the buffer) without padding. + template void PreAlign(size_t len) { + AssertScalarT(); + PreAlign(len, AlignOf()); } /// @endcond @@ -458,34 +535,35 @@ class FlatBufferBuilder { /// @param[in] str A const char pointer to the data to be stored as a string. /// @param[in] len The number of bytes that should be stored from `str`. /// @return Returns the offset in the buffer where the string starts. - Offset CreateString(const char *str, size_t len) { - NotNested(); - PreAlign(len + 1); // Always 0-terminated. - buf_.fill(1); - PushBytes(reinterpret_cast(str), len); - PushElement(static_cast(len)); - return Offset(GetSize()); + template class OffsetT = Offset> + OffsetT CreateString(const char *str, size_t len) { + CreateStringImpl(str, len); + return OffsetT( + CalculateOffset::offset_type>()); } /// @brief Store a string in the buffer, which is null-terminated. /// @param[in] str A const char pointer to a C-string to add to the buffer. /// @return Returns the offset in the buffer where the string starts. - Offset CreateString(const char *str) { - return CreateString(str, strlen(str)); + template class OffsetT = Offset> + OffsetT CreateString(const char *str) { + return CreateString(str, strlen(str)); } /// @brief Store a string in the buffer, which is null-terminated. /// @param[in] str A char pointer to a C-string to add to the buffer. /// @return Returns the offset in the buffer where the string starts. - Offset CreateString(char *str) { - return CreateString(str, strlen(str)); + template class OffsetT = Offset> + OffsetT CreateString(char *str) { + return CreateString(str, strlen(str)); } /// @brief Store a string in the buffer, which can contain any binary data. /// @param[in] str A const reference to a std::string to store in the buffer. /// @return Returns the offset in the buffer where the string starts. - Offset CreateString(const std::string &str) { - return CreateString(str.c_str(), str.length()); + template class OffsetT = Offset> + OffsetT CreateString(const std::string &str) { + return CreateString(str.c_str(), str.length()); } // clang-format off @@ -493,8 +571,9 @@ class FlatBufferBuilder { /// @brief Store a string in the buffer, which can contain any binary data. /// @param[in] str A const string_view to copy in to the buffer. /// @return Returns the offset in the buffer where the string starts. - Offset CreateString(flatbuffers::string_view str) { - return CreateString(str.data(), str.size()); + template